@pk-design/react-tailwind 1.5.2 → 1.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"react-tailwind.es.js","sources":["../src/utils/build-classname.ts","../src/components/Icons/ChevronDown.svg","../src/components/Accordion/Accordion.tsx","../src/components/Icons/BadgeCheck.svg","../src/components/Icons/CircleX.svg","../src/components/Icons/CircleAlert.svg","../src/components/Icons/Info.svg","../src/components/Icons/X.svg","../src/components/Loader/index.tsx","../src/components/TextContent/TextContent.tsx","../src/components/Button/Button.tsx","../src/components/Alert/Alert.tsx","../src/components/Badge/Badge.tsx","../src/components/Icons/TriangleAlert.svg","../src/components/Icons/CircleCheck.svg","../src/components/Banner/Banner.tsx","../src/components/BodyText/BodyText.tsx","../src/components/Icons/Slash.svg","../src/components/Breadcrumb/Breadcrumb.tsx","../src/components/ButtonGroup/ButtonGroup.tsx","../src/components/Card/Card.tsx","../src/components/Label/Label.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/CheckboxGroup/CheckboxGroup.tsx","../src/components/Table/Table.tsx","../src/components/Pagination/usePagination.tsx","../src/components/Icons/ChevronLeft.svg","../src/components/Icons/ChevronRight.svg","../src/components/Pagination/Pagination.tsx","../src/utils/get.ts","../src/components/DataTable/DataTable.utils.ts","../src/components/Icons/ArrowDownWideNarrow.svg","../src/components/Icons/ArrowDownNarrowWide.svg","../src/components/Icons/ArrowDownAZ.svg","../src/components/Icons/ArrowDownZA.svg","../src/components/Icons/ArrowUpDown.svg","../src/components/DataTable/DataTable.icons.tsx","../src/components/DataTable/DataTable.tsx","../src/components/HeadingText/HeadingText.tsx","../src/components/DetailedInformation/DetailedInformation.tsx","../src/components/Dot/index.tsx","../src/components/Drawer/Drawer.tsx","../src/components/Dropdown/Dropdown.tsx","../src/components/Icons/FolderPlus.svg","../src/components/EmptyState/index.tsx","../src/components/Input/Input.tsx","../src/components/PasswordInput/PasswordInput.tsx","../src/components/Radio/Radio.tsx","../src/components/RadioGroup/RadioGroup.tsx","../src/components/RadioSwitch/RadioSwitch.tsx","../src/utils/is-array.ts","../src/utils/is-empty.ts","../src/components/RangeInput/RangeInput.tsx","../src/components/RangeSlider/RangeSlider.tsx","../src/hooks/use-debounce.tsx","../src/components/Icons/Check.svg","../src/components/Icons/CirclePlus.svg","../src/components/SelectBox/SelectBox.tsx","../src/components/Tabs/Tabs.tsx","../src/components/Textarea/Textarea.tsx","../src/components/Toast/Toast.tsx","../src/components/Toast/ToastProvider.tsx","../src/components/VirtualizedDataTable/VirtualizedRow.tsx","../src/components/VirtualizedDataTable/VirtualizedDataTable.tsx","../src/hooks/use-is-mobile.tsx","../src/hooks/use-is-tablet.tsx","../src/hooks/use-is-tablet-or-mobile.tsx"],"sourcesContent":["import { twMerge } from 'tailwind-merge'\n\nexport const buildClassName = (...classes: any[]) => twMerge(classes.filter(Boolean))\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-chevron-down-icon lucide-chevron-down\"><path d=\"m6 9 6 6 6-6\"/></svg>","import React, { useId, useMemo, useState } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport ChevronDownIcon from '../Icons/ChevronDown.svg'\nimport type { AccordionItem, AccordionProps, AccordionVariant } from './Accordion.types'\n\nconst CONTAINER_CLASS: Record<AccordionVariant, string> = {\n bordered:\n 'rounded-lg border border-gray-200 dark:border-white/10 divide-y divide-gray-200 dark:divide-white/10 bg-white dark:bg-gray-800 overflow-hidden',\n separated: 'space-y-2',\n plain: 'divide-y divide-gray-200 dark:divide-white/10',\n}\n\nconst ITEM_CLASS: Record<AccordionVariant, string> = {\n bordered: '',\n separated:\n 'rounded-lg border border-gray-200 dark:border-white/10 bg-white dark:bg-gray-800 overflow-hidden',\n plain: '',\n}\n\nconst HEADER_CLASS =\n 'flex w-full items-center justify-between gap-2 py-3 px-4 text-left text-sm font-medium ' +\n 'text-gray-900 dark:text-white hover:bg-gray-50 dark:hover:bg-gray-700/50 ' +\n 'focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-[var(--ui-focus-ring)] ' +\n 'disabled:opacity-40 disabled:cursor-not-allowed disabled:pointer-events-none ' +\n 'transition-colors duration-150 cursor-pointer'\n\nexport const Accordion: React.FC<AccordionProps> = ({\n items,\n type = 'single',\n variant = 'bordered',\n collapsible = true,\n defaultOpenIds,\n openIds: controlledOpenIds,\n onChange,\n expandIcon,\n className = '',\n titleClass = '',\n panelClass = '',\n}) => {\n const baseId = useId()\n\n const resolvedItems = useMemo(\n () => items.map((item, index) => ({ ...item, id: item.id ?? index })),\n [items],\n )\n\n const [uncontrolledOpenIds, setUncontrolledOpenIds] = useState<Array<string | number>>(\n defaultOpenIds ?? [],\n )\n\n const isControlled = controlledOpenIds !== undefined\n const openIds = isControlled ? controlledOpenIds : uncontrolledOpenIds\n\n const toggle = (id: string | number) => {\n const isOpen = openIds.includes(id)\n const next =\n type === 'single'\n ? isOpen\n ? collapsible\n ? []\n : openIds\n : [id]\n : isOpen\n ? openIds.filter((openId) => openId !== id)\n : [...openIds, id]\n\n if (next === openIds) return\n if (!isControlled) setUncontrolledOpenIds(next)\n onChange?.(next)\n }\n\n const renderIndicator = (isOpen: boolean) => {\n if (typeof expandIcon === 'function') return expandIcon(isOpen)\n\n return (\n <span\n className={buildClassName(\n 'inline-flex shrink-0 transition-transform duration-200',\n isOpen && 'rotate-180',\n )}\n >\n {expandIcon ?? <ChevronDownIcon className=\"size-4 stroke-gray-500 dark:stroke-gray-400\" />}\n </span>\n )\n }\n\n return (\n <div className={buildClassName(CONTAINER_CLASS[variant], className)}>\n {resolvedItems.map((item: AccordionItem & { id: string | number }) => {\n const isOpen = openIds.includes(item.id)\n const headerId = `${baseId}-${item.id}-header`\n const panelId = `${baseId}-${item.id}-panel`\n\n return (\n <div key={item.id} className={ITEM_CLASS[variant]}>\n <h3 className=\"m-0\">\n <button\n type=\"button\"\n id={headerId}\n aria-expanded={isOpen}\n aria-controls={panelId}\n disabled={item.disabled}\n onClick={() => toggle(item.id)}\n className={buildClassName(HEADER_CLASS, titleClass, item.titleClass)}\n >\n <span className=\"flex items-center gap-2\">\n {item.icon && <span className=\"inline-flex shrink-0\">{item.icon}</span>}\n {item.title}\n </span>\n {renderIndicator(isOpen)}\n </button>\n </h3>\n\n <div\n id={panelId}\n role=\"region\"\n aria-labelledby={headerId}\n className={buildClassName(\n 'grid transition-[grid-template-rows] duration-200 ease-in-out',\n isOpen ? 'grid-rows-[1fr]' : 'grid-rows-[0fr]',\n )}\n >\n <div className=\"overflow-hidden\">\n <div\n className={buildClassName(\n 'px-4 pt-2 pb-4 text-sm text-gray-600 dark:text-gray-300',\n panelClass,\n item.panelClass,\n )}\n >\n {item.content}\n </div>\n </div>\n </div>\n </div>\n )\n })}\n </div>\n )\n}\n\nAccordion.displayName = 'Accordion'\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-badge-check-icon lucide-badge-check\"><path d=\"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\"/><path d=\"m9 12 2 2 4-4\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-circle-x-icon lucide-circle-x\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"m15 9-6 6\"/><path d=\"m9 9 6 6\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-circle-alert-icon lucide-circle-alert\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><line x1=\"12\" x2=\"12\" y1=\"8\" y2=\"12\"/><line x1=\"12\" x2=\"12.01\" y1=\"16\" y2=\"16\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-info-icon lucide-info\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 16v-4\"/><path d=\"M12 8h.01\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-x-icon lucide-x\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>","import React from 'react'\nimport { buildClassName } from '../../utils/build-classname'\n\nimport './loader.css'\n\nexport type LoaderSize = 'xs' | 'sm' | 'md' | 'lg'\n\ntype LoaderSizeMap = {\n [k in LoaderSize]: string\n}\n\ninterface LoaderProps {\n size?: LoaderSize\n className?: string\n}\n\nconst loaderSizeMap: LoaderSizeMap = {\n xs: 'size-4',\n sm: 'size-6',\n md: 'size-8',\n lg: 'size-10',\n}\n\nexport const Loader: React.FC<LoaderProps> = ({ className = '', size = 'md', ...props }) => {\n return (\n <svg\n className={buildClassName(\n 'text-blue-600 dark:text-white',\n loaderSizeMap[size],\n className,\n 'spinner',\n )}\n viewBox=\"0 0 50 50\"\n {...props}\n >\n <circle\n className=\"path\"\n cx=\"25\"\n cy=\"25\"\n r=\"20\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeWidth=\"5\"\n />\n </svg>\n )\n}\n","import React, { forwardRef } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport { TextContentProps } from './TextContent.types'\n\nexport const TextContent = forwardRef<HTMLSpanElement, TextContentProps>((props, ref) => {\n const {\n xsmall = false,\n small = false,\n strong = false,\n muted = false,\n error = false,\n className,\n ...rest\n } = props\n return React.createElement('span', {\n ...rest,\n ref,\n className: buildClassName(\n 'text-[var(--ui-text)]',\n xsmall && 'text-xs/5',\n small && 'text-sm/6',\n strong && 'font-semibold',\n muted && 'text-[var(--ui-text-muted)]',\n error && 'text-[var(--ui-text-danger)]',\n className,\n ),\n })\n})\n\nTextContent.displayName = 'TextContent'\n","import React, { ElementType, forwardRef, useMemo } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport { Loader } from '../Loader'\nimport { TextContent } from '../TextContent'\nimport type { ButtonProps, ButtonSize, ThemedButtonClass, ButtonComponent } from './Button.types'\nimport type { PolymorphicRef } from '../common-type'\n\n/**\n * Tailwind CSS classes for theme + variant combinations.\n */\nconst THEMED_BTN_CLASS: ThemedButtonClass = {\n primary: {\n default:\n 'text-white bg-[var(--ui-primary)] hover:bg-[var(--ui-primary-hover)] focus:outline-[var(--ui-primary-ring)] disabled:bg-[var(--ui-primary-disabled)]',\n outlined:\n 'text-[var(--ui-primary-text)] hover:text-white border border-[var(--ui-primary)] hover:bg-[var(--ui-primary)] focus:outline-[var(--ui-primary-ring)] disabled:text-[var(--ui-primary-disabled)] disabled:border-[var(--ui-primary-disabled)]',\n plain:\n 'text-[var(--ui-primary-text)] hover:bg-black/5 dark:hover:bg-gray-700 focus:outline-[var(--ui-primary-ring)] disabled:text-[var(--ui-primary-disabled)]',\n },\n danger: {\n default:\n 'text-white bg-[var(--ui-danger)] hover:bg-[var(--ui-danger-hover)] focus:outline-[var(--ui-danger-ring)] disabled:bg-[var(--ui-danger-disabled)]',\n outlined:\n 'text-[var(--ui-danger-text)] hover:text-white border border-[var(--ui-danger)] hover:bg-[var(--ui-danger)] focus:outline-[var(--ui-danger-ring)] disabled:text-[var(--ui-danger-disabled)] disabled:border-[var(--ui-danger-disabled)]',\n plain:\n 'text-[var(--ui-danger-text)] hover:bg-black/5 dark:hover:bg-gray-700 focus:outline-[var(--ui-danger-ring)] disabled:text-[var(--ui-danger-disabled)]',\n },\n secondary: {\n default:\n 'text-gray-700 bg-white border border-gray-300 hover:bg-gray-100 dark:bg-gray-800 dark:text-white dark:border-gray-600 dark:hover:bg-gray-700 dark:hover:border-gray-600 focus:outline-[var(--ui-focus-ring)] disabled:bg-gray-200 dark:disabled:bg-gray-700',\n outlined:\n 'text-gray-700 hover:text-white border border-gray-500 hover:bg-gray-700 dark:border-gray-500 dark:text-gray-200 dark:hover:text-white dark:hover:bg-gray-600 focus:outline-[var(--ui-focus-ring)] disabled:text-gray-400 disabled:border-gray-400',\n plain:\n 'text-gray-700 hover:bg-black/5 dark:text-gray-200 dark:hover:bg-gray-700 focus:outline-[var(--ui-focus-ring)] disabled:text-gray-400',\n },\n}\n\nconst LOADER_TEXT_CLASS: ThemedButtonClass = {\n primary: {\n default: 'text-white',\n outlined: 'text-[var(--ui-primary-text)]',\n plain: 'text-[var(--ui-primary-text)]',\n },\n danger: {\n default: 'text-white',\n outlined: 'text-[var(--ui-danger-text)]',\n plain: 'text-[var(--ui-danger-text)]',\n },\n secondary: {\n default: 'text-gray-700 dark:text-white',\n outlined: 'text-gray-700 dark:text-gray-200',\n plain: 'text-gray-700 dark:text-gray-200',\n },\n}\n\n/**\n * Generate size classes.\n */\nconst getBtnSizeClasses = (size: ButtonSize, iconOnly = false) => {\n switch (size) {\n case 'xs':\n return iconOnly ? 'p-1 rounded-sm text-xs' : 'px-2 py-1 rounded-sm gap-1 text-xs'\n\n case 'sm':\n return iconOnly ? 'p-1.5 rounded text-sm' : 'px-3 py-1.5 rounded gap-1.5 text-sm'\n\n case 'md':\n return iconOnly ? 'p-2 rounded-md text-sm' : 'px-4 py-2 rounded-md gap-2 text-sm'\n\n case 'lg':\n return iconOnly ? 'p-2.5 rounded-lg text-base' : 'px-5 py-2.5 rounded-lg gap-2 text-base'\n }\n}\n\n/**\n * Base shared tailwind classes.\n */\nconst BASE_BTN_CLASS =\n 'font-medium flex items-center justify-center shrink-0 cursor-pointer ' +\n 'disabled:cursor-not-allowed disabled:pointer-events-none disabled:opacity-75 ' +\n 'transition duration-200 ease-in-out'\n\nexport const Button = forwardRef(\n <C extends ElementType = 'button'>(\n { as, type, ...props }: ButtonProps<C>,\n ref: PolymorphicRef<C>,\n ) => {\n const {\n className = '',\n children,\n theme = 'primary',\n variant = 'default',\n size = 'md',\n loading = false,\n loadingText = '',\n rounded = false,\n disabled,\n iconOnly = false,\n noOutlineOnFocus = false,\n ...restProps\n } = props\n\n const Component = as || 'button'\n\n // Accessibility guard for icon-only buttons\n if (iconOnly && !(restProps as Record<string, unknown>)['aria-label']) {\n console.warn('[ui] <Button iconOnly> requires aria-label for accessibility.')\n }\n\n // Disable interaction when loading\n const resolvedDisabled = disabled || loading\n\n // Clean invalid props when not rendering a real button\n const { type: _ignoreType, disabled: _ignoreDisabled, ...cleanRest } = restProps\n\n const buttonSpecificProps =\n Component === 'button'\n ? {\n type: type ?? 'button',\n disabled: resolvedDisabled,\n }\n : {}\n\n /**\n * Memoized className for perf & stability.\n */\n const classes = useMemo(\n () =>\n buildClassName(\n BASE_BTN_CLASS,\n THEMED_BTN_CLASS[theme][variant],\n getBtnSizeClasses(size, iconOnly),\n !noOutlineOnFocus && 'focus:outline focus:outline-2 focus:outline-offset-2',\n rounded && 'rounded-full',\n variant === 'default' && 'shadow-xs hover:shadow-none disabled:shadow-none',\n className,\n ),\n [theme, variant, size, iconOnly, rounded, noOutlineOnFocus, className],\n )\n\n /**\n * SPECIAL CASE:\n * iconOnly + loading → show spinner only\n */\n if (loading && iconOnly) {\n return (\n <Component ref={ref} className={classes} {...buttonSpecificProps} {...cleanRest}>\n <Loader data-testid=\"btn-loader-icon\" size=\"xs\" />\n </Component>\n )\n }\n\n return (\n <Component ref={ref} className={classes} {...buttonSpecificProps} {...cleanRest}>\n {loading ? (\n <span className=\"flex items-center gap-2\" aria-live=\"polite\">\n <Loader\n data-testid=\"btn-loader-icon\"\n size=\"xs\"\n className={buildClassName(LOADER_TEXT_CLASS[theme][variant])}\n />\n {loadingText && (\n <TextContent className={buildClassName(LOADER_TEXT_CLASS[theme][variant])}>\n {loadingText}\n </TextContent>\n )}\n </span>\n ) : (\n children\n )}\n </Component>\n )\n },\n) as ButtonComponent\n\nButton.displayName = 'Button'\n","import React, { forwardRef } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport BadgeCheckIcon from '../Icons/BadgeCheck.svg'\nimport CircleXIcon from '../Icons/CircleX.svg'\nimport CircleAlertIcon from '../Icons/CircleAlert.svg'\nimport InfoIcon from '../Icons/Info.svg'\nimport XIcon from '../Icons/X.svg'\nimport { Button } from '../Button'\nimport type { AlertProps } from './Alert.types'\n\nconst AlertTypeIconMap = {\n success: BadgeCheckIcon,\n danger: CircleXIcon,\n warning: CircleAlertIcon,\n info: InfoIcon,\n}\n\nconst TypeClassMap = {\n success:\n 'bg-[var(--ui-success-light)] ring-[var(--ui-success-ring-subtle)] text-[var(--ui-success-text)]',\n danger:\n 'bg-[var(--ui-danger-light)] ring-[var(--ui-danger-ring-subtle)] text-[var(--ui-danger-text)]',\n warning:\n 'bg-[var(--ui-warning-light)] ring-[var(--ui-warning-ring-subtle)] text-[var(--ui-warning-text)]',\n info: 'bg-[var(--ui-info-light)] ring-[var(--ui-info-ring-subtle)] text-[var(--ui-info-text)]',\n}\n\nexport const Alert = forwardRef<HTMLDivElement, AlertProps>((props, ref) => {\n const {\n type = 'info',\n className,\n message,\n children,\n removable = false,\n onRemove,\n icon,\n title,\n ...restProps\n } = props\n\n const DefaultIcon = AlertTypeIconMap[type] || InfoIcon\n const iconNode =\n icon !== undefined ? (\n icon\n ) : (\n <DefaultIcon className=\"size-5 shrink-0\" data-testid={`alert-${type}-icon`} />\n )\n\n return (\n <div\n ref={ref}\n className={buildClassName(\n 'flex items-center justify-between rounded-md p-3 text-sm ring-1 ring-inset gap-2',\n TypeClassMap[type],\n className,\n )}\n {...restProps}\n >\n <span className=\"inline-flex items-start gap-2 min-w-0\">\n {iconNode && <span className=\"shrink-0 inline-flex mt-0.5\">{iconNode}</span>}\n <span className=\"inline-flex flex-col gap-0.5 min-w-0\">\n {title && <span className=\"font-semibold\">{title}</span>}\n <span className=\"inline-flex items-center\">{message ?? children}</span>\n </span>\n </span>\n {removable && (\n <Button\n iconOnly\n aria-label=\"Dismiss alert\"\n size=\"xs\"\n variant=\"plain\"\n theme=\"secondary\"\n className=\"hover:bg-black/10 dark:hover:bg-white/10 shrink-0\"\n onClick={() => onRemove?.()}\n data-testid=\"alert-remove-btn\"\n >\n <XIcon className=\"size-4.5\" data-testid=\"alert-remove-icon\" />\n </Button>\n )}\n </div>\n )\n})\n\nAlert.displayName = 'Alert'\n","import React, { forwardRef } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport XIcon from '../Icons/X.svg'\nimport { BadgeProps } from './Badge.types'\nimport { TextContent } from '../TextContent'\n\nconst ThemeClassMap = {\n success:\n 'bg-[var(--ui-success-light)] text-[var(--ui-success-text)] ring-[var(--ui-success-ring-subtle)]',\n danger:\n 'bg-[var(--ui-danger-light)] text-[var(--ui-danger-text)] ring-[var(--ui-danger-ring-subtle)]',\n warning:\n 'bg-[var(--ui-warning-light)] text-[var(--ui-warning-text)] ring-[var(--ui-warning-ring-subtle)]',\n info: 'bg-[var(--ui-info-light)] text-[var(--ui-info-text)] ring-[var(--ui-info-ring-subtle)]',\n secondary:\n 'bg-gray-50 dark:bg-gray-700 text-gray-700 dark:text-gray-200 ring-[var(--ui-secondary-ring-subtle)]',\n}\n\nconst SIZE_CLASS = {\n sm: 'text-xs py-0.5 px-2',\n md: 'text-xs py-1 px-3',\n}\n\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>((props, ref) => {\n const {\n theme = 'info',\n className,\n children,\n removable = false,\n rounded = false,\n onRemove,\n size = 'md',\n icon,\n ...restProps\n } = props\n\n return (\n <TextContent\n ref={ref}\n className={buildClassName(\n 'inline-flex items-center gap-1 font-medium ring-1 ring-inset',\n SIZE_CLASS[size],\n ThemeClassMap[theme],\n rounded ? 'rounded-full' : 'rounded-md',\n icon ? 'pl-2' : '',\n removable ? 'pr-1' : '',\n className,\n )}\n data-testid={`badge-${theme}`}\n {...restProps}\n >\n {icon && <span className=\"shrink-0 inline-flex\">{icon}</span>}\n {children}\n {removable && (\n <XIcon\n className=\"size-4 shrink-0 hover:bg-black/10 dark:hover:bg-white/10 rounded-sm cursor-pointer\"\n role=\"button\"\n tabIndex={0}\n aria-label=\"Remove\"\n onClick={() => onRemove?.()}\n onKeyDown={(e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onRemove?.()\n }\n }}\n />\n )}\n </TextContent>\n )\n})\n\nBadge.displayName = 'Badge'\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-triangle-alert-icon lucide-triangle-alert\"><path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\"/><path d=\"M12 9v4\"/><path d=\"M12 17h.01\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-circle-check-icon lucide-circle-check\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"m9 12 2 2 4-4\"/></svg>","import React, { forwardRef } from 'react'\nimport TriangleAlertIcon from '../Icons/TriangleAlert.svg'\nimport CircleXIcon from '../Icons/CircleX.svg'\nimport CircleCheckIcon from '../Icons/CircleCheck.svg'\nimport InfoIcon from '../Icons/Info.svg'\nimport XIcon from '../Icons/X.svg'\nimport { buildClassName } from '../../utils/build-classname'\nimport { Button } from '../Button'\nimport { BannerProps } from './Banner.types'\n\nconst sizeMap = {\n xs: 'size-4',\n sm: 'size-5',\n md: 'size-6',\n lg: 'size-8',\n xl: 'size-10',\n}\n\nconst IconMap = {\n info: InfoIcon,\n error: CircleXIcon,\n success: CircleCheckIcon,\n warning: TriangleAlertIcon,\n}\n\nconst TypeClassMap = {\n info: 'bg-[var(--ui-info-light)] ring-[var(--ui-info-ring-subtle)] text-[var(--ui-info-text)]',\n error:\n 'bg-[var(--ui-danger-light)] ring-[var(--ui-danger-ring-subtle)] text-[var(--ui-danger-text)]',\n success:\n 'bg-[var(--ui-success-light)] ring-[var(--ui-success-ring-subtle)] text-[var(--ui-success-text)]',\n warning:\n 'bg-[var(--ui-warning-light)] ring-[var(--ui-warning-ring-subtle)] text-[var(--ui-warning-text)]',\n}\n\nexport const Banner = forwardRef<HTMLDivElement, BannerProps>((props, ref) => {\n const {\n type = 'info',\n iconSize = 'sm',\n children,\n icon,\n removable = false,\n onRemove,\n className,\n ...restProps\n } = props\n\n const DefaultIcon = IconMap[type]\n const iconNode =\n icon !== undefined ? (\n icon\n ) : (\n <DefaultIcon\n data-testid={`banner-${type}-icon`}\n className={buildClassName('shrink-0', sizeMap[iconSize])}\n />\n )\n\n return (\n <div\n ref={ref}\n className={buildClassName(\n 'text-sm rounded-md flex w-full p-3 items-center gap-3 ring-1 ring-inset',\n TypeClassMap[type],\n className,\n )}\n data-testid={`banner-${type}`}\n {...restProps}\n >\n {iconNode}\n <div className=\"flex items-center w-full justify-between\">{children}</div>\n {removable && (\n <Button\n iconOnly\n aria-label=\"Dismiss banner\"\n size=\"xs\"\n variant=\"plain\"\n theme=\"secondary\"\n className=\"hover:bg-black/10 dark:hover:bg-white/10 shrink-0\"\n onClick={() => onRemove?.()}\n data-testid=\"banner-remove-btn\"\n >\n <XIcon className=\"size-4.5\" data-testid=\"banner-remove-icon\" />\n </Button>\n )}\n </div>\n )\n})\n\nBanner.displayName = 'Banner'\n","import React, { forwardRef } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport { BodyTextProps } from './BodyText.types'\n\nexport const BodyText = forwardRef<HTMLParagraphElement, BodyTextProps>((props, ref) => {\n const {\n as = 'p',\n small = false,\n strong = false,\n muted = false,\n error = false,\n inline = false,\n className,\n invert,\n ...rest\n } = props\n const textColorClass = error\n ? 'text-[var(--ui-text-danger)]'\n : muted\n ? invert\n ? 'text-gray-300 dark:text-gray-600'\n : 'text-[var(--ui-text-muted)]'\n : invert\n ? 'text-white dark:text-black'\n : 'text-[var(--ui-text)]'\n return React.createElement(as, {\n ref: ref,\n className: buildClassName(\n textColorClass,\n small && 'text-sm/6',\n strong && 'font-semibold',\n inline && 'inline-flex items-center gap-2',\n className,\n ),\n ...rest,\n })\n})\n\nBodyText.displayName = 'BodyText'\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-slash-icon lucide-slash\"><path d=\"M22 2 2 22\"/></svg>","import React from 'react'\nimport SlashIcon from '../Icons/Slash.svg'\nimport { BreadcrumbProps } from './Breadcrumb.types'\n\nexport const Breadcrumb: React.FC<BreadcrumbProps> = ({ items, render }) => {\n const count = items.length\n const isLast = (index: number) => index === count - 1\n\n return (\n <nav\n aria-label=\"Breadcrumb\"\n className=\"flex flex-wrap items-center gap-2\"\n data-testid=\"breadcrumb-container\"\n >\n {items.map((item, index) => (\n <span\n className=\"inline-flex gap-2 items-center dark:text-white\"\n key={item.key}\n data-testid={`breadcrumb-item-${item.key}`}\n >\n <span\n className=\"font-medium\"\n {...(isLast(index) ? { 'aria-current': 'page' as const } : {})}\n >\n {isLast(index) ? item.text : render(item)}\n </span>\n {!isLast(index) && (\n <SlashIcon data-testid={`breadcrumb-divider-${index}`} className=\"size-4\" />\n )}\n </span>\n ))}\n </nav>\n )\n}\n\nBreadcrumb.displayName = 'Breadcrumb'\n","import React, { Children, cloneElement, isValidElement, useMemo } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport type { ButtonSize } from '../Button/Button.types'\nimport type { ButtonGroupOrientation, ButtonGroupProps } from './ButtonGroup.types'\n\n/**\n * Corner-rounding classes for the group's first/last button, keyed by\n * orientation + size, matching Button's own size -> radius mapping\n * (xs: rounded-sm, sm: rounded, md: rounded-md, lg: rounded-lg).\n *\n * These must stay fully static string literals (no template-literal\n * interpolation) — Tailwind's JIT scanner only picks up class names that\n * appear verbatim in source, and the docs site scans the library's\n * *compiled* output, where interpolated fragments never appear as a\n * complete class name.\n */\nconst EDGE_ROUNDING: Record<\n ButtonGroupOrientation,\n Record<ButtonSize, { first: string; last: string }>\n> = {\n horizontal: {\n xs: { first: 'rounded-l-sm rounded-r-none', last: 'rounded-r-sm rounded-l-none' },\n sm: { first: 'rounded-l rounded-r-none', last: 'rounded-r rounded-l-none' },\n md: { first: 'rounded-l-md rounded-r-none', last: 'rounded-r-md rounded-l-none' },\n lg: { first: 'rounded-l-lg rounded-r-none', last: 'rounded-r-lg rounded-l-none' },\n },\n vertical: {\n xs: { first: 'rounded-t-sm rounded-b-none', last: 'rounded-b-sm rounded-t-none' },\n sm: { first: 'rounded-t rounded-b-none', last: 'rounded-b rounded-t-none' },\n md: { first: 'rounded-t-md rounded-b-none', last: 'rounded-b-md rounded-t-none' },\n lg: { first: 'rounded-t-lg rounded-b-none', last: 'rounded-b-lg rounded-t-none' },\n },\n}\n\nconst PILL_EDGE_ROUNDING: Record<ButtonGroupOrientation, { first: string; last: string }> = {\n horizontal: { first: 'rounded-l-full rounded-r-none', last: 'rounded-r-full rounded-l-none' },\n vertical: { first: 'rounded-t-full rounded-b-none', last: 'rounded-b-full rounded-t-none' },\n}\n\n/**\n * Resolves the corner-rounding classes for a single button at `index`\n * out of `count` inside the group, so only the group's outer edges stay\n * rounded and interior seams go square.\n */\nconst getEdgeRoundingClass = ({\n index,\n count,\n size,\n orientation,\n pill,\n}: {\n index: number\n count: number\n size: ButtonSize\n orientation: ButtonGroupOrientation\n pill: boolean\n}) => {\n if (count <= 1) return ''\n if (index !== 0 && index !== count - 1) return 'rounded-none'\n\n const position = index === 0 ? 'first' : 'last'\n return pill\n ? PILL_EDGE_ROUNDING[orientation][position]\n : EDGE_ROUNDING[orientation][size][position]\n}\n\nexport const ButtonGroup: React.FC<ButtonGroupProps> = ({\n children,\n orientation = 'horizontal',\n theme = 'secondary',\n variant = 'default',\n size = 'md',\n rounded = false,\n fullWidth = false,\n label,\n className = '',\n}) => {\n const isVertical = orientation === 'vertical'\n const items = useMemo(() => Children.toArray(children).filter(isValidElement), [children])\n const count = items.length\n\n return (\n <div\n role=\"group\"\n aria-label={label}\n className={buildClassName(\n 'inline-flex',\n isVertical ? 'flex-col' : 'flex-row',\n fullWidth && 'flex w-full',\n className,\n )}\n >\n {items.map((child, index) => {\n const childSize = (child.props as { size?: ButtonSize }).size ?? size\n\n return cloneElement(child as React.ReactElement<Record<string, unknown>>, {\n theme: (child.props as { theme?: unknown }).theme ?? theme,\n variant: (child.props as { variant?: unknown }).variant ?? variant,\n size: childSize,\n className: buildClassName(\n (child.props as { className?: string }).className,\n getEdgeRoundingClass({\n index,\n count,\n size: childSize,\n orientation,\n pill: rounded,\n }),\n count > 1 && [\n 'relative shadow-none hover:z-10 focus:z-10 focus-visible:z-10',\n index > 0 && (isVertical ? '-mt-px' : '-ml-px'),\n ],\n fullWidth && 'flex-1',\n ),\n })\n })}\n </div>\n )\n}\n\nButtonGroup.displayName = 'ButtonGroup'\n","import { ElementType, forwardRef } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport type { CardComponent, CardProps } from './Card.types'\nimport type { PolymorphicRef } from '../common-type'\n\nconst BASE_CARD_CLASS = 'bg-white rounded-md dark:bg-gray-900 block'\n\nexport const Card = forwardRef(\n <C extends ElementType = 'div'>({ as, ...props }: CardProps<C>, ref: PolymorphicRef<C>) => {\n // Remove Card-only props from rest (avoid leaking to DOM)\n const {\n hoverable = false,\n bordered = true,\n compact = false,\n zeroPadding = false,\n ...rest\n } = props\n\n const Component = as || 'div'\n\n // Extract className safely from rest\n const { className, ...cleanRest } = rest as { className?: string }\n\n const classes = buildClassName(\n BASE_CARD_CLASS,\n zeroPadding ? '' : compact ? 'p-2' : 'p-6',\n hoverable && 'transition-background duration-200 hover:bg-gray-100 dark:hover:bg-gray-800',\n bordered && 'border border-[var(--ui-border)]',\n className,\n )\n\n return <Component ref={ref} className={classes} {...cleanRest} />\n },\n) as CardComponent\n\nCard.displayName = 'Card'\n","import React, { forwardRef, type LabelHTMLAttributes } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\n\ninterface LabelProps extends LabelHTMLAttributes<HTMLLabelElement> {\n htmlFor?: string\n}\n\nexport const Label = forwardRef<HTMLLabelElement, LabelProps>((props, ref) => {\n const { className, children, ...labelProps } = props\n return (\n <label\n ref={ref}\n {...labelProps}\n className={buildClassName(\n 'block text-sm font-medium text-gray-600 dark:text-gray-300',\n className,\n )}\n >\n {children}\n </label>\n )\n})\n\nLabel.displayName = 'Label'\n","import { forwardRef, useId } from 'react'\nimport { Label } from '../Label'\nimport { buildClassName } from '../../utils/build-classname'\nimport type { CheckboxProps } from './Checkbox.types'\nimport { TextContent } from '../TextContent'\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>((props, ref) => {\n const {\n id,\n name,\n label,\n labelClass = '',\n wrapperClass = '',\n containerClass = '',\n error,\n disabled = false,\n className = '',\n // Checkbox-only props removed from rest\n ...rest\n } = props\n\n const generatedId = useId()\n const checkboxId = id ?? name ?? generatedId\n\n return (\n <div className={buildClassName(wrapperClass)}>\n <div className={buildClassName('flex items-center', containerClass)}>\n <label\n htmlFor={checkboxId}\n className={buildClassName(\n 'inline-flex items-center relative select-none',\n disabled ? 'cursor-not-allowed opacity-70' : 'cursor-pointer',\n )}\n >\n <input\n ref={ref}\n {...rest}\n id={checkboxId}\n name={name}\n type=\"checkbox\"\n disabled={disabled}\n aria-checked={rest.checked}\n className={buildClassName(\n 'peer size-4.5 cursor-pointer transition-all appearance-none rounded',\n 'border focus:ring-2 focus:ring-offset-2',\n 'checked:bg-[var(--ui-primary)] checked:border-[var(--ui-primary)]',\n 'focus:ring-[var(--ui-focus-ring)] dark:focus:ring-offset-gray-900',\n disabled\n ? 'border-gray-200 dark:border-gray-700 bg-gray-100 dark:bg-gray-800 pointer-events-none'\n : 'bg-white dark:bg-gray-700 border-gray-300 dark:border-gray-600 hover:border-gray-400 dark:hover:border-gray-500 hover:shadow-md',\n className,\n )}\n />\n\n <span\n className=\"absolute text-white opacity-0 peer-checked:opacity-100 \n top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-3.25 w-3.25\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n strokeWidth=\"1\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\n clipRule=\"evenodd\"\n ></path>\n </svg>\n </span>\n </label>\n\n {label && (\n <Label\n htmlFor={checkboxId}\n className={buildClassName(\n disabled\n ? 'cursor-not-allowed text-gray-400 dark:text-gray-500'\n : 'cursor-pointer text-gray-600 dark:text-gray-300',\n 'ml-2 font-normal',\n labelClass,\n )}\n >\n {label}\n </Label>\n )}\n </div>\n\n {error && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n})\n\nCheckbox.displayName = 'Checkbox'\n","import { useId, useMemo, type ChangeEvent } from 'react'\nimport { Checkbox } from '../Checkbox'\nimport { Label } from '../Label'\nimport { BodyText } from '../BodyText'\nimport { buildClassName } from '../../utils/build-classname'\nimport type { CheckboxGroupItem, CheckboxGroupProps } from './CheckboxGroup.types'\n\nexport const CheckboxGroup = <T,>(props: CheckboxGroupProps<T>) => {\n const {\n name,\n options,\n label,\n labelClass = '',\n labelWrapperClass = '',\n labelHint,\n containerClass = '',\n value = [],\n onChange,\n inline = false,\n } = props\n\n const groupId = useId()\n\n const items = useMemo(\n () =>\n options.map((opt) =>\n typeof opt === 'string' ? ({ label: opt, value: opt } as CheckboxGroupItem<T>) : opt,\n ),\n [options],\n )\n\n /**\n * Group-level change handler. Converts raw checkbox change events\n * into a typed updated values array.\n */\n const handleGroupChange = (e: ChangeEvent<HTMLInputElement>) => {\n const raw = e.target.value\n const checked = e.target.checked\n\n // Convert HTML string value → typed T value\n // Locate in normalized items\n const matched = items.find((i) => String(i.value) === raw)\n const itemValue = matched?.value as T\n\n let updated: T[]\n\n if (checked) {\n updated = [...value, itemValue]\n } else {\n updated = value.filter((v) => v !== itemValue)\n }\n\n onChange?.(updated, e)\n }\n\n return (\n <div className={buildClassName('mb-3 space-y-3', containerClass)}>\n {label && (\n <div className={buildClassName('flex items-center justify-between', labelWrapperClass)}>\n <Label className={labelClass}>{label}</Label>\n <BodyText muted small>\n {labelHint}\n </BodyText>\n </div>\n )}\n\n <div className={buildClassName('flex gap-3', inline ? 'flex-wrap' : 'flex-col')}>\n {items.map((item, index) => {\n const key =\n typeof item.value === 'string' || typeof item.value === 'number' ? item.value : index\n\n return (\n <Checkbox\n key={key}\n name={name}\n id={`${groupId}-${String(item.value)}`}\n label={item.label}\n value={String(item.value)}\n checked={value.includes(item.value)}\n onChange={handleGroupChange}\n />\n )\n })}\n </div>\n </div>\n )\n}\n\nCheckboxGroup.displayName = 'CheckboxGroup'\n","import React from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport type {\n EmptyTableRowProps,\n TableProps,\n TableBodyProps,\n TableCellProps,\n TableFootProps,\n TableHeaderCellProps,\n TableHeadProps,\n TableRowLoaderProps,\n TableRowProps,\n} from './Table.types'\n\nconst TEXT_ALIGN = {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n}\n\nconst TABLE_LAYOUT = {\n fixed: 'table-fixed',\n auto: 'table-auto',\n}\n\n/* ----------------------------------------------\n * Loader Rows\n * ---------------------------------------------- */\nconst TableRowLoader: React.FC<TableRowLoaderProps> = ({ colSize, rowSize }) => (\n <>\n {Array.from({ length: rowSize }).map((_, rowIdx) => (\n <TableRow key={rowIdx} className=\"animate-pulse\">\n {Array.from({ length: colSize }).map((_, colIdx) => (\n <TableCell key={colIdx}>\n <div className=\"flex items-center h-6\">\n <div className=\"h-4 bg-gray-300 dark:bg-gray-700 shimmer rounded w-full\" />\n </div>\n </TableCell>\n ))}\n </TableRow>\n ))}\n </>\n)\n\n/* ----------------------------------------------\n * Table\n * ---------------------------------------------- */\nexport const Table: React.FC<TableProps> = ({\n children,\n layout = 'auto',\n className = '',\n caption,\n}) => (\n <table\n className={buildClassName(\n 'border-collapse w-full divide-y divide-[var(--ui-border)]',\n TABLE_LAYOUT[layout],\n className,\n )}\n >\n {caption && (\n <caption className=\"mb-2 text-sm text-left text-gray-500 dark:text-gray-400\">\n {caption}\n </caption>\n )}\n {children}\n </table>\n)\n\n/* ----------------------------------------------\n * Head\n * ---------------------------------------------- */\nexport const TableHead: React.FC<TableHeadProps> = ({ children, className = '' }) => (\n <thead\n className={buildClassName(\n 'text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-800 dark:text-gray-300',\n className,\n )}\n >\n <tr>{children}</tr>\n </thead>\n)\n\n/* ----------------------------------------------\n * Body\n * ---------------------------------------------- */\nexport const TableBody: React.FC<TableBodyProps> = ({\n children,\n loading,\n colSize = 1,\n rowSize = 5,\n className,\n}) => (\n <tbody\n className={buildClassName(\n 'text-sm text-gray-700 dark:text-white divide-y divide-[var(--ui-border)]',\n className,\n )}\n >\n {loading ? <TableRowLoader colSize={colSize} rowSize={rowSize} /> : children}\n </tbody>\n)\n\n/* ----------------------------------------------\n * Foot\n * ---------------------------------------------- */\nexport const TableFoot: React.FC<TableFootProps> = ({ children }) => (\n <tfoot>\n <tr>{children}</tr>\n </tfoot>\n)\n\n/* ----------------------------------------------\n * Rows\n * ---------------------------------------------- */\nexport const TableRow: React.FC<TableRowProps> = ({\n children,\n hoverable = false,\n className,\n ...props\n}) => (\n <tr\n {...props}\n className={buildClassName(\n 'last:border-b border-[var(--ui-border)]',\n hoverable && 'group',\n className,\n )}\n >\n {children}\n </tr>\n)\n\n/* ----------------------------------------------\n * Cells\n * ---------------------------------------------- */\nexport const TableCell: React.FC<TableCellProps> = ({\n children,\n align = 'left',\n className,\n ...props\n}) => (\n <td\n {...props}\n className={buildClassName(\n 'px-3 py-3 first:pl-4 last:pr-4 bg-white dark:bg-gray-900 group-hover:bg-gray-50 group-hover:dark:bg-gray-800',\n TEXT_ALIGN[align],\n className,\n )}\n >\n <div className=\"leading-normal\">{children}</div>\n </td>\n)\n\nexport const TableHeaderCell: React.FC<TableHeaderCellProps> = ({\n children,\n align = 'left',\n className,\n ...props\n}) => (\n <th\n {...props}\n className={buildClassName(\n 'px-3 py-3 first:pl-4 last:pr-4 tracking-wider whitespace-nowrap text-gray-800 dark:text-gray-300',\n TEXT_ALIGN[align],\n className,\n )}\n >\n {children}\n </th>\n)\n\n/* ----------------------------------------------\n * Empty Row\n * ---------------------------------------------- */\nexport const EmptyTableRow: React.FC<EmptyTableRowProps> = ({\n children,\n colSpan = 1,\n contentClass,\n}) => (\n <tr className=\"bg-white dark:bg-gray-900\">\n <td colSpan={colSpan} className=\"px-4 py-8\">\n <div\n className={buildClassName(\n 'p-6 text-center space-y-3 flex flex-col items-center justify-center',\n contentClass,\n )}\n >\n {children}\n </div>\n </td>\n </tr>\n)\n","import { UsePaginationProps } from './Pagination.types'\n\nexport const DOTS = '...'\n\nexport const usePagination = ({\n totalPages,\n currentPage,\n siblingCount = 1, // number of pages to show around currentPage\n}: UsePaginationProps): (number | string)[] => {\n const totalPageNumbers = siblingCount * 2 + 5\n\n if (totalPageNumbers >= totalPages) {\n return Array.from({ length: totalPages }, (_, i) => i + 1)\n }\n\n const leftSiblingIndex = Math.max(currentPage - siblingCount, 1)\n const rightSiblingIndex = Math.min(currentPage + siblingCount, totalPages)\n\n const shouldShowLeftDots = leftSiblingIndex > 2\n const shouldShowRightDots = rightSiblingIndex < totalPages - 1\n\n const firstPageIndex = 1\n const lastPageIndex = totalPages\n\n if (!shouldShowLeftDots && shouldShowRightDots) {\n const leftRange = Array.from({ length: 3 + 2 * siblingCount }, (_, i) => i + 1)\n return [...leftRange, DOTS, totalPages]\n }\n\n if (shouldShowLeftDots && !shouldShowRightDots) {\n const rightRange = Array.from(\n { length: 3 + 2 * siblingCount },\n (_, i) => totalPages - (3 + 2 * siblingCount) + 1 + i,\n )\n return [firstPageIndex, DOTS, ...rightRange]\n }\n\n if (shouldShowLeftDots && shouldShowRightDots) {\n const middleRange = Array.from({ length: 2 * siblingCount + 1 }, (_, i) => leftSiblingIndex + i)\n return [firstPageIndex, DOTS, ...middleRange, DOTS, lastPageIndex]\n }\n\n return []\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-chevron-left-icon lucide-chevron-left\"><path d=\"m15 18-6-6 6-6\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-chevron-right-icon lucide-chevron-right\"><path d=\"m9 18 6-6-6-6\"/></svg>","import React from 'react'\nimport { Button } from '../Button'\nimport { usePagination, DOTS } from './usePagination'\nimport { buildClassName } from '../../utils/build-classname'\nimport ChevronLeftIcon from '../Icons/ChevronLeft.svg'\nimport ChevronRightIcon from '../Icons/ChevronRight.svg'\nimport type { PaginationProps } from './Pagination.types'\n\nexport const Pagination: React.FC<PaginationProps> = ({\n page: currentPage,\n limit,\n total,\n onChange,\n className,\n ellipsis = true, // Default to showing ellipsis\n}) => {\n const pages = new Array(Math.ceil(total / limit)).fill(null).map((_, i) => i + 1)\n const isFirstPage = currentPage === 1\n const isLastPage = total === 0 || pages.length === currentPage\n\n const range = usePagination({ totalPages: pages.length, currentPage })\n\n const handlePageChange = (nextVal: number) => {\n if (nextVal === currentPage) return\n\n onChange({ page: nextVal })\n }\n\n if (ellipsis) {\n return (\n <div\n data-testid=\"pagination-container\"\n className={buildClassName(\n 'flex items-center justify-between bg-white dark:bg-gray-800 px-4 py-3 sm:px-6',\n className,\n )}\n >\n <div className=\"flex flex-1 justify-between sm:hidden\">\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isFirstPage}\n onClick={() => handlePageChange(currentPage - 1)}\n data-testid=\"ellipsis-mobile-prev-btn\"\n >\n <span>Previous</span>\n <ChevronLeftIcon className=\"size-4\" />\n </Button>\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isLastPage}\n onClick={() => handlePageChange(currentPage + 1)}\n data-testid=\"ellipsis-mobile-next-btn\"\n >\n <span>Next</span>\n <ChevronRightIcon className=\"size-4\" />\n </Button>\n </div>\n <div className=\"hidden sm:flex sm:flex-1 sm:items-center sm:justify-between\">\n <p\n data-testid=\"pagination-summary\"\n className=\"text-sm text-gray-600 dark:text-gray-400 flex items-center gap-1\"\n >\n Showing\n <span className=\"font-medium\">\n {total === 0 ? 0 : Math.max(currentPage * limit - limit + 1, 1)}\n </span>\n to\n <span className=\"font-medium\">{Math.min(currentPage * limit, total)}</span>\n of\n <span className=\"font-medium\">{total}</span>\n results\n </p>\n <ul className=\"flex items-center space-x-2 text-sm\">\n <li>\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isFirstPage}\n onClick={() => handlePageChange(currentPage - 1)}\n data-testid=\"ellipsis-prev-btn\"\n >\n Prev\n </Button>\n </li>\n {range.map((page, idx) => {\n if (page === DOTS) {\n return (\n <li\n key={`${page}-${idx}`}\n data-testid={`page-${page}`}\n className=\"px-2 py-1 text-gray-400\"\n >\n &hellip;\n </li>\n )\n }\n return (\n <li key={`${page}-${idx}`}>\n <Button\n size=\"xs\"\n theme={page === currentPage ? 'primary' : 'secondary'}\n variant={page === currentPage ? 'default' : 'plain'}\n aria-current={page === currentPage ? 'page' : undefined}\n onClick={() => handlePageChange(page as number)}\n >\n {page}\n </Button>\n </li>\n )\n })}\n <li>\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isLastPage}\n onClick={() => handlePageChange(currentPage + 1)}\n data-testid=\"ellipsis-next-btn\"\n >\n Next\n </Button>\n </li>\n </ul>\n </div>\n </div>\n )\n }\n\n return (\n <div\n data-testid=\"pagination-container\"\n className={buildClassName(\n 'flex items-center justify-between bg-white dark:bg-gray-800 px-4 py-3 sm:px-6',\n className,\n )}\n >\n <div className=\"flex flex-1 justify-between sm:hidden\">\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isFirstPage}\n onClick={() => handlePageChange(currentPage - 1)}\n data-testid=\"mobile-prev-btn\"\n >\n <span>Previous</span>\n <ChevronLeftIcon className=\"size-4\" />\n </Button>\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isLastPage}\n onClick={() => handlePageChange(currentPage + 1)}\n data-testid=\"mobile-next-btn\"\n >\n <span>Next</span>\n <ChevronRightIcon className=\"size-4\" />\n </Button>\n </div>\n <div className=\"hidden sm:flex sm:flex-1 sm:items-center sm:justify-between\">\n <p\n data-testid=\"pagination-summary\"\n className=\"text-sm text-gray-600 dark:text-gray-400 flex items-center gap-1\"\n >\n Showing\n <span className=\"font-medium\">\n {total === 0 ? 0 : Math.max(currentPage * limit - limit + 1, 1)}\n </span>\n to\n <span className=\"font-medium\">{Math.min(currentPage * limit, total)}</span>\n of\n <span className=\"font-medium\">{total}</span>\n results\n </p>\n <nav className=\"isolate inline-flex items-center rounded-md\" aria-label=\"Pagination\">\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isFirstPage}\n onClick={() => handlePageChange(currentPage - 1)}\n data-testid=\"prev-btn\"\n >\n <span className=\"sr-only\">Previous</span>\n <ChevronLeftIcon className=\"size-4\" />\n </Button>\n {pages.map((page) => (\n <Button\n key={page}\n size=\"xs\"\n theme={page === currentPage ? 'primary' : 'secondary'}\n variant={page === currentPage ? 'default' : 'plain'}\n aria-current={page === currentPage ? 'page' : undefined}\n onClick={() => handlePageChange(page)}\n >\n <span className=\"size-4 block\">{page}</span>\n </Button>\n ))}\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isLastPage}\n onClick={() => handlePageChange(currentPage + 1)}\n data-testid=\"next-btn\"\n >\n <span className=\"sr-only\">Next</span>\n <ChevronRightIcon className=\"size-4\" />\n </Button>\n </nav>\n </div>\n </div>\n )\n}\n","export function get<T = any, R = any>(obj: T, path: string, defaultValue?: R): R {\n if (!path) return defaultValue as R\n\n const keys = path\n .replace(/\\[(\\d+)]/g, '.$1') // convert [0] to .0\n .split('.')\n .filter(Boolean) // remove empty parts\n\n return (\n keys.reduce<any>((acc, key) => {\n if (acc !== null && acc !== undefined && Object.prototype.hasOwnProperty.call(acc, key)) {\n return acc[key]\n }\n return undefined\n }, obj) ?? defaultValue\n )\n}\n","import { useCallback, useMemo, useState } from 'react'\nimport type { DataValueType, Sorting, SortQuery } from './DataTable.types'\n\n/**\n * Compute the next sorting direction for a column.\n * - string: undefined → asc → desc → undefined\n * - number/date: undefined → 1 → -1 → undefined\n */\nexport const nextSortDirection = (\n prev: Sorting | undefined,\n type: 'string' | 'number' | 'date' = 'string',\n): Sorting | undefined => {\n if (type === 'string') {\n if (!prev) return 'asc'\n if (prev === 'asc') return 'desc'\n return undefined\n }\n\n // number / date\n if (!prev) return '1'\n if (prev === '1') return '-1'\n return undefined\n}\n\n/**\n * Update the sort query object for a table column.\n * Toggles sort direction, removing key when reset.\n */\nexport const updateSortQuery = (\n sortQuery: SortQuery,\n name: string,\n type: DataValueType = 'string',\n): SortQuery => {\n const next = nextSortDirection(sortQuery[name], type)\n\n // Shallow clone once\n const updated = { ...sortQuery }\n\n if (next == null) {\n delete updated[name]\n } else {\n updated[name] = next\n }\n\n return updated\n}\n\n/** Options for {@link useRowSelection}. */\nexport interface UseRowSelectionOptions<T> {\n items: T[]\n getKey: (item: T, idx: number) => string | number\n selectedRowKeys?: Array<string | number>\n defaultSelectedRowKeys?: Array<string | number>\n onSelectionChange?: (selectedRowKeys: Array<string | number>, selectedItems: T[]) => void\n isRowSelectable?: (item: T) => boolean\n}\n\n/**\n * Shared row-selection state/behaviour used by DataTable and VirtualizedDataTable.\n * Supports controlled (`selectedRowKeys`) and uncontrolled (`defaultSelectedRowKeys`) usage.\n */\nexport const useRowSelection = <T>({\n items,\n getKey,\n selectedRowKeys,\n defaultSelectedRowKeys = [],\n onSelectionChange,\n isRowSelectable,\n}: UseRowSelectionOptions<T>) => {\n const [internalKeys, setInternalKeys] = useState<Array<string | number>>(defaultSelectedRowKeys)\n const isControlled = selectedRowKeys !== undefined\n const keys = isControlled ? selectedRowKeys : internalKeys\n const keySet = useMemo(() => new Set(keys), [keys])\n\n const selectableEntries = useMemo(\n () =>\n items\n .map((item, idx) => ({ item, key: getKey(item, idx) }))\n .filter(({ item }) => !isRowSelectable || isRowSelectable(item)),\n [items, getKey, isRowSelectable],\n )\n\n const emit = useCallback(\n (nextKeys: Array<string | number>) => {\n if (!isControlled) setInternalKeys(nextKeys)\n const nextKeySet = new Set(nextKeys)\n const nextItems = items.filter((item, idx) => nextKeySet.has(getKey(item, idx)))\n onSelectionChange?.(nextKeys, nextItems)\n },\n [isControlled, items, getKey, onSelectionChange],\n )\n\n const toggleRow = useCallback(\n (key: string | number) => {\n emit(keySet.has(key) ? keys.filter((k) => k !== key) : [...keys, key])\n },\n [keys, keySet, emit],\n )\n\n const allSelected =\n selectableEntries.length > 0 && selectableEntries.every(({ key }) => keySet.has(key))\n const someSelected = !allSelected && selectableEntries.some(({ key }) => keySet.has(key))\n\n const toggleAll = useCallback(() => {\n const selectableKeySet = new Set(selectableEntries.map(({ key }) => key))\n if (allSelected) {\n emit(keys.filter((k) => !selectableKeySet.has(k)))\n } else {\n emit(Array.from(new Set([...keys, ...selectableKeySet])))\n }\n }, [allSelected, selectableEntries, keys, emit])\n\n return {\n selectedKeys: keys,\n isSelected: (key: string | number) => keySet.has(key),\n toggleRow,\n toggleAll,\n allSelected,\n someSelected,\n }\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-down-wide-narrow-icon lucide-arrow-down-wide-narrow\"><path d=\"m3 16 4 4 4-4\"/><path d=\"M7 20V4\"/><path d=\"M11 4h10\"/><path d=\"M11 8h7\"/><path d=\"M11 12h4\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-down-narrow-wide-icon lucide-arrow-down-narrow-wide\"><path d=\"m3 16 4 4 4-4\"/><path d=\"M7 20V4\"/><path d=\"M11 4h4\"/><path d=\"M11 8h7\"/><path d=\"M11 12h10\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-down-az-icon lucide-arrow-down-a-z\"><path d=\"m3 16 4 4 4-4\"/><path d=\"M7 20V4\"/><path d=\"M20 8h-5\"/><path d=\"M15 10V6.5a2.5 2.5 0 0 1 5 0V10\"/><path d=\"M15 14h5l-5 6h5\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-down-za-icon lucide-arrow-down-z-a\"><path d=\"m3 16 4 4 4-4\"/><path d=\"M7 4v16\"/><path d=\"M15 4h5l-5 6h5\"/><path d=\"M15 20v-3.5a2.5 2.5 0 0 1 5 0V20\"/><path d=\"M20 18h-5\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-up-down-icon lucide-arrow-up-down\"><path d=\"m21 16-4 4-4-4\"/><path d=\"M17 20V4\"/><path d=\"m3 8 4-4 4 4\"/><path d=\"M7 4v16\"/></svg>","import type { SortIconKey, Sorting } from './DataTable.types'\nimport type { ReactNode } from 'react'\n/* Icons */\nimport ArrowDownWideNarrow from '../Icons/ArrowDownWideNarrow.svg'\nimport ArrowDownNarrowWide from '../Icons/ArrowDownNarrowWide.svg'\nimport ArrowDownAZ from '../Icons/ArrowDownAZ.svg'\nimport ArrowDownZA from '../Icons/ArrowDownZA.svg'\nimport ArrowUpDown from '../Icons/ArrowUpDown.svg'\n\nexport const SortIconMap: Record<SortIconKey, ReactNode> = {\n '1': (\n <ArrowDownNarrowWide className=\"size-4 text-gray-400 shrink-0 group-hover:text-gray-800 dark:group-hover:text-white\" />\n ),\n asc: (\n <ArrowDownAZ className=\"size-4 text-gray-400 shrink-0 group-hover:text-gray-800 dark:group-hover:text-white\" />\n ),\n '-1': (\n <ArrowDownWideNarrow className=\"size-4 text-gray-400 shrink-0 group-hover:text-gray-800 dark:group-hover:text-white\" />\n ),\n desc: (\n <ArrowDownZA className=\"size-4 text-gray-400 shrink-0 group-hover:text-gray-800 dark:group-hover:text-white\" />\n ),\n}\n\nexport const getSortIcon = (sort?: Sorting) =>\n sort ? (\n SortIconMap[sort as SortIconKey]\n ) : (\n <ArrowUpDown className=\"size-4 text-gray-400 shrink-0 group-hover:text-gray-800 dark:group-hover:text-white\" />\n )\n","import { useEffect, useRef, useState } from 'react'\nimport {\n EmptyTableRow,\n Table,\n TableBody,\n TableCell,\n TableFoot,\n TableHead,\n TableHeaderCell,\n TableRow,\n} from '../Table'\nimport { buildClassName } from '../../utils/build-classname'\nimport type {\n DataTableProps,\n DataTableColumn,\n DataTableDensity,\n Sorting,\n SortQuery,\n} from './DataTable.types'\nimport { TextContent } from '../TextContent'\nimport { Pagination } from '../Pagination'\nimport { Checkbox } from '../Checkbox'\nimport { get } from '../../utils/get'\nimport { updateSortQuery, useRowSelection } from './DataTable.utils'\nimport { getSortIcon } from './DataTable.icons'\n\nconst DENSITY_CELL_CLASS: Record<DataTableDensity, string> = {\n compact: 'px-2 py-1.5',\n default: '',\n spacious: 'px-4 py-4',\n}\n\nconst autoSortItems = <T,>(items: T[], column: DataTableColumn<T>, sort: Sorting): T[] => {\n const path = column.name\n return [...items].sort((a, b) => {\n const valueA = get(a as Record<string, any>, path)\n const valueB = get(b as Record<string, any>, path)\n\n if (column.type === 'number') {\n const nA = Number(valueA)\n const nB = Number(valueB)\n return sort === 'asc' || sort === '1' ? nA - nB : nB - nA\n }\n\n if (column.type === 'date') {\n const dA = new Date(valueA).getTime()\n const dB = new Date(valueB).getTime()\n return sort === 'asc' || sort === '1' ? dA - dB : dB - dA\n }\n\n const sA = String(valueA).toLowerCase()\n const sB = String(valueB).toLowerCase()\n if (sA < sB) return sort === 'asc' || sort === '1' ? -1 : 1\n if (sA > sB) return sort === 'asc' || sort === '1' ? 1 : -1\n return 0\n })\n}\n\nexport function DataTable<T extends Record<string, any> = Record<string, any>>({\n items,\n columns,\n sorting = {},\n onSort,\n loading,\n pagination,\n setPagination = () => {},\n emptyMessage = 'No data found',\n containerClass = '',\n wrapperClass = '',\n tableClass = '',\n headClass = '',\n footerRow,\n rowKey = 'id',\n onRowClick,\n rowClass,\n density = 'default',\n striped = false,\n layout = 'auto',\n selectable = false,\n selectedRowKeys,\n defaultSelectedRowKeys,\n onSelectionChange,\n isRowSelectable,\n}: DataTableProps<T>) {\n const internalSorting = useRef<SortQuery>({})\n const [sortedItems, setSortedItems] = useState(items)\n\n useEffect(() => {\n setSortedItems(items)\n }, [items])\n\n const doAutoSort = (column: DataTableColumn<T>) => {\n internalSorting.current = updateSortQuery(internalSorting.current, column.name, column.type)\n setSortedItems(autoSortItems(items, column, internalSorting.current[column.name]))\n }\n\n const handleSort = (column: DataTableColumn<T>) => {\n if (!column.sortable) return\n onSort ? onSort(column) : doAutoSort(column)\n }\n\n const getKey = (item: T, idx: number): string | number => {\n if (typeof rowKey === 'function') return rowKey(item)\n return (item as any)[rowKey] ?? idx\n }\n\n const getRowClass = (item: T, idx: number): string => {\n if (!rowClass) return ''\n if (typeof rowClass === 'function') return rowClass(item, idx)\n return rowClass\n }\n\n const getCellClass = (column: DataTableColumn<T>, item: T): string => {\n if (!column.cellClass) return ''\n if (typeof column.cellClass === 'function') return column.cellClass(item)\n return column.cellClass\n }\n\n const { isSelected, toggleRow, toggleAll, allSelected, someSelected } = useRowSelection({\n items: sortedItems,\n getKey,\n selectedRowKeys,\n defaultSelectedRowKeys,\n onSelectionChange,\n isRowSelectable,\n })\n\n const densityCellClass = DENSITY_CELL_CLASS[density]\n const colSize = columns.length + (selectable ? 1 : 0)\n\n return (\n <div className={buildClassName('w-full rounded-lg relative', containerClass)}>\n <div\n className={buildClassName(\n 'overflow-x-auto overflow-y-hidden rounded-lg border border-[var(--ui-border)]',\n wrapperClass,\n pagination && 'rounded-b-none border-b-0',\n )}\n >\n <Table\n className={buildClassName('relative w-full max-w-full h-fit', tableClass)}\n layout={layout}\n >\n <TableHead className={headClass}>\n {selectable && (\n <TableHeaderCell\n className={buildClassName('bg-gray-50 dark:bg-gray-800 w-px', densityCellClass)}\n >\n <Checkbox\n aria-label=\"Select all rows\"\n checked={allSelected}\n ref={(el) => {\n if (el) el.indeterminate = someSelected\n }}\n onChange={toggleAll}\n />\n </TableHeaderCell>\n )}\n {columns.map((column) => (\n <TableHeaderCell\n key={column.name}\n align={column.headerAlign}\n style={{ width: column.width || 'auto' }}\n className={buildClassName(\n 'bg-gray-50 dark:bg-gray-800',\n densityCellClass,\n column.sticky === 'left' &&\n 'sticky left-0 z-10 shadow-[2px_0_6px_rgba(0,0,0,0.06)]',\n column.sticky === 'right' &&\n 'sticky right-0 z-10 shadow-[-2px_0_6px_rgba(0,0,0,0.06)]',\n column.headerClass,\n )}\n >\n <TextContent\n role={column.sortable ? 'button' : undefined}\n className={buildClassName(\n 'group',\n column.sortable && 'inline-flex items-center gap-2 cursor-pointer select-none',\n )}\n onClick={() => handleSort(column)}\n >\n <TextContent className=\"shrink-0\">{column.label}</TextContent>\n {column.sortable ? getSortIcon(sorting[column.name]) : null}\n </TextContent>\n </TableHeaderCell>\n ))}\n </TableHead>\n\n <TableBody loading={loading} colSize={colSize} rowSize={pagination?.limit || 5}>\n {!loading && sortedItems.length === 0 ? (\n <EmptyTableRow colSpan={colSize}>{emptyMessage}</EmptyTableRow>\n ) : (\n sortedItems.map((item, idx) => {\n const key = getKey(item, idx)\n const rowSelectable = !isRowSelectable || isRowSelectable(item)\n\n return (\n <TableRow\n key={key}\n className={buildClassName(\n 'group',\n onRowClick && 'cursor-pointer',\n striped && idx % 2 === 1 && 'bg-gray-50 dark:bg-gray-800/40',\n getRowClass(item, idx),\n )}\n onClick={onRowClick ? () => onRowClick(item, idx) : undefined}\n >\n {selectable && (\n <TableCell\n className={buildClassName(\n densityCellClass,\n striped && idx % 2 === 1 && 'bg-gray-50 dark:bg-gray-800/40',\n )}\n >\n <span onClick={(e) => e.stopPropagation()}>\n <Checkbox\n aria-label=\"Select row\"\n checked={isSelected(key)}\n disabled={!rowSelectable}\n onChange={() => toggleRow(key)}\n />\n </span>\n </TableCell>\n )}\n {columns.map((column) => (\n <TableCell\n key={column.name}\n align={column.align}\n className={buildClassName(\n densityCellClass,\n striped && idx % 2 === 1 && 'bg-gray-50 dark:bg-gray-800/40',\n column.sticky === 'left' &&\n 'sticky left-0 z-10 shadow-[2px_0_6px_rgba(0,0,0,0.06)]',\n column.sticky === 'right' &&\n 'sticky right-0 z-10 shadow-[-2px_0_6px_rgba(0,0,0,0.06)]',\n getCellClass(column, item),\n )}\n >\n {column.render\n ? column.render(item)\n : ((get(item, column.name) as any) ?? 'Not set')}\n </TableCell>\n ))}\n </TableRow>\n )\n })\n )}\n </TableBody>\n\n {footerRow && <TableFoot>{footerRow}</TableFoot>}\n </Table>\n </div>\n\n {pagination && (\n <Pagination\n {...pagination}\n className=\"rounded-b-lg border border-t-0 border-[var(--ui-border)]\"\n onChange={setPagination}\n />\n )}\n </div>\n )\n}\n\nDataTable.displayName = 'DataTable'\n","import React from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport { HeadingTextProps } from './HeadingText.types'\n\nconst Title: React.FC<HeadingTextProps> = ({ children, className }) => (\n <h1 className={buildClassName('text-3xl font-bold text-[var(--ui-text)]', className)}>\n {children}\n </h1>\n)\n\nconst SubTitle: React.FC<HeadingTextProps> = ({ children, className }) => (\n <h2 className={buildClassName('text-2xl font-semibold text-[var(--ui-text)]', className)}>\n {children}\n </h2>\n)\n\nconst SubTitle2: React.FC<HeadingTextProps> = ({ children, className }) => (\n <h3 className={buildClassName('text-xl font-semibold text-[var(--ui-text)]', className)}>\n {children}\n </h3>\n)\n\nconst SubTitle3: React.FC<HeadingTextProps> = ({ children, className }) => (\n <h4 className={buildClassName('text-lg font-medium text-[var(--ui-text)]', className)}>\n {children}\n </h4>\n)\n\nconst SubTitle4: React.FC<HeadingTextProps> = ({ children, className }) => (\n <h5 className={buildClassName('text-base font-medium text-[var(--ui-text)]', className)}>\n {children}\n </h5>\n)\n\nexport const HeadingText = {\n Title,\n SubTitle,\n SubTitle2,\n SubTitle3,\n SubTitle4,\n}\n","import { forwardRef } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport { HeadingText } from '../HeadingText'\nimport { DetailedInformationProps } from './DetailedInformation.types'\n\nexport const DetailedInformation = forwardRef<HTMLDivElement, DetailedInformationProps>(\n (props, ref) => {\n const {\n className,\n title,\n subTitle,\n details,\n compact = false,\n divider = true,\n titleClass,\n detailsClass,\n bordered = false,\n ...divProps\n } = props\n\n const hasTitles = title || subTitle\n const filteredDetails = details.filter((detail) => !detail.hidden)\n return (\n <div\n className={buildClassName(\n 'p-2 md:p-4',\n compact ? 'md:p-2' : '',\n bordered ? 'border border-[var(--ui-border)]' : '',\n className,\n )}\n ref={ref}\n {...divProps}\n >\n {hasTitles && (\n <div className=\"px-4 sm:px-0 pt-2 sm:pt-0 mb-2\">\n {title && (\n <HeadingText.SubTitle2 className={buildClassName(titleClass)}>\n {title}\n </HeadingText.SubTitle2>\n )}\n {subTitle && (\n <p className=\"mt-1 max-w-2xl text-sm/6 text-gray-500 dark:text-gray-300\">\n {subTitle}\n </p>\n )}\n </div>\n )}\n {filteredDetails.length ? (\n <div\n className={buildClassName(\n 'border-[var(--ui-border-muted)]',\n hasTitles && 'border-t',\n detailsClass,\n )}\n >\n <dl className={buildClassName(divider && 'divide-y divide-[var(--ui-border-muted)]')}>\n {filteredDetails.map((detail) => (\n <div\n key={detail.label}\n className={buildClassName(\n 'px-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-0 items-center',\n compact ? 'py-1.5' : 'py-2.5',\n )}\n >\n <dt className=\"text-sm/6 font-medium text-gray-900 dark:text-gray-100\">\n {detail.label}\n </dt>\n <dd\n className={buildClassName(\n 'mt-1 text-sm/6 text-gray-700 dark:text-gray-300 sm:col-span-2 sm:mt-0',\n detail.contentClass,\n )}\n >\n {detail.value || '- -'}\n </dd>\n </div>\n ))}\n </dl>\n </div>\n ) : null}\n </div>\n )\n },\n)\n\nDetailedInformation.displayName = 'DetailedInformation'\n","import React, { type HTMLAttributes, type JSX, type JSXElementConstructor } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\n\nexport const Dot: React.FC<\n HTMLAttributes<HTMLElement> & {\n as?: keyof JSX.IntrinsicElements | JSXElementConstructor<any>\n }\n> = ({ as = 'span', className, ...props }) =>\n React.createElement(as, {\n className: buildClassName(\n 'inline-block rounded-full bg-gray-500 dark:bg-gray-300',\n 'w-1 h-1',\n className,\n ),\n ...props,\n })\n","import React from 'react'\nimport { Dialog, DialogBackdrop, DialogPanel, DialogTitle } from '@headlessui/react'\nimport { buildClassName } from '../../utils/build-classname'\nimport { Button } from '../Button'\nimport ChevronLeftIcon from '../Icons/ChevronLeft.svg'\nimport type { DrawerProps, AlignmentMap, SizeMap } from './Drawer.types'\n\nconst alignmentMap: AlignmentMap = {\n center: 'items-center justify-center h-full',\n start: 'justify-start h-full',\n end: 'justify-end h-full',\n top: 'items-center justify-center',\n bottom: 'items-end justify-center h-full',\n}\n\nconst panelAlignmentMap: AlignmentMap = {\n center: 'data-[closed]:scale-95 rounded-lg',\n start: 'data-[closed]:-translate-x-1/2 rounded-r-lg',\n end: 'data-[closed]:translate-x-1/2 rounded-l-lg',\n top: 'data-[closed]:-translate-y-1/2 rounded-b-lg',\n bottom: 'data-[closed]:translate-y-1/2 rounded-t-lg',\n}\n\nconst panelSizeMap: SizeMap = {\n xs: 'max-w-xs',\n sm: 'max-w-sm',\n md: 'max-w-md',\n lg: 'max-w-lg',\n xl: 'max-w-xl',\n '2xl': 'max-w-2xl',\n full: 'w-full',\n}\n\nexport const Drawer: React.FC<DrawerProps> = ({\n isOpen,\n onClose = () => {},\n align = 'end',\n size = 'md',\n backdrop = true,\n title,\n description,\n children,\n panelClass = '',\n contentClass = '',\n titleClass = '',\n descriptionClass = '',\n titleSticky = false,\n showBackButton = false,\n}) => {\n const showTitleSection = Boolean(title || description)\n\n return (\n <Dialog\n open={isOpen}\n as=\"div\"\n className=\"relative z-50 focus:outline-none\"\n onClose={onClose}\n transition\n >\n {backdrop && <DialogBackdrop className=\"fixed inset-0 bg-black/20 transition-opacity\" />}\n\n <div className=\"fixed inset-0 w-screen h-screen\">\n <div className={buildClassName('flex', alignmentMap[align])}>\n <DialogPanel\n transition\n className={buildClassName(\n 'w-full bg-white dark:bg-gray-800 backdrop-blur-2xl shadow-sm',\n 'overflow-y-auto space-y-4 duration-200 ease-out data-[closed]:opacity-0',\n panelAlignmentMap[align],\n panelSizeMap[size],\n panelClass,\n )}\n >\n {showTitleSection && (\n <div\n className={buildClassName(\n 'space-y-2 pt-2 md:pt-4 px-4 md:px-6',\n titleSticky && 'sticky top-0 bg-white dark:bg-gray-800 z-10',\n )}\n >\n <DialogTitle\n as=\"h3\"\n className={buildClassName(\n 'text-lg font-medium dark:text-white flex items-center gap-2',\n titleClass,\n )}\n >\n {showBackButton && (\n <Button\n iconOnly\n aria-label=\"Close drawer\"\n variant=\"plain\"\n theme=\"secondary\"\n size=\"sm\"\n onClick={onClose}\n >\n <ChevronLeftIcon className=\"size-5\" />\n </Button>\n )}\n {title}\n </DialogTitle>\n\n {description && (\n <p className={buildClassName('text-sm dark:text-white/60', descriptionClass)}>\n {description}\n </p>\n )}\n </div>\n )}\n\n <div className={contentClass}>{children}</div>\n </DialogPanel>\n </div>\n </div>\n </Dialog>\n )\n}\n\nDrawer.displayName = 'Drawer'\n","import React, { Fragment } from 'react'\nimport { Menu, MenuButton, MenuItem, MenuItems } from '@headlessui/react'\nimport { buildClassName } from '../../utils/build-classname'\nimport type { DropdownProps, DropdownItem } from './Dropdown.types'\n\nconst BASE_ITEM_CLASS =\n 'flex w-full px-3 py-2 cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-700 rounded-lg'\n\nexport const Dropdown: React.FC<DropdownProps> = ({\n triggerButton,\n renderTriggerButton,\n items,\n renderItem,\n itemsContainerClass,\n transition = true,\n anchor = 'bottom start',\n menuItemClass,\n onMenuClick,\n}) => {\n return (\n <Menu as=\"div\" className=\"relative inline-block\">\n {/* Trigger */}\n {renderTriggerButton ? (\n <MenuButton as={Fragment}>\n {(state) => renderTriggerButton(state) as React.ReactElement}\n </MenuButton>\n ) : (\n <MenuButton as={Fragment}>{triggerButton}</MenuButton>\n )}\n\n {/* Dropdown Panel */}\n <MenuItems\n transition={transition}\n anchor={anchor}\n className={buildClassName(\n 'w-52 origin-top-right rounded-xl shadow-sm p-1 text-sm transition duration-100 ease-out',\n 'border border-[var(--ui-border-muted)] bg-white text-gray-800',\n 'dark:bg-gray-800 dark:text-gray-200',\n 'focus:outline-none data-[closed]:scale-95 data-[closed]:opacity-0',\n '[--anchor-gap:--spacing(1)]',\n itemsContainerClass,\n )}\n data-testid=\"dropdown-items\"\n as=\"ul\"\n >\n {items.map((item: DropdownItem, idx: number) => (\n <Fragment key={item.id}>\n <MenuItem as=\"li\" disabled={item.disabled}>\n {({ disabled }) => (\n <div\n onClick={() => !disabled && onMenuClick?.(item, idx)}\n className={buildClassName(\n BASE_ITEM_CLASS,\n menuItemClass,\n disabled && 'cursor-not-allowed opacity-70',\n )}\n data-testid={`dropdown-item-${item.id}`}\n >\n {renderItem ? renderItem(item) : item.label}\n </div>\n )}\n </MenuItem>\n {item.divider && (\n <li\n key={item.id}\n className=\"my-1 h-px bg-gray-200 dark:bg-white/5\"\n data-testid=\"dropdown-divider\"\n />\n )}\n </Fragment>\n ))}\n </MenuItems>\n </Menu>\n )\n}\n\nDropdown.displayName = 'Dropdown'\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-folder-plus-icon lucide-folder-plus\"><path d=\"M12 10v6\"/><path d=\"M9 13h6\"/><path d=\"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z\"/></svg>","import React, { type ReactNode } from 'react'\nimport FolderPlusIcon from '../Icons/FolderPlus.svg'\nimport { HeadingText } from '../HeadingText'\nimport { BodyText } from '../BodyText'\nimport { buildClassName } from '../../utils/build-classname'\n\nexport interface EmptyStateProps {\n title: string\n description?: string\n action?: ReactNode\n className?: string\n}\n\nexport const EmptyState: React.FC<EmptyStateProps> = ({\n title,\n description,\n className,\n action = null,\n}) => {\n return (\n <div className={buildClassName('w-full flex justify-center px-4 pt-16', className)}>\n <div className=\"max-w-md flex flex-col items-center gap-4\">\n <FolderPlusIcon className=\"size-8\" />\n <HeadingText.SubTitle>{title}</HeadingText.SubTitle>\n {description && (\n <BodyText as=\"p\" className=\"text-center\" muted small>\n {description}\n </BodyText>\n )}\n {action}\n </div>\n </div>\n )\n}\n","import { forwardRef } from 'react'\nimport { Label } from '../Label'\nimport { buildClassName } from '../../utils/build-classname'\nimport { InputProps } from './Input.types'\nimport { TextContent } from '../TextContent'\n\nexport function buildInputClass(\n className?: string,\n { isFocusWithin = false, disabled = false }: { isFocusWithin?: boolean; disabled?: boolean } = {},\n) {\n return buildClassName(\n 'transition-all',\n 'block w-full rounded-lg bg-white px-3.5 py-2 text-base sm:text-sm/6',\n 'text-gray-900 outline outline-1 -outline-offset-1',\n 'outline-gray-300 dark:outline-gray-600',\n 'invalid:group-[.has-error]:outline-red-500',\n disabled\n ? 'pointer-events-none bg-gray-100 dark:bg-gray-800 dark:text-gray-600 dark:placeholder-gray-600 placeholder-gray-400 outline-gray-200 dark:outline-gray-700'\n : 'bg-white dark:bg-gray-700 dark:text-white outline-gray-300 dark:outline-gray-600 dark:placeholder-gray-400 placeholder-gray-400',\n isFocusWithin\n ? 'focus-within:outline-[var(--ui-focus-ring)] focus-within:outline-2 focus-within:-outline-offset-2'\n : 'focus:outline-[var(--ui-focus-ring)] focus:outline-2 focus:-outline-offset-2',\n className,\n )\n}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>((props, ref) => {\n const {\n name,\n id = name,\n type,\n label,\n labelHint,\n className,\n labelClass,\n labelWrapperClass,\n containerClass,\n error,\n showErrorMessage = true,\n rightGroup,\n leftGroup,\n ...inputProps\n } = props\n const hasError = Boolean(error)\n const hasRightGroup = rightGroup !== null && rightGroup !== undefined\n const hasLeftGroup = leftGroup != null && leftGroup !== undefined\n\n return (\n <div className={buildClassName('group', hasError && 'has-error', containerClass)}>\n {label && (\n <div\n className={buildClassName('flex items-center justify-between mb-2', labelWrapperClass)}\n >\n <Label className={labelClass} htmlFor={id}>\n {label}\n </Label>\n <TextContent xsmall>{labelHint}</TextContent>\n </div>\n )}\n <div className=\"relative\">\n {hasLeftGroup && (\n <span className=\"absolute top-0 h-full flex items-center justify-center w-10\">\n {leftGroup}\n </span>\n )}\n <input\n ref={ref}\n autoComplete=\"off\"\n {...inputProps}\n name={name}\n id={id}\n type={type}\n className={buildClassName(\n buildInputClass(className, { disabled: inputProps.disabled }),\n hasRightGroup ? 'pe-10' : '',\n hasLeftGroup ? 'ps-10' : '',\n )}\n />\n {hasRightGroup && (\n <span className=\"absolute end-0.75 top-0 h-full flex items-center justify-center w-10\">\n {rightGroup}\n </span>\n )}\n </div>\n {showErrorMessage && error && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n})\n\nInput.displayName = 'Input'\n","import { useState } from 'react'\nimport { Input, type InputProps } from '../Input'\nimport { Button } from '../Button'\n\nexport interface PasswordInputProps\n extends Omit<InputProps, 'rightGroup' | 'type' | 'placeholder'> {}\nexport const PASSWORD_TYPE = 'password'\nexport const PASSWORD_PLACEHOLDER = '••••••••••'\n\nexport const PasswordInput: React.FC<PasswordInputProps> = (props) => {\n const { ...inputProps } = props\n const [showPassword, setShowPassword] = useState(false)\n\n return (\n <Input\n {...inputProps}\n type={showPassword ? 'text' : PASSWORD_TYPE}\n placeholder={PASSWORD_PLACEHOLDER}\n rightGroup={\n <Button\n theme=\"secondary\"\n variant=\"plain\"\n size=\"xs\"\n className=\"px-1 mr-1\"\n type=\"button\"\n onClick={() => setShowPassword(() => !showPassword)}\n tabIndex={-1}\n >\n {showPassword ? (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth=\"1.5\"\n stroke=\"currentColor\"\n className=\"size-4\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M3.98 8.223A10.477 10.477 0 0 0 1.934 12C3.226 16.338 7.244 19.5 12 19.5c.993 0 1.953-.138 2.863-.395M6.228 6.228A10.451 10.451 0 0 1 12 4.5c4.756 0 8.773 3.162 10.065 7.498a10.522 10.522 0 0 1-4.293 5.774M6.228 6.228 3 3m3.228 3.228 3.65 3.65m7.894 7.894L21 21m-3.228-3.228-3.65-3.65m0 0a3 3 0 1 0-4.243-4.243m4.242 4.242L9.88 9.88\"\n />\n </svg>\n ) : (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth=\"1.5\"\n stroke=\"currentColor\"\n className=\"size-4\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M2.036 12.322a1.012 1.012 0 0 1 0-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178Z\"\n />\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\"\n />\n </svg>\n )}\n </Button>\n }\n />\n )\n}\n","import { forwardRef, useId } from 'react'\nimport { Label } from '../Label'\nimport { buildClassName } from '../../utils/build-classname'\nimport { RadioProps } from './Radio.types'\nimport { TextContent } from '../TextContent'\n\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>((props, ref) => {\n const {\n id,\n name,\n label,\n labelClass = '',\n wrapperClass = '',\n containerClass = '',\n error,\n disabled = false,\n className = '',\n // RadioButton-only props removed from rest\n ...rest\n } = props\n\n const generatedId = useId()\n const radioId = id ?? name ?? generatedId\n\n return (\n <div className={buildClassName(wrapperClass)}>\n <div className={buildClassName('flex items-center gap-2', containerClass)}>\n <div className=\"grid place-items-center\">\n <input\n ref={ref}\n {...rest}\n id={radioId}\n name={name}\n type=\"radio\"\n disabled={disabled}\n aria-checked={rest.checked}\n className={buildClassName(\n 'peer transition-all col-start-1 row-start-1 appearance-none shrink-0 size-4.5 rounded-full',\n 'border focus:ring-2 focus:ring-offset-2',\n 'checked:border-5 checked:bg-white',\n 'focus:ring-[var(--ui-focus-ring)] dark:focus:ring-offset-gray-800',\n disabled\n ? 'border-gray-200 dark:border-gray-700 bg-gray-100 dark:bg-gray-800 pointer-events-none'\n : buildClassName(\n 'bg-white dark:bg-gray-700 border-gray-300 dark:border-gray-600 hover:border-gray-400 dark:hover:border-gray-500',\n 'checked:border-[var(--ui-primary)] checked:hover:border-[var(--ui-primary)]',\n ),\n className,\n )}\n />\n </div>\n {label && (\n <Label\n htmlFor={radioId}\n className={buildClassName(\n disabled\n ? 'cursor-not-allowed text-gray-400 dark:text-gray-500'\n : 'cursor-pointer text-gray-600 dark:text-gray-300',\n labelClass,\n )}\n >\n {label}\n </Label>\n )}\n </div>\n {error && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n})\n","import React, { useMemo } from 'react'\nimport { Radio } from '../Radio'\nimport { Label } from '../Label'\nimport { buildClassName } from '../../utils/build-classname'\nimport { TextContent } from '../TextContent'\nimport { RadioGroupProps, RadionGroupItem } from './RadioGroup.types'\n\nexport const RadioGroup: React.FC<RadioGroupProps> = (props) => {\n const {\n name,\n label,\n labelClass,\n labelWrapperClass,\n labelHint,\n containerClass,\n options,\n value,\n row,\n error,\n showErrorMessage,\n onChange,\n } = props\n const items = useMemo(\n () =>\n options?.map((option) =>\n typeof option === 'string' ? { label: option, value: option } : option,\n ) ?? [],\n [options],\n )\n\n return (\n <div className={buildClassName(containerClass)}>\n {label && (\n <div\n className={buildClassName('flex items-center justify-between mb-4', labelWrapperClass)}\n >\n <Label className={labelClass}>{label}</Label>\n {labelHint}\n </div>\n )}\n <div\n className={buildClassName(\n 'flex gap-4',\n row ? 'flex-row items-center' : 'flex-col items-start',\n )}\n >\n {items.map((item) => (\n <Radio\n key={item.value}\n name={name}\n id={`${name}-${item.value}`}\n label={item.label}\n value={item.value}\n checked={value === item.value}\n onChange={onChange}\n />\n ))}\n </div>\n {showErrorMessage && error && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport { Radio, RadioGroup } from '@headlessui/react'\nimport { buildClassName } from '../../utils/build-classname'\nimport type { RadioSwitchItem, RadioSwitchProps } from './RadioSwitch.types'\nimport { BodyText } from '../BodyText'\n\n/**\n * GPU-accelerated Radio Switch with perfect highlight alignment.\n * Supports wrapping, icons, descriptions, and dark mode.\n */\nexport const RadioSwitch: React.FC<RadioSwitchProps> = ({\n label,\n items,\n selected,\n onChange,\n wrapperClass,\n switchClass,\n contentClass,\n descriptionClass,\n}) => {\n const containerRef = useRef<HTMLDivElement>(null)\n const [style, setStyle] = useState({ left: 0, top: 0, width: 0, height: 0 })\n\n const getLabel = (i: RadioSwitchItem) => (typeof i === 'string' ? i : i.label)\n\n const getValue = (i: RadioSwitchItem) => (typeof i === 'string' ? i : i.value)\n\n const getDescription = (i: RadioSwitchItem) =>\n typeof i === 'string' ? '' : (i.description ?? '')\n\n /** ---------------------------------------------\n * Update highlight when selected changes\n * ----------------------------------------------*/\n useEffect(() => {\n if (!containerRef.current) return\n\n const buttons = Array.from(\n containerRef.current.querySelectorAll('[data-radio-item]'),\n ) as HTMLElement[]\n\n const el = buttons.find((b) => b.dataset.value === selected)\n if (!el) return\n\n const rect = el.getBoundingClientRect()\n const parentRect = containerRef.current.getBoundingClientRect()\n\n const left = rect.left - parentRect.left\n const top = rect.top - parentRect.top\n\n setStyle({\n left,\n top,\n width: rect.width,\n height: rect.height,\n })\n }, [selected, items])\n\n return (\n <RadioGroup\n value={selected}\n onChange={onChange}\n aria-label={label}\n ref={containerRef}\n className={buildClassName(\n 'relative flex flex-wrap gap-1',\n 'transition-colors duration-200 overflow-hidden',\n wrapperClass,\n )}\n >\n {/* Sliding highlight — GPU optimized */}\n <div\n className={buildClassName(\n 'absolute rounded-md bg-blue-600 dark:bg-blue-500',\n 'transition-transform transition-size duration-300 ease-[cubic-bezier(.25,.8,.25,1)]',\n switchClass,\n )}\n style={{\n transform: `translate(${style.left}px, ${style.top}px)`,\n width: style.width,\n height: style.height,\n }}\n />\n\n {/* Items */}\n {items.map((item) => (\n <Radio\n key={getValue(item)}\n value={getValue(item)}\n data-radio-item\n data-value={getValue(item)}\n className={buildClassName(\n 'relative z-10 cursor-pointer select-none group',\n 'px-4 py-2 rounded-md transition-colors',\n 'text-gray-700 dark:text-gray-300 data-checked:text-white',\n )}\n >\n <div\n className={buildClassName(\n 'flex flex-col items-center justify-center gap-1',\n contentClass,\n )}\n >\n <BodyText\n className={buildClassName(\n 'font-semibold',\n selected === getValue(item) && 'text-white',\n )}\n >\n {getLabel(item)}\n </BodyText>\n\n {getDescription(item) && (\n <BodyText\n className={buildClassName(\n 'text-xs opacity-80',\n descriptionClass,\n selected === getValue(item) && 'text-white',\n )}\n >\n {getDescription(item)}\n </BodyText>\n )}\n </div>\n </Radio>\n ))}\n </RadioGroup>\n )\n}\n","/**\n * Checks if a value is an array.\n * Equivalent to lodash's _.isArray.\n */\nexport function isArray(value: any): value is any[] {\n return Array.isArray(value)\n}\n","import { isArray } from './is-array'\n\n/**\n * Checks if a value is empty.\n * Works for arrays, objects, strings, Maps, and Sets.\n * Equivalent to lodash's _.isEmpty.\n */\nexport function isEmpty(value: any): boolean {\n if (value == null) return true // null or undefined\n\n if (typeof value === 'string' || isArray(value)) {\n return value.length === 0\n }\n\n if (value instanceof Map || value instanceof Set) {\n return value.size === 0\n }\n\n if (typeof value === 'object') {\n return Object.keys(value).length === 0\n }\n\n return false // for numbers, booleans, functions, etc.\n}\n","import { forwardRef } from 'react'\nimport { Label } from '../Label'\nimport { buildClassName } from '../../utils/build-classname'\nimport { isEmpty } from '../../utils/is-empty'\nimport { TextContent } from '../TextContent'\nimport { RangeInputProps } from './RangeInput.types'\n\n// export interface RangeInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {\n// label?: string\n// labelClass?: string\n// labelHint?: React.ReactNode\n// containerClass?: string\n// showValue?: boolean\n// valueSuffix?: string\n// error?: string | null\n// showErrorMessage?: boolean\n// }\n\nexport const RangeInput = forwardRef<HTMLInputElement, RangeInputProps>((props, ref) => {\n const {\n label,\n labelClass = '',\n labelHint = null,\n containerClass = '',\n className = '',\n showValue = true,\n valueSuffix = '',\n error = null,\n showErrorMessage = true,\n id,\n min = 0,\n max = 100,\n value,\n ...inputProps\n } = props\n\n const hasError = !isEmpty(error)\n\n return (\n <div className={buildClassName('group space-y-2', containerClass)}>\n {label && (\n <div className=\"flex items-center justify-between\">\n <Label htmlFor={id} className={labelClass}>\n {label}\n </Label>\n {labelHint}\n </div>\n )}\n\n <div className=\"flex items-center gap-3\">\n <input\n ref={ref}\n type=\"range\"\n id={id}\n min={min}\n max={max}\n value={value}\n {...inputProps}\n className={buildClassName(\n 'w-full h-2 rounded-lg appearance-none cursor-pointer',\n 'bg-gray-200 dark:bg-gray-700',\n 'accent-blue-600', // for WebKit\n '[&::-webkit-slider-thumb]:appearance-none',\n '[&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:w-4',\n '[&::-webkit-slider-thumb]:rounded-full',\n '[&::-webkit-slider-thumb]:bg-blue-600',\n '[&::-moz-range-thumb]:h-4 [&::-moz-range-thumb]:w-4',\n '[&::-moz-range-thumb]:rounded-full',\n '[&::-moz-range-thumb]:bg-blue-600',\n hasError && 'accent-red-600',\n className,\n )}\n />\n\n {showValue && (\n <span className=\"text-sm text-gray-600 dark:text-gray-300 min-w-[3rem] text-right\">\n {value}\n {valueSuffix}\n </span>\n )}\n </div>\n\n {showErrorMessage && hasError && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n})\n","import React, { useEffect, useRef, useState } from 'react'\nimport { Label } from '../Label'\nimport { buildClassName } from '../../utils/build-classname'\nimport { isEmpty } from '../../utils/is-empty'\nimport { RangeSliderProps } from './RangeSlider.types'\nimport { TextContent } from '../TextContent'\n\nexport const RangeSlider: React.FC<RangeSliderProps> = ({\n label,\n labelHint,\n labelClass = '',\n containerClass = '',\n className = '',\n min,\n max,\n valueMin,\n valueMax,\n onChange,\n valueSuffix = '',\n error = null,\n showErrorMessage = true,\n}) => {\n const trackRef = useRef<HTMLDivElement | null>(null)\n\n // Refs for drag logic\n const activeThumbRef = useRef<'min' | 'max' | null>(null)\n\n // State for UI styling\n const [activeThumbState, setActiveThumbState] = useState<'min' | 'max' | null>(null)\n\n // Keep prop values in refs so drag handlers always use latest values (no stale closure)\n const valueMinRef = useRef(valueMin)\n const valueMaxRef = useRef(valueMax)\n const onChangeRef = useRef(onChange)\n valueMinRef.current = valueMin\n valueMaxRef.current = valueMax\n onChangeRef.current = onChange\n\n const hasError = !isEmpty(error)\n const percent = (v: number) => ((v - min) / (max - min)) * 100\n\n // Stable handler references registered on window — these never change identity\n // so removeEventListener always finds the right listener to remove.\n const stablePointerMoveRef = useRef((e: PointerEvent) => {\n if (!trackRef.current || !activeThumbRef.current) return\n const rect = trackRef.current.getBoundingClientRect()\n const x = Math.min(Math.max(e.clientX - rect.left, 0), rect.width)\n const rawVal = min + (x / rect.width) * (max - min)\n if (activeThumbRef.current === 'min') {\n onChangeRef.current(Math.min(rawVal, valueMaxRef.current - 1), valueMaxRef.current)\n } else {\n onChangeRef.current(valueMinRef.current, Math.max(rawVal, valueMinRef.current + 1))\n }\n })\n\n const stablePointerUpRef = useRef(() => {\n activeThumbRef.current = null\n setActiveThumbState(null)\n window.removeEventListener('pointermove', stablePointerMoveRef.current)\n window.removeEventListener('pointerup', stablePointerUpRef.current)\n })\n\n // Remove listeners on unmount in case a drag is in progress\n useEffect(() => {\n const move = stablePointerMoveRef.current\n const up = stablePointerUpRef.current\n return () => {\n window.removeEventListener('pointermove', move)\n window.removeEventListener('pointerup', up)\n }\n }, [])\n\n // ---------------------------------------------\n // Pointer Move (drag)\n // ---------------------------------------------\n const startDrag = (thumb: 'min' | 'max') => (_e: React.PointerEvent) => {\n activeThumbRef.current = thumb\n setActiveThumbState(thumb)\n window.addEventListener('pointermove', stablePointerMoveRef.current)\n window.addEventListener('pointerup', stablePointerUpRef.current)\n }\n\n // ---------------------------------------------\n // Click Track to move closest thumb\n // ---------------------------------------------\n const handleTrackClick = (e: React.MouseEvent) => {\n if (!trackRef.current) return\n\n const rect = trackRef.current.getBoundingClientRect()\n const x = Math.min(Math.max(e.clientX - rect.left, 0), rect.width)\n const rawVal = min + (x / rect.width) * (max - min)\n const pxMin = (percent(valueMin) / 100) * rect.width\n const pxMax = (percent(valueMax) / 100) * rect.width\n\n // If click is left of min thumb → move min thumb\n if (x <= pxMin) {\n onChange(rawVal, valueMax)\n return\n }\n\n // If click is right of max thumb → move max thumb\n if (x >= pxMax) {\n onChange(valueMin, rawVal)\n return\n }\n\n // Else click is between → move closest thumb\n const distMin = Math.abs(rawVal - valueMin)\n const distMax = Math.abs(rawVal - valueMax)\n\n if (distMin < distMax) {\n onChange(rawVal, valueMax)\n } else {\n onChange(valueMin, rawVal)\n }\n }\n\n return (\n <div className={buildClassName('group space-y-2', hasError && 'has-error', containerClass)}>\n {/* Label */}\n {label && (\n <div className=\"flex items-center justify-between mb-1\">\n <Label className={labelClass}>{label}</Label>\n {labelHint}\n </div>\n )}\n\n {/* TRACK */}\n <div\n ref={trackRef}\n onMouseDown={handleTrackClick}\n className=\"relative h-8 select-none w-full\"\n data-testid=\"range-track\"\n >\n {/* Track background */}\n <div className=\"absolute top-1/2 left-0 right-0 h-2 rounded-full bg-gray-200 dark:bg-gray-700 -translate-y-1/2\" />\n\n {/* Highlight active section */}\n <div\n className=\"absolute top-1/2 h-2 bg-blue-600 dark:bg-blue-500 -translate-y-1/2 rounded-full \n transition-all duration-150 ease-out\"\n style={{\n left: `${percent(valueMin)}%`,\n width: `${percent(valueMax) - percent(valueMin)}%`,\n }}\n />\n\n {/* MIN THUMB */}\n <div\n onPointerDown={startDrag('min')}\n className={buildClassName(\n 'absolute top-1/2 -translate-y-1/2 h-5 w-5 rounded-full',\n 'bg-white border-2 border-blue-600 shadow-md cursor-pointer touch-none',\n 'transition-all duration-150 ease-out', // animation\n activeThumbState === 'min' && 'ring-4 ring-blue-200',\n className,\n )}\n style={{\n left: `calc(${percent(valueMin)}% - 10px)`,\n zIndex: activeThumbState === 'min' ? 50 : 30,\n }}\n data-testid=\"thumb-min\"\n />\n\n {/* MAX THUMB */}\n <div\n onPointerDown={startDrag('max')}\n className={buildClassName(\n 'absolute top-1/2 -translate-y-1/2 h-5 w-5 rounded-full',\n 'bg-white border-2 border-blue-600 shadow-md cursor-pointer touch-none',\n 'transition-all duration-150 ease-out', // animation\n activeThumbState === 'max' && 'ring-4 ring-blue-200',\n className,\n )}\n style={{\n left: `calc(${percent(valueMax)}% - 10px)`,\n zIndex: activeThumbState === 'max' ? 50 : 40,\n }}\n data-testid=\"thumb-max\"\n />\n </div>\n\n {/* Numbers */}\n <div className=\"flex justify-between text-sm text-gray-700 dark:text-gray-300\">\n <span>\n {Math.round(valueMin)}\n {valueSuffix}\n </span>\n <span>\n {Math.round(valueMax)}\n {valueSuffix}\n </span>\n </div>\n\n {/* Error message */}\n {showErrorMessage && hasError && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n}\n","import { useCallback, useEffect, useRef, useState } from 'react'\n\nexport const useDebounce = <T,>(value: T, delay: number): T => {\n const [debouncedValue, setDebouncedValue] = useState<T>(value)\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value)\n }, delay)\n\n // Cancel the timeout if value or delay changes\n return () => {\n clearTimeout(handler)\n }\n }, [value, delay])\n\n return debouncedValue\n}\n\nexport const useDebounceFn = (fn: (...args: any[]) => void, ms: number) => {\n const timeout = useRef<any>(null)\n\n useEffect(() => {\n return () => clearTimeout(timeout.current)\n }, [])\n\n return useCallback(\n (...args: any[]) => {\n clearTimeout(timeout.current)\n timeout.current = setTimeout(() => fn(...args), ms)\n },\n [fn, ms],\n )\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-check-icon lucide-check\"><path d=\"M20 6 9 17l-5-5\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-circle-plus-icon lucide-circle-plus\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M8 12h8\"/><path d=\"M12 8v8\"/></svg>","import {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {\n Combobox,\n ComboboxButton,\n ComboboxInput,\n ComboboxOption,\n ComboboxOptions,\n} from '@headlessui/react'\n\nimport { Label } from '../Label'\nimport { Badge } from '../Badge'\nimport { Loader } from '../Loader'\nimport { TextContent } from '../TextContent'\nimport { Button } from '../Button'\n\nimport { isArray } from '../../utils/is-array'\nimport { buildClassName } from '../../utils/build-classname'\nimport { isEmpty } from '../../utils/is-empty'\nimport { useDebounce } from '../../hooks/use-debounce'\n\nimport CheckIcon from '../Icons/Check.svg'\nimport ChevronDownIcon from '../Icons/ChevronDown.svg'\nimport XIcon from '../Icons/X.svg'\nimport CirclePlusIcon from '../Icons/CirclePlus.svg'\nimport type { BaseOption, SelectBoxProps } from './SelectBox.types'\nimport { buildInputClass } from '../Input'\nimport { BodyText } from '../BodyText'\n\nconst constructInputClass = (disabled: boolean) => buildInputClass('', { disabled })\n\nexport const SelectBox = forwardRef(\n <T extends BaseOption | string = BaseOption>(\n props: SelectBoxProps<T>,\n forwardedRef: React.Ref<HTMLInputElement | HTMLDivElement | null>,\n ) => {\n const {\n labelKey = 'label',\n valueKey = 'value',\n name,\n id = name,\n options,\n selected,\n label = null,\n labelWrapperClass = '',\n labelClass = '',\n labelHint = null,\n disabled = false,\n containerClass = '',\n onChange = () => {},\n placeholder,\n dropdownContainerClass = 'z-20',\n multiple = false,\n maxSelection,\n immediate = true,\n showErrorMessage = true,\n error = null,\n async = false,\n searchable = true,\n required = false,\n allowAdd = false,\n addNewText = 'Create',\n onAdd = () => {},\n allowClear = false,\n modalDropdown = false,\n noOptionsText = 'No options available',\n } = props\n\n const hasError = Boolean(error)\n const [query, setQuery] = useState('')\n const debouncedQuery = useDebounce(query, 500)\n const [optionsLoading, setOptionsLoading] = useState(false)\n const shouldShowTypeToSearch = async && !query && !optionsLoading && options.length === 0\n const inputClass = useMemo(() => constructInputClass(disabled), [disabled])\n const chevronIconClass = buildClassName(\n 'size-4',\n 'stroke-gray-500 group-data-[hover]:stroke-gray-800',\n 'dark:stroke-gray-300 dark:group-data-[hover]:stroke-gray-100',\n disabled && 'dark:stroke-gray-600 stroke-gray-400',\n )\n\n const inputRef = useRef<HTMLInputElement>(null)\n const containerRef = useRef<HTMLDivElement>(null)\n\n // Expose the input element to parent\n useImperativeHandle(forwardedRef, () => inputRef.current!, [inputRef])\n\n const filteredOptions = useMemo(() => {\n if (query === '' || async) return options\n return options.filter((opt) => {\n const label = typeof opt === 'string' ? opt : (opt as BaseOption)[labelKey]\n return label?.toLowerCase().includes(query.toLowerCase())\n })\n }, [options, query, async, labelKey])\n\n const getDisplayValue = useCallback(\n (opt: T) => {\n return typeof opt === 'string' ? opt : opt[labelKey]\n },\n [labelKey],\n )\n\n const getValue = useCallback(\n (opt: T) => {\n return typeof opt === 'string' ? opt : opt[valueKey]\n },\n [valueKey],\n )\n\n const removeSelection = (idx: number) => {\n if (!isArray(selected)) return\n const next = [...selected]\n next.splice(idx, 1)\n onChange(next)\n inputRef.current?.focus()\n }\n\n // A strongly-typed internal handler (what you expect callers to receive)\n const handleOnChangeInternal = useCallback(\n (value: T | T[] | null) => {\n // normal empty value\n if (value === null) {\n onChange(multiple ? ([] as T[]) : null)\n setQuery('')\n return\n }\n\n // enforce maxSelection\n if (multiple && Array.isArray(value) && maxSelection && value.length > maxSelection) {\n // ignore the change\n return\n }\n\n onChange(value as T | T[])\n setQuery('')\n },\n [onChange, multiple, maxSelection],\n )\n\n /**\n * Headless UI typings are overly broad (they include null[] and EnsureArray<T> etc).\n * We therefore pass a wrapper to the Combobox with a cast (only at the call site),\n * while keeping our internal logic strongly typed.\n */\n const comboboxOnChangeWrapper = useCallback(\n (raw: unknown) => {\n // normalize actual runtime shapes Headless UI uses: T | T[] | null\n if (raw === null || raw === undefined) {\n handleOnChangeInternal(null)\n return\n }\n\n if (Array.isArray(raw)) {\n // sometimes union typing suggests arrays of nulls — guard it\n const allNulls = raw.length > 0 && raw.every((v) => v === null)\n if (allNulls) {\n handleOnChangeInternal([] as unknown as T[])\n return\n }\n // cast array to T[]\n handleOnChangeInternal(raw as unknown as T[])\n return\n }\n\n // single value\n handleOnChangeInternal(raw as unknown as T)\n },\n [handleOnChangeInternal],\n )\n\n // support create (allowAdd) as a real ComboboxOption\n const handleAddAndSelect = useCallback(\n async (valueToAdd: string) => {\n try {\n const result = await onAdd(valueToAdd)\n // if the parent returned a new option (string or object), select it\n if (result) {\n // If parent returned raw string or object, call onChange with that\n handleOnChangeInternal(result as unknown as T)\n } else {\n // if parent didn't return anything, select the raw string value\n handleOnChangeInternal(valueToAdd as unknown as T)\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('onAdd handler error', err)\n }\n },\n [onAdd, handleOnChangeInternal],\n )\n\n // Kept in a ref so `handleSearch` stays referentially stable even when the\n // caller passes a non-memoized `onSearch` — otherwise the effect below would\n // re-fire (and re-search) on every render instead of only on query changes.\n const onSearchRef = useRef(props.onSearch)\n useEffect(() => {\n onSearchRef.current = props.onSearch\n }, [props.onSearch])\n\n const handleSearch = useCallback(async (searchString: string) => {\n try {\n setOptionsLoading(true)\n await onSearchRef.current?.(searchString)\n } catch (err) {\n console.error('Error loading options:', err)\n } finally {\n setOptionsLoading(false)\n }\n }, [])\n\n useEffect(() => {\n if (async && debouncedQuery) handleSearch(debouncedQuery)\n }, [debouncedQuery, async, handleSearch])\n\n return (\n <div\n className={buildClassName('group space-y-2', hasError && 'has-error', containerClass)}\n ref={containerRef}\n >\n {label && (\n <div className={buildClassName('flex items-center justify-between', labelWrapperClass)}>\n <Label className={labelClass} htmlFor={id} aria-required={required}>\n {label}\n </Label>\n <TextContent xsmall>{labelHint}</TextContent>\n </div>\n )}\n\n <Combobox\n multiple={multiple}\n immediate={immediate}\n name={name}\n value={selected}\n onChange={comboboxOnChangeWrapper as any}\n onClose={() => setQuery('')}\n disabled={disabled}\n >\n {multiple ? (\n <div\n className={buildClassName(inputClass, 'flex flex-wrap gap-2 peer relative')}\n ref={forwardedRef as any} // ensure parent ref hits a real DOM node\n >\n {isArray(selected) &&\n selected?.length > 0 &&\n selected.map((option, idx) => (\n <Badge\n key={`${getValue(option)}-${idx}`}\n theme=\"secondary\"\n removable={!disabled}\n onRemove={() => removeSelection(idx)}\n >\n {getDisplayValue(option)}\n </Badge>\n ))}\n\n <ComboboxInput\n className=\"outline-none flex-1 dark:placeholder-gray-400 placeholder-gray-400\"\n aria-label={name}\n value={query}\n autoComplete=\"off\"\n placeholder={selected?.length ? '' : placeholder}\n onChange={(e) => setQuery(e.target.value)}\n id={id}\n ref={inputRef}\n onKeyDown={(e) => {\n if (multiple && e.key === 'Backspace' && !query) {\n if (Array.isArray(selected) && selected.length > 0) {\n removeSelection(selected.length - 1)\n }\n }\n }}\n data-testid=\"combobox-input\"\n />\n\n <ComboboxButton\n className=\"group absolute inset-y-0 right-0 px-2.5\"\n data-testid=\"combobox-button\"\n >\n <ChevronDownIcon className={chevronIconClass} />\n </ComboboxButton>\n </div>\n ) : (\n <div className=\"relative\" ref={forwardedRef as any}>\n <ComboboxInput\n aria-label={name}\n displayValue={(option: any) => (option ? getDisplayValue(option) : null)}\n autoComplete=\"off\"\n placeholder={placeholder}\n onChange={(event) => setQuery(event.target.value)}\n className={inputClass}\n disabled={disabled}\n id={id}\n readOnly={!searchable}\n ref={inputRef}\n data-testid=\"combobox-input\"\n />\n\n {allowClear && !isEmpty(selected) && (\n <Button\n size=\"xs\"\n iconOnly\n aria-label=\"Clear selection\"\n theme=\"secondary\"\n variant=\"plain\"\n className=\"group absolute inset-y-0 right-8 h-6 top-2\"\n onClick={() => handleOnChangeInternal(multiple ? ([] as T[]) : null)}\n disabled={disabled}\n data-testid=\"combobox-clear-button\"\n noOutlineOnFocus\n >\n <XIcon className=\"size-4 stroke-gray-500 dark:stroke-gray-300\" />\n </Button>\n )}\n\n <ComboboxButton\n className=\"group absolute inset-y-0 right-0 px-2.5\"\n data-testid=\"combobox-button\"\n >\n <ChevronDownIcon className={chevronIconClass} />\n </ComboboxButton>\n </div>\n )}\n\n <ComboboxOptions\n anchor={{ to: 'bottom', gap: 5 }}\n as=\"div\"\n modal={modalDropdown}\n className={buildClassName(\n 'w-[var(--input-width)] rounded-lg border border-gray-200 dark:border-white/5 bg-white dark:bg-gray-800 p-1 [--anchor-gap:var(--spacing-1)]',\n '[--anchor-max-height:20rem]',\n 'origin-top border transition duration-200 ease-[cubic-bezier(0.4, 0.0, 0.2, 1)] data-[closed]:translate-y-[-15%] data-[closed]:opacity-0',\n dropdownContainerClass,\n )}\n transition\n data-testid=\"combobox-options\"\n >\n {optionsLoading ? (\n <BodyText\n data-testid=\"options-loading\"\n className=\"flex items-center justify-center py-2 px-3 select-none\"\n >\n <Loader size=\"sm\" />\n </BodyText>\n ) : shouldShowTypeToSearch ? (\n <BodyText className=\"flex items-center justify-between py-2 px-3 select-none\">\n Type to search...\n </BodyText>\n ) : (\n <div>\n {filteredOptions.map((option) => (\n <ComboboxOption\n key={getValue(option)}\n disabled={(option as BaseOption).disabled}\n value={option}\n className=\"group rounded-lg py-1.5 px-3 select-none data-[focus]:bg-black/3 dark:data-[focus]:bg-white/10 data-disabled:opacity-50 cursor-pointer data-disabled:pointer-events-none\"\n >\n {/* Wrap the option content in a single element to avoid Fragment ref errors */}\n <div className=\"flex items-center justify-between gap-2 dark:text-white group-data-[selected]:text-blue-600\">\n <span className=\"text-sm/6\">{getDisplayValue(option)}</span>\n <CheckIcon className=\"invisible size-5 dark:stroke-gray-300 group-data-[selected]:visible\" />\n </div>\n </ComboboxOption>\n ))}\n\n {filteredOptions.length === 0 && (\n <div\n data-testid=\"no-result-found\"\n className=\"flex items-center gap-2 py-1.5 px-3 select-none text-gray-500 dark:text-gray-400\"\n >\n {query ? (\n <>\n No results found for <span className=\"font-semibold\">{query}</span>\n </>\n ) : (\n noOptionsText\n )}\n </div>\n )}\n\n {allowAdd && (\n <ComboboxOption\n value={query}\n className=\"group rounded-lg py-1.5 px-3 cursor-pointer text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700\"\n onClick={() => void handleAddAndSelect(query)}\n >\n {/* Single wrapper here too */}\n <div className=\"flex items-center gap-2\">\n <CirclePlusIcon className=\"size-4.5\" />\n <TextContent>\n {addNewText} \"{query}\"\n </TextContent>\n </div>\n </ComboboxOption>\n )}\n </div>\n )}\n </ComboboxOptions>\n </Combobox>\n\n {showErrorMessage && error && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n },\n)\n","import React, { Fragment } from 'react'\nimport { Tab, TabGroup, TabList, TabPanels, TabPanel } from '@headlessui/react'\nimport { buildClassName } from '../../utils/build-classname'\nimport { TabsProps } from './Tabs.types'\n\nexport const Tabs: React.FC<TabsProps> = ({\n tabs,\n defaultIndex = 0,\n selectedIndex,\n onChange,\n variant = 'underline',\n orientation = 'horizontal',\n stretch = false,\n className = '',\n listClass = '',\n panelsClass = '',\n}) => {\n const isVertical = orientation === 'vertical'\n\n return (\n <TabGroup\n defaultIndex={defaultIndex}\n selectedIndex={selectedIndex}\n onChange={onChange}\n vertical={isVertical}\n className={buildClassName(\n isVertical && 'flex gap-4',\n stretch && !isVertical && 'w-full',\n className,\n )}\n >\n <TabList\n className={buildClassName(\n isVertical ? 'flex flex-col gap-1' : 'flex gap-2',\n stretch && !isVertical && 'w-full',\n listClass,\n )}\n >\n {tabs.map((tab, idx) => (\n <Tab key={tab.id ?? idx} disabled={tab.disabled} as={Fragment}>\n {({ selected }) => (\n <button\n disabled={tab.disabled}\n className={buildTabClass({\n selected,\n variant,\n stretch,\n isVertical,\n tabClass: tab.tabClass,\n })}\n >\n {tab.icon && <span className=\"inline-flex shrink-0\">{tab.icon}</span>}\n {tab.label}\n </button>\n )}\n </Tab>\n ))}\n </TabList>\n\n <TabPanels className={buildClassName(isVertical ? 'flex-1' : 'mt-3', panelsClass)}>\n {tabs.map((tab, idx) => (\n <TabPanel\n key={tab.id ?? idx}\n className={\n tab.panelClass !== undefined\n ? tab.panelClass\n : 'rounded-lg bg-white dark:bg-gray-800 p-4 shadow-sm'\n }\n >\n {tab.content}\n </TabPanel>\n ))}\n </TabPanels>\n </TabGroup>\n )\n}\n\nfunction buildTabClass({\n selected,\n variant,\n stretch,\n isVertical,\n tabClass,\n}: {\n selected: boolean\n variant: 'underline' | 'segmented' | 'solid'\n stretch?: boolean\n isVertical?: boolean\n tabClass?: string\n}) {\n const base = buildClassName(\n 'inline-flex items-center gap-1.5 text-sm font-medium transition focus-visible:outline-none',\n 'disabled:opacity-40 disabled:cursor-not-allowed disabled:pointer-events-none',\n stretch && !isVertical && 'flex-1 justify-center',\n )\n\n let variantClass: string\n\n switch (variant) {\n case 'underline':\n variantClass = isVertical\n ? buildClassName(\n 'px-3 py-2 w-full text-left border-l-2',\n selected\n ? 'border-[var(--ui-primary)] text-gray-900 dark:text-white'\n : 'border-transparent text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-white hover:border-gray-300 dark:hover:border-gray-600',\n )\n : buildClassName(\n 'px-3 py-1.5 relative text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-white',\n selected &&\n 'text-gray-900 dark:text-white after:absolute after:z-10 after:left-0 after:right-0 after:-bottom-1 after:h-0.5 after:bg-[var(--ui-primary)]',\n )\n break\n\n case 'segmented':\n variantClass = buildClassName(\n 'px-3 py-1.5 rounded-lg',\n selected\n ? 'bg-[var(--ui-primary)] text-white'\n : 'text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700',\n )\n break\n\n case 'solid':\n variantClass = buildClassName(\n 'px-3 py-1.5 rounded-md',\n selected\n ? 'bg-gray-900 dark:bg-gray-700 text-white'\n : 'bg-gray-200 dark:bg-gray-800 text-gray-700 dark:text-gray-300 hover:bg-gray-300 dark:hover:bg-gray-700',\n )\n break\n }\n\n return buildClassName(base, variantClass, tabClass)\n}\n","import { forwardRef } from 'react'\nimport { Label } from '../Label'\nimport { isEmpty } from '../../utils/is-empty'\nimport { buildClassName } from '../../utils/build-classname'\nimport { TextContent } from '../TextContent'\nimport type { TextareaProps } from './Textarea.types'\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>((props, ref) => {\n const {\n name,\n id = name,\n label = null,\n labelHint = null,\n className = '',\n labelClass = '',\n labelWrapperClass = '',\n containerClass = '',\n error,\n showErrorMessage = true,\n rightGroup = null,\n leftGroup = null,\n ...inputProps\n } = props\n const hasError = !isEmpty(error)\n const hasRightGroup = rightGroup != null && rightGroup !== undefined\n const hasLeftGroup = leftGroup != null && leftGroup !== undefined\n\n return (\n <div className={buildClassName('group', hasError && 'has-error', containerClass)}>\n {label && (\n <div\n className={buildClassName('flex items-center justify-between mb-2', labelWrapperClass)}\n >\n <Label className={labelClass} htmlFor={id}>\n {label}\n </Label>\n <TextContent xsmall>{labelHint}</TextContent>\n </div>\n )}\n <div className=\"relative\">\n {hasLeftGroup && (\n <span className=\"absolute top-0 h-full flex items-center justify-center w-10\">\n {leftGroup}\n </span>\n )}\n <textarea\n ref={ref}\n autoComplete=\"off\"\n {...inputProps}\n name={name}\n id={id}\n className={buildClassName(\n 'transition-all',\n 'block w-full rounded-lg bg-white px-3.5 py-2 text-base sm:text-sm/6',\n 'text-gray-900 outline dark:outline outline-1 -outline-offset-1',\n 'outline-gray-300 dark:outline-gray-600',\n 'focus:outline-blue-600 dark:focus:outline-blue-600 focus:outline-2 focus:-outline-offset-2',\n 'dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-500 placeholder:text-gray-400 dark:text-white',\n 'invalid:group-[.has-error]:outline-red-500',\n 'disabled:pointer-events-none disabled:bg-gray-100',\n 'dark:disabled:bg-gray-500',\n hasRightGroup ? 'pe-10' : '',\n hasLeftGroup ? 'ps-10' : '',\n className,\n )}\n />\n {hasRightGroup && (\n <span className=\"absolute end-0.75 top-0 h-full flex items-center justify-center\">\n {rightGroup}\n </span>\n )}\n </div>\n {showErrorMessage && error && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n})\n","import React from 'react'\nimport { Transition } from '@headlessui/react'\nimport XIcon from '../Icons/X.svg'\nimport CheckCircle from '../Icons/CircleCheck.svg'\nimport AlertCircle from '../Icons/CircleAlert.svg'\nimport Info from '../Icons/Info.svg'\nimport AlertTriangle from '../Icons/TriangleAlert.svg'\n\nimport { Button } from '../Button'\nimport { TextContent } from '../TextContent'\nimport { buildClassName } from '../../utils/build-classname'\n\nimport { ToastProps } from './Toast.types'\n\n/**\n * Icons for each toast type\n */\nconst iconMap = {\n success: <CheckCircle className=\"size-5 text-[var(--ui-success)]\" />,\n error: <AlertCircle className=\"size-5 text-[var(--ui-danger)]\" />,\n info: <Info className=\"size-5 text-[var(--ui-info)]\" />,\n warning: <AlertTriangle className=\"size-5 text-[var(--ui-warning)]\" />,\n}\n\nconst textColorMap = {\n success: 'text-[var(--ui-success-text)]',\n error: 'text-[var(--ui-danger-text)]',\n info: 'text-[var(--ui-info-text)]',\n warning: 'text-[var(--ui-warning-text)]',\n}\n\nconst borderStyle = {\n success: 'border-t-4 border-[var(--ui-success)]',\n error: 'border-t-4 border-[var(--ui-danger)]',\n info: 'border-t-4 border-[var(--ui-info)]',\n warning: 'border-t-4 border-[var(--ui-warning)]',\n}\n\nexport const Toast: React.FC<ToastProps & { isTop?: boolean }> = ({\n message,\n type,\n onClose,\n className,\n id,\n isTop = true,\n}) => {\n const enterFrom = isTop ? 'opacity-0 -translate-y-3 scale-95' : 'opacity-0 translate-y-3 scale-95'\n const leaveTo = isTop ? 'opacity-0 -translate-y-2 scale-95' : 'opacity-0 translate-y-2 scale-95'\n return (\n <Transition\n appear\n show\n enter=\"transform transition duration-300\"\n enterFrom={enterFrom}\n enterTo=\"opacity-100 translate-y-0 scale-100\"\n leave=\"transition duration-200\"\n leaveFrom=\"opacity-100 translate-y-0 scale-100\"\n leaveTo={leaveTo}\n >\n <div\n role=\"status\"\n className={buildClassName(\n 'flex items-center gap-3 rounded-lg px-4 py-3 shadow-lg min-w-[260px] max-w-sm',\n 'bg-white dark:bg-gray-900 dark:border-gray-700',\n borderStyle[type],\n className,\n )}\n id={id.toString()}\n >\n {/* Icon */}\n <TextContent className={buildClassName(textColorMap[type])}>{iconMap[type]}</TextContent>\n\n {/* Message */}\n <TextContent className=\"flex-1 text-sm font-medium\">{message}</TextContent>\n\n {/* Close button */}\n <Button\n onClick={onClose}\n aria-label=\"Close toast\"\n className=\"opacity-60 hover:opacity-100 transition\"\n iconOnly\n size=\"xs\"\n variant=\"plain\"\n theme=\"secondary\"\n noOutlineOnFocus\n >\n <XIcon className=\"size-4\" />\n </Button>\n </div>\n </Transition>\n )\n}\n","import React, {\n createContext,\n useContext,\n useEffect,\n useState,\n type ReactNode,\n useRef,\n useCallback,\n} from 'react'\nimport { Toast } from './Toast'\nimport type { IToast, ToastContextType, ToastOptions, ToastPlacement } from './Toast.types'\nimport { buildClassName } from '../../utils/build-classname'\n\nconst ToastContext = createContext<ToastContextType | undefined>(undefined)\nlet toastCounter = 0\n\nexport const useToast = (): ToastContextType => {\n const context = useContext(ToastContext)\n if (!context) throw new Error('useToast must be used within ToastProvider')\n return context\n}\n\n// Maximum visible toasts at once\nconst MAX_TOASTS = 5\n\nconst placementClass: Record<ToastPlacement, string> = {\n 'top-right': 'top-10 right-4 items-end',\n 'top-left': 'top-10 left-4 items-start',\n 'top-center': 'top-10 left-1/2 -translate-x-1/2 items-center',\n\n 'bottom-right': 'bottom-10 right-4 items-end',\n 'bottom-left': 'bottom-10 left-4 items-start',\n 'bottom-center': 'bottom-10 left-1/2 -translate-x-1/2 items-center',\n}\n\nexport const ToastProvider: React.FC<{\n children: ReactNode\n placement?: ToastPlacement\n}> = ({ children, placement = 'top-center' }) => {\n const [toasts, setToasts] = useState<IToast[]>([])\n const timeoutRefs = useRef<Map<number, any>>(new Map())\n\n const clearTimer = (id: number) => {\n const timeout = timeoutRefs.current.get(id)\n if (timeout) {\n clearTimeout(timeout)\n timeoutRefs.current.delete(id)\n }\n }\n\n const closeToast = useCallback((id: number) => {\n clearTimer(id)\n setToasts((prev) => prev.filter((t) => t.id !== id))\n }, [])\n\n const scheduleClose = useCallback(\n (toast: IToast) => {\n if (!toast.autoClose) return\n\n clearTimer(toast.id)\n\n const timeout = setTimeout(() => {\n closeToast(toast.id)\n }, toast.duration)\n\n timeoutRefs.current.set(toast.id, timeout)\n },\n [closeToast],\n )\n\n useEffect(() => {\n const refs = timeoutRefs.current\n return () => refs.forEach((id) => clearTimeout(id))\n }, [])\n\n const showToast = useCallback(\n (message: string, options?: ToastOptions) => {\n const id = ++toastCounter\n\n const newToast: IToast = {\n id,\n message,\n type: options?.type ?? 'info',\n duration: options?.duration ?? 3000,\n autoClose: options?.autoClose ?? true,\n pauseOnHover: options?.pauseOnHover ?? true,\n }\n\n setToasts((prev) => {\n const updated = [...prev, newToast]\n if (updated.length > MAX_TOASTS) updated.shift()\n return updated\n })\n\n scheduleClose(newToast)\n },\n [scheduleClose],\n )\n\n return (\n <ToastContext.Provider value={{ showToast, closeToast }}>\n {children}\n\n {/* Toast Container */}\n <div\n className={buildClassName(\n 'fixed z-50 flex flex-col gap-3 pointer-events-none',\n placementClass[placement],\n )}\n >\n {toasts.map((toast, index) => (\n <div\n key={toast.id}\n className=\"pointer-events-auto\"\n onMouseEnter={() => toast.pauseOnHover && clearTimer(toast.id)}\n onMouseLeave={() => toast.pauseOnHover && scheduleClose(toast)}\n >\n <Toast\n {...toast}\n isTop={placement.startsWith('top')}\n onClose={() => closeToast(toast.id)}\n />\n </div>\n ))}\n </div>\n </ToastContext.Provider>\n )\n}\n","import React from 'react'\nimport { ListChildComponentProps } from 'react-window'\nimport { buildClassName } from '../../utils/build-classname'\nimport { get } from '../../utils/get'\nimport type { DataTableColumn, DataTableDensity } from '../DataTable'\nimport { Checkbox } from '../Checkbox'\nimport type { VirtualizedRowProps } from './VirtualizedDataTable.types'\n\nconst DENSITY_CELL_CLASS: Record<DataTableDensity, string> = {\n compact: 'px-2 py-1.5',\n default: 'px-3 py-3',\n spacious: 'px-4 py-4',\n}\n\nexport const VirtualizedRow = ({\n index,\n style,\n data,\n}: ListChildComponentProps<VirtualizedRowProps>) => {\n const {\n items,\n columns,\n gridTemplate,\n onRowClick,\n rowClass,\n density = 'default',\n striped,\n selectable,\n getKey,\n isSelected,\n toggleRow,\n isRowSelectable,\n } = data\n const item = items[index]\n const isStriped = striped && index % 2 === 1\n const key = getKey?.(item, index) ?? index\n const rowSelectable = !isRowSelectable || isRowSelectable(item)\n\n const resolvedRowClass = !rowClass\n ? ''\n : typeof rowClass === 'function'\n ? rowClass(item, index)\n : rowClass\n\n const getCellClass = (col: DataTableColumn): string => {\n if (!col.cellClass) return ''\n if (typeof col.cellClass === 'function') return col.cellClass(item)\n return col.cellClass\n }\n\n const densityCellClass = DENSITY_CELL_CLASS[density]\n\n return (\n <div\n role=\"row\"\n className={buildClassName(\n 'grid border-b border-[var(--ui-border)] bg-white dark:bg-gray-900 group',\n onRowClick && 'cursor-pointer',\n isStriped && 'bg-gray-50 dark:bg-gray-800/40',\n resolvedRowClass,\n )}\n style={{\n ...style,\n display: 'grid',\n gridTemplateColumns: gridTemplate,\n minWidth: 'fit-content',\n }}\n onClick={onRowClick ? () => onRowClick(item, index) : undefined}\n >\n {selectable && (\n <div\n role=\"cell\"\n className={buildClassName(\n 'flex items-center whitespace-nowrap border-r last:border-r-0 border-[var(--ui-border)]',\n densityCellClass,\n isStriped && 'bg-gray-50 dark:bg-gray-800/40',\n )}\n onClick={(e) => e.stopPropagation()}\n >\n <Checkbox\n aria-label=\"Select row\"\n checked={isSelected?.(key) ?? false}\n disabled={!rowSelectable}\n onChange={() => toggleRow?.(key)}\n />\n </div>\n )}\n {columns.map((col: DataTableColumn) => {\n const content = col.render ? col.render(item) : (get(item, col.name) ?? 'Not set')\n\n return (\n <div\n key={col.name}\n role=\"cell\"\n className={buildClassName(\n 'whitespace-nowrap border-r last:border-r-0 border-[var(--ui-border)]',\n densityCellClass,\n col.align === 'center' && 'text-center',\n col.align === 'right' && 'text-right',\n col.sticky === 'left' &&\n 'sticky left-0 z-10 bg-white dark:bg-gray-900 shadow-[2px_0_4px_rgba(0,0,0,0.05)]',\n col.sticky === 'right' &&\n 'sticky right-0 z-10 bg-white dark:bg-gray-900 shadow-[-2px_0_4px_rgba(0,0,0,0.05)]',\n isStriped && 'bg-gray-50 dark:bg-gray-800/40',\n getCellClass(col),\n )}\n >\n {content}\n </div>\n )\n })}\n </div>\n )\n}\n","import React, { useCallback, useEffect, useMemo, useRef } from 'react'\nimport { FixedSizeList as List } from 'react-window'\nimport { buildClassName } from '../../utils/build-classname'\nimport { TextContent } from '../TextContent'\nimport { Checkbox } from '../Checkbox'\nimport { VirtualizedRow } from './VirtualizedRow'\nimport {\n type DataTableColumn,\n type DataTableDensity,\n getSortIcon,\n useRowSelection,\n} from '../DataTable'\nimport type { VirtualizedDataTableProps } from './VirtualizedDataTable.types'\n\nconst SELECTION_COLUMN_WIDTH = '44px'\n\nconst DENSITY_CELL_CLASS: Record<DataTableDensity, string> = {\n compact: 'px-2 py-1.5',\n default: 'px-3 py-3',\n spacious: 'px-4 py-4',\n}\n\nconst columnWidth = (col: DataTableColumn): string => {\n if (!col.width) return '1fr'\n if (typeof col.width === 'number') return `${col.width}px`\n return col.width\n}\n\nexport function VirtualizedDataTable<T extends Record<string, any> = Record<string, any>>({\n items,\n columns,\n sorting = {},\n onSort,\n loading = false,\n emptyMessage = 'No data available',\n containerClass = '',\n wrapperClass = '',\n onRowClick,\n rowClass,\n density = 'default',\n striped = false,\n rowHeight = 48,\n maxHeight = 400,\n overscanCount = 3,\n rowKey = 'id',\n selectable = false,\n selectedRowKeys,\n defaultSelectedRowKeys,\n onSelectionChange,\n isRowSelectable,\n}: VirtualizedDataTableProps<T>) {\n const scrollRef = useRef<any>(null)\n const outerRef = useRef<HTMLDivElement>(null)\n const headerRef = useRef<HTMLDivElement | null>(null)\n\n const getKey = useCallback(\n (item: T, idx: number): string | number => {\n if (typeof rowKey === 'function') return rowKey(item)\n return (item as any)[rowKey] ?? idx\n },\n [rowKey],\n )\n\n const { isSelected, toggleRow, toggleAll, allSelected, someSelected } = useRowSelection({\n items,\n getKey,\n selectedRowKeys,\n defaultSelectedRowKeys,\n onSelectionChange,\n isRowSelectable,\n })\n\n const gridTemplate = useMemo(() => {\n const widths = columns.map((col) => columnWidth(col))\n return selectable ? [SELECTION_COLUMN_WIDTH, ...widths].join(' ') : widths.join(' ')\n }, [columns, selectable])\n\n const densityCellClass = DENSITY_CELL_CLASS[density]\n\n const skeletonRows = Math.max(1, Math.floor(maxHeight / rowHeight))\n\n useEffect(() => {\n const el = outerRef.current\n if (!el) return\n const handler = () => {\n if (headerRef.current) headerRef.current.scrollLeft = el.scrollLeft\n }\n el.addEventListener('scroll', handler)\n return () => el.removeEventListener('scroll', handler)\n }, [])\n\n const handleSort = useCallback(\n (column: DataTableColumn) => {\n if (column.sortable) onSort?.(column as DataTableColumn<T>)\n },\n [onSort],\n )\n\n const itemData = useMemo(\n () => ({\n items,\n columns,\n gridTemplate,\n onRowClick,\n rowClass,\n density,\n striped,\n selectable,\n getKey,\n isSelected,\n toggleRow,\n isRowSelectable,\n }),\n [\n items,\n columns,\n gridTemplate,\n onRowClick,\n rowClass,\n density,\n striped,\n selectable,\n getKey,\n isSelected,\n toggleRow,\n isRowSelectable,\n ],\n )\n\n /* -------------------------------------------------------\n * Header\n * ------------------------------------------------------- */\n const Header = (\n <div ref={headerRef} className=\"overflow-hidden w-full\">\n <div\n className=\"grid bg-gray-50 dark:bg-gray-800 border-b border-[var(--ui-border)]\"\n style={{ gridTemplateColumns: gridTemplate, minWidth: 'fit-content' }}\n >\n {selectable && (\n <div\n role=\"columnheader\"\n className={buildClassName(\n 'flex items-center border-r last:border-r-0 border-[var(--ui-border)]',\n densityCellClass,\n )}\n >\n <Checkbox\n aria-label=\"Select all rows\"\n checked={allSelected}\n ref={(el) => {\n if (el) el.indeterminate = someSelected\n }}\n onChange={toggleAll}\n />\n </div>\n )}\n {columns.map((col) => (\n <div\n key={col.name}\n role=\"columnheader\"\n className={buildClassName(\n 'font-semibold text-sm whitespace-nowrap flex items-center',\n densityCellClass,\n 'border-r last:border-r-0 border-[var(--ui-border)]',\n col.sticky === 'left' &&\n 'sticky left-0 z-20 bg-gray-50 dark:bg-gray-800 shadow-[2px_0_4px_rgba(0,0,0,0.05)]',\n col.sticky === 'right' &&\n 'sticky right-0 z-20 bg-gray-50 dark:bg-gray-800 shadow-[-2px_0_4px_rgba(0,0,0,0.05)]',\n col.headerClass,\n )}\n >\n <TextContent\n role={col.sortable ? 'button' : undefined}\n className={buildClassName(\n col.sortable && 'inline-flex items-center gap-2 cursor-pointer select-none',\n )}\n onClick={() => handleSort(col)}\n >\n {col.label}\n {col.sortable ? getSortIcon(sorting[col.name]) : null}\n </TextContent>\n </div>\n ))}\n </div>\n </div>\n )\n\n const wrapperCls = buildClassName(\n 'rounded-lg border border-[var(--ui-border)] overflow-hidden',\n wrapperClass,\n )\n\n /* -------------------------------------------------------\n * Loading state\n * ------------------------------------------------------- */\n if (loading) {\n return (\n <div className={buildClassName('w-full rounded-lg relative', containerClass)}>\n <div className={wrapperCls}>\n {Header}\n <div style={{ height: maxHeight }} className=\"flex flex-col\">\n {Array.from({ length: skeletonRows }).map((_, idx) => (\n <div\n key={idx}\n data-testid=\"skeleton-row\"\n className=\"grid animate-pulse bg-white dark:bg-gray-900 border-b border-[var(--ui-border-muted)]\"\n style={{ gridTemplateColumns: gridTemplate, height: rowHeight }}\n >\n {selectable && <div className={densityCellClass} />}\n {columns.map((col) => (\n <div key={col.name} className={densityCellClass}>\n <div className=\"h-4 w-3/4 bg-gray-300 dark:bg-gray-700 rounded\" />\n </div>\n ))}\n </div>\n ))}\n </div>\n </div>\n </div>\n )\n }\n\n /* -------------------------------------------------------\n * Empty state\n * ------------------------------------------------------- */\n if (items.length === 0) {\n return (\n <div className={buildClassName('w-full rounded-lg relative', containerClass)}>\n <div className={wrapperCls}>\n {Header}\n <div\n className=\"flex items-center justify-center text-gray-500 dark:text-gray-300\"\n style={{ height: maxHeight }}\n >\n {emptyMessage}\n </div>\n </div>\n </div>\n )\n }\n\n /* -------------------------------------------------------\n * Virtualized body\n * ------------------------------------------------------- */\n return (\n <div className={buildClassName('w-full rounded-lg relative', containerClass)}>\n <div className={wrapperCls}>\n {Header}\n <List\n ref={scrollRef}\n outerRef={outerRef}\n height={maxHeight}\n width=\"100%\"\n itemCount={items.length}\n itemSize={rowHeight}\n itemData={itemData}\n overscanCount={overscanCount}\n >\n {VirtualizedRow}\n </List>\n </div>\n </div>\n )\n}\n","import { useEffect, useState } from 'react'\n\nexport const useIsMobile = () => {\n const [isMobile, setIsMobile] = useState(false)\n\n useEffect(() => {\n const detect = () => {\n const width = window.innerWidth\n\n const isTouch = navigator.maxTouchPoints > 1 || window.matchMedia('(pointer: coarse)').matches\n\n setIsMobile(width < 600 && isTouch)\n }\n\n detect()\n window.addEventListener('resize', detect)\n return () => window.removeEventListener('resize', detect)\n }, [])\n\n return isMobile\n}\n","import { useEffect, useState } from 'react'\n\nexport const useIsTablet = () => {\n const [isTablet, setIsTablet] = useState(false)\n\n useEffect(() => {\n const detect = () => {\n const width = window.innerWidth\n\n const isTouch = navigator.maxTouchPoints > 1 || window.matchMedia('(pointer: coarse)').matches\n\n setIsTablet(width >= 600 && width <= 1024 && isTouch)\n }\n\n detect()\n window.addEventListener('resize', detect)\n return () => window.removeEventListener('resize', detect)\n }, [])\n\n return isTablet\n}\n","import { useIsMobile } from './use-is-mobile'\nimport { useIsTablet } from './use-is-tablet'\n\nexport const useIsTabletOrMobile = () => {\n const isMobile = useIsMobile()\n const isTablet = useIsTablet()\n\n return isMobile || isTablet\n}\n"],"names":["_path","_extends","_jsx","ChevronDownIcon","_jsxs","_circle","React","BadgeCheckIcon","CircleXIcon","CircleAlertIcon","InfoIcon","TypeClassMap","XIcon","CircleCheckIcon","TriangleAlertIcon","SlashIcon","ChevronLeftIcon","ChevronRightIcon","ArrowDownNarrowWide","ArrowDownAZ","ArrowDownWideNarrow","ArrowDownZA","ArrowUpDown","DENSITY_CELL_CLASS","Fragment","FolderPlusIcon","RadioGroup","Radio","CheckIcon","_Fragment","CirclePlusIcon","CheckCircle","AlertCircle","Info","AlertTriangle","List"],"mappings":"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"}
1
+ {"version":3,"file":"react-tailwind.es.js","sources":["../src/utils/build-classname.ts","../src/components/Icons/ChevronDown.svg","../src/components/Accordion/Accordion.tsx","../src/components/Icons/BadgeCheck.svg","../src/components/Icons/CircleX.svg","../src/components/Icons/CircleAlert.svg","../src/components/Icons/Info.svg","../src/components/Icons/X.svg","../src/components/Loader/index.tsx","../src/components/TextContent/TextContent.tsx","../src/components/Button/Button.tsx","../src/components/Alert/Alert.tsx","../src/components/Badge/Badge.tsx","../src/components/Icons/TriangleAlert.svg","../src/components/Icons/CircleCheck.svg","../src/components/Banner/Banner.tsx","../src/components/BodyText/BodyText.tsx","../src/components/Icons/Slash.svg","../src/components/Breadcrumb/Breadcrumb.tsx","../src/components/ButtonGroup/ButtonGroup.tsx","../src/components/Card/Card.tsx","../src/components/Label/Label.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/CheckboxGroup/CheckboxGroup.tsx","../src/components/Table/Table.tsx","../src/components/Pagination/usePagination.tsx","../src/components/Icons/ChevronLeft.svg","../src/components/Icons/ChevronRight.svg","../src/components/Pagination/Pagination.tsx","../src/utils/get.ts","../src/components/DataTable/DataTable.utils.ts","../src/components/Icons/ArrowDownWideNarrow.svg","../src/components/Icons/ArrowDownNarrowWide.svg","../src/components/Icons/ArrowDownAZ.svg","../src/components/Icons/ArrowDownZA.svg","../src/components/Icons/ArrowUpDown.svg","../src/components/DataTable/DataTable.icons.tsx","../src/components/DataTable/DataTable.tsx","../src/components/HeadingText/HeadingText.tsx","../src/components/DetailedInformation/DetailedInformation.tsx","../src/components/Dot/index.tsx","../src/components/Drawer/Drawer.tsx","../src/components/Dropdown/Dropdown.tsx","../src/components/Icons/FolderPlus.svg","../src/components/EmptyState/index.tsx","../src/components/Input/Input.tsx","../src/components/PasswordInput/PasswordInput.tsx","../src/components/Radio/Radio.tsx","../src/components/RadioGroup/RadioGroup.tsx","../src/components/RadioSwitch/RadioSwitch.tsx","../src/utils/is-array.ts","../src/utils/is-empty.ts","../src/components/RangeInput/RangeInput.tsx","../src/components/RangeSlider/RangeSlider.tsx","../src/hooks/use-debounce.tsx","../src/components/Icons/Check.svg","../src/components/Icons/CirclePlus.svg","../src/components/SelectBox/SelectBox.tsx","../src/components/Tabs/Tabs.tsx","../src/components/Textarea/Textarea.tsx","../src/components/Toast/Toast.tsx","../src/components/Toast/ToastProvider.tsx","../src/components/VirtualizedDataTable/VirtualizedRow.tsx","../src/components/VirtualizedDataTable/VirtualizedDataTable.tsx","../src/hooks/use-is-mobile.tsx","../src/hooks/use-is-tablet.tsx","../src/hooks/use-is-tablet-or-mobile.tsx"],"sourcesContent":["import { twMerge } from 'tailwind-merge'\n\nexport const buildClassName = (...classes: any[]) => twMerge(classes.filter(Boolean))\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-chevron-down-icon lucide-chevron-down\"><path d=\"m6 9 6 6 6-6\"/></svg>","import React, { useId, useMemo, useState } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport ChevronDownIcon from '../Icons/ChevronDown.svg'\nimport type { AccordionItem, AccordionProps, AccordionVariant } from './Accordion.types'\n\nconst CONTAINER_CLASS: Record<AccordionVariant, string> = {\n bordered:\n 'rounded-lg border border-gray-200 dark:border-white/10 divide-y divide-gray-200 dark:divide-white/10 bg-white dark:bg-gray-800 overflow-hidden',\n separated: 'space-y-2',\n plain: 'divide-y divide-gray-200 dark:divide-white/10',\n}\n\nconst ITEM_CLASS: Record<AccordionVariant, string> = {\n bordered: '',\n separated:\n 'rounded-lg border border-gray-200 dark:border-white/10 bg-white dark:bg-gray-800 overflow-hidden',\n plain: '',\n}\n\nconst HEADER_CLASS =\n 'flex w-full items-center justify-between gap-2 py-3 px-4 text-left text-sm font-medium ' +\n 'text-gray-900 dark:text-white hover:bg-gray-50 dark:hover:bg-gray-700/50 ' +\n 'focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-[var(--ui-focus-ring)] ' +\n 'disabled:opacity-40 disabled:cursor-not-allowed disabled:pointer-events-none ' +\n 'transition-colors duration-150 cursor-pointer'\n\nexport const Accordion: React.FC<AccordionProps> = ({\n items,\n type = 'single',\n variant = 'bordered',\n collapsible = true,\n defaultOpenIds,\n openIds: controlledOpenIds,\n onChange,\n expandIcon,\n className = '',\n titleClass = '',\n panelClass = '',\n}) => {\n const baseId = useId()\n\n const resolvedItems = useMemo(\n () => items.map((item, index) => ({ ...item, id: item.id ?? index })),\n [items],\n )\n\n const [uncontrolledOpenIds, setUncontrolledOpenIds] = useState<Array<string | number>>(\n defaultOpenIds ?? [],\n )\n\n const isControlled = controlledOpenIds !== undefined\n const openIds = isControlled ? controlledOpenIds : uncontrolledOpenIds\n\n const toggle = (id: string | number) => {\n const isOpen = openIds.includes(id)\n const next =\n type === 'single'\n ? isOpen\n ? collapsible\n ? []\n : openIds\n : [id]\n : isOpen\n ? openIds.filter((openId) => openId !== id)\n : [...openIds, id]\n\n if (next === openIds) return\n if (!isControlled) setUncontrolledOpenIds(next)\n onChange?.(next)\n }\n\n const renderIndicator = (isOpen: boolean) => {\n if (typeof expandIcon === 'function') return expandIcon(isOpen)\n\n return (\n <span\n className={buildClassName(\n 'inline-flex shrink-0 transition-transform duration-200',\n isOpen && 'rotate-180',\n )}\n >\n {expandIcon ?? <ChevronDownIcon className=\"size-4 stroke-gray-500 dark:stroke-gray-400\" />}\n </span>\n )\n }\n\n return (\n <div className={buildClassName(CONTAINER_CLASS[variant], className)}>\n {resolvedItems.map((item: AccordionItem & { id: string | number }) => {\n const isOpen = openIds.includes(item.id)\n const headerId = `${baseId}-${item.id}-header`\n const panelId = `${baseId}-${item.id}-panel`\n\n return (\n <div key={item.id} className={ITEM_CLASS[variant]}>\n <h3 className=\"m-0\">\n <button\n type=\"button\"\n id={headerId}\n aria-expanded={isOpen}\n aria-controls={panelId}\n disabled={item.disabled}\n onClick={() => toggle(item.id)}\n className={buildClassName(HEADER_CLASS, titleClass, item.titleClass)}\n >\n <span className=\"flex items-center gap-2\">\n {item.icon && <span className=\"inline-flex shrink-0\">{item.icon}</span>}\n {item.title}\n </span>\n {renderIndicator(isOpen)}\n </button>\n </h3>\n\n <div\n id={panelId}\n role=\"region\"\n aria-labelledby={headerId}\n className={buildClassName(\n 'grid transition-[grid-template-rows] duration-200 ease-in-out',\n isOpen ? 'grid-rows-[1fr]' : 'grid-rows-[0fr]',\n )}\n >\n <div className=\"overflow-hidden\">\n <div\n className={buildClassName(\n 'px-4 pt-2 pb-4 text-sm text-gray-600 dark:text-gray-300',\n panelClass,\n item.panelClass,\n )}\n >\n {item.content}\n </div>\n </div>\n </div>\n </div>\n )\n })}\n </div>\n )\n}\n\nAccordion.displayName = 'Accordion'\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-badge-check-icon lucide-badge-check\"><path d=\"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\"/><path d=\"m9 12 2 2 4-4\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-circle-x-icon lucide-circle-x\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"m15 9-6 6\"/><path d=\"m9 9 6 6\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-circle-alert-icon lucide-circle-alert\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><line x1=\"12\" x2=\"12\" y1=\"8\" y2=\"12\"/><line x1=\"12\" x2=\"12.01\" y1=\"16\" y2=\"16\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-info-icon lucide-info\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 16v-4\"/><path d=\"M12 8h.01\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-x-icon lucide-x\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>","import React from 'react'\nimport { buildClassName } from '../../utils/build-classname'\n\nimport './loader.css'\n\nexport type LoaderSize = 'xs' | 'sm' | 'md' | 'lg'\n\ntype LoaderSizeMap = {\n [k in LoaderSize]: string\n}\n\ninterface LoaderProps {\n size?: LoaderSize\n className?: string\n}\n\nconst loaderSizeMap: LoaderSizeMap = {\n xs: 'size-4',\n sm: 'size-6',\n md: 'size-8',\n lg: 'size-10',\n}\n\nexport const Loader: React.FC<LoaderProps> = ({ className = '', size = 'md', ...props }) => {\n return (\n <svg\n className={buildClassName(\n 'text-blue-600 dark:text-white',\n loaderSizeMap[size],\n className,\n 'spinner',\n )}\n viewBox=\"0 0 50 50\"\n {...props}\n >\n <circle\n className=\"path\"\n cx=\"25\"\n cy=\"25\"\n r=\"20\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeWidth=\"5\"\n />\n </svg>\n )\n}\n","import React, { forwardRef } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport { TextContentProps } from './TextContent.types'\n\nexport const TextContent = forwardRef<HTMLSpanElement, TextContentProps>((props, ref) => {\n const {\n xsmall = false,\n small = false,\n strong = false,\n muted = false,\n error = false,\n className,\n ...rest\n } = props\n return React.createElement('span', {\n ...rest,\n ref,\n className: buildClassName(\n 'text-[var(--ui-text)]',\n xsmall && 'text-xs/5',\n small && 'text-sm/6',\n strong && 'font-semibold',\n muted && 'text-[var(--ui-text-muted)]',\n error && 'text-[var(--ui-text-danger)]',\n className,\n ),\n })\n})\n\nTextContent.displayName = 'TextContent'\n","import React, { ElementType, forwardRef, useMemo } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport { Loader } from '../Loader'\nimport { TextContent } from '../TextContent'\nimport type { ButtonProps, ButtonSize, ThemedButtonClass, ButtonComponent } from './Button.types'\nimport type { PolymorphicRef } from '../common-type'\n\n/**\n * Tailwind CSS classes for theme + variant combinations.\n */\nconst THEMED_BTN_CLASS: ThemedButtonClass = {\n primary: {\n default:\n 'text-white bg-[var(--ui-primary)] hover:bg-[var(--ui-primary-hover)] focus:outline-[var(--ui-primary-ring)] disabled:bg-[var(--ui-primary-disabled)]',\n outlined:\n 'text-[var(--ui-primary-text)] hover:text-white border border-[var(--ui-primary)] hover:bg-[var(--ui-primary)] focus:outline-[var(--ui-primary-ring)] disabled:text-[var(--ui-primary-disabled)] disabled:border-[var(--ui-primary-disabled)]',\n plain:\n 'text-[var(--ui-primary-text)] hover:bg-black/5 dark:hover:bg-gray-700 focus:outline-[var(--ui-primary-ring)] disabled:text-[var(--ui-primary-disabled)]',\n },\n danger: {\n default:\n 'text-white bg-[var(--ui-danger)] hover:bg-[var(--ui-danger-hover)] focus:outline-[var(--ui-danger-ring)] disabled:bg-[var(--ui-danger-disabled)]',\n outlined:\n 'text-[var(--ui-danger-text)] hover:text-white border border-[var(--ui-danger)] hover:bg-[var(--ui-danger)] focus:outline-[var(--ui-danger-ring)] disabled:text-[var(--ui-danger-disabled)] disabled:border-[var(--ui-danger-disabled)]',\n plain:\n 'text-[var(--ui-danger-text)] hover:bg-black/5 dark:hover:bg-gray-700 focus:outline-[var(--ui-danger-ring)] disabled:text-[var(--ui-danger-disabled)]',\n },\n secondary: {\n default:\n 'text-gray-700 bg-white border border-gray-300 hover:bg-gray-100 dark:bg-gray-800 dark:text-white dark:border-gray-600 dark:hover:bg-gray-700 dark:hover:border-gray-600 focus:outline-[var(--ui-focus-ring)] disabled:bg-gray-200 dark:disabled:bg-gray-700',\n outlined:\n 'text-gray-700 hover:text-white border border-gray-500 hover:bg-gray-700 dark:border-gray-500 dark:text-gray-200 dark:hover:text-white dark:hover:bg-gray-600 focus:outline-[var(--ui-focus-ring)] disabled:text-gray-400 disabled:border-gray-400',\n plain:\n 'text-gray-700 hover:bg-black/5 dark:text-gray-200 dark:hover:bg-gray-700 focus:outline-[var(--ui-focus-ring)] disabled:text-gray-400',\n },\n}\n\nconst LOADER_TEXT_CLASS: ThemedButtonClass = {\n primary: {\n default: 'text-white',\n outlined: 'text-[var(--ui-primary-text)]',\n plain: 'text-[var(--ui-primary-text)]',\n },\n danger: {\n default: 'text-white',\n outlined: 'text-[var(--ui-danger-text)]',\n plain: 'text-[var(--ui-danger-text)]',\n },\n secondary: {\n default: 'text-gray-700 dark:text-white',\n outlined: 'text-gray-700 dark:text-gray-200',\n plain: 'text-gray-700 dark:text-gray-200',\n },\n}\n\n/**\n * Generate size classes.\n */\nconst getBtnSizeClasses = (size: ButtonSize, iconOnly = false) => {\n switch (size) {\n case 'xs':\n return iconOnly ? 'p-1 rounded-sm text-xs' : 'px-2 py-1 rounded-sm gap-1 text-xs'\n\n case 'sm':\n return iconOnly ? 'p-1.5 rounded text-sm' : 'px-3 py-1.5 rounded gap-1.5 text-sm'\n\n case 'md':\n return iconOnly ? 'p-2 rounded-md text-sm' : 'px-4 py-2 rounded-md gap-2 text-sm'\n\n case 'lg':\n return iconOnly ? 'p-2.5 rounded-lg text-base' : 'px-5 py-2.5 rounded-lg gap-2 text-base'\n }\n}\n\n/**\n * Base shared tailwind classes.\n */\nconst BASE_BTN_CLASS =\n 'font-medium flex items-center justify-center shrink-0 cursor-pointer ' +\n 'disabled:cursor-not-allowed disabled:pointer-events-none disabled:opacity-75 ' +\n 'transition duration-200 ease-in-out'\n\nexport const Button = forwardRef(\n <C extends ElementType = 'button'>(\n { as, type, ...props }: ButtonProps<C>,\n ref: PolymorphicRef<C>,\n ) => {\n const {\n className = '',\n children,\n theme = 'primary',\n variant = 'default',\n size = 'md',\n loading = false,\n loadingText = '',\n rounded = false,\n disabled,\n iconOnly = false,\n noOutlineOnFocus = false,\n ...restProps\n } = props\n\n const Component = as || 'button'\n\n // Accessibility guard for icon-only buttons\n if (iconOnly && !(restProps as Record<string, unknown>)['aria-label']) {\n console.warn('[ui] <Button iconOnly> requires aria-label for accessibility.')\n }\n\n // Disable interaction when loading\n const resolvedDisabled = disabled || loading\n\n // Clean invalid props when not rendering a real button\n const { type: _ignoreType, disabled: _ignoreDisabled, ...cleanRest } = restProps\n\n const buttonSpecificProps =\n Component === 'button'\n ? {\n type: type ?? 'button',\n disabled: resolvedDisabled,\n }\n : {}\n\n /**\n * Memoized className for perf & stability.\n */\n const classes = useMemo(\n () =>\n buildClassName(\n BASE_BTN_CLASS,\n THEMED_BTN_CLASS[theme][variant],\n getBtnSizeClasses(size, iconOnly),\n !noOutlineOnFocus && 'focus:outline focus:outline-2 focus:outline-offset-2',\n rounded && 'rounded-full',\n variant === 'default' && 'shadow-xs hover:shadow-none disabled:shadow-none',\n className,\n ),\n [theme, variant, size, iconOnly, rounded, noOutlineOnFocus, className],\n )\n\n /**\n * SPECIAL CASE:\n * iconOnly + loading → show spinner only\n */\n if (loading && iconOnly) {\n return (\n <Component ref={ref} className={classes} {...buttonSpecificProps} {...cleanRest}>\n <Loader data-testid=\"btn-loader-icon\" size=\"xs\" />\n </Component>\n )\n }\n\n return (\n <Component ref={ref} className={classes} {...buttonSpecificProps} {...cleanRest}>\n {loading ? (\n <span className=\"flex items-center gap-2\" aria-live=\"polite\">\n <Loader\n data-testid=\"btn-loader-icon\"\n size=\"xs\"\n className={buildClassName(LOADER_TEXT_CLASS[theme][variant])}\n />\n {loadingText && (\n <TextContent className={buildClassName(LOADER_TEXT_CLASS[theme][variant])}>\n {loadingText}\n </TextContent>\n )}\n </span>\n ) : (\n children\n )}\n </Component>\n )\n },\n) as ButtonComponent\n\nButton.displayName = 'Button'\n","import React, { forwardRef } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport BadgeCheckIcon from '../Icons/BadgeCheck.svg'\nimport CircleXIcon from '../Icons/CircleX.svg'\nimport CircleAlertIcon from '../Icons/CircleAlert.svg'\nimport InfoIcon from '../Icons/Info.svg'\nimport XIcon from '../Icons/X.svg'\nimport { Button } from '../Button'\nimport type { AlertProps } from './Alert.types'\n\nconst AlertTypeIconMap = {\n success: BadgeCheckIcon,\n danger: CircleXIcon,\n warning: CircleAlertIcon,\n info: InfoIcon,\n}\n\nconst TypeClassMap = {\n success:\n 'bg-[var(--ui-success-light)] ring-[var(--ui-success-ring-subtle)] text-[var(--ui-success-text)]',\n danger:\n 'bg-[var(--ui-danger-light)] ring-[var(--ui-danger-ring-subtle)] text-[var(--ui-danger-text)]',\n warning:\n 'bg-[var(--ui-warning-light)] ring-[var(--ui-warning-ring-subtle)] text-[var(--ui-warning-text)]',\n info: 'bg-[var(--ui-info-light)] ring-[var(--ui-info-ring-subtle)] text-[var(--ui-info-text)]',\n}\n\nexport const Alert = forwardRef<HTMLDivElement, AlertProps>((props, ref) => {\n const {\n type = 'info',\n className,\n message,\n children,\n removable = false,\n onRemove,\n icon,\n title,\n ...restProps\n } = props\n\n const DefaultIcon = AlertTypeIconMap[type] || InfoIcon\n const iconNode =\n icon !== undefined ? (\n icon\n ) : (\n <DefaultIcon className=\"size-5 shrink-0\" data-testid={`alert-${type}-icon`} />\n )\n\n return (\n <div\n ref={ref}\n className={buildClassName(\n 'flex items-center justify-between rounded-md p-3 text-sm ring-1 ring-inset gap-2',\n TypeClassMap[type],\n className,\n )}\n {...restProps}\n >\n <span className=\"inline-flex items-start gap-2 min-w-0\">\n {iconNode && <span className=\"shrink-0 inline-flex mt-0.5\">{iconNode}</span>}\n <span className=\"inline-flex flex-col gap-0.5 min-w-0\">\n {title && <span className=\"font-semibold\">{title}</span>}\n <span className=\"inline-flex items-center\">{message ?? children}</span>\n </span>\n </span>\n {removable && (\n <Button\n iconOnly\n aria-label=\"Dismiss alert\"\n size=\"xs\"\n variant=\"plain\"\n theme=\"secondary\"\n className=\"hover:bg-black/10 dark:hover:bg-white/10 shrink-0\"\n onClick={() => onRemove?.()}\n data-testid=\"alert-remove-btn\"\n >\n <XIcon className=\"size-4.5\" data-testid=\"alert-remove-icon\" />\n </Button>\n )}\n </div>\n )\n})\n\nAlert.displayName = 'Alert'\n","import React, { forwardRef } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport XIcon from '../Icons/X.svg'\nimport { BadgeProps } from './Badge.types'\nimport { TextContent } from '../TextContent'\n\nconst ThemeClassMap = {\n success:\n 'bg-[var(--ui-success-light)] text-[var(--ui-success-text)] ring-[var(--ui-success-ring-subtle)]',\n danger:\n 'bg-[var(--ui-danger-light)] text-[var(--ui-danger-text)] ring-[var(--ui-danger-ring-subtle)]',\n warning:\n 'bg-[var(--ui-warning-light)] text-[var(--ui-warning-text)] ring-[var(--ui-warning-ring-subtle)]',\n info: 'bg-[var(--ui-info-light)] text-[var(--ui-info-text)] ring-[var(--ui-info-ring-subtle)]',\n secondary:\n 'bg-gray-50 dark:bg-gray-700 text-gray-700 dark:text-gray-200 ring-[var(--ui-secondary-ring-subtle)]',\n}\n\nconst SIZE_CLASS = {\n sm: 'text-xs py-0.5 px-2',\n md: 'text-xs py-1 px-3',\n}\n\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>((props, ref) => {\n const {\n theme = 'info',\n className,\n children,\n removable = false,\n rounded = false,\n onRemove,\n size = 'md',\n icon,\n ...restProps\n } = props\n\n return (\n <TextContent\n ref={ref}\n className={buildClassName(\n 'inline-flex items-center gap-1 font-medium ring-1 ring-inset',\n SIZE_CLASS[size],\n ThemeClassMap[theme],\n rounded ? 'rounded-full' : 'rounded-md',\n icon ? 'pl-2' : '',\n removable ? 'pr-1' : '',\n className,\n )}\n data-testid={`badge-${theme}`}\n {...restProps}\n >\n {icon && <span className=\"shrink-0 inline-flex\">{icon}</span>}\n {children}\n {removable && (\n <XIcon\n className=\"size-4 shrink-0 hover:bg-black/10 dark:hover:bg-white/10 rounded-sm cursor-pointer\"\n role=\"button\"\n tabIndex={0}\n aria-label=\"Remove\"\n onClick={() => onRemove?.()}\n onKeyDown={(e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onRemove?.()\n }\n }}\n />\n )}\n </TextContent>\n )\n})\n\nBadge.displayName = 'Badge'\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-triangle-alert-icon lucide-triangle-alert\"><path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\"/><path d=\"M12 9v4\"/><path d=\"M12 17h.01\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-circle-check-icon lucide-circle-check\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"m9 12 2 2 4-4\"/></svg>","import React, { forwardRef } from 'react'\nimport TriangleAlertIcon from '../Icons/TriangleAlert.svg'\nimport CircleXIcon from '../Icons/CircleX.svg'\nimport CircleCheckIcon from '../Icons/CircleCheck.svg'\nimport InfoIcon from '../Icons/Info.svg'\nimport XIcon from '../Icons/X.svg'\nimport { buildClassName } from '../../utils/build-classname'\nimport { Button } from '../Button'\nimport { BannerProps } from './Banner.types'\n\nconst sizeMap = {\n xs: 'size-4',\n sm: 'size-5',\n md: 'size-6',\n lg: 'size-8',\n xl: 'size-10',\n}\n\nconst IconMap = {\n info: InfoIcon,\n error: CircleXIcon,\n success: CircleCheckIcon,\n warning: TriangleAlertIcon,\n}\n\nconst TypeClassMap = {\n info: 'bg-[var(--ui-info-light)] ring-[var(--ui-info-ring-subtle)] text-[var(--ui-info-text)]',\n error:\n 'bg-[var(--ui-danger-light)] ring-[var(--ui-danger-ring-subtle)] text-[var(--ui-danger-text)]',\n success:\n 'bg-[var(--ui-success-light)] ring-[var(--ui-success-ring-subtle)] text-[var(--ui-success-text)]',\n warning:\n 'bg-[var(--ui-warning-light)] ring-[var(--ui-warning-ring-subtle)] text-[var(--ui-warning-text)]',\n}\n\nexport const Banner = forwardRef<HTMLDivElement, BannerProps>((props, ref) => {\n const {\n type = 'info',\n iconSize = 'sm',\n children,\n icon,\n removable = false,\n onRemove,\n className,\n ...restProps\n } = props\n\n const DefaultIcon = IconMap[type]\n const iconNode =\n icon !== undefined ? (\n icon\n ) : (\n <DefaultIcon\n data-testid={`banner-${type}-icon`}\n className={buildClassName('shrink-0', sizeMap[iconSize])}\n />\n )\n\n return (\n <div\n ref={ref}\n className={buildClassName(\n 'text-sm rounded-md flex w-full p-3 items-center gap-3 ring-1 ring-inset',\n TypeClassMap[type],\n className,\n )}\n data-testid={`banner-${type}`}\n {...restProps}\n >\n {iconNode}\n <div className=\"flex items-center w-full justify-between\">{children}</div>\n {removable && (\n <Button\n iconOnly\n aria-label=\"Dismiss banner\"\n size=\"xs\"\n variant=\"plain\"\n theme=\"secondary\"\n className=\"hover:bg-black/10 dark:hover:bg-white/10 shrink-0\"\n onClick={() => onRemove?.()}\n data-testid=\"banner-remove-btn\"\n >\n <XIcon className=\"size-4.5\" data-testid=\"banner-remove-icon\" />\n </Button>\n )}\n </div>\n )\n})\n\nBanner.displayName = 'Banner'\n","import React, { forwardRef } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport { BodyTextProps } from './BodyText.types'\n\nexport const BodyText = forwardRef<HTMLParagraphElement, BodyTextProps>((props, ref) => {\n const {\n as = 'p',\n small = false,\n strong = false,\n muted = false,\n error = false,\n inline = false,\n className,\n invert,\n ...rest\n } = props\n const textColorClass = error\n ? 'text-[var(--ui-text-danger)]'\n : muted\n ? invert\n ? 'text-gray-300 dark:text-gray-600'\n : 'text-[var(--ui-text-muted)]'\n : invert\n ? 'text-white dark:text-black'\n : 'text-[var(--ui-text)]'\n return React.createElement(as, {\n ref: ref,\n className: buildClassName(\n textColorClass,\n small && 'text-sm/6',\n strong && 'font-semibold',\n inline && 'inline-flex items-center gap-2',\n className,\n ),\n ...rest,\n })\n})\n\nBodyText.displayName = 'BodyText'\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-slash-icon lucide-slash\"><path d=\"M22 2 2 22\"/></svg>","import React from 'react'\nimport SlashIcon from '../Icons/Slash.svg'\nimport { BreadcrumbProps } from './Breadcrumb.types'\n\nexport const Breadcrumb: React.FC<BreadcrumbProps> = ({ items, render }) => {\n const count = items.length\n const isLast = (index: number) => index === count - 1\n\n return (\n <nav\n aria-label=\"Breadcrumb\"\n className=\"flex flex-wrap items-center gap-2\"\n data-testid=\"breadcrumb-container\"\n >\n {items.map((item, index) => (\n <span\n className=\"inline-flex gap-2 items-center dark:text-white\"\n key={item.key}\n data-testid={`breadcrumb-item-${item.key}`}\n >\n <span\n className=\"font-medium\"\n {...(isLast(index) ? { 'aria-current': 'page' as const } : {})}\n >\n {isLast(index) ? item.text : render(item)}\n </span>\n {!isLast(index) && (\n <SlashIcon data-testid={`breadcrumb-divider-${index}`} className=\"size-4\" />\n )}\n </span>\n ))}\n </nav>\n )\n}\n\nBreadcrumb.displayName = 'Breadcrumb'\n","import React, { Children, cloneElement, isValidElement, useMemo } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport type { ButtonSize } from '../Button/Button.types'\nimport type { ButtonGroupOrientation, ButtonGroupProps } from './ButtonGroup.types'\n\n/**\n * Corner-rounding classes for the group's first/last button, keyed by\n * orientation + size, matching Button's own size -> radius mapping\n * (xs: rounded-sm, sm: rounded, md: rounded-md, lg: rounded-lg).\n *\n * These must stay fully static string literals (no template-literal\n * interpolation) — Tailwind's JIT scanner only picks up class names that\n * appear verbatim in source, and the docs site scans the library's\n * *compiled* output, where interpolated fragments never appear as a\n * complete class name.\n */\nconst EDGE_ROUNDING: Record<\n ButtonGroupOrientation,\n Record<ButtonSize, { first: string; last: string }>\n> = {\n horizontal: {\n xs: { first: 'rounded-l-sm rounded-r-none', last: 'rounded-r-sm rounded-l-none' },\n sm: { first: 'rounded-l rounded-r-none', last: 'rounded-r rounded-l-none' },\n md: { first: 'rounded-l-md rounded-r-none', last: 'rounded-r-md rounded-l-none' },\n lg: { first: 'rounded-l-lg rounded-r-none', last: 'rounded-r-lg rounded-l-none' },\n },\n vertical: {\n xs: { first: 'rounded-t-sm rounded-b-none', last: 'rounded-b-sm rounded-t-none' },\n sm: { first: 'rounded-t rounded-b-none', last: 'rounded-b rounded-t-none' },\n md: { first: 'rounded-t-md rounded-b-none', last: 'rounded-b-md rounded-t-none' },\n lg: { first: 'rounded-t-lg rounded-b-none', last: 'rounded-b-lg rounded-t-none' },\n },\n}\n\nconst PILL_EDGE_ROUNDING: Record<ButtonGroupOrientation, { first: string; last: string }> = {\n horizontal: { first: 'rounded-l-full rounded-r-none', last: 'rounded-r-full rounded-l-none' },\n vertical: { first: 'rounded-t-full rounded-b-none', last: 'rounded-b-full rounded-t-none' },\n}\n\n/**\n * Resolves the corner-rounding classes for a single button at `index`\n * out of `count` inside the group, so only the group's outer edges stay\n * rounded and interior seams go square.\n */\nconst getEdgeRoundingClass = ({\n index,\n count,\n size,\n orientation,\n pill,\n}: {\n index: number\n count: number\n size: ButtonSize\n orientation: ButtonGroupOrientation\n pill: boolean\n}) => {\n if (count <= 1) return ''\n if (index !== 0 && index !== count - 1) return 'rounded-none'\n\n const position = index === 0 ? 'first' : 'last'\n return pill\n ? PILL_EDGE_ROUNDING[orientation][position]\n : EDGE_ROUNDING[orientation][size][position]\n}\n\nexport const ButtonGroup: React.FC<ButtonGroupProps> = ({\n children,\n orientation = 'horizontal',\n theme = 'secondary',\n variant = 'default',\n size = 'md',\n rounded = false,\n fullWidth = false,\n label,\n className = '',\n}) => {\n const isVertical = orientation === 'vertical'\n const items = useMemo(() => Children.toArray(children).filter(isValidElement), [children])\n const count = items.length\n\n return (\n <div\n role=\"group\"\n aria-label={label}\n className={buildClassName(\n 'inline-flex',\n isVertical ? 'flex-col' : 'flex-row',\n fullWidth && 'flex w-full',\n className,\n )}\n >\n {items.map((child, index) => {\n const childSize = (child.props as { size?: ButtonSize }).size ?? size\n\n return cloneElement(child as React.ReactElement<Record<string, unknown>>, {\n theme: (child.props as { theme?: unknown }).theme ?? theme,\n variant: (child.props as { variant?: unknown }).variant ?? variant,\n size: childSize,\n className: buildClassName(\n (child.props as { className?: string }).className,\n getEdgeRoundingClass({\n index,\n count,\n size: childSize,\n orientation,\n pill: rounded,\n }),\n count > 1 && [\n 'relative shadow-none hover:z-10 focus:z-10 focus-visible:z-10',\n index > 0 && (isVertical ? '-mt-px' : '-ml-px'),\n ],\n fullWidth && 'flex-1',\n ),\n })\n })}\n </div>\n )\n}\n\nButtonGroup.displayName = 'ButtonGroup'\n","import { ElementType, forwardRef } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport type { CardComponent, CardProps } from './Card.types'\nimport type { PolymorphicRef } from '../common-type'\n\nconst BASE_CARD_CLASS = 'bg-white rounded-md dark:bg-gray-900 block'\n\nexport const Card = forwardRef(\n <C extends ElementType = 'div'>({ as, ...props }: CardProps<C>, ref: PolymorphicRef<C>) => {\n // Remove Card-only props from rest (avoid leaking to DOM)\n const {\n hoverable = false,\n bordered = true,\n compact = false,\n zeroPadding = false,\n ...rest\n } = props\n\n const Component = as || 'div'\n\n // Extract className safely from rest\n const { className, ...cleanRest } = rest as { className?: string }\n\n const classes = buildClassName(\n BASE_CARD_CLASS,\n zeroPadding ? '' : compact ? 'p-2' : 'p-6',\n hoverable && 'transition-background duration-200 hover:bg-gray-100 dark:hover:bg-gray-800',\n bordered && 'border border-[var(--ui-border)]',\n className,\n )\n\n return <Component ref={ref} className={classes} {...cleanRest} />\n },\n) as CardComponent\n\nCard.displayName = 'Card'\n","import React, { forwardRef, type LabelHTMLAttributes } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\n\ninterface LabelProps extends LabelHTMLAttributes<HTMLLabelElement> {\n htmlFor?: string\n}\n\nexport const Label = forwardRef<HTMLLabelElement, LabelProps>((props, ref) => {\n const { className, children, ...labelProps } = props\n return (\n <label\n ref={ref}\n {...labelProps}\n className={buildClassName(\n 'block text-sm font-medium text-gray-600 dark:text-gray-300',\n className,\n )}\n >\n {children}\n </label>\n )\n})\n\nLabel.displayName = 'Label'\n","import { forwardRef, useId } from 'react'\nimport { Label } from '../Label'\nimport { buildClassName } from '../../utils/build-classname'\nimport type { CheckboxProps } from './Checkbox.types'\nimport { TextContent } from '../TextContent'\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>((props, ref) => {\n const {\n id,\n name,\n label,\n labelClass = '',\n wrapperClass = '',\n containerClass = '',\n error,\n disabled = false,\n className = '',\n // Checkbox-only props removed from rest\n ...rest\n } = props\n\n const generatedId = useId()\n const checkboxId = id ?? name ?? generatedId\n\n return (\n <div className={buildClassName(wrapperClass)}>\n <div className={buildClassName('flex items-center', containerClass)}>\n <label\n htmlFor={checkboxId}\n className={buildClassName(\n 'inline-flex items-center relative select-none',\n disabled ? 'cursor-not-allowed opacity-70' : 'cursor-pointer',\n )}\n >\n <input\n ref={ref}\n {...rest}\n id={checkboxId}\n name={name}\n type=\"checkbox\"\n disabled={disabled}\n aria-checked={rest.checked}\n className={buildClassName(\n 'peer size-4.5 cursor-pointer transition-all appearance-none rounded',\n 'border focus:ring-2 focus:ring-offset-2',\n 'checked:bg-[var(--ui-primary)] checked:border-[var(--ui-primary)]',\n 'focus:ring-[var(--ui-focus-ring)] dark:focus:ring-offset-gray-900',\n disabled\n ? 'border-gray-200 dark:border-gray-700 bg-gray-100 dark:bg-gray-800 pointer-events-none'\n : 'bg-white dark:bg-gray-700 border-gray-300 dark:border-gray-600 hover:border-gray-400 dark:hover:border-gray-500 hover:shadow-md',\n className,\n )}\n />\n\n <span\n className=\"absolute text-white opacity-0 peer-checked:opacity-100 \n top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-3.25 w-3.25\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n strokeWidth=\"1\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\n clipRule=\"evenodd\"\n ></path>\n </svg>\n </span>\n </label>\n\n {label && (\n <Label\n htmlFor={checkboxId}\n className={buildClassName(\n disabled\n ? 'cursor-not-allowed text-gray-400 dark:text-gray-500'\n : 'cursor-pointer text-gray-600 dark:text-gray-300',\n 'ml-2 font-normal',\n labelClass,\n )}\n >\n {label}\n </Label>\n )}\n </div>\n\n {error && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n})\n\nCheckbox.displayName = 'Checkbox'\n","import { useId, useMemo, type ChangeEvent } from 'react'\nimport { Checkbox } from '../Checkbox'\nimport { Label } from '../Label'\nimport { BodyText } from '../BodyText'\nimport { buildClassName } from '../../utils/build-classname'\nimport type { CheckboxGroupItem, CheckboxGroupProps } from './CheckboxGroup.types'\n\nexport const CheckboxGroup = <T,>(props: CheckboxGroupProps<T>) => {\n const {\n name,\n options,\n label,\n labelClass = '',\n labelWrapperClass = '',\n labelHint,\n containerClass = '',\n value = [],\n onChange,\n inline = false,\n } = props\n\n const groupId = useId()\n\n const items = useMemo(\n () =>\n options.map((opt) =>\n typeof opt === 'string' ? ({ label: opt, value: opt } as CheckboxGroupItem<T>) : opt,\n ),\n [options],\n )\n\n /**\n * Group-level change handler. Converts raw checkbox change events\n * into a typed updated values array.\n */\n const handleGroupChange = (e: ChangeEvent<HTMLInputElement>) => {\n const raw = e.target.value\n const checked = e.target.checked\n\n // Convert HTML string value → typed T value\n // Locate in normalized items\n const matched = items.find((i) => String(i.value) === raw)\n const itemValue = matched?.value as T\n\n let updated: T[]\n\n if (checked) {\n updated = [...value, itemValue]\n } else {\n updated = value.filter((v) => v !== itemValue)\n }\n\n onChange?.(updated, e)\n }\n\n return (\n <div className={buildClassName('mb-3 space-y-3', containerClass)}>\n {label && (\n <div className={buildClassName('flex items-center justify-between', labelWrapperClass)}>\n <Label className={labelClass}>{label}</Label>\n <BodyText muted small>\n {labelHint}\n </BodyText>\n </div>\n )}\n\n <div className={buildClassName('flex gap-3', inline ? 'flex-wrap' : 'flex-col')}>\n {items.map((item, index) => {\n const key =\n typeof item.value === 'string' || typeof item.value === 'number' ? item.value : index\n\n return (\n <Checkbox\n key={key}\n name={name}\n id={`${groupId}-${String(item.value)}`}\n label={item.label}\n value={String(item.value)}\n checked={value.includes(item.value)}\n onChange={handleGroupChange}\n />\n )\n })}\n </div>\n </div>\n )\n}\n\nCheckboxGroup.displayName = 'CheckboxGroup'\n","import React from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport type {\n EmptyTableRowProps,\n TableProps,\n TableBodyProps,\n TableCellProps,\n TableFootProps,\n TableHeaderCellProps,\n TableHeadProps,\n TableRowLoaderProps,\n TableRowProps,\n} from './Table.types'\n\nconst TEXT_ALIGN = {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n}\n\nconst TABLE_LAYOUT = {\n fixed: 'table-fixed',\n auto: 'table-auto',\n}\n\n/* ----------------------------------------------\n * Loader Rows\n * ---------------------------------------------- */\nconst TableRowLoader: React.FC<TableRowLoaderProps> = ({ colSize, rowSize }) => (\n <>\n {Array.from({ length: rowSize }).map((_, rowIdx) => (\n <TableRow key={rowIdx} className=\"animate-pulse\">\n {Array.from({ length: colSize }).map((_, colIdx) => (\n <TableCell key={colIdx}>\n <div className=\"flex items-center h-6\">\n <div className=\"h-4 bg-gray-300 dark:bg-gray-700 shimmer rounded w-full\" />\n </div>\n </TableCell>\n ))}\n </TableRow>\n ))}\n </>\n)\n\n/* ----------------------------------------------\n * Table\n * ---------------------------------------------- */\nexport const Table: React.FC<TableProps> = ({\n children,\n layout = 'auto',\n className = '',\n caption,\n}) => (\n <table\n className={buildClassName(\n 'border-collapse w-full divide-y divide-[var(--ui-border)]',\n TABLE_LAYOUT[layout],\n className,\n )}\n >\n {caption && (\n <caption className=\"mb-2 text-sm text-left text-gray-500 dark:text-gray-400\">\n {caption}\n </caption>\n )}\n {children}\n </table>\n)\n\n/* ----------------------------------------------\n * Head\n * ---------------------------------------------- */\nexport const TableHead: React.FC<TableHeadProps> = ({ children, className = '' }) => (\n <thead\n className={buildClassName(\n 'text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-800 dark:text-gray-300',\n className,\n )}\n >\n <tr>{children}</tr>\n </thead>\n)\n\n/* ----------------------------------------------\n * Body\n * ---------------------------------------------- */\nexport const TableBody: React.FC<TableBodyProps> = ({\n children,\n loading,\n colSize = 1,\n rowSize = 5,\n className,\n}) => (\n <tbody\n className={buildClassName(\n 'text-sm text-gray-700 dark:text-white divide-y divide-[var(--ui-border)]',\n className,\n )}\n >\n {loading ? <TableRowLoader colSize={colSize} rowSize={rowSize} /> : children}\n </tbody>\n)\n\n/* ----------------------------------------------\n * Foot\n * ---------------------------------------------- */\nexport const TableFoot: React.FC<TableFootProps> = ({ children }) => (\n <tfoot>\n <tr>{children}</tr>\n </tfoot>\n)\n\n/* ----------------------------------------------\n * Rows\n * ---------------------------------------------- */\nexport const TableRow: React.FC<TableRowProps> = ({\n children,\n hoverable = false,\n className,\n ...props\n}) => (\n <tr\n {...props}\n className={buildClassName(\n 'last:border-b border-[var(--ui-border)]',\n hoverable && 'group',\n className,\n )}\n >\n {children}\n </tr>\n)\n\n/* ----------------------------------------------\n * Cells\n * ---------------------------------------------- */\nexport const TableCell: React.FC<TableCellProps> = ({\n children,\n align = 'left',\n className,\n ...props\n}) => (\n <td\n {...props}\n className={buildClassName(\n 'px-3 py-3 first:pl-4 last:pr-4 bg-white dark:bg-gray-900 group-hover:bg-gray-50 group-hover:dark:bg-gray-800',\n TEXT_ALIGN[align],\n className,\n )}\n >\n <div className=\"leading-normal\">{children}</div>\n </td>\n)\n\nexport const TableHeaderCell: React.FC<TableHeaderCellProps> = ({\n children,\n align = 'left',\n className,\n ...props\n}) => (\n <th\n {...props}\n className={buildClassName(\n 'px-3 py-3 first:pl-4 last:pr-4 tracking-wider whitespace-nowrap text-gray-800 dark:text-gray-300',\n TEXT_ALIGN[align],\n className,\n )}\n >\n {children}\n </th>\n)\n\n/* ----------------------------------------------\n * Empty Row\n * ---------------------------------------------- */\nexport const EmptyTableRow: React.FC<EmptyTableRowProps> = ({\n children,\n colSpan = 1,\n contentClass,\n}) => (\n <tr className=\"bg-white dark:bg-gray-900\">\n <td colSpan={colSpan} className=\"px-4 py-8\">\n <div\n className={buildClassName(\n 'p-6 text-center space-y-3 flex flex-col items-center justify-center',\n contentClass,\n )}\n >\n {children}\n </div>\n </td>\n </tr>\n)\n","import { UsePaginationProps } from './Pagination.types'\n\nexport const DOTS = '...'\n\nexport const usePagination = ({\n totalPages,\n currentPage,\n siblingCount = 1, // number of pages to show around currentPage\n}: UsePaginationProps): (number | string)[] => {\n const totalPageNumbers = siblingCount * 2 + 5\n\n if (totalPageNumbers >= totalPages) {\n return Array.from({ length: totalPages }, (_, i) => i + 1)\n }\n\n const leftSiblingIndex = Math.max(currentPage - siblingCount, 1)\n const rightSiblingIndex = Math.min(currentPage + siblingCount, totalPages)\n\n const shouldShowLeftDots = leftSiblingIndex > 2\n const shouldShowRightDots = rightSiblingIndex < totalPages - 1\n\n const firstPageIndex = 1\n const lastPageIndex = totalPages\n\n if (!shouldShowLeftDots && shouldShowRightDots) {\n const leftRange = Array.from({ length: 3 + 2 * siblingCount }, (_, i) => i + 1)\n return [...leftRange, DOTS, totalPages]\n }\n\n if (shouldShowLeftDots && !shouldShowRightDots) {\n const rightRange = Array.from(\n { length: 3 + 2 * siblingCount },\n (_, i) => totalPages - (3 + 2 * siblingCount) + 1 + i,\n )\n return [firstPageIndex, DOTS, ...rightRange]\n }\n\n if (shouldShowLeftDots && shouldShowRightDots) {\n const middleRange = Array.from({ length: 2 * siblingCount + 1 }, (_, i) => leftSiblingIndex + i)\n return [firstPageIndex, DOTS, ...middleRange, DOTS, lastPageIndex]\n }\n\n return []\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-chevron-left-icon lucide-chevron-left\"><path d=\"m15 18-6-6 6-6\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-chevron-right-icon lucide-chevron-right\"><path d=\"m9 18 6-6-6-6\"/></svg>","import React from 'react'\nimport { Button } from '../Button'\nimport { usePagination, DOTS } from './usePagination'\nimport { buildClassName } from '../../utils/build-classname'\nimport ChevronLeftIcon from '../Icons/ChevronLeft.svg'\nimport ChevronRightIcon from '../Icons/ChevronRight.svg'\nimport type { PaginationProps } from './Pagination.types'\n\nexport const Pagination: React.FC<PaginationProps> = ({\n page: currentPage,\n limit,\n total,\n onChange,\n className,\n ellipsis = true, // Default to showing ellipsis\n}) => {\n const pages = new Array(Math.ceil(total / limit)).fill(null).map((_, i) => i + 1)\n const isFirstPage = currentPage === 1\n const isLastPage = total === 0 || pages.length === currentPage\n\n const range = usePagination({ totalPages: pages.length, currentPage })\n\n const handlePageChange = (nextVal: number) => {\n if (nextVal === currentPage) return\n\n onChange({ page: nextVal })\n }\n\n if (ellipsis) {\n return (\n <div\n data-testid=\"pagination-container\"\n className={buildClassName(\n 'flex items-center justify-between bg-white dark:bg-gray-800 px-4 py-3 sm:px-6',\n className,\n )}\n >\n <div className=\"flex flex-1 justify-between sm:hidden\">\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isFirstPage}\n onClick={() => handlePageChange(currentPage - 1)}\n data-testid=\"ellipsis-mobile-prev-btn\"\n >\n <span>Previous</span>\n <ChevronLeftIcon className=\"size-4\" />\n </Button>\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isLastPage}\n onClick={() => handlePageChange(currentPage + 1)}\n data-testid=\"ellipsis-mobile-next-btn\"\n >\n <span>Next</span>\n <ChevronRightIcon className=\"size-4\" />\n </Button>\n </div>\n <div className=\"hidden sm:flex sm:flex-1 sm:items-center sm:justify-between\">\n <p\n data-testid=\"pagination-summary\"\n className=\"text-sm text-gray-600 dark:text-gray-400 flex items-center gap-1\"\n >\n Showing\n <span className=\"font-medium\">\n {total === 0 ? 0 : Math.max(currentPage * limit - limit + 1, 1)}\n </span>\n to\n <span className=\"font-medium\">{Math.min(currentPage * limit, total)}</span>\n of\n <span className=\"font-medium\">{total}</span>\n results\n </p>\n <ul className=\"flex items-center space-x-2 text-sm\">\n <li>\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isFirstPage}\n onClick={() => handlePageChange(currentPage - 1)}\n data-testid=\"ellipsis-prev-btn\"\n >\n Prev\n </Button>\n </li>\n {range.map((page, idx) => {\n if (page === DOTS) {\n return (\n <li\n key={`${page}-${idx}`}\n data-testid={`page-${page}`}\n className=\"px-2 py-1 text-gray-400\"\n >\n &hellip;\n </li>\n )\n }\n return (\n <li key={`${page}-${idx}`}>\n <Button\n size=\"xs\"\n theme={page === currentPage ? 'primary' : 'secondary'}\n variant={page === currentPage ? 'default' : 'plain'}\n aria-current={page === currentPage ? 'page' : undefined}\n onClick={() => handlePageChange(page as number)}\n >\n {page}\n </Button>\n </li>\n )\n })}\n <li>\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isLastPage}\n onClick={() => handlePageChange(currentPage + 1)}\n data-testid=\"ellipsis-next-btn\"\n >\n Next\n </Button>\n </li>\n </ul>\n </div>\n </div>\n )\n }\n\n return (\n <div\n data-testid=\"pagination-container\"\n className={buildClassName(\n 'flex items-center justify-between bg-white dark:bg-gray-800 px-4 py-3 sm:px-6',\n className,\n )}\n >\n <div className=\"flex flex-1 justify-between sm:hidden\">\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isFirstPage}\n onClick={() => handlePageChange(currentPage - 1)}\n data-testid=\"mobile-prev-btn\"\n >\n <span>Previous</span>\n <ChevronLeftIcon className=\"size-4\" />\n </Button>\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isLastPage}\n onClick={() => handlePageChange(currentPage + 1)}\n data-testid=\"mobile-next-btn\"\n >\n <span>Next</span>\n <ChevronRightIcon className=\"size-4\" />\n </Button>\n </div>\n <div className=\"hidden sm:flex sm:flex-1 sm:items-center sm:justify-between\">\n <p\n data-testid=\"pagination-summary\"\n className=\"text-sm text-gray-600 dark:text-gray-400 flex items-center gap-1\"\n >\n Showing\n <span className=\"font-medium\">\n {total === 0 ? 0 : Math.max(currentPage * limit - limit + 1, 1)}\n </span>\n to\n <span className=\"font-medium\">{Math.min(currentPage * limit, total)}</span>\n of\n <span className=\"font-medium\">{total}</span>\n results\n </p>\n <nav className=\"isolate inline-flex items-center rounded-md\" aria-label=\"Pagination\">\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isFirstPage}\n onClick={() => handlePageChange(currentPage - 1)}\n data-testid=\"prev-btn\"\n >\n <span className=\"sr-only\">Previous</span>\n <ChevronLeftIcon className=\"size-4\" />\n </Button>\n {pages.map((page) => (\n <Button\n key={page}\n size=\"xs\"\n theme={page === currentPage ? 'primary' : 'secondary'}\n variant={page === currentPage ? 'default' : 'plain'}\n aria-current={page === currentPage ? 'page' : undefined}\n onClick={() => handlePageChange(page)}\n >\n <span className=\"size-4 block\">{page}</span>\n </Button>\n ))}\n <Button\n size=\"xs\"\n theme=\"secondary\"\n variant=\"plain\"\n disabled={isLastPage}\n onClick={() => handlePageChange(currentPage + 1)}\n data-testid=\"next-btn\"\n >\n <span className=\"sr-only\">Next</span>\n <ChevronRightIcon className=\"size-4\" />\n </Button>\n </nav>\n </div>\n </div>\n )\n}\n","export function get<T = any, R = any>(obj: T, path: string, defaultValue?: R): R {\n if (!path) return defaultValue as R\n\n const keys = path\n .replace(/\\[(\\d+)]/g, '.$1') // convert [0] to .0\n .split('.')\n .filter(Boolean) // remove empty parts\n\n return (\n keys.reduce<any>((acc, key) => {\n if (acc !== null && acc !== undefined && Object.prototype.hasOwnProperty.call(acc, key)) {\n return acc[key]\n }\n return undefined\n }, obj) ?? defaultValue\n )\n}\n","import { useCallback, useMemo, useState } from 'react'\nimport type { DataValueType, Sorting, SortQuery } from './DataTable.types'\n\n/**\n * Compute the next sorting direction for a column.\n * - string: undefined → asc → desc → undefined\n * - number/date: undefined → 1 → -1 → undefined\n */\nexport const nextSortDirection = (\n prev: Sorting | undefined,\n type: 'string' | 'number' | 'date' = 'string',\n): Sorting | undefined => {\n if (type === 'string') {\n if (!prev) return 'asc'\n if (prev === 'asc') return 'desc'\n return undefined\n }\n\n // number / date\n if (!prev) return '1'\n if (prev === '1') return '-1'\n return undefined\n}\n\n/**\n * Update the sort query object for a table column.\n * Toggles sort direction, removing key when reset.\n */\nexport const updateSortQuery = (\n sortQuery: SortQuery,\n name: string,\n type: DataValueType = 'string',\n): SortQuery => {\n const next = nextSortDirection(sortQuery[name], type)\n\n // Shallow clone once\n const updated = { ...sortQuery }\n\n if (next == null) {\n delete updated[name]\n } else {\n updated[name] = next\n }\n\n return updated\n}\n\n/** Options for {@link useRowSelection}. */\nexport interface UseRowSelectionOptions<T> {\n items: T[]\n getKey: (item: T, idx: number) => string | number\n selectedRowKeys?: Array<string | number>\n defaultSelectedRowKeys?: Array<string | number>\n onSelectionChange?: (selectedRowKeys: Array<string | number>, selectedItems: T[]) => void\n isRowSelectable?: (item: T) => boolean\n}\n\n/**\n * Shared row-selection state/behaviour used by DataTable and VirtualizedDataTable.\n * Supports controlled (`selectedRowKeys`) and uncontrolled (`defaultSelectedRowKeys`) usage.\n */\nexport const useRowSelection = <T>({\n items,\n getKey,\n selectedRowKeys,\n defaultSelectedRowKeys = [],\n onSelectionChange,\n isRowSelectable,\n}: UseRowSelectionOptions<T>) => {\n const [internalKeys, setInternalKeys] = useState<Array<string | number>>(defaultSelectedRowKeys)\n const isControlled = selectedRowKeys !== undefined\n const keys = isControlled ? selectedRowKeys : internalKeys\n const keySet = useMemo(() => new Set(keys), [keys])\n\n const selectableEntries = useMemo(\n () =>\n items\n .map((item, idx) => ({ item, key: getKey(item, idx) }))\n .filter(({ item }) => !isRowSelectable || isRowSelectable(item)),\n [items, getKey, isRowSelectable],\n )\n\n const emit = useCallback(\n (nextKeys: Array<string | number>) => {\n if (!isControlled) setInternalKeys(nextKeys)\n const nextKeySet = new Set(nextKeys)\n const nextItems = items.filter((item, idx) => nextKeySet.has(getKey(item, idx)))\n onSelectionChange?.(nextKeys, nextItems)\n },\n [isControlled, items, getKey, onSelectionChange],\n )\n\n const toggleRow = useCallback(\n (key: string | number) => {\n emit(keySet.has(key) ? keys.filter((k) => k !== key) : [...keys, key])\n },\n [keys, keySet, emit],\n )\n\n const allSelected =\n selectableEntries.length > 0 && selectableEntries.every(({ key }) => keySet.has(key))\n const someSelected = !allSelected && selectableEntries.some(({ key }) => keySet.has(key))\n\n const toggleAll = useCallback(() => {\n const selectableKeySet = new Set(selectableEntries.map(({ key }) => key))\n if (allSelected) {\n emit(keys.filter((k) => !selectableKeySet.has(k)))\n } else {\n emit(Array.from(new Set([...keys, ...selectableKeySet])))\n }\n }, [allSelected, selectableEntries, keys, emit])\n\n return {\n selectedKeys: keys,\n isSelected: (key: string | number) => keySet.has(key),\n toggleRow,\n toggleAll,\n allSelected,\n someSelected,\n }\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-down-wide-narrow-icon lucide-arrow-down-wide-narrow\"><path d=\"m3 16 4 4 4-4\"/><path d=\"M7 20V4\"/><path d=\"M11 4h10\"/><path d=\"M11 8h7\"/><path d=\"M11 12h4\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-down-narrow-wide-icon lucide-arrow-down-narrow-wide\"><path d=\"m3 16 4 4 4-4\"/><path d=\"M7 20V4\"/><path d=\"M11 4h4\"/><path d=\"M11 8h7\"/><path d=\"M11 12h10\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-down-az-icon lucide-arrow-down-a-z\"><path d=\"m3 16 4 4 4-4\"/><path d=\"M7 20V4\"/><path d=\"M20 8h-5\"/><path d=\"M15 10V6.5a2.5 2.5 0 0 1 5 0V10\"/><path d=\"M15 14h5l-5 6h5\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-down-za-icon lucide-arrow-down-z-a\"><path d=\"m3 16 4 4 4-4\"/><path d=\"M7 4v16\"/><path d=\"M15 4h5l-5 6h5\"/><path d=\"M15 20v-3.5a2.5 2.5 0 0 1 5 0V20\"/><path d=\"M20 18h-5\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-up-down-icon lucide-arrow-up-down\"><path d=\"m21 16-4 4-4-4\"/><path d=\"M17 20V4\"/><path d=\"m3 8 4-4 4 4\"/><path d=\"M7 4v16\"/></svg>","import type { SortIconKey, Sorting } from './DataTable.types'\nimport type { ReactNode } from 'react'\n/* Icons */\nimport ArrowDownWideNarrow from '../Icons/ArrowDownWideNarrow.svg'\nimport ArrowDownNarrowWide from '../Icons/ArrowDownNarrowWide.svg'\nimport ArrowDownAZ from '../Icons/ArrowDownAZ.svg'\nimport ArrowDownZA from '../Icons/ArrowDownZA.svg'\nimport ArrowUpDown from '../Icons/ArrowUpDown.svg'\n\nexport const SortIconMap: Record<SortIconKey, ReactNode> = {\n '1': (\n <ArrowDownNarrowWide className=\"size-4 text-gray-400 shrink-0 group-hover:text-gray-800 dark:group-hover:text-white\" />\n ),\n asc: (\n <ArrowDownAZ className=\"size-4 text-gray-400 shrink-0 group-hover:text-gray-800 dark:group-hover:text-white\" />\n ),\n '-1': (\n <ArrowDownWideNarrow className=\"size-4 text-gray-400 shrink-0 group-hover:text-gray-800 dark:group-hover:text-white\" />\n ),\n desc: (\n <ArrowDownZA className=\"size-4 text-gray-400 shrink-0 group-hover:text-gray-800 dark:group-hover:text-white\" />\n ),\n}\n\nexport const getSortIcon = (sort?: Sorting) =>\n sort ? (\n SortIconMap[sort as SortIconKey]\n ) : (\n <ArrowUpDown className=\"size-4 text-gray-400 shrink-0 group-hover:text-gray-800 dark:group-hover:text-white\" />\n )\n","import { useEffect, useRef, useState } from 'react'\nimport {\n EmptyTableRow,\n Table,\n TableBody,\n TableCell,\n TableFoot,\n TableHead,\n TableHeaderCell,\n TableRow,\n} from '../Table'\nimport { buildClassName } from '../../utils/build-classname'\nimport type {\n DataTableProps,\n DataTableColumn,\n DataTableDensity,\n Sorting,\n SortQuery,\n} from './DataTable.types'\nimport { TextContent } from '../TextContent'\nimport { Pagination } from '../Pagination'\nimport { Checkbox } from '../Checkbox'\nimport { get } from '../../utils/get'\nimport { updateSortQuery, useRowSelection } from './DataTable.utils'\nimport { getSortIcon } from './DataTable.icons'\n\nconst DENSITY_CELL_CLASS: Record<DataTableDensity, string> = {\n compact: 'px-2 py-1.5',\n default: '',\n spacious: 'px-4 py-4',\n}\n\nconst autoSortItems = <T,>(items: T[], column: DataTableColumn<T>, sort: Sorting): T[] => {\n const path = column.name\n return [...items].sort((a, b) => {\n const valueA = get(a as Record<string, any>, path)\n const valueB = get(b as Record<string, any>, path)\n\n if (column.type === 'number') {\n const nA = Number(valueA)\n const nB = Number(valueB)\n return sort === 'asc' || sort === '1' ? nA - nB : nB - nA\n }\n\n if (column.type === 'date') {\n const dA = new Date(valueA).getTime()\n const dB = new Date(valueB).getTime()\n return sort === 'asc' || sort === '1' ? dA - dB : dB - dA\n }\n\n const sA = String(valueA).toLowerCase()\n const sB = String(valueB).toLowerCase()\n if (sA < sB) return sort === 'asc' || sort === '1' ? -1 : 1\n if (sA > sB) return sort === 'asc' || sort === '1' ? 1 : -1\n return 0\n })\n}\n\nexport function DataTable<T extends Record<string, any> = Record<string, any>>({\n items,\n columns,\n sorting = {},\n onSort,\n loading,\n pagination,\n setPagination = () => {},\n emptyMessage = 'No data found',\n containerClass = '',\n wrapperClass = '',\n tableClass = '',\n headClass = '',\n footerRow,\n rowKey = 'id',\n onRowClick,\n rowClass,\n density = 'default',\n striped = false,\n layout = 'auto',\n selectable = false,\n selectedRowKeys,\n defaultSelectedRowKeys,\n onSelectionChange,\n isRowSelectable,\n paginationContainerClass,\n}: DataTableProps<T>) {\n const internalSorting = useRef<SortQuery>({})\n const [sortedItems, setSortedItems] = useState(items)\n\n useEffect(() => {\n setSortedItems(items)\n }, [items])\n\n const doAutoSort = (column: DataTableColumn<T>) => {\n internalSorting.current = updateSortQuery(internalSorting.current, column.name, column.type)\n setSortedItems(autoSortItems(items, column, internalSorting.current[column.name]))\n }\n\n const handleSort = (column: DataTableColumn<T>) => {\n if (!column.sortable) return\n onSort ? onSort(column) : doAutoSort(column)\n }\n\n const getKey = (item: T, idx: number): string | number => {\n if (typeof rowKey === 'function') return rowKey(item)\n return (item as any)[rowKey] ?? idx\n }\n\n const getRowClass = (item: T, idx: number): string => {\n if (!rowClass) return ''\n if (typeof rowClass === 'function') return rowClass(item, idx)\n return rowClass\n }\n\n const getCellClass = (column: DataTableColumn<T>, item: T): string => {\n if (!column.cellClass) return ''\n if (typeof column.cellClass === 'function') return column.cellClass(item)\n return column.cellClass\n }\n\n const { isSelected, toggleRow, toggleAll, allSelected, someSelected } = useRowSelection({\n items: sortedItems,\n getKey,\n selectedRowKeys,\n defaultSelectedRowKeys,\n onSelectionChange,\n isRowSelectable,\n })\n\n const densityCellClass = DENSITY_CELL_CLASS[density]\n const colSize = columns.length + (selectable ? 1 : 0)\n\n return (\n <div className={buildClassName('w-full rounded-lg relative', containerClass)}>\n <div\n className={buildClassName(\n 'overflow-x-auto overflow-y-hidden rounded-lg border border-[var(--ui-border)]',\n wrapperClass,\n pagination && 'rounded-b-none border-b-0',\n )}\n >\n <Table\n className={buildClassName('relative w-full max-w-full h-fit', tableClass)}\n layout={layout}\n >\n <TableHead className={headClass}>\n {selectable && (\n <TableHeaderCell\n className={buildClassName('bg-gray-50 dark:bg-gray-800 w-px', densityCellClass)}\n >\n <Checkbox\n aria-label=\"Select all rows\"\n checked={allSelected}\n ref={(el) => {\n if (el) el.indeterminate = someSelected\n }}\n onChange={toggleAll}\n />\n </TableHeaderCell>\n )}\n {columns.map((column) => (\n <TableHeaderCell\n key={column.name}\n align={column.headerAlign}\n style={{ width: column.width || 'auto' }}\n className={buildClassName(\n 'bg-gray-50 dark:bg-gray-800',\n densityCellClass,\n column.sticky === 'left' &&\n 'sticky left-0 z-10 shadow-[2px_0_6px_rgba(0,0,0,0.06)]',\n column.sticky === 'right' &&\n 'sticky right-0 z-10 shadow-[-2px_0_6px_rgba(0,0,0,0.06)]',\n column.headerClass,\n )}\n >\n <TextContent\n role={column.sortable ? 'button' : undefined}\n className={buildClassName(\n 'group',\n column.sortable && 'inline-flex items-center gap-2 cursor-pointer select-none',\n )}\n onClick={() => handleSort(column)}\n >\n <TextContent className=\"shrink-0\">{column.label}</TextContent>\n {column.sortable ? getSortIcon(sorting[column.name]) : null}\n </TextContent>\n </TableHeaderCell>\n ))}\n </TableHead>\n\n <TableBody loading={loading} colSize={colSize} rowSize={pagination?.limit || 5}>\n {!loading && sortedItems.length === 0 ? (\n <EmptyTableRow colSpan={colSize}>{emptyMessage}</EmptyTableRow>\n ) : (\n sortedItems.map((item, idx) => {\n const key = getKey(item, idx)\n const rowSelectable = !isRowSelectable || isRowSelectable(item)\n\n return (\n <TableRow\n key={key}\n className={buildClassName(\n 'group',\n onRowClick && 'cursor-pointer',\n striped && idx % 2 === 1 && 'bg-gray-50 dark:bg-gray-800/40',\n getRowClass(item, idx),\n )}\n onClick={onRowClick ? () => onRowClick(item, idx) : undefined}\n >\n {selectable && (\n <TableCell\n className={buildClassName(\n densityCellClass,\n striped && idx % 2 === 1 && 'bg-gray-50 dark:bg-gray-800/40',\n )}\n >\n <span onClick={(e) => e.stopPropagation()}>\n <Checkbox\n aria-label=\"Select row\"\n checked={isSelected(key)}\n disabled={!rowSelectable}\n onChange={() => toggleRow(key)}\n />\n </span>\n </TableCell>\n )}\n {columns.map((column) => (\n <TableCell\n key={column.name}\n align={column.align}\n className={buildClassName(\n densityCellClass,\n striped && idx % 2 === 1 && 'bg-gray-50 dark:bg-gray-800/40',\n column.sticky === 'left' &&\n 'sticky left-0 z-10 shadow-[2px_0_6px_rgba(0,0,0,0.06)]',\n column.sticky === 'right' &&\n 'sticky right-0 z-10 shadow-[-2px_0_6px_rgba(0,0,0,0.06)]',\n getCellClass(column, item),\n )}\n >\n {column.render\n ? column.render(item)\n : ((get(item, column.name) as any) ?? 'Not set')}\n </TableCell>\n ))}\n </TableRow>\n )\n })\n )}\n </TableBody>\n\n {footerRow && <TableFoot>{footerRow}</TableFoot>}\n </Table>\n </div>\n\n {pagination && (\n <Pagination\n {...pagination}\n className={buildClassName(\n 'rounded-b-lg border-t border-[var(--ui-border)]',\n paginationContainerClass,\n )}\n onChange={setPagination}\n />\n )}\n </div>\n )\n}\n\nDataTable.displayName = 'DataTable'\n","import React from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport { HeadingTextProps } from './HeadingText.types'\n\nconst Title: React.FC<HeadingTextProps> = ({ children, className }) => (\n <h1 className={buildClassName('text-3xl font-bold text-[var(--ui-text)]', className)}>\n {children}\n </h1>\n)\n\nconst SubTitle: React.FC<HeadingTextProps> = ({ children, className }) => (\n <h2 className={buildClassName('text-2xl font-semibold text-[var(--ui-text)]', className)}>\n {children}\n </h2>\n)\n\nconst SubTitle2: React.FC<HeadingTextProps> = ({ children, className }) => (\n <h3 className={buildClassName('text-xl font-semibold text-[var(--ui-text)]', className)}>\n {children}\n </h3>\n)\n\nconst SubTitle3: React.FC<HeadingTextProps> = ({ children, className }) => (\n <h4 className={buildClassName('text-lg font-medium text-[var(--ui-text)]', className)}>\n {children}\n </h4>\n)\n\nconst SubTitle4: React.FC<HeadingTextProps> = ({ children, className }) => (\n <h5 className={buildClassName('text-base font-medium text-[var(--ui-text)]', className)}>\n {children}\n </h5>\n)\n\nexport const HeadingText = {\n Title,\n SubTitle,\n SubTitle2,\n SubTitle3,\n SubTitle4,\n}\n","import { forwardRef } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\nimport { HeadingText } from '../HeadingText'\nimport { DetailedInformationProps } from './DetailedInformation.types'\n\nexport const DetailedInformation = forwardRef<HTMLDivElement, DetailedInformationProps>(\n (props, ref) => {\n const {\n className,\n title,\n subTitle,\n details,\n compact = false,\n divider = true,\n titleClass,\n detailsClass,\n bordered = false,\n ...divProps\n } = props\n\n const hasTitles = title || subTitle\n const filteredDetails = details.filter((detail) => !detail.hidden)\n return (\n <div\n className={buildClassName(\n 'p-2 md:p-4',\n compact ? 'md:p-2' : '',\n bordered ? 'border border-[var(--ui-border)]' : '',\n className,\n )}\n ref={ref}\n {...divProps}\n >\n {hasTitles && (\n <div className=\"px-4 sm:px-0 pt-2 sm:pt-0 mb-2\">\n {title && (\n <HeadingText.SubTitle2 className={buildClassName(titleClass)}>\n {title}\n </HeadingText.SubTitle2>\n )}\n {subTitle && (\n <p className=\"mt-1 max-w-2xl text-sm/6 text-gray-500 dark:text-gray-300\">\n {subTitle}\n </p>\n )}\n </div>\n )}\n {filteredDetails.length ? (\n <div\n className={buildClassName(\n 'border-[var(--ui-border-muted)]',\n hasTitles && 'border-t',\n detailsClass,\n )}\n >\n <dl className={buildClassName(divider && 'divide-y divide-[var(--ui-border-muted)]')}>\n {filteredDetails.map((detail) => (\n <div\n key={detail.label}\n className={buildClassName(\n 'px-4 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-0 items-center',\n compact ? 'py-1.5' : 'py-2.5',\n )}\n >\n <dt className=\"text-sm/6 font-medium text-gray-900 dark:text-gray-100\">\n {detail.label}\n </dt>\n <dd\n className={buildClassName(\n 'mt-1 text-sm/6 text-gray-700 dark:text-gray-300 sm:col-span-2 sm:mt-0',\n detail.contentClass,\n )}\n >\n {detail.value || '- -'}\n </dd>\n </div>\n ))}\n </dl>\n </div>\n ) : null}\n </div>\n )\n },\n)\n\nDetailedInformation.displayName = 'DetailedInformation'\n","import React, { type HTMLAttributes, type JSX, type JSXElementConstructor } from 'react'\nimport { buildClassName } from '../../utils/build-classname'\n\nexport const Dot: React.FC<\n HTMLAttributes<HTMLElement> & {\n as?: keyof JSX.IntrinsicElements | JSXElementConstructor<any>\n }\n> = ({ as = 'span', className, ...props }) =>\n React.createElement(as, {\n className: buildClassName(\n 'inline-block rounded-full bg-gray-500 dark:bg-gray-300',\n 'w-1 h-1',\n className,\n ),\n ...props,\n })\n","import React from 'react'\nimport { Dialog, DialogBackdrop, DialogPanel, DialogTitle } from '@headlessui/react'\nimport { buildClassName } from '../../utils/build-classname'\nimport { Button } from '../Button'\nimport ChevronLeftIcon from '../Icons/ChevronLeft.svg'\nimport type { DrawerProps, AlignmentMap, SizeMap } from './Drawer.types'\n\nconst alignmentMap: AlignmentMap = {\n center: 'items-center justify-center h-full',\n start: 'justify-start h-full',\n end: 'justify-end h-full',\n top: 'items-center justify-center',\n bottom: 'items-end justify-center h-full',\n}\n\nconst panelAlignmentMap: AlignmentMap = {\n center: 'data-[closed]:scale-95 rounded-lg',\n start: 'data-[closed]:-translate-x-1/2 rounded-r-lg',\n end: 'data-[closed]:translate-x-1/2 rounded-l-lg',\n top: 'data-[closed]:-translate-y-1/2 rounded-b-lg',\n bottom: 'data-[closed]:translate-y-1/2 rounded-t-lg',\n}\n\nconst panelSizeMap: SizeMap = {\n xs: 'max-w-xs',\n sm: 'max-w-sm',\n md: 'max-w-md',\n lg: 'max-w-lg',\n xl: 'max-w-xl',\n '2xl': 'max-w-2xl',\n full: 'w-full',\n}\n\nexport const Drawer: React.FC<DrawerProps> = ({\n isOpen,\n onClose = () => {},\n align = 'end',\n size = 'md',\n backdrop = true,\n title,\n description,\n children,\n panelClass = '',\n contentClass = '',\n titleClass = '',\n descriptionClass = '',\n titleSticky = false,\n showBackButton = false,\n}) => {\n const showTitleSection = Boolean(title || description)\n\n return (\n <Dialog\n open={isOpen}\n as=\"div\"\n className=\"relative z-50 focus:outline-none\"\n onClose={onClose}\n transition\n >\n {backdrop && <DialogBackdrop className=\"fixed inset-0 bg-black/20 transition-opacity\" />}\n\n <div className=\"fixed inset-0 w-screen h-screen\">\n <div className={buildClassName('flex', alignmentMap[align])}>\n <DialogPanel\n transition\n className={buildClassName(\n 'w-full bg-white dark:bg-gray-800 backdrop-blur-2xl shadow-sm',\n 'overflow-y-auto space-y-4 duration-200 ease-out data-[closed]:opacity-0',\n panelAlignmentMap[align],\n panelSizeMap[size],\n panelClass,\n )}\n >\n {showTitleSection && (\n <div\n className={buildClassName(\n 'space-y-2 pt-2 md:pt-4 px-4 md:px-6',\n titleSticky && 'sticky top-0 bg-white dark:bg-gray-800 z-10',\n )}\n >\n <DialogTitle\n as=\"h3\"\n className={buildClassName(\n 'text-lg font-medium dark:text-white flex items-center gap-2',\n titleClass,\n )}\n >\n {showBackButton && (\n <Button\n iconOnly\n aria-label=\"Close drawer\"\n variant=\"plain\"\n theme=\"secondary\"\n size=\"sm\"\n onClick={onClose}\n >\n <ChevronLeftIcon className=\"size-5\" />\n </Button>\n )}\n {title}\n </DialogTitle>\n\n {description && (\n <p className={buildClassName('text-sm dark:text-white/60', descriptionClass)}>\n {description}\n </p>\n )}\n </div>\n )}\n\n <div className={contentClass}>{children}</div>\n </DialogPanel>\n </div>\n </div>\n </Dialog>\n )\n}\n\nDrawer.displayName = 'Drawer'\n","import React, { Fragment } from 'react'\nimport { Menu, MenuButton, MenuItem, MenuItems } from '@headlessui/react'\nimport { buildClassName } from '../../utils/build-classname'\nimport type { DropdownProps, DropdownItem } from './Dropdown.types'\n\nconst BASE_ITEM_CLASS =\n 'flex w-full px-3 py-2 cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-700 rounded-lg'\n\nexport const Dropdown: React.FC<DropdownProps> = ({\n triggerButton,\n renderTriggerButton,\n items,\n renderItem,\n itemsContainerClass,\n transition = true,\n anchor = 'bottom start',\n menuItemClass,\n onMenuClick,\n}) => {\n return (\n <Menu as=\"div\" className=\"relative inline-block\">\n {/* Trigger */}\n {renderTriggerButton ? (\n <MenuButton as={Fragment}>\n {(state) => renderTriggerButton(state) as React.ReactElement}\n </MenuButton>\n ) : (\n <MenuButton as={Fragment}>{triggerButton}</MenuButton>\n )}\n\n {/* Dropdown Panel */}\n <MenuItems\n transition={transition}\n anchor={anchor}\n className={buildClassName(\n 'w-52 origin-top-right rounded-xl shadow-sm p-1 text-sm transition duration-100 ease-out',\n 'border border-[var(--ui-border-muted)] bg-white text-gray-800',\n 'dark:bg-gray-800 dark:text-gray-200',\n 'focus:outline-none data-[closed]:scale-95 data-[closed]:opacity-0',\n '[--anchor-gap:--spacing(1)]',\n itemsContainerClass,\n )}\n data-testid=\"dropdown-items\"\n as=\"ul\"\n >\n {items.map((item: DropdownItem, idx: number) => (\n <Fragment key={item.id}>\n <MenuItem as=\"li\" disabled={item.disabled}>\n {({ disabled }) => (\n <div\n onClick={() => !disabled && onMenuClick?.(item, idx)}\n className={buildClassName(\n BASE_ITEM_CLASS,\n menuItemClass,\n disabled && 'cursor-not-allowed opacity-70',\n )}\n data-testid={`dropdown-item-${item.id}`}\n >\n {renderItem ? renderItem(item) : item.label}\n </div>\n )}\n </MenuItem>\n {item.divider && (\n <li\n key={item.id}\n className=\"my-1 h-px bg-gray-200 dark:bg-white/5\"\n data-testid=\"dropdown-divider\"\n />\n )}\n </Fragment>\n ))}\n </MenuItems>\n </Menu>\n )\n}\n\nDropdown.displayName = 'Dropdown'\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-folder-plus-icon lucide-folder-plus\"><path d=\"M12 10v6\"/><path d=\"M9 13h6\"/><path d=\"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z\"/></svg>","import React, { type ReactNode } from 'react'\nimport FolderPlusIcon from '../Icons/FolderPlus.svg'\nimport { HeadingText } from '../HeadingText'\nimport { BodyText } from '../BodyText'\nimport { buildClassName } from '../../utils/build-classname'\n\nexport interface EmptyStateProps {\n title: string\n description?: string\n action?: ReactNode\n className?: string\n}\n\nexport const EmptyState: React.FC<EmptyStateProps> = ({\n title,\n description,\n className,\n action = null,\n}) => {\n return (\n <div className={buildClassName('w-full flex justify-center px-4 pt-16', className)}>\n <div className=\"max-w-md flex flex-col items-center gap-4\">\n <FolderPlusIcon className=\"size-8 text-[var(--ui-text)]\" />\n <HeadingText.SubTitle>{title}</HeadingText.SubTitle>\n {description && (\n <BodyText as=\"p\" className=\"text-center\" muted small>\n {description}\n </BodyText>\n )}\n {action}\n </div>\n </div>\n )\n}\n","import { forwardRef } from 'react'\nimport { Label } from '../Label'\nimport { buildClassName } from '../../utils/build-classname'\nimport { InputProps } from './Input.types'\nimport { TextContent } from '../TextContent'\n\nexport function buildInputClass(\n className?: string,\n { isFocusWithin = false, disabled = false }: { isFocusWithin?: boolean; disabled?: boolean } = {},\n) {\n return buildClassName(\n 'transition-all',\n 'block w-full rounded-lg bg-white px-3.5 py-2 text-base sm:text-sm/6',\n 'text-gray-900 outline outline-1 -outline-offset-1',\n 'outline-gray-300 dark:outline-gray-600',\n 'invalid:group-[.has-error]:outline-red-500',\n disabled\n ? 'pointer-events-none bg-gray-100 dark:bg-gray-800 dark:text-gray-600 dark:placeholder-gray-600 placeholder-gray-400 outline-gray-200 dark:outline-gray-700'\n : 'bg-white dark:bg-gray-700 dark:text-white outline-gray-300 dark:outline-gray-600 dark:placeholder-gray-400 placeholder-gray-400',\n isFocusWithin\n ? 'focus-within:outline-[var(--ui-focus-ring)] focus-within:outline-2 focus-within:-outline-offset-2'\n : 'focus:outline-[var(--ui-focus-ring)] focus:outline-2 focus:-outline-offset-2',\n className,\n )\n}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>((props, ref) => {\n const {\n name,\n id = name,\n type,\n label,\n labelHint,\n className,\n labelClass,\n labelWrapperClass,\n containerClass,\n error,\n showErrorMessage = true,\n rightGroup,\n leftGroup,\n ...inputProps\n } = props\n const hasError = Boolean(error)\n const hasRightGroup = rightGroup !== null && rightGroup !== undefined\n const hasLeftGroup = leftGroup != null && leftGroup !== undefined\n\n return (\n <div className={buildClassName('group', hasError && 'has-error', containerClass)}>\n {label && (\n <div\n className={buildClassName('flex items-center justify-between mb-2', labelWrapperClass)}\n >\n <Label className={labelClass} htmlFor={id}>\n {label}\n </Label>\n <TextContent xsmall>{labelHint}</TextContent>\n </div>\n )}\n <div className=\"relative\">\n {hasLeftGroup && (\n <span className=\"absolute top-0 h-full flex items-center justify-center w-10\">\n {leftGroup}\n </span>\n )}\n <input\n ref={ref}\n autoComplete=\"off\"\n {...inputProps}\n name={name}\n id={id}\n type={type}\n className={buildClassName(\n buildInputClass(className, { disabled: inputProps.disabled }),\n hasRightGroup ? 'pe-10' : '',\n hasLeftGroup ? 'ps-10' : '',\n )}\n />\n {hasRightGroup && (\n <span className=\"absolute end-0.75 top-0 h-full flex items-center justify-center w-10\">\n {rightGroup}\n </span>\n )}\n </div>\n {showErrorMessage && error && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n})\n\nInput.displayName = 'Input'\n","import { useState } from 'react'\nimport { Input, type InputProps } from '../Input'\nimport { Button } from '../Button'\n\nexport interface PasswordInputProps\n extends Omit<InputProps, 'rightGroup' | 'type' | 'placeholder'> {}\nexport const PASSWORD_TYPE = 'password'\nexport const PASSWORD_PLACEHOLDER = '••••••••••'\n\nexport const PasswordInput: React.FC<PasswordInputProps> = (props) => {\n const { ...inputProps } = props\n const [showPassword, setShowPassword] = useState(false)\n\n return (\n <Input\n {...inputProps}\n type={showPassword ? 'text' : PASSWORD_TYPE}\n placeholder={PASSWORD_PLACEHOLDER}\n rightGroup={\n <Button\n theme=\"secondary\"\n variant=\"plain\"\n size=\"xs\"\n className=\"px-1 mr-1\"\n type=\"button\"\n onClick={() => setShowPassword(() => !showPassword)}\n tabIndex={-1}\n >\n {showPassword ? (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth=\"1.5\"\n stroke=\"currentColor\"\n className=\"size-4\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M3.98 8.223A10.477 10.477 0 0 0 1.934 12C3.226 16.338 7.244 19.5 12 19.5c.993 0 1.953-.138 2.863-.395M6.228 6.228A10.451 10.451 0 0 1 12 4.5c4.756 0 8.773 3.162 10.065 7.498a10.522 10.522 0 0 1-4.293 5.774M6.228 6.228 3 3m3.228 3.228 3.65 3.65m7.894 7.894L21 21m-3.228-3.228-3.65-3.65m0 0a3 3 0 1 0-4.243-4.243m4.242 4.242L9.88 9.88\"\n />\n </svg>\n ) : (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth=\"1.5\"\n stroke=\"currentColor\"\n className=\"size-4\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M2.036 12.322a1.012 1.012 0 0 1 0-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178Z\"\n />\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\"\n />\n </svg>\n )}\n </Button>\n }\n />\n )\n}\n","import { forwardRef, useId } from 'react'\nimport { Label } from '../Label'\nimport { buildClassName } from '../../utils/build-classname'\nimport { RadioProps } from './Radio.types'\nimport { TextContent } from '../TextContent'\n\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>((props, ref) => {\n const {\n id,\n name,\n label,\n labelClass = '',\n wrapperClass = '',\n containerClass = '',\n error,\n disabled = false,\n className = '',\n // RadioButton-only props removed from rest\n ...rest\n } = props\n\n const generatedId = useId()\n const radioId = id ?? name ?? generatedId\n\n return (\n <div className={buildClassName(wrapperClass)}>\n <div className={buildClassName('flex items-center gap-2', containerClass)}>\n <div className=\"grid place-items-center\">\n <input\n ref={ref}\n {...rest}\n id={radioId}\n name={name}\n type=\"radio\"\n disabled={disabled}\n aria-checked={rest.checked}\n className={buildClassName(\n 'peer transition-all col-start-1 row-start-1 appearance-none shrink-0 size-4.5 rounded-full',\n 'border focus:ring-2 focus:ring-offset-2',\n 'checked:border-5 checked:bg-white',\n 'focus:ring-[var(--ui-focus-ring)] dark:focus:ring-offset-gray-800',\n disabled\n ? 'border-gray-200 dark:border-gray-700 bg-gray-100 dark:bg-gray-800 pointer-events-none'\n : buildClassName(\n 'bg-white dark:bg-gray-700 border-gray-300 dark:border-gray-600 hover:border-gray-400 dark:hover:border-gray-500',\n 'checked:border-[var(--ui-primary)] checked:hover:border-[var(--ui-primary)]',\n ),\n className,\n )}\n />\n </div>\n {label && (\n <Label\n htmlFor={radioId}\n className={buildClassName(\n disabled\n ? 'cursor-not-allowed text-gray-400 dark:text-gray-500'\n : 'cursor-pointer text-gray-600 dark:text-gray-300',\n labelClass,\n )}\n >\n {label}\n </Label>\n )}\n </div>\n {error && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n})\n","import React, { useMemo } from 'react'\nimport { Radio } from '../Radio'\nimport { Label } from '../Label'\nimport { buildClassName } from '../../utils/build-classname'\nimport { TextContent } from '../TextContent'\nimport { RadioGroupProps, RadionGroupItem } from './RadioGroup.types'\n\nexport const RadioGroup: React.FC<RadioGroupProps> = (props) => {\n const {\n name,\n label,\n labelClass,\n labelWrapperClass,\n labelHint,\n containerClass,\n options,\n value,\n row,\n error,\n showErrorMessage,\n onChange,\n } = props\n const items = useMemo(\n () =>\n options?.map((option) =>\n typeof option === 'string' ? { label: option, value: option } : option,\n ) ?? [],\n [options],\n )\n\n return (\n <div className={buildClassName(containerClass)}>\n {label && (\n <div\n className={buildClassName('flex items-center justify-between mb-4', labelWrapperClass)}\n >\n <Label className={labelClass}>{label}</Label>\n {labelHint}\n </div>\n )}\n <div\n className={buildClassName(\n 'flex gap-4',\n row ? 'flex-row items-center' : 'flex-col items-start',\n )}\n >\n {items.map((item) => (\n <Radio\n key={item.value}\n name={name}\n id={`${name}-${item.value}`}\n label={item.label}\n value={item.value}\n checked={value === item.value}\n onChange={onChange}\n />\n ))}\n </div>\n {showErrorMessage && error && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport { Radio, RadioGroup } from '@headlessui/react'\nimport { buildClassName } from '../../utils/build-classname'\nimport type { RadioSwitchItem, RadioSwitchProps } from './RadioSwitch.types'\nimport { BodyText } from '../BodyText'\n\n/**\n * GPU-accelerated Radio Switch with perfect highlight alignment.\n * Supports wrapping, icons, descriptions, and dark mode.\n */\nexport const RadioSwitch: React.FC<RadioSwitchProps> = ({\n label,\n items,\n selected,\n onChange,\n wrapperClass,\n switchClass,\n contentClass,\n descriptionClass,\n}) => {\n const containerRef = useRef<HTMLDivElement>(null)\n const [style, setStyle] = useState({ left: 0, top: 0, width: 0, height: 0 })\n\n const getLabel = (i: RadioSwitchItem) => (typeof i === 'string' ? i : i.label)\n\n const getValue = (i: RadioSwitchItem) => (typeof i === 'string' ? i : i.value)\n\n const getDescription = (i: RadioSwitchItem) =>\n typeof i === 'string' ? '' : (i.description ?? '')\n\n /** ---------------------------------------------\n * Update highlight when selected changes\n * ----------------------------------------------*/\n useEffect(() => {\n if (!containerRef.current) return\n\n const buttons = Array.from(\n containerRef.current.querySelectorAll('[data-radio-item]'),\n ) as HTMLElement[]\n\n const el = buttons.find((b) => b.dataset.value === selected)\n if (!el) return\n\n const rect = el.getBoundingClientRect()\n const parentRect = containerRef.current.getBoundingClientRect()\n\n const left = rect.left - parentRect.left\n const top = rect.top - parentRect.top\n\n setStyle({\n left,\n top,\n width: rect.width,\n height: rect.height,\n })\n }, [selected, items])\n\n return (\n <RadioGroup\n value={selected}\n onChange={onChange}\n aria-label={label}\n ref={containerRef}\n className={buildClassName(\n 'relative flex flex-wrap gap-1',\n 'transition-colors duration-200 overflow-hidden',\n wrapperClass,\n )}\n >\n {/* Sliding highlight — GPU optimized */}\n <div\n className={buildClassName(\n 'absolute rounded-md bg-blue-600 dark:bg-blue-500',\n 'transition-transform transition-size duration-300 ease-[cubic-bezier(.25,.8,.25,1)]',\n switchClass,\n )}\n style={{\n transform: `translate(${style.left}px, ${style.top}px)`,\n width: style.width,\n height: style.height,\n }}\n />\n\n {/* Items */}\n {items.map((item) => (\n <Radio\n key={getValue(item)}\n value={getValue(item)}\n data-radio-item\n data-value={getValue(item)}\n className={buildClassName(\n 'relative z-10 cursor-pointer select-none group',\n 'px-4 py-2 rounded-md transition-colors',\n 'text-gray-700 dark:text-gray-300 data-checked:text-white',\n )}\n >\n <div\n className={buildClassName(\n 'flex flex-col items-center justify-center gap-1',\n contentClass,\n )}\n >\n <BodyText\n className={buildClassName(\n 'font-semibold',\n selected === getValue(item) && 'text-white',\n )}\n >\n {getLabel(item)}\n </BodyText>\n\n {getDescription(item) && (\n <BodyText\n className={buildClassName(\n 'text-xs opacity-80',\n descriptionClass,\n selected === getValue(item) && 'text-white',\n )}\n >\n {getDescription(item)}\n </BodyText>\n )}\n </div>\n </Radio>\n ))}\n </RadioGroup>\n )\n}\n","/**\n * Checks if a value is an array.\n * Equivalent to lodash's _.isArray.\n */\nexport function isArray(value: any): value is any[] {\n return Array.isArray(value)\n}\n","import { isArray } from './is-array'\n\n/**\n * Checks if a value is empty.\n * Works for arrays, objects, strings, Maps, and Sets.\n * Equivalent to lodash's _.isEmpty.\n */\nexport function isEmpty(value: any): boolean {\n if (value == null) return true // null or undefined\n\n if (typeof value === 'string' || isArray(value)) {\n return value.length === 0\n }\n\n if (value instanceof Map || value instanceof Set) {\n return value.size === 0\n }\n\n if (typeof value === 'object') {\n return Object.keys(value).length === 0\n }\n\n return false // for numbers, booleans, functions, etc.\n}\n","import { forwardRef } from 'react'\nimport { Label } from '../Label'\nimport { buildClassName } from '../../utils/build-classname'\nimport { isEmpty } from '../../utils/is-empty'\nimport { TextContent } from '../TextContent'\nimport { RangeInputProps } from './RangeInput.types'\n\n// export interface RangeInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {\n// label?: string\n// labelClass?: string\n// labelHint?: React.ReactNode\n// containerClass?: string\n// showValue?: boolean\n// valueSuffix?: string\n// error?: string | null\n// showErrorMessage?: boolean\n// }\n\nexport const RangeInput = forwardRef<HTMLInputElement, RangeInputProps>((props, ref) => {\n const {\n label,\n labelClass = '',\n labelHint = null,\n containerClass = '',\n className = '',\n showValue = true,\n valueSuffix = '',\n error = null,\n showErrorMessage = true,\n id,\n min = 0,\n max = 100,\n value,\n ...inputProps\n } = props\n\n const hasError = !isEmpty(error)\n\n return (\n <div className={buildClassName('group space-y-2', containerClass)}>\n {label && (\n <div className=\"flex items-center justify-between\">\n <Label htmlFor={id} className={labelClass}>\n {label}\n </Label>\n {labelHint}\n </div>\n )}\n\n <div className=\"flex items-center gap-3\">\n <input\n ref={ref}\n type=\"range\"\n id={id}\n min={min}\n max={max}\n value={value}\n {...inputProps}\n className={buildClassName(\n 'w-full h-2 rounded-lg appearance-none cursor-pointer',\n 'bg-gray-200 dark:bg-gray-700',\n 'accent-blue-600', // for WebKit\n '[&::-webkit-slider-thumb]:appearance-none',\n '[&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:w-4',\n '[&::-webkit-slider-thumb]:rounded-full',\n '[&::-webkit-slider-thumb]:bg-blue-600',\n '[&::-moz-range-thumb]:h-4 [&::-moz-range-thumb]:w-4',\n '[&::-moz-range-thumb]:rounded-full',\n '[&::-moz-range-thumb]:bg-blue-600',\n hasError && 'accent-red-600',\n className,\n )}\n />\n\n {showValue && (\n <span className=\"text-sm text-gray-600 dark:text-gray-300 min-w-[3rem] text-right\">\n {value}\n {valueSuffix}\n </span>\n )}\n </div>\n\n {showErrorMessage && hasError && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n})\n","import React, { useEffect, useRef, useState } from 'react'\nimport { Label } from '../Label'\nimport { buildClassName } from '../../utils/build-classname'\nimport { isEmpty } from '../../utils/is-empty'\nimport { RangeSliderProps } from './RangeSlider.types'\nimport { TextContent } from '../TextContent'\n\nexport const RangeSlider: React.FC<RangeSliderProps> = ({\n label,\n labelHint,\n labelClass = '',\n containerClass = '',\n className = '',\n min,\n max,\n valueMin,\n valueMax,\n onChange,\n valueSuffix = '',\n error = null,\n showErrorMessage = true,\n}) => {\n const trackRef = useRef<HTMLDivElement | null>(null)\n\n // Refs for drag logic\n const activeThumbRef = useRef<'min' | 'max' | null>(null)\n\n // State for UI styling\n const [activeThumbState, setActiveThumbState] = useState<'min' | 'max' | null>(null)\n\n // Keep prop values in refs so drag handlers always use latest values (no stale closure)\n const valueMinRef = useRef(valueMin)\n const valueMaxRef = useRef(valueMax)\n const onChangeRef = useRef(onChange)\n valueMinRef.current = valueMin\n valueMaxRef.current = valueMax\n onChangeRef.current = onChange\n\n const hasError = !isEmpty(error)\n const percent = (v: number) => ((v - min) / (max - min)) * 100\n\n // Stable handler references registered on window — these never change identity\n // so removeEventListener always finds the right listener to remove.\n const stablePointerMoveRef = useRef((e: PointerEvent) => {\n if (!trackRef.current || !activeThumbRef.current) return\n const rect = trackRef.current.getBoundingClientRect()\n const x = Math.min(Math.max(e.clientX - rect.left, 0), rect.width)\n const rawVal = min + (x / rect.width) * (max - min)\n if (activeThumbRef.current === 'min') {\n onChangeRef.current(Math.min(rawVal, valueMaxRef.current - 1), valueMaxRef.current)\n } else {\n onChangeRef.current(valueMinRef.current, Math.max(rawVal, valueMinRef.current + 1))\n }\n })\n\n const stablePointerUpRef = useRef(() => {\n activeThumbRef.current = null\n setActiveThumbState(null)\n window.removeEventListener('pointermove', stablePointerMoveRef.current)\n window.removeEventListener('pointerup', stablePointerUpRef.current)\n })\n\n // Remove listeners on unmount in case a drag is in progress\n useEffect(() => {\n const move = stablePointerMoveRef.current\n const up = stablePointerUpRef.current\n return () => {\n window.removeEventListener('pointermove', move)\n window.removeEventListener('pointerup', up)\n }\n }, [])\n\n // ---------------------------------------------\n // Pointer Move (drag)\n // ---------------------------------------------\n const startDrag = (thumb: 'min' | 'max') => (_e: React.PointerEvent) => {\n activeThumbRef.current = thumb\n setActiveThumbState(thumb)\n window.addEventListener('pointermove', stablePointerMoveRef.current)\n window.addEventListener('pointerup', stablePointerUpRef.current)\n }\n\n // ---------------------------------------------\n // Click Track to move closest thumb\n // ---------------------------------------------\n const handleTrackClick = (e: React.MouseEvent) => {\n if (!trackRef.current) return\n\n const rect = trackRef.current.getBoundingClientRect()\n const x = Math.min(Math.max(e.clientX - rect.left, 0), rect.width)\n const rawVal = min + (x / rect.width) * (max - min)\n const pxMin = (percent(valueMin) / 100) * rect.width\n const pxMax = (percent(valueMax) / 100) * rect.width\n\n // If click is left of min thumb → move min thumb\n if (x <= pxMin) {\n onChange(rawVal, valueMax)\n return\n }\n\n // If click is right of max thumb → move max thumb\n if (x >= pxMax) {\n onChange(valueMin, rawVal)\n return\n }\n\n // Else click is between → move closest thumb\n const distMin = Math.abs(rawVal - valueMin)\n const distMax = Math.abs(rawVal - valueMax)\n\n if (distMin < distMax) {\n onChange(rawVal, valueMax)\n } else {\n onChange(valueMin, rawVal)\n }\n }\n\n return (\n <div className={buildClassName('group space-y-2', hasError && 'has-error', containerClass)}>\n {/* Label */}\n {label && (\n <div className=\"flex items-center justify-between mb-1\">\n <Label className={labelClass}>{label}</Label>\n {labelHint}\n </div>\n )}\n\n {/* TRACK */}\n <div\n ref={trackRef}\n onMouseDown={handleTrackClick}\n className=\"relative h-8 select-none w-full\"\n data-testid=\"range-track\"\n >\n {/* Track background */}\n <div className=\"absolute top-1/2 left-0 right-0 h-2 rounded-full bg-gray-200 dark:bg-gray-700 -translate-y-1/2\" />\n\n {/* Highlight active section */}\n <div\n className=\"absolute top-1/2 h-2 bg-blue-600 dark:bg-blue-500 -translate-y-1/2 rounded-full \n transition-all duration-150 ease-out\"\n style={{\n left: `${percent(valueMin)}%`,\n width: `${percent(valueMax) - percent(valueMin)}%`,\n }}\n />\n\n {/* MIN THUMB */}\n <div\n onPointerDown={startDrag('min')}\n className={buildClassName(\n 'absolute top-1/2 -translate-y-1/2 h-5 w-5 rounded-full',\n 'bg-white border-2 border-blue-600 shadow-md cursor-pointer touch-none',\n 'transition-all duration-150 ease-out', // animation\n activeThumbState === 'min' && 'ring-4 ring-blue-200',\n className,\n )}\n style={{\n left: `calc(${percent(valueMin)}% - 10px)`,\n zIndex: activeThumbState === 'min' ? 50 : 30,\n }}\n data-testid=\"thumb-min\"\n />\n\n {/* MAX THUMB */}\n <div\n onPointerDown={startDrag('max')}\n className={buildClassName(\n 'absolute top-1/2 -translate-y-1/2 h-5 w-5 rounded-full',\n 'bg-white border-2 border-blue-600 shadow-md cursor-pointer touch-none',\n 'transition-all duration-150 ease-out', // animation\n activeThumbState === 'max' && 'ring-4 ring-blue-200',\n className,\n )}\n style={{\n left: `calc(${percent(valueMax)}% - 10px)`,\n zIndex: activeThumbState === 'max' ? 50 : 40,\n }}\n data-testid=\"thumb-max\"\n />\n </div>\n\n {/* Numbers */}\n <div className=\"flex justify-between text-sm text-gray-700 dark:text-gray-300\">\n <span>\n {Math.round(valueMin)}\n {valueSuffix}\n </span>\n <span>\n {Math.round(valueMax)}\n {valueSuffix}\n </span>\n </div>\n\n {/* Error message */}\n {showErrorMessage && hasError && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n}\n","import { useCallback, useEffect, useRef, useState } from 'react'\n\nexport const useDebounce = <T,>(value: T, delay: number): T => {\n const [debouncedValue, setDebouncedValue] = useState<T>(value)\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value)\n }, delay)\n\n // Cancel the timeout if value or delay changes\n return () => {\n clearTimeout(handler)\n }\n }, [value, delay])\n\n return debouncedValue\n}\n\nexport const useDebounceFn = (fn: (...args: any[]) => void, ms: number) => {\n const timeout = useRef<any>(null)\n\n useEffect(() => {\n return () => clearTimeout(timeout.current)\n }, [])\n\n return useCallback(\n (...args: any[]) => {\n clearTimeout(timeout.current)\n timeout.current = setTimeout(() => fn(...args), ms)\n },\n [fn, ms],\n )\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-check-icon lucide-check\"><path d=\"M20 6 9 17l-5-5\"/></svg>","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-circle-plus-icon lucide-circle-plus\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M8 12h8\"/><path d=\"M12 8v8\"/></svg>","import {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {\n Combobox,\n ComboboxButton,\n ComboboxInput,\n ComboboxOption,\n ComboboxOptions,\n} from '@headlessui/react'\n\nimport { Label } from '../Label'\nimport { Badge } from '../Badge'\nimport { Loader } from '../Loader'\nimport { TextContent } from '../TextContent'\nimport { Button } from '../Button'\n\nimport { isArray } from '../../utils/is-array'\nimport { buildClassName } from '../../utils/build-classname'\nimport { isEmpty } from '../../utils/is-empty'\nimport { useDebounce } from '../../hooks/use-debounce'\n\nimport CheckIcon from '../Icons/Check.svg'\nimport ChevronDownIcon from '../Icons/ChevronDown.svg'\nimport XIcon from '../Icons/X.svg'\nimport CirclePlusIcon from '../Icons/CirclePlus.svg'\nimport type { BaseOption, SelectBoxProps } from './SelectBox.types'\nimport { buildInputClass } from '../Input'\nimport { BodyText } from '../BodyText'\n\nconst constructInputClass = (disabled: boolean) => buildInputClass('', { disabled })\n\nexport const SelectBox = forwardRef(\n <T extends BaseOption | string = BaseOption>(\n props: SelectBoxProps<T>,\n forwardedRef: React.Ref<HTMLInputElement | HTMLDivElement | null>,\n ) => {\n const {\n labelKey = 'label',\n valueKey = 'value',\n name,\n id = name,\n options,\n selected,\n label = null,\n labelWrapperClass = '',\n labelClass = '',\n labelHint = null,\n disabled = false,\n containerClass = '',\n onChange = () => {},\n placeholder,\n dropdownContainerClass = 'z-20',\n multiple = false,\n maxSelection,\n immediate = true,\n showErrorMessage = true,\n error = null,\n async = false,\n searchable = true,\n required = false,\n allowAdd = false,\n addNewText = 'Create',\n onAdd = () => {},\n allowClear = false,\n modalDropdown = false,\n noOptionsText = 'No options available',\n } = props\n\n const hasError = Boolean(error)\n const [query, setQuery] = useState('')\n const debouncedQuery = useDebounce(query, 500)\n const [optionsLoading, setOptionsLoading] = useState(false)\n const shouldShowTypeToSearch = async && !query && !optionsLoading && options.length === 0\n const inputClass = useMemo(() => constructInputClass(disabled), [disabled])\n const chevronIconClass = buildClassName(\n 'size-4',\n 'stroke-gray-500 group-data-[hover]:stroke-gray-800',\n 'dark:stroke-gray-300 dark:group-data-[hover]:stroke-gray-100',\n disabled && 'dark:stroke-gray-600 stroke-gray-400',\n )\n\n const inputRef = useRef<HTMLInputElement>(null)\n const containerRef = useRef<HTMLDivElement>(null)\n\n // Expose the input element to parent\n useImperativeHandle(forwardedRef, () => inputRef.current!, [inputRef])\n\n const filteredOptions = useMemo(() => {\n if (query === '' || async) return options\n return options.filter((opt) => {\n const label = typeof opt === 'string' ? opt : (opt as BaseOption)[labelKey]\n return label?.toLowerCase().includes(query.toLowerCase())\n })\n }, [options, query, async, labelKey])\n\n const getDisplayValue = useCallback(\n (opt: T) => {\n return typeof opt === 'string' ? opt : opt[labelKey]\n },\n [labelKey],\n )\n\n const getValue = useCallback(\n (opt: T) => {\n return typeof opt === 'string' ? opt : opt[valueKey]\n },\n [valueKey],\n )\n\n const removeSelection = (idx: number) => {\n if (!isArray(selected)) return\n const next = [...selected]\n next.splice(idx, 1)\n onChange(next)\n inputRef.current?.focus()\n }\n\n // A strongly-typed internal handler (what you expect callers to receive)\n const handleOnChangeInternal = useCallback(\n (value: T | T[] | null) => {\n // normal empty value\n if (value === null) {\n onChange(multiple ? ([] as T[]) : null)\n setQuery('')\n return\n }\n\n // enforce maxSelection\n if (multiple && Array.isArray(value) && maxSelection && value.length > maxSelection) {\n // ignore the change\n return\n }\n\n onChange(value as T | T[])\n setQuery('')\n },\n [onChange, multiple, maxSelection],\n )\n\n /**\n * Headless UI typings are overly broad (they include null[] and EnsureArray<T> etc).\n * We therefore pass a wrapper to the Combobox with a cast (only at the call site),\n * while keeping our internal logic strongly typed.\n */\n const comboboxOnChangeWrapper = useCallback(\n (raw: unknown) => {\n // normalize actual runtime shapes Headless UI uses: T | T[] | null\n if (raw === null || raw === undefined) {\n handleOnChangeInternal(null)\n return\n }\n\n if (Array.isArray(raw)) {\n // sometimes union typing suggests arrays of nulls — guard it\n const allNulls = raw.length > 0 && raw.every((v) => v === null)\n if (allNulls) {\n handleOnChangeInternal([] as unknown as T[])\n return\n }\n // cast array to T[]\n handleOnChangeInternal(raw as unknown as T[])\n return\n }\n\n // single value\n handleOnChangeInternal(raw as unknown as T)\n },\n [handleOnChangeInternal],\n )\n\n // support create (allowAdd) as a real ComboboxOption\n const handleAddAndSelect = useCallback(\n async (valueToAdd: string) => {\n try {\n const result = await onAdd(valueToAdd)\n // if the parent returned a new option (string or object), select it\n if (result) {\n // If parent returned raw string or object, call onChange with that\n handleOnChangeInternal(result as unknown as T)\n } else {\n // if parent didn't return anything, select the raw string value\n handleOnChangeInternal(valueToAdd as unknown as T)\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('onAdd handler error', err)\n }\n },\n [onAdd, handleOnChangeInternal],\n )\n\n // Kept in a ref so `handleSearch` stays referentially stable even when the\n // caller passes a non-memoized `onSearch` — otherwise the effect below would\n // re-fire (and re-search) on every render instead of only on query changes.\n const onSearchRef = useRef(props.onSearch)\n useEffect(() => {\n onSearchRef.current = props.onSearch\n }, [props.onSearch])\n\n const handleSearch = useCallback(async (searchString: string) => {\n try {\n setOptionsLoading(true)\n await onSearchRef.current?.(searchString)\n } catch (err) {\n console.error('Error loading options:', err)\n } finally {\n setOptionsLoading(false)\n }\n }, [])\n\n useEffect(() => {\n if (async && debouncedQuery) handleSearch(debouncedQuery)\n }, [debouncedQuery, async, handleSearch])\n\n return (\n <div\n className={buildClassName('group space-y-2', hasError && 'has-error', containerClass)}\n ref={containerRef}\n >\n {label && (\n <div className={buildClassName('flex items-center justify-between', labelWrapperClass)}>\n <Label className={labelClass} htmlFor={id} aria-required={required}>\n {label}\n </Label>\n <TextContent xsmall>{labelHint}</TextContent>\n </div>\n )}\n\n <Combobox\n multiple={multiple}\n immediate={immediate}\n name={name}\n value={selected}\n onChange={comboboxOnChangeWrapper as any}\n onClose={() => setQuery('')}\n disabled={disabled}\n >\n {multiple ? (\n <div\n className={buildClassName(inputClass, 'flex flex-wrap gap-2 peer relative')}\n ref={forwardedRef as any} // ensure parent ref hits a real DOM node\n >\n {isArray(selected) &&\n selected?.length > 0 &&\n selected.map((option, idx) => (\n <Badge\n key={`${getValue(option)}-${idx}`}\n theme=\"secondary\"\n removable={!disabled}\n onRemove={() => removeSelection(idx)}\n >\n {getDisplayValue(option)}\n </Badge>\n ))}\n\n <ComboboxInput\n className=\"outline-none flex-1 dark:placeholder-gray-400 placeholder-gray-400\"\n aria-label={name}\n value={query}\n autoComplete=\"off\"\n placeholder={selected?.length ? '' : placeholder}\n onChange={(e) => setQuery(e.target.value)}\n id={id}\n ref={inputRef}\n onKeyDown={(e) => {\n if (multiple && e.key === 'Backspace' && !query) {\n if (Array.isArray(selected) && selected.length > 0) {\n removeSelection(selected.length - 1)\n }\n }\n }}\n data-testid=\"combobox-input\"\n />\n\n <ComboboxButton\n className=\"group absolute inset-y-0 right-0 px-2.5\"\n data-testid=\"combobox-button\"\n >\n <ChevronDownIcon className={chevronIconClass} />\n </ComboboxButton>\n </div>\n ) : (\n <div className=\"relative\" ref={forwardedRef as any}>\n <ComboboxInput\n aria-label={name}\n displayValue={(option: any) => (option ? getDisplayValue(option) : null)}\n autoComplete=\"off\"\n placeholder={placeholder}\n onChange={(event) => setQuery(event.target.value)}\n className={inputClass}\n disabled={disabled}\n id={id}\n readOnly={!searchable}\n ref={inputRef}\n data-testid=\"combobox-input\"\n />\n\n {allowClear && !isEmpty(selected) && (\n <Button\n size=\"xs\"\n iconOnly\n aria-label=\"Clear selection\"\n theme=\"secondary\"\n variant=\"plain\"\n className=\"group absolute inset-y-0 right-8 h-6 top-2\"\n onClick={() => handleOnChangeInternal(multiple ? ([] as T[]) : null)}\n disabled={disabled}\n data-testid=\"combobox-clear-button\"\n noOutlineOnFocus\n >\n <XIcon className=\"size-4 stroke-gray-500 dark:stroke-gray-300\" />\n </Button>\n )}\n\n <ComboboxButton\n className=\"group absolute inset-y-0 right-0 px-2.5\"\n data-testid=\"combobox-button\"\n >\n <ChevronDownIcon className={chevronIconClass} />\n </ComboboxButton>\n </div>\n )}\n\n <ComboboxOptions\n anchor={{ to: 'bottom', gap: 5 }}\n as=\"div\"\n modal={modalDropdown}\n className={buildClassName(\n 'w-[var(--input-width)] rounded-lg border border-gray-200 dark:border-white/5 bg-white dark:bg-gray-800 p-1 [--anchor-gap:var(--spacing-1)]',\n '[--anchor-max-height:20rem]',\n 'origin-top border transition duration-200 ease-[cubic-bezier(0.4, 0.0, 0.2, 1)] data-[closed]:translate-y-[-15%] data-[closed]:opacity-0',\n dropdownContainerClass,\n )}\n transition\n data-testid=\"combobox-options\"\n >\n {optionsLoading ? (\n <BodyText\n data-testid=\"options-loading\"\n className=\"flex items-center justify-center py-2 px-3 select-none\"\n >\n <Loader size=\"sm\" />\n </BodyText>\n ) : shouldShowTypeToSearch ? (\n <BodyText className=\"flex items-center justify-between py-2 px-3 select-none\">\n Type to search...\n </BodyText>\n ) : (\n <div>\n {filteredOptions.map((option) => (\n <ComboboxOption\n key={getValue(option)}\n disabled={(option as BaseOption).disabled}\n value={option}\n className=\"group rounded-lg py-1.5 px-3 select-none data-[focus]:bg-black/3 dark:data-[focus]:bg-white/10 data-disabled:opacity-50 cursor-pointer data-disabled:pointer-events-none\"\n >\n {/* Wrap the option content in a single element to avoid Fragment ref errors */}\n <div className=\"flex items-center justify-between gap-2 dark:text-white group-data-[selected]:text-blue-600\">\n <span className=\"text-sm/6\">{getDisplayValue(option)}</span>\n <CheckIcon className=\"invisible size-5 dark:stroke-gray-300 group-data-[selected]:visible\" />\n </div>\n </ComboboxOption>\n ))}\n\n {filteredOptions.length === 0 && (\n <div\n data-testid=\"no-result-found\"\n className=\"flex items-center gap-2 py-1.5 px-3 select-none text-gray-500 dark:text-gray-400\"\n >\n {query ? (\n <>\n No results found for <span className=\"font-semibold\">{query}</span>\n </>\n ) : (\n noOptionsText\n )}\n </div>\n )}\n\n {allowAdd && (\n <ComboboxOption\n value={query}\n className=\"group rounded-lg py-1.5 px-3 cursor-pointer text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700\"\n onClick={() => void handleAddAndSelect(query)}\n >\n {/* Single wrapper here too */}\n <div className=\"flex items-center gap-2\">\n <CirclePlusIcon className=\"size-4.5\" />\n <TextContent>\n {addNewText} \"{query}\"\n </TextContent>\n </div>\n </ComboboxOption>\n )}\n </div>\n )}\n </ComboboxOptions>\n </Combobox>\n\n {showErrorMessage && error && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n },\n)\n","import React, { Fragment } from 'react'\nimport { Tab, TabGroup, TabList, TabPanels, TabPanel } from '@headlessui/react'\nimport { buildClassName } from '../../utils/build-classname'\nimport { TabsProps } from './Tabs.types'\n\nexport const Tabs: React.FC<TabsProps> = ({\n tabs,\n defaultIndex = 0,\n selectedIndex,\n onChange,\n variant = 'underline',\n orientation = 'horizontal',\n stretch = false,\n className = '',\n listClass = '',\n panelsClass = '',\n}) => {\n const isVertical = orientation === 'vertical'\n\n return (\n <TabGroup\n defaultIndex={defaultIndex}\n selectedIndex={selectedIndex}\n onChange={onChange}\n vertical={isVertical}\n className={buildClassName(\n isVertical && 'flex gap-4',\n stretch && !isVertical && 'w-full',\n className,\n )}\n >\n <TabList\n className={buildClassName(\n isVertical ? 'flex flex-col gap-1' : 'flex gap-2',\n stretch && !isVertical && 'w-full',\n listClass,\n )}\n >\n {tabs.map((tab, idx) => (\n <Tab key={tab.id ?? idx} disabled={tab.disabled} as={Fragment}>\n {({ selected }) => (\n <button\n disabled={tab.disabled}\n className={buildTabClass({\n selected,\n variant,\n stretch,\n isVertical,\n tabClass: tab.tabClass,\n })}\n >\n {tab.icon && <span className=\"inline-flex shrink-0\">{tab.icon}</span>}\n {tab.label}\n </button>\n )}\n </Tab>\n ))}\n </TabList>\n\n <TabPanels className={buildClassName(isVertical ? 'flex-1' : 'mt-3', panelsClass)}>\n {tabs.map((tab, idx) => (\n <TabPanel\n key={tab.id ?? idx}\n className={\n tab.panelClass !== undefined\n ? tab.panelClass\n : 'rounded-lg bg-white dark:bg-gray-800 p-4 shadow-sm'\n }\n >\n {tab.content}\n </TabPanel>\n ))}\n </TabPanels>\n </TabGroup>\n )\n}\n\nfunction buildTabClass({\n selected,\n variant,\n stretch,\n isVertical,\n tabClass,\n}: {\n selected: boolean\n variant: 'underline' | 'segmented' | 'solid'\n stretch?: boolean\n isVertical?: boolean\n tabClass?: string\n}) {\n const base = buildClassName(\n 'inline-flex items-center gap-1.5 text-sm font-medium transition focus-visible:outline-none',\n 'disabled:opacity-40 disabled:cursor-not-allowed disabled:pointer-events-none',\n stretch && !isVertical && 'flex-1 justify-center',\n )\n\n let variantClass: string\n\n switch (variant) {\n case 'underline':\n variantClass = isVertical\n ? buildClassName(\n 'px-3 py-2 w-full text-left border-l-2',\n selected\n ? 'border-[var(--ui-primary)] text-gray-900 dark:text-white'\n : 'border-transparent text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-white hover:border-gray-300 dark:hover:border-gray-600',\n )\n : buildClassName(\n 'px-3 py-1.5 relative text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-white',\n selected &&\n 'text-gray-900 dark:text-white after:absolute after:z-10 after:left-0 after:right-0 after:-bottom-1 after:h-0.5 after:bg-[var(--ui-primary)]',\n )\n break\n\n case 'segmented':\n variantClass = buildClassName(\n 'px-3 py-1.5 rounded-lg',\n selected\n ? 'bg-[var(--ui-primary)] text-white'\n : 'text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700',\n )\n break\n\n case 'solid':\n variantClass = buildClassName(\n 'px-3 py-1.5 rounded-md',\n selected\n ? 'bg-gray-900 dark:bg-gray-700 text-white'\n : 'bg-gray-200 dark:bg-gray-800 text-gray-700 dark:text-gray-300 hover:bg-gray-300 dark:hover:bg-gray-700',\n )\n break\n }\n\n return buildClassName(base, variantClass, tabClass)\n}\n","import { forwardRef } from 'react'\nimport { Label } from '../Label'\nimport { isEmpty } from '../../utils/is-empty'\nimport { buildClassName } from '../../utils/build-classname'\nimport { TextContent } from '../TextContent'\nimport type { TextareaProps } from './Textarea.types'\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>((props, ref) => {\n const {\n name,\n id = name,\n label = null,\n labelHint = null,\n className = '',\n labelClass = '',\n labelWrapperClass = '',\n containerClass = '',\n error,\n showErrorMessage = true,\n rightGroup = null,\n leftGroup = null,\n ...inputProps\n } = props\n const hasError = !isEmpty(error)\n const hasRightGroup = rightGroup != null && rightGroup !== undefined\n const hasLeftGroup = leftGroup != null && leftGroup !== undefined\n\n return (\n <div className={buildClassName('group', hasError && 'has-error', containerClass)}>\n {label && (\n <div\n className={buildClassName('flex items-center justify-between mb-2', labelWrapperClass)}\n >\n <Label className={labelClass} htmlFor={id}>\n {label}\n </Label>\n <TextContent xsmall>{labelHint}</TextContent>\n </div>\n )}\n <div className=\"relative\">\n {hasLeftGroup && (\n <span className=\"absolute top-0 h-full flex items-center justify-center w-10\">\n {leftGroup}\n </span>\n )}\n <textarea\n ref={ref}\n autoComplete=\"off\"\n {...inputProps}\n name={name}\n id={id}\n className={buildClassName(\n 'transition-all',\n 'block w-full rounded-lg bg-white px-3.5 py-2 text-base sm:text-sm/6',\n 'text-gray-900 outline dark:outline outline-1 -outline-offset-1',\n 'outline-gray-300 dark:outline-gray-600',\n 'focus:outline-blue-600 dark:focus:outline-blue-600 focus:outline-2 focus:-outline-offset-2',\n 'dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-500 placeholder:text-gray-400 dark:text-white',\n 'invalid:group-[.has-error]:outline-red-500',\n 'disabled:pointer-events-none disabled:bg-gray-100',\n 'dark:disabled:bg-gray-500',\n hasRightGroup ? 'pe-10' : '',\n hasLeftGroup ? 'ps-10' : '',\n className,\n )}\n />\n {hasRightGroup && (\n <span className=\"absolute end-0.75 top-0 h-full flex items-center justify-center\">\n {rightGroup}\n </span>\n )}\n </div>\n {showErrorMessage && error && (\n <div className=\"mt-1\">\n <TextContent error small>\n {error}\n </TextContent>\n </div>\n )}\n </div>\n )\n})\n","import React from 'react'\nimport { Transition } from '@headlessui/react'\nimport XIcon from '../Icons/X.svg'\nimport CheckCircle from '../Icons/CircleCheck.svg'\nimport AlertCircle from '../Icons/CircleAlert.svg'\nimport Info from '../Icons/Info.svg'\nimport AlertTriangle from '../Icons/TriangleAlert.svg'\n\nimport { Button } from '../Button'\nimport { TextContent } from '../TextContent'\nimport { buildClassName } from '../../utils/build-classname'\n\nimport { ToastProps } from './Toast.types'\n\n/**\n * Icons for each toast type\n */\nconst iconMap = {\n success: <CheckCircle className=\"size-5 text-[var(--ui-success)]\" />,\n error: <AlertCircle className=\"size-5 text-[var(--ui-danger)]\" />,\n info: <Info className=\"size-5 text-[var(--ui-info)]\" />,\n warning: <AlertTriangle className=\"size-5 text-[var(--ui-warning)]\" />,\n}\n\nconst textColorMap = {\n success: 'text-[var(--ui-success-text)]',\n error: 'text-[var(--ui-danger-text)]',\n info: 'text-[var(--ui-info-text)]',\n warning: 'text-[var(--ui-warning-text)]',\n}\n\nconst borderStyle = {\n success: 'border-t-4 border-[var(--ui-success)]',\n error: 'border-t-4 border-[var(--ui-danger)]',\n info: 'border-t-4 border-[var(--ui-info)]',\n warning: 'border-t-4 border-[var(--ui-warning)]',\n}\n\nexport const Toast: React.FC<ToastProps & { isTop?: boolean }> = ({\n message,\n type,\n onClose,\n className,\n id,\n isTop = true,\n}) => {\n const enterFrom = isTop ? 'opacity-0 -translate-y-3 scale-95' : 'opacity-0 translate-y-3 scale-95'\n const leaveTo = isTop ? 'opacity-0 -translate-y-2 scale-95' : 'opacity-0 translate-y-2 scale-95'\n return (\n <Transition\n appear\n show\n enter=\"transform transition duration-300\"\n enterFrom={enterFrom}\n enterTo=\"opacity-100 translate-y-0 scale-100\"\n leave=\"transition duration-200\"\n leaveFrom=\"opacity-100 translate-y-0 scale-100\"\n leaveTo={leaveTo}\n >\n <div\n role=\"status\"\n className={buildClassName(\n 'flex items-center gap-3 rounded-lg px-4 py-3 shadow-lg min-w-[260px] max-w-sm',\n 'bg-white dark:bg-gray-900 dark:border-gray-700',\n borderStyle[type],\n className,\n )}\n id={id.toString()}\n >\n {/* Icon */}\n <TextContent className={buildClassName(textColorMap[type])}>{iconMap[type]}</TextContent>\n\n {/* Message */}\n <TextContent className=\"flex-1 text-sm font-medium\">{message}</TextContent>\n\n {/* Close button */}\n <Button\n onClick={onClose}\n aria-label=\"Close toast\"\n className=\"opacity-60 hover:opacity-100 transition\"\n iconOnly\n size=\"xs\"\n variant=\"plain\"\n theme=\"secondary\"\n noOutlineOnFocus\n >\n <XIcon className=\"size-4\" />\n </Button>\n </div>\n </Transition>\n )\n}\n","import React, {\n createContext,\n useContext,\n useEffect,\n useState,\n type ReactNode,\n useRef,\n useCallback,\n} from 'react'\nimport { Toast } from './Toast'\nimport type { IToast, ToastContextType, ToastOptions, ToastPlacement } from './Toast.types'\nimport { buildClassName } from '../../utils/build-classname'\n\nconst ToastContext = createContext<ToastContextType | undefined>(undefined)\nlet toastCounter = 0\n\nexport const useToast = (): ToastContextType => {\n const context = useContext(ToastContext)\n if (!context) throw new Error('useToast must be used within ToastProvider')\n return context\n}\n\n// Maximum visible toasts at once\nconst MAX_TOASTS = 5\n\nconst placementClass: Record<ToastPlacement, string> = {\n 'top-right': 'top-10 right-4 items-end',\n 'top-left': 'top-10 left-4 items-start',\n 'top-center': 'top-10 left-1/2 -translate-x-1/2 items-center',\n\n 'bottom-right': 'bottom-10 right-4 items-end',\n 'bottom-left': 'bottom-10 left-4 items-start',\n 'bottom-center': 'bottom-10 left-1/2 -translate-x-1/2 items-center',\n}\n\nexport const ToastProvider: React.FC<{\n children: ReactNode\n placement?: ToastPlacement\n}> = ({ children, placement = 'top-center' }) => {\n const [toasts, setToasts] = useState<IToast[]>([])\n const timeoutRefs = useRef<Map<number, any>>(new Map())\n\n const clearTimer = (id: number) => {\n const timeout = timeoutRefs.current.get(id)\n if (timeout) {\n clearTimeout(timeout)\n timeoutRefs.current.delete(id)\n }\n }\n\n const closeToast = useCallback((id: number) => {\n clearTimer(id)\n setToasts((prev) => prev.filter((t) => t.id !== id))\n }, [])\n\n const scheduleClose = useCallback(\n (toast: IToast) => {\n if (!toast.autoClose) return\n\n clearTimer(toast.id)\n\n const timeout = setTimeout(() => {\n closeToast(toast.id)\n }, toast.duration)\n\n timeoutRefs.current.set(toast.id, timeout)\n },\n [closeToast],\n )\n\n useEffect(() => {\n const refs = timeoutRefs.current\n return () => refs.forEach((id) => clearTimeout(id))\n }, [])\n\n const showToast = useCallback(\n (message: string, options?: ToastOptions) => {\n const id = ++toastCounter\n\n const newToast: IToast = {\n id,\n message,\n type: options?.type ?? 'info',\n duration: options?.duration ?? 3000,\n autoClose: options?.autoClose ?? true,\n pauseOnHover: options?.pauseOnHover ?? true,\n }\n\n setToasts((prev) => {\n const updated = [...prev, newToast]\n if (updated.length > MAX_TOASTS) updated.shift()\n return updated\n })\n\n scheduleClose(newToast)\n },\n [scheduleClose],\n )\n\n return (\n <ToastContext.Provider value={{ showToast, closeToast }}>\n {children}\n\n {/* Toast Container */}\n <div\n className={buildClassName(\n 'fixed z-50 flex flex-col gap-3 pointer-events-none',\n placementClass[placement],\n )}\n >\n {toasts.map((toast, index) => (\n <div\n key={toast.id}\n className=\"pointer-events-auto\"\n onMouseEnter={() => toast.pauseOnHover && clearTimer(toast.id)}\n onMouseLeave={() => toast.pauseOnHover && scheduleClose(toast)}\n >\n <Toast\n {...toast}\n isTop={placement.startsWith('top')}\n onClose={() => closeToast(toast.id)}\n />\n </div>\n ))}\n </div>\n </ToastContext.Provider>\n )\n}\n","import React from 'react'\nimport { ListChildComponentProps } from 'react-window'\nimport { buildClassName } from '../../utils/build-classname'\nimport { get } from '../../utils/get'\nimport type { DataTableColumn, DataTableDensity } from '../DataTable'\nimport { Checkbox } from '../Checkbox'\nimport type { VirtualizedRowProps } from './VirtualizedDataTable.types'\n\nconst DENSITY_CELL_CLASS: Record<DataTableDensity, string> = {\n compact: 'px-2 py-1.5',\n default: 'px-3 py-3',\n spacious: 'px-4 py-4',\n}\n\nexport const VirtualizedRow = ({\n index,\n style,\n data,\n}: ListChildComponentProps<VirtualizedRowProps>) => {\n const {\n items,\n columns,\n gridTemplate,\n onRowClick,\n rowClass,\n density = 'default',\n striped,\n selectable,\n getKey,\n isSelected,\n toggleRow,\n isRowSelectable,\n } = data\n const item = items[index]\n const isStriped = striped && index % 2 === 1\n const key = getKey?.(item, index) ?? index\n const rowSelectable = !isRowSelectable || isRowSelectable(item)\n\n const resolvedRowClass = !rowClass\n ? ''\n : typeof rowClass === 'function'\n ? rowClass(item, index)\n : rowClass\n\n const getCellClass = (col: DataTableColumn): string => {\n if (!col.cellClass) return ''\n if (typeof col.cellClass === 'function') return col.cellClass(item)\n return col.cellClass\n }\n\n const densityCellClass = DENSITY_CELL_CLASS[density]\n\n return (\n <div\n role=\"row\"\n className={buildClassName(\n 'grid border-b border-[var(--ui-border)] bg-white dark:bg-gray-900 group',\n onRowClick && 'cursor-pointer',\n isStriped && 'bg-gray-50 dark:bg-gray-800/40',\n resolvedRowClass,\n )}\n style={{\n ...style,\n display: 'grid',\n gridTemplateColumns: gridTemplate,\n minWidth: 'fit-content',\n }}\n onClick={onRowClick ? () => onRowClick(item, index) : undefined}\n >\n {selectable && (\n <div\n role=\"cell\"\n className={buildClassName(\n 'flex items-center whitespace-nowrap border-r last:border-r-0 border-[var(--ui-border)]',\n densityCellClass,\n isStriped && 'bg-gray-50 dark:bg-gray-800/40',\n )}\n onClick={(e) => e.stopPropagation()}\n >\n <Checkbox\n aria-label=\"Select row\"\n checked={isSelected?.(key) ?? false}\n disabled={!rowSelectable}\n onChange={() => toggleRow?.(key)}\n />\n </div>\n )}\n {columns.map((col: DataTableColumn) => {\n const content = col.render ? col.render(item) : (get(item, col.name) ?? 'Not set')\n\n return (\n <div\n key={col.name}\n role=\"cell\"\n className={buildClassName(\n 'whitespace-nowrap border-r last:border-r-0 border-[var(--ui-border)]',\n densityCellClass,\n col.align === 'center' && 'text-center',\n col.align === 'right' && 'text-right',\n col.sticky === 'left' &&\n 'sticky left-0 z-10 bg-white dark:bg-gray-900 shadow-[2px_0_4px_rgba(0,0,0,0.05)]',\n col.sticky === 'right' &&\n 'sticky right-0 z-10 bg-white dark:bg-gray-900 shadow-[-2px_0_4px_rgba(0,0,0,0.05)]',\n isStriped && 'bg-gray-50 dark:bg-gray-800/40',\n getCellClass(col),\n )}\n >\n {content}\n </div>\n )\n })}\n </div>\n )\n}\n","import React, { useCallback, useEffect, useMemo, useRef } from 'react'\nimport { FixedSizeList as List } from 'react-window'\nimport { buildClassName } from '../../utils/build-classname'\nimport { TextContent } from '../TextContent'\nimport { Checkbox } from '../Checkbox'\nimport { VirtualizedRow } from './VirtualizedRow'\nimport {\n type DataTableColumn,\n type DataTableDensity,\n getSortIcon,\n useRowSelection,\n} from '../DataTable'\nimport type { VirtualizedDataTableProps } from './VirtualizedDataTable.types'\n\nconst SELECTION_COLUMN_WIDTH = '44px'\n\nconst DENSITY_CELL_CLASS: Record<DataTableDensity, string> = {\n compact: 'px-2 py-1.5',\n default: 'px-3 py-3',\n spacious: 'px-4 py-4',\n}\n\nconst columnWidth = (col: DataTableColumn): string => {\n if (!col.width) return '1fr'\n if (typeof col.width === 'number') return `${col.width}px`\n return col.width\n}\n\nexport function VirtualizedDataTable<T extends Record<string, any> = Record<string, any>>({\n items,\n columns,\n sorting = {},\n onSort,\n loading = false,\n emptyMessage = 'No data available',\n containerClass = '',\n wrapperClass = '',\n onRowClick,\n rowClass,\n density = 'default',\n striped = false,\n rowHeight = 48,\n maxHeight = 400,\n overscanCount = 3,\n rowKey = 'id',\n selectable = false,\n selectedRowKeys,\n defaultSelectedRowKeys,\n onSelectionChange,\n isRowSelectable,\n}: VirtualizedDataTableProps<T>) {\n const scrollRef = useRef<any>(null)\n const outerRef = useRef<HTMLDivElement>(null)\n const headerRef = useRef<HTMLDivElement | null>(null)\n\n const getKey = useCallback(\n (item: T, idx: number): string | number => {\n if (typeof rowKey === 'function') return rowKey(item)\n return (item as any)[rowKey] ?? idx\n },\n [rowKey],\n )\n\n const { isSelected, toggleRow, toggleAll, allSelected, someSelected } = useRowSelection({\n items,\n getKey,\n selectedRowKeys,\n defaultSelectedRowKeys,\n onSelectionChange,\n isRowSelectable,\n })\n\n const gridTemplate = useMemo(() => {\n const widths = columns.map((col) => columnWidth(col))\n return selectable ? [SELECTION_COLUMN_WIDTH, ...widths].join(' ') : widths.join(' ')\n }, [columns, selectable])\n\n const densityCellClass = DENSITY_CELL_CLASS[density]\n\n const skeletonRows = Math.max(1, Math.floor(maxHeight / rowHeight))\n\n useEffect(() => {\n const el = outerRef.current\n if (!el) return\n const handler = () => {\n if (headerRef.current) headerRef.current.scrollLeft = el.scrollLeft\n }\n el.addEventListener('scroll', handler)\n return () => el.removeEventListener('scroll', handler)\n }, [])\n\n const handleSort = useCallback(\n (column: DataTableColumn) => {\n if (column.sortable) onSort?.(column as DataTableColumn<T>)\n },\n [onSort],\n )\n\n const itemData = useMemo(\n () => ({\n items,\n columns,\n gridTemplate,\n onRowClick,\n rowClass,\n density,\n striped,\n selectable,\n getKey,\n isSelected,\n toggleRow,\n isRowSelectable,\n }),\n [\n items,\n columns,\n gridTemplate,\n onRowClick,\n rowClass,\n density,\n striped,\n selectable,\n getKey,\n isSelected,\n toggleRow,\n isRowSelectable,\n ],\n )\n\n /* -------------------------------------------------------\n * Header\n * ------------------------------------------------------- */\n const Header = (\n <div ref={headerRef} className=\"overflow-hidden w-full\">\n <div\n className=\"grid bg-gray-50 dark:bg-gray-800 border-b border-[var(--ui-border)]\"\n style={{ gridTemplateColumns: gridTemplate, minWidth: 'fit-content' }}\n >\n {selectable && (\n <div\n role=\"columnheader\"\n className={buildClassName(\n 'flex items-center border-r last:border-r-0 border-[var(--ui-border)]',\n densityCellClass,\n )}\n >\n <Checkbox\n aria-label=\"Select all rows\"\n checked={allSelected}\n ref={(el) => {\n if (el) el.indeterminate = someSelected\n }}\n onChange={toggleAll}\n />\n </div>\n )}\n {columns.map((col) => (\n <div\n key={col.name}\n role=\"columnheader\"\n className={buildClassName(\n 'font-semibold text-sm whitespace-nowrap flex items-center',\n densityCellClass,\n 'border-r last:border-r-0 border-[var(--ui-border)]',\n col.sticky === 'left' &&\n 'sticky left-0 z-20 bg-gray-50 dark:bg-gray-800 shadow-[2px_0_4px_rgba(0,0,0,0.05)]',\n col.sticky === 'right' &&\n 'sticky right-0 z-20 bg-gray-50 dark:bg-gray-800 shadow-[-2px_0_4px_rgba(0,0,0,0.05)]',\n col.headerClass,\n )}\n >\n <TextContent\n role={col.sortable ? 'button' : undefined}\n className={buildClassName(\n col.sortable && 'inline-flex items-center gap-2 cursor-pointer select-none',\n )}\n onClick={() => handleSort(col)}\n >\n {col.label}\n {col.sortable ? getSortIcon(sorting[col.name]) : null}\n </TextContent>\n </div>\n ))}\n </div>\n </div>\n )\n\n const wrapperCls = buildClassName(\n 'rounded-lg border border-[var(--ui-border)] overflow-hidden',\n wrapperClass,\n )\n\n /* -------------------------------------------------------\n * Loading state\n * ------------------------------------------------------- */\n if (loading) {\n return (\n <div className={buildClassName('w-full rounded-lg relative', containerClass)}>\n <div className={wrapperCls}>\n {Header}\n <div style={{ height: maxHeight }} className=\"flex flex-col\">\n {Array.from({ length: skeletonRows }).map((_, idx) => (\n <div\n key={idx}\n data-testid=\"skeleton-row\"\n className=\"grid animate-pulse bg-white dark:bg-gray-900 border-b border-[var(--ui-border-muted)]\"\n style={{ gridTemplateColumns: gridTemplate, height: rowHeight }}\n >\n {selectable && <div className={densityCellClass} />}\n {columns.map((col) => (\n <div key={col.name} className={densityCellClass}>\n <div className=\"h-4 w-3/4 bg-gray-300 dark:bg-gray-700 rounded\" />\n </div>\n ))}\n </div>\n ))}\n </div>\n </div>\n </div>\n )\n }\n\n /* -------------------------------------------------------\n * Empty state\n * ------------------------------------------------------- */\n if (items.length === 0) {\n return (\n <div className={buildClassName('w-full rounded-lg relative', containerClass)}>\n <div className={wrapperCls}>\n {Header}\n <div\n className=\"flex items-center justify-center text-gray-500 dark:text-gray-300\"\n style={{ height: maxHeight }}\n >\n {emptyMessage}\n </div>\n </div>\n </div>\n )\n }\n\n /* -------------------------------------------------------\n * Virtualized body\n * ------------------------------------------------------- */\n return (\n <div className={buildClassName('w-full rounded-lg relative', containerClass)}>\n <div className={wrapperCls}>\n {Header}\n <List\n ref={scrollRef}\n outerRef={outerRef}\n height={maxHeight}\n width=\"100%\"\n itemCount={items.length}\n itemSize={rowHeight}\n itemData={itemData}\n overscanCount={overscanCount}\n >\n {VirtualizedRow}\n </List>\n </div>\n </div>\n )\n}\n","import { useEffect, useState } from 'react'\n\nexport const useIsMobile = () => {\n const [isMobile, setIsMobile] = useState(false)\n\n useEffect(() => {\n const detect = () => {\n const width = window.innerWidth\n\n const isTouch = navigator.maxTouchPoints > 1 || window.matchMedia('(pointer: coarse)').matches\n\n setIsMobile(width < 600 && isTouch)\n }\n\n detect()\n window.addEventListener('resize', detect)\n return () => window.removeEventListener('resize', detect)\n }, [])\n\n return isMobile\n}\n","import { useEffect, useState } from 'react'\n\nexport const useIsTablet = () => {\n const [isTablet, setIsTablet] = useState(false)\n\n useEffect(() => {\n const detect = () => {\n const width = window.innerWidth\n\n const isTouch = navigator.maxTouchPoints > 1 || window.matchMedia('(pointer: coarse)').matches\n\n setIsTablet(width >= 600 && width <= 1024 && isTouch)\n }\n\n detect()\n window.addEventListener('resize', detect)\n return () => window.removeEventListener('resize', detect)\n }, [])\n\n return isTablet\n}\n","import { useIsMobile } from './use-is-mobile'\nimport { useIsTablet } from './use-is-tablet'\n\nexport const useIsTabletOrMobile = () => {\n const isMobile = useIsMobile()\n const isTablet = useIsTablet()\n\n return isMobile || isTablet\n}\n"],"names":["_path","_extends","_jsx","ChevronDownIcon","_jsxs","_circle","React","BadgeCheckIcon","CircleXIcon","CircleAlertIcon","InfoIcon","TypeClassMap","XIcon","CircleCheckIcon","TriangleAlertIcon","SlashIcon","ChevronLeftIcon","ChevronRightIcon","ArrowDownNarrowWide","ArrowDownAZ","ArrowDownWideNarrow","ArrowDownZA","ArrowUpDown","DENSITY_CELL_CLASS","Fragment","FolderPlusIcon","RadioGroup","Radio","CheckIcon","_Fragment","CirclePlusIcon","CheckCircle","AlertCircle","Info","AlertTriangle","List"],"mappings":";;;;;;;AAEO,MAAM,cAAc,GAAG,CAAC,GAAG,OAAc,KAAK,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;;ACFpF,IAAIA,OAAK;AACT,SAASC,UAAQ,GAAG,EAAE,OAAOA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAEA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AAEnR,IAAI,cAAc,GAAG,SAAS,cAAc,CAAC,KAAK,EAAE;AACpD,EAAE,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,4BAA4B;AACvC,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,cAAc;AAC1B,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,SAAS,EAAE,qDAAqD;AACpE,IAAI,OAAO,EAAE;AACb,GAAG,EAAE,KAAK,CAAC,EAAED,OAAK,KAAKA,OAAK,gBAAgB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACxE,IAAI,CAAC,EAAE;AACP,GAAG,CAAC,CAAC,CAAC;AACN,CAAC;;ACbD,MAAM,eAAe,GAAqC;AACxD,IAAA,QAAQ,EACN,gJAAgJ;AAClJ,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,KAAK,EAAE,+CAA+C;CACvD;AAED,MAAM,UAAU,GAAqC;AACnD,IAAA,QAAQ,EAAE,EAAE;AACZ,IAAA,SAAS,EACP,kGAAkG;AACpG,IAAA,KAAK,EAAE,EAAE;CACV;AAED,MAAM,YAAY,GAChB,yFAAyF;IACzF,2EAA2E;IAC3E,iIAAiI;IACjI,+EAA+E;AAC/E,IAAA,+CAA+C;AAE1C,MAAM,SAAS,GAA6B,CAAC,EAClD,KAAK,EACL,IAAI,GAAG,QAAQ,EACf,OAAO,GAAG,UAAU,EACpB,WAAW,GAAG,IAAI,EAClB,cAAc,EACd,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EACR,UAAU,EACV,SAAS,GAAG,EAAE,EACd,UAAU,GAAG,EAAE,EACf,UAAU,GAAG,EAAE,GAChB,KAAI;AACH,IAAA,MAAM,MAAM,GAAG,KAAK,EAAE;AAEtB,IAAA,MAAM,aAAa,GAAG,OAAO,CAC3B,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI,EAAA,IAAA,EAAA,CAAA,CAAC,QAAC,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,MAAA,IAAI,CAAC,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,KAAK,EAAE,EAAC,EAAA,CAAC,EACrE,CAAC,KAAK,CAAC,CACR;AAED,IAAA,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAC5D,cAAc,KAAA,IAAA,IAAd,cAAc,KAAA,MAAA,GAAd,cAAc,GAAI,EAAE,CACrB;AAED,IAAA,MAAM,YAAY,GAAG,iBAAiB,KAAK,SAAS;IACpD,MAAM,OAAO,GAAG,YAAY,GAAG,iBAAiB,GAAG,mBAAmB;AAEtE,IAAA,MAAM,MAAM,GAAG,CAAC,EAAmB,KAAI;QACrC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;AACnC,QAAA,MAAM,IAAI,GACR,IAAI,KAAK;AACP,cAAE;AACA,kBAAE;AACA,sBAAE;AACF,sBAAE;kBACF,CAAC,EAAE;AACP,cAAE;AACA,kBAAE,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,KAAK,EAAE;AAC1C,kBAAE,CAAC,GAAG,OAAO,EAAE,EAAE,CAAC;QAExB,IAAI,IAAI,KAAK,OAAO;YAAE;AACtB,QAAA,IAAI,CAAC,YAAY;YAAE,sBAAsB,CAAC,IAAI,CAAC;AAC/C,QAAA,QAAQ,aAAR,QAAQ,KAAA,MAAA,GAAA,MAAA,GAAR,QAAQ,CAAG,IAAI,CAAC;AAClB,IAAA,CAAC;AAED,IAAA,MAAM,eAAe,GAAG,CAAC,MAAe,KAAI;QAC1C,IAAI,OAAO,UAAU,KAAK,UAAU;AAAE,YAAA,OAAO,UAAU,CAAC,MAAM,CAAC;AAE/D,QAAA,QACEE,GAAA,CAAA,MAAA,EAAA,EACE,SAAS,EAAE,cAAc,CACvB,wDAAwD,EACxD,MAAM,IAAI,YAAY,CACvB,EAAA,QAAA,EAEA,UAAU,KAAA,IAAA,IAAV,UAAU,KAAA,MAAA,GAAV,UAAU,GAAIA,GAAA,CAACC,cAAe,EAAA,EAAC,SAAS,EAAC,6CAA6C,EAAA,CAAG,EAAA,CACrF;AAEX,IAAA,CAAC;IAED,QACED,aAAK,SAAS,EAAE,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,YAChE,aAAa,CAAC,GAAG,CAAC,CAAC,IAA6C,KAAI;YACnE,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,CAAA,EAAG,MAAM,IAAI,IAAI,CAAC,EAAE,CAAA,OAAA,CAAS;YAC9C,MAAM,OAAO,GAAG,CAAA,EAAG,MAAM,IAAI,IAAI,CAAC,EAAE,CAAA,MAAA,CAAQ;AAE5C,YAAA,QACEE,IAAA,CAAA,KAAA,EAAA,EAAmB,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,EAAA,QAAA,EAAA,CAC/CF,YAAI,SAAS,EAAC,KAAK,EAAA,QAAA,EACjBE,iBACE,IAAI,EAAC,QAAQ,EACb,EAAE,EAAE,QAAQ,EAAA,eAAA,EACG,MAAM,EAAA,eAAA,EACN,OAAO,EACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAC9B,SAAS,EAAE,cAAc,CAAC,YAAY,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,EAAA,QAAA,EAAA,CAEpEA,IAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,yBAAyB,EAAA,QAAA,EAAA,CACtC,IAAI,CAAC,IAAI,IAAIF,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,sBAAsB,YAAE,IAAI,CAAC,IAAI,EAAA,CAAQ,EACtE,IAAI,CAAC,KAAK,IACN,EACN,eAAe,CAAC,MAAM,CAAC,CAAA,EAAA,CACjB,EAAA,CACN,EAELA,GAAA,CAAA,KAAA,EAAA,EACE,EAAE,EAAE,OAAO,EACX,IAAI,EAAC,QAAQ,EAAA,iBAAA,EACI,QAAQ,EACzB,SAAS,EAAE,cAAc,CACvB,+DAA+D,EAC/D,MAAM,GAAG,iBAAiB,GAAG,iBAAiB,CAC/C,EAAA,QAAA,EAEDA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,iBAAiB,EAAA,QAAA,EAC9BA,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,cAAc,CACvB,yDAAyD,EACzD,UAAU,EACV,IAAI,CAAC,UAAU,CAChB,EAAA,QAAA,EAEA,IAAI,CAAC,OAAO,EAAA,CACT,EAAA,CACF,EAAA,CACF,KAvCE,IAAI,CAAC,EAAE,CAwCX;QAEV,CAAC,CAAC,EAAA,CACE;AAEV;AAEA,SAAS,CAAC,WAAW,GAAG,WAAW;;AC7InC,IAAIF,OAAK,EAAE,MAAM;AACjB,SAASC,UAAQ,GAAG,EAAE,OAAOA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAEA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AAEnR,IAAI,aAAa,GAAG,SAAS,aAAa,CAAC,KAAK,EAAE;AAClD,EAAE,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,4BAA4B;AACvC,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,cAAc;AAC1B,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,SAAS,EAAE,mDAAmD;AAClE,IAAI,OAAO,EAAE;AACb,GAAG,EAAE,KAAK,CAAC,EAAED,OAAK,KAAKA,OAAK,gBAAgB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACxE,IAAI,CAAC,EAAE;AACP,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,gBAAgB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACpE,IAAI,CAAC,EAAE;AACP,GAAG,CAAC,CAAC,CAAC;AACN,CAAC;;ACpBD,IAAIK,SAAO,EAAEL,OAAK;AAClB,SAASC,UAAQ,GAAG,EAAE,OAAOA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAEA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AAEnR,IAAI,UAAU,GAAG,SAAS,UAAU,CAAC,KAAK,EAAE;AAC5C,EAAE,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,4BAA4B;AACvC,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,cAAc;AAC1B,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,SAAS,EAAE,6CAA6C;AAC5D,IAAI,OAAO,EAAE;AACb,GAAG,EAAE,KAAK,CAAC,EAAEI,SAAO,KAAKA,SAAO,gBAAgB,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;AAC9E,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,CAAC,EAAE;AACP,GAAG,CAAC,CAAC,EAAEL,OAAK,KAAKA,OAAK,gBAAgB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AAClE,IAAI,CAAC,EAAE;AACP,GAAG,CAAC,CAAC,CAAC;AACN,CAAC;;ACtBD,IAAIK,SAAO,EAAEL,OAAK;AAClB,SAASC,UAAQ,GAAG,EAAE,OAAOA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAEA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AAEnR,IAAI,cAAc,GAAG,SAAS,cAAc,CAAC,KAAK,EAAE;AACpD,EAAE,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,4BAA4B;AACvC,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,cAAc;AAC1B,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,SAAS,EAAE,qDAAqD;AACpE,IAAI,OAAO,EAAE;AACb,GAAG,EAAE,KAAK,CAAC,EAAEI,SAAO,KAAKA,SAAO,gBAAgB,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;AAC9E,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,CAAC,EAAE;AACP,GAAG,CAAC,CAAC,EAAEL,OAAK,KAAKA,OAAK,gBAAgB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AAClE,IAAI,CAAC,EAAE;AACP,GAAG,CAAC,CAAC,CAAC;AACN,CAAC;;ACtBD,IAAIK,SAAO,EAAEL,OAAK;AAClB,SAASC,UAAQ,GAAG,EAAE,OAAOA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAEA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AAEnR,IAAI,OAAO,GAAG,SAAS,OAAO,CAAC,KAAK,EAAE;AACtC,EAAE,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,4BAA4B;AACvC,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,cAAc;AAC1B,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,SAAS,EAAE,qCAAqC;AACpD,IAAI,OAAO,EAAE;AACb,GAAG,EAAE,KAAK,CAAC,EAAEI,SAAO,KAAKA,SAAO,gBAAgB,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;AAC9E,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,CAAC,EAAE;AACP,GAAG,CAAC,CAAC,EAAEL,OAAK,KAAKA,OAAK,gBAAgB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AAClE,IAAI,CAAC,EAAE;AACP,GAAG,CAAC,CAAC,CAAC;AACN,CAAC;;ACtBD,IAAIA,OAAK;AACT,SAASC,UAAQ,GAAG,EAAE,OAAOA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAEA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AAEnR,IAAI,IAAI,GAAG,SAAS,IAAI,CAAC,KAAK,EAAE;AAChC,EAAE,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,4BAA4B;AACvC,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,cAAc;AAC1B,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,SAAS,EAAE,+BAA+B;AAC9C,IAAI,OAAO,EAAE;AACb,GAAG,EAAE,KAAK,CAAC,EAAED,OAAK,KAAKA,OAAK,gBAAgB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACxE,IAAI,CAAC,EAAE;AACP,GAAG,CAAC,CAAC,CAAC;AACN,CAAC;;ACFD,MAAM,aAAa,GAAkB;AACnC,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,SAAS;CACd;AAEM,MAAM,MAAM,GAA0B,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE,KAAI;IACzF,QACEE,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,cAAc,CACvB,+BAA+B,EAC/B,aAAa,CAAC,IAAI,CAAC,EACnB,SAAS,EACT,SAAS,CACV,EACD,OAAO,EAAC,WAAW,EAAA,GACf,KAAK,EAAA,QAAA,EAETA,GAAA,CAAA,QAAA,EAAA,EACE,SAAS,EAAC,MAAM,EAChB,EAAE,EAAC,IAAI,EACP,EAAE,EAAC,IAAI,EACP,CAAC,EAAC,IAAI,EACN,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,aAAa,EAAC,OAAO,EACrB,WAAW,EAAC,GAAG,EAAA,CACf,EAAA,CACE;AAEV;;AC3CO,MAAM,WAAW,GAAG,UAAU,CAAoC,CAAC,KAAK,EAAE,GAAG,KAAI;AACtF,IAAA,MAAM,EACJ,MAAM,GAAG,KAAK,EACd,KAAK,GAAG,KAAK,EACb,MAAM,GAAG,KAAK,EACd,KAAK,GAAG,KAAK,EACb,KAAK,GAAG,KAAK,EACb,SAAS,EACT,GAAG,IAAI,EACR,GAAG,KAAK;AACT,IAAA,OAAOI,cAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACjC,QAAA,GAAG,IAAI;QACP,GAAG;QACH,SAAS,EAAE,cAAc,CACvB,uBAAuB,EACvB,MAAM,IAAI,WAAW,EACrB,KAAK,IAAI,WAAW,EACpB,MAAM,IAAI,eAAe,EACzB,KAAK,IAAI,6BAA6B,EACtC,KAAK,IAAI,8BAA8B,EACvC,SAAS,CACV;AACF,KAAA,CAAC;AACJ,CAAC;AAED,WAAW,CAAC,WAAW,GAAG,aAAa;;ACtBvC;;AAEG;AACH,MAAM,gBAAgB,GAAsB;AAC1C,IAAA,OAAO,EAAE;AACP,QAAA,OAAO,EACL,sJAAsJ;AACxJ,QAAA,QAAQ,EACN,8OAA8O;AAChP,QAAA,KAAK,EACH,yJAAyJ;AAC5J,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,OAAO,EACL,kJAAkJ;AACpJ,QAAA,QAAQ,EACN,wOAAwO;AAC1O,QAAA,KAAK,EACH,sJAAsJ;AACzJ,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,OAAO,EACL,6PAA6P;AAC/P,QAAA,QAAQ,EACN,mPAAmP;AACrP,QAAA,KAAK,EACH,sIAAsI;AACzI,KAAA;CACF;AAED,MAAM,iBAAiB,GAAsB;AAC3C,IAAA,OAAO,EAAE;AACP,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,QAAQ,EAAE,+BAA+B;AACzC,QAAA,KAAK,EAAE,+BAA+B;AACvC,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,QAAQ,EAAE,8BAA8B;AACxC,QAAA,KAAK,EAAE,8BAA8B;AACtC,KAAA;AACD,IAAA,SAAS,EAAE;AACT,QAAA,OAAO,EAAE,+BAA+B;AACxC,QAAA,QAAQ,EAAE,kCAAkC;AAC5C,QAAA,KAAK,EAAE,kCAAkC;AAC1C,KAAA;CACF;AAED;;AAEG;AACH,MAAM,iBAAiB,GAAG,CAAC,IAAgB,EAAE,QAAQ,GAAG,KAAK,KAAI;IAC/D,QAAQ,IAAI;AACV,QAAA,KAAK,IAAI;YACP,OAAO,QAAQ,GAAG,wBAAwB,GAAG,oCAAoC;AAEnF,QAAA,KAAK,IAAI;YACP,OAAO,QAAQ,GAAG,uBAAuB,GAAG,qCAAqC;AAEnF,QAAA,KAAK,IAAI;YACP,OAAO,QAAQ,GAAG,wBAAwB,GAAG,oCAAoC;AAEnF,QAAA,KAAK,IAAI;YACP,OAAO,QAAQ,GAAG,4BAA4B,GAAG,wCAAwC;;AAE/F,CAAC;AAED;;AAEG;AACH,MAAM,cAAc,GAClB,uEAAuE;IACvE,+EAA+E;AAC/E,IAAA,qCAAqC;AAEhC,MAAM,MAAM,GAAG,UAAU,CAC9B,CACE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,KAAK,EAAkB,EACtC,GAAsB,KACpB;IACF,MAAM,EACJ,SAAS,GAAG,EAAE,EACd,QAAQ,EACR,KAAK,GAAG,SAAS,EACjB,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,IAAI,EACX,OAAO,GAAG,KAAK,EACf,WAAW,GAAG,EAAE,EAChB,OAAO,GAAG,KAAK,EACf,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,gBAAgB,GAAG,KAAK,EACxB,GAAG,SAAS,EACb,GAAG,KAAK;AAET,IAAA,MAAM,SAAS,GAAG,EAAE,IAAI,QAAQ;;IAGhC,IAAI,QAAQ,IAAI,CAAE,SAAqC,CAAC,YAAY,CAAC,EAAE;AACrE,QAAA,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC;IAC/E;;AAGA,IAAA,MAAM,gBAAgB,GAAG,QAAQ,IAAI,OAAO;;AAG5C,IAAA,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,SAAS,EAAE,GAAG,SAAS;AAEhF,IAAA,MAAM,mBAAmB,GACvB,SAAS,KAAK;AACZ,UAAE;AACE,YAAA,IAAI,EAAE,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,MAAA,GAAJ,IAAI,GAAI,QAAQ;AACtB,YAAA,QAAQ,EAAE,gBAAgB;AAC3B;UACD,EAAE;AAER;;AAEG;AACH,IAAA,MAAM,OAAO,GAAG,OAAO,CACrB,MACE,cAAc,CACZ,cAAc,EACd,gBAAgB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAChC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,EACjC,CAAC,gBAAgB,IAAI,sDAAsD,EAC3E,OAAO,IAAI,cAAc,EACzB,OAAO,KAAK,SAAS,IAAI,kDAAkD,EAC3E,SAAS,CACV,EACH,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,CAAC,CACvE;AAED;;;AAGG;AACH,IAAA,IAAI,OAAO,IAAI,QAAQ,EAAE;QACvB,QACEJ,GAAA,CAAC,SAAS,EAAA,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAA,GAAM,mBAAmB,EAAA,GAAM,SAAS,EAAA,QAAA,EAC7EA,GAAA,CAAC,MAAM,EAAA,EAAA,aAAA,EAAa,iBAAiB,EAAC,IAAI,EAAC,IAAI,EAAA,CAAG,EAAA,CACxC;IAEhB;AAEA,IAAA,QACEA,GAAA,CAAC,SAAS,EAAA,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAA,GAAM,mBAAmB,KAAM,SAAS,EAAA,QAAA,EAC5E,OAAO,IACNE,eAAM,SAAS,EAAC,yBAAyB,EAAA,WAAA,EAAW,QAAQ,aAC1DF,GAAA,CAAC,MAAM,EAAA,EAAA,aAAA,EACO,iBAAiB,EAC7B,IAAI,EAAC,IAAI,EACT,SAAS,EAAE,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAC5D,EACD,WAAW,KACVA,IAAC,WAAW,EAAA,EAAC,SAAS,EAAE,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,EAAA,QAAA,EACtE,WAAW,GACA,CACf,CAAA,EAAA,CACI,KAEP,QAAQ,CACT,EAAA,CACS;AAEhB,CAAC;AAGH,MAAM,CAAC,WAAW,GAAG,QAAQ;;ACrK7B,MAAM,gBAAgB,GAAG;AACvB,IAAA,OAAO,EAAEK,aAAc;AACvB,IAAA,MAAM,EAAEC,UAAW;AACnB,IAAA,OAAO,EAAEC,cAAe;AACxB,IAAA,IAAI,EAAEC,OAAQ;CACf;AAED,MAAMC,cAAY,GAAG;AACnB,IAAA,OAAO,EACL,iGAAiG;AACnG,IAAA,MAAM,EACJ,8FAA8F;AAChG,IAAA,OAAO,EACL,iGAAiG;AACnG,IAAA,IAAI,EAAE,wFAAwF;CAC/F;AAEM,MAAM,KAAK,GAAG,UAAU,CAA6B,CAAC,KAAK,EAAE,GAAG,KAAI;IACzE,MAAM,EACJ,IAAI,GAAG,MAAM,EACb,SAAS,EACT,OAAO,EACP,QAAQ,EACR,SAAS,GAAG,KAAK,EACjB,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,GAAG,SAAS,EACb,GAAG,KAAK;IAET,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAID,OAAQ;IACtD,MAAM,QAAQ,GACZ,IAAI,KAAK,SAAS,IAChB,IAAI,KAEJR,GAAA,CAAC,WAAW,EAAA,EAAC,SAAS,EAAC,iBAAiB,EAAA,aAAA,EAAc,CAAA,MAAA,EAAS,IAAI,CAAA,KAAA,CAAO,EAAA,CAAI,CAC/E;IAEH,QACEE,IAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,cAAc,CACvB,kFAAkF,EAClFO,cAAY,CAAC,IAAI,CAAC,EAClB,SAAS,CACV,EAAA,GACG,SAAS,EAAA,QAAA,EAAA,CAEbP,IAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,uCAAuC,EAAA,QAAA,EAAA,CACpD,QAAQ,IAAIF,cAAM,SAAS,EAAC,6BAA6B,EAAA,QAAA,EAAE,QAAQ,EAAA,CAAQ,EAC5EE,IAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,sCAAsC,EAAA,QAAA,EAAA,CACnD,KAAK,IAAIF,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,eAAe,EAAA,QAAA,EAAE,KAAK,EAAA,CAAQ,EACxDA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,0BAA0B,EAAA,QAAA,EAAE,OAAO,KAAA,IAAA,IAAP,OAAO,cAAP,OAAO,GAAI,QAAQ,EAAA,CAAQ,CAAA,EAAA,CAClE,CAAA,EAAA,CACF,EACN,SAAS,KACRA,GAAA,CAAC,MAAM,EAAA,EACL,QAAQ,EAAA,IAAA,EAAA,YAAA,EACG,eAAe,EAC1B,IAAI,EAAC,IAAI,EACT,OAAO,EAAC,OAAO,EACf,KAAK,EAAC,WAAW,EACjB,SAAS,EAAC,mDAAmD,EAC7D,OAAO,EAAE,MAAM,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAA,MAAA,GAAA,MAAA,GAAR,QAAQ,EAAI,EAAA,aAAA,EACf,kBAAkB,EAAA,QAAA,EAE9BA,GAAA,CAACU,IAAK,EAAA,EAAC,SAAS,EAAC,UAAU,EAAA,aAAA,EAAa,mBAAmB,EAAA,CAAG,EAAA,CACvD,CACV,CAAA,EAAA,CACG;AAEV,CAAC;AAED,KAAK,CAAC,WAAW,GAAG,OAAO;;AC7E3B,MAAM,aAAa,GAAG;AACpB,IAAA,OAAO,EACL,iGAAiG;AACnG,IAAA,MAAM,EACJ,8FAA8F;AAChG,IAAA,OAAO,EACL,iGAAiG;AACnG,IAAA,IAAI,EAAE,wFAAwF;AAC9F,IAAA,SAAS,EACP,qGAAqG;CACxG;AAED,MAAM,UAAU,GAAG;AACjB,IAAA,EAAE,EAAE,qBAAqB;AACzB,IAAA,EAAE,EAAE,mBAAmB;CACxB;AAEM,MAAM,KAAK,GAAG,UAAU,CAA8B,CAAC,KAAK,EAAE,GAAG,KAAI;AAC1E,IAAA,MAAM,EACJ,KAAK,GAAG,MAAM,EACd,SAAS,EACT,QAAQ,EACR,SAAS,GAAG,KAAK,EACjB,OAAO,GAAG,KAAK,EACf,QAAQ,EACR,IAAI,GAAG,IAAI,EACX,IAAI,EACJ,GAAG,SAAS,EACb,GAAG,KAAK;IAET,QACER,IAAA,CAAC,WAAW,EAAA,EACV,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,cAAc,CACvB,8DAA8D,EAC9D,UAAU,CAAC,IAAI,CAAC,EAChB,aAAa,CAAC,KAAK,CAAC,EACpB,OAAO,GAAG,cAAc,GAAG,YAAY,EACvC,IAAI,GAAG,MAAM,GAAG,EAAE,EAClB,SAAS,GAAG,MAAM,GAAG,EAAE,EACvB,SAAS,CACV,iBACY,CAAA,MAAA,EAAS,KAAK,CAAA,CAAE,EAAA,GACzB,SAAS,EAAA,QAAA,EAAA,CAEZ,IAAI,IAAIF,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,sBAAsB,EAAA,QAAA,EAAE,IAAI,EAAA,CAAQ,EAC5D,QAAQ,EACR,SAAS,KACRA,GAAA,CAACU,IAAK,EAAA,EACJ,SAAS,EAAC,oFAAoF,EAC9F,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,gBACA,QAAQ,EACnB,OAAO,EAAE,MAAM,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAA,MAAA,GAAA,MAAA,GAAR,QAAQ,EAAI,EAC3B,SAAS,EAAE,CAAC,CAAsB,KAAI;AACpC,oBAAA,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE;wBACtC,CAAC,CAAC,cAAc,EAAE;AAClB,wBAAA,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAA,MAAA,GAAA,MAAA,GAAR,QAAQ,EAAI;oBACd;AACF,gBAAA,CAAC,EAAA,CACD,CACH,CAAA,EAAA,CACW;AAElB,CAAC;AAED,KAAK,CAAC,WAAW,GAAG,OAAO;;ACxE3B,IAAIZ,OAAK;AACT,SAASC,UAAQ,GAAG,EAAE,OAAOA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAEA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AAEnR,IAAI,gBAAgB,GAAG,SAAS,gBAAgB,CAAC,KAAK,EAAE;AACxD,EAAE,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,4BAA4B;AACvC,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,cAAc;AAC1B,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,SAAS,EAAE,yDAAyD;AACxE,IAAI,OAAO,EAAE;AACb,GAAG,EAAE,KAAK,CAAC,EAAED,OAAK,KAAKA,OAAK,gBAAgB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACxE,IAAI,CAAC,EAAE;AACP,GAAG,CAAC,CAAC,CAAC;AACN,CAAC;;AClBD,IAAIK,SAAO,EAAEL,OAAK;AAClB,SAASC,UAAQ,GAAG,EAAE,OAAOA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAEA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AAEnR,IAAI,cAAc,GAAG,SAAS,cAAc,CAAC,KAAK,EAAE;AACpD,EAAE,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,4BAA4B;AACvC,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,cAAc;AAC1B,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,SAAS,EAAE,qDAAqD;AACpE,IAAI,OAAO,EAAE;AACb,GAAG,EAAE,KAAK,CAAC,EAAEI,SAAO,KAAKA,SAAO,gBAAgB,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;AAC9E,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,CAAC,EAAE;AACP,GAAG,CAAC,CAAC,EAAEL,OAAK,KAAKA,OAAK,gBAAgB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AAClE,IAAI,CAAC,EAAE;AACP,GAAG,CAAC,CAAC,CAAC;AACN,CAAC;;ACZD,MAAM,OAAO,GAAG;AACd,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,SAAS;CACd;AAED,MAAM,OAAO,GAAG;AACd,IAAA,IAAI,EAAEU,OAAQ;AACd,IAAA,KAAK,EAAEF,UAAW;AAClB,IAAA,OAAO,EAAEK,cAAe;AACxB,IAAA,OAAO,EAAEC,gBAAiB;CAC3B;AAED,MAAM,YAAY,GAAG;AACnB,IAAA,IAAI,EAAE,wFAAwF;AAC9F,IAAA,KAAK,EACH,8FAA8F;AAChG,IAAA,OAAO,EACL,iGAAiG;AACnG,IAAA,OAAO,EACL,iGAAiG;CACpG;AAEM,MAAM,MAAM,GAAG,UAAU,CAA8B,CAAC,KAAK,EAAE,GAAG,KAAI;IAC3E,MAAM,EACJ,IAAI,GAAG,MAAM,EACb,QAAQ,GAAG,IAAI,EACf,QAAQ,EACR,IAAI,EACJ,SAAS,GAAG,KAAK,EACjB,QAAQ,EACR,SAAS,EACT,GAAG,SAAS,EACb,GAAG,KAAK;AAET,IAAA,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;AACjC,IAAA,MAAM,QAAQ,GACZ,IAAI,KAAK,SAAS,IAChB,IAAI,KAEJZ,GAAA,CAAC,WAAW,EAAA,EAAA,aAAA,EACG,CAAA,OAAA,EAAU,IAAI,CAAA,KAAA,CAAO,EAClC,SAAS,EAAE,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAA,CACxD,CACH;AAEH,IAAA,QACEE,IAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,cAAc,CACvB,yEAAyE,EACzE,YAAY,CAAC,IAAI,CAAC,EAClB,SAAS,CACV,EAAA,aAAA,EACY,CAAA,OAAA,EAAU,IAAI,CAAA,CAAE,KACzB,SAAS,EAAA,QAAA,EAAA,CAEZ,QAAQ,EACTF,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,0CAA0C,YAAE,QAAQ,EAAA,CAAO,EACzE,SAAS,KACRA,GAAA,CAAC,MAAM,IACL,QAAQ,EAAA,IAAA,EAAA,YAAA,EACG,gBAAgB,EAC3B,IAAI,EAAC,IAAI,EACT,OAAO,EAAC,OAAO,EACf,KAAK,EAAC,WAAW,EACjB,SAAS,EAAC,mDAAmD,EAC7D,OAAO,EAAE,MAAM,QAAQ,KAAA,IAAA,IAAR,QAAQ,uBAAR,QAAQ,EAAI,iBACf,mBAAmB,EAAA,QAAA,EAE/BA,IAACU,IAAK,EAAA,EAAC,SAAS,EAAC,UAAU,iBAAa,oBAAoB,EAAA,CAAG,GACxD,CACV,CAAA,EAAA,CACG;AAEV,CAAC;AAED,MAAM,CAAC,WAAW,GAAG,QAAQ;;ACrFtB,MAAM,QAAQ,GAAG,UAAU,CAAsC,CAAC,KAAK,EAAE,GAAG,KAAI;AACrF,IAAA,MAAM,EACJ,EAAE,GAAG,GAAG,EACR,KAAK,GAAG,KAAK,EACb,MAAM,GAAG,KAAK,EACd,KAAK,GAAG,KAAK,EACb,KAAK,GAAG,KAAK,EACb,MAAM,GAAG,KAAK,EACd,SAAS,EACT,MAAM,EACN,GAAG,IAAI,EACR,GAAG,KAAK;IACT,MAAM,cAAc,GAAG;AACrB,UAAE;AACF,UAAE;AACA,cAAE;AACA,kBAAE;AACF,kBAAE;AACJ,cAAE;AACA,kBAAE;kBACA,uBAAuB;AAC/B,IAAA,OAAON,cAAK,CAAC,aAAa,CAAC,EAAE,EAAE;AAC7B,QAAA,GAAG,EAAE,GAAG;AACR,QAAA,SAAS,EAAE,cAAc,CACvB,cAAc,EACd,KAAK,IAAI,WAAW,EACpB,MAAM,IAAI,eAAe,EACzB,MAAM,IAAI,gCAAgC,EAC1C,SAAS,CACV;AACD,QAAA,GAAG,IAAI;AACR,KAAA,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,WAAW,GAAG,UAAU;;ACtCjC,IAAIN,OAAK;AACT,SAASC,UAAQ,GAAG,EAAE,OAAOA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAEA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AAEnR,IAAI,QAAQ,GAAG,SAAS,QAAQ,CAAC,KAAK,EAAE;AACxC,EAAE,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,4BAA4B;AACvC,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,cAAc;AAC1B,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,SAAS,EAAE,uCAAuC;AACtD,IAAI,OAAO,EAAE;AACb,GAAG,EAAE,KAAK,CAAC,EAAED,OAAK,KAAKA,OAAK,gBAAgB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACxE,IAAI,CAAC,EAAE;AACP,GAAG,CAAC,CAAC,CAAC;AACN,CAAC;;ACdM,MAAM,UAAU,GAA8B,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAI;AACzE,IAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM;AAC1B,IAAA,MAAM,MAAM,GAAG,CAAC,KAAa,KAAK,KAAK,KAAK,KAAK,GAAG,CAAC;IAErD,QACEE,2BACa,YAAY,EACvB,SAAS,EAAC,mCAAmC,EAAA,aAAA,EACjC,sBAAsB,EAAA,QAAA,EAEjC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,MACrBE,IAAA,CAAA,MAAA,EAAA,EACE,SAAS,EAAC,gDAAgD,EAAA,aAAA,EAE7C,CAAA,gBAAA,EAAmB,IAAI,CAAC,GAAG,EAAE,EAAA,QAAA,EAAA,CAE1CF,GAAA,CAAA,MAAA,EAAA,EACE,SAAS,EAAC,aAAa,EAAA,IAClB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,cAAc,EAAE,MAAe,EAAE,GAAG,EAAE,CAAC,EAAA,QAAA,EAE7D,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,EAAA,CACpC,EACN,CAAC,MAAM,CAAC,KAAK,CAAC,KACbA,GAAA,CAACa,QAAS,mBAAc,CAAA,mBAAA,EAAsB,KAAK,CAAA,CAAE,EAAE,SAAS,EAAC,QAAQ,EAAA,CAAG,CAC7E,CAAA,EAAA,EAXI,IAAI,CAAC,GAAG,CAYR,CACR,CAAC,EAAA,CACE;AAEV;AAEA,UAAU,CAAC,WAAW,GAAG,YAAY;;AC9BrC;;;;;;;;;;AAUG;AACH,MAAM,aAAa,GAGf;AACF,IAAA,UAAU,EAAE;QACV,EAAE,EAAE,EAAE,KAAK,EAAE,6BAA6B,EAAE,IAAI,EAAE,6BAA6B,EAAE;QACjF,EAAE,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE,IAAI,EAAE,0BAA0B,EAAE;QAC3E,EAAE,EAAE,EAAE,KAAK,EAAE,6BAA6B,EAAE,IAAI,EAAE,6BAA6B,EAAE;QACjF,EAAE,EAAE,EAAE,KAAK,EAAE,6BAA6B,EAAE,IAAI,EAAE,6BAA6B,EAAE;AAClF,KAAA;AACD,IAAA,QAAQ,EAAE;QACR,EAAE,EAAE,EAAE,KAAK,EAAE,6BAA6B,EAAE,IAAI,EAAE,6BAA6B,EAAE;QACjF,EAAE,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE,IAAI,EAAE,0BAA0B,EAAE;QAC3E,EAAE,EAAE,EAAE,KAAK,EAAE,6BAA6B,EAAE,IAAI,EAAE,6BAA6B,EAAE;QACjF,EAAE,EAAE,EAAE,KAAK,EAAE,6BAA6B,EAAE,IAAI,EAAE,6BAA6B,EAAE;AAClF,KAAA;CACF;AAED,MAAM,kBAAkB,GAAoE;IAC1F,UAAU,EAAE,EAAE,KAAK,EAAE,+BAA+B,EAAE,IAAI,EAAE,+BAA+B,EAAE;IAC7F,QAAQ,EAAE,EAAE,KAAK,EAAE,+BAA+B,EAAE,IAAI,EAAE,+BAA+B,EAAE;CAC5F;AAED;;;;AAIG;AACH,MAAM,oBAAoB,GAAG,CAAC,EAC5B,KAAK,EACL,KAAK,EACL,IAAI,EACJ,WAAW,EACX,IAAI,GAOL,KAAI;IACH,IAAI,KAAK,IAAI,CAAC;AAAE,QAAA,OAAO,EAAE;IACzB,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,KAAK,GAAG,CAAC;AAAE,QAAA,OAAO,cAAc;AAE7D,IAAA,MAAM,QAAQ,GAAG,KAAK,KAAK,CAAC,GAAG,OAAO,GAAG,MAAM;AAC/C,IAAA,OAAO;AACL,UAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC,QAAQ;UACxC,aAAa,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;AAChD,CAAC;AAEM,MAAM,WAAW,GAA+B,CAAC,EACtD,QAAQ,EACR,WAAW,GAAG,YAAY,EAC1B,KAAK,GAAG,WAAW,EACnB,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,IAAI,EACX,OAAO,GAAG,KAAK,EACf,SAAS,GAAG,KAAK,EACjB,KAAK,EACL,SAAS,GAAG,EAAE,GACf,KAAI;AACH,IAAA,MAAM,UAAU,GAAG,WAAW,KAAK,UAAU;IAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAC1F,IAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM;AAE1B,IAAA,QACEb,GAAA,CAAA,KAAA,EAAA,EACE,IAAI,EAAC,OAAO,EAAA,YAAA,EACA,KAAK,EACjB,SAAS,EAAE,cAAc,CACvB,aAAa,EACb,UAAU,GAAG,UAAU,GAAG,UAAU,EACpC,SAAS,IAAI,aAAa,EAC1B,SAAS,CACV,EAAA,QAAA,EAEA,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAI;;YAC1B,MAAM,SAAS,GAAG,CAAA,EAAA,GAAC,KAAK,CAAC,KAA+B,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,IAAI;YAErE,OAAO,YAAY,CAAC,KAAoD,EAAE;gBACxE,KAAK,EAAE,MAAC,KAAK,CAAC,KAA6B,CAAC,KAAK,mCAAI,KAAK;gBAC1D,OAAO,EAAE,MAAC,KAAK,CAAC,KAA+B,CAAC,OAAO,mCAAI,OAAO;AAClE,gBAAA,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,cAAc,CACtB,KAAK,CAAC,KAAgC,CAAC,SAAS,EACjD,oBAAoB,CAAC;oBACnB,KAAK;oBACL,KAAK;AACL,oBAAA,IAAI,EAAE,SAAS;oBACf,WAAW;AACX,oBAAA,IAAI,EAAE,OAAO;AACd,iBAAA,CAAC,EACF,KAAK,GAAG,CAAC,IAAI;oBACX,+DAA+D;AAC/D,oBAAA,KAAK,GAAG,CAAC,KAAK,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;iBAChD,EACD,SAAS,IAAI,QAAQ,CACtB;AACF,aAAA,CAAC;QACJ,CAAC,CAAC,EAAA,CACE;AAEV;AAEA,WAAW,CAAC,WAAW,GAAG,aAAa;;ACnHvC,MAAM,eAAe,GAAG,4CAA4C;AAE7D,MAAM,IAAI,GAAG,UAAU,CAC5B,CAAgC,EAAE,EAAE,EAAE,GAAG,KAAK,EAAgB,EAAE,GAAsB,KAAI;;IAExF,MAAM,EACJ,SAAS,GAAG,KAAK,EACjB,QAAQ,GAAG,IAAI,EACf,OAAO,GAAG,KAAK,EACf,WAAW,GAAG,KAAK,EACnB,GAAG,IAAI,EACR,GAAG,KAAK;AAET,IAAA,MAAM,SAAS,GAAG,EAAE,IAAI,KAAK;;IAG7B,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,IAA8B;AAElE,IAAA,MAAM,OAAO,GAAG,cAAc,CAC5B,eAAe,EACf,WAAW,GAAG,EAAE,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,EAC1C,SAAS,IAAI,6EAA6E,EAC1F,QAAQ,IAAI,kCAAkC,EAC9C,SAAS,CACV;AAED,IAAA,OAAOA,GAAA,CAAC,SAAS,EAAA,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAA,GAAM,SAAS,GAAI;AACnE,CAAC;AAGH,IAAI,CAAC,WAAW,GAAG,MAAM;;AC5BlB,MAAM,KAAK,GAAG,UAAU,CAA+B,CAAC,KAAK,EAAE,GAAG,KAAI;IAC3E,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK;IACpD,QACEA,eACE,GAAG,EAAE,GAAG,EAAA,GACJ,UAAU,EACd,SAAS,EAAE,cAAc,CACvB,4DAA4D,EAC5D,SAAS,CACV,YAEA,QAAQ,EAAA,CACH;AAEZ,CAAC;AAED,KAAK,CAAC,WAAW,GAAG,OAAO;;ACjBpB,MAAM,QAAQ,GAAG,UAAU,CAAkC,CAAC,KAAK,EAAE,GAAG,KAAI;;IACjF,MAAM,EACJ,EAAE,EACF,IAAI,EACJ,KAAK,EACL,UAAU,GAAG,EAAE,EACf,YAAY,GAAG,EAAE,EACjB,cAAc,GAAG,EAAE,EACnB,KAAK,EACL,QAAQ,GAAG,KAAK,EAChB,SAAS,GAAG,EAAE;;AAEd,IAAA,GAAG,IAAI,EACR,GAAG,KAAK;AAET,IAAA,MAAM,WAAW,GAAG,KAAK,EAAE;AAC3B,IAAA,MAAM,UAAU,GAAG,CAAA,EAAA,GAAA,EAAE,KAAA,IAAA,IAAF,EAAE,KAAA,MAAA,GAAF,EAAE,GAAI,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,WAAW;AAE5C,IAAA,QACEE,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,CAC1CA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,CAAC,mBAAmB,EAAE,cAAc,CAAC,EAAA,QAAA,EAAA,CACjEA,IAAA,CAAA,OAAA,EAAA,EACE,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,cAAc,CACvB,+CAA+C,EAC/C,QAAQ,GAAG,+BAA+B,GAAG,gBAAgB,CAC9D,EAAA,QAAA,EAAA,CAEDF,GAAA,CAAA,OAAA,EAAA,EACE,GAAG,EAAE,GAAG,EAAA,GACJ,IAAI,EACR,EAAE,EAAE,UAAU,EACd,IAAI,EAAE,IAAI,EACV,IAAI,EAAC,UAAU,EACf,QAAQ,EAAE,QAAQ,kBACJ,IAAI,CAAC,OAAO,EAC1B,SAAS,EAAE,cAAc,CACvB,qEAAqE,EACrE,yCAAyC,EACzC,mEAAmE,EACnE,mEAAmE,EACnE;AACE,sCAAE;AACF,sCAAE,iIAAiI,EACrI,SAAS,CACV,EAAA,CACD,EAEFA,GAAA,CAAA,MAAA,EAAA,EACE,SAAS,EAAC,qIACqD,EAAA,QAAA,EAE/DA,GAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAC,4BAA4B,EAClC,SAAS,EAAC,eAAe,EACzB,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,cAAc,EACnB,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EAAA,QAAA,EAEfA,GAAA,CAAA,MAAA,EAAA,EACE,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,oHAAoH,EACtH,QAAQ,EAAC,SAAS,GACZ,EAAA,CACJ,EAAA,CACD,CAAA,EAAA,CACD,EAEP,KAAK,KACJA,GAAA,CAAC,KAAK,EAAA,EACJ,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,cAAc,CACvB;AACE,8BAAE;AACF,8BAAE,iDAAiD,EACrD,kBAAkB,EAClB,UAAU,CACX,EAAA,QAAA,EAEA,KAAK,GACA,CACT,CAAA,EAAA,CACG,EAEL,KAAK,KACJA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,MAAM,EAAA,QAAA,EACnBA,GAAA,CAAC,WAAW,IAAC,KAAK,EAAA,IAAA,EAAC,KAAK,EAAA,IAAA,EAAA,QAAA,EACrB,KAAK,EAAA,CACM,EAAA,CACV,CACP,CAAA,EAAA,CACG;AAEV,CAAC;AAED,QAAQ,CAAC,WAAW,GAAG,UAAU;;AC/F1B,MAAM,aAAa,GAAG,CAAK,KAA4B,KAAI;AAChE,IAAA,MAAM,EACJ,IAAI,EACJ,OAAO,EACP,KAAK,EACL,UAAU,GAAG,EAAE,EACf,iBAAiB,GAAG,EAAE,EACtB,SAAS,EACT,cAAc,GAAG,EAAE,EACnB,KAAK,GAAG,EAAE,EACV,QAAQ,EACR,MAAM,GAAG,KAAK,GACf,GAAG,KAAK;AAET,IAAA,MAAM,OAAO,GAAG,KAAK,EAAE;AAEvB,IAAA,MAAM,KAAK,GAAG,OAAO,CACnB,MACE,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,KACd,OAAO,GAAG,KAAK,QAAQ,GAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAA2B,GAAG,GAAG,CACrF,EACH,CAAC,OAAO,CAAC,CACV;AAED;;;AAGG;AACH,IAAA,MAAM,iBAAiB,GAAG,CAAC,CAAgC,KAAI;AAC7D,QAAA,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK;AAC1B,QAAA,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO;;;QAIhC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC;QAC1D,MAAM,SAAS,GAAG,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,MAAA,GAAA,MAAA,GAAP,OAAO,CAAE,KAAU;AAErC,QAAA,IAAI,OAAY;QAEhB,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,GAAG,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC;QACjC;aAAO;AACL,YAAA,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC;QAChD;QAEA,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAA,MAAA,GAAA,MAAA,GAAR,QAAQ,CAAG,OAAO,EAAE,CAAC,CAAC;AACxB,IAAA,CAAC;AAED,IAAA,QACEE,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,CAAC,gBAAgB,EAAE,cAAc,CAAC,EAAA,QAAA,EAAA,CAC7D,KAAK,KACJA,cAAK,SAAS,EAAE,cAAc,CAAC,mCAAmC,EAAE,iBAAiB,CAAC,aACpFF,GAAA,CAAC,KAAK,EAAA,EAAC,SAAS,EAAE,UAAU,EAAA,QAAA,EAAG,KAAK,EAAA,CAAS,EAC7CA,GAAA,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAA,IAAA,EAAC,KAAK,EAAA,IAAA,EAAA,QAAA,EAClB,SAAS,GACD,CAAA,EAAA,CACP,CACP,EAEDA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,CAAC,EAAA,QAAA,EAC5E,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;oBACzB,MAAM,GAAG,GACP,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK;oBAEvF,QACEA,GAAA,CAAC,QAAQ,EAAA,EAEP,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,CAAA,EAAG,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA,CAAE,EACtC,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EACzB,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EACnC,QAAQ,EAAE,iBAAiB,EAAA,EANtB,GAAG,CAOR;AAEN,gBAAA,CAAC,CAAC,EAAA,CACE,CAAA,EAAA,CACF;AAEV;AAEA,aAAa,CAAC,WAAW,GAAG,eAAe;;AC1E3C,MAAM,UAAU,GAAG;AACjB,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,MAAM,EAAE,aAAa;AACrB,IAAA,KAAK,EAAE,YAAY;CACpB;AAED,MAAM,YAAY,GAAG;AACnB,IAAA,KAAK,EAAE,aAAa;AACpB,IAAA,IAAI,EAAE,YAAY;CACnB;AAED;;AAEoD;AACpD,MAAM,cAAc,GAAkC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MACzEA,0BACG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,MAC7CA,GAAA,CAAC,QAAQ,EAAA,EAAc,SAAS,EAAC,eAAe,EAAA,QAAA,EAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,MAC7CA,GAAA,CAAC,SAAS,cACRA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,uBAAuB,YACpCA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,yDAAyD,EAAA,CAAG,GACvE,EAAA,EAHQ,MAAM,CAIV,CACb,CAAC,IAPW,MAAM,CAQV,CACZ,CAAC,EAAA,CACD,CACJ;AAED;;AAEoD;AAC7C,MAAM,KAAK,GAAyB,CAAC,EAC1C,QAAQ,EACR,MAAM,GAAG,MAAM,EACf,SAAS,GAAG,EAAE,EACd,OAAO,GACR,MACCE,IAAA,CAAA,OAAA,EAAA,EACE,SAAS,EAAE,cAAc,CACvB,2DAA2D,EAC3D,YAAY,CAAC,MAAM,CAAC,EACpB,SAAS,CACV,EAAA,QAAA,EAAA,CAEA,OAAO,KACNF,iBAAS,SAAS,EAAC,yDAAyD,EAAA,QAAA,EACzE,OAAO,EAAA,CACA,CACX,EACA,QAAQ,CAAA,EAAA,CACH;AAGV;;AAEoD;AAC7C,MAAM,SAAS,GAA6B,CAAC,EAAE,QAAQ,EAAE,SAAS,GAAG,EAAE,EAAE,MAC9EA,GAAA,CAAA,OAAA,EAAA,EACE,SAAS,EAAE,cAAc,CACvB,gFAAgF,EAChF,SAAS,CACV,EAAA,QAAA,EAEDA,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAK,QAAQ,EAAA,CAAM,EAAA,CACb;AAGV;;AAEoD;AAC7C,MAAM,SAAS,GAA6B,CAAC,EAClD,QAAQ,EACR,OAAO,EACP,OAAO,GAAG,CAAC,EACX,OAAO,GAAG,CAAC,EACX,SAAS,GACV,MACCA,GAAA,CAAA,OAAA,EAAA,EACE,SAAS,EAAE,cAAc,CACvB,0EAA0E,EAC1E,SAAS,CACV,EAAA,QAAA,EAEA,OAAO,GAAGA,GAAA,CAAC,cAAc,EAAA,EAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAA,CAAI,GAAG,QAAQ,EAAA,CACtE;AAGV;;AAEoD;AAC7C,MAAM,SAAS,GAA6B,CAAC,EAAE,QAAQ,EAAE,MAC9DA,GAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EACEA,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAK,QAAQ,EAAA,CAAM,EAAA,CACb;AAGV;;AAEoD;AAC7C,MAAM,QAAQ,GAA4B,CAAC,EAChD,QAAQ,EACR,SAAS,GAAG,KAAK,EACjB,SAAS,EACT,GAAG,KAAK,EACT,MACCA,GAAA,CAAA,IAAA,EAAA,EAAA,GACM,KAAK,EACT,SAAS,EAAE,cAAc,CACvB,yCAAyC,EACzC,SAAS,IAAI,OAAO,EACpB,SAAS,CACV,YAEA,QAAQ,EAAA,CACN;AAGP;;AAEoD;MACvC,SAAS,GAA6B,CAAC,EAClD,QAAQ,EACR,KAAK,GAAG,MAAM,EACd,SAAS,EACT,GAAG,KAAK,EACT,MACCA,GAAA,CAAA,IAAA,EAAA,EAAA,GACM,KAAK,EACT,SAAS,EAAE,cAAc,CACvB,8GAA8G,EAC9G,UAAU,CAAC,KAAK,CAAC,EACjB,SAAS,CACV,EAAA,QAAA,EAEDA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,gBAAgB,YAAE,QAAQ,EAAA,CAAO,EAAA,CAC7C;AAGA,MAAM,eAAe,GAAmC,CAAC,EAC9D,QAAQ,EACR,KAAK,GAAG,MAAM,EACd,SAAS,EACT,GAAG,KAAK,EACT,MACCA,GAAA,CAAA,IAAA,EAAA,EAAA,GACM,KAAK,EACT,SAAS,EAAE,cAAc,CACvB,kGAAkG,EAClG,UAAU,CAAC,KAAK,CAAC,EACjB,SAAS,CACV,YAEA,QAAQ,EAAA,CACN;AAGP;;AAEoD;MACvC,aAAa,GAAiC,CAAC,EAC1D,QAAQ,EACR,OAAO,GAAG,CAAC,EACX,YAAY,GACb,MACCA,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,2BAA2B,EAAA,QAAA,EACvCA,YAAI,OAAO,EAAE,OAAO,EAAE,SAAS,EAAC,WAAW,EAAA,QAAA,EACzCA,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,cAAc,CACvB,qEAAqE,EACrE,YAAY,CACb,EAAA,QAAA,EAEA,QAAQ,EAAA,CACL,EAAA,CACH,EAAA,CACF;;AC7LA,MAAM,IAAI,GAAG;AAEb,MAAM,aAAa,GAAG,CAAC,EAC5B,UAAU,EACV,WAAW,EACX,YAAY,GAAG,CAAC;AACG,EAAA,KAAyB;AAC5C,IAAA,MAAM,gBAAgB,GAAG,YAAY,GAAG,CAAC,GAAG,CAAC;AAE7C,IAAA,IAAI,gBAAgB,IAAI,UAAU,EAAE;QAClC,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5D;AAEA,IAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,YAAY,EAAE,CAAC,CAAC;AAChE,IAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,YAAY,EAAE,UAAU,CAAC;AAE1E,IAAA,MAAM,kBAAkB,GAAG,gBAAgB,GAAG,CAAC;AAC/C,IAAA,MAAM,mBAAmB,GAAG,iBAAiB,GAAG,UAAU,GAAG,CAAC;IAE9D,MAAM,cAAc,GAAG,CAAC;IACxB,MAAM,aAAa,GAAG,UAAU;AAEhC,IAAA,IAAI,CAAC,kBAAkB,IAAI,mBAAmB,EAAE;QAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,YAAY,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/E,OAAO,CAAC,GAAG,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC;IACzC;AAEA,IAAA,IAAI,kBAAkB,IAAI,CAAC,mBAAmB,EAAE;AAC9C,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAC3B,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,YAAY,EAAE,EAChC,CAAC,CAAC,EAAE,CAAC,KAAK,UAAU,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CACtD;QACD,OAAO,CAAC,cAAc,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;IAC9C;AAEA,IAAA,IAAI,kBAAkB,IAAI,mBAAmB,EAAE;QAC7C,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,YAAY,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,gBAAgB,GAAG,CAAC,CAAC;AAChG,QAAA,OAAO,CAAC,cAAc,EAAE,IAAI,EAAE,GAAG,WAAW,EAAE,IAAI,EAAE,aAAa,CAAC;IACpE;AAEA,IAAA,OAAO,EAAE;AACX;;AC3CA,IAAIF,OAAK;AACT,SAASC,UAAQ,GAAG,EAAE,OAAOA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAEA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AAEnR,IAAI,cAAc,GAAG,SAAS,cAAc,CAAC,KAAK,EAAE;AACpD,EAAE,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,4BAA4B;AACvC,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,cAAc;AAC1B,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,SAAS,EAAE,qDAAqD;AACpE,IAAI,OAAO,EAAE;AACb,GAAG,EAAE,KAAK,CAAC,EAAED,OAAK,KAAKA,OAAK,gBAAgB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACxE,IAAI,CAAC,EAAE;AACP,GAAG,CAAC,CAAC,CAAC;AACN,CAAC;;AClBD,IAAIA,OAAK;AACT,SAASC,UAAQ,GAAG,EAAE,OAAOA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAEA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AAEnR,IAAI,eAAe,GAAG,SAAS,eAAe,CAAC,KAAK,EAAE;AACtD,EAAE,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,4BAA4B;AACvC,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,cAAc;AAC1B,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,SAAS,EAAE,uDAAuD;AACtE,IAAI,OAAO,EAAE;AACb,GAAG,EAAE,KAAK,CAAC,EAAED,OAAK,KAAKA,OAAK,gBAAgB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACxE,IAAI,CAAC,EAAE;AACP,GAAG,CAAC,CAAC,CAAC;AACN,CAAC;;MCVY,UAAU,GAA8B,CAAC,EACpD,IAAI,EAAE,WAAW,EACjB,KAAK,EACL,KAAK,EACL,QAAQ,EACR,SAAS,EACT,QAAQ,GAAG,IAAI;AAChB,EAAA,KAAI;AACH,IAAA,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACjF,IAAA,MAAM,WAAW,GAAG,WAAW,KAAK,CAAC;IACrC,MAAM,UAAU,GAAG,KAAK,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW;AAE9D,IAAA,MAAM,KAAK,GAAG,aAAa,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;AAEtE,IAAA,MAAM,gBAAgB,GAAG,CAAC,OAAe,KAAI;QAC3C,IAAI,OAAO,KAAK,WAAW;YAAE;AAE7B,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC7B,IAAA,CAAC;IAED,IAAI,QAAQ,EAAE;QACZ,QACEI,IAAA,CAAA,KAAA,EAAA,EAAA,aAAA,EACc,sBAAsB,EAClC,SAAS,EAAE,cAAc,CACvB,+EAA+E,EAC/E,SAAS,CACV,aAEDA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,uCAAuC,EAAA,QAAA,EAAA,CACpDA,IAAA,CAAC,MAAM,EAAA,EACL,IAAI,EAAC,IAAI,EACT,KAAK,EAAC,WAAW,EACjB,OAAO,EAAC,OAAO,EACf,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,MAAM,gBAAgB,CAAC,WAAW,GAAG,CAAC,CAAC,EAAA,aAAA,EACpC,0BAA0B,EAAA,QAAA,EAAA,CAEtCF,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,CAAqB,EACrBA,GAAA,CAACc,cAAe,IAAC,SAAS,EAAC,QAAQ,EAAA,CAAG,CAAA,EAAA,CAC/B,EACTZ,KAAC,MAAM,EAAA,EACL,IAAI,EAAC,IAAI,EACT,KAAK,EAAC,WAAW,EACjB,OAAO,EAAC,OAAO,EACf,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,MAAM,gBAAgB,CAAC,WAAW,GAAG,CAAC,CAAC,EAAA,aAAA,EACpC,0BAA0B,EAAA,QAAA,EAAA,CAEtCF,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAiB,EACjBA,GAAA,CAACe,eAAgB,EAAA,EAAC,SAAS,EAAC,QAAQ,EAAA,CAAG,CAAA,EAAA,CAChC,CAAA,EAAA,CACL,EACNb,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,6DAA6D,EAAA,QAAA,EAAA,CAC1EA,IAAA,CAAA,GAAA,EAAA,EAAA,aAAA,EACc,oBAAoB,EAChC,SAAS,EAAC,kEAAkE,EAAA,QAAA,EAAA,CAAA,SAAA,EAG5EF,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,aAAa,EAAA,QAAA,EAC1B,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,KAAK,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,GAC1D,EAAA,IAAA,EAEPA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,aAAa,EAAA,QAAA,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,KAAK,EAAE,KAAK,CAAC,EAAA,CAAQ,EAAA,IAAA,EAE3EA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,aAAa,EAAA,QAAA,EAAE,KAAK,EAAA,CAAQ,EAAA,SAAA,CAAA,EAAA,CAE1C,EACJE,IAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,qCAAqC,EAAA,QAAA,EAAA,CACjDF,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EACEA,GAAA,CAAC,MAAM,IACL,IAAI,EAAC,IAAI,EACT,KAAK,EAAC,WAAW,EACjB,OAAO,EAAC,OAAO,EACf,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,MAAM,gBAAgB,CAAC,WAAW,GAAG,CAAC,CAAC,EAAA,aAAA,EACpC,mBAAmB,EAAA,QAAA,EAAA,MAAA,EAAA,CAGxB,EAAA,CACN,EACJ,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,KAAI;AACvB,oCAAA,IAAI,IAAI,KAAK,IAAI,EAAE;AACjB,wCAAA,QACEA,GAAA,CAAA,IAAA,EAAA,EAAA,aAAA,EAEe,CAAA,KAAA,EAAQ,IAAI,CAAA,CAAE,EAC3B,SAAS,EAAC,yBAAyB,EAAA,QAAA,EAAA,QAAA,EAAA,EAF9B,GAAG,IAAI,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAKlB;oCAET;AACA,oCAAA,QACEA,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EACEA,GAAA,CAAC,MAAM,IACL,IAAI,EAAC,IAAI,EACT,KAAK,EAAE,IAAI,KAAK,WAAW,GAAG,SAAS,GAAG,WAAW,EACrD,OAAO,EAAE,IAAI,KAAK,WAAW,GAAG,SAAS,GAAG,OAAO,EAAA,cAAA,EACrC,IAAI,KAAK,WAAW,GAAG,MAAM,GAAG,SAAS,EACvD,OAAO,EAAE,MAAM,gBAAgB,CAAC,IAAc,CAAC,YAE9C,IAAI,EAAA,CACE,EAAA,EATF,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAUpB;AAET,gCAAA,CAAC,CAAC,EACFA,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EACEA,IAAC,MAAM,EAAA,EACL,IAAI,EAAC,IAAI,EACT,KAAK,EAAC,WAAW,EACjB,OAAO,EAAC,OAAO,EACf,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,MAAM,gBAAgB,CAAC,WAAW,GAAG,CAAC,CAAC,EAAA,aAAA,EACpC,mBAAmB,EAAA,QAAA,EAAA,MAAA,EAAA,CAGxB,EAAA,CACN,IACF,CAAA,EAAA,CACD,CAAA,EAAA,CACF;IAEV;AAEA,IAAA,QACEE,IAAA,CAAA,KAAA,EAAA,EAAA,aAAA,EACc,sBAAsB,EAClC,SAAS,EAAE,cAAc,CACvB,+EAA+E,EAC/E,SAAS,CACV,EAAA,QAAA,EAAA,CAEDA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,uCAAuC,aACpDA,IAAA,CAAC,MAAM,EAAA,EACL,IAAI,EAAC,IAAI,EACT,KAAK,EAAC,WAAW,EACjB,OAAO,EAAC,OAAO,EACf,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,MAAM,gBAAgB,CAAC,WAAW,GAAG,CAAC,CAAC,iBACpC,iBAAiB,EAAA,QAAA,EAAA,CAE7BF,qCAAqB,EACrBA,GAAA,CAACc,cAAe,EAAA,EAAC,SAAS,EAAC,QAAQ,EAAA,CAAG,IAC/B,EACTZ,IAAA,CAAC,MAAM,EAAA,EACL,IAAI,EAAC,IAAI,EACT,KAAK,EAAC,WAAW,EACjB,OAAO,EAAC,OAAO,EACf,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,MAAM,gBAAgB,CAAC,WAAW,GAAG,CAAC,CAAC,EAAA,aAAA,EACpC,iBAAiB,aAE7BF,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAiB,EACjBA,IAACe,eAAgB,EAAA,EAAC,SAAS,EAAC,QAAQ,GAAG,CAAA,EAAA,CAChC,CAAA,EAAA,CACL,EACNb,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,6DAA6D,EAAA,QAAA,EAAA,CAC1EA,IAAA,CAAA,GAAA,EAAA,EAAA,aAAA,EACc,oBAAoB,EAChC,SAAS,EAAC,kEAAkE,EAAA,QAAA,EAAA,CAAA,SAAA,EAG5EF,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,aAAa,YAC1B,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,KAAK,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,EAAA,CAC1D,QAEPA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,aAAa,EAAA,QAAA,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,KAAK,EAAE,KAAK,CAAC,EAAA,CAAQ,QAE3EA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,aAAa,EAAA,QAAA,EAAE,KAAK,EAAA,CAAQ,EAAA,SAAA,CAAA,EAAA,CAE1C,EACJE,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,6CAA6C,EAAA,YAAA,EAAY,YAAY,EAAA,QAAA,EAAA,CAClFA,KAAC,MAAM,EAAA,EACL,IAAI,EAAC,IAAI,EACT,KAAK,EAAC,WAAW,EACjB,OAAO,EAAC,OAAO,EACf,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,MAAM,gBAAgB,CAAC,WAAW,GAAG,CAAC,CAAC,EAAA,aAAA,EACpC,UAAU,EAAA,QAAA,EAAA,CAEtBF,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,SAAS,yBAAgB,EACzCA,GAAA,CAACc,cAAe,EAAA,EAAC,SAAS,EAAC,QAAQ,GAAG,CAAA,EAAA,CAC/B,EACR,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MACdd,GAAA,CAAC,MAAM,IAEL,IAAI,EAAC,IAAI,EACT,KAAK,EAAE,IAAI,KAAK,WAAW,GAAG,SAAS,GAAG,WAAW,EACrD,OAAO,EAAE,IAAI,KAAK,WAAW,GAAG,SAAS,GAAG,OAAO,EAAA,cAAA,EACrC,IAAI,KAAK,WAAW,GAAG,MAAM,GAAG,SAAS,EACvD,OAAO,EAAE,MAAM,gBAAgB,CAAC,IAAI,CAAC,YAErCA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,cAAc,EAAA,QAAA,EAAE,IAAI,EAAA,CAAQ,EAAA,EAPvC,IAAI,CAQF,CACV,CAAC,EACFE,IAAA,CAAC,MAAM,EAAA,EACL,IAAI,EAAC,IAAI,EACT,KAAK,EAAC,WAAW,EACjB,OAAO,EAAC,OAAO,EACf,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,MAAM,gBAAgB,CAAC,WAAW,GAAG,CAAC,CAAC,EAAA,aAAA,EACpC,UAAU,aAEtBF,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,SAAS,EAAA,QAAA,EAAA,MAAA,EAAA,CAAY,EACrCA,GAAA,CAACe,eAAgB,IAAC,SAAS,EAAC,QAAQ,EAAA,CAAG,CAAA,EAAA,CAChC,IACL,CAAA,EAAA,CACF,CAAA,EAAA,CACF;AAEV;;SC3NgB,GAAG,CAAmB,GAAM,EAAE,IAAY,EAAE,YAAgB,EAAA;;AAC1E,IAAA,IAAI,CAAC,IAAI;AAAE,QAAA,OAAO,YAAiB;IAEnC,MAAM,IAAI,GAAG;AACV,SAAA,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC;SAC3B,KAAK,CAAC,GAAG;AACT,SAAA,MAAM,CAAC,OAAO,CAAC,CAAA;IAElB,QACE,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,CAAM,CAAC,GAAG,EAAE,GAAG,KAAI;QAC5B,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;AACvF,YAAA,OAAO,GAAG,CAAC,GAAG,CAAC;QACjB;AACA,QAAA,OAAO,SAAS;AAClB,IAAA,CAAC,EAAE,GAAG,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,YAAY;AAE3B;;ACbA;;;;AAIG;AACI,MAAM,iBAAiB,GAAG,CAC/B,IAAyB,EACzB,IAAA,GAAqC,QAAQ,KACtB;AACvB,IAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;AACrB,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,KAAK;QACvB,IAAI,IAAI,KAAK,KAAK;AAAE,YAAA,OAAO,MAAM;AACjC,QAAA,OAAO,SAAS;IAClB;;AAGA,IAAA,IAAI,CAAC,IAAI;AAAE,QAAA,OAAO,GAAG;IACrB,IAAI,IAAI,KAAK,GAAG;AAAE,QAAA,OAAO,IAAI;AAC7B,IAAA,OAAO,SAAS;AAClB;AAEA;;;AAGG;AACI,MAAM,eAAe,GAAG,CAC7B,SAAoB,EACpB,IAAY,EACZ,IAAA,GAAsB,QAAQ,KACjB;IACb,MAAM,IAAI,GAAG,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;;AAGrD,IAAA,MAAM,OAAO,GAAG,EAAE,GAAG,SAAS,EAAE;AAEhC,IAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAChB,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC;IACtB;SAAO;AACL,QAAA,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IACtB;AAEA,IAAA,OAAO,OAAO;AAChB;AAYA;;;AAGG;MACU,eAAe,GAAG,CAAI,EACjC,KAAK,EACL,MAAM,EACN,eAAe,EACf,sBAAsB,GAAG,EAAE,EAC3B,iBAAiB,EACjB,eAAe,GACW,KAAI;IAC9B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAyB,sBAAsB,CAAC;AAChG,IAAA,MAAM,YAAY,GAAG,eAAe,KAAK,SAAS;IAClD,MAAM,IAAI,GAAG,YAAY,GAAG,eAAe,GAAG,YAAY;AAC1D,IAAA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAEnD,IAAA,MAAM,iBAAiB,GAAG,OAAO,CAC/B,MACE;SACG,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;SACrD,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,eAAe,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,EACpE,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,CAAC,CACjC;AAED,IAAA,MAAM,IAAI,GAAG,WAAW,CACtB,CAAC,QAAgC,KAAI;AACnC,QAAA,IAAI,CAAC,YAAY;YAAE,eAAe,CAAC,QAAQ,CAAC;AAC5C,QAAA,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC;QACpC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QAChF,iBAAiB,KAAA,IAAA,IAAjB,iBAAiB,KAAA,MAAA,GAAA,MAAA,GAAjB,iBAAiB,CAAG,QAAQ,EAAE,SAAS,CAAC;IAC1C,CAAC,EACD,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,CAAC,CACjD;AAED,IAAA,MAAM,SAAS,GAAG,WAAW,CAC3B,CAAC,GAAoB,KAAI;AACvB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;IACxE,CAAC,EACD,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CACrB;IAED,MAAM,WAAW,GACf,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvF,MAAM,YAAY,GAAG,CAAC,WAAW,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEzF,IAAA,MAAM,SAAS,GAAG,WAAW,CAAC,MAAK;AACjC,QAAA,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC;QACzE,IAAI,WAAW,EAAE;AACf,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD;aAAO;AACL,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC3D;IACF,CAAC,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAEhD,OAAO;AACL,QAAA,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,CAAC,GAAoB,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;QACrD,SAAS;QACT,SAAS;QACT,WAAW;QACX,YAAY;KACb;AACH;;ACxHA,IAAIjB,OAAK;AACT,SAASC,UAAQ,GAAG,EAAE,OAAOA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAEA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AAEnR,IAAI,sBAAsB,GAAG,SAAS,sBAAsB,CAAC,KAAK,EAAE;AACpE,EAAE,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,4BAA4B;AACvC,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,cAAc;AAC1B,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,SAAS,EAAE,yEAAyE;AACxF,IAAI,OAAO,EAAE;AACb,GAAG,EAAE,KAAK,CAAC,EAAED,OAAK,KAAKA,OAAK,gBAAgB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACxE,IAAI,CAAC,EAAE;AACP,GAAG,CAAC,CAAC,CAAC;AACN,CAAC;;AClBD,IAAIA,OAAK;AACT,SAASC,UAAQ,GAAG,EAAE,OAAOA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAEA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AAEnR,IAAI,sBAAsB,GAAG,SAAS,sBAAsB,CAAC,KAAK,EAAE;AACpE,EAAE,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,4BAA4B;AACvC,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,cAAc;AAC1B,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,SAAS,EAAE,yEAAyE;AACxF,IAAI,OAAO,EAAE;AACb,GAAG,EAAE,KAAK,CAAC,EAAED,OAAK,KAAKA,OAAK,gBAAgB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACxE,IAAI,CAAC,EAAE;AACP,GAAG,CAAC,CAAC,CAAC;AACN,CAAC;;AClBD,IAAIA,OAAK;AACT,SAASC,UAAQ,GAAG,EAAE,OAAOA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAEA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AAEnR,IAAI,cAAc,GAAG,SAAS,cAAc,CAAC,KAAK,EAAE;AACpD,EAAE,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,4BAA4B;AACvC,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,cAAc;AAC1B,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,SAAS,EAAE,wDAAwD;AACvE,IAAI,OAAO,EAAE;AACb,GAAG,EAAE,KAAK,CAAC,EAAED,OAAK,KAAKA,OAAK,gBAAgB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACxE,IAAI,CAAC,EAAE;AACP,GAAG,CAAC,CAAC,CAAC;AACN,CAAC;;AClBD,IAAIA,OAAK;AACT,SAASC,UAAQ,GAAG,EAAE,OAAOA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAEA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AAEnR,IAAI,cAAc,GAAG,SAAS,cAAc,CAAC,KAAK,EAAE;AACpD,EAAE,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,4BAA4B;AACvC,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,cAAc;AAC1B,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,SAAS,EAAE,wDAAwD;AACvE,IAAI,OAAO,EAAE;AACb,GAAG,EAAE,KAAK,CAAC,EAAED,OAAK,KAAKA,OAAK,gBAAgB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACxE,IAAI,CAAC,EAAE;AACP,GAAG,CAAC,CAAC,CAAC;AACN,CAAC;;AClBD,IAAIA,OAAK;AACT,SAASC,UAAQ,GAAG,EAAE,OAAOA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAEA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AAEnR,IAAI,cAAc,GAAG,SAAS,cAAc,CAAC,KAAK,EAAE;AACpD,EAAE,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,4BAA4B;AACvC,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,cAAc;AAC1B,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,SAAS,EAAE,uDAAuD;AACtE,IAAI,OAAO,EAAE;AACb,GAAG,EAAE,KAAK,CAAC,EAAED,OAAK,KAAKA,OAAK,gBAAgB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACxE,IAAI,CAAC,EAAE;AACP,GAAG,CAAC,CAAC,CAAC;AACN,CAAC;;ACTM,MAAM,WAAW,GAAmC;IACzD,GAAG,GACDE,GAAA,CAACgB,sBAAmB,IAAC,SAAS,EAAC,qFAAqF,EAAA,CAAG,CACxH;IACD,GAAG,GACDhB,GAAA,CAACiB,cAAW,IAAC,SAAS,EAAC,qFAAqF,EAAA,CAAG,CAChH;IACD,IAAI,GACFjB,GAAA,CAACkB,sBAAmB,IAAC,SAAS,EAAC,qFAAqF,EAAA,CAAG,CACxH;IACD,IAAI,GACFlB,GAAA,CAACmB,cAAW,IAAC,SAAS,EAAC,qFAAqF,EAAA,CAAG,CAChH;;AAGI,MAAM,WAAW,GAAG,CAAC,IAAc,KACxC,IAAI,IACF,WAAW,CAAC,IAAmB,CAAC,KAEhCnB,GAAA,CAACoB,cAAW,EAAA,EAAC,SAAS,EAAC,qFAAqF,EAAA,CAAG;;ACFnH,MAAMC,oBAAkB,GAAqC;AAC3D,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,OAAO,EAAE,EAAE;AACX,IAAA,QAAQ,EAAE,WAAW;CACtB;AAED,MAAM,aAAa,GAAG,CAAK,KAAU,EAAE,MAA0B,EAAE,IAAa,KAAS;AACvF,IAAA,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AACxB,IAAA,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;QAC9B,MAAM,MAAM,GAAG,GAAG,CAAC,CAAwB,EAAE,IAAI,CAAC;QAClD,MAAM,MAAM,GAAG,GAAG,CAAC,CAAwB,EAAE,IAAI,CAAC;AAElD,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC5B,YAAA,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;AACzB,YAAA,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;AACzB,YAAA,OAAO,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;QAC3D;AAEA,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;YAC1B,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;YACrC,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;AACrC,YAAA,OAAO,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;QAC3D;QAEA,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE;QACvC,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE;QACvC,IAAI,EAAE,GAAG,EAAE;AAAE,YAAA,OAAO,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,GAAG,EAAE,GAAG,CAAC;QAC3D,IAAI,EAAE,GAAG,EAAE;AAAE,YAAA,OAAO,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE;AAC3D,QAAA,OAAO,CAAC;AACV,IAAA,CAAC,CAAC;AACJ,CAAC;SAEe,SAAS,CAAsD,EAC7E,KAAK,EACL,OAAO,EACP,OAAO,GAAG,EAAE,EACZ,MAAM,EACN,OAAO,EACP,UAAU,EACV,aAAa,GAAG,MAAK,EAAE,CAAC,EACxB,YAAY,GAAG,eAAe,EAC9B,cAAc,GAAG,EAAE,EACnB,YAAY,GAAG,EAAE,EACjB,UAAU,GAAG,EAAE,EACf,SAAS,GAAG,EAAE,EACd,SAAS,EACT,MAAM,GAAG,IAAI,EACb,UAAU,EACV,QAAQ,EACR,OAAO,GAAG,SAAS,EACnB,OAAO,GAAG,KAAK,EACf,MAAM,GAAG,MAAM,EACf,UAAU,GAAG,KAAK,EAClB,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,wBAAwB,GACN,EAAA;AAClB,IAAA,MAAM,eAAe,GAAG,MAAM,CAAY,EAAE,CAAC;IAC7C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IAErD,SAAS,CAAC,MAAK;QACb,cAAc,CAAC,KAAK,CAAC;AACvB,IAAA,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAEX,IAAA,MAAM,UAAU,GAAG,CAAC,MAA0B,KAAI;AAChD,QAAA,eAAe,CAAC,OAAO,GAAG,eAAe,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;AAC5F,QAAA,cAAc,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACpF,IAAA,CAAC;AAED,IAAA,MAAM,UAAU,GAAG,CAAC,MAA0B,KAAI;QAChD,IAAI,CAAC,MAAM,CAAC,QAAQ;YAAE;AACtB,QAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;AAC9C,IAAA,CAAC;AAED,IAAA,MAAM,MAAM,GAAG,CAAC,IAAO,EAAE,GAAW,KAAqB;;QACvD,IAAI,OAAO,MAAM,KAAK,UAAU;AAAE,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC;AACrD,QAAA,OAAO,MAAC,IAAY,CAAC,MAAM,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,GAAG;AACrC,IAAA,CAAC;AAED,IAAA,MAAM,WAAW,GAAG,CAAC,IAAO,EAAE,GAAW,KAAY;AACnD,QAAA,IAAI,CAAC,QAAQ;AAAE,YAAA,OAAO,EAAE;QACxB,IAAI,OAAO,QAAQ,KAAK,UAAU;AAAE,YAAA,OAAO,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;AAC9D,QAAA,OAAO,QAAQ;AACjB,IAAA,CAAC;AAED,IAAA,MAAM,YAAY,GAAG,CAAC,MAA0B,EAAE,IAAO,KAAY;QACnE,IAAI,CAAC,MAAM,CAAC,SAAS;AAAE,YAAA,OAAO,EAAE;AAChC,QAAA,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,UAAU;AAAE,YAAA,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;QACzE,OAAO,MAAM,CAAC,SAAS;AACzB,IAAA,CAAC;AAED,IAAA,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC;AACtF,QAAA,KAAK,EAAE,WAAW;QAClB,MAAM;QACN,eAAe;QACf,sBAAsB;QACtB,iBAAiB;QACjB,eAAe;AAChB,KAAA,CAAC;AAEF,IAAA,MAAM,gBAAgB,GAAGA,oBAAkB,CAAC,OAAO,CAAC;AACpD,IAAA,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;AAErD,IAAA,QACEnB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,CAAC,4BAA4B,EAAE,cAAc,CAAC,aAC1EF,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,cAAc,CACvB,+EAA+E,EAC/E,YAAY,EACZ,UAAU,IAAI,2BAA2B,CAC1C,EAAA,QAAA,EAEDE,KAAC,KAAK,EAAA,EACJ,SAAS,EAAE,cAAc,CAAC,kCAAkC,EAAE,UAAU,CAAC,EACzE,MAAM,EAAE,MAAM,aAEdA,IAAA,CAAC,SAAS,EAAA,EAAC,SAAS,EAAE,SAAS,EAAA,QAAA,EAAA,CAC5B,UAAU,KACTF,GAAA,CAAC,eAAe,EAAA,EACd,SAAS,EAAE,cAAc,CAAC,kCAAkC,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAE/EA,GAAA,CAAC,QAAQ,kBACI,iBAAiB,EAC5B,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,CAAC,EAAE,KAAI;AACV,4CAAA,IAAI,EAAE;AAAE,gDAAA,EAAE,CAAC,aAAa,GAAG,YAAY;wCACzC,CAAC,EACD,QAAQ,EAAE,SAAS,GACnB,EAAA,CACc,CACnB,EACA,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,MAClBA,IAAC,eAAe,EAAA,EAEd,KAAK,EAAE,MAAM,CAAC,WAAW,EACzB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM,EAAE,EACxC,SAAS,EAAE,cAAc,CACvB,6BAA6B,EAC7B,gBAAgB,EAChB,MAAM,CAAC,MAAM,KAAK,MAAM;AACtB,wCAAA,wDAAwD,EAC1D,MAAM,CAAC,MAAM,KAAK,OAAO;AACvB,wCAAA,0DAA0D,EAC5D,MAAM,CAAC,WAAW,CACnB,EAAA,QAAA,EAEDE,IAAA,CAAC,WAAW,EAAA,EACV,IAAI,EAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,GAAG,SAAS,EAC5C,SAAS,EAAE,cAAc,CACvB,OAAO,EACP,MAAM,CAAC,QAAQ,IAAI,2DAA2D,CAC/E,EACD,OAAO,EAAE,MAAM,UAAU,CAAC,MAAM,CAAC,EAAA,QAAA,EAAA,CAEjCF,IAAC,WAAW,EAAA,EAAC,SAAS,EAAC,UAAU,EAAA,QAAA,EAAE,MAAM,CAAC,KAAK,EAAA,CAAe,EAC7D,MAAM,CAAC,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAA,EAAA,CAC/C,EAAA,EAvBT,MAAM,CAAC,IAAI,CAwBA,CACnB,CAAC,CAAA,EAAA,CACQ,EAEZA,GAAA,CAAC,SAAS,EAAA,EAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA,UAAU,aAAV,UAAU,KAAA,MAAA,GAAA,MAAA,GAAV,UAAU,CAAE,KAAK,KAAI,CAAC,EAAA,QAAA,EAC3E,CAAC,OAAO,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IACnCA,GAAA,CAAC,aAAa,EAAA,EAAC,OAAO,EAAE,OAAO,EAAA,QAAA,EAAG,YAAY,EAAA,CAAiB,KAE/D,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,KAAI;gCAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC;gCAC7B,MAAM,aAAa,GAAG,CAAC,eAAe,IAAI,eAAe,CAAC,IAAI,CAAC;AAE/D,gCAAA,QACEE,IAAA,CAAC,QAAQ,EAAA,EAEP,SAAS,EAAE,cAAc,CACvB,OAAO,EACP,UAAU,IAAI,gBAAgB,EAC9B,OAAO,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,gCAAgC,EAC5D,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CACvB,EACD,OAAO,EAAE,UAAU,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,SAAS,EAAA,QAAA,EAAA,CAE5D,UAAU,KACTF,GAAA,CAAC,SAAS,EAAA,EACR,SAAS,EAAE,cAAc,CACvB,gBAAgB,EAChB,OAAO,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,gCAAgC,CAC7D,EAAA,QAAA,EAEDA,GAAA,CAAA,MAAA,EAAA,EAAM,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,EAAA,QAAA,EACvCA,GAAA,CAAC,QAAQ,EAAA,EAAA,YAAA,EACI,YAAY,EACvB,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,EACxB,QAAQ,EAAE,CAAC,aAAa,EACxB,QAAQ,EAAE,MAAM,SAAS,CAAC,GAAG,CAAC,EAAA,CAC9B,EAAA,CACG,EAAA,CACG,CACb,EACA,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;;AAAC,4CAAA,QACvBA,GAAA,CAAC,SAAS,EAAA,EAER,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,SAAS,EAAE,cAAc,CACvB,gBAAgB,EAChB,OAAO,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,gCAAgC,EAC5D,MAAM,CAAC,MAAM,KAAK,MAAM;AACtB,oDAAA,wDAAwD,EAC1D,MAAM,CAAC,MAAM,KAAK,OAAO;oDACvB,0DAA0D,EAC5D,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAC3B,EAAA,QAAA,EAEA,MAAM,CAAC;AACN,sDAAE,MAAM,CAAC,MAAM,CAAC,IAAI;uDACjB,CAAA,EAAA,GAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAS,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,SAAS,CAAC,EAAA,EAd7C,MAAM,CAAC,IAAI,CAeN;AACb,wCAAA,CAAA,CAAC,CAAA,EAAA,EA5CG,GAAG,CA6CC;AAEf,4BAAA,CAAC,CAAC,CACH,EAAA,CACS,EAEX,SAAS,IAAIA,GAAA,CAAC,SAAS,EAAA,EAAA,QAAA,EAAE,SAAS,GAAa,CAAA,EAAA,CAC1C,EAAA,CACJ,EAEL,UAAU,KACTA,GAAA,CAAC,UAAU,EAAA,EAAA,GACL,UAAU,EACd,SAAS,EAAE,cAAc,CACvB,iDAAiD,EACjD,wBAAwB,CACzB,EACD,QAAQ,EAAE,aAAa,GACvB,CACH,CAAA,EAAA,CACG;AAEV;AAEA,SAAS,CAAC,WAAW,GAAG,WAAW;;ACxQnC,MAAM,KAAK,GAA+B,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,MAChEA,YAAI,SAAS,EAAE,cAAc,CAAC,0CAA0C,EAAE,SAAS,CAAC,EAAA,QAAA,EACjF,QAAQ,EAAA,CACN,CACN;AAED,MAAM,QAAQ,GAA+B,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,MACnEA,YAAI,SAAS,EAAE,cAAc,CAAC,8CAA8C,EAAE,SAAS,CAAC,EAAA,QAAA,EACrF,QAAQ,EAAA,CACN,CACN;AAED,MAAM,SAAS,GAA+B,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,MACpEA,YAAI,SAAS,EAAE,cAAc,CAAC,6CAA6C,EAAE,SAAS,CAAC,EAAA,QAAA,EACpF,QAAQ,EAAA,CACN,CACN;AAED,MAAM,SAAS,GAA+B,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,MACpEA,YAAI,SAAS,EAAE,cAAc,CAAC,2CAA2C,EAAE,SAAS,CAAC,EAAA,QAAA,EAClF,QAAQ,EAAA,CACN,CACN;AAED,MAAM,SAAS,GAA+B,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,MACpEA,YAAI,SAAS,EAAE,cAAc,CAAC,6CAA6C,EAAE,SAAS,CAAC,EAAA,QAAA,EACpF,QAAQ,EAAA,CACN,CACN;AAEM,MAAM,WAAW,GAAG;IACzB,KAAK;IACL,QAAQ;IACR,SAAS;IACT,SAAS;IACT,SAAS;;;AClCJ,MAAM,mBAAmB,GAAG,UAAU,CAC3C,CAAC,KAAK,EAAE,GAAG,KAAI;AACb,IAAA,MAAM,EACJ,SAAS,EACT,KAAK,EACL,QAAQ,EACR,OAAO,EACP,OAAO,GAAG,KAAK,EACf,OAAO,GAAG,IAAI,EACd,UAAU,EACV,YAAY,EACZ,QAAQ,GAAG,KAAK,EAChB,GAAG,QAAQ,EACZ,GAAG,KAAK;AAET,IAAA,MAAM,SAAS,GAAG,KAAK,IAAI,QAAQ;AACnC,IAAA,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;AAClE,IAAA,QACEE,IAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,cAAc,CACvB,YAAY,EACZ,OAAO,GAAG,QAAQ,GAAG,EAAE,EACvB,QAAQ,GAAG,kCAAkC,GAAG,EAAE,EAClD,SAAS,CACV,EACD,GAAG,EAAE,GAAG,EAAA,GACJ,QAAQ,EAAA,QAAA,EAAA,CAEX,SAAS,KACRA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,gCAAgC,EAAA,QAAA,EAAA,CAC5C,KAAK,KACJF,GAAA,CAAC,WAAW,CAAC,SAAS,IAAC,SAAS,EAAE,cAAc,CAAC,UAAU,CAAC,EAAA,QAAA,EACzD,KAAK,GACgB,CACzB,EACA,QAAQ,KACPA,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,2DAA2D,EAAA,QAAA,EACrE,QAAQ,EAAA,CACP,CACL,IACG,CACP,EACA,eAAe,CAAC,MAAM,IACrBA,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,cAAc,CACvB,iCAAiC,EACjC,SAAS,IAAI,UAAU,EACvB,YAAY,CACb,YAEDA,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAE,cAAc,CAAC,OAAO,IAAI,0CAA0C,CAAC,EAAA,QAAA,EACjF,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,MAC1BE,IAAA,CAAA,KAAA,EAAA,EAEE,SAAS,EAAE,cAAc,CACvB,2DAA2D,EAC3D,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAC9B,EAAA,QAAA,EAAA,CAEDF,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,wDAAwD,YACnE,MAAM,CAAC,KAAK,EAAA,CACV,EACLA,YACE,SAAS,EAAE,cAAc,CACvB,uEAAuE,EACvE,MAAM,CAAC,YAAY,CACpB,EAAA,QAAA,EAEA,MAAM,CAAC,KAAK,IAAI,KAAK,EAAA,CACnB,KAhBA,MAAM,CAAC,KAAK,CAiBb,CACP,CAAC,EAAA,CACC,EAAA,CACD,IACJ,IAAI,CAAA,EAAA,CACJ;AAEV,CAAC;AAGH,mBAAmB,CAAC,WAAW,GAAG,qBAAqB;;MClF1C,GAAG,GAIZ,CAAC,EAAE,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,KACvCI,cAAK,CAAC,aAAa,CAAC,EAAE,EAAE;IACtB,SAAS,EAAE,cAAc,CACvB,wDAAwD,EACxD,SAAS,EACT,SAAS,CACV;AACD,IAAA,GAAG,KAAK;AACT,CAAA;;ACRH,MAAM,YAAY,GAAiB;AACjC,IAAA,MAAM,EAAE,oCAAoC;AAC5C,IAAA,KAAK,EAAE,sBAAsB;AAC7B,IAAA,GAAG,EAAE,oBAAoB;AACzB,IAAA,GAAG,EAAE,6BAA6B;AAClC,IAAA,MAAM,EAAE,iCAAiC;CAC1C;AAED,MAAM,iBAAiB,GAAiB;AACtC,IAAA,MAAM,EAAE,mCAAmC;AAC3C,IAAA,KAAK,EAAE,6CAA6C;AACpD,IAAA,GAAG,EAAE,4CAA4C;AACjD,IAAA,GAAG,EAAE,6CAA6C;AAClD,IAAA,MAAM,EAAE,4CAA4C;CACrD;AAED,MAAM,YAAY,GAAY;AAC5B,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,KAAK,EAAE,WAAW;AAClB,IAAA,IAAI,EAAE,QAAQ;CACf;AAEM,MAAM,MAAM,GAA0B,CAAC,EAC5C,MAAM,EACN,OAAO,GAAG,MAAK,EAAE,CAAC,EAClB,KAAK,GAAG,KAAK,EACb,IAAI,GAAG,IAAI,EACX,QAAQ,GAAG,IAAI,EACf,KAAK,EACL,WAAW,EACX,QAAQ,EACR,UAAU,GAAG,EAAE,EACf,YAAY,GAAG,EAAE,EACjB,UAAU,GAAG,EAAE,EACf,gBAAgB,GAAG,EAAE,EACrB,WAAW,GAAG,KAAK,EACnB,cAAc,GAAG,KAAK,GACvB,KAAI;IACH,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,IAAI,WAAW,CAAC;AAEtD,IAAA,QACEF,IAAA,CAAC,MAAM,IACL,IAAI,EAAE,MAAM,EACZ,EAAE,EAAC,KAAK,EACR,SAAS,EAAC,kCAAkC,EAC5C,OAAO,EAAE,OAAO,EAChB,UAAU,EAAA,IAAA,EAAA,QAAA,EAAA,CAET,QAAQ,IAAIF,GAAA,CAAC,cAAc,EAAA,EAAC,SAAS,EAAC,8CAA8C,EAAA,CAAG,EAExFA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,iCAAiC,EAAA,QAAA,EAC9CA,aAAK,SAAS,EAAE,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAAA,QAAA,EACzDE,IAAA,CAAC,WAAW,EAAA,EACV,UAAU,EAAA,IAAA,EACV,SAAS,EAAE,cAAc,CACvB,8DAA8D,EAC9D,yEAAyE,EACzE,iBAAiB,CAAC,KAAK,CAAC,EACxB,YAAY,CAAC,IAAI,CAAC,EAClB,UAAU,CACX,EAAA,QAAA,EAAA,CAEA,gBAAgB,KACfA,cACE,SAAS,EAAE,cAAc,CACvB,qCAAqC,EACrC,WAAW,IAAI,6CAA6C,CAC7D,aAEDA,IAAA,CAAC,WAAW,IACV,EAAE,EAAC,IAAI,EACP,SAAS,EAAE,cAAc,CACvB,6DAA6D,EAC7D,UAAU,CACX,EAAA,QAAA,EAAA,CAEA,cAAc,KACbF,GAAA,CAAC,MAAM,IACL,QAAQ,EAAA,IAAA,EAAA,YAAA,EACG,cAAc,EACzB,OAAO,EAAC,OAAO,EACf,KAAK,EAAC,WAAW,EACjB,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,OAAO,EAAA,QAAA,EAEhBA,GAAA,CAACc,cAAe,IAAC,SAAS,EAAC,QAAQ,EAAA,CAAG,EAAA,CAC/B,CACV,EACA,KAAK,IACM,EAEb,WAAW,KACVd,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAE,cAAc,CAAC,4BAA4B,EAAE,gBAAgB,CAAC,YACzE,WAAW,EAAA,CACV,CACL,CAAA,EAAA,CACG,CACP,EAEDA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,YAAY,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAO,CAAA,EAAA,CAClC,GACV,EAAA,CACF,CAAA,EAAA,CACC;AAEb;AAEA,MAAM,CAAC,WAAW,GAAG,QAAQ;;ACjH7B,MAAM,eAAe,GACnB,yFAAyF;AAEpF,MAAM,QAAQ,GAA4B,CAAC,EAChD,aAAa,EACb,mBAAmB,EACnB,KAAK,EACL,UAAU,EACV,mBAAmB,EACnB,UAAU,GAAG,IAAI,EACjB,MAAM,GAAG,cAAc,EACvB,aAAa,EACb,WAAW,GACZ,KAAI;IACH,QACEE,KAAC,IAAI,EAAA,EAAC,EAAE,EAAC,KAAK,EAAC,SAAS,EAAC,uBAAuB,aAE7C,mBAAmB,IAClBF,IAAC,UAAU,EAAA,EAAC,EAAE,EAAEsB,UAAQ,EAAA,QAAA,EACrB,CAAC,KAAK,KAAK,mBAAmB,CAAC,KAAK,CAAuB,EAAA,CACjD,KAEbtB,GAAA,CAAC,UAAU,EAAA,EAAC,EAAE,EAAEsB,UAAQ,EAAA,QAAA,EAAG,aAAa,EAAA,CAAc,CACvD,EAGDtB,IAAC,SAAS,EAAA,EACR,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,cAAc,CACvB,yFAAyF,EACzF,+DAA+D,EAC/D,qCAAqC,EACrC,mEAAmE,EACnE,6BAA6B,EAC7B,mBAAmB,CACpB,EAAA,aAAA,EACW,gBAAgB,EAC5B,EAAE,EAAC,IAAI,EAAA,QAAA,EAEN,KAAK,CAAC,GAAG,CAAC,CAAC,IAAkB,EAAE,GAAW,MACzCE,IAAA,CAACoB,UAAQ,EAAA,EAAA,QAAA,EAAA,CACPtB,GAAA,CAAC,QAAQ,EAAA,EAAC,EAAE,EAAC,IAAI,EAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAA,QAAA,EACtC,CAAC,EAAE,QAAQ,EAAE,MACZA,GAAA,CAAA,KAAA,EAAA,EACE,OAAO,EAAE,MAAM,CAAC,QAAQ,KAAI,WAAW,KAAA,IAAA,IAAX,WAAW,KAAA,MAAA,GAAA,MAAA,GAAX,WAAW,CAAG,IAAI,EAAE,GAAG,CAAC,CAAA,EACpD,SAAS,EAAE,cAAc,CACvB,eAAe,EACf,aAAa,EACb,QAAQ,IAAI,+BAA+B,CAC5C,EAAA,aAAA,EACY,iBAAiB,IAAI,CAAC,EAAE,CAAA,CAAE,EAAA,QAAA,EAEtC,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAA,CACvC,CACP,EAAA,CACQ,EACV,IAAI,CAAC,OAAO,KACXA,YAEE,SAAS,EAAC,uCAAuC,EAAA,aAAA,EACrC,kBAAkB,EAAA,EAFzB,IAAI,CAAC,EAAE,CAGZ,CACH,CAAA,EAAA,EAtBY,IAAI,CAAC,EAAE,CAuBX,CACZ,CAAC,EAAA,CACQ,CAAA,EAAA,CACP;AAEX;AAEA,QAAQ,CAAC,WAAW,GAAG,UAAU;;AC5EjC,IAAIF,OAAK;AACT,SAASC,UAAQ,GAAG,EAAE,OAAOA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAEA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AAEnR,IAAI,aAAa,GAAG,SAAS,aAAa,CAAC,KAAK,EAAE;AAClD,EAAE,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,4BAA4B;AACvC,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,cAAc;AAC1B,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,SAAS,EAAE,mDAAmD;AAClE,IAAI,OAAO,EAAE;AACb,GAAG,EAAE,KAAK,CAAC,EAAED,OAAK,KAAKA,OAAK,gBAAgB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACxE,IAAI,CAAC,EAAE;AACP,GAAG,CAAC,CAAC,CAAC;AACN,CAAC;;ACLM,MAAM,UAAU,GAA8B,CAAC,EACpD,KAAK,EACL,WAAW,EACX,SAAS,EACT,MAAM,GAAG,IAAI,GACd,KAAI;IACH,QACEE,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,CAAC,uCAAuC,EAAE,SAAS,CAAC,EAAA,QAAA,EAChFE,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,2CAA2C,EAAA,QAAA,EAAA,CACxDF,GAAA,CAACuB,aAAc,EAAA,EAAC,SAAS,EAAC,8BAA8B,EAAA,CAAG,EAC3DvB,GAAA,CAAC,WAAW,CAAC,QAAQ,EAAA,EAAA,QAAA,EAAE,KAAK,EAAA,CAAwB,EACnD,WAAW,KACVA,GAAA,CAAC,QAAQ,EAAA,EAAC,EAAE,EAAC,GAAG,EAAC,SAAS,EAAC,aAAa,EAAC,KAAK,EAAA,IAAA,EAAC,KAAK,EAAA,IAAA,EAAA,QAAA,EACjD,WAAW,EAAA,CACH,CACZ,EACA,MAAM,CAAA,EAAA,CACH,EAAA,CACF;AAEV;;AC3BM,SAAU,eAAe,CAC7B,SAAkB,EAClB,EAAE,aAAa,GAAG,KAAK,EAAE,QAAQ,GAAG,KAAK,KAAsD,EAAE,EAAA;AAEjG,IAAA,OAAO,cAAc,CACnB,gBAAgB,EAChB,qEAAqE,EACrE,mDAAmD,EACnD,wCAAwC,EACxC,4CAA4C,EAC5C;AACE,UAAE;UACA,iIAAiI,EACrI;AACE,UAAE;AACF,UAAE,8EAA8E,EAClF,SAAS,CACV;AACH;AAEO,MAAM,KAAK,GAAG,UAAU,CAA+B,CAAC,KAAK,EAAE,GAAG,KAAI;AAC3E,IAAA,MAAM,EACJ,IAAI,EACJ,EAAE,GAAG,IAAI,EACT,IAAI,EACJ,KAAK,EACL,SAAS,EACT,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,KAAK,EACL,gBAAgB,GAAG,IAAI,EACvB,UAAU,EACV,SAAS,EACT,GAAG,UAAU,EACd,GAAG,KAAK;AACT,IAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;IAC/B,MAAM,aAAa,GAAG,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS;IACrE,MAAM,YAAY,GAAG,SAAS,IAAI,IAAI,IAAI,SAAS,KAAK,SAAS;AAEjE,IAAA,QACEE,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,CAAC,OAAO,EAAE,QAAQ,IAAI,WAAW,EAAE,cAAc,CAAC,EAAA,QAAA,EAAA,CAC7E,KAAK,KACJA,IAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,cAAc,CAAC,wCAAwC,EAAE,iBAAiB,CAAC,EAAA,QAAA,EAAA,CAEtFF,GAAA,CAAC,KAAK,EAAA,EAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAA,QAAA,EACtC,KAAK,EAAA,CACA,EACRA,IAAC,WAAW,EAAA,EAAC,MAAM,EAAA,IAAA,EAAA,QAAA,EAAE,SAAS,EAAA,CAAe,CAAA,EAAA,CACzC,CACP,EACDE,cAAK,SAAS,EAAC,UAAU,EAAA,QAAA,EAAA,CACtB,YAAY,KACXF,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,6DAA6D,EAAA,QAAA,EAC1E,SAAS,GACL,CACR,EACDA,eACE,GAAG,EAAE,GAAG,EACR,YAAY,EAAC,KAAK,KACd,UAAU,EACd,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,cAAc,CACvB,eAAe,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,EAC7D,aAAa,GAAG,OAAO,GAAG,EAAE,EAC5B,YAAY,GAAG,OAAO,GAAG,EAAE,CAC5B,EAAA,CACD,EACD,aAAa,KACZA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,sEAAsE,YACnF,UAAU,EAAA,CACN,CACR,CAAA,EAAA,CACG,EACL,gBAAgB,IAAI,KAAK,KACxBA,aAAK,SAAS,EAAC,MAAM,EAAA,QAAA,EACnBA,GAAA,CAAC,WAAW,EAAA,EAAC,KAAK,EAAA,IAAA,EAAC,KAAK,kBACrB,KAAK,EAAA,CACM,GACV,CACP,CAAA,EAAA,CACG;AAEV,CAAC;AAED,KAAK,CAAC,WAAW,GAAG,OAAO;;ACzFpB,MAAM,aAAa,GAAG;AACtB,MAAM,oBAAoB,GAAG;AAE7B,MAAM,aAAa,GAAiC,CAAC,KAAK,KAAI;AACnE,IAAA,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK;IAC/B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AAEvD,IAAA,QACEA,GAAA,CAAC,KAAK,OACA,UAAU,EACd,IAAI,EAAE,YAAY,GAAG,MAAM,GAAG,aAAa,EAC3C,WAAW,EAAE,oBAAoB,EACjC,UAAU,EACRA,GAAA,CAAC,MAAM,EAAA,EACL,KAAK,EAAC,WAAW,EACjB,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,IAAI,EACT,SAAS,EAAC,WAAW,EACrB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,MAAM,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,EACnD,QAAQ,EAAE,EAAE,EAAA,QAAA,EAEX,YAAY,IACXA,GAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAC,4BAA4B,EAClC,IAAI,EAAC,MAAM,EACX,OAAO,EAAC,WAAW,EACnB,WAAW,EAAC,KAAK,EACjB,MAAM,EAAC,cAAc,EACrB,SAAS,EAAC,QAAQ,EAAA,QAAA,EAElBA,GAAA,CAAA,MAAA,EAAA,EACE,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,CAAC,EAAC,8UAA8U,EAAA,CAChV,EAAA,CACE,KAENE,IAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAC,4BAA4B,EAClC,IAAI,EAAC,MAAM,EACX,OAAO,EAAC,WAAW,EACnB,WAAW,EAAC,KAAK,EACjB,MAAM,EAAC,cAAc,EACrB,SAAS,EAAC,QAAQ,EAAA,QAAA,EAAA,CAElBF,GAAA,CAAA,MAAA,EAAA,EACE,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,CAAC,EAAC,0LAA0L,EAAA,CAC5L,EACFA,cACE,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,CAAC,EAAC,qCAAqC,EAAA,CACvC,CAAA,EAAA,CACE,CACP,EAAA,CACM,EAAA,CAEX;AAEN;;AC9DO,MAAM,KAAK,GAAG,UAAU,CAA+B,CAAC,KAAK,EAAE,GAAG,KAAI;;IAC3E,MAAM,EACJ,EAAE,EACF,IAAI,EACJ,KAAK,EACL,UAAU,GAAG,EAAE,EACf,YAAY,GAAG,EAAE,EACjB,cAAc,GAAG,EAAE,EACnB,KAAK,EACL,QAAQ,GAAG,KAAK,EAChB,SAAS,GAAG,EAAE;;AAEd,IAAA,GAAG,IAAI,EACR,GAAG,KAAK;AAET,IAAA,MAAM,WAAW,GAAG,KAAK,EAAE;AAC3B,IAAA,MAAM,OAAO,GAAG,CAAA,EAAA,GAAA,EAAE,KAAA,IAAA,IAAF,EAAE,KAAA,MAAA,GAAF,EAAE,GAAI,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,WAAW;AAEzC,IAAA,QACEE,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,CAC1CA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,CAAC,yBAAyB,EAAE,cAAc,CAAC,EAAA,QAAA,EAAA,CACvEF,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,yBAAyB,EAAA,QAAA,EACtCA,GAAA,CAAA,OAAA,EAAA,EACE,GAAG,EAAE,GAAG,KACJ,IAAI,EACR,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,IAAI,EACV,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAE,QAAQ,EAAA,cAAA,EACJ,IAAI,CAAC,OAAO,EAC1B,SAAS,EAAE,cAAc,CACvB,4FAA4F,EAC5F,yCAAyC,EACzC,mCAAmC,EACnC,mEAAmE,EACnE;AACE,kCAAE;kCACA,cAAc,CACZ,iHAAiH,EACjH,6EAA6E,CAC9E,EACL,SAAS,CACV,EAAA,CACD,EAAA,CACE,EACL,KAAK,KACJA,GAAA,CAAC,KAAK,EAAA,EACJ,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,cAAc,CACvB;AACE,8BAAE;AACF,8BAAE,iDAAiD,EACrD,UAAU,CACX,EAAA,QAAA,EAEA,KAAK,EAAA,CACA,CACT,CAAA,EAAA,CACG,EACL,KAAK,KACJA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,MAAM,EAAA,QAAA,EACnBA,GAAA,CAAC,WAAW,EAAA,EAAC,KAAK,EAAA,IAAA,EAAC,KAAK,EAAA,IAAA,EAAA,QAAA,EACrB,KAAK,EAAA,CACM,EAAA,CACV,CACP,CAAA,EAAA,CACG;AAEV,CAAC;;ACnEM,MAAM,UAAU,GAA8B,CAAC,KAAK,KAAI;IAC7D,MAAM,EACJ,IAAI,EACJ,KAAK,EACL,UAAU,EACV,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,OAAO,EACP,KAAK,EACL,GAAG,EACH,KAAK,EACL,gBAAgB,EAChB,QAAQ,GACT,GAAG,KAAK;AACT,IAAA,MAAM,KAAK,GAAG,OAAO,CACnB,MAAK;;AACH,QAAA,OAAA,MAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,MAAA,GAAA,MAAA,GAAP,OAAO,CAAE,GAAG,CAAC,CAAC,MAAM,KAClB,OAAO,MAAM,KAAK,QAAQ,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CACvE,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE;AAAA,IAAA,CAAA,EACT,CAAC,OAAO,CAAC,CACV;AAED,IAAA,QACEE,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,CAAC,cAAc,CAAC,EAAA,QAAA,EAAA,CAC3C,KAAK,KACJA,cACE,SAAS,EAAE,cAAc,CAAC,wCAAwC,EAAE,iBAAiB,CAAC,aAEtFF,GAAA,CAAC,KAAK,EAAA,EAAC,SAAS,EAAE,UAAU,EAAA,QAAA,EAAG,KAAK,GAAS,EAC5C,SAAS,CAAA,EAAA,CACN,CACP,EACDA,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,cAAc,CACvB,YAAY,EACZ,GAAG,GAAG,uBAAuB,GAAG,sBAAsB,CACvD,EAAA,QAAA,EAEA,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MACdA,GAAA,CAAC,KAAK,EAAA,EAEJ,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,CAAA,CAAE,EAC3B,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,OAAO,EAAE,KAAK,KAAK,IAAI,CAAC,KAAK,EAC7B,QAAQ,EAAE,QAAQ,EAAA,EANb,IAAI,CAAC,KAAK,CAOf,CACH,CAAC,EAAA,CACE,EACL,gBAAgB,IAAI,KAAK,KACxBA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,MAAM,EAAA,QAAA,EACnBA,GAAA,CAAC,WAAW,EAAA,EAAC,KAAK,EAAA,IAAA,EAAC,KAAK,EAAA,IAAA,EAAA,QAAA,EACrB,KAAK,EAAA,CACM,EAAA,CACV,CACP,CAAA,EAAA,CACG;AAEV;;AC7DA;;;AAGG;MACU,WAAW,GAA+B,CAAC,EACtD,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,gBAAgB,GACjB,KAAI;AACH,IAAA,MAAM,YAAY,GAAG,MAAM,CAAiB,IAAI,CAAC;IACjD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAE5E,MAAM,QAAQ,GAAG,CAAC,CAAkB,MAAM,OAAO,CAAC,KAAK,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;IAE9E,MAAM,QAAQ,GAAG,CAAC,CAAkB,MAAM,OAAO,CAAC,KAAK,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AAE9E,IAAA,MAAM,cAAc,GAAG,CAAC,CAAkB,KAAI,EAAA,IAAA,EAAA,CAAA,CAC5C,OAAA,OAAO,CAAC,KAAK,QAAQ,GAAG,EAAE,IAAI,CAAA,EAAA,GAAA,CAAC,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE,CAAC,CAAA,EAAA;AAEpD;;AAEmD;IACnD,SAAS,CAAC,MAAK;QACb,IAAI,CAAC,YAAY,CAAC,OAAO;YAAE;AAE3B,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CACxB,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAC1C;AAElB,QAAA,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC;AAC5D,QAAA,IAAI,CAAC,EAAE;YAAE;AAET,QAAA,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE;QACvC,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,qBAAqB,EAAE;QAE/D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG;AAErC,QAAA,QAAQ,CAAC;YACP,IAAI;YACJ,GAAG;YACH,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;AACpB,SAAA,CAAC;AACJ,IAAA,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAErB,IAAA,QACEE,IAAA,CAACsB,YAAU,IACT,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,QAAQ,EAAA,YAAA,EACN,KAAK,EACjB,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,cAAc,CACvB,+BAA+B,EAC/B,gDAAgD,EAChD,YAAY,CACb,EAAA,QAAA,EAAA,CAGDxB,aACE,SAAS,EAAE,cAAc,CACvB,kDAAkD,EAClD,qFAAqF,EACrF,WAAW,CACZ,EACD,KAAK,EAAE;oBACL,SAAS,EAAE,aAAa,KAAK,CAAC,IAAI,CAAA,IAAA,EAAO,KAAK,CAAC,GAAG,CAAA,GAAA,CAAK;oBACvD,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB,EAAA,CACD,EAGD,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MACdA,GAAA,CAACyB,OAAK,IAEJ,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAA,iBAAA,EAAA,IAAA,EAAA,YAAA,EAET,QAAQ,CAAC,IAAI,CAAC,EAC1B,SAAS,EAAE,cAAc,CACvB,gDAAgD,EAChD,wCAAwC,EACxC,0DAA0D,CAC3D,EAAA,QAAA,EAEDvB,IAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,cAAc,CACvB,iDAAiD,EACjD,YAAY,CACb,EAAA,QAAA,EAAA,CAEDF,GAAA,CAAC,QAAQ,EAAA,EACP,SAAS,EAAE,cAAc,CACvB,eAAe,EACf,QAAQ,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,YAAY,CAC5C,EAAA,QAAA,EAEA,QAAQ,CAAC,IAAI,CAAC,EAAA,CACN,EAEV,cAAc,CAAC,IAAI,CAAC,KACnBA,GAAA,CAAC,QAAQ,EAAA,EACP,SAAS,EAAE,cAAc,CACvB,oBAAoB,EACpB,gBAAgB,EAChB,QAAQ,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,YAAY,CAC5C,EAAA,QAAA,EAEA,cAAc,CAAC,IAAI,CAAC,GACZ,CACZ,CAAA,EAAA,CACG,EAAA,EApCD,QAAQ,CAAC,IAAI,CAAC,CAqCb,CACT,CAAC,CAAA,EAAA,CACS;AAEjB;;AC/HA;;;AAGG;AACG,SAAU,OAAO,CAAC,KAAU,EAAA;AAChC,IAAA,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAC7B;;ACJA;;;;AAIG;AACG,SAAU,OAAO,CAAC,KAAU,EAAA;IAChC,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,IAAI,CAAA;IAE9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;AAC/C,QAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;IAC3B;IAEA,IAAI,KAAK,YAAY,GAAG,IAAI,KAAK,YAAY,GAAG,EAAE;AAChD,QAAA,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC;IACzB;AAEA,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC;IACxC;IAEA,OAAO,KAAK,CAAA;AACd;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEO,MAAM,UAAU,GAAG,UAAU,CAAoC,CAAC,KAAK,EAAE,GAAG,KAAI;IACrF,MAAM,EACJ,KAAK,EACL,UAAU,GAAG,EAAE,EACf,SAAS,GAAG,IAAI,EAChB,cAAc,GAAG,EAAE,EACnB,SAAS,GAAG,EAAE,EACd,SAAS,GAAG,IAAI,EAChB,WAAW,GAAG,EAAE,EAChB,KAAK,GAAG,IAAI,EACZ,gBAAgB,GAAG,IAAI,EACvB,EAAE,EACF,GAAG,GAAG,CAAC,EACP,GAAG,GAAG,GAAG,EACT,KAAK,EACL,GAAG,UAAU,EACd,GAAG,KAAK;AAET,IAAA,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;AAEhC,IAAA,QACEE,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,CAAC,iBAAiB,EAAE,cAAc,CAAC,aAC9D,KAAK,KACJA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,mCAAmC,EAAA,QAAA,EAAA,CAChDF,GAAA,CAAC,KAAK,EAAA,EAAC,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAA,QAAA,EACtC,KAAK,EAAA,CACA,EACP,SAAS,CAAA,EAAA,CACN,CACP,EAEDE,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,yBAAyB,aACtCF,GAAA,CAAA,OAAA,EAAA,EACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,OAAO,EACZ,EAAE,EAAE,EAAE,EACN,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EAAA,GACR,UAAU,EACd,SAAS,EAAE,cAAc,CACvB,sDAAsD,EACtD,8BAA8B,EAC9B,iBAAiB;wBACjB,2CAA2C,EAC3C,6DAA6D,EAC7D,wCAAwC,EACxC,uCAAuC,EACvC,qDAAqD,EACrD,oCAAoC,EACpC,mCAAmC,EACnC,QAAQ,IAAI,gBAAgB,EAC5B,SAAS,CACV,EAAA,CACD,EAED,SAAS,KACRE,IAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,kEAAkE,EAAA,QAAA,EAAA,CAC/E,KAAK,EACL,WAAW,CAAA,EAAA,CACP,CACR,CAAA,EAAA,CACG,EAEL,gBAAgB,IAAI,QAAQ,KAC3BF,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,MAAM,EAAA,QAAA,EACnBA,GAAA,CAAC,WAAW,EAAA,EAAC,KAAK,EAAA,IAAA,EAAC,KAAK,EAAA,IAAA,EAAA,QAAA,EACrB,KAAK,EAAA,CACM,EAAA,CACV,CACP,CAAA,EAAA,CACG;AAEV,CAAC;;MCpFY,WAAW,GAA+B,CAAC,EACtD,KAAK,EACL,SAAS,EACT,UAAU,GAAG,EAAE,EACf,cAAc,GAAG,EAAE,EACnB,SAAS,GAAG,EAAE,EACd,GAAG,EACH,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,WAAW,GAAG,EAAE,EAChB,KAAK,GAAG,IAAI,EACZ,gBAAgB,GAAG,IAAI,GACxB,KAAI;AACH,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAwB,IAAI,CAAC;;AAGpD,IAAA,MAAM,cAAc,GAAG,MAAM,CAAuB,IAAI,CAAC;;IAGzD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAuB,IAAI,CAAC;;AAGpF,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC;AACpC,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC;AACpC,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC;AACpC,IAAA,WAAW,CAAC,OAAO,GAAG,QAAQ;AAC9B,IAAA,WAAW,CAAC,OAAO,GAAG,QAAQ;AAC9B,IAAA,WAAW,CAAC,OAAO,GAAG,QAAQ;AAE9B,IAAA,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;IAChC,MAAM,OAAO,GAAG,CAAC,CAAS,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG;;;AAI9D,IAAA,MAAM,oBAAoB,GAAG,MAAM,CAAC,CAAC,CAAe,KAAI;QACtD,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO;YAAE;QAClD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE;QACrD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC;AAClE,QAAA,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,KAAK,GAAG,GAAG,GAAG,CAAC;AACnD,QAAA,IAAI,cAAc,CAAC,OAAO,KAAK,KAAK,EAAE;YACpC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC;QACrF;aAAO;YACL,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QACrF;AACF,IAAA,CAAC,CAAC;AAEF,IAAA,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAK;AACrC,QAAA,cAAc,CAAC,OAAO,GAAG,IAAI;QAC7B,mBAAmB,CAAC,IAAI,CAAC;QACzB,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,oBAAoB,CAAC,OAAO,CAAC;QACvE,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,CAAC,OAAO,CAAC;AACrE,IAAA,CAAC,CAAC;;IAGF,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO;AACzC,QAAA,MAAM,EAAE,GAAG,kBAAkB,CAAC,OAAO;AACrC,QAAA,OAAO,MAAK;AACV,YAAA,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC;AAC/C,YAAA,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,EAAE,CAAC;AAC7C,QAAA,CAAC;IACH,CAAC,EAAE,EAAE,CAAC;;;;IAKN,MAAM,SAAS,GAAG,CAAC,KAAoB,KAAK,CAAC,EAAsB,KAAI;AACrE,QAAA,cAAc,CAAC,OAAO,GAAG,KAAK;QAC9B,mBAAmB,CAAC,KAAK,CAAC;QAC1B,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,oBAAoB,CAAC,OAAO,CAAC;QACpE,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,OAAO,CAAC;AAClE,IAAA,CAAC;;;;AAKD,IAAA,MAAM,gBAAgB,GAAG,CAAC,CAAmB,KAAI;QAC/C,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE;QAEvB,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE;QACrD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC;AAClE,QAAA,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,KAAK,GAAG,GAAG,GAAG,CAAC;AACnD,QAAA,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,KAAK;AACpD,QAAA,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,KAAK;;AAGpD,QAAA,IAAI,CAAC,IAAI,KAAK,EAAE;AACd,YAAA,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;YAC1B;QACF;;AAGA,QAAA,IAAI,CAAC,IAAI,KAAK,EAAE;AACd,YAAA,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;YAC1B;QACF;;QAGA,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC;AAE3C,QAAA,IAAI,OAAO,GAAG,OAAO,EAAE;AACrB,YAAA,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;QAC5B;aAAO;AACL,YAAA,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC5B;AACF,IAAA,CAAC;AAED,IAAA,QACEE,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,CAAC,iBAAiB,EAAE,QAAQ,IAAI,WAAW,EAAE,cAAc,CAAC,EAAA,QAAA,EAAA,CAEvF,KAAK,KACJA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,wCAAwC,EAAA,QAAA,EAAA,CACrDF,GAAA,CAAC,KAAK,EAAA,EAAC,SAAS,EAAE,UAAU,YAAG,KAAK,EAAA,CAAS,EAC5C,SAAS,CAAA,EAAA,CACN,CACP,EAGDE,IAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,QAAQ,EACb,WAAW,EAAE,gBAAgB,EAC7B,SAAS,EAAC,iCAAiC,EAAA,aAAA,EAC/B,aAAa,EAAA,QAAA,EAAA,CAGzBF,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,gGAAgG,EAAA,CAAG,EAGlHA,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAC,kIAC2B,EACrC,KAAK,EAAE;AACL,4BAAA,IAAI,EAAE,CAAA,EAAG,OAAO,CAAC,QAAQ,CAAC,CAAA,CAAA,CAAG;4BAC7B,KAAK,EAAE,CAAA,EAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA,CAAA,CAAG;AACnD,yBAAA,EAAA,CACD,EAGFA,GAAA,CAAA,KAAA,EAAA,EACE,aAAa,EAAE,SAAS,CAAC,KAAK,CAAC,EAC/B,SAAS,EAAE,cAAc,CACvB,wDAAwD,EACxD,uEAAuE,EACvE,sCAAsC;wBACtC,gBAAgB,KAAK,KAAK,IAAI,sBAAsB,EACpD,SAAS,CACV,EACD,KAAK,EAAE;AACL,4BAAA,IAAI,EAAE,CAAA,KAAA,EAAQ,OAAO,CAAC,QAAQ,CAAC,CAAA,SAAA,CAAW;4BAC1C,MAAM,EAAE,gBAAgB,KAAK,KAAK,GAAG,EAAE,GAAG,EAAE;yBAC7C,EAAA,aAAA,EACW,WAAW,GACvB,EAGFA,GAAA,CAAA,KAAA,EAAA,EACE,aAAa,EAAE,SAAS,CAAC,KAAK,CAAC,EAC/B,SAAS,EAAE,cAAc,CACvB,wDAAwD,EACxD,uEAAuE,EACvE,sCAAsC;wBACtC,gBAAgB,KAAK,KAAK,IAAI,sBAAsB,EACpD,SAAS,CACV,EACD,KAAK,EAAE;AACL,4BAAA,IAAI,EAAE,CAAA,KAAA,EAAQ,OAAO,CAAC,QAAQ,CAAC,CAAA,SAAA,CAAW;4BAC1C,MAAM,EAAE,gBAAgB,KAAK,KAAK,GAAG,EAAE,GAAG,EAAE;yBAC7C,EAAA,aAAA,EACW,WAAW,EAAA,CACvB,CAAA,EAAA,CACE,EAGNE,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,+DAA+D,EAAA,QAAA,EAAA,CAC5EA,IAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CACG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EACpB,WAAW,CAAA,EAAA,CACP,EACPA,IAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CACG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EACpB,WAAW,CAAA,EAAA,CACP,CAAA,EAAA,CACH,EAGL,gBAAgB,IAAI,QAAQ,KAC3BF,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,MAAM,EAAA,QAAA,EACnBA,IAAC,WAAW,EAAA,EAAC,KAAK,EAAA,IAAA,EAAC,KAAK,EAAA,IAAA,EAAA,QAAA,EACrB,KAAK,EAAA,CACM,EAAA,CACV,CACP,CAAA,EAAA,CACG;AAEV;;MC1Ma,WAAW,GAAG,CAAK,KAAQ,EAAE,KAAa,KAAO;IAC5D,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAI,KAAK,CAAC;IAE9D,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAK;YAC9B,iBAAiB,CAAC,KAAK,CAAC;QAC1B,CAAC,EAAE,KAAK,CAAC;;AAGT,QAAA,OAAO,MAAK;YACV,YAAY,CAAC,OAAO,CAAC;AACvB,QAAA,CAAC;AACH,IAAA,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAElB,IAAA,OAAO,cAAc;AACvB;MAEa,aAAa,GAAG,CAAC,EAA4B,EAAE,EAAU,KAAI;AACxE,IAAA,MAAM,OAAO,GAAG,MAAM,CAAM,IAAI,CAAC;IAEjC,SAAS,CAAC,MAAK;QACb,OAAO,MAAM,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;IAC5C,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,OAAO,WAAW,CAChB,CAAC,GAAG,IAAW,KAAI;AACjB,QAAA,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;AAC7B,QAAA,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AACrD,IAAA,CAAC,EACD,CAAC,EAAE,EAAE,EAAE,CAAC,CACT;AACH;;ACjCA,IAAIF,OAAK;AACT,SAASC,UAAQ,GAAG,EAAE,OAAOA,UAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAEA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AAEnR,IAAI,QAAQ,GAAG,SAAS,QAAQ,CAAC,KAAK,EAAE;AACxC,EAAE,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAEA,UAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,4BAA4B;AACvC,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,cAAc;AAC1B,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,SAAS,EAAE,uCAAuC;AACtD,IAAI,OAAO,EAAE;AACb,GAAG,EAAE,KAAK,CAAC,EAAED,OAAK,KAAKA,OAAK,gBAAgB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACxE,IAAI,CAAC,EAAE;AACP,GAAG,CAAC,CAAC,CAAC;AACN,CAAC;;AClBD,IAAI,OAAO,EAAE,KAAK;AAClB,SAAS,QAAQ,GAAG,EAAE,OAAO,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AAEnR,IAAI,aAAa,GAAG,SAAS,aAAa,CAAC,KAAK,EAAE;AAClD,EAAE,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,4BAA4B;AACvC,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,cAAc;AAC1B,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,SAAS,EAAE,mDAAmD;AAClE,IAAI,OAAO,EAAE;AACb,GAAG,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,gBAAgB,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE;AAC9E,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,CAAC,EAAE;AACP,GAAG,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,gBAAgB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AAClE,IAAI,CAAC,EAAE;AACP,GAAG,CAAC,CAAC,CAAC;AACN,CAAC;;ACcD,MAAM,mBAAmB,GAAG,CAAC,QAAiB,KAAK,eAAe,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;AAE7E,MAAM,SAAS,GAAG,UAAU,CACjC,CACE,KAAwB,EACxB,YAAiE,KAC/D;IACF,MAAM,EACJ,QAAQ,GAAG,OAAO,EAClB,QAAQ,GAAG,OAAO,EAClB,IAAI,EACJ,EAAE,GAAG,IAAI,EACT,OAAO,EACP,QAAQ,EACR,KAAK,GAAG,IAAI,EACZ,iBAAiB,GAAG,EAAE,EACtB,UAAU,GAAG,EAAE,EACf,SAAS,GAAG,IAAI,EAChB,QAAQ,GAAG,KAAK,EAChB,cAAc,GAAG,EAAE,EACnB,QAAQ,GAAG,MAAK,EAAE,CAAC,EACnB,WAAW,EACX,sBAAsB,GAAG,MAAM,EAC/B,QAAQ,GAAG,KAAK,EAChB,YAAY,EACZ,SAAS,GAAG,IAAI,EAChB,gBAAgB,GAAG,IAAI,EACvB,KAAK,GAAG,IAAI,EACZ,KAAK,GAAG,KAAK,EACb,UAAU,GAAG,IAAI,EACjB,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,UAAU,GAAG,QAAQ,EACrB,KAAK,GAAG,MAAK,EAAE,CAAC,EAChB,UAAU,GAAG,KAAK,EAClB,aAAa,GAAG,KAAK,EACrB,aAAa,GAAG,sBAAsB,GACvC,GAAG,KAAK;AAET,IAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;IAC/B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;IACtC,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC;IAC9C,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AAC3D,IAAA,MAAM,sBAAsB,GAAG,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,cAAc,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;AACzF,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAC3E,IAAA,MAAM,gBAAgB,GAAG,cAAc,CACrC,QAAQ,EACR,oDAAoD,EACpD,8DAA8D,EAC9D,QAAQ,IAAI,sCAAsC,CACnD;AAED,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAmB,IAAI,CAAC;AAC/C,IAAA,MAAM,YAAY,GAAG,MAAM,CAAiB,IAAI,CAAC;;AAGjD,IAAA,mBAAmB,CAAC,YAAY,EAAE,MAAM,QAAQ,CAAC,OAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC;AAEtE,IAAA,MAAM,eAAe,GAAG,OAAO,CAAC,MAAK;AACnC,QAAA,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK;AAAE,YAAA,OAAO,OAAO;AACzC,QAAA,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,KAAI;AAC5B,YAAA,MAAM,KAAK,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,GAAG,GAAI,GAAkB,CAAC,QAAQ,CAAC;AAC3E,YAAA,OAAO,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,MAAA,GAAA,MAAA,GAAL,KAAK,CAAE,WAAW,EAAA,CAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;AAC3D,QAAA,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAErC,IAAA,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,GAAM,KAAI;AACT,QAAA,OAAO,OAAO,GAAG,KAAK,QAAQ,GAAG,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC;AACtD,IAAA,CAAC,EACD,CAAC,QAAQ,CAAC,CACX;AAED,IAAA,MAAM,QAAQ,GAAG,WAAW,CAC1B,CAAC,GAAM,KAAI;AACT,QAAA,OAAO,OAAO,GAAG,KAAK,QAAQ,GAAG,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC;AACtD,IAAA,CAAC,EACD,CAAC,QAAQ,CAAC,CACX;AAED,IAAA,MAAM,eAAe,GAAG,CAAC,GAAW,KAAI;;AACtC,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE;AACxB,QAAA,MAAM,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC;AAC1B,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC;AACd,QAAA,CAAA,EAAA,GAAA,QAAQ,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,KAAK,EAAE;AAC3B,IAAA,CAAC;;AAGD,IAAA,MAAM,sBAAsB,GAAG,WAAW,CACxC,CAAC,KAAqB,KAAI;;AAExB,QAAA,IAAI,KAAK,KAAK,IAAI,EAAE;YAClB,QAAQ,CAAC,QAAQ,GAAI,EAAU,GAAG,IAAI,CAAC;YACvC,QAAQ,CAAC,EAAE,CAAC;YACZ;QACF;;AAGA,QAAA,IAAI,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,YAAY,IAAI,KAAK,CAAC,MAAM,GAAG,YAAY,EAAE;;YAEnF;QACF;QAEA,QAAQ,CAAC,KAAgB,CAAC;QAC1B,QAAQ,CAAC,EAAE,CAAC;IACd,CAAC,EACD,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,CACnC;AAED;;;;AAIG;AACH,IAAA,MAAM,uBAAuB,GAAG,WAAW,CACzC,CAAC,GAAY,KAAI;;QAEf,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;YACrC,sBAAsB,CAAC,IAAI,CAAC;YAC5B;QACF;AAEA,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;;YAEtB,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;YAC/D,IAAI,QAAQ,EAAE;gBACZ,sBAAsB,CAAC,EAAoB,CAAC;gBAC5C;YACF;;YAEA,sBAAsB,CAAC,GAAqB,CAAC;YAC7C;QACF;;QAGA,sBAAsB,CAAC,GAAmB,CAAC;AAC7C,IAAA,CAAC,EACD,CAAC,sBAAsB,CAAC,CACzB;;IAGD,MAAM,kBAAkB,GAAG,WAAW,CACpC,OAAO,UAAkB,KAAI;AAC3B,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC;;YAEtC,IAAI,MAAM,EAAE;;gBAEV,sBAAsB,CAAC,MAAsB,CAAC;YAChD;iBAAO;;gBAEL,sBAAsB,CAAC,UAA0B,CAAC;YACpD;QACF;QAAE,OAAO,GAAG,EAAE;;AAEZ,YAAA,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC;QAC3C;AACF,IAAA,CAAC,EACD,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAChC;;;;IAKD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC1C,SAAS,CAAC,MAAK;AACb,QAAA,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC,QAAQ;AACtC,IAAA,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEpB,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,YAAoB,KAAI;;AAC9D,QAAA,IAAI;YACF,iBAAiB,CAAC,IAAI,CAAC;YACvB,OAAM,MAAA,WAAW,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,WAAA,EAAG,YAAY,CAAC,CAAA;QAC3C;QAAE,OAAO,GAAG,EAAE;AACZ,YAAA,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC;QAC9C;gBAAU;YACR,iBAAiB,CAAC,KAAK,CAAC;QAC1B;IACF,CAAC,EAAE,EAAE,CAAC;IAEN,SAAS,CAAC,MAAK;QACb,IAAI,KAAK,IAAI,cAAc;YAAE,YAAY,CAAC,cAAc,CAAC;IAC3D,CAAC,EAAE,CAAC,cAAc,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAEzC,QACEI,IAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,cAAc,CAAC,iBAAiB,EAAE,QAAQ,IAAI,WAAW,EAAE,cAAc,CAAC,EACrF,GAAG,EAAE,YAAY,EAAA,QAAA,EAAA,CAEhB,KAAK,KACJA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,CAAC,mCAAmC,EAAE,iBAAiB,CAAC,EAAA,QAAA,EAAA,CACpFF,GAAA,CAAC,KAAK,EAAA,EAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAA,eAAA,EAAiB,QAAQ,EAAA,QAAA,EAC/D,KAAK,EAAA,CACA,EACRA,GAAA,CAAC,WAAW,EAAA,EAAC,MAAM,EAAA,IAAA,EAAA,QAAA,EAAE,SAAS,EAAA,CAAe,CAAA,EAAA,CACzC,CACP,EAEDE,KAAC,QAAQ,EAAA,EACP,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,uBAA8B,EACxC,OAAO,EAAE,MAAM,QAAQ,CAAC,EAAE,CAAC,EAC3B,QAAQ,EAAE,QAAQ,EAAA,QAAA,EAAA,CAEjB,QAAQ,IACPA,IAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,cAAc,CAAC,UAAU,EAAE,oCAAoC,CAAC,EAC3E,GAAG,EAAE,YAAmB,EAAA,QAAA,EAAA,CAEvB,OAAO,CAAC,QAAQ,CAAC;gCAChB,CAAA,QAAQ,aAAR,QAAQ,KAAA,MAAA,GAAA,MAAA,GAAR,QAAQ,CAAE,MAAM,IAAG,CAAC;gCACpB,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,MACvBF,GAAA,CAAC,KAAK,EAAA,EAEJ,KAAK,EAAC,WAAW,EACjB,SAAS,EAAE,CAAC,QAAQ,EACpB,QAAQ,EAAE,MAAM,eAAe,CAAC,GAAG,CAAC,EAAA,QAAA,EAEnC,eAAe,CAAC,MAAM,CAAC,EAAA,EALnB,CAAA,EAAG,QAAQ,CAAC,MAAM,CAAC,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAM3B,CACT,CAAC,EAEJA,GAAA,CAAC,aAAa,EAAA,EACZ,SAAS,EAAC,oEAAoE,EAAA,YAAA,EAClE,IAAI,EAChB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAC,KAAK,EAClB,WAAW,EAAE,CAAA,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAA,MAAA,GAAA,MAAA,GAAR,QAAQ,CAAE,MAAM,IAAG,EAAE,GAAG,WAAW,EAChD,QAAQ,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,EAAE,EAAE,EAAE,EACN,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,CAAC,CAAC,KAAI;oCACf,IAAI,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,IAAI,CAAC,KAAK,EAAE;AAC/C,wCAAA,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AAClD,4CAAA,eAAe,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;wCACtC;oCACF;gCACF,CAAC,EAAA,aAAA,EACW,gBAAgB,EAAA,CAC5B,EAEFA,GAAA,CAAC,cAAc,EAAA,EACb,SAAS,EAAC,yCAAyC,EAAA,aAAA,EACvC,iBAAiB,YAE7BA,GAAA,CAACC,cAAe,EAAA,EAAC,SAAS,EAAE,gBAAgB,GAAI,EAAA,CACjC,CAAA,EAAA,CACb,KAENC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,UAAU,EAAC,GAAG,EAAE,YAAmB,EAAA,QAAA,EAAA,CAChDF,GAAA,CAAC,aAAa,EAAA,EAAA,YAAA,EACA,IAAI,EAChB,YAAY,EAAE,CAAC,MAAW,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,EACxE,YAAY,EAAC,KAAK,EAClB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACjD,SAAS,EAAE,UAAU,EACrB,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,CAAC,UAAU,EACrB,GAAG,EAAE,QAAQ,EAAA,aAAA,EACD,gBAAgB,EAAA,CAC5B,EAED,UAAU,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAC/BA,IAAC,MAAM,EAAA,EACL,IAAI,EAAC,IAAI,EACT,QAAQ,EAAA,IAAA,EAAA,YAAA,EACG,iBAAiB,EAC5B,KAAK,EAAC,WAAW,EACjB,OAAO,EAAC,OAAO,EACf,SAAS,EAAC,4CAA4C,EACtD,OAAO,EAAE,MAAM,sBAAsB,CAAC,QAAQ,GAAI,EAAU,GAAG,IAAI,CAAC,EACpE,QAAQ,EAAE,QAAQ,EAAA,aAAA,EACN,uBAAuB,EACnC,gBAAgB,EAAA,IAAA,EAAA,QAAA,EAEhBA,GAAA,CAACU,IAAK,EAAA,EAAC,SAAS,EAAC,6CAA6C,EAAA,CAAG,EAAA,CAC1D,CACV,EAEDV,GAAA,CAAC,cAAc,EAAA,EACb,SAAS,EAAC,yCAAyC,EAAA,aAAA,EACvC,iBAAiB,EAAA,QAAA,EAE7BA,GAAA,CAACC,cAAe,EAAA,EAAC,SAAS,EAAE,gBAAgB,EAAA,CAAI,EAAA,CACjC,CAAA,EAAA,CACb,CACP,EAEDD,IAAC,eAAe,EAAA,EACd,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,EAChC,EAAE,EAAC,KAAK,EACR,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,cAAc,CACvB,4IAA4I,EAC5I,6BAA6B,EAC7B,0IAA0I,EAC1I,sBAAsB,CACvB,EACD,UAAU,EAAA,IAAA,EAAA,aAAA,EACE,kBAAkB,EAAA,QAAA,EAE7B,cAAc,IACbA,GAAA,CAAC,QAAQ,EAAA,EAAA,aAAA,EACK,iBAAiB,EAC7B,SAAS,EAAC,wDAAwD,EAAA,QAAA,EAElEA,GAAA,CAAC,MAAM,EAAA,EAAC,IAAI,EAAC,IAAI,EAAA,CAAG,EAAA,CACX,IACT,sBAAsB,IACxBA,IAAC,QAAQ,EAAA,EAAC,SAAS,EAAC,yDAAyD,EAAA,QAAA,EAAA,mBAAA,EAAA,CAElE,KAEXE,IAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,CACG,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,MAC1BF,GAAA,CAAC,cAAc,EAAA,EAEb,QAAQ,EAAG,MAAqB,CAAC,QAAQ,EACzC,KAAK,EAAE,MAAM,EACb,SAAS,EAAC,0KAA0K,EAAA,QAAA,EAGpLE,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,6FAA6F,aAC1GF,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,WAAW,EAAA,QAAA,EAAE,eAAe,CAAC,MAAM,CAAC,EAAA,CAAQ,EAC5DA,GAAA,CAAC0B,QAAS,IAAC,SAAS,EAAC,qEAAqE,EAAA,CAAG,CAAA,EAAA,CACzF,EAAA,EATD,QAAQ,CAAC,MAAM,CAAC,CAUN,CAClB,CAAC,EAED,eAAe,CAAC,MAAM,KAAK,CAAC,KAC3B1B,4BACc,iBAAiB,EAC7B,SAAS,EAAC,kFAAkF,EAAA,QAAA,EAE3F,KAAK,IACJE,IAAA,CAAAyB,QAAA,EAAA,EAAA,QAAA,EAAA,CAAA,uBAAA,EACuB3B,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,eAAe,EAAA,QAAA,EAAE,KAAK,EAAA,CAAQ,CAAA,EAAA,CAClE,KAEH,aAAa,CACd,EAAA,CACG,CACP,EAEA,QAAQ,KACPA,GAAA,CAAC,cAAc,IACb,KAAK,EAAE,KAAK,EACZ,SAAS,EAAC,uHAAuH,EACjI,OAAO,EAAE,MAAM,KAAK,kBAAkB,CAAC,KAAK,CAAC,EAAA,QAAA,EAG7CE,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,yBAAyB,EAAA,QAAA,EAAA,CACtCF,GAAA,CAAC4B,aAAc,EAAA,EAAC,SAAS,EAAC,UAAU,EAAA,CAAG,EACvC1B,IAAA,CAAC,WAAW,EAAA,EAAA,QAAA,EAAA,CACT,UAAU,EAAA,KAAA,EAAI,KAAK,EAAA,IAAA,CAAA,EAAA,CACR,CAAA,EAAA,CACV,EAAA,CACS,CAClB,CAAA,EAAA,CACG,CACP,EAAA,CACe,CAAA,EAAA,CACT,EAEV,gBAAgB,IAAI,KAAK,KACxBF,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,MAAM,EAAA,QAAA,EACnBA,IAAC,WAAW,EAAA,EAAC,KAAK,EAAA,IAAA,EAAC,KAAK,EAAA,IAAA,EAAA,QAAA,EACrB,KAAK,EAAA,CACM,EAAA,CACV,CACP,CAAA,EAAA,CACG;AAEV,CAAC;;AC1ZI,MAAM,IAAI,GAAwB,CAAC,EACxC,IAAI,EACJ,YAAY,GAAG,CAAC,EAChB,aAAa,EACb,QAAQ,EACR,OAAO,GAAG,WAAW,EACrB,WAAW,GAAG,YAAY,EAC1B,OAAO,GAAG,KAAK,EACf,SAAS,GAAG,EAAE,EACd,SAAS,GAAG,EAAE,EACd,WAAW,GAAG,EAAE,GACjB,KAAI;AACH,IAAA,MAAM,UAAU,GAAG,WAAW,KAAK,UAAU;AAE7C,IAAA,QACEE,IAAA,CAAC,QAAQ,EAAA,EACP,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE,cAAc,CACvB,UAAU,IAAI,YAAY,EAC1B,OAAO,IAAI,CAAC,UAAU,IAAI,QAAQ,EAClC,SAAS,CACV,EAAA,QAAA,EAAA,CAEDF,GAAA,CAAC,OAAO,EAAA,EACN,SAAS,EAAE,cAAc,CACvB,UAAU,GAAG,qBAAqB,GAAG,YAAY,EACjD,OAAO,IAAI,CAAC,UAAU,IAAI,QAAQ,EAClC,SAAS,CACV,EAAA,QAAA,EAEA,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;;AAAC,oBAAA,QACtBA,GAAA,CAAC,GAAG,EAAA,EAAqB,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAEsB,UAAQ,YAC1D,CAAC,EAAE,QAAQ,EAAE,MACZpB,iBACE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EACtB,SAAS,EAAE,aAAa,CAAC;gCACvB,QAAQ;gCACR,OAAO;gCACP,OAAO;gCACP,UAAU;gCACV,QAAQ,EAAE,GAAG,CAAC,QAAQ;AACvB,6BAAA,CAAC,EAAA,QAAA,EAAA,CAED,GAAG,CAAC,IAAI,IAAIF,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,sBAAsB,EAAA,QAAA,EAAE,GAAG,CAAC,IAAI,EAAA,CAAQ,EACpE,GAAG,CAAC,KAAK,CAAA,EAAA,CACH,CACV,EAAA,EAfO,CAAA,EAAA,GAAA,GAAG,CAAC,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,GAAG,CAgBjB;AACP,gBAAA,CAAA,CAAC,EAAA,CACM,EAEVA,GAAA,CAAC,SAAS,EAAA,EAAC,SAAS,EAAE,cAAc,CAAC,UAAU,GAAG,QAAQ,GAAG,MAAM,EAAE,WAAW,CAAC,YAC9E,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;;oBAAC,QACtBA,GAAA,CAAC,QAAQ,EAAA,EAEP,SAAS,EACP,GAAG,CAAC,UAAU,KAAK;8BACf,GAAG,CAAC;AACN,8BAAE,oDAAoD,EAAA,QAAA,EAGzD,GAAG,CAAC,OAAO,EAAA,EAPP,CAAA,EAAA,GAAA,GAAG,CAAC,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,GAAG,CAQT;iBACZ,CAAC,EAAA,CACQ,CAAA,EAAA,CACH;AAEf;AAEA,SAAS,aAAa,CAAC,EACrB,QAAQ,EACR,OAAO,EACP,OAAO,EACP,UAAU,EACV,QAAQ,GAOT,EAAA;AACC,IAAA,MAAM,IAAI,GAAG,cAAc,CACzB,4FAA4F,EAC5F,8EAA8E,EAC9E,OAAO,IAAI,CAAC,UAAU,IAAI,uBAAuB,CAClD;AAED,IAAA,IAAI,YAAoB;IAExB,QAAQ,OAAO;AACb,QAAA,KAAK,WAAW;AACd,YAAA,YAAY,GAAG;AACb,kBAAE,cAAc,CACZ,uCAAuC,EACvC;AACE,sBAAE;sBACA,gJAAgJ;AAExJ,kBAAE,cAAc,CACZ,iGAAiG,EACjG,QAAQ;AACN,oBAAA,6IAA6I,CAChJ;YACL;AAEF,QAAA,KAAK,WAAW;AACd,YAAA,YAAY,GAAG,cAAc,CAC3B,wBAAwB,EACxB;AACE,kBAAE;kBACA,2EAA2E,CAChF;YACD;AAEF,QAAA,KAAK,OAAO;AACV,YAAA,YAAY,GAAG,cAAc,CAC3B,wBAAwB,EACxB;AACE,kBAAE;kBACA,wGAAwG,CAC7G;YACD;;IAGJ,OAAO,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC;AACrD;;AC/HO,MAAM,QAAQ,GAAG,UAAU,CAAqC,CAAC,KAAK,EAAE,GAAG,KAAI;IACpF,MAAM,EACJ,IAAI,EACJ,EAAE,GAAG,IAAI,EACT,KAAK,GAAG,IAAI,EACZ,SAAS,GAAG,IAAI,EAChB,SAAS,GAAG,EAAE,EACd,UAAU,GAAG,EAAE,EACf,iBAAiB,GAAG,EAAE,EACtB,cAAc,GAAG,EAAE,EACnB,KAAK,EACL,gBAAgB,GAAG,IAAI,EACvB,UAAU,GAAG,IAAI,EACjB,SAAS,GAAG,IAAI,EAChB,GAAG,UAAU,EACd,GAAG,KAAK;AACT,IAAA,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;IAChC,MAAM,aAAa,GAAG,UAAU,IAAI,IAAI,IAAI,UAAU,KAAK,SAAS;IACpE,MAAM,YAAY,GAAG,SAAS,IAAI,IAAI,IAAI,SAAS,KAAK,SAAS;AAEjE,IAAA,QACEE,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,CAAC,OAAO,EAAE,QAAQ,IAAI,WAAW,EAAE,cAAc,CAAC,EAAA,QAAA,EAAA,CAC7E,KAAK,KACJA,IAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,cAAc,CAAC,wCAAwC,EAAE,iBAAiB,CAAC,aAEtFF,GAAA,CAAC,KAAK,EAAA,EAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,YACtC,KAAK,EAAA,CACA,EACRA,GAAA,CAAC,WAAW,EAAA,EAAC,MAAM,kBAAE,SAAS,EAAA,CAAe,IACzC,CACP,EACDE,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,UAAU,EAAA,QAAA,EAAA,CACtB,YAAY,KACXF,cAAM,SAAS,EAAC,6DAA6D,EAAA,QAAA,EAC1E,SAAS,EAAA,CACL,CACR,EACDA,GAAA,CAAA,UAAA,EAAA,EACE,GAAG,EAAE,GAAG,EACR,YAAY,EAAC,KAAK,EAAA,GACd,UAAU,EACd,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,EAAE,EACN,SAAS,EAAE,cAAc,CACvB,gBAAgB,EAChB,qEAAqE,EACrE,gEAAgE,EAChE,wCAAwC,EACxC,4FAA4F,EAC5F,2GAA2G,EAC3G,4CAA4C,EAC5C,mDAAmD,EACnD,2BAA2B,EAC3B,aAAa,GAAG,OAAO,GAAG,EAAE,EAC5B,YAAY,GAAG,OAAO,GAAG,EAAE,EAC3B,SAAS,CACV,EAAA,CACD,EACD,aAAa,KACZA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,iEAAiE,YAC9E,UAAU,EAAA,CACN,CACR,CAAA,EAAA,CACG,EACL,gBAAgB,IAAI,KAAK,KACxBA,aAAK,SAAS,EAAC,MAAM,EAAA,QAAA,EACnBA,GAAA,CAAC,WAAW,EAAA,EAAC,KAAK,EAAA,IAAA,EAAC,KAAK,kBACrB,KAAK,EAAA,CACM,GACV,CACP,CAAA,EAAA,CACG;AAEV,CAAC;;ACnED;;AAEG;AACH,MAAM,OAAO,GAAG;AACd,IAAA,OAAO,EAAEA,GAAA,CAAC6B,cAAW,IAAC,SAAS,EAAC,iCAAiC,EAAA,CAAG;AACpE,IAAA,KAAK,EAAE7B,GAAA,CAAC8B,cAAW,IAAC,SAAS,EAAC,gCAAgC,EAAA,CAAG;AACjE,IAAA,IAAI,EAAE9B,GAAA,CAAC+B,OAAI,IAAC,SAAS,EAAC,8BAA8B,EAAA,CAAG;AACvD,IAAA,OAAO,EAAE/B,GAAA,CAACgC,gBAAa,IAAC,SAAS,EAAC,iCAAiC,EAAA,CAAG;CACvE;AAED,MAAM,YAAY,GAAG;AACnB,IAAA,OAAO,EAAE,+BAA+B;AACxC,IAAA,KAAK,EAAE,8BAA8B;AACrC,IAAA,IAAI,EAAE,4BAA4B;AAClC,IAAA,OAAO,EAAE,+BAA+B;CACzC;AAED,MAAM,WAAW,GAAG;AAClB,IAAA,OAAO,EAAE,uCAAuC;AAChD,IAAA,KAAK,EAAE,sCAAsC;AAC7C,IAAA,IAAI,EAAE,oCAAoC;AAC1C,IAAA,OAAO,EAAE,uCAAuC;CACjD;MAEY,KAAK,GAA+C,CAAC,EAChE,OAAO,EACP,IAAI,EACJ,OAAO,EACP,SAAS,EACT,EAAE,EACF,KAAK,GAAG,IAAI,GACb,KAAI;IACH,MAAM,SAAS,GAAG,KAAK,GAAG,mCAAmC,GAAG,kCAAkC;IAClG,MAAM,OAAO,GAAG,KAAK,GAAG,mCAAmC,GAAG,kCAAkC;AAChG,IAAA,QACEhC,GAAA,CAAC,UAAU,EAAA,EACT,MAAM,EAAA,IAAA,EACN,IAAI,EAAA,IAAA,EACJ,KAAK,EAAC,mCAAmC,EACzC,SAAS,EAAE,SAAS,EACpB,OAAO,EAAC,qCAAqC,EAC7C,KAAK,EAAC,yBAAyB,EAC/B,SAAS,EAAC,qCAAqC,EAC/C,OAAO,EAAE,OAAO,EAAA,QAAA,EAEhBE,IAAA,CAAA,KAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,cAAc,CACvB,+EAA+E,EAC/E,gDAAgD,EAChD,WAAW,CAAC,IAAI,CAAC,EACjB,SAAS,CACV,EACD,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAA,QAAA,EAAA,CAGjBF,GAAA,CAAC,WAAW,EAAA,EAAC,SAAS,EAAE,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAA,QAAA,EAAG,OAAO,CAAC,IAAI,CAAC,EAAA,CAAe,EAGzFA,GAAA,CAAC,WAAW,EAAA,EAAC,SAAS,EAAC,4BAA4B,EAAA,QAAA,EAAE,OAAO,EAAA,CAAe,EAG3EA,GAAA,CAAC,MAAM,EAAA,EACL,OAAO,EAAE,OAAO,EAAA,YAAA,EACL,aAAa,EACxB,SAAS,EAAC,yCAAyC,EACnD,QAAQ,EAAA,IAAA,EACR,IAAI,EAAC,IAAI,EACT,OAAO,EAAC,OAAO,EACf,KAAK,EAAC,WAAW,EACjB,gBAAgB,EAAA,IAAA,EAAA,QAAA,EAEhBA,GAAA,CAACU,IAAK,EAAA,EAAC,SAAS,EAAC,QAAQ,EAAA,CAAG,EAAA,CACrB,CAAA,EAAA,CACL,EAAA,CACK;AAEjB;;AC9EA,MAAM,YAAY,GAAG,aAAa,CAA+B,SAAS,CAAC;AAC3E,IAAI,YAAY,GAAG,CAAC;AAEb,MAAM,QAAQ,GAAG,MAAuB;AAC7C,IAAA,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC;AACxC,IAAA,IAAI,CAAC,OAAO;AAAE,QAAA,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC;AAC3E,IAAA,OAAO,OAAO;AAChB;AAEA;AACA,MAAM,UAAU,GAAG,CAAC;AAEpB,MAAM,cAAc,GAAmC;AACrD,IAAA,WAAW,EAAE,0BAA0B;AACvC,IAAA,UAAU,EAAE,2BAA2B;AACvC,IAAA,YAAY,EAAE,+CAA+C;AAE7D,IAAA,cAAc,EAAE,6BAA6B;AAC7C,IAAA,aAAa,EAAE,8BAA8B;AAC7C,IAAA,eAAe,EAAE,kDAAkD;CACpE;AAEM,MAAM,aAAa,GAGrB,CAAC,EAAE,QAAQ,EAAE,SAAS,GAAG,YAAY,EAAE,KAAI;IAC9C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC;IAClD,MAAM,WAAW,GAAG,MAAM,CAAmB,IAAI,GAAG,EAAE,CAAC;AAEvD,IAAA,MAAM,UAAU,GAAG,CAAC,EAAU,KAAI;QAChC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3C,IAAI,OAAO,EAAE;YACX,YAAY,CAAC,OAAO,CAAC;AACrB,YAAA,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC;AACF,IAAA,CAAC;AAED,IAAA,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,EAAU,KAAI;QAC5C,UAAU,CAAC,EAAE,CAAC;QACd,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,KAAa,KAAI;QAChB,IAAI,CAAC,KAAK,CAAC,SAAS;YAAE;AAEtB,QAAA,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;AAEpB,QAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAK;AAC9B,YAAA,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;AACtB,QAAA,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;QAElB,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC;AAC5C,IAAA,CAAC,EACD,CAAC,UAAU,CAAC,CACb;IAED,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO;AAChC,QAAA,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC,EAAE,EAAE,CAAC;IAEN,MAAM,SAAS,GAAG,WAAW,CAC3B,CAAC,OAAe,EAAE,OAAsB,KAAI;;AAC1C,QAAA,MAAM,EAAE,GAAG,EAAE,YAAY;AAEzB,QAAA,MAAM,QAAQ,GAAW;YACvB,EAAE;YACF,OAAO;YACP,IAAI,EAAE,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,MAAM;YAC7B,QAAQ,EAAE,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,IAAI;YACnC,SAAS,EAAE,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,IAAI;YACrC,YAAY,EAAE,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,IAAI;SAC5C;AAED,QAAA,SAAS,CAAC,CAAC,IAAI,KAAI;YACjB,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC;AACnC,YAAA,IAAI,OAAO,CAAC,MAAM,GAAG,UAAU;gBAAE,OAAO,CAAC,KAAK,EAAE;AAChD,YAAA,OAAO,OAAO;AAChB,QAAA,CAAC,CAAC;QAEF,aAAa,CAAC,QAAQ,CAAC;AACzB,IAAA,CAAC,EACD,CAAC,aAAa,CAAC,CAChB;IAED,QACER,IAAA,CAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,EAAA,QAAA,EAAA,CACpD,QAAQ,EAGTF,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,cAAc,CACvB,oDAAoD,EACpD,cAAc,CAAC,SAAS,CAAC,CAC1B,EAAA,QAAA,EAEA,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,MACvBA,aAEE,SAAS,EAAC,qBAAqB,EAC/B,YAAY,EAAE,MAAM,KAAK,CAAC,YAAY,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,EAC9D,YAAY,EAAE,MAAM,KAAK,CAAC,YAAY,IAAI,aAAa,CAAC,KAAK,CAAC,EAAA,QAAA,EAE9DA,GAAA,CAAC,KAAK,EAAA,EAAA,GACA,KAAK,EACT,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,EAClC,OAAO,EAAE,MAAM,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,EAAA,CACnC,EAAA,EATG,KAAK,CAAC,EAAE,CAUT,CACP,CAAC,EAAA,CACE,CAAA,EAAA,CACgB;AAE5B;;ACvHA,MAAMqB,oBAAkB,GAAqC;AAC3D,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,OAAO,EAAE,WAAW;AACpB,IAAA,QAAQ,EAAE,WAAW;CACtB;AAEM,MAAM,cAAc,GAAG,CAAC,EAC7B,KAAK,EACL,KAAK,EACL,IAAI,GACyC,KAAI;;AACjD,IAAA,MAAM,EACJ,KAAK,EACL,OAAO,EACP,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,OAAO,GAAG,SAAS,EACnB,OAAO,EACP,UAAU,EACV,MAAM,EACN,UAAU,EACV,SAAS,EACT,eAAe,GAChB,GAAG,IAAI;AACR,IAAA,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;IACzB,MAAM,SAAS,GAAG,OAAO,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC;AAC5C,IAAA,MAAM,GAAG,GAAG,CAAA,EAAA,GAAA,MAAM,aAAN,MAAM,KAAA,MAAA,GAAA,MAAA,GAAN,MAAM,CAAG,IAAI,EAAE,KAAK,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,KAAK;IAC1C,MAAM,aAAa,GAAG,CAAC,eAAe,IAAI,eAAe,CAAC,IAAI,CAAC;IAE/D,MAAM,gBAAgB,GAAG,CAAC;AACxB,UAAE;AACF,UAAE,OAAO,QAAQ,KAAK;AACpB,cAAE,QAAQ,CAAC,IAAI,EAAE,KAAK;cACpB,QAAQ;AAEd,IAAA,MAAM,YAAY,GAAG,CAAC,GAAoB,KAAY;QACpD,IAAI,CAAC,GAAG,CAAC,SAAS;AAAE,YAAA,OAAO,EAAE;AAC7B,QAAA,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU;AAAE,YAAA,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;QACnE,OAAO,GAAG,CAAC,SAAS;AACtB,IAAA,CAAC;AAED,IAAA,MAAM,gBAAgB,GAAGA,oBAAkB,CAAC,OAAO,CAAC;IAEpD,QACEnB,IAAA,CAAA,KAAA,EAAA,EACE,IAAI,EAAC,KAAK,EACV,SAAS,EAAE,cAAc,CACvB,yEAAyE,EACzE,UAAU,IAAI,gBAAgB,EAC9B,SAAS,IAAI,gCAAgC,EAC7C,gBAAgB,CACjB,EACD,KAAK,EAAE;AACL,YAAA,GAAG,KAAK;AACR,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,mBAAmB,EAAE,YAAY;AACjC,YAAA,QAAQ,EAAE,aAAa;SACxB,EACD,OAAO,EAAE,UAAU,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,SAAS,EAAA,QAAA,EAAA,CAE9D,UAAU,KACTF,GAAA,CAAA,KAAA,EAAA,EACE,IAAI,EAAC,MAAM,EACX,SAAS,EAAE,cAAc,CACvB,wFAAwF,EACxF,gBAAgB,EAChB,SAAS,IAAI,gCAAgC,CAC9C,EACD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,EAAA,QAAA,EAEnCA,IAAC,QAAQ,EAAA,EAAA,YAAA,EACI,YAAY,EACvB,OAAO,EAAE,CAAA,EAAA,GAAA,UAAU,KAAA,IAAA,IAAV,UAAU,KAAA,MAAA,GAAA,MAAA,GAAV,UAAU,CAAG,GAAG,CAAC,mCAAI,KAAK,EACnC,QAAQ,EAAE,CAAC,aAAa,EACxB,QAAQ,EAAE,MAAM,SAAS,KAAA,IAAA,IAAT,SAAS,KAAA,MAAA,GAAA,MAAA,GAAT,SAAS,CAAG,GAAG,CAAC,EAAA,CAChC,EAAA,CACE,CACP,EACA,OAAO,CAAC,GAAG,CAAC,CAAC,GAAoB,KAAI;;AACpC,gBAAA,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAA,EAAA,GAAA,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,SAAS,CAAC;AAElF,gBAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAEE,IAAI,EAAC,MAAM,EACX,SAAS,EAAE,cAAc,CACvB,sEAAsE,EACtE,gBAAgB,EAChB,GAAG,CAAC,KAAK,KAAK,QAAQ,IAAI,aAAa,EACvC,GAAG,CAAC,KAAK,KAAK,OAAO,IAAI,YAAY,EACrC,GAAG,CAAC,MAAM,KAAK,MAAM;AACnB,wBAAA,kFAAkF,EACpF,GAAG,CAAC,MAAM,KAAK,OAAO;AACpB,wBAAA,oFAAoF,EACtF,SAAS,IAAI,gCAAgC,EAC7C,YAAY,CAAC,GAAG,CAAC,CAClB,EAAA,QAAA,EAEA,OAAO,EAAA,EAfH,GAAG,CAAC,IAAI,CAgBT;YAEV,CAAC,CAAC,CAAA,EAAA,CACE;AAEV,CAAC;;ACnGD,MAAM,sBAAsB,GAAG,MAAM;AAErC,MAAM,kBAAkB,GAAqC;AAC3D,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,OAAO,EAAE,WAAW;AACpB,IAAA,QAAQ,EAAE,WAAW;CACtB;AAED,MAAM,WAAW,GAAG,CAAC,GAAoB,KAAY;IACnD,IAAI,CAAC,GAAG,CAAC,KAAK;AAAE,QAAA,OAAO,KAAK;AAC5B,IAAA,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ;AAAE,QAAA,OAAO,CAAA,EAAG,GAAG,CAAC,KAAK,IAAI;IAC1D,OAAO,GAAG,CAAC,KAAK;AAClB,CAAC;AAEK,SAAU,oBAAoB,CAAsD,EACxF,KAAK,EACL,OAAO,EACP,OAAO,GAAG,EAAE,EACZ,MAAM,EACN,OAAO,GAAG,KAAK,EACf,YAAY,GAAG,mBAAmB,EAClC,cAAc,GAAG,EAAE,EACnB,YAAY,GAAG,EAAE,EACjB,UAAU,EACV,QAAQ,EACR,OAAO,GAAG,SAAS,EACnB,OAAO,GAAG,KAAK,EACf,SAAS,GAAG,EAAE,EACd,SAAS,GAAG,GAAG,EACf,aAAa,GAAG,CAAC,EACjB,MAAM,GAAG,IAAI,EACb,UAAU,GAAG,KAAK,EAClB,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,GACc,EAAA;AAC7B,IAAA,MAAM,SAAS,GAAG,MAAM,CAAM,IAAI,CAAC;AACnC,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAiB,IAAI,CAAC;AAC7C,IAAA,MAAM,SAAS,GAAG,MAAM,CAAwB,IAAI,CAAC;IAErD,MAAM,MAAM,GAAG,WAAW,CACxB,CAAC,IAAO,EAAE,GAAW,KAAqB;;QACxC,IAAI,OAAO,MAAM,KAAK,UAAU;AAAE,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC;AACrD,QAAA,OAAO,MAAC,IAAY,CAAC,MAAM,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,GAAG;AACrC,IAAA,CAAC,EACD,CAAC,MAAM,CAAC,CACT;AAED,IAAA,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC;QACtF,KAAK;QACL,MAAM;QACN,eAAe;QACf,sBAAsB;QACtB,iBAAiB;QACjB,eAAe;AAChB,KAAA,CAAC;AAEF,IAAA,MAAM,YAAY,GAAG,OAAO,CAAC,MAAK;AAChC,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,GAAG,CAAC,CAAC;QACrD,OAAO,UAAU,GAAG,CAAC,sBAAsB,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AACtF,IAAA,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAEzB,IAAA,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,OAAO,CAAC;AAEpD,IAAA,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IAEnE,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO;AAC3B,QAAA,IAAI,CAAC,EAAE;YAAE;QACT,MAAM,OAAO,GAAG,MAAK;YACnB,IAAI,SAAS,CAAC,OAAO;gBAAE,SAAS,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU;AACrE,QAAA,CAAC;AACD,QAAA,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC;QACtC,OAAO,MAAM,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC;IACxD,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,MAAuB,KAAI;QAC1B,IAAI,MAAM,CAAC,QAAQ;AAAE,YAAA,MAAM,aAAN,MAAM,KAAA,MAAA,GAAA,MAAA,GAAN,MAAM,CAAG,MAA4B,CAAC;AAC7D,IAAA,CAAC,EACD,CAAC,MAAM,CAAC,CACT;AAED,IAAA,MAAM,QAAQ,GAAG,OAAO,CACtB,OAAO;QACL,KAAK;QACL,OAAO;QACP,YAAY;QACZ,UAAU;QACV,QAAQ;QACR,OAAO;QACP,OAAO;QACP,UAAU;QACV,MAAM;QACN,UAAU;QACV,SAAS;QACT,eAAe;AAChB,KAAA,CAAC,EACF;QACE,KAAK;QACL,OAAO;QACP,YAAY;QACZ,UAAU;QACV,QAAQ;QACR,OAAO;QACP,OAAO;QACP,UAAU;QACV,MAAM;QACN,UAAU;QACV,SAAS;QACT,eAAe;AAChB,KAAA,CACF;AAED;;AAE6D;AAC7D,IAAA,MAAM,MAAM,IACVA,GAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,SAAS,EAAE,SAAS,EAAC,wBAAwB,EAAA,QAAA,EACrDE,IAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAC,qEAAqE,EAC/E,KAAK,EAAE,EAAE,mBAAmB,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAA,QAAA,EAAA,CAEpE,UAAU,KACTF,GAAA,CAAA,KAAA,EAAA,EACE,IAAI,EAAC,cAAc,EACnB,SAAS,EAAE,cAAc,CACvB,sEAAsE,EACtE,gBAAgB,CACjB,EAAA,QAAA,EAEDA,GAAA,CAAC,QAAQ,EAAA,EAAA,YAAA,EACI,iBAAiB,EAC5B,OAAO,EAAE,WAAW,EACpB,GAAG,EAAE,CAAC,EAAE,KAAI;AACV,4BAAA,IAAI,EAAE;AAAE,gCAAA,EAAE,CAAC,aAAa,GAAG,YAAY;AACzC,wBAAA,CAAC,EACD,QAAQ,EAAE,SAAS,EAAA,CACnB,GACE,CACP,EACA,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,MACfA,GAAA,CAAA,KAAA,EAAA,EAEE,IAAI,EAAC,cAAc,EACnB,SAAS,EAAE,cAAc,CACvB,2DAA2D,EAC3D,gBAAgB,EAChB,oDAAoD,EACpD,GAAG,CAAC,MAAM,KAAK,MAAM;AACnB,wBAAA,oFAAoF,EACtF,GAAG,CAAC,MAAM,KAAK,OAAO;AACpB,wBAAA,sFAAsF,EACxF,GAAG,CAAC,WAAW,CAChB,YAEDE,IAAA,CAAC,WAAW,EAAA,EACV,IAAI,EAAE,GAAG,CAAC,QAAQ,GAAG,QAAQ,GAAG,SAAS,EACzC,SAAS,EAAE,cAAc,CACvB,GAAG,CAAC,QAAQ,IAAI,2DAA2D,CAC5E,EACD,OAAO,EAAE,MAAM,UAAU,CAAC,GAAG,CAAC,EAAA,QAAA,EAAA,CAE7B,GAAG,CAAC,KAAK,EACT,GAAG,CAAC,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAA,EAAA,CACzC,EAAA,EAtBT,GAAG,CAAC,IAAI,CAuBT,CACP,CAAC,CAAA,EAAA,CACE,EAAA,CACF,CACP;IAED,MAAM,UAAU,GAAG,cAAc,CAC/B,6DAA6D,EAC7D,YAAY,CACb;AAED;;AAE6D;IAC7D,IAAI,OAAO,EAAE;QACX,QACEF,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,CAAC,4BAA4B,EAAE,cAAc,CAAC,EAAA,QAAA,EAC1EE,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,UAAU,EAAA,QAAA,EAAA,CACvB,MAAM,EACPF,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,SAAS,EAAC,eAAe,EAAA,QAAA,EACzD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAC/CE,IAAA,CAAA,KAAA,EAAA,EAAA,aAAA,EAEc,cAAc,EAC1B,SAAS,EAAC,uFAAuF,EACjG,KAAK,EAAE,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,EAAA,QAAA,EAAA,CAE9D,UAAU,IAAIF,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,gBAAgB,EAAA,CAAI,EAClD,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,MACfA,GAAA,CAAA,KAAA,EAAA,EAAoB,SAAS,EAAE,gBAAgB,EAAA,QAAA,EAC7CA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,gDAAgD,EAAA,CAAG,EAAA,EAD1D,GAAG,CAAC,IAAI,CAEZ,CACP,CAAC,CAAA,EAAA,EAVG,GAAG,CAWJ,CACP,CAAC,EAAA,CACE,CAAA,EAAA,CACF,EAAA,CACF;IAEV;AAEA;;AAE6D;AAC7D,IAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACtB,QAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,CAAC,4BAA4B,EAAE,cAAc,CAAC,YAC1EE,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,UAAU,aACvB,MAAM,EACPF,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAC,mEAAmE,EAC7E,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,YAE3B,YAAY,EAAA,CACT,CAAA,EAAA,CACF,EAAA,CACF;IAEV;AAEA;;AAE6D;AAC7D,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,CAAC,4BAA4B,EAAE,cAAc,CAAC,EAAA,QAAA,EAC1EE,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,UAAU,EAAA,QAAA,EAAA,CACvB,MAAM,EACPF,GAAA,CAACiC,aAAI,EAAA,EACH,GAAG,EAAE,SAAS,EACd,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAC,MAAM,EACZ,SAAS,EAAE,KAAK,CAAC,MAAM,EACvB,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,aAAa,EAAA,QAAA,EAE3B,cAAc,EAAA,CACV,CAAA,EAAA,CACH,EAAA,CACF;AAEV;;ACrQO,MAAM,WAAW,GAAG,MAAK;IAC9B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IAE/C,SAAS,CAAC,MAAK;QACb,MAAM,MAAM,GAAG,MAAK;AAClB,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU;AAE/B,YAAA,MAAM,OAAO,GAAG,SAAS,CAAC,cAAc,GAAG,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,OAAO;AAE9F,YAAA,WAAW,CAAC,KAAK,GAAG,GAAG,IAAI,OAAO,CAAC;AACrC,QAAA,CAAC;AAED,QAAA,MAAM,EAAE;AACR,QAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC;QACzC,OAAO,MAAM,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC3D,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,OAAO,QAAQ;AACjB;;AClBO,MAAM,WAAW,GAAG,MAAK;IAC9B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IAE/C,SAAS,CAAC,MAAK;QACb,MAAM,MAAM,GAAG,MAAK;AAClB,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU;AAE/B,YAAA,MAAM,OAAO,GAAG,SAAS,CAAC,cAAc,GAAG,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,OAAO;YAE9F,WAAW,CAAC,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,CAAC;AACvD,QAAA,CAAC;AAED,QAAA,MAAM,EAAE;AACR,QAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC;QACzC,OAAO,MAAM,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC3D,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,OAAO,QAAQ;AACjB;;ACjBO,MAAM,mBAAmB,GAAG,MAAK;AACtC,IAAA,MAAM,QAAQ,GAAG,WAAW,EAAE;AAC9B,IAAA,MAAM,QAAQ,GAAG,WAAW,EAAE;IAE9B,OAAO,QAAQ,IAAI,QAAQ;AAC7B;;;;"}