@aurora-ds/components 1.1.4 → 1.1.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/resources/Icons.ts","../../src/constants/animation.constants.ts","../../src/components/actions/_common/buttonVariants.styles.ts","../../src/components/actions/button/Button.styles.ts","../../src/components/foundation/icon/Icon.styles.ts","../../src/components/foundation/icon/Icon.tsx","../../src/components/foundation/text/utils/getTextVariantStyles.utils.ts","../../src/components/foundation/text/Text.styles.ts","../../src/components/foundation/text/utils/getTruncateTextStyles.utils.ts","../../src/components/foundation/text/utils/parseTextWithBold.utils.ts","../../src/components/foundation/text/Text.tsx","../../src/components/actions/button/Button.tsx","../../src/components/actions/icon-button/IconButton.styles.ts","../../src/components/actions/icon-button/IconButton.tsx","../../src/components/actions/link/Link.styles.ts","../../src/components/actions/link/Link.tsx","../../src/components/data-display/badge/utils/getBadgeColorStyles.utils.ts","../../src/components/data-display/badge/Badge.styles.ts","../../src/components/data-display/badge/Badge.tsx","../../src/hooks/components/overlay/use-tooltip-position/useTooltipPosition.ts","../../src/components/overlay/tooltip/Tooltip.styles.ts","../../src/components/overlay/tooltip/Tooltip.tsx","../../src/components/data-display/info-bubble/InfoBubble.styles.ts","../../src/components/data-display/info-bubble/InfoBubble.tsx","../../src/components/foundation/skeleton/Skeleton.styles.ts","../../src/components/foundation/skeleton/Skeleton.tsx","../../src/components/forms/form/Form.tsx","../../src/components/forms/switch/Switch.styles.ts","../../src/hooks/common/use-controllable-state/useControllableState.ts","../../src/components/forms/switch/utils/useSwitch.utils.ts","../../src/components/forms/switch/Switch.tsx","../../src/components/layout/box/Box.styles.ts","../../src/components/layout/box/Box.tsx","../../src/components/layout/stack/Stack.tsx","../../src/components/forms/text-field/TextField.styles.ts","../../src/hooks/common/use-merged-refs/useMergedRefs.ts","../../src/components/forms/text-field/utils/useTextField.utils.ts","../../src/components/forms/text-field/TextField.tsx","../../src/components/overlay/menu/Menu.styles.ts","../../src/hooks/common/use-key-press/useKeyPress.ts","../../src/hooks/components/overlay/use-menu-position/useMenuPosition.ts","../../src/components/overlay/menu/utils/useMenu.utils.ts","../../src/components/overlay/menu/menu-group/MenuGroup.styles.ts","../../src/components/overlay/menu/menu-group/MenuGroup.tsx","../../src/components/overlay/menu/menu-item/MenuItem.styles.ts","../../src/components/overlay/menu/menu-item/MenuItem.tsx","../../src/components/overlay/menu/Menu.tsx","../../src/components/forms/select/select-trigger/SelectTrigger.styles.ts","../../src/components/forms/select/select-trigger/SelectTrigger.tsx","../../src/components/forms/select/utils/useSelect.utils.ts","../../src/components/forms/select/Select.tsx","../../src/components/layout/card/Card.styles.ts","../../src/components/layout/card/card-header/CardHeader.tsx","../../src/components/layout/card/card-body/CardBody.tsx","../../src/components/layout/card/Card.tsx","../../src/components/layout/grid/Grid.styles.ts","../../src/components/layout/grid/Grid.tsx","../../src/components/overlay/alert/Alert.context.ts","../../src/components/overlay/alert/alert-title/AlertTitle.tsx","../../src/components/overlay/alert/alert-body/AlertBody.tsx","../../src/components/overlay/alert/Alert.tsx","../../src/constants/breakpoints.constants.ts","../../src/constants/app.constants.ts","../../src/components/overlay/dialog/Dialog.styles.ts","../../src/components/overlay/dialog/Dialog.context.ts","../../src/hooks/common/use-transition-render/useTransitionRender.ts","../../src/hooks/common/use-body-scroll-lock/useBodyScrollLock.ts","../../src/hooks/common/use-focus-trap/useFocusTrap.ts","../../src/components/overlay/dialog/utils/useDialog.utils.ts","../../src/components/overlay/dialog/dialog-header/DialogHeader.tsx","../../src/components/overlay/dialog/dialog-body/DialogBody.tsx","../../src/components/overlay/dialog/Dialog.tsx","../../src/theme/_palettes/lightPalette.ts","../../src/theme/values/themeBreakpoints.ts","../../src/theme/values/themeFontSize.ts","../../src/theme/values/themeFontWeight.ts","../../src/theme/values/themeLineHeight.ts","../../src/theme/values/themeOpacity.ts","../../src/theme/values/themeRadius.ts","../../src/theme/values/themeShadows.ts","../../src/theme/values/themeSpacing.ts","../../src/theme/values/themeTransition.ts","../../src/theme/values/themeZIndex.ts","../../src/theme/themes/lightTheme.ts","../../src/theme/_palettes/darkPalette.ts","../../src/theme/themes/darkTheme.ts"],"sourcesContent":["import AlertErrorIcon from '@resources/assets/icons/AlertErrorIcon.svg?react'\r\nimport AlertInfoIcon from '@resources/assets/icons/AlertInfoIcon.svg?react'\r\nimport AlertSuccessIcon from '@resources/assets/icons/AlertSuccessIcon.svg?react'\r\nimport AlertWarningIcon from '@resources/assets/icons/AlertWarningIcon.svg?react'\r\nimport ChevronDownIcon from '@resources/assets/icons/ChevronDownIcon.svg?react'\r\nimport CloseIcon from '@resources/assets/icons/CloseIcon.svg?react'\r\nimport EyeIcon from '@resources/assets/icons/EyeIcon.svg?react'\r\nimport EyeSlashIcon from '@resources/assets/icons/EyeSlashIcon.svg?react'\r\nimport SpinnerIcon from '@resources/assets/icons/SpinnerIcon.svg?react'\r\n\r\nexport { SpinnerIcon }\r\n\r\nexport const IconRegistry = {\r\n AlertErrorIcon,\r\n AlertInfoIcon,\r\n AlertSuccessIcon,\r\n AlertWarningIcon,\r\n ChevronDownIcon,\r\n CloseIcon,\r\n EyeIcon,\r\n EyeSlashIcon,\r\n SpinnerIcon,\r\n} as const\r\n","import { keyframes } from '@aurora-ds/theme'\r\n\r\nexport const spinAnimation = keyframes({\r\n '0%': { transform: 'rotate(0deg)' },\r\n '100%': { transform: 'rotate(360deg)' },\r\n})\r\n\r\nexport const skeletonShimmerAnimation = keyframes({\r\n '0%': { backgroundPosition: '100% 50%' },\r\n '100%': { backgroundPosition: '0% 50%' },\r\n})\r\n","import { type CompoundVariant, type StyleWithPseudos } from '@aurora-ds/theme'\r\n\r\nimport type { ButtonColor, ButtonVariant } from '@components/actions/button/button.types'\r\nimport type { ButtonIntentMap } from '@components/actions/_common/buttonIntent.types'\r\n\r\nconst APPEARANCES: ButtonVariant[] = ['contained', 'outlined', 'text']\r\n\r\nexport const buildActionButtonVariantBase = (theme: {\r\n colors: Record<string, string>\r\n shadows: Record<string, string>\r\n transition: Record<string, string>\r\n opacity: Record<string, number>\r\n radius: Record<string, string>\r\n}): StyleWithPseudos => ({\r\n position: 'relative',\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n boxSizing: 'border-box',\r\n border: '1px solid transparent',\r\n borderRadius: theme.radius.md,\r\n fontFamily: 'inherit',\r\n userSelect: 'none',\r\n cursor: 'pointer',\r\n outline: 'none',\r\n transition: `background-color ${theme.transition.fast}, border-color ${theme.transition.fast}, color ${theme.transition.fast}, box-shadow ${theme.transition.fast}`,\r\n ':focus-visible': { boxShadow: theme.shadows.focus },\r\n ':disabled': { cursor: 'not-allowed', opacity: theme.opacity.high, boxShadow: 'none' },\r\n})\r\n\r\nexport const buildActionButtonCompoundVariants = (theme: {\r\n colors: Record<string, string>\r\n shadows: Record<string, string>\r\n}): CompoundVariant<{ color: Record<ButtonColor, StyleWithPseudos>; variant: Record<ButtonVariant, StyleWithPseudos> }>[] => {\r\n const c = theme.colors\r\n\r\n const intents: ButtonIntentMap = {\r\n primary: {\r\n main: c.primaryMain, hover: c.primaryHover, active: c.primaryActive,\r\n on: c.primaryOn, subtle: c.primarySubtle, subtleHover: c.primarySubtleHover, subtleActive: c.primarySubtleActive,\r\n fg: c.primaryMain, fgHover: c.primaryHover, border: c.primaryMain,\r\n },\r\n secondary: {\r\n main: c.secondaryMain, hover: c.secondaryHover, active: c.secondaryActive,\r\n on: c.secondaryOn, subtle: c.secondarySubtle, subtleHover: c.secondarySubtleHover, subtleActive: c.secondarySubtleActive,\r\n fg: c.secondaryOn, fgHover: c.secondaryOn, border: c.borderStrong,\r\n },\r\n neutral: {\r\n main: c.defaultMain, hover: c.defaultHover, active: c.defaultActive,\r\n on: c.textInverse, subtle: c.defaultSubtle, subtleHover: c.defaultSubtleHover, subtleActive: c.defaultSubtleActive,\r\n fg: c.defaultMain, fgHover: c.defaultHover, border: c.defaultMain,\r\n },\r\n info: {\r\n main: c.infoMain, hover: c.infoHover, active: c.infoActive,\r\n on: c.infoOn, subtle: c.infoSubtle, subtleHover: c.infoSubtleHover, subtleActive: c.infoSubtleActive,\r\n fg: c.infoMain, fgHover: c.infoHover, border: c.infoMain,\r\n },\r\n success: {\r\n main: c.successMain, hover: c.successHover, active: c.successActive,\r\n on: c.successOn, subtle: c.successSubtle, subtleHover: c.successSubtleHover, subtleActive: c.successSubtleActive,\r\n fg: c.successMain, fgHover: c.successHover, border: c.successMain,\r\n },\r\n warning: {\r\n main: c.warningMain, hover: c.warningHover, active: c.warningActive,\r\n on: c.warningOn, subtle: c.warningSubtle, subtleHover: c.warningSubtleHover, subtleActive: c.warningSubtleActive,\r\n fg: c.warningMain, fgHover: c.warningHover, border: c.warningMain,\r\n },\r\n error: {\r\n main: c.errorMain, hover: c.errorHover, active: c.errorActive,\r\n on: c.errorOn, subtle: c.errorSubtle, subtleHover: c.errorSubtleHover, subtleActive: c.errorSubtleActive,\r\n fg: c.errorMain, fgHover: c.errorHover, border: c.errorMain,\r\n },\r\n }\r\n\r\n const appearanceStyles = (intent: ButtonIntentMap[ButtonColor], appearance: ButtonVariant): StyleWithPseudos => {\r\n if (appearance === 'contained') {\r\n return {\r\n backgroundColor: intent.main,\r\n borderColor: intent.main,\r\n color: intent.on,\r\n boxShadow: theme.shadows.xs,\r\n ':hover:not(:disabled)': { backgroundColor: intent.hover, borderColor: intent.hover, boxShadow: theme.shadows.sm },\r\n ':active:not(:disabled)': { backgroundColor: intent.active, borderColor: intent.active, boxShadow: theme.shadows.none },\r\n }\r\n }\r\n\r\n if (appearance === 'outlined') {\r\n return {\r\n backgroundColor: 'transparent',\r\n borderColor: intent.border,\r\n color: intent.fg,\r\n ':hover:not(:disabled)': { backgroundColor: intent.subtleHover, color: intent.fgHover },\r\n ':active:not(:disabled)': { backgroundColor: intent.subtleActive, borderColor: intent.active, color: intent.active },\r\n }\r\n }\r\n\r\n return {\r\n backgroundColor: 'transparent',\r\n borderColor: 'transparent',\r\n color: intent.fg,\r\n ':hover:not(:disabled)': { backgroundColor: intent.subtleHover, color: intent.fgHover },\r\n ':active:not(:disabled)': { backgroundColor: intent.subtleActive, color: intent.active },\r\n }\r\n }\r\n\r\n return (Object.keys(intents) as ButtonColor[]).flatMap((color) =>\r\n APPEARANCES.map((appearance) => ({\r\n color,\r\n variant: appearance,\r\n styles: appearanceStyles(intents[color], appearance),\r\n }))\r\n ) as CompoundVariant<{ color: Record<ButtonColor, StyleWithPseudos>; variant: Record<ButtonVariant, StyleWithPseudos> }>[]\r\n}\r\n","import { createStyles, createVariants } from '@aurora-ds/theme'\r\n\r\nimport { spinAnimation } from '@constants/animation.constants'\r\nimport { buildActionButtonCompoundVariants, buildActionButtonVariantBase } from '@components/actions/_common/buttonVariants.styles'\r\n\r\nexport const BUTTON_VARIANTS = createVariants((theme) => ({\r\n base: buildActionButtonVariantBase(theme),\r\n variants: {\r\n size: {\r\n sm: { height: '2rem', padding: `0 ${theme.spacing.sm}`, fontSize: theme.fontSize.xs },\r\n md: { height: '2.5rem', padding: `0 ${theme.spacing.md}`, fontSize: theme.fontSize.sm },\r\n lg: { height: '3rem', padding: `0 ${theme.spacing.lg}`, fontSize: theme.fontSize.md },\r\n },\r\n // Appearance/color styling is provided entirely by compoundVariants.\r\n variant: { contained: {}, outlined: {}, text: {} },\r\n color: { primary: {}, secondary: {}, neutral: {}, info: {}, success: {}, warning: {}, error: {} },\r\n },\r\n defaultVariants: { size: 'md', variant: 'contained', color: 'primary' },\r\n compoundVariants: buildActionButtonCompoundVariants(theme),\r\n}), { id: 'button' })\r\n\r\nexport const BUTTON_STYLES = createStyles({\r\n /** Inner wrapper holding icons + label, centered by the button. */\r\n content: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n gap: '0.5em',\r\n },\r\n /** Hidden (but keeps width) while loading. */\r\n contentHidden: { visibility: 'hidden' },\r\n /** Centers the spinner icon over the button content while loading. */\r\n spinnerWrap: {\r\n position: 'absolute',\r\n inset: 0,\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n /** Spinning animation applied to the SpinnerIcon wrapper. */\r\n spinnerIcon: {\r\n animation: `${spinAnimation} 0.75s linear infinite`,\r\n '@media (prefers-reduced-motion: reduce)': { animation: 'none' },\r\n },\r\n}, { id: 'button-extra' })\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport type { IconStyleParams } from '@components/foundation/icon/Icon.props'\r\n\r\nexport const ICON_STYLES = createStyles((theme) => ({\r\n root: ({ size, strokeColor, fill, backgroundColor, padding, borderRadius }: IconStyleParams) => ({\r\n boxSizing: 'content-box' as const,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n overflow: 'hidden',\r\n transition: `color ${theme.transition.fast}, fill ${theme.transition.fast}`,\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 backgroundColor: backgroundColor ? theme.colors[backgroundColor] : undefined,\r\n padding: padding ? theme.spacing[padding] : 0,\r\n borderRadius: theme.radius[borderRadius ?? 'none'],\r\n '& svg': {\r\n color: strokeColor ? theme.colors[strokeColor] : undefined,\r\n stroke: strokeColor ? theme.colors[strokeColor] : undefined,\r\n },\r\n '& svg [fill=\"currentColor\"], & svg[fill=\"currentColor\"]': {\r\n fill: fill ? theme.colors[fill] : undefined,\r\n },\r\n }),\r\n}))\r\n","import { ICON_STYLES } from '@components/foundation/icon/Icon.styles'\r\nimport type { IconProps } from '@components/foundation/icon/Icon.props'\r\nimport type { FC } from 'react'\r\n\r\n/**\r\n * Renders an SVG icon inside a theme-aware wrapper.\r\n *\r\n * @example <Icon icon={MenuIcon} size='md' strokeColor='primaryMain' />\r\n * @example <Icon icon={CloseIcon} strokeColor='textInverse' backgroundColor='primaryMain' padding='sm' borderRadius='full' />\r\n */\r\nconst Icon: FC<IconProps> = (\r\n {\r\n ref,\r\n icon: SvgIcon,\r\n size,\r\n strokeColor,\r\n fill,\r\n backgroundColor,\r\n padding,\r\n borderRadius,\r\n className,\r\n role,\r\n ...rest\r\n }\r\n) => {\r\n const generatedClassName = ICON_STYLES.root({ size, strokeColor, fill, backgroundColor, padding, borderRadius })\r\n const mergedClassName = className ? `${generatedClassName} ${className}` : generatedClassName\r\n const isLabelled = Boolean(rest['aria-label'] || rest['aria-labelledby'])\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className={mergedClassName}\r\n aria-hidden={isLabelled ? undefined : true}\r\n role={role ?? (isLabelled ? 'img' : 'presentation')}\r\n {...rest}\r\n >\r\n <SvgIcon\r\n width={'100%'}\r\n height={'100%'}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nIcon.displayName = 'Icon'\r\n\r\nexport default Icon\r\n","import type { TextVariants, TextVariantStyle } from '@components/foundation/text/text.types'\r\nimport type { Theme } from '@theme/theme.types'\r\n\r\n/** Returns the baseline font styles for each text variant. */\r\nexport const getTextVariantStyles = (theme: Theme): Record<TextVariants, TextVariantStyle> => ({\r\n h1: {\r\n tag: 'h1',\r\n fontSize: theme.fontSize['3xl'],\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['2xl'],\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.xl,\r\n fontWeight: theme.fontWeight.semibold,\r\n lineHeight: theme.lineHeight.tight,\r\n },\r\n h4: {\r\n tag: 'h4',\r\n fontSize: theme.fontSize.lg,\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.md,\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 strong: {\r\n tag: 'strong',\r\n fontSize: theme.fontSize.sm,\r\n fontWeight: theme.fontWeight.bold,\r\n lineHeight: theme.lineHeight.normal,\r\n },\r\n})\r\n","import { createStyles } from '@aurora-ds/theme'\r\nimport { getTextVariantStyles } from '@components/foundation/text/utils/getTextVariantStyles.utils'\r\n\r\nimport type { TextStyleParams } from '@components/foundation/text/Text.props'\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 fontWeight,\r\n lineHeight,\r\n fontFamily,\r\n underline,\r\n strikethrough,\r\n italic,\r\n noWrap,\r\n preserveWhitespace,\r\n width,\r\n textTransform,\r\n letterSpacing,\r\n textAlign,\r\n }: TextStyleParams) => {\r\n const textDecoration =\r\n underline && strikethrough\r\n ? 'underline line-through'\r\n : underline\r\n ? 'underline'\r\n : strikethrough\r\n ? 'line-through'\r\n : undefined\r\n\r\n return {\r\n margin: 0,\r\n padding: 0,\r\n fontSize: fontSize ? theme.fontSize[fontSize] : variantStyles[variant].fontSize,\r\n fontWeight: fontWeight ? theme.fontWeight[fontWeight] : variantStyles[variant].fontWeight,\r\n lineHeight: lineHeight ? theme.lineHeight[lineHeight] : variantStyles[variant].lineHeight,\r\n color: color ? theme.colors[color] : 'inherit',\r\n cursor: 'inherit',\r\n ...(width !== undefined && { width }),\r\n ...(fontFamily && { fontFamily }),\r\n ...(textTransform && { textTransform }),\r\n ...(letterSpacing !== undefined && { letterSpacing }),\r\n ...(textAlign && { textAlign }),\r\n ...(italic && { fontStyle: 'italic' }),\r\n // noWrap and preserveWhitespace are mutually exclusive; noWrap wins.\r\n // Truncation (maxLines/truncate) injects whiteSpace via inline style — both are ignored there.\r\n ...(noWrap\r\n ? { whiteSpace: 'nowrap' as const }\r\n : preserveWhitespace\r\n ? { whiteSpace: 'pre-wrap' as const }\r\n : {}),\r\n ...(textDecoration && {\r\n textDecoration,\r\n ...(underline && { textUnderlineOffset: '3px' }),\r\n }),\r\n }\r\n },\r\n }\r\n})\r\n","/**\r\n * Returns inline CSS styles to truncate text with an ellipsis.\r\n *\r\n * - 1 line → classic `white-space: nowrap` + `text-overflow: ellipsis` (best browser support)\r\n * - n lines → `-webkit-line-clamp` (supported in all modern browsers)\r\n */\r\nexport const getTruncateTextStyles = (maxLines: number) => {\r\n if (maxLines === 1) {\r\n return {\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap' as const,\r\n }\r\n }\r\n\r\n return {\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 whiteSpace: 'normal' as const,\r\n overflowWrap: 'break-word' as const,\r\n wordBreak: 'break-word' as const,\r\n }\r\n}\r\n","import { createElement, Fragment, type 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 { TEXT_STYLES } from '@components/foundation/text/Text.styles'\r\nimport { getTextVariantStyles } from '@components/foundation/text/utils/getTextVariantStyles.utils'\r\nimport { getTruncateTextStyles } from '@components/foundation/text/utils/getTruncateTextStyles.utils'\r\nimport { parseTextWithBold } from '@components/foundation/text/utils/parseTextWithBold.utils'\r\nimport { createElement, type FC } from 'react'\r\n\r\nimport type { TextProps } from '@components/foundation/text/Text.props'\r\n\r\n/**\r\n * Renders a semantic HTML text element with theme-aware styling.\r\n *\r\n * @example <Text variant='h1' color='text.primary'>Title</Text>\r\n * @example <Text variant='p' maxLines={2}>Long content…</Text>\r\n * @example <Text variant='h1' as='h2'>h1 styles, h2 semantics</Text>\r\n * @example <Text variant='label' htmlFor='email'>Email</Text>\r\n * @example <Text>Hello **world**!</Text> // → Hello <strong>world</strong>!\r\n */\r\nconst Text: FC<TextProps> = (\r\n {\r\n ref,\r\n children,\r\n variant = 'span',\r\n as,\r\n color,\r\n fontSize,\r\n fontWeight,\r\n lineHeight,\r\n fontFamily,\r\n width,\r\n textTransform,\r\n letterSpacing,\r\n textAlign,\r\n underline,\r\n strikethrough,\r\n italic,\r\n maxLines,\r\n truncate,\r\n noWrap,\r\n preserveWhitespace,\r\n htmlFor,\r\n className,\r\n style,\r\n ...rest\r\n }\r\n) => {\r\n const theme = useTheme()\r\n const variantStyles = getTextVariantStyles(theme)\r\n\r\n const effectiveLines = truncate ? 1 : maxLines\r\n const tag = as ?? variantStyles[variant].tag\r\n const parsedChildren = parseTextWithBold(children)\r\n const truncateStyles = effectiveLines ? getTruncateTextStyles(effectiveLines) : undefined\r\n\r\n const generatedClassName = TEXT_STYLES.root({\r\n variant,\r\n color,\r\n fontSize,\r\n fontWeight,\r\n lineHeight,\r\n fontFamily,\r\n underline,\r\n strikethrough,\r\n italic,\r\n noWrap: effectiveLines ? false : noWrap,\r\n preserveWhitespace,\r\n width,\r\n textTransform,\r\n letterSpacing,\r\n textAlign,\r\n })\r\n\r\n const mergedClassName = className ? `${generatedClassName} ${className}` : generatedClassName\r\n const mergedStyle = truncateStyles ? { ...truncateStyles, ...style } : style\r\n\r\n return createElement(\r\n tag,\r\n {\r\n ref,\r\n className: mergedClassName,\r\n style: mergedStyle,\r\n ...(tag === 'label' && htmlFor !== undefined ? { htmlFor } : {}),\r\n ...rest,\r\n },\r\n parsedChildren\r\n )\r\n}\r\n\r\nexport default Text\r\n","import { cx } from '@aurora-ds/theme'\r\n\r\nimport { SpinnerIcon } from '@resources/Icons'\r\nimport { BUTTON_STYLES, BUTTON_VARIANTS } from '@components/actions/button/Button.styles'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\n\r\nimport type { Theme } from '@theme/theme.types'\r\nimport type { ButtonProps } from '@components/actions/button/Button.props'\r\nimport type { ButtonSize } from '@components/actions/button/button.types'\r\nimport type { FC } from 'react'\r\n\r\n/** Maps the button size to a Text font-size token so the label scales with the button. */\r\nconst LABEL_FONT_SIZE: Record<ButtonSize, keyof Theme['fontSize']> = {\r\n sm: 'xs',\r\n md: 'sm',\r\n lg: 'md',\r\n}\r\n\r\n/** Maps the button size to an Icon size token. */\r\nconst ICON_SIZE: Record<ButtonSize, keyof Theme['fontSize']> = {\r\n sm: 'sm',\r\n md: 'md',\r\n lg: 'lg',\r\n}\r\n\r\n/**\r\n * Theme-aware button built on `createVariants`.\r\n *\r\n * @example <Button label='Save' onClick={save} />\r\n * @example <Button label='Delete' variant='outlined' color='error' startIcon={IconRegistry.CloseIcon} />\r\n * @example <Button label='Submitting…' color='success' isLoading width='100%' />\r\n */\r\nconst Button: FC<ButtonProps> = (\r\n {\r\n ref,\r\n variant = 'contained',\r\n color = 'primary',\r\n size = 'md',\r\n width,\r\n flexGrow,\r\n flexShrink,\r\n isLoading = false,\r\n startIcon: StartIcon,\r\n endIcon: EndIcon,\r\n label,\r\n className,\r\n type = 'button',\r\n disabled,\r\n style,\r\n ...rest\r\n }\r\n) => {\r\n const isDisabled = disabled || isLoading\r\n const iconSize = ICON_SIZE[size]\r\n\r\n const rootClassName = BUTTON_VARIANTS({ variant, color, size }, className)\r\n const mergedStyle = {\r\n ...style,\r\n ...(width !== undefined ? { width } : {}),\r\n ...(flexGrow !== undefined ? { flexGrow } : {}),\r\n ...(flexShrink !== undefined ? { flexShrink } : {}),\r\n }\r\n\r\n return (\r\n <button\r\n ref={ref}\r\n type={type}\r\n className={rootClassName}\r\n disabled={isDisabled}\r\n aria-busy={isLoading || undefined}\r\n style={mergedStyle}\r\n {...rest}\r\n >\r\n {isLoading && (\r\n <span className={BUTTON_STYLES.spinnerWrap}>\r\n <Icon\r\n icon={SpinnerIcon}\r\n size={iconSize}\r\n className={BUTTON_STYLES.spinnerIcon}\r\n />\r\n </span>\r\n )}\r\n\r\n <span className={cx(BUTTON_STYLES.content, isLoading && BUTTON_STYLES.contentHidden)}>\r\n {StartIcon && (\r\n <Icon\r\n icon={StartIcon}\r\n size={iconSize}\r\n />\r\n )}\r\n\r\n {label && (\r\n <Text\r\n variant={'span'}\r\n fontSize={LABEL_FONT_SIZE[size]}\r\n fontWeight={'medium'}\r\n lineHeight={'none'}\r\n >\r\n {label}\r\n </Text>\r\n )}\r\n\r\n {EndIcon && (\r\n <Icon\r\n icon={EndIcon}\r\n size={iconSize}\r\n />\r\n )}\r\n </span>\r\n </button>\r\n )\r\n}\r\n\r\nButton.displayName = 'Button'\r\n\r\nexport default Button\r\n","import { createStyles, createVariants } from '@aurora-ds/theme'\r\n\r\nimport { spinAnimation } from '@constants/animation.constants'\r\nimport { buildActionButtonCompoundVariants, buildActionButtonVariantBase } from '@components/actions/_common/buttonVariants.styles'\r\n\r\nexport const ICON_BUTTON_VARIANTS = createVariants((theme) => ({\r\n base: buildActionButtonVariantBase(theme),\r\n variants: {\r\n size: {\r\n sm: { width: '2rem', height: '2rem', padding: '0' },\r\n md: { width: '2.5rem', height: '2.5rem', padding: '0' },\r\n lg: { width: '3rem', height: '3rem', padding: '0' },\r\n },\r\n variant: { contained: {}, outlined: {}, text: {} },\r\n color: { primary: {}, secondary: {}, neutral: {}, info: {}, success: {}, warning: {}, error: {} },\r\n },\r\n defaultVariants: { size: 'md', variant: 'contained', color: 'primary' },\r\n compoundVariants: buildActionButtonCompoundVariants(theme),\r\n}), { id: 'icon-button' })\r\n\r\nexport const ICON_BUTTON_STYLES = createStyles({\r\n /** Spinning animation applied to the SpinnerIcon. */\r\n spinnerIcon: {\r\n animation: `${spinAnimation} 0.75s linear infinite`,\r\n '@media (prefers-reduced-motion: reduce)': { animation: 'none' },\r\n },\r\n /** Hidden (but keeps size) while loading. */\r\n iconHidden: { visibility: 'hidden' },\r\n /** Centers the spinner icon absolutely over the button while loading. */\r\n spinnerWrap: {\r\n position: 'absolute',\r\n inset: 0,\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n}, { id: 'icon-button-extra' })\r\n","import { cx } from '@aurora-ds/theme'\r\n\r\nimport { SpinnerIcon } from '@resources/Icons'\r\nimport { ICON_BUTTON_STYLES, ICON_BUTTON_VARIANTS } from '@components/actions/icon-button/IconButton.styles'\r\nimport { Icon } from '@components/foundation/icon'\r\n\r\nimport type { Theme } from '@theme/theme.types'\r\nimport type { ButtonSize } from '@components/actions/button/button.types'\r\nimport type { IconButtonProps } from '@components/actions/icon-button/IconButton.props'\r\nimport type { FC } from 'react'\r\n\r\n/** Maps the icon-button size to an Icon size token. */\r\nconst ICON_SIZE: Record<ButtonSize, keyof Theme['fontSize']> = {\r\n sm: 'sm',\r\n md: 'md',\r\n lg: 'lg',\r\n}\r\n\r\n/**\r\n * Square icon-only button.\r\n * `ariaLabel` is mandatory since there is no visible text.\r\n *\r\n * @example <IconButton icon={CloseIcon} ariaLabel={t('common.close')} />\r\n * @example <IconButton icon={DeleteIcon} ariaLabel={t('actions.delete')} variant='outlined' color='error' />\r\n * @example <IconButton icon={SaveIcon} ariaLabel={t('actions.save')} isLoading />\r\n */\r\nconst IconButton: FC<IconButtonProps> = (\r\n {\r\n ref,\r\n icon: IconComponent,\r\n ariaLabel,\r\n variant = 'contained',\r\n color = 'primary',\r\n size = 'md',\r\n isLoading = false,\r\n className,\r\n type = 'button',\r\n disabled,\r\n ...rest\r\n }\r\n) => {\r\n const isDisabled = disabled || isLoading\r\n const iconSize = ICON_SIZE[size]\r\n\r\n const rootClassName = ICON_BUTTON_VARIANTS(\r\n { variant, color, size },\r\n className\r\n )\r\n\r\n return (\r\n <button\r\n ref={ref}\r\n type={type}\r\n className={rootClassName}\r\n disabled={isDisabled}\r\n aria-label={ariaLabel}\r\n aria-busy={isLoading || undefined}\r\n {...rest}\r\n >\r\n {isLoading && (\r\n <span className={ICON_BUTTON_STYLES.spinnerWrap}>\r\n <Icon\r\n icon={SpinnerIcon}\r\n size={iconSize}\r\n className={ICON_BUTTON_STYLES.spinnerIcon}\r\n />\r\n </span>\r\n )}\r\n\r\n <Icon\r\n icon={IconComponent}\r\n size={iconSize}\r\n className={cx(isLoading && ICON_BUTTON_STYLES.iconHidden)}\r\n />\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\nimport type { LinkStyleParams } from '@components/actions/link/Link.props'\r\n\r\nexport const LINK_STYLES = createStyles((theme) => ({\r\n root: ({ underline = 'hover' }: LinkStyleParams) => ({\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n gap: '0.25em',\r\n color: theme.colors.linkMain,\r\n fontFamily: 'inherit',\r\n fontSize: 'inherit',\r\n lineHeight: 'inherit',\r\n fontWeight: 'inherit',\r\n textDecoration: underline === 'always' ? 'underline' : 'none',\r\n cursor: 'pointer',\r\n borderRadius: theme.radius.xs,\r\n transition: `color ${theme.transition.fast}`,\r\n ':hover:not([aria-disabled=\"true\"])': {\r\n color: theme.colors.linkHover,\r\n textDecoration: underline !== 'none' ? 'underline' : 'none',\r\n },\r\n ':active:not([aria-disabled=\"true\"])': {\r\n color: theme.colors.linkActive,\r\n },\r\n ':focus-visible': {\r\n outline: `2px solid ${theme.colors.linkMain}`,\r\n outlineOffset: '2px',\r\n },\r\n '&[aria-disabled=\"true\"]': {\r\n color: theme.colors.linkDisabled,\r\n cursor: 'not-allowed',\r\n textDecoration: 'none',\r\n },\r\n }),\r\n icon: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n flexShrink: 0,\r\n width: '1em',\r\n height: '1em',\r\n },\r\n}), { id: 'link' })\r\n","import { cx } from '@aurora-ds/theme'\n\nimport { LINK_STYLES } from '@components/actions/link/Link.styles'\n\nimport type { LinkProps } from '@components/actions/link/Link.props'\nimport type { FC, MouseEvent, KeyboardEvent } from 'react'\n\n/**\n * Theme-aware anchor element with optional icons and underline control.\n *\n * @example <Link href='/about'>About</Link>\n * @example <Link href='https://example.com' external>External site</Link>\n * @example <Link href='/profile' underline='always' startIcon={UserIcon}>Profile</Link>\n * @example <Link href='/terms' underline='none'>Terms</Link>\n */\nconst Link: FC<LinkProps> = (\n {\n ref,\n underline = 'hover',\n external = false,\n disabled = false,\n startIcon: StartIcon,\n endIcon: EndIcon,\n children,\n className,\n onClick,\n onKeyDown,\n ...rest\n }\n) => {\n const handleClick = (e: MouseEvent<HTMLAnchorElement>) => {\n if (disabled) {\n e.preventDefault()\n return\n }\n onClick?.(e)\n }\n\n // Prevents Enter navigation when disabled; satisfies jsx-a11y/click-events-have-key-events.\n const handleKeyDown = (e: KeyboardEvent<HTMLAnchorElement>) => {\n if (disabled && e.key === 'Enter') {\n e.preventDefault()\n }\n onKeyDown?.(e)\n }\n\n return (\n <a\n ref={ref}\n className={cx(LINK_STYLES.root({ underline }), className)}\n aria-disabled={disabled || undefined}\n tabIndex={disabled ? -1 : undefined}\n target={external ? '_blank' : undefined}\n rel={external ? 'noopener noreferrer' : undefined}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n {...rest}\n >\n {StartIcon && (\n <span\n className={LINK_STYLES.icon}\n aria-hidden={true}\n >\n <StartIcon\n width={'1em'}\n height={'1em'}\n />\n </span>\n )}\n\n {children}\n\n {EndIcon && (\n <span\n className={LINK_STYLES.icon}\n aria-hidden={true}\n >\n <EndIcon\n width={'1em'}\n height={'1em'}\n />\n </span>\n )}\n </a>\n )\n}\n\nLink.displayName = 'Link'\n\nexport default Link\n","import type { BadgeColor, BadgeVariant } from '@components/data-display/badge/badge.types'\r\n\r\nconst BADGE_VARIANTS_LIST: BadgeVariant[] = ['filled', 'outlined', 'subtle', 'subtleOutlined']\r\n\r\ntype BadgeIntent = {\r\n bg: string\r\n on: string\r\n fg: string\r\n fgStrong: string\r\n subtle: string\r\n border: string\r\n}\r\n\r\n/**\r\n * Builds compound variants combining `variant` × `color` for the Badge.\r\n * Returns one entry per (color, variant) pair with static color styles.\r\n */\r\nexport const buildBadgeCompoundVariants = (theme: { colors: Record<string, string> }) => {\r\n const c = theme.colors\r\n\r\n const intents: Record<BadgeColor, BadgeIntent> = {\r\n default: {\r\n bg: c.defaultMain,\r\n on: c.textInverse,\r\n fg: c.defaultMain,\r\n fgStrong: c.defaultHover,\r\n subtle: c.defaultSubtle,\r\n border: c.defaultMain,\r\n },\r\n primary: {\r\n bg: c.primaryMain,\r\n on: c.primaryOn,\r\n fg: c.primaryMain,\r\n fgStrong: c.primaryHover,\r\n subtle: c.primarySubtle,\r\n border: c.primaryMain,\r\n },\r\n secondary: {\r\n bg: c.secondaryMain,\r\n on: c.secondaryOn,\r\n fg: c.secondaryOn,\r\n fgStrong: c.secondaryOn,\r\n subtle: c.secondarySubtle,\r\n border: c.borderStrong,\r\n },\r\n success: {\r\n bg: c.successMain,\r\n on: c.successOn,\r\n fg: c.successMain,\r\n fgStrong: c.successHover,\r\n subtle: c.successSubtle,\r\n border: c.successMain,\r\n },\r\n warning: {\r\n bg: c.warningMain,\r\n on: c.warningOn,\r\n fg: c.warningMain,\r\n fgStrong: c.warningHover,\r\n subtle: c.warningSubtle,\r\n border: c.warningMain,\r\n },\r\n error: {\r\n bg: c.errorMain,\r\n on: c.errorOn,\r\n fg: c.errorMain,\r\n fgStrong: c.errorHover,\r\n subtle: c.errorSubtle,\r\n border: c.errorMain,\r\n },\r\n info: {\r\n bg: c.infoMain,\r\n on: c.infoOn,\r\n fg: c.infoMain,\r\n fgStrong: c.infoHover,\r\n subtle: c.infoSubtle,\r\n border: c.infoMain,\r\n },\r\n orange: {\r\n bg: c.orangeMain,\r\n on: c.orangeOn,\r\n fg: c.orangeMain,\r\n fgStrong: c.orangeHover,\r\n subtle: c.orangeSubtle,\r\n border: c.orangeMain,\r\n },\r\n pink: {\r\n bg: c.pinkMain,\r\n on: c.pinkOn,\r\n fg: c.pinkMain,\r\n fgStrong: c.pinkHover,\r\n subtle: c.pinkSubtle,\r\n border: c.pinkMain,\r\n },\r\n violet: {\r\n bg: c.violetMain,\r\n on: c.violetOn,\r\n fg: c.violetMain,\r\n fgStrong: c.violetHover,\r\n subtle: c.violetSubtle,\r\n border: c.violetMain,\r\n },\r\n }\r\n\r\n const getColorStyles = (intent: BadgeIntent, appearance: BadgeVariant) => {\r\n if (appearance === 'filled') {\r\n return {\r\n backgroundColor: intent.bg,\r\n borderColor: intent.bg,\r\n color: intent.on,\r\n }\r\n }\r\n\r\n if (appearance === 'outlined') {\r\n return {\r\n backgroundColor: 'transparent',\r\n borderColor: intent.border,\r\n color: intent.fgStrong,\r\n }\r\n }\r\n\r\n if (appearance === 'subtleOutlined') {\r\n return {\r\n backgroundColor: intent.subtle,\r\n borderColor: intent.border,\r\n color: intent.fgStrong,\r\n }\r\n }\r\n\r\n // subtle\r\n return {\r\n backgroundColor: intent.subtle,\r\n borderColor: 'transparent',\r\n color: intent.fgStrong,\r\n }\r\n }\r\n\r\n return (Object.keys(intents) as BadgeColor[]).flatMap((color) =>\r\n BADGE_VARIANTS_LIST.map((variant) => ({\r\n color,\r\n variant,\r\n styles: getColorStyles(intents[color], variant),\r\n }))\r\n )\r\n}\r\n","import { createVariants } from '@aurora-ds/theme'\r\nimport { buildBadgeCompoundVariants } from '@components/data-display/badge/utils/getBadgeColorStyles.utils'\r\n\r\nexport const BADGE_VARIANTS = createVariants((theme) => ({\r\n base: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n gap: theme.spacing.xs,\r\n boxSizing: 'border-box' as const,\r\n borderRadius: theme.radius.full,\r\n border: '1px solid transparent',\r\n fontFamily: 'inherit',\r\n fontWeight: theme.fontWeight.medium,\r\n lineHeight: theme.lineHeight.none,\r\n whiteSpace: 'nowrap' as const,\r\n userSelect: 'none' as const,\r\n },\r\n variants: {\r\n size: {\r\n sm: {\r\n height: '1.25rem',\r\n padding: `0.125rem ${theme.spacing['xs+']}`,\r\n fontSize: theme.fontSize['2xs'],\r\n },\r\n md: {\r\n height: '1.5rem',\r\n padding: `0.1875rem ${theme.spacing.sm}`,\r\n fontSize: theme.fontSize.xs,\r\n },\r\n lg: {\r\n height: '2rem',\r\n padding: `0.25rem ${theme.spacing.md}`,\r\n fontSize: theme.fontSize.sm,\r\n },\r\n },\r\n // Appearance and color styling is handled entirely by compoundVariants.\r\n variant: { filled: {}, outlined: {}, subtle: {}, subtleOutlined: {} },\r\n color: {\r\n default: {},\r\n primary: {},\r\n secondary: {},\r\n success: {},\r\n warning: {},\r\n error: {},\r\n info: {},\r\n orange: {},\r\n pink: {},\r\n violet: {},\r\n },\r\n },\r\n defaultVariants: { size: 'md', variant: 'subtle', color: 'default' },\r\n compoundVariants: buildBadgeCompoundVariants(theme),\r\n}), { id: 'badge' })\r\n","import { useTheme } from '@aurora-ds/theme'\r\nimport { BADGE_VARIANTS } from '@components/data-display/badge/Badge.styles'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\n\r\nimport type { BadgeProps } from '@components/data-display/badge/Badge.props'\r\nimport type { BadgeSize } from '@components/data-display/badge/badge.types'\r\nimport type { Theme } from '@theme/theme.types'\r\nimport type { CSSProperties, FC } from 'react'\r\n\r\n/** Maps badge size to an Icon size token. */\r\nconst ICON_SIZE: Record<BadgeSize, keyof Theme['fontSize']> = {\r\n sm: 'xs',\r\n md: 'xs',\r\n lg: 'sm',\r\n}\r\n\r\n/** Maps badge size to a Text font-size token. */\r\nconst LABEL_FONT_SIZE: Record<BadgeSize, keyof Theme['fontSize']> = {\r\n sm: '2xs',\r\n md: 'xs',\r\n lg: 'sm',\r\n}\r\n\r\n/** Diameter of the dot indicator per size. */\r\nconst DOT_SIZE: Record<BadgeSize, string> = {\r\n sm: '0.375rem',\r\n md: '0.5rem',\r\n lg: '0.625rem',\r\n}\r\n\r\n/**\r\n * Compact label used to convey status, category or count information.\r\n *\r\n * @example <Badge color='success'>Active</Badge>\r\n * @example <Badge variant='outlined' color='error'>Critical</Badge>\r\n * @example <Badge variant='filled' color='primary' size='sm' startIcon={StarIcon}>Featured</Badge>\r\n * @example <Badge dot color='warning' />\r\n */\r\nconst Badge: FC<BadgeProps> = (\r\n {\r\n ref,\r\n variant = 'subtle',\r\n color = 'default',\r\n size = 'md',\r\n borderRadius = 'sm',\r\n startIcon: StartIcon,\r\n endIcon: EndIcon,\r\n icon,\r\n dot = false,\r\n children,\r\n className,\r\n style,\r\n ...rest\r\n }\r\n) => {\r\n const theme = useTheme()\r\n const rootClassName = BADGE_VARIANTS({ variant, color, size }, className)\r\n const resolvedBorderRadius = borderRadius ? theme.radius[borderRadius] : undefined\r\n const effectiveStartIcon = StartIcon ?? icon\r\n\r\n if (dot) {\r\n const dotStyle: CSSProperties = {\r\n width: DOT_SIZE[size],\r\n height: DOT_SIZE[size],\r\n minWidth: DOT_SIZE[size],\r\n padding: 0,\r\n border: 'none',\r\n borderRadius: resolvedBorderRadius ?? '9999px',\r\n }\r\n return (\r\n <span\r\n ref={ref}\r\n className={rootClassName}\r\n style={{ ...dotStyle, ...style }}\r\n aria-hidden={true}\r\n {...rest}\r\n />\r\n )\r\n }\r\n\r\n return (\r\n <span\r\n ref={ref}\r\n className={rootClassName}\r\n style={{ ...(resolvedBorderRadius ? { borderRadius: resolvedBorderRadius } : {}), ...style }}\r\n {...rest}\r\n >\r\n {effectiveStartIcon && (\r\n <Icon\r\n icon={effectiveStartIcon}\r\n size={ICON_SIZE[size]}\r\n />\r\n )}\r\n\r\n {children !== undefined && children !== null && (\r\n <Text\r\n variant={'span'}\r\n fontSize={LABEL_FONT_SIZE[size]}\r\n fontWeight={'medium'}\r\n lineHeight={'none'}\r\n >\r\n {children}\r\n </Text>\r\n )}\r\n\r\n {EndIcon && (\r\n <Icon\r\n icon={EndIcon}\r\n size={ICON_SIZE[size]}\r\n />\r\n )}\r\n </span>\r\n )\r\n}\r\n\r\nBadge.displayName = 'Badge'\r\n\r\nexport default Badge\r\n","import { useCallback, useEffect, useRef, useState } from 'react'\r\nimport type { UseTooltipPositionOptions, UseTooltipPositionResult, TooltipPosition } from '@hooks/components/overlay/use-tooltip-position/useTooltipPosition.types'\r\nimport type { TooltipPlacement } from '@components/overlay/tooltip/Tooltip.props'\r\n\r\nconst VIEWPORT_MARGIN_PX = 8\r\nconst GAP_PX = 6\r\nconst FADE_IN_DELAY_MS = 10\r\n\r\n/**\r\n * Computes and continuously updates the `position: fixed` coordinates for a\r\n * tooltip bubble, clamping it to the viewport on all four sides.\r\n *\r\n * Positioning strategy (two-pass):\r\n * - First pass: mount the bubble at the preferred position.\r\n * - Second pass (rAF): read the actual rendered size and clamp all sides.\r\n *\r\n * Handles:\r\n * - All four placements: top, bottom, left, right.\r\n * - Screen-edge clamping so the tooltip never overflows any side.\r\n * - Fade-in animation (sets `isFadingIn` on next tick to trigger CSS transition).\r\n * - Mouse/focus event handlers for show/hide.\r\n */\r\nexport const useTooltipPosition = ({\r\n placement,\r\n}: UseTooltipPositionOptions): UseTooltipPositionResult => {\r\n const wrapperRef = useRef<HTMLDivElement>(null)\r\n const bubbleRef = useRef<HTMLDivElement>(null)\r\n const [isVisible, setIsVisible] = useState(false)\r\n const [isFadingIn, setIsFadingIn] = useState(false)\r\n const [position, setPosition] = useState<TooltipPosition>({ top: 0, left: 0 })\r\n const showTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null)\r\n\r\n const computePosition = useCallback(\r\n (currentPlacement: TooltipPlacement = placement) => {\r\n const trigger = wrapperRef.current\r\n const bubble = bubbleRef.current\r\n if (!trigger) {return}\r\n\r\n const rect = trigger.getBoundingClientRect()\r\n const bubbleW = bubble?.offsetWidth ?? 0\r\n const bubbleH = bubble?.offsetHeight ?? 0\r\n\r\n let top = 0\r\n let left = 0\r\n\r\n switch (currentPlacement) {\r\n case 'top':\r\n top = rect.top - bubbleH - GAP_PX\r\n left = rect.left + rect.width / 2 - bubbleW / 2\r\n break\r\n case 'bottom':\r\n top = rect.bottom + GAP_PX\r\n left = rect.left + rect.width / 2 - bubbleW / 2\r\n break\r\n case 'left':\r\n top = rect.top + rect.height / 2 - bubbleH / 2\r\n left = rect.left - bubbleW - GAP_PX\r\n break\r\n case 'right':\r\n top = rect.top + rect.height / 2 - bubbleH / 2\r\n left = rect.right + GAP_PX\r\n break\r\n }\r\n\r\n // Clamp horizontally\r\n const maxLeft = window.innerWidth - bubbleW - VIEWPORT_MARGIN_PX\r\n left = Math.max(VIEWPORT_MARGIN_PX, Math.min(left, maxLeft))\r\n\r\n // Clamp vertically\r\n const maxTop = window.innerHeight - bubbleH - VIEWPORT_MARGIN_PX\r\n top = Math.max(VIEWPORT_MARGIN_PX, Math.min(top, maxTop))\r\n\r\n setPosition({ top, left })\r\n },\r\n [placement],\r\n )\r\n\r\n const show = useCallback(() => {\r\n setIsVisible(true)\r\n // Defer isFadingIn so the initial render (opacity 0) is committed first,\r\n // then the transition fires on the next paint.\r\n showTimerRef.current = setTimeout(() => {\r\n setIsFadingIn(true)\r\n requestAnimationFrame(() => computePosition())\r\n }, FADE_IN_DELAY_MS)\r\n }, [computePosition])\r\n\r\n const hide = useCallback(() => {\r\n if (showTimerRef.current !== null) {\r\n clearTimeout(showTimerRef.current)\r\n showTimerRef.current = null\r\n }\r\n setIsVisible(false)\r\n setIsFadingIn(false)\r\n }, [])\r\n\r\n // Re-compute on scroll or resize while visible\r\n useEffect(() => {\r\n if (!isVisible) {return}\r\n const handleUpdate = () => requestAnimationFrame(() => computePosition())\r\n window.addEventListener('scroll', handleUpdate, true)\r\n window.addEventListener('resize', handleUpdate)\r\n return () => {\r\n window.removeEventListener('scroll', handleUpdate, true)\r\n window.removeEventListener('resize', handleUpdate)\r\n }\r\n }, [isVisible, computePosition])\r\n\r\n // Second-pass: once the bubble mounts, recompute with actual dimensions\r\n useEffect(() => {\r\n if (isVisible && bubbleRef.current) {\r\n const id = requestAnimationFrame(() => computePosition())\r\n return () => cancelAnimationFrame(id)\r\n }\r\n }, [isVisible, computePosition])\r\n\r\n // Cleanup timers on unmount\r\n useEffect(() => {\r\n return () => {\r\n if (showTimerRef.current !== null) {clearTimeout(showTimerRef.current)}\r\n }\r\n }, [])\r\n\r\n return {\r\n wrapperRef,\r\n bubbleRef,\r\n isVisible,\r\n isFadingIn,\r\n position,\r\n handleMouseEnter: show,\r\n handleMouseLeave: hide,\r\n handleFocus: show,\r\n handleBlur: hide,\r\n handleClick: hide,\r\n }\r\n}\r\n","import { createStyles } from '@aurora-ds/theme'\r\nimport type { TooltipPlacement } from '@components/overlay/tooltip/Tooltip.props'\r\n\r\ntype TooltipBubbleStyleParams = {\r\n placement: TooltipPlacement\r\n isFadingIn: boolean\r\n width: number\r\n}\r\n\r\ntype CaretStyleParams = {\r\n placement: TooltipPlacement\r\n}\r\n\r\nexport const TOOLTIP_STYLES = createStyles((theme) => {\r\n const CARET_OUTER: Record<TooltipPlacement, object> = {\r\n top: { bottom: -6, left: '50%', transform: 'translateX(-50%)', borderLeft: '6px solid transparent', borderRight: '6px solid transparent', borderTop: `6px solid ${theme.colors.borderMain}` },\r\n bottom: { top: -6, left: '50%', transform: 'translateX(-50%)', borderLeft: '6px solid transparent', borderRight: '6px solid transparent', borderBottom: `6px solid ${theme.colors.borderMain}` },\r\n left: { right: -6, top: '50%', transform: 'translateY(-50%)', borderTop: '6px solid transparent', borderBottom: '6px solid transparent', borderLeft: `6px solid ${theme.colors.borderMain}` },\r\n right: { left: -6, top: '50%', transform: 'translateY(-50%)', borderTop: '6px solid transparent', borderBottom: '6px solid transparent', borderRight: `6px solid ${theme.colors.borderMain}` },\r\n }\r\n\r\n const CARET_INNER: Record<TooltipPlacement, object> = {\r\n top: { bottom: -5, left: '50%', transform: 'translateX(-50%)', borderLeft: '5px solid transparent', borderRight: '5px solid transparent', borderTop: `5px solid ${theme.colors.surfacePaper}` },\r\n bottom: { top: -5, left: '50%', transform: 'translateX(-50%)', borderLeft: '5px solid transparent', borderRight: '5px solid transparent', borderBottom: `5px solid ${theme.colors.surfacePaper}` },\r\n left: { right: -5, top: '50%', transform: 'translateY(-50%)', borderTop: '5px solid transparent', borderBottom: '5px solid transparent', borderLeft: `5px solid ${theme.colors.surfacePaper}` },\r\n right: { left: -5, top: '50%', transform: 'translateY(-50%)', borderTop: '5px solid transparent', borderBottom: '5px solid transparent', borderRight: `5px solid ${theme.colors.surfacePaper}` },\r\n }\r\n\r\n return {\r\n wrapper: {\r\n display: 'flex',\r\n width: '100%',\r\n },\r\n wrapperInline: {\r\n display: 'inline-flex',\r\n width: 'auto',\r\n },\r\n bubble: ({ isFadingIn, width }: TooltipBubbleStyleParams) => ({\r\n position: 'fixed' as const,\r\n opacity: isFadingIn ? 1 : 0,\r\n transform: `scale(${isFadingIn ? 1 : 0.95})`,\r\n transformOrigin: 'center',\r\n transition: `opacity ${theme.transition.fast}, transform ${theme.transition.fast}`,\r\n backgroundColor: theme.colors.surfacePaper,\r\n border: `1px solid ${theme.colors.borderMain}`,\r\n borderRadius: theme.radius.md,\r\n padding: theme.spacing.sm,\r\n // filter: drop-shadow follows the painted shape including CSS-triangle carets,\r\n // unlike box-shadow which is clipped to the rectangular border-box.\r\n filter: theme.shadows.dropSm,\r\n pointerEvents: 'none' as const,\r\n maxWidth: width,\r\n whiteSpace: 'normal' as const,\r\n wordBreak: 'break-word' as const,\r\n overflowWrap: 'break-word' as const,\r\n zIndex: theme.zIndex.tooltip,\r\n color: theme.colors.textPrimary,\r\n }),\r\n caretOuter: ({ placement }: CaretStyleParams) => ({\r\n position: 'absolute' as const,\r\n width: 0,\r\n height: 0,\r\n ...CARET_OUTER[placement],\r\n }),\r\n caretInner: ({ placement }: CaretStyleParams) => ({\r\n position: 'absolute' as const,\r\n width: 0,\r\n height: 0,\r\n ...CARET_INNER[placement],\r\n }),\r\n }\r\n})\r\n","import { cloneElement, isValidElement, useId, type FC } from 'react'\r\nimport { createPortal } from 'react-dom'\r\n\r\nimport { useTooltipPosition } from '@hooks/components/overlay/use-tooltip-position/useTooltipPosition'\r\nimport { TOOLTIP_STYLES } from '@components/overlay/tooltip/Tooltip.styles'\r\nimport { Text } from '@components/foundation/text'\r\n\r\nimport type { TooltipProps } from '@components/overlay/tooltip/Tooltip.props'\r\n\r\n/** Returns true when the primary input is a touch/pointer-coarse device (mobile). */\r\nconst isTouchDevice = (): boolean =>\r\n typeof window !== 'undefined' && window.matchMedia('(pointer: coarse)').matches\r\n\r\nconst DEFAULT_WIDTH = 200\r\n\r\n/**\r\n * Tooltip\r\n *\r\n * A hover/focus-triggered tooltip rendered in a portal to avoid clipping\r\n * by parent `overflow: hidden` containers. Computes its fixed position from\r\n * the trigger element's bounding rect and clamps it to the viewport on all sides.\r\n *\r\n * **Placements:** `top` | `bottom` | `left` | `right` (default)\r\n *\r\n * By default the tooltip is disabled on touch/mobile devices (`pointer: coarse`).\r\n * Set `disableOnMobile={false}` to keep it active on mobile (e.g. InfoBubble).\r\n *\r\n * @example\r\n * ```tsx\r\n * <Tooltip label=\"Save document\" placement=\"top\">\r\n * <Button>Save</Button>\r\n * </Tooltip>\r\n * ```\r\n */\r\nconst Tooltip: FC<TooltipProps> = ({\r\n children,\r\n label,\r\n placement = 'right',\r\n disabled = false,\r\n inline = false,\r\n withArrow = false,\r\n width = DEFAULT_WIDTH,\r\n hideOnClick = true,\r\n disableOnMobile = true,\r\n}) => {\r\n const tooltipId = useId()\r\n const isEffectivelyDisabled = disabled || (disableOnMobile && isTouchDevice())\r\n\r\n const {\r\n wrapperRef,\r\n bubbleRef,\r\n isVisible,\r\n isFadingIn,\r\n position,\r\n handleMouseEnter,\r\n handleMouseLeave,\r\n handleFocus,\r\n handleBlur,\r\n handleClick,\r\n } = useTooltipPosition({ placement })\r\n\r\n // Inject aria-describedby on the direct child so screen readers associate\r\n // the tooltip text with the focused trigger element. Also forward handleClick\r\n // on the child itself (instead of the wrapper div) to satisfy a11y rules.\r\n const trigger = !isEffectivelyDisabled && isValidElement<Record<string, unknown>>(children)\r\n ? cloneElement(children, {\r\n 'aria-describedby': tooltipId,\r\n ...(hideOnClick && { onClick: handleClick }),\r\n })\r\n : children\r\n\r\n return (\r\n <div\r\n ref={wrapperRef}\r\n className={inline ? TOOLTIP_STYLES.wrapperInline : TOOLTIP_STYLES.wrapper}\r\n onMouseEnter={isEffectivelyDisabled ? undefined : handleMouseEnter}\r\n onMouseLeave={isEffectivelyDisabled ? undefined : handleMouseLeave}\r\n onFocus={isEffectivelyDisabled ? undefined : handleFocus}\r\n onBlur={isEffectivelyDisabled ? undefined : handleBlur}\r\n >\r\n {trigger}\r\n {!isEffectivelyDisabled && isVisible && createPortal(\r\n <div\r\n ref={bubbleRef}\r\n id={tooltipId}\r\n className={TOOLTIP_STYLES.bubble({ placement, isFadingIn, width })}\r\n style={{ top: position.top, left: position.left }}\r\n role={'tooltip'}\r\n aria-live={'polite'}\r\n >\r\n <Text fontSize={'sm'}>\r\n {label}\r\n </Text>\r\n {withArrow && (\r\n <>\r\n <div className={TOOLTIP_STYLES.caretOuter({ placement })} />\r\n <div className={TOOLTIP_STYLES.caretInner({ placement })} />\r\n </>\r\n )}\r\n </div>,\r\n document.body,\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nTooltip.displayName = 'Tooltip'\r\n\r\nexport default Tooltip\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const INFO_BUBBLE_STYLES = createStyles((theme) => ({\r\n trigger: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n cursor: 'pointer',\r\n // Ensure the icon is keyboard-focusable and shows focus ring\r\n outline: 'none',\r\n border: 'none',\r\n aspectRatio: '1 !important',\r\n flexShrink: 0,\r\n backgroundColor: 'transparent',\r\n margin: 0,\r\n padding: theme.spacing.xs,\r\n ':focus-visible': {\r\n boxShadow: theme.shadows.focus,\r\n },\r\n },\r\n}))\r\n","import { type FC } from 'react'\r\nimport { Tooltip } from '@components/overlay/tooltip'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { INFO_BUBBLE_STYLES } from '@components/data-display/info-bubble/InfoBubble.styles'\r\nimport { IconRegistry } from '@resources/Icons'\r\n\r\nimport type { InfoBubbleProps } from '@components/data-display/info-bubble/InfoBubble.props'\r\n\r\n/**\r\n * InfoBubble\r\n *\r\n * An info icon with an attached tooltip. Unlike the regular `Tooltip`, the\r\n * tooltip is **not** disabled on mobile — users can tap the icon to read the\r\n * information on touch devices.\r\n *\r\n * @example\r\n * ```tsx\r\n * <InfoBubble label=\"This field is required for compliance.\" />\r\n * ```\r\n *\r\n * @example\r\n * ```tsx\r\n * <InfoBubble label=\"Detailed explanation\" placement=\"right\" withArrow={false} />\r\n * ```\r\n */\r\nconst InfoBubble: FC<InfoBubbleProps> = ({\r\n label,\r\n placement = 'top',\r\n width = 200,\r\n withArrow = true,\r\n}) => {\r\n return (\r\n <Tooltip\r\n label={label}\r\n placement={placement}\r\n width={width}\r\n withArrow={withArrow}\r\n inline={true}\r\n hideOnClick={false}\r\n disableOnMobile={false}\r\n >\r\n <button\r\n type={'button'}\r\n className={INFO_BUBBLE_STYLES.trigger}\r\n aria-label={label}\r\n tabIndex={0}\r\n >\r\n <Icon\r\n icon={IconRegistry.AlertInfoIcon}\r\n size={'sm'}\r\n strokeColor={'textSecondary'}\r\n />\r\n </button>\r\n </Tooltip>\r\n )\r\n}\r\n\r\nInfoBubble.displayName = 'InfoBubble'\r\n\r\nexport default InfoBubble\r\n","import { createVariants } from '@aurora-ds/theme'\r\n\r\nimport { skeletonShimmerAnimation } from '@constants/animation.constants'\r\n\r\nexport const SKELETON_VARIANTS = createVariants((theme) => ({\r\n base: {\r\n display: 'block',\r\n boxSizing: 'border-box',\r\n backgroundColor: theme.colors.skeletonPrimary,\r\n overflow: 'hidden',\r\n },\r\n variants: {\r\n variant: {\r\n /** Inline-text placeholder: em-relative height, slight vertical scale. */\r\n text: {\r\n borderRadius: theme.radius.sm,\r\n height: '1em',\r\n transform: 'scale(1, 0.6)',\r\n transformOrigin: '0 60%',\r\n width: '100%',\r\n },\r\n /** Fully rounded placeholder for avatars and icons. */\r\n circular: {\r\n borderRadius: theme.radius.full,\r\n },\r\n /** Sharp-cornered placeholder for images and media blocks. */\r\n rectangular: {\r\n borderRadius: '0',\r\n },\r\n /** Softly rounded placeholder for cards and chips. */\r\n rounded: {\r\n borderRadius: theme.radius.md,\r\n },\r\n },\r\n animation: {\r\n /** Sliding gradient highlight from right to left. */\r\n shimmer: {\r\n background: `linear-gradient(90deg, ${theme.colors.skeletonPrimary} 25%, ${theme.colors.skeletonSecondary} 50%, ${theme.colors.skeletonPrimary} 75%)`,\r\n backgroundSize: '400% 100%',\r\n animation: `${skeletonShimmerAnimation} 2.5s linear infinite`,\r\n '@media (prefers-reduced-motion: reduce)': { animation: 'none' },\r\n },\r\n /** No animation. */\r\n none: {},\r\n },\r\n },\r\n defaultVariants: { variant: 'rounded', animation: 'shimmer' },\r\n}), { id: 'skeleton' })\r\n","import { SKELETON_VARIANTS } from '@components/foundation/skeleton/Skeleton.styles'\r\n\r\nimport type { SkeletonProps } from '@components/foundation/skeleton/Skeleton.props'\r\nimport type { FC } from 'react'\r\n\r\n/**\r\n * Block-level placeholder rendered while content is loading.\r\n *\r\n * @example // Text line\r\n * <Skeleton variant='text' width={200} />\r\n *\r\n * @example // Avatar\r\n * <Skeleton variant='circular' width={40} height={40} />\r\n *\r\n * @example // Card thumbnail\r\n * <Skeleton variant='rounded' width='100%' height={160} />\r\n *\r\n * @example // No animation\r\n * <Skeleton variant='rectangular' width='100%' height={80} animation={false} />\r\n */\r\nconst Skeleton: FC<SkeletonProps> = (\r\n {\r\n ref,\r\n variant = 'rectangular',\r\n animation = 'shimmer',\r\n width,\r\n height,\r\n className,\r\n style,\r\n ...rest\r\n }\r\n) => (\r\n <span\r\n ref={ref}\r\n className={SKELETON_VARIANTS(\r\n { variant, animation: animation === false ? 'none' : animation },\r\n className,\r\n )}\r\n style={{ width, height, ...style }}\r\n aria-hidden={true}\r\n {...rest}\r\n />\r\n)\r\n\r\nSkeleton.displayName = 'Skeleton'\r\n\r\nexport default Skeleton\r\n","import type { FC, FormEvent } from 'react'\r\n\r\nimport type { FormProps } from '@components/forms/form/Form.props'\r\n\r\n/**\r\n * Thin wrapper around `<form>`. Prevents the default browser submit and\r\n * delegates to the `onSubmit` callback.\r\n *\r\n * @example\r\n * <Form onSubmit={handleSubmit}>\r\n * <TextField label=\"Email\" />\r\n * <Button type=\"submit\">Send</Button>\r\n * </Form>\r\n */\r\nconst Form: FC<FormProps> = ({\r\n children,\r\n onSubmit,\r\n 'aria-label': ariaLabel,\r\n 'aria-labelledby': ariaLabelledBy,\r\n}) => {\r\n const handleSubmit = (event: FormEvent<HTMLFormElement>) => {\r\n event.preventDefault()\r\n onSubmit(event)\r\n }\r\n\r\n return (\r\n <form\r\n onSubmit={handleSubmit}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n noValidate\r\n >\r\n {children}\r\n </form>\r\n )\r\n}\r\n\r\nForm.displayName = 'Form'\r\n\r\nexport default Form\r\n","import { type CompoundVariant, createStyles, createVariants, type StyleWithPseudos } from '@aurora-ds/theme'\r\n\r\nimport type { SwitchColor } from '@components/forms/switch/switch.types'\r\n\r\n// sm → track 2rem × 1.125rem | thumb 0.875rem | checked left: 1rem\r\n// md → track 2.75rem × 1.5rem | thumb 1.25rem | checked left: 1.375rem\r\n// lg → track 3.5rem × 2rem | thumb 1.75rem | checked left: 1.625rem\r\n\r\nexport const SWITCH_TRACK_VARIANTS = createVariants((theme) => {\r\n const c = theme.colors\r\n\r\n const colorTokens: Record<SwitchColor, string> = {\r\n primary: c.primaryMain,\r\n success: c.successMain,\r\n error: c.errorMain,\r\n warning: c.warningMain,\r\n info: c.infoMain,\r\n neutral: c.defaultMain,\r\n }\r\n\r\n const compoundVariants = (Object.keys(colorTokens) as SwitchColor[]).map((color) => ({\r\n color,\r\n checked: 'true' as const,\r\n disabled: 'false' as const,\r\n styles: { backgroundColor: colorTokens[color] },\r\n })) as CompoundVariant<{\r\n color: Record<SwitchColor, StyleWithPseudos>\r\n size: Record<'sm' | 'md' | 'lg', StyleWithPseudos>\r\n checked: Record<'true' | 'false', StyleWithPseudos>\r\n disabled: Record<'true' | 'false', StyleWithPseudos>\r\n }>[]\r\n\r\n return {\r\n base: {\r\n position: 'relative' as const,\r\n display: 'inline-block',\r\n flexShrink: 0,\r\n borderRadius: theme.radius.full,\r\n backgroundColor: c.disabledMain,\r\n cursor: 'pointer',\r\n transition: `background-color ${theme.transition.fast}, box-shadow ${theme.transition.fast}`,\r\n },\r\n variants: {\r\n size: {\r\n sm: { width: '2rem', height: '1.125rem' },\r\n md: { width: '2.75rem', height: '1.5rem' },\r\n lg: { width: '3.5rem', height: '2rem' },\r\n },\r\n color: {\r\n primary: {}, success: {}, error: {}, warning: {}, info: {}, neutral: {},\r\n },\r\n checked: { true: {}, false: {} },\r\n disabled: { true: { cursor: 'not-allowed' }, false: {} },\r\n },\r\n defaultVariants: { size: 'md', color: 'primary', checked: 'false', disabled: 'false' },\r\n compoundVariants,\r\n }\r\n}, { id: 'switch-track' })\r\n\r\nexport const SWITCH_THUMB_VARIANTS = createVariants((theme) => ({\r\n base: {\r\n position: 'absolute' as const,\r\n top: '0.125rem',\r\n left: '0.125rem',\r\n borderRadius: theme.radius.full,\r\n backgroundColor: theme.colors.textInverse,\r\n boxShadow: theme.shadows.xs,\r\n transition: `left ${theme.transition.fast}`,\r\n pointerEvents: 'none' as const,\r\n },\r\n variants: {\r\n size: {\r\n sm: { width: '0.875rem', height: '0.875rem' },\r\n md: { width: '1.25rem', height: '1.25rem' },\r\n lg: { width: '1.75rem', height: '1.75rem' },\r\n },\r\n checked: { true: {}, false: {} },\r\n },\r\n defaultVariants: { size: 'md', checked: 'false' },\r\n compoundVariants: [\r\n { size: 'sm', checked: 'true', styles: { left: '1rem' } },\r\n { size: 'md', checked: 'true', styles: { left: '1.375rem' } },\r\n { size: 'lg', checked: 'true', styles: { left: '1.625rem' } },\r\n ],\r\n}), { id: 'switch-thumb' })\r\n\r\nexport const SWITCH_STYLES = createStyles((theme) => ({\r\n root: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n cursor: 'pointer',\r\n userSelect: 'none',\r\n '&[data-disabled]': {\r\n cursor: 'not-allowed',\r\n opacity: theme.opacity.high,\r\n },\r\n },\r\n input: {\r\n position: 'absolute',\r\n width: '1px',\r\n height: '1px',\r\n padding: '0',\r\n margin: '-1px',\r\n overflow: 'hidden',\r\n clip: 'rect(0, 0, 0, 0)',\r\n whiteSpace: 'nowrap',\r\n borderWidth: '0',\r\n },\r\n}), { id: 'switch-extra' })\r\n","import { useCallback, useRef, useState } from 'react'\r\n\r\nimport type {\r\n UseControllableStateOptions,\r\n UseControllableStateResult,\r\n} from '@hooks/common/use-controllable-state/useControllableState.types'\r\n\r\n/**\r\n * Unifies controlled and uncontrolled value handling.\r\n *\r\n * - When `value` is provided the hook is controlled: the returned value mirrors\r\n * it and internal state is never used to render.\r\n * - Otherwise it is uncontrolled: state starts at `defaultValue` and updates\r\n * internally.\r\n *\r\n * In both modes `setValue` calls `onChange` with the next value, so consumers\r\n * have a single code path regardless of mode.\r\n *\r\n * @example\r\n * const [value, setValue] = useControllableState({ value, defaultValue: '', onChange })\r\n */\r\nexport const useControllableState = <T>({\r\n value,\r\n defaultValue,\r\n onChange,\r\n}: UseControllableStateOptions<T>): UseControllableStateResult<T> => {\r\n const isControlled = value !== undefined\r\n const [internalValue, setInternalValue] = useState<T>(defaultValue)\r\n\r\n const onChangeRef = useRef(onChange)\r\n onChangeRef.current = onChange\r\n\r\n const resolvedValue = isControlled ? (value as T) : internalValue\r\n\r\n const setValue = useCallback(\r\n (next: T) => {\r\n if (!isControlled) {\r\n setInternalValue(next)\r\n }\r\n onChangeRef.current?.(next)\r\n },\r\n [isControlled]\r\n )\r\n\r\n return [resolvedValue, setValue]\r\n}\r\n","import { ChangeEvent, InputHTMLAttributes, useCallback, useId } from 'react'\r\n\r\nimport { useControllableState } from '@hooks/common/use-controllable-state/useControllableState'\r\n\r\nimport type { SwitchProps } from '@components/forms/switch/Switch.props'\r\n\r\ntype UseSwitchParams = Pick<SwitchProps, 'id' | 'checked' | 'defaultChecked' | 'onChange'>\r\n\r\ntype UseSwitchReturn = {\r\n /** Resolved id (provided or generated) wiring the label to the input. */\r\n switchId: string\r\n /** Whether the switch is visually checked. */\r\n isChecked: boolean\r\n /** Props to spread on the native input — controlled or uncontrolled, never both. */\r\n inputValueProps: Pick<InputHTMLAttributes<HTMLInputElement>, 'checked' | 'defaultChecked' | 'onChange'>\r\n}\r\n\r\n/**\r\n * Business logic for the Switch component: id resolution and\r\n * controlled/uncontrolled checked state handling.\r\n */\r\nexport const useSwitch = ({ id, checked, defaultChecked, onChange }: UseSwitchParams): UseSwitchReturn => {\r\n const generatedId = useId()\r\n const switchId = id ?? generatedId\r\n\r\n const [isChecked, setChecked] = useControllableState<boolean>({\r\n value: checked,\r\n defaultValue: defaultChecked ?? false,\r\n })\r\n\r\n const handleChange = useCallback(\r\n (event: ChangeEvent<HTMLInputElement>) => {\r\n setChecked(event.target.checked)\r\n onChange?.(event)\r\n },\r\n [setChecked, onChange]\r\n )\r\n\r\n const inputValueProps = checked !== undefined\r\n ? { checked, onChange: handleChange }\r\n : { defaultChecked: defaultChecked ?? false, onChange: handleChange }\r\n\r\n return { switchId, isChecked, inputValueProps }\r\n}\r\n","import { type FC } from 'react'\r\n\r\nimport {\r\n SWITCH_STYLES,\r\n SWITCH_THUMB_VARIANTS,\r\n SWITCH_TRACK_VARIANTS,\r\n} from '@components/forms/switch/Switch.styles'\r\nimport { Text } from '@components/foundation/text'\r\nimport { useSwitch } from '@components/forms/switch/utils/useSwitch.utils'\r\n\r\nimport type { SwitchProps } from '@components/forms/switch/Switch.props'\r\n\r\n/**\r\n * Accessible toggle switch built on `<input type=\"checkbox\" role=\"switch\">`.\r\n *\r\n * Supports controlled (`checked` + `onChange`) and uncontrolled (`defaultChecked`) modes.\r\n *\r\n * @example <Switch label='Enable notifications' defaultChecked />\r\n * @example <Switch checked={isEnabled} onChange={(e) => setEnabled(e.target.checked)} color='success' size='lg' />\r\n */\r\nconst Switch: FC<SwitchProps> = (\r\n {\r\n ref,\r\n label,\r\n size = 'md',\r\n color = 'primary',\r\n id,\r\n checked,\r\n defaultChecked,\r\n disabled,\r\n onChange,\r\n ...rest\r\n }\r\n) => {\r\n const { switchId, isChecked, inputValueProps } = useSwitch({ id, checked, defaultChecked, onChange })\r\n const checkedVariant = isChecked ? 'true' : 'false'\r\n\r\n return (\r\n <label\r\n htmlFor={switchId}\r\n className={SWITCH_STYLES.root}\r\n data-disabled={disabled || undefined}\r\n >\r\n <span className={SWITCH_TRACK_VARIANTS({ size, color, checked: checkedVariant, disabled: disabled ? 'true' : 'false' })}>\r\n <input\r\n ref={ref}\r\n id={switchId}\r\n type={'checkbox'}\r\n role={'switch'}\r\n disabled={disabled}\r\n className={SWITCH_STYLES.input}\r\n {...inputValueProps}\r\n {...rest}\r\n />\r\n <span\r\n aria-hidden={'true'}\r\n className={SWITCH_THUMB_VARIANTS({ size, checked: checkedVariant })}\r\n />\r\n </span>\r\n\r\n {label !== undefined && (\r\n <Text\r\n variant={'span'}\r\n fontSize={'sm'}\r\n >\r\n {label}\r\n </Text>\r\n )}\r\n </label>\r\n )\r\n}\r\n\r\nSwitch.displayName = 'Switch'\r\n\r\nexport default Switch\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport type { Theme } from '@theme/theme.types'\r\nimport type { BoxStyleProps } from '@components/layout/box/Box.props'\r\n\r\nexport const BOX_STYLES = createStyles((theme) => ({\r\n root: ({\r\n // Display\r\n display,\r\n // Dimensions\r\n width, height, minWidth, maxWidth, minHeight, maxHeight,\r\n // Padding\r\n padding, paddingTop, paddingRight, paddingBottom, paddingLeft, px, py,\r\n // Margin\r\n margin, marginTop, marginRight, marginBottom, marginLeft, mx, my,\r\n // Flex / grid container\r\n gap, rowGap, columnGap,\r\n flexDirection, flexWrap, alignItems, justifyContent,\r\n gridTemplateColumns, gridTemplateRows,\r\n // Flex / grid item\r\n flex, flexGrow, flexShrink, flexBasis,\r\n alignSelf, justifySelf, gridColumn, gridRow, order,\r\n // Position\r\n position, top, right, bottom, left, inset, zIndex,\r\n // Overflow\r\n overflow, overflowX, overflowY,\r\n // Appearance\r\n backgroundColor, color, borderRadius, boxShadow,\r\n border, borderColor, borderWidth, borderStyle, textAlign, cursor, opacity,\r\n }: BoxStyleProps) => {\r\n // Local casts: our token types are structurally identical to the aurora theme sub-objects.\r\n const sp = theme.spacing as Record<keyof Theme['spacing'], string>\r\n const cl = theme.colors as Record<keyof Theme['colors'], string>\r\n const rd = theme.radius as Record<keyof Theme['radius'], string>\r\n const sh = theme.shadows as Record<keyof Theme['shadows'], string>\r\n const zi = theme.zIndex as Record<keyof Theme['zIndex'], number>\r\n\r\n return {\r\n boxSizing: 'border-box' as const,\r\n\r\n // Display\r\n ...(display !== undefined && { display }),\r\n\r\n // Dimensions\r\n ...(width !== undefined && { width }),\r\n ...(height !== undefined && { height }),\r\n ...(minWidth !== undefined && { minWidth }),\r\n ...(maxWidth !== undefined && { maxWidth }),\r\n ...(minHeight !== undefined && { minHeight }),\r\n ...(maxHeight !== undefined && { maxHeight }),\r\n\r\n // Padding — shorthands first, explicit per-side props override (last key wins).\r\n ...(px !== undefined && { paddingLeft: sp[px], paddingRight: sp[px] }),\r\n ...(py !== undefined && { paddingTop: sp[py], paddingBottom: sp[py] }),\r\n ...(padding !== undefined && { padding: sp[padding] }),\r\n ...(paddingTop !== undefined && { paddingTop: sp[paddingTop] }),\r\n ...(paddingRight !== undefined && { paddingRight: sp[paddingRight] }),\r\n ...(paddingBottom !== undefined && { paddingBottom: sp[paddingBottom] }),\r\n ...(paddingLeft !== undefined && { paddingLeft: sp[paddingLeft] }),\r\n\r\n // Margin\r\n ...(mx !== undefined && { marginLeft: sp[mx], marginRight: sp[mx] }),\r\n ...(my !== undefined && { marginTop: sp[my], marginBottom: sp[my] }),\r\n ...(margin !== undefined && { margin: sp[margin] }),\r\n ...(marginTop !== undefined && { marginTop: sp[marginTop] }),\r\n ...(marginRight !== undefined && { marginRight: sp[marginRight] }),\r\n ...(marginBottom !== undefined && { marginBottom: sp[marginBottom] }),\r\n ...(marginLeft !== undefined && { marginLeft: sp[marginLeft] }),\r\n\r\n // Flex / grid container\r\n ...(gap !== undefined && { gap: sp[gap] }),\r\n ...(rowGap !== undefined && { rowGap: sp[rowGap] }),\r\n ...(columnGap !== undefined && { columnGap: sp[columnGap] }),\r\n ...(flexDirection !== undefined && { flexDirection }),\r\n ...(flexWrap !== undefined && { flexWrap }),\r\n ...(alignItems !== undefined && { alignItems }),\r\n ...(justifyContent !== undefined && { justifyContent }),\r\n ...(gridTemplateColumns !== undefined && { gridTemplateColumns }),\r\n ...(gridTemplateRows !== undefined && { gridTemplateRows }),\r\n\r\n // Flex / grid item\r\n ...(flex !== undefined && { flex }),\r\n ...(flexGrow !== undefined && { flexGrow }),\r\n ...(flexShrink !== undefined && { flexShrink }),\r\n ...(flexBasis !== undefined && { flexBasis }),\r\n ...(alignSelf !== undefined && { alignSelf }),\r\n ...(justifySelf !== undefined && { justifySelf }),\r\n ...(gridColumn !== undefined && { gridColumn }),\r\n ...(gridRow !== undefined && { gridRow }),\r\n ...(order !== undefined && { order }),\r\n\r\n // Position\r\n ...(position !== undefined && { position }),\r\n ...(top !== undefined && { top }),\r\n ...(right !== undefined && { right }),\r\n ...(bottom !== undefined && { bottom }),\r\n ...(left !== undefined && { left }),\r\n ...(inset !== undefined && { inset }),\r\n ...(zIndex !== undefined && { zIndex: zi[zIndex] }),\r\n\r\n // Overflow\r\n ...(overflow !== undefined && { overflow }),\r\n ...(overflowX !== undefined && { overflowX }),\r\n ...(overflowY !== undefined && { overflowY }),\r\n\r\n // Appearance\r\n ...(backgroundColor !== undefined && { backgroundColor: cl[backgroundColor] }),\r\n ...(color !== undefined && { color: cl[color] }),\r\n ...(borderRadius !== undefined && { borderRadius: rd[borderRadius] }),\r\n ...(boxShadow !== undefined && { boxShadow: sh[boxShadow] }),\r\n ...(border !== undefined && { border }),\r\n ...(borderColor !== undefined && { borderColor: cl[borderColor] }),\r\n ...(borderWidth !== undefined && { borderWidth }),\r\n ...(borderStyle !== undefined && { borderStyle }),\r\n ...(textAlign !== undefined && { textAlign }),\r\n ...(cursor !== undefined && { cursor }),\r\n ...(opacity !== undefined && { opacity }),\r\n }\r\n },\r\n}))\r\n","import { cx } from '@aurora-ds/theme'\r\n\r\nimport { BOX_STYLES } from '@components/layout/box/Box.styles'\r\n\r\nimport type { BoxProps } from '@components/layout/box/Box.props'\r\nimport type { FC } from 'react'\r\n\r\n/**\r\n * A plain `div` enriched with convenient, token-aware style props.\r\n *\r\n * Spacing / color / radius / shadow / z-index props accept theme tokens only\r\n * (e.g. `padding='md'`, `backgroundColor='surfacePaper'`).\r\n * Dimensions and position offsets accept any CSS value.\r\n * All native `div` attributes are forwarded, and `ref` points to the element.\r\n *\r\n * @example <Box padding='md' backgroundColor='surfacePaper' borderRadius='lg'>Content</Box>\r\n * @example <Box display='flex' gap='sm' alignItems='center'>…</Box>\r\n */\r\nconst Box: FC<BoxProps> = (\r\n {\r\n ref,\r\n display,\r\n width, height, minWidth, maxWidth, minHeight, maxHeight,\r\n padding, paddingTop, paddingRight, paddingBottom, paddingLeft, px, py,\r\n margin, marginTop, marginRight, marginBottom, marginLeft, mx, my,\r\n gap, rowGap, columnGap,\r\n flexDirection, flexWrap, alignItems, justifyContent, gridTemplateColumns, gridTemplateRows,\r\n flex, flexGrow, flexShrink, flexBasis, alignSelf, justifySelf, gridColumn, gridRow, order,\r\n position, top, right, bottom, left, inset, zIndex,\r\n overflow, overflowX, overflowY,\r\n backgroundColor, color, borderRadius, boxShadow,\r\n border, borderColor, borderWidth, borderStyle, textAlign, cursor, opacity,\r\n style,\r\n className,\r\n children,\r\n ...rest\r\n }\r\n) => {\r\n const generatedClassName = BOX_STYLES.root({\r\n display,\r\n width, height, minWidth, maxWidth, minHeight, maxHeight,\r\n padding, paddingTop, paddingRight, paddingBottom, paddingLeft, px, py,\r\n margin, marginTop, marginRight, marginBottom, marginLeft, mx, my,\r\n gap, rowGap, columnGap,\r\n flexDirection, flexWrap, alignItems, justifyContent, gridTemplateColumns, gridTemplateRows,\r\n flex, flexGrow, flexShrink, flexBasis, alignSelf, justifySelf, gridColumn, gridRow, order,\r\n position, top, right, bottom, left, inset, zIndex,\r\n overflow, overflowX, overflowY,\r\n backgroundColor, color, borderRadius, boxShadow,\r\n border, borderColor, borderWidth, borderStyle, textAlign, cursor, opacity,\r\n })\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className={cx(generatedClassName, className)}\r\n style={style}\r\n {...rest}\r\n >\r\n {children}\r\n </div>\r\n )\r\n}\r\n\r\nBox.displayName = 'Box'\r\n\r\nexport default Box\r\n","import { Box } from '@components/layout/box'\r\n\r\nimport type { StackProps } from '@components/layout/stack/Stack.props'\r\nimport type { FC } from 'react'\r\n\r\n/**\r\n * A flex `Box` for laying out children along a single axis.\r\n *\r\n * Defaults to `display: flex` and a vertical (`column`) direction. Every\r\n * `Box` style prop is available (`gap`, `alignItems`, `justifyContent`, …),\r\n * and `display` can still be overridden (e.g. `'inline-flex'`).\r\n *\r\n * @example <Stack gap='sm'>…</Stack>\r\n * @example <Stack flexDirection='row' gap='md' alignItems='center' justifyContent='space-between'>…</Stack>\r\n */\r\nconst Stack: FC<StackProps> = (\r\n {\r\n flexDirection = 'row',\r\n display = 'flex',\r\n gap = 'sm',\r\n ...rest\r\n }\r\n) => (\r\n <Box\r\n display={display}\r\n flexDirection={flexDirection}\r\n gap={gap}\r\n {...rest}\r\n />\r\n)\r\n\r\nStack.displayName = 'Stack'\r\n\r\nexport default Stack\r\n","import { createStyles, createVariants } from '@aurora-ds/theme'\r\n\r\nexport const TEXTFIELD_WRAPPER_VARIANTS = createVariants((theme) => {\r\n const c = theme.colors\r\n\r\n return {\r\n base: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n boxSizing: 'border-box',\r\n borderWidth: '1px',\r\n borderStyle: 'solid',\r\n borderRadius: theme.radius.md,\r\n backgroundColor: c.surfacePaper,\r\n transition: `border-color ${theme.transition.fast}`,\r\n '&[data-disabled]': {\r\n opacity: theme.opacity.high,\r\n backgroundColor: c.disabledMain,\r\n cursor: 'not-allowed',\r\n },\r\n },\r\n variants: {\r\n size: {\r\n // Font-size is set on the wrapper so the native input inherits it via `fontSize: 'inherit'`.\r\n sm: { height: '2rem', paddingLeft: theme.spacing.sm, paddingRight: theme.spacing.xs, fontSize: theme.fontSize.xs },\r\n md: { height: '2.5rem', paddingLeft: theme.spacing.sm, paddingRight: theme.spacing.xs, fontSize: theme.fontSize.sm },\r\n lg: { height: '3rem', paddingLeft: theme.spacing.md, paddingRight: theme.spacing.sm, fontSize: theme.fontSize.md },\r\n },\r\n status: {\r\n default: {\r\n borderColor: c.borderMain,\r\n ':hover:not(:focus-within)': { borderColor: c.borderStrong },\r\n ':focus-within': { borderColor: c.primaryMain },\r\n },\r\n error: {\r\n borderColor: c.errorMain,\r\n ':focus-within': { borderColor: c.errorMain },\r\n },\r\n success: {\r\n borderColor: c.successMain,\r\n ':focus-within': { borderColor: c.successMain },\r\n },\r\n warning: {\r\n borderColor: c.warningMain,\r\n ':focus-within': { borderColor: c.warningMain },\r\n },\r\n },\r\n },\r\n defaultVariants: { size: 'md', status: 'default' },\r\n }\r\n}, { id: 'textfield-wrapper' })\r\n\r\nexport const TEXTFIELD_STYLES = createStyles((theme) => ({\r\n /** Visually hidden native input — fills the remaining space inside the wrapper. */\r\n input: {\r\n flex: 1,\r\n minWidth: 0,\r\n border: 'none',\r\n outline: 'none',\r\n background: 'transparent',\r\n color: theme.colors.textPrimary,\r\n fontFamily: 'inherit',\r\n fontSize: 'inherit',\r\n lineHeight: 'normal',\r\n padding: '0',\r\n '&::placeholder': { color: theme.colors.textTertiary },\r\n '&:disabled': { cursor: 'not-allowed', color: theme.colors.textDisabled },\r\n },\r\n /** Wrapper for the start icon — aligned with the input baseline. Clickable to focus the input. */\r\n startIconWrap: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexShrink: 0,\r\n cursor: 'pointer',\r\n },\r\n /** Wrapper for end actions (custom content + optional password toggle). */\r\n endActionWrap: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexShrink: 0,\r\n gap: theme.spacing['2xs'],\r\n },\r\n}), { id: 'textfield-extra' })\r\n","import { MutableRefObject, Ref, RefCallback, useCallback, useRef } from 'react'\r\n\r\nconst assignRef = <T>(ref: Ref<T> | undefined, node: T | null): void => {\r\n if (typeof ref === 'function') {\r\n ref(node)\r\n } else if (ref != null) {\r\n (ref as MutableRefObject<T | null>).current = node\r\n }\r\n}\r\n\r\n/**\r\n * Merges several refs (callback or object) into a single stable callback ref.\r\n *\r\n * Useful when a component needs an internal ref while still forwarding the\r\n * consumer's `ref`. The returned callback keeps a stable identity across\r\n * renders to avoid detach/attach churn, always assigning to the latest refs.\r\n *\r\n * @example\r\n * const inputRef = useRef<HTMLInputElement | null>(null)\r\n * const mergedRef = useMergedRefs(ref, inputRef)\r\n */\r\nexport const useMergedRefs = <T>(...refs: Array<Ref<T> | undefined>): RefCallback<T> => {\r\n const refsRef = useRef(refs)\r\n refsRef.current = refs\r\n\r\n return useCallback((node: T | null) => {\r\n for (const ref of refsRef.current) {\r\n assignRef(ref, node)\r\n }\r\n }, [])\r\n}\r\n","import { RefCallback, RefObject, useCallback, useId, useRef, useState } from 'react'\r\n\r\nimport { useMergedRefs } from '@hooks/common/use-merged-refs/useMergedRefs'\r\n\r\nimport type { Theme } from '@theme/theme.types'\r\nimport type { TextFieldProps } from '@components/forms/text-field/TextField.props'\r\nimport type { TextFieldSize, TextFieldStatus } from '@components/forms/text-field/textField.types'\r\n\r\n/** Maps field size to an Icon size token for the start icon. */\r\nconst ICON_SIZE_MAP: Record<TextFieldSize, keyof Theme['fontSize']> = {\r\n sm: 'sm',\r\n md: 'md',\r\n lg: 'lg',\r\n}\r\n\r\n/** Maps field size to the password toggle IconButton size. */\r\nconst ICON_BUTTON_SIZE_MAP: Record<TextFieldSize, 'sm' | 'md' | 'lg'> = {\r\n sm: 'sm',\r\n md: 'sm',\r\n lg: 'md',\r\n}\r\n\r\n/** Maps status to a theme color token used for the helper text. */\r\nconst HELPER_COLOR_MAP: Record<TextFieldStatus, keyof Theme['colors']> = {\r\n default: 'textSecondary',\r\n error: 'errorHover',\r\n success: 'successHover',\r\n warning: 'warningHover',\r\n}\r\n\r\ntype UseTextFieldParams = {\r\n id?: string\r\n ref?: TextFieldProps['ref']\r\n type?: TextFieldProps['type']\r\n size: TextFieldSize\r\n status: TextFieldStatus\r\n endAction?: TextFieldProps['endAction']\r\n}\r\n\r\ntype UseTextFieldReturn = {\r\n fieldId: string\r\n helperId: string\r\n inputRef: RefObject<HTMLInputElement | null>\r\n mergedRef: RefCallback<HTMLInputElement>\r\n isPassword: boolean\r\n showPassword: boolean\r\n togglePassword: () => void\r\n resolvedType: TextFieldProps['type']\r\n iconSize: keyof Theme['fontSize']\r\n iconButtonSize: 'sm' | 'md' | 'lg'\r\n helperColor: keyof Theme['colors']\r\n hasEndSection: boolean\r\n focusInput: () => void\r\n}\r\n\r\n/**\r\n * Business logic for the TextField component: id resolution, ref merging,\r\n * password visibility toggling and size/status derived tokens.\r\n */\r\nexport const useTextField = ({\r\n id,\r\n ref,\r\n type,\r\n size,\r\n status,\r\n endAction,\r\n}: UseTextFieldParams): UseTextFieldReturn => {\r\n const generatedId = useId()\r\n const fieldId = id ?? generatedId\r\n const helperId = `${fieldId}-helper`\r\n\r\n const inputRef = useRef<HTMLInputElement | null>(null)\r\n const mergedRef = useMergedRefs<HTMLInputElement>(ref, inputRef)\r\n\r\n const [showPassword, setShowPassword] = useState(false)\r\n const isPassword = type === 'password'\r\n const resolvedType = isPassword ? (showPassword ? 'text' : 'password') : type\r\n\r\n const togglePassword = useCallback(() => setShowPassword((prev) => !prev), [])\r\n const focusInput = useCallback(() => inputRef.current?.focus(), [])\r\n\r\n return {\r\n fieldId,\r\n helperId,\r\n inputRef,\r\n mergedRef,\r\n isPassword,\r\n showPassword,\r\n togglePassword,\r\n resolvedType,\r\n iconSize: ICON_SIZE_MAP[size],\r\n iconButtonSize: ICON_BUTTON_SIZE_MAP[size],\r\n helperColor: HELPER_COLOR_MAP[status],\r\n hasEndSection: endAction !== undefined || isPassword,\r\n focusInput,\r\n }\r\n}\r\n","import { FC } from 'react'\r\n\r\nimport EyeIcon from '@resources/assets/icons/EyeIcon.svg?react'\r\nimport EyeSlashIcon from '@resources/assets/icons/EyeSlashIcon.svg?react'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\nimport { IconButton } from '@components/actions/icon-button'\r\nimport { Stack } from '@components/layout/stack'\r\nimport { TEXTFIELD_STYLES, TEXTFIELD_WRAPPER_VARIANTS } from '@components/forms/text-field/TextField.styles'\r\nimport { useTextField } from '@components/forms/text-field/utils/useTextField.utils'\r\n\r\nimport type { TextFieldProps } from '@components/forms/text-field/TextField.props'\r\n\r\n/**\r\n * Full-featured text input with label, helper text, icons and end actions.\r\n *\r\n * Supports all native input types. When `type` is `'password'`, a visibility\r\n * toggle is automatically injected as an end action.\r\n *\r\n * @example <TextField label=\"Email\" placeholder=\"you@example.com\" />\r\n * @example <TextField label=\"Password\" type=\"password\" helperText=\"Min. 8 characters.\" />\r\n * @example <TextField label=\"Name\" status=\"error\" helperText=\"This field is required.\" />\r\n * @example <TextField label=\"Search\" startIcon={SearchIcon} endAction={<ClearButton />} />\r\n */\r\nconst TextField: FC<TextFieldProps> = ({\r\n ref,\r\n label,\r\n helperText,\r\n size = 'md',\r\n status = 'default',\r\n startIcon: StartIcon,\r\n endAction,\r\n type,\r\n id,\r\n disabled,\r\n required,\r\n ...rest\r\n}) => {\r\n const {\r\n fieldId,\r\n helperId,\r\n mergedRef,\r\n isPassword,\r\n showPassword,\r\n togglePassword,\r\n resolvedType,\r\n iconSize,\r\n iconButtonSize,\r\n helperColor,\r\n hasEndSection,\r\n focusInput,\r\n } = useTextField({ id, ref, type, size, status, endAction })\r\n\r\n return (\r\n <Stack\r\n flexDirection={'column'}\r\n gap={'xs'}\r\n >\r\n {label !== undefined && (\r\n <Text\r\n variant={'label'}\r\n fontSize={'sm'}\r\n fontWeight={'medium'}\r\n color={'textSecondary'}\r\n htmlFor={fieldId}\r\n >\r\n {label}\r\n {required && (\r\n <Text\r\n variant={'span'}\r\n color={'errorMain'}\r\n aria-hidden={true}\r\n >\r\n {' *'}\r\n </Text>\r\n )}\r\n </Text>\r\n )}\r\n\r\n <div\r\n className={TEXTFIELD_WRAPPER_VARIANTS({ size, status })}\r\n data-disabled={disabled || undefined}\r\n >\r\n {StartIcon && (\r\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\r\n <span\r\n className={TEXTFIELD_STYLES.startIconWrap}\r\n onClick={focusInput}\r\n >\r\n <Icon\r\n icon={StartIcon}\r\n size={iconSize}\r\n strokeColor={'textSecondary'}\r\n />\r\n </span>\r\n )}\r\n\r\n <input\r\n ref={mergedRef}\r\n id={fieldId}\r\n type={resolvedType}\r\n disabled={disabled}\r\n required={required}\r\n aria-required={required || undefined}\r\n aria-invalid={status === 'error' || undefined}\r\n aria-describedby={helperText !== undefined ? helperId : undefined}\r\n className={TEXTFIELD_STYLES.input}\r\n {...rest}\r\n />\r\n\r\n {hasEndSection && (\r\n <span className={TEXTFIELD_STYLES.endActionWrap}>\r\n {endAction}\r\n {isPassword && (\r\n <IconButton\r\n icon={showPassword ? EyeSlashIcon : EyeIcon}\r\n ariaLabel={showPassword ? 'Hide password' : 'Show password'}\r\n variant={'text'}\r\n color={'neutral'}\r\n size={iconButtonSize}\r\n type={'button'}\r\n tabIndex={-1}\r\n onClick={togglePassword}\r\n />\r\n )}\r\n </span>\r\n )}\r\n </div>\r\n\r\n {helperText !== undefined && (\r\n <Text\r\n id={helperId}\r\n variant={'span'}\r\n fontSize={'xs'}\r\n color={helperColor}\r\n >\r\n {helperText}\r\n </Text>\r\n )}\r\n </Stack>\r\n )\r\n}\r\n\r\nTextField.displayName = 'TextField'\r\n\r\nexport default TextField\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const MENU_STYLES = createStyles((theme) => ({\r\n backdrop: {\r\n position: 'fixed' as const,\r\n inset: 0,\r\n zIndex: theme.zIndex.dropdown - 1,\r\n },\r\n panel: {\r\n position: 'fixed' as const,\r\n zIndex: theme.zIndex.dropdown,\r\n backgroundColor: theme.colors.surfacePaper,\r\n borderRadius: theme.radius.lg,\r\n border: `1px solid ${theme.colors.borderMain}`,\r\n boxShadow: theme.shadows.md,\r\n overflowY: 'auto' as const,\r\n paddingTop: theme.spacing.xs,\r\n paddingBottom: theme.spacing.xs,\r\n },\r\n}), { id: 'menu' })\r\n","import { useEffect, useRef } from 'react'\nimport type { KeyPressMap, UseKeyPressOptions } from '@hooks/common/use-key-press/useKeyPress.types'\n\n/**\n * Listens to keyboard events and dispatches to the matching handler in `keyMap`.\n * A single hook call can handle multiple keys.\n *\n * @example\n * `\ts\n * useKeyPress(\n * { ArrowDown: onDown, ArrowUp: onUp, Enter: onEnter, Escape: onClose },\n * { enabled: isOpen }\n * )\n * `\n */\nexport const useKeyPress = (\n keyMap: KeyPressMap,\n { target, enabled = true }: UseKeyPressOptions = {}\n): void => {\n const mapRef = useRef<KeyPressMap>(keyMap)\n\n useEffect(() => {\n mapRef.current = keyMap\n })\n\n useEffect(() => {\n if (!enabled) {return}\n\n const eventTarget = target ?? document\n const listener = (event: Event): void => {\n const keyboardEvent = event as KeyboardEvent\n const handler = mapRef.current[keyboardEvent.key]\n handler?.(keyboardEvent)\n }\n\n eventTarget.addEventListener('keydown', listener)\n return () => eventTarget.removeEventListener('keydown', listener)\n }, [enabled, target])\n}\n","import { CSSProperties, useCallback, useEffect, useLayoutEffect, useState } from 'react'\nimport type { UseMenuPositionOptions, UseMenuPositionResult } from '@hooks/components/overlay/use-menu-position/useMenuPosition.types'\n\nconst VIEWPORT_MARGIN_PX = 8\n\n/**\n * Computes and continuously updates the `position: fixed` style for a menu panel.\n *\n * Positioning strategy:\n * - Preferred top: anchorBottom + gap (menu opens downward from anchor)\n * - If the menu bottom would exceed the viewport: shift `top` upward so the menu\n * bottom lands at viewportHeight - VIEWPORT_MARGIN_PX. `top` can go above\n * anchor.bottom when the menu is tall, but it never goes off the top of the screen.\n * - Horizontal: clamped so the menu never overflows the left or right viewport edges.\n *\n * Uses a two-pass strategy: first render with `menuHeight = 0` (preferredTop),\n * then a rAF recompute with the actual rendered height to apply the offset.\n */\nexport const useMenuPosition = ({\n anchorEl,\n open,\n menuRef,\n minWidth,\n gap = 4,\n}: UseMenuPositionOptions): UseMenuPositionResult => {\n const [style, setStyle] = useState<CSSProperties>({})\n\n const computePosition = useCallback(() => {\n if (!anchorEl) {return}\n\n const anchor = anchorEl.getBoundingClientRect()\n const menuEl = menuRef.current\n const menuHeight = menuEl?.offsetHeight ?? 0\n const menuWidth = menuEl?.offsetWidth ?? 0\n\n // --- Vertical ---\n const preferredTop = anchor.bottom + gap\n const viewportBottom = window.innerHeight - VIEWPORT_MARGIN_PX\n\n let top = preferredTop\n if (menuHeight > 0 && preferredTop + menuHeight > viewportBottom) {\n // Shift up so the bottom of the menu aligns with the viewport bottom\n top = viewportBottom - menuHeight\n // Never go above the top of the viewport\n top = Math.max(VIEWPORT_MARGIN_PX, top)\n }\n\n // --- Horizontal ---\n const resolvedMinWidth = typeof minWidth === 'number' ? minWidth : anchor.width\n const effectiveWidth = Math.max(menuWidth, resolvedMinWidth)\n const maxLeft = window.innerWidth - effectiveWidth - VIEWPORT_MARGIN_PX\n const left = Math.max(VIEWPORT_MARGIN_PX, Math.min(anchor.left, maxLeft))\n\n setStyle({ top, left, minWidth: minWidth ?? anchor.width })\n }, [anchorEl, menuRef, minWidth, gap])\n\n // First pass: compute as soon as the menu opens (menuHeight = 0 → preferredTop)\n useLayoutEffect(() => {\n if (open) {computePosition()}\n else {setStyle({})}\n }, [open, computePosition])\n\n // Second pass: recompute after the panel renders to get actual height/width\n useEffect(() => {\n if (!open) {return}\n const id = requestAnimationFrame(computePosition)\n return () => cancelAnimationFrame(id)\n }, [open, computePosition])\n\n // Keep position in sync on scroll (capture = all scroll containers) and resize\n useEffect(() => {\n if (!open) {return}\n window.addEventListener('scroll', computePosition, true)\n window.addEventListener('resize', computePosition)\n return () => {\n window.removeEventListener('scroll', computePosition, true)\n window.removeEventListener('resize', computePosition)\n }\n }, [open, computePosition])\n\n return { style }\n}\n","import { CSSProperties, RefObject, useCallback, useEffect, useRef, useState } from 'react'\r\n\r\nimport { useKeyPress } from '@hooks/common/use-key-press/useKeyPress'\r\nimport { useMenuPosition } from '@hooks/components/overlay/use-menu-position/useMenuPosition'\r\n\r\nimport type { MenuProps } from '@components/overlay/menu/Menu.props'\r\n\r\ntype UseMenuParams = Pick<MenuProps, 'open' | 'onClose' | 'anchorEl' | 'minWidth'>\r\n\r\ntype UseMenuReturn = {\r\n /** Ref to attach to the listbox panel. */\r\n panelRef: RefObject<HTMLDivElement | null>\r\n /** Computed inline positioning style for the panel. */\r\n style: CSSProperties\r\n}\r\n\r\n/**\r\n * Business logic for the Menu component: positioning, roving keyboard\r\n * navigation (Arrow/Home/End/Enter), Escape-to-close, and keeping the\r\n * `data-focused` attribute in sync with the active option.\r\n */\r\nexport const useMenu = ({ open, onClose, anchorEl, minWidth }: UseMenuParams): UseMenuReturn => {\r\n const panelRef = useRef<HTMLDivElement>(null)\r\n const [focusedIndex, setFocusedIndex] = useState(-1)\r\n\r\n const { style } = useMenuPosition({ anchorEl, open, menuRef: panelRef, minWidth })\r\n\r\n /** Returns all non-disabled option elements inside the panel. */\r\n const getOptions = useCallback((): HTMLElement[] => {\r\n if (!panelRef.current) {return []}\r\n return Array.from(\r\n panelRef.current.querySelectorAll<HTMLElement>('[role=\"option\"]:not([data-disabled])')\r\n )\r\n }, [])\r\n\r\n // On open: focus panel, initialise focusedIndex to selected item (or 0)\r\n useEffect(() => {\r\n if (!open) {\r\n setFocusedIndex(-1)\r\n return\r\n }\r\n const raf = requestAnimationFrame(() => {\r\n panelRef.current?.focus()\r\n const options = getOptions()\r\n const selectedIdx = options.findIndex((el) => el.getAttribute('aria-selected') === 'true')\r\n setFocusedIndex(selectedIdx >= 0 ? selectedIdx : 0)\r\n })\r\n return () => cancelAnimationFrame(raf)\r\n }, [open, getOptions])\r\n\r\n // Keep data-focused in sync with focusedIndex\r\n useEffect(() => {\r\n if (!open) {return}\r\n const options = getOptions()\r\n options.forEach((el, idx) => {\r\n if (idx === focusedIndex) {\r\n el.setAttribute('data-focused', 'true')\r\n el.scrollIntoView({ block: 'nearest' })\r\n } else {\r\n el.removeAttribute('data-focused')\r\n }\r\n })\r\n }, [focusedIndex, open, getOptions])\r\n\r\n useKeyPress(\r\n {\r\n Escape: onClose,\r\n ArrowDown: (e) => {\r\n e.preventDefault()\r\n setFocusedIndex((prev) => {\r\n const count = getOptions().length\r\n return count === 0 ? prev : (prev + 1) % count\r\n })\r\n },\r\n ArrowUp: (e) => {\r\n e.preventDefault()\r\n setFocusedIndex((prev) => {\r\n const count = getOptions().length\r\n return count === 0 ? prev : (prev - 1 + count) % count\r\n })\r\n },\r\n Home: (e) => {\r\n e.preventDefault()\r\n const count = getOptions().length\r\n if (count > 0) {setFocusedIndex(0)}\r\n },\r\n End: (e) => {\r\n e.preventDefault()\r\n const count = getOptions().length\r\n if (count > 0) {setFocusedIndex(count - 1)}\r\n },\r\n Enter: () => {\r\n const options = getOptions()\r\n if (focusedIndex >= 0) {options[focusedIndex]?.click()}\r\n },\r\n },\r\n { enabled: open }\r\n )\r\n\r\n return { panelRef, style }\r\n}\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const MENU_GROUP_STYLES = createStyles((theme) => {\r\n const c = theme.colors\r\n\r\n return {\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'column' as const,\r\n },\r\n divider: {\r\n height: '1px',\r\n backgroundColor: c.borderMain,\r\n marginTop: theme.spacing.xs,\r\n marginBottom: theme.spacing.xs,\r\n marginLeft: theme.spacing.md,\r\n marginRight: theme.spacing.md,\r\n },\r\n label: {\r\n paddingTop: theme.spacing.xs,\r\n paddingBottom: theme.spacing.xs,\r\n paddingLeft: theme.spacing.md,\r\n paddingRight: theme.spacing.md,\r\n color: c.textTertiary,\r\n fontSize: theme.fontSize.xs,\r\n fontWeight: theme.fontWeight.medium,\r\n userSelect: 'none' as const,\r\n textTransform: 'uppercase' as const,\r\n letterSpacing: '0.05em',\r\n },\r\n list: {\r\n listStyle: 'none',\r\n margin: '0',\r\n padding: '0',\r\n display: 'flex',\r\n flexDirection: 'column' as const,\r\n },\r\n }\r\n}, { id: 'menu-group' })\r\n","import type { FC } from 'react'\r\nimport { MENU_GROUP_STYLES } from '@components/overlay/menu/menu-group/MenuGroup.styles'\r\nimport type { MenuGroupProps } from '@components/overlay/menu/menu-group/MenuGroup.props'\r\n\r\nconst MenuGroup: FC<MenuGroupProps> = ({\r\n label,\r\n divider,\r\n children,\r\n}) => {\r\n return (\r\n <div className={MENU_GROUP_STYLES.root}>\r\n {divider && (\r\n <div\r\n className={MENU_GROUP_STYLES.divider}\r\n role={'separator'}\r\n aria-hidden={true}\r\n />\r\n )}\r\n {label !== undefined && (\r\n <span className={MENU_GROUP_STYLES.label}>{label}</span>\r\n )}\r\n <ul\r\n className={MENU_GROUP_STYLES.list}\r\n role={'group'}\r\n aria-label={label}\r\n >\r\n {children}\r\n </ul>\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'\r\n\r\nexport const MENU_ITEM_STYLES = createStyles((theme) => {\r\n const c = theme.colors\r\n\r\n return {\r\n root: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n paddingTop: theme.spacing.xs,\r\n paddingBottom: theme.spacing.xs,\r\n paddingLeft: theme.spacing.md,\r\n paddingRight: theme.spacing.md,\r\n cursor: 'pointer',\r\n userSelect: 'none' as const,\r\n color: c.textPrimary,\r\n fontSize: theme.fontSize.sm,\r\n listStyle: 'none',\r\n transition: `background-color ${theme.transition.fast}`,\r\n '&[data-selected]': {\r\n backgroundColor: c.primarySubtle,\r\n color: c.primaryMain,\r\n fontWeight: theme.fontWeight.medium,\r\n },\r\n '&[data-focused]': {\r\n backgroundColor: c.defaultSubtleHover,\r\n },\r\n '&[data-focused][data-selected]': {\r\n backgroundColor: c.primarySubtleHover,\r\n },\r\n '&[data-disabled]': {\r\n cursor: 'not-allowed',\r\n opacity: theme.opacity.high,\r\n },\r\n ':hover:not([data-disabled])': {\r\n backgroundColor: c.defaultSubtleHover,\r\n },\r\n ':active:not([data-disabled])': {\r\n backgroundColor: c.defaultSubtleActive,\r\n },\r\n },\r\n }\r\n}, { id: 'menu-item' })\r\n","import type { FC } from 'react'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\nimport { MENU_ITEM_STYLES } from '@components/overlay/menu/menu-item/MenuItem.styles'\r\nimport type { MenuItemProps } from '@components/overlay/menu/menu-item/MenuItem.props'\r\n\r\nconst MenuItem: FC<MenuItemProps> = ({\r\n ref,\r\n label,\r\n icon,\r\n selected,\r\n focused,\r\n disabled,\r\n onClick,\r\n ...rest\r\n}) => {\r\n return (\r\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\r\n <li\r\n ref={ref}\r\n role={'option'}\r\n aria-selected={selected}\r\n aria-disabled={disabled}\r\n data-selected={selected || undefined}\r\n data-focused={focused || undefined}\r\n data-disabled={disabled || undefined}\r\n className={MENU_ITEM_STYLES.root}\r\n onClick={disabled ? undefined : onClick}\r\n {...rest}\r\n >\r\n {icon !== undefined && (\r\n <Icon\r\n icon={icon}\r\n size={'sm'}\r\n strokeColor={selected ? 'primaryMain' : 'textSecondary'}\r\n />\r\n )}\r\n <Text\r\n variant={'span'}\r\n fontSize={'sm'}\r\n >\r\n {label}\r\n </Text>\r\n </li>\r\n )\r\n}\r\n\r\nMenuItem.displayName = 'MenuItem'\r\n\r\nexport default MenuItem\r\n","import { FC } from 'react'\nimport { createPortal } from 'react-dom'\nimport { MENU_STYLES } from '@components/overlay/menu/Menu.styles'\nimport { useMenu } from '@components/overlay/menu/utils/useMenu.utils'\nimport MenuGroup from '@components/overlay/menu/menu-group/MenuGroup'\nimport MenuItem from '@components/overlay/menu/menu-item/MenuItem'\nimport type { MenuProps } from '@components/overlay/menu/Menu.props'\nimport type { MenuComponent } from '@components/overlay/menu/Menu.types'\n\nconst MenuBase: FC<MenuProps> = ({\n open,\n onClose,\n anchorEl,\n minWidth,\n maxHeight = '20rem',\n id,\n children,\n}) => {\n const { panelRef, style } = useMenu({ open, onClose, anchorEl, minWidth })\n\n if (!open) {return null}\n\n return createPortal(\n <>\n <div\n className={MENU_STYLES.backdrop}\n onClick={onClose}\n aria-hidden={true}\n />\n <div\n ref={panelRef}\n id={id}\n role={'listbox'}\n tabIndex={-1}\n className={MENU_STYLES.panel}\n style={{ ...style, maxHeight, outline: 'none' }}\n >\n {children}\n </div>\n </>,\n document.body\n )\n}\n\nMenuBase.displayName = 'Menu'\n\nconst Menu = MenuBase as MenuComponent\nMenu.Item = MenuItem\nMenu.Group = MenuGroup\n\nexport default Menu\n","import { createStyles, createVariants } from '@aurora-ds/theme'\r\n\r\nexport const SELECT_TRIGGER_VARIANTS = createVariants((theme) => {\r\n const c = theme.colors\r\n\r\n return {\r\n base: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n boxSizing: 'border-box' as const,\r\n width: '100%',\r\n borderWidth: '1px',\r\n borderStyle: 'solid',\r\n borderRadius: theme.radius.md,\r\n backgroundColor: c.surfacePaper,\r\n cursor: 'pointer',\r\n transition: `border-color ${theme.transition.fast}`,\r\n outline: 'none',\r\n fontFamily: 'inherit',\r\n '&[data-open]': {\r\n borderColor: c.primaryMain,\r\n },\r\n '&[data-disabled]': {\r\n opacity: theme.opacity.high,\r\n backgroundColor: c.disabledMain,\r\n cursor: 'not-allowed',\r\n },\r\n },\r\n variants: {\r\n size: {\r\n sm: {\r\n height: '2rem',\r\n paddingLeft: theme.spacing.md,\r\n paddingRight: theme.spacing.sm,\r\n fontSize: theme.fontSize.xs,\r\n },\r\n md: {\r\n height: '2.5rem',\r\n paddingLeft: theme.spacing.md,\r\n paddingRight: theme.spacing.sm,\r\n fontSize: theme.fontSize.sm,\r\n },\r\n lg: {\r\n height: '3rem',\r\n paddingLeft: theme.spacing.lg,\r\n paddingRight: theme.spacing.md,\r\n fontSize: theme.fontSize.md,\r\n },\r\n },\r\n status: {\r\n default: {\r\n borderColor: c.borderMain,\r\n ':hover:not([data-disabled]):not([data-open])': {\r\n borderColor: c.borderStrong,\r\n },\r\n ':focus-visible': {\r\n borderColor: c.primaryMain,\r\n outline: 'none',\r\n },\r\n },\r\n error: {\r\n borderColor: c.errorMain,\r\n ':focus-visible': {\r\n outline: 'none',\r\n },\r\n },\r\n success: {\r\n borderColor: c.successMain,\r\n ':focus-visible': {\r\n outline: 'none',\r\n },\r\n },\r\n warning: {\r\n borderColor: c.warningMain,\r\n ':focus-visible': {\r\n outline: 'none',\r\n },\r\n },\r\n },\r\n },\r\n defaultVariants: { size: 'md', status: 'default' },\r\n }\r\n}, { id: 'select-trigger' })\r\n\r\nexport const SELECT_TRIGGER_STYLES = createStyles((theme) => ({\r\n value: {\r\n flex: 1,\r\n minWidth: 0,\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap' as const,\r\n color: theme.colors.textPrimary,\r\n textAlign: 'left' as const,\r\n },\r\n placeholder: {\r\n flex: 1,\r\n minWidth: 0,\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap' as const,\r\n color: theme.colors.textTertiary,\r\n textAlign: 'left' as const,\r\n },\r\n chevron: {\r\n flexShrink: 0,\r\n transition: `transform ${theme.transition.fast}`,\r\n color: theme.colors.textSecondary,\r\n },\r\n chevronOpen: {\r\n transform: 'rotate(180deg)',\r\n },\r\n}), { id: 'select-trigger-extra' })\r\n","import type { FC } from 'react'\r\nimport { cx } from '@aurora-ds/theme'\r\nimport ChevronDownIcon from '@resources/assets/icons/ChevronDownIcon.svg?react'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { SELECT_TRIGGER_STYLES, SELECT_TRIGGER_VARIANTS } from '@components/forms/select/select-trigger/SelectTrigger.styles'\r\nimport type { SelectTriggerProps } from '@components/forms/select/select-trigger/SelectTrigger.props'\r\nimport type { Theme } from '@theme/theme.types'\r\nimport type { TextFieldSize } from '@components/forms/text-field/textField.types'\r\n\r\nconst ICON_SIZE_MAP: Record<TextFieldSize, keyof Theme['fontSize']> = {\r\n sm: 'sm',\r\n md: 'md',\r\n lg: 'lg',\r\n}\r\n\r\nconst SelectTrigger: FC<SelectTriggerProps> = ({\r\n ref,\r\n size = 'md',\r\n status = 'default',\r\n open,\r\n hasValue,\r\n startIcon,\r\n disabled,\r\n children,\r\n ...rest\r\n}) => {\r\n const iconSize = ICON_SIZE_MAP[size]\r\n\r\n return (\r\n <button\r\n type={'button'}\r\n ref={ref}\r\n className={SELECT_TRIGGER_VARIANTS({ size, status })}\r\n data-open={open || undefined}\r\n data-disabled={disabled || undefined}\r\n disabled={disabled}\r\n {...rest}\r\n >\r\n {startIcon !== undefined && (\r\n <Icon\r\n icon={startIcon}\r\n size={iconSize}\r\n strokeColor={'textSecondary'}\r\n />\r\n )}\r\n <span className={hasValue ? SELECT_TRIGGER_STYLES.value : SELECT_TRIGGER_STYLES.placeholder}>\r\n {children}\r\n </span>\r\n <Icon\r\n icon={ChevronDownIcon}\r\n size={iconSize}\r\n className={cx(SELECT_TRIGGER_STYLES.chevron, open ? SELECT_TRIGGER_STYLES.chevronOpen : undefined)}\r\n strokeColor={'textSecondary'}\r\n />\r\n </button>\r\n )\r\n}\r\n\r\nSelectTrigger.displayName = 'SelectTrigger'\r\n\r\nexport default SelectTrigger\r\n","import { RefCallback, RefObject, useCallback, useEffect, useId, useMemo, useRef, useState } from 'react'\r\n\r\nimport { useControllableState } from '@hooks/common/use-controllable-state/useControllableState'\r\nimport { useMergedRefs } from '@hooks/common/use-merged-refs/useMergedRefs'\r\n\r\nimport type { Theme } from '@theme/theme.types'\r\nimport type { SelectProps } from '@components/forms/select/Select.props'\r\nimport type { SelectOption } from '@components/forms/select/select.types'\r\nimport type { TextFieldStatus } from '@components/forms/text-field/textField.types'\r\n\r\n/** Maps status to a theme color token used for the helper text. */\r\nconst HELPER_COLOR_MAP: Record<TextFieldStatus, keyof Theme['colors']> = {\r\n default: 'textSecondary',\r\n error: 'errorHover',\r\n success: 'successHover',\r\n warning: 'warningHover',\r\n}\r\n\r\ntype UseSelectParams = {\r\n id?: string\r\n ref?: SelectProps['ref']\r\n value?: string\r\n defaultValue?: string\r\n onChange?: (value: string) => void\r\n options?: SelectOption[]\r\n status: TextFieldStatus\r\n disabled?: boolean\r\n}\r\n\r\ntype UseSelectReturn = {\r\n fieldId: string\r\n menuId: string\r\n triggerRef: RefObject<HTMLButtonElement | null>\r\n mergedRef: RefCallback<HTMLButtonElement>\r\n open: boolean\r\n toggle: () => void\r\n close: () => void\r\n currentValue: string\r\n selectedOption: SelectOption | undefined\r\n groupedOptions: Map<string | undefined, SelectOption[]>\r\n handleSelect: (optValue: string) => void\r\n helperColor: keyof Theme['colors']\r\n}\r\n\r\n/**\r\n * Business logic for the Select component: id resolution, ref merging,\r\n * controlled/uncontrolled value handling, open state, option grouping and\r\n * focus restoration to the trigger when the menu closes.\r\n */\r\nexport const useSelect = ({\r\n id,\r\n ref,\r\n value,\r\n defaultValue,\r\n onChange,\r\n options,\r\n status,\r\n disabled,\r\n}: UseSelectParams): UseSelectReturn => {\r\n const generatedId = useId()\r\n const fieldId = id ?? generatedId\r\n const menuId = `${fieldId}-menu`\r\n\r\n const triggerRef = useRef<HTMLButtonElement | null>(null)\r\n const mergedRef = useMergedRefs<HTMLButtonElement>(ref, triggerRef)\r\n\r\n const [open, setOpen] = useState(false)\r\n\r\n const [currentValue, setValue] = useControllableState<string>({\r\n value,\r\n defaultValue: defaultValue ?? '',\r\n onChange,\r\n })\r\n\r\n // Restore focus to the trigger when the menu closes.\r\n const wasOpenRef = useRef(false)\r\n useEffect(() => {\r\n if (wasOpenRef.current && !open) {\r\n triggerRef.current?.focus()\r\n }\r\n wasOpenRef.current = open\r\n }, [open])\r\n\r\n const selectedOption = useMemo(\r\n () => options?.find((opt) => opt.value === currentValue),\r\n [options, currentValue]\r\n )\r\n\r\n const groupedOptions = useMemo(() => {\r\n const map = new Map<string | undefined, SelectOption[]>()\r\n for (const opt of options ?? []) {\r\n const key = opt.group\r\n const existing = map.get(key)\r\n if (existing !== undefined) {\r\n existing.push(opt)\r\n } else {\r\n map.set(key, [opt])\r\n }\r\n }\r\n return map\r\n }, [options])\r\n\r\n const handleSelect = useCallback(\r\n (optValue: string) => {\r\n setValue(optValue)\r\n setOpen(false)\r\n },\r\n [setValue]\r\n )\r\n\r\n const toggle = useCallback(() => {\r\n if (!disabled) {\r\n setOpen((prev) => !prev)\r\n }\r\n }, [disabled])\r\n\r\n const close = useCallback(() => setOpen(false), [])\r\n\r\n return {\r\n fieldId,\r\n menuId,\r\n triggerRef,\r\n mergedRef,\r\n open,\r\n toggle,\r\n close,\r\n currentValue,\r\n selectedOption,\r\n groupedOptions,\r\n handleSelect,\r\n helperColor: HELPER_COLOR_MAP[status],\r\n }\r\n}\r\n","import { FC } from 'react'\nimport { Stack } from '@components/layout/stack'\nimport { Text } from '@components/foundation/text'\nimport { Menu } from '@components/overlay/menu'\nimport { SelectTrigger } from '@components/forms/select/select-trigger'\nimport { useSelect } from '@components/forms/select/utils/useSelect.utils'\nimport type { SelectProps } from '@components/forms/select/Select.props'\n\nconst Select: FC<SelectProps> = ({\n ref,\n value,\n defaultValue,\n onChange,\n options,\n label,\n helperText,\n placeholder,\n size = 'md',\n status = 'default',\n disabled,\n required,\n width,\n id,\n}) => {\n const {\n fieldId,\n menuId,\n triggerRef,\n mergedRef,\n open,\n toggle,\n close,\n currentValue,\n selectedOption,\n groupedOptions,\n handleSelect,\n helperColor,\n } = useSelect({ id, ref, value, defaultValue, onChange, options, status, disabled })\n\n return (\n <Stack\n flexDirection={'column'}\n gap={'xs'}\n style={{ width: width ?? '100%' }}\n >\n {label !== undefined && (\n <Text\n variant={'label'}\n fontSize={'sm'}\n fontWeight={'medium'}\n color={'textSecondary'}\n htmlFor={fieldId}\n >\n {label}\n {required && (\n <Text\n variant={'span'}\n color={'errorMain'}\n aria-hidden={true}\n >\n {' *'}\n </Text>\n )}\n </Text>\n )}\n\n <SelectTrigger\n ref={mergedRef}\n id={fieldId}\n size={size}\n status={status}\n open={open}\n hasValue={selectedOption !== undefined}\n disabled={disabled}\n required={required}\n aria-haspopup={'listbox'}\n aria-expanded={open}\n aria-controls={menuId}\n aria-invalid={status === 'error' || undefined}\n onClick={toggle}\n >\n {selectedOption !== undefined ? selectedOption.label : placeholder}\n </SelectTrigger>\n\n <Menu\n open={open}\n onClose={close}\n anchorEl={triggerRef.current}\n id={menuId}\n >\n {Array.from(groupedOptions.entries()).map(([groupKey, groupOpts], groupIndex) => {\n const items = groupOpts.map((opt) => (\n <Menu.Item\n key={opt.value}\n label={opt.label}\n icon={opt.icon}\n selected={opt.value === currentValue}\n disabled={opt.disabled}\n onClick={() => handleSelect(opt.value)}\n />\n ))\n return groupKey !== undefined ? (\n <Menu.Group\n key={groupKey}\n label={groupKey}\n divider={groupIndex > 0}\n >\n {items}\n </Menu.Group>\n ) : (\n <Menu.Group\n key={'__ungrouped'}\n divider={groupIndex > 0}\n >\n {items}\n </Menu.Group>\n )\n })}\n </Menu>\n\n {helperText !== undefined && (\n <Text\n variant={'span'}\n fontSize={'xs'}\n color={helperColor}\n >\n {helperText}\n </Text>\n )}\n </Stack>\n )\n}\n\nSelect.displayName = 'Select'\n\nexport default Select\n","import { createVariants } from '@aurora-ds/theme'\r\n\r\nexport const CARD_VARIANTS = createVariants((theme) => ({\r\n base: {\r\n boxSizing: 'border-box' as const,\r\n borderRadius: theme.radius.lg,\r\n border: '1px solid transparent',\r\n },\r\n variants: {\r\n variant: {\r\n elevated: {\r\n backgroundColor: theme.colors.surfacePaper,\r\n boxShadow: theme.shadows.md,\r\n },\r\n outlined: {\r\n backgroundColor: theme.colors.surfacePaper,\r\n borderColor: theme.colors.borderMain,\r\n },\r\n },\r\n },\r\n defaultVariants: { variant: 'elevated' },\r\n}), { id: 'card' })\r\n","import type { FC } from 'react'\nimport { Icon } from '@components/foundation/icon'\nimport { Text } from '@components/foundation/text'\nimport { Stack } from '@components/layout/stack'\nimport type { CardHeaderProps } from '@components/layout/card/card-header/CardHeader.props'\n\nconst CardHeader: FC<CardHeaderProps> = ({ label, icon, actions }) => {\n return (\n <Stack\n alignItems={'center'}\n justifyContent={'space-between'}\n gap={'sm'}\n py={'sm'}\n px={'md'}\n >\n <Stack\n alignItems={'center'}\n gap={'sm'}\n flex={1}\n minWidth={'0'}\n >\n {icon !== undefined && (\n <Icon\n icon={icon}\n size={'md'}\n strokeColor={'textSecondary'}\n />\n )}\n <Text\n variant={'span'}\n fontSize={'sm'}\n fontWeight={'semibold'}\n color={'textPrimary'}\n >\n {label}\n </Text>\n </Stack>\n {actions !== undefined && (\n <Stack\n alignItems={'center'}\n gap={'xs'}\n flexShrink={0}\n >\n {actions}\n </Stack>\n )}\n </Stack>\n )\n}\n\nCardHeader.displayName = 'Card.Header'\n\nexport default CardHeader\n","import type { FC } from 'react'\nimport { Box } from '@components/layout/box'\nimport type { CardBodyProps } from '@components/layout/card/card-body/CardBody.props'\n\nconst CardBody: FC<CardBodyProps> = ({\n children,\n py = 'md',\n px = 'md',\n}) => {\n return (\n <Box\n py={py}\n px={px}\n >\n {children}\n </Box>\n )\n}\n\nCardBody.displayName = 'Card.Body'\n\nexport default CardBody\n","import { cx } from '@aurora-ds/theme'\r\nimport type { FC } from 'react'\r\nimport { CARD_VARIANTS } from '@components/layout/card/Card.styles'\r\nimport Box from '@components/layout/box/Box'\r\nimport type { BoxProps } from '@components/layout/box/Box.props'\r\nimport CardHeader from '@components/layout/card/card-header/CardHeader'\r\nimport CardBody from '@components/layout/card/card-body/CardBody'\r\nimport type { CardProps } from '@components/layout/card/Card.props'\r\nimport type { CardComponent } from '@components/layout/card/card.types'\r\n\r\nconst CardBase: FC<CardProps> = (\r\n { ref, variant = 'outlined', padding = 'none', className, children, ...rest }\r\n) => {\r\n return (\r\n <Box\r\n ref={ref}\r\n padding={padding}\r\n className={cx(CARD_VARIANTS({ variant }), className)}\r\n {...rest as BoxProps}\r\n >\r\n {children}\r\n </Box>\r\n )\r\n}\r\n\r\nCardBase.displayName = 'Card'\r\n\r\nconst Card = CardBase as CardComponent\r\nCard.Header = CardHeader\r\nCard.Body = CardBody\r\n\r\nexport default Card\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport type { GridStyleProps } from '@components/layout/grid/Grid.props'\r\n\r\nexport const GRID_STYLES = createStyles(() => ({\r\n root: ({\r\n autoFlow,\r\n autoColumns,\r\n autoRows,\r\n alignContent,\r\n justifyItems,\r\n placeItems,\r\n placeContent,\r\n }: Pick<GridStyleProps, 'autoFlow' | 'autoColumns' | 'autoRows' | 'alignContent' | 'justifyItems' | 'placeItems' | 'placeContent'>) => ({\r\n ...(autoFlow !== undefined && { gridAutoFlow: autoFlow }),\r\n ...(autoColumns !== undefined && { gridAutoColumns: autoColumns }),\r\n ...(autoRows !== undefined && { gridAutoRows: autoRows }),\r\n ...(alignContent !== undefined && { alignContent }),\r\n ...(justifyItems !== undefined && { justifyItems }),\r\n ...(placeItems !== undefined && { placeItems }),\r\n ...(placeContent !== undefined && { placeContent }),\r\n }),\r\n}))\r\n","import { cx } from '@aurora-ds/theme'\r\n\r\nimport { Box } from '@components/layout/box'\r\nimport { GRID_STYLES } from '@components/layout/grid/Grid.styles'\r\n\r\nimport type { GridProps } from '@components/layout/grid/Grid.props'\r\nimport type { FC } from 'react'\r\n\r\n/**\r\n * A CSS Grid `Box` with convenience props for common grid patterns.\r\n *\r\n * Defaults to `display: grid`. The `columns` and `rows` shorthands accept either a\r\n * number (expanded to `repeat(n, 1fr)`) or any valid CSS `grid-template-*` string.\r\n * All `Box` style props remain available (`gap`, `rowGap`, `columnGap`,\r\n * `gridTemplateColumns`, `gridTemplateRows`, `alignItems`, `justifyContent`, …).\r\n *\r\n * @example <Grid columns={3} gap='md'>…</Grid>\r\n * @example <Grid columns='repeat(auto-fill, minmax(200px, 1fr))' gap='lg'>…</Grid>\r\n * @example <Grid rows={2} autoFlow='column' gap='sm' alignItems='center'>…</Grid>\r\n */\r\nconst Grid: FC<GridProps> = (\r\n {\r\n display = 'grid',\r\n columns,\r\n rows,\r\n autoFlow,\r\n autoColumns,\r\n autoRows,\r\n alignContent,\r\n justifyItems,\r\n placeItems,\r\n placeContent,\r\n gridTemplateColumns,\r\n gridTemplateRows,\r\n className,\r\n rowGap='sm',\r\n columnGap='sm',\r\n ...rest\r\n }\r\n) => {\r\n const resolvedColumns = columns !== undefined\r\n ? (typeof columns === 'number' ? `repeat(${columns}, 1fr)` : columns)\r\n : gridTemplateColumns\r\n\r\n const resolvedRows = rows !== undefined\r\n ? (typeof rows === 'number' ? `repeat(${rows}, 1fr)` : rows)\r\n : gridTemplateRows\r\n\r\n const gridClassName = GRID_STYLES.root({\r\n autoFlow,\r\n autoColumns,\r\n autoRows,\r\n alignContent,\r\n justifyItems,\r\n placeItems,\r\n placeContent,\r\n })\r\n\r\n return (\r\n <Box\r\n display={display}\r\n gridTemplateColumns={resolvedColumns}\r\n gridTemplateRows={resolvedRows}\r\n rowGap={rowGap}\r\n columnGap={columnGap}\r\n className={cx(gridClassName, className)}\r\n {...rest}\r\n />\r\n )\r\n}\r\n\r\nGrid.displayName = 'Grid'\r\n\r\nexport default Grid\r\n","import { createContext, useContext } from 'react'\r\n\r\nimport type { AlertVariant } from '@components/overlay/alert/alert.types'\r\nimport type { Theme } from '@theme/theme.types'\r\n\r\ntype AlertContextValue = {\r\n variant: AlertVariant\r\n accentColor: keyof Theme['colors']\r\n}\r\n\r\nexport const AlertContext = createContext<AlertContextValue>({\r\n variant: 'default',\r\n accentColor: 'defaultActive',\r\n})\r\n\r\nexport const useAlertContext = () => useContext(AlertContext)\r\n","import type { ComponentType, FC, SVGProps } from 'react'\r\n\r\nimport AlertSuccessIcon from '@resources/assets/icons/AlertSuccessIcon.svg?react'\r\nimport AlertErrorIcon from '@resources/assets/icons/AlertErrorIcon.svg?react'\r\nimport AlertWarningIcon from '@resources/assets/icons/AlertWarningIcon.svg?react'\r\nimport AlertInfoIcon from '@resources/assets/icons/AlertInfoIcon.svg?react'\r\n\r\nimport { Stack } from '@components/layout/stack'\r\nimport { Text } from '@components/foundation/text'\r\nimport { useAlertContext } from '@components/overlay/alert/Alert.context'\r\n\r\nimport type { AlertVariant } from '@components/overlay/alert/alert.types'\r\nimport type { AlertTitleProps } from '@components/overlay/alert/alert-title/AlertTitle.props'\r\n\r\nconst VARIANT_ICONS: Partial<Record<AlertVariant, FC<SVGProps<SVGSVGElement>>>> = {\r\n success: AlertSuccessIcon,\r\n error: AlertErrorIcon,\r\n warning: AlertWarningIcon,\r\n info: AlertInfoIcon,\r\n}\r\n\r\n/** Returns true if value is a React component type (function/class), false if it is a rendered node. */\r\nconst isSvgComponent = (value: unknown): value is ComponentType<SVGProps<SVGSVGElement>> =>\r\n typeof value === 'function'\r\n\r\n/**\r\n * Alert title row: renders the variant icon alongside the title text.\r\n * Must be used inside an `<Alert>` component.\r\n */\r\nconst AlertTitle: FC<AlertTitleProps> = ({ children, icon }) => {\r\n const { variant, accentColor } = useAlertContext()\r\n\r\n // Resolve which icon to render:\r\n // - custom icon prop always takes precedence over the built-in variant icon\r\n // - for \"default\" variant there is no built-in icon; custom icon adds one\r\n const builtInIcon = VARIANT_ICONS[variant]\r\n // Must be capitalised for JSX to treat it as a component (not an HTML tag)\r\n const ResolvedIcon: ComponentType<SVGProps<SVGSVGElement>> | null =\r\n icon && isSvgComponent(icon) ? icon : (icon === undefined ? (builtInIcon ?? null) : null)\r\n const customNode = icon && !isSvgComponent(icon) ? icon : null\r\n\r\n const hasIcon = ResolvedIcon !== null || customNode !== null\r\n\r\n return (\r\n <Stack\r\n flexDirection={'row'}\r\n alignItems={'center'}\r\n gap={'sm'}\r\n >\r\n {hasIcon && (\r\n <Stack\r\n flexShrink={0}\r\n alignItems={'center'}\r\n color={accentColor}\r\n width={'1.25rem'}\r\n height={'1.25rem'}\r\n aria-hidden={true}\r\n >\r\n {ResolvedIcon ? (\r\n <ResolvedIcon\r\n width={20}\r\n height={20}\r\n />\r\n ) : (\r\n customNode\r\n )}\r\n </Stack>\r\n )}\r\n <Text\r\n fontWeight={'semibold'}\r\n fontSize={'sm'}\r\n color={accentColor}\r\n >\r\n {children}\r\n </Text>\r\n </Stack>\r\n )\r\n}\r\n\r\nAlertTitle.displayName = 'Alert.Title'\r\n\r\nexport default AlertTitle\r\n","import type { FC } from 'react'\r\n\r\nimport { Text } from '@components/foundation/text'\r\n\r\nimport type { AlertBodyProps } from '@components/overlay/alert/alert-body/AlertBody.props'\r\n\r\n/**\r\n * Alert message body. Must be used inside an `<Alert>` component.\r\n */\r\nconst AlertBody: FC<AlertBodyProps> = ({ children }) => (\r\n <Text\r\n as={'p'}\r\n fontSize={'sm'}\r\n color={'textSecondary'}\r\n >\r\n {children}\r\n </Text>\r\n)\r\n\r\nAlertBody.displayName = 'Alert.Body'\r\n\r\nexport default AlertBody\r\n","import { Stack } from '@components/layout/stack'\r\nimport { AlertContext } from '@components/overlay/alert/Alert.context'\r\nimport AlertTitle from '@components/overlay/alert/alert-title/AlertTitle'\r\nimport AlertBody from '@components/overlay/alert/alert-body/AlertBody'\r\n\r\nimport type { AlertComponent, AlertVariant } from '@components/overlay/alert/alert.types'\r\nimport type { AlertProps } from '@components/overlay/alert/Alert.props'\r\nimport type { Theme } from '@theme/theme.types'\r\nimport { FC } from 'react'\r\n\r\ntype VariantTokens = {\r\n backgroundColor: keyof Theme['colors']\r\n borderColor: keyof Theme['colors']\r\n accentColor: keyof Theme['colors']\r\n}\r\n\r\nconst VARIANT_TOKENS: Record<AlertVariant, VariantTokens> = {\r\n default: { backgroundColor: 'surfacePaper', borderColor: 'defaultMain', accentColor: 'defaultActive' },\r\n success: { backgroundColor: 'successSubtle', borderColor: 'successMain', accentColor: 'successActive' },\r\n error: { backgroundColor: 'errorSubtle', borderColor: 'errorMain', accentColor: 'errorActive' },\r\n warning: { backgroundColor: 'warningSubtle', borderColor: 'warningMain', accentColor: 'warningActive' },\r\n info: { backgroundColor: 'infoSubtle', borderColor: 'infoMain', accentColor: 'infoActive' },\r\n}\r\n\r\nconst VARIANT_ARIA_LIVE: Record<AlertVariant, 'polite' | 'assertive'> = {\r\n default: 'polite',\r\n success: 'polite',\r\n error: 'assertive',\r\n warning: 'polite',\r\n info: 'polite',\r\n}\r\n\r\n/**\r\n * Inline alert banner with 5 visual variants: default, success, error, warning, info.\r\n * Use `Alert.Title` (icon + heading) and `Alert.Body` (message) as children.\r\n *\r\n * @example\r\n * <Alert variant=\"success\">\r\n * <Alert.Title>Saved</Alert.Title>\r\n * <Alert.Body>Your changes have been saved successfully.</Alert.Body>\r\n * </Alert>\r\n */\r\nconst AlertBase: FC<AlertProps> = ({\r\n variant = 'default',\r\n children,\r\n width = '100%',\r\n outline = false,\r\n shadow = 'none',\r\n}) => {\r\n const { backgroundColor, borderColor, accentColor } = VARIANT_TOKENS[variant]\r\n\r\n return (\r\n <AlertContext.Provider value={{ variant, accentColor }}>\r\n <Stack\r\n role={'alert'}\r\n aria-live={VARIANT_ARIA_LIVE[variant]}\r\n flexDirection={'column'}\r\n gap={'xs'}\r\n padding={'md'}\r\n borderRadius={'lg'}\r\n backgroundColor={backgroundColor}\r\n borderColor={outline ? borderColor : undefined}\r\n borderWidth={outline ? '1px' : undefined}\r\n borderStyle={outline ? 'solid' : undefined}\r\n boxShadow={shadow}\r\n width={width}\r\n >\r\n {children}\r\n </Stack>\r\n </AlertContext.Provider>\r\n )\r\n}\r\n\r\nAlertBase.displayName = 'Alert'\r\n\r\nconst Alert = AlertBase as AlertComponent\r\nAlert.Title = AlertTitle\r\nAlert.Body = AlertBody\r\n\r\nexport default Alert\r\n","/**\r\n * Responsive breakpoints (min-width, mobile-first).\r\n * Keep in sync with themeBreakpoints.\r\n */\r\nexport const BREAKPOINTS = {\r\n xs: 480,\r\n sm: 640,\r\n md: 768,\r\n lg: 1024,\r\n xl: 1280,\r\n '2xl': 1536,\r\n} as const\r\n\r\n/** Max-width media query strings (max = breakpoint - 1px). */\r\nexport const MEDIA_MAX = {\r\n xs: `max-width: ${BREAKPOINTS.xs - 1}px`,\r\n sm: `max-width: ${BREAKPOINTS.sm - 1}px`,\r\n md: `max-width: ${BREAKPOINTS.md - 1}px`,\r\n lg: `max-width: ${BREAKPOINTS.lg - 1}px`,\r\n xl: `max-width: ${BREAKPOINTS.xl - 1}px`,\r\n '2xl': `max-width: ${BREAKPOINTS['2xl'] - 1}px`,\r\n} as const\r\n\r\n/** Min-width media query strings (standard breakpoints). */\r\nexport const MEDIA_MIN = {\r\n xs: `min-width: ${BREAKPOINTS.xs}px`,\r\n sm: `min-width: ${BREAKPOINTS.sm}px`,\r\n md: `min-width: ${BREAKPOINTS.md}px`,\r\n lg: `min-width: ${BREAKPOINTS.lg}px`,\r\n xl: `min-width: ${BREAKPOINTS.xl}px`,\r\n '2xl': `min-width: ${BREAKPOINTS['2xl']}px`,\r\n} as const\r\n","/** Default duration in milliseconds for mount/unmount transition animations. */\r\nexport const DEFAULT_TRANSITION_DURATION_MS = 250\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { MEDIA_MAX } from '@constants/breakpoints.constants'\r\nimport { DEFAULT_TRANSITION_DURATION_MS } from '@constants/app.constants'\r\n\r\nconst TRANSITION = `${DEFAULT_TRANSITION_DURATION_MS}ms ease`\r\n\r\nexport const DIALOG_STYLES = createStyles((theme) => ({\r\n backdrop: {\r\n position: 'fixed' as const,\r\n inset: 0,\r\n zIndex: theme.zIndex.modal - 1,\r\n backgroundColor: 'rgba(0, 0, 0, 0)',\r\n transition: `background-color ${TRANSITION}`,\r\n },\r\n\r\n backdropVisible: {\r\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\r\n },\r\n panel: {\r\n position: 'fixed' as const,\r\n inset: 0,\r\n margin: 'auto',\r\n width: '90vw',\r\n height: 'fit-content',\r\n maxWidth: 'var(--dialog-max-width, 80vw)',\r\n maxHeight: 'var(--dialog-max-height, 80vh)',\r\n minWidth: 'var(--dialog-min-width, 0px)',\r\n minHeight: 'var(--dialog-min-height, 0px)',\r\n zIndex: theme.zIndex.modal,\r\n backgroundColor: theme.colors.surfacePaper,\r\n borderRadius: theme.radius['2xl'],\r\n boxShadow: theme.shadows.xl,\r\n display: 'flex',\r\n flexDirection: 'column' as const,\r\n overflow: 'hidden' as const,\r\n willChange: 'opacity, transform',\r\n opacity: 0,\r\n transform: 'scale(0.97)',\r\n transition: `opacity ${TRANSITION}, transform ${TRANSITION}`,\r\n // Mobile: bottom sheet\r\n [`@media (${MEDIA_MAX.sm})`]: {\r\n top: 'auto',\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n margin: 0,\r\n width: '100%',\r\n height: 'auto',\r\n maxWidth: 'none',\r\n maxHeight: 'var(--dialog-max-height, 85vh)',\r\n borderRadius: `${theme.radius['2xl']} ${theme.radius['2xl']} 0 0`,\r\n transform: 'translateY(100%)',\r\n },\r\n },\r\n\r\n panelVisible: {\r\n opacity: 1,\r\n transform: 'scale(1)',\r\n [`@media (${MEDIA_MAX.sm})`]: {\r\n transform: 'translateY(0)',\r\n },\r\n },\r\n\r\n // Full-height variant on mobile (applied via `fullscreen` prop)\r\n panelFullscreen: {\r\n [`@media (${MEDIA_MAX.sm})`]: {\r\n height: '100dvh',\r\n maxHeight: 'none',\r\n },\r\n },\r\n\r\n}), { id: 'dialog' })\r\n","import { createContext, useContext } from 'react'\r\n\r\nimport type CloseIcon from '@resources/assets/icons/CloseIcon.svg?react'\r\n\r\nexport type DialogContextValue = {\r\n /** Stable id for the title element, used by `aria-labelledby` on the panel. */\r\n titleId: string\r\n /** Close icon SVG component forwarded to Dialog.Header. */\r\n CloseIconComponent: typeof CloseIcon\r\n}\r\n\r\nexport const DialogContext = createContext<DialogContextValue>({\r\n titleId: '',\r\n CloseIconComponent: null as any,\r\n})\r\n\r\nexport const useDialogContext = (): DialogContextValue => useContext(DialogContext)\r\n","import { useEffect, useLayoutEffect, useState } from 'react'\r\n\r\nimport { DEFAULT_TRANSITION_DURATION_MS } from '@constants/app.constants'\r\n\r\nimport type { UseTransitionRenderReturnType } from '@hooks/common/use-transition-render/useTransitionRender.types'\r\n\r\n/**\r\n * Manages mount/unmount transitions with a two-phase approach (visible → fading-in).\r\n *\r\n * Opening sequence:\r\n * 1. `useLayoutEffect` sets `isVisible=true` synchronously before the browser paints\r\n * → element is in the DOM at its initial hidden state on the very first frame.\r\n * 2. Double `requestAnimationFrame` in `useEffect` waits for two rendered frames\r\n * before setting `isFadingIn=true`, guaranteeing the CSS transition always starts\r\n * from the painted hidden state (prevents flickering).\r\n *\r\n * Closing sequence:\r\n * `isFadingIn=false` → CSS transition plays → after `duration` ms → `isVisible=false`.\r\n *\r\n * @param isOpen - Whether the element should be shown.\r\n * @param duration - Transition duration in milliseconds (defaults to `DEFAULT_TRANSITION_DURATION_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(isOpen)\r\n const [isFadingIn, setIsFadingIn] = useState(isOpen)\r\n\r\n // Mount synchronously before paint so the element is in the DOM at opacity:0\r\n // on the very first frame — no extra render cycle between null and the initial state.\r\n useLayoutEffect(() => {\r\n if (isOpen) {\r\n setIsVisible(true)\r\n }\r\n }, [isOpen])\r\n\r\n useEffect(() => {\r\n if (isOpen) {\r\n // Double RAF: frame 1 → element rendered; frame 2 → element painted at hidden\r\n // state → THEN trigger the CSS transition.\r\n let raf2: number\r\n const raf1 = requestAnimationFrame(() => {\r\n raf2 = requestAnimationFrame(() => setIsFadingIn(true))\r\n })\r\n return () => {\r\n cancelAnimationFrame(raf1)\r\n cancelAnimationFrame(raf2)\r\n }\r\n } else {\r\n setIsFadingIn(false)\r\n const timeout = setTimeout(() => setIsVisible(false), duration)\r\n return () => clearTimeout(timeout)\r\n }\r\n }, [isOpen, duration])\r\n\r\n return { isVisible, isFadingIn }\r\n}\r\n","import { useEffect } from 'react'\r\n\r\n/**\r\n * Locks scrolling on `document.body` while `active` is true.\r\n *\r\n * Preserves the current scroll position and keeps the scrollbar gutter\r\n * (`overflow-y: scroll`) to avoid horizontal layout shift when the scrollbar\r\n * disappears. The original styles and scroll position are restored on cleanup.\r\n *\r\n * @example useBodyScrollLock(isDialogOpen)\r\n */\r\nexport const useBodyScrollLock = (active: boolean): void => {\r\n useEffect(() => {\r\n if (!active) {return}\r\n\r\n const scrollY = window.scrollY\r\n const body = document.body\r\n body.style.position = 'fixed'\r\n body.style.top = `-${scrollY}px`\r\n body.style.overflowY = 'scroll'\r\n body.style.width = '100%'\r\n\r\n return () => {\r\n body.style.position = ''\r\n body.style.top = ''\r\n body.style.overflowY = ''\r\n body.style.width = ''\r\n window.scrollTo(0, scrollY)\r\n }\r\n }, [active])\r\n}\r\n","import { RefObject, useEffect } from 'react'\r\n\r\nconst FOCUSABLE_SELECTOR = [\r\n 'a[href]',\r\n 'button:not([disabled])',\r\n 'textarea:not([disabled])',\r\n 'input:not([disabled])',\r\n 'select:not([disabled])',\r\n '[tabindex]:not([tabindex=\"-1\"])',\r\n].join(',')\r\n\r\nconst getFocusable = (container: HTMLElement): HTMLElement[] =>\r\n Array.from(container.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR)).filter(\r\n (el) => el.offsetParent !== null || el === document.activeElement\r\n )\r\n\r\n/**\r\n * Traps Tab / Shift+Tab focus within the element referenced by `containerRef`\r\n * while `active` is true. Focusable elements are recomputed on each Tab press\r\n * so dynamic content is handled correctly. Required for accessible modals.\r\n *\r\n * @example useFocusTrap(panelRef, open)\r\n */\r\nexport const useFocusTrap = (\r\n containerRef: RefObject<HTMLElement | null>,\r\n active: boolean\r\n): void => {\r\n useEffect(() => {\r\n if (!active) {return}\r\n const container = containerRef.current\r\n if (!container) {return}\r\n\r\n const handleKeyDown = (event: KeyboardEvent): void => {\r\n if (event.key !== 'Tab') {return}\r\n\r\n const focusable = getFocusable(container)\r\n if (focusable.length === 0) {\r\n event.preventDefault()\r\n container.focus()\r\n return\r\n }\r\n\r\n const first = focusable[0]\r\n const last = focusable[focusable.length - 1]\r\n const activeEl = document.activeElement\r\n\r\n if (event.shiftKey) {\r\n if (activeEl === first || activeEl === container || !container.contains(activeEl)) {\r\n event.preventDefault()\r\n last.focus()\r\n }\r\n } else if (activeEl === last) {\r\n event.preventDefault()\r\n first.focus()\r\n }\r\n }\r\n\r\n container.addEventListener('keydown', handleKeyDown)\r\n return () => container.removeEventListener('keydown', handleKeyDown)\r\n }, [active, containerRef])\r\n}\r\n","import { useId, useEffect, useRef, useCallback, type CSSProperties, type RefObject } from 'react'\r\n\r\nimport { useTransitionRender } from '@hooks/common/use-transition-render/useTransitionRender'\r\nimport { useKeyPress } from '@hooks/common/use-key-press/useKeyPress'\r\nimport { useBodyScrollLock } from '@hooks/common/use-body-scroll-lock/useBodyScrollLock'\r\nimport { useFocusTrap } from '@hooks/common/use-focus-trap/useFocusTrap'\r\nimport { BREAKPOINTS } from '@constants/breakpoints.constants'\r\nimport { DEFAULT_TRANSITION_DURATION_MS } from '@constants/app.constants'\r\n\r\nimport type { DialogProps } from '@components/overlay/dialog/Dialog.props'\r\n\r\nconst MOBILE_MEDIA_QUERY = `(max-width: ${BREAKPOINTS.sm - 1}px)`\r\n\r\ntype UseDialogReturn = {\r\n isVisible: boolean\r\n isFadingIn: boolean\r\n panelRef: RefObject<HTMLDivElement | null>\r\n titleId: string\r\n labelledBy: string | undefined\r\n handleBackdropClick: () => void\r\n cssVars: CSSProperties\r\n}\r\n\r\nconst resolvePx = (v: number | string): string =>\r\n typeof v === 'number' ? `${v}px` : v\r\n\r\nexport const useDialog = ({\r\n open,\r\n onClose,\r\n closeOnBackdropClick,\r\n maxWidth,\r\n maxHeight,\r\n minWidth,\r\n minHeight,\r\n 'aria-label': ariaLabel,\r\n}: Pick<DialogProps, 'open' | 'onClose' | 'closeOnBackdropClick' | 'maxWidth' | 'maxHeight' | 'minWidth' | 'minHeight' | 'aria-label'>): UseDialogReturn => {\r\n\r\n const { isVisible, isFadingIn } = useTransitionRender(open, DEFAULT_TRANSITION_DURATION_MS)\r\n const titleId = useId()\r\n const panelRef = useRef<HTMLDivElement>(null)\r\n\r\n // Focus the panel after the opening transition completes\r\n useEffect(() => {\r\n if (!open) {return}\r\n const timer = setTimeout(() => {\r\n panelRef.current?.focus({ preventScroll: true })\r\n }, DEFAULT_TRANSITION_DURATION_MS)\r\n return () => clearTimeout(timer)\r\n }, [open])\r\n\r\n // Lock body scroll while the dialog is open, preserving the scrollbar to avoid layout shift\r\n useBodyScrollLock(open)\r\n\r\n // Trap focus within the dialog panel while it is mounted (accessible modal)\r\n useFocusTrap(panelRef, isVisible)\r\n\r\n // Backdrop is always clickable on mobile (bottom-sheet UX), opt-in on desktop\r\n const handleBackdropClick = useCallback(() => {\r\n const isMobile = window.matchMedia(MOBILE_MEDIA_QUERY).matches\r\n if (closeOnBackdropClick || isMobile) {\r\n onClose()\r\n }\r\n }, [closeOnBackdropClick, onClose])\r\n\r\n useKeyPress({ Escape: onClose }, { enabled: open })\r\n\r\n const cssVars: CSSProperties = {\r\n '--dialog-max-width': resolvePx(maxWidth!),\r\n '--dialog-max-height': maxHeight,\r\n ...(minWidth !== undefined && { '--dialog-min-width': resolvePx(minWidth) }),\r\n ...(minHeight !== undefined && { '--dialog-min-height': resolvePx(minHeight) }),\r\n } as CSSProperties\r\n\r\n const labelledBy = ariaLabel ? undefined : titleId\r\n\r\n return { isVisible, isFadingIn, panelRef, titleId, labelledBy, handleBackdropClick, cssVars }\r\n}\r\n","import { useContext, type FC } from 'react'\r\n\r\nimport { IconButton } from '@components/actions/icon-button'\r\nimport { Text } from '@components/foundation/text'\r\nimport { Stack } from '@components/layout/stack'\r\nimport { DialogContext } from '@components/overlay/dialog/Dialog.context'\r\n\r\nimport type { DialogHeaderProps } from '@components/overlay/dialog/dialog-header/DialogHeader.props'\r\n\r\n/**\r\n * Standard dialog header with a title and a close button.\r\n * The `titleId` is wired automatically to the parent Dialog's `aria-labelledby`.\r\n *\r\n * @example\r\n * <Dialog.Header title=\"Confirm action\" onClose={handleClose} />\r\n */\r\nconst DialogHeader: FC<DialogHeaderProps> = ({ title, onClose }) => {\r\n const { titleId, CloseIconComponent } = useContext(DialogContext)\r\n\r\n return (\r\n <Stack\r\n flexDirection={'row'}\r\n alignItems={'center'}\r\n justifyContent={'space-between'}\r\n gap={'md'}\r\n paddingTop={'md'}\r\n paddingBottom={'md'}\r\n paddingLeft={'lg'}\r\n paddingRight={'md'}\r\n flexShrink={0}\r\n >\r\n <Text\r\n id={titleId}\r\n variant={'span'}\r\n fontSize={'md'}\r\n fontWeight={'semibold'}\r\n color={'textPrimary'}\r\n >\r\n {title}\r\n </Text>\r\n\r\n <IconButton\r\n icon={CloseIconComponent}\r\n ariaLabel={'Close dialog'}\r\n variant={'text'}\r\n color={'neutral'}\r\n size={'sm'}\r\n type={'button'}\r\n onClick={onClose}\r\n />\r\n </Stack>\r\n )\r\n}\r\n\r\nDialogHeader.displayName = 'Dialog.Header'\r\n\r\nexport default DialogHeader\r\n","import type { FC } from 'react'\r\n\r\nimport { Box } from '@components/layout/box'\r\n\r\nimport type { DialogBodyProps } from '@components/overlay/dialog/dialog-body/DialogBody.props'\r\n\r\n/**\r\n * Scrollable content area of the dialog.\r\n *\r\n * @example\r\n * <Dialog.Body>\r\n * <p>Are you sure you want to delete this item?</p>\r\n * </Dialog.Body>\r\n */\r\nconst DialogBody: FC<DialogBodyProps> = ({ children }) => (\r\n <Box\r\n flexGrow={1}\r\n minHeight={'0'}\r\n overflowY={'auto'}\r\n padding={'lg'}\r\n >\r\n {children}\r\n </Box>\r\n)\r\n\r\nDialogBody.displayName = 'Dialog.Body'\r\n\r\nexport default DialogBody\r\n","import { createPortal } from 'react-dom'\r\nimport { type FC } from 'react'\r\nimport { cx } from '@aurora-ds/theme'\r\n\r\nimport CloseIcon from '@resources/assets/icons/CloseIcon.svg?react'\r\nimport { DIALOG_STYLES } from '@components/overlay/dialog/Dialog.styles'\r\nimport { DialogContext } from '@components/overlay/dialog/Dialog.context'\r\nimport { useDialog } from '@components/overlay/dialog/utils/useDialog.utils'\r\nimport DialogHeader from '@components/overlay/dialog/dialog-header/DialogHeader'\r\nimport DialogBody from '@components/overlay/dialog/dialog-body/DialogBody'\r\n\r\nimport type { DialogProps } from '@components/overlay/dialog/Dialog.props'\r\nimport type { DialogComponent } from '@components/overlay/dialog/Dialog.types'\r\n\r\n/**\r\n * Modal dialog with a semi-transparent overlay. Supports responsive layout:\r\n * centered on desktop, full-width bottom sheet on mobile (< sm breakpoint).\r\n *\r\n * Animated via `useTransitionRender` on both open and close.\r\n * Closed by pressing Escape or using `Dialog.Header`'s built-in close button.\r\n * Backdrop click: always enabled on mobile, opt-in on desktop via `closeOnBackdropClick`.\r\n *\r\n * @example\r\n * <Dialog open={open} onClose={() => setOpen(false)}>\r\n * <Dialog.Header title=\"Settings\" onClose={() => setOpen(false)} />\r\n * <Dialog.Body>…content…</Dialog.Body>\r\n * </Dialog>\r\n */\r\nconst DialogBase: FC<DialogProps> = ({\r\n open,\r\n onClose,\r\n children,\r\n closeOnBackdropClick = false,\r\n fullscreen = false,\r\n maxWidth = '80vw',\r\n maxHeight = '80vh',\r\n minWidth,\r\n minHeight,\r\n 'aria-label': ariaLabel,\r\n}) => {\r\n const { isVisible, isFadingIn, panelRef, titleId, labelledBy, handleBackdropClick, cssVars } =\r\n useDialog({ open, onClose, closeOnBackdropClick, maxWidth, maxHeight, minWidth, minHeight, 'aria-label': ariaLabel })\r\n\r\n if (!isVisible) {return null}\r\n\r\n return createPortal(\r\n <>\r\n <div\r\n className={cx(DIALOG_STYLES.backdrop, isFadingIn && DIALOG_STYLES.backdropVisible)}\r\n onClick={handleBackdropClick}\r\n aria-hidden={true}\r\n />\r\n\r\n <div\r\n ref={panelRef}\r\n role={'dialog'}\r\n aria-modal={true}\r\n aria-labelledby={labelledBy}\r\n aria-label={ariaLabel}\r\n tabIndex={-1}\r\n className={cx(\r\n DIALOG_STYLES.panel,\r\n isFadingIn && DIALOG_STYLES.panelVisible,\r\n fullscreen && DIALOG_STYLES.panelFullscreen,\r\n )}\r\n style={cssVars}\r\n >\r\n <DialogContext.Provider value={{ titleId, CloseIconComponent: CloseIcon }}>\r\n {children}\r\n </DialogContext.Provider>\r\n </div>\r\n </>,\r\n document.body\r\n )\r\n}\r\n\r\nDialogBase.displayName = 'Dialog'\r\n\r\nconst Dialog = DialogBase as DialogComponent\r\nDialog.Header = DialogHeader\r\nDialog.Body = DialogBody\r\n\r\nexport default Dialog\r\n","export const lightPalette = {\r\n // Surface\r\n surfaceBackground: '#f8fafc',\r\n surfacePaper: '#ffffff',\r\n surfaceElevated: '#f1f5f9',\r\n\r\n // Text\r\n textPrimary: '#0f172a',\r\n textSecondary: '#475569',\r\n textTertiary: '#64748b',\r\n textDisabled: '#94a3b8',\r\n textInverse: '#ffffff',\r\n\r\n // Primary (Indigo brand)\r\n primaryMain: '#5b5aef',\r\n primaryHover: '#4f46e5',\r\n primaryActive: '#4338ca',\r\n primarySubtle: '#eef2ff',\r\n primarySubtleHover: '#e0e7ff',\r\n primarySubtleActive: '#c7d2fe',\r\n primaryDisabled: '#a5b4fc',\r\n primaryOn: '#ffffff',\r\n\r\n // Secondary (Slate neutral)\r\n secondaryMain: '#f1f5f9',\r\n secondaryHover: '#e2e8f0',\r\n secondaryActive: '#cbd5e1',\r\n secondarySubtle: '#f8fafc',\r\n secondarySubtleHover: '#f1f5f9',\r\n secondarySubtleActive: '#e2e8f0',\r\n secondaryDisabled: '#e2e8f0',\r\n secondaryOn: '#1e293b',\r\n\r\n // Border\r\n borderSubtle: '#f1f5f9',\r\n borderMain: '#e2e8f0',\r\n borderStrong: '#cbd5e1',\r\n\r\n // Disabled state\r\n disabledMain: '#e2e8f0',\r\n disabledText: '#94a3b8',\r\n\r\n // Success (Emerald)\r\n successMain: '#059669',\r\n successHover: '#047857',\r\n successActive: '#065f46',\r\n successSubtle: '#d1fae5',\r\n successSubtleHover: '#a7f3d0',\r\n successSubtleActive: '#6ee7b7',\r\n successOn: '#ffffff',\r\n\r\n // Warning (Amber)\r\n warningMain: '#d97706',\r\n warningHover: '#b45309',\r\n warningActive: '#92400e',\r\n warningSubtle: '#fef3c7',\r\n warningSubtleHover: '#fde68a',\r\n warningSubtleActive: '#fcd34d',\r\n warningOn: '#ffffff',\r\n\r\n // Error (Red)\r\n errorMain: '#dc2626',\r\n errorHover: '#b91c1c',\r\n errorActive: '#991b1b',\r\n errorSubtle: '#fee2e2',\r\n errorSubtleHover: '#fecaca',\r\n errorSubtleActive: '#fca5a5',\r\n errorOn: '#ffffff',\r\n\r\n // Info (Sky)\r\n infoMain: '#0284c7',\r\n infoHover: '#0369a1',\r\n infoActive: '#0c4a6e',\r\n infoSubtle: '#e0f2fe',\r\n infoSubtleHover: '#bae6fd',\r\n infoSubtleActive: '#7dd3fc',\r\n infoOn: '#ffffff',\r\n\r\n // Orange\r\n orangeMain: '#ea580c',\r\n orangeHover: '#c2410c',\r\n orangeActive: '#9a2e0f',\r\n orangeSubtle: '#ffedd5',\r\n orangeSubtleHover: '#fed7aa',\r\n orangeSubtleActive: '#fdba74',\r\n orangeOn: '#ffffff',\r\n\r\n // Pink\r\n pinkMain: '#db2777',\r\n pinkHover: '#be185d',\r\n pinkActive: '#9d174d',\r\n pinkSubtle: '#fce7f3',\r\n pinkSubtleHover: '#fbcfe8',\r\n pinkSubtleActive: '#f9a8d4',\r\n pinkOn: '#ffffff',\r\n\r\n // Violet\r\n violetMain: '#7c3aed',\r\n violetHover: '#6d28d9',\r\n violetActive: '#5b21b6',\r\n violetSubtle: '#ede9fe',\r\n violetSubtleHover: '#ddd6fe',\r\n violetSubtleActive: '#c4b5fd',\r\n violetOn: '#ffffff',\r\n\r\n // Default (Slate)\r\n defaultMain: '#64748b',\r\n defaultHover: '#475569',\r\n defaultActive: '#334155',\r\n defaultSubtle: '#f1f5f9',\r\n defaultSubtleHover: '#e2e8f0',\r\n defaultSubtleActive: '#cbd5e1',\r\n\r\n // Skeleton\r\n skeletonPrimary: '#dde3ec',\r\n skeletonSecondary: '#edf0f5',\r\n\r\n // Link (Blue)\r\n linkMain: '#1e40af',\r\n linkHover: '#1d4ed8',\r\n linkActive: '#2563eb',\r\n linkDisabled: '#93c5fd',\r\n}\r\n","/**\r\n * Default breakpoint tokens\r\n */\r\nexport const themeBreakpoints = {\r\n xs: '480px', // Extra small devices (phones in landscape)\r\n sm: '640px', // Small devices (large phones, small tablets)\r\n md: '768px', // Medium devices (tablets)\r\n lg: '1024px', // Large devices (desktops)\r\n xl: '1280px', // Extra large devices (large desktops)\r\n '2xl': '1536px', // Extra extra large devices (wide screens)\r\n}\r\n","/**\r\n * Default font size tokens\r\n */\r\nexport const themeFontSize = {\r\n '2xs': '0.625rem', // 10px\r\n xs: '0.75rem', // 12px\r\n sm: '0.875rem', // 14px\r\n md: '1rem', // 16px\r\n lg: '1.25rem', // 20px\r\n xl: '1.5rem', // 24px\r\n '2xl': '2rem', // 32px\r\n '3xl': '2.5rem', // 40px\r\n '4xl': '3rem', // 48px\r\n '5xl': '4rem', // 64px\r\n}\r\n","/**\r\n * Default font weight tokens\r\n */\r\nexport const themeFontWeight = {\r\n light: 300,\r\n regular: 400,\r\n medium: 500,\r\n semibold: 600,\r\n bold: 700,\r\n}\r\n","/**\r\n * Default line height tokens\r\n */\r\nexport const themeLineHeight = {\r\n none: 1,\r\n tight: 1.25,\r\n normal: 1.5,\r\n relaxed: 1.75,\r\n loose: 2,\r\n}\r\n","/**\r\n * Default opacity tokens\r\n */\r\nexport const themeOpacity = {\r\n none: 0,\r\n lowest: 0.05,\r\n low: 0.1,\r\n medium: 0.25,\r\n high: 0.5,\r\n higher: 0.75,\r\n full: 1,\r\n}\r\n","/**\r\n * Default border radius tokens\r\n */\r\nexport const themeRadius = {\r\n none: '0',\r\n xs: '0.125rem', // 2px\r\n sm: '0.25rem', // 4px\r\n md: '0.375rem', // 6px\r\n lg: '0.5rem', // 8px\r\n xl: '0.75rem', // 12px\r\n '2xl': '1rem', // 16px\r\n full: '9999px',\r\n}\r\n","/**\r\n * Default shadow tokens\r\n */\r\nexport const themeShadows = {\r\n none: 'none',\r\n xs: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\r\n sm: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\r\n md: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\r\n lg: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\r\n xl: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\r\n '2xl': '0 25px 50px -12px rgb(0 0 0 / 0.25)',\r\n inner: 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',\r\n focus: '0 0 0 3px rgb(99 102 241 / 0.4)',\r\n dropSm: 'drop-shadow(0 1px 3px rgb(0 0 0 / 0.1)) drop-shadow(0 1px 2px rgb(0 0 0 / 0.1))',\r\n}\r\n","/**\r\n * Default spacing tokens\r\n */\r\nexport const themeSpacing = {\r\n none: '0',\r\n '2xs': '0.125rem', // 2px\r\n xs: '0.25rem', // 4px\r\n 'xs+': '0.375rem', // 6px\r\n sm: '0.5rem', // 8px\r\n md: '1rem', // 16px\r\n lg: '1.5rem', // 24px\r\n xl: '2rem', // 32px\r\n '2xl': '3rem', // 48px\r\n '3xl': '4rem', // 64px\r\n '4xl': '6rem', // 96px\r\n '5xl': '8rem', // 128px\r\n}\r\n","/**\r\n * Default transition tokens\r\n */\r\nexport const themeTransition = {\r\n fast: '150ms ease-out',\r\n normal: '250ms ease-out',\r\n slow: '350ms ease-out',\r\n}\r\n","/**\r\n * Default z-index tokens\r\n */\r\nexport const themeZIndex = {\r\n behind: -1,\r\n base: 0,\r\n dropdown: 1000,\r\n sticky: 1100,\r\n overlay: 1300,\r\n modal: 1400,\r\n popover: 1500,\r\n tooltip: 1600,\r\n toast: 1700,\r\n}\r\n","import { createTheme } from '@aurora-ds/theme'\r\nimport { lightPalette } from '@theme/_palettes/lightPalette'\r\nimport { themeBreakpoints } from '@theme/values/themeBreakpoints'\r\nimport { themeFontSize } from '@theme/values/themeFontSize'\r\nimport { themeFontWeight } from '@theme/values/themeFontWeight'\r\nimport { themeLineHeight } from '@theme/values/themeLineHeight'\r\nimport { themeOpacity } from '@theme/values/themeOpacity'\r\nimport { themeRadius } from '@theme/values/themeRadius'\r\nimport { themeShadows } from '@theme/values/themeShadows'\r\nimport { themeSpacing } from '@theme/values/themeSpacing'\r\nimport { themeTransition } from '@theme/values/themeTransition'\r\nimport { themeZIndex } from '@theme/values/themeZIndex'\r\n\r\nexport const lightTheme = createTheme({\r\n colors: lightPalette,\r\n spacing: themeSpacing,\r\n radius: themeRadius,\r\n shadows: themeShadows,\r\n fontSize: themeFontSize,\r\n fontWeight: themeFontWeight,\r\n lineHeight: themeLineHeight,\r\n zIndex: themeZIndex,\r\n transition: themeTransition,\r\n opacity: themeOpacity,\r\n breakpoints: themeBreakpoints,\r\n})\r\n","export const darkPalette = {\r\n // Surface\r\n surfaceBackground: '#0f172a',\r\n surfacePaper: '#1e293b',\r\n surfaceElevated: '#273548',\r\n\r\n // Text\r\n textPrimary: '#f8fafc',\r\n textSecondary: '#cbd5e1',\r\n textTertiary: '#64748b',\r\n textDisabled: '#475569',\r\n textInverse: '#0f172a',\r\n\r\n // Primary (Indigo brand, lighter for dark bg)\r\n primaryMain: '#a5b4fc',\r\n primaryHover: '#c7d2fe',\r\n primaryActive: '#ddd6fe',\r\n primarySubtle: '#1e1b4b',\r\n primarySubtleHover: '#2d2a5e',\r\n primarySubtleActive: '#3b3878',\r\n primaryDisabled: '#4338ca',\r\n primaryOn: '#ffffff',\r\n\r\n // Secondary (Slate dark)\r\n secondaryMain: '#1e293b',\r\n secondaryHover: '#273548',\r\n secondaryActive: '#334155',\r\n secondarySubtle: '#0f172a',\r\n secondarySubtleHover: '#1e293b',\r\n secondarySubtleActive: '#273548',\r\n secondaryDisabled: '#1e293b',\r\n secondaryOn: '#f1f5f9',\r\n\r\n // Border\r\n borderSubtle: '#1e293b',\r\n borderMain: '#334155',\r\n borderStrong: '#475569',\r\n\r\n // Disabled state\r\n disabledMain: '#334155',\r\n disabledText: '#475569',\r\n\r\n // Success (Emerald)\r\n successMain: '#6ee7b7',\r\n successHover: '#a7f3d0',\r\n successActive: '#d1fae5',\r\n successSubtle: '#052e1f',\r\n successSubtleHover: '#063d29',\r\n successSubtleActive: '#084e35',\r\n successOn: '#0a0a0a',\r\n\r\n // Warning (Amber)\r\n warningMain: '#fcd34d',\r\n warningHover: '#fde68a',\r\n warningActive: '#fef3c7',\r\n warningSubtle: '#3a2a05',\r\n warningSubtleHover: '#4d390a',\r\n warningSubtleActive: '#62480e',\r\n warningOn: '#0a0a0a',\r\n\r\n // Error (Red)\r\n errorMain: '#fca5a5',\r\n errorHover: '#fecaca',\r\n errorActive: '#fee2e2',\r\n errorSubtle: '#3a0d0d',\r\n errorSubtleHover: '#4d1212',\r\n errorSubtleActive: '#621818',\r\n errorOn: '#0a0a0a',\r\n\r\n // Info (Sky)\r\n infoMain: '#7dd3fc',\r\n infoHover: '#bae6fd',\r\n infoActive: '#e0f2fe',\r\n infoSubtle: '#08263a',\r\n infoSubtleHover: '#0a3352',\r\n infoSubtleActive: '#0c4068',\r\n infoOn: '#0a0a0a',\r\n\r\n // Orange\r\n orangeMain: '#fdba74',\r\n orangeHover: '#fed7aa',\r\n orangeActive: '#ffedd5',\r\n orangeSubtle: '#3b1906',\r\n orangeSubtleHover: '#4f2309',\r\n orangeSubtleActive: '#642d0d',\r\n orangeOn: '#0a0a0a',\r\n\r\n // Pink\r\n pinkMain: '#f9a8d4',\r\n pinkHover: '#fbcfe8',\r\n pinkActive: '#fce7f3',\r\n pinkSubtle: '#3d0f28',\r\n pinkSubtleHover: '#511539',\r\n pinkSubtleActive: '#66204b',\r\n pinkOn: '#0a0a0a',\r\n\r\n // Violet\r\n violetMain: '#c4b5fd',\r\n violetHover: '#ddd6fe',\r\n violetActive: '#ede9fe',\r\n violetSubtle: '#22103f',\r\n violetSubtleHover: '#2f1856',\r\n violetSubtleActive: '#3d2270',\r\n violetOn: '#0a0a0a',\r\n\r\n // Default (Slate)\r\n defaultMain: '#94a3b8',\r\n defaultHover: '#cbd5e1',\r\n defaultActive: '#e2e8f0',\r\n defaultSubtle: '#1e293b',\r\n defaultSubtleHover: '#273548',\r\n defaultSubtleActive: '#334155',\r\n\r\n // Skeleton\r\n skeletonPrimary: '#1e293b',\r\n skeletonSecondary: '#3d5068',\r\n\r\n // Link (Blue)\r\n linkMain: '#93c5fd',\r\n linkHover: '#bfdbfe',\r\n linkActive: '#dbeafe',\r\n linkDisabled: '#1e40af',\r\n}\r\n","import { createTheme } from '@aurora-ds/theme'\r\nimport { darkPalette } from '@theme/_palettes/darkPalette'\r\nimport { themeBreakpoints } from '@theme/values/themeBreakpoints'\r\nimport { themeFontSize } from '@theme/values/themeFontSize'\r\nimport { themeFontWeight } from '@theme/values/themeFontWeight'\r\nimport { themeLineHeight } from '@theme/values/themeLineHeight'\r\nimport { themeOpacity } from '@theme/values/themeOpacity'\r\nimport { themeRadius } from '@theme/values/themeRadius'\r\nimport { themeShadows } from '@theme/values/themeShadows'\r\nimport { themeSpacing } from '@theme/values/themeSpacing'\r\nimport { themeTransition } from '@theme/values/themeTransition'\r\nimport { themeZIndex } from '@theme/values/themeZIndex'\r\n\r\nexport const darkTheme = createTheme({\r\n colors: darkPalette,\r\n spacing: themeSpacing,\r\n radius: themeRadius,\r\n shadows: themeShadows,\r\n fontSize: themeFontSize,\r\n fontWeight: themeFontWeight,\r\n lineHeight: themeLineHeight,\r\n zIndex: themeZIndex,\r\n transition: themeTransition,\r\n opacity: themeOpacity,\r\n breakpoints: themeBreakpoints,\r\n})\r\n"],"names":["_jsx","LABEL_FONT_SIZE","ICON_SIZE","_jsxs","VIEWPORT_MARGIN_PX","_Fragment","ICON_SIZE_MAP","HELPER_COLOR_MAP"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,MAAM,YAAY,GAAG;IAExB,cAQM;;ACpBH,MAAM,aAAa,GAAG,SAAS,CAAC;AACnC,IAAA,IAAI,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE;AACnC,IAAA,MAAM,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE;AAC1C,CAAA,CAAC;AAEK,MAAM,wBAAwB,GAAG,SAAS,CAAC;AAC9C,IAAA,IAAI,EAAE,EAAE,kBAAkB,EAAE,UAAU,EAAE;AACxC,IAAA,MAAM,EAAE,EAAE,kBAAkB,EAAE,QAAQ,EAAE;AAC3C,CAAA,CAAC;;ACLF,MAAM,WAAW,GAAoB,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC;AAE/D,MAAM,4BAA4B,GAAG,CAAC,KAM5C,MAAwB;AACrB,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,cAAc,EAAE,QAAQ;AACxB,IAAA,SAAS,EAAE,YAAY;AACvB,IAAA,MAAM,EAAE,uBAAuB;AAC/B,IAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,CAAA,iBAAA,EAAoB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,eAAA,EAAkB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,QAAA,EAAW,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,aAAA,EAAgB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;IACnK,gBAAgB,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE;AACpD,IAAA,WAAW,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE;AACzF,CAAA,CAAC;AAEK,MAAM,iCAAiC,GAAG,CAAC,KAGjD,KAA2H;AACxH,IAAA,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM;AAEtB,IAAA,MAAM,OAAO,GAAoB;AAC7B,QAAA,OAAO,EAAE;AACL,YAAA,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,aAAa;YACnE,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC,kBAAkB,EAAE,YAAY,EAAE,CAAC,CAAC,mBAAmB;AAChH,YAAA,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,WAAW;AACpE,SAAA;AACD,QAAA,SAAS,EAAE;AACP,YAAA,IAAI,EAAE,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,eAAe;YACzE,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,eAAe,EAAE,WAAW,EAAE,CAAC,CAAC,oBAAoB,EAAE,YAAY,EAAE,CAAC,CAAC,qBAAqB;AACxH,YAAA,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,YAAY;AACpE,SAAA;AACD,QAAA,OAAO,EAAE;AACL,YAAA,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,aAAa;YACnE,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC,kBAAkB,EAAE,YAAY,EAAE,CAAC,CAAC,mBAAmB;AAClH,YAAA,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,WAAW;AACpE,SAAA;AACD,QAAA,IAAI,EAAE;AACF,YAAA,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,UAAU;YAC1D,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC,eAAe,EAAE,YAAY,EAAE,CAAC,CAAC,gBAAgB;AACpG,YAAA,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ;AAC3D,SAAA;AACD,QAAA,OAAO,EAAE;AACL,YAAA,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,aAAa;YACnE,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC,kBAAkB,EAAE,YAAY,EAAE,CAAC,CAAC,mBAAmB;AAChH,YAAA,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,WAAW;AACpE,SAAA;AACD,QAAA,OAAO,EAAE;AACL,YAAA,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,aAAa;YACnE,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC,kBAAkB,EAAE,YAAY,EAAE,CAAC,CAAC,mBAAmB;AAChH,YAAA,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,WAAW;AACpE,SAAA;AACD,QAAA,KAAK,EAAE;AACH,YAAA,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,WAAW;YAC7D,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC,gBAAgB,EAAE,YAAY,EAAE,CAAC,CAAC,iBAAiB;AACxG,YAAA,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,SAAS;AAC9D,SAAA;KACJ;AAED,IAAA,MAAM,gBAAgB,GAAG,CAAC,MAAoC,EAAE,UAAyB,KAAsB;AAC3G,QAAA,IAAI,UAAU,KAAK,WAAW,EAAE;YAC5B,OAAO;gBACH,eAAe,EAAE,MAAM,CAAC,IAAI;gBAC5B,WAAW,EAAE,MAAM,CAAC,IAAI;gBACxB,KAAK,EAAE,MAAM,CAAC,EAAE;AAChB,gBAAA,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;gBAC3B,uBAAuB,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE;gBAClH,wBAAwB,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;aAC1H;QACL;AAEA,QAAA,IAAI,UAAU,KAAK,UAAU,EAAE;YAC3B,OAAO;AACH,gBAAA,eAAe,EAAE,aAAa;gBAC9B,WAAW,EAAE,MAAM,CAAC,MAAM;gBAC1B,KAAK,EAAE,MAAM,CAAC,EAAE;AAChB,gBAAA,uBAAuB,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE;AACvF,gBAAA,wBAAwB,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;aACvH;QACL;QAEA,OAAO;AACH,YAAA,eAAe,EAAE,aAAa;AAC9B,YAAA,WAAW,EAAE,aAAa;YAC1B,KAAK,EAAE,MAAM,CAAC,EAAE;AAChB,YAAA,uBAAuB,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE;AACvF,YAAA,wBAAwB,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;SAC3F;AACL,IAAA,CAAC;IAED,OAAQ,MAAM,CAAC,IAAI,CAAC,OAAO,CAAmB,CAAC,OAAO,CAAC,CAAC,KAAK,KACzD,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,MAAM;QAC7B,KAAK;AACL,QAAA,OAAO,EAAE,UAAU;QACnB,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;KACvD,CAAC,CAAC,CACmH;AAC9H,CAAC;;AC3GM,MAAM,eAAe,GAAG,cAAc,CAAC,CAAC,KAAK,MAAM;AACtD,IAAA,IAAI,EAAE,4BAA4B,CAAC,KAAK,CAAC;AACzC,IAAA,QAAQ,EAAE;AACN,QAAA,IAAI,EAAE;YACF,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA,EAAA,EAAK,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE;YACrF,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA,EAAA,EAAK,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE;YACvF,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA,EAAA,EAAK,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE;AACxF,SAAA;;AAED,QAAA,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;AAClD,QAAA,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;AACpG,KAAA;AACD,IAAA,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE;AACvE,IAAA,gBAAgB,EAAE,iCAAiC,CAAC,KAAK,CAAC;AAC7D,CAAA,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;AAEd,MAAM,aAAa,GAAG,YAAY,CAAC;;AAEtC,IAAA,OAAO,EAAE;AACL,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,GAAG,EAAE,OAAO;AACf,KAAA;;AAED,IAAA,aAAa,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE;;AAEvC,IAAA,WAAW,EAAE;AACT,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,cAAc,EAAE,QAAQ;AAC3B,KAAA;;AAED,IAAA,WAAW,EAAE;QACT,SAAS,EAAE,CAAA,EAAG,aAAa,CAAA,sBAAA,CAAwB;AACnD,QAAA,yCAAyC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;AACnE,KAAA;AACJ,CAAA,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC;;ACxCnB,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,KAAK,MAAM;AAChD,IAAA,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAmB,MAAM;AAC7F,QAAA,SAAS,EAAE,aAAsB;AACjC,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,UAAU,EAAE,CAAA,MAAA,EAAS,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,OAAA,EAAU,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AAC3E,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,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,MAAM,CAAC;AAClD,QAAA,OAAO,EAAE;AACL,YAAA,KAAK,EAAE,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS;AAC1D,YAAA,MAAM,EAAE,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS;AAC9D,SAAA;AACD,QAAA,yDAAyD,EAAE;AACvD,YAAA,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS;AAC9C,SAAA;KACJ,CAAC;AACL,CAAA,CAAC,CAAC;;ACzBH;;;;;AAKG;AACH,MAAM,IAAI,GAAkB,CACxB,EACI,GAAG,EACH,IAAI,EAAE,OAAO,EACb,IAAI,EACJ,WAAW,EACX,IAAI,EACJ,eAAe,EACf,OAAO,EACP,YAAY,EACZ,SAAS,EACT,IAAI,EACJ,GAAG,IAAI,EACV,KACD;IACA,MAAM,kBAAkB,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AAChH,IAAA,MAAM,eAAe,GAAG,SAAS,GAAG,CAAA,EAAG,kBAAkB,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,GAAG,kBAAkB;AAC7F,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAEzE,QACIA,aACI,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,eAAe,EAAA,aAAA,EACb,UAAU,GAAG,SAAS,GAAG,IAAI,EAC1C,IAAI,EAAE,IAAI,KAAK,UAAU,GAAG,KAAK,GAAG,cAAc,CAAC,EAAA,GAC/C,IAAI,EAAA,QAAA,EAERA,GAAA,CAAC,OAAO,EAAA,EACJ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EAAA,CAChB,EAAA,CACA;AAEd;AAEA,IAAI,CAAC,WAAW,GAAG,MAAM;;AC1CzB;AACO,MAAM,oBAAoB,GAAG,CAAC,KAAY,MAA8C;AAC3F,IAAA,EAAE,EAAE;AACA,QAAA,GAAG,EAAE,IAAI;AACT,QAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/B,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,KAAK,CAAC;AAC/B,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,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,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;AACD,IAAA,MAAM,EAAE;AACJ,QAAA,GAAG,EAAE,QAAQ;AACb,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,MAAM;AACtC,KAAA;AACJ,CAAA,CAAC;;AC5DK,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,KAAK,KAAI;AAC9C,IAAA,MAAM,aAAa,GAAG,oBAAoB,CAAC,KAAK,CAAC;IAEjD,OAAO;AACH,QAAA,IAAI,EAAE,CAAC,EACH,OAAO,GAAG,MAAM,EAChB,KAAK,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,UAAU,EACV,SAAS,EACT,aAAa,EACb,MAAM,EACN,MAAM,EACN,kBAAkB,EAClB,KAAK,EACL,aAAa,EACb,aAAa,EACb,SAAS,GACK,KAAI;AAClB,YAAA,MAAM,cAAc,GAChB,SAAS,IAAI;AACT,kBAAE;AACF,kBAAE;AACE,sBAAE;AACF,sBAAE;AACE,0BAAE;0BACA,SAAS;YAE3B,OAAO;AACH,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,QAAQ;AAC/E,gBAAA,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,UAAU;AACzF,gBAAA,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,UAAU;AACzF,gBAAA,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS;AAC9C,gBAAA,MAAM,EAAE,SAAS;gBACjB,IAAI,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC;AACrC,gBAAA,IAAI,UAAU,IAAI,EAAE,UAAU,EAAE,CAAC;AACjC,gBAAA,IAAI,aAAa,IAAI,EAAE,aAAa,EAAE,CAAC;gBACvC,IAAI,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,CAAC;AACrD,gBAAA,IAAI,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;gBAC/B,IAAI,MAAM,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;;;AAGtC,gBAAA,IAAI;AACA,sBAAE,EAAE,UAAU,EAAE,QAAiB;AACjC,sBAAE;AACE,0BAAE,EAAE,UAAU,EAAE,UAAmB;0BACjC,EAAE,CAAC;gBACb,IAAI,cAAc,IAAI;oBAClB,cAAc;oBACd,IAAI,SAAS,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC;iBACnD,CAAC;aACL;QACL,CAAC;KACJ;AACL,CAAC,CAAC;;AC/DF;;;;;AAKG;AACI,MAAM,qBAAqB,GAAG,CAAC,QAAgB,KAAI;AACtD,IAAA,IAAI,QAAQ,KAAK,CAAC,EAAE;QAChB,OAAO;AACH,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,UAAU,EAAE,QAAiB;SAChC;IACL;IAEA,OAAO;AACH,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,YAAY,EAAE,UAAU;AACxB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,eAAe,EAAE,QAAQ;AACzB,QAAA,eAAe,EAAE,UAAmB;AACpC,QAAA,UAAU,EAAE,QAAiB;AAC7B,QAAA,YAAY,EAAE,YAAqB;AACnC,QAAA,SAAS,EAAE,YAAqB;KACnC;AACL,CAAC;;ACvBD;;;;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,CACN,aAAa,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,OAAO,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;AAClD,CAAC;;AC7BD;;;;;;;;AAQG;AACH,MAAM,IAAI,GAAkB,CACxB,EACI,GAAG,EACH,QAAQ,EACR,OAAO,GAAG,MAAM,EAChB,EAAE,EACF,KAAK,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,UAAU,EACV,KAAK,EACL,aAAa,EACb,aAAa,EACb,SAAS,EACT,SAAS,EACT,aAAa,EACb,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,kBAAkB,EAClB,OAAO,EACP,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACV,KACD;AACA,IAAA,MAAM,KAAK,GAAG,QAAQ,EAAE;AACxB,IAAA,MAAM,aAAa,GAAG,oBAAoB,CAAC,KAAK,CAAC;IAEjD,MAAM,cAAc,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ;IAC9C,MAAM,GAAG,GAAG,EAAE,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG;AAC5C,IAAA,MAAM,cAAc,GAAG,iBAAiB,CAAC,QAAQ,CAAC;AAClD,IAAA,MAAM,cAAc,GAAG,cAAc,GAAG,qBAAqB,CAAC,cAAc,CAAC,GAAG,SAAS;AAEzF,IAAA,MAAM,kBAAkB,GAAG,WAAW,CAAC,IAAI,CAAC;QACxC,OAAO;QACP,KAAK;QACL,QAAQ;QACR,UAAU;QACV,UAAU;QACV,UAAU;QACV,SAAS;QACT,aAAa;QACb,MAAM;QACN,MAAM,EAAE,cAAc,GAAG,KAAK,GAAG,MAAM;QACvC,kBAAkB;QAClB,KAAK;QACL,aAAa;QACb,aAAa;QACb,SAAS;AACZ,KAAA,CAAC;AAEF,IAAA,MAAM,eAAe,GAAG,SAAS,GAAG,CAAA,EAAG,kBAAkB,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,GAAG,kBAAkB;AAC7F,IAAA,MAAM,WAAW,GAAG,cAAc,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK;IAE5E,OAAO,aAAa,CAChB,GAAG,EACH;QACI,GAAG;AACH,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,KAAK,EAAE,WAAW;AAClB,QAAA,IAAI,GAAG,KAAK,OAAO,IAAI,OAAO,KAAK,SAAS,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AAChE,QAAA,GAAG,IAAI;KACV,EACD,cAAc,CACjB;AACL;;AC1EA;AACA,MAAMC,iBAAe,GAAgD;AACjE,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;CACX;AAED;AACA,MAAMC,WAAS,GAAgD;AAC3D,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;CACX;AAED;;;;;;AAMG;AACH,MAAM,MAAM,GAAoB,CAC5B,EACI,GAAG,EACH,OAAO,GAAG,WAAW,EACrB,KAAK,GAAG,SAAS,EACjB,IAAI,GAAG,IAAI,EACX,KAAK,EACL,QAAQ,EACR,UAAU,EACV,SAAS,GAAG,KAAK,EACjB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,KAAK,EACL,SAAS,EACT,IAAI,GAAG,QAAQ,EACf,QAAQ,EACR,KAAK,EACL,GAAG,IAAI,EACV,KACD;AACA,IAAA,MAAM,UAAU,GAAG,QAAQ,IAAI,SAAS;AACxC,IAAA,MAAM,QAAQ,GAAGA,WAAS,CAAC,IAAI,CAAC;AAEhC,IAAA,MAAM,aAAa,GAAG,eAAe,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC;AAC1E,IAAA,MAAM,WAAW,GAAG;AAChB,QAAA,GAAG,KAAK;AACR,QAAA,IAAI,KAAK,KAAK,SAAS,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACzC,QAAA,IAAI,QAAQ,KAAK,SAAS,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;AAC/C,QAAA,IAAI,UAAU,KAAK,SAAS,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;KACtD;AAED,IAAA,QACIC,IAAA,CAAA,QAAA,EAAA,EACI,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,UAAU,EAAA,WAAA,EACT,SAAS,IAAI,SAAS,EACjC,KAAK,EAAE,WAAW,EAAA,GACd,IAAI,EAAA,QAAA,EAAA,CAEP,SAAS,KACNH,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,aAAa,CAAC,WAAW,EAAA,QAAA,EACtCA,GAAA,CAAC,IAAI,EAAA,EACD,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,aAAa,CAAC,WAAW,EAAA,CACtC,EAAA,CACC,CACV,EAEDG,IAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,IAAI,aAAa,CAAC,aAAa,CAAC,EAAA,QAAA,EAAA,CAC/E,SAAS,KACNH,GAAA,CAAC,IAAI,EAAA,EACD,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,QAAQ,EAAA,CAChB,CACL,EAEA,KAAK,KACFA,GAAA,CAAC,IAAI,EAAA,EACD,OAAO,EAAE,MAAM,EACf,QAAQ,EAAEC,iBAAe,CAAC,IAAI,CAAC,EAC/B,UAAU,EAAE,QAAQ,EACpB,UAAU,EAAE,MAAM,EAAA,QAAA,EAEjB,KAAK,EAAA,CACH,CACV,EAEA,OAAO,KACJD,GAAA,CAAC,IAAI,EAAA,EACD,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,QAAQ,EAAA,CAChB,CACL,CAAA,EAAA,CACE,CAAA,EAAA,CACF;AAEjB;AAEA,MAAM,CAAC,WAAW,GAAG,QAAQ;;AC7GtB,MAAM,oBAAoB,GAAG,cAAc,CAAC,CAAC,KAAK,MAAM;AAC3D,IAAA,IAAI,EAAE,4BAA4B,CAAC,KAAK,CAAC;AACzC,IAAA,QAAQ,EAAE;AACN,QAAA,IAAI,EAAE;AACF,YAAA,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE;AACnD,YAAA,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE;AACvD,YAAA,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE;AACtD,SAAA;AACD,QAAA,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;AAClD,QAAA,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;AACpG,KAAA;AACD,IAAA,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE;AACvE,IAAA,gBAAgB,EAAE,iCAAiC,CAAC,KAAK,CAAC;AAC7D,CAAA,CAAC,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC;AAEnB,MAAM,kBAAkB,GAAG,YAAY,CAAC;;AAE3C,IAAA,WAAW,EAAE;QACT,SAAS,EAAE,CAAA,EAAG,aAAa,CAAA,sBAAA,CAAwB;AACnD,QAAA,yCAAyC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;AACnE,KAAA;;AAED,IAAA,UAAU,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE;;AAEpC,IAAA,WAAW,EAAE;AACT,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,cAAc,EAAE,QAAQ;AAC3B,KAAA;AACJ,CAAA,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,CAAC;;ACzB/B;AACA,MAAME,WAAS,GAAgD;AAC3D,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;CACX;AAED;;;;;;;AAOG;AACH,MAAM,UAAU,GAAwB,CACpC,EACI,GAAG,EACH,IAAI,EAAE,aAAa,EACnB,SAAS,EACT,OAAO,GAAG,WAAW,EACrB,KAAK,GAAG,SAAS,EACjB,IAAI,GAAG,IAAI,EACX,SAAS,GAAG,KAAK,EACjB,SAAS,EACT,IAAI,GAAG,QAAQ,EACf,QAAQ,EACR,GAAG,IAAI,EACV,KACD;AACA,IAAA,MAAM,UAAU,GAAG,QAAQ,IAAI,SAAS;AACxC,IAAA,MAAM,QAAQ,GAAGA,WAAS,CAAC,IAAI,CAAC;AAEhC,IAAA,MAAM,aAAa,GAAG,oBAAoB,CACtC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EACxB,SAAS,CACZ;AAED,IAAA,QACIC,IAAA,CAAA,QAAA,EAAA,EACI,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,UAAU,EAAA,YAAA,EACR,SAAS,EAAA,WAAA,EACV,SAAS,IAAI,SAAS,EAAA,GAC7B,IAAI,EAAA,QAAA,EAAA,CAEP,SAAS,KACNH,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,kBAAkB,CAAC,WAAW,EAAA,QAAA,EAC3CA,GAAA,CAAC,IAAI,EAAA,EACD,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,kBAAkB,CAAC,WAAW,GAC3C,EAAA,CACC,CACV,EAEDA,GAAA,CAAC,IAAI,IACD,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,EAAE,CAAC,SAAS,IAAI,kBAAkB,CAAC,UAAU,CAAC,EAAA,CAC3D,CAAA,EAAA,CACG;AAEjB;AAEA,UAAU,CAAC,WAAW,GAAG,YAAY;;AC1E9B,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,KAAK,MAAM;IAChD,IAAI,EAAE,CAAC,EAAE,SAAS,GAAG,OAAO,EAAmB,MAAM;AACjD,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,GAAG,EAAE,QAAQ;AACb,QAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ;AAC5B,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,QAAQ,EAAE,SAAS;AACnB,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,UAAU,EAAE,SAAS;QACrB,cAAc,EAAE,SAAS,KAAK,QAAQ,GAAG,WAAW,GAAG,MAAM;AAC7D,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,QAAA,UAAU,EAAE,CAAA,MAAA,EAAS,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AAC5C,QAAA,oCAAoC,EAAE;AAClC,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;YAC7B,cAAc,EAAE,SAAS,KAAK,MAAM,GAAG,WAAW,GAAG,MAAM;AAC9D,SAAA;AACD,QAAA,qCAAqC,EAAE;AACnC,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;AACjC,SAAA;AACD,QAAA,gBAAgB,EAAE;AACd,YAAA,OAAO,EAAE,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAA,CAAE;AAC7C,YAAA,aAAa,EAAE,KAAK;AACvB,SAAA;AACD,QAAA,yBAAyB,EAAE;AACvB,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAChC,YAAA,MAAM,EAAE,aAAa;AACrB,YAAA,cAAc,EAAE,MAAM;AACzB,SAAA;KACJ,CAAC;AACF,IAAA,IAAI,EAAE;AACF,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,UAAU,EAAE,CAAC;AACb,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,MAAM,EAAE,KAAK;AAChB,KAAA;AACJ,CAAA,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;;ACnCnB;;;;;;;AAOG;AACH,MAAM,IAAI,GAAkB,CACxB,EACI,GAAG,EACH,SAAS,GAAG,OAAO,EACnB,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,QAAQ,EACR,SAAS,EACT,OAAO,EACP,SAAS,EACT,GAAG,IAAI,EACV,KACD;AACA,IAAA,MAAM,WAAW,GAAG,CAAC,CAAgC,KAAI;QACrD,IAAI,QAAQ,EAAE;YACV,CAAC,CAAC,cAAc,EAAE;YAClB;QACJ;AACA,QAAA,OAAO,GAAG,CAAC,CAAC;AAChB,IAAA,CAAC;;AAGD,IAAA,MAAM,aAAa,GAAG,CAAC,CAAmC,KAAI;QAC1D,IAAI,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;YAC/B,CAAC,CAAC,cAAc,EAAE;QACtB;AACA,QAAA,SAAS,GAAG,CAAC,CAAC;AAClB,IAAA,CAAC;AAED,IAAA,QACIG,IAAA,CAAA,GAAA,EAAA,EACI,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,CAAC,EAAA,eAAA,EAC1C,QAAQ,IAAI,SAAS,EACpC,QAAQ,EAAE,QAAQ,GAAG,EAAE,GAAG,SAAS,EACnC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,EACvC,GAAG,EAAE,QAAQ,GAAG,qBAAqB,GAAG,SAAS,EACjD,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,aAAa,EAAA,GACpB,IAAI,EAAA,QAAA,EAAA,CAEP,SAAS,KACNH,GAAA,CAAA,MAAA,EAAA,EACI,SAAS,EAAE,WAAW,CAAC,IAAI,EAAA,aAAA,EACd,IAAI,EAAA,QAAA,EAEjBA,GAAA,CAAC,SAAS,EAAA,EACN,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,KAAK,EAAA,CACf,EAAA,CACC,CACV,EAEA,QAAQ,EAER,OAAO,KACJA,GAAA,CAAA,MAAA,EAAA,EACI,SAAS,EAAE,WAAW,CAAC,IAAI,EAAA,aAAA,EACd,IAAI,EAAA,QAAA,EAEjBA,GAAA,CAAC,OAAO,EAAA,EACJ,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,KAAK,EAAA,CACf,EAAA,CACC,CACV,CAAA,EAAA,CACD;AAEZ;AAEA,IAAI,CAAC,WAAW,GAAG,MAAM;;ACrFzB,MAAM,mBAAmB,GAAmB,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,CAAC;AAW9F;;;AAGG;AACI,MAAM,0BAA0B,GAAG,CAAC,KAAyC,KAAI;AACpF,IAAA,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM;AAEtB,IAAA,MAAM,OAAO,GAAoC;AAC7C,QAAA,OAAO,EAAE;YACL,EAAE,EAAE,CAAC,CAAC,WAAW;YACjB,EAAE,EAAE,CAAC,CAAC,WAAW;YACjB,EAAE,EAAE,CAAC,CAAC,WAAW;YACjB,QAAQ,EAAE,CAAC,CAAC,YAAY;YACxB,MAAM,EAAE,CAAC,CAAC,aAAa;YACvB,MAAM,EAAE,CAAC,CAAC,WAAW;AACxB,SAAA;AACD,QAAA,OAAO,EAAE;YACL,EAAE,EAAE,CAAC,CAAC,WAAW;YACjB,EAAE,EAAE,CAAC,CAAC,SAAS;YACf,EAAE,EAAE,CAAC,CAAC,WAAW;YACjB,QAAQ,EAAE,CAAC,CAAC,YAAY;YACxB,MAAM,EAAE,CAAC,CAAC,aAAa;YACvB,MAAM,EAAE,CAAC,CAAC,WAAW;AACxB,SAAA;AACD,QAAA,SAAS,EAAE;YACP,EAAE,EAAE,CAAC,CAAC,aAAa;YACnB,EAAE,EAAE,CAAC,CAAC,WAAW;YACjB,EAAE,EAAE,CAAC,CAAC,WAAW;YACjB,QAAQ,EAAE,CAAC,CAAC,WAAW;YACvB,MAAM,EAAE,CAAC,CAAC,eAAe;YACzB,MAAM,EAAE,CAAC,CAAC,YAAY;AACzB,SAAA;AACD,QAAA,OAAO,EAAE;YACL,EAAE,EAAE,CAAC,CAAC,WAAW;YACjB,EAAE,EAAE,CAAC,CAAC,SAAS;YACf,EAAE,EAAE,CAAC,CAAC,WAAW;YACjB,QAAQ,EAAE,CAAC,CAAC,YAAY;YACxB,MAAM,EAAE,CAAC,CAAC,aAAa;YACvB,MAAM,EAAE,CAAC,CAAC,WAAW;AACxB,SAAA;AACD,QAAA,OAAO,EAAE;YACL,EAAE,EAAE,CAAC,CAAC,WAAW;YACjB,EAAE,EAAE,CAAC,CAAC,SAAS;YACf,EAAE,EAAE,CAAC,CAAC,WAAW;YACjB,QAAQ,EAAE,CAAC,CAAC,YAAY;YACxB,MAAM,EAAE,CAAC,CAAC,aAAa;YACvB,MAAM,EAAE,CAAC,CAAC,WAAW;AACxB,SAAA;AACD,QAAA,KAAK,EAAE;YACH,EAAE,EAAE,CAAC,CAAC,SAAS;YACf,EAAE,EAAE,CAAC,CAAC,OAAO;YACb,EAAE,EAAE,CAAC,CAAC,SAAS;YACf,QAAQ,EAAE,CAAC,CAAC,UAAU;YACtB,MAAM,EAAE,CAAC,CAAC,WAAW;YACrB,MAAM,EAAE,CAAC,CAAC,SAAS;AACtB,SAAA;AACD,QAAA,IAAI,EAAE;YACF,EAAE,EAAE,CAAC,CAAC,QAAQ;YACd,EAAE,EAAE,CAAC,CAAC,MAAM;YACZ,EAAE,EAAE,CAAC,CAAC,QAAQ;YACd,QAAQ,EAAE,CAAC,CAAC,SAAS;YACrB,MAAM,EAAE,CAAC,CAAC,UAAU;YACpB,MAAM,EAAE,CAAC,CAAC,QAAQ;AACrB,SAAA;AACD,QAAA,MAAM,EAAE;YACJ,EAAE,EAAE,CAAC,CAAC,UAAU;YAChB,EAAE,EAAE,CAAC,CAAC,QAAQ;YACd,EAAE,EAAE,CAAC,CAAC,UAAU;YAChB,QAAQ,EAAE,CAAC,CAAC,WAAW;YACvB,MAAM,EAAE,CAAC,CAAC,YAAY;YACtB,MAAM,EAAE,CAAC,CAAC,UAAU;AACvB,SAAA;AACD,QAAA,IAAI,EAAE;YACF,EAAE,EAAE,CAAC,CAAC,QAAQ;YACd,EAAE,EAAE,CAAC,CAAC,MAAM;YACZ,EAAE,EAAE,CAAC,CAAC,QAAQ;YACd,QAAQ,EAAE,CAAC,CAAC,SAAS;YACrB,MAAM,EAAE,CAAC,CAAC,UAAU;YACpB,MAAM,EAAE,CAAC,CAAC,QAAQ;AACrB,SAAA;AACD,QAAA,MAAM,EAAE;YACJ,EAAE,EAAE,CAAC,CAAC,UAAU;YAChB,EAAE,EAAE,CAAC,CAAC,QAAQ;YACd,EAAE,EAAE,CAAC,CAAC,UAAU;YAChB,QAAQ,EAAE,CAAC,CAAC,WAAW;YACvB,MAAM,EAAE,CAAC,CAAC,YAAY;YACtB,MAAM,EAAE,CAAC,CAAC,UAAU;AACvB,SAAA;KACJ;AAED,IAAA,MAAM,cAAc,GAAG,CAAC,MAAmB,EAAE,UAAwB,KAAI;AACrE,QAAA,IAAI,UAAU,KAAK,QAAQ,EAAE;YACzB,OAAO;gBACH,eAAe,EAAE,MAAM,CAAC,EAAE;gBAC1B,WAAW,EAAE,MAAM,CAAC,EAAE;gBACtB,KAAK,EAAE,MAAM,CAAC,EAAE;aACnB;QACL;AAEA,QAAA,IAAI,UAAU,KAAK,UAAU,EAAE;YAC3B,OAAO;AACH,gBAAA,eAAe,EAAE,aAAa;gBAC9B,WAAW,EAAE,MAAM,CAAC,MAAM;gBAC1B,KAAK,EAAE,MAAM,CAAC,QAAQ;aACzB;QACL;AAEA,QAAA,IAAI,UAAU,KAAK,gBAAgB,EAAE;YACjC,OAAO;gBACH,eAAe,EAAE,MAAM,CAAC,MAAM;gBAC9B,WAAW,EAAE,MAAM,CAAC,MAAM;gBAC1B,KAAK,EAAE,MAAM,CAAC,QAAQ;aACzB;QACL;;QAGA,OAAO;YACH,eAAe,EAAE,MAAM,CAAC,MAAM;AAC9B,YAAA,WAAW,EAAE,aAAa;YAC1B,KAAK,EAAE,MAAM,CAAC,QAAQ;SACzB;AACL,IAAA,CAAC;IAED,OAAQ,MAAM,CAAC,IAAI,CAAC,OAAO,CAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,KACxD,mBAAmB,CAAC,GAAG,CAAC,CAAC,OAAO,MAAM;QAClC,KAAK;QACL,OAAO;QACP,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;KAClD,CAAC,CAAC,CACN;AACL,CAAC;;AC5IM,MAAM,cAAc,GAAG,cAAc,CAAC,CAAC,KAAK,MAAM;AACrD,IAAA,IAAI,EAAE;AACF,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACrB,QAAA,SAAS,EAAE,YAAqB;AAChC,QAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;AAC/B,QAAA,MAAM,EAAE,uBAAuB;AAC/B,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;AACnC,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI;AACjC,QAAA,UAAU,EAAE,QAAiB;AAC7B,QAAA,UAAU,EAAE,MAAe;AAC9B,KAAA;AACD,IAAA,QAAQ,EAAE;AACN,QAAA,IAAI,EAAE;AACF,YAAA,EAAE,EAAE;AACA,gBAAA,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,YAAY,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA,CAAE;AAC3C,gBAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;AAClC,aAAA;AACD,YAAA,EAAE,EAAE;AACA,gBAAA,MAAM,EAAE,QAAQ;AAChB,gBAAA,OAAO,EAAE,CAAA,UAAA,EAAa,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAE;AACxC,gBAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC9B,aAAA;AACD,YAAA,EAAE,EAAE;AACA,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,OAAO,EAAE,CAAA,QAAA,EAAW,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAE;AACtC,gBAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC9B,aAAA;AACJ,SAAA;;AAED,QAAA,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;AACrE,QAAA,KAAK,EAAE;AACH,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,MAAM,EAAE,EAAE;AACb,SAAA;AACJ,KAAA;AACD,IAAA,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE;AACpE,IAAA,gBAAgB,EAAE,0BAA0B,CAAC,KAAK,CAAC;AACtD,CAAA,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;;AC3CpB;AACA,MAAM,SAAS,GAA+C;AAC1D,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;CACX;AAED;AACA,MAAM,eAAe,GAA+C;AAChE,IAAA,EAAE,EAAE,KAAK;AACT,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;CACX;AAED;AACA,MAAM,QAAQ,GAA8B;AACxC,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,UAAU;CACjB;AAED;;;;;;;AAOG;AACH,MAAM,KAAK,GAAmB,CAC1B,EACI,GAAG,EACH,OAAO,GAAG,QAAQ,EAClB,KAAK,GAAG,SAAS,EACjB,IAAI,GAAG,IAAI,EACX,YAAY,GAAG,IAAI,EACnB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,IAAI,EACJ,GAAG,GAAG,KAAK,EACX,QAAQ,EACR,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACV,KACD;AACA,IAAA,MAAM,KAAK,GAAG,QAAQ,EAAE;AACxB,IAAA,MAAM,aAAa,GAAG,cAAc,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC;AACzE,IAAA,MAAM,oBAAoB,GAAG,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,SAAS;AAClF,IAAA,MAAM,kBAAkB,GAAG,SAAS,IAAI,IAAI;IAE5C,IAAI,GAAG,EAAE;AACL,QAAA,MAAM,QAAQ,GAAkB;AAC5B,YAAA,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC;AACrB,YAAA,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC;AACtB,YAAA,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC;AACxB,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,MAAM,EAAE,MAAM;YACd,YAAY,EAAE,oBAAoB,IAAI,QAAQ;SACjD;QACD,QACIA,GAAA,CAAA,MAAA,EAAA,EACI,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAA,aAAA,EACnB,IAAI,EAAA,GACb,IAAI,EAAA,CACV;IAEV;IAEA,QACIG,IAAA,CAAA,MAAA,EAAA,EACI,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE,EAAE,IAAI,oBAAoB,GAAG,EAAE,YAAY,EAAE,oBAAoB,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,KACxF,IAAI,EAAA,QAAA,EAAA,CAEP,kBAAkB,KACfH,GAAA,CAAC,IAAI,EAAA,EACD,IAAI,EAAE,kBAAkB,EACxB,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAA,CACvB,CACL,EAEA,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,KACxCA,GAAA,CAAC,IAAI,EAAA,EACD,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,EAC/B,UAAU,EAAE,QAAQ,EACpB,UAAU,EAAE,MAAM,EAAA,QAAA,EAEjB,QAAQ,EAAA,CACN,CACV,EAEA,OAAO,KACJA,GAAA,CAAC,IAAI,EAAA,EACD,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAA,CACvB,CACL,CAAA,EAAA,CACE;AAEf;AAEA,KAAK,CAAC,WAAW,GAAG,OAAO;;AChH3B,MAAMI,oBAAkB,GAAG,CAAC;AAC5B,MAAM,MAAM,GAAG,CAAC;AAChB,MAAM,gBAAgB,GAAG,EAAE;AAE3B;;;;;;;;;;;;;AAaG;AACI,MAAM,kBAAkB,GAAG,CAAC,EAC/B,SAAS,GACe,KAA8B;AACtD,IAAA,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC;AAC/C,IAAA,MAAM,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC;IAC9C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IACjD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AACnD,IAAA,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAkB,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAC9E,IAAA,MAAM,YAAY,GAAG,MAAM,CAAuC,IAAI,CAAC;IAEvE,MAAM,eAAe,GAAG,WAAW,CAC/B,CAAC,gBAAA,GAAqC,SAAS,KAAI;AAC/C,QAAA,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO;AAClC,QAAA,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO;QAChC,IAAI,CAAC,OAAO,EAAE;YAAC;QAAM;AAErB,QAAA,MAAM,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE;AAC5C,QAAA,MAAM,OAAO,GAAG,MAAM,EAAE,WAAW,IAAI,CAAC;AACxC,QAAA,MAAM,OAAO,GAAG,MAAM,EAAE,YAAY,IAAI,CAAC;QAEzC,IAAI,GAAG,GAAG,CAAC;QACX,IAAI,IAAI,GAAG,CAAC;QAEZ,QAAQ,gBAAgB;AACpB,YAAA,KAAK,KAAK;gBACN,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,OAAO,GAAG,MAAM;AACjC,gBAAA,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC;gBAC/C;AACJ,YAAA,KAAK,QAAQ;AACT,gBAAA,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM;AAC1B,gBAAA,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC;gBAC/C;AACJ,YAAA,KAAK,MAAM;AACP,gBAAA,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC;gBAC9C,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,OAAO,GAAG,MAAM;gBACnC;AACJ,YAAA,KAAK,OAAO;AACR,gBAAA,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC;AAC9C,gBAAA,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM;gBAC1B;;;QAIR,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,GAAG,OAAO,GAAGA,oBAAkB;AAChE,QAAA,IAAI,GAAG,IAAI,CAAC,GAAG,CAACA,oBAAkB,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;;QAG5D,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,GAAG,OAAO,GAAGA,oBAAkB;AAChE,QAAA,GAAG,GAAG,IAAI,CAAC,GAAG,CAACA,oBAAkB,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAEzD,QAAA,WAAW,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAC9B,IAAA,CAAC,EACD,CAAC,SAAS,CAAC,CACd;AAED,IAAA,MAAM,IAAI,GAAG,WAAW,CAAC,MAAK;QAC1B,YAAY,CAAC,IAAI,CAAC;;;AAGlB,QAAA,YAAY,CAAC,OAAO,GAAG,UAAU,CAAC,MAAK;YACnC,aAAa,CAAC,IAAI,CAAC;AACnB,YAAA,qBAAqB,CAAC,MAAM,eAAe,EAAE,CAAC;QAClD,CAAC,EAAE,gBAAgB,CAAC;AACxB,IAAA,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;AAErB,IAAA,MAAM,IAAI,GAAG,WAAW,CAAC,MAAK;AAC1B,QAAA,IAAI,YAAY,CAAC,OAAO,KAAK,IAAI,EAAE;AAC/B,YAAA,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC;AAClC,YAAA,YAAY,CAAC,OAAO,GAAG,IAAI;QAC/B;QACA,YAAY,CAAC,KAAK,CAAC;QACnB,aAAa,CAAC,KAAK,CAAC;IACxB,CAAC,EAAE,EAAE,CAAC;;IAGN,SAAS,CAAC,MAAK;QACX,IAAI,CAAC,SAAS,EAAE;YAAC;QAAM;AACvB,QAAA,MAAM,YAAY,GAAG,MAAM,qBAAqB,CAAC,MAAM,eAAe,EAAE,CAAC;QACzE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC;AACrD,QAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC;AAC/C,QAAA,OAAO,MAAK;YACR,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC;AACxD,YAAA,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC;AACtD,QAAA,CAAC;AACL,IAAA,CAAC,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;;IAGhC,SAAS,CAAC,MAAK;AACX,QAAA,IAAI,SAAS,IAAI,SAAS,CAAC,OAAO,EAAE;YAChC,MAAM,EAAE,GAAG,qBAAqB,CAAC,MAAM,eAAe,EAAE,CAAC;AACzD,YAAA,OAAO,MAAM,oBAAoB,CAAC,EAAE,CAAC;QACzC;AACJ,IAAA,CAAC,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;;IAGhC,SAAS,CAAC,MAAK;AACX,QAAA,OAAO,MAAK;AACR,YAAA,IAAI,YAAY,CAAC,OAAO,KAAK,IAAI,EAAE;AAAC,gBAAA,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC;YAAA;AAC1E,QAAA,CAAC;IACL,CAAC,EAAE,EAAE,CAAC;IAEN,OAAO;QACH,UAAU;QACV,SAAS;QACT,SAAS;QACT,UAAU;QACV,QAAQ;AACR,QAAA,gBAAgB,EAAE,IAAI;AACtB,QAAA,gBAAgB,EAAE,IAAI;AACtB,QAAA,WAAW,EAAE,IAAI;AACjB,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,WAAW,EAAE,IAAI;KACpB;AACL,CAAC;;AC1HM,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,KAAK,KAAI;AACjD,IAAA,MAAM,WAAW,GAAqC;AAClD,QAAA,GAAG,EAAK,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAG,SAAS,EAAE,kBAAkB,EAAE,UAAU,EAAE,uBAAuB,EAAE,WAAW,EAAE,uBAAuB,EAAE,SAAS,EAAK,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE;AACpM,QAAA,MAAM,EAAE,EAAE,GAAG,EAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAG,SAAS,EAAE,kBAAkB,EAAE,UAAU,EAAE,uBAAuB,EAAE,WAAW,EAAE,uBAAuB,EAAE,YAAY,EAAE,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE;AACpM,QAAA,IAAI,EAAI,EAAE,KAAK,EAAG,EAAE,EAAE,GAAG,EAAG,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAG,uBAAuB,EAAE,YAAY,EAAE,uBAAuB,EAAE,UAAU,EAAI,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE;AACpM,QAAA,KAAK,EAAG,EAAE,IAAI,EAAI,EAAE,EAAE,GAAG,EAAG,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAG,uBAAuB,EAAE,YAAY,EAAE,uBAAuB,EAAE,WAAW,EAAG,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE;KACvM;AAED,IAAA,MAAM,WAAW,GAAqC;AAClD,QAAA,GAAG,EAAK,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAG,SAAS,EAAE,kBAAkB,EAAE,UAAU,EAAE,uBAAuB,EAAE,WAAW,EAAE,uBAAuB,EAAE,SAAS,EAAK,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE;AACtM,QAAA,MAAM,EAAE,EAAE,GAAG,EAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAG,SAAS,EAAE,kBAAkB,EAAE,UAAU,EAAE,uBAAuB,EAAE,WAAW,EAAE,uBAAuB,EAAE,YAAY,EAAE,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE;AACtM,QAAA,IAAI,EAAI,EAAE,KAAK,EAAG,EAAE,EAAE,GAAG,EAAG,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAG,uBAAuB,EAAE,YAAY,EAAE,uBAAuB,EAAE,UAAU,EAAI,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE;AACtM,QAAA,KAAK,EAAG,EAAE,IAAI,EAAI,EAAE,EAAE,GAAG,EAAG,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAG,uBAAuB,EAAE,YAAY,EAAE,uBAAuB,EAAE,WAAW,EAAG,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE;KACzM;IAED,OAAO;AACH,QAAA,OAAO,EAAE;AACL,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,KAAK,EAAE,MAAM;AAChB,SAAA;AACD,QAAA,aAAa,EAAE;AACX,YAAA,OAAO,EAAE,aAAa;AACtB,YAAA,KAAK,EAAE,MAAM;AAChB,SAAA;QACD,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAA4B,MAAM;AAC1D,YAAA,QAAQ,EAAE,OAAgB;YAC1B,OAAO,EAAE,UAAU,GAAG,CAAC,GAAG,CAAC;YAC3B,SAAS,EAAE,CAAA,MAAA,EAAS,UAAU,GAAG,CAAC,GAAG,IAAI,CAAA,CAAA,CAAG;AAC5C,YAAA,eAAe,EAAE,QAAQ;AACzB,YAAA,UAAU,EAAE,CAAA,QAAA,EAAW,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,YAAA,EAAe,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AAClF,YAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAC1C,YAAA,MAAM,EAAE,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,UAAU,CAAA,CAAE;AAC9C,YAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,YAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;;;AAGzB,YAAA,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM;AAC5B,YAAA,aAAa,EAAE,MAAe;AAC9B,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,UAAU,EAAE,QAAiB;AAC7B,YAAA,SAAS,EAAE,YAAqB;AAChC,YAAA,YAAY,EAAE,YAAqB;AACnC,YAAA,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AAC5B,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW;SAClC,CAAC;QACF,UAAU,EAAE,CAAC,EAAE,SAAS,EAAoB,MAAM;AAC9C,YAAA,QAAQ,EAAE,UAAmB;AAC7B,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,MAAM,EAAE,CAAC;YACT,GAAG,WAAW,CAAC,SAAS,CAAC;SAC5B,CAAC;QACF,UAAU,EAAE,CAAC,EAAE,SAAS,EAAoB,MAAM;AAC9C,YAAA,QAAQ,EAAE,UAAmB;AAC7B,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,MAAM,EAAE,CAAC;YACT,GAAG,WAAW,CAAC,SAAS,CAAC;SAC5B,CAAC;KACL;AACL,CAAC,CAAC;;AC9DF;AACA,MAAM,aAAa,GAAG,MAClB,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,OAAO;AAEnF,MAAM,aAAa,GAAG,GAAG;AAEzB;;;;;;;;;;;;;;;;;;AAkBG;AACH,MAAM,OAAO,GAAqB,CAAC,EAC/B,QAAQ,EACR,KAAK,EACL,SAAS,GAAG,OAAO,EACnB,QAAQ,GAAG,KAAK,EAChB,MAAM,GAAG,KAAK,EACd,SAAS,GAAG,KAAK,EACjB,KAAK,GAAG,aAAa,EACrB,WAAW,GAAG,IAAI,EAClB,eAAe,GAAG,IAAI,GACzB,KAAI;AACD,IAAA,MAAM,SAAS,GAAG,KAAK,EAAE;IACzB,MAAM,qBAAqB,GAAG,QAAQ,KAAK,eAAe,IAAI,aAAa,EAAE,CAAC;AAE9E,IAAA,MAAM,EACF,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,WAAW,GACd,GAAG,kBAAkB,CAAC,EAAE,SAAS,EAAE,CAAC;;;;IAKrC,MAAM,OAAO,GAAG,CAAC,qBAAqB,IAAI,cAAc,CAA0B,QAAQ;AACtF,UAAE,YAAY,CAAC,QAAQ,EAAE;AACrB,YAAA,kBAAkB,EAAE,SAAS;YAC7B,IAAI,WAAW,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;SAC/C;UACC,QAAQ;AAEd,IAAA,QACID,IAAA,CAAA,KAAA,EAAA,EACI,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,MAAM,GAAG,cAAc,CAAC,aAAa,GAAG,cAAc,CAAC,OAAO,EACzE,YAAY,EAAE,qBAAqB,GAAG,SAAS,GAAG,gBAAgB,EAClE,YAAY,EAAE,qBAAqB,GAAG,SAAS,GAAG,gBAAgB,EAClE,OAAO,EAAE,qBAAqB,GAAG,SAAS,GAAG,WAAW,EACxD,MAAM,EAAE,qBAAqB,GAAG,SAAS,GAAG,UAAU,aAErD,OAAO,EACP,CAAC,qBAAqB,IAAI,SAAS,IAAI,YAAY,CAChDA,IAAA,CAAA,KAAA,EAAA,EACI,GAAG,EAAE,SAAS,EACd,EAAE,EAAE,SAAS,EACb,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAClE,KAAK,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EACjD,IAAI,EAAE,SAAS,eACJ,QAAQ,EAAA,QAAA,EAAA,CAEnBH,IAAC,IAAI,EAAA,EAAC,QAAQ,EAAE,IAAI,EAAA,QAAA,EACf,KAAK,GACH,EACN,SAAS,KACNG,IAAA,CAAAE,UAAA,EAAA,EAAA,QAAA,EAAA,CACIL,aAAK,SAAS,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC,GAAI,EAC5DA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC,EAAA,CAAI,IAC7D,CACN,CAAA,EAAA,CACC,EACN,QAAQ,CAAC,IAAI,CAChB,CAAA,EAAA,CACC;AAEd;AAEA,OAAO,CAAC,WAAW,GAAG,SAAS;;ACxGxB,MAAM,kBAAkB,GAAG,YAAY,CAAC,CAAC,KAAK,MAAM;AACvD,IAAA,OAAO,EAAE;AACL,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,MAAM,EAAE,SAAS;;AAEjB,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,WAAW,EAAE,cAAc;AAC3B,QAAA,UAAU,EAAE,CAAC;AACb,QAAA,eAAe,EAAE,aAAa;AAC9B,QAAA,MAAM,EAAE,CAAC;AACT,QAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACzB,QAAA,gBAAgB,EAAE;AACd,YAAA,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;AACjC,SAAA;AACJ,KAAA;AACJ,CAAA,CAAC,CAAC;;ACZH;;;;;;;;;;;;;;;;AAgBG;AACH,MAAM,UAAU,GAAwB,CAAC,EACrC,KAAK,EACL,SAAS,GAAG,KAAK,EACjB,KAAK,GAAG,GAAG,EACX,SAAS,GAAG,IAAI,GACnB,KAAI;AACD,IAAA,QACIA,GAAA,CAAC,OAAO,EAAA,EACJ,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,IAAI,EACZ,WAAW,EAAE,KAAK,EAClB,eAAe,EAAE,KAAK,YAEtBA,GAAA,CAAA,QAAA,EAAA,EACI,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,kBAAkB,CAAC,OAAO,EAAA,YAAA,EACzB,KAAK,EACjB,QAAQ,EAAE,CAAC,EAAA,QAAA,EAEXA,IAAC,IAAI,EAAA,EACD,IAAI,EAAE,YAAY,CAAC,aAAa,EAChC,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,eAAe,EAAA,CAC9B,EAAA,CACG,EAAA,CACH;AAElB;AAEA,UAAU,CAAC,WAAW,GAAG,YAAY;;ACrD9B,MAAM,iBAAiB,GAAG,cAAc,CAAC,CAAC,KAAK,MAAM;AACxD,IAAA,IAAI,EAAE;AACF,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,eAAe;AAC7C,QAAA,QAAQ,EAAE,QAAQ;AACrB,KAAA;AACD,IAAA,QAAQ,EAAE;AACN,QAAA,OAAO,EAAE;;AAEL,YAAA,IAAI,EAAE;AACF,gBAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,SAAS,EAAE,eAAe;AAC1B,gBAAA,eAAe,EAAE,OAAO;AACxB,gBAAA,KAAK,EAAE,MAAM;AAChB,aAAA;;AAED,YAAA,QAAQ,EAAE;AACN,gBAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;AAClC,aAAA;;AAED,YAAA,WAAW,EAAE;AACT,gBAAA,YAAY,EAAE,GAAG;AACpB,aAAA;;AAED,YAAA,OAAO,EAAE;AACL,gBAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAChC,aAAA;AACJ,SAAA;AACD,QAAA,SAAS,EAAE;;AAEP,YAAA,OAAO,EAAE;AACL,gBAAA,UAAU,EAAE,CAAA,uBAAA,EAA0B,KAAK,CAAC,MAAM,CAAC,eAAe,CAAA,MAAA,EAAS,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAA,MAAA,EAAS,KAAK,CAAC,MAAM,CAAC,eAAe,CAAA,KAAA,CAAO;AACrJ,gBAAA,cAAc,EAAE,WAAW;gBAC3B,SAAS,EAAE,CAAA,EAAG,wBAAwB,CAAA,qBAAA,CAAuB;AAC7D,gBAAA,yCAAyC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;AACnE,aAAA;;AAED,YAAA,IAAI,EAAE,EAAE;AACX,SAAA;AACJ,KAAA;IACD,eAAe,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE;AAChE,CAAA,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC;;AC1CvB;;;;;;;;;;;;;;AAcG;AACH,MAAM,QAAQ,GAAsB,CAChC,EACI,GAAG,EACH,OAAO,GAAG,aAAa,EACvB,SAAS,GAAG,SAAS,EACrB,KAAK,EACL,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACV,MAEDA,cACI,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,iBAAiB,CACxB,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,KAAK,KAAK,GAAG,MAAM,GAAG,SAAS,EAAE,EAChE,SAAS,CACZ,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,iBACrB,IAAI,EAAA,GACb,IAAI,EAAA,CACV;AAGN,QAAQ,CAAC,WAAW,GAAG,UAAU;;ACxCjC;;;;;;;;;AASG;AACH,MAAM,IAAI,GAAkB,CAAC,EACzB,QAAQ,EACR,QAAQ,EACR,YAAY,EAAE,SAAS,EACvB,iBAAiB,EAAE,cAAc,GACpC,KAAI;AACD,IAAA,MAAM,YAAY,GAAG,CAAC,KAAiC,KAAI;QACvD,KAAK,CAAC,cAAc,EAAE;QACtB,QAAQ,CAAC,KAAK,CAAC;AACnB,IAAA,CAAC;AAED,IAAA,QACIA,GAAA,CAAA,MAAA,EAAA,EACI,QAAQ,EAAE,YAAY,EAAA,YAAA,EACV,SAAS,EAAA,iBAAA,EACJ,cAAc,EAC/B,UAAU,EAAA,IAAA,EAAA,QAAA,EAET,QAAQ,EAAA,CACN;AAEf;AAEA,IAAI,CAAC,WAAW,GAAG,MAAM;;ACjCzB;AACA;AACA;AAEO,MAAM,qBAAqB,GAAG,cAAc,CAAC,CAAC,KAAK,KAAI;AAC1D,IAAA,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM;AAEtB,IAAA,MAAM,WAAW,GAAgC;QAC7C,OAAO,EAAE,CAAC,CAAC,WAAW;QACtB,OAAO,EAAE,CAAC,CAAC,WAAW;QACtB,KAAK,EAAE,CAAC,CAAC,SAAS;QAClB,OAAO,EAAE,CAAC,CAAC,WAAW;QACtB,IAAI,EAAE,CAAC,CAAC,QAAQ;QAChB,OAAO,EAAE,CAAC,CAAC,WAAW;KACzB;AAED,IAAA,MAAM,gBAAgB,GAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAmB,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM;QACjF,KAAK;AACL,QAAA,OAAO,EAAE,MAAe;AACxB,QAAA,QAAQ,EAAE,OAAgB;QAC1B,MAAM,EAAE,EAAE,eAAe,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE;AAClD,KAAA,CAAC,CAKE;IAEJ,OAAO;AACH,QAAA,IAAI,EAAE;AACF,YAAA,QAAQ,EAAE,UAAmB;AAC7B,YAAA,OAAO,EAAE,cAAc;AACvB,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;YAC/B,eAAe,EAAE,CAAC,CAAC,YAAY;AAC/B,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,UAAU,EAAE,CAAA,iBAAA,EAAoB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,aAAA,EAAgB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AAC/F,SAAA;AACD,QAAA,QAAQ,EAAE;AACN,YAAA,IAAI,EAAE;gBACF,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE;gBACzC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE;gBAC1C,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;AAC1C,aAAA;AACD,YAAA,KAAK,EAAE;gBACH,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;AAC1E,aAAA;YACD,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;AAChC,YAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;AAC3D,SAAA;AACD,QAAA,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE;QACtF,gBAAgB;KACnB;AACL,CAAC,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC;AAEnB,MAAM,qBAAqB,GAAG,cAAc,CAAC,CAAC,KAAK,MAAM;AAC5D,IAAA,IAAI,EAAE;AACF,QAAA,QAAQ,EAAE,UAAmB;AAC7B,QAAA,GAAG,EAAE,UAAU;AACf,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;AAC/B,QAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW;AACzC,QAAA,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC3B,QAAA,UAAU,EAAE,CAAA,KAAA,EAAQ,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AAC3C,QAAA,aAAa,EAAE,MAAe;AACjC,KAAA;AACD,IAAA,QAAQ,EAAE;AACN,QAAA,IAAI,EAAE;YACF,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE;YAC7C,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;YAC3C,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;AAC9C,SAAA;QACD,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;AACnC,KAAA;IACD,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE;AACjD,IAAA,gBAAgB,EAAE;AACd,QAAA,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;AACzD,QAAA,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;AAC7D,QAAA,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;AAChE,KAAA;AACJ,CAAA,CAAC,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC;AAEpB,MAAM,aAAa,GAAG,YAAY,CAAC,CAAC,KAAK,MAAM;AAClD,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,SAAS;AACjB,QAAA,UAAU,EAAE,MAAM;AAClB,QAAA,kBAAkB,EAAE;AAChB,YAAA,MAAM,EAAE,aAAa;AACrB,YAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;AAC9B,SAAA;AACJ,KAAA;AACD,IAAA,KAAK,EAAE;AACH,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,OAAO,EAAE,GAAG;AACZ,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,WAAW,EAAE,GAAG;AACnB,KAAA;AACJ,CAAA,CAAC,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC;;ACtG3B;;;;;;;;;;;;;AAaG;AACI,MAAM,oBAAoB,GAAG,CAAI,EACpC,KAAK,EACL,YAAY,EACZ,QAAQ,GACqB,KAAmC;AAChE,IAAA,MAAM,YAAY,GAAG,KAAK,KAAK,SAAS;IACxC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAI,YAAY,CAAC;AAEnE,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC;AACpC,IAAA,WAAW,CAAC,OAAO,GAAG,QAAQ;IAE9B,MAAM,aAAa,GAAG,YAAY,GAAI,KAAW,GAAG,aAAa;AAEjE,IAAA,MAAM,QAAQ,GAAG,WAAW,CACxB,CAAC,IAAO,KAAI;QACR,IAAI,CAAC,YAAY,EAAE;YACf,gBAAgB,CAAC,IAAI,CAAC;QAC1B;AACA,QAAA,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;AAC/B,IAAA,CAAC,EACD,CAAC,YAAY,CAAC,CACjB;AAED,IAAA,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC;AACpC,CAAC;;AC5BD;;;AAGG;AACI,MAAM,SAAS,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAmB,KAAqB;AACrG,IAAA,MAAM,WAAW,GAAG,KAAK,EAAE;AAC3B,IAAA,MAAM,QAAQ,GAAG,EAAE,IAAI,WAAW;AAElC,IAAA,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,oBAAoB,CAAU;AAC1D,QAAA,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,cAAc,IAAI,KAAK;AACxC,KAAA,CAAC;AAEF,IAAA,MAAM,YAAY,GAAG,WAAW,CAC5B,CAAC,KAAoC,KAAI;AACrC,QAAA,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;AAChC,QAAA,QAAQ,GAAG,KAAK,CAAC;AACrB,IAAA,CAAC,EACD,CAAC,UAAU,EAAE,QAAQ,CAAC,CACzB;AAED,IAAA,MAAM,eAAe,GAAG,OAAO,KAAK;AAChC,UAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY;AACnC,UAAE,EAAE,cAAc,EAAE,cAAc,IAAI,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE;AAEzE,IAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE;AACnD,CAAC;;AC/BD;;;;;;;AAOG;AACH,MAAM,MAAM,GAAoB,CAC5B,EACI,GAAG,EACH,KAAK,EACL,IAAI,GAAG,IAAI,EACX,KAAK,GAAG,SAAS,EACjB,EAAE,EACF,OAAO,EACP,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,GAAG,IAAI,EACV,KACD;IACA,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;IACrG,MAAM,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO;IAEnD,QACIG,IAAA,CAAA,OAAA,EAAA,EACI,OAAO,EAAE,QAAQ,EACjB,SAAS,EAAE,aAAa,CAAC,IAAI,EAAA,eAAA,EACd,QAAQ,IAAI,SAAS,EAAA,QAAA,EAAA,CAEpCA,IAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,qBAAqB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,EAAE,CAAC,EAAA,QAAA,EAAA,CACnHH,GAAA,CAAA,OAAA,EAAA,EACI,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,aAAa,CAAC,KAAK,EAAA,GAC1B,eAAe,KACf,IAAI,EAAA,CACV,EACFA,GAAA,CAAA,MAAA,EAAA,EAAA,aAAA,EACiB,MAAM,EACnB,SAAS,EAAE,qBAAqB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,EAAA,CACrE,CAAA,EAAA,CACC,EAEN,KAAK,KAAK,SAAS,KAChBA,GAAA,CAAC,IAAI,EAAA,EACD,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,IAAI,EAAA,QAAA,EAEb,KAAK,EAAA,CACH,CACV,CAAA,EAAA,CACG;AAEhB;AAEA,MAAM,CAAC,WAAW,GAAG,QAAQ;;ACnEtB,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,KAAK,MAAM;AAC/C,IAAA,IAAI,EAAE,CAAC;;IAEH,OAAO;;IAEP,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS;;IAEvD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE;;IAErE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE;;AAEhE,IAAA,GAAG,EAAE,MAAM,EAAE,SAAS,EACtB,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EACnD,mBAAmB,EAAE,gBAAgB;;AAErC,IAAA,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EACrC,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK;;IAElD,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM;;IAEjD,QAAQ,EAAE,SAAS,EAAE,SAAS;;IAE9B,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAC/C,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAC7D,KAAI;;AAEhB,QAAA,MAAM,EAAE,GAAG,KAAK,CAAC,OAAiD;AAClE,QAAA,MAAM,EAAE,GAAG,KAAK,CAAC,MAA+C;AAChE,QAAA,MAAM,EAAE,GAAG,KAAK,CAAC,MAA+C;AAChE,QAAA,MAAM,EAAE,GAAG,KAAK,CAAC,OAAiD;AAClE,QAAA,MAAM,EAAE,GAAG,KAAK,CAAC,MAA+C;QAEhE,OAAO;AACH,YAAA,SAAS,EAAE,YAAqB;;YAGhC,IAAI,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC;;YAGzC,IAAI,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC;YACrC,IAAI,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC;YACvC,IAAI,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC3C,IAAI,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC3C,IAAI,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;YAC7C,IAAI,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;;YAG7C,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YACtE,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACtE,YAAA,IAAI,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;AACtD,YAAA,IAAI,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;AAC/D,YAAA,IAAI,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;AACrE,YAAA,IAAI,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;AACxE,YAAA,IAAI,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;;YAGlE,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YACpE,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACpE,YAAA,IAAI,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;AACnD,YAAA,IAAI,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;AAC5D,YAAA,IAAI,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;AAClE,YAAA,IAAI,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;AACrE,YAAA,IAAI,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;;AAG/D,YAAA,IAAI,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;AAC1C,YAAA,IAAI,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;AACnD,YAAA,IAAI,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5D,IAAI,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,CAAC;YACrD,IAAI,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC3C,IAAI,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,CAAC;YAC/C,IAAI,cAAc,KAAK,SAAS,IAAI,EAAE,cAAc,EAAE,CAAC;YACvD,IAAI,mBAAmB,KAAK,SAAS,IAAI,EAAE,mBAAmB,EAAE,CAAC;YACjE,IAAI,gBAAgB,KAAK,SAAS,IAAI,EAAE,gBAAgB,EAAE,CAAC;;YAG3D,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC;YACnC,IAAI,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC3C,IAAI,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,CAAC;YAC/C,IAAI,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;YAC7C,IAAI,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;YAC7C,IAAI,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,CAAC;YACjD,IAAI,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,CAAC;YAC/C,IAAI,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC;YACzC,IAAI,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC;;YAGrC,IAAI,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC3C,IAAI,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,CAAC;YACjC,IAAI,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC;YACrC,IAAI,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC;YACvC,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC;YACnC,IAAI,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC;AACrC,YAAA,IAAI,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;;YAGnD,IAAI,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC3C,IAAI,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;YAC7C,IAAI,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;;AAG7C,YAAA,IAAI,eAAe,KAAK,SAAS,IAAI,EAAE,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;AAC9E,YAAA,IAAI,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;AAChD,YAAA,IAAI,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;AACrE,YAAA,IAAI,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5D,IAAI,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC;AACvC,YAAA,IAAI,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;YAClE,IAAI,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,CAAC;YACjD,IAAI,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,CAAC;YACjD,IAAI,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;YAC7C,IAAI,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC;YACvC,IAAI,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC;SAC5C;IACL,CAAC;AACJ,CAAA,CAAC,CAAC;;AChHH;;;;;;;;;;AAUG;AACH,MAAM,GAAG,GAAiB,CACtB,EACI,GAAG,EACH,OAAO,EACP,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EACvD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,EACrE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAChE,GAAG,EAAE,MAAM,EAAE,SAAS,EACtB,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,mBAAmB,EAAE,gBAAgB,EAC1F,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EACzF,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EACjD,QAAQ,EAAE,SAAS,EAAE,SAAS,EAC9B,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAC/C,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EACzE,KAAK,EACL,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACV,KACD;AACA,IAAA,MAAM,kBAAkB,GAAG,UAAU,CAAC,IAAI,CAAC;QACvC,OAAO;QACP,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS;QACvD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE;QACrE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE;QAChE,GAAG,EAAE,MAAM,EAAE,SAAS;QACtB,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,mBAAmB,EAAE,gBAAgB;AAC1F,QAAA,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK;QACzF,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM;QACjD,QAAQ,EAAE,SAAS,EAAE,SAAS;AAC9B,QAAA,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS;QAC/C,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO;AAC5E,KAAA,CAAC;IAEF,QACIA,GAAA,CAAA,KAAA,EAAA,EACI,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,SAAS,CAAC,EAC5C,KAAK,EAAE,KAAK,EAAA,GACR,IAAI,EAAA,QAAA,EAEP,QAAQ,EAAA,CACP;AAEd;AAEA,GAAG,CAAC,WAAW,GAAG,KAAK;;AC3DvB;;;;;;;;;AASG;AACH,MAAM,KAAK,GAAmB,CAC1B,EACI,aAAa,GAAG,KAAK,EACrB,OAAO,GAAG,MAAM,EAChB,GAAG,GAAG,IAAI,EACV,GAAG,IAAI,EACV,MAEDA,GAAA,CAAC,GAAG,IACA,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,EAC5B,GAAG,EAAE,GAAG,KACJ,IAAI,EAAA,CACV;AAGN,KAAK,CAAC,WAAW,GAAG,OAAO;;AC7BpB,MAAM,0BAA0B,GAAG,cAAc,CAAC,CAAC,KAAK,KAAI;AAC/D,IAAA,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM;IAEtB,OAAO;AACH,QAAA,IAAI,EAAE;AACF,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACrB,YAAA,SAAS,EAAE,YAAY;AACvB,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,WAAW,EAAE,OAAO;AACpB,YAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;YAC7B,eAAe,EAAE,CAAC,CAAC,YAAY;AAC/B,YAAA,UAAU,EAAE,CAAA,aAAA,EAAgB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AACnD,YAAA,kBAAkB,EAAE;AAChB,gBAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;gBAC3B,eAAe,EAAE,CAAC,CAAC,YAAY;AAC/B,gBAAA,MAAM,EAAE,aAAa;AACxB,aAAA;AACJ,SAAA;AACD,QAAA,QAAQ,EAAE;AACN,YAAA,IAAI,EAAE;;AAEF,gBAAA,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE;AAClH,gBAAA,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE;AACpH,gBAAA,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE;AACrH,aAAA;AACD,YAAA,MAAM,EAAE;AACJ,gBAAA,OAAO,EAAE;oBACL,WAAW,EAAE,CAAC,CAAC,UAAU;AACzB,oBAAA,2BAA2B,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,YAAY,EAAE;AAC5D,oBAAA,eAAe,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE;AAClD,iBAAA;AACD,gBAAA,KAAK,EAAE;oBACH,WAAW,EAAE,CAAC,CAAC,SAAS;AACxB,oBAAA,eAAe,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,SAAS,EAAE;AAChD,iBAAA;AACD,gBAAA,OAAO,EAAE;oBACL,WAAW,EAAE,CAAC,CAAC,WAAW;AAC1B,oBAAA,eAAe,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE;AAClD,iBAAA;AACD,gBAAA,OAAO,EAAE;oBACL,WAAW,EAAE,CAAC,CAAC,WAAW;AAC1B,oBAAA,eAAe,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE;AAClD,iBAAA;AACJ,aAAA;AACJ,SAAA;QACD,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE;KACrD;AACL,CAAC,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,CAAC;AAExB,MAAM,gBAAgB,GAAG,YAAY,CAAC,CAAC,KAAK,MAAM;;AAErD,IAAA,KAAK,EAAE;AACH,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,QAAQ,EAAE,CAAC;AACX,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,UAAU,EAAE,aAAa;AACzB,QAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW;AAC/B,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,QAAQ,EAAE,SAAS;AACnB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,OAAO,EAAE,GAAG;QACZ,gBAAgB,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE;AACtD,QAAA,YAAY,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE;AAC5E,KAAA;;AAED,IAAA,aAAa,EAAE;AACX,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,UAAU,EAAE,CAAC;AACb,QAAA,MAAM,EAAE,SAAS;AACpB,KAAA;;AAED,IAAA,aAAa,EAAE;AACX,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,UAAU,EAAE,CAAC;AACb,QAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAC5B,KAAA;AACJ,CAAA,CAAC,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,CAAC;;ACjF9B,MAAM,SAAS,GAAG,CAAI,GAAuB,EAAE,IAAc,KAAU;AACnE,IAAA,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;QAC3B,GAAG,CAAC,IAAI,CAAC;IACb;AAAO,SAAA,IAAI,GAAG,IAAI,IAAI,EAAE;AACnB,QAAA,GAAkC,CAAC,OAAO,GAAG,IAAI;IACtD;AACJ,CAAC;AAED;;;;;;;;;;AAUG;AACI,MAAM,aAAa,GAAG,CAAI,GAAG,IAA+B,KAAoB;AACnF,IAAA,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;AAC5B,IAAA,OAAO,CAAC,OAAO,GAAG,IAAI;AAEtB,IAAA,OAAO,WAAW,CAAC,CAAC,IAAc,KAAI;AAClC,QAAA,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE;AAC/B,YAAA,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC;QACxB;IACJ,CAAC,EAAE,EAAE,CAAC;AACV,CAAC;;ACtBD;AACA,MAAMM,eAAa,GAAmD;AAClE,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;CACX;AAED;AACA,MAAM,oBAAoB,GAA8C;AACpE,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;CACX;AAED;AACA,MAAMC,kBAAgB,GAAmD;AACrE,IAAA,OAAO,EAAE,eAAe;AACxB,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,OAAO,EAAE,cAAc;AACvB,IAAA,OAAO,EAAE,cAAc;CAC1B;AA2BD;;;AAGG;AACI,MAAM,YAAY,GAAG,CAAC,EACzB,EAAE,EACF,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,SAAS,GACQ,KAAwB;AACzC,IAAA,MAAM,WAAW,GAAG,KAAK,EAAE;AAC3B,IAAA,MAAM,OAAO,GAAG,EAAE,IAAI,WAAW;AACjC,IAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,OAAO,SAAS;AAEpC,IAAA,MAAM,QAAQ,GAAG,MAAM,CAA0B,IAAI,CAAC;IACtD,MAAM,SAAS,GAAG,aAAa,CAAmB,GAAG,EAAE,QAAQ,CAAC;IAEhE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AACvD,IAAA,MAAM,UAAU,GAAG,IAAI,KAAK,UAAU;IACtC,MAAM,YAAY,GAAG,UAAU,IAAI,YAAY,GAAG,MAAM,GAAG,UAAU,IAAI,IAAI;IAE7E,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,eAAe,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;AAC9E,IAAA,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAEnE,OAAO;QACH,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,UAAU;QACV,YAAY;QACZ,cAAc;QACd,YAAY;AACZ,QAAA,QAAQ,EAAED,eAAa,CAAC,IAAI,CAAC;AAC7B,QAAA,cAAc,EAAE,oBAAoB,CAAC,IAAI,CAAC;AAC1C,QAAA,WAAW,EAAEC,kBAAgB,CAAC,MAAM,CAAC;AACrC,QAAA,aAAa,EAAE,SAAS,KAAK,SAAS,IAAI,UAAU;QACpD,UAAU;KACb;AACL,CAAC;;ACnFD;;;;;;;;;;AAUG;AACH,MAAM,SAAS,GAAuB,CAAC,EACnC,GAAG,EACH,KAAK,EACL,UAAU,EACV,IAAI,GAAG,IAAI,EACX,MAAM,GAAG,SAAS,EAClB,SAAS,EAAE,SAAS,EACpB,SAAS,EACT,IAAI,EACJ,EAAE,EACF,QAAQ,EACR,QAAQ,EACR,GAAG,IAAI,EACV,KAAI;AACD,IAAA,MAAM,EACF,OAAO,EACP,QAAQ,EACR,SAAS,EACT,UAAU,EACV,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,WAAW,EACX,aAAa,EACb,UAAU,GACb,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAE5D,IAAA,QACIJ,IAAA,CAAC,KAAK,EAAA,EACF,aAAa,EAAE,QAAQ,EACvB,GAAG,EAAE,IAAI,EAAA,QAAA,EAAA,CAER,KAAK,KAAK,SAAS,KAChBA,IAAA,CAAC,IAAI,EAAA,EACD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,IAAI,EACd,UAAU,EAAE,QAAQ,EACpB,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,OAAO,EAAA,QAAA,EAAA,CAEf,KAAK,EACL,QAAQ,KACLH,IAAC,IAAI,EAAA,EACD,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,WAAW,EAAA,aAAA,EACL,IAAI,EAAA,QAAA,EAEhB,IAAI,EAAA,CACF,CACV,CAAA,EAAA,CACE,CACV,EAEDG,IAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,0BAA0B,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAA,eAAA,EACxC,QAAQ,IAAI,SAAS,EAAA,QAAA,EAAA,CAEnC,SAAS,KAENH,GAAA,CAAA,MAAA,EAAA,EACI,SAAS,EAAE,gBAAgB,CAAC,aAAa,EACzC,OAAO,EAAE,UAAU,EAAA,QAAA,EAEnBA,GAAA,CAAC,IAAI,EAAA,EACD,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,QAAQ,EACd,WAAW,EAAE,eAAe,EAAA,CAC9B,EAAA,CACC,CACV,EAEDA,eACI,GAAG,EAAE,SAAS,EACd,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAAA,eAAA,EACH,QAAQ,IAAI,SAAS,EAAA,cAAA,EACtB,MAAM,KAAK,OAAO,IAAI,SAAS,EAAA,kBAAA,EAC3B,UAAU,KAAK,SAAS,GAAG,QAAQ,GAAG,SAAS,EACjE,SAAS,EAAE,gBAAgB,CAAC,KAAK,EAAA,GAC7B,IAAI,GACV,EAED,aAAa,KACVG,IAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,gBAAgB,CAAC,aAAa,EAAA,QAAA,EAAA,CAC1C,SAAS,EACT,UAAU,KACPH,IAAC,UAAU,EAAA,EACP,IAAI,EAAE,YAAY,GAAG,YAAY,GAAG,OAAO,EAC3C,SAAS,EAAE,YAAY,GAAG,eAAe,GAAG,eAAe,EAC3D,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,EAAE,EACZ,OAAO,EAAE,cAAc,GACzB,CACL,CAAA,EAAA,CACE,CACV,CAAA,EAAA,CACC,EAEL,UAAU,KAAK,SAAS,KACrBA,GAAA,CAAC,IAAI,EAAA,EACD,EAAE,EAAE,QAAQ,EACZ,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,IAAI,EACd,KAAK,EAAE,WAAW,EAAA,QAAA,EAEjB,UAAU,EAAA,CACR,CACV,CAAA,EAAA,CACG;AAEhB;AAEA,SAAS,CAAC,WAAW,GAAG,WAAW;;AC7I5B,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,KAAK,MAAM;AAChD,IAAA,QAAQ,EAAE;AACN,QAAA,QAAQ,EAAE,OAAgB;AAC1B,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC;AACpC,KAAA;AACD,IAAA,KAAK,EAAE;AACH,QAAA,QAAQ,EAAE,OAAgB;AAC1B,QAAA,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ;AAC7B,QAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAC1C,QAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,QAAA,MAAM,EAAE,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,UAAU,CAAA,CAAE;AAC9C,QAAA,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC3B,QAAA,SAAS,EAAE,MAAe;AAC1B,QAAA,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC5B,QAAA,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAClC,KAAA;AACJ,CAAA,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;;AChBnB;;;;;;;;;;;AAWG;AACI,MAAM,WAAW,GAAG,CACvB,MAAmB,EACnB,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,EAAA,GAAyB,EAAE,KAC7C;AACN,IAAA,MAAM,MAAM,GAAG,MAAM,CAAc,MAAM,CAAC;IAE1C,SAAS,CAAC,MAAK;AACX,QAAA,MAAM,CAAC,OAAO,GAAG,MAAM;AAC3B,IAAA,CAAC,CAAC;IAEF,SAAS,CAAC,MAAK;QACX,IAAI,CAAC,OAAO,EAAE;YAAC;QAAM;AAErB,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,QAAQ;AACtC,QAAA,MAAM,QAAQ,GAAG,CAAC,KAAY,KAAU;YACpC,MAAM,aAAa,GAAG,KAAsB;YAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC;AACjD,YAAA,OAAO,GAAG,aAAa,CAAC;AAC5B,QAAA,CAAC;AAED,QAAA,WAAW,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC;QACjD,OAAO,MAAM,WAAW,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC;AACrE,IAAA,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACzB,CAAC;;ACnCD,MAAM,kBAAkB,GAAG,CAAC;AAE5B;;;;;;;;;;;;AAYG;AACI,MAAM,eAAe,GAAG,CAAC,EAC5B,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,GAAG,GAAG,CAAC,GACc,KAA2B;IAChD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,EAAE,CAAC;AAErD,IAAA,MAAM,eAAe,GAAG,WAAW,CAAC,MAAK;QACrC,IAAI,CAAC,QAAQ,EAAE;YAAC;QAAM;AAEtB,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,qBAAqB,EAAE;AAC/C,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO;AAC9B,QAAA,MAAM,UAAU,GAAG,MAAM,EAAE,YAAY,IAAI,CAAC;AAC5C,QAAA,MAAM,SAAS,GAAG,MAAM,EAAE,WAAW,IAAI,CAAC;;AAG1C,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG;AACxC,QAAA,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,GAAG,kBAAkB;QAE9D,IAAI,GAAG,GAAG,YAAY;QACtB,IAAI,UAAU,GAAG,CAAC,IAAI,YAAY,GAAG,UAAU,GAAG,cAAc,EAAE;;AAE9D,YAAA,GAAG,GAAG,cAAc,GAAG,UAAU;;YAEjC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,GAAG,CAAC;QAC3C;;AAGA,QAAA,MAAM,gBAAgB,GAAG,OAAO,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC,KAAK;QAC/E,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,gBAAgB,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,GAAG,cAAc,GAAG,kBAAkB;AACvE,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAEzE,QAAA,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;IAC/D,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;;IAGtC,eAAe,CAAC,MAAK;QACjB,IAAI,IAAI,EAAE;AAAC,YAAA,eAAe,EAAE;QAAA;aACvB;YAAC,QAAQ,CAAC,EAAE,CAAC;QAAA;AACtB,IAAA,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;;IAG3B,SAAS,CAAC,MAAK;QACX,IAAI,CAAC,IAAI,EAAE;YAAC;QAAM;AAClB,QAAA,MAAM,EAAE,GAAG,qBAAqB,CAAC,eAAe,CAAC;AACjD,QAAA,OAAO,MAAM,oBAAoB,CAAC,EAAE,CAAC;AACzC,IAAA,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;;IAG3B,SAAS,CAAC,MAAK;QACX,IAAI,CAAC,IAAI,EAAE;YAAC;QAAM;QAClB,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,eAAe,EAAE,IAAI,CAAC;AACxD,QAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,eAAe,CAAC;AAClD,QAAA,OAAO,MAAK;YACR,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,eAAe,EAAE,IAAI,CAAC;AAC3D,YAAA,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,eAAe,CAAC;AACzD,QAAA,CAAC;AACL,IAAA,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAE3B,OAAO,EAAE,KAAK,EAAE;AACpB,CAAC;;ACjED;;;;AAIG;AACI,MAAM,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAiB,KAAmB;AAC3F,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAiB,IAAI,CAAC;IAC7C,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;AAEpD,IAAA,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;;AAGlF,IAAA,MAAM,UAAU,GAAG,WAAW,CAAC,MAAoB;AAC/C,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AAAC,YAAA,OAAO,EAAE;QAAA;AACjC,QAAA,OAAO,KAAK,CAAC,IAAI,CACb,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAc,sCAAsC,CAAC,CACzF;IACL,CAAC,EAAE,EAAE,CAAC;;IAGN,SAAS,CAAC,MAAK;QACX,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,eAAe,CAAC,EAAE,CAAC;YACnB;QACJ;AACA,QAAA,MAAM,GAAG,GAAG,qBAAqB,CAAC,MAAK;AACnC,YAAA,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE;AACzB,YAAA,MAAM,OAAO,GAAG,UAAU,EAAE;YAC5B,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,MAAM,CAAC;AAC1F,YAAA,eAAe,CAAC,WAAW,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC;AACvD,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,MAAM,oBAAoB,CAAC,GAAG,CAAC;AAC1C,IAAA,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;;IAGtB,SAAS,CAAC,MAAK;QACX,IAAI,CAAC,IAAI,EAAE;YAAC;QAAM;AAClB,QAAA,MAAM,OAAO,GAAG,UAAU,EAAE;QAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,GAAG,KAAI;AACxB,YAAA,IAAI,GAAG,KAAK,YAAY,EAAE;AACtB,gBAAA,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC;gBACvC,EAAE,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;YAC3C;iBAAO;AACH,gBAAA,EAAE,CAAC,eAAe,CAAC,cAAc,CAAC;YACtC;AACJ,QAAA,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AAEpC,IAAA,WAAW,CACP;AACI,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,SAAS,EAAE,CAAC,CAAC,KAAI;YACb,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,eAAe,CAAC,CAAC,IAAI,KAAI;AACrB,gBAAA,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC,MAAM;AACjC,gBAAA,OAAO,KAAK,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK;AAClD,YAAA,CAAC,CAAC;QACN,CAAC;AACD,QAAA,OAAO,EAAE,CAAC,CAAC,KAAI;YACX,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,eAAe,CAAC,CAAC,IAAI,KAAI;AACrB,gBAAA,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC,MAAM;AACjC,gBAAA,OAAO,KAAK,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,IAAI,KAAK;AAC1D,YAAA,CAAC,CAAC;QACN,CAAC;AACD,QAAA,IAAI,EAAE,CAAC,CAAC,KAAI;YACR,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC,MAAM;AACjC,YAAA,IAAI,KAAK,GAAG,CAAC,EAAE;gBAAC,eAAe,CAAC,CAAC,CAAC;YAAA;QACtC,CAAC;AACD,QAAA,GAAG,EAAE,CAAC,CAAC,KAAI;YACP,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC,MAAM;AACjC,YAAA,IAAI,KAAK,GAAG,CAAC,EAAE;AAAC,gBAAA,eAAe,CAAC,KAAK,GAAG,CAAC,CAAC;YAAA;QAC9C,CAAC;QACD,KAAK,EAAE,MAAK;AACR,YAAA,MAAM,OAAO,GAAG,UAAU,EAAE;AAC5B,YAAA,IAAI,YAAY,IAAI,CAAC,EAAE;AAAC,gBAAA,OAAO,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE;YAAA;QAC1D,CAAC;AACJ,KAAA,EACD,EAAE,OAAO,EAAE,IAAI,EAAE,CACpB;AAED,IAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;AAC9B,CAAC;;AClGM,MAAM,iBAAiB,GAAG,YAAY,CAAC,CAAC,KAAK,KAAI;AACpD,IAAA,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM;IAEtB,OAAO;AACH,QAAA,IAAI,EAAE;AACF,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,aAAa,EAAE,QAAiB;AACnC,SAAA;AACD,QAAA,OAAO,EAAE;AACL,YAAA,MAAM,EAAE,KAAK;YACb,eAAe,EAAE,CAAC,CAAC,UAAU;AAC7B,YAAA,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC3B,YAAA,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC9B,YAAA,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC5B,YAAA,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAChC,SAAA;AACD,QAAA,KAAK,EAAE;AACH,YAAA,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC5B,YAAA,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC/B,YAAA,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC7B,YAAA,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;YAC9B,KAAK,EAAE,CAAC,CAAC,YAAY;AACrB,YAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC3B,YAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;AACnC,YAAA,UAAU,EAAE,MAAe;AAC3B,YAAA,aAAa,EAAE,WAAoB;AACnC,YAAA,aAAa,EAAE,QAAQ;AAC1B,SAAA;AACD,QAAA,IAAI,EAAE;AACF,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,MAAM,EAAE,GAAG;AACX,YAAA,OAAO,EAAE,GAAG;AACZ,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,aAAa,EAAE,QAAiB;AACnC,SAAA;KACJ;AACL,CAAC,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC;;AClCxB,MAAM,SAAS,GAAuB,CAAC,EACnC,KAAK,EACL,OAAO,EACP,QAAQ,GACX,KAAI;IACD,QACIG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,CACjC,OAAO,KACJH,GAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,iBAAiB,CAAC,OAAO,EACpC,IAAI,EAAE,WAAW,EAAA,aAAA,EACJ,IAAI,EAAA,CACnB,CACL,EACA,KAAK,KAAK,SAAS,KAChBA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,iBAAiB,CAAC,KAAK,EAAA,QAAA,EAAG,KAAK,EAAA,CAAQ,CAC3D,EACDA,GAAA,CAAA,IAAA,EAAA,EACI,SAAS,EAAE,iBAAiB,CAAC,IAAI,EACjC,IAAI,EAAE,OAAO,EAAA,YAAA,EACD,KAAK,EAAA,QAAA,EAEhB,QAAQ,EAAA,CACR,CAAA,EAAA,CACH;AAEd,CAAC;AAED,SAAS,CAAC,WAAW,GAAG,WAAW;;AC9B5B,MAAM,gBAAgB,GAAG,YAAY,CAAC,CAAC,KAAK,KAAI;AACnD,IAAA,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM;IAEtB,OAAO;AACH,QAAA,IAAI,EAAE;AACF,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACrB,YAAA,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC5B,YAAA,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC/B,YAAA,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC7B,YAAA,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC9B,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,UAAU,EAAE,MAAe;YAC3B,KAAK,EAAE,CAAC,CAAC,WAAW;AACpB,YAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC3B,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,UAAU,EAAE,CAAA,iBAAA,EAAoB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AACvD,YAAA,kBAAkB,EAAE;gBAChB,eAAe,EAAE,CAAC,CAAC,aAAa;gBAChC,KAAK,EAAE,CAAC,CAAC,WAAW;AACpB,gBAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;AACtC,aAAA;AACD,YAAA,iBAAiB,EAAE;gBACf,eAAe,EAAE,CAAC,CAAC,kBAAkB;AACxC,aAAA;AACD,YAAA,gCAAgC,EAAE;gBAC9B,eAAe,EAAE,CAAC,CAAC,kBAAkB;AACxC,aAAA;AACD,YAAA,kBAAkB,EAAE;AAChB,gBAAA,MAAM,EAAE,aAAa;AACrB,gBAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;AAC9B,aAAA;AACD,YAAA,6BAA6B,EAAE;gBAC3B,eAAe,EAAE,CAAC,CAAC,kBAAkB;AACxC,aAAA;AACD,YAAA,8BAA8B,EAAE;gBAC5B,eAAe,EAAE,CAAC,CAAC,mBAAmB;AACzC,aAAA;AACJ,SAAA;KACJ;AACL,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC;;ACrCvB,MAAM,QAAQ,GAAsB,CAAC,EACjC,GAAG,EACH,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,OAAO,EACP,GAAG,IAAI,EACV,KAAI;AACD,IAAA,QAEIG,IAAA,CAAA,IAAA,EAAA,EACI,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,QAAQ,mBACC,QAAQ,EAAA,eAAA,EACR,QAAQ,EAAA,eAAA,EACR,QAAQ,IAAI,SAAS,EAAA,cAAA,EACtB,OAAO,IAAI,SAAS,mBACnB,QAAQ,IAAI,SAAS,EACpC,SAAS,EAAE,gBAAgB,CAAC,IAAI,EAChC,OAAO,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,EAAA,GACnC,IAAI,aAEP,IAAI,KAAK,SAAS,KACfH,IAAC,IAAI,EAAA,EACD,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,QAAQ,GAAG,aAAa,GAAG,eAAe,EAAA,CACzD,CACL,EACDA,GAAA,CAAC,IAAI,IACD,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,IAAI,EAAA,QAAA,EAEb,KAAK,EAAA,CACH,CAAA,EAAA,CACN;AAEb,CAAC;AAED,QAAQ,CAAC,WAAW,GAAG,UAAU;;ACtCjC,MAAM,QAAQ,GAAkB,CAAC,EAC7B,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,SAAS,GAAG,OAAO,EACnB,EAAE,EACF,QAAQ,GACX,KAAI;AACD,IAAA,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAE1E,IAAI,CAAC,IAAI,EAAE;AAAC,QAAA,OAAO,IAAI;IAAA;AAEvB,IAAA,OAAO,YAAY,CACfG,IAAA,CAAAE,UAAA,EAAA,EAAA,QAAA,EAAA,CACIL,GAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,WAAW,CAAC,QAAQ,EAC/B,OAAO,EAAE,OAAO,EAAA,aAAA,EACH,IAAI,EAAA,CACnB,EACFA,GAAA,CAAA,KAAA,EAAA,EACI,GAAG,EAAE,QAAQ,EACb,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,EAAE,EACZ,SAAS,EAAE,WAAW,CAAC,KAAK,EAC5B,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,EAAA,QAAA,EAE9C,QAAQ,EAAA,CACP,CAAA,EAAA,CACP,EACH,QAAQ,CAAC,IAAI,CAChB;AACL,CAAC;AAED,QAAQ,CAAC,WAAW,GAAG,MAAM;AAE7B,MAAM,IAAI,GAAG;AACb,IAAI,CAAC,IAAI,GAAG,QAAQ;AACpB,IAAI,CAAC,KAAK,GAAG,SAAS;;AC9Cf,MAAM,uBAAuB,GAAG,cAAc,CAAC,CAAC,KAAK,KAAI;AAC5D,IAAA,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM;IAEtB,OAAO;AACH,QAAA,IAAI,EAAE;AACF,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACrB,YAAA,SAAS,EAAE,YAAqB;AAChC,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,WAAW,EAAE,OAAO;AACpB,YAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;YAC7B,eAAe,EAAE,CAAC,CAAC,YAAY;AAC/B,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,UAAU,EAAE,CAAA,aAAA,EAAgB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AACnD,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,cAAc,EAAE;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;AAC7B,aAAA;AACD,YAAA,kBAAkB,EAAE;AAChB,gBAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;gBAC3B,eAAe,EAAE,CAAC,CAAC,YAAY;AAC/B,gBAAA,MAAM,EAAE,aAAa;AACxB,aAAA;AACJ,SAAA;AACD,QAAA,QAAQ,EAAE;AACN,YAAA,IAAI,EAAE;AACF,gBAAA,EAAE,EAAE;AACA,oBAAA,MAAM,EAAE,MAAM;AACd,oBAAA,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC7B,oBAAA,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC9B,oBAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC9B,iBAAA;AACD,gBAAA,EAAE,EAAE;AACA,oBAAA,MAAM,EAAE,QAAQ;AAChB,oBAAA,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC7B,oBAAA,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC9B,oBAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC9B,iBAAA;AACD,gBAAA,EAAE,EAAE;AACA,oBAAA,MAAM,EAAE,MAAM;AACd,oBAAA,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC7B,oBAAA,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC9B,oBAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC9B,iBAAA;AACJ,aAAA;AACD,YAAA,MAAM,EAAE;AACJ,gBAAA,OAAO,EAAE;oBACL,WAAW,EAAE,CAAC,CAAC,UAAU;AACzB,oBAAA,8CAA8C,EAAE;wBAC5C,WAAW,EAAE,CAAC,CAAC,YAAY;AAC9B,qBAAA;AACD,oBAAA,gBAAgB,EAAE;wBACd,WAAW,EAAE,CAAC,CAAC,WAAW;AAC1B,wBAAA,OAAO,EAAE,MAAM;AAClB,qBAAA;AACJ,iBAAA;AACD,gBAAA,KAAK,EAAE;oBACH,WAAW,EAAE,CAAC,CAAC,SAAS;AACxB,oBAAA,gBAAgB,EAAE;AACd,wBAAA,OAAO,EAAE,MAAM;AAClB,qBAAA;AACJ,iBAAA;AACD,gBAAA,OAAO,EAAE;oBACL,WAAW,EAAE,CAAC,CAAC,WAAW;AAC1B,oBAAA,gBAAgB,EAAE;AACd,wBAAA,OAAO,EAAE,MAAM;AAClB,qBAAA;AACJ,iBAAA;AACD,gBAAA,OAAO,EAAE;oBACL,WAAW,EAAE,CAAC,CAAC,WAAW;AAC1B,oBAAA,gBAAgB,EAAE;AACd,wBAAA,OAAO,EAAE,MAAM;AAClB,qBAAA;AACJ,iBAAA;AACJ,aAAA;AACJ,SAAA;QACD,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE;KACrD;AACL,CAAC,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC;AAErB,MAAM,qBAAqB,GAAG,YAAY,CAAC,CAAC,KAAK,MAAM;AAC1D,IAAA,KAAK,EAAE;AACH,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,QAAQ,EAAE,CAAC;AACX,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,YAAY,EAAE,UAAU;AACxB,QAAA,UAAU,EAAE,QAAiB;AAC7B,QAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW;AAC/B,QAAA,SAAS,EAAE,MAAe;AAC7B,KAAA;AACD,IAAA,WAAW,EAAE;AACT,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,QAAQ,EAAE,CAAC;AACX,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,YAAY,EAAE,UAAU;AACxB,QAAA,UAAU,EAAE,QAAiB;AAC7B,QAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAChC,QAAA,SAAS,EAAE,MAAe;AAC7B,KAAA;AACD,IAAA,OAAO,EAAE;AACL,QAAA,UAAU,EAAE,CAAC;AACb,QAAA,UAAU,EAAE,CAAA,UAAA,EAAa,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AAChD,QAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa;AACpC,KAAA;AACD,IAAA,WAAW,EAAE;AACT,QAAA,SAAS,EAAE,gBAAgB;AAC9B,KAAA;AACJ,CAAA,CAAC,EAAE,EAAE,EAAE,EAAE,sBAAsB,EAAE,CAAC;;ACvGnC,MAAM,aAAa,GAAmD;AAClE,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;CACX;AAED,MAAM,aAAa,GAA2B,CAAC,EAC3C,GAAG,EACH,IAAI,GAAG,IAAI,EACX,MAAM,GAAG,SAAS,EAClB,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,GAAG,IAAI,EACV,KAAI;AACD,IAAA,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC;IAEpC,QACIG,IAAA,CAAA,QAAA,EAAA,EACI,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,uBAAuB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAA,WAAA,EACzC,IAAI,IAAI,SAAS,EAAA,eAAA,EACb,QAAQ,IAAI,SAAS,EACpC,QAAQ,EAAE,QAAQ,EAAA,GACd,IAAI,EAAA,QAAA,EAAA,CAEP,SAAS,KAAK,SAAS,KACpBH,GAAA,CAAC,IAAI,IACD,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,QAAQ,EACd,WAAW,EAAE,eAAe,EAAA,CAC9B,CACL,EACDA,cAAM,SAAS,EAAE,QAAQ,GAAG,qBAAqB,CAAC,KAAK,GAAG,qBAAqB,CAAC,WAAW,EAAA,QAAA,EACtF,QAAQ,EAAA,CACN,EACPA,GAAA,CAAC,IAAI,EAAA,EACD,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,EAAE,CAAC,qBAAqB,CAAC,OAAO,EAAE,IAAI,GAAG,qBAAqB,CAAC,WAAW,GAAG,SAAS,CAAC,EAClG,WAAW,EAAE,eAAe,EAAA,CAC9B,CAAA,EAAA,CACG;AAEjB,CAAC;AAED,aAAa,CAAC,WAAW,GAAG,eAAe;;AChD3C;AACA,MAAM,gBAAgB,GAAmD;AACrE,IAAA,OAAO,EAAE,eAAe;AACxB,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,OAAO,EAAE,cAAc;AACvB,IAAA,OAAO,EAAE,cAAc;CAC1B;AA4BD;;;;AAIG;AACI,MAAM,SAAS,GAAG,CAAC,EACtB,EAAE,EACF,GAAG,EACH,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,MAAM,EACN,QAAQ,GACM,KAAqB;AACnC,IAAA,MAAM,WAAW,GAAG,KAAK,EAAE;AAC3B,IAAA,MAAM,OAAO,GAAG,EAAE,IAAI,WAAW;AACjC,IAAA,MAAM,MAAM,GAAG,CAAA,EAAG,OAAO,OAAO;AAEhC,IAAA,MAAM,UAAU,GAAG,MAAM,CAA2B,IAAI,CAAC;IACzD,MAAM,SAAS,GAAG,aAAa,CAAoB,GAAG,EAAE,UAAU,CAAC;IAEnE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AAEvC,IAAA,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAG,oBAAoB,CAAS;QAC1D,KAAK;QACL,YAAY,EAAE,YAAY,IAAI,EAAE;QAChC,QAAQ;AACX,KAAA,CAAC;;AAGF,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;IAChC,SAAS,CAAC,MAAK;AACX,QAAA,IAAI,UAAU,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE;AAC7B,YAAA,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE;QAC/B;AACA,QAAA,UAAU,CAAC,OAAO,GAAG,IAAI;AAC7B,IAAA,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAEV,IAAA,MAAM,cAAc,GAAG,OAAO,CAC1B,MAAM,OAAO,EAAE,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,KAAK,YAAY,CAAC,EACxD,CAAC,OAAO,EAAE,YAAY,CAAC,CAC1B;AAED,IAAA,MAAM,cAAc,GAAG,OAAO,CAAC,MAAK;AAChC,QAAA,MAAM,GAAG,GAAG,IAAI,GAAG,EAAsC;AACzD,QAAA,KAAK,MAAM,GAAG,IAAI,OAAO,IAAI,EAAE,EAAE;AAC7B,YAAA,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK;YACrB,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7B,YAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AACxB,gBAAA,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;YACtB;iBAAO;gBACH,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;YACvB;QACJ;AACA,QAAA,OAAO,GAAG;AACd,IAAA,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AAEb,IAAA,MAAM,YAAY,GAAG,WAAW,CAC5B,CAAC,QAAgB,KAAI;QACjB,QAAQ,CAAC,QAAQ,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC;AAClB,IAAA,CAAC,EACD,CAAC,QAAQ,CAAC,CACb;AAED,IAAA,MAAM,MAAM,GAAG,WAAW,CAAC,MAAK;QAC5B,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;QAC5B;AACJ,IAAA,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAEd,IAAA,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;IAEnD,OAAO;QACH,OAAO;QACP,MAAM;QACN,UAAU;QACV,SAAS;QACT,IAAI;QACJ,MAAM;QACN,KAAK;QACL,YAAY;QACZ,cAAc;QACd,cAAc;QACd,YAAY;AACZ,QAAA,WAAW,EAAE,gBAAgB,CAAC,MAAM,CAAC;KACxC;AACL,CAAC;;AC5HD,MAAM,MAAM,GAAoB,CAAC,EAC7B,GAAG,EACH,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,KAAK,EACL,UAAU,EACV,WAAW,EACX,IAAI,GAAG,IAAI,EACX,MAAM,GAAG,SAAS,EAClB,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,EAAE,GACL,KAAI;IACD,MAAM,EACF,OAAO,EACP,MAAM,EACN,UAAU,EACV,SAAS,EACT,IAAI,EACJ,MAAM,EACN,KAAK,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,YAAY,EACZ,WAAW,GACd,GAAG,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAEpF,IAAA,QACIG,IAAA,CAAC,KAAK,IACF,aAAa,EAAE,QAAQ,EACvB,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,IAAI,MAAM,EAAE,aAEhC,KAAK,KAAK,SAAS,KAChBA,KAAC,IAAI,EAAA,EACD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,IAAI,EACd,UAAU,EAAE,QAAQ,EACpB,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,OAAO,EAAA,QAAA,EAAA,CAEf,KAAK,EACL,QAAQ,KACLH,GAAA,CAAC,IAAI,EAAA,EACD,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,WAAW,iBACL,IAAI,EAAA,QAAA,EAEhB,IAAI,EAAA,CACF,CACV,IACE,CACV,EAEDA,IAAC,aAAa,EAAA,EACV,GAAG,EAAE,SAAS,EACd,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,cAAc,KAAK,SAAS,EACtC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAAA,eAAA,EACH,SAAS,mBACT,IAAI,EAAA,eAAA,EACJ,MAAM,EAAA,cAAA,EACP,MAAM,KAAK,OAAO,IAAI,SAAS,EAC7C,OAAO,EAAE,MAAM,EAAA,QAAA,EAEd,cAAc,KAAK,SAAS,GAAG,cAAc,CAAC,KAAK,GAAG,WAAW,EAAA,CACtD,EAEhBA,GAAA,CAAC,IAAI,IACD,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,KAAK,EACd,QAAQ,EAAE,UAAU,CAAC,OAAO,EAC5B,EAAE,EAAE,MAAM,YAET,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,UAAU,KAAI;AAC5E,oBAAA,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,MAC5BA,GAAA,CAAC,IAAI,CAAC,IAAI,EAAA,EAEN,KAAK,EAAE,GAAG,CAAC,KAAK,EAChB,IAAI,EAAE,GAAG,CAAC,IAAI,EACd,QAAQ,EAAE,GAAG,CAAC,KAAK,KAAK,YAAY,EACpC,QAAQ,EAAE,GAAG,CAAC,QAAQ,EACtB,OAAO,EAAE,MAAM,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAA,EALjC,GAAG,CAAC,KAAK,CAMhB,CACL,CAAC;oBACF,OAAO,QAAQ,KAAK,SAAS,IACzBA,IAAC,IAAI,CAAC,KAAK,EAAA,EAEP,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,UAAU,GAAG,CAAC,EAAA,QAAA,EAEtB,KAAK,IAJD,QAAQ,CAKJ,KAEbA,GAAA,CAAC,IAAI,CAAC,KAAK,EAAA,EAEP,OAAO,EAAE,UAAU,GAAG,CAAC,EAAA,QAAA,EAEtB,KAAK,EAAA,EAHD,aAAa,CAIT,CAChB;AACL,gBAAA,CAAC,CAAC,EAAA,CACC,EAEN,UAAU,KAAK,SAAS,KACrBA,GAAA,CAAC,IAAI,EAAA,EACD,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,IAAI,EACd,KAAK,EAAE,WAAW,EAAA,QAAA,EAEjB,UAAU,EAAA,CACR,CACV,CAAA,EAAA,CACG;AAEhB;AAEA,MAAM,CAAC,WAAW,GAAG,QAAQ;;ACnItB,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,KAAK,MAAM;AACpD,IAAA,IAAI,EAAE;AACF,QAAA,SAAS,EAAE,YAAqB;AAChC,QAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,QAAA,MAAM,EAAE,uBAAuB;AAClC,KAAA;AACD,IAAA,QAAQ,EAAE;AACN,QAAA,OAAO,EAAE;AACL,YAAA,QAAQ,EAAE;AACN,gBAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAC1C,gBAAA,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC9B,aAAA;AACD,YAAA,QAAQ,EAAE;AACN,gBAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAC1C,gBAAA,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;AACvC,aAAA;AACJ,SAAA;AACJ,KAAA;AACD,IAAA,eAAe,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;AAC3C,CAAA,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;;ACfnB,MAAM,UAAU,GAAwB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAI;IACjE,QACIG,IAAA,CAAC,KAAK,EAAA,EACF,UAAU,EAAE,QAAQ,EACpB,cAAc,EAAE,eAAe,EAC/B,GAAG,EAAE,IAAI,EACT,EAAE,EAAE,IAAI,EACR,EAAE,EAAE,IAAI,EAAA,QAAA,EAAA,CAERA,IAAA,CAAC,KAAK,EAAA,EACF,UAAU,EAAE,QAAQ,EACpB,GAAG,EAAE,IAAI,EACT,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,GAAG,EAAA,QAAA,EAAA,CAEZ,IAAI,KAAK,SAAS,KACfH,GAAA,CAAC,IAAI,EAAA,EACD,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,eAAe,EAAA,CAC9B,CACL,EACDA,GAAA,CAAC,IAAI,EAAA,EACD,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,IAAI,EACd,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,aAAa,EAAA,QAAA,EAEnB,KAAK,GACH,CAAA,EAAA,CACH,EACP,OAAO,KAAK,SAAS,KAClBA,GAAA,CAAC,KAAK,EAAA,EACF,UAAU,EAAE,QAAQ,EACpB,GAAG,EAAE,IAAI,EACT,UAAU,EAAE,CAAC,EAAA,QAAA,EAEZ,OAAO,EAAA,CACJ,CACX,CAAA,EAAA,CACG;AAEhB,CAAC;AAED,UAAU,CAAC,WAAW,GAAG,aAAa;;AC9CtC,MAAM,QAAQ,GAAsB,CAAC,EACjC,QAAQ,EACR,EAAE,GAAG,IAAI,EACT,EAAE,GAAG,IAAI,GACZ,KAAI;AACD,IAAA,QACIA,GAAA,CAAC,GAAG,EAAA,EACA,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EAAA,QAAA,EAEL,QAAQ,EAAA,CACP;AAEd,CAAC;AAED,QAAQ,CAAC,WAAW,GAAG,WAAW;;ACTlC,MAAM,QAAQ,GAAkB,CAC5B,EAAE,GAAG,EAAE,OAAO,GAAG,UAAU,EAAE,OAAO,GAAG,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,KAC7E;AACA,IAAA,QACIA,GAAA,CAAC,GAAG,EAAA,EACA,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,EAAA,GAChD,IAAgB,EAAA,QAAA,EAEnB,QAAQ,EAAA,CACP;AAEd,CAAC;AAED,QAAQ,CAAC,WAAW,GAAG,MAAM;AAE7B,MAAM,IAAI,GAAG;AACb,IAAI,CAAC,MAAM,GAAG,UAAU;AACxB,IAAI,CAAC,IAAI,GAAG,QAAQ;;ACzBb,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO;IAC3C,IAAI,EAAE,CAAC,EACH,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,YAAY,GACkH,MAAM;QACpI,IAAI,QAAQ,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;QACzD,IAAI,WAAW,KAAK,SAAS,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC;QAClE,IAAI,QAAQ,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;QACzD,IAAI,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,CAAC;QACnD,IAAI,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,CAAC;QACnD,IAAI,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,CAAC;QAC/C,IAAI,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,CAAC;KACtD,CAAC;AACL,CAAA,CAAC,CAAC;;ACdH;;;;;;;;;;;AAWG;AACH,MAAM,IAAI,GAAkB,CACxB,EACI,OAAO,GAAG,MAAM,EAChB,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,SAAS,EACT,MAAM,GAAC,IAAI,EACX,SAAS,GAAC,IAAI,EACd,GAAG,IAAI,EACV,KACD;AACA,IAAA,MAAM,eAAe,GAAG,OAAO,KAAK;AAChC,WAAG,OAAO,OAAO,KAAK,QAAQ,GAAG,CAAA,OAAA,EAAU,OAAO,CAAA,MAAA,CAAQ,GAAG,OAAO;UAClE,mBAAmB;AAEzB,IAAA,MAAM,YAAY,GAAG,IAAI,KAAK;AAC1B,WAAG,OAAO,IAAI,KAAK,QAAQ,GAAG,CAAA,OAAA,EAAU,IAAI,CAAA,MAAA,CAAQ,GAAG,IAAI;UACzD,gBAAgB;AAEtB,IAAA,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC;QACnC,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,YAAY;AACf,KAAA,CAAC;AAEF,IAAA,QACIA,GAAA,CAAC,GAAG,EAAA,EACA,OAAO,EAAE,OAAO,EAChB,mBAAmB,EAAE,eAAe,EACpC,gBAAgB,EAAE,YAAY,EAC9B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,EAAA,GACnC,IAAI,EAAA,CACV;AAEV;AAEA,IAAI,CAAC,WAAW,GAAG,MAAM;;AC7DlB,MAAM,YAAY,GAAG,aAAa,CAAoB;AACzD,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,WAAW,EAAE,eAAe;AAC/B,CAAA,CAAC;AAEK,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC;;ACD7D,MAAM,aAAa,GAA+D;AAC9E,IAAA,OAAO,EAAE,gBAAgB;AACzB,IAAA,KAAK,EAAE,cAAc;AACrB,IAAA,OAAO,EAAE,gBAAgB;AACzB,IAAA,IAAI,EAAE,aAAa;CACtB;AAED;AACA,MAAM,cAAc,GAAG,CAAC,KAAc,KAClC,OAAO,KAAK,KAAK,UAAU;AAE/B;;;AAGG;AACH,MAAM,UAAU,GAAwB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAI;IAC3D,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,eAAe,EAAE;;;;AAKlD,IAAA,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC;;AAE1C,IAAA,MAAM,YAAY,GACd,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,KAAK,SAAS,IAAI,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC;AAC7F,IAAA,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;IAE9D,MAAM,OAAO,GAAG,YAAY,KAAK,IAAI,IAAI,UAAU,KAAK,IAAI;AAE5D,IAAA,QACIG,IAAA,CAAC,KAAK,IACF,aAAa,EAAE,KAAK,EACpB,UAAU,EAAE,QAAQ,EACpB,GAAG,EAAE,IAAI,aAER,OAAO,KACJH,GAAA,CAAC,KAAK,EAAA,EACF,UAAU,EAAE,CAAC,EACb,UAAU,EAAE,QAAQ,EACpB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,SAAS,iBACJ,IAAI,EAAA,QAAA,EAEhB,YAAY,IACTA,IAAC,YAAY,EAAA,EACT,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EAAA,CACZ,KAEF,UAAU,CACb,GACG,CACX,EACDA,IAAC,IAAI,EAAA,EACD,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,IAAI,EACd,KAAK,EAAE,WAAW,EAAA,QAAA,EAEjB,QAAQ,EAAA,CACN,CAAA,EAAA,CACH;AAEhB,CAAC;AAED,UAAU,CAAC,WAAW,GAAG,aAAa;;ACzEtC;;AAEG;AACH,MAAM,SAAS,GAAuB,CAAC,EAAE,QAAQ,EAAE,MAC/CA,GAAA,CAAC,IAAI,EAAA,EACD,EAAE,EAAE,GAAG,EACP,QAAQ,EAAE,IAAI,EACd,KAAK,EAAE,eAAe,EAAA,QAAA,EAErB,QAAQ,EAAA,CACN,CACV;AAED,SAAS,CAAC,WAAW,GAAG,YAAY;;ACHpC,MAAM,cAAc,GAAwC;AACxD,IAAA,OAAO,EAAE,EAAE,eAAe,EAAE,cAAc,EAAG,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE;AACvG,IAAA,OAAO,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE;AACvG,IAAA,KAAK,EAAI,EAAE,eAAe,EAAE,aAAa,EAAI,WAAW,EAAE,WAAW,EAAI,WAAW,EAAE,aAAa,EAAI;AACvG,IAAA,OAAO,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE;AACvG,IAAA,IAAI,EAAK,EAAE,eAAe,EAAE,YAAY,EAAK,WAAW,EAAE,UAAU,EAAK,WAAW,EAAE,YAAY,EAAK;CAC1G;AAED,MAAM,iBAAiB,GAAiD;AACpE,IAAA,OAAO,EAAE,QAAQ;AACjB,IAAA,OAAO,EAAE,QAAQ;AACjB,IAAA,KAAK,EAAI,WAAW;AACpB,IAAA,OAAO,EAAE,QAAQ;AACjB,IAAA,IAAI,EAAK,QAAQ;CACpB;AAED;;;;;;;;;AASG;AACH,MAAM,SAAS,GAAmB,CAAC,EAC/B,OAAO,GAAG,SAAS,EACnB,QAAQ,EACR,KAAK,GAAG,MAAM,EACd,OAAO,GAAG,KAAK,EACf,MAAM,GAAG,MAAM,GAClB,KAAI;AACD,IAAA,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC;IAE7E,QACIA,IAAC,YAAY,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,YAClDA,GAAA,CAAC,KAAK,IACF,IAAI,EAAE,OAAO,EAAA,WAAA,EACF,iBAAiB,CAAC,OAAO,CAAC,EACrC,aAAa,EAAE,QAAQ,EACvB,GAAG,EAAE,IAAI,EACT,OAAO,EAAE,IAAI,EACb,YAAY,EAAE,IAAI,EAClB,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS,EAC9C,WAAW,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,EACxC,WAAW,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,EAC1C,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,KAAK,YAEX,QAAQ,EAAA,CACL,EAAA,CACY;AAEhC,CAAC;AAED,SAAS,CAAC,WAAW,GAAG,OAAO;AAE/B,MAAM,KAAK,GAAG;AACd,KAAK,CAAC,KAAK,GAAG,UAAU;AACxB,KAAK,CAAC,IAAI,GAAG,SAAS;;AC7EtB;;;AAGG;AACI,MAAM,WAAW,GAAG;AACvB,IACA,EAAE,EAAG,IAKC;AAEV;AACO,MAAM,SAAS,GAAG;AACrB,IACA,EAAE,EAAG,CAAA,WAAA,EAAc,WAAW,CAAC,EAAE,GAAI,CAAC,CAAA,EAAA,EAKhC;;ACrBV;AACO,MAAM,8BAA8B,GAAG,GAAG;;ACIjD,MAAM,UAAU,GAAG,CAAA,EAAG,8BAA8B,SAAS;AAEtD,MAAM,aAAa,GAAG,YAAY,CAAC,CAAC,KAAK,MAAM;AAClD,IAAA,QAAQ,EAAE;AACN,QAAA,QAAQ,EAAE,OAAgB;AAC1B,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC;AAC9B,QAAA,eAAe,EAAE,kBAAkB;QACnC,UAAU,EAAE,CAAA,iBAAA,EAAoB,UAAU,CAAA,CAAE;AAC/C,KAAA;AAED,IAAA,eAAe,EAAE;AACb,QAAA,eAAe,EAAE,oBAAoB;AACxC,KAAA;AACD,IAAA,KAAK,EAAE;AACH,QAAA,QAAQ,EAAE,OAAgB;AAC1B,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,QAAQ,EAAE,+BAA+B;AACzC,QAAA,SAAS,EAAE,gCAAgC;AAC3C,QAAA,QAAQ,EAAE,8BAA8B;AACxC,QAAA,SAAS,EAAE,+BAA+B;AAC1C,QAAA,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;AAC1B,QAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAC1C,QAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AACjC,QAAA,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC3B,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,aAAa,EAAE,QAAiB;AAChC,QAAA,QAAQ,EAAE,QAAiB;AAC3B,QAAA,UAAU,EAAE,oBAAoB;AAChC,QAAA,OAAO,EAAE,CAAC;AACV,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,UAAU,EAAE,CAAA,QAAA,EAAW,UAAU,CAAA,YAAA,EAAe,UAAU,CAAA,CAAE;;AAE5D,QAAA,CAAC,WAAW,SAAS,CAAC,EAAE,CAAA,CAAA,CAAG,GAAG;AAC1B,YAAA,GAAG,EAAE,MAAM;AACX,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,SAAS,EAAE,gCAAgC;AAC3C,YAAA,YAAY,EAAE,CAAA,EAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,IAAA,CAAM;AACjE,YAAA,SAAS,EAAE,kBAAkB;AAChC,SAAA;AACJ,KAAA;AAED,IAAA,YAAY,EAAE;AACV,QAAA,OAAO,EAAE,CAAC;AACV,QAAA,SAAS,EAAE,UAAU;AACrB,QAAA,CAAC,WAAW,SAAS,CAAC,EAAE,CAAA,CAAA,CAAG,GAAG;AAC1B,YAAA,SAAS,EAAE,eAAe;AAC7B,SAAA;AACJ,KAAA;;AAGD,IAAA,eAAe,EAAE;AACb,QAAA,CAAC,WAAW,SAAS,CAAC,EAAE,CAAA,CAAA,CAAG,GAAG;AAC1B,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,SAAS,EAAE,MAAM;AACpB,SAAA;AACJ,KAAA;AAEJ,CAAA,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;;AC7Dd,MAAM,aAAa,GAAG,aAAa,CAAqB;AAC3D,IAAA,OAAO,EAAE,EAAE;AACX,IAAA,kBAAkB,EAAE,IAAW;AAClC,CAAA,CAAC;;ACRF;;;;;;;;;;;;;;;AAeG;AACI,MAAM,mBAAmB,GAAG,CAC/B,MAAe,EACf,QAAQ,GAAG,8BAA8B,KACV;IAC/B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;IAClD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;;;IAIpD,eAAe,CAAC,MAAK;QACjB,IAAI,MAAM,EAAE;YACR,YAAY,CAAC,IAAI,CAAC;QACtB;AACJ,IAAA,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAEZ,SAAS,CAAC,MAAK;QACX,IAAI,MAAM,EAAE;;;AAGR,YAAA,IAAI,IAAY;AAChB,YAAA,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAK;gBACpC,IAAI,GAAG,qBAAqB,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;AAC3D,YAAA,CAAC,CAAC;AACF,YAAA,OAAO,MAAK;gBACR,oBAAoB,CAAC,IAAI,CAAC;gBAC1B,oBAAoB,CAAC,IAAI,CAAC;AAC9B,YAAA,CAAC;QACL;aAAO;YACH,aAAa,CAAC,KAAK,CAAC;AACpB,YAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,YAAY,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;AAC/D,YAAA,OAAO,MAAM,YAAY,CAAC,OAAO,CAAC;QACtC;AACJ,IAAA,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAEtB,IAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE;AACpC,CAAC;;ACvDD;;;;;;;;AAQG;AACI,MAAM,iBAAiB,GAAG,CAAC,MAAe,KAAU;IACvD,SAAS,CAAC,MAAK;QACX,IAAI,CAAC,MAAM,EAAE;YAAC;QAAM;AAEpB,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO;AAC9B,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI;AAC1B,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO;QAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA,CAAA,EAAI,OAAO,IAAI;AAChC,QAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ;AAC/B,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM;AAEzB,QAAA,OAAO,MAAK;AACR,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE;AACxB,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE;AACnB,YAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE;AACzB,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE;AACrB,YAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;AAC/B,QAAA,CAAC;AACL,IAAA,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AAChB,CAAC;;AC5BD,MAAM,kBAAkB,GAAG;IACvB,SAAS;IACT,wBAAwB;IACxB,0BAA0B;IAC1B,uBAAuB;IACvB,wBAAwB;IACxB,iCAAiC;AACpC,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC;AAEX,MAAM,YAAY,GAAG,CAAC,SAAsB,KACxC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAc,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAC1E,CAAC,EAAE,KAAK,EAAE,CAAC,YAAY,KAAK,IAAI,IAAI,EAAE,KAAK,QAAQ,CAAC,aAAa,CACpE;AAEL;;;;;;AAMG;AACI,MAAM,YAAY,GAAG,CACxB,YAA2C,EAC3C,MAAe,KACT;IACN,SAAS,CAAC,MAAK;QACX,IAAI,CAAC,MAAM,EAAE;YAAC;QAAM;AACpB,QAAA,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO;QACtC,IAAI,CAAC,SAAS,EAAE;YAAC;QAAM;AAEvB,QAAA,MAAM,aAAa,GAAG,CAAC,KAAoB,KAAU;AACjD,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE;gBAAC;YAAM;AAEhC,YAAA,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;AACzC,YAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBACxB,KAAK,CAAC,cAAc,EAAE;gBACtB,SAAS,CAAC,KAAK,EAAE;gBACjB;YACJ;AAEA,YAAA,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC;YAC1B,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5C,YAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa;AAEvC,YAAA,IAAI,KAAK,CAAC,QAAQ,EAAE;AAChB,gBAAA,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;oBAC/E,KAAK,CAAC,cAAc,EAAE;oBACtB,IAAI,CAAC,KAAK,EAAE;gBAChB;YACJ;AAAO,iBAAA,IAAI,QAAQ,KAAK,IAAI,EAAE;gBAC1B,KAAK,CAAC,cAAc,EAAE;gBACtB,KAAK,CAAC,KAAK,EAAE;YACjB;AACJ,QAAA,CAAC;AAED,QAAA,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC;QACpD,OAAO,MAAM,SAAS,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC;AACxE,IAAA,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAC9B,CAAC;;ACjDD,MAAM,kBAAkB,GAAG,CAAA,YAAA,EAAe,WAAW,CAAC,EAAE,GAAG,CAAC,CAAA,GAAA,CAAK;AAYjE,MAAM,SAAS,GAAG,CAAC,CAAkB,KACjC,OAAO,CAAC,KAAK,QAAQ,GAAG,CAAA,EAAG,CAAC,IAAI,GAAG,CAAC;AAEjC,MAAM,SAAS,GAAG,CAAC,EACtB,IAAI,EACJ,OAAO,EACP,oBAAoB,EACpB,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,YAAY,EAAE,SAAS,GAC2G,KAAqB;AAEvJ,IAAA,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,mBAAmB,CAAC,IAAI,EAAE,8BAA8B,CAAC;AAC3F,IAAA,MAAM,OAAO,GAAG,KAAK,EAAE;AACvB,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAiB,IAAI,CAAC;;IAG7C,SAAS,CAAC,MAAK;QACX,IAAI,CAAC,IAAI,EAAE;YAAC;QAAM;AAClB,QAAA,MAAM,KAAK,GAAG,UAAU,CAAC,MAAK;YAC1B,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QACpD,CAAC,EAAE,8BAA8B,CAAC;AAClC,QAAA,OAAO,MAAM,YAAY,CAAC,KAAK,CAAC;AACpC,IAAA,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;;IAGV,iBAAiB,CAAC,IAAI,CAAC;;AAGvB,IAAA,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC;;AAGjC,IAAA,MAAM,mBAAmB,GAAG,WAAW,CAAC,MAAK;QACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,OAAO;AAC9D,QAAA,IAAI,oBAAoB,IAAI,QAAQ,EAAE;AAClC,YAAA,OAAO,EAAE;QACb;AACJ,IAAA,CAAC,EAAE,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;AAEnC,IAAA,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAEnD,IAAA,MAAM,OAAO,GAAkB;AAC3B,QAAA,oBAAoB,EAAE,SAAS,CAAC,QAAS,CAAC;AAC1C,QAAA,qBAAqB,EAAE,SAAS;AAChC,QAAA,IAAI,QAAQ,KAAK,SAAS,IAAI,EAAE,oBAAoB,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC5E,QAAA,IAAI,SAAS,KAAK,SAAS,IAAI,EAAE,qBAAqB,EAAE,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;KACjE;IAElB,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO;AAElD,IAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,OAAO,EAAE;AACjG,CAAC;;ACnED;;;;;;AAMG;AACH,MAAM,YAAY,GAA0B,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAI;IAC/D,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC;IAEjE,QACIG,KAAC,KAAK,EAAA,EACF,aAAa,EAAE,KAAK,EACpB,UAAU,EAAE,QAAQ,EACpB,cAAc,EAAE,eAAe,EAC/B,GAAG,EAAE,IAAI,EACT,UAAU,EAAE,IAAI,EAChB,aAAa,EAAE,IAAI,EACnB,WAAW,EAAE,IAAI,EACjB,YAAY,EAAE,IAAI,EAClB,UAAU,EAAE,CAAC,aAEbH,GAAA,CAAC,IAAI,IACD,EAAE,EAAE,OAAO,EACX,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,IAAI,EACd,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,aAAa,YAEnB,KAAK,EAAA,CACH,EAEPA,GAAA,CAAC,UAAU,IACP,IAAI,EAAE,kBAAkB,EACxB,SAAS,EAAE,cAAc,EACzB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,OAAO,EAAA,CAClB,CAAA,EAAA,CACE;AAEhB,CAAC;AAED,YAAY,CAAC,WAAW,GAAG,eAAe;;AChD1C;;;;;;;AAOG;AACH,MAAM,UAAU,GAAwB,CAAC,EAAE,QAAQ,EAAE,MACjDA,GAAA,CAAC,GAAG,EAAA,EACA,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,IAAI,EAAA,QAAA,EAEZ,QAAQ,EAAA,CACP,CACT;AAED,UAAU,CAAC,WAAW,GAAG,aAAa;;ACXtC;;;;;;;;;;;;;AAaG;AACH,MAAM,UAAU,GAAoB,CAAC,EACjC,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,oBAAoB,GAAG,KAAK,EAC5B,UAAU,GAAG,KAAK,EAClB,QAAQ,GAAG,MAAM,EACjB,SAAS,GAAG,MAAM,EAClB,QAAQ,EACR,SAAS,EACT,YAAY,EAAE,SAAS,GAC1B,KAAI;AACD,IAAA,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,OAAO,EAAE,GACxF,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;IAEzH,IAAI,CAAC,SAAS,EAAE;AAAC,QAAA,OAAO,IAAI;IAAA;IAE5B,OAAO,YAAY,CACfG,IAAA,CAAAE,UAAA,EAAA,EAAA,QAAA,EAAA,CACIL,GAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,IAAI,aAAa,CAAC,eAAe,CAAC,EAClF,OAAO,EAAE,mBAAmB,iBACf,IAAI,EAAA,CACnB,EAEFA,GAAA,CAAA,KAAA,EAAA,EACI,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,QAAQ,gBACF,IAAI,EAAA,iBAAA,EACC,UAAU,EAAA,YAAA,EACf,SAAS,EACrB,QAAQ,EAAE,EAAE,EACZ,SAAS,EAAE,EAAE,CACT,aAAa,CAAC,KAAK,EACnB,UAAU,IAAI,aAAa,CAAC,YAAY,EACxC,UAAU,IAAI,aAAa,CAAC,eAAe,CAC9C,EACD,KAAK,EAAE,OAAO,EAAA,QAAA,EAEdA,GAAA,CAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,EAAA,QAAA,EACpE,QAAQ,GACY,EAAA,CACvB,CAAA,EAAA,CACP,EACH,QAAQ,CAAC,IAAI,CAChB;AACL,CAAC;AAED,UAAU,CAAC,WAAW,GAAG,QAAQ;AAEjC,MAAM,MAAM,GAAG;AACf,MAAM,CAAC,MAAM,GAAG,YAAY;AAC5B,MAAM,CAAC,IAAI,GAAG,UAAU;;AChFjB,MAAM,YAAY,GAAG;;AAExB,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,eAAe,EAAE,SAAS;;AAG1B,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,WAAW,EAAE,SAAS;;AAGtB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,kBAAkB,EAAE,SAAS;AAC7B,IAAA,mBAAmB,EAAE,SAAS;AAC9B,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,SAAS,EAAE,SAAS;;AAGpB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,cAAc,EAAE,SAAS;AACzB,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,oBAAoB,EAAE,SAAS;AAC/B,IAAA,qBAAqB,EAAE,SAAS;AAChC,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,WAAW,EAAE,SAAS;;AAGtB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,YAAY,EAAE,SAAS;;AAGvB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,YAAY,EAAE,SAAS;;AAGvB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,kBAAkB,EAAE,SAAS;AAC7B,IAAA,mBAAmB,EAAE,SAAS;AAC9B,IAAA,SAAS,EAAE,SAAS;;AAGpB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,kBAAkB,EAAE,SAAS;AAC7B,IAAA,mBAAmB,EAAE,SAAS;AAC9B,IAAA,SAAS,EAAE,SAAS;;AAGpB,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,gBAAgB,EAAE,SAAS;AAC3B,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,OAAO,EAAE,SAAS;;AAGlB,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,gBAAgB,EAAE,SAAS;AAC3B,IAAA,MAAM,EAAE,SAAS;;AAGjB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,kBAAkB,EAAE,SAAS;AAC7B,IAAA,QAAQ,EAAE,SAAS;;AAGnB,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,gBAAgB,EAAE,SAAS;AAC3B,IAAA,MAAM,EAAE,SAAS;;AAGjB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,kBAAkB,EAAE,SAAS;AAC7B,IAAA,QAAQ,EAAE,SAAS;;AAGnB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,kBAAkB,EAAE,SAAS;AAC7B,IAAA,mBAAmB,EAAE,SAAS;;AAG9B,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,iBAAiB,EAAE,SAAS;;AAG5B,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,YAAY,EAAE,SAAS;CAC1B;;AC1HD;;AAEG;AACI,MAAM,gBAAgB,GAAG;IAC5B,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,QAAQ;CAClB;;ACVD;;AAEG;AACI,MAAM,aAAa,GAAG;IACzB,KAAK,EAAE,UAAU;IACjB,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,MAAM;CAChB;;ACdD;;AAEG;AACI,MAAM,eAAe,GAAG;AAC3B,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,IAAI,EAAE,GAAG;CACZ;;ACTD;;AAEG;AACI,MAAM,eAAe,GAAG;AAC3B,IAAA,IAAI,EAAE,CAAC;AACP,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,KAAK,EAAE,CAAC;CACX;;ACTD;;AAEG;AACI,MAAM,YAAY,GAAG;AACxB,IAAA,IAAI,EAAE,CAAC;AACP,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,IAAI,EAAE,CAAC;CACV;;ACXD;;AAEG;AACI,MAAM,WAAW,GAAG;AACvB,IAAA,IAAI,EAAE,GAAG;IACT,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,SAAS;IACb,KAAK,EAAE,MAAM;AACb,IAAA,IAAI,EAAE,QAAQ;CACjB;;ACZD;;AAEG;AACI,MAAM,YAAY,GAAG;AACxB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,EAAE,EAAE,+BAA+B;AACnC,IAAA,EAAE,EAAE,+DAA+D;AACnE,IAAA,EAAE,EAAE,kEAAkE;AACtE,IAAA,EAAE,EAAE,oEAAoE;AACxE,IAAA,EAAE,EAAE,qEAAqE;AACzE,IAAA,KAAK,EAAE,qCAAqC;AAC5C,IAAA,KAAK,EAAE,qCAAqC;AAC5C,IAAA,KAAK,EAAE,iCAAiC;AACxC,IAAA,MAAM,EAAE,iFAAiF;CAC5F;;ACdD;;AAEG;AACI,MAAM,YAAY,GAAG;AACxB,IAAA,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,UAAU;IACjB,EAAE,EAAE,SAAS;IACb,KAAK,EAAE,UAAU;IACjB,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,MAAM;IACV,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,MAAM;CAChB;;AChBD;;AAEG;AACI,MAAM,eAAe,GAAG;AAC3B,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,MAAM,EAAE,gBAAgB;AACxB,IAAA,IAAI,EAAE,gBAAgB;CACzB;;ACPD;;AAEG;AACI,MAAM,WAAW,GAAG;IACvB,MAAM,EAAE,EAAE;AACV,IAAA,IAAI,EAAE,CAAC;AACP,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,KAAK,EAAE,IAAI;CACd;;ACAM,MAAM,UAAU,GAAG,WAAW,CAAC;AAClC,IAAA,MAAM,EAAE,YAAY;AACpB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,QAAQ,EAAE,aAAa;AACvB,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,WAAW,EAAE,gBAAgB;AAChC,CAAA;;ACzBM,MAAM,WAAW,GAAG;;AAEvB,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,eAAe,EAAE,SAAS;;AAG1B,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,WAAW,EAAE,SAAS;;AAGtB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,kBAAkB,EAAE,SAAS;AAC7B,IAAA,mBAAmB,EAAE,SAAS;AAC9B,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,SAAS,EAAE,SAAS;;AAGpB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,cAAc,EAAE,SAAS;AACzB,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,oBAAoB,EAAE,SAAS;AAC/B,IAAA,qBAAqB,EAAE,SAAS;AAChC,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,WAAW,EAAE,SAAS;;AAGtB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,YAAY,EAAE,SAAS;;AAGvB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,YAAY,EAAE,SAAS;;AAGvB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,kBAAkB,EAAE,SAAS;AAC7B,IAAA,mBAAmB,EAAE,SAAS;AAC9B,IAAA,SAAS,EAAE,SAAS;;AAGpB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,kBAAkB,EAAE,SAAS;AAC7B,IAAA,mBAAmB,EAAE,SAAS;AAC9B,IAAA,SAAS,EAAE,SAAS;;AAGpB,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,gBAAgB,EAAE,SAAS;AAC3B,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,OAAO,EAAE,SAAS;;AAGlB,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,gBAAgB,EAAE,SAAS;AAC3B,IAAA,MAAM,EAAE,SAAS;;AAGjB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,kBAAkB,EAAE,SAAS;AAC7B,IAAA,QAAQ,EAAE,SAAS;;AAGnB,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,gBAAgB,EAAE,SAAS;AAC3B,IAAA,MAAM,EAAE,SAAS;;AAGjB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,kBAAkB,EAAE,SAAS;AAC7B,IAAA,QAAQ,EAAE,SAAS;;AAGnB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,kBAAkB,EAAE,SAAS;AAC7B,IAAA,mBAAmB,EAAE,SAAS;;AAG9B,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,iBAAiB,EAAE,SAAS;;AAG5B,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,YAAY,EAAE,SAAS;CAC1B;;AC7GM,MAAM,SAAS,GAAG,WAAW,CAAC;AACjC,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,QAAQ,EAAE,aAAa;AACvB,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,WAAW,EAAE,gBAAgB;AAChC,CAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/resources/Icons.ts","../../src/constants/animation.constants.ts","../../src/components/actions/_common/buttonVariants.styles.ts","../../src/components/actions/button/Button.styles.ts","../../src/components/foundation/icon/Icon.styles.ts","../../src/components/foundation/icon/Icon.tsx","../../src/components/foundation/text/utils/getTextVariantStyles.utils.ts","../../src/components/foundation/text/Text.styles.ts","../../src/components/foundation/text/utils/getTruncateTextStyles.utils.ts","../../src/components/foundation/text/utils/parseTextWithBold.utils.ts","../../src/components/foundation/text/Text.tsx","../../src/components/actions/button/Button.tsx","../../src/components/actions/icon-button/IconButton.styles.ts","../../src/components/actions/icon-button/IconButton.tsx","../../src/components/actions/link/Link.styles.ts","../../src/components/actions/link/Link.tsx","../../src/components/data-display/badge/utils/getBadgeColorStyles.utils.ts","../../src/components/data-display/badge/Badge.styles.ts","../../src/components/data-display/badge/Badge.tsx","../../src/hooks/components/overlay/use-tooltip-position/useTooltipPosition.ts","../../src/components/overlay/tooltip/Tooltip.styles.ts","../../src/components/overlay/tooltip/Tooltip.tsx","../../src/components/data-display/info-bubble/InfoBubble.styles.ts","../../src/components/data-display/info-bubble/InfoBubble.tsx","../../src/components/foundation/skeleton/Skeleton.styles.ts","../../src/components/foundation/skeleton/Skeleton.tsx","../../src/components/forms/form/Form.tsx","../../src/components/forms/switch/Switch.styles.ts","../../src/hooks/common/use-controllable-state/useControllableState.ts","../../src/components/forms/switch/utils/useSwitch.utils.ts","../../src/components/forms/switch/Switch.tsx","../../src/components/layout/box/Box.styles.ts","../../src/components/layout/box/Box.tsx","../../src/components/layout/stack/Stack.tsx","../../src/components/forms/text-field/TextField.styles.ts","../../src/hooks/common/use-merged-refs/useMergedRefs.ts","../../src/components/forms/text-field/utils/useTextField.utils.ts","../../src/components/forms/text-field/TextField.tsx","../../src/components/overlay/menu/Menu.styles.ts","../../src/hooks/common/use-key-press/useKeyPress.ts","../../src/hooks/components/overlay/use-menu-position/useMenuPosition.ts","../../src/components/overlay/menu/utils/useMenu.utils.ts","../../src/components/overlay/menu/menu-group/MenuGroup.styles.ts","../../src/components/overlay/menu/menu-group/MenuGroup.tsx","../../src/components/overlay/menu/menu-item/MenuItem.styles.ts","../../src/components/overlay/menu/menu-item/MenuItem.tsx","../../src/components/overlay/menu/Menu.tsx","../../src/components/forms/select/select-trigger/SelectTrigger.styles.ts","../../src/components/forms/select/select-trigger/SelectTrigger.tsx","../../src/components/forms/select/utils/useSelect.utils.ts","../../src/components/forms/select/Select.tsx","../../src/components/layout/card/Card.styles.ts","../../src/components/layout/card/card-header/CardHeader.tsx","../../src/components/layout/card/card-body/CardBody.tsx","../../src/components/layout/card/Card.tsx","../../src/components/layout/grid/Grid.styles.ts","../../src/components/layout/grid/Grid.tsx","../../src/components/overlay/alert/Alert.context.ts","../../src/components/overlay/alert/alert-title/AlertTitle.tsx","../../src/components/overlay/alert/alert-body/AlertBody.tsx","../../src/components/overlay/alert/Alert.tsx","../../src/constants/breakpoints.constants.ts","../../src/constants/app.constants.ts","../../src/components/overlay/dialog/Dialog.styles.ts","../../src/components/overlay/dialog/Dialog.context.ts","../../src/hooks/common/use-transition-render/useTransitionRender.ts","../../src/hooks/common/use-body-scroll-lock/useBodyScrollLock.ts","../../src/hooks/common/use-focus-trap/useFocusTrap.ts","../../src/components/overlay/dialog/utils/useDialog.utils.ts","../../src/components/overlay/dialog/dialog-header/DialogHeader.tsx","../../src/components/overlay/dialog/dialog-body/DialogBody.tsx","../../src/components/overlay/dialog/Dialog.tsx","../../src/theme/_palettes/lightPalette.ts","../../src/theme/values/themeBreakpoints.ts","../../src/theme/values/themeFontSize.ts","../../src/theme/values/themeFontWeight.ts","../../src/theme/values/themeLineHeight.ts","../../src/theme/values/themeOpacity.ts","../../src/theme/values/themeRadius.ts","../../src/theme/values/themeShadows.ts","../../src/theme/values/themeSpacing.ts","../../src/theme/values/themeTransition.ts","../../src/theme/values/themeZIndex.ts","../../src/theme/themes/lightTheme.ts","../../src/theme/_palettes/darkPalette.ts","../../src/theme/themes/darkTheme.ts"],"sourcesContent":["import AlertErrorIcon from '@resources/assets/icons/AlertErrorIcon.svg?react'\r\nimport AlertInfoIcon from '@resources/assets/icons/AlertInfoIcon.svg?react'\r\nimport AlertSuccessIcon from '@resources/assets/icons/AlertSuccessIcon.svg?react'\r\nimport AlertWarningIcon from '@resources/assets/icons/AlertWarningIcon.svg?react'\r\nimport ChevronDownIcon from '@resources/assets/icons/ChevronDownIcon.svg?react'\r\nimport CloseIcon from '@resources/assets/icons/CloseIcon.svg?react'\r\nimport EyeIcon from '@resources/assets/icons/EyeIcon.svg?react'\r\nimport EyeSlashIcon from '@resources/assets/icons/EyeSlashIcon.svg?react'\r\nimport SpinnerIcon from '@resources/assets/icons/SpinnerIcon.svg?react'\r\n\r\nexport { SpinnerIcon }\r\n\r\nexport const IconRegistry = {\r\n AlertErrorIcon,\r\n AlertInfoIcon,\r\n AlertSuccessIcon,\r\n AlertWarningIcon,\r\n ChevronDownIcon,\r\n CloseIcon,\r\n EyeIcon,\r\n EyeSlashIcon,\r\n SpinnerIcon,\r\n} as const\r\n","import { keyframes } from '@aurora-ds/theme'\r\n\r\nexport const spinAnimation = keyframes({\r\n '0%': { transform: 'rotate(0deg)' },\r\n '100%': { transform: 'rotate(360deg)' },\r\n})\r\n\r\nexport const skeletonShimmerAnimation = keyframes({\r\n '0%': { backgroundPosition: '100% 50%' },\r\n '100%': { backgroundPosition: '0% 50%' },\r\n})\r\n","import { type CompoundVariant, type StyleWithPseudos } from '@aurora-ds/theme'\r\n\r\nimport type { ButtonColor, ButtonVariant } from '@components/actions/button/button.types'\r\nimport type { ButtonIntentMap } from '@components/actions/_common/buttonIntent.types'\r\n\r\nconst APPEARANCES: ButtonVariant[] = ['contained', 'outlined', 'text']\r\n\r\nexport const buildActionButtonVariantBase = (theme: {\r\n colors: Record<string, string>\r\n shadows: Record<string, string>\r\n transition: Record<string, string>\r\n opacity: Record<string, number>\r\n radius: Record<string, string>\r\n}): StyleWithPseudos => ({\r\n position: 'relative',\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n boxSizing: 'border-box',\r\n border: '1px solid transparent',\r\n borderRadius: theme.radius.md,\r\n fontFamily: 'inherit',\r\n userSelect: 'none',\r\n cursor: 'pointer',\r\n outline: 'none',\r\n transition: `background-color ${theme.transition.fast}, border-color ${theme.transition.fast}, color ${theme.transition.fast}, box-shadow ${theme.transition.fast}`,\r\n ':focus-visible': { boxShadow: theme.shadows.focus },\r\n ':disabled': { cursor: 'not-allowed', opacity: theme.opacity.high, boxShadow: 'none' },\r\n})\r\n\r\nexport const buildActionButtonCompoundVariants = (theme: {\r\n colors: Record<string, string>\r\n shadows: Record<string, string>\r\n}): CompoundVariant<{ color: Record<ButtonColor, StyleWithPseudos>; variant: Record<ButtonVariant, StyleWithPseudos> }>[] => {\r\n const c = theme.colors\r\n\r\n const intents: ButtonIntentMap = {\r\n primary: {\r\n main: c.primaryMain, hover: c.primaryHover, active: c.primaryActive,\r\n on: c.primaryOn, subtle: c.primarySubtle, subtleHover: c.primarySubtleHover, subtleActive: c.primarySubtleActive,\r\n fg: c.primaryMain, fgHover: c.primaryHover, border: c.primaryMain,\r\n },\r\n secondary: {\r\n main: c.secondaryMain, hover: c.secondaryHover, active: c.secondaryActive,\r\n on: c.secondaryOn, subtle: c.secondarySubtle, subtleHover: c.secondarySubtleHover, subtleActive: c.secondarySubtleActive,\r\n fg: c.secondaryOn, fgHover: c.secondaryOn, border: c.borderStrong,\r\n },\r\n neutral: {\r\n main: c.defaultMain, hover: c.defaultHover, active: c.defaultActive,\r\n on: c.textInverse, subtle: c.defaultSubtle, subtleHover: c.defaultSubtleHover, subtleActive: c.defaultSubtleActive,\r\n fg: c.defaultMain, fgHover: c.defaultHover, border: c.defaultMain,\r\n },\r\n info: {\r\n main: c.infoMain, hover: c.infoHover, active: c.infoActive,\r\n on: c.infoOn, subtle: c.infoSubtle, subtleHover: c.infoSubtleHover, subtleActive: c.infoSubtleActive,\r\n fg: c.infoMain, fgHover: c.infoHover, border: c.infoMain,\r\n },\r\n success: {\r\n main: c.successMain, hover: c.successHover, active: c.successActive,\r\n on: c.successOn, subtle: c.successSubtle, subtleHover: c.successSubtleHover, subtleActive: c.successSubtleActive,\r\n fg: c.successMain, fgHover: c.successHover, border: c.successMain,\r\n },\r\n warning: {\r\n main: c.warningMain, hover: c.warningHover, active: c.warningActive,\r\n on: c.warningOn, subtle: c.warningSubtle, subtleHover: c.warningSubtleHover, subtleActive: c.warningSubtleActive,\r\n fg: c.warningMain, fgHover: c.warningHover, border: c.warningMain,\r\n },\r\n error: {\r\n main: c.errorMain, hover: c.errorHover, active: c.errorActive,\r\n on: c.errorOn, subtle: c.errorSubtle, subtleHover: c.errorSubtleHover, subtleActive: c.errorSubtleActive,\r\n fg: c.errorMain, fgHover: c.errorHover, border: c.errorMain,\r\n },\r\n }\r\n\r\n const appearanceStyles = (intent: ButtonIntentMap[ButtonColor], appearance: ButtonVariant): StyleWithPseudos => {\r\n if (appearance === 'contained') {\r\n return {\r\n backgroundColor: intent.main,\r\n borderColor: intent.main,\r\n color: intent.on,\r\n boxShadow: theme.shadows.xs,\r\n ':hover:not(:disabled)': { backgroundColor: intent.hover, borderColor: intent.hover, boxShadow: theme.shadows.sm },\r\n ':active:not(:disabled)': { backgroundColor: intent.active, borderColor: intent.active, boxShadow: theme.shadows.none },\r\n }\r\n }\r\n\r\n if (appearance === 'outlined') {\r\n return {\r\n backgroundColor: 'transparent',\r\n borderColor: intent.border,\r\n color: intent.fg,\r\n ':hover:not(:disabled)': { backgroundColor: intent.subtleHover, color: intent.fgHover },\r\n ':active:not(:disabled)': { backgroundColor: intent.subtleActive, borderColor: intent.active, color: intent.active },\r\n }\r\n }\r\n\r\n return {\r\n backgroundColor: 'transparent',\r\n borderColor: 'transparent',\r\n color: intent.fg,\r\n ':hover:not(:disabled)': { backgroundColor: intent.subtleHover, color: intent.fgHover },\r\n ':active:not(:disabled)': { backgroundColor: intent.subtleActive, color: intent.active },\r\n }\r\n }\r\n\r\n return (Object.keys(intents) as ButtonColor[]).flatMap((color) =>\r\n APPEARANCES.map((appearance) => ({\r\n color,\r\n variant: appearance,\r\n styles: appearanceStyles(intents[color], appearance),\r\n }))\r\n ) as CompoundVariant<{ color: Record<ButtonColor, StyleWithPseudos>; variant: Record<ButtonVariant, StyleWithPseudos> }>[]\r\n}\r\n","import { createStyles, createVariants } from '@aurora-ds/theme'\r\n\r\nimport { spinAnimation } from '@constants/animation.constants'\r\nimport { buildActionButtonCompoundVariants, buildActionButtonVariantBase } from '@components/actions/_common/buttonVariants.styles'\r\n\r\nexport const BUTTON_VARIANTS = createVariants((theme) => ({\r\n base: buildActionButtonVariantBase(theme),\r\n variants: {\r\n size: {\r\n sm: { height: '2rem', padding: `0 ${theme.spacing.sm}`, fontSize: theme.fontSize.xs },\r\n md: { height: '2.5rem', padding: `0 ${theme.spacing.md}`, fontSize: theme.fontSize.sm },\r\n lg: { height: '3rem', padding: `0 ${theme.spacing.lg}`, fontSize: theme.fontSize.md },\r\n },\r\n // Appearance/color styling is provided entirely by compoundVariants.\r\n variant: { contained: {}, outlined: {}, text: {} },\r\n color: { primary: {}, secondary: {}, neutral: {}, info: {}, success: {}, warning: {}, error: {} },\r\n },\r\n defaultVariants: { size: 'md', variant: 'contained', color: 'primary' },\r\n compoundVariants: buildActionButtonCompoundVariants(theme),\r\n}), { id: 'button' })\r\n\r\nexport const BUTTON_STYLES = createStyles({\r\n /** Inner wrapper holding icons + label, centered by the button. */\r\n content: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n gap: '0.5em',\r\n },\r\n /** Hidden (but keeps width) while loading. */\r\n contentHidden: { visibility: 'hidden' },\r\n /** Centers the spinner icon over the button content while loading. */\r\n spinnerWrap: {\r\n position: 'absolute',\r\n inset: 0,\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n /** Spinning animation applied to the SpinnerIcon wrapper. */\r\n spinnerIcon: {\r\n animation: `${spinAnimation} 0.75s linear infinite`,\r\n '@media (prefers-reduced-motion: reduce)': { animation: 'none' },\r\n },\r\n}, { id: 'button-extra' })\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport type { IconStyleParams } from '@components/foundation/icon/Icon.props'\r\n\r\nexport const ICON_STYLES = createStyles((theme) => ({\r\n root: ({ size, strokeColor, fill, backgroundColor, padding, borderRadius }: IconStyleParams) => ({\r\n boxSizing: 'content-box' as const,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n overflow: 'hidden',\r\n transition: `color ${theme.transition.fast}, fill ${theme.transition.fast}`,\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 backgroundColor: backgroundColor ? theme.colors[backgroundColor] : undefined,\r\n padding: padding ? theme.spacing[padding] : 0,\r\n borderRadius: theme.radius[borderRadius ?? 'none'],\r\n '& svg': {\r\n color: strokeColor ? theme.colors[strokeColor] : undefined,\r\n stroke: strokeColor ? theme.colors[strokeColor] : undefined,\r\n },\r\n '& svg [fill=\"currentColor\"], & svg[fill=\"currentColor\"]': {\r\n fill: fill ? theme.colors[fill] : undefined,\r\n },\r\n }),\r\n}))\r\n","import { ICON_STYLES } from '@components/foundation/icon/Icon.styles'\r\nimport type { IconProps } from '@components/foundation/icon/Icon.props'\r\nimport type { FC } from 'react'\r\n\r\n/**\r\n * Renders an SVG icon inside a theme-aware wrapper.\r\n *\r\n * @example <Icon icon={MenuIcon} size='md' strokeColor='primaryMain' />\r\n * @example <Icon icon={CloseIcon} strokeColor='textInverse' backgroundColor='primaryMain' padding='sm' borderRadius='full' />\r\n */\r\nconst Icon: FC<IconProps> = (\r\n {\r\n ref,\r\n icon: SvgIcon,\r\n size,\r\n strokeColor,\r\n fill,\r\n backgroundColor,\r\n padding,\r\n borderRadius,\r\n className,\r\n role,\r\n ...rest\r\n }\r\n) => {\r\n const generatedClassName = ICON_STYLES.root({ size, strokeColor, fill, backgroundColor, padding, borderRadius })\r\n const mergedClassName = className ? `${generatedClassName} ${className}` : generatedClassName\r\n const isLabelled = Boolean(rest['aria-label'] || rest['aria-labelledby'])\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className={mergedClassName}\r\n aria-hidden={isLabelled ? undefined : true}\r\n role={role ?? (isLabelled ? 'img' : 'presentation')}\r\n {...rest}\r\n >\r\n <SvgIcon\r\n width={'100%'}\r\n height={'100%'}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nIcon.displayName = 'Icon'\r\n\r\nexport default Icon\r\n","import type { TextVariants, TextVariantStyle } from '@components/foundation/text/text.types'\r\nimport type { Theme } from '@theme/theme.types'\r\n\r\n/** Returns the baseline font styles for each text variant. */\r\nexport const getTextVariantStyles = (theme: Theme): Record<TextVariants, TextVariantStyle> => ({\r\n h1: {\r\n tag: 'h1',\r\n fontSize: theme.fontSize['3xl'],\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['2xl'],\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.xl,\r\n fontWeight: theme.fontWeight.semibold,\r\n lineHeight: theme.lineHeight.tight,\r\n },\r\n h4: {\r\n tag: 'h4',\r\n fontSize: theme.fontSize.lg,\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.md,\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 strong: {\r\n tag: 'strong',\r\n fontSize: theme.fontSize.sm,\r\n fontWeight: theme.fontWeight.bold,\r\n lineHeight: theme.lineHeight.normal,\r\n },\r\n})\r\n","import { createStyles } from '@aurora-ds/theme'\r\nimport { getTextVariantStyles } from '@components/foundation/text/utils/getTextVariantStyles.utils'\r\n\r\nimport type { TextStyleParams } from '@components/foundation/text/Text.props'\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 fontWeight,\r\n lineHeight,\r\n fontFamily,\r\n underline,\r\n strikethrough,\r\n italic,\r\n noWrap,\r\n preserveWhitespace,\r\n width,\r\n textTransform,\r\n letterSpacing,\r\n textAlign,\r\n }: TextStyleParams) => {\r\n const textDecoration =\r\n underline && strikethrough\r\n ? 'underline line-through'\r\n : underline\r\n ? 'underline'\r\n : strikethrough\r\n ? 'line-through'\r\n : undefined\r\n\r\n return {\r\n margin: 0,\r\n padding: 0,\r\n fontSize: fontSize ? theme.fontSize[fontSize] : variantStyles[variant].fontSize,\r\n fontWeight: fontWeight ? theme.fontWeight[fontWeight] : variantStyles[variant].fontWeight,\r\n lineHeight: lineHeight ? theme.lineHeight[lineHeight] : variantStyles[variant].lineHeight,\r\n color: color ? theme.colors[color] : 'inherit',\r\n cursor: 'inherit',\r\n ...(width !== undefined && { width }),\r\n ...(fontFamily && { fontFamily }),\r\n ...(textTransform && { textTransform }),\r\n ...(letterSpacing !== undefined && { letterSpacing }),\r\n ...(textAlign && { textAlign }),\r\n ...(italic && { fontStyle: 'italic' }),\r\n // noWrap and preserveWhitespace are mutually exclusive; noWrap wins.\r\n // Truncation (maxLines/truncate) injects whiteSpace via inline style — both are ignored there.\r\n ...(noWrap\r\n ? { whiteSpace: 'nowrap' as const }\r\n : preserveWhitespace\r\n ? { whiteSpace: 'pre-wrap' as const }\r\n : {}),\r\n ...(textDecoration && {\r\n textDecoration,\r\n ...(underline && { textUnderlineOffset: '3px' }),\r\n }),\r\n }\r\n },\r\n }\r\n})\r\n","/**\r\n * Returns inline CSS styles to truncate text with an ellipsis.\r\n *\r\n * - 1 line → classic `white-space: nowrap` + `text-overflow: ellipsis` (best browser support)\r\n * - n lines → `-webkit-line-clamp` (supported in all modern browsers)\r\n */\r\nexport const getTruncateTextStyles = (maxLines: number) => {\r\n if (maxLines === 1) {\r\n return {\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap' as const,\r\n }\r\n }\r\n\r\n return {\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 whiteSpace: 'normal' as const,\r\n overflowWrap: 'break-word' as const,\r\n wordBreak: 'break-word' as const,\r\n }\r\n}\r\n","import { createElement, Fragment, type 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 { TEXT_STYLES } from '@components/foundation/text/Text.styles'\r\nimport { getTextVariantStyles } from '@components/foundation/text/utils/getTextVariantStyles.utils'\r\nimport { getTruncateTextStyles } from '@components/foundation/text/utils/getTruncateTextStyles.utils'\r\nimport { parseTextWithBold } from '@components/foundation/text/utils/parseTextWithBold.utils'\r\nimport { createElement, type FC } from 'react'\r\n\r\nimport type { TextProps } from '@components/foundation/text/Text.props'\r\n\r\n/**\r\n * Renders a semantic HTML text element with theme-aware styling.\r\n *\r\n * @example <Text variant='h1' color='text.primary'>Title</Text>\r\n * @example <Text variant='p' maxLines={2}>Long content…</Text>\r\n * @example <Text variant='h1' as='h2'>h1 styles, h2 semantics</Text>\r\n * @example <Text variant='label' htmlFor='email'>Email</Text>\r\n * @example <Text>Hello **world**!</Text> // → Hello <strong>world</strong>!\r\n */\r\nconst Text: FC<TextProps> = (\r\n {\r\n ref,\r\n children,\r\n variant = 'span',\r\n as,\r\n color,\r\n fontSize,\r\n fontWeight,\r\n lineHeight,\r\n fontFamily,\r\n width,\r\n textTransform,\r\n letterSpacing,\r\n textAlign,\r\n underline,\r\n strikethrough,\r\n italic,\r\n maxLines,\r\n truncate,\r\n noWrap,\r\n preserveWhitespace,\r\n htmlFor,\r\n className,\r\n style,\r\n ...rest\r\n }\r\n) => {\r\n const theme = useTheme()\r\n const variantStyles = getTextVariantStyles(theme)\r\n\r\n const effectiveLines = truncate ? 1 : maxLines\r\n const tag = as ?? variantStyles[variant].tag\r\n const parsedChildren = parseTextWithBold(children)\r\n const truncateStyles = effectiveLines ? getTruncateTextStyles(effectiveLines) : undefined\r\n\r\n const generatedClassName = TEXT_STYLES.root({\r\n variant,\r\n color,\r\n fontSize,\r\n fontWeight,\r\n lineHeight,\r\n fontFamily,\r\n underline,\r\n strikethrough,\r\n italic,\r\n noWrap: effectiveLines ? false : noWrap,\r\n preserveWhitespace,\r\n width,\r\n textTransform,\r\n letterSpacing,\r\n textAlign,\r\n })\r\n\r\n const mergedClassName = className ? `${generatedClassName} ${className}` : generatedClassName\r\n const mergedStyle = truncateStyles ? { ...truncateStyles, ...style } : style\r\n\r\n return createElement(\r\n tag,\r\n {\r\n ref,\r\n className: mergedClassName,\r\n style: mergedStyle,\r\n ...(tag === 'label' && htmlFor !== undefined ? { htmlFor } : {}),\r\n ...rest,\r\n },\r\n parsedChildren\r\n )\r\n}\r\n\r\nexport default Text\r\n","import { cx } from '@aurora-ds/theme'\r\n\r\nimport { SpinnerIcon } from '@resources/Icons'\r\nimport { BUTTON_STYLES, BUTTON_VARIANTS } from '@components/actions/button/Button.styles'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\n\r\nimport type { Theme } from '@theme/theme.types'\r\nimport type { ButtonProps } from '@components/actions/button/Button.props'\r\nimport type { ButtonSize } from '@components/actions/button/button.types'\r\nimport type { FC } from 'react'\r\n\r\n/** Maps the button size to a Text font-size token so the label scales with the button. */\r\nconst LABEL_FONT_SIZE: Record<ButtonSize, keyof Theme['fontSize']> = {\r\n sm: 'xs',\r\n md: 'sm',\r\n lg: 'md',\r\n}\r\n\r\n/** Maps the button size to an Icon size token. */\r\nconst ICON_SIZE: Record<ButtonSize, keyof Theme['fontSize']> = {\r\n sm: 'sm',\r\n md: 'md',\r\n lg: 'lg',\r\n}\r\n\r\n/**\r\n * Theme-aware button built on `createVariants`.\r\n *\r\n * @example <Button label='Save' onClick={save} />\r\n * @example <Button label='Delete' variant='outlined' color='error' startIcon={IconRegistry.CloseIcon} />\r\n * @example <Button label='Submitting…' color='success' isLoading width='100%' />\r\n */\r\nconst Button: FC<ButtonProps> = (\r\n {\r\n ref,\r\n variant = 'contained',\r\n color = 'primary',\r\n size = 'md',\r\n width,\r\n flexGrow,\r\n flexShrink,\r\n isLoading = false,\r\n startIcon: StartIcon,\r\n endIcon: EndIcon,\r\n label,\r\n className,\r\n type = 'button',\r\n disabled,\r\n style,\r\n ...rest\r\n }\r\n) => {\r\n const isDisabled = disabled || isLoading\r\n const iconSize = ICON_SIZE[size]\r\n\r\n const rootClassName = BUTTON_VARIANTS({ variant, color, size }, className)\r\n const mergedStyle = {\r\n ...style,\r\n ...(width !== undefined ? { width } : {}),\r\n ...(flexGrow !== undefined ? { flexGrow } : {}),\r\n ...(flexShrink !== undefined ? { flexShrink } : {}),\r\n }\r\n\r\n return (\r\n <button\r\n ref={ref}\r\n type={type}\r\n className={rootClassName}\r\n disabled={isDisabled}\r\n aria-busy={isLoading || undefined}\r\n style={mergedStyle}\r\n {...rest}\r\n >\r\n {isLoading && (\r\n <span className={BUTTON_STYLES.spinnerWrap}>\r\n <Icon\r\n icon={SpinnerIcon}\r\n size={iconSize}\r\n className={BUTTON_STYLES.spinnerIcon}\r\n />\r\n </span>\r\n )}\r\n\r\n <span className={cx(BUTTON_STYLES.content, isLoading && BUTTON_STYLES.contentHidden)}>\r\n {StartIcon && (\r\n <Icon\r\n icon={StartIcon}\r\n size={iconSize}\r\n />\r\n )}\r\n\r\n {label && (\r\n <Text\r\n variant={'span'}\r\n fontSize={LABEL_FONT_SIZE[size]}\r\n fontWeight={'medium'}\r\n lineHeight={'none'}\r\n >\r\n {label}\r\n </Text>\r\n )}\r\n\r\n {EndIcon && (\r\n <Icon\r\n icon={EndIcon}\r\n size={iconSize}\r\n />\r\n )}\r\n </span>\r\n </button>\r\n )\r\n}\r\n\r\nButton.displayName = 'Button'\r\n\r\nexport default Button\r\n","import { createStyles, createVariants } from '@aurora-ds/theme'\r\n\r\nimport { spinAnimation } from '@constants/animation.constants'\r\nimport { buildActionButtonCompoundVariants, buildActionButtonVariantBase } from '@components/actions/_common/buttonVariants.styles'\r\n\r\nexport const ICON_BUTTON_VARIANTS = createVariants((theme) => ({\r\n base: buildActionButtonVariantBase(theme),\r\n variants: {\r\n size: {\r\n sm: { width: '2rem', height: '2rem', padding: '0' },\r\n md: { width: '2.5rem', height: '2.5rem', padding: '0' },\r\n lg: { width: '3rem', height: '3rem', padding: '0' },\r\n },\r\n variant: { contained: {}, outlined: {}, text: {} },\r\n color: { primary: {}, secondary: {}, neutral: {}, info: {}, success: {}, warning: {}, error: {} },\r\n },\r\n defaultVariants: { size: 'md', variant: 'contained', color: 'primary' },\r\n compoundVariants: buildActionButtonCompoundVariants(theme),\r\n}), { id: 'icon-button' })\r\n\r\nexport const ICON_BUTTON_STYLES = createStyles({\r\n /** Spinning animation applied to the SpinnerIcon. */\r\n spinnerIcon: {\r\n animation: `${spinAnimation} 0.75s linear infinite`,\r\n '@media (prefers-reduced-motion: reduce)': { animation: 'none' },\r\n },\r\n /** Hidden (but keeps size) while loading. */\r\n iconHidden: { visibility: 'hidden' },\r\n /** Centers the spinner icon absolutely over the button while loading. */\r\n spinnerWrap: {\r\n position: 'absolute',\r\n inset: 0,\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n}, { id: 'icon-button-extra' })\r\n","import { cx } from '@aurora-ds/theme'\r\n\r\nimport { SpinnerIcon } from '@resources/Icons'\r\nimport { ICON_BUTTON_STYLES, ICON_BUTTON_VARIANTS } from '@components/actions/icon-button/IconButton.styles'\r\nimport { Icon } from '@components/foundation/icon'\r\n\r\nimport type { Theme } from '@theme/theme.types'\r\nimport type { ButtonSize } from '@components/actions/button/button.types'\r\nimport type { IconButtonProps } from '@components/actions/icon-button/IconButton.props'\r\nimport type { FC } from 'react'\r\n\r\n/** Maps the icon-button size to an Icon size token. */\r\nconst ICON_SIZE: Record<ButtonSize, keyof Theme['fontSize']> = {\r\n sm: 'sm',\r\n md: 'md',\r\n lg: 'lg',\r\n}\r\n\r\n/**\r\n * Square icon-only button.\r\n * `ariaLabel` is mandatory since there is no visible text.\r\n *\r\n * @example <IconButton icon={CloseIcon} ariaLabel={t('common.close')} />\r\n * @example <IconButton icon={DeleteIcon} ariaLabel={t('actions.delete')} variant='outlined' color='error' />\r\n * @example <IconButton icon={SaveIcon} ariaLabel={t('actions.save')} isLoading />\r\n */\r\nconst IconButton: FC<IconButtonProps> = (\r\n {\r\n ref,\r\n icon: IconComponent,\r\n ariaLabel,\r\n variant = 'contained',\r\n color = 'primary',\r\n size = 'md',\r\n isLoading = false,\r\n className,\r\n type = 'button',\r\n disabled,\r\n ...rest\r\n }\r\n) => {\r\n const isDisabled = disabled || isLoading\r\n const iconSize = ICON_SIZE[size]\r\n\r\n const rootClassName = ICON_BUTTON_VARIANTS(\r\n { variant, color, size },\r\n className\r\n )\r\n\r\n return (\r\n <button\r\n ref={ref}\r\n type={type}\r\n className={rootClassName}\r\n disabled={isDisabled}\r\n aria-label={ariaLabel}\r\n aria-busy={isLoading || undefined}\r\n {...rest}\r\n >\r\n {isLoading && (\r\n <span className={ICON_BUTTON_STYLES.spinnerWrap}>\r\n <Icon\r\n icon={SpinnerIcon}\r\n size={iconSize}\r\n className={ICON_BUTTON_STYLES.spinnerIcon}\r\n />\r\n </span>\r\n )}\r\n\r\n <Icon\r\n icon={IconComponent}\r\n size={iconSize}\r\n className={cx(isLoading && ICON_BUTTON_STYLES.iconHidden)}\r\n />\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\nimport type { LinkStyleParams } from '@components/actions/link/Link.props'\r\n\r\nexport const LINK_STYLES = createStyles((theme) => ({\r\n root: ({ underline = 'hover' }: LinkStyleParams) => ({\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n gap: '0.25em',\r\n color: theme.colors.linkMain,\r\n fontFamily: 'inherit',\r\n fontSize: 'inherit',\r\n lineHeight: 'inherit',\r\n fontWeight: 'inherit',\r\n textDecoration: underline === 'always' ? 'underline' : 'none',\r\n cursor: 'pointer',\r\n borderRadius: theme.radius.xs,\r\n transition: `color ${theme.transition.fast}`,\r\n ':hover:not([aria-disabled=\"true\"])': {\r\n color: theme.colors.linkHover,\r\n textDecoration: underline !== 'none' ? 'underline' : 'none',\r\n },\r\n ':active:not([aria-disabled=\"true\"])': {\r\n color: theme.colors.linkActive,\r\n },\r\n ':focus-visible': {\r\n outline: `2px solid ${theme.colors.linkMain}`,\r\n outlineOffset: '2px',\r\n },\r\n '&[aria-disabled=\"true\"]': {\r\n color: theme.colors.linkDisabled,\r\n cursor: 'not-allowed',\r\n textDecoration: 'none',\r\n },\r\n }),\r\n icon: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n flexShrink: 0,\r\n width: '1em',\r\n height: '1em',\r\n },\r\n}), { id: 'link' })\r\n","import { cx } from '@aurora-ds/theme'\n\nimport { LINK_STYLES } from '@components/actions/link/Link.styles'\n\nimport type { LinkProps } from '@components/actions/link/Link.props'\nimport type { FC, MouseEvent, KeyboardEvent } from 'react'\n\n/**\n * Theme-aware anchor element with optional icons and underline control.\n *\n * @example <Link href='/about'>About</Link>\n * @example <Link href='https://example.com' external>External site</Link>\n * @example <Link href='/profile' underline='always' startIcon={UserIcon}>Profile</Link>\n * @example <Link href='/terms' underline='none'>Terms</Link>\n */\nconst Link: FC<LinkProps> = (\n {\n ref,\n underline = 'hover',\n external = false,\n disabled = false,\n startIcon: StartIcon,\n endIcon: EndIcon,\n children,\n className,\n onClick,\n onKeyDown,\n ...rest\n }\n) => {\n const handleClick = (e: MouseEvent<HTMLAnchorElement>) => {\n if (disabled) {\n e.preventDefault()\n return\n }\n onClick?.(e)\n }\n\n // Prevents Enter navigation when disabled; satisfies jsx-a11y/click-events-have-key-events.\n const handleKeyDown = (e: KeyboardEvent<HTMLAnchorElement>) => {\n if (disabled && e.key === 'Enter') {\n e.preventDefault()\n }\n onKeyDown?.(e)\n }\n\n return (\n <a\n ref={ref}\n className={cx(LINK_STYLES.root({ underline }), className)}\n aria-disabled={disabled || undefined}\n tabIndex={disabled ? -1 : undefined}\n target={external ? '_blank' : undefined}\n rel={external ? 'noopener noreferrer' : undefined}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n {...rest}\n >\n {StartIcon && (\n <span\n className={LINK_STYLES.icon}\n aria-hidden={true}\n >\n <StartIcon\n width={'1em'}\n height={'1em'}\n />\n </span>\n )}\n\n {children}\n\n {EndIcon && (\n <span\n className={LINK_STYLES.icon}\n aria-hidden={true}\n >\n <EndIcon\n width={'1em'}\n height={'1em'}\n />\n </span>\n )}\n </a>\n )\n}\n\nLink.displayName = 'Link'\n\nexport default Link\n","import type { BadgeColor, BadgeVariant } from '@components/data-display/badge/badge.types'\r\n\r\nconst BADGE_VARIANTS_LIST: BadgeVariant[] = ['filled', 'outlined', 'subtle', 'subtleOutlined']\r\n\r\ntype BadgeIntent = {\r\n bg: string\r\n on: string\r\n fg: string\r\n fgStrong: string\r\n subtle: string\r\n border: string\r\n}\r\n\r\n/**\r\n * Builds compound variants combining `variant` × `color` for the Badge.\r\n * Returns one entry per (color, variant) pair with static color styles.\r\n */\r\nexport const buildBadgeCompoundVariants = (theme: { colors: Record<string, string> }) => {\r\n const c = theme.colors\r\n\r\n const intents: Record<BadgeColor, BadgeIntent> = {\r\n default: {\r\n bg: c.defaultMain,\r\n on: c.textInverse,\r\n fg: c.defaultMain,\r\n fgStrong: c.defaultHover,\r\n subtle: c.defaultSubtle,\r\n border: c.defaultMain,\r\n },\r\n primary: {\r\n bg: c.primaryMain,\r\n on: c.primaryOn,\r\n fg: c.primaryMain,\r\n fgStrong: c.primaryHover,\r\n subtle: c.primarySubtle,\r\n border: c.primaryMain,\r\n },\r\n secondary: {\r\n bg: c.secondaryMain,\r\n on: c.secondaryOn,\r\n fg: c.secondaryOn,\r\n fgStrong: c.secondaryOn,\r\n subtle: c.secondarySubtle,\r\n border: c.borderStrong,\r\n },\r\n success: {\r\n bg: c.successMain,\r\n on: c.successOn,\r\n fg: c.successMain,\r\n fgStrong: c.successHover,\r\n subtle: c.successSubtle,\r\n border: c.successMain,\r\n },\r\n warning: {\r\n bg: c.warningMain,\r\n on: c.warningOn,\r\n fg: c.warningMain,\r\n fgStrong: c.warningHover,\r\n subtle: c.warningSubtle,\r\n border: c.warningMain,\r\n },\r\n error: {\r\n bg: c.errorMain,\r\n on: c.errorOn,\r\n fg: c.errorMain,\r\n fgStrong: c.errorHover,\r\n subtle: c.errorSubtle,\r\n border: c.errorMain,\r\n },\r\n info: {\r\n bg: c.infoMain,\r\n on: c.infoOn,\r\n fg: c.infoMain,\r\n fgStrong: c.infoHover,\r\n subtle: c.infoSubtle,\r\n border: c.infoMain,\r\n },\r\n orange: {\r\n bg: c.orangeMain,\r\n on: c.orangeOn,\r\n fg: c.orangeMain,\r\n fgStrong: c.orangeHover,\r\n subtle: c.orangeSubtle,\r\n border: c.orangeMain,\r\n },\r\n pink: {\r\n bg: c.pinkMain,\r\n on: c.pinkOn,\r\n fg: c.pinkMain,\r\n fgStrong: c.pinkHover,\r\n subtle: c.pinkSubtle,\r\n border: c.pinkMain,\r\n },\r\n violet: {\r\n bg: c.violetMain,\r\n on: c.violetOn,\r\n fg: c.violetMain,\r\n fgStrong: c.violetHover,\r\n subtle: c.violetSubtle,\r\n border: c.violetMain,\r\n },\r\n }\r\n\r\n const getColorStyles = (intent: BadgeIntent, appearance: BadgeVariant) => {\r\n if (appearance === 'filled') {\r\n return {\r\n backgroundColor: intent.bg,\r\n borderColor: intent.bg,\r\n color: intent.on,\r\n }\r\n }\r\n\r\n if (appearance === 'outlined') {\r\n return {\r\n backgroundColor: 'transparent',\r\n borderColor: intent.border,\r\n color: intent.fgStrong,\r\n }\r\n }\r\n\r\n if (appearance === 'subtleOutlined') {\r\n return {\r\n backgroundColor: intent.subtle,\r\n borderColor: intent.border,\r\n color: intent.fgStrong,\r\n }\r\n }\r\n\r\n // subtle\r\n return {\r\n backgroundColor: intent.subtle,\r\n borderColor: 'transparent',\r\n color: intent.fgStrong,\r\n }\r\n }\r\n\r\n return (Object.keys(intents) as BadgeColor[]).flatMap((color) =>\r\n BADGE_VARIANTS_LIST.map((variant) => ({\r\n color,\r\n variant,\r\n styles: getColorStyles(intents[color], variant),\r\n }))\r\n )\r\n}\r\n","import { createVariants } from '@aurora-ds/theme'\r\nimport { buildBadgeCompoundVariants } from '@components/data-display/badge/utils/getBadgeColorStyles.utils'\r\n\r\nexport const BADGE_VARIANTS = createVariants((theme) => ({\r\n base: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n gap: theme.spacing.xs,\r\n boxSizing: 'border-box' as const,\r\n borderRadius: theme.radius.full,\r\n border: '1px solid transparent',\r\n fontFamily: 'inherit',\r\n fontWeight: theme.fontWeight.medium,\r\n lineHeight: theme.lineHeight.none,\r\n whiteSpace: 'nowrap' as const,\r\n userSelect: 'none' as const,\r\n },\r\n variants: {\r\n size: {\r\n sm: {\r\n height: '1.25rem',\r\n padding: `0.125rem ${theme.spacing['xs+']}`,\r\n fontSize: theme.fontSize['2xs'],\r\n },\r\n md: {\r\n height: '1.5rem',\r\n padding: `0.1875rem ${theme.spacing.sm}`,\r\n fontSize: theme.fontSize.xs,\r\n },\r\n lg: {\r\n height: '2rem',\r\n padding: `0.25rem ${theme.spacing.md}`,\r\n fontSize: theme.fontSize.sm,\r\n },\r\n },\r\n // Appearance and color styling is handled entirely by compoundVariants.\r\n variant: { filled: {}, outlined: {}, subtle: {}, subtleOutlined: {} },\r\n color: {\r\n default: {},\r\n primary: {},\r\n secondary: {},\r\n success: {},\r\n warning: {},\r\n error: {},\r\n info: {},\r\n orange: {},\r\n pink: {},\r\n violet: {},\r\n },\r\n },\r\n defaultVariants: { size: 'md', variant: 'subtle', color: 'default' },\r\n compoundVariants: buildBadgeCompoundVariants(theme),\r\n}), { id: 'badge' })\r\n","import { useTheme } from '@aurora-ds/theme'\r\nimport { BADGE_VARIANTS } from '@components/data-display/badge/Badge.styles'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\n\r\nimport type { BadgeProps } from '@components/data-display/badge/Badge.props'\r\nimport type { BadgeSize } from '@components/data-display/badge/badge.types'\r\nimport type { Theme } from '@theme/theme.types'\r\nimport type { CSSProperties, FC } from 'react'\r\n\r\n/** Maps badge size to an Icon size token. */\r\nconst ICON_SIZE: Record<BadgeSize, keyof Theme['fontSize']> = {\r\n sm: 'xs',\r\n md: 'xs',\r\n lg: 'sm',\r\n}\r\n\r\n/** Maps badge size to a Text font-size token. */\r\nconst LABEL_FONT_SIZE: Record<BadgeSize, keyof Theme['fontSize']> = {\r\n sm: '2xs',\r\n md: 'xs',\r\n lg: 'sm',\r\n}\r\n\r\n/** Diameter of the dot indicator per size. */\r\nconst DOT_SIZE: Record<BadgeSize, string> = {\r\n sm: '0.375rem',\r\n md: '0.5rem',\r\n lg: '0.625rem',\r\n}\r\n\r\n/**\r\n * Compact label used to convey status, category or count information.\r\n *\r\n * @example <Badge color='success'>Active</Badge>\r\n * @example <Badge variant='outlined' color='error'>Critical</Badge>\r\n * @example <Badge variant='filled' color='primary' size='sm' startIcon={StarIcon}>Featured</Badge>\r\n * @example <Badge dot color='warning' />\r\n */\r\nconst Badge: FC<BadgeProps> = (\r\n {\r\n ref,\r\n variant = 'subtle',\r\n color = 'default',\r\n size = 'md',\r\n borderRadius = 'sm',\r\n startIcon: StartIcon,\r\n endIcon: EndIcon,\r\n icon,\r\n dot = false,\r\n children,\r\n className,\r\n style,\r\n ...rest\r\n }\r\n) => {\r\n const theme = useTheme()\r\n const rootClassName = BADGE_VARIANTS({ variant, color, size }, className)\r\n const resolvedBorderRadius = borderRadius ? theme.radius[borderRadius] : undefined\r\n const effectiveStartIcon = StartIcon ?? icon\r\n\r\n if (dot) {\r\n const dotStyle: CSSProperties = {\r\n width: DOT_SIZE[size],\r\n height: DOT_SIZE[size],\r\n minWidth: DOT_SIZE[size],\r\n padding: 0,\r\n border: 'none',\r\n borderRadius: resolvedBorderRadius ?? '9999px',\r\n }\r\n return (\r\n <span\r\n ref={ref}\r\n className={rootClassName}\r\n style={{ ...dotStyle, ...style }}\r\n aria-hidden={true}\r\n {...rest}\r\n />\r\n )\r\n }\r\n\r\n return (\r\n <span\r\n ref={ref}\r\n className={rootClassName}\r\n style={{ ...(resolvedBorderRadius ? { borderRadius: resolvedBorderRadius } : {}), ...style }}\r\n {...rest}\r\n >\r\n {effectiveStartIcon && (\r\n <Icon\r\n icon={effectiveStartIcon}\r\n size={ICON_SIZE[size]}\r\n />\r\n )}\r\n\r\n {children !== undefined && children !== null && (\r\n <Text\r\n variant={'span'}\r\n fontSize={LABEL_FONT_SIZE[size]}\r\n fontWeight={'medium'}\r\n lineHeight={'none'}\r\n >\r\n {children}\r\n </Text>\r\n )}\r\n\r\n {EndIcon && (\r\n <Icon\r\n icon={EndIcon}\r\n size={ICON_SIZE[size]}\r\n />\r\n )}\r\n </span>\r\n )\r\n}\r\n\r\nBadge.displayName = 'Badge'\r\n\r\nexport default Badge\r\n","import { useCallback, useEffect, useRef, useState } from 'react'\r\nimport type { UseTooltipPositionOptions, UseTooltipPositionResult, TooltipPosition } from '@hooks/components/overlay/use-tooltip-position/useTooltipPosition.types'\r\nimport type { TooltipPlacement } from '@components/overlay/tooltip/Tooltip.props'\r\n\r\nconst VIEWPORT_MARGIN_PX = 8\r\nconst GAP_PX = 6\r\nconst FADE_IN_DELAY_MS = 10\r\n\r\n/**\r\n * Computes and continuously updates the `position: fixed` coordinates for a\r\n * tooltip bubble, clamping it to the viewport on all four sides.\r\n *\r\n * Positioning strategy (two-pass):\r\n * - First pass: mount the bubble at the preferred position.\r\n * - Second pass (rAF): read the actual rendered size and clamp all sides.\r\n *\r\n * Handles:\r\n * - All four placements: top, bottom, left, right.\r\n * - Screen-edge clamping so the tooltip never overflows any side.\r\n * - Fade-in animation (sets `isFadingIn` on next tick to trigger CSS transition).\r\n * - Mouse/focus event handlers for show/hide.\r\n */\r\nexport const useTooltipPosition = ({\r\n placement,\r\n}: UseTooltipPositionOptions): UseTooltipPositionResult => {\r\n const wrapperRef = useRef<HTMLDivElement>(null)\r\n const bubbleRef = useRef<HTMLDivElement>(null)\r\n const [isVisible, setIsVisible] = useState(false)\r\n const [isFadingIn, setIsFadingIn] = useState(false)\r\n const [position, setPosition] = useState<TooltipPosition>({ top: 0, left: 0 })\r\n const showTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null)\r\n\r\n const computePosition = useCallback(\r\n (currentPlacement: TooltipPlacement = placement) => {\r\n const trigger = wrapperRef.current\r\n const bubble = bubbleRef.current\r\n if (!trigger) {return}\r\n\r\n const rect = trigger.getBoundingClientRect()\r\n const bubbleW = bubble?.offsetWidth ?? 0\r\n const bubbleH = bubble?.offsetHeight ?? 0\r\n\r\n let top = 0\r\n let left = 0\r\n\r\n switch (currentPlacement) {\r\n case 'top':\r\n top = rect.top - bubbleH - GAP_PX\r\n left = rect.left + rect.width / 2 - bubbleW / 2\r\n break\r\n case 'bottom':\r\n top = rect.bottom + GAP_PX\r\n left = rect.left + rect.width / 2 - bubbleW / 2\r\n break\r\n case 'left':\r\n top = rect.top + rect.height / 2 - bubbleH / 2\r\n left = rect.left - bubbleW - GAP_PX\r\n break\r\n case 'right':\r\n top = rect.top + rect.height / 2 - bubbleH / 2\r\n left = rect.right + GAP_PX\r\n break\r\n }\r\n\r\n // Clamp horizontally\r\n const maxLeft = window.innerWidth - bubbleW - VIEWPORT_MARGIN_PX\r\n left = Math.max(VIEWPORT_MARGIN_PX, Math.min(left, maxLeft))\r\n\r\n // Clamp vertically\r\n const maxTop = window.innerHeight - bubbleH - VIEWPORT_MARGIN_PX\r\n top = Math.max(VIEWPORT_MARGIN_PX, Math.min(top, maxTop))\r\n\r\n setPosition({ top, left })\r\n },\r\n [placement],\r\n )\r\n\r\n const show = useCallback(() => {\r\n setIsVisible(true)\r\n // Defer isFadingIn so the initial render (opacity 0) is committed first,\r\n // then the transition fires on the next paint.\r\n showTimerRef.current = setTimeout(() => {\r\n setIsFadingIn(true)\r\n requestAnimationFrame(() => computePosition())\r\n }, FADE_IN_DELAY_MS)\r\n }, [computePosition])\r\n\r\n const hide = useCallback(() => {\r\n if (showTimerRef.current !== null) {\r\n clearTimeout(showTimerRef.current)\r\n showTimerRef.current = null\r\n }\r\n setIsVisible(false)\r\n setIsFadingIn(false)\r\n }, [])\r\n\r\n // Re-compute on scroll or resize while visible\r\n useEffect(() => {\r\n if (!isVisible) {return}\r\n const handleUpdate = () => requestAnimationFrame(() => computePosition())\r\n window.addEventListener('scroll', handleUpdate, true)\r\n window.addEventListener('resize', handleUpdate)\r\n return () => {\r\n window.removeEventListener('scroll', handleUpdate, true)\r\n window.removeEventListener('resize', handleUpdate)\r\n }\r\n }, [isVisible, computePosition])\r\n\r\n // Second-pass: once the bubble mounts, recompute with actual dimensions\r\n useEffect(() => {\r\n if (isVisible && bubbleRef.current) {\r\n const id = requestAnimationFrame(() => computePosition())\r\n return () => cancelAnimationFrame(id)\r\n }\r\n }, [isVisible, computePosition])\r\n\r\n // Cleanup timers on unmount\r\n useEffect(() => {\r\n return () => {\r\n if (showTimerRef.current !== null) {clearTimeout(showTimerRef.current)}\r\n }\r\n }, [])\r\n\r\n return {\r\n wrapperRef,\r\n bubbleRef,\r\n isVisible,\r\n isFadingIn,\r\n position,\r\n handleMouseEnter: show,\r\n handleMouseLeave: hide,\r\n handleFocus: show,\r\n handleBlur: hide,\r\n handleClick: hide,\r\n }\r\n}\r\n","import { createStyles } from '@aurora-ds/theme'\r\nimport type { TooltipPlacement } from '@components/overlay/tooltip/Tooltip.props'\r\n\r\ntype TooltipBubbleStyleParams = {\r\n placement: TooltipPlacement\r\n isFadingIn: boolean\r\n width: number\r\n}\r\n\r\ntype CaretStyleParams = {\r\n placement: TooltipPlacement\r\n}\r\n\r\nexport const TOOLTIP_STYLES = createStyles((theme) => {\r\n const CARET_OUTER: Record<TooltipPlacement, object> = {\r\n top: { bottom: -6, left: '50%', transform: 'translateX(-50%)', borderLeft: '6px solid transparent', borderRight: '6px solid transparent', borderTop: `6px solid ${theme.colors.borderMain}` },\r\n bottom: { top: -6, left: '50%', transform: 'translateX(-50%)', borderLeft: '6px solid transparent', borderRight: '6px solid transparent', borderBottom: `6px solid ${theme.colors.borderMain}` },\r\n left: { right: -6, top: '50%', transform: 'translateY(-50%)', borderTop: '6px solid transparent', borderBottom: '6px solid transparent', borderLeft: `6px solid ${theme.colors.borderMain}` },\r\n right: { left: -6, top: '50%', transform: 'translateY(-50%)', borderTop: '6px solid transparent', borderBottom: '6px solid transparent', borderRight: `6px solid ${theme.colors.borderMain}` },\r\n }\r\n\r\n const CARET_INNER: Record<TooltipPlacement, object> = {\r\n top: { bottom: -5, left: '50%', transform: 'translateX(-50%)', borderLeft: '5px solid transparent', borderRight: '5px solid transparent', borderTop: `5px solid ${theme.colors.surfacePaper}` },\r\n bottom: { top: -5, left: '50%', transform: 'translateX(-50%)', borderLeft: '5px solid transparent', borderRight: '5px solid transparent', borderBottom: `5px solid ${theme.colors.surfacePaper}` },\r\n left: { right: -5, top: '50%', transform: 'translateY(-50%)', borderTop: '5px solid transparent', borderBottom: '5px solid transparent', borderLeft: `5px solid ${theme.colors.surfacePaper}` },\r\n right: { left: -5, top: '50%', transform: 'translateY(-50%)', borderTop: '5px solid transparent', borderBottom: '5px solid transparent', borderRight: `5px solid ${theme.colors.surfacePaper}` },\r\n }\r\n\r\n return {\r\n wrapper: {\r\n display: 'flex',\r\n width: '100%',\r\n },\r\n wrapperInline: {\r\n display: 'inline-flex',\r\n width: 'auto',\r\n },\r\n bubble: ({ isFadingIn, width }: TooltipBubbleStyleParams) => ({\r\n position: 'fixed' as const,\r\n opacity: isFadingIn ? 1 : 0,\r\n transform: `scale(${isFadingIn ? 1 : 0.95})`,\r\n transformOrigin: 'center',\r\n transition: `opacity ${theme.transition.fast}, transform ${theme.transition.fast}`,\r\n backgroundColor: theme.colors.surfacePaper,\r\n border: `1px solid ${theme.colors.borderMain}`,\r\n borderRadius: theme.radius.md,\r\n padding: theme.spacing.sm,\r\n // filter: drop-shadow follows the painted shape including CSS-triangle carets,\r\n // unlike box-shadow which is clipped to the rectangular border-box.\r\n filter: theme.shadows.dropSm,\r\n pointerEvents: 'none' as const,\r\n maxWidth: width,\r\n whiteSpace: 'normal' as const,\r\n wordBreak: 'break-word' as const,\r\n overflowWrap: 'break-word' as const,\r\n zIndex: theme.zIndex.tooltip,\r\n color: theme.colors.textPrimary,\r\n }),\r\n caretOuter: ({ placement }: CaretStyleParams) => ({\r\n position: 'absolute' as const,\r\n width: 0,\r\n height: 0,\r\n ...CARET_OUTER[placement],\r\n }),\r\n caretInner: ({ placement }: CaretStyleParams) => ({\r\n position: 'absolute' as const,\r\n width: 0,\r\n height: 0,\r\n ...CARET_INNER[placement],\r\n }),\r\n }\r\n})\r\n","import { cloneElement, isValidElement, useId, type FC } from 'react'\r\nimport { createPortal } from 'react-dom'\r\n\r\nimport { useTooltipPosition } from '@hooks/components/overlay/use-tooltip-position/useTooltipPosition'\r\nimport { TOOLTIP_STYLES } from '@components/overlay/tooltip/Tooltip.styles'\r\nimport { Text } from '@components/foundation/text'\r\n\r\nimport type { TooltipProps } from '@components/overlay/tooltip/Tooltip.props'\r\n\r\n/** Returns true when the primary input is a touch/pointer-coarse device (mobile). */\r\nconst isTouchDevice = (): boolean =>\r\n typeof window !== 'undefined' && window.matchMedia('(pointer: coarse)').matches\r\n\r\nconst DEFAULT_WIDTH = 200\r\n\r\n/**\r\n * Tooltip\r\n *\r\n * A hover/focus-triggered tooltip rendered in a portal to avoid clipping\r\n * by parent `overflow: hidden` containers. Computes its fixed position from\r\n * the trigger element's bounding rect and clamps it to the viewport on all sides.\r\n *\r\n * **Placements:** `top` | `bottom` | `left` | `right` (default)\r\n *\r\n * By default the tooltip is disabled on touch/mobile devices (`pointer: coarse`).\r\n * Set `disableOnMobile={false}` to keep it active on mobile (e.g. InfoBubble).\r\n *\r\n * @example\r\n * ```tsx\r\n * <Tooltip label=\"Save document\" placement=\"top\">\r\n * <Button>Save</Button>\r\n * </Tooltip>\r\n * ```\r\n */\r\nconst Tooltip: FC<TooltipProps> = ({\r\n children,\r\n label,\r\n placement = 'right',\r\n disabled = false,\r\n inline = false,\r\n withArrow = false,\r\n width = DEFAULT_WIDTH,\r\n hideOnClick = true,\r\n disableOnMobile = true,\r\n}) => {\r\n const tooltipId = useId()\r\n const isEffectivelyDisabled = disabled || (disableOnMobile && isTouchDevice())\r\n\r\n const {\r\n wrapperRef,\r\n bubbleRef,\r\n isVisible,\r\n isFadingIn,\r\n position,\r\n handleMouseEnter,\r\n handleMouseLeave,\r\n handleFocus,\r\n handleBlur,\r\n handleClick,\r\n } = useTooltipPosition({ placement })\r\n\r\n // Inject aria-describedby on the direct child so screen readers associate\r\n // the tooltip text with the focused trigger element. Also forward handleClick\r\n // on the child itself (instead of the wrapper div) to satisfy a11y rules.\r\n const trigger = !isEffectivelyDisabled && isValidElement<Record<string, unknown>>(children)\r\n ? cloneElement(children, {\r\n 'aria-describedby': tooltipId,\r\n ...(hideOnClick && { onClick: handleClick }),\r\n })\r\n : children\r\n\r\n return (\r\n <div\r\n ref={wrapperRef}\r\n className={inline ? TOOLTIP_STYLES.wrapperInline : TOOLTIP_STYLES.wrapper}\r\n onMouseEnter={isEffectivelyDisabled ? undefined : handleMouseEnter}\r\n onMouseLeave={isEffectivelyDisabled ? undefined : handleMouseLeave}\r\n onFocus={isEffectivelyDisabled ? undefined : handleFocus}\r\n onBlur={isEffectivelyDisabled ? undefined : handleBlur}\r\n >\r\n {trigger}\r\n {!isEffectivelyDisabled && isVisible && createPortal(\r\n <div\r\n ref={bubbleRef}\r\n id={tooltipId}\r\n className={TOOLTIP_STYLES.bubble({ placement, isFadingIn, width })}\r\n style={{ top: position.top, left: position.left }}\r\n role={'tooltip'}\r\n aria-live={'polite'}\r\n >\r\n <Text fontSize={'sm'}>\r\n {label}\r\n </Text>\r\n {withArrow && (\r\n <>\r\n <div className={TOOLTIP_STYLES.caretOuter({ placement })} />\r\n <div className={TOOLTIP_STYLES.caretInner({ placement })} />\r\n </>\r\n )}\r\n </div>,\r\n document.body,\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nTooltip.displayName = 'Tooltip'\r\n\r\nexport default Tooltip\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const INFO_BUBBLE_STYLES = createStyles((theme) => ({\r\n trigger: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n cursor: 'pointer',\r\n // Ensure the icon is keyboard-focusable and shows focus ring\r\n outline: 'none',\r\n border: 'none',\r\n aspectRatio: '1 !important',\r\n flexShrink: 0,\r\n backgroundColor: 'transparent',\r\n margin: 0,\r\n padding: theme.spacing.xs,\r\n ':focus-visible': {\r\n boxShadow: theme.shadows.focus,\r\n },\r\n },\r\n}))\r\n","import { type FC } from 'react'\r\nimport { Tooltip } from '@components/overlay/tooltip'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { INFO_BUBBLE_STYLES } from '@components/data-display/info-bubble/InfoBubble.styles'\r\nimport { IconRegistry } from '@resources/Icons'\r\n\r\nimport type { InfoBubbleProps } from '@components/data-display/info-bubble/InfoBubble.props'\r\n\r\n/**\r\n * InfoBubble\r\n *\r\n * An info icon with an attached tooltip. Unlike the regular `Tooltip`, the\r\n * tooltip is **not** disabled on mobile — users can tap the icon to read the\r\n * information on touch devices.\r\n *\r\n * @example\r\n * ```tsx\r\n * <InfoBubble label=\"This field is required for compliance.\" />\r\n * ```\r\n *\r\n * @example\r\n * ```tsx\r\n * <InfoBubble label=\"Detailed explanation\" placement=\"right\" withArrow={false} />\r\n * ```\r\n */\r\nconst InfoBubble: FC<InfoBubbleProps> = ({\r\n label,\r\n placement = 'top',\r\n width = 200,\r\n withArrow = true,\r\n}) => {\r\n return (\r\n <Tooltip\r\n label={label}\r\n placement={placement}\r\n width={width}\r\n withArrow={withArrow}\r\n inline={true}\r\n hideOnClick={false}\r\n disableOnMobile={false}\r\n >\r\n <button\r\n type={'button'}\r\n className={INFO_BUBBLE_STYLES.trigger}\r\n aria-label={label}\r\n tabIndex={0}\r\n >\r\n <Icon\r\n icon={IconRegistry.AlertInfoIcon}\r\n size={'sm'}\r\n strokeColor={'textSecondary'}\r\n />\r\n </button>\r\n </Tooltip>\r\n )\r\n}\r\n\r\nInfoBubble.displayName = 'InfoBubble'\r\n\r\nexport default InfoBubble\r\n","import { createVariants } from '@aurora-ds/theme'\r\n\r\nimport { skeletonShimmerAnimation } from '@constants/animation.constants'\r\n\r\nexport const SKELETON_VARIANTS = createVariants((theme) => ({\r\n base: {\r\n display: 'block',\r\n boxSizing: 'border-box',\r\n backgroundColor: theme.colors.skeletonPrimary,\r\n overflow: 'hidden',\r\n },\r\n variants: {\r\n variant: {\r\n /** Inline-text placeholder: em-relative height, slight vertical scale. */\r\n text: {\r\n borderRadius: theme.radius.sm,\r\n height: '1em',\r\n transform: 'scale(1, 0.6)',\r\n transformOrigin: '0 60%',\r\n width: '100%',\r\n },\r\n /** Fully rounded placeholder for avatars and icons. */\r\n circular: {\r\n borderRadius: theme.radius.full,\r\n },\r\n /** Sharp-cornered placeholder for images and media blocks. */\r\n rectangular: {\r\n borderRadius: '0',\r\n },\r\n /** Softly rounded placeholder for cards and chips. */\r\n rounded: {\r\n borderRadius: theme.radius.md,\r\n },\r\n },\r\n animation: {\r\n /** Sliding gradient highlight from right to left. */\r\n shimmer: {\r\n background: `linear-gradient(90deg, ${theme.colors.skeletonPrimary} 25%, ${theme.colors.skeletonSecondary} 50%, ${theme.colors.skeletonPrimary} 75%)`,\r\n backgroundSize: '400% 100%',\r\n animation: `${skeletonShimmerAnimation} 2.5s linear infinite`,\r\n '@media (prefers-reduced-motion: reduce)': { animation: 'none' },\r\n },\r\n /** No animation. */\r\n none: {},\r\n },\r\n },\r\n defaultVariants: { variant: 'rounded', animation: 'shimmer' },\r\n}), { id: 'skeleton' })\r\n","import { SKELETON_VARIANTS } from '@components/foundation/skeleton/Skeleton.styles'\r\n\r\nimport type { SkeletonProps } from '@components/foundation/skeleton/Skeleton.props'\r\nimport type { FC } from 'react'\r\n\r\n/**\r\n * Block-level placeholder rendered while content is loading.\r\n *\r\n * @example // Text line\r\n * <Skeleton variant='text' width={200} />\r\n *\r\n * @example // Avatar\r\n * <Skeleton variant='circular' width={40} height={40} />\r\n *\r\n * @example // Card thumbnail\r\n * <Skeleton variant='rounded' width='100%' height={160} />\r\n *\r\n * @example // No animation\r\n * <Skeleton variant='rectangular' width='100%' height={80} animation={false} />\r\n */\r\nconst Skeleton: FC<SkeletonProps> = (\r\n {\r\n ref,\r\n variant = 'rectangular',\r\n animation = 'shimmer',\r\n width,\r\n height,\r\n className,\r\n style,\r\n ...rest\r\n }\r\n) => (\r\n <span\r\n ref={ref}\r\n className={SKELETON_VARIANTS(\r\n { variant, animation: animation === false ? 'none' : animation },\r\n className,\r\n )}\r\n style={{ width, height, ...style }}\r\n aria-hidden={true}\r\n {...rest}\r\n />\r\n)\r\n\r\nSkeleton.displayName = 'Skeleton'\r\n\r\nexport default Skeleton\r\n","import type { FC, FormEvent } from 'react'\r\n\r\nimport type { FormProps } from '@components/forms/form/Form.props'\r\n\r\n/**\r\n * Thin wrapper around `<form>`. Prevents the default browser submit and\r\n * delegates to the `onSubmit` callback.\r\n *\r\n * @example\r\n * <Form onSubmit={handleSubmit}>\r\n * <TextField label=\"Email\" />\r\n * <Button type=\"submit\">Send</Button>\r\n * </Form>\r\n */\r\nconst Form: FC<FormProps> = ({\r\n children,\r\n onSubmit,\r\n 'aria-label': ariaLabel,\r\n 'aria-labelledby': ariaLabelledBy,\r\n}) => {\r\n const handleSubmit = (event: FormEvent<HTMLFormElement>) => {\r\n event.preventDefault()\r\n onSubmit(event)\r\n }\r\n\r\n return (\r\n <form\r\n onSubmit={handleSubmit}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n noValidate\r\n >\r\n {children}\r\n </form>\r\n )\r\n}\r\n\r\nForm.displayName = 'Form'\r\n\r\nexport default Form\r\n","import { type CompoundVariant, createStyles, createVariants, type StyleWithPseudos } from '@aurora-ds/theme'\r\n\r\nimport type { SwitchColor } from '@components/forms/switch/switch.types'\r\n\r\n// sm → track 2rem × 1.125rem | thumb 0.875rem | checked left: 1rem\r\n// md → track 2.75rem × 1.5rem | thumb 1.25rem | checked left: 1.375rem\r\n// lg → track 3.5rem × 2rem | thumb 1.75rem | checked left: 1.625rem\r\n\r\nexport const SWITCH_TRACK_VARIANTS = createVariants((theme) => {\r\n const c = theme.colors\r\n\r\n const colorTokens: Record<SwitchColor, string> = {\r\n primary: c.primaryMain,\r\n success: c.successMain,\r\n error: c.errorMain,\r\n warning: c.warningMain,\r\n info: c.infoMain,\r\n neutral: c.defaultMain,\r\n }\r\n\r\n const compoundVariants = (Object.keys(colorTokens) as SwitchColor[]).map((color) => ({\r\n color,\r\n checked: 'true' as const,\r\n disabled: 'false' as const,\r\n styles: { backgroundColor: colorTokens[color] },\r\n })) as CompoundVariant<{\r\n color: Record<SwitchColor, StyleWithPseudos>\r\n size: Record<'sm' | 'md' | 'lg', StyleWithPseudos>\r\n checked: Record<'true' | 'false', StyleWithPseudos>\r\n disabled: Record<'true' | 'false', StyleWithPseudos>\r\n }>[]\r\n\r\n return {\r\n base: {\r\n position: 'relative' as const,\r\n display: 'inline-block',\r\n flexShrink: 0,\r\n borderRadius: theme.radius.full,\r\n backgroundColor: c.disabledMain,\r\n cursor: 'pointer',\r\n transition: `background-color ${theme.transition.fast}, box-shadow ${theme.transition.fast}`,\r\n },\r\n variants: {\r\n size: {\r\n sm: { width: '2rem', height: '1.125rem' },\r\n md: { width: '2.75rem', height: '1.5rem' },\r\n lg: { width: '3.5rem', height: '2rem' },\r\n },\r\n color: {\r\n primary: {}, success: {}, error: {}, warning: {}, info: {}, neutral: {},\r\n },\r\n checked: { true: {}, false: {} },\r\n disabled: { true: { cursor: 'not-allowed' }, false: {} },\r\n },\r\n defaultVariants: { size: 'md', color: 'primary', checked: 'false', disabled: 'false' },\r\n compoundVariants,\r\n }\r\n}, { id: 'switch-track' })\r\n\r\nexport const SWITCH_THUMB_VARIANTS = createVariants((theme) => ({\r\n base: {\r\n position: 'absolute' as const,\r\n top: '0.125rem',\r\n left: '0.125rem',\r\n borderRadius: theme.radius.full,\r\n backgroundColor: theme.colors.textInverse,\r\n boxShadow: theme.shadows.xs,\r\n transition: `left ${theme.transition.fast}`,\r\n pointerEvents: 'none' as const,\r\n },\r\n variants: {\r\n size: {\r\n sm: { width: '0.875rem', height: '0.875rem' },\r\n md: { width: '1.25rem', height: '1.25rem' },\r\n lg: { width: '1.75rem', height: '1.75rem' },\r\n },\r\n checked: { true: {}, false: {} },\r\n },\r\n defaultVariants: { size: 'md', checked: 'false' },\r\n compoundVariants: [\r\n { size: 'sm', checked: 'true', styles: { left: '1rem' } },\r\n { size: 'md', checked: 'true', styles: { left: '1.375rem' } },\r\n { size: 'lg', checked: 'true', styles: { left: '1.625rem' } },\r\n ],\r\n}), { id: 'switch-thumb' })\r\n\r\nexport const SWITCH_STYLES = createStyles((theme) => ({\r\n root: {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n cursor: 'pointer',\r\n userSelect: 'none',\r\n '&[data-disabled]': {\r\n cursor: 'not-allowed',\r\n opacity: theme.opacity.high,\r\n },\r\n },\r\n input: {\r\n position: 'absolute',\r\n width: '1px',\r\n height: '1px',\r\n padding: '0',\r\n margin: '-1px',\r\n overflow: 'hidden',\r\n clip: 'rect(0, 0, 0, 0)',\r\n whiteSpace: 'nowrap',\r\n borderWidth: '0',\r\n },\r\n}), { id: 'switch-extra' })\r\n","import { useCallback, useRef, useState } from 'react'\r\n\r\nimport type {\r\n UseControllableStateOptions,\r\n UseControllableStateResult,\r\n} from '@hooks/common/use-controllable-state/useControllableState.types'\r\n\r\n/**\r\n * Unifies controlled and uncontrolled value handling.\r\n *\r\n * - When `value` is provided the hook is controlled: the returned value mirrors\r\n * it and internal state is never used to render.\r\n * - Otherwise it is uncontrolled: state starts at `defaultValue` and updates\r\n * internally.\r\n *\r\n * In both modes `setValue` calls `onChange` with the next value, so consumers\r\n * have a single code path regardless of mode.\r\n *\r\n * @example\r\n * const [value, setValue] = useControllableState({ value, defaultValue: '', onChange })\r\n */\r\nexport const useControllableState = <T>({\r\n value,\r\n defaultValue,\r\n onChange,\r\n}: UseControllableStateOptions<T>): UseControllableStateResult<T> => {\r\n const isControlled = value !== undefined\r\n const [internalValue, setInternalValue] = useState<T>(defaultValue)\r\n\r\n const onChangeRef = useRef(onChange)\r\n onChangeRef.current = onChange\r\n\r\n const resolvedValue = isControlled ? (value as T) : internalValue\r\n\r\n const setValue = useCallback(\r\n (next: T) => {\r\n if (!isControlled) {\r\n setInternalValue(next)\r\n }\r\n onChangeRef.current?.(next)\r\n },\r\n [isControlled]\r\n )\r\n\r\n return [resolvedValue, setValue]\r\n}\r\n","import { ChangeEvent, InputHTMLAttributes, useCallback, useId } from 'react'\r\n\r\nimport { useControllableState } from '@hooks/common/use-controllable-state/useControllableState'\r\n\r\nimport type { SwitchProps } from '@components/forms/switch/Switch.props'\r\n\r\ntype UseSwitchParams = Pick<SwitchProps, 'id' | 'checked' | 'defaultChecked' | 'onChange'>\r\n\r\ntype UseSwitchReturn = {\r\n /** Resolved id (provided or generated) wiring the label to the input. */\r\n switchId: string\r\n /** Whether the switch is visually checked. */\r\n isChecked: boolean\r\n /** Props to spread on the native input — controlled or uncontrolled, never both. */\r\n inputValueProps: Pick<InputHTMLAttributes<HTMLInputElement>, 'checked' | 'defaultChecked' | 'onChange'>\r\n}\r\n\r\n/**\r\n * Business logic for the Switch component: id resolution and\r\n * controlled/uncontrolled checked state handling.\r\n */\r\nexport const useSwitch = ({ id, checked, defaultChecked, onChange }: UseSwitchParams): UseSwitchReturn => {\r\n const generatedId = useId()\r\n const switchId = id ?? generatedId\r\n\r\n const [isChecked, setChecked] = useControllableState<boolean>({\r\n value: checked,\r\n defaultValue: defaultChecked ?? false,\r\n })\r\n\r\n const handleChange = useCallback(\r\n (event: ChangeEvent<HTMLInputElement>) => {\r\n setChecked(event.target.checked)\r\n onChange?.(event)\r\n },\r\n [setChecked, onChange]\r\n )\r\n\r\n const inputValueProps = checked !== undefined\r\n ? { checked, onChange: handleChange }\r\n : { defaultChecked: defaultChecked ?? false, onChange: handleChange }\r\n\r\n return { switchId, isChecked, inputValueProps }\r\n}\r\n","import { type FC } from 'react'\r\n\r\nimport {\r\n SWITCH_STYLES,\r\n SWITCH_THUMB_VARIANTS,\r\n SWITCH_TRACK_VARIANTS,\r\n} from '@components/forms/switch/Switch.styles'\r\nimport { Text } from '@components/foundation/text'\r\nimport { useSwitch } from '@components/forms/switch/utils/useSwitch.utils'\r\n\r\nimport type { SwitchProps } from '@components/forms/switch/Switch.props'\r\n\r\n/**\r\n * Accessible toggle switch built on `<input type=\"checkbox\" role=\"switch\">`.\r\n *\r\n * Supports controlled (`checked` + `onChange`) and uncontrolled (`defaultChecked`) modes.\r\n *\r\n * @example <Switch label='Enable notifications' defaultChecked />\r\n * @example <Switch checked={isEnabled} onChange={(e) => setEnabled(e.target.checked)} color='success' size='lg' />\r\n */\r\nconst Switch: FC<SwitchProps> = (\r\n {\r\n ref,\r\n label,\r\n size = 'md',\r\n color = 'primary',\r\n id,\r\n checked,\r\n defaultChecked,\r\n disabled,\r\n onChange,\r\n ...rest\r\n }\r\n) => {\r\n const { switchId, isChecked, inputValueProps } = useSwitch({ id, checked, defaultChecked, onChange })\r\n const checkedVariant = isChecked ? 'true' : 'false'\r\n\r\n return (\r\n <label\r\n htmlFor={switchId}\r\n className={SWITCH_STYLES.root}\r\n data-disabled={disabled || undefined}\r\n >\r\n <span className={SWITCH_TRACK_VARIANTS({ size, color, checked: checkedVariant, disabled: disabled ? 'true' : 'false' })}>\r\n <input\r\n ref={ref}\r\n id={switchId}\r\n type={'checkbox'}\r\n role={'switch'}\r\n disabled={disabled}\r\n className={SWITCH_STYLES.input}\r\n {...inputValueProps}\r\n {...rest}\r\n />\r\n <span\r\n aria-hidden={'true'}\r\n className={SWITCH_THUMB_VARIANTS({ size, checked: checkedVariant })}\r\n />\r\n </span>\r\n\r\n {label !== undefined && (\r\n <Text\r\n variant={'span'}\r\n fontSize={'sm'}\r\n >\r\n {label}\r\n </Text>\r\n )}\r\n </label>\r\n )\r\n}\r\n\r\nSwitch.displayName = 'Switch'\r\n\r\nexport default Switch\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport type { Theme } from '@theme/theme.types'\r\nimport type { BoxStyleProps } from '@components/layout/box/Box.props'\r\n\r\nexport const BOX_STYLES = createStyles((theme) => ({\r\n root: ({\r\n // Display\r\n display,\r\n // Dimensions\r\n width, height, minWidth, maxWidth, minHeight, maxHeight,\r\n // Padding\r\n padding, paddingTop, paddingRight, paddingBottom, paddingLeft, px, py,\r\n // Margin\r\n margin, marginTop, marginRight, marginBottom, marginLeft, mx, my,\r\n // Flex / grid container\r\n gap, rowGap, columnGap,\r\n flexDirection, flexWrap, alignItems, justifyContent,\r\n gridTemplateColumns, gridTemplateRows,\r\n // Flex / grid item\r\n flex, flexGrow, flexShrink, flexBasis,\r\n alignSelf, justifySelf, gridColumn, gridRow, order,\r\n // Position\r\n position, top, right, bottom, left, inset, zIndex,\r\n // Overflow\r\n overflow, overflowX, overflowY,\r\n // Appearance\r\n backgroundColor, color, borderRadius, boxShadow,\r\n border, borderColor, borderWidth, borderStyle, textAlign, cursor, opacity,\r\n }: BoxStyleProps) => {\r\n // Local casts: our token types are structurally identical to the aurora theme sub-objects.\r\n const sp = theme.spacing as Record<keyof Theme['spacing'], string>\r\n const cl = theme.colors as Record<keyof Theme['colors'], string>\r\n const rd = theme.radius as Record<keyof Theme['radius'], string>\r\n const sh = theme.shadows as Record<keyof Theme['shadows'], string>\r\n const zi = theme.zIndex as Record<keyof Theme['zIndex'], number>\r\n\r\n return {\r\n boxSizing: 'border-box' as const,\r\n\r\n // Display\r\n ...(display !== undefined && { display }),\r\n\r\n // Dimensions\r\n ...(width !== undefined && { width }),\r\n ...(height !== undefined && { height }),\r\n ...(minWidth !== undefined && { minWidth }),\r\n ...(maxWidth !== undefined && { maxWidth }),\r\n ...(minHeight !== undefined && { minHeight }),\r\n ...(maxHeight !== undefined && { maxHeight }),\r\n\r\n // Padding — shorthands first, explicit per-side props override (last key wins).\r\n ...(px !== undefined && { paddingLeft: sp[px], paddingRight: sp[px] }),\r\n ...(py !== undefined && { paddingTop: sp[py], paddingBottom: sp[py] }),\r\n ...(padding !== undefined && { padding: sp[padding] }),\r\n ...(paddingTop !== undefined && { paddingTop: sp[paddingTop] }),\r\n ...(paddingRight !== undefined && { paddingRight: sp[paddingRight] }),\r\n ...(paddingBottom !== undefined && { paddingBottom: sp[paddingBottom] }),\r\n ...(paddingLeft !== undefined && { paddingLeft: sp[paddingLeft] }),\r\n\r\n // Margin\r\n ...(mx !== undefined && { marginLeft: sp[mx], marginRight: sp[mx] }),\r\n ...(my !== undefined && { marginTop: sp[my], marginBottom: sp[my] }),\r\n ...(margin !== undefined && { margin: sp[margin] }),\r\n ...(marginTop !== undefined && { marginTop: sp[marginTop] }),\r\n ...(marginRight !== undefined && { marginRight: sp[marginRight] }),\r\n ...(marginBottom !== undefined && { marginBottom: sp[marginBottom] }),\r\n ...(marginLeft !== undefined && { marginLeft: sp[marginLeft] }),\r\n\r\n // Flex / grid container\r\n ...(gap !== undefined && { gap: sp[gap] }),\r\n ...(rowGap !== undefined && { rowGap: sp[rowGap] }),\r\n ...(columnGap !== undefined && { columnGap: sp[columnGap] }),\r\n ...(flexDirection !== undefined && { flexDirection }),\r\n ...(flexWrap !== undefined && { flexWrap }),\r\n ...(alignItems !== undefined && { alignItems }),\r\n ...(justifyContent !== undefined && { justifyContent }),\r\n ...(gridTemplateColumns !== undefined && { gridTemplateColumns }),\r\n ...(gridTemplateRows !== undefined && { gridTemplateRows }),\r\n\r\n // Flex / grid item\r\n ...(flex !== undefined && { flex }),\r\n ...(flexGrow !== undefined && { flexGrow }),\r\n ...(flexShrink !== undefined && { flexShrink }),\r\n ...(flexBasis !== undefined && { flexBasis }),\r\n ...(alignSelf !== undefined && { alignSelf }),\r\n ...(justifySelf !== undefined && { justifySelf }),\r\n ...(gridColumn !== undefined && { gridColumn }),\r\n ...(gridRow !== undefined && { gridRow }),\r\n ...(order !== undefined && { order }),\r\n\r\n // Position\r\n ...(position !== undefined && { position }),\r\n ...(top !== undefined && { top }),\r\n ...(right !== undefined && { right }),\r\n ...(bottom !== undefined && { bottom }),\r\n ...(left !== undefined && { left }),\r\n ...(inset !== undefined && { inset }),\r\n ...(zIndex !== undefined && { zIndex: zi[zIndex] }),\r\n\r\n // Overflow\r\n ...(overflow !== undefined && { overflow }),\r\n ...(overflowX !== undefined && { overflowX }),\r\n ...(overflowY !== undefined && { overflowY }),\r\n\r\n // Appearance\r\n ...(backgroundColor !== undefined && { backgroundColor: cl[backgroundColor] }),\r\n ...(color !== undefined && { color: cl[color] }),\r\n ...(borderRadius !== undefined && { borderRadius: rd[borderRadius] }),\r\n ...(boxShadow !== undefined && { boxShadow: sh[boxShadow] }),\r\n ...(border !== undefined && { border }),\r\n ...(borderColor !== undefined && { borderColor: cl[borderColor] }),\r\n ...(borderWidth !== undefined && { borderWidth }),\r\n ...(borderStyle !== undefined && { borderStyle }),\r\n ...(textAlign !== undefined && { textAlign }),\r\n ...(cursor !== undefined && { cursor }),\r\n ...(opacity !== undefined && { opacity }),\r\n }\r\n },\r\n}))\r\n","import { cx } from '@aurora-ds/theme'\r\n\r\nimport { BOX_STYLES } from '@components/layout/box/Box.styles'\r\n\r\nimport type { BoxProps } from '@components/layout/box/Box.props'\r\nimport type { FC } from 'react'\r\n\r\n/**\r\n * A plain `div` enriched with convenient, token-aware style props.\r\n *\r\n * Spacing / color / radius / shadow / z-index props accept theme tokens only\r\n * (e.g. `padding='md'`, `backgroundColor='surfacePaper'`).\r\n * Dimensions and position offsets accept any CSS value.\r\n * All native `div` attributes are forwarded, and `ref` points to the element.\r\n *\r\n * @example <Box padding='md' backgroundColor='surfacePaper' borderRadius='lg'>Content</Box>\r\n * @example <Box display='flex' gap='sm' alignItems='center'>…</Box>\r\n */\r\nconst Box: FC<BoxProps> = (\r\n {\r\n ref,\r\n display,\r\n width, height, minWidth, maxWidth, minHeight, maxHeight,\r\n padding, paddingTop, paddingRight, paddingBottom, paddingLeft, px, py,\r\n margin, marginTop, marginRight, marginBottom, marginLeft, mx, my,\r\n gap, rowGap, columnGap,\r\n flexDirection, flexWrap, alignItems, justifyContent, gridTemplateColumns, gridTemplateRows,\r\n flex, flexGrow, flexShrink, flexBasis, alignSelf, justifySelf, gridColumn, gridRow, order,\r\n position, top, right, bottom, left, inset, zIndex,\r\n overflow, overflowX, overflowY,\r\n backgroundColor, color, borderRadius, boxShadow,\r\n border, borderColor, borderWidth, borderStyle, textAlign, cursor, opacity,\r\n style,\r\n className,\r\n children,\r\n ...rest\r\n }\r\n) => {\r\n const generatedClassName = BOX_STYLES.root({\r\n display,\r\n width, height, minWidth, maxWidth, minHeight, maxHeight,\r\n padding, paddingTop, paddingRight, paddingBottom, paddingLeft, px, py,\r\n margin, marginTop, marginRight, marginBottom, marginLeft, mx, my,\r\n gap, rowGap, columnGap,\r\n flexDirection, flexWrap, alignItems, justifyContent, gridTemplateColumns, gridTemplateRows,\r\n flex, flexGrow, flexShrink, flexBasis, alignSelf, justifySelf, gridColumn, gridRow, order,\r\n position, top, right, bottom, left, inset, zIndex,\r\n overflow, overflowX, overflowY,\r\n backgroundColor, color, borderRadius, boxShadow,\r\n border, borderColor, borderWidth, borderStyle, textAlign, cursor, opacity,\r\n })\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className={cx(generatedClassName, className)}\r\n style={style}\r\n {...rest}\r\n >\r\n {children}\r\n </div>\r\n )\r\n}\r\n\r\nBox.displayName = 'Box'\r\n\r\nexport default Box\r\n","import { Box } from '@components/layout/box'\r\n\r\nimport type { StackProps } from '@components/layout/stack/Stack.props'\r\nimport type { FC } from 'react'\r\n\r\n/**\r\n * A flex `Box` for laying out children along a single axis.\r\n *\r\n * Defaults to `display: flex` and a vertical (`column`) direction. Every\r\n * `Box` style prop is available (`gap`, `alignItems`, `justifyContent`, …),\r\n * and `display` can still be overridden (e.g. `'inline-flex'`).\r\n *\r\n * @example <Stack gap='sm'>…</Stack>\r\n * @example <Stack flexDirection='row' gap='md' alignItems='center' justifyContent='space-between'>…</Stack>\r\n */\r\nconst Stack: FC<StackProps> = (\r\n {\r\n flexDirection = 'row',\r\n display = 'flex',\r\n gap = 'sm',\r\n ...rest\r\n }\r\n) => (\r\n <Box\r\n display={display}\r\n flexDirection={flexDirection}\r\n gap={gap}\r\n {...rest}\r\n />\r\n)\r\n\r\nStack.displayName = 'Stack'\r\n\r\nexport default Stack\r\n","import { createStyles, createVariants } from '@aurora-ds/theme'\r\n\r\nexport const TEXTFIELD_WRAPPER_VARIANTS = createVariants((theme) => {\r\n const c = theme.colors\r\n\r\n return {\r\n base: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n boxSizing: 'border-box',\r\n borderWidth: '1px',\r\n borderStyle: 'solid',\r\n borderRadius: theme.radius.md,\r\n backgroundColor: c.surfacePaper,\r\n transition: `border-color ${theme.transition.fast}`,\r\n '&[data-disabled]': {\r\n opacity: theme.opacity.high,\r\n backgroundColor: c.disabledMain,\r\n cursor: 'not-allowed',\r\n },\r\n },\r\n variants: {\r\n size: {\r\n // Font-size is set on the wrapper so the native input inherits it via `fontSize: 'inherit'`.\r\n sm: { height: '2rem', paddingLeft: theme.spacing.sm, paddingRight: theme.spacing.xs, fontSize: theme.fontSize.xs },\r\n md: { height: '2.5rem', paddingLeft: theme.spacing.sm, paddingRight: theme.spacing.xs, fontSize: theme.fontSize.sm },\r\n lg: { height: '3rem', paddingLeft: theme.spacing.md, paddingRight: theme.spacing.sm, fontSize: theme.fontSize.md },\r\n },\r\n status: {\r\n default: {\r\n borderColor: c.borderMain,\r\n ':hover:not(:focus-within)': { borderColor: c.borderStrong },\r\n ':focus-within': { borderColor: c.primaryMain },\r\n },\r\n error: {\r\n borderColor: c.errorMain,\r\n ':focus-within': { borderColor: c.errorMain },\r\n },\r\n success: {\r\n borderColor: c.successMain,\r\n ':focus-within': { borderColor: c.successMain },\r\n },\r\n warning: {\r\n borderColor: c.warningMain,\r\n ':focus-within': { borderColor: c.warningMain },\r\n },\r\n },\r\n },\r\n defaultVariants: { size: 'md', status: 'default' },\r\n }\r\n}, { id: 'textfield-wrapper' })\r\n\r\nexport const TEXTFIELD_STYLES = createStyles((theme) => ({\r\n /** Visually hidden native input — fills the remaining space inside the wrapper. */\r\n input: {\r\n flex: 1,\r\n minWidth: 0,\r\n border: 'none',\r\n outline: 'none',\r\n background: 'transparent',\r\n color: theme.colors.textPrimary,\r\n fontFamily: 'inherit',\r\n fontSize: 'inherit',\r\n lineHeight: 'normal',\r\n padding: '0',\r\n '&::placeholder': { color: theme.colors.textTertiary },\r\n '&:disabled': { cursor: 'not-allowed', color: theme.colors.textDisabled },\r\n },\r\n /** Wrapper for the start icon — aligned with the input baseline. Clickable to focus the input. */\r\n startIconWrap: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexShrink: 0,\r\n cursor: 'pointer',\r\n },\r\n /** Wrapper for end actions (custom content + optional password toggle). */\r\n endActionWrap: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexShrink: 0,\r\n gap: theme.spacing['2xs'],\r\n },\r\n}), { id: 'textfield-extra' })\r\n","import { MutableRefObject, Ref, RefCallback, useCallback, useRef } from 'react'\r\n\r\nconst assignRef = <T>(ref: Ref<T> | undefined, node: T | null): void => {\r\n if (typeof ref === 'function') {\r\n ref(node)\r\n } else if (ref != null) {\r\n (ref as MutableRefObject<T | null>).current = node\r\n }\r\n}\r\n\r\n/**\r\n * Merges several refs (callback or object) into a single stable callback ref.\r\n *\r\n * Useful when a component needs an internal ref while still forwarding the\r\n * consumer's `ref`. The returned callback keeps a stable identity across\r\n * renders to avoid detach/attach churn, always assigning to the latest refs.\r\n *\r\n * @example\r\n * const inputRef = useRef<HTMLInputElement | null>(null)\r\n * const mergedRef = useMergedRefs(ref, inputRef)\r\n */\r\nexport const useMergedRefs = <T>(...refs: Array<Ref<T> | undefined>): RefCallback<T> => {\r\n const refsRef = useRef(refs)\r\n refsRef.current = refs\r\n\r\n return useCallback((node: T | null) => {\r\n for (const ref of refsRef.current) {\r\n assignRef(ref, node)\r\n }\r\n }, [])\r\n}\r\n","import { RefCallback, RefObject, useCallback, useId, useRef, useState } from 'react'\r\n\r\nimport { useMergedRefs } from '@hooks/common/use-merged-refs/useMergedRefs'\r\n\r\nimport type { Theme } from '@theme/theme.types'\r\nimport type { TextFieldProps } from '@components/forms/text-field/TextField.props'\r\nimport type { TextFieldSize, TextFieldStatus } from '@components/forms/text-field/textField.types'\r\n\r\n/** Maps field size to an Icon size token for the start icon. */\r\nconst ICON_SIZE_MAP: Record<TextFieldSize, keyof Theme['fontSize']> = {\r\n sm: 'sm',\r\n md: 'md',\r\n lg: 'lg',\r\n}\r\n\r\n/** Maps field size to the password toggle IconButton size. */\r\nconst ICON_BUTTON_SIZE_MAP: Record<TextFieldSize, 'sm' | 'md' | 'lg'> = {\r\n sm: 'sm',\r\n md: 'sm',\r\n lg: 'md',\r\n}\r\n\r\n/** Maps status to a theme color token used for the helper text. */\r\nconst HELPER_COLOR_MAP: Record<TextFieldStatus, keyof Theme['colors']> = {\r\n default: 'textSecondary',\r\n error: 'errorHover',\r\n success: 'successHover',\r\n warning: 'warningHover',\r\n}\r\n\r\ntype UseTextFieldParams = {\r\n id?: string\r\n ref?: TextFieldProps['ref']\r\n type?: TextFieldProps['type']\r\n size: TextFieldSize\r\n status: TextFieldStatus\r\n endAction?: TextFieldProps['endAction']\r\n}\r\n\r\ntype UseTextFieldReturn = {\r\n fieldId: string\r\n helperId: string\r\n inputRef: RefObject<HTMLInputElement | null>\r\n mergedRef: RefCallback<HTMLInputElement>\r\n isPassword: boolean\r\n showPassword: boolean\r\n togglePassword: () => void\r\n resolvedType: TextFieldProps['type']\r\n iconSize: keyof Theme['fontSize']\r\n iconButtonSize: 'sm' | 'md' | 'lg'\r\n helperColor: keyof Theme['colors']\r\n hasEndSection: boolean\r\n focusInput: () => void\r\n}\r\n\r\n/**\r\n * Business logic for the TextField component: id resolution, ref merging,\r\n * password visibility toggling and size/status derived tokens.\r\n */\r\nexport const useTextField = ({\r\n id,\r\n ref,\r\n type,\r\n size,\r\n status,\r\n endAction,\r\n}: UseTextFieldParams): UseTextFieldReturn => {\r\n const generatedId = useId()\r\n const fieldId = id ?? generatedId\r\n const helperId = `${fieldId}-helper`\r\n\r\n const inputRef = useRef<HTMLInputElement | null>(null)\r\n const mergedRef = useMergedRefs<HTMLInputElement>(ref, inputRef)\r\n\r\n const [showPassword, setShowPassword] = useState(false)\r\n const isPassword = type === 'password'\r\n const resolvedType = isPassword ? (showPassword ? 'text' : 'password') : type\r\n\r\n const togglePassword = useCallback(() => setShowPassword((prev) => !prev), [])\r\n const focusInput = useCallback(() => inputRef.current?.focus(), [])\r\n\r\n return {\r\n fieldId,\r\n helperId,\r\n inputRef,\r\n mergedRef,\r\n isPassword,\r\n showPassword,\r\n togglePassword,\r\n resolvedType,\r\n iconSize: ICON_SIZE_MAP[size],\r\n iconButtonSize: ICON_BUTTON_SIZE_MAP[size],\r\n helperColor: HELPER_COLOR_MAP[status],\r\n hasEndSection: endAction !== undefined || isPassword,\r\n focusInput,\r\n }\r\n}\r\n","import { FC } from 'react'\r\n\r\nimport EyeIcon from '@resources/assets/icons/EyeIcon.svg?react'\r\nimport EyeSlashIcon from '@resources/assets/icons/EyeSlashIcon.svg?react'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\nimport { IconButton } from '@components/actions/icon-button'\r\nimport { Stack } from '@components/layout/stack'\r\nimport { TEXTFIELD_STYLES, TEXTFIELD_WRAPPER_VARIANTS } from '@components/forms/text-field/TextField.styles'\r\nimport { useTextField } from '@components/forms/text-field/utils/useTextField.utils'\r\n\r\nimport type { TextFieldProps } from '@components/forms/text-field/TextField.props'\r\n\r\n/**\r\n * Full-featured text input with label, helper text, icons and end actions.\r\n *\r\n * Supports all native input types. When `type` is `'password'`, a visibility\r\n * toggle is automatically injected as an end action.\r\n *\r\n * @example <TextField label=\"Email\" placeholder=\"you@example.com\" />\r\n * @example <TextField label=\"Password\" type=\"password\" helperText=\"Min. 8 characters.\" />\r\n * @example <TextField label=\"Name\" status=\"error\" helperText=\"This field is required.\" />\r\n * @example <TextField label=\"Search\" startIcon={SearchIcon} endAction={<ClearButton />} />\r\n */\r\nconst TextField: FC<TextFieldProps> = ({\r\n ref,\r\n label,\r\n helperText,\r\n size = 'md',\r\n status = 'default',\r\n startIcon: StartIcon,\r\n endAction,\r\n type,\r\n id,\r\n disabled,\r\n required,\r\n ...rest\r\n}) => {\r\n const {\r\n fieldId,\r\n helperId,\r\n mergedRef,\r\n isPassword,\r\n showPassword,\r\n togglePassword,\r\n resolvedType,\r\n iconSize,\r\n iconButtonSize,\r\n helperColor,\r\n hasEndSection,\r\n focusInput,\r\n } = useTextField({ id, ref, type, size, status, endAction })\r\n\r\n return (\r\n <Stack\r\n flexDirection={'column'}\r\n gap={'xs'}\r\n >\r\n {label !== undefined && (\r\n <Text\r\n variant={'label'}\r\n fontSize={'sm'}\r\n fontWeight={'medium'}\r\n color={'textSecondary'}\r\n htmlFor={fieldId}\r\n >\r\n {label}\r\n {required && (\r\n <Text\r\n variant={'span'}\r\n color={'errorMain'}\r\n aria-hidden={true}\r\n >\r\n {' *'}\r\n </Text>\r\n )}\r\n </Text>\r\n )}\r\n\r\n <div\r\n className={TEXTFIELD_WRAPPER_VARIANTS({ size, status })}\r\n data-disabled={disabled || undefined}\r\n >\r\n {StartIcon && (\r\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\r\n <span\r\n className={TEXTFIELD_STYLES.startIconWrap}\r\n onClick={focusInput}\r\n >\r\n <Icon\r\n icon={StartIcon}\r\n size={iconSize}\r\n strokeColor={'textSecondary'}\r\n />\r\n </span>\r\n )}\r\n\r\n <input\r\n ref={mergedRef}\r\n id={fieldId}\r\n type={resolvedType}\r\n disabled={disabled}\r\n required={required}\r\n aria-required={required || undefined}\r\n aria-invalid={status === 'error' || undefined}\r\n aria-describedby={helperText !== undefined ? helperId : undefined}\r\n className={TEXTFIELD_STYLES.input}\r\n {...rest}\r\n />\r\n\r\n {hasEndSection && (\r\n <span className={TEXTFIELD_STYLES.endActionWrap}>\r\n {endAction}\r\n {isPassword && (\r\n <IconButton\r\n icon={showPassword ? EyeSlashIcon : EyeIcon}\r\n ariaLabel={showPassword ? 'Hide password' : 'Show password'}\r\n variant={'text'}\r\n color={'neutral'}\r\n size={iconButtonSize}\r\n type={'button'}\r\n tabIndex={-1}\r\n onClick={togglePassword}\r\n />\r\n )}\r\n </span>\r\n )}\r\n </div>\r\n\r\n {helperText !== undefined && (\r\n <Text\r\n id={helperId}\r\n variant={'span'}\r\n fontSize={'xs'}\r\n color={helperColor}\r\n >\r\n {helperText}\r\n </Text>\r\n )}\r\n </Stack>\r\n )\r\n}\r\n\r\nTextField.displayName = 'TextField'\r\n\r\nexport default TextField\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const MENU_STYLES = createStyles((theme) => ({\r\n backdrop: {\r\n position: 'fixed' as const,\r\n inset: 0,\r\n zIndex: theme.zIndex.dropdown - 1,\r\n },\r\n panel: {\r\n position: 'fixed' as const,\r\n zIndex: theme.zIndex.dropdown,\r\n backgroundColor: theme.colors.surfacePaper,\r\n borderRadius: theme.radius.lg,\r\n border: `1px solid ${theme.colors.borderMain}`,\r\n boxShadow: theme.shadows.md,\r\n overflowY: 'auto' as const,\r\n paddingTop: theme.spacing.xs,\r\n paddingBottom: theme.spacing.xs,\r\n },\r\n}), { id: 'menu' })\r\n","import { useEffect, useRef } from 'react'\nimport type { KeyPressMap, UseKeyPressOptions } from '@hooks/common/use-key-press/useKeyPress.types'\n\n/**\n * Listens to keyboard events and dispatches to the matching handler in `keyMap`.\n * A single hook call can handle multiple keys.\n *\n * @example\n * `\ts\n * useKeyPress(\n * { ArrowDown: onDown, ArrowUp: onUp, Enter: onEnter, Escape: onClose },\n * { enabled: isOpen }\n * )\n * `\n */\nexport const useKeyPress = (\n keyMap: KeyPressMap,\n { target, enabled = true }: UseKeyPressOptions = {}\n): void => {\n const mapRef = useRef<KeyPressMap>(keyMap)\n\n useEffect(() => {\n mapRef.current = keyMap\n })\n\n useEffect(() => {\n if (!enabled) {return}\n\n const eventTarget = target ?? document\n const listener = (event: Event): void => {\n const keyboardEvent = event as KeyboardEvent\n const handler = mapRef.current[keyboardEvent.key]\n handler?.(keyboardEvent)\n }\n\n eventTarget.addEventListener('keydown', listener)\n return () => eventTarget.removeEventListener('keydown', listener)\n }, [enabled, target])\n}\n","import { CSSProperties, useCallback, useEffect, useLayoutEffect, useState } from 'react'\nimport type { UseMenuPositionOptions, UseMenuPositionResult } from '@hooks/components/overlay/use-menu-position/useMenuPosition.types'\n\nconst VIEWPORT_MARGIN_PX = 8\n\n/**\n * Computes and continuously updates the `position: fixed` style for a menu panel.\n *\n * Positioning strategy:\n * - Preferred top: anchorBottom + gap (menu opens downward from anchor)\n * - If the menu bottom would exceed the viewport: shift `top` upward so the menu\n * bottom lands at viewportHeight - VIEWPORT_MARGIN_PX. `top` can go above\n * anchor.bottom when the menu is tall, but it never goes off the top of the screen.\n * - Horizontal: clamped so the menu never overflows the left or right viewport edges.\n *\n * Uses a two-pass strategy: first render with `menuHeight = 0` (preferredTop),\n * then a rAF recompute with the actual rendered height to apply the offset.\n */\nexport const useMenuPosition = ({\n anchorEl,\n open,\n menuRef,\n minWidth,\n gap = 4,\n}: UseMenuPositionOptions): UseMenuPositionResult => {\n const [style, setStyle] = useState<CSSProperties>({})\n\n const computePosition = useCallback(() => {\n if (!anchorEl) {return}\n\n const anchor = anchorEl.getBoundingClientRect()\n const menuEl = menuRef.current\n const menuHeight = menuEl?.offsetHeight ?? 0\n const menuWidth = menuEl?.offsetWidth ?? 0\n\n // --- Vertical ---\n const preferredTop = anchor.bottom + gap\n const viewportBottom = window.innerHeight - VIEWPORT_MARGIN_PX\n\n let top = preferredTop\n if (menuHeight > 0 && preferredTop + menuHeight > viewportBottom) {\n // Shift up so the bottom of the menu aligns with the viewport bottom\n top = viewportBottom - menuHeight\n // Never go above the top of the viewport\n top = Math.max(VIEWPORT_MARGIN_PX, top)\n }\n\n // --- Horizontal ---\n const resolvedMinWidth = typeof minWidth === 'number' ? minWidth : anchor.width\n const effectiveWidth = Math.max(menuWidth, resolvedMinWidth)\n const maxLeft = window.innerWidth - effectiveWidth - VIEWPORT_MARGIN_PX\n const left = Math.max(VIEWPORT_MARGIN_PX, Math.min(anchor.left, maxLeft))\n\n setStyle({ top, left, minWidth: minWidth ?? anchor.width })\n }, [anchorEl, menuRef, minWidth, gap])\n\n // First pass: compute as soon as the menu opens (menuHeight = 0 → preferredTop)\n useLayoutEffect(() => {\n if (open) {computePosition()}\n else {setStyle({})}\n }, [open, computePosition])\n\n // Second pass: recompute after the panel renders to get actual height/width\n useEffect(() => {\n if (!open) {return}\n const id = requestAnimationFrame(computePosition)\n return () => cancelAnimationFrame(id)\n }, [open, computePosition])\n\n // Keep position in sync on scroll (capture = all scroll containers) and resize\n useEffect(() => {\n if (!open) {return}\n window.addEventListener('scroll', computePosition, true)\n window.addEventListener('resize', computePosition)\n return () => {\n window.removeEventListener('scroll', computePosition, true)\n window.removeEventListener('resize', computePosition)\n }\n }, [open, computePosition])\n\n return { style }\n}\n","import { CSSProperties, RefObject, useCallback, useEffect, useRef, useState } from 'react'\r\n\r\nimport { useKeyPress } from '@hooks/common/use-key-press/useKeyPress'\r\nimport { useMenuPosition } from '@hooks/components/overlay/use-menu-position/useMenuPosition'\r\n\r\nimport type { MenuProps } from '@components/overlay/menu/Menu.props'\r\n\r\ntype UseMenuParams = Pick<MenuProps, 'open' | 'onClose' | 'anchorEl' | 'minWidth'>\r\n\r\ntype UseMenuReturn = {\r\n /** Ref to attach to the listbox panel. */\r\n panelRef: RefObject<HTMLDivElement | null>\r\n /** Computed inline positioning style for the panel. */\r\n style: CSSProperties\r\n}\r\n\r\n/**\r\n * Business logic for the Menu component: positioning, roving keyboard\r\n * navigation (Arrow/Home/End/Enter), Escape-to-close, and keeping the\r\n * `data-focused` attribute in sync with the active option.\r\n */\r\nexport const useMenu = ({ open, onClose, anchorEl, minWidth }: UseMenuParams): UseMenuReturn => {\r\n const panelRef = useRef<HTMLDivElement>(null)\r\n const [focusedIndex, setFocusedIndex] = useState(-1)\r\n\r\n const { style } = useMenuPosition({ anchorEl, open, menuRef: panelRef, minWidth })\r\n\r\n /** Returns all non-disabled option elements inside the panel. */\r\n const getOptions = useCallback((): HTMLElement[] => {\r\n if (!panelRef.current) {return []}\r\n return Array.from(\r\n panelRef.current.querySelectorAll<HTMLElement>('[role=\"option\"]:not([data-disabled])')\r\n )\r\n }, [])\r\n\r\n // On open: focus panel, initialise focusedIndex to selected item (or 0)\r\n useEffect(() => {\r\n if (!open) {\r\n setFocusedIndex(-1)\r\n return\r\n }\r\n const raf = requestAnimationFrame(() => {\r\n panelRef.current?.focus()\r\n const options = getOptions()\r\n const selectedIdx = options.findIndex((el) => el.getAttribute('aria-selected') === 'true')\r\n setFocusedIndex(selectedIdx >= 0 ? selectedIdx : 0)\r\n })\r\n return () => cancelAnimationFrame(raf)\r\n }, [open, getOptions])\r\n\r\n // Keep data-focused in sync with focusedIndex\r\n useEffect(() => {\r\n if (!open) {return}\r\n const options = getOptions()\r\n options.forEach((el, idx) => {\r\n if (idx === focusedIndex) {\r\n el.setAttribute('data-focused', 'true')\r\n el.scrollIntoView({ block: 'nearest' })\r\n } else {\r\n el.removeAttribute('data-focused')\r\n }\r\n })\r\n }, [focusedIndex, open, getOptions])\r\n\r\n useKeyPress(\r\n {\r\n Escape: onClose,\r\n ArrowDown: (e) => {\r\n e.preventDefault()\r\n setFocusedIndex((prev) => {\r\n const count = getOptions().length\r\n return count === 0 ? prev : (prev + 1) % count\r\n })\r\n },\r\n ArrowUp: (e) => {\r\n e.preventDefault()\r\n setFocusedIndex((prev) => {\r\n const count = getOptions().length\r\n return count === 0 ? prev : (prev - 1 + count) % count\r\n })\r\n },\r\n Home: (e) => {\r\n e.preventDefault()\r\n const count = getOptions().length\r\n if (count > 0) {setFocusedIndex(0)}\r\n },\r\n End: (e) => {\r\n e.preventDefault()\r\n const count = getOptions().length\r\n if (count > 0) {setFocusedIndex(count - 1)}\r\n },\r\n Enter: () => {\r\n const options = getOptions()\r\n if (focusedIndex >= 0) {options[focusedIndex]?.click()}\r\n },\r\n },\r\n { enabled: open }\r\n )\r\n\r\n return { panelRef, style }\r\n}\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nexport const MENU_GROUP_STYLES = createStyles((theme) => {\r\n const c = theme.colors\r\n\r\n return {\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'column' as const,\r\n },\r\n divider: {\r\n height: '1px',\r\n backgroundColor: c.borderMain,\r\n marginTop: theme.spacing.xs,\r\n marginBottom: theme.spacing.xs,\r\n marginLeft: theme.spacing.md,\r\n marginRight: theme.spacing.md,\r\n },\r\n label: {\r\n paddingTop: theme.spacing.xs,\r\n paddingBottom: theme.spacing.xs,\r\n paddingLeft: theme.spacing.md,\r\n paddingRight: theme.spacing.md,\r\n color: c.textTertiary,\r\n fontSize: theme.fontSize.xs,\r\n fontWeight: theme.fontWeight.medium,\r\n userSelect: 'none' as const,\r\n textTransform: 'uppercase' as const,\r\n letterSpacing: '0.05em',\r\n },\r\n list: {\r\n listStyle: 'none',\r\n margin: '0',\r\n padding: '0',\r\n display: 'flex',\r\n flexDirection: 'column' as const,\r\n },\r\n }\r\n}, { id: 'menu-group' })\r\n","import type { FC } from 'react'\r\nimport { MENU_GROUP_STYLES } from '@components/overlay/menu/menu-group/MenuGroup.styles'\r\nimport type { MenuGroupProps } from '@components/overlay/menu/menu-group/MenuGroup.props'\r\n\r\nconst MenuGroup: FC<MenuGroupProps> = ({\r\n label,\r\n divider,\r\n children,\r\n}) => {\r\n return (\r\n <div className={MENU_GROUP_STYLES.root}>\r\n {divider && (\r\n <div\r\n className={MENU_GROUP_STYLES.divider}\r\n role={'separator'}\r\n aria-hidden={true}\r\n />\r\n )}\r\n {label !== undefined && (\r\n <span className={MENU_GROUP_STYLES.label}>{label}</span>\r\n )}\r\n <ul\r\n className={MENU_GROUP_STYLES.list}\r\n role={'group'}\r\n aria-label={label}\r\n >\r\n {children}\r\n </ul>\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'\r\n\r\nexport const MENU_ITEM_STYLES = createStyles((theme) => {\r\n const c = theme.colors\r\n\r\n return {\r\n root: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n paddingTop: theme.spacing.xs,\r\n paddingBottom: theme.spacing.xs,\r\n paddingLeft: theme.spacing.md,\r\n paddingRight: theme.spacing.md,\r\n cursor: 'pointer',\r\n userSelect: 'none' as const,\r\n color: c.textPrimary,\r\n fontSize: theme.fontSize.sm,\r\n listStyle: 'none',\r\n transition: `background-color ${theme.transition.fast}`,\r\n '&[data-selected]': {\r\n backgroundColor: c.primarySubtle,\r\n color: c.primaryMain,\r\n fontWeight: theme.fontWeight.medium,\r\n },\r\n '&[data-focused]': {\r\n backgroundColor: c.defaultSubtleHover,\r\n },\r\n '&[data-focused][data-selected]': {\r\n backgroundColor: c.primarySubtleHover,\r\n },\r\n '&[data-disabled]': {\r\n cursor: 'not-allowed',\r\n opacity: theme.opacity.high,\r\n },\r\n ':hover:not([data-disabled])': {\r\n backgroundColor: c.defaultSubtleHover,\r\n },\r\n ':active:not([data-disabled])': {\r\n backgroundColor: c.defaultSubtleActive,\r\n },\r\n },\r\n }\r\n}, { id: 'menu-item' })\r\n","import type { FC } from 'react'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Text } from '@components/foundation/text'\r\nimport { MENU_ITEM_STYLES } from '@components/overlay/menu/menu-item/MenuItem.styles'\r\nimport type { MenuItemProps } from '@components/overlay/menu/menu-item/MenuItem.props'\r\n\r\nconst MenuItem: FC<MenuItemProps> = ({\r\n ref,\r\n label,\r\n icon,\r\n selected,\r\n focused,\r\n disabled,\r\n onClick,\r\n ...rest\r\n}) => {\r\n return (\r\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\r\n <li\r\n ref={ref}\r\n role={'option'}\r\n aria-selected={selected}\r\n aria-disabled={disabled}\r\n data-selected={selected || undefined}\r\n data-focused={focused || undefined}\r\n data-disabled={disabled || undefined}\r\n className={MENU_ITEM_STYLES.root}\r\n onClick={disabled ? undefined : onClick}\r\n {...rest}\r\n >\r\n {icon !== undefined && (\r\n <Icon\r\n icon={icon}\r\n size={'sm'}\r\n strokeColor={selected ? 'primaryMain' : 'textSecondary'}\r\n />\r\n )}\r\n <Text\r\n variant={'span'}\r\n fontSize={'sm'}\r\n >\r\n {label}\r\n </Text>\r\n </li>\r\n )\r\n}\r\n\r\nMenuItem.displayName = 'MenuItem'\r\n\r\nexport default MenuItem\r\n","import { FC } from 'react'\nimport { createPortal } from 'react-dom'\nimport { MENU_STYLES } from '@components/overlay/menu/Menu.styles'\nimport { useMenu } from '@components/overlay/menu/utils/useMenu.utils'\nimport MenuGroup from '@components/overlay/menu/menu-group/MenuGroup'\nimport MenuItem from '@components/overlay/menu/menu-item/MenuItem'\nimport type { MenuProps } from '@components/overlay/menu/Menu.props'\nimport type { MenuComponent } from '@components/overlay/menu/Menu.types'\n\nconst MenuBase: FC<MenuProps> = ({\n open,\n onClose,\n anchorEl,\n minWidth,\n maxHeight = '20rem',\n id,\n children,\n}) => {\n const { panelRef, style } = useMenu({ open, onClose, anchorEl, minWidth })\n\n if (!open) {return null}\n\n return createPortal(\n <>\n <div\n className={MENU_STYLES.backdrop}\n onClick={onClose}\n aria-hidden={true}\n />\n <div\n ref={panelRef}\n id={id}\n role={'listbox'}\n tabIndex={-1}\n className={MENU_STYLES.panel}\n style={{ ...style, maxHeight, outline: 'none' }}\n >\n {children}\n </div>\n </>,\n document.body\n )\n}\n\nMenuBase.displayName = 'Menu'\n\nconst Menu = MenuBase as MenuComponent\nMenu.Item = MenuItem\nMenu.Group = MenuGroup\n\nexport default Menu\n","import { createStyles, createVariants } from '@aurora-ds/theme'\r\n\r\nexport const SELECT_TRIGGER_VARIANTS = createVariants((theme) => {\r\n const c = theme.colors\r\n\r\n return {\r\n base: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: theme.spacing.sm,\r\n boxSizing: 'border-box' as const,\r\n width: '100%',\r\n borderWidth: '1px',\r\n borderStyle: 'solid',\r\n borderRadius: theme.radius.md,\r\n backgroundColor: c.surfacePaper,\r\n cursor: 'pointer',\r\n transition: `border-color ${theme.transition.fast}`,\r\n outline: 'none',\r\n fontFamily: 'inherit',\r\n '&[data-open]': {\r\n borderColor: c.primaryMain,\r\n },\r\n '&[data-disabled]': {\r\n opacity: theme.opacity.high,\r\n backgroundColor: c.disabledMain,\r\n cursor: 'not-allowed',\r\n },\r\n },\r\n variants: {\r\n size: {\r\n sm: {\r\n height: '2rem',\r\n paddingLeft: theme.spacing.md,\r\n paddingRight: theme.spacing.sm,\r\n fontSize: theme.fontSize.xs,\r\n },\r\n md: {\r\n height: '2.5rem',\r\n paddingLeft: theme.spacing.md,\r\n paddingRight: theme.spacing.sm,\r\n fontSize: theme.fontSize.sm,\r\n },\r\n lg: {\r\n height: '3rem',\r\n paddingLeft: theme.spacing.lg,\r\n paddingRight: theme.spacing.md,\r\n fontSize: theme.fontSize.md,\r\n },\r\n },\r\n status: {\r\n default: {\r\n borderColor: c.borderMain,\r\n ':hover:not([data-disabled]):not([data-open])': {\r\n borderColor: c.borderStrong,\r\n },\r\n ':focus-visible': {\r\n borderColor: c.primaryMain,\r\n outline: 'none',\r\n },\r\n },\r\n error: {\r\n borderColor: c.errorMain,\r\n ':focus-visible': {\r\n outline: 'none',\r\n },\r\n },\r\n success: {\r\n borderColor: c.successMain,\r\n ':focus-visible': {\r\n outline: 'none',\r\n },\r\n },\r\n warning: {\r\n borderColor: c.warningMain,\r\n ':focus-visible': {\r\n outline: 'none',\r\n },\r\n },\r\n },\r\n },\r\n defaultVariants: { size: 'md', status: 'default' },\r\n }\r\n}, { id: 'select-trigger' })\r\n\r\nexport const SELECT_TRIGGER_STYLES = createStyles((theme) => ({\r\n value: {\r\n flex: 1,\r\n minWidth: 0,\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap' as const,\r\n color: theme.colors.textPrimary,\r\n textAlign: 'left' as const,\r\n },\r\n placeholder: {\r\n flex: 1,\r\n minWidth: 0,\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap' as const,\r\n color: theme.colors.textTertiary,\r\n textAlign: 'left' as const,\r\n },\r\n chevron: {\r\n flexShrink: 0,\r\n transition: `transform ${theme.transition.fast}`,\r\n color: theme.colors.textSecondary,\r\n },\r\n chevronOpen: {\r\n transform: 'rotate(180deg)',\r\n },\r\n}), { id: 'select-trigger-extra' })\r\n","import type { FC } from 'react'\r\nimport { cx } from '@aurora-ds/theme'\r\nimport ChevronDownIcon from '@resources/assets/icons/ChevronDownIcon.svg?react'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { SELECT_TRIGGER_STYLES, SELECT_TRIGGER_VARIANTS } from '@components/forms/select/select-trigger/SelectTrigger.styles'\r\nimport type { SelectTriggerProps } from '@components/forms/select/select-trigger/SelectTrigger.props'\r\nimport type { Theme } from '@theme/theme.types'\r\nimport type { TextFieldSize } from '@components/forms/text-field/textField.types'\r\n\r\nconst ICON_SIZE_MAP: Record<TextFieldSize, keyof Theme['fontSize']> = {\r\n sm: 'sm',\r\n md: 'md',\r\n lg: 'lg',\r\n}\r\n\r\nconst SelectTrigger: FC<SelectTriggerProps> = ({\r\n ref,\r\n size = 'md',\r\n status = 'default',\r\n open,\r\n hasValue,\r\n startIcon,\r\n disabled,\r\n children,\r\n ...rest\r\n}) => {\r\n const iconSize = ICON_SIZE_MAP[size]\r\n\r\n return (\r\n <button\r\n type={'button'}\r\n ref={ref}\r\n className={SELECT_TRIGGER_VARIANTS({ size, status })}\r\n data-open={open || undefined}\r\n data-disabled={disabled || undefined}\r\n disabled={disabled}\r\n {...rest}\r\n >\r\n {startIcon !== undefined && (\r\n <Icon\r\n icon={startIcon}\r\n size={iconSize}\r\n strokeColor={'textSecondary'}\r\n />\r\n )}\r\n <span className={hasValue ? SELECT_TRIGGER_STYLES.value : SELECT_TRIGGER_STYLES.placeholder}>\r\n {children}\r\n </span>\r\n <Icon\r\n icon={ChevronDownIcon}\r\n size={iconSize}\r\n className={cx(SELECT_TRIGGER_STYLES.chevron, open ? SELECT_TRIGGER_STYLES.chevronOpen : undefined)}\r\n strokeColor={'textSecondary'}\r\n />\r\n </button>\r\n )\r\n}\r\n\r\nSelectTrigger.displayName = 'SelectTrigger'\r\n\r\nexport default SelectTrigger\r\n","import { RefCallback, RefObject, useCallback, useEffect, useId, useMemo, useRef, useState } from 'react'\r\n\r\nimport { useControllableState } from '@hooks/common/use-controllable-state/useControllableState'\r\nimport { useMergedRefs } from '@hooks/common/use-merged-refs/useMergedRefs'\r\n\r\nimport type { Theme } from '@theme/theme.types'\r\nimport type { SelectProps } from '@components/forms/select/Select.props'\r\nimport type { SelectOption } from '@components/forms/select/select.types'\r\nimport type { TextFieldStatus } from '@components/forms/text-field/textField.types'\r\n\r\n/** Maps status to a theme color token used for the helper text. */\r\nconst HELPER_COLOR_MAP: Record<TextFieldStatus, keyof Theme['colors']> = {\r\n default: 'textSecondary',\r\n error: 'errorHover',\r\n success: 'successHover',\r\n warning: 'warningHover',\r\n}\r\n\r\ntype UseSelectParams = {\r\n id?: string\r\n ref?: SelectProps['ref']\r\n value?: string\r\n defaultValue?: string\r\n onChange?: (value: string) => void\r\n options?: SelectOption[]\r\n status: TextFieldStatus\r\n disabled?: boolean\r\n}\r\n\r\ntype UseSelectReturn = {\r\n fieldId: string\r\n menuId: string\r\n triggerRef: RefObject<HTMLButtonElement | null>\r\n mergedRef: RefCallback<HTMLButtonElement>\r\n open: boolean\r\n toggle: () => void\r\n close: () => void\r\n currentValue: string\r\n selectedOption: SelectOption | undefined\r\n groupedOptions: Map<string | undefined, SelectOption[]>\r\n handleSelect: (optValue: string) => void\r\n helperColor: keyof Theme['colors']\r\n}\r\n\r\n/**\r\n * Business logic for the Select component: id resolution, ref merging,\r\n * controlled/uncontrolled value handling, open state, option grouping and\r\n * focus restoration to the trigger when the menu closes.\r\n */\r\nexport const useSelect = ({\r\n id,\r\n ref,\r\n value,\r\n defaultValue,\r\n onChange,\r\n options,\r\n status,\r\n disabled,\r\n}: UseSelectParams): UseSelectReturn => {\r\n const generatedId = useId()\r\n const fieldId = id ?? generatedId\r\n const menuId = `${fieldId}-menu`\r\n\r\n const triggerRef = useRef<HTMLButtonElement | null>(null)\r\n const mergedRef = useMergedRefs<HTMLButtonElement>(ref, triggerRef)\r\n\r\n const [open, setOpen] = useState(false)\r\n\r\n const [currentValue, setValue] = useControllableState<string>({\r\n value,\r\n defaultValue: defaultValue ?? '',\r\n onChange,\r\n })\r\n\r\n // Restore focus to the trigger when the menu closes.\r\n const wasOpenRef = useRef(false)\r\n useEffect(() => {\r\n if (wasOpenRef.current && !open) {\r\n triggerRef.current?.focus()\r\n }\r\n wasOpenRef.current = open\r\n }, [open])\r\n\r\n const selectedOption = useMemo(\r\n () => options?.find((opt) => opt.value === currentValue),\r\n [options, currentValue]\r\n )\r\n\r\n const groupedOptions = useMemo(() => {\r\n const map = new Map<string | undefined, SelectOption[]>()\r\n for (const opt of options ?? []) {\r\n const key = opt.group\r\n const existing = map.get(key)\r\n if (existing !== undefined) {\r\n existing.push(opt)\r\n } else {\r\n map.set(key, [opt])\r\n }\r\n }\r\n return map\r\n }, [options])\r\n\r\n const handleSelect = useCallback(\r\n (optValue: string) => {\r\n setValue(optValue)\r\n setOpen(false)\r\n },\r\n [setValue]\r\n )\r\n\r\n const toggle = useCallback(() => {\r\n if (!disabled) {\r\n setOpen((prev) => !prev)\r\n }\r\n }, [disabled])\r\n\r\n const close = useCallback(() => setOpen(false), [])\r\n\r\n return {\r\n fieldId,\r\n menuId,\r\n triggerRef,\r\n mergedRef,\r\n open,\r\n toggle,\r\n close,\r\n currentValue,\r\n selectedOption,\r\n groupedOptions,\r\n handleSelect,\r\n helperColor: HELPER_COLOR_MAP[status],\r\n }\r\n}\r\n","import { FC } from 'react'\nimport { Stack } from '@components/layout/stack'\nimport { Text } from '@components/foundation/text'\nimport { Menu } from '@components/overlay/menu'\nimport { SelectTrigger } from '@components/forms/select/select-trigger'\nimport { useSelect } from '@components/forms/select/utils/useSelect.utils'\nimport type { SelectProps } from '@components/forms/select/Select.props'\n\nconst Select: FC<SelectProps> = ({\n ref,\n value,\n defaultValue,\n onChange,\n options,\n label,\n helperText,\n placeholder,\n size = 'md',\n status = 'default',\n disabled,\n required,\n width,\n id,\n}) => {\n const {\n fieldId,\n menuId,\n triggerRef,\n mergedRef,\n open,\n toggle,\n close,\n currentValue,\n selectedOption,\n groupedOptions,\n handleSelect,\n helperColor,\n } = useSelect({ id, ref, value, defaultValue, onChange, options, status, disabled })\n\n return (\n <Stack\n flexDirection={'column'}\n gap={'xs'}\n style={{ width: width ?? '100%' }}\n >\n {label !== undefined && (\n <Text\n variant={'label'}\n fontSize={'sm'}\n fontWeight={'medium'}\n color={'textSecondary'}\n htmlFor={fieldId}\n >\n {label}\n {required && (\n <Text\n variant={'span'}\n color={'errorMain'}\n aria-hidden={true}\n >\n {' *'}\n </Text>\n )}\n </Text>\n )}\n\n <SelectTrigger\n ref={mergedRef}\n id={fieldId}\n size={size}\n status={status}\n open={open}\n hasValue={selectedOption !== undefined}\n disabled={disabled}\n required={required}\n aria-haspopup={'listbox'}\n aria-expanded={open}\n aria-controls={menuId}\n aria-invalid={status === 'error' || undefined}\n onClick={toggle}\n >\n {selectedOption !== undefined ? selectedOption.label : placeholder}\n </SelectTrigger>\n\n <Menu\n open={open}\n onClose={close}\n anchorEl={triggerRef.current}\n id={menuId}\n >\n {Array.from(groupedOptions.entries()).map(([groupKey, groupOpts], groupIndex) => {\n const items = groupOpts.map((opt) => (\n <Menu.Item\n key={opt.value}\n label={opt.label}\n icon={opt.icon}\n selected={opt.value === currentValue}\n disabled={opt.disabled}\n onClick={() => handleSelect(opt.value)}\n />\n ))\n return groupKey !== undefined ? (\n <Menu.Group\n key={groupKey}\n label={groupKey}\n divider={groupIndex > 0}\n >\n {items}\n </Menu.Group>\n ) : (\n <Menu.Group\n key={'__ungrouped'}\n divider={groupIndex > 0}\n >\n {items}\n </Menu.Group>\n )\n })}\n </Menu>\n\n {helperText !== undefined && (\n <Text\n variant={'span'}\n fontSize={'xs'}\n color={helperColor}\n >\n {helperText}\n </Text>\n )}\n </Stack>\n )\n}\n\nSelect.displayName = 'Select'\n\nexport default Select\n","import { createVariants } from '@aurora-ds/theme'\r\n\r\nexport const CARD_VARIANTS = createVariants((theme) => ({\r\n base: {\r\n boxSizing: 'border-box' as const,\r\n borderRadius: theme.radius.lg,\r\n border: '1px solid transparent',\r\n },\r\n variants: {\r\n variant: {\r\n elevated: {\r\n backgroundColor: theme.colors.surfacePaper,\r\n boxShadow: theme.shadows.md,\r\n },\r\n outlined: {\r\n backgroundColor: theme.colors.surfacePaper,\r\n borderColor: theme.colors.borderMain,\r\n },\r\n },\r\n },\r\n defaultVariants: { variant: 'elevated' },\r\n}), { id: 'card' })\r\n","import type { FC } from 'react'\nimport { Icon } from '@components/foundation/icon'\nimport { Text } from '@components/foundation/text'\nimport { Stack } from '@components/layout/stack'\nimport type { CardHeaderProps } from '@components/layout/card/card-header/CardHeader.props'\n\nconst CardHeader: FC<CardHeaderProps> = ({\n label,\n icon,\n actions,\n flexDirection = 'row',\n gap = 'sm',\n alignItems = 'center',\n justifyContent = 'space-between',\n py = 'sm',\n px = 'md',\n ...rest\n}) => {\n return (\n <Stack\n flexDirection={flexDirection}\n alignItems={alignItems}\n justifyContent={justifyContent}\n gap={gap}\n py={py}\n px={px}\n {...rest}\n >\n <Stack\n alignItems={'center'}\n gap={'sm'}\n flex={1}\n minWidth={'0'}\n >\n {icon !== undefined && (\n <Icon\n icon={icon}\n size={'md'}\n strokeColor={'textSecondary'}\n />\n )}\n <Text\n variant={'span'}\n fontSize={'sm'}\n fontWeight={'semibold'}\n color={'textPrimary'}\n >\n {label}\n </Text>\n </Stack>\n {actions !== undefined && (\n <Stack\n alignItems={'center'}\n gap={'xs'}\n flexShrink={0}\n >\n {actions}\n </Stack>\n )}\n </Stack>\n )\n}\n\nCardHeader.displayName = 'Card.Header'\n\nexport default CardHeader\n","import type { FC } from 'react'\nimport type { CardBodyProps } from '@components/layout/card/card-body/CardBody.props'\nimport { Stack } from '@components/layout/stack'\n\nconst CardBody: FC<CardBodyProps> = ({\n children,\n py = 'md',\n px = 'md',\n flexDirection = 'column',\n gap = 'sm',\n ...rest\n}) => {\n return (\n <Stack\n flexDirection={flexDirection}\n gap={gap}\n py={py}\n px={px}\n {...rest}\n >\n {children}\n </Stack>\n )\n}\n\nCardBody.displayName = 'Card.Body'\n\nexport default CardBody\n","import { cx } from '@aurora-ds/theme'\r\nimport type { FC } from 'react'\r\nimport { CARD_VARIANTS } from '@components/layout/card/Card.styles'\r\nimport Box from '@components/layout/box/Box'\r\nimport type { BoxProps } from '@components/layout/box/Box.props'\r\nimport CardHeader from '@components/layout/card/card-header/CardHeader'\r\nimport CardBody from '@components/layout/card/card-body/CardBody'\r\nimport type { CardProps } from '@components/layout/card/Card.props'\r\nimport type { CardComponent } from '@components/layout/card/card.types'\r\n\r\nconst CardBase: FC<CardProps> = (\r\n { ref, variant = 'outlined', padding = 'none', className, children, ...rest }\r\n) => {\r\n return (\r\n <Box\r\n ref={ref}\r\n padding={padding}\r\n className={cx(CARD_VARIANTS({ variant }), className)}\r\n {...rest as BoxProps}\r\n >\r\n {children}\r\n </Box>\r\n )\r\n}\r\n\r\nCardBase.displayName = 'Card'\r\n\r\nconst Card = CardBase as CardComponent\r\nCard.Header = CardHeader\r\nCard.Body = CardBody\r\n\r\nexport default Card\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport type { GridStyleProps } from '@components/layout/grid/Grid.props'\r\n\r\nexport const GRID_STYLES = createStyles(() => ({\r\n root: ({\r\n autoFlow,\r\n autoColumns,\r\n autoRows,\r\n alignContent,\r\n justifyItems,\r\n placeItems,\r\n placeContent,\r\n }: Pick<GridStyleProps, 'autoFlow' | 'autoColumns' | 'autoRows' | 'alignContent' | 'justifyItems' | 'placeItems' | 'placeContent'>) => ({\r\n ...(autoFlow !== undefined && { gridAutoFlow: autoFlow }),\r\n ...(autoColumns !== undefined && { gridAutoColumns: autoColumns }),\r\n ...(autoRows !== undefined && { gridAutoRows: autoRows }),\r\n ...(alignContent !== undefined && { alignContent }),\r\n ...(justifyItems !== undefined && { justifyItems }),\r\n ...(placeItems !== undefined && { placeItems }),\r\n ...(placeContent !== undefined && { placeContent }),\r\n }),\r\n}))\r\n","import { cx } from '@aurora-ds/theme'\r\n\r\nimport { Box } from '@components/layout/box'\r\nimport { GRID_STYLES } from '@components/layout/grid/Grid.styles'\r\n\r\nimport type { GridProps } from '@components/layout/grid/Grid.props'\r\nimport type { FC } from 'react'\r\n\r\n/**\r\n * A CSS Grid `Box` with convenience props for common grid patterns.\r\n *\r\n * Defaults to `display: grid`. The `columns` and `rows` shorthands accept either a\r\n * number (expanded to `repeat(n, 1fr)`) or any valid CSS `grid-template-*` string.\r\n * All `Box` style props remain available (`gap`, `rowGap`, `columnGap`,\r\n * `gridTemplateColumns`, `gridTemplateRows`, `alignItems`, `justifyContent`, …).\r\n *\r\n * @example <Grid columns={3} gap='md'>…</Grid>\r\n * @example <Grid columns='repeat(auto-fill, minmax(200px, 1fr))' gap='lg'>…</Grid>\r\n * @example <Grid rows={2} autoFlow='column' gap='sm' alignItems='center'>…</Grid>\r\n */\r\nconst Grid: FC<GridProps> = (\r\n {\r\n display = 'grid',\r\n columns,\r\n rows,\r\n autoFlow,\r\n autoColumns,\r\n autoRows,\r\n alignContent,\r\n justifyItems,\r\n placeItems,\r\n placeContent,\r\n gridTemplateColumns,\r\n gridTemplateRows,\r\n className,\r\n rowGap='sm',\r\n columnGap='sm',\r\n ...rest\r\n }\r\n) => {\r\n const resolvedColumns = columns !== undefined\r\n ? (typeof columns === 'number' ? `repeat(${columns}, 1fr)` : columns)\r\n : gridTemplateColumns\r\n\r\n const resolvedRows = rows !== undefined\r\n ? (typeof rows === 'number' ? `repeat(${rows}, 1fr)` : rows)\r\n : gridTemplateRows\r\n\r\n const gridClassName = GRID_STYLES.root({\r\n autoFlow,\r\n autoColumns,\r\n autoRows,\r\n alignContent,\r\n justifyItems,\r\n placeItems,\r\n placeContent,\r\n })\r\n\r\n return (\r\n <Box\r\n display={display}\r\n gridTemplateColumns={resolvedColumns}\r\n gridTemplateRows={resolvedRows}\r\n rowGap={rowGap}\r\n columnGap={columnGap}\r\n className={cx(gridClassName, className)}\r\n {...rest}\r\n />\r\n )\r\n}\r\n\r\nGrid.displayName = 'Grid'\r\n\r\nexport default Grid\r\n","import { createContext, useContext } from 'react'\r\n\r\nimport type { AlertVariant } from '@components/overlay/alert/alert.types'\r\nimport type { Theme } from '@theme/theme.types'\r\n\r\ntype AlertContextValue = {\r\n variant: AlertVariant\r\n accentColor: keyof Theme['colors']\r\n}\r\n\r\nexport const AlertContext = createContext<AlertContextValue>({\r\n variant: 'default',\r\n accentColor: 'defaultActive',\r\n})\r\n\r\nexport const useAlertContext = () => useContext(AlertContext)\r\n","import type { ComponentType, FC, SVGProps } from 'react'\r\n\r\nimport AlertSuccessIcon from '@resources/assets/icons/AlertSuccessIcon.svg?react'\r\nimport AlertErrorIcon from '@resources/assets/icons/AlertErrorIcon.svg?react'\r\nimport AlertWarningIcon from '@resources/assets/icons/AlertWarningIcon.svg?react'\r\nimport AlertInfoIcon from '@resources/assets/icons/AlertInfoIcon.svg?react'\r\n\r\nimport { Stack } from '@components/layout/stack'\r\nimport { Text } from '@components/foundation/text'\r\nimport { useAlertContext } from '@components/overlay/alert/Alert.context'\r\n\r\nimport type { AlertVariant } from '@components/overlay/alert/alert.types'\r\nimport type { AlertTitleProps } from '@components/overlay/alert/alert-title/AlertTitle.props'\r\n\r\nconst VARIANT_ICONS: Partial<Record<AlertVariant, FC<SVGProps<SVGSVGElement>>>> = {\r\n success: AlertSuccessIcon,\r\n error: AlertErrorIcon,\r\n warning: AlertWarningIcon,\r\n info: AlertInfoIcon,\r\n}\r\n\r\n/** Returns true if value is a React component type (function/class), false if it is a rendered node. */\r\nconst isSvgComponent = (value: unknown): value is ComponentType<SVGProps<SVGSVGElement>> =>\r\n typeof value === 'function'\r\n\r\n/**\r\n * Alert title row: renders the variant icon alongside the title text.\r\n * Must be used inside an `<Alert>` component.\r\n */\r\nconst AlertTitle: FC<AlertTitleProps> = ({ children, icon }) => {\r\n const { variant, accentColor } = useAlertContext()\r\n\r\n // Resolve which icon to render:\r\n // - custom icon prop always takes precedence over the built-in variant icon\r\n // - for \"default\" variant there is no built-in icon; custom icon adds one\r\n const builtInIcon = VARIANT_ICONS[variant]\r\n // Must be capitalised for JSX to treat it as a component (not an HTML tag)\r\n const ResolvedIcon: ComponentType<SVGProps<SVGSVGElement>> | null =\r\n icon && isSvgComponent(icon) ? icon : (icon === undefined ? (builtInIcon ?? null) : null)\r\n const customNode = icon && !isSvgComponent(icon) ? icon : null\r\n\r\n const hasIcon = ResolvedIcon !== null || customNode !== null\r\n\r\n return (\r\n <Stack\r\n flexDirection={'row'}\r\n alignItems={'center'}\r\n gap={'sm'}\r\n >\r\n {hasIcon && (\r\n <Stack\r\n flexShrink={0}\r\n alignItems={'center'}\r\n color={accentColor}\r\n width={'1.25rem'}\r\n height={'1.25rem'}\r\n aria-hidden={true}\r\n >\r\n {ResolvedIcon ? (\r\n <ResolvedIcon\r\n width={20}\r\n height={20}\r\n />\r\n ) : (\r\n customNode\r\n )}\r\n </Stack>\r\n )}\r\n <Text\r\n fontWeight={'semibold'}\r\n fontSize={'sm'}\r\n color={accentColor}\r\n >\r\n {children}\r\n </Text>\r\n </Stack>\r\n )\r\n}\r\n\r\nAlertTitle.displayName = 'Alert.Title'\r\n\r\nexport default AlertTitle\r\n","import type { FC } from 'react'\r\n\r\nimport { Text } from '@components/foundation/text'\r\n\r\nimport type { AlertBodyProps } from '@components/overlay/alert/alert-body/AlertBody.props'\r\n\r\n/**\r\n * Alert message body. Must be used inside an `<Alert>` component.\r\n */\r\nconst AlertBody: FC<AlertBodyProps> = ({ children }) => (\r\n <Text\r\n as={'p'}\r\n fontSize={'sm'}\r\n color={'textSecondary'}\r\n >\r\n {children}\r\n </Text>\r\n)\r\n\r\nAlertBody.displayName = 'Alert.Body'\r\n\r\nexport default AlertBody\r\n","import { Stack } from '@components/layout/stack'\r\nimport { AlertContext } from '@components/overlay/alert/Alert.context'\r\nimport AlertTitle from '@components/overlay/alert/alert-title/AlertTitle'\r\nimport AlertBody from '@components/overlay/alert/alert-body/AlertBody'\r\n\r\nimport type { AlertComponent, AlertVariant } from '@components/overlay/alert/alert.types'\r\nimport type { AlertProps } from '@components/overlay/alert/Alert.props'\r\nimport type { Theme } from '@theme/theme.types'\r\nimport { FC } from 'react'\r\n\r\ntype VariantTokens = {\r\n backgroundColor: keyof Theme['colors']\r\n borderColor: keyof Theme['colors']\r\n accentColor: keyof Theme['colors']\r\n}\r\n\r\nconst VARIANT_TOKENS: Record<AlertVariant, VariantTokens> = {\r\n default: { backgroundColor: 'surfacePaper', borderColor: 'defaultMain', accentColor: 'defaultActive' },\r\n success: { backgroundColor: 'successSubtle', borderColor: 'successMain', accentColor: 'successActive' },\r\n error: { backgroundColor: 'errorSubtle', borderColor: 'errorMain', accentColor: 'errorActive' },\r\n warning: { backgroundColor: 'warningSubtle', borderColor: 'warningMain', accentColor: 'warningActive' },\r\n info: { backgroundColor: 'infoSubtle', borderColor: 'infoMain', accentColor: 'infoActive' },\r\n}\r\n\r\nconst VARIANT_ARIA_LIVE: Record<AlertVariant, 'polite' | 'assertive'> = {\r\n default: 'polite',\r\n success: 'polite',\r\n error: 'assertive',\r\n warning: 'polite',\r\n info: 'polite',\r\n}\r\n\r\n/**\r\n * Inline alert banner with 5 visual variants: default, success, error, warning, info.\r\n * Use `Alert.Title` (icon + heading) and `Alert.Body` (message) as children.\r\n *\r\n * @example\r\n * <Alert variant=\"success\">\r\n * <Alert.Title>Saved</Alert.Title>\r\n * <Alert.Body>Your changes have been saved successfully.</Alert.Body>\r\n * </Alert>\r\n */\r\nconst AlertBase: FC<AlertProps> = ({\r\n variant = 'default',\r\n children,\r\n width = '100%',\r\n outline = false,\r\n shadow = 'none',\r\n}) => {\r\n const { backgroundColor, borderColor, accentColor } = VARIANT_TOKENS[variant]\r\n\r\n return (\r\n <AlertContext.Provider value={{ variant, accentColor }}>\r\n <Stack\r\n role={'alert'}\r\n aria-live={VARIANT_ARIA_LIVE[variant]}\r\n flexDirection={'column'}\r\n gap={'xs'}\r\n padding={'md'}\r\n borderRadius={'lg'}\r\n backgroundColor={backgroundColor}\r\n borderColor={outline ? borderColor : undefined}\r\n borderWidth={outline ? '1px' : undefined}\r\n borderStyle={outline ? 'solid' : undefined}\r\n boxShadow={shadow}\r\n width={width}\r\n >\r\n {children}\r\n </Stack>\r\n </AlertContext.Provider>\r\n )\r\n}\r\n\r\nAlertBase.displayName = 'Alert'\r\n\r\nconst Alert = AlertBase as AlertComponent\r\nAlert.Title = AlertTitle\r\nAlert.Body = AlertBody\r\n\r\nexport default Alert\r\n","/**\r\n * Responsive breakpoints (min-width, mobile-first).\r\n * Keep in sync with themeBreakpoints.\r\n */\r\nexport const BREAKPOINTS = {\r\n xs: 480,\r\n sm: 640,\r\n md: 768,\r\n lg: 1024,\r\n xl: 1280,\r\n '2xl': 1536,\r\n} as const\r\n\r\n/** Max-width media query strings (max = breakpoint - 1px). */\r\nexport const MEDIA_MAX = {\r\n xs: `max-width: ${BREAKPOINTS.xs - 1}px`,\r\n sm: `max-width: ${BREAKPOINTS.sm - 1}px`,\r\n md: `max-width: ${BREAKPOINTS.md - 1}px`,\r\n lg: `max-width: ${BREAKPOINTS.lg - 1}px`,\r\n xl: `max-width: ${BREAKPOINTS.xl - 1}px`,\r\n '2xl': `max-width: ${BREAKPOINTS['2xl'] - 1}px`,\r\n} as const\r\n\r\n/** Min-width media query strings (standard breakpoints). */\r\nexport const MEDIA_MIN = {\r\n xs: `min-width: ${BREAKPOINTS.xs}px`,\r\n sm: `min-width: ${BREAKPOINTS.sm}px`,\r\n md: `min-width: ${BREAKPOINTS.md}px`,\r\n lg: `min-width: ${BREAKPOINTS.lg}px`,\r\n xl: `min-width: ${BREAKPOINTS.xl}px`,\r\n '2xl': `min-width: ${BREAKPOINTS['2xl']}px`,\r\n} as const\r\n","/** Default duration in milliseconds for mount/unmount transition animations. */\r\nexport const DEFAULT_TRANSITION_DURATION_MS = 250\r\n","import { createStyles } from '@aurora-ds/theme'\r\n\r\nimport { MEDIA_MAX } from '@constants/breakpoints.constants'\r\nimport { DEFAULT_TRANSITION_DURATION_MS } from '@constants/app.constants'\r\n\r\nconst TRANSITION = `${DEFAULT_TRANSITION_DURATION_MS}ms ease`\r\n\r\nexport const DIALOG_STYLES = createStyles((theme) => ({\r\n backdrop: {\r\n position: 'fixed' as const,\r\n inset: 0,\r\n zIndex: theme.zIndex.modal - 1,\r\n backgroundColor: 'rgba(0, 0, 0, 0)',\r\n transition: `background-color ${TRANSITION}`,\r\n },\r\n\r\n backdropVisible: {\r\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\r\n },\r\n panel: {\r\n position: 'fixed' as const,\r\n inset: 0,\r\n margin: 'auto',\r\n width: '90vw',\r\n height: 'fit-content',\r\n maxWidth: 'var(--dialog-max-width, 80vw)',\r\n maxHeight: 'var(--dialog-max-height, 80vh)',\r\n minWidth: 'var(--dialog-min-width, 0px)',\r\n minHeight: 'var(--dialog-min-height, 0px)',\r\n zIndex: theme.zIndex.modal,\r\n backgroundColor: theme.colors.surfacePaper,\r\n borderRadius: theme.radius['2xl'],\r\n boxShadow: theme.shadows.xl,\r\n display: 'flex',\r\n flexDirection: 'column' as const,\r\n overflow: 'hidden' as const,\r\n willChange: 'opacity, transform',\r\n opacity: 0,\r\n transform: 'scale(0.97)',\r\n transition: `opacity ${TRANSITION}, transform ${TRANSITION}`,\r\n // Mobile: bottom sheet\r\n [`@media (${MEDIA_MAX.sm})`]: {\r\n top: 'auto',\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n margin: 0,\r\n width: '100%',\r\n height: 'auto',\r\n maxWidth: 'none',\r\n maxHeight: 'var(--dialog-max-height, 85vh)',\r\n borderRadius: `${theme.radius['2xl']} ${theme.radius['2xl']} 0 0`,\r\n transform: 'translateY(100%)',\r\n },\r\n },\r\n\r\n panelVisible: {\r\n opacity: 1,\r\n transform: 'scale(1)',\r\n [`@media (${MEDIA_MAX.sm})`]: {\r\n transform: 'translateY(0)',\r\n },\r\n },\r\n\r\n // Full-height variant on mobile (applied via `fullscreen` prop)\r\n panelFullscreen: {\r\n [`@media (${MEDIA_MAX.sm})`]: {\r\n height: '100dvh',\r\n maxHeight: 'none',\r\n },\r\n },\r\n\r\n}), { id: 'dialog' })\r\n","import { createContext, useContext } from 'react'\r\n\r\nimport type CloseIcon from '@resources/assets/icons/CloseIcon.svg?react'\r\n\r\nexport type DialogContextValue = {\r\n /** Stable id for the title element, used by `aria-labelledby` on the panel. */\r\n titleId: string\r\n /** Close icon SVG component forwarded to Dialog.Header. */\r\n CloseIconComponent: typeof CloseIcon\r\n}\r\n\r\nexport const DialogContext = createContext<DialogContextValue>({\r\n titleId: '',\r\n CloseIconComponent: null as any,\r\n})\r\n\r\nexport const useDialogContext = (): DialogContextValue => useContext(DialogContext)\r\n","import { useEffect, useLayoutEffect, useState } from 'react'\r\n\r\nimport { DEFAULT_TRANSITION_DURATION_MS } from '@constants/app.constants'\r\n\r\nimport type { UseTransitionRenderReturnType } from '@hooks/common/use-transition-render/useTransitionRender.types'\r\n\r\n/**\r\n * Manages mount/unmount transitions with a two-phase approach (visible → fading-in).\r\n *\r\n * Opening sequence:\r\n * 1. `useLayoutEffect` sets `isVisible=true` synchronously before the browser paints\r\n * → element is in the DOM at its initial hidden state on the very first frame.\r\n * 2. Double `requestAnimationFrame` in `useEffect` waits for two rendered frames\r\n * before setting `isFadingIn=true`, guaranteeing the CSS transition always starts\r\n * from the painted hidden state (prevents flickering).\r\n *\r\n * Closing sequence:\r\n * `isFadingIn=false` → CSS transition plays → after `duration` ms → `isVisible=false`.\r\n *\r\n * @param isOpen - Whether the element should be shown.\r\n * @param duration - Transition duration in milliseconds (defaults to `DEFAULT_TRANSITION_DURATION_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(isOpen)\r\n const [isFadingIn, setIsFadingIn] = useState(isOpen)\r\n\r\n // Mount synchronously before paint so the element is in the DOM at opacity:0\r\n // on the very first frame — no extra render cycle between null and the initial state.\r\n useLayoutEffect(() => {\r\n if (isOpen) {\r\n setIsVisible(true)\r\n }\r\n }, [isOpen])\r\n\r\n useEffect(() => {\r\n if (isOpen) {\r\n // Double RAF: frame 1 → element rendered; frame 2 → element painted at hidden\r\n // state → THEN trigger the CSS transition.\r\n let raf2: number\r\n const raf1 = requestAnimationFrame(() => {\r\n raf2 = requestAnimationFrame(() => setIsFadingIn(true))\r\n })\r\n return () => {\r\n cancelAnimationFrame(raf1)\r\n cancelAnimationFrame(raf2)\r\n }\r\n } else {\r\n setIsFadingIn(false)\r\n const timeout = setTimeout(() => setIsVisible(false), duration)\r\n return () => clearTimeout(timeout)\r\n }\r\n }, [isOpen, duration])\r\n\r\n return { isVisible, isFadingIn }\r\n}\r\n","import { useEffect } from 'react'\r\n\r\n/**\r\n * Locks scrolling on `document.body` while `active` is true.\r\n *\r\n * Preserves the current scroll position and keeps the scrollbar gutter\r\n * (`overflow-y: scroll`) to avoid horizontal layout shift when the scrollbar\r\n * disappears. The original styles and scroll position are restored on cleanup.\r\n *\r\n * @example useBodyScrollLock(isDialogOpen)\r\n */\r\nexport const useBodyScrollLock = (active: boolean): void => {\r\n useEffect(() => {\r\n if (!active) {return}\r\n\r\n const scrollY = window.scrollY\r\n const body = document.body\r\n body.style.position = 'fixed'\r\n body.style.top = `-${scrollY}px`\r\n body.style.overflowY = 'scroll'\r\n body.style.width = '100%'\r\n\r\n return () => {\r\n body.style.position = ''\r\n body.style.top = ''\r\n body.style.overflowY = ''\r\n body.style.width = ''\r\n window.scrollTo(0, scrollY)\r\n }\r\n }, [active])\r\n}\r\n","import { RefObject, useEffect } from 'react'\r\n\r\nconst FOCUSABLE_SELECTOR = [\r\n 'a[href]',\r\n 'button:not([disabled])',\r\n 'textarea:not([disabled])',\r\n 'input:not([disabled])',\r\n 'select:not([disabled])',\r\n '[tabindex]:not([tabindex=\"-1\"])',\r\n].join(',')\r\n\r\nconst getFocusable = (container: HTMLElement): HTMLElement[] =>\r\n Array.from(container.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR)).filter(\r\n (el) => el.offsetParent !== null || el === document.activeElement\r\n )\r\n\r\n/**\r\n * Traps Tab / Shift+Tab focus within the element referenced by `containerRef`\r\n * while `active` is true. Focusable elements are recomputed on each Tab press\r\n * so dynamic content is handled correctly. Required for accessible modals.\r\n *\r\n * @example useFocusTrap(panelRef, open)\r\n */\r\nexport const useFocusTrap = (\r\n containerRef: RefObject<HTMLElement | null>,\r\n active: boolean\r\n): void => {\r\n useEffect(() => {\r\n if (!active) {return}\r\n const container = containerRef.current\r\n if (!container) {return}\r\n\r\n const handleKeyDown = (event: KeyboardEvent): void => {\r\n if (event.key !== 'Tab') {return}\r\n\r\n const focusable = getFocusable(container)\r\n if (focusable.length === 0) {\r\n event.preventDefault()\r\n container.focus()\r\n return\r\n }\r\n\r\n const first = focusable[0]\r\n const last = focusable[focusable.length - 1]\r\n const activeEl = document.activeElement\r\n\r\n if (event.shiftKey) {\r\n if (activeEl === first || activeEl === container || !container.contains(activeEl)) {\r\n event.preventDefault()\r\n last.focus()\r\n }\r\n } else if (activeEl === last) {\r\n event.preventDefault()\r\n first.focus()\r\n }\r\n }\r\n\r\n container.addEventListener('keydown', handleKeyDown)\r\n return () => container.removeEventListener('keydown', handleKeyDown)\r\n }, [active, containerRef])\r\n}\r\n","import { useId, useEffect, useRef, useCallback, type CSSProperties, type RefObject } from 'react'\r\n\r\nimport { useTransitionRender } from '@hooks/common/use-transition-render/useTransitionRender'\r\nimport { useKeyPress } from '@hooks/common/use-key-press/useKeyPress'\r\nimport { useBodyScrollLock } from '@hooks/common/use-body-scroll-lock/useBodyScrollLock'\r\nimport { useFocusTrap } from '@hooks/common/use-focus-trap/useFocusTrap'\r\nimport { BREAKPOINTS } from '@constants/breakpoints.constants'\r\nimport { DEFAULT_TRANSITION_DURATION_MS } from '@constants/app.constants'\r\n\r\nimport type { DialogProps } from '@components/overlay/dialog/Dialog.props'\r\n\r\nconst MOBILE_MEDIA_QUERY = `(max-width: ${BREAKPOINTS.sm - 1}px)`\r\n\r\ntype UseDialogReturn = {\r\n isVisible: boolean\r\n isFadingIn: boolean\r\n panelRef: RefObject<HTMLDivElement | null>\r\n titleId: string\r\n labelledBy: string | undefined\r\n handleBackdropClick: () => void\r\n cssVars: CSSProperties\r\n}\r\n\r\nconst resolvePx = (v: number | string): string =>\r\n typeof v === 'number' ? `${v}px` : v\r\n\r\nexport const useDialog = ({\r\n open,\r\n onClose,\r\n closeOnBackdropClick,\r\n maxWidth,\r\n maxHeight,\r\n minWidth,\r\n minHeight,\r\n 'aria-label': ariaLabel,\r\n}: Pick<DialogProps, 'open' | 'onClose' | 'closeOnBackdropClick' | 'maxWidth' | 'maxHeight' | 'minWidth' | 'minHeight' | 'aria-label'>): UseDialogReturn => {\r\n\r\n const { isVisible, isFadingIn } = useTransitionRender(open, DEFAULT_TRANSITION_DURATION_MS)\r\n const titleId = useId()\r\n const panelRef = useRef<HTMLDivElement>(null)\r\n\r\n // Focus the panel after the opening transition completes\r\n useEffect(() => {\r\n if (!open) {return}\r\n const timer = setTimeout(() => {\r\n panelRef.current?.focus({ preventScroll: true })\r\n }, DEFAULT_TRANSITION_DURATION_MS)\r\n return () => clearTimeout(timer)\r\n }, [open])\r\n\r\n // Lock body scroll while the dialog is open, preserving the scrollbar to avoid layout shift\r\n useBodyScrollLock(open)\r\n\r\n // Trap focus within the dialog panel while it is mounted (accessible modal)\r\n useFocusTrap(panelRef, isVisible)\r\n\r\n // Backdrop is always clickable on mobile (bottom-sheet UX), opt-in on desktop\r\n const handleBackdropClick = useCallback(() => {\r\n const isMobile = window.matchMedia(MOBILE_MEDIA_QUERY).matches\r\n if (closeOnBackdropClick || isMobile) {\r\n onClose()\r\n }\r\n }, [closeOnBackdropClick, onClose])\r\n\r\n useKeyPress({ Escape: onClose }, { enabled: open })\r\n\r\n const cssVars: CSSProperties = {\r\n '--dialog-max-width': resolvePx(maxWidth!),\r\n '--dialog-max-height': maxHeight,\r\n ...(minWidth !== undefined && { '--dialog-min-width': resolvePx(minWidth) }),\r\n ...(minHeight !== undefined && { '--dialog-min-height': resolvePx(minHeight) }),\r\n } as CSSProperties\r\n\r\n const labelledBy = ariaLabel ? undefined : titleId\r\n\r\n return { isVisible, isFadingIn, panelRef, titleId, labelledBy, handleBackdropClick, cssVars }\r\n}\r\n","import { useContext, type FC } from 'react'\r\n\r\nimport { IconButton } from '@components/actions/icon-button'\r\nimport { Text } from '@components/foundation/text'\r\nimport { Stack } from '@components/layout/stack'\r\nimport { DialogContext } from '@components/overlay/dialog/Dialog.context'\r\n\r\nimport type { DialogHeaderProps } from '@components/overlay/dialog/dialog-header/DialogHeader.props'\r\n\r\n/**\r\n * Standard dialog header with a title and a close button.\r\n * The `titleId` is wired automatically to the parent Dialog's `aria-labelledby`.\r\n *\r\n * @example\r\n * <Dialog.Header title=\"Confirm action\" onClose={handleClose} />\r\n */\r\nconst DialogHeader: FC<DialogHeaderProps> = ({ title, onClose }) => {\r\n const { titleId, CloseIconComponent } = useContext(DialogContext)\r\n\r\n return (\r\n <Stack\r\n flexDirection={'row'}\r\n alignItems={'center'}\r\n justifyContent={'space-between'}\r\n gap={'md'}\r\n paddingTop={'md'}\r\n paddingBottom={'md'}\r\n paddingLeft={'lg'}\r\n paddingRight={'md'}\r\n flexShrink={0}\r\n >\r\n <Text\r\n id={titleId}\r\n variant={'span'}\r\n fontSize={'md'}\r\n fontWeight={'semibold'}\r\n color={'textPrimary'}\r\n >\r\n {title}\r\n </Text>\r\n\r\n <IconButton\r\n icon={CloseIconComponent}\r\n ariaLabel={'Close dialog'}\r\n variant={'text'}\r\n color={'neutral'}\r\n size={'sm'}\r\n type={'button'}\r\n onClick={onClose}\r\n />\r\n </Stack>\r\n )\r\n}\r\n\r\nDialogHeader.displayName = 'Dialog.Header'\r\n\r\nexport default DialogHeader\r\n","import type { FC } from 'react'\r\n\r\nimport { Box } from '@components/layout/box'\r\n\r\nimport type { DialogBodyProps } from '@components/overlay/dialog/dialog-body/DialogBody.props'\r\n\r\n/**\r\n * Scrollable content area of the dialog.\r\n *\r\n * @example\r\n * <Dialog.Body>\r\n * <p>Are you sure you want to delete this item?</p>\r\n * </Dialog.Body>\r\n */\r\nconst DialogBody: FC<DialogBodyProps> = ({ children }) => (\r\n <Box\r\n flexGrow={1}\r\n minHeight={'0'}\r\n overflowY={'auto'}\r\n padding={'lg'}\r\n >\r\n {children}\r\n </Box>\r\n)\r\n\r\nDialogBody.displayName = 'Dialog.Body'\r\n\r\nexport default DialogBody\r\n","import { createPortal } from 'react-dom'\r\nimport { type FC } from 'react'\r\nimport { cx } from '@aurora-ds/theme'\r\n\r\nimport CloseIcon from '@resources/assets/icons/CloseIcon.svg?react'\r\nimport { DIALOG_STYLES } from '@components/overlay/dialog/Dialog.styles'\r\nimport { DialogContext } from '@components/overlay/dialog/Dialog.context'\r\nimport { useDialog } from '@components/overlay/dialog/utils/useDialog.utils'\r\nimport DialogHeader from '@components/overlay/dialog/dialog-header/DialogHeader'\r\nimport DialogBody from '@components/overlay/dialog/dialog-body/DialogBody'\r\n\r\nimport type { DialogProps } from '@components/overlay/dialog/Dialog.props'\r\nimport type { DialogComponent } from '@components/overlay/dialog/Dialog.types'\r\n\r\n/**\r\n * Modal dialog with a semi-transparent overlay. Supports responsive layout:\r\n * centered on desktop, full-width bottom sheet on mobile (< sm breakpoint).\r\n *\r\n * Animated via `useTransitionRender` on both open and close.\r\n * Closed by pressing Escape or using `Dialog.Header`'s built-in close button.\r\n * Backdrop click: always enabled on mobile, opt-in on desktop via `closeOnBackdropClick`.\r\n *\r\n * @example\r\n * <Dialog open={open} onClose={() => setOpen(false)}>\r\n * <Dialog.Header title=\"Settings\" onClose={() => setOpen(false)} />\r\n * <Dialog.Body>…content…</Dialog.Body>\r\n * </Dialog>\r\n */\r\nconst DialogBase: FC<DialogProps> = ({\r\n open,\r\n onClose,\r\n children,\r\n closeOnBackdropClick = false,\r\n fullscreen = false,\r\n maxWidth = '80vw',\r\n maxHeight = '80vh',\r\n minWidth,\r\n minHeight,\r\n 'aria-label': ariaLabel,\r\n}) => {\r\n const { isVisible, isFadingIn, panelRef, titleId, labelledBy, handleBackdropClick, cssVars } =\r\n useDialog({ open, onClose, closeOnBackdropClick, maxWidth, maxHeight, minWidth, minHeight, 'aria-label': ariaLabel })\r\n\r\n if (!isVisible) {return null}\r\n\r\n return createPortal(\r\n <>\r\n <div\r\n className={cx(DIALOG_STYLES.backdrop, isFadingIn && DIALOG_STYLES.backdropVisible)}\r\n onClick={handleBackdropClick}\r\n aria-hidden={true}\r\n />\r\n\r\n <div\r\n ref={panelRef}\r\n role={'dialog'}\r\n aria-modal={true}\r\n aria-labelledby={labelledBy}\r\n aria-label={ariaLabel}\r\n tabIndex={-1}\r\n className={cx(\r\n DIALOG_STYLES.panel,\r\n isFadingIn && DIALOG_STYLES.panelVisible,\r\n fullscreen && DIALOG_STYLES.panelFullscreen,\r\n )}\r\n style={cssVars}\r\n >\r\n <DialogContext.Provider value={{ titleId, CloseIconComponent: CloseIcon }}>\r\n {children}\r\n </DialogContext.Provider>\r\n </div>\r\n </>,\r\n document.body\r\n )\r\n}\r\n\r\nDialogBase.displayName = 'Dialog'\r\n\r\nconst Dialog = DialogBase as DialogComponent\r\nDialog.Header = DialogHeader\r\nDialog.Body = DialogBody\r\n\r\nexport default Dialog\r\n","export const lightPalette = {\r\n // Surface\r\n surfaceBackground: '#f8fafc',\r\n surfacePaper: '#ffffff',\r\n surfaceElevated: '#f1f5f9',\r\n\r\n // Text\r\n textPrimary: '#0f172a',\r\n textSecondary: '#475569',\r\n textTertiary: '#64748b',\r\n textDisabled: '#94a3b8',\r\n textInverse: '#ffffff',\r\n\r\n // Primary (Indigo brand)\r\n primaryMain: '#5b5aef',\r\n primaryHover: '#4f46e5',\r\n primaryActive: '#4338ca',\r\n primarySubtle: '#eef2ff',\r\n primarySubtleHover: '#e0e7ff',\r\n primarySubtleActive: '#c7d2fe',\r\n primaryDisabled: '#a5b4fc',\r\n primaryOn: '#ffffff',\r\n\r\n // Secondary (Slate neutral)\r\n secondaryMain: '#f1f5f9',\r\n secondaryHover: '#e2e8f0',\r\n secondaryActive: '#cbd5e1',\r\n secondarySubtle: '#f8fafc',\r\n secondarySubtleHover: '#f1f5f9',\r\n secondarySubtleActive: '#e2e8f0',\r\n secondaryDisabled: '#e2e8f0',\r\n secondaryOn: '#1e293b',\r\n\r\n // Border\r\n borderSubtle: '#f1f5f9',\r\n borderMain: '#e2e8f0',\r\n borderStrong: '#cbd5e1',\r\n\r\n // Disabled state\r\n disabledMain: '#e2e8f0',\r\n disabledText: '#94a3b8',\r\n\r\n // Success (Emerald)\r\n successMain: '#059669',\r\n successHover: '#047857',\r\n successActive: '#065f46',\r\n successSubtle: '#d1fae5',\r\n successSubtleHover: '#a7f3d0',\r\n successSubtleActive: '#6ee7b7',\r\n successOn: '#ffffff',\r\n\r\n // Warning (Amber)\r\n warningMain: '#d97706',\r\n warningHover: '#b45309',\r\n warningActive: '#92400e',\r\n warningSubtle: '#fef3c7',\r\n warningSubtleHover: '#fde68a',\r\n warningSubtleActive: '#fcd34d',\r\n warningOn: '#ffffff',\r\n\r\n // Error (Red)\r\n errorMain: '#dc2626',\r\n errorHover: '#b91c1c',\r\n errorActive: '#991b1b',\r\n errorSubtle: '#fee2e2',\r\n errorSubtleHover: '#fecaca',\r\n errorSubtleActive: '#fca5a5',\r\n errorOn: '#ffffff',\r\n\r\n // Info (Sky)\r\n infoMain: '#0284c7',\r\n infoHover: '#0369a1',\r\n infoActive: '#0c4a6e',\r\n infoSubtle: '#e0f2fe',\r\n infoSubtleHover: '#bae6fd',\r\n infoSubtleActive: '#7dd3fc',\r\n infoOn: '#ffffff',\r\n\r\n // Orange\r\n orangeMain: '#ea580c',\r\n orangeHover: '#c2410c',\r\n orangeActive: '#9a2e0f',\r\n orangeSubtle: '#ffedd5',\r\n orangeSubtleHover: '#fed7aa',\r\n orangeSubtleActive: '#fdba74',\r\n orangeOn: '#ffffff',\r\n\r\n // Pink\r\n pinkMain: '#db2777',\r\n pinkHover: '#be185d',\r\n pinkActive: '#9d174d',\r\n pinkSubtle: '#fce7f3',\r\n pinkSubtleHover: '#fbcfe8',\r\n pinkSubtleActive: '#f9a8d4',\r\n pinkOn: '#ffffff',\r\n\r\n // Violet\r\n violetMain: '#7c3aed',\r\n violetHover: '#6d28d9',\r\n violetActive: '#5b21b6',\r\n violetSubtle: '#ede9fe',\r\n violetSubtleHover: '#ddd6fe',\r\n violetSubtleActive: '#c4b5fd',\r\n violetOn: '#ffffff',\r\n\r\n // Default (Slate)\r\n defaultMain: '#64748b',\r\n defaultHover: '#475569',\r\n defaultActive: '#334155',\r\n defaultSubtle: '#f1f5f9',\r\n defaultSubtleHover: '#e2e8f0',\r\n defaultSubtleActive: '#cbd5e1',\r\n\r\n // Skeleton\r\n skeletonPrimary: '#dde3ec',\r\n skeletonSecondary: '#edf0f5',\r\n\r\n // Link (Blue)\r\n linkMain: '#1e40af',\r\n linkHover: '#1d4ed8',\r\n linkActive: '#2563eb',\r\n linkDisabled: '#93c5fd',\r\n}\r\n","/**\r\n * Default breakpoint tokens\r\n */\r\nexport const themeBreakpoints = {\r\n xs: '480px', // Extra small devices (phones in landscape)\r\n sm: '640px', // Small devices (large phones, small tablets)\r\n md: '768px', // Medium devices (tablets)\r\n lg: '1024px', // Large devices (desktops)\r\n xl: '1280px', // Extra large devices (large desktops)\r\n '2xl': '1536px', // Extra extra large devices (wide screens)\r\n}\r\n","/**\r\n * Default font size tokens\r\n */\r\nexport const themeFontSize = {\r\n '2xs': '0.625rem', // 10px\r\n xs: '0.75rem', // 12px\r\n sm: '0.875rem', // 14px\r\n md: '1rem', // 16px\r\n lg: '1.25rem', // 20px\r\n xl: '1.5rem', // 24px\r\n '2xl': '2rem', // 32px\r\n '3xl': '2.5rem', // 40px\r\n '4xl': '3rem', // 48px\r\n '5xl': '4rem', // 64px\r\n}\r\n","/**\r\n * Default font weight tokens\r\n */\r\nexport const themeFontWeight = {\r\n light: 300,\r\n regular: 400,\r\n medium: 500,\r\n semibold: 600,\r\n bold: 700,\r\n}\r\n","/**\r\n * Default line height tokens\r\n */\r\nexport const themeLineHeight = {\r\n none: 1,\r\n tight: 1.25,\r\n normal: 1.5,\r\n relaxed: 1.75,\r\n loose: 2,\r\n}\r\n","/**\r\n * Default opacity tokens\r\n */\r\nexport const themeOpacity = {\r\n none: 0,\r\n lowest: 0.05,\r\n low: 0.1,\r\n medium: 0.25,\r\n high: 0.5,\r\n higher: 0.75,\r\n full: 1,\r\n}\r\n","/**\r\n * Default border radius tokens\r\n */\r\nexport const themeRadius = {\r\n none: '0',\r\n xs: '0.125rem', // 2px\r\n sm: '0.25rem', // 4px\r\n md: '0.375rem', // 6px\r\n lg: '0.5rem', // 8px\r\n xl: '0.75rem', // 12px\r\n '2xl': '1rem', // 16px\r\n full: '9999px',\r\n}\r\n","/**\r\n * Default shadow tokens\r\n */\r\nexport const themeShadows = {\r\n none: 'none',\r\n xs: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\r\n sm: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\r\n md: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\r\n lg: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\r\n xl: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\r\n '2xl': '0 25px 50px -12px rgb(0 0 0 / 0.25)',\r\n inner: 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',\r\n focus: '0 0 0 3px rgb(99 102 241 / 0.4)',\r\n dropSm: 'drop-shadow(0 1px 3px rgb(0 0 0 / 0.1)) drop-shadow(0 1px 2px rgb(0 0 0 / 0.1))',\r\n}\r\n","/**\r\n * Default spacing tokens\r\n */\r\nexport const themeSpacing = {\r\n none: '0',\r\n '2xs': '0.125rem', // 2px\r\n xs: '0.25rem', // 4px\r\n 'xs+': '0.375rem', // 6px\r\n sm: '0.5rem', // 8px\r\n md: '1rem', // 16px\r\n lg: '1.5rem', // 24px\r\n xl: '2rem', // 32px\r\n '2xl': '3rem', // 48px\r\n '3xl': '4rem', // 64px\r\n '4xl': '6rem', // 96px\r\n '5xl': '8rem', // 128px\r\n}\r\n","/**\r\n * Default transition tokens\r\n */\r\nexport const themeTransition = {\r\n fast: '150ms ease-out',\r\n normal: '250ms ease-out',\r\n slow: '350ms ease-out',\r\n}\r\n","/**\r\n * Default z-index tokens\r\n */\r\nexport const themeZIndex = {\r\n behind: -1,\r\n base: 0,\r\n dropdown: 1000,\r\n sticky: 1100,\r\n overlay: 1300,\r\n modal: 1400,\r\n popover: 1500,\r\n tooltip: 1600,\r\n toast: 1700,\r\n}\r\n","import { createTheme } from '@aurora-ds/theme'\r\nimport { lightPalette } from '@theme/_palettes/lightPalette'\r\nimport { themeBreakpoints } from '@theme/values/themeBreakpoints'\r\nimport { themeFontSize } from '@theme/values/themeFontSize'\r\nimport { themeFontWeight } from '@theme/values/themeFontWeight'\r\nimport { themeLineHeight } from '@theme/values/themeLineHeight'\r\nimport { themeOpacity } from '@theme/values/themeOpacity'\r\nimport { themeRadius } from '@theme/values/themeRadius'\r\nimport { themeShadows } from '@theme/values/themeShadows'\r\nimport { themeSpacing } from '@theme/values/themeSpacing'\r\nimport { themeTransition } from '@theme/values/themeTransition'\r\nimport { themeZIndex } from '@theme/values/themeZIndex'\r\n\r\nexport const lightTheme = createTheme({\r\n colors: lightPalette,\r\n spacing: themeSpacing,\r\n radius: themeRadius,\r\n shadows: themeShadows,\r\n fontSize: themeFontSize,\r\n fontWeight: themeFontWeight,\r\n lineHeight: themeLineHeight,\r\n zIndex: themeZIndex,\r\n transition: themeTransition,\r\n opacity: themeOpacity,\r\n breakpoints: themeBreakpoints,\r\n})\r\n","export const darkPalette = {\r\n // Surface\r\n surfaceBackground: '#0f172a',\r\n surfacePaper: '#1e293b',\r\n surfaceElevated: '#273548',\r\n\r\n // Text\r\n textPrimary: '#f8fafc',\r\n textSecondary: '#cbd5e1',\r\n textTertiary: '#64748b',\r\n textDisabled: '#475569',\r\n textInverse: '#0f172a',\r\n\r\n // Primary (Indigo brand, lighter for dark bg)\r\n primaryMain: '#a5b4fc',\r\n primaryHover: '#c7d2fe',\r\n primaryActive: '#ddd6fe',\r\n primarySubtle: '#1e1b4b',\r\n primarySubtleHover: '#2d2a5e',\r\n primarySubtleActive: '#3b3878',\r\n primaryDisabled: '#4338ca',\r\n primaryOn: '#ffffff',\r\n\r\n // Secondary (Slate dark)\r\n secondaryMain: '#1e293b',\r\n secondaryHover: '#273548',\r\n secondaryActive: '#334155',\r\n secondarySubtle: '#0f172a',\r\n secondarySubtleHover: '#1e293b',\r\n secondarySubtleActive: '#273548',\r\n secondaryDisabled: '#1e293b',\r\n secondaryOn: '#f1f5f9',\r\n\r\n // Border\r\n borderSubtle: '#1e293b',\r\n borderMain: '#334155',\r\n borderStrong: '#475569',\r\n\r\n // Disabled state\r\n disabledMain: '#334155',\r\n disabledText: '#475569',\r\n\r\n // Success (Emerald)\r\n successMain: '#6ee7b7',\r\n successHover: '#a7f3d0',\r\n successActive: '#d1fae5',\r\n successSubtle: '#052e1f',\r\n successSubtleHover: '#063d29',\r\n successSubtleActive: '#084e35',\r\n successOn: '#0a0a0a',\r\n\r\n // Warning (Amber)\r\n warningMain: '#fcd34d',\r\n warningHover: '#fde68a',\r\n warningActive: '#fef3c7',\r\n warningSubtle: '#3a2a05',\r\n warningSubtleHover: '#4d390a',\r\n warningSubtleActive: '#62480e',\r\n warningOn: '#0a0a0a',\r\n\r\n // Error (Red)\r\n errorMain: '#fca5a5',\r\n errorHover: '#fecaca',\r\n errorActive: '#fee2e2',\r\n errorSubtle: '#3a0d0d',\r\n errorSubtleHover: '#4d1212',\r\n errorSubtleActive: '#621818',\r\n errorOn: '#0a0a0a',\r\n\r\n // Info (Sky)\r\n infoMain: '#7dd3fc',\r\n infoHover: '#bae6fd',\r\n infoActive: '#e0f2fe',\r\n infoSubtle: '#08263a',\r\n infoSubtleHover: '#0a3352',\r\n infoSubtleActive: '#0c4068',\r\n infoOn: '#0a0a0a',\r\n\r\n // Orange\r\n orangeMain: '#fdba74',\r\n orangeHover: '#fed7aa',\r\n orangeActive: '#ffedd5',\r\n orangeSubtle: '#3b1906',\r\n orangeSubtleHover: '#4f2309',\r\n orangeSubtleActive: '#642d0d',\r\n orangeOn: '#0a0a0a',\r\n\r\n // Pink\r\n pinkMain: '#f9a8d4',\r\n pinkHover: '#fbcfe8',\r\n pinkActive: '#fce7f3',\r\n pinkSubtle: '#3d0f28',\r\n pinkSubtleHover: '#511539',\r\n pinkSubtleActive: '#66204b',\r\n pinkOn: '#0a0a0a',\r\n\r\n // Violet\r\n violetMain: '#c4b5fd',\r\n violetHover: '#ddd6fe',\r\n violetActive: '#ede9fe',\r\n violetSubtle: '#22103f',\r\n violetSubtleHover: '#2f1856',\r\n violetSubtleActive: '#3d2270',\r\n violetOn: '#0a0a0a',\r\n\r\n // Default (Slate)\r\n defaultMain: '#94a3b8',\r\n defaultHover: '#cbd5e1',\r\n defaultActive: '#e2e8f0',\r\n defaultSubtle: '#1e293b',\r\n defaultSubtleHover: '#273548',\r\n defaultSubtleActive: '#334155',\r\n\r\n // Skeleton\r\n skeletonPrimary: '#1e293b',\r\n skeletonSecondary: '#3d5068',\r\n\r\n // Link (Blue)\r\n linkMain: '#93c5fd',\r\n linkHover: '#bfdbfe',\r\n linkActive: '#dbeafe',\r\n linkDisabled: '#1e40af',\r\n}\r\n","import { createTheme } from '@aurora-ds/theme'\r\nimport { darkPalette } from '@theme/_palettes/darkPalette'\r\nimport { themeBreakpoints } from '@theme/values/themeBreakpoints'\r\nimport { themeFontSize } from '@theme/values/themeFontSize'\r\nimport { themeFontWeight } from '@theme/values/themeFontWeight'\r\nimport { themeLineHeight } from '@theme/values/themeLineHeight'\r\nimport { themeOpacity } from '@theme/values/themeOpacity'\r\nimport { themeRadius } from '@theme/values/themeRadius'\r\nimport { themeShadows } from '@theme/values/themeShadows'\r\nimport { themeSpacing } from '@theme/values/themeSpacing'\r\nimport { themeTransition } from '@theme/values/themeTransition'\r\nimport { themeZIndex } from '@theme/values/themeZIndex'\r\n\r\nexport const darkTheme = createTheme({\r\n colors: darkPalette,\r\n spacing: themeSpacing,\r\n radius: themeRadius,\r\n shadows: themeShadows,\r\n fontSize: themeFontSize,\r\n fontWeight: themeFontWeight,\r\n lineHeight: themeLineHeight,\r\n zIndex: themeZIndex,\r\n transition: themeTransition,\r\n opacity: themeOpacity,\r\n breakpoints: themeBreakpoints,\r\n})\r\n"],"names":["_jsx","LABEL_FONT_SIZE","ICON_SIZE","_jsxs","VIEWPORT_MARGIN_PX","_Fragment","ICON_SIZE_MAP","HELPER_COLOR_MAP"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,MAAM,YAAY,GAAG;IAExB,cAQM;;ACpBH,MAAM,aAAa,GAAG,SAAS,CAAC;AACnC,IAAA,IAAI,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE;AACnC,IAAA,MAAM,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE;AAC1C,CAAA,CAAC;AAEK,MAAM,wBAAwB,GAAG,SAAS,CAAC;AAC9C,IAAA,IAAI,EAAE,EAAE,kBAAkB,EAAE,UAAU,EAAE;AACxC,IAAA,MAAM,EAAE,EAAE,kBAAkB,EAAE,QAAQ,EAAE;AAC3C,CAAA,CAAC;;ACLF,MAAM,WAAW,GAAoB,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC;AAE/D,MAAM,4BAA4B,GAAG,CAAC,KAM5C,MAAwB;AACrB,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,cAAc,EAAE,QAAQ;AACxB,IAAA,SAAS,EAAE,YAAY;AACvB,IAAA,MAAM,EAAE,uBAAuB;AAC/B,IAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,CAAA,iBAAA,EAAoB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,eAAA,EAAkB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,QAAA,EAAW,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,aAAA,EAAgB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;IACnK,gBAAgB,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE;AACpD,IAAA,WAAW,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE;AACzF,CAAA,CAAC;AAEK,MAAM,iCAAiC,GAAG,CAAC,KAGjD,KAA2H;AACxH,IAAA,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM;AAEtB,IAAA,MAAM,OAAO,GAAoB;AAC7B,QAAA,OAAO,EAAE;AACL,YAAA,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,aAAa;YACnE,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC,kBAAkB,EAAE,YAAY,EAAE,CAAC,CAAC,mBAAmB;AAChH,YAAA,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,WAAW;AACpE,SAAA;AACD,QAAA,SAAS,EAAE;AACP,YAAA,IAAI,EAAE,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,eAAe;YACzE,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,eAAe,EAAE,WAAW,EAAE,CAAC,CAAC,oBAAoB,EAAE,YAAY,EAAE,CAAC,CAAC,qBAAqB;AACxH,YAAA,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,YAAY;AACpE,SAAA;AACD,QAAA,OAAO,EAAE;AACL,YAAA,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,aAAa;YACnE,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC,kBAAkB,EAAE,YAAY,EAAE,CAAC,CAAC,mBAAmB;AAClH,YAAA,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,WAAW;AACpE,SAAA;AACD,QAAA,IAAI,EAAE;AACF,YAAA,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,UAAU;YAC1D,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC,eAAe,EAAE,YAAY,EAAE,CAAC,CAAC,gBAAgB;AACpG,YAAA,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ;AAC3D,SAAA;AACD,QAAA,OAAO,EAAE;AACL,YAAA,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,aAAa;YACnE,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC,kBAAkB,EAAE,YAAY,EAAE,CAAC,CAAC,mBAAmB;AAChH,YAAA,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,WAAW;AACpE,SAAA;AACD,QAAA,OAAO,EAAE;AACL,YAAA,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,aAAa;YACnE,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC,kBAAkB,EAAE,YAAY,EAAE,CAAC,CAAC,mBAAmB;AAChH,YAAA,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,WAAW;AACpE,SAAA;AACD,QAAA,KAAK,EAAE;AACH,YAAA,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,WAAW;YAC7D,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC,gBAAgB,EAAE,YAAY,EAAE,CAAC,CAAC,iBAAiB;AACxG,YAAA,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,SAAS;AAC9D,SAAA;KACJ;AAED,IAAA,MAAM,gBAAgB,GAAG,CAAC,MAAoC,EAAE,UAAyB,KAAsB;AAC3G,QAAA,IAAI,UAAU,KAAK,WAAW,EAAE;YAC5B,OAAO;gBACH,eAAe,EAAE,MAAM,CAAC,IAAI;gBAC5B,WAAW,EAAE,MAAM,CAAC,IAAI;gBACxB,KAAK,EAAE,MAAM,CAAC,EAAE;AAChB,gBAAA,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;gBAC3B,uBAAuB,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE;gBAClH,wBAAwB,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;aAC1H;QACL;AAEA,QAAA,IAAI,UAAU,KAAK,UAAU,EAAE;YAC3B,OAAO;AACH,gBAAA,eAAe,EAAE,aAAa;gBAC9B,WAAW,EAAE,MAAM,CAAC,MAAM;gBAC1B,KAAK,EAAE,MAAM,CAAC,EAAE;AAChB,gBAAA,uBAAuB,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE;AACvF,gBAAA,wBAAwB,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;aACvH;QACL;QAEA,OAAO;AACH,YAAA,eAAe,EAAE,aAAa;AAC9B,YAAA,WAAW,EAAE,aAAa;YAC1B,KAAK,EAAE,MAAM,CAAC,EAAE;AAChB,YAAA,uBAAuB,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE;AACvF,YAAA,wBAAwB,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;SAC3F;AACL,IAAA,CAAC;IAED,OAAQ,MAAM,CAAC,IAAI,CAAC,OAAO,CAAmB,CAAC,OAAO,CAAC,CAAC,KAAK,KACzD,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,MAAM;QAC7B,KAAK;AACL,QAAA,OAAO,EAAE,UAAU;QACnB,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;KACvD,CAAC,CAAC,CACmH;AAC9H,CAAC;;AC3GM,MAAM,eAAe,GAAG,cAAc,CAAC,CAAC,KAAK,MAAM;AACtD,IAAA,IAAI,EAAE,4BAA4B,CAAC,KAAK,CAAC;AACzC,IAAA,QAAQ,EAAE;AACN,QAAA,IAAI,EAAE;YACF,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA,EAAA,EAAK,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE;YACrF,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA,EAAA,EAAK,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE;YACvF,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA,EAAA,EAAK,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE;AACxF,SAAA;;AAED,QAAA,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;AAClD,QAAA,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;AACpG,KAAA;AACD,IAAA,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE;AACvE,IAAA,gBAAgB,EAAE,iCAAiC,CAAC,KAAK,CAAC;AAC7D,CAAA,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;AAEd,MAAM,aAAa,GAAG,YAAY,CAAC;;AAEtC,IAAA,OAAO,EAAE;AACL,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,GAAG,EAAE,OAAO;AACf,KAAA;;AAED,IAAA,aAAa,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE;;AAEvC,IAAA,WAAW,EAAE;AACT,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,cAAc,EAAE,QAAQ;AAC3B,KAAA;;AAED,IAAA,WAAW,EAAE;QACT,SAAS,EAAE,CAAA,EAAG,aAAa,CAAA,sBAAA,CAAwB;AACnD,QAAA,yCAAyC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;AACnE,KAAA;AACJ,CAAA,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC;;ACxCnB,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,KAAK,MAAM;AAChD,IAAA,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAmB,MAAM;AAC7F,QAAA,SAAS,EAAE,aAAsB;AACjC,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,UAAU,EAAE,CAAA,MAAA,EAAS,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,OAAA,EAAU,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AAC3E,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,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,MAAM,CAAC;AAClD,QAAA,OAAO,EAAE;AACL,YAAA,KAAK,EAAE,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS;AAC1D,YAAA,MAAM,EAAE,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS;AAC9D,SAAA;AACD,QAAA,yDAAyD,EAAE;AACvD,YAAA,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS;AAC9C,SAAA;KACJ,CAAC;AACL,CAAA,CAAC,CAAC;;ACzBH;;;;;AAKG;AACH,MAAM,IAAI,GAAkB,CACxB,EACI,GAAG,EACH,IAAI,EAAE,OAAO,EACb,IAAI,EACJ,WAAW,EACX,IAAI,EACJ,eAAe,EACf,OAAO,EACP,YAAY,EACZ,SAAS,EACT,IAAI,EACJ,GAAG,IAAI,EACV,KACD;IACA,MAAM,kBAAkB,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AAChH,IAAA,MAAM,eAAe,GAAG,SAAS,GAAG,CAAA,EAAG,kBAAkB,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,GAAG,kBAAkB;AAC7F,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAEzE,QACIA,aACI,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,eAAe,EAAA,aAAA,EACb,UAAU,GAAG,SAAS,GAAG,IAAI,EAC1C,IAAI,EAAE,IAAI,KAAK,UAAU,GAAG,KAAK,GAAG,cAAc,CAAC,EAAA,GAC/C,IAAI,EAAA,QAAA,EAERA,GAAA,CAAC,OAAO,EAAA,EACJ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EAAA,CAChB,EAAA,CACA;AAEd;AAEA,IAAI,CAAC,WAAW,GAAG,MAAM;;AC1CzB;AACO,MAAM,oBAAoB,GAAG,CAAC,KAAY,MAA8C;AAC3F,IAAA,EAAE,EAAE;AACA,QAAA,GAAG,EAAE,IAAI;AACT,QAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/B,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,KAAK,CAAC;AAC/B,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,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,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;AACD,IAAA,MAAM,EAAE;AACJ,QAAA,GAAG,EAAE,QAAQ;AACb,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,MAAM;AACtC,KAAA;AACJ,CAAA,CAAC;;AC5DK,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,KAAK,KAAI;AAC9C,IAAA,MAAM,aAAa,GAAG,oBAAoB,CAAC,KAAK,CAAC;IAEjD,OAAO;AACH,QAAA,IAAI,EAAE,CAAC,EACH,OAAO,GAAG,MAAM,EAChB,KAAK,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,UAAU,EACV,SAAS,EACT,aAAa,EACb,MAAM,EACN,MAAM,EACN,kBAAkB,EAClB,KAAK,EACL,aAAa,EACb,aAAa,EACb,SAAS,GACK,KAAI;AAClB,YAAA,MAAM,cAAc,GAChB,SAAS,IAAI;AACT,kBAAE;AACF,kBAAE;AACE,sBAAE;AACF,sBAAE;AACE,0BAAE;0BACA,SAAS;YAE3B,OAAO;AACH,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,QAAQ;AAC/E,gBAAA,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,UAAU;AACzF,gBAAA,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,UAAU;AACzF,gBAAA,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS;AAC9C,gBAAA,MAAM,EAAE,SAAS;gBACjB,IAAI,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC;AACrC,gBAAA,IAAI,UAAU,IAAI,EAAE,UAAU,EAAE,CAAC;AACjC,gBAAA,IAAI,aAAa,IAAI,EAAE,aAAa,EAAE,CAAC;gBACvC,IAAI,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,CAAC;AACrD,gBAAA,IAAI,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;gBAC/B,IAAI,MAAM,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;;;AAGtC,gBAAA,IAAI;AACA,sBAAE,EAAE,UAAU,EAAE,QAAiB;AACjC,sBAAE;AACE,0BAAE,EAAE,UAAU,EAAE,UAAmB;0BACjC,EAAE,CAAC;gBACb,IAAI,cAAc,IAAI;oBAClB,cAAc;oBACd,IAAI,SAAS,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC;iBACnD,CAAC;aACL;QACL,CAAC;KACJ;AACL,CAAC,CAAC;;AC/DF;;;;;AAKG;AACI,MAAM,qBAAqB,GAAG,CAAC,QAAgB,KAAI;AACtD,IAAA,IAAI,QAAQ,KAAK,CAAC,EAAE;QAChB,OAAO;AACH,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,UAAU,EAAE,QAAiB;SAChC;IACL;IAEA,OAAO;AACH,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,YAAY,EAAE,UAAU;AACxB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,eAAe,EAAE,QAAQ;AACzB,QAAA,eAAe,EAAE,UAAmB;AACpC,QAAA,UAAU,EAAE,QAAiB;AAC7B,QAAA,YAAY,EAAE,YAAqB;AACnC,QAAA,SAAS,EAAE,YAAqB;KACnC;AACL,CAAC;;ACvBD;;;;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,CACN,aAAa,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,OAAO,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;AAClD,CAAC;;AC7BD;;;;;;;;AAQG;AACH,MAAM,IAAI,GAAkB,CACxB,EACI,GAAG,EACH,QAAQ,EACR,OAAO,GAAG,MAAM,EAChB,EAAE,EACF,KAAK,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,UAAU,EACV,KAAK,EACL,aAAa,EACb,aAAa,EACb,SAAS,EACT,SAAS,EACT,aAAa,EACb,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,kBAAkB,EAClB,OAAO,EACP,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACV,KACD;AACA,IAAA,MAAM,KAAK,GAAG,QAAQ,EAAE;AACxB,IAAA,MAAM,aAAa,GAAG,oBAAoB,CAAC,KAAK,CAAC;IAEjD,MAAM,cAAc,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ;IAC9C,MAAM,GAAG,GAAG,EAAE,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG;AAC5C,IAAA,MAAM,cAAc,GAAG,iBAAiB,CAAC,QAAQ,CAAC;AAClD,IAAA,MAAM,cAAc,GAAG,cAAc,GAAG,qBAAqB,CAAC,cAAc,CAAC,GAAG,SAAS;AAEzF,IAAA,MAAM,kBAAkB,GAAG,WAAW,CAAC,IAAI,CAAC;QACxC,OAAO;QACP,KAAK;QACL,QAAQ;QACR,UAAU;QACV,UAAU;QACV,UAAU;QACV,SAAS;QACT,aAAa;QACb,MAAM;QACN,MAAM,EAAE,cAAc,GAAG,KAAK,GAAG,MAAM;QACvC,kBAAkB;QAClB,KAAK;QACL,aAAa;QACb,aAAa;QACb,SAAS;AACZ,KAAA,CAAC;AAEF,IAAA,MAAM,eAAe,GAAG,SAAS,GAAG,CAAA,EAAG,kBAAkB,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,GAAG,kBAAkB;AAC7F,IAAA,MAAM,WAAW,GAAG,cAAc,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK;IAE5E,OAAO,aAAa,CAChB,GAAG,EACH;QACI,GAAG;AACH,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,KAAK,EAAE,WAAW;AAClB,QAAA,IAAI,GAAG,KAAK,OAAO,IAAI,OAAO,KAAK,SAAS,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AAChE,QAAA,GAAG,IAAI;KACV,EACD,cAAc,CACjB;AACL;;AC1EA;AACA,MAAMC,iBAAe,GAAgD;AACjE,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;CACX;AAED;AACA,MAAMC,WAAS,GAAgD;AAC3D,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;CACX;AAED;;;;;;AAMG;AACH,MAAM,MAAM,GAAoB,CAC5B,EACI,GAAG,EACH,OAAO,GAAG,WAAW,EACrB,KAAK,GAAG,SAAS,EACjB,IAAI,GAAG,IAAI,EACX,KAAK,EACL,QAAQ,EACR,UAAU,EACV,SAAS,GAAG,KAAK,EACjB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,KAAK,EACL,SAAS,EACT,IAAI,GAAG,QAAQ,EACf,QAAQ,EACR,KAAK,EACL,GAAG,IAAI,EACV,KACD;AACA,IAAA,MAAM,UAAU,GAAG,QAAQ,IAAI,SAAS;AACxC,IAAA,MAAM,QAAQ,GAAGA,WAAS,CAAC,IAAI,CAAC;AAEhC,IAAA,MAAM,aAAa,GAAG,eAAe,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC;AAC1E,IAAA,MAAM,WAAW,GAAG;AAChB,QAAA,GAAG,KAAK;AACR,QAAA,IAAI,KAAK,KAAK,SAAS,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACzC,QAAA,IAAI,QAAQ,KAAK,SAAS,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;AAC/C,QAAA,IAAI,UAAU,KAAK,SAAS,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;KACtD;AAED,IAAA,QACIC,IAAA,CAAA,QAAA,EAAA,EACI,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,UAAU,EAAA,WAAA,EACT,SAAS,IAAI,SAAS,EACjC,KAAK,EAAE,WAAW,EAAA,GACd,IAAI,EAAA,QAAA,EAAA,CAEP,SAAS,KACNH,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,aAAa,CAAC,WAAW,EAAA,QAAA,EACtCA,GAAA,CAAC,IAAI,EAAA,EACD,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,aAAa,CAAC,WAAW,EAAA,CACtC,EAAA,CACC,CACV,EAEDG,IAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,IAAI,aAAa,CAAC,aAAa,CAAC,EAAA,QAAA,EAAA,CAC/E,SAAS,KACNH,GAAA,CAAC,IAAI,EAAA,EACD,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,QAAQ,EAAA,CAChB,CACL,EAEA,KAAK,KACFA,GAAA,CAAC,IAAI,EAAA,EACD,OAAO,EAAE,MAAM,EACf,QAAQ,EAAEC,iBAAe,CAAC,IAAI,CAAC,EAC/B,UAAU,EAAE,QAAQ,EACpB,UAAU,EAAE,MAAM,EAAA,QAAA,EAEjB,KAAK,EAAA,CACH,CACV,EAEA,OAAO,KACJD,GAAA,CAAC,IAAI,EAAA,EACD,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,QAAQ,EAAA,CAChB,CACL,CAAA,EAAA,CACE,CAAA,EAAA,CACF;AAEjB;AAEA,MAAM,CAAC,WAAW,GAAG,QAAQ;;AC7GtB,MAAM,oBAAoB,GAAG,cAAc,CAAC,CAAC,KAAK,MAAM;AAC3D,IAAA,IAAI,EAAE,4BAA4B,CAAC,KAAK,CAAC;AACzC,IAAA,QAAQ,EAAE;AACN,QAAA,IAAI,EAAE;AACF,YAAA,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE;AACnD,YAAA,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE;AACvD,YAAA,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE;AACtD,SAAA;AACD,QAAA,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;AAClD,QAAA,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;AACpG,KAAA;AACD,IAAA,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE;AACvE,IAAA,gBAAgB,EAAE,iCAAiC,CAAC,KAAK,CAAC;AAC7D,CAAA,CAAC,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC;AAEnB,MAAM,kBAAkB,GAAG,YAAY,CAAC;;AAE3C,IAAA,WAAW,EAAE;QACT,SAAS,EAAE,CAAA,EAAG,aAAa,CAAA,sBAAA,CAAwB;AACnD,QAAA,yCAAyC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;AACnE,KAAA;;AAED,IAAA,UAAU,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE;;AAEpC,IAAA,WAAW,EAAE;AACT,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,cAAc,EAAE,QAAQ;AAC3B,KAAA;AACJ,CAAA,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,CAAC;;ACzB/B;AACA,MAAME,WAAS,GAAgD;AAC3D,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;CACX;AAED;;;;;;;AAOG;AACH,MAAM,UAAU,GAAwB,CACpC,EACI,GAAG,EACH,IAAI,EAAE,aAAa,EACnB,SAAS,EACT,OAAO,GAAG,WAAW,EACrB,KAAK,GAAG,SAAS,EACjB,IAAI,GAAG,IAAI,EACX,SAAS,GAAG,KAAK,EACjB,SAAS,EACT,IAAI,GAAG,QAAQ,EACf,QAAQ,EACR,GAAG,IAAI,EACV,KACD;AACA,IAAA,MAAM,UAAU,GAAG,QAAQ,IAAI,SAAS;AACxC,IAAA,MAAM,QAAQ,GAAGA,WAAS,CAAC,IAAI,CAAC;AAEhC,IAAA,MAAM,aAAa,GAAG,oBAAoB,CACtC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EACxB,SAAS,CACZ;AAED,IAAA,QACIC,IAAA,CAAA,QAAA,EAAA,EACI,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,UAAU,EAAA,YAAA,EACR,SAAS,EAAA,WAAA,EACV,SAAS,IAAI,SAAS,EAAA,GAC7B,IAAI,EAAA,QAAA,EAAA,CAEP,SAAS,KACNH,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,kBAAkB,CAAC,WAAW,EAAA,QAAA,EAC3CA,GAAA,CAAC,IAAI,EAAA,EACD,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,kBAAkB,CAAC,WAAW,GAC3C,EAAA,CACC,CACV,EAEDA,GAAA,CAAC,IAAI,IACD,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,EAAE,CAAC,SAAS,IAAI,kBAAkB,CAAC,UAAU,CAAC,EAAA,CAC3D,CAAA,EAAA,CACG;AAEjB;AAEA,UAAU,CAAC,WAAW,GAAG,YAAY;;AC1E9B,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,KAAK,MAAM;IAChD,IAAI,EAAE,CAAC,EAAE,SAAS,GAAG,OAAO,EAAmB,MAAM;AACjD,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,GAAG,EAAE,QAAQ;AACb,QAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ;AAC5B,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,QAAQ,EAAE,SAAS;AACnB,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,UAAU,EAAE,SAAS;QACrB,cAAc,EAAE,SAAS,KAAK,QAAQ,GAAG,WAAW,GAAG,MAAM;AAC7D,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,QAAA,UAAU,EAAE,CAAA,MAAA,EAAS,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AAC5C,QAAA,oCAAoC,EAAE;AAClC,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;YAC7B,cAAc,EAAE,SAAS,KAAK,MAAM,GAAG,WAAW,GAAG,MAAM;AAC9D,SAAA;AACD,QAAA,qCAAqC,EAAE;AACnC,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;AACjC,SAAA;AACD,QAAA,gBAAgB,EAAE;AACd,YAAA,OAAO,EAAE,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAA,CAAE;AAC7C,YAAA,aAAa,EAAE,KAAK;AACvB,SAAA;AACD,QAAA,yBAAyB,EAAE;AACvB,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAChC,YAAA,MAAM,EAAE,aAAa;AACrB,YAAA,cAAc,EAAE,MAAM;AACzB,SAAA;KACJ,CAAC;AACF,IAAA,IAAI,EAAE;AACF,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,UAAU,EAAE,CAAC;AACb,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,MAAM,EAAE,KAAK;AAChB,KAAA;AACJ,CAAA,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;;ACnCnB;;;;;;;AAOG;AACH,MAAM,IAAI,GAAkB,CACxB,EACI,GAAG,EACH,SAAS,GAAG,OAAO,EACnB,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,QAAQ,EACR,SAAS,EACT,OAAO,EACP,SAAS,EACT,GAAG,IAAI,EACV,KACD;AACA,IAAA,MAAM,WAAW,GAAG,CAAC,CAAgC,KAAI;QACrD,IAAI,QAAQ,EAAE;YACV,CAAC,CAAC,cAAc,EAAE;YAClB;QACJ;AACA,QAAA,OAAO,GAAG,CAAC,CAAC;AAChB,IAAA,CAAC;;AAGD,IAAA,MAAM,aAAa,GAAG,CAAC,CAAmC,KAAI;QAC1D,IAAI,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;YAC/B,CAAC,CAAC,cAAc,EAAE;QACtB;AACA,QAAA,SAAS,GAAG,CAAC,CAAC;AAClB,IAAA,CAAC;AAED,IAAA,QACIG,IAAA,CAAA,GAAA,EAAA,EACI,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,CAAC,EAAA,eAAA,EAC1C,QAAQ,IAAI,SAAS,EACpC,QAAQ,EAAE,QAAQ,GAAG,EAAE,GAAG,SAAS,EACnC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,EACvC,GAAG,EAAE,QAAQ,GAAG,qBAAqB,GAAG,SAAS,EACjD,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,aAAa,EAAA,GACpB,IAAI,EAAA,QAAA,EAAA,CAEP,SAAS,KACNH,GAAA,CAAA,MAAA,EAAA,EACI,SAAS,EAAE,WAAW,CAAC,IAAI,EAAA,aAAA,EACd,IAAI,EAAA,QAAA,EAEjBA,GAAA,CAAC,SAAS,EAAA,EACN,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,KAAK,EAAA,CACf,EAAA,CACC,CACV,EAEA,QAAQ,EAER,OAAO,KACJA,GAAA,CAAA,MAAA,EAAA,EACI,SAAS,EAAE,WAAW,CAAC,IAAI,EAAA,aAAA,EACd,IAAI,EAAA,QAAA,EAEjBA,GAAA,CAAC,OAAO,EAAA,EACJ,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,KAAK,EAAA,CACf,EAAA,CACC,CACV,CAAA,EAAA,CACD;AAEZ;AAEA,IAAI,CAAC,WAAW,GAAG,MAAM;;ACrFzB,MAAM,mBAAmB,GAAmB,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,CAAC;AAW9F;;;AAGG;AACI,MAAM,0BAA0B,GAAG,CAAC,KAAyC,KAAI;AACpF,IAAA,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM;AAEtB,IAAA,MAAM,OAAO,GAAoC;AAC7C,QAAA,OAAO,EAAE;YACL,EAAE,EAAE,CAAC,CAAC,WAAW;YACjB,EAAE,EAAE,CAAC,CAAC,WAAW;YACjB,EAAE,EAAE,CAAC,CAAC,WAAW;YACjB,QAAQ,EAAE,CAAC,CAAC,YAAY;YACxB,MAAM,EAAE,CAAC,CAAC,aAAa;YACvB,MAAM,EAAE,CAAC,CAAC,WAAW;AACxB,SAAA;AACD,QAAA,OAAO,EAAE;YACL,EAAE,EAAE,CAAC,CAAC,WAAW;YACjB,EAAE,EAAE,CAAC,CAAC,SAAS;YACf,EAAE,EAAE,CAAC,CAAC,WAAW;YACjB,QAAQ,EAAE,CAAC,CAAC,YAAY;YACxB,MAAM,EAAE,CAAC,CAAC,aAAa;YACvB,MAAM,EAAE,CAAC,CAAC,WAAW;AACxB,SAAA;AACD,QAAA,SAAS,EAAE;YACP,EAAE,EAAE,CAAC,CAAC,aAAa;YACnB,EAAE,EAAE,CAAC,CAAC,WAAW;YACjB,EAAE,EAAE,CAAC,CAAC,WAAW;YACjB,QAAQ,EAAE,CAAC,CAAC,WAAW;YACvB,MAAM,EAAE,CAAC,CAAC,eAAe;YACzB,MAAM,EAAE,CAAC,CAAC,YAAY;AACzB,SAAA;AACD,QAAA,OAAO,EAAE;YACL,EAAE,EAAE,CAAC,CAAC,WAAW;YACjB,EAAE,EAAE,CAAC,CAAC,SAAS;YACf,EAAE,EAAE,CAAC,CAAC,WAAW;YACjB,QAAQ,EAAE,CAAC,CAAC,YAAY;YACxB,MAAM,EAAE,CAAC,CAAC,aAAa;YACvB,MAAM,EAAE,CAAC,CAAC,WAAW;AACxB,SAAA;AACD,QAAA,OAAO,EAAE;YACL,EAAE,EAAE,CAAC,CAAC,WAAW;YACjB,EAAE,EAAE,CAAC,CAAC,SAAS;YACf,EAAE,EAAE,CAAC,CAAC,WAAW;YACjB,QAAQ,EAAE,CAAC,CAAC,YAAY;YACxB,MAAM,EAAE,CAAC,CAAC,aAAa;YACvB,MAAM,EAAE,CAAC,CAAC,WAAW;AACxB,SAAA;AACD,QAAA,KAAK,EAAE;YACH,EAAE,EAAE,CAAC,CAAC,SAAS;YACf,EAAE,EAAE,CAAC,CAAC,OAAO;YACb,EAAE,EAAE,CAAC,CAAC,SAAS;YACf,QAAQ,EAAE,CAAC,CAAC,UAAU;YACtB,MAAM,EAAE,CAAC,CAAC,WAAW;YACrB,MAAM,EAAE,CAAC,CAAC,SAAS;AACtB,SAAA;AACD,QAAA,IAAI,EAAE;YACF,EAAE,EAAE,CAAC,CAAC,QAAQ;YACd,EAAE,EAAE,CAAC,CAAC,MAAM;YACZ,EAAE,EAAE,CAAC,CAAC,QAAQ;YACd,QAAQ,EAAE,CAAC,CAAC,SAAS;YACrB,MAAM,EAAE,CAAC,CAAC,UAAU;YACpB,MAAM,EAAE,CAAC,CAAC,QAAQ;AACrB,SAAA;AACD,QAAA,MAAM,EAAE;YACJ,EAAE,EAAE,CAAC,CAAC,UAAU;YAChB,EAAE,EAAE,CAAC,CAAC,QAAQ;YACd,EAAE,EAAE,CAAC,CAAC,UAAU;YAChB,QAAQ,EAAE,CAAC,CAAC,WAAW;YACvB,MAAM,EAAE,CAAC,CAAC,YAAY;YACtB,MAAM,EAAE,CAAC,CAAC,UAAU;AACvB,SAAA;AACD,QAAA,IAAI,EAAE;YACF,EAAE,EAAE,CAAC,CAAC,QAAQ;YACd,EAAE,EAAE,CAAC,CAAC,MAAM;YACZ,EAAE,EAAE,CAAC,CAAC,QAAQ;YACd,QAAQ,EAAE,CAAC,CAAC,SAAS;YACrB,MAAM,EAAE,CAAC,CAAC,UAAU;YACpB,MAAM,EAAE,CAAC,CAAC,QAAQ;AACrB,SAAA;AACD,QAAA,MAAM,EAAE;YACJ,EAAE,EAAE,CAAC,CAAC,UAAU;YAChB,EAAE,EAAE,CAAC,CAAC,QAAQ;YACd,EAAE,EAAE,CAAC,CAAC,UAAU;YAChB,QAAQ,EAAE,CAAC,CAAC,WAAW;YACvB,MAAM,EAAE,CAAC,CAAC,YAAY;YACtB,MAAM,EAAE,CAAC,CAAC,UAAU;AACvB,SAAA;KACJ;AAED,IAAA,MAAM,cAAc,GAAG,CAAC,MAAmB,EAAE,UAAwB,KAAI;AACrE,QAAA,IAAI,UAAU,KAAK,QAAQ,EAAE;YACzB,OAAO;gBACH,eAAe,EAAE,MAAM,CAAC,EAAE;gBAC1B,WAAW,EAAE,MAAM,CAAC,EAAE;gBACtB,KAAK,EAAE,MAAM,CAAC,EAAE;aACnB;QACL;AAEA,QAAA,IAAI,UAAU,KAAK,UAAU,EAAE;YAC3B,OAAO;AACH,gBAAA,eAAe,EAAE,aAAa;gBAC9B,WAAW,EAAE,MAAM,CAAC,MAAM;gBAC1B,KAAK,EAAE,MAAM,CAAC,QAAQ;aACzB;QACL;AAEA,QAAA,IAAI,UAAU,KAAK,gBAAgB,EAAE;YACjC,OAAO;gBACH,eAAe,EAAE,MAAM,CAAC,MAAM;gBAC9B,WAAW,EAAE,MAAM,CAAC,MAAM;gBAC1B,KAAK,EAAE,MAAM,CAAC,QAAQ;aACzB;QACL;;QAGA,OAAO;YACH,eAAe,EAAE,MAAM,CAAC,MAAM;AAC9B,YAAA,WAAW,EAAE,aAAa;YAC1B,KAAK,EAAE,MAAM,CAAC,QAAQ;SACzB;AACL,IAAA,CAAC;IAED,OAAQ,MAAM,CAAC,IAAI,CAAC,OAAO,CAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,KACxD,mBAAmB,CAAC,GAAG,CAAC,CAAC,OAAO,MAAM;QAClC,KAAK;QACL,OAAO;QACP,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;KAClD,CAAC,CAAC,CACN;AACL,CAAC;;AC5IM,MAAM,cAAc,GAAG,cAAc,CAAC,CAAC,KAAK,MAAM;AACrD,IAAA,IAAI,EAAE;AACF,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACrB,QAAA,SAAS,EAAE,YAAqB;AAChC,QAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;AAC/B,QAAA,MAAM,EAAE,uBAAuB;AAC/B,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;AACnC,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI;AACjC,QAAA,UAAU,EAAE,QAAiB;AAC7B,QAAA,UAAU,EAAE,MAAe;AAC9B,KAAA;AACD,IAAA,QAAQ,EAAE;AACN,QAAA,IAAI,EAAE;AACF,YAAA,EAAE,EAAE;AACA,gBAAA,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,YAAY,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA,CAAE;AAC3C,gBAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;AAClC,aAAA;AACD,YAAA,EAAE,EAAE;AACA,gBAAA,MAAM,EAAE,QAAQ;AAChB,gBAAA,OAAO,EAAE,CAAA,UAAA,EAAa,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAE;AACxC,gBAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC9B,aAAA;AACD,YAAA,EAAE,EAAE;AACA,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,OAAO,EAAE,CAAA,QAAA,EAAW,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA,CAAE;AACtC,gBAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC9B,aAAA;AACJ,SAAA;;AAED,QAAA,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;AACrE,QAAA,KAAK,EAAE;AACH,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,MAAM,EAAE,EAAE;AACb,SAAA;AACJ,KAAA;AACD,IAAA,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE;AACpE,IAAA,gBAAgB,EAAE,0BAA0B,CAAC,KAAK,CAAC;AACtD,CAAA,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;;AC3CpB;AACA,MAAM,SAAS,GAA+C;AAC1D,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;CACX;AAED;AACA,MAAM,eAAe,GAA+C;AAChE,IAAA,EAAE,EAAE,KAAK;AACT,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;CACX;AAED;AACA,MAAM,QAAQ,GAA8B;AACxC,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,UAAU;CACjB;AAED;;;;;;;AAOG;AACH,MAAM,KAAK,GAAmB,CAC1B,EACI,GAAG,EACH,OAAO,GAAG,QAAQ,EAClB,KAAK,GAAG,SAAS,EACjB,IAAI,GAAG,IAAI,EACX,YAAY,GAAG,IAAI,EACnB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,IAAI,EACJ,GAAG,GAAG,KAAK,EACX,QAAQ,EACR,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACV,KACD;AACA,IAAA,MAAM,KAAK,GAAG,QAAQ,EAAE;AACxB,IAAA,MAAM,aAAa,GAAG,cAAc,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC;AACzE,IAAA,MAAM,oBAAoB,GAAG,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,SAAS;AAClF,IAAA,MAAM,kBAAkB,GAAG,SAAS,IAAI,IAAI;IAE5C,IAAI,GAAG,EAAE;AACL,QAAA,MAAM,QAAQ,GAAkB;AAC5B,YAAA,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC;AACrB,YAAA,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC;AACtB,YAAA,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC;AACxB,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,MAAM,EAAE,MAAM;YACd,YAAY,EAAE,oBAAoB,IAAI,QAAQ;SACjD;QACD,QACIA,GAAA,CAAA,MAAA,EAAA,EACI,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAA,aAAA,EACnB,IAAI,EAAA,GACb,IAAI,EAAA,CACV;IAEV;IAEA,QACIG,IAAA,CAAA,MAAA,EAAA,EACI,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE,EAAE,IAAI,oBAAoB,GAAG,EAAE,YAAY,EAAE,oBAAoB,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,KACxF,IAAI,EAAA,QAAA,EAAA,CAEP,kBAAkB,KACfH,GAAA,CAAC,IAAI,EAAA,EACD,IAAI,EAAE,kBAAkB,EACxB,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAA,CACvB,CACL,EAEA,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,KACxCA,GAAA,CAAC,IAAI,EAAA,EACD,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,EAC/B,UAAU,EAAE,QAAQ,EACpB,UAAU,EAAE,MAAM,EAAA,QAAA,EAEjB,QAAQ,EAAA,CACN,CACV,EAEA,OAAO,KACJA,GAAA,CAAC,IAAI,EAAA,EACD,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAA,CACvB,CACL,CAAA,EAAA,CACE;AAEf;AAEA,KAAK,CAAC,WAAW,GAAG,OAAO;;AChH3B,MAAMI,oBAAkB,GAAG,CAAC;AAC5B,MAAM,MAAM,GAAG,CAAC;AAChB,MAAM,gBAAgB,GAAG,EAAE;AAE3B;;;;;;;;;;;;;AAaG;AACI,MAAM,kBAAkB,GAAG,CAAC,EAC/B,SAAS,GACe,KAA8B;AACtD,IAAA,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC;AAC/C,IAAA,MAAM,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC;IAC9C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IACjD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AACnD,IAAA,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAkB,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAC9E,IAAA,MAAM,YAAY,GAAG,MAAM,CAAuC,IAAI,CAAC;IAEvE,MAAM,eAAe,GAAG,WAAW,CAC/B,CAAC,gBAAA,GAAqC,SAAS,KAAI;AAC/C,QAAA,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO;AAClC,QAAA,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO;QAChC,IAAI,CAAC,OAAO,EAAE;YAAC;QAAM;AAErB,QAAA,MAAM,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE;AAC5C,QAAA,MAAM,OAAO,GAAG,MAAM,EAAE,WAAW,IAAI,CAAC;AACxC,QAAA,MAAM,OAAO,GAAG,MAAM,EAAE,YAAY,IAAI,CAAC;QAEzC,IAAI,GAAG,GAAG,CAAC;QACX,IAAI,IAAI,GAAG,CAAC;QAEZ,QAAQ,gBAAgB;AACpB,YAAA,KAAK,KAAK;gBACN,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,OAAO,GAAG,MAAM;AACjC,gBAAA,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC;gBAC/C;AACJ,YAAA,KAAK,QAAQ;AACT,gBAAA,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM;AAC1B,gBAAA,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC;gBAC/C;AACJ,YAAA,KAAK,MAAM;AACP,gBAAA,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC;gBAC9C,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,OAAO,GAAG,MAAM;gBACnC;AACJ,YAAA,KAAK,OAAO;AACR,gBAAA,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC;AAC9C,gBAAA,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM;gBAC1B;;;QAIR,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,GAAG,OAAO,GAAGA,oBAAkB;AAChE,QAAA,IAAI,GAAG,IAAI,CAAC,GAAG,CAACA,oBAAkB,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;;QAG5D,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,GAAG,OAAO,GAAGA,oBAAkB;AAChE,QAAA,GAAG,GAAG,IAAI,CAAC,GAAG,CAACA,oBAAkB,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAEzD,QAAA,WAAW,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAC9B,IAAA,CAAC,EACD,CAAC,SAAS,CAAC,CACd;AAED,IAAA,MAAM,IAAI,GAAG,WAAW,CAAC,MAAK;QAC1B,YAAY,CAAC,IAAI,CAAC;;;AAGlB,QAAA,YAAY,CAAC,OAAO,GAAG,UAAU,CAAC,MAAK;YACnC,aAAa,CAAC,IAAI,CAAC;AACnB,YAAA,qBAAqB,CAAC,MAAM,eAAe,EAAE,CAAC;QAClD,CAAC,EAAE,gBAAgB,CAAC;AACxB,IAAA,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;AAErB,IAAA,MAAM,IAAI,GAAG,WAAW,CAAC,MAAK;AAC1B,QAAA,IAAI,YAAY,CAAC,OAAO,KAAK,IAAI,EAAE;AAC/B,YAAA,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC;AAClC,YAAA,YAAY,CAAC,OAAO,GAAG,IAAI;QAC/B;QACA,YAAY,CAAC,KAAK,CAAC;QACnB,aAAa,CAAC,KAAK,CAAC;IACxB,CAAC,EAAE,EAAE,CAAC;;IAGN,SAAS,CAAC,MAAK;QACX,IAAI,CAAC,SAAS,EAAE;YAAC;QAAM;AACvB,QAAA,MAAM,YAAY,GAAG,MAAM,qBAAqB,CAAC,MAAM,eAAe,EAAE,CAAC;QACzE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC;AACrD,QAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC;AAC/C,QAAA,OAAO,MAAK;YACR,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC;AACxD,YAAA,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC;AACtD,QAAA,CAAC;AACL,IAAA,CAAC,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;;IAGhC,SAAS,CAAC,MAAK;AACX,QAAA,IAAI,SAAS,IAAI,SAAS,CAAC,OAAO,EAAE;YAChC,MAAM,EAAE,GAAG,qBAAqB,CAAC,MAAM,eAAe,EAAE,CAAC;AACzD,YAAA,OAAO,MAAM,oBAAoB,CAAC,EAAE,CAAC;QACzC;AACJ,IAAA,CAAC,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;;IAGhC,SAAS,CAAC,MAAK;AACX,QAAA,OAAO,MAAK;AACR,YAAA,IAAI,YAAY,CAAC,OAAO,KAAK,IAAI,EAAE;AAAC,gBAAA,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC;YAAA;AAC1E,QAAA,CAAC;IACL,CAAC,EAAE,EAAE,CAAC;IAEN,OAAO;QACH,UAAU;QACV,SAAS;QACT,SAAS;QACT,UAAU;QACV,QAAQ;AACR,QAAA,gBAAgB,EAAE,IAAI;AACtB,QAAA,gBAAgB,EAAE,IAAI;AACtB,QAAA,WAAW,EAAE,IAAI;AACjB,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,WAAW,EAAE,IAAI;KACpB;AACL,CAAC;;AC1HM,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,KAAK,KAAI;AACjD,IAAA,MAAM,WAAW,GAAqC;AAClD,QAAA,GAAG,EAAK,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAG,SAAS,EAAE,kBAAkB,EAAE,UAAU,EAAE,uBAAuB,EAAE,WAAW,EAAE,uBAAuB,EAAE,SAAS,EAAK,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE;AACpM,QAAA,MAAM,EAAE,EAAE,GAAG,EAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAG,SAAS,EAAE,kBAAkB,EAAE,UAAU,EAAE,uBAAuB,EAAE,WAAW,EAAE,uBAAuB,EAAE,YAAY,EAAE,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE;AACpM,QAAA,IAAI,EAAI,EAAE,KAAK,EAAG,EAAE,EAAE,GAAG,EAAG,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAG,uBAAuB,EAAE,YAAY,EAAE,uBAAuB,EAAE,UAAU,EAAI,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE;AACpM,QAAA,KAAK,EAAG,EAAE,IAAI,EAAI,EAAE,EAAE,GAAG,EAAG,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAG,uBAAuB,EAAE,YAAY,EAAE,uBAAuB,EAAE,WAAW,EAAG,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE;KACvM;AAED,IAAA,MAAM,WAAW,GAAqC;AAClD,QAAA,GAAG,EAAK,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAG,SAAS,EAAE,kBAAkB,EAAE,UAAU,EAAE,uBAAuB,EAAE,WAAW,EAAE,uBAAuB,EAAE,SAAS,EAAK,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE;AACtM,QAAA,MAAM,EAAE,EAAE,GAAG,EAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAG,SAAS,EAAE,kBAAkB,EAAE,UAAU,EAAE,uBAAuB,EAAE,WAAW,EAAE,uBAAuB,EAAE,YAAY,EAAE,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE;AACtM,QAAA,IAAI,EAAI,EAAE,KAAK,EAAG,EAAE,EAAE,GAAG,EAAG,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAG,uBAAuB,EAAE,YAAY,EAAE,uBAAuB,EAAE,UAAU,EAAI,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE;AACtM,QAAA,KAAK,EAAG,EAAE,IAAI,EAAI,EAAE,EAAE,GAAG,EAAG,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAG,uBAAuB,EAAE,YAAY,EAAE,uBAAuB,EAAE,WAAW,EAAG,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE;KACzM;IAED,OAAO;AACH,QAAA,OAAO,EAAE;AACL,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,KAAK,EAAE,MAAM;AAChB,SAAA;AACD,QAAA,aAAa,EAAE;AACX,YAAA,OAAO,EAAE,aAAa;AACtB,YAAA,KAAK,EAAE,MAAM;AAChB,SAAA;QACD,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAA4B,MAAM;AAC1D,YAAA,QAAQ,EAAE,OAAgB;YAC1B,OAAO,EAAE,UAAU,GAAG,CAAC,GAAG,CAAC;YAC3B,SAAS,EAAE,CAAA,MAAA,EAAS,UAAU,GAAG,CAAC,GAAG,IAAI,CAAA,CAAA,CAAG;AAC5C,YAAA,eAAe,EAAE,QAAQ;AACzB,YAAA,UAAU,EAAE,CAAA,QAAA,EAAW,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,YAAA,EAAe,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AAClF,YAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAC1C,YAAA,MAAM,EAAE,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,UAAU,CAAA,CAAE;AAC9C,YAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,YAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;;;AAGzB,YAAA,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM;AAC5B,YAAA,aAAa,EAAE,MAAe;AAC9B,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,UAAU,EAAE,QAAiB;AAC7B,YAAA,SAAS,EAAE,YAAqB;AAChC,YAAA,YAAY,EAAE,YAAqB;AACnC,YAAA,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;AAC5B,YAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW;SAClC,CAAC;QACF,UAAU,EAAE,CAAC,EAAE,SAAS,EAAoB,MAAM;AAC9C,YAAA,QAAQ,EAAE,UAAmB;AAC7B,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,MAAM,EAAE,CAAC;YACT,GAAG,WAAW,CAAC,SAAS,CAAC;SAC5B,CAAC;QACF,UAAU,EAAE,CAAC,EAAE,SAAS,EAAoB,MAAM;AAC9C,YAAA,QAAQ,EAAE,UAAmB;AAC7B,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,MAAM,EAAE,CAAC;YACT,GAAG,WAAW,CAAC,SAAS,CAAC;SAC5B,CAAC;KACL;AACL,CAAC,CAAC;;AC9DF;AACA,MAAM,aAAa,GAAG,MAClB,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,OAAO;AAEnF,MAAM,aAAa,GAAG,GAAG;AAEzB;;;;;;;;;;;;;;;;;;AAkBG;AACH,MAAM,OAAO,GAAqB,CAAC,EAC/B,QAAQ,EACR,KAAK,EACL,SAAS,GAAG,OAAO,EACnB,QAAQ,GAAG,KAAK,EAChB,MAAM,GAAG,KAAK,EACd,SAAS,GAAG,KAAK,EACjB,KAAK,GAAG,aAAa,EACrB,WAAW,GAAG,IAAI,EAClB,eAAe,GAAG,IAAI,GACzB,KAAI;AACD,IAAA,MAAM,SAAS,GAAG,KAAK,EAAE;IACzB,MAAM,qBAAqB,GAAG,QAAQ,KAAK,eAAe,IAAI,aAAa,EAAE,CAAC;AAE9E,IAAA,MAAM,EACF,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,WAAW,GACd,GAAG,kBAAkB,CAAC,EAAE,SAAS,EAAE,CAAC;;;;IAKrC,MAAM,OAAO,GAAG,CAAC,qBAAqB,IAAI,cAAc,CAA0B,QAAQ;AACtF,UAAE,YAAY,CAAC,QAAQ,EAAE;AACrB,YAAA,kBAAkB,EAAE,SAAS;YAC7B,IAAI,WAAW,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;SAC/C;UACC,QAAQ;AAEd,IAAA,QACID,IAAA,CAAA,KAAA,EAAA,EACI,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,MAAM,GAAG,cAAc,CAAC,aAAa,GAAG,cAAc,CAAC,OAAO,EACzE,YAAY,EAAE,qBAAqB,GAAG,SAAS,GAAG,gBAAgB,EAClE,YAAY,EAAE,qBAAqB,GAAG,SAAS,GAAG,gBAAgB,EAClE,OAAO,EAAE,qBAAqB,GAAG,SAAS,GAAG,WAAW,EACxD,MAAM,EAAE,qBAAqB,GAAG,SAAS,GAAG,UAAU,aAErD,OAAO,EACP,CAAC,qBAAqB,IAAI,SAAS,IAAI,YAAY,CAChDA,IAAA,CAAA,KAAA,EAAA,EACI,GAAG,EAAE,SAAS,EACd,EAAE,EAAE,SAAS,EACb,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAClE,KAAK,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EACjD,IAAI,EAAE,SAAS,eACJ,QAAQ,EAAA,QAAA,EAAA,CAEnBH,IAAC,IAAI,EAAA,EAAC,QAAQ,EAAE,IAAI,EAAA,QAAA,EACf,KAAK,GACH,EACN,SAAS,KACNG,IAAA,CAAAE,UAAA,EAAA,EAAA,QAAA,EAAA,CACIL,aAAK,SAAS,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC,GAAI,EAC5DA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC,EAAA,CAAI,IAC7D,CACN,CAAA,EAAA,CACC,EACN,QAAQ,CAAC,IAAI,CAChB,CAAA,EAAA,CACC;AAEd;AAEA,OAAO,CAAC,WAAW,GAAG,SAAS;;ACxGxB,MAAM,kBAAkB,GAAG,YAAY,CAAC,CAAC,KAAK,MAAM;AACvD,IAAA,OAAO,EAAE;AACL,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,cAAc,EAAE,QAAQ;AACxB,QAAA,MAAM,EAAE,SAAS;;AAEjB,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,WAAW,EAAE,cAAc;AAC3B,QAAA,UAAU,EAAE,CAAC;AACb,QAAA,eAAe,EAAE,aAAa;AAC9B,QAAA,MAAM,EAAE,CAAC;AACT,QAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACzB,QAAA,gBAAgB,EAAE;AACd,YAAA,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;AACjC,SAAA;AACJ,KAAA;AACJ,CAAA,CAAC,CAAC;;ACZH;;;;;;;;;;;;;;;;AAgBG;AACH,MAAM,UAAU,GAAwB,CAAC,EACrC,KAAK,EACL,SAAS,GAAG,KAAK,EACjB,KAAK,GAAG,GAAG,EACX,SAAS,GAAG,IAAI,GACnB,KAAI;AACD,IAAA,QACIA,GAAA,CAAC,OAAO,EAAA,EACJ,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,IAAI,EACZ,WAAW,EAAE,KAAK,EAClB,eAAe,EAAE,KAAK,YAEtBA,GAAA,CAAA,QAAA,EAAA,EACI,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,kBAAkB,CAAC,OAAO,EAAA,YAAA,EACzB,KAAK,EACjB,QAAQ,EAAE,CAAC,EAAA,QAAA,EAEXA,IAAC,IAAI,EAAA,EACD,IAAI,EAAE,YAAY,CAAC,aAAa,EAChC,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,eAAe,EAAA,CAC9B,EAAA,CACG,EAAA,CACH;AAElB;AAEA,UAAU,CAAC,WAAW,GAAG,YAAY;;ACrD9B,MAAM,iBAAiB,GAAG,cAAc,CAAC,CAAC,KAAK,MAAM;AACxD,IAAA,IAAI,EAAE;AACF,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,eAAe;AAC7C,QAAA,QAAQ,EAAE,QAAQ;AACrB,KAAA;AACD,IAAA,QAAQ,EAAE;AACN,QAAA,OAAO,EAAE;;AAEL,YAAA,IAAI,EAAE;AACF,gBAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,SAAS,EAAE,eAAe;AAC1B,gBAAA,eAAe,EAAE,OAAO;AACxB,gBAAA,KAAK,EAAE,MAAM;AAChB,aAAA;;AAED,YAAA,QAAQ,EAAE;AACN,gBAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;AAClC,aAAA;;AAED,YAAA,WAAW,EAAE;AACT,gBAAA,YAAY,EAAE,GAAG;AACpB,aAAA;;AAED,YAAA,OAAO,EAAE;AACL,gBAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAChC,aAAA;AACJ,SAAA;AACD,QAAA,SAAS,EAAE;;AAEP,YAAA,OAAO,EAAE;AACL,gBAAA,UAAU,EAAE,CAAA,uBAAA,EAA0B,KAAK,CAAC,MAAM,CAAC,eAAe,CAAA,MAAA,EAAS,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAA,MAAA,EAAS,KAAK,CAAC,MAAM,CAAC,eAAe,CAAA,KAAA,CAAO;AACrJ,gBAAA,cAAc,EAAE,WAAW;gBAC3B,SAAS,EAAE,CAAA,EAAG,wBAAwB,CAAA,qBAAA,CAAuB;AAC7D,gBAAA,yCAAyC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;AACnE,aAAA;;AAED,YAAA,IAAI,EAAE,EAAE;AACX,SAAA;AACJ,KAAA;IACD,eAAe,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE;AAChE,CAAA,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC;;AC1CvB;;;;;;;;;;;;;;AAcG;AACH,MAAM,QAAQ,GAAsB,CAChC,EACI,GAAG,EACH,OAAO,GAAG,aAAa,EACvB,SAAS,GAAG,SAAS,EACrB,KAAK,EACL,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACV,MAEDA,cACI,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,iBAAiB,CACxB,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,KAAK,KAAK,GAAG,MAAM,GAAG,SAAS,EAAE,EAChE,SAAS,CACZ,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,iBACrB,IAAI,EAAA,GACb,IAAI,EAAA,CACV;AAGN,QAAQ,CAAC,WAAW,GAAG,UAAU;;ACxCjC;;;;;;;;;AASG;AACH,MAAM,IAAI,GAAkB,CAAC,EACzB,QAAQ,EACR,QAAQ,EACR,YAAY,EAAE,SAAS,EACvB,iBAAiB,EAAE,cAAc,GACpC,KAAI;AACD,IAAA,MAAM,YAAY,GAAG,CAAC,KAAiC,KAAI;QACvD,KAAK,CAAC,cAAc,EAAE;QACtB,QAAQ,CAAC,KAAK,CAAC;AACnB,IAAA,CAAC;AAED,IAAA,QACIA,GAAA,CAAA,MAAA,EAAA,EACI,QAAQ,EAAE,YAAY,EAAA,YAAA,EACV,SAAS,EAAA,iBAAA,EACJ,cAAc,EAC/B,UAAU,EAAA,IAAA,EAAA,QAAA,EAET,QAAQ,EAAA,CACN;AAEf;AAEA,IAAI,CAAC,WAAW,GAAG,MAAM;;ACjCzB;AACA;AACA;AAEO,MAAM,qBAAqB,GAAG,cAAc,CAAC,CAAC,KAAK,KAAI;AAC1D,IAAA,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM;AAEtB,IAAA,MAAM,WAAW,GAAgC;QAC7C,OAAO,EAAE,CAAC,CAAC,WAAW;QACtB,OAAO,EAAE,CAAC,CAAC,WAAW;QACtB,KAAK,EAAE,CAAC,CAAC,SAAS;QAClB,OAAO,EAAE,CAAC,CAAC,WAAW;QACtB,IAAI,EAAE,CAAC,CAAC,QAAQ;QAChB,OAAO,EAAE,CAAC,CAAC,WAAW;KACzB;AAED,IAAA,MAAM,gBAAgB,GAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAmB,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM;QACjF,KAAK;AACL,QAAA,OAAO,EAAE,MAAe;AACxB,QAAA,QAAQ,EAAE,OAAgB;QAC1B,MAAM,EAAE,EAAE,eAAe,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE;AAClD,KAAA,CAAC,CAKE;IAEJ,OAAO;AACH,QAAA,IAAI,EAAE;AACF,YAAA,QAAQ,EAAE,UAAmB;AAC7B,YAAA,OAAO,EAAE,cAAc;AACvB,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;YAC/B,eAAe,EAAE,CAAC,CAAC,YAAY;AAC/B,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,UAAU,EAAE,CAAA,iBAAA,EAAoB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,aAAA,EAAgB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AAC/F,SAAA;AACD,QAAA,QAAQ,EAAE;AACN,YAAA,IAAI,EAAE;gBACF,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE;gBACzC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE;gBAC1C,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;AAC1C,aAAA;AACD,YAAA,KAAK,EAAE;gBACH,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;AAC1E,aAAA;YACD,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;AAChC,YAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;AAC3D,SAAA;AACD,QAAA,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE;QACtF,gBAAgB;KACnB;AACL,CAAC,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC;AAEnB,MAAM,qBAAqB,GAAG,cAAc,CAAC,CAAC,KAAK,MAAM;AAC5D,IAAA,IAAI,EAAE;AACF,QAAA,QAAQ,EAAE,UAAmB;AAC7B,QAAA,GAAG,EAAE,UAAU;AACf,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;AAC/B,QAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW;AACzC,QAAA,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC3B,QAAA,UAAU,EAAE,CAAA,KAAA,EAAQ,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AAC3C,QAAA,aAAa,EAAE,MAAe;AACjC,KAAA;AACD,IAAA,QAAQ,EAAE;AACN,QAAA,IAAI,EAAE;YACF,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE;YAC7C,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;YAC3C,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;AAC9C,SAAA;QACD,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;AACnC,KAAA;IACD,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE;AACjD,IAAA,gBAAgB,EAAE;AACd,QAAA,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;AACzD,QAAA,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;AAC7D,QAAA,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;AAChE,KAAA;AACJ,CAAA,CAAC,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC;AAEpB,MAAM,aAAa,GAAG,YAAY,CAAC,CAAC,KAAK,MAAM;AAClD,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,SAAS;AACjB,QAAA,UAAU,EAAE,MAAM;AAClB,QAAA,kBAAkB,EAAE;AAChB,YAAA,MAAM,EAAE,aAAa;AACrB,YAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;AAC9B,SAAA;AACJ,KAAA;AACD,IAAA,KAAK,EAAE;AACH,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,OAAO,EAAE,GAAG;AACZ,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,WAAW,EAAE,GAAG;AACnB,KAAA;AACJ,CAAA,CAAC,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC;;ACtG3B;;;;;;;;;;;;;AAaG;AACI,MAAM,oBAAoB,GAAG,CAAI,EACpC,KAAK,EACL,YAAY,EACZ,QAAQ,GACqB,KAAmC;AAChE,IAAA,MAAM,YAAY,GAAG,KAAK,KAAK,SAAS;IACxC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAI,YAAY,CAAC;AAEnE,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC;AACpC,IAAA,WAAW,CAAC,OAAO,GAAG,QAAQ;IAE9B,MAAM,aAAa,GAAG,YAAY,GAAI,KAAW,GAAG,aAAa;AAEjE,IAAA,MAAM,QAAQ,GAAG,WAAW,CACxB,CAAC,IAAO,KAAI;QACR,IAAI,CAAC,YAAY,EAAE;YACf,gBAAgB,CAAC,IAAI,CAAC;QAC1B;AACA,QAAA,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;AAC/B,IAAA,CAAC,EACD,CAAC,YAAY,CAAC,CACjB;AAED,IAAA,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC;AACpC,CAAC;;AC5BD;;;AAGG;AACI,MAAM,SAAS,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAmB,KAAqB;AACrG,IAAA,MAAM,WAAW,GAAG,KAAK,EAAE;AAC3B,IAAA,MAAM,QAAQ,GAAG,EAAE,IAAI,WAAW;AAElC,IAAA,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,oBAAoB,CAAU;AAC1D,QAAA,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,cAAc,IAAI,KAAK;AACxC,KAAA,CAAC;AAEF,IAAA,MAAM,YAAY,GAAG,WAAW,CAC5B,CAAC,KAAoC,KAAI;AACrC,QAAA,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;AAChC,QAAA,QAAQ,GAAG,KAAK,CAAC;AACrB,IAAA,CAAC,EACD,CAAC,UAAU,EAAE,QAAQ,CAAC,CACzB;AAED,IAAA,MAAM,eAAe,GAAG,OAAO,KAAK;AAChC,UAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY;AACnC,UAAE,EAAE,cAAc,EAAE,cAAc,IAAI,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE;AAEzE,IAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE;AACnD,CAAC;;AC/BD;;;;;;;AAOG;AACH,MAAM,MAAM,GAAoB,CAC5B,EACI,GAAG,EACH,KAAK,EACL,IAAI,GAAG,IAAI,EACX,KAAK,GAAG,SAAS,EACjB,EAAE,EACF,OAAO,EACP,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,GAAG,IAAI,EACV,KACD;IACA,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;IACrG,MAAM,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO;IAEnD,QACIG,IAAA,CAAA,OAAA,EAAA,EACI,OAAO,EAAE,QAAQ,EACjB,SAAS,EAAE,aAAa,CAAC,IAAI,EAAA,eAAA,EACd,QAAQ,IAAI,SAAS,EAAA,QAAA,EAAA,CAEpCA,IAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,qBAAqB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,EAAE,CAAC,EAAA,QAAA,EAAA,CACnHH,GAAA,CAAA,OAAA,EAAA,EACI,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,aAAa,CAAC,KAAK,EAAA,GAC1B,eAAe,KACf,IAAI,EAAA,CACV,EACFA,GAAA,CAAA,MAAA,EAAA,EAAA,aAAA,EACiB,MAAM,EACnB,SAAS,EAAE,qBAAqB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,EAAA,CACrE,CAAA,EAAA,CACC,EAEN,KAAK,KAAK,SAAS,KAChBA,GAAA,CAAC,IAAI,EAAA,EACD,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,IAAI,EAAA,QAAA,EAEb,KAAK,EAAA,CACH,CACV,CAAA,EAAA,CACG;AAEhB;AAEA,MAAM,CAAC,WAAW,GAAG,QAAQ;;ACnEtB,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,KAAK,MAAM;AAC/C,IAAA,IAAI,EAAE,CAAC;;IAEH,OAAO;;IAEP,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS;;IAEvD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE;;IAErE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE;;AAEhE,IAAA,GAAG,EAAE,MAAM,EAAE,SAAS,EACtB,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EACnD,mBAAmB,EAAE,gBAAgB;;AAErC,IAAA,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EACrC,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK;;IAElD,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM;;IAEjD,QAAQ,EAAE,SAAS,EAAE,SAAS;;IAE9B,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAC/C,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAC7D,KAAI;;AAEhB,QAAA,MAAM,EAAE,GAAG,KAAK,CAAC,OAAiD;AAClE,QAAA,MAAM,EAAE,GAAG,KAAK,CAAC,MAA+C;AAChE,QAAA,MAAM,EAAE,GAAG,KAAK,CAAC,MAA+C;AAChE,QAAA,MAAM,EAAE,GAAG,KAAK,CAAC,OAAiD;AAClE,QAAA,MAAM,EAAE,GAAG,KAAK,CAAC,MAA+C;QAEhE,OAAO;AACH,YAAA,SAAS,EAAE,YAAqB;;YAGhC,IAAI,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC;;YAGzC,IAAI,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC;YACrC,IAAI,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC;YACvC,IAAI,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC3C,IAAI,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC3C,IAAI,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;YAC7C,IAAI,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;;YAG7C,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YACtE,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACtE,YAAA,IAAI,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;AACtD,YAAA,IAAI,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;AAC/D,YAAA,IAAI,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;AACrE,YAAA,IAAI,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;AACxE,YAAA,IAAI,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;;YAGlE,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YACpE,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACpE,YAAA,IAAI,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;AACnD,YAAA,IAAI,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;AAC5D,YAAA,IAAI,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;AAClE,YAAA,IAAI,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;AACrE,YAAA,IAAI,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;;AAG/D,YAAA,IAAI,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;AAC1C,YAAA,IAAI,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;AACnD,YAAA,IAAI,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5D,IAAI,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,CAAC;YACrD,IAAI,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC3C,IAAI,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,CAAC;YAC/C,IAAI,cAAc,KAAK,SAAS,IAAI,EAAE,cAAc,EAAE,CAAC;YACvD,IAAI,mBAAmB,KAAK,SAAS,IAAI,EAAE,mBAAmB,EAAE,CAAC;YACjE,IAAI,gBAAgB,KAAK,SAAS,IAAI,EAAE,gBAAgB,EAAE,CAAC;;YAG3D,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC;YACnC,IAAI,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC3C,IAAI,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,CAAC;YAC/C,IAAI,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;YAC7C,IAAI,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;YAC7C,IAAI,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,CAAC;YACjD,IAAI,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,CAAC;YAC/C,IAAI,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC;YACzC,IAAI,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC;;YAGrC,IAAI,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC3C,IAAI,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,CAAC;YACjC,IAAI,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC;YACrC,IAAI,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC;YACvC,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC;YACnC,IAAI,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC;AACrC,YAAA,IAAI,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;;YAGnD,IAAI,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC3C,IAAI,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;YAC7C,IAAI,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;;AAG7C,YAAA,IAAI,eAAe,KAAK,SAAS,IAAI,EAAE,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;AAC9E,YAAA,IAAI,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;AAChD,YAAA,IAAI,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;AACrE,YAAA,IAAI,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5D,IAAI,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC;AACvC,YAAA,IAAI,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;YAClE,IAAI,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,CAAC;YACjD,IAAI,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,CAAC;YACjD,IAAI,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;YAC7C,IAAI,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC;YACvC,IAAI,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC;SAC5C;IACL,CAAC;AACJ,CAAA,CAAC,CAAC;;AChHH;;;;;;;;;;AAUG;AACH,MAAM,GAAG,GAAiB,CACtB,EACI,GAAG,EACH,OAAO,EACP,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EACvD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,EACrE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAChE,GAAG,EAAE,MAAM,EAAE,SAAS,EACtB,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,mBAAmB,EAAE,gBAAgB,EAC1F,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EACzF,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EACjD,QAAQ,EAAE,SAAS,EAAE,SAAS,EAC9B,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAC/C,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EACzE,KAAK,EACL,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACV,KACD;AACA,IAAA,MAAM,kBAAkB,GAAG,UAAU,CAAC,IAAI,CAAC;QACvC,OAAO;QACP,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS;QACvD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE;QACrE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE;QAChE,GAAG,EAAE,MAAM,EAAE,SAAS;QACtB,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,mBAAmB,EAAE,gBAAgB;AAC1F,QAAA,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK;QACzF,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM;QACjD,QAAQ,EAAE,SAAS,EAAE,SAAS;AAC9B,QAAA,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS;QAC/C,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO;AAC5E,KAAA,CAAC;IAEF,QACIA,GAAA,CAAA,KAAA,EAAA,EACI,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,SAAS,CAAC,EAC5C,KAAK,EAAE,KAAK,EAAA,GACR,IAAI,EAAA,QAAA,EAEP,QAAQ,EAAA,CACP;AAEd;AAEA,GAAG,CAAC,WAAW,GAAG,KAAK;;AC3DvB;;;;;;;;;AASG;AACH,MAAM,KAAK,GAAmB,CAC1B,EACI,aAAa,GAAG,KAAK,EACrB,OAAO,GAAG,MAAM,EAChB,GAAG,GAAG,IAAI,EACV,GAAG,IAAI,EACV,MAEDA,GAAA,CAAC,GAAG,IACA,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,EAC5B,GAAG,EAAE,GAAG,KACJ,IAAI,EAAA,CACV;AAGN,KAAK,CAAC,WAAW,GAAG,OAAO;;AC7BpB,MAAM,0BAA0B,GAAG,cAAc,CAAC,CAAC,KAAK,KAAI;AAC/D,IAAA,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM;IAEtB,OAAO;AACH,QAAA,IAAI,EAAE;AACF,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACrB,YAAA,SAAS,EAAE,YAAY;AACvB,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,WAAW,EAAE,OAAO;AACpB,YAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;YAC7B,eAAe,EAAE,CAAC,CAAC,YAAY;AAC/B,YAAA,UAAU,EAAE,CAAA,aAAA,EAAgB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AACnD,YAAA,kBAAkB,EAAE;AAChB,gBAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;gBAC3B,eAAe,EAAE,CAAC,CAAC,YAAY;AAC/B,gBAAA,MAAM,EAAE,aAAa;AACxB,aAAA;AACJ,SAAA;AACD,QAAA,QAAQ,EAAE;AACN,YAAA,IAAI,EAAE;;AAEF,gBAAA,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE;AAClH,gBAAA,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE;AACpH,gBAAA,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE;AACrH,aAAA;AACD,YAAA,MAAM,EAAE;AACJ,gBAAA,OAAO,EAAE;oBACL,WAAW,EAAE,CAAC,CAAC,UAAU;AACzB,oBAAA,2BAA2B,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,YAAY,EAAE;AAC5D,oBAAA,eAAe,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE;AAClD,iBAAA;AACD,gBAAA,KAAK,EAAE;oBACH,WAAW,EAAE,CAAC,CAAC,SAAS;AACxB,oBAAA,eAAe,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,SAAS,EAAE;AAChD,iBAAA;AACD,gBAAA,OAAO,EAAE;oBACL,WAAW,EAAE,CAAC,CAAC,WAAW;AAC1B,oBAAA,eAAe,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE;AAClD,iBAAA;AACD,gBAAA,OAAO,EAAE;oBACL,WAAW,EAAE,CAAC,CAAC,WAAW;AAC1B,oBAAA,eAAe,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE;AAClD,iBAAA;AACJ,aAAA;AACJ,SAAA;QACD,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE;KACrD;AACL,CAAC,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,CAAC;AAExB,MAAM,gBAAgB,GAAG,YAAY,CAAC,CAAC,KAAK,MAAM;;AAErD,IAAA,KAAK,EAAE;AACH,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,QAAQ,EAAE,CAAC;AACX,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,UAAU,EAAE,aAAa;AACzB,QAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW;AAC/B,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,QAAQ,EAAE,SAAS;AACnB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,OAAO,EAAE,GAAG;QACZ,gBAAgB,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE;AACtD,QAAA,YAAY,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE;AAC5E,KAAA;;AAED,IAAA,aAAa,EAAE;AACX,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,UAAU,EAAE,CAAC;AACb,QAAA,MAAM,EAAE,SAAS;AACpB,KAAA;;AAED,IAAA,aAAa,EAAE;AACX,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,UAAU,EAAE,CAAC;AACb,QAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAC5B,KAAA;AACJ,CAAA,CAAC,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,CAAC;;ACjF9B,MAAM,SAAS,GAAG,CAAI,GAAuB,EAAE,IAAc,KAAU;AACnE,IAAA,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;QAC3B,GAAG,CAAC,IAAI,CAAC;IACb;AAAO,SAAA,IAAI,GAAG,IAAI,IAAI,EAAE;AACnB,QAAA,GAAkC,CAAC,OAAO,GAAG,IAAI;IACtD;AACJ,CAAC;AAED;;;;;;;;;;AAUG;AACI,MAAM,aAAa,GAAG,CAAI,GAAG,IAA+B,KAAoB;AACnF,IAAA,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;AAC5B,IAAA,OAAO,CAAC,OAAO,GAAG,IAAI;AAEtB,IAAA,OAAO,WAAW,CAAC,CAAC,IAAc,KAAI;AAClC,QAAA,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE;AAC/B,YAAA,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC;QACxB;IACJ,CAAC,EAAE,EAAE,CAAC;AACV,CAAC;;ACtBD;AACA,MAAMM,eAAa,GAAmD;AAClE,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;CACX;AAED;AACA,MAAM,oBAAoB,GAA8C;AACpE,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;CACX;AAED;AACA,MAAMC,kBAAgB,GAAmD;AACrE,IAAA,OAAO,EAAE,eAAe;AACxB,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,OAAO,EAAE,cAAc;AACvB,IAAA,OAAO,EAAE,cAAc;CAC1B;AA2BD;;;AAGG;AACI,MAAM,YAAY,GAAG,CAAC,EACzB,EAAE,EACF,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,SAAS,GACQ,KAAwB;AACzC,IAAA,MAAM,WAAW,GAAG,KAAK,EAAE;AAC3B,IAAA,MAAM,OAAO,GAAG,EAAE,IAAI,WAAW;AACjC,IAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,OAAO,SAAS;AAEpC,IAAA,MAAM,QAAQ,GAAG,MAAM,CAA0B,IAAI,CAAC;IACtD,MAAM,SAAS,GAAG,aAAa,CAAmB,GAAG,EAAE,QAAQ,CAAC;IAEhE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AACvD,IAAA,MAAM,UAAU,GAAG,IAAI,KAAK,UAAU;IACtC,MAAM,YAAY,GAAG,UAAU,IAAI,YAAY,GAAG,MAAM,GAAG,UAAU,IAAI,IAAI;IAE7E,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,eAAe,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;AAC9E,IAAA,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAEnE,OAAO;QACH,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,UAAU;QACV,YAAY;QACZ,cAAc;QACd,YAAY;AACZ,QAAA,QAAQ,EAAED,eAAa,CAAC,IAAI,CAAC;AAC7B,QAAA,cAAc,EAAE,oBAAoB,CAAC,IAAI,CAAC;AAC1C,QAAA,WAAW,EAAEC,kBAAgB,CAAC,MAAM,CAAC;AACrC,QAAA,aAAa,EAAE,SAAS,KAAK,SAAS,IAAI,UAAU;QACpD,UAAU;KACb;AACL,CAAC;;ACnFD;;;;;;;;;;AAUG;AACH,MAAM,SAAS,GAAuB,CAAC,EACnC,GAAG,EACH,KAAK,EACL,UAAU,EACV,IAAI,GAAG,IAAI,EACX,MAAM,GAAG,SAAS,EAClB,SAAS,EAAE,SAAS,EACpB,SAAS,EACT,IAAI,EACJ,EAAE,EACF,QAAQ,EACR,QAAQ,EACR,GAAG,IAAI,EACV,KAAI;AACD,IAAA,MAAM,EACF,OAAO,EACP,QAAQ,EACR,SAAS,EACT,UAAU,EACV,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,WAAW,EACX,aAAa,EACb,UAAU,GACb,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAE5D,IAAA,QACIJ,IAAA,CAAC,KAAK,EAAA,EACF,aAAa,EAAE,QAAQ,EACvB,GAAG,EAAE,IAAI,EAAA,QAAA,EAAA,CAER,KAAK,KAAK,SAAS,KAChBA,IAAA,CAAC,IAAI,EAAA,EACD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,IAAI,EACd,UAAU,EAAE,QAAQ,EACpB,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,OAAO,EAAA,QAAA,EAAA,CAEf,KAAK,EACL,QAAQ,KACLH,IAAC,IAAI,EAAA,EACD,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,WAAW,EAAA,aAAA,EACL,IAAI,EAAA,QAAA,EAEhB,IAAI,EAAA,CACF,CACV,CAAA,EAAA,CACE,CACV,EAEDG,IAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,0BAA0B,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAA,eAAA,EACxC,QAAQ,IAAI,SAAS,EAAA,QAAA,EAAA,CAEnC,SAAS,KAENH,GAAA,CAAA,MAAA,EAAA,EACI,SAAS,EAAE,gBAAgB,CAAC,aAAa,EACzC,OAAO,EAAE,UAAU,EAAA,QAAA,EAEnBA,GAAA,CAAC,IAAI,EAAA,EACD,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,QAAQ,EACd,WAAW,EAAE,eAAe,EAAA,CAC9B,EAAA,CACC,CACV,EAEDA,eACI,GAAG,EAAE,SAAS,EACd,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAAA,eAAA,EACH,QAAQ,IAAI,SAAS,EAAA,cAAA,EACtB,MAAM,KAAK,OAAO,IAAI,SAAS,EAAA,kBAAA,EAC3B,UAAU,KAAK,SAAS,GAAG,QAAQ,GAAG,SAAS,EACjE,SAAS,EAAE,gBAAgB,CAAC,KAAK,EAAA,GAC7B,IAAI,GACV,EAED,aAAa,KACVG,IAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,gBAAgB,CAAC,aAAa,EAAA,QAAA,EAAA,CAC1C,SAAS,EACT,UAAU,KACPH,IAAC,UAAU,EAAA,EACP,IAAI,EAAE,YAAY,GAAG,YAAY,GAAG,OAAO,EAC3C,SAAS,EAAE,YAAY,GAAG,eAAe,GAAG,eAAe,EAC3D,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,EAAE,EACZ,OAAO,EAAE,cAAc,GACzB,CACL,CAAA,EAAA,CACE,CACV,CAAA,EAAA,CACC,EAEL,UAAU,KAAK,SAAS,KACrBA,GAAA,CAAC,IAAI,EAAA,EACD,EAAE,EAAE,QAAQ,EACZ,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,IAAI,EACd,KAAK,EAAE,WAAW,EAAA,QAAA,EAEjB,UAAU,EAAA,CACR,CACV,CAAA,EAAA,CACG;AAEhB;AAEA,SAAS,CAAC,WAAW,GAAG,WAAW;;AC7I5B,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,KAAK,MAAM;AAChD,IAAA,QAAQ,EAAE;AACN,QAAA,QAAQ,EAAE,OAAgB;AAC1B,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC;AACpC,KAAA;AACD,IAAA,KAAK,EAAE;AACH,QAAA,QAAQ,EAAE,OAAgB;AAC1B,QAAA,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ;AAC7B,QAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAC1C,QAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,QAAA,MAAM,EAAE,CAAA,UAAA,EAAa,KAAK,CAAC,MAAM,CAAC,UAAU,CAAA,CAAE;AAC9C,QAAA,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC3B,QAAA,SAAS,EAAE,MAAe;AAC1B,QAAA,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC5B,QAAA,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAClC,KAAA;AACJ,CAAA,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;;AChBnB;;;;;;;;;;;AAWG;AACI,MAAM,WAAW,GAAG,CACvB,MAAmB,EACnB,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,EAAA,GAAyB,EAAE,KAC7C;AACN,IAAA,MAAM,MAAM,GAAG,MAAM,CAAc,MAAM,CAAC;IAE1C,SAAS,CAAC,MAAK;AACX,QAAA,MAAM,CAAC,OAAO,GAAG,MAAM;AAC3B,IAAA,CAAC,CAAC;IAEF,SAAS,CAAC,MAAK;QACX,IAAI,CAAC,OAAO,EAAE;YAAC;QAAM;AAErB,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,QAAQ;AACtC,QAAA,MAAM,QAAQ,GAAG,CAAC,KAAY,KAAU;YACpC,MAAM,aAAa,GAAG,KAAsB;YAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC;AACjD,YAAA,OAAO,GAAG,aAAa,CAAC;AAC5B,QAAA,CAAC;AAED,QAAA,WAAW,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC;QACjD,OAAO,MAAM,WAAW,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC;AACrE,IAAA,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACzB,CAAC;;ACnCD,MAAM,kBAAkB,GAAG,CAAC;AAE5B;;;;;;;;;;;;AAYG;AACI,MAAM,eAAe,GAAG,CAAC,EAC5B,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,GAAG,GAAG,CAAC,GACc,KAA2B;IAChD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,EAAE,CAAC;AAErD,IAAA,MAAM,eAAe,GAAG,WAAW,CAAC,MAAK;QACrC,IAAI,CAAC,QAAQ,EAAE;YAAC;QAAM;AAEtB,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,qBAAqB,EAAE;AAC/C,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO;AAC9B,QAAA,MAAM,UAAU,GAAG,MAAM,EAAE,YAAY,IAAI,CAAC;AAC5C,QAAA,MAAM,SAAS,GAAG,MAAM,EAAE,WAAW,IAAI,CAAC;;AAG1C,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG;AACxC,QAAA,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,GAAG,kBAAkB;QAE9D,IAAI,GAAG,GAAG,YAAY;QACtB,IAAI,UAAU,GAAG,CAAC,IAAI,YAAY,GAAG,UAAU,GAAG,cAAc,EAAE;;AAE9D,YAAA,GAAG,GAAG,cAAc,GAAG,UAAU;;YAEjC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,GAAG,CAAC;QAC3C;;AAGA,QAAA,MAAM,gBAAgB,GAAG,OAAO,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC,KAAK;QAC/E,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,gBAAgB,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,GAAG,cAAc,GAAG,kBAAkB;AACvE,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAEzE,QAAA,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;IAC/D,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;;IAGtC,eAAe,CAAC,MAAK;QACjB,IAAI,IAAI,EAAE;AAAC,YAAA,eAAe,EAAE;QAAA;aACvB;YAAC,QAAQ,CAAC,EAAE,CAAC;QAAA;AACtB,IAAA,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;;IAG3B,SAAS,CAAC,MAAK;QACX,IAAI,CAAC,IAAI,EAAE;YAAC;QAAM;AAClB,QAAA,MAAM,EAAE,GAAG,qBAAqB,CAAC,eAAe,CAAC;AACjD,QAAA,OAAO,MAAM,oBAAoB,CAAC,EAAE,CAAC;AACzC,IAAA,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;;IAG3B,SAAS,CAAC,MAAK;QACX,IAAI,CAAC,IAAI,EAAE;YAAC;QAAM;QAClB,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,eAAe,EAAE,IAAI,CAAC;AACxD,QAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,eAAe,CAAC;AAClD,QAAA,OAAO,MAAK;YACR,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,eAAe,EAAE,IAAI,CAAC;AAC3D,YAAA,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,eAAe,CAAC;AACzD,QAAA,CAAC;AACL,IAAA,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAE3B,OAAO,EAAE,KAAK,EAAE;AACpB,CAAC;;ACjED;;;;AAIG;AACI,MAAM,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAiB,KAAmB;AAC3F,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAiB,IAAI,CAAC;IAC7C,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;AAEpD,IAAA,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;;AAGlF,IAAA,MAAM,UAAU,GAAG,WAAW,CAAC,MAAoB;AAC/C,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AAAC,YAAA,OAAO,EAAE;QAAA;AACjC,QAAA,OAAO,KAAK,CAAC,IAAI,CACb,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAc,sCAAsC,CAAC,CACzF;IACL,CAAC,EAAE,EAAE,CAAC;;IAGN,SAAS,CAAC,MAAK;QACX,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,eAAe,CAAC,EAAE,CAAC;YACnB;QACJ;AACA,QAAA,MAAM,GAAG,GAAG,qBAAqB,CAAC,MAAK;AACnC,YAAA,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE;AACzB,YAAA,MAAM,OAAO,GAAG,UAAU,EAAE;YAC5B,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,MAAM,CAAC;AAC1F,YAAA,eAAe,CAAC,WAAW,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC;AACvD,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,MAAM,oBAAoB,CAAC,GAAG,CAAC;AAC1C,IAAA,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;;IAGtB,SAAS,CAAC,MAAK;QACX,IAAI,CAAC,IAAI,EAAE;YAAC;QAAM;AAClB,QAAA,MAAM,OAAO,GAAG,UAAU,EAAE;QAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,GAAG,KAAI;AACxB,YAAA,IAAI,GAAG,KAAK,YAAY,EAAE;AACtB,gBAAA,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC;gBACvC,EAAE,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;YAC3C;iBAAO;AACH,gBAAA,EAAE,CAAC,eAAe,CAAC,cAAc,CAAC;YACtC;AACJ,QAAA,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AAEpC,IAAA,WAAW,CACP;AACI,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,SAAS,EAAE,CAAC,CAAC,KAAI;YACb,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,eAAe,CAAC,CAAC,IAAI,KAAI;AACrB,gBAAA,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC,MAAM;AACjC,gBAAA,OAAO,KAAK,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK;AAClD,YAAA,CAAC,CAAC;QACN,CAAC;AACD,QAAA,OAAO,EAAE,CAAC,CAAC,KAAI;YACX,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,eAAe,CAAC,CAAC,IAAI,KAAI;AACrB,gBAAA,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC,MAAM;AACjC,gBAAA,OAAO,KAAK,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,IAAI,KAAK;AAC1D,YAAA,CAAC,CAAC;QACN,CAAC;AACD,QAAA,IAAI,EAAE,CAAC,CAAC,KAAI;YACR,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC,MAAM;AACjC,YAAA,IAAI,KAAK,GAAG,CAAC,EAAE;gBAAC,eAAe,CAAC,CAAC,CAAC;YAAA;QACtC,CAAC;AACD,QAAA,GAAG,EAAE,CAAC,CAAC,KAAI;YACP,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC,MAAM;AACjC,YAAA,IAAI,KAAK,GAAG,CAAC,EAAE;AAAC,gBAAA,eAAe,CAAC,KAAK,GAAG,CAAC,CAAC;YAAA;QAC9C,CAAC;QACD,KAAK,EAAE,MAAK;AACR,YAAA,MAAM,OAAO,GAAG,UAAU,EAAE;AAC5B,YAAA,IAAI,YAAY,IAAI,CAAC,EAAE;AAAC,gBAAA,OAAO,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE;YAAA;QAC1D,CAAC;AACJ,KAAA,EACD,EAAE,OAAO,EAAE,IAAI,EAAE,CACpB;AAED,IAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;AAC9B,CAAC;;AClGM,MAAM,iBAAiB,GAAG,YAAY,CAAC,CAAC,KAAK,KAAI;AACpD,IAAA,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM;IAEtB,OAAO;AACH,QAAA,IAAI,EAAE;AACF,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,aAAa,EAAE,QAAiB;AACnC,SAAA;AACD,QAAA,OAAO,EAAE;AACL,YAAA,MAAM,EAAE,KAAK;YACb,eAAe,EAAE,CAAC,CAAC,UAAU;AAC7B,YAAA,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC3B,YAAA,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC9B,YAAA,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC5B,YAAA,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAChC,SAAA;AACD,QAAA,KAAK,EAAE;AACH,YAAA,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC5B,YAAA,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC/B,YAAA,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC7B,YAAA,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;YAC9B,KAAK,EAAE,CAAC,CAAC,YAAY;AACrB,YAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC3B,YAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;AACnC,YAAA,UAAU,EAAE,MAAe;AAC3B,YAAA,aAAa,EAAE,WAAoB;AACnC,YAAA,aAAa,EAAE,QAAQ;AAC1B,SAAA;AACD,QAAA,IAAI,EAAE;AACF,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,MAAM,EAAE,GAAG;AACX,YAAA,OAAO,EAAE,GAAG;AACZ,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,aAAa,EAAE,QAAiB;AACnC,SAAA;KACJ;AACL,CAAC,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC;;AClCxB,MAAM,SAAS,GAAuB,CAAC,EACnC,KAAK,EACL,OAAO,EACP,QAAQ,GACX,KAAI;IACD,QACIG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,CACjC,OAAO,KACJH,GAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,iBAAiB,CAAC,OAAO,EACpC,IAAI,EAAE,WAAW,EAAA,aAAA,EACJ,IAAI,EAAA,CACnB,CACL,EACA,KAAK,KAAK,SAAS,KAChBA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,iBAAiB,CAAC,KAAK,EAAA,QAAA,EAAG,KAAK,EAAA,CAAQ,CAC3D,EACDA,GAAA,CAAA,IAAA,EAAA,EACI,SAAS,EAAE,iBAAiB,CAAC,IAAI,EACjC,IAAI,EAAE,OAAO,EAAA,YAAA,EACD,KAAK,EAAA,QAAA,EAEhB,QAAQ,EAAA,CACR,CAAA,EAAA,CACH;AAEd,CAAC;AAED,SAAS,CAAC,WAAW,GAAG,WAAW;;AC9B5B,MAAM,gBAAgB,GAAG,YAAY,CAAC,CAAC,KAAK,KAAI;AACnD,IAAA,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM;IAEtB,OAAO;AACH,QAAA,IAAI,EAAE;AACF,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACrB,YAAA,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC5B,YAAA,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC/B,YAAA,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC7B,YAAA,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC9B,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,UAAU,EAAE,MAAe;YAC3B,KAAK,EAAE,CAAC,CAAC,WAAW;AACpB,YAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC3B,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,UAAU,EAAE,CAAA,iBAAA,EAAoB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AACvD,YAAA,kBAAkB,EAAE;gBAChB,eAAe,EAAE,CAAC,CAAC,aAAa;gBAChC,KAAK,EAAE,CAAC,CAAC,WAAW;AACpB,gBAAA,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;AACtC,aAAA;AACD,YAAA,iBAAiB,EAAE;gBACf,eAAe,EAAE,CAAC,CAAC,kBAAkB;AACxC,aAAA;AACD,YAAA,gCAAgC,EAAE;gBAC9B,eAAe,EAAE,CAAC,CAAC,kBAAkB;AACxC,aAAA;AACD,YAAA,kBAAkB,EAAE;AAChB,gBAAA,MAAM,EAAE,aAAa;AACrB,gBAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;AAC9B,aAAA;AACD,YAAA,6BAA6B,EAAE;gBAC3B,eAAe,EAAE,CAAC,CAAC,kBAAkB;AACxC,aAAA;AACD,YAAA,8BAA8B,EAAE;gBAC5B,eAAe,EAAE,CAAC,CAAC,mBAAmB;AACzC,aAAA;AACJ,SAAA;KACJ;AACL,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC;;ACrCvB,MAAM,QAAQ,GAAsB,CAAC,EACjC,GAAG,EACH,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,OAAO,EACP,GAAG,IAAI,EACV,KAAI;AACD,IAAA,QAEIG,IAAA,CAAA,IAAA,EAAA,EACI,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,QAAQ,mBACC,QAAQ,EAAA,eAAA,EACR,QAAQ,EAAA,eAAA,EACR,QAAQ,IAAI,SAAS,EAAA,cAAA,EACtB,OAAO,IAAI,SAAS,mBACnB,QAAQ,IAAI,SAAS,EACpC,SAAS,EAAE,gBAAgB,CAAC,IAAI,EAChC,OAAO,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,EAAA,GACnC,IAAI,aAEP,IAAI,KAAK,SAAS,KACfH,IAAC,IAAI,EAAA,EACD,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,QAAQ,GAAG,aAAa,GAAG,eAAe,EAAA,CACzD,CACL,EACDA,GAAA,CAAC,IAAI,IACD,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,IAAI,EAAA,QAAA,EAEb,KAAK,EAAA,CACH,CAAA,EAAA,CACN;AAEb,CAAC;AAED,QAAQ,CAAC,WAAW,GAAG,UAAU;;ACtCjC,MAAM,QAAQ,GAAkB,CAAC,EAC7B,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,SAAS,GAAG,OAAO,EACnB,EAAE,EACF,QAAQ,GACX,KAAI;AACD,IAAA,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAE1E,IAAI,CAAC,IAAI,EAAE;AAAC,QAAA,OAAO,IAAI;IAAA;AAEvB,IAAA,OAAO,YAAY,CACfG,IAAA,CAAAE,UAAA,EAAA,EAAA,QAAA,EAAA,CACIL,GAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,WAAW,CAAC,QAAQ,EAC/B,OAAO,EAAE,OAAO,EAAA,aAAA,EACH,IAAI,EAAA,CACnB,EACFA,GAAA,CAAA,KAAA,EAAA,EACI,GAAG,EAAE,QAAQ,EACb,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,EAAE,EACZ,SAAS,EAAE,WAAW,CAAC,KAAK,EAC5B,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,EAAA,QAAA,EAE9C,QAAQ,EAAA,CACP,CAAA,EAAA,CACP,EACH,QAAQ,CAAC,IAAI,CAChB;AACL,CAAC;AAED,QAAQ,CAAC,WAAW,GAAG,MAAM;AAE7B,MAAM,IAAI,GAAG;AACb,IAAI,CAAC,IAAI,GAAG,QAAQ;AACpB,IAAI,CAAC,KAAK,GAAG,SAAS;;AC9Cf,MAAM,uBAAuB,GAAG,cAAc,CAAC,CAAC,KAAK,KAAI;AAC5D,IAAA,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM;IAEtB,OAAO;AACH,QAAA,IAAI,EAAE;AACF,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACrB,YAAA,SAAS,EAAE,YAAqB;AAChC,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,WAAW,EAAE,OAAO;AACpB,YAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;YAC7B,eAAe,EAAE,CAAC,CAAC,YAAY;AAC/B,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,UAAU,EAAE,CAAA,aAAA,EAAgB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AACnD,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,cAAc,EAAE;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;AAC7B,aAAA;AACD,YAAA,kBAAkB,EAAE;AAChB,gBAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;gBAC3B,eAAe,EAAE,CAAC,CAAC,YAAY;AAC/B,gBAAA,MAAM,EAAE,aAAa;AACxB,aAAA;AACJ,SAAA;AACD,QAAA,QAAQ,EAAE;AACN,YAAA,IAAI,EAAE;AACF,gBAAA,EAAE,EAAE;AACA,oBAAA,MAAM,EAAE,MAAM;AACd,oBAAA,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC7B,oBAAA,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC9B,oBAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC9B,iBAAA;AACD,gBAAA,EAAE,EAAE;AACA,oBAAA,MAAM,EAAE,QAAQ;AAChB,oBAAA,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC7B,oBAAA,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC9B,oBAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC9B,iBAAA;AACD,gBAAA,EAAE,EAAE;AACA,oBAAA,MAAM,EAAE,MAAM;AACd,oBAAA,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC7B,oBAAA,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC9B,oBAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC9B,iBAAA;AACJ,aAAA;AACD,YAAA,MAAM,EAAE;AACJ,gBAAA,OAAO,EAAE;oBACL,WAAW,EAAE,CAAC,CAAC,UAAU;AACzB,oBAAA,8CAA8C,EAAE;wBAC5C,WAAW,EAAE,CAAC,CAAC,YAAY;AAC9B,qBAAA;AACD,oBAAA,gBAAgB,EAAE;wBACd,WAAW,EAAE,CAAC,CAAC,WAAW;AAC1B,wBAAA,OAAO,EAAE,MAAM;AAClB,qBAAA;AACJ,iBAAA;AACD,gBAAA,KAAK,EAAE;oBACH,WAAW,EAAE,CAAC,CAAC,SAAS;AACxB,oBAAA,gBAAgB,EAAE;AACd,wBAAA,OAAO,EAAE,MAAM;AAClB,qBAAA;AACJ,iBAAA;AACD,gBAAA,OAAO,EAAE;oBACL,WAAW,EAAE,CAAC,CAAC,WAAW;AAC1B,oBAAA,gBAAgB,EAAE;AACd,wBAAA,OAAO,EAAE,MAAM;AAClB,qBAAA;AACJ,iBAAA;AACD,gBAAA,OAAO,EAAE;oBACL,WAAW,EAAE,CAAC,CAAC,WAAW;AAC1B,oBAAA,gBAAgB,EAAE;AACd,wBAAA,OAAO,EAAE,MAAM;AAClB,qBAAA;AACJ,iBAAA;AACJ,aAAA;AACJ,SAAA;QACD,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE;KACrD;AACL,CAAC,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC;AAErB,MAAM,qBAAqB,GAAG,YAAY,CAAC,CAAC,KAAK,MAAM;AAC1D,IAAA,KAAK,EAAE;AACH,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,QAAQ,EAAE,CAAC;AACX,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,YAAY,EAAE,UAAU;AACxB,QAAA,UAAU,EAAE,QAAiB;AAC7B,QAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW;AAC/B,QAAA,SAAS,EAAE,MAAe;AAC7B,KAAA;AACD,IAAA,WAAW,EAAE;AACT,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,QAAQ,EAAE,CAAC;AACX,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,YAAY,EAAE,UAAU;AACxB,QAAA,UAAU,EAAE,QAAiB;AAC7B,QAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAChC,QAAA,SAAS,EAAE,MAAe;AAC7B,KAAA;AACD,IAAA,OAAO,EAAE;AACL,QAAA,UAAU,EAAE,CAAC;AACb,QAAA,UAAU,EAAE,CAAA,UAAA,EAAa,KAAK,CAAC,UAAU,CAAC,IAAI,CAAA,CAAE;AAChD,QAAA,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa;AACpC,KAAA;AACD,IAAA,WAAW,EAAE;AACT,QAAA,SAAS,EAAE,gBAAgB;AAC9B,KAAA;AACJ,CAAA,CAAC,EAAE,EAAE,EAAE,EAAE,sBAAsB,EAAE,CAAC;;ACvGnC,MAAM,aAAa,GAAmD;AAClE,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,EAAE,EAAE,IAAI;CACX;AAED,MAAM,aAAa,GAA2B,CAAC,EAC3C,GAAG,EACH,IAAI,GAAG,IAAI,EACX,MAAM,GAAG,SAAS,EAClB,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,GAAG,IAAI,EACV,KAAI;AACD,IAAA,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC;IAEpC,QACIG,IAAA,CAAA,QAAA,EAAA,EACI,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,uBAAuB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAA,WAAA,EACzC,IAAI,IAAI,SAAS,EAAA,eAAA,EACb,QAAQ,IAAI,SAAS,EACpC,QAAQ,EAAE,QAAQ,EAAA,GACd,IAAI,EAAA,QAAA,EAAA,CAEP,SAAS,KAAK,SAAS,KACpBH,GAAA,CAAC,IAAI,IACD,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,QAAQ,EACd,WAAW,EAAE,eAAe,EAAA,CAC9B,CACL,EACDA,cAAM,SAAS,EAAE,QAAQ,GAAG,qBAAqB,CAAC,KAAK,GAAG,qBAAqB,CAAC,WAAW,EAAA,QAAA,EACtF,QAAQ,EAAA,CACN,EACPA,GAAA,CAAC,IAAI,EAAA,EACD,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,EAAE,CAAC,qBAAqB,CAAC,OAAO,EAAE,IAAI,GAAG,qBAAqB,CAAC,WAAW,GAAG,SAAS,CAAC,EAClG,WAAW,EAAE,eAAe,EAAA,CAC9B,CAAA,EAAA,CACG;AAEjB,CAAC;AAED,aAAa,CAAC,WAAW,GAAG,eAAe;;AChD3C;AACA,MAAM,gBAAgB,GAAmD;AACrE,IAAA,OAAO,EAAE,eAAe;AACxB,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,OAAO,EAAE,cAAc;AACvB,IAAA,OAAO,EAAE,cAAc;CAC1B;AA4BD;;;;AAIG;AACI,MAAM,SAAS,GAAG,CAAC,EACtB,EAAE,EACF,GAAG,EACH,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,MAAM,EACN,QAAQ,GACM,KAAqB;AACnC,IAAA,MAAM,WAAW,GAAG,KAAK,EAAE;AAC3B,IAAA,MAAM,OAAO,GAAG,EAAE,IAAI,WAAW;AACjC,IAAA,MAAM,MAAM,GAAG,CAAA,EAAG,OAAO,OAAO;AAEhC,IAAA,MAAM,UAAU,GAAG,MAAM,CAA2B,IAAI,CAAC;IACzD,MAAM,SAAS,GAAG,aAAa,CAAoB,GAAG,EAAE,UAAU,CAAC;IAEnE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AAEvC,IAAA,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAG,oBAAoB,CAAS;QAC1D,KAAK;QACL,YAAY,EAAE,YAAY,IAAI,EAAE;QAChC,QAAQ;AACX,KAAA,CAAC;;AAGF,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;IAChC,SAAS,CAAC,MAAK;AACX,QAAA,IAAI,UAAU,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE;AAC7B,YAAA,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE;QAC/B;AACA,QAAA,UAAU,CAAC,OAAO,GAAG,IAAI;AAC7B,IAAA,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAEV,IAAA,MAAM,cAAc,GAAG,OAAO,CAC1B,MAAM,OAAO,EAAE,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,KAAK,YAAY,CAAC,EACxD,CAAC,OAAO,EAAE,YAAY,CAAC,CAC1B;AAED,IAAA,MAAM,cAAc,GAAG,OAAO,CAAC,MAAK;AAChC,QAAA,MAAM,GAAG,GAAG,IAAI,GAAG,EAAsC;AACzD,QAAA,KAAK,MAAM,GAAG,IAAI,OAAO,IAAI,EAAE,EAAE;AAC7B,YAAA,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK;YACrB,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7B,YAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AACxB,gBAAA,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;YACtB;iBAAO;gBACH,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;YACvB;QACJ;AACA,QAAA,OAAO,GAAG;AACd,IAAA,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AAEb,IAAA,MAAM,YAAY,GAAG,WAAW,CAC5B,CAAC,QAAgB,KAAI;QACjB,QAAQ,CAAC,QAAQ,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC;AAClB,IAAA,CAAC,EACD,CAAC,QAAQ,CAAC,CACb;AAED,IAAA,MAAM,MAAM,GAAG,WAAW,CAAC,MAAK;QAC5B,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;QAC5B;AACJ,IAAA,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAEd,IAAA,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;IAEnD,OAAO;QACH,OAAO;QACP,MAAM;QACN,UAAU;QACV,SAAS;QACT,IAAI;QACJ,MAAM;QACN,KAAK;QACL,YAAY;QACZ,cAAc;QACd,cAAc;QACd,YAAY;AACZ,QAAA,WAAW,EAAE,gBAAgB,CAAC,MAAM,CAAC;KACxC;AACL,CAAC;;AC5HD,MAAM,MAAM,GAAoB,CAAC,EAC7B,GAAG,EACH,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,KAAK,EACL,UAAU,EACV,WAAW,EACX,IAAI,GAAG,IAAI,EACX,MAAM,GAAG,SAAS,EAClB,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,EAAE,GACL,KAAI;IACD,MAAM,EACF,OAAO,EACP,MAAM,EACN,UAAU,EACV,SAAS,EACT,IAAI,EACJ,MAAM,EACN,KAAK,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,YAAY,EACZ,WAAW,GACd,GAAG,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAEpF,IAAA,QACIG,IAAA,CAAC,KAAK,IACF,aAAa,EAAE,QAAQ,EACvB,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,IAAI,MAAM,EAAE,aAEhC,KAAK,KAAK,SAAS,KAChBA,KAAC,IAAI,EAAA,EACD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,IAAI,EACd,UAAU,EAAE,QAAQ,EACpB,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,OAAO,EAAA,QAAA,EAAA,CAEf,KAAK,EACL,QAAQ,KACLH,GAAA,CAAC,IAAI,EAAA,EACD,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,WAAW,iBACL,IAAI,EAAA,QAAA,EAEhB,IAAI,EAAA,CACF,CACV,IACE,CACV,EAEDA,IAAC,aAAa,EAAA,EACV,GAAG,EAAE,SAAS,EACd,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,cAAc,KAAK,SAAS,EACtC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAAA,eAAA,EACH,SAAS,mBACT,IAAI,EAAA,eAAA,EACJ,MAAM,EAAA,cAAA,EACP,MAAM,KAAK,OAAO,IAAI,SAAS,EAC7C,OAAO,EAAE,MAAM,EAAA,QAAA,EAEd,cAAc,KAAK,SAAS,GAAG,cAAc,CAAC,KAAK,GAAG,WAAW,EAAA,CACtD,EAEhBA,GAAA,CAAC,IAAI,IACD,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,KAAK,EACd,QAAQ,EAAE,UAAU,CAAC,OAAO,EAC5B,EAAE,EAAE,MAAM,YAET,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,UAAU,KAAI;AAC5E,oBAAA,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,MAC5BA,GAAA,CAAC,IAAI,CAAC,IAAI,EAAA,EAEN,KAAK,EAAE,GAAG,CAAC,KAAK,EAChB,IAAI,EAAE,GAAG,CAAC,IAAI,EACd,QAAQ,EAAE,GAAG,CAAC,KAAK,KAAK,YAAY,EACpC,QAAQ,EAAE,GAAG,CAAC,QAAQ,EACtB,OAAO,EAAE,MAAM,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAA,EALjC,GAAG,CAAC,KAAK,CAMhB,CACL,CAAC;oBACF,OAAO,QAAQ,KAAK,SAAS,IACzBA,IAAC,IAAI,CAAC,KAAK,EAAA,EAEP,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,UAAU,GAAG,CAAC,EAAA,QAAA,EAEtB,KAAK,IAJD,QAAQ,CAKJ,KAEbA,GAAA,CAAC,IAAI,CAAC,KAAK,EAAA,EAEP,OAAO,EAAE,UAAU,GAAG,CAAC,EAAA,QAAA,EAEtB,KAAK,EAAA,EAHD,aAAa,CAIT,CAChB;AACL,gBAAA,CAAC,CAAC,EAAA,CACC,EAEN,UAAU,KAAK,SAAS,KACrBA,GAAA,CAAC,IAAI,EAAA,EACD,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,IAAI,EACd,KAAK,EAAE,WAAW,EAAA,QAAA,EAEjB,UAAU,EAAA,CACR,CACV,CAAA,EAAA,CACG;AAEhB;AAEA,MAAM,CAAC,WAAW,GAAG,QAAQ;;ACnItB,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,KAAK,MAAM;AACpD,IAAA,IAAI,EAAE;AACF,QAAA,SAAS,EAAE,YAAqB;AAChC,QAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,QAAA,MAAM,EAAE,uBAAuB;AAClC,KAAA;AACD,IAAA,QAAQ,EAAE;AACN,QAAA,OAAO,EAAE;AACL,YAAA,QAAQ,EAAE;AACN,gBAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAC1C,gBAAA,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC9B,aAAA;AACD,YAAA,QAAQ,EAAE;AACN,gBAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAC1C,gBAAA,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;AACvC,aAAA;AACJ,SAAA;AACJ,KAAA;AACD,IAAA,eAAe,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;AAC3C,CAAA,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;;ACfnB,MAAM,UAAU,GAAwB,CAAC,EACrC,KAAK,EACL,IAAI,EACJ,OAAO,EACP,aAAa,GAAG,KAAK,EACrB,GAAG,GAAG,IAAI,EACV,UAAU,GAAG,QAAQ,EACrB,cAAc,GAAG,eAAe,EAChC,EAAE,GAAG,IAAI,EACT,EAAE,GAAG,IAAI,EACT,GAAG,IAAI,EACV,KAAI;IACD,QACIG,IAAA,CAAC,KAAK,EAAA,EACF,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EAAA,GACF,IAAI,EAAA,QAAA,EAAA,CAERA,IAAA,CAAC,KAAK,EAAA,EACF,UAAU,EAAE,QAAQ,EACpB,GAAG,EAAE,IAAI,EACT,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,GAAG,EAAA,QAAA,EAAA,CAEZ,IAAI,KAAK,SAAS,KACfH,GAAA,CAAC,IAAI,EAAA,EACD,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,eAAe,EAAA,CAC9B,CACL,EACDA,GAAA,CAAC,IAAI,EAAA,EACD,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,IAAI,EACd,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,aAAa,EAAA,QAAA,EAEnB,KAAK,EAAA,CACH,CAAA,EAAA,CACH,EACP,OAAO,KAAK,SAAS,KAClBA,GAAA,CAAC,KAAK,EAAA,EACF,UAAU,EAAE,QAAQ,EACpB,GAAG,EAAE,IAAI,EACT,UAAU,EAAE,CAAC,EAAA,QAAA,EAEZ,OAAO,EAAA,CACJ,CACX,CAAA,EAAA,CACG;AAEhB,CAAC;AAED,UAAU,CAAC,WAAW,GAAG,aAAa;;AC3DtC,MAAM,QAAQ,GAAsB,CAAC,EACjC,QAAQ,EACR,EAAE,GAAG,IAAI,EACT,EAAE,GAAG,IAAI,EACT,aAAa,GAAG,QAAQ,EACxB,GAAG,GAAG,IAAI,EACV,GAAG,IAAI,EACV,KAAI;IACD,QACIA,GAAA,CAAC,KAAK,EAAA,EACF,aAAa,EAAE,aAAa,EAC5B,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,EAAE,EAAA,GACF,IAAI,EAAA,QAAA,EAEP,QAAQ,EAAA,CACL;AAEhB,CAAC;AAED,QAAQ,CAAC,WAAW,GAAG,WAAW;;ACflC,MAAM,QAAQ,GAAkB,CAC5B,EAAE,GAAG,EAAE,OAAO,GAAG,UAAU,EAAE,OAAO,GAAG,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,KAC7E;AACA,IAAA,QACIA,GAAA,CAAC,GAAG,EAAA,EACA,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,EAAA,GAChD,IAAgB,EAAA,QAAA,EAEnB,QAAQ,EAAA,CACP;AAEd,CAAC;AAED,QAAQ,CAAC,WAAW,GAAG,MAAM;AAE7B,MAAM,IAAI,GAAG;AACb,IAAI,CAAC,MAAM,GAAG,UAAU;AACxB,IAAI,CAAC,IAAI,GAAG,QAAQ;;ACzBb,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO;IAC3C,IAAI,EAAE,CAAC,EACH,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,YAAY,GACkH,MAAM;QACpI,IAAI,QAAQ,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;QACzD,IAAI,WAAW,KAAK,SAAS,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC;QAClE,IAAI,QAAQ,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;QACzD,IAAI,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,CAAC;QACnD,IAAI,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,CAAC;QACnD,IAAI,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,CAAC;QAC/C,IAAI,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,CAAC;KACtD,CAAC;AACL,CAAA,CAAC,CAAC;;ACdH;;;;;;;;;;;AAWG;AACH,MAAM,IAAI,GAAkB,CACxB,EACI,OAAO,GAAG,MAAM,EAChB,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,SAAS,EACT,MAAM,GAAC,IAAI,EACX,SAAS,GAAC,IAAI,EACd,GAAG,IAAI,EACV,KACD;AACA,IAAA,MAAM,eAAe,GAAG,OAAO,KAAK;AAChC,WAAG,OAAO,OAAO,KAAK,QAAQ,GAAG,CAAA,OAAA,EAAU,OAAO,CAAA,MAAA,CAAQ,GAAG,OAAO;UAClE,mBAAmB;AAEzB,IAAA,MAAM,YAAY,GAAG,IAAI,KAAK;AAC1B,WAAG,OAAO,IAAI,KAAK,QAAQ,GAAG,CAAA,OAAA,EAAU,IAAI,CAAA,MAAA,CAAQ,GAAG,IAAI;UACzD,gBAAgB;AAEtB,IAAA,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC;QACnC,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,YAAY;AACf,KAAA,CAAC;AAEF,IAAA,QACIA,GAAA,CAAC,GAAG,EAAA,EACA,OAAO,EAAE,OAAO,EAChB,mBAAmB,EAAE,eAAe,EACpC,gBAAgB,EAAE,YAAY,EAC9B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,EAAA,GACnC,IAAI,EAAA,CACV;AAEV;AAEA,IAAI,CAAC,WAAW,GAAG,MAAM;;AC7DlB,MAAM,YAAY,GAAG,aAAa,CAAoB;AACzD,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,WAAW,EAAE,eAAe;AAC/B,CAAA,CAAC;AAEK,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC;;ACD7D,MAAM,aAAa,GAA+D;AAC9E,IAAA,OAAO,EAAE,gBAAgB;AACzB,IAAA,KAAK,EAAE,cAAc;AACrB,IAAA,OAAO,EAAE,gBAAgB;AACzB,IAAA,IAAI,EAAE,aAAa;CACtB;AAED;AACA,MAAM,cAAc,GAAG,CAAC,KAAc,KAClC,OAAO,KAAK,KAAK,UAAU;AAE/B;;;AAGG;AACH,MAAM,UAAU,GAAwB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAI;IAC3D,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,eAAe,EAAE;;;;AAKlD,IAAA,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC;;AAE1C,IAAA,MAAM,YAAY,GACd,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,KAAK,SAAS,IAAI,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC;AAC7F,IAAA,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;IAE9D,MAAM,OAAO,GAAG,YAAY,KAAK,IAAI,IAAI,UAAU,KAAK,IAAI;AAE5D,IAAA,QACIG,IAAA,CAAC,KAAK,IACF,aAAa,EAAE,KAAK,EACpB,UAAU,EAAE,QAAQ,EACpB,GAAG,EAAE,IAAI,aAER,OAAO,KACJH,GAAA,CAAC,KAAK,EAAA,EACF,UAAU,EAAE,CAAC,EACb,UAAU,EAAE,QAAQ,EACpB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,SAAS,iBACJ,IAAI,EAAA,QAAA,EAEhB,YAAY,IACTA,IAAC,YAAY,EAAA,EACT,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EAAA,CACZ,KAEF,UAAU,CACb,GACG,CACX,EACDA,IAAC,IAAI,EAAA,EACD,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,IAAI,EACd,KAAK,EAAE,WAAW,EAAA,QAAA,EAEjB,QAAQ,EAAA,CACN,CAAA,EAAA,CACH;AAEhB,CAAC;AAED,UAAU,CAAC,WAAW,GAAG,aAAa;;ACzEtC;;AAEG;AACH,MAAM,SAAS,GAAuB,CAAC,EAAE,QAAQ,EAAE,MAC/CA,GAAA,CAAC,IAAI,EAAA,EACD,EAAE,EAAE,GAAG,EACP,QAAQ,EAAE,IAAI,EACd,KAAK,EAAE,eAAe,EAAA,QAAA,EAErB,QAAQ,EAAA,CACN,CACV;AAED,SAAS,CAAC,WAAW,GAAG,YAAY;;ACHpC,MAAM,cAAc,GAAwC;AACxD,IAAA,OAAO,EAAE,EAAE,eAAe,EAAE,cAAc,EAAG,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE;AACvG,IAAA,OAAO,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE;AACvG,IAAA,KAAK,EAAI,EAAE,eAAe,EAAE,aAAa,EAAI,WAAW,EAAE,WAAW,EAAI,WAAW,EAAE,aAAa,EAAI;AACvG,IAAA,OAAO,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE;AACvG,IAAA,IAAI,EAAK,EAAE,eAAe,EAAE,YAAY,EAAK,WAAW,EAAE,UAAU,EAAK,WAAW,EAAE,YAAY,EAAK;CAC1G;AAED,MAAM,iBAAiB,GAAiD;AACpE,IAAA,OAAO,EAAE,QAAQ;AACjB,IAAA,OAAO,EAAE,QAAQ;AACjB,IAAA,KAAK,EAAI,WAAW;AACpB,IAAA,OAAO,EAAE,QAAQ;AACjB,IAAA,IAAI,EAAK,QAAQ;CACpB;AAED;;;;;;;;;AASG;AACH,MAAM,SAAS,GAAmB,CAAC,EAC/B,OAAO,GAAG,SAAS,EACnB,QAAQ,EACR,KAAK,GAAG,MAAM,EACd,OAAO,GAAG,KAAK,EACf,MAAM,GAAG,MAAM,GAClB,KAAI;AACD,IAAA,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC;IAE7E,QACIA,IAAC,YAAY,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,YAClDA,GAAA,CAAC,KAAK,IACF,IAAI,EAAE,OAAO,EAAA,WAAA,EACF,iBAAiB,CAAC,OAAO,CAAC,EACrC,aAAa,EAAE,QAAQ,EACvB,GAAG,EAAE,IAAI,EACT,OAAO,EAAE,IAAI,EACb,YAAY,EAAE,IAAI,EAClB,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS,EAC9C,WAAW,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,EACxC,WAAW,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,EAC1C,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,KAAK,YAEX,QAAQ,EAAA,CACL,EAAA,CACY;AAEhC,CAAC;AAED,SAAS,CAAC,WAAW,GAAG,OAAO;AAE/B,MAAM,KAAK,GAAG;AACd,KAAK,CAAC,KAAK,GAAG,UAAU;AACxB,KAAK,CAAC,IAAI,GAAG,SAAS;;AC7EtB;;;AAGG;AACI,MAAM,WAAW,GAAG;AACvB,IACA,EAAE,EAAG,IAKC;AAEV;AACO,MAAM,SAAS,GAAG;AACrB,IACA,EAAE,EAAG,CAAA,WAAA,EAAc,WAAW,CAAC,EAAE,GAAI,CAAC,CAAA,EAAA,EAKhC;;ACrBV;AACO,MAAM,8BAA8B,GAAG,GAAG;;ACIjD,MAAM,UAAU,GAAG,CAAA,EAAG,8BAA8B,SAAS;AAEtD,MAAM,aAAa,GAAG,YAAY,CAAC,CAAC,KAAK,MAAM;AAClD,IAAA,QAAQ,EAAE;AACN,QAAA,QAAQ,EAAE,OAAgB;AAC1B,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC;AAC9B,QAAA,eAAe,EAAE,kBAAkB;QACnC,UAAU,EAAE,CAAA,iBAAA,EAAoB,UAAU,CAAA,CAAE;AAC/C,KAAA;AAED,IAAA,eAAe,EAAE;AACb,QAAA,eAAe,EAAE,oBAAoB;AACxC,KAAA;AACD,IAAA,KAAK,EAAE;AACH,QAAA,QAAQ,EAAE,OAAgB;AAC1B,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,QAAQ,EAAE,+BAA+B;AACzC,QAAA,SAAS,EAAE,gCAAgC;AAC3C,QAAA,QAAQ,EAAE,8BAA8B;AACxC,QAAA,SAAS,EAAE,+BAA+B;AAC1C,QAAA,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;AAC1B,QAAA,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;AAC1C,QAAA,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AACjC,QAAA,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AAC3B,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,aAAa,EAAE,QAAiB;AAChC,QAAA,QAAQ,EAAE,QAAiB;AAC3B,QAAA,UAAU,EAAE,oBAAoB;AAChC,QAAA,OAAO,EAAE,CAAC;AACV,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,UAAU,EAAE,CAAA,QAAA,EAAW,UAAU,CAAA,YAAA,EAAe,UAAU,CAAA,CAAE;;AAE5D,QAAA,CAAC,WAAW,SAAS,CAAC,EAAE,CAAA,CAAA,CAAG,GAAG;AAC1B,YAAA,GAAG,EAAE,MAAM;AACX,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,SAAS,EAAE,gCAAgC;AAC3C,YAAA,YAAY,EAAE,CAAA,EAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,IAAA,CAAM;AACjE,YAAA,SAAS,EAAE,kBAAkB;AAChC,SAAA;AACJ,KAAA;AAED,IAAA,YAAY,EAAE;AACV,QAAA,OAAO,EAAE,CAAC;AACV,QAAA,SAAS,EAAE,UAAU;AACrB,QAAA,CAAC,WAAW,SAAS,CAAC,EAAE,CAAA,CAAA,CAAG,GAAG;AAC1B,YAAA,SAAS,EAAE,eAAe;AAC7B,SAAA;AACJ,KAAA;;AAGD,IAAA,eAAe,EAAE;AACb,QAAA,CAAC,WAAW,SAAS,CAAC,EAAE,CAAA,CAAA,CAAG,GAAG;AAC1B,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,SAAS,EAAE,MAAM;AACpB,SAAA;AACJ,KAAA;AAEJ,CAAA,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;;AC7Dd,MAAM,aAAa,GAAG,aAAa,CAAqB;AAC3D,IAAA,OAAO,EAAE,EAAE;AACX,IAAA,kBAAkB,EAAE,IAAW;AAClC,CAAA,CAAC;;ACRF;;;;;;;;;;;;;;;AAeG;AACI,MAAM,mBAAmB,GAAG,CAC/B,MAAe,EACf,QAAQ,GAAG,8BAA8B,KACV;IAC/B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;IAClD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;;;IAIpD,eAAe,CAAC,MAAK;QACjB,IAAI,MAAM,EAAE;YACR,YAAY,CAAC,IAAI,CAAC;QACtB;AACJ,IAAA,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAEZ,SAAS,CAAC,MAAK;QACX,IAAI,MAAM,EAAE;;;AAGR,YAAA,IAAI,IAAY;AAChB,YAAA,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAK;gBACpC,IAAI,GAAG,qBAAqB,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;AAC3D,YAAA,CAAC,CAAC;AACF,YAAA,OAAO,MAAK;gBACR,oBAAoB,CAAC,IAAI,CAAC;gBAC1B,oBAAoB,CAAC,IAAI,CAAC;AAC9B,YAAA,CAAC;QACL;aAAO;YACH,aAAa,CAAC,KAAK,CAAC;AACpB,YAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,YAAY,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;AAC/D,YAAA,OAAO,MAAM,YAAY,CAAC,OAAO,CAAC;QACtC;AACJ,IAAA,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAEtB,IAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE;AACpC,CAAC;;ACvDD;;;;;;;;AAQG;AACI,MAAM,iBAAiB,GAAG,CAAC,MAAe,KAAU;IACvD,SAAS,CAAC,MAAK;QACX,IAAI,CAAC,MAAM,EAAE;YAAC;QAAM;AAEpB,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO;AAC9B,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI;AAC1B,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO;QAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA,CAAA,EAAI,OAAO,IAAI;AAChC,QAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ;AAC/B,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM;AAEzB,QAAA,OAAO,MAAK;AACR,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE;AACxB,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE;AACnB,YAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE;AACzB,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE;AACrB,YAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;AAC/B,QAAA,CAAC;AACL,IAAA,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AAChB,CAAC;;AC5BD,MAAM,kBAAkB,GAAG;IACvB,SAAS;IACT,wBAAwB;IACxB,0BAA0B;IAC1B,uBAAuB;IACvB,wBAAwB;IACxB,iCAAiC;AACpC,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC;AAEX,MAAM,YAAY,GAAG,CAAC,SAAsB,KACxC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAc,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAC1E,CAAC,EAAE,KAAK,EAAE,CAAC,YAAY,KAAK,IAAI,IAAI,EAAE,KAAK,QAAQ,CAAC,aAAa,CACpE;AAEL;;;;;;AAMG;AACI,MAAM,YAAY,GAAG,CACxB,YAA2C,EAC3C,MAAe,KACT;IACN,SAAS,CAAC,MAAK;QACX,IAAI,CAAC,MAAM,EAAE;YAAC;QAAM;AACpB,QAAA,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO;QACtC,IAAI,CAAC,SAAS,EAAE;YAAC;QAAM;AAEvB,QAAA,MAAM,aAAa,GAAG,CAAC,KAAoB,KAAU;AACjD,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE;gBAAC;YAAM;AAEhC,YAAA,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;AACzC,YAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBACxB,KAAK,CAAC,cAAc,EAAE;gBACtB,SAAS,CAAC,KAAK,EAAE;gBACjB;YACJ;AAEA,YAAA,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC;YAC1B,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5C,YAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa;AAEvC,YAAA,IAAI,KAAK,CAAC,QAAQ,EAAE;AAChB,gBAAA,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;oBAC/E,KAAK,CAAC,cAAc,EAAE;oBACtB,IAAI,CAAC,KAAK,EAAE;gBAChB;YACJ;AAAO,iBAAA,IAAI,QAAQ,KAAK,IAAI,EAAE;gBAC1B,KAAK,CAAC,cAAc,EAAE;gBACtB,KAAK,CAAC,KAAK,EAAE;YACjB;AACJ,QAAA,CAAC;AAED,QAAA,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC;QACpD,OAAO,MAAM,SAAS,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC;AACxE,IAAA,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAC9B,CAAC;;ACjDD,MAAM,kBAAkB,GAAG,CAAA,YAAA,EAAe,WAAW,CAAC,EAAE,GAAG,CAAC,CAAA,GAAA,CAAK;AAYjE,MAAM,SAAS,GAAG,CAAC,CAAkB,KACjC,OAAO,CAAC,KAAK,QAAQ,GAAG,CAAA,EAAG,CAAC,IAAI,GAAG,CAAC;AAEjC,MAAM,SAAS,GAAG,CAAC,EACtB,IAAI,EACJ,OAAO,EACP,oBAAoB,EACpB,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,YAAY,EAAE,SAAS,GAC2G,KAAqB;AAEvJ,IAAA,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,mBAAmB,CAAC,IAAI,EAAE,8BAA8B,CAAC;AAC3F,IAAA,MAAM,OAAO,GAAG,KAAK,EAAE;AACvB,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAiB,IAAI,CAAC;;IAG7C,SAAS,CAAC,MAAK;QACX,IAAI,CAAC,IAAI,EAAE;YAAC;QAAM;AAClB,QAAA,MAAM,KAAK,GAAG,UAAU,CAAC,MAAK;YAC1B,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QACpD,CAAC,EAAE,8BAA8B,CAAC;AAClC,QAAA,OAAO,MAAM,YAAY,CAAC,KAAK,CAAC;AACpC,IAAA,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;;IAGV,iBAAiB,CAAC,IAAI,CAAC;;AAGvB,IAAA,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC;;AAGjC,IAAA,MAAM,mBAAmB,GAAG,WAAW,CAAC,MAAK;QACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,OAAO;AAC9D,QAAA,IAAI,oBAAoB,IAAI,QAAQ,EAAE;AAClC,YAAA,OAAO,EAAE;QACb;AACJ,IAAA,CAAC,EAAE,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;AAEnC,IAAA,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAEnD,IAAA,MAAM,OAAO,GAAkB;AAC3B,QAAA,oBAAoB,EAAE,SAAS,CAAC,QAAS,CAAC;AAC1C,QAAA,qBAAqB,EAAE,SAAS;AAChC,QAAA,IAAI,QAAQ,KAAK,SAAS,IAAI,EAAE,oBAAoB,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC5E,QAAA,IAAI,SAAS,KAAK,SAAS,IAAI,EAAE,qBAAqB,EAAE,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;KACjE;IAElB,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO;AAElD,IAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,OAAO,EAAE;AACjG,CAAC;;ACnED;;;;;;AAMG;AACH,MAAM,YAAY,GAA0B,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAI;IAC/D,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC;IAEjE,QACIG,KAAC,KAAK,EAAA,EACF,aAAa,EAAE,KAAK,EACpB,UAAU,EAAE,QAAQ,EACpB,cAAc,EAAE,eAAe,EAC/B,GAAG,EAAE,IAAI,EACT,UAAU,EAAE,IAAI,EAChB,aAAa,EAAE,IAAI,EACnB,WAAW,EAAE,IAAI,EACjB,YAAY,EAAE,IAAI,EAClB,UAAU,EAAE,CAAC,aAEbH,GAAA,CAAC,IAAI,IACD,EAAE,EAAE,OAAO,EACX,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,IAAI,EACd,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,aAAa,YAEnB,KAAK,EAAA,CACH,EAEPA,GAAA,CAAC,UAAU,IACP,IAAI,EAAE,kBAAkB,EACxB,SAAS,EAAE,cAAc,EACzB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,OAAO,EAAA,CAClB,CAAA,EAAA,CACE;AAEhB,CAAC;AAED,YAAY,CAAC,WAAW,GAAG,eAAe;;AChD1C;;;;;;;AAOG;AACH,MAAM,UAAU,GAAwB,CAAC,EAAE,QAAQ,EAAE,MACjDA,GAAA,CAAC,GAAG,EAAA,EACA,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,IAAI,EAAA,QAAA,EAEZ,QAAQ,EAAA,CACP,CACT;AAED,UAAU,CAAC,WAAW,GAAG,aAAa;;ACXtC;;;;;;;;;;;;;AAaG;AACH,MAAM,UAAU,GAAoB,CAAC,EACjC,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,oBAAoB,GAAG,KAAK,EAC5B,UAAU,GAAG,KAAK,EAClB,QAAQ,GAAG,MAAM,EACjB,SAAS,GAAG,MAAM,EAClB,QAAQ,EACR,SAAS,EACT,YAAY,EAAE,SAAS,GAC1B,KAAI;AACD,IAAA,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,OAAO,EAAE,GACxF,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;IAEzH,IAAI,CAAC,SAAS,EAAE;AAAC,QAAA,OAAO,IAAI;IAAA;IAE5B,OAAO,YAAY,CACfG,IAAA,CAAAE,UAAA,EAAA,EAAA,QAAA,EAAA,CACIL,GAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,IAAI,aAAa,CAAC,eAAe,CAAC,EAClF,OAAO,EAAE,mBAAmB,iBACf,IAAI,EAAA,CACnB,EAEFA,GAAA,CAAA,KAAA,EAAA,EACI,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,QAAQ,gBACF,IAAI,EAAA,iBAAA,EACC,UAAU,EAAA,YAAA,EACf,SAAS,EACrB,QAAQ,EAAE,EAAE,EACZ,SAAS,EAAE,EAAE,CACT,aAAa,CAAC,KAAK,EACnB,UAAU,IAAI,aAAa,CAAC,YAAY,EACxC,UAAU,IAAI,aAAa,CAAC,eAAe,CAC9C,EACD,KAAK,EAAE,OAAO,EAAA,QAAA,EAEdA,GAAA,CAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,EAAA,QAAA,EACpE,QAAQ,GACY,EAAA,CACvB,CAAA,EAAA,CACP,EACH,QAAQ,CAAC,IAAI,CAChB;AACL,CAAC;AAED,UAAU,CAAC,WAAW,GAAG,QAAQ;AAEjC,MAAM,MAAM,GAAG;AACf,MAAM,CAAC,MAAM,GAAG,YAAY;AAC5B,MAAM,CAAC,IAAI,GAAG,UAAU;;AChFjB,MAAM,YAAY,GAAG;;AAExB,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,eAAe,EAAE,SAAS;;AAG1B,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,WAAW,EAAE,SAAS;;AAGtB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,kBAAkB,EAAE,SAAS;AAC7B,IAAA,mBAAmB,EAAE,SAAS;AAC9B,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,SAAS,EAAE,SAAS;;AAGpB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,cAAc,EAAE,SAAS;AACzB,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,oBAAoB,EAAE,SAAS;AAC/B,IAAA,qBAAqB,EAAE,SAAS;AAChC,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,WAAW,EAAE,SAAS;;AAGtB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,YAAY,EAAE,SAAS;;AAGvB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,YAAY,EAAE,SAAS;;AAGvB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,kBAAkB,EAAE,SAAS;AAC7B,IAAA,mBAAmB,EAAE,SAAS;AAC9B,IAAA,SAAS,EAAE,SAAS;;AAGpB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,kBAAkB,EAAE,SAAS;AAC7B,IAAA,mBAAmB,EAAE,SAAS;AAC9B,IAAA,SAAS,EAAE,SAAS;;AAGpB,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,gBAAgB,EAAE,SAAS;AAC3B,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,OAAO,EAAE,SAAS;;AAGlB,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,gBAAgB,EAAE,SAAS;AAC3B,IAAA,MAAM,EAAE,SAAS;;AAGjB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,kBAAkB,EAAE,SAAS;AAC7B,IAAA,QAAQ,EAAE,SAAS;;AAGnB,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,gBAAgB,EAAE,SAAS;AAC3B,IAAA,MAAM,EAAE,SAAS;;AAGjB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,kBAAkB,EAAE,SAAS;AAC7B,IAAA,QAAQ,EAAE,SAAS;;AAGnB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,kBAAkB,EAAE,SAAS;AAC7B,IAAA,mBAAmB,EAAE,SAAS;;AAG9B,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,iBAAiB,EAAE,SAAS;;AAG5B,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,YAAY,EAAE,SAAS;CAC1B;;AC1HD;;AAEG;AACI,MAAM,gBAAgB,GAAG;IAC5B,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,QAAQ;CAClB;;ACVD;;AAEG;AACI,MAAM,aAAa,GAAG;IACzB,KAAK,EAAE,UAAU;IACjB,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,MAAM;CAChB;;ACdD;;AAEG;AACI,MAAM,eAAe,GAAG;AAC3B,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,OAAO,EAAE,GAAG;AACZ,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,IAAI,EAAE,GAAG;CACZ;;ACTD;;AAEG;AACI,MAAM,eAAe,GAAG;AAC3B,IAAA,IAAI,EAAE,CAAC;AACP,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,KAAK,EAAE,CAAC;CACX;;ACTD;;AAEG;AACI,MAAM,YAAY,GAAG;AACxB,IAAA,IAAI,EAAE,CAAC;AACP,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,IAAI,EAAE,CAAC;CACV;;ACXD;;AAEG;AACI,MAAM,WAAW,GAAG;AACvB,IAAA,IAAI,EAAE,GAAG;IACT,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,SAAS;IACb,KAAK,EAAE,MAAM;AACb,IAAA,IAAI,EAAE,QAAQ;CACjB;;ACZD;;AAEG;AACI,MAAM,YAAY,GAAG;AACxB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,EAAE,EAAE,+BAA+B;AACnC,IAAA,EAAE,EAAE,+DAA+D;AACnE,IAAA,EAAE,EAAE,kEAAkE;AACtE,IAAA,EAAE,EAAE,oEAAoE;AACxE,IAAA,EAAE,EAAE,qEAAqE;AACzE,IAAA,KAAK,EAAE,qCAAqC;AAC5C,IAAA,KAAK,EAAE,qCAAqC;AAC5C,IAAA,KAAK,EAAE,iCAAiC;AACxC,IAAA,MAAM,EAAE,iFAAiF;CAC5F;;ACdD;;AAEG;AACI,MAAM,YAAY,GAAG;AACxB,IAAA,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,UAAU;IACjB,EAAE,EAAE,SAAS;IACb,KAAK,EAAE,UAAU;IACjB,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,MAAM;IACV,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,MAAM;CAChB;;AChBD;;AAEG;AACI,MAAM,eAAe,GAAG;AAC3B,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,MAAM,EAAE,gBAAgB;AACxB,IAAA,IAAI,EAAE,gBAAgB;CACzB;;ACPD;;AAEG;AACI,MAAM,WAAW,GAAG;IACvB,MAAM,EAAE,EAAE;AACV,IAAA,IAAI,EAAE,CAAC;AACP,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,KAAK,EAAE,IAAI;CACd;;ACAM,MAAM,UAAU,GAAG,WAAW,CAAC;AAClC,IAAA,MAAM,EAAE,YAAY;AACpB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,QAAQ,EAAE,aAAa;AACvB,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,WAAW,EAAE,gBAAgB;AAChC,CAAA;;ACzBM,MAAM,WAAW,GAAG;;AAEvB,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,eAAe,EAAE,SAAS;;AAG1B,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,WAAW,EAAE,SAAS;;AAGtB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,kBAAkB,EAAE,SAAS;AAC7B,IAAA,mBAAmB,EAAE,SAAS;AAC9B,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,SAAS,EAAE,SAAS;;AAGpB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,cAAc,EAAE,SAAS;AACzB,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,oBAAoB,EAAE,SAAS;AAC/B,IAAA,qBAAqB,EAAE,SAAS;AAChC,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,WAAW,EAAE,SAAS;;AAGtB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,YAAY,EAAE,SAAS;;AAGvB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,YAAY,EAAE,SAAS;;AAGvB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,kBAAkB,EAAE,SAAS;AAC7B,IAAA,mBAAmB,EAAE,SAAS;AAC9B,IAAA,SAAS,EAAE,SAAS;;AAGpB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,kBAAkB,EAAE,SAAS;AAC7B,IAAA,mBAAmB,EAAE,SAAS;AAC9B,IAAA,SAAS,EAAE,SAAS;;AAGpB,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,gBAAgB,EAAE,SAAS;AAC3B,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,OAAO,EAAE,SAAS;;AAGlB,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,gBAAgB,EAAE,SAAS;AAC3B,IAAA,MAAM,EAAE,SAAS;;AAGjB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,kBAAkB,EAAE,SAAS;AAC7B,IAAA,QAAQ,EAAE,SAAS;;AAGnB,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,gBAAgB,EAAE,SAAS;AAC3B,IAAA,MAAM,EAAE,SAAS;;AAGjB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,kBAAkB,EAAE,SAAS;AAC7B,IAAA,QAAQ,EAAE,SAAS;;AAGnB,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,kBAAkB,EAAE,SAAS;AAC7B,IAAA,mBAAmB,EAAE,SAAS;;AAG9B,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,iBAAiB,EAAE,SAAS;;AAG5B,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,YAAY,EAAE,SAAS;CAC1B;;AC7GM,MAAM,SAAS,GAAG,WAAW,CAAC;AACjC,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,QAAQ,EAAE,aAAa;AACvB,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,WAAW,EAAE,gBAAgB;AAChC,CAAA;;;;"}