@shortstravelmgmt/component-lib 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +18 -2
- package/dist/index.esm.js +253 -246
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +253 -245
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.css.map +1 -1
- package/package.json +1 -1
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/atoms/Icons/index.tsx","../src/atoms/Alert/Alert.tsx","../src/atoms/Avatar/Avatar.tsx","../src/atoms/Badge/Badge.tsx","../src/atoms/Button/Button.tsx","../src/atoms/Checkbox/Checkbox.tsx","../src/atoms/Datepicker/Datepicker.tsx","../src/atoms/Input/Input.tsx","../src/atoms/Metric/Metric.tsx","../src/atoms/Select/Select.tsx","../src/atoms/Spinner/Spinner.tsx","../src/atoms/StatusBadge/StatusBadge.tsx","../src/atoms/Tag/Tag.tsx","../src/atoms/Timepicker/Timepicker.tsx","../src/atoms/Title/Title.tsx","../src/atoms/Toggle/Toggle.tsx","../src/atoms/Tooltip/Tooltip.tsx","../src/atoms/TravelServiceIcon/TravelServiceIcon.tsx","../src/atoms/TypeIcon/TypeIcon.tsx","../src/molecules/Accordion/Accordion.tsx","../src/molecules/CalendarSelectors/CalendarSelectors.tsx","../src/molecules/Dropdown/Dropdown.tsx","../src/molecules/FilterChip/FilterChip.tsx","../src/molecules/FormField/FormField.tsx","../src/molecules/FormRow/FormRow.tsx","../src/molecules/FormSection/FormSection.tsx","../src/molecules/FormStack/FormStack.tsx","../src/molecules/ManifestViewToggle/ManifestViewToggle.tsx","../src/molecules/NavItem/NavItem.tsx","../src/molecules/Progress/Progress.tsx","../src/molecules/RosterToolbar/RosterToolbar.tsx","../src/molecules/SearchField/SearchField.tsx","../src/molecules/SchoolContactForm/SchoolContactForm.tsx","../src/molecules/Segment/Segment.tsx","../src/molecules/SelectFilter/SelectFilter.tsx","../src/molecules/ServiceToggle/ServiceToggle.tsx","../src/molecules/SupplierTypeToggle/SupplierTypeToggle.tsx","../src/molecules/TeamHeader/TeamHeader.tsx","../src/molecules/TripSegment/TripSegment.tsx","../src/organisms/Sidenav/Sidenav.tsx","../src/organisms/Topbar/Topbar.tsx","../src/organisms/AppLayout/AppLayout.tsx","../src/organisms/Card/Card.tsx","../src/organisms/ContactList/ContactList.tsx","../src/organisms/Drawer/Drawer.tsx","../src/organisms/DueDatesDrawer/DueDatesDrawer.tsx","../src/organisms/MembershipPrograms/MembershipPrograms.tsx","../src/organisms/ManifestCapacityStats/ManifestCapacityStats.tsx","../src/organisms/Modal/Modal.tsx","../src/organisms/Module/Module.tsx","../src/organisms/PageBanners/PageBanners.tsx","../src/organisms/PreferencesPanel/PreferencesPanel.tsx","../src/organisms/RequestSummary/RequestSummary.tsx","../src/organisms/RequestFormLayout/RequestFormLayout.tsx","../src/organisms/Table/Table.tsx","../src/organisms/TeamCard/TeamCard.tsx","../src/organisms/TeamScheduleActions/TeamScheduleActions.tsx","../src/organisms/TeamScheduleExpandedTable/TeamScheduleExpandedTable.tsx","../src/organisms/TravelSummaryMetrics/TravelSummaryMetrics.tsx","../src/organisms/TravelerForm/TravelerForm.tsx","../src/organisms/TripTable/TripTable.tsx","../src/pages/AdministrationPage/AdministrationPage.tsx","../src/pages/CharterManifestPage/CharterManifestPage.tsx","../src/pages/ContactUsPage/ContactUsPage.tsx","../src/pages/DashboardPage/DashboardPage.tsx","../src/pages/GroupTravelRequestPage/GroupTravelRequestPage.tsx","../src/pages/IndividualTravelPage/IndividualTravelPage.tsx","../src/pages/InfoCenterPage/InfoCenterPage.tsx","../src/pages/NotFoundPage/NotFoundPage.tsx","../src/pages/TeamManagementPage/TeamManagementPage.tsx","../src/pages/TeamSchedulePage/TeamSchedulePage.tsx","../src/pages/TeamTravelCalendarPage/TeamTravelCalendarPage.tsx","../src/pages/TripDetailPage/TripDetailPage.tsx"],"sourcesContent":["import React, { SVGProps } from 'react';\n\nexport interface IconProps extends SVGProps<SVGSVGElement> {\n /** Icon size in pixels */\n size?: number;\n /** Icon color (defaults to currentColor) */\n color?: string;\n}\n\nconst createIcon = (children: React.ReactNode, displayName: string) => {\n const Icon: React.FC<IconProps> = ({\n size = 24,\n color = 'currentColor',\n ...props\n }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke={color}\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n width={size}\n height={size}\n {...props}\n >\n {children}\n </svg>\n );\n Icon.displayName = displayName;\n return Icon;\n};\n\n// Travel / segment type icons\nexport const PlaneIcon = createIcon(\n <path d=\"M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z\" />,\n 'PlaneIcon'\n);\n\nexport const CarIcon = createIcon(\n <>\n <path d=\"M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2\" />\n <circle cx=\"7\" cy=\"17\" r=\"2\" />\n <path d=\"M9 17h6\" />\n <circle cx=\"17\" cy=\"17\" r=\"2\" />\n </>,\n 'CarIcon'\n);\n\nexport const HotelIcon = createIcon(\n <>\n <path d=\"M10 22v-6.57\" />\n <path d=\"M12 11h.01\" />\n <path d=\"M12 7h.01\" />\n <path d=\"M14 15.43V22\" />\n <path d=\"M15 16a5 5 0 0 0-6 0\" />\n <path d=\"M16 11h.01\" />\n <path d=\"M16 7h.01\" />\n <path d=\"M8 11h.01\" />\n <path d=\"M8 7h.01\" />\n <rect x=\"4\" y=\"2\" width=\"16\" height=\"20\" rx=\"2\" />\n </>,\n 'HotelIcon'\n);\n\nexport const LimoIcon = createIcon(\n <>\n <path d=\"m21 8-2 2-1.5-3.7A2 2 0 0 0 15.646 5H8.4a2 2 0 0 0-1.903 1.257L5 10 3 8\" />\n <path d=\"M7 14h.01\" />\n <path d=\"M17 14h.01\" />\n <rect width=\"18\" height=\"8\" x=\"3\" y=\"10\" rx=\"2\" />\n <path d=\"M5 18v2\" />\n <path d=\"M19 18v2\" />\n </>,\n 'LimoIcon'\n);\n\nexport const RailIcon = createIcon(\n <>\n <path d=\"M8 3.1V7a4 4 0 0 0 8 0V3.1\" />\n <path d=\"m9 15-1-1\" />\n <path d=\"m15 15 1-1\" />\n <path d=\"M9 19c-2.8 0-5-2.2-5-5v-4a8 8 0 0 1 16 0v4c0 2.8-2.2 5-5 5Z\" />\n <path d=\"m8 19-2 3\" />\n <path d=\"m16 19 2 3\" />\n </>,\n 'RailIcon'\n);\n\nexport const BusIcon = createIcon(\n <>\n <path d=\"M8 6v6\" />\n <path d=\"M15 6v6\" />\n <path d=\"M2 12h19.6\" />\n <path d=\"M18 18h3s.5-1.7.8-2.8c.1-.4.2-.8.2-1.2 0-.4-.1-.8-.2-1.2l-1.4-5C20.1 6.8 19.1 6 18 6H4a2 2 0 0 0-2 2v10h3\" />\n <circle cx=\"7\" cy=\"18\" r=\"2\" />\n <path d=\"M9 18h5\" />\n <circle cx=\"16\" cy=\"18\" r=\"2\" />\n </>,\n 'BusIcon'\n);\n\n// Control / chrome icons\nexport const SearchIcon = createIcon(\n <>\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <path d=\"m21 21-4.3-4.3\" />\n </>,\n 'SearchIcon'\n);\n\nexport const ChevronDownIcon = createIcon(\n <path d=\"m6 9 6 6 6-6\" />,\n 'ChevronDownIcon'\n);\n\nexport const ChevronUpIcon = createIcon(\n <path d=\"m18 15-6-6-6 6\" />,\n 'ChevronUpIcon'\n);\n\nexport const ChevronRightIcon = createIcon(\n <path d=\"m9 18 6-6-6-6\" />,\n 'ChevronRightIcon'\n);\n\nexport const ChevronLeftIcon = createIcon(\n <path d=\"m15 18-6-6 6-6\" />,\n 'ChevronLeftIcon'\n);\n\nexport const ArrowUpRightIcon = createIcon(\n <>\n <path d=\"M7 7h10v10\" />\n <path d=\"M7 17 17 7\" />\n </>,\n 'ArrowUpRightIcon'\n);\n\nexport const ArrowDownLeftIcon = createIcon(\n <>\n <path d=\"M17 7 7 17\" />\n <path d=\"M17 17H7V7\" />\n </>,\n 'ArrowDownLeftIcon'\n);\n\nexport const EyeIcon = createIcon(\n <>\n <path d=\"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </>,\n 'EyeIcon'\n);\n\nexport const DownloadIcon = createIcon(\n <>\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\" />\n <polyline points=\"7 10 12 15 17 10\" />\n <line x1=\"12\" x2=\"12\" y1=\"15\" y2=\"3\" />\n </>,\n 'DownloadIcon'\n);\n\nexport const FilterIcon = createIcon(\n <polygon points=\"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\" />,\n 'FilterIcon'\n);\n\nexport const CalendarIcon = createIcon(\n <>\n <path d=\"M8 2v4\" />\n <path d=\"M16 2v4\" />\n <rect width=\"18\" height=\"18\" x=\"3\" y=\"4\" rx=\"2\" />\n <path d=\"M3 10h18\" />\n </>,\n 'CalendarIcon'\n);\n\nexport const UserIcon = createIcon(\n <>\n <path d=\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\" />\n <circle cx=\"12\" cy=\"7\" r=\"4\" />\n </>,\n 'UserIcon'\n);\n\nexport const UsersIcon = createIcon(\n <>\n <path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\" />\n <circle cx=\"9\" cy=\"7\" r=\"4\" />\n <path d=\"M22 21v-2a4 4 0 0 0-3-3.87\" />\n <path d=\"M16 3.13a4 4 0 0 1 0 7.75\" />\n </>,\n 'UsersIcon'\n);\n\nexport const MailIcon = createIcon(\n <>\n <rect width=\"20\" height=\"16\" x=\"2\" y=\"4\" rx=\"2\" />\n <path d=\"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\" />\n </>,\n 'MailIcon'\n);\n\nexport const PhoneIcon = createIcon(\n <path d=\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\" />,\n 'PhoneIcon'\n);\n\nexport const PrinterIcon = createIcon(\n <>\n <polyline points=\"6 9 6 2 18 2 18 9\" />\n <path d=\"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2\" />\n <rect width=\"12\" height=\"8\" x=\"6\" y=\"14\" />\n </>,\n 'PrinterIcon'\n);\n\nexport const RefreshIcon = createIcon(\n <>\n <path d=\"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8\" />\n <path d=\"M21 3v5h-5\" />\n <path d=\"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16\" />\n <path d=\"M8 16H3v5\" />\n </>,\n 'RefreshIcon'\n);\n\nexport const WarningIcon = createIcon(\n <>\n <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-3Z\" />\n <path d=\"M12 9v4\" />\n <path d=\"M12 17h.01\" />\n </>,\n 'WarningIcon'\n);\n\nexport const CheckIcon = createIcon(\n <polyline points=\"20 6 9 17 4 12\" />,\n 'CheckIcon'\n);\n\nexport const XIcon = createIcon(\n <>\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </>,\n 'XIcon'\n);\n\nexport const PlusIcon = createIcon(\n <>\n <path d=\"M5 12h14\" />\n <path d=\"M12 5v14\" />\n </>,\n 'PlusIcon'\n);\n\nexport const MinusIcon = createIcon(\n <path d=\"M5 12h14\" />,\n 'MinusIcon'\n);\n\nexport const MenuIcon = createIcon(\n <>\n <line x1=\"4\" x2=\"20\" y1=\"12\" y2=\"12\" />\n <line x1=\"4\" x2=\"20\" y1=\"6\" y2=\"6\" />\n <line x1=\"4\" x2=\"20\" y1=\"18\" y2=\"18\" />\n </>,\n 'MenuIcon'\n);\n\nexport const LightbulbIcon = createIcon(\n <>\n <path d=\"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5\" />\n <path d=\"M9 18h6\" />\n <path d=\"M10 22h4\" />\n </>,\n 'LightbulbIcon'\n);\n\nexport const MegaphoneIcon = createIcon(\n <>\n <path d=\"m3 11 18-5v12L3 13v-2z\" />\n <path d=\"M11.6 16.8a3 3 0 1 1-5.8-1.6\" />\n </>,\n 'MegaphoneIcon'\n);\n\n// Additional icons\nexport const CloseIcon = createIcon(\n <>\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </>,\n 'CloseIcon'\n);\n\nexport const DashboardIcon = createIcon(\n <>\n <rect width=\"7\" height=\"9\" x=\"3\" y=\"3\" rx=\"1\" />\n <rect width=\"7\" height=\"5\" x=\"14\" y=\"3\" rx=\"1\" />\n <rect width=\"7\" height=\"9\" x=\"14\" y=\"12\" rx=\"1\" />\n <rect width=\"7\" height=\"5\" x=\"3\" y=\"16\" rx=\"1\" />\n </>,\n 'DashboardIcon'\n);\n\nexport const ReportIcon = createIcon(\n <>\n <path d=\"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7l-5-5z\" />\n <path d=\"M14 2v5h5\" />\n <path d=\"M10 9h4\" />\n <path d=\"M10 13h4\" />\n <path d=\"M10 17h4\" />\n </>,\n 'ReportIcon'\n);\n\nexport const SettingsIcon = createIcon(\n <>\n <path d=\"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </>,\n 'SettingsIcon'\n);\n\nexport const LogoIcon = createIcon(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M12 6v6l4 2\" />\n </>,\n 'LogoIcon'\n);\n\nexport const TrendUpIcon = createIcon(\n <>\n <polyline points=\"22 7 13.5 15.5 8.5 10.5 2 17\" />\n <polyline points=\"16 7 22 7 22 13\" />\n </>,\n 'TrendUpIcon'\n);\n\nexport const TrendDownIcon = createIcon(\n <>\n <polyline points=\"22 17 13.5 8.5 8.5 13.5 2 7\" />\n <polyline points=\"16 17 22 17 22 11\" />\n </>,\n 'TrendDownIcon'\n);\n\nexport const InfoIcon = createIcon(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M12 16v-4\" />\n <path d=\"M12 8h.01\" />\n </>,\n 'InfoIcon'\n);\n\nexport const DocumentIcon = createIcon(\n <>\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z\" />\n <path d=\"M14 2v6h6\" />\n <path d=\"M16 13H8\" />\n <path d=\"M16 17H8\" />\n </>,\n 'DocumentIcon'\n);\n\nexport const BuildingIcon = createIcon(\n <>\n <path d=\"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z\" />\n <path d=\"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2\" />\n <path d=\"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2\" />\n <path d=\"M10 6h4\" />\n <path d=\"M10 10h4\" />\n <path d=\"M10 14h4\" />\n <path d=\"M10 18h4\" />\n </>,\n 'BuildingIcon'\n);\n\nexport const GridIcon = createIcon(\n <>\n <rect width=\"7\" height=\"7\" x=\"3\" y=\"3\" rx=\"1\" />\n <rect width=\"7\" height=\"7\" x=\"14\" y=\"3\" rx=\"1\" />\n <rect width=\"7\" height=\"7\" x=\"14\" y=\"14\" rx=\"1\" />\n <rect width=\"7\" height=\"7\" x=\"3\" y=\"14\" rx=\"1\" />\n </>,\n 'GridIcon'\n);\n\nexport const EditIcon = createIcon(\n <>\n <path d=\"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z\" />\n <path d=\"m15 5 4 4\" />\n </>,\n 'EditIcon'\n);\n\nexport const HomeIcon = createIcon(\n <>\n <path d=\"m3 11 9-8 9 8\" />\n <path d=\"M5 10v10h14V10\" />\n <path d=\"M9 20v-6h6v6\" />\n </>,\n 'HomeIcon'\n);\n\nexport const CubeIcon = createIcon(\n <>\n <path d=\"m21 16-9 5-9-5V8l9-5 9 5z\" />\n <path d=\"m3.3 7 8.7 5 8.7-5\" />\n <path d=\"M12 22V12\" />\n </>,\n 'CubeIcon'\n);\n\nexport const LockIcon = createIcon(\n <>\n <rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\" />\n <path d=\"M7 11V7a5 5 0 0 1 10 0v4\" />\n </>,\n 'LockIcon'\n);\n\nexport const TrashIcon = createIcon(\n <>\n <path d=\"M3 6h18\" />\n <path d=\"M8 6V4h8v2\" />\n <path d=\"m19 6-1 15H6L5 6\" />\n <path d=\"M10 11v5\" />\n <path d=\"M14 11v5\" />\n </>,\n 'TrashIcon'\n);\n\n// Export all icons as a map for dynamic access\nexport const Icons = {\n Plane: PlaneIcon,\n Car: CarIcon,\n Hotel: HotelIcon,\n Limo: LimoIcon,\n Rail: RailIcon,\n Bus: BusIcon,\n Search: SearchIcon,\n ChevronDown: ChevronDownIcon,\n ChevronUp: ChevronUpIcon,\n ChevronRight: ChevronRightIcon,\n ChevronLeft: ChevronLeftIcon,\n ArrowUpRight: ArrowUpRightIcon,\n ArrowDownLeft: ArrowDownLeftIcon,\n Eye: EyeIcon,\n Download: DownloadIcon,\n Filter: FilterIcon,\n Calendar: CalendarIcon,\n User: UserIcon,\n Users: UsersIcon,\n Mail: MailIcon,\n Phone: PhoneIcon,\n Printer: PrinterIcon,\n Refresh: RefreshIcon,\n Warning: WarningIcon,\n Check: CheckIcon,\n X: XIcon,\n Close: CloseIcon,\n Plus: PlusIcon,\n Minus: MinusIcon,\n Menu: MenuIcon,\n Lightbulb: LightbulbIcon,\n Megaphone: MegaphoneIcon,\n Dashboard: DashboardIcon,\n Report: ReportIcon,\n Settings: SettingsIcon,\n Logo: LogoIcon,\n TrendUp: TrendUpIcon,\n TrendDown: TrendDownIcon,\n Info: InfoIcon,\n Document: DocumentIcon,\n Building: BuildingIcon,\n Grid: GridIcon,\n Edit: EditIcon,\n Home: HomeIcon,\n Cube: CubeIcon,\n Lock: LockIcon,\n Trash: TrashIcon,\n} as const;\n\nexport type IconName = keyof typeof Icons;\n","import React from 'react';\nimport { CheckIcon, WarningIcon, CloseIcon, LightbulbIcon } from '../Icons';\nimport styles from './Alert.module.css';\n\nexport type AlertVariant = 'primary' | 'success' | 'warning' | 'error';\n\nexport interface AlertProps {\n /** Visual style variant */\n variant?: AlertVariant;\n /** Optional title for the alert */\n title?: string;\n /** Content of the alert */\n children: React.ReactNode;\n /** Whether the alert can be dismissed */\n dismissible?: boolean;\n /** Callback when dismiss button is clicked */\n onDismiss?: () => void;\n /** Additional CSS class */\n className?: string;\n}\n\nconst variantIcons = {\n primary: LightbulbIcon,\n success: CheckIcon,\n warning: WarningIcon,\n error: WarningIcon,\n};\n\nexport const Alert: React.FC<AlertProps> = ({\n variant = 'primary',\n title,\n children,\n dismissible = false,\n onDismiss,\n className = '',\n}) => {\n const IconComponent = variantIcons[variant];\n\n return (\n <div className={`${styles.alert} ${styles[variant]} ${className}`} role=\"alert\">\n <div className={styles.content}>\n <IconComponent className={styles.icon} size={20} />\n <div className={styles.body}>\n {title && <h4 className={styles.title}>{title}</h4>}\n <div className={styles.message}>{children}</div>\n </div>\n {dismissible && onDismiss && (\n <button\n type=\"button\"\n onClick={onDismiss}\n className={styles.dismissButton}\n aria-label=\"Dismiss alert\"\n >\n <CloseIcon size={16} />\n </button>\n )}\n </div>\n </div>\n );\n};\n\nexport default Alert;\n","import React, { HTMLAttributes } from 'react';\nimport styles from './Avatar.module.css';\n\nexport type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport interface AvatarProps extends HTMLAttributes<HTMLDivElement> {\n /** Image source URL */\n src?: string;\n /** Alt text for image */\n alt?: string;\n /** Initials to display when no image */\n initials?: string;\n /** Name (used to generate initials if not provided) */\n name?: string;\n /** Size of the avatar */\n size?: AvatarSize;\n}\n\nconst getInitials = (name: string): string => {\n const parts = name.trim().split(/\\s+/);\n if (parts.length >= 2) {\n return `${parts[0][0]}${parts[parts.length - 1][0]}`.toUpperCase();\n }\n return name.slice(0, 2).toUpperCase();\n};\n\n/**\n * Avatar component for user profile images or initials.\n */\nexport const Avatar: React.FC<AvatarProps> = ({\n src,\n alt,\n initials,\n name,\n size = 'md',\n className = '',\n ...props\n}) => {\n const displayInitials = initials || (name ? getInitials(name) : '?');\n \n const classNames = [\n styles.avatar,\n styles[size],\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={classNames} {...props}>\n {src ? (\n <img src={src} alt={alt || name || 'Avatar'} className={styles.image} />\n ) : (\n <span className={styles.initials}>{displayInitials}</span>\n )}\n </div>\n );\n};\n\nAvatar.displayName = 'Avatar';\n\nexport interface AvatarGroupProps extends HTMLAttributes<HTMLDivElement> {\n /** Maximum number of avatars to show before +N */\n max?: number;\n}\n\nexport const AvatarGroup: React.FC<AvatarGroupProps> = ({\n max = 4,\n className = '',\n children,\n ...props\n}) => {\n const childArray = React.Children.toArray(children);\n const visibleChildren = childArray.slice(0, max);\n const remainingCount = childArray.length - max;\n\n const classNames = [styles.group, className].filter(Boolean).join(' ');\n\n return (\n <div className={classNames} {...props}>\n {visibleChildren}\n {remainingCount > 0 && (\n <div className={`${styles.avatar} ${styles.md} ${styles.overflow}`}>\n <span className={styles.initials}>+{remainingCount}</span>\n </div>\n )}\n </div>\n );\n};\n\nAvatarGroup.displayName = 'AvatarGroup';\n\nexport default Avatar;\n","import React, { HTMLAttributes } from 'react';\nimport styles from './Badge.module.css';\n\nexport type BadgeVariant = 'default' | 'success' | 'warning' | 'error' | 'info';\nexport type BadgeSize = 'sm' | 'md';\n\nexport interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {\n /** Visual style variant */\n variant?: BadgeVariant;\n /** Size of the badge */\n size?: BadgeSize;\n /** Shows a status dot before the text */\n dot?: boolean;\n}\n\n/**\n * Badge component for status indicators, labels, and tags.\n */\nexport const Badge: React.FC<BadgeProps> = ({\n variant = 'default',\n size = 'md',\n dot = false,\n className = '',\n children,\n ...props\n}) => {\n const classNames = [\n styles.badge,\n styles[variant],\n styles[size],\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <span className={classNames} {...props}>\n {dot && <span className={styles.dot} />}\n {children}\n </span>\n );\n};\n\nBadge.displayName = 'Badge';\n\nexport default Badge;\n","import React, { forwardRef, ButtonHTMLAttributes } from 'react';\nimport styles from './Button.module.css';\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost' | 'danger';\nexport type ButtonSize = 'sm' | 'md' | 'lg';\n\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Visual style variant */\n variant?: ButtonVariant;\n /** Size of the button */\n size?: ButtonSize;\n /** Makes button take full width */\n fullWidth?: boolean;\n /** Shows loading spinner */\n loading?: boolean;\n /** Icon element to show before text */\n leftIcon?: React.ReactNode;\n /** Icon element to show after text */\n rightIcon?: React.ReactNode;\n /** Makes button square (equal width/height) */\n square?: boolean;\n}\n\n/**\n * Primary button component for user interactions.\n * Supports multiple variants, sizes, and states.\n */\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n variant = 'primary',\n size = 'md',\n fullWidth = false,\n loading = false,\n leftIcon,\n rightIcon,\n square = false,\n className = '',\n disabled,\n children,\n ...props\n },\n ref\n ) => {\n const classNames = [\n styles.button,\n styles[variant],\n styles[size],\n fullWidth ? styles.fullWidth : '',\n square ? styles.square : '',\n loading ? styles.loading : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button\n ref={ref}\n className={classNames}\n disabled={disabled || loading}\n {...props}\n >\n {loading && (\n <span className={styles.spinner}>\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n >\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n strokeOpacity=\"0.25\"\n />\n <path\n d=\"M12 2a10 10 0 0 1 10 10\"\n strokeLinecap=\"round\"\n />\n </svg>\n </span>\n )}\n {!loading && leftIcon && <span className={styles.icon}>{leftIcon}</span>}\n {children && <span className={styles.content}>{children}</span>}\n {!loading && rightIcon && <span className={styles.icon}>{rightIcon}</span>}\n </button>\n );\n }\n);\n\nButton.displayName = 'Button';\n\nexport default Button;\n","import { forwardRef, InputHTMLAttributes, useId } from 'react';\nimport styles from './Checkbox.module.css';\n\nexport interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {\n /** Label text for the checkbox */\n label?: string;\n /** Size variant */\n size?: 'sm' | 'md' | 'lg';\n /** Helper text shown below */\n helperText?: string;\n /** Error message */\n error?: string;\n /** Indeterminate state */\n indeterminate?: boolean;\n /** Additional class for wrapper */\n className?: string;\n}\n\nconst CheckIcon = () => (\n <svg width=\"10\" height=\"8\" viewBox=\"0 0 10 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M1 4L3.5 6.5L9 1\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n </svg>\n);\n\nconst IndeterminateIcon = () => (\n <svg width=\"10\" height=\"2\" viewBox=\"0 0 10 2\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M1 1H9\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\"/>\n </svg>\n);\n\n/**\n * Checkbox component for boolean selections.\n */\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n label,\n size = 'md',\n helperText,\n error,\n indeterminate = false,\n className = '',\n disabled,\n id,\n checked,\n ...props\n },\n ref\n ) => {\n const generatedId = useId();\n const checkboxId = id || generatedId;\n const helperId = `${checkboxId}-helper`;\n const errorId = `${checkboxId}-error`;\n\n const wrapperClasses = [\n styles.wrapper,\n styles[size],\n disabled ? styles.disabled : '',\n error ? styles.hasError : '',\n className,\n ].filter(Boolean).join(' ');\n\n // Handle indeterminate state via ref\n const inputRef = (node: HTMLInputElement | null) => {\n if (node) {\n node.indeterminate = indeterminate;\n }\n // Forward ref\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n };\n\n return (\n <div className={wrapperClasses}>\n <label className={styles.label}>\n <div className={styles.checkboxWrapper}>\n <input\n ref={inputRef}\n type=\"checkbox\"\n id={checkboxId}\n className={styles.input}\n disabled={disabled}\n checked={checked}\n aria-invalid={!!error}\n aria-describedby={\n [error ? errorId : null, helperText ? helperId : null]\n .filter(Boolean)\n .join(' ') || undefined\n }\n {...props}\n />\n <span className={styles.checkbox}>\n {indeterminate ? <IndeterminateIcon /> : <CheckIcon />}\n </span>\n </div>\n {label && <span className={styles.labelText}>{label}</span>}\n </label>\n {error && (\n <span id={errorId} className={styles.errorText}>{error}</span>\n )}\n {helperText && !error && (\n <span id={helperId} className={styles.helperText}>{helperText}</span>\n )}\n </div>\n );\n }\n);\n\nCheckbox.displayName = 'Checkbox';\n\nexport default Checkbox;\n","import { forwardRef, InputHTMLAttributes, useId } from 'react';\nimport styles from './Datepicker.module.css';\n\nexport type DatepickerSize = 'sm' | 'md' | 'lg';\n\nexport interface DatepickerProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {\n /** Size variant */\n size?: DatepickerSize;\n /** Label text */\n label?: string;\n /** Helper text shown below */\n helperText?: string;\n /** Error message (shows error state) */\n error?: string;\n /** Makes input take full width */\n fullWidth?: boolean;\n /** Additional class for wrapper */\n className?: string;\n}\n\nconst CalendarIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"/>\n <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"/>\n <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"/>\n <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"/>\n </svg>\n);\n\n/**\n * Datepicker component for selecting dates.\n */\nexport const Datepicker = forwardRef<HTMLInputElement, DatepickerProps>(\n (\n {\n size = 'md',\n label,\n helperText,\n error,\n fullWidth = false,\n className = '',\n id,\n disabled,\n ...props\n },\n ref\n ) => {\n const generatedId = useId();\n const inputId = id || generatedId;\n const helperId = `${inputId}-helper`;\n const errorId = `${inputId}-error`;\n\n const wrapperClasses = [\n styles.wrapper,\n fullWidth ? styles.fullWidth : '',\n className,\n ].filter(Boolean).join(' ');\n\n const inputWrapperClasses = [\n styles.inputWrapper,\n styles[size],\n error ? styles.error : '',\n disabled ? styles.disabled : '',\n ].filter(Boolean).join(' ');\n\n return (\n <div className={wrapperClasses}>\n {label && (\n <label htmlFor={inputId} className={styles.label}>\n {label}\n </label>\n )}\n <div className={inputWrapperClasses}>\n <span className={styles.icon}>\n <CalendarIcon />\n </span>\n <input\n ref={ref}\n type=\"date\"\n id={inputId}\n className={styles.input}\n disabled={disabled}\n aria-invalid={!!error}\n aria-describedby={\n [error ? errorId : null, helperText ? helperId : null]\n .filter(Boolean)\n .join(' ') || undefined\n }\n {...props}\n />\n </div>\n {error && (\n <span id={errorId} className={styles.errorText}>{error}</span>\n )}\n {helperText && !error && (\n <span id={helperId} className={styles.helperText}>{helperText}</span>\n )}\n </div>\n );\n }\n);\n\nDatepicker.displayName = 'Datepicker';\n\nexport default Datepicker;\n","import React, { forwardRef, InputHTMLAttributes, TextareaHTMLAttributes } from 'react';\nimport styles from './Input.module.css';\n\nexport type InputSize = 'sm' | 'md' | 'lg';\n\nexport interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {\n /** Size of the input */\n size?: InputSize;\n /** Label text */\n label?: string;\n /** Helper text shown below input */\n helperText?: string;\n /** Error message (shows error state when present) */\n error?: string;\n /** Icon element to show at the start */\n leftIcon?: React.ReactNode;\n /** Icon element to show at the end */\n rightIcon?: React.ReactNode;\n /** Makes input take full width */\n fullWidth?: boolean;\n}\n\n/**\n * Input component for text entry.\n */\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n size = 'md',\n label,\n helperText,\n error,\n leftIcon,\n rightIcon,\n fullWidth = false,\n className = '',\n id,\n disabled,\n ...props\n },\n ref\n ) => {\n const inputId = id || `input-${Math.random().toString(36).substr(2, 9)}`;\n\n const wrapperClasses = [\n styles.wrapper,\n fullWidth ? styles.fullWidth : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const inputWrapperClasses = [\n styles.inputWrapper,\n styles[size],\n error ? styles.error : '',\n disabled ? styles.disabled : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={wrapperClasses}>\n {label && (\n <label htmlFor={inputId} className={styles.label}>\n {label}\n </label>\n )}\n <div className={inputWrapperClasses}>\n {leftIcon && <span className={styles.icon}>{leftIcon}</span>}\n <input\n ref={ref}\n id={inputId}\n className={styles.input}\n disabled={disabled}\n aria-invalid={!!error}\n aria-describedby={error ? `${inputId}-error` : helperText ? `${inputId}-helper` : undefined}\n {...props}\n />\n {rightIcon && <span className={styles.icon}>{rightIcon}</span>}\n </div>\n {error && (\n <span id={`${inputId}-error`} className={styles.errorText}>\n {error}\n </span>\n )}\n {helperText && !error && (\n <span id={`${inputId}-helper`} className={styles.helperText}>\n {helperText}\n </span>\n )}\n </div>\n );\n }\n);\n\nInput.displayName = 'Input';\n\nexport interface TextareaProps extends Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'size'> {\n /** Size of the textarea */\n size?: InputSize;\n /** Label text */\n label?: string;\n /** Helper text shown below textarea */\n helperText?: string;\n /** Error message (shows error state when present) */\n error?: string;\n /** Makes textarea take full width */\n fullWidth?: boolean;\n}\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(\n (\n {\n size = 'md',\n label,\n helperText,\n error,\n fullWidth = false,\n className = '',\n id,\n disabled,\n rows = 4,\n ...props\n },\n ref\n ) => {\n const textareaId = id || `textarea-${Math.random().toString(36).substr(2, 9)}`;\n\n const wrapperClasses = [\n styles.wrapper,\n fullWidth ? styles.fullWidth : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const textareaClasses = [\n styles.textarea,\n styles[size],\n error ? styles.error : '',\n disabled ? styles.disabled : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={wrapperClasses}>\n {label && (\n <label htmlFor={textareaId} className={styles.label}>\n {label}\n </label>\n )}\n <textarea\n ref={ref}\n id={textareaId}\n className={textareaClasses}\n disabled={disabled}\n rows={rows}\n aria-invalid={!!error}\n aria-describedby={error ? `${textareaId}-error` : helperText ? `${textareaId}-helper` : undefined}\n {...props}\n />\n {error && (\n <span id={`${textareaId}-error`} className={styles.errorText}>\n {error}\n </span>\n )}\n {helperText && !error && (\n <span id={`${textareaId}-helper`} className={styles.helperText}>\n {helperText}\n </span>\n )}\n </div>\n );\n }\n);\n\nTextarea.displayName = 'Textarea';\n\nexport default Input;\n","import React from 'react';\nimport styles from './Metric.module.css';\n\nexport interface MetricProps {\n /** The metric value to display */\n value?: string | number;\n /** Label describing the metric */\n label: string;\n /** Prefix to show before value (e.g., \"$\") */\n prefix?: string;\n /** Suffix to show after value */\n suffix?: string;\n /** Use dark theme */\n dark?: boolean;\n /** Click handler */\n onClick?: () => void;\n /** Additional CSS class */\n className?: string;\n /** Show warning indicator */\n warning?: boolean;\n}\n\nconst WarningIcon = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M12 2L1 21h22L12 2zm0 3.5L19.5 19H4.5L12 5.5zM11 10v4h2v-4h-2zm0 6v2h2v-2h-2z\"/>\n </svg>\n);\n\n/**\n * Metric component for displaying key performance indicators.\n * Used in dashboards for trip counts, costs, and status metrics.\n */\nexport const Metric: React.FC<MetricProps> = ({\n value,\n label,\n prefix,\n suffix,\n dark = false,\n onClick,\n className = '',\n warning = false,\n}) => {\n const displayValue = value !== undefined && !isNaN(parseFloat(String(value))) ? value : 0;\n\n return (\n <div\n className={`\n ${styles.metric}\n ${dark ? styles.dark : ''}\n ${onClick ? styles.clickable : ''}\n ${className}\n `}\n onClick={onClick}\n >\n {value !== undefined && (\n <div className={styles.content}>\n <div className={styles.valueRow}>\n <div className={styles.valueContainer}>\n {prefix && <span className={styles.prefix}>{prefix}</span>}\n <span className={styles.value}>{displayValue}</span>\n {suffix && <span className={styles.suffix}>{suffix}</span>}\n </div>\n {warning && (\n <div className={styles.warningIcon}>\n <WarningIcon />\n </div>\n )}\n </div>\n <div className={styles.label}>{label}</div>\n </div>\n )}\n </div>\n );\n};\n\nMetric.displayName = 'Metric';\n\nexport default Metric;\n","import React, { forwardRef, SelectHTMLAttributes, useId } from 'react';\nimport styles from './Select.module.css';\n\nexport interface SelectOption {\n label: string;\n value: string | number;\n disabled?: boolean;\n}\n\nexport interface SelectOptionGroup {\n label: string;\n options: SelectOption[];\n}\n\nexport type SelectSize = 'sm' | 'md' | 'lg';\n\nexport interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, 'size'> {\n /** Options to display */\n options?: SelectOption[];\n /** Grouped options */\n optionGroups?: SelectOptionGroup[];\n /** Size variant */\n size?: SelectSize;\n /** Label text */\n label?: string;\n /** Placeholder text (shown as first disabled option) */\n placeholder?: string;\n /** Helper text shown below */\n helperText?: string;\n /** Error message (shows error state) */\n error?: string;\n /** Icon element at the start */\n leftIcon?: React.ReactNode;\n /** Makes select take full width */\n fullWidth?: boolean;\n /** Additional class for wrapper */\n className?: string;\n}\n\nconst ChevronDownIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <polyline points=\"6 9 12 15 18 9\"/>\n </svg>\n);\n\n/**\n * Select component for choosing from a list of options.\n */\nexport const Select = forwardRef<HTMLSelectElement, SelectProps>(\n (\n {\n options,\n optionGroups,\n size = 'md',\n label,\n placeholder,\n helperText,\n error,\n leftIcon,\n fullWidth = false,\n className = '',\n id,\n disabled,\n ...props\n },\n ref\n ) => {\n const generatedId = useId();\n const selectId = id || generatedId;\n const helperId = `${selectId}-helper`;\n const errorId = `${selectId}-error`;\n\n const wrapperClasses = [\n styles.wrapper,\n fullWidth ? styles.fullWidth : '',\n className,\n ].filter(Boolean).join(' ');\n\n const selectWrapperClasses = [\n styles.selectWrapper,\n styles[size],\n error ? styles.error : '',\n disabled ? styles.disabled : '',\n leftIcon ? styles.hasLeftIcon : '',\n ].filter(Boolean).join(' ');\n\n const renderOptions = () => {\n // Render grouped options\n if (optionGroups && optionGroups.length > 0) {\n return optionGroups.map((group, i) => (\n <optgroup key={i} label={group.label}>\n {group.options.map((option) => (\n <option\n key={option.value}\n value={option.value}\n disabled={option.disabled}\n >\n {option.label}\n </option>\n ))}\n </optgroup>\n ));\n }\n\n // Render flat options\n if (options && options.length > 0) {\n return options.map((option) => (\n <option\n key={option.value}\n value={option.value}\n disabled={option.disabled}\n >\n {option.label}\n </option>\n ));\n }\n\n return null;\n };\n\n return (\n <div className={wrapperClasses}>\n {label && (\n <label htmlFor={selectId} className={styles.label}>\n {label}\n </label>\n )}\n <div className={selectWrapperClasses}>\n {leftIcon && <span className={styles.leftIcon}>{leftIcon}</span>}\n <select\n ref={ref}\n id={selectId}\n className={styles.select}\n disabled={disabled}\n aria-invalid={!!error}\n aria-describedby={\n [error ? errorId : null, helperText ? helperId : null]\n .filter(Boolean)\n .join(' ') || undefined\n }\n {...props}\n >\n {placeholder && (\n <option value=\"\" disabled>\n {placeholder}\n </option>\n )}\n {renderOptions()}\n </select>\n <span className={styles.chevron}>\n <ChevronDownIcon />\n </span>\n </div>\n {error && (\n <span id={errorId} className={styles.errorText}>{error}</span>\n )}\n {helperText && !error && (\n <span id={helperId} className={styles.helperText}>{helperText}</span>\n )}\n </div>\n );\n }\n);\n\nSelect.displayName = 'Select';\n\nexport default Select;\n","import React from 'react';\nimport styles from './Spinner.module.css';\n\nexport type SpinnerSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport interface SpinnerProps {\n /** Size of the spinner */\n size?: SpinnerSize;\n /** Additional CSS class */\n className?: string;\n /** Color of the spinner (defaults to currentColor) */\n color?: string;\n /** Accessible label */\n label?: string;\n}\n\nexport const Spinner: React.FC<SpinnerProps> = ({\n size = 'md',\n className = '',\n color,\n label = 'Loading...',\n}) => {\n return (\n <span\n className={`${styles.spinner} ${styles[size]} ${className}`}\n role=\"status\"\n aria-label={label}\n style={color ? { color } : undefined}\n >\n <svg\n className={styles.svg}\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n className={styles.track}\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n className={styles.indicator}\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n <span className={styles.srOnly}>{label}</span>\n </span>\n );\n};\n\nexport default Spinner;\n","import React from 'react';\nimport styles from './StatusBadge.module.css';\n\nexport type StatusBadgeVariant = \n | 'ticketed' \n | 'itinerary' \n | 'not-ticketed' \n | 'submitted' \n | 'pending'\n | 'cancelled';\n\nexport interface StatusBadgeProps {\n /** The status variant to display */\n status: StatusBadgeVariant;\n /** Optional custom label (defaults to formatted status) */\n label?: string;\n /** Additional CSS class */\n className?: string;\n}\n\nconst statusLabels: Record<StatusBadgeVariant, string> = {\n ticketed: 'Ticketed',\n itinerary: 'Itinerary',\n 'not-ticketed': 'Not Ticketed',\n submitted: 'Submitted',\n pending: 'Pending',\n cancelled: 'Cancelled',\n};\n\nexport const StatusBadge: React.FC<StatusBadgeProps> = ({\n status,\n label,\n className,\n}) => {\n const displayLabel = label || statusLabels[status] || status;\n \n return (\n <span \n className={`${styles.badge} ${styles[status]} ${className || ''}`}\n data-status={status}\n >\n {displayLabel}\n </span>\n );\n};\n\nexport default StatusBadge;\n","import React from 'react';\nimport styles from './Tag.module.css';\n\nexport type TagVariant = 'default' | 'primary' | 'success' | 'warning' | 'error' | 'info';\nexport type TagSize = 'sm' | 'md' | 'lg';\n\nexport interface TagProps {\n /** Tag content */\n children: React.ReactNode;\n /** Visual variant */\n variant?: TagVariant;\n /** Size of the tag */\n size?: TagSize;\n /** Whether the tag is removable */\n removable?: boolean;\n /** Callback when remove button is clicked */\n onRemove?: () => void;\n /** Click handler */\n onClick?: () => void;\n /** Additional CSS class */\n className?: string;\n /** Inline styles */\n style?: React.CSSProperties;\n}\n\nexport const Tag: React.FC<TagProps> = ({\n children,\n variant = 'default',\n size = 'md',\n removable = false,\n onRemove,\n onClick,\n className = '',\n style,\n}) => {\n const isClickable = Boolean(onClick);\n \n return (\n <span\n className={`${styles.tag} ${styles[variant]} ${styles[size]} ${isClickable ? styles.clickable : ''} ${className}`}\n onClick={onClick}\n style={style}\n role={isClickable ? 'button' : undefined}\n tabIndex={isClickable ? 0 : undefined}\n >\n <span className={styles.content}>{children}</span>\n {removable && (\n <button\n type=\"button\"\n className={styles.removeButton}\n onClick={(e) => {\n e.stopPropagation();\n onRemove?.();\n }}\n aria-label=\"Remove\"\n >\n <svg\n className={styles.removeIcon}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n )}\n </span>\n );\n};\n\nexport default Tag;\n","import { forwardRef, InputHTMLAttributes, useId } from 'react';\nimport styles from './Timepicker.module.css';\n\nexport type TimepickerSize = 'sm' | 'md' | 'lg';\n\nexport interface TimepickerProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {\n /** Size variant */\n size?: TimepickerSize;\n /** Label text */\n label?: string;\n /** Helper text shown below */\n helperText?: string;\n /** Error message (shows error state) */\n error?: string;\n /** Makes input take full width */\n fullWidth?: boolean;\n /** Additional class for wrapper */\n className?: string;\n}\n\nconst ClockIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"/>\n <polyline points=\"12 6 12 12 16 14\"/>\n </svg>\n);\n\n/**\n * Timepicker component for selecting times.\n */\nexport const Timepicker = forwardRef<HTMLInputElement, TimepickerProps>(\n (\n {\n size = 'md',\n label,\n helperText,\n error,\n fullWidth = false,\n className = '',\n id,\n disabled,\n ...props\n },\n ref\n ) => {\n const generatedId = useId();\n const inputId = id || generatedId;\n const helperId = `${inputId}-helper`;\n const errorId = `${inputId}-error`;\n\n const wrapperClasses = [\n styles.wrapper,\n fullWidth ? styles.fullWidth : '',\n className,\n ].filter(Boolean).join(' ');\n\n const inputWrapperClasses = [\n styles.inputWrapper,\n styles[size],\n error ? styles.error : '',\n disabled ? styles.disabled : '',\n ].filter(Boolean).join(' ');\n\n return (\n <div className={wrapperClasses}>\n {label && (\n <label htmlFor={inputId} className={styles.label}>\n {label}\n </label>\n )}\n <div className={inputWrapperClasses}>\n <span className={styles.icon}>\n <ClockIcon />\n </span>\n <input\n ref={ref}\n type=\"time\"\n id={inputId}\n className={styles.input}\n disabled={disabled}\n aria-invalid={!!error}\n aria-describedby={\n [error ? errorId : null, helperText ? helperId : null]\n .filter(Boolean)\n .join(' ') || undefined\n }\n {...props}\n />\n </div>\n {error && (\n <span id={errorId} className={styles.errorText}>{error}</span>\n )}\n {helperText && !error && (\n <span id={helperId} className={styles.helperText}>{helperText}</span>\n )}\n </div>\n );\n }\n);\n\nTimepicker.displayName = 'Timepicker';\n\nexport default Timepicker;\n","import React, { ReactNode } from 'react';\nimport styles from './Title.module.css';\n\nexport type TitleWeight = 'light' | 'normal' | 'medium' | 'semibold' | 'bold';\n\nexport interface TitleProps {\n /** Title text content */\n children: ReactNode;\n /** Font weight */\n weight?: TitleWeight;\n /** Additional CSS class */\n className?: string;\n}\n\n/**\n * Title component for page headings.\n * Large, prominent text for page titles.\n */\nexport const Title: React.FC<TitleProps> = ({\n children,\n weight = 'light',\n className = '',\n}) => {\n return (\n <h1 className={`${styles.title} ${styles[weight]} ${className}`}>\n {children}\n </h1>\n );\n};\n\nTitle.displayName = 'Title';\n\nexport default Title;\n","import React from 'react';\nimport styles from './Toggle.module.css';\n\nexport type ToggleSize = 'sm' | 'md' | 'lg';\n\nexport interface ToggleProps {\n /** Whether the toggle is checked */\n checked: boolean;\n /** Callback when toggle state changes */\n onChange?: (checked: boolean) => void;\n /** Whether the toggle is disabled */\n disabled?: boolean;\n /** Size of the toggle */\n size?: ToggleSize;\n /** Label for the toggle */\n label?: string;\n /** Position of the label */\n labelPosition?: 'left' | 'right';\n /** Additional CSS class */\n className?: string;\n /** Accessible name for the toggle */\n 'aria-label'?: string;\n}\n\nexport const Toggle: React.FC<ToggleProps> = ({\n checked,\n onChange,\n disabled = false,\n size = 'md',\n label,\n labelPosition = 'right',\n className = '',\n 'aria-label': ariaLabel,\n}) => {\n const handleClick = () => {\n if (!disabled) {\n onChange?.(!checked);\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if ((e.key === 'Enter' || e.key === ' ') && !disabled) {\n e.preventDefault();\n onChange?.(!checked);\n }\n };\n\n const toggleElement = (\n <div\n className={`${styles.toggle} ${styles[size]} ${checked ? styles.checked : ''} ${disabled ? styles.disabled : ''} ${className}`}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n role=\"switch\"\n aria-checked={checked}\n aria-disabled={disabled}\n aria-label={ariaLabel || label}\n tabIndex={disabled ? -1 : 0}\n >\n <span className={styles.thumb} />\n </div>\n );\n\n if (label) {\n return (\n <label className={`${styles.wrapper} ${disabled ? styles.wrapperDisabled : ''}`}>\n {labelPosition === 'left' && <span className={styles.label}>{label}</span>}\n {toggleElement}\n {labelPosition === 'right' && <span className={styles.label}>{label}</span>}\n </label>\n );\n }\n\n return toggleElement;\n};\n\nexport default Toggle;\n","import React, { useState, useRef, useEffect } from 'react';\nimport styles from './Tooltip.module.css';\n\nexport type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';\nexport type TooltipVariant = 'dark' | 'light';\n\nexport interface TooltipProps {\n /** Tooltip content */\n content: React.ReactNode;\n /** Element that triggers the tooltip */\n children: React.ReactNode;\n /** Position of the tooltip relative to the trigger */\n position?: TooltipPosition;\n /** Visual variant */\n variant?: TooltipVariant;\n /** Delay before showing tooltip (ms) */\n delay?: number;\n /** Whether tooltip is disabled */\n disabled?: boolean;\n /** Additional CSS class */\n className?: string;\n}\n\nexport const Tooltip: React.FC<TooltipProps> = ({\n content,\n children,\n position = 'top',\n variant = 'dark',\n delay = 200,\n disabled = false,\n className = '',\n}) => {\n const [isVisible, setIsVisible] = useState(false);\n const [actualPosition, setActualPosition] = useState(position);\n const timeoutRef = useRef<NodeJS.Timeout | null>(null);\n const tooltipRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n\n const checkBounds = () => {\n if (!tooltipRef.current || !triggerRef.current) return;\n\n const tooltip = tooltipRef.current.getBoundingClientRect();\n const viewport = {\n width: window.innerWidth,\n height: window.innerHeight,\n };\n\n let bestPosition = position;\n\n if (position === 'right' && tooltip.right > viewport.width) {\n bestPosition = 'left';\n } else if (position === 'left' && tooltip.left < 0) {\n bestPosition = 'right';\n } else if (position === 'top' && tooltip.top < 0) {\n bestPosition = 'bottom';\n } else if (position === 'bottom' && tooltip.bottom > viewport.height) {\n bestPosition = 'top';\n }\n\n setActualPosition(bestPosition);\n };\n\n useEffect(() => {\n if (isVisible) {\n checkBounds();\n }\n }, [isVisible, position]);\n\n const handleMouseEnter = () => {\n if (disabled) return;\n timeoutRef.current = setTimeout(() => {\n setIsVisible(true);\n }, delay);\n };\n\n const handleMouseLeave = () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n setIsVisible(false);\n };\n\n const handleFocus = () => {\n if (!disabled) {\n setIsVisible(true);\n }\n };\n\n const handleBlur = () => {\n setIsVisible(false);\n };\n\n useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n };\n }, []);\n\n return (\n <div\n ref={triggerRef}\n className={`${styles.wrapper} ${className}`}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n onFocus={handleFocus}\n onBlur={handleBlur}\n >\n {children}\n {isVisible && content && (\n <div\n ref={tooltipRef}\n className={`${styles.tooltip} ${styles[actualPosition]} ${styles[variant]}`}\n role=\"tooltip\"\n >\n <div className={styles.content}>{content}</div>\n <div className={`${styles.arrow} ${styles[`arrow${actualPosition.charAt(0).toUpperCase()}${actualPosition.slice(1)}`]}`} />\n </div>\n )}\n </div>\n );\n};\n\nexport default Tooltip;\n","import React from 'react';\nimport styles from './TravelServiceIcon.module.css';\nimport { TravelType } from '../TypeIcon/TypeIcon';\n\nexport type VendorCode = 'DL' | 'AA' | 'UA' | 'WN' | 'B6' | 'AS' | 'F9' | 'NK' | 'G4' | 'HA' | string;\n\nexport interface TravelServiceIconProps {\n /** Travel type: A=Air, C=Car, H=Hotel, L=Limo, R=Rail */\n type: TravelType;\n /** Vendor/airline code (e.g., DL, AA, UA) */\n vendor?: string;\n /** Display mode: icon shows vendor logo, code shows text */\n mode?: 'icon' | 'code';\n /** Size in pixels */\n size?: number;\n /** Show multi-segment indicator */\n multi?: boolean;\n /** Additional CSS class */\n className?: string;\n}\n\n// Airline brand colors\nconst vendorColors: Record<string, { bg: string; fg: string }> = {\n DL: { bg: '#003366', fg: '#FFFFFF' }, // Delta\n AA: { bg: '#0078D2', fg: '#FFFFFF' }, // American\n UA: { bg: '#002244', fg: '#FFFFFF' }, // United\n WN: { bg: '#F9B612', fg: '#304CB2' }, // Southwest\n B6: { bg: '#003876', fg: '#FFFFFF' }, // JetBlue\n AS: { bg: '#016191', fg: '#FFFFFF' }, // Alaska\n F9: { bg: '#2D8B45', fg: '#FFFFFF' }, // Frontier\n NK: { bg: '#FFC72C', fg: '#000000' }, // Spirit\n G4: { bg: '#00386C', fg: '#FFFFFF' }, // Allegiant\n HA: { bg: '#660099', fg: '#FFFFFF' }, // Hawaiian\n};\n\n// Type-specific background colors when no vendor\nconst typeColors: Record<TravelType, { bg: string; fg: string }> = {\n A: { bg: 'var(--color-primary-light, #E6ECFB)', fg: 'var(--color-primary, #0A53EF)' },\n C: { bg: 'var(--color-tangerine-light, #FFE2C1)', fg: 'var(--color-warning, #9F5500)' },\n H: { bg: 'var(--color-forest-light, #E2F0EC)', fg: 'var(--color-success, #138660)' },\n L: { bg: '#EDE9FE', fg: '#7C3AED' },\n R: { bg: 'var(--stm-brand-blue-tint, #E5EDF4)', fg: 'var(--stm-brand-blue, #15538C)' },\n B: { bg: '#FEF3C7', fg: '#D97706' },\n U: { bg: 'var(--color-secondary, #E4E5E7)', fg: 'var(--fg-3, #5C5C5C)' },\n};\n\n// Icon paths for each type\nconst typeIcons: Record<TravelType, React.ReactNode> = {\n A: (\n <path d=\"M21 16v-2l-8-5V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5z\" />\n ),\n C: (\n <path d=\"M18.92 6.01C18.72 5.42 18.16 5 17.5 5h-11c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 16c-.83 0-1.5-.67-1.5-1.5S5.67 13 6.5 13s1.5.67 1.5 1.5S7.33 16 6.5 16zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 11l1.5-4.5h11L19 11H5z\" />\n ),\n H: (\n <path d=\"M7 13c1.66 0 3-1.34 3-3S8.66 7 7 7s-3 1.34-3 3 1.34 3 3 3zm12-6h-8v7H3V5H1v15h2v-3h18v3h2v-9c0-2.21-1.79-4-4-4z\" />\n ),\n L: (\n <path d=\"M18.92 6.01C18.72 5.42 18.16 5 17.5 5h-11c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 16c-.83 0-1.5-.67-1.5-1.5S5.67 13 6.5 13s1.5.67 1.5 1.5S7.33 16 6.5 16zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 11l1.5-4.5h11L19 11H5z\" />\n ),\n R: (\n <path d=\"M12 2c-4 0-8 .5-8 4v9.5C4 17.43 5.57 19 7.5 19L6 20.5v.5h12v-.5L16.5 19c1.93 0 3.5-1.57 3.5-3.5V6c0-3.5-4-4-8-4zM7.5 17c-.83 0-1.5-.67-1.5-1.5S6.67 14 7.5 14s1.5.67 1.5 1.5S8.33 17 7.5 17zm3.5-6H6V6h5v5zm2 0V6h5v5h-5zm3.5 6c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\" />\n ),\n B: (\n <path d=\"M4 16c0 .88.39 1.67 1 2.22V20c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h8v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1.78c.61-.55 1-1.34 1-2.22V6c0-3.5-3.58-4-8-4s-8 .5-8 4v10zm3.5 1c-.83 0-1.5-.67-1.5-1.5S6.67 14 7.5 14s1.5.67 1.5 1.5S8.33 17 7.5 17zm9 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm1.5-6H6V6h12v5z\" />\n ),\n U: (\n <path d=\"M11 18h2v-2h-2v2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4z\" />\n ),\n};\n\nexport const TravelServiceIcon: React.FC<TravelServiceIconProps> = ({\n type,\n vendor,\n mode = 'icon',\n size = 28,\n multi = false,\n className,\n}) => {\n const vendorKey = vendor?.toUpperCase() || '';\n const colors = mode === 'icon' && vendorColors[vendorKey] \n ? vendorColors[vendorKey] \n : typeColors[type] || typeColors.U;\n\n return (\n <span\n className={`${styles.service} ${multi ? styles.multi : ''} ${className || ''}`}\n style={{\n width: size,\n height: size,\n backgroundColor: colors.bg,\n color: colors.fg,\n fontSize: size * 0.4,\n }}\n title={vendor ? `${vendor} (${type})` : type}\n >\n {mode === 'code' && vendor ? (\n <span className={styles.code}>{vendor}</span>\n ) : (\n <svg\n viewBox=\"0 0 24 24\"\n width={size * 0.55}\n height={size * 0.55}\n fill=\"currentColor\"\n >\n {typeIcons[type] || typeIcons.U}\n </svg>\n )}\n {multi && <span className={styles.multiIndicator}>+</span>}\n </span>\n );\n};\n\nexport default TravelServiceIcon;\n","import React from 'react';\nimport styles from './TypeIcon.module.css';\n\nexport type TravelType = 'A' | 'C' | 'H' | 'L' | 'R' | 'B' | 'U';\n\nexport interface TypeIconProps {\n /** Travel type code: A=Air, C=Car, H=Hotel, L=Limo, R=Rail, B=Bus, U=Unknown */\n type: TravelType;\n /** Size in pixels */\n size?: number;\n /** Show tooltip on hover */\n showTooltip?: boolean;\n /** Additional CSS class */\n className?: string;\n}\n\nconst typeLabels: Record<TravelType, string> = {\n A: 'Air',\n C: 'Car',\n H: 'Hotel',\n L: 'Limo',\n R: 'Rail',\n B: 'Bus',\n U: 'Unknown',\n};\n\nconst typeColors: Record<TravelType, { bg: string; fg: string }> = {\n A: { bg: 'var(--color-primary-light, #E6ECFB)', fg: 'var(--color-primary, #0A53EF)' },\n C: { bg: 'var(--color-tangerine-light, #FFE2C1)', fg: 'var(--color-warning, #9F5500)' },\n H: { bg: 'var(--color-forest-light, #E2F0EC)', fg: 'var(--color-success, #138660)' },\n L: { bg: '#EDE9FE', fg: '#7C3AED' }, // Purple for Limo\n R: { bg: 'var(--stm-brand-blue-tint, #E5EDF4)', fg: 'var(--stm-brand-blue, #15538C)' },\n B: { bg: '#FEF3C7', fg: '#D97706' }, // Amber for Bus\n U: { bg: 'var(--color-secondary, #E4E5E7)', fg: 'var(--fg-3, #5C5C5C)' },\n};\n\n// SVG path data for each icon\nconst typeIcons: Record<TravelType, React.ReactNode> = {\n A: (\n <path d=\"M21 16v-2l-8-5V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5z\" />\n ),\n C: (\n <path d=\"M18.92 6.01C18.72 5.42 18.16 5 17.5 5h-11c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 16c-.83 0-1.5-.67-1.5-1.5S5.67 13 6.5 13s1.5.67 1.5 1.5S7.33 16 6.5 16zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 11l1.5-4.5h11L19 11H5z\" />\n ),\n H: (\n <path d=\"M7 13c1.66 0 3-1.34 3-3S8.66 7 7 7s-3 1.34-3 3 1.34 3 3 3zm12-6h-8v7H3V5H1v15h2v-3h18v3h2v-9c0-2.21-1.79-4-4-4z\" />\n ),\n L: (\n <path d=\"M18.92 6.01C18.72 5.42 18.16 5 17.5 5h-11c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 16c-.83 0-1.5-.67-1.5-1.5S5.67 13 6.5 13s1.5.67 1.5 1.5S7.33 16 6.5 16zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 11l1.5-4.5h11L19 11H5z\" />\n ),\n R: (\n <path d=\"M12 2c-4 0-8 .5-8 4v9.5C4 17.43 5.57 19 7.5 19L6 20.5v.5h12v-.5L16.5 19c1.93 0 3.5-1.57 3.5-3.5V6c0-3.5-4-4-8-4zM7.5 17c-.83 0-1.5-.67-1.5-1.5S6.67 14 7.5 14s1.5.67 1.5 1.5S8.33 17 7.5 17zm3.5-6H6V6h5v5zm2 0V6h5v5h-5zm3.5 6c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\" />\n ),\n B: (\n <path d=\"M4 16c0 .88.39 1.67 1 2.22V20c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h8v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1.78c.61-.55 1-1.34 1-2.22V6c0-3.5-3.58-4-8-4s-8 .5-8 4v10zm3.5 1c-.83 0-1.5-.67-1.5-1.5S6.67 14 7.5 14s1.5.67 1.5 1.5S8.33 17 7.5 17zm9 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm1.5-6H6V6h12v5z\" />\n ),\n U: (\n <path d=\"M11 18h2v-2h-2v2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4z\" />\n ),\n};\n\nexport const TypeIcon: React.FC<TypeIconProps> = ({\n type,\n size = 18,\n showTooltip = true,\n className,\n}) => {\n const colors = typeColors[type] || typeColors.U;\n const label = typeLabels[type] || 'Unknown';\n\n return (\n <span\n className={`${styles.icon} ${className || ''}`}\n style={{\n width: size,\n height: size,\n backgroundColor: colors.bg,\n color: colors.fg,\n }}\n title={showTooltip ? label : undefined}\n aria-label={label}\n >\n <svg\n viewBox=\"0 0 24 24\"\n width={size * 0.6}\n height={size * 0.6}\n fill=\"currentColor\"\n >\n {typeIcons[type] || typeIcons.U}\n </svg>\n </span>\n );\n};\n\nexport default TypeIcon;\n","import React, { ReactNode, useState } from 'react';\nimport styles from './Accordion.module.css';\n\nexport interface AccordionProps {\n /** Header content (always visible) */\n header: ReactNode;\n /** Body content (collapsible) */\n children: ReactNode;\n /** Whether the accordion is initially open */\n defaultOpen?: boolean;\n /** Controlled open state */\n open?: boolean;\n /** Callback when open state changes */\n onOpenChange?: (open: boolean) => void;\n /** Show vertical timeline indicator */\n showTimeline?: boolean;\n /** Additional CSS class */\n className?: string;\n}\n\nconst CaretIcon = ({ className }: { className?: string }) => (\n <svg \n className={className} \n width=\"20\" \n height=\"20\" \n viewBox=\"0 0 24 24\" \n fill=\"none\" \n stroke=\"currentColor\" \n strokeWidth=\"2\"\n >\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n);\n\n/**\n * Accordion component for collapsible content sections.\n * Used in travel request forms for expandable form segments.\n */\nexport const Accordion: React.FC<AccordionProps> = ({\n header,\n children,\n defaultOpen = true,\n open: controlledOpen,\n onOpenChange,\n showTimeline = false,\n className,\n}) => {\n const [internalOpen, setInternalOpen] = useState(defaultOpen);\n const isControlled = controlledOpen !== undefined;\n const isOpen = isControlled ? controlledOpen : internalOpen;\n\n const handleToggle = () => {\n const newOpen = !isOpen;\n if (!isControlled) {\n setInternalOpen(newOpen);\n }\n onOpenChange?.(newOpen);\n };\n\n return (\n <div className={`${styles.accordion} ${className || ''}`}>\n <div className={styles.headerContainer}>\n <button\n type=\"button\"\n className={styles.toggle}\n onClick={handleToggle}\n aria-expanded={isOpen}\n >\n <CaretIcon className={`${styles.caret} ${isOpen ? styles.open : ''}`} />\n </button>\n <div className={styles.header}>{header}</div>\n </div>\n <div \n className={`${styles.body} ${isOpen ? styles.visible : styles.hidden}`}\n aria-hidden={!isOpen}\n >\n {showTimeline && (\n <div className={styles.timeline}>\n <div className={styles.line} />\n <CaretIcon className={styles.endCaret} />\n </div>\n )}\n <div className={styles.content}>{children}</div>\n </div>\n </div>\n );\n};\n\nAccordion.displayName = 'Accordion';\n\nexport default Accordion;\n","import { ReactNode } from 'react';\nimport { CalendarIcon, GridIcon } from '../../atoms/Icons';\nimport styles from './CalendarSelectors.module.css';\n\nexport interface SegmentedSelectorOption {\n id: string;\n label?: string;\n alt?: string;\n icon?: ReactNode;\n}\n\nexport interface SegmentedSelectorProps {\n options: SegmentedSelectorOption[];\n value: string;\n onChange?: (value: string) => void;\n disabled?: boolean;\n size?: 'sm' | 'md' | 'lg';\n className?: string;\n ariaLabel?: string;\n}\n\nconst ListIcon = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" aria-hidden=\"true\">\n <line x1=\"8\" y1=\"6\" x2=\"21\" y2=\"6\" />\n <line x1=\"8\" y1=\"12\" x2=\"21\" y2=\"12\" />\n <line x1=\"8\" y1=\"18\" x2=\"21\" y2=\"18\" />\n <circle cx=\"3\" cy=\"6\" r=\"1\" fill=\"currentColor\" stroke=\"none\" />\n <circle cx=\"3\" cy=\"12\" r=\"1\" fill=\"currentColor\" stroke=\"none\" />\n <circle cx=\"3\" cy=\"18\" r=\"1\" fill=\"currentColor\" stroke=\"none\" />\n </svg>\n);\n\nexport const SegmentedSelector = ({\n options,\n value,\n onChange,\n disabled = false,\n size = 'md',\n className = '',\n ariaLabel = 'View options',\n}: SegmentedSelectorProps) => (\n <div className={[styles.selector, className].filter(Boolean).join(' ')} role=\"group\" aria-label={ariaLabel}>\n {options.map((option) => {\n const active = option.id === value;\n const accessibleName = option.alt ?? option.label ?? option.id;\n return (\n <button\n key={option.id}\n type=\"button\"\n title={accessibleName}\n aria-label={accessibleName}\n aria-pressed={active}\n disabled={disabled}\n className={[\n styles.item,\n styles[size],\n option.label ? styles.withLabel : styles.iconOnly,\n active ? styles.active : '',\n ].filter(Boolean).join(' ')}\n onClick={() => onChange?.(option.id)}\n >\n {option.icon}\n {option.label && <span>{option.label}</span>}\n </button>\n );\n })}\n </div>\n);\n\nexport type CalendarViewValue = 'calendar' | 'card' | 'list';\nexport interface CalendarViewSelectorProps extends Omit<SegmentedSelectorProps, 'options' | 'value' | 'onChange' | 'ariaLabel'> {\n value: CalendarViewValue;\n onChange?: (value: CalendarViewValue) => void;\n}\n\nexport const CalendarViewSelector = ({ value, onChange, ...props }: CalendarViewSelectorProps) => (\n <SegmentedSelector\n {...props}\n ariaLabel=\"Calendar view\"\n value={value}\n onChange={(nextValue) => onChange?.(nextValue as CalendarViewValue)}\n options={[\n { id: 'calendar', alt: 'Calendar', icon: <CalendarIcon size={20} /> },\n { id: 'card', alt: 'Card', icon: <GridIcon size={20} /> },\n { id: 'list', alt: 'List', icon: <ListIcon /> },\n ]}\n />\n);\n\nexport type CalendarTypeValue = 'trips' | 'due_dates';\nexport interface CalendarTypeSelectorProps extends Omit<SegmentedSelectorProps, 'options' | 'value' | 'onChange' | 'ariaLabel'> {\n value: CalendarTypeValue;\n onChange?: (value: CalendarTypeValue) => void;\n}\n\nexport const CalendarTypeSelector = ({ value, onChange, ...props }: CalendarTypeSelectorProps) => (\n <SegmentedSelector\n {...props}\n ariaLabel=\"Calendar item type\"\n value={value}\n onChange={(nextValue) => onChange?.(nextValue as CalendarTypeValue)}\n options={[\n { id: 'trips', label: 'Trips' },\n { id: 'due_dates', label: 'Due Dates' },\n ]}\n />\n);\n","import React, { useEffect, useState, useRef } from 'react';\nimport styles from './Dropdown.module.css';\nimport { Button } from '../../atoms/Button';\n\nexport type DropdownAlignment = 'left' | 'center' | 'right';\n\nexport interface DropdownProps {\n /** Label for the dropdown trigger button */\n label: string;\n /** Content to display in the dropdown */\n children: React.ReactNode;\n /** Alignment of the dropdown menu */\n alignment?: DropdownAlignment;\n /** Minimum width of the dropdown (in pixels) */\n width?: number;\n /** Additional CSS class */\n className?: string;\n /** Whether the dropdown is disabled */\n disabled?: boolean;\n}\n\nexport interface DropdownItemProps {\n /** Item label */\n children: React.ReactNode;\n /** Click handler */\n onClick?: () => void;\n /** Whether the item is disabled */\n disabled?: boolean;\n /** Icon to display */\n icon?: React.ReactNode;\n /** Additional CSS class */\n className?: string;\n}\n\nexport const Dropdown: React.FC<DropdownProps> & {\n Item: React.FC<DropdownItemProps>;\n} = ({\n label,\n children,\n alignment = 'left',\n width,\n className = '',\n disabled = false,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n }\n };\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside);\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [isOpen]);\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Escape') {\n setIsOpen(false);\n }\n };\n\n return (\n <div \n ref={dropdownRef} \n className={`${styles.dropdown} ${className}`}\n onKeyDown={handleKeyDown}\n >\n <Button\n variant=\"secondary\"\n onClick={() => !disabled && setIsOpen(!isOpen)}\n disabled={disabled}\n aria-expanded={isOpen}\n aria-haspopup=\"true\"\n >\n {label}\n <svg\n className={`${styles.arrow} ${isOpen ? styles.arrowOpen : ''}`}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n width=\"16\"\n height=\"16\"\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M19 9l-7 7-7-7\" />\n </svg>\n </Button>\n \n <div\n className={`${styles.menu} ${styles[alignment]} ${isOpen ? styles.menuOpen : ''}`}\n style={width ? { minWidth: `${width}px` } : undefined}\n role=\"menu\"\n >\n {children}\n </div>\n </div>\n );\n};\n\nconst DropdownItem: React.FC<DropdownItemProps> = ({\n children,\n onClick,\n disabled = false,\n icon,\n className = '',\n}) => {\n return (\n <button\n type=\"button\"\n className={`${styles.item} ${disabled ? styles.itemDisabled : ''} ${className}`}\n onClick={onClick}\n disabled={disabled}\n role=\"menuitem\"\n >\n {icon && <span className={styles.itemIcon}>{icon}</span>}\n {children}\n </button>\n );\n};\n\nDropdown.Item = DropdownItem;\n\nexport default Dropdown;\n","import React, { useState, useRef, useEffect } from 'react';\nimport styles from './FilterChip.module.css';\n\nexport interface FilterOption {\n value: string;\n label: string;\n}\n\nexport interface FilterChipProps {\n /** Label for the filter */\n label: string;\n /** Currently selected value */\n value: string;\n /** Options to display in dropdown */\n options: FilterOption[];\n /** Callback when value changes */\n onChange: (value: string) => void;\n /** Show search input in dropdown */\n searchable?: boolean;\n /** Placeholder for search input */\n searchPlaceholder?: string;\n /** Info message to show at top of dropdown */\n infoMessage?: string;\n /** Additional CSS class */\n className?: string;\n}\n\nexport const FilterChip: React.FC<FilterChipProps> = ({\n label,\n value,\n options,\n onChange,\n searchable = false,\n searchPlaceholder = 'Search...',\n infoMessage,\n className,\n}) => {\n const [open, setOpen] = useState(false);\n const [searchQuery, setSearchQuery] = useState('');\n const ref = useRef<HTMLDivElement>(null);\n\n // Close on outside click\n useEffect(() => {\n if (!open) return;\n const handleClick = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setOpen(false);\n }\n };\n const handleKey = (e: KeyboardEvent) => {\n if (e.key === 'Escape') setOpen(false);\n };\n document.addEventListener('mousedown', handleClick);\n document.addEventListener('keydown', handleKey);\n return () => {\n document.removeEventListener('mousedown', handleClick);\n document.removeEventListener('keydown', handleKey);\n };\n }, [open]);\n\n // Reset search when closing\n useEffect(() => {\n if (!open) setSearchQuery('');\n }, [open]);\n\n const filteredOptions = searchable && searchQuery\n ? options.filter(opt => \n opt.label.toLowerCase().includes(searchQuery.toLowerCase())\n )\n : options;\n\n const selectedOption = options.find(opt => opt.value === value);\n const displayValue = selectedOption?.label || value;\n const isDefault = value === options[0]?.value;\n\n return (\n <div ref={ref} className={`${styles.wrapper} ${className || ''}`}>\n <button\n type=\"button\"\n className={`${styles.chip} ${open ? styles.open : ''} ${!isDefault ? styles.active : ''}`}\n onClick={() => setOpen(!open)}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n >\n <span className={styles.label}>{label}:</span>\n <span className={styles.value}>{displayValue}</span>\n <svg \n className={`${styles.chevron} ${open ? styles.rotated : ''}`}\n width=\"14\" \n height=\"14\" \n viewBox=\"0 0 24 24\" \n fill=\"none\" \n stroke=\"currentColor\" \n strokeWidth=\"2\"\n >\n <polyline points=\"6 9 12 15 18 9\" />\n </svg>\n </button>\n\n {open && (\n <div className={styles.dropdown} role=\"listbox\">\n {infoMessage && (\n <div className={styles.infoMessage}>\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\"/>\n </svg>\n <span>{infoMessage}</span>\n </div>\n )}\n\n {searchable && (\n <div className={styles.searchWrapper}>\n <svg \n className={styles.searchIcon}\n width=\"14\" \n height=\"14\" \n viewBox=\"0 0 24 24\" \n fill=\"none\" \n stroke=\"currentColor\" \n strokeWidth=\"2\"\n >\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n </svg>\n <input\n type=\"text\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n placeholder={searchPlaceholder}\n className={styles.searchInput}\n autoFocus\n />\n </div>\n )}\n\n <div className={styles.optionsList}>\n {filteredOptions.map((option) => (\n <button\n key={option.value}\n type=\"button\"\n role=\"option\"\n aria-selected={option.value === value}\n className={`${styles.option} ${option.value === value ? styles.selected : ''}`}\n onClick={() => {\n onChange(option.value);\n setOpen(false);\n }}\n >\n {option.label}\n </button>\n ))}\n {filteredOptions.length === 0 && (\n <div className={styles.noResults}>No results found</div>\n )}\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default FilterChip;\n","import React, { forwardRef, useId } from 'react';\nimport { Input, InputProps } from '../../atoms/Input/Input';\nimport { Textarea, TextareaProps } from '../../atoms/Input/Input';\nimport styles from './FormField.module.css';\n\nexport interface FormFieldProps {\n /** Label text for the field */\n label: string;\n /** Optional helper text displayed below the input */\n helperText?: string;\n /** Error message to display */\n error?: string;\n /** Whether the field is required */\n required?: boolean;\n /** Whether to hide the label visually (still accessible) */\n hideLabel?: boolean;\n /** Additional CSS class for the wrapper */\n className?: string;\n /** The input element type */\n as?: 'input' | 'textarea';\n /** Input props when as=\"input\" */\n inputProps?: InputProps;\n /** Textarea props when as=\"textarea\" */\n textareaProps?: TextareaProps;\n /** Children for custom input rendering */\n children?: React.ReactNode;\n}\n\nexport const FormField = forwardRef<HTMLInputElement | HTMLTextAreaElement, FormFieldProps>(\n (\n {\n label,\n helperText,\n error,\n required = false,\n hideLabel = false,\n className,\n as = 'input',\n inputProps,\n textareaProps,\n children,\n },\n ref\n ) => {\n const generatedId = useId();\n const inputId = inputProps?.id || textareaProps?.id || generatedId;\n const helperId = `${inputId}-helper`;\n const errorId = `${inputId}-error`;\n const hasError = Boolean(error);\n\n const describedBy = [\n helperText ? helperId : null,\n hasError ? errorId : null,\n ]\n .filter(Boolean)\n .join(' ') || undefined;\n\n const renderInput = () => {\n if (children) {\n return children;\n }\n\n if (as === 'textarea') {\n return (\n <Textarea\n ref={ref as React.Ref<HTMLTextAreaElement>}\n id={inputId}\n aria-describedby={describedBy}\n aria-invalid={hasError}\n aria-required={required}\n {...textareaProps}\n className={`${styles.inputElement} ${hasError ? styles.inputError : ''} ${textareaProps?.className || ''}`}\n />\n );\n }\n\n return (\n <Input\n ref={ref as React.Ref<HTMLInputElement>}\n id={inputId}\n aria-describedby={describedBy}\n aria-invalid={hasError}\n aria-required={required}\n {...inputProps}\n className={`${styles.inputElement} ${hasError ? styles.inputError : ''} ${inputProps?.className || ''}`}\n />\n );\n };\n\n return (\n <div className={`${styles.formField} ${className || ''}`}>\n <label\n htmlFor={inputId}\n className={`${styles.label} ${hideLabel ? styles.visuallyHidden : ''}`}\n >\n {label}\n {required && <span className={styles.required} aria-hidden=\"true\">*</span>}\n </label>\n \n {renderInput()}\n \n {helperText && !hasError && (\n <p id={helperId} className={styles.helperText}>\n {helperText}\n </p>\n )}\n \n {hasError && (\n <p id={errorId} className={styles.errorText} role=\"alert\">\n {error}\n </p>\n )}\n </div>\n );\n }\n);\n\nFormField.displayName = 'FormField';\n\nexport default FormField;\n","import React, { Children, ReactNode } from 'react';\nimport styles from './FormRow.module.css';\n\nexport interface FormRowProps {\n /** Child elements to display in a row */\n children: ReactNode;\n /** Number of columns (auto-detected from children count if not specified) */\n columns?: 1 | 2 | 3 | 4;\n /** Gap size between items */\n gap?: 'sm' | 'md' | 'lg';\n /** Additional CSS class */\n className?: string;\n /** Stack on mobile (default: true) */\n stackOnMobile?: boolean;\n}\n\n/**\n * FormRow component for laying out form fields in a responsive grid.\n * Stacks on mobile by default and arranges in columns on larger screens.\n */\nexport const FormRow: React.FC<FormRowProps> = ({\n children,\n columns,\n gap = 'md',\n className,\n stackOnMobile = true,\n}) => {\n const childCount = Children.count(children);\n const colCount = columns || (childCount > 4 ? 4 : childCount as 1 | 2 | 3 | 4);\n\n return (\n <div \n className={`\n ${styles.row} \n ${styles[`cols${colCount}`]} \n ${styles[`gap${gap}`]}\n ${stackOnMobile ? styles.stackMobile : ''}\n ${className || ''}\n `}\n >\n {children}\n </div>\n );\n};\n\nFormRow.displayName = 'FormRow';\n\nexport default FormRow;\n","import React, { ReactNode } from 'react';\nimport styles from './FormSection.module.css';\n\nexport interface FormSectionProps {\n /** Section title */\n title: string;\n /** Icon element to display */\n icon?: ReactNode;\n /** Status key for submitted state */\n status?: 'submitted' | 'not-submitted' | 'draft';\n /** Whether the section is disabled */\n disabled?: boolean;\n /** Children content */\n children: ReactNode;\n /** Additional CSS class */\n className?: string;\n /** Section ID for anchoring */\n id?: string;\n}\n\n/**\n * FormSection component for grouping related form fields with a title and icon.\n * Used in travel request forms for sections like General, Air, Hotel, etc.\n */\nexport const FormSection: React.FC<FormSectionProps> = ({\n title,\n icon,\n status,\n disabled = false,\n children,\n className,\n id,\n}) => {\n const isSubmitted = status === 'submitted';\n const isDisabled = disabled || isSubmitted;\n\n return (\n <div className={`${styles.section} ${className || ''}`} id={id}>\n <div className={styles.header}>\n {icon && <span className={styles.icon}>{icon}</span>}\n <h2 className={styles.title}>{title}</h2>\n </div>\n <fieldset \n disabled={isDisabled} \n className={`${styles.fieldset} ${isDisabled ? styles.disabled : ''}`}\n >\n {status && (\n <div className={styles.status}>\n <span className={styles.statusLabel}>Status:</span>\n <span className={`${styles.statusValue} ${styles[status]}`}>\n {status === 'submitted' ? 'Submitted' : status === 'draft' ? 'Draft' : 'Not Submitted'}\n </span>\n </div>\n )}\n {children}\n </fieldset>\n </div>\n );\n};\n\nFormSection.displayName = 'FormSection';\n\nexport default FormSection;\n","import type { ReactNode } from 'react';\nimport styles from './FormStack.module.css';\n\nexport interface FormStackProps {\n children: ReactNode;\n gap?: 'sm' | 'md' | 'lg';\n className?: string;\n}\n\n/** Standard vertical form-field rhythm used by Hub modal forms. */\nexport const FormStack = ({ children, gap = 'md', className = '' }: FormStackProps) => (\n <div className={[styles.stack, styles[gap], className].filter(Boolean).join(' ')}>{children}</div>\n);\n\nexport default FormStack;\n","import { CubeIcon, LockIcon, UsersIcon } from '../../atoms/Icons';\nimport styles from './ManifestViewToggle.module.css';\n\nexport type ManifestView = 'passengers' | 'equipment';\n\nexport interface ManifestViewToggleProps {\n view: ManifestView;\n onView: (view: ManifestView) => void;\n paxCount: number;\n eqCount: number;\n locked: boolean;\n className?: string;\n}\n\nexport const ManifestViewToggle = ({\n view,\n onView,\n paxCount,\n eqCount,\n locked,\n className = '',\n}: ManifestViewToggleProps) => {\n const tabs: { key: ManifestView; label: string; count: number; icon: typeof UsersIcon }[] = [\n { key: 'passengers', label: 'Passengers', count: paxCount, icon: UsersIcon },\n { key: 'equipment', label: 'Equipment', count: eqCount, icon: CubeIcon },\n ];\n\n return (\n <div\n className={[styles.toggle, locked ? styles.lockedToggle : '', className].filter(Boolean).join(' ')}\n role=\"tablist\"\n aria-label=\"Manifest view\"\n >\n {tabs.map((tab) => {\n const active = view === tab.key;\n const Icon = locked ? LockIcon : tab.icon;\n return (\n <button\n key={tab.key}\n type=\"button\"\n role=\"tab\"\n aria-selected={active}\n onClick={() => onView(tab.key)}\n className={[\n styles.tab,\n active ? styles.active : '',\n locked ? styles.locked : '',\n locked && active ? styles.lockedActive : '',\n ].filter(Boolean).join(' ')}\n >\n <Icon size={16} />\n {tab.label}\n <span className={styles.count}>{tab.count}</span>\n </button>\n );\n })}\n </div>\n );\n};\n\nexport default ManifestViewToggle;\n","import React from 'react';\nimport { Badge } from '../../atoms/Badge/Badge';\nimport styles from './NavItem.module.css';\n\nexport type NavItemVariant = 'default' | 'pill';\nexport type NavItemSize = 'sm' | 'md' | 'lg';\n\nexport interface NavItemProps {\n /** Icon to display */\n icon?: React.ReactNode;\n /** Label text */\n label: string;\n /** Whether the item is currently active */\n active?: boolean;\n /** Whether the navigation is collapsed (icon only) */\n collapsed?: boolean;\n /** Visual variant */\n variant?: NavItemVariant;\n /** Size of the nav item */\n size?: NavItemSize;\n /** Optional badge count or text */\n badge?: string | number;\n /** Badge variant */\n badgeVariant?: 'default' | 'success' | 'warning' | 'error' | 'info';\n /** Click handler */\n onClick?: () => void;\n /** Whether the item is disabled */\n disabled?: boolean;\n /** Optional href for link items */\n href?: string;\n /** Whether to open link in new tab (for external links) */\n external?: boolean;\n /** Additional CSS class */\n className?: string;\n /** Accessible description */\n 'aria-label'?: string;\n}\n\nexport const NavItem: React.FC<NavItemProps> = ({\n icon,\n label,\n active = false,\n collapsed = false,\n variant = 'default',\n size = 'md',\n badge,\n badgeVariant = 'default',\n onClick,\n disabled = false,\n href,\n external = false,\n className,\n 'aria-label': ariaLabel,\n}) => {\n const content = (\n <>\n {icon && <span className={`${styles.icon} ${styles[`icon${size.charAt(0).toUpperCase()}${size.slice(1)}`]}`} aria-hidden=\"true\">{icon}</span>}\n {!collapsed && (\n <span className={styles.label}>{label}</span>\n )}\n {badge !== undefined && !collapsed && (\n <Badge variant={badgeVariant} className={styles.badge}>\n {badge}\n </Badge>\n )}\n </>\n );\n\n const classNames = [\n styles.navItem,\n styles[variant],\n styles[size],\n active ? styles.active : '',\n collapsed ? styles.collapsed : '',\n disabled ? styles.disabled : '',\n className || '',\n ].filter(Boolean).join(' ');\n\n const commonProps = {\n className: classNames,\n 'aria-label': ariaLabel || (collapsed ? label : undefined),\n 'aria-current': active ? 'page' as const : undefined,\n 'aria-disabled': disabled,\n };\n\n if (href && !disabled) {\n return (\n <a \n href={href} \n {...commonProps}\n target={external ? '_blank' : undefined}\n rel={external ? 'noopener noreferrer' : undefined}\n >\n {content}\n </a>\n );\n }\n\n return (\n <button\n type=\"button\"\n onClick={disabled ? undefined : onClick}\n disabled={disabled}\n {...commonProps}\n >\n {content}\n </button>\n );\n};\n\nexport default NavItem;\n","import React from 'react';\nimport styles from './Progress.module.css';\n\nexport type ProgressSize = 'xs' | 'sm' | 'md' | 'lg';\nexport type ProgressVariant = 'primary' | 'success' | 'warning' | 'error';\n\nexport interface ProgressBarProps {\n /** Current progress value */\n value: number;\n /** Maximum value */\n max?: number;\n /** Size of the progress bar */\n size?: ProgressSize;\n /** Color variant */\n variant?: ProgressVariant;\n /** Show percentage label */\n showLabel?: boolean;\n /** Additional CSS class */\n className?: string;\n}\n\nexport interface ProgressCircleProps {\n /** Current progress value */\n value: number;\n /** Maximum value */\n max?: number;\n /** Size of the circle */\n size?: ProgressSize;\n /** Color variant */\n variant?: ProgressVariant;\n /** Show percentage in center */\n showLabel?: boolean;\n /** Additional CSS class */\n className?: string;\n}\n\nconst dimensions: Record<ProgressSize, number> = {\n xs: 32,\n sm: 48,\n md: 64,\n lg: 80,\n};\n\nconst strokeWidths: Record<ProgressSize, number> = {\n xs: 3,\n sm: 4,\n md: 5,\n lg: 6,\n};\n\nexport const ProgressBar: React.FC<ProgressBarProps> = ({\n value,\n max = 100,\n size = 'md',\n variant = 'primary',\n showLabel = false,\n className = '',\n}) => {\n const percentage = Math.min(Math.max((value / max) * 100, 0), 100);\n\n return (\n <div className={`${styles.barContainer} ${styles[`bar${size}`]} ${className}`}>\n <div className={styles.barTrack}>\n <div\n className={`${styles.barFill} ${styles[variant]}`}\n style={{ width: `${percentage}%` }}\n role=\"progressbar\"\n aria-valuenow={value}\n aria-valuemin={0}\n aria-valuemax={max}\n />\n </div>\n {showLabel && (\n <span className={styles.barLabel}>{Math.round(percentage)}%</span>\n )}\n </div>\n );\n};\n\nexport const ProgressCircle: React.FC<ProgressCircleProps> = ({\n value,\n max = 100,\n size = 'md',\n variant = 'primary',\n showLabel = false,\n className = '',\n}) => {\n const percentage = Math.min(Math.max((value / max) * 100, 0), 100);\n \n const dimension = dimensions[size];\n const strokeWidth = strokeWidths[size];\n const radius = (dimension - strokeWidth) / 2;\n const circumference = radius * 2 * Math.PI;\n const strokeDashoffset = circumference - (percentage / 100) * circumference;\n\n return (\n <div \n className={`${styles.circleContainer} ${className}`}\n style={{ width: dimension, height: dimension }}\n >\n <svg\n width={dimension}\n height={dimension}\n className={styles.circleSvg}\n >\n <circle\n className={styles.circleTrack}\n cx={dimension / 2}\n cy={dimension / 2}\n r={radius}\n strokeWidth={strokeWidth}\n fill=\"transparent\"\n />\n <circle\n className={`${styles.circleFill} ${styles[variant]}`}\n cx={dimension / 2}\n cy={dimension / 2}\n r={radius}\n strokeWidth={strokeWidth}\n fill=\"transparent\"\n strokeDasharray={circumference}\n strokeDashoffset={strokeDashoffset}\n strokeLinecap=\"round\"\n role=\"progressbar\"\n aria-valuenow={value}\n aria-valuemin={0}\n aria-valuemax={max}\n />\n </svg>\n {showLabel && (\n <span \n className={styles.circleLabel}\n style={{ fontSize: size === 'xs' ? '8px' : size === 'sm' ? '10px' : size === 'md' ? '12px' : '14px' }}\n >\n {Math.round(percentage)}%\n </span>\n )}\n </div>\n );\n};\n\n// Combined export\nexport const Progress = {\n Bar: ProgressBar,\n Circle: ProgressCircle,\n};\n\nexport default Progress;\n","import { ReactNode } from 'react';\nimport styles from './RosterToolbar.module.css';\n\nexport interface ToolbarAction {\n /** Action label */\n label: string;\n /** Action icon */\n icon?: ReactNode;\n /** Handler */\n onClick: () => void;\n /** Is action disabled */\n disabled?: boolean;\n}\n\nexport interface RosterToolbarProps {\n /** Import dropdown options */\n importOptions?: ToolbarAction[];\n /** Export dropdown options */\n exportOptions?: ToolbarAction[];\n /** Toggle for lock roster */\n lockToggle?: {\n isLocked: boolean;\n onToggle: (locked: boolean) => void;\n disabled?: boolean;\n };\n /** Save button config */\n saveButton?: {\n label?: string;\n onClick: () => void;\n disabled?: boolean;\n loading?: boolean;\n };\n /** Additional actions */\n additionalActions?: ReactNode;\n /** Search field */\n searchField?: ReactNode;\n /** Additional class */\n className?: string;\n}\n\nconst ImportIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"/>\n <polyline points=\"17 8 12 3 7 8\"/>\n <line x1=\"12\" y1=\"3\" x2=\"12\" y2=\"15\"/>\n </svg>\n);\n\nconst ExportIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"/>\n <polyline points=\"7 10 12 15 17 10\"/>\n <line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"/>\n </svg>\n);\n\nconst ChevronIcon = () => (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <polyline points=\"6 9 12 15 18 9\"/>\n </svg>\n);\n\nconst LockIcon = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"/>\n <path d=\"M7 11V7a5 5 0 0 1 10 0v4\"/>\n </svg>\n);\n\nconst UnlockIcon = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"/>\n <path d=\"M7 11V7a5 5 0 0 1 9.9-1\"/>\n </svg>\n);\n\nconst SaveIcon = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z\"/>\n <polyline points=\"17 21 17 13 7 13 7 21\"/>\n <polyline points=\"7 3 7 8 15 8\"/>\n </svg>\n);\n\nconst SpinnerIcon = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" className={styles.spinner}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" strokeDasharray=\"32\" strokeDashoffset=\"32\"/>\n </svg>\n);\n\nconst DropdownButton = ({\n label,\n icon,\n options,\n}: {\n label: string;\n icon: ReactNode;\n options: ToolbarAction[];\n}) => {\n return (\n <div className={styles.dropdown}>\n <button type=\"button\" className={styles.dropdownTrigger}>\n {icon}\n <span>{label}</span>\n <ChevronIcon />\n </button>\n <div className={styles.dropdownMenu}>\n {options.map((option, i) => (\n <button\n key={i}\n type=\"button\"\n className={styles.dropdownItem}\n onClick={option.onClick}\n disabled={option.disabled}\n >\n {option.icon && <span className={styles.dropdownItemIcon}>{option.icon}</span>}\n {option.label}\n </button>\n ))}\n </div>\n </div>\n );\n};\n\n/**\n * RosterToolbar - Toolbar for roster management with import/export/save actions\n */\nexport const RosterToolbar = ({\n importOptions,\n exportOptions,\n lockToggle,\n saveButton,\n additionalActions,\n searchField,\n className = '',\n}: RosterToolbarProps) => {\n const toolbarClasses = [styles.toolbar, className].filter(Boolean).join(' ');\n\n return (\n <div className={toolbarClasses}>\n <div className={styles.leftSection}>\n {searchField}\n {additionalActions}\n </div>\n\n <div className={styles.rightSection}>\n {importOptions && importOptions.length > 0 && (\n <DropdownButton\n label=\"Import\"\n icon={<ImportIcon />}\n options={importOptions}\n />\n )}\n\n {exportOptions && exportOptions.length > 0 && (\n <DropdownButton\n label=\"Export\"\n icon={<ExportIcon />}\n options={exportOptions}\n />\n )}\n\n {lockToggle && (\n <button\n type=\"button\"\n className={[\n styles.lockButton,\n lockToggle.isLocked ? styles.locked : '',\n ].filter(Boolean).join(' ')}\n onClick={() => lockToggle.onToggle(!lockToggle.isLocked)}\n disabled={lockToggle.disabled}\n aria-label={lockToggle.isLocked ? 'Unlock roster' : 'Lock roster'}\n >\n {lockToggle.isLocked ? <LockIcon /> : <UnlockIcon />}\n <span>{lockToggle.isLocked ? 'Locked' : 'Unlocked'}</span>\n </button>\n )}\n\n {saveButton && (\n <button\n type=\"button\"\n className={styles.saveButton}\n onClick={saveButton.onClick}\n disabled={saveButton.disabled || saveButton.loading}\n >\n {saveButton.loading ? <SpinnerIcon /> : <SaveIcon />}\n <span>{saveButton.label || 'Save'}</span>\n </button>\n )}\n </div>\n </div>\n );\n};\n\nRosterToolbar.displayName = 'RosterToolbar';\n\nexport default RosterToolbar;\n","import React, { useState, forwardRef } from 'react';\nimport { Input } from '../../atoms/Input/Input';\nimport { Button } from '../../atoms/Button/Button';\nimport { SearchIcon, CloseIcon } from '../../atoms/Icons';\nimport styles from './SearchField.module.css';\n\nexport interface SearchFieldProps {\n /** Placeholder text for the search input */\n placeholder?: string;\n /** Current value of the search field */\n value?: string;\n /** Default value for uncontrolled usage */\n defaultValue?: string;\n /** Callback when search value changes */\n onChange?: (value: string) => void;\n /** Callback when search is submitted */\n onSearch?: (value: string) => void;\n /** Callback when search is cleared */\n onClear?: () => void;\n /** Size variant */\n size?: 'sm' | 'md' | 'lg';\n /** Whether the field is disabled */\n disabled?: boolean;\n /** Whether to show the clear button when there's a value */\n showClear?: boolean;\n /** Whether to show the search button */\n showButton?: boolean;\n /** Additional CSS class */\n className?: string;\n /** ID for the input element */\n id?: string;\n /** Accessible label */\n 'aria-label'?: string;\n}\n\nexport const SearchField = forwardRef<HTMLInputElement, SearchFieldProps>(\n (\n {\n placeholder = 'Search...',\n value,\n defaultValue = '',\n onChange,\n onSearch,\n onClear,\n size = 'md',\n disabled = false,\n showClear = true,\n showButton = true,\n className,\n id,\n 'aria-label': ariaLabel = 'Search',\n ...props\n },\n ref\n ) => {\n const [internalValue, setInternalValue] = useState(defaultValue);\n const currentValue = value !== undefined ? value : internalValue;\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value;\n if (value === undefined) {\n setInternalValue(newValue);\n }\n onChange?.(newValue);\n };\n\n const handleClear = () => {\n if (value === undefined) {\n setInternalValue('');\n }\n onChange?.('');\n onClear?.();\n };\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n onSearch?.(currentValue);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n onSearch?.(currentValue);\n }\n };\n\n return (\n <form \n className={`${styles.searchField} ${styles[size]} ${className || ''}`}\n onSubmit={handleSubmit}\n role=\"search\"\n >\n <div className={styles.inputWrapper}>\n <SearchIcon className={styles.searchIcon} aria-hidden=\"true\" />\n <Input\n ref={ref}\n id={id}\n type=\"search\"\n placeholder={placeholder}\n value={currentValue}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n disabled={disabled}\n className={styles.input}\n aria-label={ariaLabel}\n {...props}\n />\n {showClear && currentValue && (\n <button\n type=\"button\"\n className={styles.clearButton}\n onClick={handleClear}\n disabled={disabled}\n aria-label=\"Clear search\"\n >\n <CloseIcon size={16} />\n </button>\n )}\n </div>\n {showButton && (\n <Button\n type=\"submit\"\n variant=\"primary\"\n size={size}\n disabled={disabled}\n >\n Search\n </Button>\n )}\n </form>\n );\n }\n);\n\nSearchField.displayName = 'SearchField';\n\nexport default SearchField;\n","import { ReactNode } from 'react';\nimport styles from './SchoolContactForm.module.css';\n\nexport interface SchoolContactFormProps {\n mode?: 'Add' | 'Edit' | string;\n createFromPortalUser?: ReactNode;\n firstNameField: ReactNode;\n middleInitialField: ReactNode;\n lastNameField: ReactNode;\n businessPhoneField: ReactNode;\n cellPhoneField: ReactNode;\n emailField: ReactNode;\n className?: string;\n}\n\n/**\n * Layout for Hub's school-contact editor. Field controls stay injectable so\n * consuming applications retain their form state, validation, and masking.\n */\nexport const SchoolContactForm = ({\n mode,\n createFromPortalUser,\n firstNameField,\n middleInitialField,\n lastNameField,\n businessPhoneField,\n cellPhoneField,\n emailField,\n className = '',\n}: SchoolContactFormProps) => (\n <div className={[styles.form, className].filter(Boolean).join(' ')}>\n {mode === 'Add' && (\n <>\n <div>\n <label className={styles.portalLabel}>Create From Portal User</label>\n {createFromPortalUser}\n </div>\n <div className={styles.divider}><strong>OR</strong></div>\n <p className={styles.newContactLabel}>Create New Contact Without Portal Access</p>\n </>\n )}\n <div className={styles.nameFields}>\n {firstNameField}\n {middleInitialField}\n {lastNameField}\n </div>\n <div className={styles.phoneFields}>\n {businessPhoneField}\n {cellPhoneField}\n </div>\n <div>{emailField}</div>\n </div>\n);\n\nexport default SchoolContactForm;\n","import React from 'react';\nimport styles from './Segment.module.css';\n\nexport interface SegmentOption {\n /** Unique identifier for the option */\n value: string;\n /** Display label */\n label: string;\n /** Whether the option is disabled */\n disabled?: boolean;\n /** Icon to display */\n icon?: React.ReactNode;\n}\n\nexport interface SegmentProps {\n /** Available options */\n options: SegmentOption[];\n /** Currently selected value */\n value: string;\n /** Callback when selection changes */\n onChange: (value: string) => void;\n /** Size variant */\n size?: 'sm' | 'md' | 'lg';\n /** Whether the segment fills available width */\n fullWidth?: boolean;\n /** Additional CSS class */\n className?: string;\n /** Accessible label */\n 'aria-label'?: string;\n}\n\nexport const Segment: React.FC<SegmentProps> = ({\n options,\n value,\n onChange,\n size = 'md',\n fullWidth = false,\n className = '',\n 'aria-label': ariaLabel,\n}) => {\n return (\n <div\n className={`${styles.segment} ${styles[size]} ${fullWidth ? styles.fullWidth : ''} ${className}`}\n role=\"radiogroup\"\n aria-label={ariaLabel}\n >\n {options.map((option) => (\n <button\n key={option.value}\n type=\"button\"\n className={`${styles.option} ${value === option.value ? styles.selected : ''} ${option.disabled ? styles.disabled : ''}`}\n onClick={() => !option.disabled && onChange(option.value)}\n disabled={option.disabled}\n role=\"radio\"\n aria-checked={value === option.value}\n >\n {option.icon && <span className={styles.icon}>{option.icon}</span>}\n {option.label}\n </button>\n ))}\n </div>\n );\n};\n\nexport default Segment;\n","import React, { useState, useRef, useEffect, useMemo } from 'react';\nimport styles from './SelectFilter.module.css';\n\nexport interface SelectFilterOption {\n label: string;\n value: string | number;\n}\n\nexport interface SelectFilterProps {\n /** Filter label */\n label: string;\n /** Available options */\n options?: SelectFilterOption[];\n /** Grouped options by tab/category */\n groupedOptions?: Record<string, SelectFilterOption[]>;\n /** Selected values */\n value?: (string | number)[];\n /** Change handler */\n onChange?: (values: (string | number)[]) => void;\n /** Allow multiple selections */\n multiselect?: boolean;\n /** Tab names for grouped options */\n tabs?: string[];\n /** Show value instead of label in selected tag */\n showValue?: boolean;\n /** Whether to use grouped options */\n grouped?: boolean;\n /** Disabled state */\n disabled?: boolean;\n /** Dropdown width in pixels */\n width?: number;\n /** Additional CSS class */\n className?: string;\n}\n\nconst ChevronIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <polyline points=\"6 9 12 15 18 9\" />\n </svg>\n);\n\nconst CheckIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n);\n\n/**\n * SelectFilter component for filtering data with dropdown selections.\n * Supports single/multi select, grouped options with tabs.\n */\nexport const SelectFilter: React.FC<SelectFilterProps> = ({\n label,\n options = [],\n groupedOptions = {},\n value = [],\n onChange,\n multiselect = false,\n tabs = [],\n showValue = false,\n grouped = false,\n disabled = false,\n width = 360,\n className = '',\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const [activeTab, setActiveTab] = useState<string>(tabs[0] || '');\n const [selectedValues, setSelectedValues] = useState<(string | number)[]>(value);\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n setSelectedValues(value);\n }, [value]);\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n }\n };\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, []);\n\n const allOptions = useMemo(() => {\n if (grouped && groupedOptions) {\n return tabs.reduce((acc, tab) => acc.concat(groupedOptions[tab] || []), [] as SelectFilterOption[]);\n }\n return options;\n }, [grouped, groupedOptions, options, tabs]);\n\n const currentOptions = useMemo(() => {\n if (grouped && groupedOptions && activeTab) {\n return groupedOptions[activeTab] || [];\n }\n return options;\n }, [activeTab, grouped, groupedOptions, options]);\n\n const handleSelect = (optionValue: string | number) => {\n let newValues: (string | number)[];\n \n if (multiselect) {\n newValues = selectedValues.includes(optionValue)\n ? selectedValues.filter(v => v !== optionValue)\n : [...selectedValues, optionValue];\n } else {\n newValues = [optionValue];\n setIsOpen(false);\n }\n \n setSelectedValues(newValues);\n onChange?.(newValues);\n };\n\n const handleSelectAll = () => {\n const allValues = allOptions.map(opt => opt.value);\n setSelectedValues(allValues);\n onChange?.(allValues);\n };\n\n const handleClear = () => {\n setSelectedValues([]);\n onChange?.([]);\n };\n\n const getDisplayText = () => {\n if (selectedValues.length === 0) {\n return `Select ${label}`;\n }\n if (selectedValues.length === allOptions.length) {\n return `All ${label}s`;\n }\n const selected = allOptions.filter(opt => selectedValues.includes(opt.value));\n if (selected.length <= 2) {\n return selected.map(opt => showValue ? opt.value : opt.label).join(', ');\n }\n return `${selected.length} selected`;\n };\n\n return (\n <div ref={dropdownRef} className={`${styles.container} ${className}`}>\n <button\n type=\"button\"\n className={`${styles.trigger} ${disabled ? styles.disabled : ''} ${isOpen ? styles.open : ''}`}\n onClick={() => !disabled && setIsOpen(!isOpen)}\n >\n <span className={`${styles.triggerText} ${selectedValues.length === 0 ? styles.placeholder : ''}`}>\n {getDisplayText()}\n </span>\n <span className={styles.chevron}>\n <ChevronIcon />\n </span>\n </button>\n\n {isOpen && (\n <div className={styles.dropdown} style={{ width }}>\n {/* Tabs for grouped options */}\n {grouped && tabs.length > 0 && (\n <div className={styles.tabs}>\n {tabs.map(tab => (\n <button\n key={tab}\n type=\"button\"\n className={`${styles.tab} ${activeTab === tab ? styles.activeTab : ''}`}\n onClick={() => setActiveTab(tab)}\n >\n {tab.charAt(0).toUpperCase() + tab.slice(1)}\n </button>\n ))}\n </div>\n )}\n\n {/* Actions */}\n {multiselect && (\n <div className={styles.actions}>\n <button type=\"button\" className={styles.actionBtn} onClick={handleSelectAll}>\n Select All\n </button>\n <button type=\"button\" className={styles.actionBtn} onClick={handleClear}>\n Clear\n </button>\n </div>\n )}\n\n {/* Options list */}\n <div className={styles.options}>\n {currentOptions.map(option => (\n <div\n key={option.value}\n className={`${styles.option} ${selectedValues.includes(option.value) ? styles.selected : ''}`}\n onClick={() => handleSelect(option.value)}\n >\n {multiselect && (\n <span className={styles.checkbox}>\n {selectedValues.includes(option.value) && <CheckIcon />}\n </span>\n )}\n <span className={styles.optionLabel}>{option.label}</span>\n </div>\n ))}\n </div>\n\n {/* Apply button for multiselect */}\n {multiselect && (\n <div className={styles.footer}>\n <button\n type=\"button\"\n className={styles.applyBtn}\n onClick={() => setIsOpen(false)}\n >\n Apply\n </button>\n </div>\n )}\n </div>\n )}\n </div>\n );\n};\n\nSelectFilter.displayName = 'SelectFilter';\n\nexport default SelectFilter;\n","import React, { ReactNode } from 'react';\nimport styles from './ServiceToggle.module.css';\nimport { Toggle } from '../../atoms/Toggle';\n\nexport interface ServiceConfig {\n /** Unique key for the service */\n key: string;\n /** Display label */\n label: string;\n /** Icon element */\n icon?: ReactNode;\n /** Whether this service has a toggle (can be disabled) */\n hasToggle?: boolean;\n}\n\nexport interface ServiceToggleProps {\n /** Unique key for the service */\n serviceKey?: string;\n /** Display label */\n label: string;\n /** Icon element */\n icon?: ReactNode;\n /** Whether this service has a toggle (can be disabled) */\n hasToggle?: boolean;\n /** Whether the service is enabled */\n enabled?: boolean;\n /** Callback when toggle state changes */\n onToggle?: (enabled: boolean) => void;\n /** Callback when clicked (navigation) */\n onClick?: () => void;\n /** Disabled state */\n disabled?: boolean;\n}\n\nexport interface ServiceToggleListProps {\n /** List of services to display */\n services: ServiceConfig[];\n /** Map of enabled states by service key */\n enabledServices?: Record<string, boolean>;\n /** Callback when a service is toggled */\n onToggle?: (key: string, enabled: boolean) => void;\n /** Callback when a service is clicked */\n onClick?: (key: string) => void;\n /** Additional CSS class */\n className?: string;\n}\n\n/**\n * ServiceToggle component for a single service item.\n * Shows an icon, label, and optional toggle switch.\n */\nexport const ServiceToggle: React.FC<ServiceToggleProps> = ({\n label,\n icon,\n hasToggle = true,\n enabled = false,\n onToggle,\n onClick,\n disabled = false,\n}) => {\n const isClickable = !hasToggle || enabled;\n\n const handleClick = () => {\n if (isClickable && onClick) {\n onClick();\n }\n };\n\n return (\n <div className={styles.item}>\n <div \n className={`${styles.labelContainer} ${isClickable ? styles.clickable : ''}`}\n onClick={handleClick}\n >\n {icon && <span className={styles.icon}>{icon}</span>}\n <span className={styles.label}>{label}</span>\n </div>\n {hasToggle && (\n <Toggle\n checked={enabled}\n onChange={(checked) => onToggle?.(checked)}\n disabled={disabled}\n size=\"sm\"\n />\n )}\n </div>\n );\n};\n\n/**\n * ServiceToggleList component for displaying a list of services with toggles.\n * Used in travel request forms for service selection (Air, Hotel, Ground, etc.)\n */\nexport const ServiceToggleList: React.FC<ServiceToggleListProps> = ({\n services,\n enabledServices = {},\n onToggle,\n onClick,\n className,\n}) => {\n return (\n <div className={`${styles.list} ${className || ''}`}>\n {services.map((service) => (\n <ServiceToggle\n key={service.key}\n serviceKey={service.key}\n label={service.label}\n icon={service.icon}\n hasToggle={service.hasToggle}\n enabled={enabledServices[service.key] ?? false}\n onToggle={(enabled) => onToggle?.(service.key, enabled)}\n onClick={() => onClick?.(service.key)}\n />\n ))}\n </div>\n );\n};\n\nServiceToggle.displayName = 'ServiceToggle';\nServiceToggleList.displayName = 'ServiceToggleList';\n\nexport default ServiceToggleList;\n","import { useState } from 'react';\nimport styles from './SupplierTypeToggle.module.css';\n\nexport type SupplierTypeValue = 'A' | 'C' | 'H';\n\nexport const SUPPLIER_TYPE_OPTIONS: Array<{ value: SupplierTypeValue; label: string }> = [\n { value: 'A', label: 'Air' },\n { value: 'C', label: 'Car' },\n { value: 'H', label: 'Hotel' },\n];\n\nconst OPTIONS: Array<{ value: SupplierTypeValue | ''; label: string }> = [\n { value: '', label: 'All' },\n ...SUPPLIER_TYPE_OPTIONS,\n];\n\nexport interface SupplierTypeToggleProps {\n value?: SupplierTypeValue | '';\n defaultValue?: SupplierTypeValue | '';\n onChange?: (value: SupplierTypeValue | '') => void;\n disabled?: boolean;\n className?: string;\n}\n\nexport const SupplierTypeToggle = ({\n value,\n defaultValue = '',\n onChange,\n disabled = false,\n className = '',\n}: SupplierTypeToggleProps) => {\n const [internalValue, setInternalValue] = useState<SupplierTypeValue | ''>(defaultValue);\n const activeValue = value ?? internalValue;\n\n const handleSelect = (nextValue: SupplierTypeValue | '') => {\n if (disabled) return;\n if (value === undefined) setInternalValue(nextValue);\n onChange?.(nextValue);\n };\n\n return (\n <div className={[styles.toggle, className].filter(Boolean).join(' ')} role=\"group\" aria-label=\"Supplier type\">\n {OPTIONS.map((option) => (\n <button\n key={option.value || 'all'}\n type=\"button\"\n disabled={disabled}\n aria-pressed={activeValue === option.value}\n className={activeValue === option.value ? styles.active : ''}\n onClick={() => handleSelect(option.value)}\n >\n {option.label}\n </button>\n ))}\n </div>\n );\n};\n\nexport default SupplierTypeToggle;\n","import { ReactNode } from 'react';\nimport styles from './TeamHeader.module.css';\n\nexport interface TeamHeaderProps {\n /** Fully composed title. Overrides teamCode/teamName when supplied. */\n title?: ReactNode;\n /** Team code (e.g., 'MBB') */\n teamCode?: string;\n /** Team name/description */\n teamName?: string;\n /** Pre-title text (e.g., 'Team Management') */\n pretitle?: string;\n /** Back link href */\n backHref?: string;\n /** Callback for back button click */\n onBack?: () => void;\n /** Right side actions */\n actions?: ReactNode;\n /** Additional class */\n className?: string;\n}\n\nconst BackIcon = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <line x1=\"19\" y1=\"12\" x2=\"5\" y2=\"12\"/>\n <polyline points=\"12 19 5 12 12 5\"/>\n </svg>\n);\n\n/**\n * TeamHeader - Header component for team management pages\n */\nexport const TeamHeader = ({\n title: suppliedTitle,\n teamCode,\n teamName,\n pretitle = 'Team Management',\n backHref,\n onBack,\n actions,\n className = '',\n}: TeamHeaderProps) => {\n const headerClasses = [\n styles.header,\n className,\n ].filter(Boolean).join(' ');\n\n const title = suppliedTitle ?? (teamCode && teamName \n ? `${teamCode} - ${teamName}` \n : teamName || teamCode || '');\n\n const handleBack = () => {\n if (onBack) {\n onBack();\n } else if (backHref) {\n // Allow consumer to handle navigation\n window.location.href = backHref;\n }\n };\n\n return (\n <div className={headerClasses}>\n <div className={styles.left}>\n {(backHref || onBack) && (\n <button\n type=\"button\"\n className={styles.backButton}\n onClick={handleBack}\n aria-label=\"Go back\"\n >\n <BackIcon />\n </button>\n )}\n <div className={styles.titles}>\n {pretitle && <span className={styles.pretitle}>{pretitle}</span>}\n <h1 className={styles.title}>{title} </h1>\n </div>\n </div>\n {actions && (\n <div className={styles.actions}>\n {actions}\n </div>\n )}\n </div>\n );\n};\n\nexport interface TeamSubMenuTab {\n id: string;\n label: string;\n}\n\nexport interface TeamSubMenuProps {\n tabs?: TeamSubMenuTab[];\n activeTab?: string;\n onTabChange?: (tabId: string) => void;\n className?: string;\n}\n\nconst DEFAULT_TABS: TeamSubMenuTab[] = [\n { id: 'profile', label: 'Profile' },\n { id: 'roster', label: 'Roster' },\n { id: 'equipment', label: 'Equipment' },\n { id: 'user-access', label: 'User Access' },\n];\n\n/** Router-agnostic counterpart of Hub's team-management submenu. */\nexport const TeamSubMenu = ({ tabs = DEFAULT_TABS, activeTab, onTabChange, className = '' }: TeamSubMenuProps) => (\n <nav className={[styles.subMenu, className].filter(Boolean).join(' ')} aria-label=\"Team management sections\">\n {tabs.map((tab) => (\n <button\n key={tab.id}\n type=\"button\"\n className={activeTab === tab.id ? styles.activeTab : ''}\n aria-current={activeTab === tab.id ? 'page' : undefined}\n onClick={() => onTabChange?.(tab.id)}\n >\n {tab.label}\n </button>\n ))}\n </nav>\n);\n\nTeamHeader.displayName = 'TeamHeader';\nTeamSubMenu.displayName = 'TeamSubMenu';\n\nexport default TeamHeader;\n","import React, { ReactNode } from 'react';\nimport styles from './TripSegment.module.css';\n\nexport interface FlightData {\n type: 'commercial' | 'charter';\n departure: string;\n arrival: string;\n departureDate: string;\n departureTime?: string;\n arrivalDate?: string;\n arrivalTime?: string;\n airline?: string;\n flightNumber?: string;\n}\n\nexport interface GroundData {\n type: 'bus' | 'van' | 'car' | 'limo';\n company?: string;\n pickupLocation: string;\n dropoffLocation: string;\n pickupDate: string;\n pickupTime?: string;\n vehicleCount?: number;\n}\n\nexport interface HotelData {\n name: string;\n address?: string;\n city?: string;\n checkIn: string;\n checkOut: string;\n roomCount?: number;\n confirmationNumber?: string;\n}\n\nexport type SegmentVariant = 'light' | 'dark';\n\nexport interface TripSegmentProps {\n /** Segment type */\n type: 'air' | 'ground' | 'hotel';\n /** Visual variant */\n variant?: SegmentVariant;\n /** Additional CSS class */\n className?: string;\n /** Content to render */\n children: ReactNode;\n}\n\nexport interface AirSegmentProps {\n flights: FlightData[];\n variant?: SegmentVariant;\n className?: string;\n}\n\nexport interface GroundSegmentProps {\n segments: GroundData[];\n variant?: SegmentVariant;\n className?: string;\n}\n\nexport interface HotelSegmentProps {\n hotels: HotelData[];\n variant?: SegmentVariant;\n className?: string;\n}\n\nconst PlaneIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M21 16v-2l-8-5V3.5a1.5 1.5 0 0 0-3 0V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5Z\"/>\n </svg>\n);\n\nconst BusIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <rect x=\"4\" y=\"4\" width=\"16\" height=\"14\" rx=\"2\"/>\n <path d=\"M8 6v6\"/>\n <path d=\"M16 6v6\"/>\n <circle cx=\"8\" cy=\"16\" r=\"1\"/>\n <circle cx=\"16\" cy=\"16\" r=\"1\"/>\n </svg>\n);\n\nconst HotelIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M3 21h18\"/>\n <path d=\"M19 21V5a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v16\"/>\n <path d=\"M9 21v-4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v4\"/>\n </svg>\n);\n\nconst ArrowIcon = () => (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/>\n <polyline points=\"12 5 19 12 12 19\"/>\n </svg>\n);\n\n/**\n * Base TripSegment component wrapper\n */\nexport const TripSegment: React.FC<TripSegmentProps> = ({\n type: _type,\n variant = 'light',\n className = '',\n children,\n}) => {\n return (\n <div className={`${styles.segment} ${styles[variant]} ${className}`}>\n {children}\n </div>\n );\n};\n\n/**\n * AirSegment component for displaying flight information\n */\nexport const AirSegment: React.FC<AirSegmentProps> = ({\n flights,\n variant = 'light',\n className = '',\n}) => {\n if (!flights || flights.length === 0) {\n return (\n <TripSegment type=\"air\" variant={variant} className={className}>\n <span className={styles.empty}>No flights</span>\n </TripSegment>\n );\n }\n\n return (\n <TripSegment type=\"air\" variant={variant} className={className}>\n {flights.map((flight, i) => (\n <div key={i} className={styles.item}>\n <div className={styles.itemHeader}>\n <PlaneIcon />\n <span className={styles.itemType}>\n {flight.type === 'charter' ? 'Charter' : 'Commercial'}\n </span>\n </div>\n <div className={styles.route}>\n <span className={styles.location}>{flight.departure}</span>\n <ArrowIcon />\n <span className={styles.location}>{flight.arrival}</span>\n </div>\n <div className={styles.details}>\n <span>{flight.departureDate}</span>\n {flight.departureTime && <span>{flight.departureTime}</span>}\n </div>\n {flight.airline && (\n <div className={styles.details}>\n <span>{flight.airline}</span>\n {flight.flightNumber && <span>#{flight.flightNumber}</span>}\n </div>\n )}\n </div>\n ))}\n </TripSegment>\n );\n};\n\n/**\n * GroundSegment component for displaying ground transportation\n */\nexport const GroundSegment: React.FC<GroundSegmentProps> = ({\n segments,\n variant = 'light',\n className = '',\n}) => {\n if (!segments || segments.length === 0) {\n return (\n <TripSegment type=\"ground\" variant={variant} className={className}>\n <span className={styles.empty}>No ground transportation</span>\n </TripSegment>\n );\n }\n\n return (\n <TripSegment type=\"ground\" variant={variant} className={className}>\n {segments.map((segment, i) => (\n <div key={i} className={styles.item}>\n <div className={styles.itemHeader}>\n <BusIcon />\n <span className={styles.itemType}>\n {segment.type.charAt(0).toUpperCase() + segment.type.slice(1)}\n </span>\n </div>\n <div className={styles.route}>\n <span className={styles.location}>{segment.pickupLocation}</span>\n <ArrowIcon />\n <span className={styles.location}>{segment.dropoffLocation}</span>\n </div>\n <div className={styles.details}>\n <span>{segment.pickupDate}</span>\n {segment.pickupTime && <span>{segment.pickupTime}</span>}\n </div>\n {segment.company && (\n <div className={styles.details}>\n <span>{segment.company}</span>\n {segment.vehicleCount && <span>{segment.vehicleCount} vehicles</span>}\n </div>\n )}\n </div>\n ))}\n </TripSegment>\n );\n};\n\n/**\n * HotelSegment component for displaying hotel information\n */\nexport const HotelSegment: React.FC<HotelSegmentProps> = ({\n hotels,\n variant = 'light',\n className = '',\n}) => {\n if (!hotels || hotels.length === 0) {\n return (\n <TripSegment type=\"hotel\" variant={variant} className={className}>\n <span className={styles.empty}>No hotels</span>\n </TripSegment>\n );\n }\n\n return (\n <TripSegment type=\"hotel\" variant={variant} className={className}>\n {hotels.map((hotel, i) => (\n <div key={i} className={styles.item}>\n <div className={styles.itemHeader}>\n <HotelIcon />\n <span className={styles.itemName}>{hotel.name}</span>\n </div>\n {hotel.city && (\n <div className={styles.details}>\n <span>{hotel.city}</span>\n </div>\n )}\n <div className={styles.dates}>\n <span>{hotel.checkIn}</span>\n <span>–</span>\n <span>{hotel.checkOut}</span>\n </div>\n {hotel.roomCount && (\n <div className={styles.details}>\n <span>{hotel.roomCount} rooms</span>\n </div>\n )}\n </div>\n ))}\n </TripSegment>\n );\n};\n\nTripSegment.displayName = 'TripSegment';\nAirSegment.displayName = 'AirSegment';\nGroundSegment.displayName = 'GroundSegment';\nHotelSegment.displayName = 'HotelSegment';\n\nexport default TripSegment;\n","import React, { useState, HTMLAttributes } from 'react';\nimport { ChevronLeftIcon, ChevronRightIcon } from '../../atoms/Icons';\nimport styles from './Sidenav.module.css';\n\nexport interface SidenavItem {\n /** Unique key for the item */\n key: string;\n /** Display label */\n label: string;\n /** Icon component to display */\n icon: React.ReactNode;\n /** Whether item opens in new tab */\n external?: boolean;\n /** Click handler */\n onClick?: () => void;\n}\n\nexport interface SidenavProps extends HTMLAttributes<HTMLElement> {\n /** Logo component or image for expanded state */\n logo?: React.ReactNode;\n /** Logo component or image for collapsed state */\n logoCollapsed?: React.ReactNode;\n /** Navigation items */\n items: SidenavItem[];\n /** Currently active item key */\n activeKey?: string;\n /** Callback when an item is clicked */\n onItemClick?: (key: string) => void;\n /** Whether the sidenav starts expanded */\n defaultExpanded?: boolean;\n /** Footer content (e.g., user avatar) */\n footer?: React.ReactNode;\n}\n\n/**\n * Sidenav component for main navigation.\n * Supports expanded and collapsed states with icons and labels.\n */\nexport const Sidenav: React.FC<SidenavProps> = ({\n logo,\n logoCollapsed,\n items,\n activeKey,\n onItemClick,\n defaultExpanded = true,\n footer,\n className = '',\n ...props\n}) => {\n const [expanded, setExpanded] = useState(defaultExpanded);\n\n const classNames = [\n styles.sidenav,\n expanded ? styles.expanded : styles.collapsed,\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const handleItemClick = (item: SidenavItem) => {\n if (item.onClick) {\n item.onClick();\n }\n if (onItemClick) {\n onItemClick(item.key);\n }\n };\n\n return (\n <aside className={classNames} {...props}>\n <button\n className={styles.toggle}\n onClick={() => setExpanded(!expanded)}\n aria-label={expanded ? 'Collapse sidebar' : 'Expand sidebar'}\n >\n {expanded ? (\n <ChevronLeftIcon size={16} />\n ) : (\n <ChevronRightIcon size={16} />\n )}\n </button>\n\n <div className={styles.logoContainer}>\n {expanded ? logo : logoCollapsed || logo}\n </div>\n\n <nav className={styles.nav}>\n {items.map((item) => {\n const isActive = item.key === activeKey;\n const itemClasses = [\n styles.navItem,\n isActive ? styles.active : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button\n key={item.key}\n className={itemClasses}\n onClick={() => handleItemClick(item)}\n aria-current={isActive ? 'page' : undefined}\n title={!expanded ? item.label : undefined}\n >\n <span className={styles.icon}>{item.icon}</span>\n {expanded && <span className={styles.label}>{item.label}</span>}\n </button>\n );\n })}\n </nav>\n\n {footer && <div className={styles.footer}>{footer}</div>}\n </aside>\n );\n};\n\nSidenav.displayName = 'Sidenav';\n\nexport default Sidenav;\n","import React, { HTMLAttributes, useState, useRef, useEffect } from 'react';\nimport { ChevronDownIcon } from '../../atoms/Icons';\nimport styles from './Topbar.module.css';\n\nexport interface AccountInfo {\n /** Account code/abbreviation */\n code: string;\n /** Full account name */\n name: string;\n}\n\nexport interface TopbarProps extends HTMLAttributes<HTMLElement> {\n /** Current account information */\n account?: AccountInfo;\n /** List of available accounts for dropdown */\n accounts?: AccountInfo[];\n /** Callback when account is selected */\n onAccountSelect?: (account: AccountInfo) => void;\n /** Callback when account selector is clicked (legacy, use onAccountSelect for dropdown) */\n onAccountClick?: () => void;\n /** Actions to display on the right side */\n actions?: React.ReactNode;\n /** Left side content (e.g., account selector) */\n leftContent?: React.ReactNode;\n}\n\n/**\n * Topbar component for the main header.\n * Includes account selector with dropdown and action buttons.\n */\nexport const Topbar: React.FC<TopbarProps> = ({\n account,\n accounts,\n onAccountSelect,\n onAccountClick,\n actions,\n leftContent,\n className = '',\n ...props\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const [searchQuery, setSearchQuery] = useState('');\n const dropdownRef = useRef<HTMLDivElement>(null);\n const searchInputRef = useRef<HTMLInputElement>(null);\n\n const classNames = [styles.topbar, className].filter(Boolean).join(' ');\n\n // Close dropdown on outside click\n useEffect(() => {\n if (!isOpen) return;\n \n const handleClickOutside = (event: MouseEvent) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n setSearchQuery('');\n }\n };\n\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n setIsOpen(false);\n setSearchQuery('');\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n document.addEventListener('keydown', handleEscape);\n \n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n document.removeEventListener('keydown', handleEscape);\n };\n }, [isOpen]);\n\n // Focus search input when dropdown opens\n useEffect(() => {\n if (isOpen && searchInputRef.current) {\n searchInputRef.current.focus();\n }\n }, [isOpen]);\n\n const handleToggle = () => {\n if (accounts && accounts.length > 0) {\n setIsOpen(!isOpen);\n if (!isOpen) {\n setSearchQuery('');\n }\n } else if (onAccountClick) {\n onAccountClick();\n }\n };\n\n const handleSelectAccount = (selectedAccount: AccountInfo) => {\n onAccountSelect?.(selectedAccount);\n setIsOpen(false);\n setSearchQuery('');\n };\n\n const filteredAccounts = accounts?.filter(acc =>\n acc.name.toLowerCase().includes(searchQuery.toLowerCase()) ||\n acc.code.toLowerCase().includes(searchQuery.toLowerCase())\n ) || [];\n\n const hasDropdown = accounts && accounts.length > 0;\n\n return (\n <header className={classNames} {...props}>\n <div className={styles.left}>\n {leftContent}\n {account && (\n <div className={styles.accountWrapper} ref={dropdownRef}>\n <button \n className={`${styles.accountSelector} ${isOpen ? styles.open : ''}`} \n onClick={handleToggle}\n aria-expanded={isOpen}\n aria-haspopup={hasDropdown ? 'listbox' : undefined}\n >\n <span className={styles.accountCode}>{account.code}</span>\n <span className={styles.accountName}>{account.name}</span>\n {hasDropdown && (\n <ChevronDownIcon \n size={16} \n className={`${styles.chevron} ${isOpen ? styles.chevronOpen : ''}`} \n />\n )}\n </button>\n\n {isOpen && hasDropdown && (\n <div className={styles.dropdown} role=\"listbox\">\n <div className={styles.dropdownSearch}>\n <svg \n className={styles.searchIcon}\n width=\"16\" \n height=\"16\" \n viewBox=\"0 0 24 24\" \n fill=\"none\" \n stroke=\"currentColor\" \n strokeWidth=\"2\"\n >\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n </svg>\n <input\n ref={searchInputRef}\n type=\"text\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n placeholder=\"Search accounts...\"\n className={styles.searchInput}\n />\n </div>\n <div className={styles.dropdownList}>\n {filteredAccounts.length > 0 ? (\n filteredAccounts.map((acc) => (\n <button\n key={acc.code}\n className={`${styles.dropdownItem} ${acc.code === account.code ? styles.selected : ''}`}\n onClick={() => handleSelectAccount(acc)}\n role=\"option\"\n aria-selected={acc.code === account.code}\n >\n <span className={styles.dropdownItemCode}>{acc.code}</span>\n <span className={styles.dropdownItemName}>{acc.name}</span>\n </button>\n ))\n ) : (\n <div className={styles.noResults}>No accounts found</div>\n )}\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n {actions && <div className={styles.actions}>{actions}</div>}\n </header>\n );\n};\n\nTopbar.displayName = 'Topbar';\n\nexport default Topbar;\n","import React from 'react';\nimport { Sidenav, SidenavItem } from '../Sidenav/Sidenav';\nimport { Topbar, AccountInfo } from '../Topbar/Topbar';\nimport styles from './AppLayout.module.css';\n\nexport interface AppLayoutProps {\n /** Navigation items for the sidenav */\n navItems?: SidenavItem[];\n /** Currently active navigation item key */\n activeNavKey?: string;\n /** Logo element for the sidenav */\n logo?: React.ReactNode;\n /** Collapsed logo element for the sidenav */\n collapsedLogo?: React.ReactNode;\n /** Account info for the topbar */\n account?: AccountInfo;\n /** Whether the sidenav starts expanded */\n defaultExpanded?: boolean;\n /** Callback when navigation item is clicked */\n onNavItemClick?: (key: string) => void;\n /** Callback when account selector is clicked */\n onAccountClick?: () => void;\n /** Main content to render */\n children: React.ReactNode;\n /** Footer content for the sidenav */\n navFooter?: React.ReactNode;\n /** Additional actions for the topbar */\n topbarActions?: React.ReactNode;\n /** Additional CSS class */\n className?: string;\n}\n\nexport const AppLayout: React.FC<AppLayoutProps> = ({\n navItems = [],\n activeNavKey,\n logo,\n collapsedLogo,\n account,\n defaultExpanded = true,\n onNavItemClick,\n onAccountClick,\n children,\n navFooter,\n topbarActions,\n className,\n}) => {\n return (\n <div className={`${styles.appLayout} ${className || ''}`}>\n <Sidenav\n items={navItems}\n activeKey={activeNavKey}\n defaultExpanded={defaultExpanded}\n onItemClick={onNavItemClick}\n logo={logo}\n logoCollapsed={collapsedLogo}\n footer={navFooter}\n />\n <div className={styles.mainArea}>\n <Topbar\n account={account}\n onAccountClick={onAccountClick}\n actions={topbarActions}\n />\n <main className={styles.content}>\n {children}\n </main>\n </div>\n </div>\n );\n};\n\nexport default AppLayout;\n","import React, { HTMLAttributes, forwardRef } from 'react';\nimport styles from './Card.module.css';\n\nexport type CardVariant = 'default' | 'bordered' | 'elevated';\nexport type CardPadding = 'none' | 'sm' | 'md' | 'lg';\n\nexport interface CardProps extends HTMLAttributes<HTMLDivElement> {\n /** Visual style variant */\n variant?: CardVariant;\n /** Internal padding */\n padding?: CardPadding;\n /** Makes the card interactive/clickable */\n interactive?: boolean;\n}\n\n/**\n * Card component for grouping related content.\n */\nexport const Card = forwardRef<HTMLDivElement, CardProps>(\n (\n {\n variant = 'default',\n padding = 'md',\n interactive = false,\n className = '',\n children,\n ...props\n },\n ref\n ) => {\n const classNames = [\n styles.card,\n styles[variant],\n styles[`padding-${padding}`],\n interactive ? styles.interactive : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div ref={ref} className={classNames} {...props}>\n {children}\n </div>\n );\n }\n);\n\nCard.displayName = 'Card';\n\nexport interface CardHeaderProps extends HTMLAttributes<HTMLDivElement> {\n /** Title text */\n title?: string;\n /** Subtitle text */\n subtitle?: string;\n /** Actions to display in the header */\n actions?: React.ReactNode;\n}\n\nexport const CardHeader: React.FC<CardHeaderProps> = ({\n title,\n subtitle,\n actions,\n className = '',\n children,\n ...props\n}) => {\n const classNames = [styles.header, className].filter(Boolean).join(' ');\n\n return (\n <div className={classNames} {...props}>\n <div className={styles.headerContent}>\n {title && <h3 className={styles.title}>{title}</h3>}\n {subtitle && <p className={styles.subtitle}>{subtitle}</p>}\n {children}\n </div>\n {actions && <div className={styles.actions}>{actions}</div>}\n </div>\n );\n};\n\nCardHeader.displayName = 'CardHeader';\n\nexport interface CardBodyProps extends HTMLAttributes<HTMLDivElement> {}\n\nexport const CardBody: React.FC<CardBodyProps> = ({\n className = '',\n children,\n ...props\n}) => {\n const classNames = [styles.body, className].filter(Boolean).join(' ');\n\n return (\n <div className={classNames} {...props}>\n {children}\n </div>\n );\n};\n\nCardBody.displayName = 'CardBody';\n\nexport interface CardFooterProps extends HTMLAttributes<HTMLDivElement> {}\n\nexport const CardFooter: React.FC<CardFooterProps> = ({\n className = '',\n children,\n ...props\n}) => {\n const classNames = [styles.footer, className].filter(Boolean).join(' ');\n\n return (\n <div className={classNames} {...props}>\n {children}\n </div>\n );\n};\n\nCardFooter.displayName = 'CardFooter';\n\nexport default Card;\n","import { ReactNode } from 'react';\nimport styles from './ContactList.module.css';\n\nexport interface Contact {\n /** Contact ID */\n id: string | number;\n /** Contact name */\n name: string;\n /** Contact email */\n email?: string;\n /** Contact phone */\n phone?: string;\n /** Contact role/type */\n role?: string;\n /** Whether this is a primary contact */\n isPrimary?: boolean;\n /** Whether this is a secondary contact */\n isSecondary?: boolean;\n}\n\nexport interface ContactListProps {\n /** Title of the contact list */\n title?: string;\n /** Tooltip content */\n tooltip?: ReactNode;\n /** List of contacts */\n contacts: Contact[];\n /** Callback when contact is edited */\n onEdit?: (contact: Contact) => void;\n /** Callback when contact is removed */\n onRemove?: (contact: Contact) => void;\n /** Callback when add is clicked */\n onAdd?: () => void;\n /** Whether to show add button */\n showAdd?: boolean;\n /** Label for add button */\n addLabel?: string;\n /** Alert/info message at top */\n alert?: ReactNode;\n /** Additional class */\n className?: string;\n}\n\nconst InfoIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"/>\n <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"/>\n <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"/>\n </svg>\n);\n\nconst EditIcon = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"/>\n <path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"/>\n </svg>\n);\n\nconst TrashIcon = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <polyline points=\"3 6 5 6 21 6\"/>\n <path d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"/>\n </svg>\n);\n\nconst PlusIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"/>\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/>\n </svg>\n);\n\n/**\n * ContactList - Displays a list of contacts with edit/remove actions\n */\nexport const ContactList = ({\n title = 'Contacts',\n tooltip,\n contacts,\n onEdit,\n onRemove,\n onAdd,\n showAdd = true,\n addLabel = 'Add Contact',\n alert,\n className = '',\n}: ContactListProps) => {\n const listClasses = [\n styles.container,\n className,\n ].filter(Boolean).join(' ');\n\n return (\n <div className={listClasses}>\n {alert && (\n <div className={styles.alert}>\n {alert}\n </div>\n )}\n\n <div className={styles.card}>\n <div className={styles.header}>\n <div className={styles.titleRow}>\n <h3 className={styles.title}>{title}</h3>\n {tooltip && (\n <span className={styles.tooltip}>\n <InfoIcon />\n </span>\n )}\n </div>\n </div>\n\n <div className={styles.list}>\n {contacts.map((contact) => (\n <div key={contact.id} className={styles.contactItem}>\n <div className={styles.contactInfo}>\n <div className={styles.contactName}>\n {contact.name}\n {contact.isPrimary && (\n <span className={styles.badge}>Primary</span>\n )}\n {contact.isSecondary && (\n <span className={`${styles.badge} ${styles.badgeSecondary}`}>Secondary</span>\n )}\n </div>\n {contact.role && (\n <div className={styles.contactRole}>{contact.role}</div>\n )}\n <div className={styles.contactDetails}>\n {contact.email && (\n <a href={`mailto:${contact.email}`} className={styles.contactLink}>\n {contact.email}\n </a>\n )}\n {contact.phone && (\n <span className={styles.contactPhone}>{contact.phone}</span>\n )}\n </div>\n </div>\n <div className={styles.contactActions}>\n {onEdit && (\n <button\n type=\"button\"\n className={styles.actionButton}\n onClick={() => onEdit(contact)}\n aria-label=\"Edit contact\"\n >\n <EditIcon />\n </button>\n )}\n {onRemove && (\n <button\n type=\"button\"\n className={`${styles.actionButton} ${styles.actionButtonDanger}`}\n onClick={() => onRemove(contact)}\n aria-label=\"Remove contact\"\n >\n <TrashIcon />\n </button>\n )}\n </div>\n </div>\n ))}\n\n {contacts.length === 0 && (\n <div className={styles.empty}>No contacts added</div>\n )}\n </div>\n\n {showAdd && onAdd && (\n <div className={styles.footer}>\n <button\n type=\"button\"\n className={styles.addButton}\n onClick={onAdd}\n >\n <PlusIcon />\n {addLabel}\n </button>\n </div>\n )}\n </div>\n </div>\n );\n};\n\nContactList.displayName = 'ContactList';\n\nexport default ContactList;\n","import React, { useEffect, useCallback } from 'react';\nimport styles from './Drawer.module.css';\n\nexport type DrawerPosition = 'left' | 'right' | 'top' | 'bottom';\nexport type DrawerSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';\n\nexport interface DrawerProps {\n /** Whether the drawer is open */\n isOpen: boolean;\n /** Callback when drawer should close */\n onClose: () => void;\n /** Position of the drawer */\n position?: DrawerPosition;\n /** Size of the drawer */\n size?: DrawerSize;\n /** Drawer content */\n children: React.ReactNode;\n /** Whether clicking backdrop closes drawer */\n closeOnBackdropClick?: boolean;\n /** Whether pressing Escape closes drawer */\n closeOnEscape?: boolean;\n /** Whether to show backdrop */\n showBackdrop?: boolean;\n /** Additional CSS class */\n className?: string;\n}\n\nexport interface DrawerHeaderProps {\n /** Header title */\n title?: string;\n /** Header content */\n children?: React.ReactNode;\n /** Whether to show close button */\n showClose?: boolean;\n /** Close callback */\n onClose?: () => void;\n /** Additional CSS class */\n className?: string;\n}\n\nexport interface DrawerBodyProps {\n /** Body content */\n children: React.ReactNode;\n /** Additional CSS class */\n className?: string;\n}\n\nexport interface DrawerFooterProps {\n /** Footer content */\n children: React.ReactNode;\n /** Additional CSS class */\n className?: string;\n}\n\nexport const DrawerHeader: React.FC<DrawerHeaderProps> = ({\n title,\n children,\n showClose = true,\n onClose,\n className = '',\n}) => (\n <div className={`${styles.header} ${className}`}>\n <div className={styles.headerContent}>\n {title && <h2 className={styles.title}>{title}</h2>}\n {children}\n </div>\n {showClose && (\n <button\n type=\"button\"\n className={styles.closeButton}\n onClick={onClose}\n aria-label=\"Close drawer\"\n >\n <svg\n width=\"20\"\n height=\"20\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n )}\n </div>\n);\n\nexport const DrawerBody: React.FC<DrawerBodyProps> = ({ children, className = '' }) => (\n <div className={`${styles.body} ${className}`}>{children}</div>\n);\n\nexport const DrawerFooter: React.FC<DrawerFooterProps> = ({ children, className = '' }) => (\n <div className={`${styles.footer} ${className}`}>{children}</div>\n);\n\nexport const Drawer: React.FC<DrawerProps> & {\n Header: typeof DrawerHeader;\n Body: typeof DrawerBody;\n Footer: typeof DrawerFooter;\n} = ({\n isOpen,\n onClose,\n position = 'right',\n size = 'md',\n children,\n closeOnBackdropClick = true,\n closeOnEscape = true,\n showBackdrop = true,\n className = '',\n}) => {\n const handleEscape = useCallback(\n (e: KeyboardEvent) => {\n if (closeOnEscape && e.key === 'Escape') {\n onClose();\n }\n },\n [closeOnEscape, onClose]\n );\n\n useEffect(() => {\n if (isOpen) {\n document.addEventListener('keydown', handleEscape);\n document.body.style.overflow = 'hidden';\n }\n\n return () => {\n document.removeEventListener('keydown', handleEscape);\n document.body.style.overflow = '';\n };\n }, [isOpen, handleEscape]);\n\n const handleBackdropClick = () => {\n if (closeOnBackdropClick) {\n onClose();\n }\n };\n\n if (!isOpen) return null;\n\n return (\n <div className={styles.container}>\n {showBackdrop && (\n <div\n className={`${styles.backdrop} ${isOpen ? styles.backdropOpen : ''}`}\n onClick={handleBackdropClick}\n />\n )}\n <div\n className={`${styles.drawer} ${styles[position]} ${styles[`size${size.charAt(0).toUpperCase()}${size.slice(1)}`]} ${isOpen ? styles.drawerOpen : ''} ${className}`}\n role=\"dialog\"\n aria-modal=\"true\"\n >\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child) && child.type === DrawerHeader) {\n return React.cloneElement(child as React.ReactElement<DrawerHeaderProps>, {\n onClose,\n });\n }\n return child;\n })}\n </div>\n </div>\n );\n};\n\nDrawer.Header = DrawerHeader;\nDrawer.Body = DrawerBody;\nDrawer.Footer = DrawerFooter;\n\nexport default Drawer;\n","import { useMemo, useState } from 'react';\nimport { CheckIcon, CloseIcon, SearchIcon } from '../../atoms/Icons';\nimport styles from './DueDatesDrawer.module.css';\n\nexport interface TravelDueDateItem {\n duedate: string;\n completeddatetime: string;\n tasktitle: string;\n taskid: number;\n status: string;\n completedby: string;\n description: string;\n servicetype?: string;\n sportCode: string;\n tripId: string;\n tripName: string;\n masterTripGUID?: string;\n}\n\nexport type GroupedTravelDueDates = Record<string, TravelDueDateItem[]>;\n\nexport interface DueDatesDrawerProps {\n isOpen: boolean;\n dueDates: GroupedTravelDueDates;\n selectedDate?: string | null;\n selectedTrip?: string | null;\n onClose: () => void;\n onToggle?: (item: TravelDueDateItem) => void;\n onTaskClick?: (masterTripGUID: string) => void;\n className?: string;\n}\n\nexport const isTravelDueDateCompleted = (item: Pick<TravelDueDateItem, 'status' | 'completeddatetime'>) => item.status.trim().toLowerCase() === 'completed' || !!item.completeddatetime;\n\nconst parseLocalDate = (value: string) => {\n const iso = value.match(/^(\\d{4})-(\\d{2})-(\\d{2})/);\n if (iso) return new Date(Number(iso[1]), Number(iso[2]) - 1, Number(iso[3]));\n const date = new Date(value.replace('+0000', ' GMT'));\n return Number.isNaN(date.getTime()) ? null : date;\n};\n\nconst formatDate = (value: string, options: Intl.DateTimeFormatOptions) => parseLocalDate(value)?.toLocaleDateString('en-US', options) ?? 'Invalid Date';\nconst sportColor = (code: string) => code.toUpperCase().startsWith('W') ? '#FFA99A' : code.toUpperCase().startsWith('X') ? '#D1C1C3' : '#8AC6D9';\n\nconst DueDateCard = ({ item, onToggle, onTaskClick }: { item: TravelDueDateItem; onToggle?: DueDatesDrawerProps['onToggle']; onTaskClick?: DueDatesDrawerProps['onTaskClick'] }) => {\n const completed = isTravelDueDateCompleted(item);\n const dueDate = parseLocalDate(item.duedate);\n const pastDue = !!dueDate && dueDate < new Date() && !completed;\n return (\n <article className={styles.card}>\n <div className={styles.cardTitle}>\n <button type=\"button\" aria-label={`${completed ? 'Reopen' : 'Complete'} ${item.tasktitle}`} className={[styles.status, completed ? styles.completed : pastDue ? styles.pastDue : ''].filter(Boolean).join(' ')} onClick={() => onToggle?.(item)}>{completed ? <CheckIcon size={12} /> : null}</button>\n <h5>{item.tasktitle}</h5>\n </div>\n {item.description && <p>{item.description}</p>}\n <div className={styles.tags}>\n <span style={{ backgroundColor: sportColor(item.sportCode) }}>{item.sportCode}</span>\n <button type=\"button\" disabled={!item.masterTripGUID || !onTaskClick} onClick={() => item.masterTripGUID && onTaskClick?.(item.masterTripGUID)}>{item.tripName}</button>\n </div>\n {completed && item.completeddatetime && <div className={styles.completion}><CheckIcon size={14} /><span><em>on</em> {formatDate(item.completeddatetime, { month: 'numeric', day: 'numeric', year: '2-digit' })} <em>by</em> {item.completedby}</span></div>}\n </article>\n );\n};\n\n/** Hub's searchable, status-aware due-dates drawer. */\nexport const DueDatesDrawer = ({ isOpen, dueDates, selectedDate, selectedTrip, onClose, onToggle, onTaskClick, className = '' }: DueDatesDrawerProps) => {\n const [search, setSearch] = useState('');\n const filtered = useMemo(() => Object.fromEntries(Object.entries(dueDates).flatMap(([date, items]) => {\n if (selectedDate && date !== selectedDate) return [];\n const normalized = search.trim().toLowerCase();\n const matches = items.filter((item) => (!selectedTrip || item.masterTripGUID === String(selectedTrip)) && (!normalized || item.tasktitle.toLowerCase().includes(normalized) || item.sportCode.toLowerCase().includes(normalized) || item.description.toLowerCase().includes(normalized)));\n return matches.length ? [[date, matches]] : [];\n })), [dueDates, search, selectedDate, selectedTrip]) as GroupedTravelDueDates;\n\n return (\n <aside className={[styles.drawer, isOpen ? styles.open : '', className].filter(Boolean).join(' ')} aria-hidden={!isOpen} aria-label=\"Due Dates\">\n <header><h3>Due Dates</h3><button type=\"button\" aria-label=\"Close due dates\" onClick={onClose}><CloseIcon size={24} /></button></header>\n <div className={styles.body}>\n <label className={styles.search}><SearchIcon size={16} /><input type=\"search\" placeholder=\"Search\" value={search} onChange={(event) => setSearch(event.target.value)} /></label>\n {!Object.keys(filtered).length ? <div className={styles.empty}>No due dates found.</div> : Object.entries(filtered).map(([date, items]) => (\n <section key={date}><h4>{formatDate(date, { month: 'long', day: 'numeric', year: 'numeric' })}</h4><div className={styles.cards}>{items.map((item) => <DueDateCard key={`${date}-${item.taskid}`} item={item} onToggle={onToggle} onTaskClick={onTaskClick} />)}</div></section>\n ))}\n </div>\n </aside>\n );\n};\n\nexport default DueDatesDrawer;\n","import { ReactNode } from 'react';\nimport styles from './MembershipPrograms.module.css';\n\nexport interface MembershipProgram {\n /** Unique identifier */\n id: string | number;\n /** Program type (airline, hotel, car rental, etc.) */\n type: 'airline' | 'hotel' | 'car' | 'other';\n /** Provider name */\n provider: string;\n /** Program name */\n programName?: string;\n /** Membership number */\n membershipNumber: string;\n /** Member status/tier */\n status?: string;\n}\n\nexport interface MembershipProgramsProps {\n /** Title of the section */\n title?: string;\n /** Programs to display */\n programs: MembershipProgram[];\n /** Handler for editing a program */\n onEdit?: (program: MembershipProgram) => void;\n /** Handler for removing a program */\n onRemove?: (program: MembershipProgram) => void;\n /** Handler for adding a program */\n onAdd?: () => void;\n /** Alert/info message at top */\n alert?: ReactNode;\n /** Whether in loading state */\n isLoading?: boolean;\n /** Empty state message */\n emptyMessage?: string;\n /** Additional class */\n className?: string;\n}\n\nconst PlaneIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M21 16v-2l-8-5V3.5a1.5 1.5 0 0 0-3 0V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5Z\"/>\n </svg>\n);\n\nconst HotelIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M3 21h18\"/>\n <path d=\"M19 21V5a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v16\"/>\n <path d=\"M9 21v-4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v4\"/>\n </svg>\n);\n\nconst CarIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M7 17m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0\"/>\n <path d=\"M17 17m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0\"/>\n <path d=\"M5 17h-2v-6l2 -5h9l4 5h1a2 2 0 0 1 2 2v4h-2m-4 0h-6m-6 -6h15m-6 0v-5\"/>\n </svg>\n);\n\nconst StarIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"/>\n </svg>\n);\n\nconst EditIcon = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z\"/>\n </svg>\n);\n\nconst TrashIcon = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <polyline points=\"3 6 5 6 21 6\"/>\n <path d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"/>\n </svg>\n);\n\nconst PlusIcon = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"/>\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/>\n </svg>\n);\n\nconst TYPE_ICONS: Record<string, ReactNode> = {\n airline: <PlaneIcon />,\n hotel: <HotelIcon />,\n car: <CarIcon />,\n other: <StarIcon />,\n};\n\nconst TYPE_LABELS: Record<string, string> = {\n airline: 'Airline',\n hotel: 'Hotel',\n car: 'Car Rental',\n other: 'Other',\n};\n\n/**\n * MembershipPrograms - Displays a list of frequent flyer/loyalty programs\n */\nexport const MembershipPrograms = ({\n title = 'Membership Programs',\n programs,\n onEdit,\n onRemove,\n onAdd,\n alert,\n isLoading = false,\n emptyMessage = 'No membership programs added',\n className = '',\n}: MembershipProgramsProps) => {\n const containerClasses = [\n styles.container,\n isLoading ? styles.loading : '',\n className,\n ].filter(Boolean).join(' ');\n\n const groupedPrograms = programs.reduce((acc, program) => {\n const type = program.type || 'other';\n if (!acc[type]) acc[type] = [];\n acc[type].push(program);\n return acc;\n }, {} as Record<string, MembershipProgram[]>);\n\n const typeOrder = ['airline', 'hotel', 'car', 'other'];\n\n return (\n <div className={containerClasses}>\n {alert && <div className={styles.alert}>{alert}</div>}\n\n <div className={styles.header}>\n <h2 className={styles.title}>{title}</h2>\n {onAdd && (\n <button\n type=\"button\"\n className={styles.addButton}\n onClick={onAdd}\n aria-label=\"Add membership program\"\n >\n <PlusIcon />\n <span>Add Program</span>\n </button>\n )}\n </div>\n\n {programs.length === 0 ? (\n <div className={styles.empty}>\n <p>{emptyMessage}</p>\n </div>\n ) : (\n <div className={styles.list}>\n {typeOrder.map((type) => {\n const typePrograms = groupedPrograms[type];\n if (!typePrograms || typePrograms.length === 0) return null;\n\n return (\n <div key={type} className={styles.group}>\n <div className={styles.groupHeader}>\n <span className={styles.groupIcon}>{TYPE_ICONS[type]}</span>\n <span className={styles.groupLabel}>{TYPE_LABELS[type]}</span>\n </div>\n <div className={styles.programs}>\n {typePrograms.map((program) => (\n <div key={program.id} className={styles.program}>\n <div className={styles.programInfo}>\n <div className={styles.programProvider}>{program.provider}</div>\n {program.programName && (\n <div className={styles.programName}>{program.programName}</div>\n )}\n <div className={styles.programNumber}>{program.membershipNumber}</div>\n {program.status && (\n <div className={styles.programStatus}>{program.status}</div>\n )}\n </div>\n <div className={styles.programActions}>\n {onEdit && (\n <button\n type=\"button\"\n className={styles.actionButton}\n onClick={() => onEdit(program)}\n aria-label={`Edit ${program.provider} program`}\n >\n <EditIcon />\n </button>\n )}\n {onRemove && (\n <button\n type=\"button\"\n className={[styles.actionButton, styles.removeButton].join(' ')}\n onClick={() => onRemove(program)}\n aria-label={`Remove ${program.provider} program`}\n >\n <TrashIcon />\n </button>\n )}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n })}\n </div>\n )}\n </div>\n );\n};\n\nMembershipPrograms.displayName = 'MembershipPrograms';\n\nexport default MembershipPrograms;\n","import { WarningIcon } from '../../atoms/Icons';\nimport styles from './ManifestCapacityStats.module.css';\n\nexport interface ManifestCapacityStatsProps {\n paxCount: number;\n seats: number;\n paxWeight: number;\n cargoWeight: number;\n payloadLimit: number;\n className?: string;\n}\n\ninterface StatProps {\n label: string;\n value: string;\n sub: string;\n meterValue: number;\n meterMax: number;\n warn?: boolean;\n}\n\nconst Stat = ({ label, value, sub, meterValue, meterMax, warn = false }: StatProps) => {\n const ratio = meterMax > 0 ? Math.min(100, Math.max(0, (meterValue / meterMax) * 100)) : 0;\n\n return (\n <div className={styles.stat}>\n <div className={styles.labelRow}>\n <span className={styles.label}>{label}</span>\n {warn && <WarningIcon size={14} className={styles.warningIcon} aria-label={`${label} warning`} />}\n </div>\n <div className={[styles.value, warn ? styles.warningText : ''].filter(Boolean).join(' ')}>{value}</div>\n <div className={styles.sub}>{sub}</div>\n <div className={styles.meter} aria-hidden=\"true\">\n <span\n className={[styles.meterFill, warn ? styles.meterOver : ''].filter(Boolean).join(' ')}\n style={{ width: `${ratio}%` }}\n />\n </div>\n </div>\n );\n};\n\n/** Advisory seat and payload meters from Hub's charter manifest. */\nexport const ManifestCapacityStats = ({\n paxCount,\n seats,\n paxWeight,\n cargoWeight,\n payloadLimit,\n className = '',\n}: ManifestCapacityStatsProps) => {\n const totalWeight = paxWeight + cargoWeight;\n const overSeats = seats > 0 && paxCount > seats;\n const overPayload = payloadLimit > 0 && totalWeight > payloadLimit;\n\n return (\n <div className={className}>\n <div className={styles.stats}>\n <Stat\n label=\"Seats\"\n value={`${paxCount} / ${seats}`}\n sub={overSeats ? `${paxCount - seats} over capacity` : `${Math.max(0, seats - paxCount)} seats open`}\n meterValue={paxCount}\n meterMax={seats}\n warn={overSeats}\n />\n <Stat\n label=\"Passenger weight\"\n value={`${paxWeight.toLocaleString()} lb`}\n sub={`${paxCount} passengers`}\n meterValue={paxWeight}\n meterMax={payloadLimit}\n />\n <Stat\n label=\"Cargo weight\"\n value={`${cargoWeight.toLocaleString()} lb`}\n sub=\"Equipment + bags\"\n meterValue={cargoWeight}\n meterMax={payloadLimit}\n />\n <Stat\n label=\"Total payload\"\n value={`${totalWeight.toLocaleString()} lb`}\n sub={overPayload ? `${(totalWeight - payloadLimit).toLocaleString()} lb over limit` : `Limit ${payloadLimit.toLocaleString()} lb`}\n meterValue={totalWeight}\n meterMax={payloadLimit}\n warn={overPayload}\n />\n </div>\n\n {(overSeats || overPayload) && (\n <div className={styles.alert} role=\"alert\">\n <WarningIcon size={20} className={styles.alertIcon} />\n <div>\n {overSeats && (\n <div><strong>Over seat capacity.</strong> Remove {paxCount - seats} passenger(s) or split the manifest by segment.</div>\n )}\n {overPayload && (\n <div><strong>Over the contracted payload.</strong> Total payload exceeds the quoted maximum — coordinate with the team/client and confirm with the carrier before sending.</div>\n )}\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default ManifestCapacityStats;\n","import React, { useEffect, useCallback } from 'react';\nimport styles from './Modal.module.css';\nimport { Button } from '../../atoms/Button';\n\nexport type ModalSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';\n\nexport interface ModalProps {\n /** Whether the modal is open */\n isOpen: boolean;\n /** Callback when modal should close */\n onClose: () => void;\n /** Modal title */\n title?: string;\n /** Modal content */\n children: React.ReactNode;\n /** Size of the modal */\n size?: ModalSize;\n /** Whether to show close button */\n showCloseButton?: boolean;\n /** Whether clicking backdrop closes modal */\n closeOnBackdropClick?: boolean;\n /** Whether pressing Escape closes modal */\n closeOnEscape?: boolean;\n /** Footer content */\n footer?: React.ReactNode;\n /** Additional CSS class */\n className?: string;\n}\n\nexport const Modal: React.FC<ModalProps> = ({\n isOpen,\n onClose,\n title,\n children,\n size = 'md',\n showCloseButton = true,\n closeOnBackdropClick = true,\n closeOnEscape = true,\n footer,\n className = '',\n}) => {\n const handleEscape = useCallback(\n (e: KeyboardEvent) => {\n if (closeOnEscape && e.key === 'Escape') {\n onClose();\n }\n },\n [closeOnEscape, onClose]\n );\n\n useEffect(() => {\n if (isOpen) {\n document.addEventListener('keydown', handleEscape);\n document.body.style.overflow = 'hidden';\n }\n\n return () => {\n document.removeEventListener('keydown', handleEscape);\n document.body.style.overflow = '';\n };\n }, [isOpen, handleEscape]);\n\n const handleBackdropClick = (e: React.MouseEvent) => {\n if (closeOnBackdropClick && e.target === e.currentTarget) {\n onClose();\n }\n };\n\n if (!isOpen) return null;\n\n return (\n <div className={styles.overlay} onClick={handleBackdropClick}>\n <div\n className={`${styles.modal} ${styles[size]} ${className}`}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={title ? 'modal-title' : undefined}\n >\n {(title || showCloseButton) && (\n <div className={styles.header}>\n {title && (\n <h2 id=\"modal-title\" className={styles.title}>\n {title}\n </h2>\n )}\n {showCloseButton && (\n <button\n type=\"button\"\n className={styles.closeButton}\n onClick={onClose}\n aria-label=\"Close modal\"\n >\n <svg\n width=\"20\"\n height=\"20\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n )}\n </div>\n )}\n\n <div className={styles.body}>{children}</div>\n\n {footer && <div className={styles.footer}>{footer}</div>}\n </div>\n </div>\n );\n};\n\n// Convenience components for common footer patterns\nexport interface ModalFooterProps {\n children: React.ReactNode;\n className?: string;\n}\n\nexport const ModalFooter: React.FC<ModalFooterProps> = ({ children, className = '' }) => (\n <div className={`${styles.footerButtons} ${className}`}>{children}</div>\n);\n\nexport interface ConfirmModalProps extends Omit<ModalProps, 'footer' | 'children'> {\n /** Message to display */\n message: string | React.ReactNode;\n /** Confirm button text */\n confirmText?: string;\n /** Cancel button text */\n cancelText?: string;\n /** Callback when confirmed */\n onConfirm: () => void;\n /** Whether confirm action is destructive */\n destructive?: boolean;\n /** Whether confirm action is in progress */\n loading?: boolean;\n}\n\nexport const ConfirmModal: React.FC<ConfirmModalProps> = ({\n message,\n confirmText = 'Confirm',\n cancelText = 'Cancel',\n onConfirm,\n onClose,\n destructive = false,\n loading = false,\n ...props\n}) => (\n <Modal\n {...props}\n onClose={onClose}\n size=\"sm\"\n footer={\n <ModalFooter>\n <Button variant=\"secondary\" onClick={onClose}>\n {cancelText}\n </Button>\n <Button\n variant={destructive ? 'danger' : 'primary'}\n onClick={onConfirm}\n disabled={loading}\n >\n {loading ? 'Loading...' : confirmText}\n </Button>\n </ModalFooter>\n }\n >\n <div className={styles.confirmMessage}>{message}</div>\n </Modal>\n);\n\nexport default Modal;\n","import React, { ReactNode, useState, useEffect } from 'react';\nimport styles from './Module.module.css';\n\nexport type ModuleSize = 'sm' | 'md' | 'lg';\n\nexport interface ModuleProps {\n /** Module title */\n title?: string;\n /** Icon element to display */\n icon?: ReactNode;\n /** Icon CSS class for color */\n iconClassName?: string;\n /** Badge content */\n badge?: string | number;\n /** Content before main body */\n before?: ReactNode;\n /** Main content */\n children: ReactNode;\n /** Content after main body */\n after?: ReactNode;\n /** Footer content */\n footer?: ReactNode;\n /** Tools/actions to display in header */\n tools?: ReactNode;\n /** Additional CSS class */\n className?: string;\n /** Header additional class */\n headerClassName?: string;\n /** Title additional class */\n titleClassName?: string;\n /** Body additional class */\n bodyClassName?: string;\n /** Module size */\n size?: ModuleSize;\n /** Whether to show toggle control */\n useToggle?: boolean;\n /** Controlled show/hide state */\n show?: boolean;\n /** Callback when toggle is clicked */\n onToggle?: () => void;\n}\n\nconst ChevronIcon = ({ direction }: { direction: 'up' | 'down' }) => (\n <svg \n width=\"24\" \n height=\"24\" \n viewBox=\"0 0 24 24\" \n fill=\"none\" \n stroke=\"currentColor\" \n strokeWidth=\"2\"\n style={{ transform: direction === 'up' ? 'rotate(180deg)' : 'none' }}\n >\n <polyline points=\"6 9 12 15 18 9\" />\n </svg>\n);\n\n/**\n * Module component - a collapsible card with header, body, and footer sections.\n * Used for grouping related content like trip segments (Air, Ground, Hotel).\n */\nexport const Module: React.FC<ModuleProps> = ({\n title,\n icon,\n iconClassName = '',\n badge,\n before,\n children,\n after,\n footer,\n tools,\n className = '',\n headerClassName = '',\n titleClassName = '',\n bodyClassName = '',\n size = 'md',\n useToggle = true,\n show = true,\n onToggle,\n}) => {\n const [open, setOpen] = useState(show);\n\n useEffect(() => {\n if (typeof show === 'boolean') {\n setOpen(show);\n }\n }, [show]);\n\n const handleToggle = () => {\n if (typeof onToggle === 'function') {\n onToggle();\n } else {\n setOpen(!open);\n }\n };\n\n return (\n <div className={`${styles.module} ${className}`}>\n {title && (\n <div className={`${styles.header} ${styles[size]} ${!open ? styles.closed : ''} ${headerClassName}`}>\n <div className={`${styles.titleRow} ${styles[size]} ${titleClassName}`}>\n {icon && (\n <span className={`${styles.icon} ${size === 'sm' ? '' : styles.iconSpaced} ${iconClassName}`}>\n {icon}\n </span>\n )}\n <span className={styles.title}>{title}</span>\n {badge && <span className={styles.badge}>{badge}</span>}\n <div className={styles.tools}>\n {tools}\n {useToggle && (\n <button \n type=\"button\" \n className={styles.toggleBtn}\n onClick={handleToggle}\n aria-expanded={open}\n >\n <ChevronIcon direction={open ? 'up' : 'down'} />\n </button>\n )}\n </div>\n </div>\n </div>\n )}\n <div className={styles.bodyWrapper}>\n {before}\n <div className={`${styles.body} ${styles[size]} ${!open ? styles.hidden : ''} ${bodyClassName}`}>\n {children}\n </div>\n {after}\n </div>\n {footer && (\n <div className={`${styles.footer} ${!open ? styles.hidden : ''}`}>\n {footer}\n </div>\n )}\n </div>\n );\n};\n\n/**\n * Horizontal divider for Module content\n */\nexport const ModuleDivider: React.FC<{ dark?: boolean; className?: string }> = ({ \n dark = false, \n className = '' \n}) => (\n <hr className={`${styles.divider} ${dark ? styles.dark : ''} ${className}`} />\n);\n\n/**\n * Vertical divider for Module content\n */\nexport const ModuleVerticalDivider: React.FC<{ dark?: boolean; className?: string }> = ({ \n dark = false, \n className = '' \n}) => (\n <div className={`${styles.verticalDivider} ${dark ? styles.dark : ''} ${className}`} />\n);\n\nModule.displayName = 'Module';\n\nexport default Module;\n","import { useEffect, useRef, useState } from 'react';\nimport { CloseIcon, InfoIcon, WarningIcon } from '../../atoms/Icons';\nimport styles from './PageBanners.module.css';\n\nexport interface SystemBanner {\n id: string;\n html: string;\n detailHtml?: string;\n}\n\nexport interface TravelAlertBanner {\n id: string;\n title: string;\n body?: string;\n href?: string;\n}\n\nexport interface PageBannersProps {\n systemBanners: SystemBanner[];\n alertBanners: TravelAlertBanner[];\n className?: string;\n}\n\nconst decodeEntities = (value: string) => {\n if (typeof document === 'undefined') return value;\n const element = document.createElement('textarea');\n element.innerHTML = value;\n return element.value;\n};\n\nexport const PageBanners = ({\n systemBanners,\n alertBanners,\n className = '',\n}: PageBannersProps) => {\n const [dismissed, setDismissed] = useState<Set<string>>(new Set());\n const previousSystem = useRef(systemBanners);\n const previousAlerts = useRef(alertBanners);\n\n useEffect(() => {\n if (previousSystem.current !== systemBanners || previousAlerts.current !== alertBanners) {\n setDismissed(new Set());\n previousSystem.current = systemBanners;\n previousAlerts.current = alertBanners;\n }\n }, [alertBanners, systemBanners]);\n\n const dismiss = (id: string) => {\n setDismissed((current) => new Set([...current, id]));\n };\n\n const visibleSystem = systemBanners.filter((banner) => !dismissed.has(banner.id));\n const visibleAlerts = alertBanners.filter((banner) => !dismissed.has(banner.id));\n\n if (!visibleSystem.length && !visibleAlerts.length) return null;\n\n return (\n <div\n className={[styles.stack, className].filter(Boolean).join(' ')}\n role=\"region\"\n aria-label=\"Page notices\"\n >\n {visibleSystem.map((banner) => (\n <div key={banner.id} className={[styles.banner, styles.system].join(' ')} role=\"status\">\n <InfoIcon className={styles.systemIcon} size={20} aria-hidden=\"true\" />\n <div className={styles.content}>\n <p className={styles.title} dangerouslySetInnerHTML={{ __html: banner.html }} />\n {banner.detailHtml && (\n <p className={styles.detail} dangerouslySetInnerHTML={{ __html: banner.detailHtml }} />\n )}\n </div>\n <button\n type=\"button\"\n className={styles.dismiss}\n aria-label=\"Dismiss notice\"\n onClick={() => dismiss(banner.id)}\n >\n <CloseIcon size={16} />\n </button>\n </div>\n ))}\n\n {visibleAlerts.map((banner) => {\n const content = (\n <div className={styles.content}>\n <p className={[styles.title, styles.alertTitle].join(' ')}>{decodeEntities(banner.title)}</p>\n {banner.body && <p className={[styles.detail, styles.clamp].join(' ')}>{decodeEntities(banner.body)}</p>}\n </div>\n );\n\n return (\n <div key={banner.id} className={[styles.banner, styles.alert].join(' ')} role=\"alert\">\n <WarningIcon className={styles.alertIcon} size={20} aria-hidden=\"true\" />\n {banner.href ? (\n <a href={banner.href} className={styles.alertLink}>\n {content}\n </a>\n ) : (\n content\n )}\n <button\n type=\"button\"\n className={[styles.dismiss, styles.alertDismiss].join(' ')}\n aria-label=\"Dismiss alert\"\n onClick={() => dismiss(banner.id)}\n >\n <CloseIcon size={16} />\n </button>\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default PageBanners;\n","import { ReactNode } from 'react';\nimport styles from './PreferencesPanel.module.css';\n\nexport interface PreferenceField {\n /** Field label */\n label: string;\n /** Field value display */\n value?: string | ReactNode;\n /** Field input element */\n input?: ReactNode;\n}\n\nexport interface PreferenceSection {\n /** Section title */\n title: string;\n /** Section icon */\n icon?: ReactNode;\n /** Fields in this section */\n fields: PreferenceField[];\n}\n\nexport interface PreferencesPanelProps {\n /** Title of the panel */\n title?: string;\n /** Sections to display */\n sections: PreferenceSection[];\n /** Alert/info message at top */\n alert?: ReactNode;\n /** Footer actions */\n footer?: ReactNode;\n /** Whether form is in loading state */\n isLoading?: boolean;\n /** Additional class */\n className?: string;\n}\n\nconst PlaneIcon = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M21 16v-2l-8-5V3.5a1.5 1.5 0 0 0-3 0V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5Z\"/>\n </svg>\n);\n\nconst BusIcon = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <rect x=\"4\" y=\"4\" width=\"16\" height=\"14\" rx=\"2\"/>\n <path d=\"M8 6v6\"/>\n <path d=\"M16 6v6\"/>\n <circle cx=\"8\" cy=\"16\" r=\"1\"/>\n <circle cx=\"16\" cy=\"16\" r=\"1\"/>\n </svg>\n);\n\nconst HotelIcon = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M3 21h18\"/>\n <path d=\"M19 21V5a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v16\"/>\n <path d=\"M9 21v-4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v4\"/>\n </svg>\n);\n\nconst DEFAULT_ICONS: Record<string, ReactNode> = {\n air: <PlaneIcon />,\n ground: <BusIcon />,\n hotel: <HotelIcon />,\n};\n\n/**\n * PreferencesPanel - Displays travel preferences in a multi-column layout\n */\nexport const PreferencesPanel = ({\n title,\n sections,\n alert,\n footer,\n isLoading = false,\n className = '',\n}: PreferencesPanelProps) => {\n const panelClasses = [\n styles.panel,\n isLoading ? styles.loading : '',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n <div className={panelClasses}>\n {alert && (\n <div className={styles.alert}>\n {alert}\n </div>\n )}\n\n {title && <h2 className={styles.title}>{title}</h2>}\n\n <div className={styles.grid}>\n {sections.map((section, i) => (\n <div key={i} className={styles.section}>\n <div className={styles.sectionHeader}>\n {(section.icon || DEFAULT_ICONS[section.title.toLowerCase()]) && (\n <span className={styles.sectionIcon}>\n {section.icon || DEFAULT_ICONS[section.title.toLowerCase()]}\n </span>\n )}\n <h3 className={styles.sectionTitle}>{section.title}</h3>\n </div>\n <div className={styles.fields}>\n {section.fields.map((field, j) => (\n <div key={j} className={styles.field}>\n <label className={styles.fieldLabel}>{field.label}</label>\n {field.input ? (\n <div className={styles.fieldInput}>{field.input}</div>\n ) : (\n <div className={styles.fieldValue}>{field.value || '—'}</div>\n )}\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n\n {footer && (\n <div className={styles.footer}>\n {footer}\n </div>\n )}\n </div>\n );\n};\n\nPreferencesPanel.displayName = 'PreferencesPanel';\n\nexport default PreferencesPanel;\n","import React from 'react';\nimport styles from './RequestSummary.module.css';\n\nexport interface SummaryItem {\n /** Label for the field */\n label: string;\n /** Value to display */\n value: string | number | null | undefined;\n /** Optional formatter function */\n format?: (value: any) => string;\n}\n\nexport interface SummarySegment {\n /** Segment label (e.g., \"Flight 1\") */\n label: string;\n /** Items in this segment */\n items: SummaryItem[];\n}\n\nexport interface SummarySectionConfig {\n /** Section title (e.g., \"Commercial Air Request\") */\n title: string;\n /** Key to check if this section should be visible */\n key: string;\n /** Direct items to display */\n items?: SummaryItem[];\n /** Segments with repeated items (e.g., multiple flights) */\n segments?: SummarySegment[];\n}\n\nexport interface RequestSummaryProps {\n /** Summary sections to display */\n sections: SummarySectionConfig[];\n /** Map of values by field key */\n values: Record<string, any>;\n /** Map of enabled sections by key */\n enabledSections?: Record<string, boolean>;\n /** Submission info */\n submissionInfo?: {\n submittedBy: string;\n submittedOn: string;\n };\n /** Additional CSS class */\n className?: string;\n /** Title for the summary panel */\n title?: string;\n}\n\n/**\n * SummaryItem component displays a single label-value pair.\n */\nconst SummaryItemRow: React.FC<{ item: SummaryItem; value: any }> = ({ item, value }) => {\n if (!value) return null;\n \n const formattedValue = item.format ? item.format(value) : String(value);\n \n return (\n <div className={styles.row}>\n <span className={styles.label}>{item.label}</span>\n <span className={styles.value}>{formattedValue}</span>\n </div>\n );\n};\n\n/**\n * SummarySection component for a group of related summary items.\n */\nexport const SummarySection: React.FC<{\n section: SummarySectionConfig;\n values: Record<string, any>;\n}> = ({ section, values }) => {\n // Check if any items have values\n const hasItems = section.items?.some(item => values[item.label] || values[`${section.key}_${item.label}`]);\n const hasSegments = section.segments?.some(seg => \n seg.items.some(item => values[`${section.key}_${seg.label}_${item.label}`] || values[item.label])\n );\n\n if (!hasItems && !hasSegments) return null;\n\n return (\n <div className={styles.section}>\n <h3 className={styles.sectionTitle}>{section.title}</h3>\n {section.items?.map((item, i) => (\n <SummaryItemRow \n key={i} \n item={item} \n value={values[item.label] || values[`${section.key}_${item.label}`]} \n />\n ))}\n {section.segments?.map((segment, i) => (\n <div key={i} className={styles.segment}>\n <h4 className={styles.segmentTitle}>{segment.label}</h4>\n {segment.items.map((item, j) => (\n <SummaryItemRow \n key={j} \n item={item} \n value={values[`${section.key}_${segment.label}_${item.label}`] || values[item.label]} \n />\n ))}\n </div>\n ))}\n </div>\n );\n};\n\n/**\n * RequestSummary component for displaying a summary of travel request form data.\n * Shows enabled sections with their filled-in values.\n */\nexport const RequestSummary: React.FC<RequestSummaryProps> = ({\n sections,\n values,\n enabledSections = {},\n submissionInfo,\n className,\n title = 'Request Summary',\n}) => {\n const visibleSections = sections.filter(\n section => enabledSections[section.key] !== false\n );\n\n return (\n <div className={`${styles.summary} ${className || ''}`}>\n <h2 className={styles.title}>{title}</h2>\n \n {submissionInfo && (\n <div className={styles.submissionInfo}>\n <span className={styles.label}>Submitted by</span>\n <span className={styles.value}>{submissionInfo.submittedBy}</span>\n <span className={styles.label}>on</span>\n <span className={styles.value}>{submissionInfo.submittedOn}</span>\n </div>\n )}\n \n <div className={styles.sections}>\n {visibleSections.map((section) => (\n <SummarySection key={section.key} section={section} values={values} />\n ))}\n </div>\n \n {visibleSections.length === 0 && (\n <p className={styles.empty}>No services selected</p>\n )}\n </div>\n );\n};\n\nRequestSummary.displayName = 'RequestSummary';\n\nexport default RequestSummary;\n","import React, { ReactNode } from 'react';\nimport styles from './RequestFormLayout.module.css';\n\nexport interface RequestFormHeaderProps {\n /** Title to display */\n title: string;\n /** Current page number (1-indexed) */\n currentPage?: number;\n /** Total pages */\n totalPages?: number;\n /** Event or request name */\n eventName?: string;\n /** Additional content on the right side */\n rightContent?: ReactNode;\n /** Additional CSS class */\n className?: string;\n}\n\nexport interface RequestFormFooterProps {\n /** Callback for cancel/previous button */\n onPrevious: () => void;\n /** Callback for next/submit button */\n onNext: () => void;\n /** Whether on first page */\n isFirstPage?: boolean;\n /** Whether on last page */\n isLastPage?: boolean;\n /** Whether the form is currently submitting */\n isSubmitting?: boolean;\n /** Custom previous button text */\n previousText?: string;\n /** Custom next button text */\n nextText?: string;\n /** Additional CSS class */\n className?: string;\n}\n\nexport interface RequestFormLayoutProps {\n /** Header component */\n header?: ReactNode;\n /** Left sidebar content (service toggles) */\n sidebar?: ReactNode;\n /** Main form content */\n children: ReactNode;\n /** Right sidebar content (summary) */\n summary?: ReactNode;\n /** Footer component */\n footer?: ReactNode;\n /** Additional CSS class */\n className?: string;\n /** Whether to show the sidebar on mobile */\n showSidebarOnMobile?: boolean;\n}\n\n/**\n * RequestFormHeader component for the fixed header in travel request forms.\n */\nexport const RequestFormHeader: React.FC<RequestFormHeaderProps> = ({\n title,\n currentPage,\n totalPages,\n eventName,\n rightContent,\n className,\n}) => {\n const showPagination = currentPage !== undefined && totalPages !== undefined && totalPages > 1;\n \n return (\n <header className={`${styles.header} ${className || ''}`}>\n <div className={styles.headerContent}>\n <h1 className={styles.headerTitle}>\n {title}\n {showPagination && (\n <span className={styles.pagination}>\n ({currentPage}/{totalPages})\n </span>\n )}\n {eventName && (\n <>\n <span className={styles.separator}>–</span>\n <span className={styles.eventName}>{eventName}</span>\n </>\n )}\n </h1>\n {rightContent && <div className={styles.headerRight}>{rightContent}</div>}\n </div>\n </header>\n );\n};\n\n/**\n * RequestFormFooter component for the fixed footer with navigation buttons.\n */\nexport const RequestFormFooter: React.FC<RequestFormFooterProps> = ({\n onPrevious,\n onNext,\n isFirstPage = false,\n isLastPage = false,\n isSubmitting = false,\n previousText,\n nextText,\n className,\n}) => {\n const prevLabel = previousText || (isFirstPage ? 'Cancel' : 'Previous');\n const nextLabel = nextText || (isLastPage ? 'Submit' : 'Next');\n \n return (\n <footer className={`${styles.footer} ${className || ''}`}>\n <div className={styles.footerContent}>\n <button\n type=\"button\"\n className={`${styles.button} ${styles.secondary}`}\n onClick={onPrevious}\n disabled={isSubmitting}\n >\n {prevLabel}\n </button>\n <button\n type=\"button\"\n className={`${styles.button} ${styles.primary}`}\n onClick={onNext}\n disabled={isSubmitting}\n >\n {isSubmitting ? 'Submitting...' : nextLabel}\n </button>\n </div>\n </footer>\n );\n};\n\n/**\n * RequestFormLayout organism for travel request forms.\n * Provides a three-column layout with fixed header and footer.\n */\nexport const RequestFormLayout: React.FC<RequestFormLayoutProps> = ({\n header,\n sidebar,\n children,\n summary,\n footer,\n className,\n showSidebarOnMobile = false,\n}) => {\n return (\n <div className={`${styles.layout} ${className || ''}`}>\n {header}\n \n <div className={styles.body}>\n {sidebar && (\n <aside className={`${styles.sidebar} ${showSidebarOnMobile ? styles.showOnMobile : ''}`}>\n <div className={styles.sidebarContent}>\n {sidebar}\n </div>\n </aside>\n )}\n \n <main className={styles.main}>\n <div className={styles.mainContent}>\n {children}\n </div>\n </main>\n \n {summary && (\n <aside className={styles.summarySidebar}>\n <div className={styles.summaryContent}>\n {summary}\n </div>\n </aside>\n )}\n </div>\n \n {footer}\n </div>\n );\n};\n\nRequestFormLayout.displayName = 'RequestFormLayout';\nRequestFormHeader.displayName = 'RequestFormHeader';\nRequestFormFooter.displayName = 'RequestFormFooter';\n\nexport default RequestFormLayout;\n","import React, { useState, useMemo } from 'react';\nimport styles from './Table.module.css';\n\nexport interface TableColumn<T = any> {\n /** Unique key for the column */\n key: string;\n /** Column header label */\n label: string;\n /** Whether the column is sortable */\n sortable?: boolean;\n /** Column width (e.g., '100px', '20%') */\n width?: string;\n /** Custom render function for cells */\n render?: (value: any, row: T, index: number) => React.ReactNode;\n /** Text alignment */\n align?: 'left' | 'center' | 'right';\n}\n\nexport interface TableProps<T = any> {\n /** Column definitions */\n columns: TableColumn<T>[];\n /** Data rows */\n data: T[];\n /** Unique key accessor for each row */\n rowKey?: keyof T | ((row: T) => string | number);\n /** Whether to show borders */\n bordered?: boolean;\n /** Whether rows are striped */\n striped?: boolean;\n /** Whether rows highlight on hover */\n hoverable?: boolean;\n /** Whether the table is compact */\n compact?: boolean;\n /** Loading state */\n loading?: boolean;\n /** Empty state message */\n emptyMessage?: string;\n /** Row click handler */\n onRowClick?: (row: T, index: number) => void;\n /** Additional CSS class */\n className?: string;\n}\n\nexport const Table = <T extends Record<string, any> = any>({\n columns,\n data,\n rowKey = 'id',\n bordered = false,\n striped = false,\n hoverable = true,\n compact = false,\n loading = false,\n emptyMessage = 'No data available',\n onRowClick,\n className = '',\n}: TableProps<T>) => {\n const [sortColumn, setSortColumn] = useState<string | null>(null);\n const [sortDirection, setSortDirection] = useState<'asc' | 'desc'>('asc');\n\n const handleSort = (column: TableColumn<T>) => {\n if (!column.sortable) return;\n \n if (sortColumn === column.key) {\n setSortDirection(sortDirection === 'asc' ? 'desc' : 'asc');\n } else {\n setSortColumn(column.key);\n setSortDirection('asc');\n }\n };\n\n const sortedData = useMemo(() => {\n if (!sortColumn) return data;\n \n return [...data].sort((a, b) => {\n const aVal = a[sortColumn];\n const bVal = b[sortColumn];\n \n if (aVal === bVal) return 0;\n if (aVal === null || aVal === undefined) return 1;\n if (bVal === null || bVal === undefined) return -1;\n \n const comparison = aVal < bVal ? -1 : 1;\n return sortDirection === 'asc' ? comparison : -comparison;\n });\n }, [data, sortColumn, sortDirection]);\n\n const getRowKey = (row: T, index: number): string | number => {\n if (typeof rowKey === 'function') {\n return rowKey(row);\n }\n return row[rowKey] ?? index;\n };\n\n return (\n <div className={`${styles.wrapper} ${className}`}>\n <table\n className={`${styles.table} ${bordered ? styles.bordered : ''} ${striped ? styles.striped : ''} ${hoverable ? styles.hoverable : ''} ${compact ? styles.compact : ''}`}\n >\n <thead className={styles.header}>\n <tr>\n {columns.map((column) => (\n <th\n key={column.key}\n className={`${styles.headerCell} ${column.sortable ? styles.sortable : ''} ${styles[`align${(column.align || 'left').charAt(0).toUpperCase()}${(column.align || 'left').slice(1)}`]}`}\n style={column.width ? { width: column.width } : undefined}\n onClick={() => handleSort(column)}\n >\n <span className={styles.headerContent}>\n {column.label}\n {column.sortable && (\n <span className={styles.sortIcon}>\n {sortColumn === column.key ? (\n sortDirection === 'asc' ? '↑' : '↓'\n ) : (\n '↕'\n )}\n </span>\n )}\n </span>\n </th>\n ))}\n </tr>\n </thead>\n <tbody className={styles.body}>\n {loading ? (\n <tr>\n <td colSpan={columns.length} className={styles.loading}>\n Loading...\n </td>\n </tr>\n ) : sortedData.length === 0 ? (\n <tr>\n <td colSpan={columns.length} className={styles.empty}>\n {emptyMessage}\n </td>\n </tr>\n ) : (\n sortedData.map((row, rowIndex) => (\n <tr\n key={getRowKey(row, rowIndex)}\n className={`${styles.row} ${onRowClick ? styles.clickable : ''}`}\n onClick={() => onRowClick?.(row, rowIndex)}\n >\n {columns.map((column) => (\n <td\n key={column.key}\n className={`${styles.cell} ${styles[`align${(column.align || 'left').charAt(0).toUpperCase()}${(column.align || 'left').slice(1)}`]}`}\n >\n {column.render\n ? column.render(row[column.key], row, rowIndex)\n : row[column.key]}\n </td>\n ))}\n </tr>\n ))\n )}\n </tbody>\n </table>\n </div>\n );\n};\n\nexport default Table;\n","import { useState, useMemo, ReactNode } from 'react';\nimport styles from './TeamCard.module.css';\n\nexport interface TeamOption {\n /** Team code (e.g., 'MBB', 'WBB') */\n code: string;\n /** Team description/name */\n description: string;\n /** Team ID */\n id: string | number;\n /** Team category: men, women, mixed */\n category?: 'men' | 'women' | 'mixed';\n}\n\nexport interface TeamCardProps {\n /** Title of the card */\n title?: string;\n /** Icon element */\n icon?: ReactNode;\n /** List of teams to display */\n teams: TeamOption[];\n /** Callback when a team is selected */\n onTeamSelect?: (team: TeamOption) => void;\n /** Additional class */\n className?: string;\n}\n\nconst TEAM_GROUPS = [\n { label: 'All', key: undefined },\n { label: 'Men', key: 'men' as const },\n { label: 'Women', key: 'women' as const },\n { label: 'Mixed', key: 'mixed' as const },\n];\n\nconst getTeamColor = (code: string): string => {\n const firstChar = code.charAt(0).toUpperCase();\n switch (firstChar) {\n case 'M':\n return '#8AC6D9';\n case 'W':\n return '#FFA99A';\n case 'X':\n return '#D1C1C3';\n default:\n return '#8AC6D9';\n }\n};\n\nconst UsersIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"/>\n <circle cx=\"9\" cy=\"7\" r=\"4\"/>\n <path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"/>\n <path d=\"M16 3.13a4 4 0 0 1 0 7.75\"/>\n </svg>\n);\n\nconst ChevronRightIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <polyline points=\"9 18 15 12 9 6\"/>\n </svg>\n);\n\n/**\n * TeamCard - Displays a list of teams with category filters\n */\nexport const TeamCard = ({\n title = 'Administer Teams',\n icon,\n teams,\n onTeamSelect,\n className = '',\n}: TeamCardProps) => {\n const [activeTab, setActiveTab] = useState<'men' | 'women' | 'mixed' | undefined>();\n\n const filteredTeams = useMemo(() => {\n if (!activeTab) return teams;\n return teams.filter(team => team.category === activeTab);\n }, [teams, activeTab]);\n\n const cardClasses = [\n styles.card,\n className,\n ].filter(Boolean).join(' ');\n\n return (\n <div className={cardClasses}>\n <div className={styles.header}>\n <span className={styles.icon}>\n {icon || <UsersIcon />}\n </span>\n <h3 className={styles.title}>{title}</h3>\n </div>\n\n <div className={styles.body}>\n <div className={styles.tabs}>\n {TEAM_GROUPS.map(({ label, key }) => (\n <button\n key={label}\n type=\"button\"\n onClick={() => setActiveTab(key)}\n className={`${styles.tab} ${activeTab === key ? styles.tabActive : ''}`}\n >\n {label}\n </button>\n ))}\n </div>\n\n <div className={styles.list}>\n {filteredTeams.map((team) => (\n <button\n key={team.id}\n type=\"button\"\n className={styles.teamItem}\n onClick={() => onTeamSelect?.(team)}\n >\n <span\n className={styles.teamCode}\n style={{ backgroundColor: getTeamColor(team.code) }}\n >\n {team.code}\n </span>\n <span className={styles.teamName}>{team.description}</span>\n <span className={styles.chevron}>\n <ChevronRightIcon />\n </span>\n </button>\n ))}\n {filteredTeams.length === 0 && (\n <div className={styles.empty}>No teams found</div>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nTeamCard.displayName = 'TeamCard';\n\nexport default TeamCard;\n","import { ArrowUpRightIcon, ChevronLeftIcon, ChevronRightIcon } from '../../atoms/Icons';\nimport { Button } from '../../atoms/Button';\nimport styles from './TeamScheduleActions.module.css';\n\nexport interface SeasonOption {\n value: string;\n label: string;\n}\n\nexport interface TeamScheduleActionsProps {\n isCompactView: boolean;\n tripCount: number;\n seasonLabel: string;\n seasonValue?: string;\n seasonOptions?: SeasonOption[];\n previousSeasonDisabled?: boolean;\n exportDisabled?: boolean;\n exporting?: boolean;\n groupTravelDisabled?: boolean;\n mergeDisabled?: boolean;\n merging?: boolean;\n onViewSchedule?: () => void;\n onBack?: () => void;\n onPreviousSeason?: () => void;\n onNextSeason?: () => void;\n onSeasonChange?: (value: string) => void;\n onExport?: () => void;\n onGroupTravelRequest?: () => void;\n onMergeEvents?: () => void;\n className?: string;\n}\n\n/** Exact presentational counterpart of Hub's Team Schedule action controls. */\nexport const TeamScheduleActions = ({\n isCompactView,\n tripCount,\n seasonLabel,\n seasonValue,\n seasonOptions = [],\n previousSeasonDisabled = false,\n exportDisabled = false,\n exporting = false,\n groupTravelDisabled = false,\n mergeDisabled = false,\n merging = false,\n onViewSchedule,\n onBack,\n onPreviousSeason,\n onNextSeason,\n onSeasonChange,\n onExport,\n onGroupTravelRequest,\n onMergeEvents,\n className = '',\n}: TeamScheduleActionsProps) => (\n <div className={[styles.actions, className].filter(Boolean).join(' ')}>\n <div className={styles.primaryRow}>\n {!isCompactView ? (\n <Button size=\"sm\" onClick={onViewSchedule}>View/Edit Schedule</Button>\n ) : (\n <Button size=\"sm\" onClick={onBack} leftIcon={<ChevronLeftIcon size={14} />}>Back</Button>\n )}\n\n <div className={styles.seasonNavigator}>\n <Button variant=\"secondary\" size=\"sm\" square aria-label=\"Previous Season\" disabled={previousSeasonDisabled} onClick={onPreviousSeason}><ChevronLeftIcon size={18} /></Button>\n <div className={styles.seasonLabel}>\n <Button variant=\"secondary\" size=\"sm\">{seasonLabel}</Button>\n {!!seasonOptions.length && (\n <select aria-label=\"Season\" value={seasonValue} onChange={(event) => onSeasonChange?.(event.target.value)}>\n {seasonOptions.map((option) => <option key={option.value} value={option.value}>{option.label}</option>)}\n </select>\n )}\n </div>\n <Button variant=\"secondary\" size=\"sm\" square aria-label=\"Next Season\" onClick={onNextSeason}><ChevronRightIcon size={18} /></Button>\n </div>\n\n {isCompactView && <Button variant=\"outline\" size=\"sm\" loading={exporting} disabled={exportDisabled} rightIcon={<ArrowUpRightIcon size={14} />} onClick={onExport}>Export XLS</Button>}\n <span className={styles.tripCount}>{tripCount} trips displayed</span>\n </div>\n\n {isCompactView && (\n <div className={styles.secondaryRow}>\n <Button variant=\"outline\" size=\"sm\" disabled={groupTravelDisabled} onClick={onGroupTravelRequest}>Group Travel Request</Button>\n <Button variant=\"outline\" size=\"sm\" disabled={mergeDisabled} loading={merging} onClick={onMergeEvents}>Merge Events</Button>\n </div>\n )}\n </div>\n);\n\nexport default TeamScheduleActions;\n","import { ReactNode, useMemo, useState } from 'react';\nimport { CalendarIcon, DocumentIcon, HotelIcon, PlaneIcon } from '../../atoms/Icons';\nimport styles from './TeamScheduleExpandedTable.module.css';\n\nexport interface TeamScheduleExpandedRow {\n masterTripGUID: string;\n sportCode?: string;\n travelStartDate?: string;\n travelEndDate?: string;\n tripName: string;\n airSegment?: ReactNode;\n groundSegment?: ReactNode;\n hotelSegment?: ReactNode;\n}\n\nexport interface TeamScheduleExpandedTableProps {\n rows: TeamScheduleExpandedRow[];\n teamCode?: string;\n onTripClick?: (row: TeamScheduleExpandedRow) => void;\n emptyMessage?: string;\n className?: string;\n}\n\ntype SortKey = 'sportCode' | 'travelStartDate' | 'tripName';\n\nconst parseLocalDate = (value?: string) => {\n if (!value) return null;\n const match = value.match(/^(\\d{4})-(\\d{2})-(\\d{2})/);\n if (match) return new Date(Number(match[1]), Number(match[2]) - 1, Number(match[3]));\n const parsed = new Date(value);\n return Number.isNaN(parsed.getTime()) ? null : parsed;\n};\n\nconst formatDate = (date: Date, includeYear = true) => date.toLocaleDateString('en-US', {\n month: 'short',\n day: 'numeric',\n ...(includeYear ? { year: 'numeric' } : {}),\n});\n\nexport const formatTeamScheduleTravelDates = (startValue?: string, endValue?: string) => {\n const start = parseLocalDate(startValue);\n const end = parseLocalDate(endValue);\n if (!start || !end) return 'No dates';\n if (start.getTime() === end.getTime()) return formatDate(start);\n if (start.getFullYear() !== end.getFullYear()) return `${formatDate(start)} - ${formatDate(end)}`;\n return `${formatDate(start, false)} - ${end.getDate()}, ${end.getFullYear()}`;\n};\n\nconst RunningIcon = () => (\n <svg viewBox=\"0 0 32 32\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\">\n <circle cx=\"21\" cy=\"5\" r=\"3\" />\n <path d=\"m18.5 9.3-4.2 4.2-4.1-2.1-1.4 2.8 5.9 3 3.3-3.2 2.3 5.2-5.2 3.2 1.7 2.6 7.4-4.6-3.3-7.2 2.4-2.4 2.1 3.1 2.6-1.8-4.2-6.4zM10 18.8 5.6 26H9l4-6.2z\" />\n </svg>\n);\n\nconst GroundIcon = () => (\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.8\" aria-hidden=\"true\">\n <rect x=\"4\" y=\"3\" width=\"16\" height=\"16\" rx=\"2\" /><path d=\"M4 13h16M8 7h3m2 0h3M7 19v2m10-2v2\" />\n </svg>\n);\n\nconst headers: Array<{ key?: SortKey; label: string; icon: ReactNode }> = [\n { key: 'sportCode', label: 'Sport', icon: <RunningIcon /> },\n { key: 'travelStartDate', label: 'Date(s)', icon: <CalendarIcon size={16} /> },\n { key: 'tripName', label: 'Trip Name', icon: <DocumentIcon size={16} /> },\n { label: 'Air', icon: <PlaneIcon size={16} /> },\n { label: 'Ground', icon: <GroundIcon /> },\n { label: 'Hotel', icon: <HotelIcon size={16} /> },\n];\n\n/** Hub's read-only expanded Team Schedule table. */\nexport const TeamScheduleExpandedTable = ({ rows, teamCode, onTripClick, emptyMessage = 'No data available.', className = '' }: TeamScheduleExpandedTableProps) => {\n const [sortKey, setSortKey] = useState<SortKey>();\n const [ascending, setAscending] = useState(true);\n const sortedRows = useMemo(() => !sortKey ? rows : [...rows].sort((left, right) => {\n const leftValue = sortKey === 'sportCode' ? teamCode ?? left.sportCode ?? '' : left[sortKey] ?? '';\n const rightValue = sortKey === 'sportCode' ? teamCode ?? right.sportCode ?? '' : right[sortKey] ?? '';\n return String(leftValue).localeCompare(String(rightValue)) * (ascending ? 1 : -1);\n }), [ascending, rows, sortKey, teamCode]);\n\n const sort = (key: SortKey) => {\n if (sortKey === key) setAscending((value) => !value);\n else { setSortKey(key); setAscending(true); }\n };\n\n return (\n <div className={[styles.table, className].filter(Boolean).join(' ')}>\n <div className={styles.header}>\n {headers.map((header) => (\n <button key={header.label} type=\"button\" disabled={!header.key} onClick={() => header.key && sort(header.key)}>\n {header.icon}<span>{header.label}</span>{header.key === sortKey && <span aria-label={ascending ? 'ascending' : 'descending'}>{ascending ? '↑' : '↓'}</span>}\n </button>\n ))}\n </div>\n {!sortedRows.length ? <div className={styles.empty}>{emptyMessage}</div> : <div className={styles.body}>\n {sortedRows.map((row) => {\n const values: ReactNode[] = [\n teamCode ?? row.sportCode ?? '–',\n formatTeamScheduleTravelDates(row.travelStartDate, row.travelEndDate),\n <button type=\"button\" className={styles.tripLink} onClick={() => onTripClick?.(row)}>{row.tripName}</button>,\n row.airSegment,\n row.groundSegment,\n row.hotelSegment,\n ];\n return <div className={styles.row} key={row.masterTripGUID || row.tripName}>\n {values.map((value, index) => <div className={styles.cell} key={headers[index].label}><span className={styles.mobileLabel}>{headers[index].icon}{headers[index].label}</span><div>{value || '–'}</div></div>)}\n </div>;\n })}\n </div>}\n </div>\n );\n};\n\nexport default TeamScheduleExpandedTable;\n","import { Metric } from '../../atoms/Metric';\nimport styles from './TravelSummaryMetrics.module.css';\n\nexport interface TravelSummaryMetricsProps {\n tripsTraveled?: string | number;\n remainingTrips?: string | number;\n seasonTripCosts?: string | number;\n seasonLabel: string;\n overdueActions?: string | number;\n onOverdueActionsClick?: () => void;\n className?: string;\n}\n\nconst numericValue = (value?: string | number) => {\n if (value === undefined || value === null || value === '') return undefined;\n const parsed = Number(String(value).replace(/[^0-9.-]/g, ''));\n return Number.isFinite(parsed) ? parsed : undefined;\n};\n\nexport const formatCompactTripCost = (value?: string | number) => {\n const cost = numericValue(value);\n if (cost === undefined) return undefined;\n if (cost > 1_000_000) return `${(cost / 1_000_000).toFixed(2)}M`;\n return `${Math.floor(cost / 1_000)}K`;\n};\n\nexport const TravelSummaryMetrics = ({\n tripsTraveled,\n remainingTrips,\n seasonTripCosts,\n seasonLabel,\n overdueActions,\n onOverdueActionsClick,\n className = '',\n}: TravelSummaryMetricsProps) => {\n const overdueCount = numericValue(overdueActions) ?? 0;\n\n return (\n <div className={[styles.grid, className].filter(Boolean).join(' ')}>\n <Metric value={tripsTraveled} label=\"Trips Travelled\" />\n <Metric value={remainingTrips} label=\"Remaining Trips\" />\n <Metric value={formatCompactTripCost(seasonTripCosts)} label={`${seasonLabel} Trip Costs`} prefix=\"$\" />\n <Metric\n value={overdueActions}\n label=\"Overdue Actions\"\n warning={overdueCount > 0}\n dark\n onClick={onOverdueActionsClick}\n />\n </div>\n );\n};\n\nexport default TravelSummaryMetrics;\n","import { ReactNode } from 'react';\nimport styles from './TravelerForm.module.css';\n\nexport interface TravelerFormData {\n /** First name */\n firstName?: string;\n /** Middle initial */\n middleInitial?: string;\n /** Last name */\n lastName?: string;\n /** Weight in lbs */\n weight?: number;\n /** Gender */\n gender?: 'male' | 'female' | 'other' | 'prefer_not_to_say';\n /** Birth date */\n birthDate?: string;\n /** Traveler type */\n travelerType?: string;\n /** Known traveler number */\n knownTravelerNumber?: string;\n /** DHS redress number */\n dhsRedress?: string;\n /** Special requests */\n specialRequests?: string;\n /** Seat preference */\n seatPreference?: 'aisle' | 'window' | 'middle' | 'no_preference';\n}\n\nexport interface TravelerFormProps {\n /** Current form values */\n values?: TravelerFormData;\n /** Title of the form */\n title?: string;\n /** Subtitle/description */\n subtitle?: string;\n /** Render props for form fields - allows consumer to provide their own input components */\n children?: ReactNode;\n /** Form sections - render props approach */\n renderNameSection?: (values: TravelerFormData) => ReactNode;\n renderDetailsSection?: (values: TravelerFormData) => ReactNode;\n renderPreferencesSection?: (values: TravelerFormData) => ReactNode;\n /** Footer actions */\n footer?: ReactNode;\n /** Whether form is in loading state */\n isLoading?: boolean;\n /** Additional class */\n className?: string;\n}\n\n/**\n * TravelerForm - Form layout for editing traveler/roster member details\n */\nexport const TravelerForm = ({\n values = {},\n title,\n subtitle,\n children,\n renderNameSection,\n renderDetailsSection,\n renderPreferencesSection,\n footer,\n isLoading = false,\n className = '',\n}: TravelerFormProps) => {\n const formClasses = [\n styles.form,\n isLoading ? styles.loading : '',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n <div className={formClasses}>\n {(title || subtitle) && (\n <div className={styles.header}>\n {title && <h2 className={styles.title}>{title}</h2>}\n {subtitle && <p className={styles.subtitle}>{subtitle}</p>}\n </div>\n )}\n\n {children ? (\n <div className={styles.content}>{children}</div>\n ) : (\n <div className={styles.sections}>\n {renderNameSection && (\n <div className={styles.section}>\n <h3 className={styles.sectionTitle}>Name</h3>\n <div className={styles.sectionContent}>\n {renderNameSection(values)}\n </div>\n </div>\n )}\n\n {renderDetailsSection && (\n <div className={styles.section}>\n <h3 className={styles.sectionTitle}>Details</h3>\n <div className={styles.sectionContent}>\n {renderDetailsSection(values)}\n </div>\n </div>\n )}\n\n {renderPreferencesSection && (\n <div className={styles.section}>\n <h3 className={styles.sectionTitle}>Travel Preferences</h3>\n <div className={styles.sectionContent}>\n {renderPreferencesSection(values)}\n </div>\n </div>\n )}\n </div>\n )}\n\n {footer && (\n <div className={styles.footer}>\n {footer}\n </div>\n )}\n </div>\n );\n};\n\nTravelerForm.displayName = 'TravelerForm';\n\nexport default TravelerForm;\n","import React from 'react';\nimport styles from './TripTable.module.css';\nimport { StatusBadge, StatusBadgeVariant } from '../../atoms/StatusBadge';\nimport { TypeIcon, TravelType } from '../../atoms/TypeIcon';\nimport { TravelServiceIcon } from '../../atoms/TravelServiceIcon';\n\nexport interface TripData {\n /** Unique trip identifier */\n id: string;\n /** PNR/Confirmation number */\n pnr?: string;\n /** Request ID (for requested trips) */\n reqId?: string;\n /** Traveler name(s) */\n travelers: string[];\n /** Sport code */\n sport?: string;\n /** Vendor/Airline code */\n vendor?: string;\n /** Itinerary string (e.g., \"ATL-RDU\") */\n itinerary?: string;\n /** Travel type codes */\n types: TravelType[];\n /** Multi-segment indicators */\n multiSegments?: TravelType[];\n /** Travel date range */\n dates: string;\n /** Trip status */\n status: StatusBadgeVariant;\n /** Requested by (for request trips) */\n requestedBy?: string;\n /** Submitted date (for request trips) */\n submitted?: string;\n}\n\nexport interface TripTableProps {\n /** Array of trip data */\n trips: TripData[];\n /** Table variant */\n variant?: 'current' | 'past' | 'requested';\n /** Density mode */\n density?: 'comfortable' | 'compact';\n /** Vendor display mode */\n vendorMode?: 'icon' | 'code';\n /** Use unified service column */\n useServiceColumn?: boolean;\n /** Callback when viewing a trip */\n onViewTrip?: (id: string) => void;\n /** Show empty state */\n emptyMessage?: string;\n /** Additional CSS class */\n className?: string;\n}\n\n// TravelerCell component\nconst TravelerCell: React.FC<{ names: string[] }> = ({ names }) => {\n if (names.length === 0) return <span>—</span>;\n if (names.length === 1) return <span>{names[0]}</span>;\n return (\n <span className={styles.travelerCell}>\n <span>{names[0]}</span>\n <span className={styles.moreCount}>+{names.length - 1}</span>\n </span>\n );\n};\n\n// Chevron icon\nconst ChevronRight: React.FC<{ size?: number }> = ({ size = 20 }) => (\n <svg \n width={size} \n height={size} \n viewBox=\"0 0 24 24\" \n fill=\"none\" \n stroke=\"currentColor\" \n strokeWidth=\"2.5\"\n >\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n);\n\nexport const TripTable: React.FC<TripTableProps> = ({\n trips,\n variant = 'current',\n density = 'comfortable',\n vendorMode = 'icon',\n useServiceColumn = false,\n onViewTrip,\n emptyMessage,\n className,\n}) => {\n const isRequested = variant === 'requested';\n const isCompact = density === 'compact';\n const serviceIconSize = isCompact ? 24 : 28;\n\n // Map status strings to our variants\n const mapStatus = (status: string): StatusBadgeVariant => {\n const statusMap: Record<string, StatusBadgeVariant> = {\n 'Ticketed': 'ticketed',\n 'Itinerary': 'itinerary',\n 'Not Ticketed': 'not-ticketed',\n 'Submitted': 'submitted',\n 'Pending': 'pending',\n 'Cancelled': 'cancelled',\n };\n return statusMap[status] || (status.toLowerCase() as StatusBadgeVariant);\n };\n\n return (\n <div className={`${styles.table} ${className || ''}`}>\n {/* Header */}\n <div \n className={`${styles.header} ${isRequested ? styles.requestedHeader : ''} ${useServiceColumn ? styles.serviceHeader : ''}`}\n >\n {isRequested ? (\n <>\n <div>Request ID</div>\n <div>Traveler(s)</div>\n <div>Trip Type</div>\n <div>Requested By</div>\n <div className={styles.viewCol}>View</div>\n </>\n ) : (\n <>\n <div>Traveler</div>\n <div>Sport</div>\n <div>PNR</div>\n {useServiceColumn ? (\n <>\n <div>Service</div>\n <div>Itinerary</div>\n </>\n ) : (\n <>\n <div>Vendor</div>\n <div>Itinerary</div>\n <div>Types</div>\n </>\n )}\n <div>Travel Dates</div>\n <div>Status</div>\n <div></div>\n </>\n )}\n </div>\n\n {/* Rows */}\n {trips.length === 0 ? (\n <div className={styles.empty}>\n <div className={styles.emptyTitle}>\n {isRequested ? 'No Requested Trips' : 'No Trips Found'}\n </div>\n <div className={styles.emptyText}>\n {emptyMessage || (isRequested \n ? 'Travel requests submitted to STM will appear here until an agent books them.'\n : 'Try clearing your filters or widening the date range.'\n )}\n </div>\n </div>\n ) : (\n trips.map((trip, index) => (\n <div\n key={trip.id || trip.pnr || trip.reqId || index}\n className={`\n ${styles.row} \n ${isRequested ? styles.requestedRow : ''} \n ${useServiceColumn ? styles.serviceRow : ''}\n ${isCompact ? styles.compact : ''}\n `}\n onClick={() => onViewTrip?.(trip.pnr || trip.reqId || trip.id)}\n >\n {isRequested ? (\n <>\n <div>\n <a \n href=\"#\" \n className={styles.pnrLink}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n onViewTrip?.(trip.reqId || trip.id);\n }}\n >\n {trip.reqId}\n </a>\n </div>\n <div className={styles.textMuted}>\n <TravelerCell names={trip.travelers} />\n </div>\n <div className={styles.typesCell}>\n {trip.types.map((t, ti) => (\n <TypeIcon key={ti} type={t} size={isCompact ? 14 : 16} />\n ))}\n </div>\n <div className={styles.requestedByCell}>\n <div className={styles.textMuted}>{trip.requestedBy}</div>\n {trip.submitted && (\n <div className={styles.submittedDate}>Submitted {trip.submitted}</div>\n )}\n </div>\n <div className={styles.viewCol}>\n <a \n href=\"#\"\n className={styles.viewLink}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n onViewTrip?.(trip.reqId || trip.id);\n }}\n title=\"View request detail\"\n >\n <ChevronRight />\n </a>\n </div>\n </>\n ) : (\n <>\n <div className={styles.textMuted}>\n <TravelerCell names={trip.travelers} />\n </div>\n <div className={styles.textMuted}>{trip.sport || '—'}</div>\n <div>\n <a \n href=\"#\" \n className={styles.pnrLink}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n onViewTrip?.(trip.pnr || trip.id);\n }}\n >\n {trip.pnr}\n </a>\n </div>\n {useServiceColumn ? (\n <>\n <div className={styles.serviceCell}>\n {(['A', 'H', 'C'] as TravelType[]).map(slot => (\n trip.types.includes(slot) ? (\n <TravelServiceIcon\n key={slot}\n type={slot}\n vendor={slot === 'A' ? trip.vendor : undefined}\n mode={vendorMode}\n size={serviceIconSize}\n multi={trip.multiSegments?.includes(slot)}\n />\n ) : (\n <span key={slot} className={styles.servicePlaceholder} style={{ width: serviceIconSize, height: serviceIconSize }} />\n )\n ))}\n </div>\n <div className={styles.textMuted}>{trip.itinerary || '—'}</div>\n </>\n ) : (\n <>\n <div>\n {trip.vendor && vendorMode === 'icon' ? (\n <TravelServiceIcon type=\"A\" vendor={trip.vendor} mode=\"icon\" size={24} />\n ) : (\n <span className={styles.vendorCode}>{trip.vendor || '—'}</span>\n )}\n </div>\n <div className={styles.textMuted}>{trip.itinerary || '—'}</div>\n <div className={styles.typesCell}>\n {trip.types.map((t, ti) => (\n <TypeIcon key={ti} type={t} size={isCompact ? 14 : 16} />\n ))}\n </div>\n </>\n )}\n <div className={styles.textMuted}>{trip.dates}</div>\n <div>\n <StatusBadge status={mapStatus(trip.status as string)} />\n </div>\n <div className={styles.viewCol}>\n <a \n href=\"#\"\n className={styles.viewLink}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n onViewTrip?.(trip.pnr || trip.id);\n }}\n title=\"View itinerary\"\n >\n <ChevronRight />\n </a>\n </div>\n </>\n )}\n </div>\n ))\n )}\n </div>\n );\n};\n\nexport default TripTable;\n","import { ReactNode } from 'react';\nimport { ChevronRightIcon, DocumentIcon, PlaneIcon } from '../../atoms/Icons';\nimport styles from './AdministrationPage.module.css';\n\nexport type AdministrationTab = 'system' | 'client';\n\nexport interface AdministrationCard {\n key: string;\n title: string;\n description: string;\n icon?: ReactNode;\n}\n\nexport interface AdministrationPageProps {\n activeTab?: AdministrationTab;\n onTabChange?: (tab: AdministrationTab) => void;\n cards?: AdministrationCard[];\n onCardClick?: (card: AdministrationCard) => void;\n children?: ReactNode;\n className?: string;\n}\n\nconst DEFAULT_CARDS: AdministrationCard[] = [\n {\n key: 'announcements',\n title: 'Announcements',\n description: 'Manage system-wide announcements and notifications',\n icon: <DocumentIcon size={16} />,\n },\n {\n key: 'suppliers',\n title: 'Suppliers',\n description: 'Manage air, car, and hotel suppliers',\n icon: <PlaneIcon size={16} />,\n },\n];\n\n/** Hub administration shell and system-card index. */\nexport const AdministrationPage = ({\n activeTab = 'system',\n onTabChange,\n cards = DEFAULT_CARDS,\n onCardClick,\n children,\n className = '',\n}: AdministrationPageProps) => (\n <div className={[styles.page, className].filter(Boolean).join(' ')}>\n <header className={styles.header}>\n <h1>Administration </h1>\n </header>\n\n <div className={styles.tabs} role=\"tablist\" aria-label=\"Administration sections\">\n {(['system', 'client'] as const).map((tab) => (\n <button\n key={tab}\n type=\"button\"\n role=\"tab\"\n aria-selected={activeTab === tab}\n className={[styles.tab, activeTab === tab ? styles.activeTab : ''].filter(Boolean).join(' ')}\n onClick={() => onTabChange?.(tab)}\n >\n {tab === 'system' ? 'System' : 'Client'}\n </button>\n ))}\n </div>\n\n {children ?? (\n activeTab === 'system' ? (\n <div className={styles.cards}>\n {cards.map((card) => (\n <button key={card.key} type=\"button\" className={styles.card} onClick={() => onCardClick?.(card)}>\n <span className={styles.cardIcon}>{card.icon}</span>\n <span className={styles.cardCopy}>\n <span className={styles.cardTitle}>{card.title}</span>\n <span className={styles.cardDescription}>{card.description}</span>\n </span>\n <ChevronRightIcon className={styles.chevron} size={14} />\n </button>\n ))}\n </div>\n ) : (\n <p className={styles.comingSoon}>Client administration settings coming soon.</p>\n )\n )}\n </div>\n);\n\nexport default AdministrationPage;\n","import { useMemo, useState } from 'react';\nimport { Button } from '../../atoms/Button';\nimport {\n ChevronLeftIcon,\n ChevronRightIcon,\n CubeIcon,\n DocumentIcon,\n PlaneIcon,\n PlusIcon,\n SettingsIcon,\n TrashIcon,\n} from '../../atoms/Icons';\nimport { ManifestView, ManifestViewToggle } from '../../molecules/ManifestViewToggle';\nimport { ManifestCapacityStats } from '../../organisms/ManifestCapacityStats';\nimport styles from './CharterManifestPage.module.css';\n\nexport type ManifestSendState = 'none' | 'initial-sent' | 'final-sent';\n\nexport interface CharterManifestSegment {\n id: string;\n label: string;\n detail: string;\n}\n\nexport interface CharterManifestPassenger {\n id: string | number;\n firstName: string;\n lastName: string;\n travelerType: string;\n screeningType?: string;\n personalWeight?: number;\n carryOnWeight?: number;\n checkedWeight?: number;\n seatAssignment?: string | null;\n}\n\nexport interface CharterManifestEquipment {\n id: string | number;\n name: string;\n quantity: number;\n weight: number;\n}\n\nexport interface CharterManifestPageProps {\n tripName: string;\n travelStartDate?: string;\n travelEndDate?: string;\n seats: number;\n payloadLimit: number;\n passengerWeight: number;\n cargoWeight: number;\n carrierName?: string;\n carrierNote?: string;\n passengers?: CharterManifestPassenger[];\n equipment?: CharterManifestEquipment[];\n segments?: CharterManifestSegment[];\n locked?: boolean;\n sendState?: ManifestSendState;\n onBack?: () => void;\n onGenerateFile?: () => void;\n onChangeCarrier?: () => void;\n onSplitSegments?: () => void;\n onAddPassengers?: () => void;\n onAddEquipment?: () => void;\n onRemovePassenger?: (passenger: CharterManifestPassenger) => void;\n onRemoveEquipment?: (equipment: CharterManifestEquipment) => void;\n onSendInitial?: () => void;\n onSendFinal?: () => void;\n onUndoInitial?: () => void;\n className?: string;\n}\n\nconst TYPE_ORDER = ['Player', 'Coach', 'Staff', 'Medical', 'Support', 'Admin'];\n\nconst formatDate = (value?: string) => {\n if (!value) return '';\n const date = new Date(value);\n if (Number.isNaN(date.getTime())) return value;\n return date.toLocaleDateString(undefined, { weekday: 'short', month: 'short', day: 'numeric', year: 'numeric' });\n};\n\nconst TypeTag = ({ type }: { type: string }) => (\n <span className={[styles.typeTag, styles[`type${type}`] ?? ''].filter(Boolean).join(' ')}>{type}</span>\n);\n\nconst StatusPill = ({ sendState, locked }: { sendState: ManifestSendState; locked: boolean }) => {\n const label = locked ? 'Final sent · Locked' : sendState === 'initial-sent' ? 'Initial sent' : sendState === 'final-sent' ? 'Final sent' : 'Not sent';\n return <span className={[styles.status, locked ? styles.statusLocked : ''].filter(Boolean).join(' ')}>{label}</span>;\n};\n\n/** Stateless, service-free rendering of Hub's charter manifest page. */\nexport const CharterManifestPage = ({\n tripName,\n travelStartDate,\n travelEndDate,\n seats,\n payloadLimit,\n passengerWeight,\n cargoWeight,\n carrierName = 'No carrier selected',\n carrierNote = 'Select a carrier to configure manifest fields.',\n passengers = [],\n equipment = [],\n segments = [],\n locked = false,\n sendState = 'none',\n onBack,\n onGenerateFile,\n onChangeCarrier,\n onSplitSegments,\n onAddPassengers,\n onAddEquipment,\n onRemovePassenger,\n onRemoveEquipment,\n onSendInitial,\n onSendFinal,\n onUndoInitial,\n className = '',\n}: CharterManifestPageProps) => {\n const [view, setView] = useState<ManifestView>('passengers');\n const [sort, setSort] = useState<'name' | 'type'>('name');\n const [scope, setScope] = useState('all');\n\n const sortedPassengers = useMemo(() => [...passengers].sort((a, b) => {\n if (sort === 'type') {\n const aRank = TYPE_ORDER.indexOf(a.travelerType);\n const bRank = TYPE_ORDER.indexOf(b.travelerType);\n const normalizedA = aRank < 0 ? TYPE_ORDER.length : aRank;\n const normalizedB = bRank < 0 ? TYPE_ORDER.length : bRank;\n return normalizedA - normalizedB || a.lastName.localeCompare(b.lastName);\n }\n return a.lastName.localeCompare(b.lastName);\n }), [passengers, sort]);\n\n return (\n <div className={[styles.page, className].filter(Boolean).join(' ')} data-screen-label=\"Charter Trip Manifest\">\n <header className={styles.header}>\n <div className={styles.headerRow}>\n <button type=\"button\" aria-label=\"Back\" className={styles.back} onClick={onBack}><ChevronLeftIcon size={28} /></button>\n <h1><strong>Manifest</strong><ChevronRightIcon size={24} /><span>{tripName}</span></h1>\n <div className={styles.headerActions}>\n <StatusPill sendState={sendState} locked={locked} />\n <Button variant=\"outline\" leftIcon={<DocumentIcon size={16} />} disabled={carrierName === 'No carrier selected'} onClick={onGenerateFile}>Generate File</Button>\n </div>\n </div>\n {(travelStartDate || travelEndDate) && (\n <div className={styles.dateRow}>\n <span>{formatDate(travelStartDate)}</span><span className={styles.dateLine}>▶</span><span>{formatDate(travelEndDate)}</span>\n </div>\n )}\n <div className={styles.metaRow}>\n <span><PlaneIcon size={16} />{seats} seats</span>\n <span><CubeIcon size={16} />Payload limit {payloadLimit.toLocaleString()} lb</span>\n </div>\n </header>\n\n <div className={styles.layout}>\n <aside className={styles.rail}>\n <div>\n <div className={styles.eyebrow}>Flight Manifest</div>\n <div className={styles.scopeList}>\n {[{ id: 'all', label: 'Full Trip', detail: 'All flight segments' }, ...segments].map((item) => (\n <button\n key={item.id}\n type=\"button\"\n className={[styles.scope, scope === item.id ? styles.activeScope : ''].filter(Boolean).join(' ')}\n onClick={() => setScope(item.id)}\n >\n <strong>{item.label}</strong><span>{item.detail}</span>\n </button>\n ))}\n </div>\n </div>\n {segments.length > 0 && (\n <Button variant=\"outline\" size=\"sm\" disabled={locked} onClick={onSplitSegments}>Split by Segment</Button>\n )}\n <div className={styles.carrierCard}>\n <div className={styles.eyebrow}>Carrier</div>\n <strong>{carrierName}</strong>\n <p>{carrierNote}</p>\n <Button variant=\"outline\" size=\"sm\" fullWidth disabled={locked} leftIcon={<SettingsIcon size={15} />} onClick={onChangeCarrier}>Change Carrier</Button>\n </div>\n </aside>\n\n <main className={styles.main}>\n <section className={styles.capacityCard}>\n <ManifestCapacityStats paxCount={passengers.length} seats={seats} paxWeight={passengerWeight} cargoWeight={cargoWeight} payloadLimit={payloadLimit} />\n </section>\n\n <div className={styles.viewRow}>\n <ManifestViewToggle view={view} onView={setView} paxCount={passengers.length} eqCount={equipment.length} locked={locked} />\n {locked && <span className={styles.lockedMessage}>Locked — coordinate any changes directly with the carrier.</span>}\n </div>\n\n {view === 'passengers' ? (\n <section>\n {!locked && (\n <div className={styles.tableActions}>\n <strong>{passengers.length} Passengers</strong>\n <div><span>Order by</span><span className={styles.sortToggle}>\n {(['name', 'type'] as const).map((option) => (\n <button key={option} type=\"button\" className={sort === option ? styles.activeSort : ''} onClick={() => setSort(option)}>{option}</button>\n ))}\n </span><Button size=\"sm\" leftIcon={<PlusIcon size={15} />} onClick={onAddPassengers}>Add Passengers</Button></div>\n </div>\n )}\n <div className={styles.tableWrap}>\n <table>\n <thead><tr><th>#</th><th>Passenger</th><th>Type</th><th>TSA Screening</th><th>Personal</th><th>Carry-On</th><th>Checked</th><th>Seat</th><th /></tr></thead>\n <tbody>\n {!sortedPassengers.length && <tr><td colSpan={9} className={styles.empty}>No passengers on this manifest yet. Add passengers from the master list.</td></tr>}\n {sortedPassengers.map((passenger, index) => (\n <tr key={passenger.id}>\n <td>{index + 1}</td>\n <td><strong>{passenger.lastName}</strong><span>, {passenger.firstName}</span></td>\n <td><TypeTag type={passenger.travelerType} /></td>\n <td>{passenger.screeningType || '—'}</td>\n <td>{passenger.personalWeight ?? 0} lb</td>\n <td>{passenger.carryOnWeight ?? 0} lb</td>\n <td>{passenger.checkedWeight ?? 0} lb</td>\n <td>{passenger.seatAssignment || '—'}</td>\n <td>{!locked && <button type=\"button\" aria-label={`Remove ${passenger.firstName} ${passenger.lastName}`} className={styles.remove} onClick={() => onRemovePassenger?.(passenger)}><TrashIcon size={16} /></button>}</td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </section>\n ) : (\n <section>\n {!locked && <div className={styles.tableActions}><strong>{equipment.length} Equipment Items</strong><Button size=\"sm\" leftIcon={<PlusIcon size={15} />} onClick={onAddEquipment}>Add Equipment</Button></div>}\n <div className={styles.tableWrap}>\n <table><thead><tr><th>Equipment</th><th>Quantity</th><th>Weight</th><th>Total</th><th /></tr></thead>\n <tbody>{equipment.map((item) => <tr key={item.id}><td><strong>{item.name}</strong></td><td>{item.quantity}</td><td>{item.weight.toLocaleString()} lb</td><td>{(item.quantity * item.weight).toLocaleString()} lb</td><td>{!locked && <button type=\"button\" aria-label={`Remove ${item.name}`} className={styles.remove} onClick={() => onRemoveEquipment?.(item)}><TrashIcon size={16} /></button>}</td></tr>)}</tbody>\n </table>\n </div>\n </section>\n )}\n\n {!locked && (\n <section className={styles.finalize}>\n <StatusPill sendState={sendState} locked={false} />\n <p>{sendState === 'initial-sent' ? 'Initial manifest sent. The final manifest may be sent within 3 days of departure.' : 'No manifest has been transmitted to the carrier yet.'}</p>\n <div className={styles.finalizeActions}>\n {sendState === 'none' && <Button onClick={onSendInitial}>Send Initial Manifest</Button>}\n {sendState === 'initial-sent' && <><Button onClick={onSendFinal}>Send Final Manifest</Button><Button variant=\"ghost\" size=\"sm\" onClick={onUndoInitial}>Undo initial</Button></>}\n </div>\n </section>\n )}\n </main>\n </div>\n </div>\n );\n};\n\nexport default CharterManifestPage;\n","import { ReactNode } from 'react';\nimport { PrinterIcon } from '../../atoms/Icons';\nimport styles from './ContactUsPage.module.css';\n\nexport interface ContactInfo {\n name?: string;\n email?: string;\n phone?: string;\n show247?: boolean;\n}\n\nexport interface ContactCardData {\n title: string;\n contacts: ContactInfo[];\n}\n\nexport interface ContactPair {\n sales?: ContactInfo;\n operations?: ContactInfo;\n}\n\nexport interface ContactUsData {\n accountManagers?: ContactInfo[];\n travelAgents?: ContactInfo[];\n charterAirContacts?: ContactPair[];\n motorcoachContacts?: ContactPair[];\n groupHotelContacts?: ContactInfo[];\n}\n\nexport interface ContactUsPageProps {\n title?: string;\n state?: 'loading' | 'data' | 'empty' | 'error';\n errorMessage?: string;\n data?: ContactUsData;\n onPrint?: () => void;\n /** Generic cards remain available for non-Hub consumers. */\n cards?: ContactCardData[];\n children?: ReactNode;\n className?: string;\n}\n\nconst cleanEmail = (email?: string) => email?.replace('.invalid', '');\n\nconst ContactField = ({ label, children, emergency = false }: { label: string; children: ReactNode; emergency?: boolean }) => (\n <div className={styles.field}>\n <span className={emergency ? styles.emergencyLabel : styles.label}>\n {label}\n {emergency && <span className={styles.emergencyDot} />}\n </span>\n <div className={styles.fieldValue}>{children}</div>\n </div>\n);\n\nconst ContactCard = ({ title, children }: { title: string; children: ReactNode }) => (\n <section className={styles.card}>\n <h2>{title}</h2>\n <div className={styles.cardBody}>{children}</div>\n </section>\n);\n\nconst SimpleContactCard = ({ title, contacts = [] }: { title: string; contacts?: ContactInfo[] }) => {\n const validContacts = contacts.filter((contact) => contact.name || contact.email || contact.phone);\n if (!validContacts.length) return null;\n return (\n <ContactCard title={title}>\n {validContacts.map((contact, index) => (\n <div className={styles.simpleContact} key={`${contact.email ?? contact.name ?? contact.phone}-${index}`}>\n {contact.name && <ContactField label=\"Name:\"><span>{contact.name}</span></ContactField>}\n {contact.email && <ContactField label=\"Email:\"><a href={`mailto:${cleanEmail(contact.email)}`}>{cleanEmail(contact.email)}</a></ContactField>}\n {contact.phone && <ContactField label=\"Phone:\"><span>{contact.phone}</span></ContactField>}\n </div>\n ))}\n </ContactCard>\n );\n};\n\nconst ContactColumn = ({ title, contact }: { title: string; contact?: ContactInfo }) => (\n <div className={styles.contactColumn}>\n <strong>{title}</strong>\n {contact?.name && <span>{contact.name}</span>}\n {contact?.email && <a href={`mailto:${cleanEmail(contact.email)}`}>{cleanEmail(contact.email)}</a>}\n {contact?.phone && <span>{contact.phone}{contact.show247 && <em> (24/7)</em>}</span>}\n </div>\n);\n\nconst PairedContacts = ({ contacts = [] }: { contacts?: ContactPair[] }) => (\n <>\n {contacts.map((contact, index) => (\n <div className={styles.contactPair} key={`${contact.sales?.email ?? contact.operations?.email}-${index}`}>\n <ContactColumn title=\"Sales Contact\" contact={contact.sales} />\n <ContactColumn title=\"Operations Contact\" contact={contact.operations} />\n </div>\n ))}\n </>\n);\n\nconst GenericCards = ({ cards }: { cards: ContactCardData[] }) => (\n <div className={styles.genericGrid}>\n {cards.map((card) => <SimpleContactCard key={card.title} title={card.title} contacts={card.contacts} />)}\n </div>\n);\n\n/** Exact presentational counterpart of the Hub Contact Us screen. */\nexport const ContactUsPage = ({\n title = 'Your Team of Experts',\n state,\n errorMessage = 'Unable to fetch contact information.',\n data,\n onPrint,\n cards = [],\n children,\n className = '',\n}: ContactUsPageProps) => {\n const resolvedState = state ?? (data || cards.length || children ? 'data' : 'empty');\n if (resolvedState === 'loading') return null;\n\n if (resolvedState === 'error' || resolvedState === 'empty') {\n return (\n <div className={styles.centeredState}>\n <div role={resolvedState === 'error' ? 'alert' : 'status'} className={resolvedState === 'error' ? styles.error : styles.warning}>\n {resolvedState === 'error' ? errorMessage : 'No contact information available.'}\n </div>\n </div>\n );\n }\n\n return (\n <div className={[styles.page, className].filter(Boolean).join(' ')}>\n <div className={styles.container}>\n <header className={styles.header}><h1>{title}</h1></header>\n <div className={styles.printRow}>\n <button type=\"button\" onClick={onPrint ?? (() => window.print())}><PrinterIcon size={16} />Print</button>\n </div>\n\n {children ?? (data ? (\n <>\n {!!(data.accountManagers?.length || data.travelAgents?.length) && (\n <div className={styles.primaryGrid}>\n <SimpleContactCard title=\"Account Manager\" contacts={data.accountManagers} />\n <SimpleContactCard title=\"Travel Agent\" contacts={data.travelAgents} />\n </div>\n )}\n\n <div className={styles.stack}>\n <ContactCard title=\"Group/Team Commercial Reservation Specialists\">\n <ContactField label=\"Business Hours:\"><span>Monday – Friday 8am-8pm ET</span></ContactField>\n <ContactField label=\"Toll-Free Number:\"><span>866-902-9654</span></ContactField>\n <ContactField label=\"After Hours/Emergency (24/7):\" emergency><span className={styles.emergency}>866-902-9654</span></ContactField>\n <ContactField label=\"Email:\"><a href=\"mailto:teamtravel@shortstravel.com\">teamtravel@shortstravel.com</a></ContactField>\n </ContactCard>\n\n <ContactCard title=\"Recruiting Travel Specialists\">\n <ContactField label=\"Business Hours:\"><span>Monday – Friday 8am-8pm ET</span></ContactField>\n <ContactField label=\"Toll-Free Number:\"><span>866-902-9654</span></ContactField>\n <ContactField label=\"After Hours/Emergency (24/7):\" emergency><span className={styles.emergency}>866-902-9654</span></ContactField>\n <ContactField label=\"Email:\"><a href=\"mailto:recruiting@shortstravel.com\">recruiting@shortstravel.com</a></ContactField>\n </ContactCard>\n\n {!!data.charterAirContacts?.length && <ContactCard title=\"Charter Air\"><PairedContacts contacts={data.charterAirContacts} /></ContactCard>}\n {!!data.motorcoachContacts?.length && (\n <ContactCard title=\"Charter Bus / Motorcoach\">\n <PairedContacts contacts={data.motorcoachContacts} />\n <p className={styles.motorcoachEmergency}>After Hours/Emergency (24/7): 319-423-3007</p>\n </ContactCard>\n )}\n {!!data.groupHotelContacts?.length && (\n <ContactCard title=\"Group Hotel\">\n {data.groupHotelContacts.map((contact, index) => (\n <div className={styles.contactPair} key={`${contact.email ?? contact.name}-${index}`}>\n <ContactColumn title=\"Sales Contact\" contact={contact} />\n <div className={styles.contactColumn} />\n </div>\n ))}\n </ContactCard>\n )}\n </div>\n </>\n ) : <GenericCards cards={cards} />)}\n\n <footer className={styles.support}>\n <h2>Short's Travel Website and Online Booking Tool Support</h2>\n <p>Monday – Friday 9am-9pm ET, except major holidays</p>\n <div><span>319-257-5309</span><a href=\"mailto:onlinesupport@shortstravel.com\">onlinesupport@shortstravel.com</a></div>\n </footer>\n </div>\n </div>\n );\n};\n\nexport default ContactUsPage;\n","import { useRef, useState } from 'react';\nimport {\n CheckIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n CloseIcon,\n EditIcon,\n FilterIcon,\n InfoIcon,\n PlusIcon,\n RefreshIcon,\n SettingsIcon,\n UserIcon,\n WarningIcon,\n} from '../../atoms/Icons';\nimport { PageBanners, SystemBanner, TravelAlertBanner } from '../../organisms/PageBanners';\nimport styles from './DashboardPage.module.css';\n\nexport type DashboardWidgetSize = 'S' | 'M' | 'L';\nexport type DashboardWidgetState = 'loading' | 'data' | 'empty' | 'error';\nexport type DashboardTravelerRange = 'last7' | 'yesterday' | 'today' | 'tomorrow' | 'next7';\n\nexport interface DashboardWidgetRow {\n primary: string;\n secondary?: string;\n value?: string;\n badge?: string;\n}\n\nexport interface DashboardTravelerRecord {\n traveler: string;\n dates: string;\n types: string[];\n}\n\nexport interface DashboardUnusedTicketRecord {\n traveler: string;\n airline: string;\n airlineLogo?: string;\n exp: string;\n expDays: number;\n amount: string;\n}\n\nexport interface DashboardInfoCenterItem {\n id: string;\n title: string;\n body?: string;\n href?: string;\n}\n\nexport interface DashboardWidget {\n id: string;\n type: 'travelers' | 'unused' | 'info';\n title: string;\n size: DashboardWidgetSize;\n state?: DashboardWidgetState;\n pinned?: boolean;\n rows?: DashboardWidgetRow[];\n travelerRecords?: DashboardTravelerRecord[];\n unusedRecords?: DashboardUnusedTicketRecord[];\n unusedTotalAmount?: string;\n infoCenterRecords?: DashboardInfoCenterItem[];\n emptyMessage?: string;\n footerLabel?: string;\n footerPath?: string;\n footerSecondary?: { label: string; path: string };\n}\n\nexport interface DashboardPageProps {\n greeting?: string;\n firstName?: string;\n accountName?: string;\n widgets?: DashboardWidget[];\n systemBanners?: SystemBanner[];\n alertBanners?: TravelAlertBanner[];\n syncStatus?: 'idle' | 'saving' | 'error';\n onRefresh?: (widget: DashboardWidget) => void;\n onRemove?: (widget: DashboardWidget) => void;\n onResize?: (widget: DashboardWidget, size: DashboardWidgetSize) => void;\n onReorder?: (from: number, to: number) => void;\n onReset?: () => void;\n onAddWidget?: (type: DashboardWidget['type']) => void;\n onTravelerRangeChange?: (widget: DashboardWidget, range: DashboardTravelerRange) => void;\n onNavigate?: (path: string, state?: unknown) => void;\n className?: string;\n}\n\nconst CATALOG: { type: DashboardWidget['type']; title: string; description: string }[] = [\n { type: 'travelers', title: \"Today's Travelers\", description: 'Current travelers with dates and travel types, plus the Where Are My Travelers report.' },\n { type: 'unused', title: 'Unused Tickets', description: 'Unused, unexpired airline tickets with traveler, carrier, expiration, and amount.' },\n { type: 'info', title: 'Info Center', description: 'Informational links, newsletters, and training resources.' },\n];\n\nconst TRAVELER_RANGES: { key: DashboardTravelerRange; label: string }[] = [\n { key: 'last7', label: \"Last 7 Days' Travelers\" },\n { key: 'yesterday', label: \"Yesterday's Travelers\" },\n { key: 'today', label: \"Today's Travelers\" },\n { key: 'tomorrow', label: \"Tomorrow's Travelers\" },\n { key: 'next7', label: \"Next 7 Days' Travelers\" },\n];\n\nconst rowsForSize = (size: DashboardWidgetSize) => size === 'S' ? 3 : size === 'M' ? 6 : 10;\nconst WidgetIcon = ({ type }: { type: DashboardWidget['type'] }) => type === 'travelers' ? <UserIcon size={20} /> : <InfoIcon size={20} />;\n\nconst LoadingState = () => <div className={styles.skeleton}><i /><i /><i /><span>Refreshing…</span></div>;\nconst EmptyState = ({ message }: { message: string }) => <div className={styles.state}><CheckIcon size={28} /><span>{message}</span></div>;\nconst ErrorState = ({ onRetry }: { onRetry: () => void }) => <div className={styles.state}><WarningIcon size={28} /><span>Couldn't load this card.</span><button type=\"button\" onClick={onRetry}><RefreshIcon size={16} />Retry</button></div>;\n\nconst TravelersBody = ({ records, size }: { records: DashboardTravelerRecord[]; size: DashboardWidgetSize }) => (\n <div className={styles.tableBody}>\n <div className={[styles.tableRow, styles.travelersGrid, styles.tableHead].join(' ')}><span>Traveler(s)</span><span>Dates</span><span>Types</span></div>\n {records.slice(0, rowsForSize(size)).map((record, index, visible) => (\n <div className={[styles.tableRow, styles.travelersGrid].join(' ')} data-last={index === visible.length - 1} key={`${record.traveler}-${index}`}>\n <strong>{record.traveler}</strong><span>{record.dates}</span><span className={styles.typeChips}>{record.types.map((type) => <b title={type} key={type}>{type}</b>)}</span>\n </div>\n ))}\n </div>\n);\n\nconst UnusedBody = ({ records, size, totalAmount = '$0.00' }: { records: DashboardUnusedTicketRecord[]; size: DashboardWidgetSize; totalAmount?: string }) => (\n <div className={styles.tableBody}>\n <div className={[styles.tableRow, styles.unusedGrid, styles.tableHead].join(' ')}><span>Traveler</span><span>Air</span><span>Exp</span><span>Amount</span></div>\n {records.slice(0, rowsForSize(size)).map((record, index, visible) => (\n <div className={[styles.tableRow, styles.unusedGrid].join(' ')} data-last={index === visible.length - 1} key={`${record.traveler}-${index}`}>\n <span>{record.traveler}</span><strong className={styles.carrier}>{record.airlineLogo && <img src={record.airlineLogo} alt=\"\" />}{record.airline}</strong><span className={record.expDays <= 28 ? styles.nearExpiry : ''}>{record.exp}</span><strong>{record.amount}</strong>\n </div>\n ))}\n <div className={styles.summary}><span>{records.length} unused ticket{records.length === 1 ? '' : 's'}</span><span>Total <strong>{totalAmount}</strong></span></div>\n </div>\n);\n\nconst InfoBody = ({ records, size, onNavigate }: { records: DashboardInfoCenterItem[]; size: DashboardWidgetSize; onNavigate?: DashboardPageProps['onNavigate'] }) => (\n <div className={styles.infoList}>\n {records.slice(0, size === 'S' ? 3 : size === 'M' ? 5 : 9).map((item) => item.href ? (\n <a href={item.href} target=\"_blank\" rel=\"noopener noreferrer\" key={item.id}><span><strong>{item.title}</strong>{item.body && <small>{item.body}</small>}</span><b>↗</b></a>\n ) : (\n <button type=\"button\" onClick={() => onNavigate?.('/info-center', { openArticleId: item.id })} key={item.id}><span><strong>{item.title}</strong>{item.body && <small>{item.body}</small>}</span><b>›</b></button>\n ))}\n </div>\n);\n\nconst WidgetBody = ({ widget, onNavigate }: { widget: DashboardWidget; onNavigate?: DashboardPageProps['onNavigate'] }) => {\n if (widget.travelerRecords) return <TravelersBody records={widget.travelerRecords} size={widget.size} />;\n if (widget.unusedRecords) return <UnusedBody records={widget.unusedRecords} totalAmount={widget.unusedTotalAmount} size={widget.size} />;\n if (widget.infoCenterRecords) return <InfoBody records={widget.infoCenterRecords} size={widget.size} onNavigate={onNavigate} />;\n return <div className={styles.rows}>{widget.rows?.map((row, index) => <div className={styles.row} key={`${row.primary}-${index}`}><div><strong>{row.primary}</strong>{row.secondary && <span>{row.secondary}</span>}</div>{row.badge && <small>{row.badge}</small>}{row.value && <b>{row.value}</b>}</div>)}</div>;\n};\n\nconst WidgetCard = ({ widget, editMode, index, count, onRefresh, onRemove, onResize, onReorder, onTravelerRangeChange, onNavigate }: {\n widget: DashboardWidget;\n editMode: boolean;\n index: number;\n count: number;\n onRefresh?: DashboardPageProps['onRefresh'];\n onRemove?: DashboardPageProps['onRemove'];\n onResize?: DashboardPageProps['onResize'];\n onReorder?: DashboardPageProps['onReorder'];\n onTravelerRangeChange?: DashboardPageProps['onTravelerRangeChange'];\n onNavigate?: DashboardPageProps['onNavigate'];\n}) => {\n const [rangeIndex, setRangeIndex] = useState(2);\n const isTravelers = widget.type === 'travelers';\n const changeRange = (delta: number) => {\n const next = Math.max(0, Math.min(TRAVELER_RANGES.length - 1, rangeIndex + delta));\n setRangeIndex(next);\n onTravelerRangeChange?.(widget, TRAVELER_RANGES[next].key);\n };\n const state = widget.state ?? 'data';\n\n return (\n <article className={[styles.widget, editMode ? styles.editing : ''].filter(Boolean).join(' ')}>\n <header className={styles.widgetHeader}>\n {editMode && <span className={styles.dragHandle} aria-hidden=\"true\">⠿</span>}\n <span className={styles.widgetIcon}><WidgetIcon type={widget.type} /></span>\n {isTravelers ? <div className={styles.rangeTitle}><button type=\"button\" aria-label=\"Show previous traveler range\" disabled={rangeIndex === 0} onClick={() => changeRange(-1)}><ChevronLeftIcon size={14} /></button><h3>{TRAVELER_RANGES[rangeIndex].label}</h3><button type=\"button\" aria-label=\"Show next traveler range\" disabled={rangeIndex === TRAVELER_RANGES.length - 1} onClick={() => changeRange(1)}><ChevronRightIcon size={14} /></button></div> : <h3>{widget.title}</h3>}\n <div className={styles.widgetActions}>\n {editMode ? <><span className={styles.sizeToggle} role=\"group\" aria-label={`${widget.title} size`}>{(['S', 'M', 'L'] as const).map((size) => <button key={size} type=\"button\" aria-label={({ S: 'Small', M: 'Medium', L: 'Large' } as const)[size]} aria-pressed={widget.size === size} className={widget.size === size ? styles.activeSize : ''} onClick={() => onResize?.(widget, size)}>{size}</button>)}</span>{!widget.pinned && <button type=\"button\" className={styles.iconButton} aria-label={`Remove ${widget.title} card`} onClick={() => onRemove?.(widget)}><CloseIcon size={16} /></button>}</> : <button type=\"button\" className={styles.iconButton} aria-label={`Refresh ${widget.title}`} onClick={() => onRefresh?.(widget)} disabled={state === 'loading'}><RefreshIcon size={20} /></button>}\n </div>\n </header>\n <div className={styles.widgetBody}>{state === 'loading' ? <LoadingState /> : state === 'error' ? <ErrorState onRetry={() => onRefresh?.(widget)} /> : state === 'empty' ? <EmptyState message={widget.emptyMessage ?? 'No records available.'} /> : <WidgetBody widget={widget} onNavigate={onNavigate} />}</div>\n {!editMode && (state === 'data' || state === 'empty') && (widget.footerLabel || widget.footerSecondary) && <footer className={styles.widgetFooter}>{widget.footerSecondary && state === 'data' && <button type=\"button\" onClick={() => onNavigate?.(widget.footerSecondary!.path)}><FilterIcon size={16} />{widget.footerSecondary.label}</button>}{widget.footerLabel && <button type=\"button\" onClick={() => onNavigate?.(widget.footerPath ?? '#')}>{widget.footerLabel}<span>→</span></button>}</footer>}\n {editMode && <footer className={styles.editFooter}><span>Reorder</span><button type=\"button\" aria-label={`Move ${widget.title} earlier`} disabled={index === 0} onClick={() => onReorder?.(index, index - 1)}>←</button><button type=\"button\" aria-label={`Move ${widget.title} later`} disabled={index === count - 1} onClick={() => onReorder?.(index, index + 1)}>→</button></footer>}\n </article>\n );\n};\n\n/** Exact, service-free rendering of Hub's personalized home page. */\nexport const DashboardPage = ({ greeting = 'Good morning', firstName, accountName, widgets = [], systemBanners = [], alertBanners = [], syncStatus = 'idle', onRefresh, onRemove, onResize, onReorder, onReset, onAddWidget, onTravelerRangeChange, onNavigate, className = '' }: DashboardPageProps) => {\n const [editMode, setEditMode] = useState(false);\n const [catalogOpen, setCatalogOpen] = useState(false);\n const [dragFrom, setDragFrom] = useState<number | null>(null);\n const dragGhost = useRef<HTMLDivElement | null>(null);\n const presentTypes = new Set(widgets.map((widget) => widget.type));\n\n return (\n <div className={[styles.page, className].filter(Boolean).join(' ')}>\n <PageBanners systemBanners={systemBanners} alertBanners={alertBanners} />\n <header className={styles.pageHeader}><div><h1>{greeting}{firstName ? `, ${firstName}` : ''}</h1>{accountName && <p>Here's your personalized travel overview for {accountName}.</p>}</div><div className={styles.pageActions}>{editMode ? <><button type=\"button\" className={styles.outlineButton} onClick={() => setCatalogOpen(true)}><PlusIcon size={20} />Add card</button><button type=\"button\" className={styles.textButton} onClick={onReset}>Reset to default</button><button type=\"button\" className={styles.primaryButton} onClick={() => { setEditMode(false); setCatalogOpen(false); }}><CheckIcon size={20} />Done</button></> : <button type=\"button\" className={styles.customizeButton} onClick={() => setEditMode(true)}><SettingsIcon size={20} />Customize Your Home Page</button>}</div></header>\n {editMode && <div className={styles.editBanner}><EditIcon size={20} /><span><strong>Customizing your home page.</strong> Drag cards to reorder, resize with S / M / L, or remove cards. Your layout saves automatically.</span></div>}\n {syncStatus === 'saving' && <p className={styles.syncStatus} aria-live=\"polite\">Saving layout…</p>}\n {syncStatus === 'error' && <p className={[styles.syncStatus, styles.syncError].join(' ')} role=\"alert\">Layout couldn't be saved. Changes are preserved locally.</p>}\n {widgets.length ? <div className={styles.grid}>{widgets.map((widget, index) => <div key={widget.id} className={styles[`size${widget.size}`]} draggable={editMode} onDragStart={(event) => { if (!editMode) return; setDragFrom(index); const ghost = document.createElement('div'); ghost.className = styles.dragGhost; document.body.appendChild(ghost); dragGhost.current = ghost; event.dataTransfer.setDragImage(ghost, 0, 0); }} onDragOver={(event) => event.preventDefault()} onDrop={() => { if (dragFrom !== null && dragFrom !== index) onReorder?.(dragFrom, index); setDragFrom(null); }} onDragEnd={() => { setDragFrom(null); dragGhost.current?.remove(); dragGhost.current = null; }}><WidgetCard widget={widget} editMode={editMode} index={index} count={widgets.length} onRefresh={onRefresh} onRemove={onRemove} onResize={onResize} onReorder={onReorder} onTravelerRangeChange={onTravelerRangeChange} onNavigate={onNavigate} /></div>)}</div> : <div className={styles.emptyPage}><PlusIcon size={28} /><strong>Your home page is empty</strong><span>Use \"Customize\" to add cards from the catalog.</span></div>}\n {catalogOpen && <><button type=\"button\" className={styles.scrim} aria-label=\"Close card catalog\" onClick={() => setCatalogOpen(false)} /><aside className={styles.catalog} role=\"dialog\" aria-modal=\"true\" aria-label=\"Add cards\"><header><div><h2>Add a card</h2><p>Cards available to your role for this account</p></div><button type=\"button\" aria-label=\"Close card catalog\" onClick={() => setCatalogOpen(false)}><CloseIcon size={20} /></button></header><div className={styles.catalogBody}>{CATALOG.map((item) => <div className={styles.catalogItem} key={item.type}><span className={styles.catalogIcon}><WidgetIcon type={item.type} /></span><div><strong>{item.title}</strong><span>Account</span><p>{item.description}</p></div>{presentTypes.has(item.type) ? <span className={styles.added}><CheckIcon size={16} />Added</span> : <button type=\"button\" onClick={() => onAddWidget?.(item.type)}><PlusIcon size={16} />Add</button>}</div>)}</div><footer>Each card can appear once on your home page.</footer></aside></>}\n </div>\n );\n};\n\nexport default DashboardPage;\n","import React, { useState } from 'react';\nimport styles from './GroupTravelRequestPage.module.css';\nimport { RequestFormLayout, RequestFormHeader, RequestFormFooter } from '../../organisms/RequestFormLayout';\nimport { ServiceToggleList, ServiceConfig } from '../../molecules/ServiceToggle';\nimport { RequestSummary, SummarySectionConfig } from '../../organisms/RequestSummary';\nimport { FormSection } from '../../molecules/FormSection';\nimport { FormRow } from '../../molecules/FormRow';\nimport { Accordion } from '../../molecules/Accordion';\n\n// Icons\nconst EventsIcon = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"/>\n <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"/>\n <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"/>\n <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"/>\n </svg>\n);\n\nconst PlaneIcon = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M21 16v-2l-8-5V3.5a1.5 1.5 0 0 0-3 0V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5Z\"/>\n </svg>\n);\n\nconst HotelIcon = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M3 21h18\"/>\n <path d=\"M19 21V5a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v16\"/>\n <path d=\"M9 21v-4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v4\"/>\n <path d=\"M10 9h4\"/>\n <path d=\"M10 5h4\"/>\n </svg>\n);\n\nconst CarIcon = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10H8s-2.7.6-4.5 1.1C2.7 11.3 2 12.1 2 13v3c0 .6.4 1 1 1h2\"/>\n <circle cx=\"7\" cy=\"17\" r=\"2\"/>\n <path d=\"M9 17h6\"/>\n <circle cx=\"17\" cy=\"17\" r=\"2\"/>\n </svg>\n);\n\nconst BusIcon = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M8 6v6\"/>\n <path d=\"M16 6v6\"/>\n <path d=\"M2 12h20\"/>\n <path d=\"M4 18v2\"/>\n <path d=\"M20 18v2\"/>\n <rect x=\"4\" y=\"4\" width=\"16\" height=\"14\" rx=\"2\"/>\n <circle cx=\"8\" cy=\"16\" r=\"1\"/>\n <circle cx=\"16\" cy=\"16\" r=\"1\"/>\n </svg>\n);\n\n// Service configuration\nconst TRAVEL_SERVICES: ServiceConfig[] = [\n { key: 'general', label: 'General Details', icon: <EventsIcon />, hasToggle: false },\n { key: 'air', label: 'Commercial Air', icon: <PlaneIcon />, hasToggle: true },\n { key: 'charter', label: 'Charter Air', icon: <PlaneIcon />, hasToggle: true },\n { key: 'hotel', label: 'Hotel', icon: <HotelIcon />, hasToggle: true },\n { key: 'ground', label: 'Ground Transportation', icon: <CarIcon />, hasToggle: true },\n { key: 'bus', label: 'Bus Needed', icon: <BusIcon />, hasToggle: true },\n];\n\n// Summary configuration\nconst SUMMARY_SECTIONS: SummarySectionConfig[] = [\n {\n key: 'general',\n title: 'General Details',\n items: [\n { label: 'Travel Party Size', value: null },\n { label: 'Trip Start', value: null },\n { label: 'Trip Return', value: null },\n { label: 'Booking Contact', value: null },\n ],\n },\n {\n key: 'air',\n title: 'Commercial Air Request',\n items: [\n { label: 'Flight Type', value: null },\n { label: 'Departure Airport', value: null },\n { label: 'Arrival Airport', value: null },\n ],\n },\n {\n key: 'hotel',\n title: 'Hotel Request',\n items: [\n { label: 'Check-in Date', value: null },\n { label: 'Check-out Date', value: null },\n { label: 'Number of Rooms', value: null },\n ],\n },\n {\n key: 'ground',\n title: 'Ground Transportation',\n items: [\n { label: 'Vehicle Type', value: null },\n { label: 'Pickup Location', value: null },\n ],\n },\n];\n\nexport interface GroupTravelRequestPageProps {\n /** Event name to display in header */\n eventName?: string;\n /** Total pages for multi-page forms */\n totalPages?: number;\n /** Callback when form is submitted */\n onSubmit?: (data: any) => void;\n /** Callback when form is cancelled */\n onCancel?: () => void;\n /** Initial form values */\n initialValues?: Record<string, any>;\n /** Custom services configuration */\n services?: ServiceConfig[];\n /** Custom summary sections */\n summarySections?: SummarySectionConfig[];\n /** Additional CSS class */\n className?: string;\n}\n\n/**\n * GroupTravelRequestPage component provides a complete travel request form page.\n * Includes service toggles, form sections, and summary panel.\n */\nexport const GroupTravelRequestPage: React.FC<GroupTravelRequestPageProps> = ({\n eventName = 'New Trip',\n totalPages = 1,\n onSubmit,\n onCancel,\n initialValues = {},\n services = TRAVEL_SERVICES,\n summarySections = SUMMARY_SECTIONS,\n className,\n}) => {\n const [currentPage, setCurrentPage] = useState(1);\n const [enabledServices, setEnabledServices] = useState<Record<string, boolean>>({\n general: true,\n air: false,\n charter: false,\n hotel: false,\n ground: false,\n bus: false,\n ...Object.fromEntries(\n Object.entries(initialValues)\n .filter(([key]) => services.some(s => s.key === key))\n .map(([key, value]) => [key, Boolean(value)])\n ),\n });\n const [formValues, setFormValues] = useState<Record<string, any>>(initialValues);\n\n const handleToggle = (key: string, enabled: boolean) => {\n setEnabledServices(prev => ({ ...prev, [key]: enabled }));\n };\n\n const handleServiceClick = (key: string) => {\n const element = document.getElementById(key);\n if (element) {\n element.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }\n };\n\n const handlePrevious = () => {\n if (currentPage > 1) {\n setCurrentPage(currentPage - 1);\n } else {\n onCancel?.();\n }\n };\n\n const handleNext = () => {\n if (currentPage < totalPages) {\n setCurrentPage(currentPage + 1);\n } else {\n onSubmit?.(formValues);\n }\n };\n\n const updateFormValue = (key: string, value: any) => {\n setFormValues(prev => ({ ...prev, [key]: value }));\n };\n\n return (\n <RequestFormLayout\n className={className}\n header={\n <RequestFormHeader\n title=\"Group Travel Request\"\n currentPage={totalPages > 1 ? currentPage : undefined}\n totalPages={totalPages > 1 ? totalPages : undefined}\n eventName={eventName}\n />\n }\n sidebar={\n <div className={styles.sidebarSection}>\n <h3 className={styles.sidebarTitle}>Services</h3>\n <ServiceToggleList\n services={services}\n enabledServices={enabledServices}\n onToggle={handleToggle}\n onClick={handleServiceClick}\n />\n </div>\n }\n summary={\n <RequestSummary\n sections={summarySections}\n values={formValues}\n enabledSections={enabledServices}\n />\n }\n footer={\n <RequestFormFooter\n onPrevious={handlePrevious}\n onNext={handleNext}\n isFirstPage={currentPage === 1}\n isLastPage={currentPage === totalPages}\n />\n }\n >\n <div className={styles.formContent}>\n {/* General Details Section - Always visible */}\n <FormSection\n id=\"general\"\n title=\"General Details\"\n icon={<EventsIcon />}\n >\n <div className={styles.field}>\n <label className={styles.label}>Travel Party Size *</label>\n <input\n type=\"number\"\n className={styles.input}\n style={{ width: '200px' }}\n min={1}\n max={999}\n value={formValues['Travel Party Size'] || ''}\n onChange={(e) => updateFormValue('Travel Party Size', e.target.value)}\n />\n </div>\n <FormRow columns={2}>\n <div className={styles.field}>\n <label className={styles.label}>Trip Start *</label>\n <input\n type=\"date\"\n className={styles.input}\n value={formValues['Trip Start'] || ''}\n onChange={(e) => updateFormValue('Trip Start', e.target.value)}\n />\n </div>\n <div className={styles.field}>\n <label className={styles.label}>Trip Return *</label>\n <input\n type=\"date\"\n className={styles.input}\n value={formValues['Trip Return'] || ''}\n onChange={(e) => updateFormValue('Trip Return', e.target.value)}\n />\n </div>\n </FormRow>\n <div className={styles.field}>\n <label className={styles.label}>Booking Contact *</label>\n <input\n type=\"text\"\n className={styles.input}\n placeholder=\"Full Name\"\n value={formValues['Booking Contact'] || ''}\n onChange={(e) => updateFormValue('Booking Contact', e.target.value)}\n />\n </div>\n <div className={styles.field}>\n <label className={styles.label}>General Notes</label>\n <textarea\n className={styles.textarea}\n rows={4}\n placeholder=\"Any notes regarding this trip...\"\n value={formValues['General Notes'] || ''}\n onChange={(e) => updateFormValue('General Notes', e.target.value)}\n />\n </div>\n </FormSection>\n\n {/* Commercial Air Section */}\n {enabledServices.air && (\n <FormSection\n id=\"air\"\n title=\"Commercial Air Request\"\n icon={<PlaneIcon />}\n >\n <div className={styles.field}>\n <label className={styles.label}>Flight Type *</label>\n <div className={styles.radioGroup}>\n {['One Way', 'Round Trip', 'Multiple Destinations'].map(option => (\n <label key={option} className={styles.radioLabel}>\n <input\n type=\"radio\"\n name=\"flightType\"\n value={option}\n checked={formValues['Flight Type'] === option}\n onChange={(e) => updateFormValue('Flight Type', e.target.value)}\n />\n <span>{option}</span>\n </label>\n ))}\n </div>\n </div>\n <Accordion\n header={<span className={styles.segmentHeader}>Flight 1</span>}\n showTimeline\n >\n <FormRow columns={2}>\n <div className={styles.field}>\n <label className={styles.label}>Departure Airport *</label>\n <input\n type=\"text\"\n className={styles.input}\n placeholder=\"e.g., JFK\"\n value={formValues['Departure Airport'] || ''}\n onChange={(e) => updateFormValue('Departure Airport', e.target.value)}\n />\n </div>\n <div className={styles.field}>\n <label className={styles.label}>Arrival Airport *</label>\n <input\n type=\"text\"\n className={styles.input}\n placeholder=\"e.g., LAX\"\n value={formValues['Arrival Airport'] || ''}\n onChange={(e) => updateFormValue('Arrival Airport', e.target.value)}\n />\n </div>\n </FormRow>\n <FormRow columns={2}>\n <div className={styles.field}>\n <label className={styles.label}>Departure Date *</label>\n <input\n type=\"date\"\n className={styles.input}\n value={formValues['Departure Date'] || ''}\n onChange={(e) => updateFormValue('Departure Date', e.target.value)}\n />\n </div>\n <div className={styles.field}>\n <label className={styles.label}>Departure Time *</label>\n <select\n className={styles.select}\n value={formValues['Departure Time'] || ''}\n onChange={(e) => updateFormValue('Departure Time', e.target.value)}\n >\n <option value=\"\">Select time range</option>\n <option value=\"Early Morning (5:00am – 8:00am)\">Early Morning (5:00am – 8:00am)</option>\n <option value=\"Morning (8:00am – 12:00pm)\">Morning (8:00am – 12:00pm)</option>\n <option value=\"Afternoon (12:00pm - 3:00pm)\">Afternoon (12:00pm - 3:00pm)</option>\n <option value=\"Late Afternoon (3:00pm – 6:00pm)\">Late Afternoon (3:00pm – 6:00pm)</option>\n <option value=\"Evening (6:00pm – 12:00am)\">Evening (6:00pm – 12:00am)</option>\n </select>\n </div>\n </FormRow>\n </Accordion>\n <div className={styles.field}>\n <label className={styles.label}>Air Travel Notes</label>\n <textarea\n className={styles.textarea}\n rows={3}\n placeholder=\"Any special requirements for air travel...\"\n />\n </div>\n </FormSection>\n )}\n\n {/* Hotel Section */}\n {enabledServices.hotel && (\n <FormSection\n id=\"hotel\"\n title=\"Hotel Request\"\n icon={<HotelIcon />}\n >\n <FormRow columns={2}>\n <div className={styles.field}>\n <label className={styles.label}>Check-in Date *</label>\n <input\n type=\"date\"\n className={styles.input}\n value={formValues['Check-in Date'] || ''}\n onChange={(e) => updateFormValue('Check-in Date', e.target.value)}\n />\n </div>\n <div className={styles.field}>\n <label className={styles.label}>Check-out Date *</label>\n <input\n type=\"date\"\n className={styles.input}\n value={formValues['Check-out Date'] || ''}\n onChange={(e) => updateFormValue('Check-out Date', e.target.value)}\n />\n </div>\n </FormRow>\n <FormRow columns={2}>\n <div className={styles.field}>\n <label className={styles.label}>Number of Rooms *</label>\n <input\n type=\"number\"\n className={styles.input}\n min={1}\n value={formValues['Number of Rooms'] || ''}\n onChange={(e) => updateFormValue('Number of Rooms', e.target.value)}\n />\n </div>\n <div className={styles.field}>\n <label className={styles.label}>Room Type</label>\n <select\n className={styles.select}\n value={formValues['Room Type'] || ''}\n onChange={(e) => updateFormValue('Room Type', e.target.value)}\n >\n <option value=\"\">Select room type</option>\n <option value=\"Standard\">Standard</option>\n <option value=\"Double\">Double</option>\n <option value=\"Suite\">Suite</option>\n </select>\n </div>\n </FormRow>\n <div className={styles.field}>\n <label className={styles.label}>Hotel Preferences</label>\n <textarea\n className={styles.textarea}\n rows={3}\n placeholder=\"Preferred hotel chain, location requirements, amenities...\"\n value={formValues['Hotel Preferences'] || ''}\n onChange={(e) => updateFormValue('Hotel Preferences', e.target.value)}\n />\n </div>\n </FormSection>\n )}\n\n {/* Ground Transportation Section */}\n {enabledServices.ground && (\n <FormSection\n id=\"ground\"\n title=\"Ground Transportation\"\n icon={<CarIcon />}\n >\n <div className={styles.field}>\n <label className={styles.label}>Vehicle Type *</label>\n <select\n className={styles.select}\n value={formValues['Vehicle Type'] || ''}\n onChange={(e) => updateFormValue('Vehicle Type', e.target.value)}\n >\n <option value=\"\">Select vehicle type</option>\n <option value=\"Sedan\">Sedan</option>\n <option value=\"SUV\">SUV</option>\n <option value=\"Van\">Van</option>\n <option value=\"Limousine\">Limousine</option>\n </select>\n </div>\n <FormRow columns={2}>\n <div className={styles.field}>\n <label className={styles.label}>Pickup Location *</label>\n <input\n type=\"text\"\n className={styles.input}\n placeholder=\"Airport, hotel, etc.\"\n value={formValues['Pickup Location'] || ''}\n onChange={(e) => updateFormValue('Pickup Location', e.target.value)}\n />\n </div>\n <div className={styles.field}>\n <label className={styles.label}>Dropoff Location *</label>\n <input\n type=\"text\"\n className={styles.input}\n placeholder=\"Hotel, venue, etc.\"\n value={formValues['Dropoff Location'] || ''}\n onChange={(e) => updateFormValue('Dropoff Location', e.target.value)}\n />\n </div>\n </FormRow>\n </FormSection>\n )}\n </div>\n </RequestFormLayout>\n );\n};\n\nGroupTravelRequestPage.displayName = 'GroupTravelRequestPage';\n\nexport default GroupTravelRequestPage;\n","import React, { useState, useMemo } from 'react';\nimport styles from './IndividualTravelPage.module.css';\nimport { TripTable, TripData } from '../../organisms/TripTable';\nimport { FilterChip, FilterOption } from '../../molecules/FilterChip';\n\nexport type TabKey = 'requested' | 'current' | 'past';\n\nexport interface IndividualTravelPageProps {\n /** Current trips data */\n currentTrips: TripData[];\n /** Past trips data */\n pastTrips: TripData[];\n /** Requested trips data */\n requestedTrips: TripData[];\n /** Sport options for filter */\n sportOptions?: FilterOption[];\n /** Traveler options for filter */\n travelerOptions?: FilterOption[];\n /** Initial active tab */\n initialTab?: TabKey;\n /** Table density */\n density?: 'comfortable' | 'compact';\n /** Vendor display mode */\n vendorMode?: 'icon' | 'code';\n /** Use service column mode */\n useServiceColumn?: boolean;\n /** Callback when viewing a trip */\n onViewTrip?: (id: string) => void;\n /** Callback when viewing a request */\n onViewRequest?: (id: string) => void;\n /** Callback when exporting */\n onExport?: (scope: 'all' | 'current' | 'past') => void;\n /** Show traveler scope info for standard users */\n showTravelerScopeInfo?: boolean;\n /** Additional CSS class */\n className?: string;\n}\n\n// Default sport options\nconst defaultSportOptions: FilterOption[] = [\n { value: 'all', label: 'All Sports' },\n { value: 'MFB', label: 'MFB' },\n { value: 'MBB', label: 'MBB' },\n { value: 'WBB', label: 'WBB' },\n { value: 'MSO', label: 'MSO' },\n { value: 'WSO', label: 'WSO' },\n { value: 'MIH', label: 'MIH' },\n { value: 'WIH', label: 'WIH' },\n { value: 'XTO', label: 'XTO' },\n];\n\n// Icons\nconst SearchIcon: React.FC = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n </svg>\n);\n\nconst FilterIcon: React.FC = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <polygon points=\"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\" />\n </svg>\n);\n\nconst ExportIcon: React.FC = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M7 17L17 7\" />\n <path d=\"M7 7h10v10\" />\n </svg>\n);\n\nconst ChevronLeft: React.FC = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <polyline points=\"15 18 9 12 15 6\" />\n </svg>\n);\n\nconst ChevronRight: React.FC = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n);\n\nexport const IndividualTravelPage: React.FC<IndividualTravelPageProps> = ({\n currentTrips,\n pastTrips,\n requestedTrips,\n sportOptions = defaultSportOptions,\n travelerOptions,\n initialTab = 'current',\n density = 'comfortable',\n vendorMode = 'icon',\n useServiceColumn = false,\n onViewTrip,\n onViewRequest,\n onExport,\n showTravelerScopeInfo = false,\n className,\n}) => {\n const [activeTab, setActiveTab] = useState<TabKey>(initialTab);\n const [sport, setSport] = useState('all');\n const [traveler, setTraveler] = useState('all');\n const [search, setSearch] = useState('');\n const [showAdvancedFilters, setShowAdvancedFilters] = useState(false);\n const [showExportMenu, setShowExportMenu] = useState(false);\n\n // Build traveler options from data if not provided\n const computedTravelerOptions = useMemo(() => {\n if (travelerOptions) return travelerOptions;\n const names = new Set<string>();\n [...currentTrips, ...pastTrips].forEach(trip => {\n trip.travelers.forEach(name => names.add(name));\n });\n return [\n { value: 'all', label: 'All Travelers' },\n ...[...names].sort().map(name => ({ value: name, label: name })),\n ];\n }, [travelerOptions, currentTrips, pastTrips]);\n\n // Get current data based on tab\n const currentData = useMemo(() => {\n let data = activeTab === 'requested' ? requestedTrips\n : activeTab === 'current' ? currentTrips\n : pastTrips;\n\n // Apply filters\n if (sport !== 'all') {\n data = data.filter(trip => trip.sport?.toUpperCase() === sport.toUpperCase());\n }\n if (traveler !== 'all') {\n data = data.filter(trip => trip.travelers.includes(traveler));\n }\n if (search) {\n const q = search.toLowerCase();\n data = data.filter(trip =>\n trip.travelers.join(' ').toLowerCase().includes(q) ||\n (trip.pnr || '').toLowerCase().includes(q) ||\n (trip.reqId || '').toLowerCase().includes(q) ||\n (trip.itinerary || '').toLowerCase().includes(q) ||\n (trip.vendor || '').toLowerCase().includes(q)\n );\n }\n\n return data;\n }, [activeTab, requestedTrips, currentTrips, pastTrips, sport, traveler, search]);\n\n const hasActiveFilters = sport !== 'all' || traveler !== 'all' || !!search;\n\n const tabs = [\n { key: 'requested' as TabKey, label: 'Requested Trips', count: requestedTrips.length },\n { key: 'current' as TabKey, label: 'Current & Future Trips', count: currentTrips.length },\n { key: 'past' as TabKey, label: 'Past Trips', count: pastTrips.length },\n ];\n\n const handleViewTrip = (id: string) => {\n if (activeTab === 'requested') {\n onViewRequest?.(id);\n } else {\n onViewTrip?.(id);\n }\n };\n\n return (\n <div className={`${styles.page} ${className || ''}`}>\n {/* Page Title */}\n <div className={styles.header}>\n <h1 className={styles.title}>Individual & Small Group Travel</h1>\n </div>\n\n {/* Tabs */}\n <div className={styles.tabsContainer}>\n <div className={styles.tabs}>\n {tabs.map(tab => (\n <button\n key={tab.key}\n className={`${styles.tab} ${activeTab === tab.key ? styles.active : ''}`}\n onClick={() => setActiveTab(tab.key)}\n >\n {tab.label}\n <span className={`${styles.tabCount} ${activeTab === tab.key ? styles.activeCount : ''}`}>\n {tab.count}\n </span>\n </button>\n ))}\n </div>\n <div className={styles.exportWrapper}>\n <button \n className={styles.exportButton}\n onClick={() => setShowExportMenu(!showExportMenu)}\n >\n <span>Export</span>\n <ExportIcon />\n </button>\n {showExportMenu && (\n <div className={styles.exportMenu}>\n {hasActiveFilters && (\n <div className={styles.exportInfo}>\n <FilterIcon />\n <span>Active filters will be applied to the export.</span>\n </div>\n )}\n <button onClick={() => { onExport?.('all'); setShowExportMenu(false); }}>\n Export All Trips\n </button>\n <button onClick={() => { onExport?.('current'); setShowExportMenu(false); }}>\n Export Current & Future\n </button>\n <button onClick={() => { onExport?.('past'); setShowExportMenu(false); }}>\n Export Past Trips\n </button>\n </div>\n )}\n </div>\n </div>\n\n {/* Filters */}\n <div className={styles.filters}>\n <div className={styles.searchWrapper}>\n <span className={styles.searchIcon}><SearchIcon /></span>\n <input\n type=\"text\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n placeholder=\"Search traveler, PNR, route…\"\n className={styles.searchInput}\n />\n </div>\n\n <FilterChip\n label=\"Sport\"\n value={sport}\n options={sportOptions}\n onChange={setSport}\n />\n\n <FilterChip\n label=\"Traveler\"\n value={traveler}\n options={computedTravelerOptions}\n onChange={setTraveler}\n searchable\n searchPlaceholder=\"Search travelers…\"\n infoMessage={showTravelerScopeInfo ? \"Scoped to travelers in your assigned sports.\" : undefined}\n />\n\n {activeTab === 'past' && (\n <button\n className={`${styles.advancedButton} ${showAdvancedFilters ? styles.advancedActive : ''}`}\n onClick={() => setShowAdvancedFilters(!showAdvancedFilters)}\n >\n <FilterIcon />\n Advanced filters\n </button>\n )}\n </div>\n\n {/* Advanced Filters Panel (Past tab only) */}\n {activeTab === 'past' && showAdvancedFilters && (\n <div className={styles.advancedFilters}>\n <div className={styles.advancedHeader}>\n <h3>Advanced filters</h3>\n <button \n className={styles.closeButton}\n onClick={() => setShowAdvancedFilters(false)}\n >\n ×\n </button>\n </div>\n <div className={styles.advancedGrid}>\n <div className={styles.filterField}>\n <label>Travel Dates</label>\n <input type=\"text\" placeholder=\"Pick a date range\" />\n </div>\n <div className={styles.filterField}>\n <label>Destination / Routing</label>\n <input type=\"text\" placeholder=\"e.g. LAS, DFW\" />\n </div>\n <div className={styles.filterField}>\n <label>Vendor</label>\n <input type=\"text\" placeholder=\"e.g. DL, UA\" />\n </div>\n <div className={styles.filterField}>\n <label>Confirmation / PNR</label>\n <input type=\"text\" placeholder=\"e.g. GA12X7\" />\n </div>\n <div className={styles.filterField}>\n <label>Ticket Number</label>\n <input type=\"text\" placeholder=\"e.g. 0067123456789\" />\n </div>\n <div className={styles.filterField}>\n <label>Total / Billed Amount</label>\n <input type=\"text\" placeholder=\"$0.00 – $0.00\" />\n </div>\n <div className={styles.filterActions}>\n <button className={styles.applyButton}>Apply</button>\n <button className={styles.resetButton}>Reset</button>\n </div>\n </div>\n </div>\n )}\n\n {/* Table */}\n <TripTable\n trips={currentData}\n variant={activeTab}\n density={density}\n vendorMode={vendorMode}\n useServiceColumn={useServiceColumn}\n onViewTrip={handleViewTrip}\n />\n\n {/* Pagination */}\n {currentData.length > 0 && (\n <div className={styles.pagination}>\n <div className={styles.paginationInfo}>\n Showing 1–{currentData.length} of {currentData.length}\n </div>\n <div className={styles.paginationControls}>\n <button className={styles.pageButton} disabled>\n <ChevronLeft />\n </button>\n <span className={styles.pageInfo}>Page 1 of 1</span>\n <button className={styles.pageButton} disabled>\n <ChevronRight />\n </button>\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default IndividualTravelPage;\n","import { useEffect, useMemo, useState } from 'react';\nimport styles from './InfoCenterPage.module.css';\nimport { Modal } from '../../organisms/Modal';\nimport { Button } from '../../atoms/Button';\nimport { Spinner } from '../../atoms/Spinner';\nimport {\n IconProps,\n WarningIcon,\n PlaneIcon,\n CarIcon,\n HotelIcon,\n DocumentIcon,\n InfoIcon,\n BuildingIcon,\n GridIcon,\n EditIcon,\n HomeIcon,\n PlusIcon,\n ChevronRightIcon,\n ArrowUpRightIcon,\n} from '../../atoms/Icons';\n\nexport interface InfoCenterArticle {\n id: string;\n title: string;\n /** Short plain-text snippet shown on the card */\n body: string;\n /** Full HTML body rendered inside the article modal */\n fullText?: string;\n category: string;\n /** External link; when present \"Read more\" opens it instead of the modal */\n href?: string;\n}\n\nexport type InfoCenterPageState = 'loading' | 'data' | 'empty' | 'error';\n\nexport interface InfoCenterPageProps {\n /** Page title */\n title?: string;\n /** Account name shown in the subtitle */\n accountName?: string;\n /** Articles to display */\n articles?: InfoCenterArticle[];\n /** Explicit page state; derived from `articles` when omitted */\n state?: InfoCenterPageState;\n /** Show admin controls (Add Article, per-card edit) */\n isAdmin?: boolean;\n /** Called when the admin Add Article button is clicked */\n onAddArticle?: () => void;\n /** Called when an admin clicks a card's edit button */\n onEditArticle?: (article: InfoCenterArticle) => void;\n /** Called when an article with an external href is opened */\n onOpenExternal?: (article: InfoCenterArticle) => void;\n /** Additional class */\n className?: string;\n /** Show the Hub breadcrumb above the title. */\n showBreadcrumb?: boolean;\n /** Home link used by the breadcrumb. */\n homeHref?: string;\n /** Article to open after navigation from a dashboard card. */\n initialArticleId?: string;\n /** Called once the initial article has been consumed. */\n onInitialArticleOpen?: () => void;\n}\n\n// ── Category metadata ────────────────────────────────────────────────────────\n\ninterface CategoryMeta {\n label: string;\n icon: React.FC<IconProps>;\n alert?: boolean;\n}\n\nconst CATEGORY_META: Record<string, CategoryMeta> = {\n Alert: { label: 'Alert', icon: WarningIcon, alert: true },\n Air: { label: 'Air', icon: PlaneIcon },\n Car: { label: 'Car', icon: CarIcon },\n Hotel: { label: 'Hotel', icon: HotelIcon },\n Policy: { label: 'Policy', icon: DocumentIcon },\n General: { label: 'General', icon: DocumentIcon },\n STM: { label: \"Short's Info\", icon: InfoIcon },\n 'Client Specific': { label: 'Client Specific', icon: BuildingIcon },\n};\n\nconst DEFAULT_META: CategoryMeta = { label: 'General', icon: DocumentIcon };\n\nconst metaFor = (cat: string): CategoryMeta => CATEGORY_META[cat] ?? DEFAULT_META;\n\nconst CATEGORY_ORDER = ['Alert', 'General', 'Air', 'Car', 'Hotel', 'Policy', 'STM', 'Client Specific'];\n\n// ── Article card ─────────────────────────────────────────────────────────────\n\ninterface ArticleCardProps {\n article: InfoCenterArticle;\n isAdmin: boolean;\n onOpen: (article: InfoCenterArticle) => void;\n onEdit?: (article: InfoCenterArticle) => void;\n}\n\nconst ArticleCard = ({ article, isAdmin, onOpen, onEdit }: ArticleCardProps) => {\n const meta = metaFor(article.category);\n const CategoryIcon = meta.icon;\n\n return (\n <div className={[styles.card, meta.alert ? styles.cardAlert : ''].filter(Boolean).join(' ')}>\n <span className={[styles.categoryBadge, meta.alert ? styles.categoryAlert : ''].filter(Boolean).join(' ')}>\n <CategoryIcon size={13} />\n {meta.label}\n </span>\n\n <h3 className={styles.cardTitle}>{article.title}</h3>\n\n {article.body && <p className={styles.cardBody}>{article.body}</p>}\n\n <button type=\"button\" className={styles.readMore} onClick={() => onOpen(article)}>\n Read more\n <ChevronRightIcon size={14} />\n </button>\n\n {isAdmin && (\n <button\n type=\"button\"\n className={styles.editButton}\n onClick={() => onEdit?.(article)}\n title=\"Edit article\"\n aria-label=\"Edit article\"\n >\n <EditIcon size={14} />\n </button>\n )}\n </div>\n );\n};\n\n/**\n * InfoCenterPage - Info Center article browser\n *\n * Shows all published Info Center articles for the active account,\n * filtered by category tab. \"Read more\" on an article with an external\n * href opens it in a new tab; articles without an href open an inline\n * modal that renders the full article body.\n */\nexport const InfoCenterPage = ({\n title = 'Info Center',\n accountName,\n articles = [],\n state,\n isAdmin = false,\n onAddArticle,\n onEditArticle,\n onOpenExternal,\n className = '',\n showBreadcrumb = true,\n homeHref = '/home',\n initialArticleId,\n onInitialArticleOpen,\n}: InfoCenterPageProps) => {\n const pageState: InfoCenterPageState = state ?? (articles.length > 0 ? 'data' : 'empty');\n\n const [activeCategory, setActiveCategory] = useState('All');\n const [modalArticle, setModalArticle] = useState<InfoCenterArticle | null>(null);\n\n // Ordered, de-duped category list derived from the data\n const categories = useMemo(() => {\n const seen = new Set<string>();\n const found: string[] = [];\n CATEGORY_ORDER.forEach((c) => {\n if (articles.some((a) => a.category === c)) {\n seen.add(c);\n found.push(c);\n }\n });\n articles.forEach((a) => {\n if (!seen.has(a.category)) {\n seen.add(a.category);\n found.push(a.category);\n }\n });\n return found;\n }, [articles]);\n\n const filtered = useMemo(\n () => (activeCategory === 'All' ? articles : articles.filter((a) => a.category === activeCategory)),\n [articles, activeCategory]\n );\n\n useEffect(() => {\n if (!initialArticleId) return;\n const article = articles.find((item) => item.id === initialArticleId);\n if (!article) return;\n setModalArticle(article);\n onInitialArticleOpen?.();\n }, [articles, initialArticleId, onInitialArticleOpen]);\n\n const handleOpen = (article: InfoCenterArticle) => {\n if (article.href) {\n onOpenExternal?.(article);\n window.open(article.href, '_blank', 'noopener,noreferrer');\n } else {\n setModalArticle(article);\n }\n };\n\n const modalMeta = modalArticle ? metaFor(modalArticle.category) : null;\n const ModalCategoryIcon = modalMeta?.icon;\n\n return (\n <div className={[styles.page, className].filter(Boolean).join(' ')}>\n {showBreadcrumb && (\n <nav className={styles.breadcrumb} aria-label=\"Breadcrumb\">\n <a href={homeHref}><HomeIcon size={14} />Home</a>\n <span>/</span>\n <span>Info Center</span>\n </nav>\n )}\n {/* Page header */}\n <div className={styles.header}>\n <div className={styles.headerText}>\n <h1 className={styles.title}>{title}</h1>\n {accountName && (\n <p className={styles.subtitle}>Travel resources and program information for {accountName}.</p>\n )}\n </div>\n {isAdmin && (\n <Button variant=\"primary\" size=\"sm\" onClick={onAddArticle}>\n <PlusIcon size={15} />\n Add Article\n </Button>\n )}\n </div>\n\n {pageState === 'loading' && (\n <div className={styles.stateBlock}>\n <Spinner size=\"md\" />\n <span>Loading…</span>\n </div>\n )}\n\n {pageState === 'error' && (\n <div className={[styles.stateBlock, styles.stateError].join(' ')}>\n <WarningIcon size={28} />\n <p className={styles.stateText}>Unable to load Info Center resources.</p>\n </div>\n )}\n\n {pageState === 'empty' && (\n <div className={styles.stateBlock}>\n <InfoIcon size={28} />\n <p className={styles.stateText}>No resources available.</p>\n </div>\n )}\n\n {pageState === 'data' && (\n <>\n {/* Category tabs */}\n <div className={styles.tabs} role=\"tablist\" aria-label=\"Article categories\">\n <button\n type=\"button\"\n role=\"tab\"\n aria-selected={activeCategory === 'All'}\n onClick={() => setActiveCategory('All')}\n className={[styles.tab, activeCategory === 'All' ? styles.tabActive : ''].filter(Boolean).join(' ')}\n >\n <GridIcon size={15} />\n All\n </button>\n\n {categories.map((cat) => {\n const m = metaFor(cat);\n const TabIcon = m.icon;\n const isActive = activeCategory === cat;\n return (\n <button\n key={cat}\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n onClick={() => setActiveCategory(cat)}\n className={[\n styles.tab,\n isActive ? styles.tabActive : '',\n m.alert ? styles.tabAlert : '',\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <TabIcon size={15} />\n {m.label}\n </button>\n );\n })}\n </div>\n\n {/* Article grid */}\n {filtered.length === 0 ? (\n <div className={styles.stateBlock}>\n <InfoIcon size={24} />\n <p className={styles.stateText}>No resources in this category.</p>\n </div>\n ) : (\n <div className={styles.grid}>\n {filtered.map((article) => (\n <ArticleCard\n key={article.id}\n article={article}\n isAdmin={isAdmin}\n onOpen={handleOpen}\n onEdit={onEditArticle}\n />\n ))}\n </div>\n )}\n </>\n )}\n\n {/* Article modal */}\n <Modal\n isOpen={modalArticle !== null}\n onClose={() => setModalArticle(null)}\n title={modalArticle?.title}\n size=\"lg\"\n footer={\n modalArticle?.href ? (\n <a href={modalArticle.href} target=\"_blank\" rel=\"noopener noreferrer\" className={styles.externalLink}>\n Open external resource\n <ArrowUpRightIcon size={14} />\n </a>\n ) : undefined\n }\n >\n {modalArticle && (\n <div className={styles.modalContent}>\n {modalMeta && ModalCategoryIcon && (\n <span\n className={[styles.categoryBadge, modalMeta.alert ? styles.categoryAlert : '']\n .filter(Boolean)\n .join(' ')}\n >\n <ModalCategoryIcon size={13} />\n {modalMeta.label}\n </span>\n )}\n {modalArticle.fullText ? (\n <div className={styles.articleHtml} dangerouslySetInnerHTML={{ __html: modalArticle.fullText }} />\n ) : (\n <p className={styles.articleText}>{modalArticle.body}</p>\n )}\n </div>\n )}\n </Modal>\n </div>\n );\n};\n\nexport default InfoCenterPage;\n","import { ReactNode } from 'react';\nimport styles from './NotFoundPage.module.css';\n\nexport interface NotFoundPageProps {\n /** Error code to display */\n errorCode?: string | number;\n /** Main heading */\n title?: string;\n /** Description message */\n message?: string;\n /** Action button/link content */\n action?: ReactNode;\n /** Custom illustration or icon */\n illustration?: ReactNode;\n /** Additional class */\n className?: string;\n}\n\nconst DefaultIllustration = () => (\n <svg width=\"120\" height=\"120\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\" />\n <line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\" />\n </svg>\n);\n\n/**\n * NotFoundPage - 404 error page layout\n * \n * Shows a centered error page with:\n * - Error code (404)\n * - Title and message\n * - Optional action button\n * - Optional illustration\n */\nexport const NotFoundPage = ({\n errorCode = '404',\n title = 'Page Not Found',\n message = 'The page you are looking for does not exist or you do not have permission to access it.',\n action,\n illustration,\n className = '',\n}: NotFoundPageProps) => {\n const pageClasses = [\n styles.page,\n className,\n ].filter(Boolean).join(' ');\n\n return (\n <div className={pageClasses}>\n <div className={styles.card}>\n <div className={styles.illustration}>\n {illustration || <DefaultIllustration />}\n </div>\n <h1 className={styles.errorCode}>{errorCode}</h1>\n <h2 className={styles.title}>{title}</h2>\n <p className={styles.message}>{message}</p>\n {action && (\n <div className={styles.action}>\n {action}\n </div>\n )}\n </div>\n </div>\n );\n};\n\nNotFoundPage.displayName = 'NotFoundPage';\n\nexport default NotFoundPage;\n","import { ReactNode } from 'react';\nimport styles from './TeamManagementPage.module.css';\n\nexport interface TeamManagementTab {\n /** Tab identifier */\n id: string;\n /** Tab label */\n label: string;\n /** Tab icon */\n icon?: ReactNode;\n /** Tab badge count */\n badge?: number;\n}\n\nexport interface TeamManagementPageProps {\n /** Hub overview or team-detail shell. */\n variant?: 'overview' | 'team';\n /** Overview page title. */\n title?: string;\n /** Overview team navigation panel. */\n teamPanel?: ReactNode;\n /** Overview contacts heading. */\n contactsTitle?: string;\n /** Overview contacts notice. */\n contactAlert?: ReactNode;\n /** Overview contacts list. */\n contacts?: ReactNode;\n /** Team header component */\n header?: ReactNode;\n /** Available tabs */\n tabs?: TeamManagementTab[];\n /** Currently active tab */\n activeTab?: string;\n /** Tab change handler */\n onTabChange?: (tabId: string) => void;\n /** Tab content */\n children?: ReactNode;\n /** Sidebar content */\n sidebar?: ReactNode;\n /** Footer content */\n footer?: ReactNode;\n /** Additional class */\n className?: string;\n}\n\nconst RosterIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"/>\n <circle cx=\"9\" cy=\"7\" r=\"4\"/>\n <path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"/>\n <path d=\"M16 3.13a4 4 0 0 1 0 7.75\"/>\n </svg>\n);\n\nconst ContactsIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"/>\n <polyline points=\"22,6 12,13 2,6\"/>\n </svg>\n);\n\nconst PreferencesIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <circle cx=\"12\" cy=\"12\" r=\"3\"/>\n <path d=\"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z\"/>\n </svg>\n);\n\nconst ProgramsIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"4\" rx=\"1\"/>\n <rect x=\"3\" y=\"10\" width=\"18\" height=\"4\" rx=\"1\"/>\n <rect x=\"3\" y=\"16\" width=\"18\" height=\"4\" rx=\"1\"/>\n </svg>\n);\n\nconst DEFAULT_TABS: TeamManagementTab[] = [\n { id: 'roster', label: 'Roster', icon: <RosterIcon /> },\n { id: 'contacts', label: 'Contacts', icon: <ContactsIcon /> },\n { id: 'preferences', label: 'Preferences', icon: <PreferencesIcon /> },\n { id: 'programs', label: 'Programs', icon: <ProgramsIcon /> },\n];\n\n/**\n * TeamManagementPage - Layout for team management with tabbed navigation\n */\nexport const TeamManagementPage = ({\n variant = 'team',\n title = 'Team Management',\n teamPanel,\n contactsTitle = 'School Contacts',\n contactAlert,\n contacts,\n header,\n tabs = DEFAULT_TABS,\n activeTab = 'roster',\n onTabChange,\n children,\n sidebar,\n footer,\n className = '',\n}: TeamManagementPageProps) => {\n const pageClasses = [styles.page, className].filter(Boolean).join(' ');\n\n if (variant === 'overview') {\n return (\n <div className={[styles.overview, className].filter(Boolean).join(' ')}>\n <header className={styles.overviewHeader}><h1>{title}</h1></header>\n <div className={styles.overviewGrid}>\n <aside>{teamPanel}</aside>\n <section className={styles.contactsColumn}>\n <h2>{contactsTitle}</h2>\n {contactAlert}\n {contacts}\n </section>\n </div>\n </div>\n );\n }\n\n return (\n <div className={pageClasses}>\n {header && <div className={styles.header}>{header}</div>}\n\n <div className={styles.tabNav}>\n {tabs.map((tab) => (\n <button\n key={tab.id}\n type=\"button\"\n className={[\n styles.tabButton,\n activeTab === tab.id ? styles.active : '',\n ].filter(Boolean).join(' ')}\n onClick={() => onTabChange?.(tab.id)}\n aria-selected={activeTab === tab.id}\n >\n {tab.icon && <span className={styles.tabIcon}>{tab.icon}</span>}\n <span>{tab.label}</span>\n {tab.badge !== undefined && tab.badge > 0 && (\n <span className={styles.tabBadge}>{tab.badge}</span>\n )}\n </button>\n ))}\n </div>\n\n <div className={styles.body}>\n <main className={styles.main}>\n {children}\n </main>\n {sidebar && (\n <aside className={styles.sidebar}>\n {sidebar}\n </aside>\n )}\n </div>\n\n {footer && <div className={styles.footer}>{footer}</div>}\n </div>\n );\n};\n\nTeamManagementPage.displayName = 'TeamManagementPage';\n\nexport default TeamManagementPage;\n","import { ReactNode } from 'react';\nimport styles from './TeamSchedulePage.module.css';\n\nexport interface ScheduleMetric {\n label: string;\n value: string | number;\n prefix?: string;\n suffix?: string;\n}\n\nexport interface ScheduleFilterOption {\n label: string;\n value: string | number;\n}\n\nexport interface TeamSchedulePageProps {\n /** Page title */\n title?: string;\n /** Mobile title variant */\n mobileTitle?: string;\n /** Summary metrics to display */\n metrics?: ScheduleMetric[];\n /** Exact Hub summary component. Overrides metrics when supplied. */\n summary?: ReactNode;\n /** Team filter content */\n teamFilter?: ReactNode;\n /** Service filter content */\n serviceFilter?: ReactNode;\n /** Action buttons area */\n actions?: ReactNode;\n /** Main schedule content - compact view */\n compactView?: ReactNode;\n /** Main schedule content - expanded view */\n expandedView?: ReactNode;\n /** Current view mode */\n viewMode?: 'compact' | 'expanded';\n /** Whether in mobile mode */\n isMobile?: boolean;\n /** Additional class */\n className?: string;\n}\n\n/**\n * TeamSchedulePage - Team travel schedule page layout\n * \n * Shows a page with:\n * - Title and filter row\n * - Summary metrics\n * - Action buttons\n * - Schedule table (compact or expanded view)\n */\nexport const TeamSchedulePage = ({\n title = 'Team Travel Schedule',\n mobileTitle = 'Travel Schedule',\n metrics = [],\n summary,\n teamFilter,\n serviceFilter,\n actions,\n compactView,\n expandedView,\n viewMode = 'compact',\n isMobile = false,\n className = '',\n}: TeamSchedulePageProps) => {\n const pageClasses = [\n styles.page,\n className,\n ].filter(Boolean).join(' ');\n\n const headerClasses = [\n styles.header,\n isMobile ? styles.headerMobile : '',\n ].filter(Boolean).join(' ');\n\n return (\n <div className={pageClasses}>\n <div className={headerClasses}>\n <div className={styles.titleSection}>\n <h1 className={styles.title}>\n {isMobile ? mobileTitle : title}\n </h1>\n <div className={styles.filters}>\n {teamFilter}\n {serviceFilter}\n </div>\n </div>\n \n {(summary || metrics.length > 0) && (\n <div className={styles.metrics}>\n {summary ?? metrics.map((metric, i) => (\n <div key={i} className={styles.metric}>\n <span className={styles.metricValue}>\n {metric.prefix}{metric.value}{metric.suffix}\n </span>\n <span className={styles.metricLabel}>{metric.label}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n\n {actions}\n\n <div className={styles.content}>\n {viewMode === 'compact' ? compactView : expandedView}\n </div>\n </div>\n );\n};\n\nTeamSchedulePage.displayName = 'TeamSchedulePage';\n\nexport default TeamSchedulePage;\n","import { ReactNode } from 'react';\nimport styles from './TeamTravelCalendarPage.module.css';\n\nexport type CalendarView = 'calendar' | 'card' | 'list';\n\nexport interface CalendarMetric {\n label: string;\n value: string | number;\n onClick?: () => void;\n}\n\nexport interface TeamTravelCalendarPageProps {\n /** Page title */\n title?: string;\n /** Mobile title variant */\n mobileTitle?: string;\n /** Summary metrics to display */\n metrics?: CalendarMetric[];\n /** Exact summary component used by Hub. Overrides metrics when supplied. */\n summary?: ReactNode;\n /** Team filter content */\n teamFilter?: ReactNode;\n /** Service filter content */\n serviceFilter?: ReactNode;\n /** View selector content */\n viewSelector?: ReactNode;\n /** Type selector content */\n typeSelector?: ReactNode;\n /** Calendar view content */\n calendarView?: ReactNode;\n /** Card view content */\n cardView?: ReactNode;\n /** List view content */\n listView?: ReactNode;\n /** Sidebar content (due dates) */\n sidebar?: ReactNode;\n /** Current view mode */\n view?: CalendarView;\n /** Whether sidebar is open */\n sidebarOpen?: boolean;\n /** Whether in mobile mode */\n isMobile?: boolean;\n /** Additional class */\n className?: string;\n}\n\n/**\n * TeamTravelCalendarPage - Team travel calendar page layout\n * \n * Shows a page with:\n * - Title and filter row\n * - Summary metrics\n * - View switcher (calendar/card/list)\n * - Main calendar/card/list view\n * - Sidebar for due dates\n */\nexport const TeamTravelCalendarPage = ({\n title = 'Team Travel Calendar',\n mobileTitle = 'Travel Calendar',\n metrics = [],\n summary,\n teamFilter,\n serviceFilter,\n viewSelector,\n typeSelector,\n calendarView,\n cardView,\n listView,\n sidebar,\n view = 'calendar',\n sidebarOpen: _sidebarOpen = false,\n isMobile = false,\n className = '',\n}: TeamTravelCalendarPageProps) => {\n const pageClasses = [\n styles.page,\n className,\n ].filter(Boolean).join(' ');\n\n const headerClasses = [\n styles.header,\n isMobile ? styles.headerMobile : '',\n ].filter(Boolean).join(' ');\n\n const renderView = () => {\n switch (view) {\n case 'calendar':\n return calendarView;\n case 'card':\n return cardView;\n case 'list':\n return listView;\n default:\n return null;\n }\n };\n\n return (\n <div className={pageClasses}>\n <div className={headerClasses}>\n <div className={styles.titleSection}>\n <h1 className={styles.title}>\n {isMobile ? mobileTitle : title}\n </h1>\n <div className={styles.filters}>\n {teamFilter}\n {serviceFilter}\n {viewSelector}\n {typeSelector}\n </div>\n </div>\n \n {(summary || metrics.length > 0) && (\n <div className={styles.metrics}>\n {summary ?? metrics.map((metric, i) => (\n <button key={i} className={styles.metric} onClick={metric.onClick} type=\"button\" disabled={!metric.onClick}>\n <span className={styles.metricValue}>{metric.value}</span>\n <span className={styles.metricLabel}>{metric.label}</span>\n </button>\n ))}\n </div>\n )}\n </div>\n\n <div className={styles.content}>{renderView()}</div>\n {sidebar}\n </div>\n );\n};\n\nTeamTravelCalendarPage.displayName = 'TeamTravelCalendarPage';\n\nexport default TeamTravelCalendarPage;\n","import { ReactNode } from 'react';\nimport styles from './TripDetailPage.module.css';\n\nexport interface TripDetailPageProps {\n /** Trip header content (title, status, dates) */\n header?: ReactNode;\n /** Air segment content */\n airSegment?: ReactNode;\n /** Ground segment content */\n groundSegment?: ReactNode;\n /** Hotel segment content */\n hotelSegment?: ReactNode;\n /** Files/attachments section */\n filesSection?: ReactNode;\n /** Team roster section */\n teamSection?: ReactNode;\n /** Events sidebar */\n eventsSection?: ReactNode;\n /** Due dates sidebar */\n dueDatesSection?: ReactNode;\n /** Additional class */\n className?: string;\n}\n\n/**\n * TripDetailPage - Trip detail view layout\n * \n * Displays a trip with:\n * - Header with trip info and status\n * - Main content area:\n * - Left (7 cols): Segments (Air/Ground/Hotel), Files, Team\n * - Right (3 cols): Events, Due Dates\n */\nexport const TripDetailPage = ({\n header,\n airSegment,\n groundSegment,\n hotelSegment,\n filesSection,\n teamSection,\n eventsSection,\n dueDatesSection,\n className = '',\n}: TripDetailPageProps) => {\n const pageClasses = [\n styles.page,\n className,\n ].filter(Boolean).join(' ');\n\n return (\n <div className={pageClasses}>\n {header && (\n <div className={styles.header}>\n {header}\n </div>\n )}\n\n <div className={styles.content}>\n {/* Main column - segments, files, team */}\n <div className={styles.mainColumn}>\n {/* Segments grid */}\n <div className={styles.segmentsGrid}>\n <div className={styles.segmentCard}>\n <h3 className={styles.segmentTitle}>Air</h3>\n {airSegment || <div className={styles.empty}>No flights</div>}\n </div>\n <div className={styles.segmentCard}>\n <h3 className={styles.segmentTitle}>Ground</h3>\n {groundSegment || <div className={styles.empty}>No ground transportation</div>}\n </div>\n <div className={styles.segmentCard}>\n <h3 className={styles.segmentTitle}>Hotel</h3>\n {hotelSegment || <div className={styles.empty}>No hotels</div>}\n </div>\n </div>\n\n {filesSection && (\n <div className={styles.section}>\n <h3 className={styles.sectionTitle}>Files</h3>\n {filesSection}\n </div>\n )}\n\n {teamSection && (\n <div className={styles.section}>\n <h3 className={styles.sectionTitle}>Team Roster</h3>\n {teamSection}\n </div>\n )}\n </div>\n\n {/* Sidebar - events, due dates */}\n <div className={styles.sidebar}>\n {eventsSection && (\n <div className={styles.sidebarSection}>\n <h3 className={styles.sectionTitle}>Events</h3>\n {eventsSection}\n </div>\n )}\n\n {dueDatesSection && (\n <div className={styles.sidebarSection}>\n <h3 className={styles.sectionTitle}>Due Dates</h3>\n {dueDatesSection}\n </div>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nTripDetailPage.displayName = 'TripDetailPage';\n\nexport default TripDetailPage;\n"],"names":["_jsx","PlaneIcon","CarIcon","_jsxs","_Fragment","HotelIcon","BusIcon","SearchIcon","ChevronDownIcon","ChevronRightIcon","FilterIcon","CalendarIcon","UsersIcon","WarningIcon","CheckIcon","PlusIcon","InfoIcon","EditIcon","LockIcon","TrashIcon","styles","typeColors","typeIcons","ExportIcon","ChevronIcon","DEFAULT_TABS","parseLocalDate","formatDate","ChevronRight"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/atoms/Icons/index.tsx","../src/atoms/Alert/Alert.tsx","../src/atoms/Avatar/Avatar.tsx","../src/atoms/Badge/Badge.tsx","../src/atoms/Button/Button.tsx","../src/atoms/Checkbox/Checkbox.tsx","../src/atoms/Datepicker/Datepicker.tsx","../src/atoms/Input/Input.tsx","../src/atoms/Metric/Metric.tsx","../src/atoms/Select/Select.tsx","../src/atoms/Spinner/Spinner.tsx","../src/atoms/StatusBadge/StatusBadge.tsx","../src/atoms/Tag/Tag.tsx","../src/atoms/Timepicker/Timepicker.tsx","../src/atoms/Title/Title.tsx","../src/atoms/Toggle/Toggle.tsx","../src/atoms/Tooltip/Tooltip.tsx","../src/atoms/TravelServiceIcon/TravelServiceIcon.tsx","../src/atoms/TypeIcon/TypeIcon.tsx","../src/molecules/Accordion/Accordion.tsx","../src/molecules/CalendarSelectors/CalendarSelectors.tsx","../src/molecules/Dropdown/Dropdown.tsx","../src/molecules/FilterChip/FilterChip.tsx","../src/molecules/FormField/FormField.tsx","../src/molecules/FormRow/FormRow.tsx","../src/molecules/FormSection/FormSection.tsx","../src/molecules/FormStack/FormStack.tsx","../src/molecules/ManifestViewToggle/ManifestViewToggle.tsx","../src/molecules/NavItem/NavItem.tsx","../src/molecules/Progress/Progress.tsx","../src/molecules/RosterToolbar/RosterToolbar.tsx","../src/molecules/SearchField/SearchField.tsx","../src/molecules/SchoolContactForm/SchoolContactForm.tsx","../src/molecules/Segment/Segment.tsx","../src/molecules/SelectFilter/SelectFilter.tsx","../src/molecules/ServiceToggle/ServiceToggle.tsx","../src/molecules/SupplierTypeToggle/SupplierTypeToggle.tsx","../src/molecules/TeamHeader/TeamHeader.tsx","../src/molecules/TripSegment/TripSegment.tsx","../src/organisms/Sidenav/Sidenav.tsx","../src/organisms/Topbar/Topbar.tsx","../src/organisms/AppLayout/AppLayout.tsx","../src/organisms/Card/Card.tsx","../src/organisms/ContactList/ContactList.tsx","../src/organisms/Drawer/Drawer.tsx","../src/organisms/DueDatesDrawer/DueDatesDrawer.tsx","../src/organisms/MembershipPrograms/MembershipPrograms.tsx","../src/organisms/ManifestCapacityStats/ManifestCapacityStats.tsx","../src/organisms/Modal/Modal.tsx","../src/organisms/Module/Module.tsx","../src/organisms/PageBanners/PageBanners.tsx","../src/organisms/PreferencesPanel/PreferencesPanel.tsx","../src/organisms/RequestSummary/RequestSummary.tsx","../src/organisms/RequestFormLayout/RequestFormLayout.tsx","../src/organisms/Table/Table.tsx","../src/organisms/TeamCard/TeamCard.tsx","../src/organisms/TeamScheduleActions/TeamScheduleActions.tsx","../src/organisms/TeamScheduleCompactTable/TeamScheduleCompactTable.tsx","../src/organisms/TeamScheduleExpandedTable/TeamScheduleExpandedTable.tsx","../src/organisms/TravelSummaryMetrics/TravelSummaryMetrics.tsx","../src/organisms/TravelerForm/TravelerForm.tsx","../src/organisms/TripTable/TripTable.tsx","../src/pages/AdministrationPage/AdministrationPage.tsx","../src/pages/CharterManifestPage/CharterManifestPage.tsx","../src/pages/ContactUsPage/ContactUsPage.tsx","../src/pages/DashboardPage/DashboardPage.tsx","../src/pages/GroupTravelRequestPage/GroupTravelRequestPage.tsx","../src/pages/IndividualTravelPage/IndividualTravelPage.tsx","../src/pages/InfoCenterPage/InfoCenterPage.tsx","../src/pages/NotFoundPage/NotFoundPage.tsx","../src/pages/TeamManagementPage/TeamManagementPage.tsx","../src/pages/TeamSchedulePage/TeamSchedulePage.tsx","../src/pages/TeamTravelCalendarPage/TeamTravelCalendarPage.tsx","../src/pages/TripDetailPage/TripDetailPage.tsx"],"sourcesContent":["import React, { SVGProps } from 'react';\n\nexport interface IconProps extends SVGProps<SVGSVGElement> {\n /** Icon size in pixels */\n size?: number;\n /** Icon color (defaults to currentColor) */\n color?: string;\n}\n\nconst createIcon = (children: React.ReactNode, displayName: string) => {\n const Icon: React.FC<IconProps> = ({\n size = 24,\n color = 'currentColor',\n ...props\n }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke={color}\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n width={size}\n height={size}\n {...props}\n >\n {children}\n </svg>\n );\n Icon.displayName = displayName;\n return Icon;\n};\n\n// Travel / segment type icons\nexport const PlaneIcon = createIcon(\n <path d=\"M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z\" />,\n 'PlaneIcon'\n);\n\nexport const CarIcon = createIcon(\n <>\n <path d=\"M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2\" />\n <circle cx=\"7\" cy=\"17\" r=\"2\" />\n <path d=\"M9 17h6\" />\n <circle cx=\"17\" cy=\"17\" r=\"2\" />\n </>,\n 'CarIcon'\n);\n\nexport const HotelIcon = createIcon(\n <>\n <path d=\"M10 22v-6.57\" />\n <path d=\"M12 11h.01\" />\n <path d=\"M12 7h.01\" />\n <path d=\"M14 15.43V22\" />\n <path d=\"M15 16a5 5 0 0 0-6 0\" />\n <path d=\"M16 11h.01\" />\n <path d=\"M16 7h.01\" />\n <path d=\"M8 11h.01\" />\n <path d=\"M8 7h.01\" />\n <rect x=\"4\" y=\"2\" width=\"16\" height=\"20\" rx=\"2\" />\n </>,\n 'HotelIcon'\n);\n\nexport const LimoIcon = createIcon(\n <>\n <path d=\"m21 8-2 2-1.5-3.7A2 2 0 0 0 15.646 5H8.4a2 2 0 0 0-1.903 1.257L5 10 3 8\" />\n <path d=\"M7 14h.01\" />\n <path d=\"M17 14h.01\" />\n <rect width=\"18\" height=\"8\" x=\"3\" y=\"10\" rx=\"2\" />\n <path d=\"M5 18v2\" />\n <path d=\"M19 18v2\" />\n </>,\n 'LimoIcon'\n);\n\nexport const RailIcon = createIcon(\n <>\n <path d=\"M8 3.1V7a4 4 0 0 0 8 0V3.1\" />\n <path d=\"m9 15-1-1\" />\n <path d=\"m15 15 1-1\" />\n <path d=\"M9 19c-2.8 0-5-2.2-5-5v-4a8 8 0 0 1 16 0v4c0 2.8-2.2 5-5 5Z\" />\n <path d=\"m8 19-2 3\" />\n <path d=\"m16 19 2 3\" />\n </>,\n 'RailIcon'\n);\n\nexport const BusIcon = createIcon(\n <>\n <path d=\"M8 6v6\" />\n <path d=\"M15 6v6\" />\n <path d=\"M2 12h19.6\" />\n <path d=\"M18 18h3s.5-1.7.8-2.8c.1-.4.2-.8.2-1.2 0-.4-.1-.8-.2-1.2l-1.4-5C20.1 6.8 19.1 6 18 6H4a2 2 0 0 0-2 2v10h3\" />\n <circle cx=\"7\" cy=\"18\" r=\"2\" />\n <path d=\"M9 18h5\" />\n <circle cx=\"16\" cy=\"18\" r=\"2\" />\n </>,\n 'BusIcon'\n);\n\n// Control / chrome icons\nexport const SearchIcon = createIcon(\n <>\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <path d=\"m21 21-4.3-4.3\" />\n </>,\n 'SearchIcon'\n);\n\nexport const ChevronDownIcon = createIcon(\n <path d=\"m6 9 6 6 6-6\" />,\n 'ChevronDownIcon'\n);\n\nexport const ChevronUpIcon = createIcon(\n <path d=\"m18 15-6-6-6 6\" />,\n 'ChevronUpIcon'\n);\n\nexport const ChevronRightIcon = createIcon(\n <path d=\"m9 18 6-6-6-6\" />,\n 'ChevronRightIcon'\n);\n\nexport const ChevronLeftIcon = createIcon(\n <path d=\"m15 18-6-6 6-6\" />,\n 'ChevronLeftIcon'\n);\n\nexport const ArrowUpRightIcon = createIcon(\n <>\n <path d=\"M7 7h10v10\" />\n <path d=\"M7 17 17 7\" />\n </>,\n 'ArrowUpRightIcon'\n);\n\nexport const ArrowDownLeftIcon = createIcon(\n <>\n <path d=\"M17 7 7 17\" />\n <path d=\"M17 17H7V7\" />\n </>,\n 'ArrowDownLeftIcon'\n);\n\nexport const EyeIcon = createIcon(\n <>\n <path d=\"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </>,\n 'EyeIcon'\n);\n\nexport const DownloadIcon = createIcon(\n <>\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\" />\n <polyline points=\"7 10 12 15 17 10\" />\n <line x1=\"12\" x2=\"12\" y1=\"15\" y2=\"3\" />\n </>,\n 'DownloadIcon'\n);\n\nexport const FilterIcon = createIcon(\n <polygon points=\"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\" />,\n 'FilterIcon'\n);\n\nexport const CalendarIcon = createIcon(\n <>\n <path d=\"M8 2v4\" />\n <path d=\"M16 2v4\" />\n <rect width=\"18\" height=\"18\" x=\"3\" y=\"4\" rx=\"2\" />\n <path d=\"M3 10h18\" />\n </>,\n 'CalendarIcon'\n);\n\nexport const UserIcon = createIcon(\n <>\n <path d=\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\" />\n <circle cx=\"12\" cy=\"7\" r=\"4\" />\n </>,\n 'UserIcon'\n);\n\nexport const UsersIcon = createIcon(\n <>\n <path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\" />\n <circle cx=\"9\" cy=\"7\" r=\"4\" />\n <path d=\"M22 21v-2a4 4 0 0 0-3-3.87\" />\n <path d=\"M16 3.13a4 4 0 0 1 0 7.75\" />\n </>,\n 'UsersIcon'\n);\n\nexport const MailIcon = createIcon(\n <>\n <rect width=\"20\" height=\"16\" x=\"2\" y=\"4\" rx=\"2\" />\n <path d=\"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\" />\n </>,\n 'MailIcon'\n);\n\nexport const PhoneIcon = createIcon(\n <path d=\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\" />,\n 'PhoneIcon'\n);\n\nexport const PrinterIcon = createIcon(\n <>\n <polyline points=\"6 9 6 2 18 2 18 9\" />\n <path d=\"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2\" />\n <rect width=\"12\" height=\"8\" x=\"6\" y=\"14\" />\n </>,\n 'PrinterIcon'\n);\n\nexport const RefreshIcon = createIcon(\n <>\n <path d=\"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8\" />\n <path d=\"M21 3v5h-5\" />\n <path d=\"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16\" />\n <path d=\"M8 16H3v5\" />\n </>,\n 'RefreshIcon'\n);\n\nexport const WarningIcon = createIcon(\n <>\n <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-3Z\" />\n <path d=\"M12 9v4\" />\n <path d=\"M12 17h.01\" />\n </>,\n 'WarningIcon'\n);\n\nexport const CheckIcon = createIcon(\n <polyline points=\"20 6 9 17 4 12\" />,\n 'CheckIcon'\n);\n\nexport const XIcon = createIcon(\n <>\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </>,\n 'XIcon'\n);\n\nexport const PlusIcon = createIcon(\n <>\n <path d=\"M5 12h14\" />\n <path d=\"M12 5v14\" />\n </>,\n 'PlusIcon'\n);\n\nexport const MinusIcon = createIcon(\n <path d=\"M5 12h14\" />,\n 'MinusIcon'\n);\n\nexport const MenuIcon = createIcon(\n <>\n <line x1=\"4\" x2=\"20\" y1=\"12\" y2=\"12\" />\n <line x1=\"4\" x2=\"20\" y1=\"6\" y2=\"6\" />\n <line x1=\"4\" x2=\"20\" y1=\"18\" y2=\"18\" />\n </>,\n 'MenuIcon'\n);\n\nexport const LightbulbIcon = createIcon(\n <>\n <path d=\"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5\" />\n <path d=\"M9 18h6\" />\n <path d=\"M10 22h4\" />\n </>,\n 'LightbulbIcon'\n);\n\nexport const MegaphoneIcon = createIcon(\n <>\n <path d=\"m3 11 18-5v12L3 13v-2z\" />\n <path d=\"M11.6 16.8a3 3 0 1 1-5.8-1.6\" />\n </>,\n 'MegaphoneIcon'\n);\n\n// Additional icons\nexport const CloseIcon = createIcon(\n <>\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </>,\n 'CloseIcon'\n);\n\nexport const DashboardIcon = createIcon(\n <>\n <rect width=\"7\" height=\"9\" x=\"3\" y=\"3\" rx=\"1\" />\n <rect width=\"7\" height=\"5\" x=\"14\" y=\"3\" rx=\"1\" />\n <rect width=\"7\" height=\"9\" x=\"14\" y=\"12\" rx=\"1\" />\n <rect width=\"7\" height=\"5\" x=\"3\" y=\"16\" rx=\"1\" />\n </>,\n 'DashboardIcon'\n);\n\nexport const ReportIcon = createIcon(\n <>\n <path d=\"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7l-5-5z\" />\n <path d=\"M14 2v5h5\" />\n <path d=\"M10 9h4\" />\n <path d=\"M10 13h4\" />\n <path d=\"M10 17h4\" />\n </>,\n 'ReportIcon'\n);\n\nexport const SettingsIcon = createIcon(\n <>\n <path d=\"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </>,\n 'SettingsIcon'\n);\n\nexport const LogoIcon = createIcon(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M12 6v6l4 2\" />\n </>,\n 'LogoIcon'\n);\n\nexport const TrendUpIcon = createIcon(\n <>\n <polyline points=\"22 7 13.5 15.5 8.5 10.5 2 17\" />\n <polyline points=\"16 7 22 7 22 13\" />\n </>,\n 'TrendUpIcon'\n);\n\nexport const TrendDownIcon = createIcon(\n <>\n <polyline points=\"22 17 13.5 8.5 8.5 13.5 2 7\" />\n <polyline points=\"16 17 22 17 22 11\" />\n </>,\n 'TrendDownIcon'\n);\n\nexport const InfoIcon = createIcon(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M12 16v-4\" />\n <path d=\"M12 8h.01\" />\n </>,\n 'InfoIcon'\n);\n\nexport const DocumentIcon = createIcon(\n <>\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z\" />\n <path d=\"M14 2v6h6\" />\n <path d=\"M16 13H8\" />\n <path d=\"M16 17H8\" />\n </>,\n 'DocumentIcon'\n);\n\nexport const BuildingIcon = createIcon(\n <>\n <path d=\"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z\" />\n <path d=\"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2\" />\n <path d=\"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2\" />\n <path d=\"M10 6h4\" />\n <path d=\"M10 10h4\" />\n <path d=\"M10 14h4\" />\n <path d=\"M10 18h4\" />\n </>,\n 'BuildingIcon'\n);\n\nexport const GridIcon = createIcon(\n <>\n <rect width=\"7\" height=\"7\" x=\"3\" y=\"3\" rx=\"1\" />\n <rect width=\"7\" height=\"7\" x=\"14\" y=\"3\" rx=\"1\" />\n <rect width=\"7\" height=\"7\" x=\"14\" y=\"14\" rx=\"1\" />\n <rect width=\"7\" height=\"7\" x=\"3\" y=\"14\" rx=\"1\" />\n </>,\n 'GridIcon'\n);\n\nexport const EditIcon = createIcon(\n <>\n <path d=\"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z\" />\n <path d=\"m15 5 4 4\" />\n </>,\n 'EditIcon'\n);\n\nexport const HomeIcon = createIcon(\n <>\n <path d=\"m3 11 9-8 9 8\" />\n <path d=\"M5 10v10h14V10\" />\n <path d=\"M9 20v-6h6v6\" />\n </>,\n 'HomeIcon'\n);\n\nexport const CubeIcon = createIcon(\n <>\n <path d=\"m21 16-9 5-9-5V8l9-5 9 5z\" />\n <path d=\"m3.3 7 8.7 5 8.7-5\" />\n <path d=\"M12 22V12\" />\n </>,\n 'CubeIcon'\n);\n\nexport const LockIcon = createIcon(\n <>\n <rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\" />\n <path d=\"M7 11V7a5 5 0 0 1 10 0v4\" />\n </>,\n 'LockIcon'\n);\n\nexport const TrashIcon = createIcon(\n <>\n <path d=\"M3 6h18\" />\n <path d=\"M8 6V4h8v2\" />\n <path d=\"m19 6-1 15H6L5 6\" />\n <path d=\"M10 11v5\" />\n <path d=\"M14 11v5\" />\n </>,\n 'TrashIcon'\n);\n\n// Export all icons as a map for dynamic access\nexport const Icons = {\n Plane: PlaneIcon,\n Car: CarIcon,\n Hotel: HotelIcon,\n Limo: LimoIcon,\n Rail: RailIcon,\n Bus: BusIcon,\n Search: SearchIcon,\n ChevronDown: ChevronDownIcon,\n ChevronUp: ChevronUpIcon,\n ChevronRight: ChevronRightIcon,\n ChevronLeft: ChevronLeftIcon,\n ArrowUpRight: ArrowUpRightIcon,\n ArrowDownLeft: ArrowDownLeftIcon,\n Eye: EyeIcon,\n Download: DownloadIcon,\n Filter: FilterIcon,\n Calendar: CalendarIcon,\n User: UserIcon,\n Users: UsersIcon,\n Mail: MailIcon,\n Phone: PhoneIcon,\n Printer: PrinterIcon,\n Refresh: RefreshIcon,\n Warning: WarningIcon,\n Check: CheckIcon,\n X: XIcon,\n Close: CloseIcon,\n Plus: PlusIcon,\n Minus: MinusIcon,\n Menu: MenuIcon,\n Lightbulb: LightbulbIcon,\n Megaphone: MegaphoneIcon,\n Dashboard: DashboardIcon,\n Report: ReportIcon,\n Settings: SettingsIcon,\n Logo: LogoIcon,\n TrendUp: TrendUpIcon,\n TrendDown: TrendDownIcon,\n Info: InfoIcon,\n Document: DocumentIcon,\n Building: BuildingIcon,\n Grid: GridIcon,\n Edit: EditIcon,\n Home: HomeIcon,\n Cube: CubeIcon,\n Lock: LockIcon,\n Trash: TrashIcon,\n} as const;\n\nexport type IconName = keyof typeof Icons;\n","import React from 'react';\nimport { CheckIcon, WarningIcon, CloseIcon, LightbulbIcon } from '../Icons';\nimport styles from './Alert.module.css';\n\nexport type AlertVariant = 'primary' | 'success' | 'warning' | 'error';\n\nexport interface AlertProps {\n /** Visual style variant */\n variant?: AlertVariant;\n /** Optional title for the alert */\n title?: string;\n /** Content of the alert */\n children: React.ReactNode;\n /** Whether the alert can be dismissed */\n dismissible?: boolean;\n /** Callback when dismiss button is clicked */\n onDismiss?: () => void;\n /** Additional CSS class */\n className?: string;\n}\n\nconst variantIcons = {\n primary: LightbulbIcon,\n success: CheckIcon,\n warning: WarningIcon,\n error: WarningIcon,\n};\n\nexport const Alert: React.FC<AlertProps> = ({\n variant = 'primary',\n title,\n children,\n dismissible = false,\n onDismiss,\n className = '',\n}) => {\n const IconComponent = variantIcons[variant];\n\n return (\n <div className={`${styles.alert} ${styles[variant]} ${className}`} role=\"alert\">\n <div className={styles.content}>\n <IconComponent className={styles.icon} size={20} />\n <div className={styles.body}>\n {title && <h4 className={styles.title}>{title}</h4>}\n <div className={styles.message}>{children}</div>\n </div>\n {dismissible && onDismiss && (\n <button\n type=\"button\"\n onClick={onDismiss}\n className={styles.dismissButton}\n aria-label=\"Dismiss alert\"\n >\n <CloseIcon size={16} />\n </button>\n )}\n </div>\n </div>\n );\n};\n\nexport default Alert;\n","import React, { HTMLAttributes } from 'react';\nimport styles from './Avatar.module.css';\n\nexport type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport interface AvatarProps extends HTMLAttributes<HTMLDivElement> {\n /** Image source URL */\n src?: string;\n /** Alt text for image */\n alt?: string;\n /** Initials to display when no image */\n initials?: string;\n /** Name (used to generate initials if not provided) */\n name?: string;\n /** Size of the avatar */\n size?: AvatarSize;\n}\n\nconst getInitials = (name: string): string => {\n const parts = name.trim().split(/\\s+/);\n if (parts.length >= 2) {\n return `${parts[0][0]}${parts[parts.length - 1][0]}`.toUpperCase();\n }\n return name.slice(0, 2).toUpperCase();\n};\n\n/**\n * Avatar component for user profile images or initials.\n */\nexport const Avatar: React.FC<AvatarProps> = ({\n src,\n alt,\n initials,\n name,\n size = 'md',\n className = '',\n ...props\n}) => {\n const displayInitials = initials || (name ? getInitials(name) : '?');\n \n const classNames = [\n styles.avatar,\n styles[size],\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={classNames} {...props}>\n {src ? (\n <img src={src} alt={alt || name || 'Avatar'} className={styles.image} />\n ) : (\n <span className={styles.initials}>{displayInitials}</span>\n )}\n </div>\n );\n};\n\nAvatar.displayName = 'Avatar';\n\nexport interface AvatarGroupProps extends HTMLAttributes<HTMLDivElement> {\n /** Maximum number of avatars to show before +N */\n max?: number;\n}\n\nexport const AvatarGroup: React.FC<AvatarGroupProps> = ({\n max = 4,\n className = '',\n children,\n ...props\n}) => {\n const childArray = React.Children.toArray(children);\n const visibleChildren = childArray.slice(0, max);\n const remainingCount = childArray.length - max;\n\n const classNames = [styles.group, className].filter(Boolean).join(' ');\n\n return (\n <div className={classNames} {...props}>\n {visibleChildren}\n {remainingCount > 0 && (\n <div className={`${styles.avatar} ${styles.md} ${styles.overflow}`}>\n <span className={styles.initials}>+{remainingCount}</span>\n </div>\n )}\n </div>\n );\n};\n\nAvatarGroup.displayName = 'AvatarGroup';\n\nexport default Avatar;\n","import React, { HTMLAttributes } from 'react';\nimport styles from './Badge.module.css';\n\nexport type BadgeVariant = 'default' | 'success' | 'warning' | 'error' | 'info';\nexport type BadgeSize = 'sm' | 'md';\n\nexport interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {\n /** Visual style variant */\n variant?: BadgeVariant;\n /** Size of the badge */\n size?: BadgeSize;\n /** Shows a status dot before the text */\n dot?: boolean;\n}\n\n/**\n * Badge component for status indicators, labels, and tags.\n */\nexport const Badge: React.FC<BadgeProps> = ({\n variant = 'default',\n size = 'md',\n dot = false,\n className = '',\n children,\n ...props\n}) => {\n const classNames = [\n styles.badge,\n styles[variant],\n styles[size],\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <span className={classNames} {...props}>\n {dot && <span className={styles.dot} />}\n {children}\n </span>\n );\n};\n\nBadge.displayName = 'Badge';\n\nexport default Badge;\n","import React, { forwardRef, ButtonHTMLAttributes } from 'react';\nimport styles from './Button.module.css';\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost' | 'danger';\nexport type ButtonSize = 'sm' | 'md' | 'lg';\n\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Visual style variant */\n variant?: ButtonVariant;\n /** Size of the button */\n size?: ButtonSize;\n /** Makes button take full width */\n fullWidth?: boolean;\n /** Shows loading spinner */\n loading?: boolean;\n /** Icon element to show before text */\n leftIcon?: React.ReactNode;\n /** Icon element to show after text */\n rightIcon?: React.ReactNode;\n /** Makes button square (equal width/height) */\n square?: boolean;\n}\n\n/**\n * Primary button component for user interactions.\n * Supports multiple variants, sizes, and states.\n */\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n variant = 'primary',\n size = 'md',\n fullWidth = false,\n loading = false,\n leftIcon,\n rightIcon,\n square = false,\n className = '',\n disabled,\n children,\n ...props\n },\n ref\n ) => {\n const classNames = [\n styles.button,\n styles[variant],\n styles[size],\n fullWidth ? styles.fullWidth : '',\n square ? styles.square : '',\n loading ? styles.loading : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button\n ref={ref}\n className={classNames}\n disabled={disabled || loading}\n {...props}\n >\n {loading && (\n <span className={styles.spinner}>\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n >\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n strokeOpacity=\"0.25\"\n />\n <path\n d=\"M12 2a10 10 0 0 1 10 10\"\n strokeLinecap=\"round\"\n />\n </svg>\n </span>\n )}\n {!loading && leftIcon && <span className={styles.icon}>{leftIcon}</span>}\n {children && <span className={styles.content}>{children}</span>}\n {!loading && rightIcon && <span className={styles.icon}>{rightIcon}</span>}\n </button>\n );\n }\n);\n\nButton.displayName = 'Button';\n\nexport default Button;\n","import { forwardRef, InputHTMLAttributes, useId } from 'react';\nimport styles from './Checkbox.module.css';\n\nexport interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {\n /** Label text for the checkbox */\n label?: string;\n /** Size variant */\n size?: 'sm' | 'md' | 'lg';\n /** Helper text shown below */\n helperText?: string;\n /** Error message */\n error?: string;\n /** Indeterminate state */\n indeterminate?: boolean;\n /** Additional class for wrapper */\n className?: string;\n}\n\nconst CheckIcon = () => (\n <svg width=\"10\" height=\"8\" viewBox=\"0 0 10 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M1 4L3.5 6.5L9 1\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n </svg>\n);\n\nconst IndeterminateIcon = () => (\n <svg width=\"10\" height=\"2\" viewBox=\"0 0 10 2\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M1 1H9\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\"/>\n </svg>\n);\n\n/**\n * Checkbox component for boolean selections.\n */\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n label,\n size = 'md',\n helperText,\n error,\n indeterminate = false,\n className = '',\n disabled,\n id,\n checked,\n ...props\n },\n ref\n ) => {\n const generatedId = useId();\n const checkboxId = id || generatedId;\n const helperId = `${checkboxId}-helper`;\n const errorId = `${checkboxId}-error`;\n\n const wrapperClasses = [\n styles.wrapper,\n styles[size],\n disabled ? styles.disabled : '',\n error ? styles.hasError : '',\n className,\n ].filter(Boolean).join(' ');\n\n // Handle indeterminate state via ref\n const inputRef = (node: HTMLInputElement | null) => {\n if (node) {\n node.indeterminate = indeterminate;\n }\n // Forward ref\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n };\n\n return (\n <div className={wrapperClasses}>\n <label className={styles.label}>\n <div className={styles.checkboxWrapper}>\n <input\n ref={inputRef}\n type=\"checkbox\"\n id={checkboxId}\n className={styles.input}\n disabled={disabled}\n checked={checked}\n aria-invalid={!!error}\n aria-describedby={\n [error ? errorId : null, helperText ? helperId : null]\n .filter(Boolean)\n .join(' ') || undefined\n }\n {...props}\n />\n <span className={styles.checkbox}>\n {indeterminate ? <IndeterminateIcon /> : <CheckIcon />}\n </span>\n </div>\n {label && <span className={styles.labelText}>{label}</span>}\n </label>\n {error && (\n <span id={errorId} className={styles.errorText}>{error}</span>\n )}\n {helperText && !error && (\n <span id={helperId} className={styles.helperText}>{helperText}</span>\n )}\n </div>\n );\n }\n);\n\nCheckbox.displayName = 'Checkbox';\n\nexport default Checkbox;\n","import { forwardRef, InputHTMLAttributes, useId } from 'react';\nimport styles from './Datepicker.module.css';\n\nexport type DatepickerSize = 'sm' | 'md' | 'lg';\n\nexport interface DatepickerProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {\n /** Size variant */\n size?: DatepickerSize;\n /** Label text */\n label?: string;\n /** Helper text shown below */\n helperText?: string;\n /** Error message (shows error state) */\n error?: string;\n /** Makes input take full width */\n fullWidth?: boolean;\n /** Additional class for wrapper */\n className?: string;\n}\n\nconst CalendarIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"/>\n <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"/>\n <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"/>\n <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"/>\n </svg>\n);\n\n/**\n * Datepicker component for selecting dates.\n */\nexport const Datepicker = forwardRef<HTMLInputElement, DatepickerProps>(\n (\n {\n size = 'md',\n label,\n helperText,\n error,\n fullWidth = false,\n className = '',\n id,\n disabled,\n ...props\n },\n ref\n ) => {\n const generatedId = useId();\n const inputId = id || generatedId;\n const helperId = `${inputId}-helper`;\n const errorId = `${inputId}-error`;\n\n const wrapperClasses = [\n styles.wrapper,\n fullWidth ? styles.fullWidth : '',\n className,\n ].filter(Boolean).join(' ');\n\n const inputWrapperClasses = [\n styles.inputWrapper,\n styles[size],\n error ? styles.error : '',\n disabled ? styles.disabled : '',\n ].filter(Boolean).join(' ');\n\n return (\n <div className={wrapperClasses}>\n {label && (\n <label htmlFor={inputId} className={styles.label}>\n {label}\n </label>\n )}\n <div className={inputWrapperClasses}>\n <span className={styles.icon}>\n <CalendarIcon />\n </span>\n <input\n ref={ref}\n type=\"date\"\n id={inputId}\n className={styles.input}\n disabled={disabled}\n aria-invalid={!!error}\n aria-describedby={\n [error ? errorId : null, helperText ? helperId : null]\n .filter(Boolean)\n .join(' ') || undefined\n }\n {...props}\n />\n </div>\n {error && (\n <span id={errorId} className={styles.errorText}>{error}</span>\n )}\n {helperText && !error && (\n <span id={helperId} className={styles.helperText}>{helperText}</span>\n )}\n </div>\n );\n }\n);\n\nDatepicker.displayName = 'Datepicker';\n\nexport default Datepicker;\n","import React, { forwardRef, InputHTMLAttributes, TextareaHTMLAttributes } from 'react';\nimport styles from './Input.module.css';\n\nexport type InputSize = 'sm' | 'md' | 'lg';\n\nexport interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {\n /** Size of the input */\n size?: InputSize;\n /** Label text */\n label?: string;\n /** Helper text shown below input */\n helperText?: string;\n /** Error message (shows error state when present) */\n error?: string;\n /** Icon element to show at the start */\n leftIcon?: React.ReactNode;\n /** Icon element to show at the end */\n rightIcon?: React.ReactNode;\n /** Makes input take full width */\n fullWidth?: boolean;\n}\n\n/**\n * Input component for text entry.\n */\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n size = 'md',\n label,\n helperText,\n error,\n leftIcon,\n rightIcon,\n fullWidth = false,\n className = '',\n id,\n disabled,\n ...props\n },\n ref\n ) => {\n const inputId = id || `input-${Math.random().toString(36).substr(2, 9)}`;\n\n const wrapperClasses = [\n styles.wrapper,\n fullWidth ? styles.fullWidth : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const inputWrapperClasses = [\n styles.inputWrapper,\n styles[size],\n error ? styles.error : '',\n disabled ? styles.disabled : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={wrapperClasses}>\n {label && (\n <label htmlFor={inputId} className={styles.label}>\n {label}\n </label>\n )}\n <div className={inputWrapperClasses}>\n {leftIcon && <span className={styles.icon}>{leftIcon}</span>}\n <input\n ref={ref}\n id={inputId}\n className={styles.input}\n disabled={disabled}\n aria-invalid={!!error}\n aria-describedby={error ? `${inputId}-error` : helperText ? `${inputId}-helper` : undefined}\n {...props}\n />\n {rightIcon && <span className={styles.icon}>{rightIcon}</span>}\n </div>\n {error && (\n <span id={`${inputId}-error`} className={styles.errorText}>\n {error}\n </span>\n )}\n {helperText && !error && (\n <span id={`${inputId}-helper`} className={styles.helperText}>\n {helperText}\n </span>\n )}\n </div>\n );\n }\n);\n\nInput.displayName = 'Input';\n\nexport interface TextareaProps extends Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'size'> {\n /** Size of the textarea */\n size?: InputSize;\n /** Label text */\n label?: string;\n /** Helper text shown below textarea */\n helperText?: string;\n /** Error message (shows error state when present) */\n error?: string;\n /** Makes textarea take full width */\n fullWidth?: boolean;\n}\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(\n (\n {\n size = 'md',\n label,\n helperText,\n error,\n fullWidth = false,\n className = '',\n id,\n disabled,\n rows = 4,\n ...props\n },\n ref\n ) => {\n const textareaId = id || `textarea-${Math.random().toString(36).substr(2, 9)}`;\n\n const wrapperClasses = [\n styles.wrapper,\n fullWidth ? styles.fullWidth : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const textareaClasses = [\n styles.textarea,\n styles[size],\n error ? styles.error : '',\n disabled ? styles.disabled : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={wrapperClasses}>\n {label && (\n <label htmlFor={textareaId} className={styles.label}>\n {label}\n </label>\n )}\n <textarea\n ref={ref}\n id={textareaId}\n className={textareaClasses}\n disabled={disabled}\n rows={rows}\n aria-invalid={!!error}\n aria-describedby={error ? `${textareaId}-error` : helperText ? `${textareaId}-helper` : undefined}\n {...props}\n />\n {error && (\n <span id={`${textareaId}-error`} className={styles.errorText}>\n {error}\n </span>\n )}\n {helperText && !error && (\n <span id={`${textareaId}-helper`} className={styles.helperText}>\n {helperText}\n </span>\n )}\n </div>\n );\n }\n);\n\nTextarea.displayName = 'Textarea';\n\nexport default Input;\n","import React from 'react';\nimport styles from './Metric.module.css';\n\nexport interface MetricProps {\n /** The metric value to display */\n value?: string | number;\n /** Label describing the metric */\n label: string;\n /** Prefix to show before value (e.g., \"$\") */\n prefix?: string;\n /** Suffix to show after value */\n suffix?: string;\n /** Use dark theme */\n dark?: boolean;\n /** Click handler */\n onClick?: () => void;\n /** Additional CSS class */\n className?: string;\n /** Show warning indicator */\n warning?: boolean;\n}\n\nconst WarningIcon = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M12 2L1 21h22L12 2zm0 3.5L19.5 19H4.5L12 5.5zM11 10v4h2v-4h-2zm0 6v2h2v-2h-2z\"/>\n </svg>\n);\n\n/**\n * Metric component for displaying key performance indicators.\n * Used in dashboards for trip counts, costs, and status metrics.\n */\nexport const Metric: React.FC<MetricProps> = ({\n value,\n label,\n prefix,\n suffix,\n dark = false,\n onClick,\n className = '',\n warning = false,\n}) => {\n const displayValue = value !== undefined && !isNaN(parseFloat(String(value))) ? value : 0;\n\n return (\n <div\n className={`\n ${styles.metric}\n ${dark ? styles.dark : ''}\n ${onClick ? styles.clickable : ''}\n ${className}\n `}\n onClick={onClick}\n >\n {value !== undefined && (\n <div className={styles.content}>\n <div className={styles.valueRow}>\n <div className={styles.valueContainer}>\n {prefix && <span className={styles.prefix}>{prefix}</span>}\n <span className={styles.value}>{displayValue}</span>\n {suffix && <span className={styles.suffix}>{suffix}</span>}\n </div>\n {warning && (\n <div className={styles.warningIcon}>\n <WarningIcon />\n </div>\n )}\n </div>\n <div className={styles.label}>{label}</div>\n </div>\n )}\n </div>\n );\n};\n\nMetric.displayName = 'Metric';\n\nexport default Metric;\n","import React, { forwardRef, SelectHTMLAttributes, useId } from 'react';\nimport styles from './Select.module.css';\n\nexport interface SelectOption {\n label: string;\n value: string | number;\n disabled?: boolean;\n}\n\nexport interface SelectOptionGroup {\n label: string;\n options: SelectOption[];\n}\n\nexport type SelectSize = 'sm' | 'md' | 'lg';\n\nexport interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, 'size'> {\n /** Options to display */\n options?: SelectOption[];\n /** Grouped options */\n optionGroups?: SelectOptionGroup[];\n /** Size variant */\n size?: SelectSize;\n /** Label text */\n label?: string;\n /** Placeholder text (shown as first disabled option) */\n placeholder?: string;\n /** Helper text shown below */\n helperText?: string;\n /** Error message (shows error state) */\n error?: string;\n /** Icon element at the start */\n leftIcon?: React.ReactNode;\n /** Makes select take full width */\n fullWidth?: boolean;\n /** Additional class for wrapper */\n className?: string;\n}\n\nconst ChevronDownIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <polyline points=\"6 9 12 15 18 9\"/>\n </svg>\n);\n\n/**\n * Select component for choosing from a list of options.\n */\nexport const Select = forwardRef<HTMLSelectElement, SelectProps>(\n (\n {\n options,\n optionGroups,\n size = 'md',\n label,\n placeholder,\n helperText,\n error,\n leftIcon,\n fullWidth = false,\n className = '',\n id,\n disabled,\n ...props\n },\n ref\n ) => {\n const generatedId = useId();\n const selectId = id || generatedId;\n const helperId = `${selectId}-helper`;\n const errorId = `${selectId}-error`;\n\n const wrapperClasses = [\n styles.wrapper,\n fullWidth ? styles.fullWidth : '',\n className,\n ].filter(Boolean).join(' ');\n\n const selectWrapperClasses = [\n styles.selectWrapper,\n styles[size],\n error ? styles.error : '',\n disabled ? styles.disabled : '',\n leftIcon ? styles.hasLeftIcon : '',\n ].filter(Boolean).join(' ');\n\n const renderOptions = () => {\n // Render grouped options\n if (optionGroups && optionGroups.length > 0) {\n return optionGroups.map((group, i) => (\n <optgroup key={i} label={group.label}>\n {group.options.map((option) => (\n <option\n key={option.value}\n value={option.value}\n disabled={option.disabled}\n >\n {option.label}\n </option>\n ))}\n </optgroup>\n ));\n }\n\n // Render flat options\n if (options && options.length > 0) {\n return options.map((option) => (\n <option\n key={option.value}\n value={option.value}\n disabled={option.disabled}\n >\n {option.label}\n </option>\n ));\n }\n\n return null;\n };\n\n return (\n <div className={wrapperClasses}>\n {label && (\n <label htmlFor={selectId} className={styles.label}>\n {label}\n </label>\n )}\n <div className={selectWrapperClasses}>\n {leftIcon && <span className={styles.leftIcon}>{leftIcon}</span>}\n <select\n ref={ref}\n id={selectId}\n className={styles.select}\n disabled={disabled}\n aria-invalid={!!error}\n aria-describedby={\n [error ? errorId : null, helperText ? helperId : null]\n .filter(Boolean)\n .join(' ') || undefined\n }\n {...props}\n >\n {placeholder && (\n <option value=\"\" disabled>\n {placeholder}\n </option>\n )}\n {renderOptions()}\n </select>\n <span className={styles.chevron}>\n <ChevronDownIcon />\n </span>\n </div>\n {error && (\n <span id={errorId} className={styles.errorText}>{error}</span>\n )}\n {helperText && !error && (\n <span id={helperId} className={styles.helperText}>{helperText}</span>\n )}\n </div>\n );\n }\n);\n\nSelect.displayName = 'Select';\n\nexport default Select;\n","import React from 'react';\nimport styles from './Spinner.module.css';\n\nexport type SpinnerSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport interface SpinnerProps {\n /** Size of the spinner */\n size?: SpinnerSize;\n /** Additional CSS class */\n className?: string;\n /** Color of the spinner (defaults to currentColor) */\n color?: string;\n /** Accessible label */\n label?: string;\n}\n\nexport const Spinner: React.FC<SpinnerProps> = ({\n size = 'md',\n className = '',\n color,\n label = 'Loading...',\n}) => {\n return (\n <span\n className={`${styles.spinner} ${styles[size]} ${className}`}\n role=\"status\"\n aria-label={label}\n style={color ? { color } : undefined}\n >\n <svg\n className={styles.svg}\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n className={styles.track}\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n className={styles.indicator}\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n <span className={styles.srOnly}>{label}</span>\n </span>\n );\n};\n\nexport default Spinner;\n","import React from 'react';\nimport styles from './StatusBadge.module.css';\n\nexport type StatusBadgeVariant = \n | 'ticketed' \n | 'itinerary' \n | 'not-ticketed' \n | 'submitted' \n | 'pending'\n | 'cancelled';\n\nexport interface StatusBadgeProps {\n /** The status variant to display */\n status: StatusBadgeVariant;\n /** Optional custom label (defaults to formatted status) */\n label?: string;\n /** Additional CSS class */\n className?: string;\n}\n\nconst statusLabels: Record<StatusBadgeVariant, string> = {\n ticketed: 'Ticketed',\n itinerary: 'Itinerary',\n 'not-ticketed': 'Not Ticketed',\n submitted: 'Submitted',\n pending: 'Pending',\n cancelled: 'Cancelled',\n};\n\nexport const StatusBadge: React.FC<StatusBadgeProps> = ({\n status,\n label,\n className,\n}) => {\n const displayLabel = label || statusLabels[status] || status;\n \n return (\n <span \n className={`${styles.badge} ${styles[status]} ${className || ''}`}\n data-status={status}\n >\n {displayLabel}\n </span>\n );\n};\n\nexport default StatusBadge;\n","import React from 'react';\nimport styles from './Tag.module.css';\n\nexport type TagVariant = 'default' | 'primary' | 'success' | 'warning' | 'error' | 'info';\nexport type TagSize = 'sm' | 'md' | 'lg';\n\nexport interface TagProps {\n /** Tag content */\n children: React.ReactNode;\n /** Visual variant */\n variant?: TagVariant;\n /** Size of the tag */\n size?: TagSize;\n /** Whether the tag is removable */\n removable?: boolean;\n /** Callback when remove button is clicked */\n onRemove?: () => void;\n /** Click handler */\n onClick?: () => void;\n /** Additional CSS class */\n className?: string;\n /** Inline styles */\n style?: React.CSSProperties;\n}\n\nexport const Tag: React.FC<TagProps> = ({\n children,\n variant = 'default',\n size = 'md',\n removable = false,\n onRemove,\n onClick,\n className = '',\n style,\n}) => {\n const isClickable = Boolean(onClick);\n \n return (\n <span\n className={`${styles.tag} ${styles[variant]} ${styles[size]} ${isClickable ? styles.clickable : ''} ${className}`}\n onClick={onClick}\n style={style}\n role={isClickable ? 'button' : undefined}\n tabIndex={isClickable ? 0 : undefined}\n >\n <span className={styles.content}>{children}</span>\n {removable && (\n <button\n type=\"button\"\n className={styles.removeButton}\n onClick={(e) => {\n e.stopPropagation();\n onRemove?.();\n }}\n aria-label=\"Remove\"\n >\n <svg\n className={styles.removeIcon}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n )}\n </span>\n );\n};\n\nexport default Tag;\n","import { forwardRef, InputHTMLAttributes, useId } from 'react';\nimport styles from './Timepicker.module.css';\n\nexport type TimepickerSize = 'sm' | 'md' | 'lg';\n\nexport interface TimepickerProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {\n /** Size variant */\n size?: TimepickerSize;\n /** Label text */\n label?: string;\n /** Helper text shown below */\n helperText?: string;\n /** Error message (shows error state) */\n error?: string;\n /** Makes input take full width */\n fullWidth?: boolean;\n /** Additional class for wrapper */\n className?: string;\n}\n\nconst ClockIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"/>\n <polyline points=\"12 6 12 12 16 14\"/>\n </svg>\n);\n\n/**\n * Timepicker component for selecting times.\n */\nexport const Timepicker = forwardRef<HTMLInputElement, TimepickerProps>(\n (\n {\n size = 'md',\n label,\n helperText,\n error,\n fullWidth = false,\n className = '',\n id,\n disabled,\n ...props\n },\n ref\n ) => {\n const generatedId = useId();\n const inputId = id || generatedId;\n const helperId = `${inputId}-helper`;\n const errorId = `${inputId}-error`;\n\n const wrapperClasses = [\n styles.wrapper,\n fullWidth ? styles.fullWidth : '',\n className,\n ].filter(Boolean).join(' ');\n\n const inputWrapperClasses = [\n styles.inputWrapper,\n styles[size],\n error ? styles.error : '',\n disabled ? styles.disabled : '',\n ].filter(Boolean).join(' ');\n\n return (\n <div className={wrapperClasses}>\n {label && (\n <label htmlFor={inputId} className={styles.label}>\n {label}\n </label>\n )}\n <div className={inputWrapperClasses}>\n <span className={styles.icon}>\n <ClockIcon />\n </span>\n <input\n ref={ref}\n type=\"time\"\n id={inputId}\n className={styles.input}\n disabled={disabled}\n aria-invalid={!!error}\n aria-describedby={\n [error ? errorId : null, helperText ? helperId : null]\n .filter(Boolean)\n .join(' ') || undefined\n }\n {...props}\n />\n </div>\n {error && (\n <span id={errorId} className={styles.errorText}>{error}</span>\n )}\n {helperText && !error && (\n <span id={helperId} className={styles.helperText}>{helperText}</span>\n )}\n </div>\n );\n }\n);\n\nTimepicker.displayName = 'Timepicker';\n\nexport default Timepicker;\n","import React, { ReactNode } from 'react';\nimport styles from './Title.module.css';\n\nexport type TitleWeight = 'light' | 'normal' | 'medium' | 'semibold' | 'bold';\n\nexport interface TitleProps {\n /** Title text content */\n children: ReactNode;\n /** Font weight */\n weight?: TitleWeight;\n /** Additional CSS class */\n className?: string;\n}\n\n/**\n * Title component for page headings.\n * Large, prominent text for page titles.\n */\nexport const Title: React.FC<TitleProps> = ({\n children,\n weight = 'light',\n className = '',\n}) => {\n return (\n <h1 className={`${styles.title} ${styles[weight]} ${className}`}>\n {children}\n </h1>\n );\n};\n\nTitle.displayName = 'Title';\n\nexport default Title;\n","import React from 'react';\nimport styles from './Toggle.module.css';\n\nexport type ToggleSize = 'sm' | 'md' | 'lg';\n\nexport interface ToggleProps {\n /** Whether the toggle is checked */\n checked: boolean;\n /** Callback when toggle state changes */\n onChange?: (checked: boolean) => void;\n /** Whether the toggle is disabled */\n disabled?: boolean;\n /** Size of the toggle */\n size?: ToggleSize;\n /** Label for the toggle */\n label?: string;\n /** Position of the label */\n labelPosition?: 'left' | 'right';\n /** Additional CSS class */\n className?: string;\n /** Accessible name for the toggle */\n 'aria-label'?: string;\n}\n\nexport const Toggle: React.FC<ToggleProps> = ({\n checked,\n onChange,\n disabled = false,\n size = 'md',\n label,\n labelPosition = 'right',\n className = '',\n 'aria-label': ariaLabel,\n}) => {\n const handleClick = () => {\n if (!disabled) {\n onChange?.(!checked);\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if ((e.key === 'Enter' || e.key === ' ') && !disabled) {\n e.preventDefault();\n onChange?.(!checked);\n }\n };\n\n const toggleElement = (\n <div\n className={`${styles.toggle} ${styles[size]} ${checked ? styles.checked : ''} ${disabled ? styles.disabled : ''} ${className}`}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n role=\"switch\"\n aria-checked={checked}\n aria-disabled={disabled}\n aria-label={ariaLabel || label}\n tabIndex={disabled ? -1 : 0}\n >\n <span className={styles.thumb} />\n </div>\n );\n\n if (label) {\n return (\n <label className={`${styles.wrapper} ${disabled ? styles.wrapperDisabled : ''}`}>\n {labelPosition === 'left' && <span className={styles.label}>{label}</span>}\n {toggleElement}\n {labelPosition === 'right' && <span className={styles.label}>{label}</span>}\n </label>\n );\n }\n\n return toggleElement;\n};\n\nexport default Toggle;\n","import React, { useState, useRef, useEffect } from 'react';\nimport styles from './Tooltip.module.css';\n\nexport type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';\nexport type TooltipVariant = 'dark' | 'light';\n\nexport interface TooltipProps {\n /** Tooltip content */\n content: React.ReactNode;\n /** Element that triggers the tooltip */\n children: React.ReactNode;\n /** Position of the tooltip relative to the trigger */\n position?: TooltipPosition;\n /** Visual variant */\n variant?: TooltipVariant;\n /** Delay before showing tooltip (ms) */\n delay?: number;\n /** Whether tooltip is disabled */\n disabled?: boolean;\n /** Additional CSS class */\n className?: string;\n}\n\nexport const Tooltip: React.FC<TooltipProps> = ({\n content,\n children,\n position = 'top',\n variant = 'dark',\n delay = 200,\n disabled = false,\n className = '',\n}) => {\n const [isVisible, setIsVisible] = useState(false);\n const [actualPosition, setActualPosition] = useState(position);\n const timeoutRef = useRef<NodeJS.Timeout | null>(null);\n const tooltipRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n\n const checkBounds = () => {\n if (!tooltipRef.current || !triggerRef.current) return;\n\n const tooltip = tooltipRef.current.getBoundingClientRect();\n const viewport = {\n width: window.innerWidth,\n height: window.innerHeight,\n };\n\n let bestPosition = position;\n\n if (position === 'right' && tooltip.right > viewport.width) {\n bestPosition = 'left';\n } else if (position === 'left' && tooltip.left < 0) {\n bestPosition = 'right';\n } else if (position === 'top' && tooltip.top < 0) {\n bestPosition = 'bottom';\n } else if (position === 'bottom' && tooltip.bottom > viewport.height) {\n bestPosition = 'top';\n }\n\n setActualPosition(bestPosition);\n };\n\n useEffect(() => {\n if (isVisible) {\n checkBounds();\n }\n }, [isVisible, position]);\n\n const handleMouseEnter = () => {\n if (disabled) return;\n timeoutRef.current = setTimeout(() => {\n setIsVisible(true);\n }, delay);\n };\n\n const handleMouseLeave = () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n setIsVisible(false);\n };\n\n const handleFocus = () => {\n if (!disabled) {\n setIsVisible(true);\n }\n };\n\n const handleBlur = () => {\n setIsVisible(false);\n };\n\n useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n };\n }, []);\n\n return (\n <div\n ref={triggerRef}\n className={`${styles.wrapper} ${className}`}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n onFocus={handleFocus}\n onBlur={handleBlur}\n >\n {children}\n {isVisible && content && (\n <div\n ref={tooltipRef}\n className={`${styles.tooltip} ${styles[actualPosition]} ${styles[variant]}`}\n role=\"tooltip\"\n >\n <div className={styles.content}>{content}</div>\n <div className={`${styles.arrow} ${styles[`arrow${actualPosition.charAt(0).toUpperCase()}${actualPosition.slice(1)}`]}`} />\n </div>\n )}\n </div>\n );\n};\n\nexport default Tooltip;\n","import React from 'react';\nimport styles from './TravelServiceIcon.module.css';\nimport { TravelType } from '../TypeIcon/TypeIcon';\n\nexport type VendorCode = 'DL' | 'AA' | 'UA' | 'WN' | 'B6' | 'AS' | 'F9' | 'NK' | 'G4' | 'HA' | string;\n\nexport interface TravelServiceIconProps {\n /** Travel type: A=Air, C=Car, H=Hotel, L=Limo, R=Rail */\n type: TravelType;\n /** Vendor/airline code (e.g., DL, AA, UA) */\n vendor?: string;\n /** Display mode: icon shows vendor logo, code shows text */\n mode?: 'icon' | 'code';\n /** Size in pixels */\n size?: number;\n /** Show multi-segment indicator */\n multi?: boolean;\n /** Additional CSS class */\n className?: string;\n}\n\n// Airline brand colors\nconst vendorColors: Record<string, { bg: string; fg: string }> = {\n DL: { bg: '#003366', fg: '#FFFFFF' }, // Delta\n AA: { bg: '#0078D2', fg: '#FFFFFF' }, // American\n UA: { bg: '#002244', fg: '#FFFFFF' }, // United\n WN: { bg: '#F9B612', fg: '#304CB2' }, // Southwest\n B6: { bg: '#003876', fg: '#FFFFFF' }, // JetBlue\n AS: { bg: '#016191', fg: '#FFFFFF' }, // Alaska\n F9: { bg: '#2D8B45', fg: '#FFFFFF' }, // Frontier\n NK: { bg: '#FFC72C', fg: '#000000' }, // Spirit\n G4: { bg: '#00386C', fg: '#FFFFFF' }, // Allegiant\n HA: { bg: '#660099', fg: '#FFFFFF' }, // Hawaiian\n};\n\n// Type-specific background colors when no vendor\nconst typeColors: Record<TravelType, { bg: string; fg: string }> = {\n A: { bg: 'var(--color-primary-light, #E6ECFB)', fg: 'var(--color-primary, #0A53EF)' },\n C: { bg: 'var(--color-tangerine-light, #FFE2C1)', fg: 'var(--color-warning, #9F5500)' },\n H: { bg: 'var(--color-forest-light, #E2F0EC)', fg: 'var(--color-success, #138660)' },\n L: { bg: '#EDE9FE', fg: '#7C3AED' },\n R: { bg: 'var(--stm-brand-blue-tint, #E5EDF4)', fg: 'var(--stm-brand-blue, #15538C)' },\n B: { bg: '#FEF3C7', fg: '#D97706' },\n U: { bg: 'var(--color-secondary, #E4E5E7)', fg: 'var(--fg-3, #5C5C5C)' },\n};\n\n// Icon paths for each type\nconst typeIcons: Record<TravelType, React.ReactNode> = {\n A: (\n <path d=\"M21 16v-2l-8-5V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5z\" />\n ),\n C: (\n <path d=\"M18.92 6.01C18.72 5.42 18.16 5 17.5 5h-11c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 16c-.83 0-1.5-.67-1.5-1.5S5.67 13 6.5 13s1.5.67 1.5 1.5S7.33 16 6.5 16zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 11l1.5-4.5h11L19 11H5z\" />\n ),\n H: (\n <path d=\"M7 13c1.66 0 3-1.34 3-3S8.66 7 7 7s-3 1.34-3 3 1.34 3 3 3zm12-6h-8v7H3V5H1v15h2v-3h18v3h2v-9c0-2.21-1.79-4-4-4z\" />\n ),\n L: (\n <path d=\"M18.92 6.01C18.72 5.42 18.16 5 17.5 5h-11c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 16c-.83 0-1.5-.67-1.5-1.5S5.67 13 6.5 13s1.5.67 1.5 1.5S7.33 16 6.5 16zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 11l1.5-4.5h11L19 11H5z\" />\n ),\n R: (\n <path d=\"M12 2c-4 0-8 .5-8 4v9.5C4 17.43 5.57 19 7.5 19L6 20.5v.5h12v-.5L16.5 19c1.93 0 3.5-1.57 3.5-3.5V6c0-3.5-4-4-8-4zM7.5 17c-.83 0-1.5-.67-1.5-1.5S6.67 14 7.5 14s1.5.67 1.5 1.5S8.33 17 7.5 17zm3.5-6H6V6h5v5zm2 0V6h5v5h-5zm3.5 6c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\" />\n ),\n B: (\n <path d=\"M4 16c0 .88.39 1.67 1 2.22V20c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h8v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1.78c.61-.55 1-1.34 1-2.22V6c0-3.5-3.58-4-8-4s-8 .5-8 4v10zm3.5 1c-.83 0-1.5-.67-1.5-1.5S6.67 14 7.5 14s1.5.67 1.5 1.5S8.33 17 7.5 17zm9 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm1.5-6H6V6h12v5z\" />\n ),\n U: (\n <path d=\"M11 18h2v-2h-2v2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4z\" />\n ),\n};\n\nexport const TravelServiceIcon: React.FC<TravelServiceIconProps> = ({\n type,\n vendor,\n mode = 'icon',\n size = 28,\n multi = false,\n className,\n}) => {\n const vendorKey = vendor?.toUpperCase() || '';\n const colors = mode === 'icon' && vendorColors[vendorKey] \n ? vendorColors[vendorKey] \n : typeColors[type] || typeColors.U;\n\n return (\n <span\n className={`${styles.service} ${multi ? styles.multi : ''} ${className || ''}`}\n style={{\n width: size,\n height: size,\n backgroundColor: colors.bg,\n color: colors.fg,\n fontSize: size * 0.4,\n }}\n title={vendor ? `${vendor} (${type})` : type}\n >\n {mode === 'code' && vendor ? (\n <span className={styles.code}>{vendor}</span>\n ) : (\n <svg\n viewBox=\"0 0 24 24\"\n width={size * 0.55}\n height={size * 0.55}\n fill=\"currentColor\"\n >\n {typeIcons[type] || typeIcons.U}\n </svg>\n )}\n {multi && <span className={styles.multiIndicator}>+</span>}\n </span>\n );\n};\n\nexport default TravelServiceIcon;\n","import React from 'react';\nimport styles from './TypeIcon.module.css';\n\nexport type TravelType = 'A' | 'C' | 'H' | 'L' | 'R' | 'B' | 'U';\n\nexport interface TypeIconProps {\n /** Travel type code: A=Air, C=Car, H=Hotel, L=Limo, R=Rail, B=Bus, U=Unknown */\n type: TravelType;\n /** Size in pixels */\n size?: number;\n /** Show tooltip on hover */\n showTooltip?: boolean;\n /** Additional CSS class */\n className?: string;\n}\n\nconst typeLabels: Record<TravelType, string> = {\n A: 'Air',\n C: 'Car',\n H: 'Hotel',\n L: 'Limo',\n R: 'Rail',\n B: 'Bus',\n U: 'Unknown',\n};\n\nconst typeColors: Record<TravelType, { bg: string; fg: string }> = {\n A: { bg: 'var(--color-primary-light, #E6ECFB)', fg: 'var(--color-primary, #0A53EF)' },\n C: { bg: 'var(--color-tangerine-light, #FFE2C1)', fg: 'var(--color-warning, #9F5500)' },\n H: { bg: 'var(--color-forest-light, #E2F0EC)', fg: 'var(--color-success, #138660)' },\n L: { bg: '#EDE9FE', fg: '#7C3AED' }, // Purple for Limo\n R: { bg: 'var(--stm-brand-blue-tint, #E5EDF4)', fg: 'var(--stm-brand-blue, #15538C)' },\n B: { bg: '#FEF3C7', fg: '#D97706' }, // Amber for Bus\n U: { bg: 'var(--color-secondary, #E4E5E7)', fg: 'var(--fg-3, #5C5C5C)' },\n};\n\n// SVG path data for each icon\nconst typeIcons: Record<TravelType, React.ReactNode> = {\n A: (\n <path d=\"M21 16v-2l-8-5V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5z\" />\n ),\n C: (\n <path d=\"M18.92 6.01C18.72 5.42 18.16 5 17.5 5h-11c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 16c-.83 0-1.5-.67-1.5-1.5S5.67 13 6.5 13s1.5.67 1.5 1.5S7.33 16 6.5 16zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 11l1.5-4.5h11L19 11H5z\" />\n ),\n H: (\n <path d=\"M7 13c1.66 0 3-1.34 3-3S8.66 7 7 7s-3 1.34-3 3 1.34 3 3 3zm12-6h-8v7H3V5H1v15h2v-3h18v3h2v-9c0-2.21-1.79-4-4-4z\" />\n ),\n L: (\n <path d=\"M18.92 6.01C18.72 5.42 18.16 5 17.5 5h-11c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 16c-.83 0-1.5-.67-1.5-1.5S5.67 13 6.5 13s1.5.67 1.5 1.5S7.33 16 6.5 16zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 11l1.5-4.5h11L19 11H5z\" />\n ),\n R: (\n <path d=\"M12 2c-4 0-8 .5-8 4v9.5C4 17.43 5.57 19 7.5 19L6 20.5v.5h12v-.5L16.5 19c1.93 0 3.5-1.57 3.5-3.5V6c0-3.5-4-4-8-4zM7.5 17c-.83 0-1.5-.67-1.5-1.5S6.67 14 7.5 14s1.5.67 1.5 1.5S8.33 17 7.5 17zm3.5-6H6V6h5v5zm2 0V6h5v5h-5zm3.5 6c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\" />\n ),\n B: (\n <path d=\"M4 16c0 .88.39 1.67 1 2.22V20c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h8v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1.78c.61-.55 1-1.34 1-2.22V6c0-3.5-3.58-4-8-4s-8 .5-8 4v10zm3.5 1c-.83 0-1.5-.67-1.5-1.5S6.67 14 7.5 14s1.5.67 1.5 1.5S8.33 17 7.5 17zm9 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm1.5-6H6V6h12v5z\" />\n ),\n U: (\n <path d=\"M11 18h2v-2h-2v2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4z\" />\n ),\n};\n\nexport const TypeIcon: React.FC<TypeIconProps> = ({\n type,\n size = 18,\n showTooltip = true,\n className,\n}) => {\n const colors = typeColors[type] || typeColors.U;\n const label = typeLabels[type] || 'Unknown';\n\n return (\n <span\n className={`${styles.icon} ${className || ''}`}\n style={{\n width: size,\n height: size,\n backgroundColor: colors.bg,\n color: colors.fg,\n }}\n title={showTooltip ? label : undefined}\n aria-label={label}\n >\n <svg\n viewBox=\"0 0 24 24\"\n width={size * 0.6}\n height={size * 0.6}\n fill=\"currentColor\"\n >\n {typeIcons[type] || typeIcons.U}\n </svg>\n </span>\n );\n};\n\nexport default TypeIcon;\n","import React, { ReactNode, useState } from 'react';\nimport styles from './Accordion.module.css';\n\nexport interface AccordionProps {\n /** Header content (always visible) */\n header: ReactNode;\n /** Body content (collapsible) */\n children: ReactNode;\n /** Whether the accordion is initially open */\n defaultOpen?: boolean;\n /** Controlled open state */\n open?: boolean;\n /** Callback when open state changes */\n onOpenChange?: (open: boolean) => void;\n /** Show vertical timeline indicator */\n showTimeline?: boolean;\n /** Additional CSS class */\n className?: string;\n}\n\nconst CaretIcon = ({ className }: { className?: string }) => (\n <svg \n className={className} \n width=\"20\" \n height=\"20\" \n viewBox=\"0 0 24 24\" \n fill=\"none\" \n stroke=\"currentColor\" \n strokeWidth=\"2\"\n >\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n);\n\n/**\n * Accordion component for collapsible content sections.\n * Used in travel request forms for expandable form segments.\n */\nexport const Accordion: React.FC<AccordionProps> = ({\n header,\n children,\n defaultOpen = true,\n open: controlledOpen,\n onOpenChange,\n showTimeline = false,\n className,\n}) => {\n const [internalOpen, setInternalOpen] = useState(defaultOpen);\n const isControlled = controlledOpen !== undefined;\n const isOpen = isControlled ? controlledOpen : internalOpen;\n\n const handleToggle = () => {\n const newOpen = !isOpen;\n if (!isControlled) {\n setInternalOpen(newOpen);\n }\n onOpenChange?.(newOpen);\n };\n\n return (\n <div className={`${styles.accordion} ${className || ''}`}>\n <div className={styles.headerContainer}>\n <button\n type=\"button\"\n className={styles.toggle}\n onClick={handleToggle}\n aria-expanded={isOpen}\n >\n <CaretIcon className={`${styles.caret} ${isOpen ? styles.open : ''}`} />\n </button>\n <div className={styles.header}>{header}</div>\n </div>\n <div \n className={`${styles.body} ${isOpen ? styles.visible : styles.hidden}`}\n aria-hidden={!isOpen}\n >\n {showTimeline && (\n <div className={styles.timeline}>\n <div className={styles.line} />\n <CaretIcon className={styles.endCaret} />\n </div>\n )}\n <div className={styles.content}>{children}</div>\n </div>\n </div>\n );\n};\n\nAccordion.displayName = 'Accordion';\n\nexport default Accordion;\n","import { ReactNode } from 'react';\nimport { CalendarIcon, GridIcon } from '../../atoms/Icons';\nimport styles from './CalendarSelectors.module.css';\n\nexport interface SegmentedSelectorOption {\n id: string;\n label?: string;\n alt?: string;\n icon?: ReactNode;\n}\n\nexport interface SegmentedSelectorProps {\n options: SegmentedSelectorOption[];\n value: string;\n onChange?: (value: string) => void;\n disabled?: boolean;\n size?: 'sm' | 'md' | 'lg';\n className?: string;\n ariaLabel?: string;\n}\n\nconst ListIcon = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" aria-hidden=\"true\">\n <line x1=\"8\" y1=\"6\" x2=\"21\" y2=\"6\" />\n <line x1=\"8\" y1=\"12\" x2=\"21\" y2=\"12\" />\n <line x1=\"8\" y1=\"18\" x2=\"21\" y2=\"18\" />\n <circle cx=\"3\" cy=\"6\" r=\"1\" fill=\"currentColor\" stroke=\"none\" />\n <circle cx=\"3\" cy=\"12\" r=\"1\" fill=\"currentColor\" stroke=\"none\" />\n <circle cx=\"3\" cy=\"18\" r=\"1\" fill=\"currentColor\" stroke=\"none\" />\n </svg>\n);\n\nexport const SegmentedSelector = ({\n options,\n value,\n onChange,\n disabled = false,\n size = 'md',\n className = '',\n ariaLabel = 'View options',\n}: SegmentedSelectorProps) => (\n <div className={[styles.selector, className].filter(Boolean).join(' ')} role=\"group\" aria-label={ariaLabel}>\n {options.map((option) => {\n const active = option.id === value;\n const accessibleName = option.alt ?? option.label ?? option.id;\n return (\n <button\n key={option.id}\n type=\"button\"\n title={accessibleName}\n aria-label={accessibleName}\n aria-pressed={active}\n disabled={disabled}\n className={[\n styles.item,\n styles[size],\n option.label ? styles.withLabel : styles.iconOnly,\n active ? styles.active : '',\n ].filter(Boolean).join(' ')}\n onClick={() => onChange?.(option.id)}\n >\n {option.icon}\n {option.label && <span>{option.label}</span>}\n </button>\n );\n })}\n </div>\n);\n\nexport type CalendarViewValue = 'calendar' | 'card' | 'list';\nexport interface CalendarViewSelectorProps extends Omit<SegmentedSelectorProps, 'options' | 'value' | 'onChange' | 'ariaLabel'> {\n value: CalendarViewValue;\n onChange?: (value: CalendarViewValue) => void;\n}\n\nexport const CalendarViewSelector = ({ value, onChange, ...props }: CalendarViewSelectorProps) => (\n <SegmentedSelector\n {...props}\n ariaLabel=\"Calendar view\"\n value={value}\n onChange={(nextValue) => onChange?.(nextValue as CalendarViewValue)}\n options={[\n { id: 'calendar', alt: 'Calendar', icon: <CalendarIcon size={20} /> },\n { id: 'card', alt: 'Card', icon: <GridIcon size={20} /> },\n { id: 'list', alt: 'List', icon: <ListIcon /> },\n ]}\n />\n);\n\nexport type CalendarTypeValue = 'trips' | 'due_dates';\nexport interface CalendarTypeSelectorProps extends Omit<SegmentedSelectorProps, 'options' | 'value' | 'onChange' | 'ariaLabel'> {\n value: CalendarTypeValue;\n onChange?: (value: CalendarTypeValue) => void;\n}\n\nexport const CalendarTypeSelector = ({ value, onChange, ...props }: CalendarTypeSelectorProps) => (\n <SegmentedSelector\n {...props}\n ariaLabel=\"Calendar item type\"\n value={value}\n onChange={(nextValue) => onChange?.(nextValue as CalendarTypeValue)}\n options={[\n { id: 'trips', label: 'Trips' },\n { id: 'due_dates', label: 'Due Dates' },\n ]}\n />\n);\n","import React, { useEffect, useState, useRef } from 'react';\nimport styles from './Dropdown.module.css';\nimport { Button } from '../../atoms/Button';\n\nexport type DropdownAlignment = 'left' | 'center' | 'right';\n\nexport interface DropdownProps {\n /** Label for the dropdown trigger button */\n label: string;\n /** Content to display in the dropdown */\n children: React.ReactNode;\n /** Alignment of the dropdown menu */\n alignment?: DropdownAlignment;\n /** Minimum width of the dropdown (in pixels) */\n width?: number;\n /** Additional CSS class */\n className?: string;\n /** Whether the dropdown is disabled */\n disabled?: boolean;\n}\n\nexport interface DropdownItemProps {\n /** Item label */\n children: React.ReactNode;\n /** Click handler */\n onClick?: () => void;\n /** Whether the item is disabled */\n disabled?: boolean;\n /** Icon to display */\n icon?: React.ReactNode;\n /** Additional CSS class */\n className?: string;\n}\n\nexport const Dropdown: React.FC<DropdownProps> & {\n Item: React.FC<DropdownItemProps>;\n} = ({\n label,\n children,\n alignment = 'left',\n width,\n className = '',\n disabled = false,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n }\n };\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside);\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [isOpen]);\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Escape') {\n setIsOpen(false);\n }\n };\n\n return (\n <div \n ref={dropdownRef} \n className={`${styles.dropdown} ${className}`}\n onKeyDown={handleKeyDown}\n >\n <Button\n variant=\"secondary\"\n onClick={() => !disabled && setIsOpen(!isOpen)}\n disabled={disabled}\n aria-expanded={isOpen}\n aria-haspopup=\"true\"\n >\n {label}\n <svg\n className={`${styles.arrow} ${isOpen ? styles.arrowOpen : ''}`}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n width=\"16\"\n height=\"16\"\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M19 9l-7 7-7-7\" />\n </svg>\n </Button>\n \n <div\n className={`${styles.menu} ${styles[alignment]} ${isOpen ? styles.menuOpen : ''}`}\n style={width ? { minWidth: `${width}px` } : undefined}\n role=\"menu\"\n >\n {children}\n </div>\n </div>\n );\n};\n\nconst DropdownItem: React.FC<DropdownItemProps> = ({\n children,\n onClick,\n disabled = false,\n icon,\n className = '',\n}) => {\n return (\n <button\n type=\"button\"\n className={`${styles.item} ${disabled ? styles.itemDisabled : ''} ${className}`}\n onClick={onClick}\n disabled={disabled}\n role=\"menuitem\"\n >\n {icon && <span className={styles.itemIcon}>{icon}</span>}\n {children}\n </button>\n );\n};\n\nDropdown.Item = DropdownItem;\n\nexport default Dropdown;\n","import React, { useState, useRef, useEffect } from 'react';\nimport styles from './FilterChip.module.css';\n\nexport interface FilterOption {\n value: string;\n label: string;\n}\n\nexport interface FilterChipProps {\n /** Label for the filter */\n label: string;\n /** Currently selected value */\n value: string;\n /** Options to display in dropdown */\n options: FilterOption[];\n /** Callback when value changes */\n onChange: (value: string) => void;\n /** Show search input in dropdown */\n searchable?: boolean;\n /** Placeholder for search input */\n searchPlaceholder?: string;\n /** Info message to show at top of dropdown */\n infoMessage?: string;\n /** Additional CSS class */\n className?: string;\n}\n\nexport const FilterChip: React.FC<FilterChipProps> = ({\n label,\n value,\n options,\n onChange,\n searchable = false,\n searchPlaceholder = 'Search...',\n infoMessage,\n className,\n}) => {\n const [open, setOpen] = useState(false);\n const [searchQuery, setSearchQuery] = useState('');\n const ref = useRef<HTMLDivElement>(null);\n\n // Close on outside click\n useEffect(() => {\n if (!open) return;\n const handleClick = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setOpen(false);\n }\n };\n const handleKey = (e: KeyboardEvent) => {\n if (e.key === 'Escape') setOpen(false);\n };\n document.addEventListener('mousedown', handleClick);\n document.addEventListener('keydown', handleKey);\n return () => {\n document.removeEventListener('mousedown', handleClick);\n document.removeEventListener('keydown', handleKey);\n };\n }, [open]);\n\n // Reset search when closing\n useEffect(() => {\n if (!open) setSearchQuery('');\n }, [open]);\n\n const filteredOptions = searchable && searchQuery\n ? options.filter(opt => \n opt.label.toLowerCase().includes(searchQuery.toLowerCase())\n )\n : options;\n\n const selectedOption = options.find(opt => opt.value === value);\n const displayValue = selectedOption?.label || value;\n const isDefault = value === options[0]?.value;\n\n return (\n <div ref={ref} className={`${styles.wrapper} ${className || ''}`}>\n <button\n type=\"button\"\n className={`${styles.chip} ${open ? styles.open : ''} ${!isDefault ? styles.active : ''}`}\n onClick={() => setOpen(!open)}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n >\n <span className={styles.label}>{label}:</span>\n <span className={styles.value}>{displayValue}</span>\n <svg \n className={`${styles.chevron} ${open ? styles.rotated : ''}`}\n width=\"14\" \n height=\"14\" \n viewBox=\"0 0 24 24\" \n fill=\"none\" \n stroke=\"currentColor\" \n strokeWidth=\"2\"\n >\n <polyline points=\"6 9 12 15 18 9\" />\n </svg>\n </button>\n\n {open && (\n <div className={styles.dropdown} role=\"listbox\">\n {infoMessage && (\n <div className={styles.infoMessage}>\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\"/>\n </svg>\n <span>{infoMessage}</span>\n </div>\n )}\n\n {searchable && (\n <div className={styles.searchWrapper}>\n <svg \n className={styles.searchIcon}\n width=\"14\" \n height=\"14\" \n viewBox=\"0 0 24 24\" \n fill=\"none\" \n stroke=\"currentColor\" \n strokeWidth=\"2\"\n >\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n </svg>\n <input\n type=\"text\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n placeholder={searchPlaceholder}\n className={styles.searchInput}\n autoFocus\n />\n </div>\n )}\n\n <div className={styles.optionsList}>\n {filteredOptions.map((option) => (\n <button\n key={option.value}\n type=\"button\"\n role=\"option\"\n aria-selected={option.value === value}\n className={`${styles.option} ${option.value === value ? styles.selected : ''}`}\n onClick={() => {\n onChange(option.value);\n setOpen(false);\n }}\n >\n {option.label}\n </button>\n ))}\n {filteredOptions.length === 0 && (\n <div className={styles.noResults}>No results found</div>\n )}\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default FilterChip;\n","import React, { forwardRef, useId } from 'react';\nimport { Input, InputProps } from '../../atoms/Input/Input';\nimport { Textarea, TextareaProps } from '../../atoms/Input/Input';\nimport styles from './FormField.module.css';\n\nexport interface FormFieldProps {\n /** Label text for the field */\n label: string;\n /** Optional helper text displayed below the input */\n helperText?: string;\n /** Error message to display */\n error?: string;\n /** Whether the field is required */\n required?: boolean;\n /** Whether to hide the label visually (still accessible) */\n hideLabel?: boolean;\n /** Additional CSS class for the wrapper */\n className?: string;\n /** The input element type */\n as?: 'input' | 'textarea';\n /** Input props when as=\"input\" */\n inputProps?: InputProps;\n /** Textarea props when as=\"textarea\" */\n textareaProps?: TextareaProps;\n /** Children for custom input rendering */\n children?: React.ReactNode;\n}\n\nexport const FormField = forwardRef<HTMLInputElement | HTMLTextAreaElement, FormFieldProps>(\n (\n {\n label,\n helperText,\n error,\n required = false,\n hideLabel = false,\n className,\n as = 'input',\n inputProps,\n textareaProps,\n children,\n },\n ref\n ) => {\n const generatedId = useId();\n const inputId = inputProps?.id || textareaProps?.id || generatedId;\n const helperId = `${inputId}-helper`;\n const errorId = `${inputId}-error`;\n const hasError = Boolean(error);\n\n const describedBy = [\n helperText ? helperId : null,\n hasError ? errorId : null,\n ]\n .filter(Boolean)\n .join(' ') || undefined;\n\n const renderInput = () => {\n if (children) {\n return children;\n }\n\n if (as === 'textarea') {\n return (\n <Textarea\n ref={ref as React.Ref<HTMLTextAreaElement>}\n id={inputId}\n aria-describedby={describedBy}\n aria-invalid={hasError}\n aria-required={required}\n {...textareaProps}\n className={`${styles.inputElement} ${hasError ? styles.inputError : ''} ${textareaProps?.className || ''}`}\n />\n );\n }\n\n return (\n <Input\n ref={ref as React.Ref<HTMLInputElement>}\n id={inputId}\n aria-describedby={describedBy}\n aria-invalid={hasError}\n aria-required={required}\n {...inputProps}\n className={`${styles.inputElement} ${hasError ? styles.inputError : ''} ${inputProps?.className || ''}`}\n />\n );\n };\n\n return (\n <div className={`${styles.formField} ${className || ''}`}>\n <label\n htmlFor={inputId}\n className={`${styles.label} ${hideLabel ? styles.visuallyHidden : ''}`}\n >\n {label}\n {required && <span className={styles.required} aria-hidden=\"true\">*</span>}\n </label>\n \n {renderInput()}\n \n {helperText && !hasError && (\n <p id={helperId} className={styles.helperText}>\n {helperText}\n </p>\n )}\n \n {hasError && (\n <p id={errorId} className={styles.errorText} role=\"alert\">\n {error}\n </p>\n )}\n </div>\n );\n }\n);\n\nFormField.displayName = 'FormField';\n\nexport default FormField;\n","import React, { Children, ReactNode } from 'react';\nimport styles from './FormRow.module.css';\n\nexport interface FormRowProps {\n /** Child elements to display in a row */\n children: ReactNode;\n /** Number of columns (auto-detected from children count if not specified) */\n columns?: 1 | 2 | 3 | 4;\n /** Gap size between items */\n gap?: 'sm' | 'md' | 'lg';\n /** Additional CSS class */\n className?: string;\n /** Stack on mobile (default: true) */\n stackOnMobile?: boolean;\n}\n\n/**\n * FormRow component for laying out form fields in a responsive grid.\n * Stacks on mobile by default and arranges in columns on larger screens.\n */\nexport const FormRow: React.FC<FormRowProps> = ({\n children,\n columns,\n gap = 'md',\n className,\n stackOnMobile = true,\n}) => {\n const childCount = Children.count(children);\n const colCount = columns || (childCount > 4 ? 4 : childCount as 1 | 2 | 3 | 4);\n\n return (\n <div \n className={`\n ${styles.row} \n ${styles[`cols${colCount}`]} \n ${styles[`gap${gap}`]}\n ${stackOnMobile ? styles.stackMobile : ''}\n ${className || ''}\n `}\n >\n {children}\n </div>\n );\n};\n\nFormRow.displayName = 'FormRow';\n\nexport default FormRow;\n","import React, { ReactNode } from 'react';\nimport styles from './FormSection.module.css';\n\nexport interface FormSectionProps {\n /** Section title */\n title: string;\n /** Icon element to display */\n icon?: ReactNode;\n /** Status key for submitted state */\n status?: 'submitted' | 'not-submitted' | 'draft';\n /** Whether the section is disabled */\n disabled?: boolean;\n /** Children content */\n children: ReactNode;\n /** Additional CSS class */\n className?: string;\n /** Section ID for anchoring */\n id?: string;\n}\n\n/**\n * FormSection component for grouping related form fields with a title and icon.\n * Used in travel request forms for sections like General, Air, Hotel, etc.\n */\nexport const FormSection: React.FC<FormSectionProps> = ({\n title,\n icon,\n status,\n disabled = false,\n children,\n className,\n id,\n}) => {\n const isSubmitted = status === 'submitted';\n const isDisabled = disabled || isSubmitted;\n\n return (\n <div className={`${styles.section} ${className || ''}`} id={id}>\n <div className={styles.header}>\n {icon && <span className={styles.icon}>{icon}</span>}\n <h2 className={styles.title}>{title}</h2>\n </div>\n <fieldset \n disabled={isDisabled} \n className={`${styles.fieldset} ${isDisabled ? styles.disabled : ''}`}\n >\n {status && (\n <div className={styles.status}>\n <span className={styles.statusLabel}>Status:</span>\n <span className={`${styles.statusValue} ${styles[status]}`}>\n {status === 'submitted' ? 'Submitted' : status === 'draft' ? 'Draft' : 'Not Submitted'}\n </span>\n </div>\n )}\n {children}\n </fieldset>\n </div>\n );\n};\n\nFormSection.displayName = 'FormSection';\n\nexport default FormSection;\n","import type { ReactNode } from 'react';\nimport styles from './FormStack.module.css';\n\nexport interface FormStackProps {\n children: ReactNode;\n gap?: 'sm' | 'md' | 'lg';\n className?: string;\n}\n\n/** Standard vertical form-field rhythm used by Hub modal forms. */\nexport const FormStack = ({ children, gap = 'md', className = '' }: FormStackProps) => (\n <div className={[styles.stack, styles[gap], className].filter(Boolean).join(' ')}>{children}</div>\n);\n\nexport default FormStack;\n","import { CubeIcon, LockIcon, UsersIcon } from '../../atoms/Icons';\nimport styles from './ManifestViewToggle.module.css';\n\nexport type ManifestView = 'passengers' | 'equipment';\n\nexport interface ManifestViewToggleProps {\n view: ManifestView;\n onView: (view: ManifestView) => void;\n paxCount: number;\n eqCount: number;\n locked: boolean;\n className?: string;\n}\n\nexport const ManifestViewToggle = ({\n view,\n onView,\n paxCount,\n eqCount,\n locked,\n className = '',\n}: ManifestViewToggleProps) => {\n const tabs: { key: ManifestView; label: string; count: number; icon: typeof UsersIcon }[] = [\n { key: 'passengers', label: 'Passengers', count: paxCount, icon: UsersIcon },\n { key: 'equipment', label: 'Equipment', count: eqCount, icon: CubeIcon },\n ];\n\n return (\n <div\n className={[styles.toggle, locked ? styles.lockedToggle : '', className].filter(Boolean).join(' ')}\n role=\"tablist\"\n aria-label=\"Manifest view\"\n >\n {tabs.map((tab) => {\n const active = view === tab.key;\n const Icon = locked ? LockIcon : tab.icon;\n return (\n <button\n key={tab.key}\n type=\"button\"\n role=\"tab\"\n aria-selected={active}\n onClick={() => onView(tab.key)}\n className={[\n styles.tab,\n active ? styles.active : '',\n locked ? styles.locked : '',\n locked && active ? styles.lockedActive : '',\n ].filter(Boolean).join(' ')}\n >\n <Icon size={16} />\n {tab.label}\n <span className={styles.count}>{tab.count}</span>\n </button>\n );\n })}\n </div>\n );\n};\n\nexport default ManifestViewToggle;\n","import React from 'react';\nimport { Badge } from '../../atoms/Badge/Badge';\nimport styles from './NavItem.module.css';\n\nexport type NavItemVariant = 'default' | 'pill';\nexport type NavItemSize = 'sm' | 'md' | 'lg';\n\nexport interface NavItemProps {\n /** Icon to display */\n icon?: React.ReactNode;\n /** Label text */\n label: string;\n /** Whether the item is currently active */\n active?: boolean;\n /** Whether the navigation is collapsed (icon only) */\n collapsed?: boolean;\n /** Visual variant */\n variant?: NavItemVariant;\n /** Size of the nav item */\n size?: NavItemSize;\n /** Optional badge count or text */\n badge?: string | number;\n /** Badge variant */\n badgeVariant?: 'default' | 'success' | 'warning' | 'error' | 'info';\n /** Click handler */\n onClick?: () => void;\n /** Whether the item is disabled */\n disabled?: boolean;\n /** Optional href for link items */\n href?: string;\n /** Whether to open link in new tab (for external links) */\n external?: boolean;\n /** Additional CSS class */\n className?: string;\n /** Accessible description */\n 'aria-label'?: string;\n}\n\nexport const NavItem: React.FC<NavItemProps> = ({\n icon,\n label,\n active = false,\n collapsed = false,\n variant = 'default',\n size = 'md',\n badge,\n badgeVariant = 'default',\n onClick,\n disabled = false,\n href,\n external = false,\n className,\n 'aria-label': ariaLabel,\n}) => {\n const content = (\n <>\n {icon && <span className={`${styles.icon} ${styles[`icon${size.charAt(0).toUpperCase()}${size.slice(1)}`]}`} aria-hidden=\"true\">{icon}</span>}\n {!collapsed && (\n <span className={styles.label}>{label}</span>\n )}\n {badge !== undefined && !collapsed && (\n <Badge variant={badgeVariant} className={styles.badge}>\n {badge}\n </Badge>\n )}\n </>\n );\n\n const classNames = [\n styles.navItem,\n styles[variant],\n styles[size],\n active ? styles.active : '',\n collapsed ? styles.collapsed : '',\n disabled ? styles.disabled : '',\n className || '',\n ].filter(Boolean).join(' ');\n\n const commonProps = {\n className: classNames,\n 'aria-label': ariaLabel || (collapsed ? label : undefined),\n 'aria-current': active ? 'page' as const : undefined,\n 'aria-disabled': disabled,\n };\n\n if (href && !disabled) {\n return (\n <a \n href={href} \n {...commonProps}\n target={external ? '_blank' : undefined}\n rel={external ? 'noopener noreferrer' : undefined}\n >\n {content}\n </a>\n );\n }\n\n return (\n <button\n type=\"button\"\n onClick={disabled ? undefined : onClick}\n disabled={disabled}\n {...commonProps}\n >\n {content}\n </button>\n );\n};\n\nexport default NavItem;\n","import React from 'react';\nimport styles from './Progress.module.css';\n\nexport type ProgressSize = 'xs' | 'sm' | 'md' | 'lg';\nexport type ProgressVariant = 'primary' | 'success' | 'warning' | 'error';\n\nexport interface ProgressBarProps {\n /** Current progress value */\n value: number;\n /** Maximum value */\n max?: number;\n /** Size of the progress bar */\n size?: ProgressSize;\n /** Color variant */\n variant?: ProgressVariant;\n /** Show percentage label */\n showLabel?: boolean;\n /** Additional CSS class */\n className?: string;\n}\n\nexport interface ProgressCircleProps {\n /** Current progress value */\n value: number;\n /** Maximum value */\n max?: number;\n /** Size of the circle */\n size?: ProgressSize;\n /** Color variant */\n variant?: ProgressVariant;\n /** Show percentage in center */\n showLabel?: boolean;\n /** Additional CSS class */\n className?: string;\n}\n\nconst dimensions: Record<ProgressSize, number> = {\n xs: 32,\n sm: 48,\n md: 64,\n lg: 80,\n};\n\nconst strokeWidths: Record<ProgressSize, number> = {\n xs: 3,\n sm: 4,\n md: 5,\n lg: 6,\n};\n\nexport const ProgressBar: React.FC<ProgressBarProps> = ({\n value,\n max = 100,\n size = 'md',\n variant = 'primary',\n showLabel = false,\n className = '',\n}) => {\n const percentage = Math.min(Math.max((value / max) * 100, 0), 100);\n\n return (\n <div className={`${styles.barContainer} ${styles[`bar${size}`]} ${className}`}>\n <div className={styles.barTrack}>\n <div\n className={`${styles.barFill} ${styles[variant]}`}\n style={{ width: `${percentage}%` }}\n role=\"progressbar\"\n aria-valuenow={value}\n aria-valuemin={0}\n aria-valuemax={max}\n />\n </div>\n {showLabel && (\n <span className={styles.barLabel}>{Math.round(percentage)}%</span>\n )}\n </div>\n );\n};\n\nexport const ProgressCircle: React.FC<ProgressCircleProps> = ({\n value,\n max = 100,\n size = 'md',\n variant = 'primary',\n showLabel = false,\n className = '',\n}) => {\n const percentage = Math.min(Math.max((value / max) * 100, 0), 100);\n \n const dimension = dimensions[size];\n const strokeWidth = strokeWidths[size];\n const radius = (dimension - strokeWidth) / 2;\n const circumference = radius * 2 * Math.PI;\n const strokeDashoffset = circumference - (percentage / 100) * circumference;\n\n return (\n <div \n className={`${styles.circleContainer} ${className}`}\n style={{ width: dimension, height: dimension }}\n >\n <svg\n width={dimension}\n height={dimension}\n className={styles.circleSvg}\n >\n <circle\n className={styles.circleTrack}\n cx={dimension / 2}\n cy={dimension / 2}\n r={radius}\n strokeWidth={strokeWidth}\n fill=\"transparent\"\n />\n <circle\n className={`${styles.circleFill} ${styles[variant]}`}\n cx={dimension / 2}\n cy={dimension / 2}\n r={radius}\n strokeWidth={strokeWidth}\n fill=\"transparent\"\n strokeDasharray={circumference}\n strokeDashoffset={strokeDashoffset}\n strokeLinecap=\"round\"\n role=\"progressbar\"\n aria-valuenow={value}\n aria-valuemin={0}\n aria-valuemax={max}\n />\n </svg>\n {showLabel && (\n <span \n className={styles.circleLabel}\n style={{ fontSize: size === 'xs' ? '8px' : size === 'sm' ? '10px' : size === 'md' ? '12px' : '14px' }}\n >\n {Math.round(percentage)}%\n </span>\n )}\n </div>\n );\n};\n\n// Combined export\nexport const Progress = {\n Bar: ProgressBar,\n Circle: ProgressCircle,\n};\n\nexport default Progress;\n","import { ReactNode } from 'react';\nimport styles from './RosterToolbar.module.css';\n\nexport interface ToolbarAction {\n /** Action label */\n label: string;\n /** Action icon */\n icon?: ReactNode;\n /** Handler */\n onClick: () => void;\n /** Is action disabled */\n disabled?: boolean;\n}\n\nexport interface RosterToolbarProps {\n /** Import dropdown options */\n importOptions?: ToolbarAction[];\n /** Export dropdown options */\n exportOptions?: ToolbarAction[];\n /** Toggle for lock roster */\n lockToggle?: {\n isLocked: boolean;\n onToggle: (locked: boolean) => void;\n disabled?: boolean;\n };\n /** Save button config */\n saveButton?: {\n label?: string;\n onClick: () => void;\n disabled?: boolean;\n loading?: boolean;\n };\n /** Additional actions */\n additionalActions?: ReactNode;\n /** Search field */\n searchField?: ReactNode;\n /** Additional class */\n className?: string;\n}\n\nconst ImportIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"/>\n <polyline points=\"17 8 12 3 7 8\"/>\n <line x1=\"12\" y1=\"3\" x2=\"12\" y2=\"15\"/>\n </svg>\n);\n\nconst ExportIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"/>\n <polyline points=\"7 10 12 15 17 10\"/>\n <line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"/>\n </svg>\n);\n\nconst ChevronIcon = () => (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <polyline points=\"6 9 12 15 18 9\"/>\n </svg>\n);\n\nconst LockIcon = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"/>\n <path d=\"M7 11V7a5 5 0 0 1 10 0v4\"/>\n </svg>\n);\n\nconst UnlockIcon = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"/>\n <path d=\"M7 11V7a5 5 0 0 1 9.9-1\"/>\n </svg>\n);\n\nconst SaveIcon = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z\"/>\n <polyline points=\"17 21 17 13 7 13 7 21\"/>\n <polyline points=\"7 3 7 8 15 8\"/>\n </svg>\n);\n\nconst SpinnerIcon = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" className={styles.spinner}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" strokeDasharray=\"32\" strokeDashoffset=\"32\"/>\n </svg>\n);\n\nconst DropdownButton = ({\n label,\n icon,\n options,\n}: {\n label: string;\n icon: ReactNode;\n options: ToolbarAction[];\n}) => {\n return (\n <div className={styles.dropdown}>\n <button type=\"button\" className={styles.dropdownTrigger}>\n {icon}\n <span>{label}</span>\n <ChevronIcon />\n </button>\n <div className={styles.dropdownMenu}>\n {options.map((option, i) => (\n <button\n key={i}\n type=\"button\"\n className={styles.dropdownItem}\n onClick={option.onClick}\n disabled={option.disabled}\n >\n {option.icon && <span className={styles.dropdownItemIcon}>{option.icon}</span>}\n {option.label}\n </button>\n ))}\n </div>\n </div>\n );\n};\n\n/**\n * RosterToolbar - Toolbar for roster management with import/export/save actions\n */\nexport const RosterToolbar = ({\n importOptions,\n exportOptions,\n lockToggle,\n saveButton,\n additionalActions,\n searchField,\n className = '',\n}: RosterToolbarProps) => {\n const toolbarClasses = [styles.toolbar, className].filter(Boolean).join(' ');\n\n return (\n <div className={toolbarClasses}>\n <div className={styles.leftSection}>\n {searchField}\n {additionalActions}\n </div>\n\n <div className={styles.rightSection}>\n {importOptions && importOptions.length > 0 && (\n <DropdownButton\n label=\"Import\"\n icon={<ImportIcon />}\n options={importOptions}\n />\n )}\n\n {exportOptions && exportOptions.length > 0 && (\n <DropdownButton\n label=\"Export\"\n icon={<ExportIcon />}\n options={exportOptions}\n />\n )}\n\n {lockToggle && (\n <button\n type=\"button\"\n className={[\n styles.lockButton,\n lockToggle.isLocked ? styles.locked : '',\n ].filter(Boolean).join(' ')}\n onClick={() => lockToggle.onToggle(!lockToggle.isLocked)}\n disabled={lockToggle.disabled}\n aria-label={lockToggle.isLocked ? 'Unlock roster' : 'Lock roster'}\n >\n {lockToggle.isLocked ? <LockIcon /> : <UnlockIcon />}\n <span>{lockToggle.isLocked ? 'Locked' : 'Unlocked'}</span>\n </button>\n )}\n\n {saveButton && (\n <button\n type=\"button\"\n className={styles.saveButton}\n onClick={saveButton.onClick}\n disabled={saveButton.disabled || saveButton.loading}\n >\n {saveButton.loading ? <SpinnerIcon /> : <SaveIcon />}\n <span>{saveButton.label || 'Save'}</span>\n </button>\n )}\n </div>\n </div>\n );\n};\n\nRosterToolbar.displayName = 'RosterToolbar';\n\nexport default RosterToolbar;\n","import React, { useState, forwardRef } from 'react';\nimport { Input } from '../../atoms/Input/Input';\nimport { Button } from '../../atoms/Button/Button';\nimport { SearchIcon, CloseIcon } from '../../atoms/Icons';\nimport styles from './SearchField.module.css';\n\nexport interface SearchFieldProps {\n /** Placeholder text for the search input */\n placeholder?: string;\n /** Current value of the search field */\n value?: string;\n /** Default value for uncontrolled usage */\n defaultValue?: string;\n /** Callback when search value changes */\n onChange?: (value: string) => void;\n /** Callback when search is submitted */\n onSearch?: (value: string) => void;\n /** Callback when search is cleared */\n onClear?: () => void;\n /** Size variant */\n size?: 'sm' | 'md' | 'lg';\n /** Whether the field is disabled */\n disabled?: boolean;\n /** Whether to show the clear button when there's a value */\n showClear?: boolean;\n /** Whether to show the search button */\n showButton?: boolean;\n /** Additional CSS class */\n className?: string;\n /** ID for the input element */\n id?: string;\n /** Accessible label */\n 'aria-label'?: string;\n}\n\nexport const SearchField = forwardRef<HTMLInputElement, SearchFieldProps>(\n (\n {\n placeholder = 'Search...',\n value,\n defaultValue = '',\n onChange,\n onSearch,\n onClear,\n size = 'md',\n disabled = false,\n showClear = true,\n showButton = true,\n className,\n id,\n 'aria-label': ariaLabel = 'Search',\n ...props\n },\n ref\n ) => {\n const [internalValue, setInternalValue] = useState(defaultValue);\n const currentValue = value !== undefined ? value : internalValue;\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value;\n if (value === undefined) {\n setInternalValue(newValue);\n }\n onChange?.(newValue);\n };\n\n const handleClear = () => {\n if (value === undefined) {\n setInternalValue('');\n }\n onChange?.('');\n onClear?.();\n };\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n onSearch?.(currentValue);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n onSearch?.(currentValue);\n }\n };\n\n return (\n <form \n className={`${styles.searchField} ${styles[size]} ${className || ''}`}\n onSubmit={handleSubmit}\n role=\"search\"\n >\n <div className={styles.inputWrapper}>\n <SearchIcon className={styles.searchIcon} aria-hidden=\"true\" />\n <Input\n ref={ref}\n id={id}\n type=\"search\"\n placeholder={placeholder}\n value={currentValue}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n disabled={disabled}\n className={styles.input}\n aria-label={ariaLabel}\n {...props}\n />\n {showClear && currentValue && (\n <button\n type=\"button\"\n className={styles.clearButton}\n onClick={handleClear}\n disabled={disabled}\n aria-label=\"Clear search\"\n >\n <CloseIcon size={16} />\n </button>\n )}\n </div>\n {showButton && (\n <Button\n type=\"submit\"\n variant=\"primary\"\n size={size}\n disabled={disabled}\n >\n Search\n </Button>\n )}\n </form>\n );\n }\n);\n\nSearchField.displayName = 'SearchField';\n\nexport default SearchField;\n","import { ReactNode } from 'react';\nimport styles from './SchoolContactForm.module.css';\n\nexport interface SchoolContactFormProps {\n mode?: 'Add' | 'Edit' | string;\n createFromPortalUser?: ReactNode;\n firstNameField: ReactNode;\n middleInitialField: ReactNode;\n lastNameField: ReactNode;\n businessPhoneField: ReactNode;\n cellPhoneField: ReactNode;\n emailField: ReactNode;\n className?: string;\n}\n\n/**\n * Layout for Hub's school-contact editor. Field controls stay injectable so\n * consuming applications retain their form state, validation, and masking.\n */\nexport const SchoolContactForm = ({\n mode,\n createFromPortalUser,\n firstNameField,\n middleInitialField,\n lastNameField,\n businessPhoneField,\n cellPhoneField,\n emailField,\n className = '',\n}: SchoolContactFormProps) => (\n <div className={[styles.form, className].filter(Boolean).join(' ')}>\n {mode === 'Add' && (\n <>\n <div>\n <label className={styles.portalLabel}>Create From Portal User</label>\n {createFromPortalUser}\n </div>\n <div className={styles.divider}><strong>OR</strong></div>\n <p className={styles.newContactLabel}>Create New Contact Without Portal Access</p>\n </>\n )}\n <div className={styles.nameFields}>\n {firstNameField}\n {middleInitialField}\n {lastNameField}\n </div>\n <div className={styles.phoneFields}>\n {businessPhoneField}\n {cellPhoneField}\n </div>\n <div>{emailField}</div>\n </div>\n);\n\nexport default SchoolContactForm;\n","import React from 'react';\nimport styles from './Segment.module.css';\n\nexport interface SegmentOption {\n /** Unique identifier for the option */\n value: string;\n /** Display label */\n label: string;\n /** Whether the option is disabled */\n disabled?: boolean;\n /** Icon to display */\n icon?: React.ReactNode;\n}\n\nexport interface SegmentProps {\n /** Available options */\n options: SegmentOption[];\n /** Currently selected value */\n value: string;\n /** Callback when selection changes */\n onChange: (value: string) => void;\n /** Size variant */\n size?: 'sm' | 'md' | 'lg';\n /** Whether the segment fills available width */\n fullWidth?: boolean;\n /** Additional CSS class */\n className?: string;\n /** Accessible label */\n 'aria-label'?: string;\n}\n\nexport const Segment: React.FC<SegmentProps> = ({\n options,\n value,\n onChange,\n size = 'md',\n fullWidth = false,\n className = '',\n 'aria-label': ariaLabel,\n}) => {\n return (\n <div\n className={`${styles.segment} ${styles[size]} ${fullWidth ? styles.fullWidth : ''} ${className}`}\n role=\"radiogroup\"\n aria-label={ariaLabel}\n >\n {options.map((option) => (\n <button\n key={option.value}\n type=\"button\"\n className={`${styles.option} ${value === option.value ? styles.selected : ''} ${option.disabled ? styles.disabled : ''}`}\n onClick={() => !option.disabled && onChange(option.value)}\n disabled={option.disabled}\n role=\"radio\"\n aria-checked={value === option.value}\n >\n {option.icon && <span className={styles.icon}>{option.icon}</span>}\n {option.label}\n </button>\n ))}\n </div>\n );\n};\n\nexport default Segment;\n","import React, { useState, useRef, useEffect, useMemo } from 'react';\nimport styles from './SelectFilter.module.css';\n\nexport interface SelectFilterOption {\n label: string;\n value: string | number;\n}\n\nexport interface SelectFilterProps {\n /** Filter label */\n label: string;\n /** Available options */\n options?: SelectFilterOption[];\n /** Grouped options by tab/category */\n groupedOptions?: Record<string, SelectFilterOption[]>;\n /** Selected values */\n value?: (string | number)[];\n /** Change handler */\n onChange?: (values: (string | number)[]) => void;\n /** Allow multiple selections */\n multiselect?: boolean;\n /** Tab names for grouped options */\n tabs?: string[];\n /** Show value instead of label in selected tag */\n showValue?: boolean;\n /** Whether to use grouped options */\n grouped?: boolean;\n /** Disabled state */\n disabled?: boolean;\n /** Dropdown width in pixels */\n width?: number;\n /** Additional CSS class */\n className?: string;\n}\n\nconst ChevronIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <polyline points=\"6 9 12 15 18 9\" />\n </svg>\n);\n\nconst CheckIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n);\n\n/**\n * SelectFilter component for filtering data with dropdown selections.\n * Supports single/multi select, grouped options with tabs.\n */\nexport const SelectFilter: React.FC<SelectFilterProps> = ({\n label,\n options = [],\n groupedOptions = {},\n value = [],\n onChange,\n multiselect = false,\n tabs = [],\n showValue = false,\n grouped = false,\n disabled = false,\n width = 360,\n className = '',\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const [activeTab, setActiveTab] = useState<string>(tabs[0] || '');\n const [selectedValues, setSelectedValues] = useState<(string | number)[]>(value);\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n setSelectedValues(value);\n }, [value]);\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n }\n };\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, []);\n\n const allOptions = useMemo(() => {\n if (grouped && groupedOptions) {\n return tabs.reduce((acc, tab) => acc.concat(groupedOptions[tab] || []), [] as SelectFilterOption[]);\n }\n return options;\n }, [grouped, groupedOptions, options, tabs]);\n\n const currentOptions = useMemo(() => {\n if (grouped && groupedOptions && activeTab) {\n return groupedOptions[activeTab] || [];\n }\n return options;\n }, [activeTab, grouped, groupedOptions, options]);\n\n const handleSelect = (optionValue: string | number) => {\n let newValues: (string | number)[];\n \n if (multiselect) {\n newValues = selectedValues.includes(optionValue)\n ? selectedValues.filter(v => v !== optionValue)\n : [...selectedValues, optionValue];\n } else {\n newValues = [optionValue];\n setIsOpen(false);\n }\n \n setSelectedValues(newValues);\n onChange?.(newValues);\n };\n\n const handleSelectAll = () => {\n const allValues = allOptions.map(opt => opt.value);\n setSelectedValues(allValues);\n onChange?.(allValues);\n };\n\n const handleClear = () => {\n setSelectedValues([]);\n onChange?.([]);\n };\n\n const getDisplayText = () => {\n if (selectedValues.length === 0) {\n return `Select ${label}`;\n }\n if (selectedValues.length === allOptions.length) {\n return `All ${label}s`;\n }\n const selected = allOptions.filter(opt => selectedValues.includes(opt.value));\n if (selected.length <= 2) {\n return selected.map(opt => showValue ? opt.value : opt.label).join(', ');\n }\n return `${selected.length} selected`;\n };\n\n return (\n <div ref={dropdownRef} className={`${styles.container} ${className}`}>\n <button\n type=\"button\"\n className={`${styles.trigger} ${disabled ? styles.disabled : ''} ${isOpen ? styles.open : ''}`}\n onClick={() => !disabled && setIsOpen(!isOpen)}\n >\n <span className={`${styles.triggerText} ${selectedValues.length === 0 ? styles.placeholder : ''}`}>\n {getDisplayText()}\n </span>\n <span className={styles.chevron}>\n <ChevronIcon />\n </span>\n </button>\n\n {isOpen && (\n <div className={styles.dropdown} style={{ width }}>\n {/* Tabs for grouped options */}\n {grouped && tabs.length > 0 && (\n <div className={styles.tabs}>\n {tabs.map(tab => (\n <button\n key={tab}\n type=\"button\"\n className={`${styles.tab} ${activeTab === tab ? styles.activeTab : ''}`}\n onClick={() => setActiveTab(tab)}\n >\n {tab.charAt(0).toUpperCase() + tab.slice(1)}\n </button>\n ))}\n </div>\n )}\n\n {/* Actions */}\n {multiselect && (\n <div className={styles.actions}>\n <button type=\"button\" className={styles.actionBtn} onClick={handleSelectAll}>\n Select All\n </button>\n <button type=\"button\" className={styles.actionBtn} onClick={handleClear}>\n Clear\n </button>\n </div>\n )}\n\n {/* Options list */}\n <div className={styles.options}>\n {currentOptions.map(option => (\n <div\n key={option.value}\n className={`${styles.option} ${selectedValues.includes(option.value) ? styles.selected : ''}`}\n onClick={() => handleSelect(option.value)}\n >\n {multiselect && (\n <span className={styles.checkbox}>\n {selectedValues.includes(option.value) && <CheckIcon />}\n </span>\n )}\n <span className={styles.optionLabel}>{option.label}</span>\n </div>\n ))}\n </div>\n\n {/* Apply button for multiselect */}\n {multiselect && (\n <div className={styles.footer}>\n <button\n type=\"button\"\n className={styles.applyBtn}\n onClick={() => setIsOpen(false)}\n >\n Apply\n </button>\n </div>\n )}\n </div>\n )}\n </div>\n );\n};\n\nSelectFilter.displayName = 'SelectFilter';\n\nexport default SelectFilter;\n","import React, { ReactNode } from 'react';\nimport styles from './ServiceToggle.module.css';\nimport { Toggle } from '../../atoms/Toggle';\n\nexport interface ServiceConfig {\n /** Unique key for the service */\n key: string;\n /** Display label */\n label: string;\n /** Icon element */\n icon?: ReactNode;\n /** Whether this service has a toggle (can be disabled) */\n hasToggle?: boolean;\n}\n\nexport interface ServiceToggleProps {\n /** Unique key for the service */\n serviceKey?: string;\n /** Display label */\n label: string;\n /** Icon element */\n icon?: ReactNode;\n /** Whether this service has a toggle (can be disabled) */\n hasToggle?: boolean;\n /** Whether the service is enabled */\n enabled?: boolean;\n /** Callback when toggle state changes */\n onToggle?: (enabled: boolean) => void;\n /** Callback when clicked (navigation) */\n onClick?: () => void;\n /** Disabled state */\n disabled?: boolean;\n}\n\nexport interface ServiceToggleListProps {\n /** List of services to display */\n services: ServiceConfig[];\n /** Map of enabled states by service key */\n enabledServices?: Record<string, boolean>;\n /** Callback when a service is toggled */\n onToggle?: (key: string, enabled: boolean) => void;\n /** Callback when a service is clicked */\n onClick?: (key: string) => void;\n /** Additional CSS class */\n className?: string;\n}\n\n/**\n * ServiceToggle component for a single service item.\n * Shows an icon, label, and optional toggle switch.\n */\nexport const ServiceToggle: React.FC<ServiceToggleProps> = ({\n label,\n icon,\n hasToggle = true,\n enabled = false,\n onToggle,\n onClick,\n disabled = false,\n}) => {\n const isClickable = !hasToggle || enabled;\n\n const handleClick = () => {\n if (isClickable && onClick) {\n onClick();\n }\n };\n\n return (\n <div className={styles.item}>\n <div \n className={`${styles.labelContainer} ${isClickable ? styles.clickable : ''}`}\n onClick={handleClick}\n >\n {icon && <span className={styles.icon}>{icon}</span>}\n <span className={styles.label}>{label}</span>\n </div>\n {hasToggle && (\n <Toggle\n checked={enabled}\n onChange={(checked) => onToggle?.(checked)}\n disabled={disabled}\n size=\"sm\"\n />\n )}\n </div>\n );\n};\n\n/**\n * ServiceToggleList component for displaying a list of services with toggles.\n * Used in travel request forms for service selection (Air, Hotel, Ground, etc.)\n */\nexport const ServiceToggleList: React.FC<ServiceToggleListProps> = ({\n services,\n enabledServices = {},\n onToggle,\n onClick,\n className,\n}) => {\n return (\n <div className={`${styles.list} ${className || ''}`}>\n {services.map((service) => (\n <ServiceToggle\n key={service.key}\n serviceKey={service.key}\n label={service.label}\n icon={service.icon}\n hasToggle={service.hasToggle}\n enabled={enabledServices[service.key] ?? false}\n onToggle={(enabled) => onToggle?.(service.key, enabled)}\n onClick={() => onClick?.(service.key)}\n />\n ))}\n </div>\n );\n};\n\nServiceToggle.displayName = 'ServiceToggle';\nServiceToggleList.displayName = 'ServiceToggleList';\n\nexport default ServiceToggleList;\n","import { useState } from 'react';\nimport styles from './SupplierTypeToggle.module.css';\n\nexport type SupplierTypeValue = 'A' | 'C' | 'H';\n\nexport const SUPPLIER_TYPE_OPTIONS: Array<{ value: SupplierTypeValue; label: string }> = [\n { value: 'A', label: 'Air' },\n { value: 'C', label: 'Car' },\n { value: 'H', label: 'Hotel' },\n];\n\nconst OPTIONS: Array<{ value: SupplierTypeValue | ''; label: string }> = [\n { value: '', label: 'All' },\n ...SUPPLIER_TYPE_OPTIONS,\n];\n\nexport interface SupplierTypeToggleProps {\n value?: SupplierTypeValue | '';\n defaultValue?: SupplierTypeValue | '';\n onChange?: (value: SupplierTypeValue | '') => void;\n disabled?: boolean;\n className?: string;\n}\n\nexport const SupplierTypeToggle = ({\n value,\n defaultValue = '',\n onChange,\n disabled = false,\n className = '',\n}: SupplierTypeToggleProps) => {\n const [internalValue, setInternalValue] = useState<SupplierTypeValue | ''>(defaultValue);\n const activeValue = value ?? internalValue;\n\n const handleSelect = (nextValue: SupplierTypeValue | '') => {\n if (disabled) return;\n if (value === undefined) setInternalValue(nextValue);\n onChange?.(nextValue);\n };\n\n return (\n <div className={[styles.toggle, className].filter(Boolean).join(' ')} role=\"group\" aria-label=\"Supplier type\">\n {OPTIONS.map((option) => (\n <button\n key={option.value || 'all'}\n type=\"button\"\n disabled={disabled}\n aria-pressed={activeValue === option.value}\n className={activeValue === option.value ? styles.active : ''}\n onClick={() => handleSelect(option.value)}\n >\n {option.label}\n </button>\n ))}\n </div>\n );\n};\n\nexport default SupplierTypeToggle;\n","import { ReactNode } from 'react';\nimport styles from './TeamHeader.module.css';\n\nexport interface TeamHeaderProps {\n /** Fully composed title. Overrides teamCode/teamName when supplied. */\n title?: ReactNode;\n /** Team code (e.g., 'MBB') */\n teamCode?: string;\n /** Team name/description */\n teamName?: string;\n /** Pre-title text (e.g., 'Team Management') */\n pretitle?: string;\n /** Back link href */\n backHref?: string;\n /** Callback for back button click */\n onBack?: () => void;\n /** Right side actions */\n actions?: ReactNode;\n /** Additional class */\n className?: string;\n}\n\nconst BackIcon = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <line x1=\"19\" y1=\"12\" x2=\"5\" y2=\"12\"/>\n <polyline points=\"12 19 5 12 12 5\"/>\n </svg>\n);\n\n/**\n * TeamHeader - Header component for team management pages\n */\nexport const TeamHeader = ({\n title: suppliedTitle,\n teamCode,\n teamName,\n pretitle = 'Team Management',\n backHref,\n onBack,\n actions,\n className = '',\n}: TeamHeaderProps) => {\n const headerClasses = [\n styles.header,\n className,\n ].filter(Boolean).join(' ');\n\n const title = suppliedTitle ?? (teamCode && teamName \n ? `${teamCode} - ${teamName}` \n : teamName || teamCode || '');\n\n const handleBack = () => {\n if (onBack) {\n onBack();\n } else if (backHref) {\n // Allow consumer to handle navigation\n window.location.href = backHref;\n }\n };\n\n return (\n <div className={headerClasses}>\n <div className={styles.left}>\n {(backHref || onBack) && (\n <button\n type=\"button\"\n className={styles.backButton}\n onClick={handleBack}\n aria-label=\"Go back\"\n >\n <BackIcon />\n </button>\n )}\n <div className={styles.titles}>\n {pretitle && <span className={styles.pretitle}>{pretitle}</span>}\n <h1 className={styles.title}>{title} </h1>\n </div>\n </div>\n {actions && (\n <div className={styles.actions}>\n {actions}\n </div>\n )}\n </div>\n );\n};\n\nexport interface TeamSubMenuTab {\n id: string;\n label: string;\n}\n\nexport interface TeamSubMenuProps {\n tabs?: TeamSubMenuTab[];\n activeTab?: string;\n onTabChange?: (tabId: string) => void;\n className?: string;\n}\n\nconst DEFAULT_TABS: TeamSubMenuTab[] = [\n { id: 'profile', label: 'Profile' },\n { id: 'roster', label: 'Roster' },\n { id: 'equipment', label: 'Equipment' },\n { id: 'user-access', label: 'User Access' },\n];\n\n/** Router-agnostic counterpart of Hub's team-management submenu. */\nexport const TeamSubMenu = ({ tabs = DEFAULT_TABS, activeTab, onTabChange, className = '' }: TeamSubMenuProps) => (\n <nav className={[styles.subMenu, className].filter(Boolean).join(' ')} aria-label=\"Team management sections\">\n {tabs.map((tab) => (\n <button\n key={tab.id}\n type=\"button\"\n className={activeTab === tab.id ? styles.activeTab : ''}\n aria-current={activeTab === tab.id ? 'page' : undefined}\n onClick={() => onTabChange?.(tab.id)}\n >\n {tab.label}\n </button>\n ))}\n </nav>\n);\n\nTeamHeader.displayName = 'TeamHeader';\nTeamSubMenu.displayName = 'TeamSubMenu';\n\nexport default TeamHeader;\n","import React, { ReactNode } from 'react';\nimport styles from './TripSegment.module.css';\n\nexport interface FlightData {\n type: 'commercial' | 'charter';\n departure: string;\n arrival: string;\n departureDate: string;\n departureTime?: string;\n arrivalDate?: string;\n arrivalTime?: string;\n airline?: string;\n flightNumber?: string;\n}\n\nexport interface GroundData {\n type: 'bus' | 'van' | 'car' | 'limo';\n company?: string;\n pickupLocation: string;\n dropoffLocation: string;\n pickupDate: string;\n pickupTime?: string;\n vehicleCount?: number;\n}\n\nexport interface HotelData {\n name: string;\n address?: string;\n city?: string;\n checkIn: string;\n checkOut: string;\n roomCount?: number;\n confirmationNumber?: string;\n}\n\nexport type SegmentVariant = 'light' | 'dark';\n\nexport interface TripSegmentProps {\n /** Segment type */\n type: 'air' | 'ground' | 'hotel';\n /** Visual variant */\n variant?: SegmentVariant;\n /** Additional CSS class */\n className?: string;\n /** Content to render */\n children: ReactNode;\n}\n\nexport interface AirSegmentProps {\n flights: FlightData[];\n variant?: SegmentVariant;\n className?: string;\n}\n\nexport interface GroundSegmentProps {\n segments: GroundData[];\n variant?: SegmentVariant;\n className?: string;\n}\n\nexport interface HotelSegmentProps {\n hotels: HotelData[];\n variant?: SegmentVariant;\n className?: string;\n}\n\nconst PlaneIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M21 16v-2l-8-5V3.5a1.5 1.5 0 0 0-3 0V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5Z\"/>\n </svg>\n);\n\nconst BusIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <rect x=\"4\" y=\"4\" width=\"16\" height=\"14\" rx=\"2\"/>\n <path d=\"M8 6v6\"/>\n <path d=\"M16 6v6\"/>\n <circle cx=\"8\" cy=\"16\" r=\"1\"/>\n <circle cx=\"16\" cy=\"16\" r=\"1\"/>\n </svg>\n);\n\nconst HotelIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M3 21h18\"/>\n <path d=\"M19 21V5a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v16\"/>\n <path d=\"M9 21v-4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v4\"/>\n </svg>\n);\n\nconst ArrowIcon = () => (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/>\n <polyline points=\"12 5 19 12 12 19\"/>\n </svg>\n);\n\n/**\n * Base TripSegment component wrapper\n */\nexport const TripSegment: React.FC<TripSegmentProps> = ({\n type: _type,\n variant = 'light',\n className = '',\n children,\n}) => {\n return (\n <div className={`${styles.segment} ${styles[variant]} ${className}`}>\n {children}\n </div>\n );\n};\n\n/**\n * AirSegment component for displaying flight information\n */\nexport const AirSegment: React.FC<AirSegmentProps> = ({\n flights,\n variant = 'light',\n className = '',\n}) => {\n if (!flights || flights.length === 0) {\n return (\n <TripSegment type=\"air\" variant={variant} className={className}>\n <span className={styles.empty}>No flights</span>\n </TripSegment>\n );\n }\n\n return (\n <TripSegment type=\"air\" variant={variant} className={className}>\n {flights.map((flight, i) => (\n <div key={i} className={styles.item}>\n <div className={styles.itemHeader}>\n <PlaneIcon />\n <span className={styles.itemType}>\n {flight.type === 'charter' ? 'Charter' : 'Commercial'}\n </span>\n </div>\n <div className={styles.route}>\n <span className={styles.location}>{flight.departure}</span>\n <ArrowIcon />\n <span className={styles.location}>{flight.arrival}</span>\n </div>\n <div className={styles.details}>\n <span>{flight.departureDate}</span>\n {flight.departureTime && <span>{flight.departureTime}</span>}\n </div>\n {flight.airline && (\n <div className={styles.details}>\n <span>{flight.airline}</span>\n {flight.flightNumber && <span>#{flight.flightNumber}</span>}\n </div>\n )}\n </div>\n ))}\n </TripSegment>\n );\n};\n\n/**\n * GroundSegment component for displaying ground transportation\n */\nexport const GroundSegment: React.FC<GroundSegmentProps> = ({\n segments,\n variant = 'light',\n className = '',\n}) => {\n if (!segments || segments.length === 0) {\n return (\n <TripSegment type=\"ground\" variant={variant} className={className}>\n <span className={styles.empty}>No ground transportation</span>\n </TripSegment>\n );\n }\n\n return (\n <TripSegment type=\"ground\" variant={variant} className={className}>\n {segments.map((segment, i) => (\n <div key={i} className={styles.item}>\n <div className={styles.itemHeader}>\n <BusIcon />\n <span className={styles.itemType}>\n {segment.type.charAt(0).toUpperCase() + segment.type.slice(1)}\n </span>\n </div>\n <div className={styles.route}>\n <span className={styles.location}>{segment.pickupLocation}</span>\n <ArrowIcon />\n <span className={styles.location}>{segment.dropoffLocation}</span>\n </div>\n <div className={styles.details}>\n <span>{segment.pickupDate}</span>\n {segment.pickupTime && <span>{segment.pickupTime}</span>}\n </div>\n {segment.company && (\n <div className={styles.details}>\n <span>{segment.company}</span>\n {segment.vehicleCount && <span>{segment.vehicleCount} vehicles</span>}\n </div>\n )}\n </div>\n ))}\n </TripSegment>\n );\n};\n\n/**\n * HotelSegment component for displaying hotel information\n */\nexport const HotelSegment: React.FC<HotelSegmentProps> = ({\n hotels,\n variant = 'light',\n className = '',\n}) => {\n if (!hotels || hotels.length === 0) {\n return (\n <TripSegment type=\"hotel\" variant={variant} className={className}>\n <span className={styles.empty}>No hotels</span>\n </TripSegment>\n );\n }\n\n return (\n <TripSegment type=\"hotel\" variant={variant} className={className}>\n {hotels.map((hotel, i) => (\n <div key={i} className={styles.item}>\n <div className={styles.itemHeader}>\n <HotelIcon />\n <span className={styles.itemName}>{hotel.name}</span>\n </div>\n {hotel.city && (\n <div className={styles.details}>\n <span>{hotel.city}</span>\n </div>\n )}\n <div className={styles.dates}>\n <span>{hotel.checkIn}</span>\n <span>–</span>\n <span>{hotel.checkOut}</span>\n </div>\n {hotel.roomCount && (\n <div className={styles.details}>\n <span>{hotel.roomCount} rooms</span>\n </div>\n )}\n </div>\n ))}\n </TripSegment>\n );\n};\n\nTripSegment.displayName = 'TripSegment';\nAirSegment.displayName = 'AirSegment';\nGroundSegment.displayName = 'GroundSegment';\nHotelSegment.displayName = 'HotelSegment';\n\nexport default TripSegment;\n","import React, { useState, HTMLAttributes } from 'react';\nimport { ChevronLeftIcon, ChevronRightIcon } from '../../atoms/Icons';\nimport styles from './Sidenav.module.css';\n\nexport interface SidenavItem {\n /** Unique key for the item */\n key: string;\n /** Display label */\n label: string;\n /** Icon component to display */\n icon: React.ReactNode;\n /** Whether item opens in new tab */\n external?: boolean;\n /** Click handler */\n onClick?: () => void;\n}\n\nexport interface SidenavProps extends HTMLAttributes<HTMLElement> {\n /** Logo component or image for expanded state */\n logo?: React.ReactNode;\n /** Logo component or image for collapsed state */\n logoCollapsed?: React.ReactNode;\n /** Navigation items */\n items: SidenavItem[];\n /** Currently active item key */\n activeKey?: string;\n /** Callback when an item is clicked */\n onItemClick?: (key: string) => void;\n /** Whether the sidenav starts expanded */\n defaultExpanded?: boolean;\n /** Footer content (e.g., user avatar) */\n footer?: React.ReactNode;\n}\n\n/**\n * Sidenav component for main navigation.\n * Supports expanded and collapsed states with icons and labels.\n */\nexport const Sidenav: React.FC<SidenavProps> = ({\n logo,\n logoCollapsed,\n items,\n activeKey,\n onItemClick,\n defaultExpanded = true,\n footer,\n className = '',\n ...props\n}) => {\n const [expanded, setExpanded] = useState(defaultExpanded);\n\n const classNames = [\n styles.sidenav,\n expanded ? styles.expanded : styles.collapsed,\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const handleItemClick = (item: SidenavItem) => {\n if (item.onClick) {\n item.onClick();\n }\n if (onItemClick) {\n onItemClick(item.key);\n }\n };\n\n return (\n <aside className={classNames} {...props}>\n <button\n className={styles.toggle}\n onClick={() => setExpanded(!expanded)}\n aria-label={expanded ? 'Collapse sidebar' : 'Expand sidebar'}\n >\n {expanded ? (\n <ChevronLeftIcon size={16} />\n ) : (\n <ChevronRightIcon size={16} />\n )}\n </button>\n\n <div className={styles.logoContainer}>\n {expanded ? logo : logoCollapsed || logo}\n </div>\n\n <nav className={styles.nav}>\n {items.map((item) => {\n const isActive = item.key === activeKey;\n const itemClasses = [\n styles.navItem,\n isActive ? styles.active : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button\n key={item.key}\n className={itemClasses}\n onClick={() => handleItemClick(item)}\n aria-current={isActive ? 'page' : undefined}\n title={!expanded ? item.label : undefined}\n >\n <span className={styles.icon}>{item.icon}</span>\n {expanded && <span className={styles.label}>{item.label}</span>}\n </button>\n );\n })}\n </nav>\n\n {footer && <div className={styles.footer}>{footer}</div>}\n </aside>\n );\n};\n\nSidenav.displayName = 'Sidenav';\n\nexport default Sidenav;\n","import React, { HTMLAttributes, useState, useRef, useEffect } from 'react';\nimport { ChevronDownIcon } from '../../atoms/Icons';\nimport styles from './Topbar.module.css';\n\nexport interface AccountInfo {\n /** Account code/abbreviation */\n code: string;\n /** Full account name */\n name: string;\n}\n\nexport interface TopbarProps extends HTMLAttributes<HTMLElement> {\n /** Current account information */\n account?: AccountInfo;\n /** List of available accounts for dropdown */\n accounts?: AccountInfo[];\n /** Callback when account is selected */\n onAccountSelect?: (account: AccountInfo) => void;\n /** Callback when account selector is clicked (legacy, use onAccountSelect for dropdown) */\n onAccountClick?: () => void;\n /** Actions to display on the right side */\n actions?: React.ReactNode;\n /** Left side content (e.g., account selector) */\n leftContent?: React.ReactNode;\n}\n\n/**\n * Topbar component for the main header.\n * Includes account selector with dropdown and action buttons.\n */\nexport const Topbar: React.FC<TopbarProps> = ({\n account,\n accounts,\n onAccountSelect,\n onAccountClick,\n actions,\n leftContent,\n className = '',\n ...props\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const [searchQuery, setSearchQuery] = useState('');\n const dropdownRef = useRef<HTMLDivElement>(null);\n const searchInputRef = useRef<HTMLInputElement>(null);\n\n const classNames = [styles.topbar, className].filter(Boolean).join(' ');\n\n // Close dropdown on outside click\n useEffect(() => {\n if (!isOpen) return;\n \n const handleClickOutside = (event: MouseEvent) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n setSearchQuery('');\n }\n };\n\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n setIsOpen(false);\n setSearchQuery('');\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n document.addEventListener('keydown', handleEscape);\n \n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n document.removeEventListener('keydown', handleEscape);\n };\n }, [isOpen]);\n\n // Focus search input when dropdown opens\n useEffect(() => {\n if (isOpen && searchInputRef.current) {\n searchInputRef.current.focus();\n }\n }, [isOpen]);\n\n const handleToggle = () => {\n if (accounts && accounts.length > 0) {\n setIsOpen(!isOpen);\n if (!isOpen) {\n setSearchQuery('');\n }\n } else if (onAccountClick) {\n onAccountClick();\n }\n };\n\n const handleSelectAccount = (selectedAccount: AccountInfo) => {\n onAccountSelect?.(selectedAccount);\n setIsOpen(false);\n setSearchQuery('');\n };\n\n const filteredAccounts = accounts?.filter(acc =>\n acc.name.toLowerCase().includes(searchQuery.toLowerCase()) ||\n acc.code.toLowerCase().includes(searchQuery.toLowerCase())\n ) || [];\n\n const hasDropdown = accounts && accounts.length > 0;\n\n return (\n <header className={classNames} {...props}>\n <div className={styles.left}>\n {leftContent}\n {account && (\n <div className={styles.accountWrapper} ref={dropdownRef}>\n <button \n className={`${styles.accountSelector} ${isOpen ? styles.open : ''}`} \n onClick={handleToggle}\n aria-expanded={isOpen}\n aria-haspopup={hasDropdown ? 'listbox' : undefined}\n >\n <span className={styles.accountCode}>{account.code}</span>\n <span className={styles.accountName}>{account.name}</span>\n {hasDropdown && (\n <ChevronDownIcon \n size={16} \n className={`${styles.chevron} ${isOpen ? styles.chevronOpen : ''}`} \n />\n )}\n </button>\n\n {isOpen && hasDropdown && (\n <div className={styles.dropdown} role=\"listbox\">\n <div className={styles.dropdownSearch}>\n <svg \n className={styles.searchIcon}\n width=\"16\" \n height=\"16\" \n viewBox=\"0 0 24 24\" \n fill=\"none\" \n stroke=\"currentColor\" \n strokeWidth=\"2\"\n >\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n </svg>\n <input\n ref={searchInputRef}\n type=\"text\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n placeholder=\"Search accounts...\"\n className={styles.searchInput}\n />\n </div>\n <div className={styles.dropdownList}>\n {filteredAccounts.length > 0 ? (\n filteredAccounts.map((acc) => (\n <button\n key={acc.code}\n className={`${styles.dropdownItem} ${acc.code === account.code ? styles.selected : ''}`}\n onClick={() => handleSelectAccount(acc)}\n role=\"option\"\n aria-selected={acc.code === account.code}\n >\n <span className={styles.dropdownItemCode}>{acc.code}</span>\n <span className={styles.dropdownItemName}>{acc.name}</span>\n </button>\n ))\n ) : (\n <div className={styles.noResults}>No accounts found</div>\n )}\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n {actions && <div className={styles.actions}>{actions}</div>}\n </header>\n );\n};\n\nTopbar.displayName = 'Topbar';\n\nexport default Topbar;\n","import React from 'react';\nimport { Sidenav, SidenavItem } from '../Sidenav/Sidenav';\nimport { Topbar, AccountInfo } from '../Topbar/Topbar';\nimport styles from './AppLayout.module.css';\n\nexport interface AppLayoutProps {\n /** Navigation items for the sidenav */\n navItems?: SidenavItem[];\n /** Currently active navigation item key */\n activeNavKey?: string;\n /** Logo element for the sidenav */\n logo?: React.ReactNode;\n /** Collapsed logo element for the sidenav */\n collapsedLogo?: React.ReactNode;\n /** Account info for the topbar */\n account?: AccountInfo;\n /** Whether the sidenav starts expanded */\n defaultExpanded?: boolean;\n /** Callback when navigation item is clicked */\n onNavItemClick?: (key: string) => void;\n /** Callback when account selector is clicked */\n onAccountClick?: () => void;\n /** Main content to render */\n children: React.ReactNode;\n /** Footer content for the sidenav */\n navFooter?: React.ReactNode;\n /** Additional actions for the topbar */\n topbarActions?: React.ReactNode;\n /** Additional CSS class */\n className?: string;\n}\n\nexport const AppLayout: React.FC<AppLayoutProps> = ({\n navItems = [],\n activeNavKey,\n logo,\n collapsedLogo,\n account,\n defaultExpanded = true,\n onNavItemClick,\n onAccountClick,\n children,\n navFooter,\n topbarActions,\n className,\n}) => {\n return (\n <div className={`${styles.appLayout} ${className || ''}`}>\n <Sidenav\n items={navItems}\n activeKey={activeNavKey}\n defaultExpanded={defaultExpanded}\n onItemClick={onNavItemClick}\n logo={logo}\n logoCollapsed={collapsedLogo}\n footer={navFooter}\n />\n <div className={styles.mainArea}>\n <Topbar\n account={account}\n onAccountClick={onAccountClick}\n actions={topbarActions}\n />\n <main className={styles.content}>\n {children}\n </main>\n </div>\n </div>\n );\n};\n\nexport default AppLayout;\n","import React, { HTMLAttributes, forwardRef } from 'react';\nimport styles from './Card.module.css';\n\nexport type CardVariant = 'default' | 'bordered' | 'elevated';\nexport type CardPadding = 'none' | 'sm' | 'md' | 'lg';\n\nexport interface CardProps extends HTMLAttributes<HTMLDivElement> {\n /** Visual style variant */\n variant?: CardVariant;\n /** Internal padding */\n padding?: CardPadding;\n /** Makes the card interactive/clickable */\n interactive?: boolean;\n}\n\n/**\n * Card component for grouping related content.\n */\nexport const Card = forwardRef<HTMLDivElement, CardProps>(\n (\n {\n variant = 'default',\n padding = 'md',\n interactive = false,\n className = '',\n children,\n ...props\n },\n ref\n ) => {\n const classNames = [\n styles.card,\n styles[variant],\n styles[`padding-${padding}`],\n interactive ? styles.interactive : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div ref={ref} className={classNames} {...props}>\n {children}\n </div>\n );\n }\n);\n\nCard.displayName = 'Card';\n\nexport interface CardHeaderProps extends HTMLAttributes<HTMLDivElement> {\n /** Title text */\n title?: string;\n /** Subtitle text */\n subtitle?: string;\n /** Actions to display in the header */\n actions?: React.ReactNode;\n}\n\nexport const CardHeader: React.FC<CardHeaderProps> = ({\n title,\n subtitle,\n actions,\n className = '',\n children,\n ...props\n}) => {\n const classNames = [styles.header, className].filter(Boolean).join(' ');\n\n return (\n <div className={classNames} {...props}>\n <div className={styles.headerContent}>\n {title && <h3 className={styles.title}>{title}</h3>}\n {subtitle && <p className={styles.subtitle}>{subtitle}</p>}\n {children}\n </div>\n {actions && <div className={styles.actions}>{actions}</div>}\n </div>\n );\n};\n\nCardHeader.displayName = 'CardHeader';\n\nexport interface CardBodyProps extends HTMLAttributes<HTMLDivElement> {}\n\nexport const CardBody: React.FC<CardBodyProps> = ({\n className = '',\n children,\n ...props\n}) => {\n const classNames = [styles.body, className].filter(Boolean).join(' ');\n\n return (\n <div className={classNames} {...props}>\n {children}\n </div>\n );\n};\n\nCardBody.displayName = 'CardBody';\n\nexport interface CardFooterProps extends HTMLAttributes<HTMLDivElement> {}\n\nexport const CardFooter: React.FC<CardFooterProps> = ({\n className = '',\n children,\n ...props\n}) => {\n const classNames = [styles.footer, className].filter(Boolean).join(' ');\n\n return (\n <div className={classNames} {...props}>\n {children}\n </div>\n );\n};\n\nCardFooter.displayName = 'CardFooter';\n\nexport default Card;\n","import { ReactNode } from 'react';\nimport styles from './ContactList.module.css';\n\nexport interface Contact {\n /** Contact ID */\n id: string | number;\n /** Contact name */\n name: string;\n /** Contact email */\n email?: string;\n /** Contact phone */\n phone?: string;\n /** Contact role/type */\n role?: string;\n /** Whether this is a primary contact */\n isPrimary?: boolean;\n /** Whether this is a secondary contact */\n isSecondary?: boolean;\n}\n\nexport interface ContactListProps {\n /** Title of the contact list */\n title?: string;\n /** Tooltip content */\n tooltip?: ReactNode;\n /** List of contacts */\n contacts: Contact[];\n /** Callback when contact is edited */\n onEdit?: (contact: Contact) => void;\n /** Callback when contact is removed */\n onRemove?: (contact: Contact) => void;\n /** Callback when add is clicked */\n onAdd?: () => void;\n /** Whether to show add button */\n showAdd?: boolean;\n /** Label for add button */\n addLabel?: string;\n /** Alert/info message at top */\n alert?: ReactNode;\n /** Additional class */\n className?: string;\n}\n\nconst InfoIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"/>\n <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"/>\n <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"/>\n </svg>\n);\n\nconst EditIcon = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"/>\n <path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"/>\n </svg>\n);\n\nconst TrashIcon = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <polyline points=\"3 6 5 6 21 6\"/>\n <path d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"/>\n </svg>\n);\n\nconst PlusIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"/>\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/>\n </svg>\n);\n\n/**\n * ContactList - Displays a list of contacts with edit/remove actions\n */\nexport const ContactList = ({\n title = 'Contacts',\n tooltip,\n contacts,\n onEdit,\n onRemove,\n onAdd,\n showAdd = true,\n addLabel = 'Add Contact',\n alert,\n className = '',\n}: ContactListProps) => {\n const listClasses = [\n styles.container,\n className,\n ].filter(Boolean).join(' ');\n\n return (\n <div className={listClasses}>\n {alert && (\n <div className={styles.alert}>\n {alert}\n </div>\n )}\n\n <div className={styles.card}>\n <div className={styles.header}>\n <div className={styles.titleRow}>\n <h3 className={styles.title}>{title}</h3>\n {tooltip && (\n <span className={styles.tooltip}>\n <InfoIcon />\n </span>\n )}\n </div>\n </div>\n\n <div className={styles.list}>\n {contacts.map((contact) => (\n <div key={contact.id} className={styles.contactItem}>\n <div className={styles.contactInfo}>\n <div className={styles.contactName}>\n {contact.name}\n {contact.isPrimary && (\n <span className={styles.badge}>Primary</span>\n )}\n {contact.isSecondary && (\n <span className={`${styles.badge} ${styles.badgeSecondary}`}>Secondary</span>\n )}\n </div>\n {contact.role && (\n <div className={styles.contactRole}>{contact.role}</div>\n )}\n <div className={styles.contactDetails}>\n {contact.email && (\n <a href={`mailto:${contact.email}`} className={styles.contactLink}>\n {contact.email}\n </a>\n )}\n {contact.phone && (\n <span className={styles.contactPhone}>{contact.phone}</span>\n )}\n </div>\n </div>\n <div className={styles.contactActions}>\n {onEdit && (\n <button\n type=\"button\"\n className={styles.actionButton}\n onClick={() => onEdit(contact)}\n aria-label=\"Edit contact\"\n >\n <EditIcon />\n </button>\n )}\n {onRemove && (\n <button\n type=\"button\"\n className={`${styles.actionButton} ${styles.actionButtonDanger}`}\n onClick={() => onRemove(contact)}\n aria-label=\"Remove contact\"\n >\n <TrashIcon />\n </button>\n )}\n </div>\n </div>\n ))}\n\n {contacts.length === 0 && (\n <div className={styles.empty}>No contacts added</div>\n )}\n </div>\n\n {showAdd && onAdd && (\n <div className={styles.footer}>\n <button\n type=\"button\"\n className={styles.addButton}\n onClick={onAdd}\n >\n <PlusIcon />\n {addLabel}\n </button>\n </div>\n )}\n </div>\n </div>\n );\n};\n\nContactList.displayName = 'ContactList';\n\nexport default ContactList;\n","import React, { useEffect, useCallback } from 'react';\nimport styles from './Drawer.module.css';\n\nexport type DrawerPosition = 'left' | 'right' | 'top' | 'bottom';\nexport type DrawerSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';\n\nexport interface DrawerProps {\n /** Whether the drawer is open */\n isOpen: boolean;\n /** Callback when drawer should close */\n onClose: () => void;\n /** Position of the drawer */\n position?: DrawerPosition;\n /** Size of the drawer */\n size?: DrawerSize;\n /** Drawer content */\n children: React.ReactNode;\n /** Whether clicking backdrop closes drawer */\n closeOnBackdropClick?: boolean;\n /** Whether pressing Escape closes drawer */\n closeOnEscape?: boolean;\n /** Whether to show backdrop */\n showBackdrop?: boolean;\n /** Additional CSS class */\n className?: string;\n}\n\nexport interface DrawerHeaderProps {\n /** Header title */\n title?: string;\n /** Header content */\n children?: React.ReactNode;\n /** Whether to show close button */\n showClose?: boolean;\n /** Close callback */\n onClose?: () => void;\n /** Additional CSS class */\n className?: string;\n}\n\nexport interface DrawerBodyProps {\n /** Body content */\n children: React.ReactNode;\n /** Additional CSS class */\n className?: string;\n}\n\nexport interface DrawerFooterProps {\n /** Footer content */\n children: React.ReactNode;\n /** Additional CSS class */\n className?: string;\n}\n\nexport const DrawerHeader: React.FC<DrawerHeaderProps> = ({\n title,\n children,\n showClose = true,\n onClose,\n className = '',\n}) => (\n <div className={`${styles.header} ${className}`}>\n <div className={styles.headerContent}>\n {title && <h2 className={styles.title}>{title}</h2>}\n {children}\n </div>\n {showClose && (\n <button\n type=\"button\"\n className={styles.closeButton}\n onClick={onClose}\n aria-label=\"Close drawer\"\n >\n <svg\n width=\"20\"\n height=\"20\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n )}\n </div>\n);\n\nexport const DrawerBody: React.FC<DrawerBodyProps> = ({ children, className = '' }) => (\n <div className={`${styles.body} ${className}`}>{children}</div>\n);\n\nexport const DrawerFooter: React.FC<DrawerFooterProps> = ({ children, className = '' }) => (\n <div className={`${styles.footer} ${className}`}>{children}</div>\n);\n\nexport const Drawer: React.FC<DrawerProps> & {\n Header: typeof DrawerHeader;\n Body: typeof DrawerBody;\n Footer: typeof DrawerFooter;\n} = ({\n isOpen,\n onClose,\n position = 'right',\n size = 'md',\n children,\n closeOnBackdropClick = true,\n closeOnEscape = true,\n showBackdrop = true,\n className = '',\n}) => {\n const handleEscape = useCallback(\n (e: KeyboardEvent) => {\n if (closeOnEscape && e.key === 'Escape') {\n onClose();\n }\n },\n [closeOnEscape, onClose]\n );\n\n useEffect(() => {\n if (isOpen) {\n document.addEventListener('keydown', handleEscape);\n document.body.style.overflow = 'hidden';\n }\n\n return () => {\n document.removeEventListener('keydown', handleEscape);\n document.body.style.overflow = '';\n };\n }, [isOpen, handleEscape]);\n\n const handleBackdropClick = () => {\n if (closeOnBackdropClick) {\n onClose();\n }\n };\n\n if (!isOpen) return null;\n\n return (\n <div className={styles.container}>\n {showBackdrop && (\n <div\n className={`${styles.backdrop} ${isOpen ? styles.backdropOpen : ''}`}\n onClick={handleBackdropClick}\n />\n )}\n <div\n className={`${styles.drawer} ${styles[position]} ${styles[`size${size.charAt(0).toUpperCase()}${size.slice(1)}`]} ${isOpen ? styles.drawerOpen : ''} ${className}`}\n role=\"dialog\"\n aria-modal=\"true\"\n >\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child) && child.type === DrawerHeader) {\n return React.cloneElement(child as React.ReactElement<DrawerHeaderProps>, {\n onClose,\n });\n }\n return child;\n })}\n </div>\n </div>\n );\n};\n\nDrawer.Header = DrawerHeader;\nDrawer.Body = DrawerBody;\nDrawer.Footer = DrawerFooter;\n\nexport default Drawer;\n","import { useMemo, useState } from 'react';\nimport { CheckIcon, CloseIcon, SearchIcon } from '../../atoms/Icons';\nimport styles from './DueDatesDrawer.module.css';\n\nexport interface TravelDueDateItem {\n duedate: string;\n completeddatetime: string;\n tasktitle: string;\n taskid: number;\n status: string;\n completedby: string;\n description: string;\n servicetype?: string;\n sportCode: string;\n tripId: string;\n tripName: string;\n masterTripGUID?: string;\n}\n\nexport type GroupedTravelDueDates = Record<string, TravelDueDateItem[]>;\n\nexport interface DueDatesDrawerProps {\n isOpen: boolean;\n dueDates: GroupedTravelDueDates;\n selectedDate?: string | null;\n selectedTrip?: string | null;\n onClose: () => void;\n onToggle?: (item: TravelDueDateItem) => void;\n onTaskClick?: (masterTripGUID: string) => void;\n className?: string;\n}\n\nexport const isTravelDueDateCompleted = (item: Pick<TravelDueDateItem, 'status' | 'completeddatetime'>) => item.status.trim().toLowerCase() === 'completed' || !!item.completeddatetime;\n\nconst parseLocalDate = (value: string) => {\n const iso = value.match(/^(\\d{4})-(\\d{2})-(\\d{2})/);\n if (iso) return new Date(Number(iso[1]), Number(iso[2]) - 1, Number(iso[3]));\n const date = new Date(value.replace('+0000', ' GMT'));\n return Number.isNaN(date.getTime()) ? null : date;\n};\n\nconst formatDate = (value: string, options: Intl.DateTimeFormatOptions) => parseLocalDate(value)?.toLocaleDateString('en-US', options) ?? 'Invalid Date';\nconst sportColor = (code: string) => code.toUpperCase().startsWith('W') ? '#FFA99A' : code.toUpperCase().startsWith('X') ? '#D1C1C3' : '#8AC6D9';\n\nconst DueDateCard = ({ item, onToggle, onTaskClick }: { item: TravelDueDateItem; onToggle?: DueDatesDrawerProps['onToggle']; onTaskClick?: DueDatesDrawerProps['onTaskClick'] }) => {\n const completed = isTravelDueDateCompleted(item);\n const dueDate = parseLocalDate(item.duedate);\n const pastDue = !!dueDate && dueDate < new Date() && !completed;\n return (\n <article className={styles.card}>\n <div className={styles.cardTitle}>\n <button type=\"button\" aria-label={`${completed ? 'Reopen' : 'Complete'} ${item.tasktitle}`} className={[styles.status, completed ? styles.completed : pastDue ? styles.pastDue : ''].filter(Boolean).join(' ')} onClick={() => onToggle?.(item)}>{completed ? <CheckIcon size={12} /> : null}</button>\n <h5>{item.tasktitle}</h5>\n </div>\n {item.description && <p>{item.description}</p>}\n <div className={styles.tags}>\n <span style={{ backgroundColor: sportColor(item.sportCode) }}>{item.sportCode}</span>\n <button type=\"button\" disabled={!item.masterTripGUID || !onTaskClick} onClick={() => item.masterTripGUID && onTaskClick?.(item.masterTripGUID)}>{item.tripName}</button>\n </div>\n {completed && item.completeddatetime && <div className={styles.completion}><CheckIcon size={14} /><span><em>on</em> {formatDate(item.completeddatetime, { month: 'numeric', day: 'numeric', year: '2-digit' })} <em>by</em> {item.completedby}</span></div>}\n </article>\n );\n};\n\n/** Hub's searchable, status-aware due-dates drawer. */\nexport const DueDatesDrawer = ({ isOpen, dueDates, selectedDate, selectedTrip, onClose, onToggle, onTaskClick, className = '' }: DueDatesDrawerProps) => {\n const [search, setSearch] = useState('');\n const filtered = useMemo(() => Object.fromEntries(Object.entries(dueDates).flatMap(([date, items]) => {\n if (selectedDate && date !== selectedDate) return [];\n const normalized = search.trim().toLowerCase();\n const matches = items.filter((item) => (!selectedTrip || item.masterTripGUID === String(selectedTrip)) && (!normalized || item.tasktitle.toLowerCase().includes(normalized) || item.sportCode.toLowerCase().includes(normalized) || item.description.toLowerCase().includes(normalized)));\n return matches.length ? [[date, matches]] : [];\n })), [dueDates, search, selectedDate, selectedTrip]) as GroupedTravelDueDates;\n\n return (\n <aside className={[styles.drawer, isOpen ? styles.open : '', className].filter(Boolean).join(' ')} aria-hidden={!isOpen} aria-label=\"Due Dates\">\n <header><h3>Due Dates</h3><button type=\"button\" aria-label=\"Close due dates\" onClick={onClose}><CloseIcon size={24} /></button></header>\n <div className={styles.body}>\n <label className={styles.search}><SearchIcon size={16} /><input type=\"search\" placeholder=\"Search\" value={search} onChange={(event) => setSearch(event.target.value)} /></label>\n {!Object.keys(filtered).length ? <div className={styles.empty}>No due dates found.</div> : Object.entries(filtered).map(([date, items]) => (\n <section key={date}><h4>{formatDate(date, { month: 'long', day: 'numeric', year: 'numeric' })}</h4><div className={styles.cards}>{items.map((item) => <DueDateCard key={`${date}-${item.taskid}`} item={item} onToggle={onToggle} onTaskClick={onTaskClick} />)}</div></section>\n ))}\n </div>\n </aside>\n );\n};\n\nexport default DueDatesDrawer;\n","import { ReactNode } from 'react';\nimport styles from './MembershipPrograms.module.css';\n\nexport interface MembershipProgram {\n /** Unique identifier */\n id: string | number;\n /** Program type (airline, hotel, car rental, etc.) */\n type: 'airline' | 'hotel' | 'car' | 'other';\n /** Provider name */\n provider: string;\n /** Program name */\n programName?: string;\n /** Membership number */\n membershipNumber: string;\n /** Member status/tier */\n status?: string;\n}\n\nexport interface MembershipProgramsProps {\n /** Title of the section */\n title?: string;\n /** Programs to display */\n programs: MembershipProgram[];\n /** Handler for editing a program */\n onEdit?: (program: MembershipProgram) => void;\n /** Handler for removing a program */\n onRemove?: (program: MembershipProgram) => void;\n /** Handler for adding a program */\n onAdd?: () => void;\n /** Alert/info message at top */\n alert?: ReactNode;\n /** Whether in loading state */\n isLoading?: boolean;\n /** Empty state message */\n emptyMessage?: string;\n /** Additional class */\n className?: string;\n}\n\nconst PlaneIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M21 16v-2l-8-5V3.5a1.5 1.5 0 0 0-3 0V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5Z\"/>\n </svg>\n);\n\nconst HotelIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M3 21h18\"/>\n <path d=\"M19 21V5a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v16\"/>\n <path d=\"M9 21v-4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v4\"/>\n </svg>\n);\n\nconst CarIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M7 17m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0\"/>\n <path d=\"M17 17m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0\"/>\n <path d=\"M5 17h-2v-6l2 -5h9l4 5h1a2 2 0 0 1 2 2v4h-2m-4 0h-6m-6 -6h15m-6 0v-5\"/>\n </svg>\n);\n\nconst StarIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"/>\n </svg>\n);\n\nconst EditIcon = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z\"/>\n </svg>\n);\n\nconst TrashIcon = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <polyline points=\"3 6 5 6 21 6\"/>\n <path d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"/>\n </svg>\n);\n\nconst PlusIcon = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"/>\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"/>\n </svg>\n);\n\nconst TYPE_ICONS: Record<string, ReactNode> = {\n airline: <PlaneIcon />,\n hotel: <HotelIcon />,\n car: <CarIcon />,\n other: <StarIcon />,\n};\n\nconst TYPE_LABELS: Record<string, string> = {\n airline: 'Airline',\n hotel: 'Hotel',\n car: 'Car Rental',\n other: 'Other',\n};\n\n/**\n * MembershipPrograms - Displays a list of frequent flyer/loyalty programs\n */\nexport const MembershipPrograms = ({\n title = 'Membership Programs',\n programs,\n onEdit,\n onRemove,\n onAdd,\n alert,\n isLoading = false,\n emptyMessage = 'No membership programs added',\n className = '',\n}: MembershipProgramsProps) => {\n const containerClasses = [\n styles.container,\n isLoading ? styles.loading : '',\n className,\n ].filter(Boolean).join(' ');\n\n const groupedPrograms = programs.reduce((acc, program) => {\n const type = program.type || 'other';\n if (!acc[type]) acc[type] = [];\n acc[type].push(program);\n return acc;\n }, {} as Record<string, MembershipProgram[]>);\n\n const typeOrder = ['airline', 'hotel', 'car', 'other'];\n\n return (\n <div className={containerClasses}>\n {alert && <div className={styles.alert}>{alert}</div>}\n\n <div className={styles.header}>\n <h2 className={styles.title}>{title}</h2>\n {onAdd && (\n <button\n type=\"button\"\n className={styles.addButton}\n onClick={onAdd}\n aria-label=\"Add membership program\"\n >\n <PlusIcon />\n <span>Add Program</span>\n </button>\n )}\n </div>\n\n {programs.length === 0 ? (\n <div className={styles.empty}>\n <p>{emptyMessage}</p>\n </div>\n ) : (\n <div className={styles.list}>\n {typeOrder.map((type) => {\n const typePrograms = groupedPrograms[type];\n if (!typePrograms || typePrograms.length === 0) return null;\n\n return (\n <div key={type} className={styles.group}>\n <div className={styles.groupHeader}>\n <span className={styles.groupIcon}>{TYPE_ICONS[type]}</span>\n <span className={styles.groupLabel}>{TYPE_LABELS[type]}</span>\n </div>\n <div className={styles.programs}>\n {typePrograms.map((program) => (\n <div key={program.id} className={styles.program}>\n <div className={styles.programInfo}>\n <div className={styles.programProvider}>{program.provider}</div>\n {program.programName && (\n <div className={styles.programName}>{program.programName}</div>\n )}\n <div className={styles.programNumber}>{program.membershipNumber}</div>\n {program.status && (\n <div className={styles.programStatus}>{program.status}</div>\n )}\n </div>\n <div className={styles.programActions}>\n {onEdit && (\n <button\n type=\"button\"\n className={styles.actionButton}\n onClick={() => onEdit(program)}\n aria-label={`Edit ${program.provider} program`}\n >\n <EditIcon />\n </button>\n )}\n {onRemove && (\n <button\n type=\"button\"\n className={[styles.actionButton, styles.removeButton].join(' ')}\n onClick={() => onRemove(program)}\n aria-label={`Remove ${program.provider} program`}\n >\n <TrashIcon />\n </button>\n )}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n })}\n </div>\n )}\n </div>\n );\n};\n\nMembershipPrograms.displayName = 'MembershipPrograms';\n\nexport default MembershipPrograms;\n","import { WarningIcon } from '../../atoms/Icons';\nimport styles from './ManifestCapacityStats.module.css';\n\nexport interface ManifestCapacityStatsProps {\n paxCount: number;\n seats: number;\n paxWeight: number;\n cargoWeight: number;\n payloadLimit: number;\n className?: string;\n}\n\ninterface StatProps {\n label: string;\n value: string;\n sub: string;\n meterValue: number;\n meterMax: number;\n warn?: boolean;\n}\n\nconst Stat = ({ label, value, sub, meterValue, meterMax, warn = false }: StatProps) => {\n const ratio = meterMax > 0 ? Math.min(100, Math.max(0, (meterValue / meterMax) * 100)) : 0;\n\n return (\n <div className={styles.stat}>\n <div className={styles.labelRow}>\n <span className={styles.label}>{label}</span>\n {warn && <WarningIcon size={14} className={styles.warningIcon} aria-label={`${label} warning`} />}\n </div>\n <div className={[styles.value, warn ? styles.warningText : ''].filter(Boolean).join(' ')}>{value}</div>\n <div className={styles.sub}>{sub}</div>\n <div className={styles.meter} aria-hidden=\"true\">\n <span\n className={[styles.meterFill, warn ? styles.meterOver : ''].filter(Boolean).join(' ')}\n style={{ width: `${ratio}%` }}\n />\n </div>\n </div>\n );\n};\n\n/** Advisory seat and payload meters from Hub's charter manifest. */\nexport const ManifestCapacityStats = ({\n paxCount,\n seats,\n paxWeight,\n cargoWeight,\n payloadLimit,\n className = '',\n}: ManifestCapacityStatsProps) => {\n const totalWeight = paxWeight + cargoWeight;\n const overSeats = seats > 0 && paxCount > seats;\n const overPayload = payloadLimit > 0 && totalWeight > payloadLimit;\n\n return (\n <div className={className}>\n <div className={styles.stats}>\n <Stat\n label=\"Seats\"\n value={`${paxCount} / ${seats}`}\n sub={overSeats ? `${paxCount - seats} over capacity` : `${Math.max(0, seats - paxCount)} seats open`}\n meterValue={paxCount}\n meterMax={seats}\n warn={overSeats}\n />\n <Stat\n label=\"Passenger weight\"\n value={`${paxWeight.toLocaleString()} lb`}\n sub={`${paxCount} passengers`}\n meterValue={paxWeight}\n meterMax={payloadLimit}\n />\n <Stat\n label=\"Cargo weight\"\n value={`${cargoWeight.toLocaleString()} lb`}\n sub=\"Equipment + bags\"\n meterValue={cargoWeight}\n meterMax={payloadLimit}\n />\n <Stat\n label=\"Total payload\"\n value={`${totalWeight.toLocaleString()} lb`}\n sub={overPayload ? `${(totalWeight - payloadLimit).toLocaleString()} lb over limit` : `Limit ${payloadLimit.toLocaleString()} lb`}\n meterValue={totalWeight}\n meterMax={payloadLimit}\n warn={overPayload}\n />\n </div>\n\n {(overSeats || overPayload) && (\n <div className={styles.alert} role=\"alert\">\n <WarningIcon size={20} className={styles.alertIcon} />\n <div>\n {overSeats && (\n <div><strong>Over seat capacity.</strong> Remove {paxCount - seats} passenger(s) or split the manifest by segment.</div>\n )}\n {overPayload && (\n <div><strong>Over the contracted payload.</strong> Total payload exceeds the quoted maximum — coordinate with the team/client and confirm with the carrier before sending.</div>\n )}\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default ManifestCapacityStats;\n","import React, { useEffect, useCallback } from 'react';\nimport styles from './Modal.module.css';\nimport { Button } from '../../atoms/Button';\n\nexport type ModalSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';\n\nexport interface ModalProps {\n /** Whether the modal is open */\n isOpen: boolean;\n /** Callback when modal should close */\n onClose: () => void;\n /** Modal title */\n title?: string;\n /** Modal content */\n children: React.ReactNode;\n /** Size of the modal */\n size?: ModalSize;\n /** Whether to show close button */\n showCloseButton?: boolean;\n /** Whether clicking backdrop closes modal */\n closeOnBackdropClick?: boolean;\n /** Whether pressing Escape closes modal */\n closeOnEscape?: boolean;\n /** Footer content */\n footer?: React.ReactNode;\n /** Additional CSS class */\n className?: string;\n}\n\nexport const Modal: React.FC<ModalProps> = ({\n isOpen,\n onClose,\n title,\n children,\n size = 'md',\n showCloseButton = true,\n closeOnBackdropClick = true,\n closeOnEscape = true,\n footer,\n className = '',\n}) => {\n const handleEscape = useCallback(\n (e: KeyboardEvent) => {\n if (closeOnEscape && e.key === 'Escape') {\n onClose();\n }\n },\n [closeOnEscape, onClose]\n );\n\n useEffect(() => {\n if (isOpen) {\n document.addEventListener('keydown', handleEscape);\n document.body.style.overflow = 'hidden';\n }\n\n return () => {\n document.removeEventListener('keydown', handleEscape);\n document.body.style.overflow = '';\n };\n }, [isOpen, handleEscape]);\n\n const handleBackdropClick = (e: React.MouseEvent) => {\n if (closeOnBackdropClick && e.target === e.currentTarget) {\n onClose();\n }\n };\n\n if (!isOpen) return null;\n\n return (\n <div className={styles.overlay} onClick={handleBackdropClick}>\n <div\n className={`${styles.modal} ${styles[size]} ${className}`}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={title ? 'modal-title' : undefined}\n >\n {(title || showCloseButton) && (\n <div className={styles.header}>\n {title && (\n <h2 id=\"modal-title\" className={styles.title}>\n {title}\n </h2>\n )}\n {showCloseButton && (\n <button\n type=\"button\"\n className={styles.closeButton}\n onClick={onClose}\n aria-label=\"Close modal\"\n >\n <svg\n width=\"20\"\n height=\"20\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n )}\n </div>\n )}\n\n <div className={styles.body}>{children}</div>\n\n {footer && <div className={styles.footer}>{footer}</div>}\n </div>\n </div>\n );\n};\n\n// Convenience components for common footer patterns\nexport interface ModalFooterProps {\n children: React.ReactNode;\n className?: string;\n}\n\nexport const ModalFooter: React.FC<ModalFooterProps> = ({ children, className = '' }) => (\n <div className={`${styles.footerButtons} ${className}`}>{children}</div>\n);\n\nexport interface ConfirmModalProps extends Omit<ModalProps, 'footer' | 'children'> {\n /** Message to display */\n message: string | React.ReactNode;\n /** Confirm button text */\n confirmText?: string;\n /** Cancel button text */\n cancelText?: string;\n /** Callback when confirmed */\n onConfirm: () => void;\n /** Whether confirm action is destructive */\n destructive?: boolean;\n /** Whether confirm action is in progress */\n loading?: boolean;\n}\n\nexport const ConfirmModal: React.FC<ConfirmModalProps> = ({\n message,\n confirmText = 'Confirm',\n cancelText = 'Cancel',\n onConfirm,\n onClose,\n destructive = false,\n loading = false,\n ...props\n}) => (\n <Modal\n {...props}\n onClose={onClose}\n size=\"sm\"\n footer={\n <ModalFooter>\n <Button variant=\"secondary\" onClick={onClose}>\n {cancelText}\n </Button>\n <Button\n variant={destructive ? 'danger' : 'primary'}\n onClick={onConfirm}\n disabled={loading}\n >\n {loading ? 'Loading...' : confirmText}\n </Button>\n </ModalFooter>\n }\n >\n <div className={styles.confirmMessage}>{message}</div>\n </Modal>\n);\n\nexport default Modal;\n","import React, { ReactNode, useState, useEffect } from 'react';\nimport styles from './Module.module.css';\n\nexport type ModuleSize = 'sm' | 'md' | 'lg';\n\nexport interface ModuleProps {\n /** Module title */\n title?: string;\n /** Icon element to display */\n icon?: ReactNode;\n /** Icon CSS class for color */\n iconClassName?: string;\n /** Badge content */\n badge?: string | number;\n /** Content before main body */\n before?: ReactNode;\n /** Main content */\n children: ReactNode;\n /** Content after main body */\n after?: ReactNode;\n /** Footer content */\n footer?: ReactNode;\n /** Tools/actions to display in header */\n tools?: ReactNode;\n /** Additional CSS class */\n className?: string;\n /** Header additional class */\n headerClassName?: string;\n /** Title additional class */\n titleClassName?: string;\n /** Body additional class */\n bodyClassName?: string;\n /** Module size */\n size?: ModuleSize;\n /** Whether to show toggle control */\n useToggle?: boolean;\n /** Controlled show/hide state */\n show?: boolean;\n /** Callback when toggle is clicked */\n onToggle?: () => void;\n}\n\nconst ChevronIcon = ({ direction }: { direction: 'up' | 'down' }) => (\n <svg \n width=\"24\" \n height=\"24\" \n viewBox=\"0 0 24 24\" \n fill=\"none\" \n stroke=\"currentColor\" \n strokeWidth=\"2\"\n style={{ transform: direction === 'up' ? 'rotate(180deg)' : 'none' }}\n >\n <polyline points=\"6 9 12 15 18 9\" />\n </svg>\n);\n\n/**\n * Module component - a collapsible card with header, body, and footer sections.\n * Used for grouping related content like trip segments (Air, Ground, Hotel).\n */\nexport const Module: React.FC<ModuleProps> = ({\n title,\n icon,\n iconClassName = '',\n badge,\n before,\n children,\n after,\n footer,\n tools,\n className = '',\n headerClassName = '',\n titleClassName = '',\n bodyClassName = '',\n size = 'md',\n useToggle = true,\n show = true,\n onToggle,\n}) => {\n const [open, setOpen] = useState(show);\n\n useEffect(() => {\n if (typeof show === 'boolean') {\n setOpen(show);\n }\n }, [show]);\n\n const handleToggle = () => {\n if (typeof onToggle === 'function') {\n onToggle();\n } else {\n setOpen(!open);\n }\n };\n\n return (\n <div className={`${styles.module} ${className}`}>\n {title && (\n <div className={`${styles.header} ${styles[size]} ${!open ? styles.closed : ''} ${headerClassName}`}>\n <div className={`${styles.titleRow} ${styles[size]} ${titleClassName}`}>\n {icon && (\n <span className={`${styles.icon} ${size === 'sm' ? '' : styles.iconSpaced} ${iconClassName}`}>\n {icon}\n </span>\n )}\n <span className={styles.title}>{title}</span>\n {badge && <span className={styles.badge}>{badge}</span>}\n <div className={styles.tools}>\n {tools}\n {useToggle && (\n <button \n type=\"button\" \n className={styles.toggleBtn}\n onClick={handleToggle}\n aria-expanded={open}\n >\n <ChevronIcon direction={open ? 'up' : 'down'} />\n </button>\n )}\n </div>\n </div>\n </div>\n )}\n <div className={styles.bodyWrapper}>\n {before}\n <div className={`${styles.body} ${styles[size]} ${!open ? styles.hidden : ''} ${bodyClassName}`}>\n {children}\n </div>\n {after}\n </div>\n {footer && (\n <div className={`${styles.footer} ${!open ? styles.hidden : ''}`}>\n {footer}\n </div>\n )}\n </div>\n );\n};\n\n/**\n * Horizontal divider for Module content\n */\nexport const ModuleDivider: React.FC<{ dark?: boolean; className?: string }> = ({ \n dark = false, \n className = '' \n}) => (\n <hr className={`${styles.divider} ${dark ? styles.dark : ''} ${className}`} />\n);\n\n/**\n * Vertical divider for Module content\n */\nexport const ModuleVerticalDivider: React.FC<{ dark?: boolean; className?: string }> = ({ \n dark = false, \n className = '' \n}) => (\n <div className={`${styles.verticalDivider} ${dark ? styles.dark : ''} ${className}`} />\n);\n\nModule.displayName = 'Module';\n\nexport default Module;\n","import { useEffect, useRef, useState } from 'react';\nimport { CloseIcon, InfoIcon, WarningIcon } from '../../atoms/Icons';\nimport styles from './PageBanners.module.css';\n\nexport interface SystemBanner {\n id: string;\n html: string;\n detailHtml?: string;\n}\n\nexport interface TravelAlertBanner {\n id: string;\n title: string;\n body?: string;\n href?: string;\n}\n\nexport interface PageBannersProps {\n systemBanners: SystemBanner[];\n alertBanners: TravelAlertBanner[];\n className?: string;\n}\n\nconst decodeEntities = (value: string) => {\n if (typeof document === 'undefined') return value;\n const element = document.createElement('textarea');\n element.innerHTML = value;\n return element.value;\n};\n\nexport const PageBanners = ({\n systemBanners,\n alertBanners,\n className = '',\n}: PageBannersProps) => {\n const [dismissed, setDismissed] = useState<Set<string>>(new Set());\n const previousSystem = useRef(systemBanners);\n const previousAlerts = useRef(alertBanners);\n\n useEffect(() => {\n if (previousSystem.current !== systemBanners || previousAlerts.current !== alertBanners) {\n setDismissed(new Set());\n previousSystem.current = systemBanners;\n previousAlerts.current = alertBanners;\n }\n }, [alertBanners, systemBanners]);\n\n const dismiss = (id: string) => {\n setDismissed((current) => new Set([...current, id]));\n };\n\n const visibleSystem = systemBanners.filter((banner) => !dismissed.has(banner.id));\n const visibleAlerts = alertBanners.filter((banner) => !dismissed.has(banner.id));\n\n if (!visibleSystem.length && !visibleAlerts.length) return null;\n\n return (\n <div\n className={[styles.stack, className].filter(Boolean).join(' ')}\n role=\"region\"\n aria-label=\"Page notices\"\n >\n {visibleSystem.map((banner) => (\n <div key={banner.id} className={[styles.banner, styles.system].join(' ')} role=\"status\">\n <InfoIcon className={styles.systemIcon} size={20} aria-hidden=\"true\" />\n <div className={styles.content}>\n <p className={styles.title} dangerouslySetInnerHTML={{ __html: banner.html }} />\n {banner.detailHtml && (\n <p className={styles.detail} dangerouslySetInnerHTML={{ __html: banner.detailHtml }} />\n )}\n </div>\n <button\n type=\"button\"\n className={styles.dismiss}\n aria-label=\"Dismiss notice\"\n onClick={() => dismiss(banner.id)}\n >\n <CloseIcon size={16} />\n </button>\n </div>\n ))}\n\n {visibleAlerts.map((banner) => {\n const content = (\n <div className={styles.content}>\n <p className={[styles.title, styles.alertTitle].join(' ')}>{decodeEntities(banner.title)}</p>\n {banner.body && <p className={[styles.detail, styles.clamp].join(' ')}>{decodeEntities(banner.body)}</p>}\n </div>\n );\n\n return (\n <div key={banner.id} className={[styles.banner, styles.alert].join(' ')} role=\"alert\">\n <WarningIcon className={styles.alertIcon} size={20} aria-hidden=\"true\" />\n {banner.href ? (\n <a href={banner.href} className={styles.alertLink}>\n {content}\n </a>\n ) : (\n content\n )}\n <button\n type=\"button\"\n className={[styles.dismiss, styles.alertDismiss].join(' ')}\n aria-label=\"Dismiss alert\"\n onClick={() => dismiss(banner.id)}\n >\n <CloseIcon size={16} />\n </button>\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default PageBanners;\n","import { ReactNode } from 'react';\nimport styles from './PreferencesPanel.module.css';\n\nexport interface PreferenceField {\n /** Field label */\n label: string;\n /** Field value display */\n value?: string | ReactNode;\n /** Field input element */\n input?: ReactNode;\n}\n\nexport interface PreferenceSection {\n /** Section title */\n title: string;\n /** Section icon */\n icon?: ReactNode;\n /** Fields in this section */\n fields: PreferenceField[];\n}\n\nexport interface PreferencesPanelProps {\n /** Title of the panel */\n title?: string;\n /** Sections to display */\n sections: PreferenceSection[];\n /** Alert/info message at top */\n alert?: ReactNode;\n /** Footer actions */\n footer?: ReactNode;\n /** Whether form is in loading state */\n isLoading?: boolean;\n /** Additional class */\n className?: string;\n}\n\nconst PlaneIcon = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M21 16v-2l-8-5V3.5a1.5 1.5 0 0 0-3 0V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5Z\"/>\n </svg>\n);\n\nconst BusIcon = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <rect x=\"4\" y=\"4\" width=\"16\" height=\"14\" rx=\"2\"/>\n <path d=\"M8 6v6\"/>\n <path d=\"M16 6v6\"/>\n <circle cx=\"8\" cy=\"16\" r=\"1\"/>\n <circle cx=\"16\" cy=\"16\" r=\"1\"/>\n </svg>\n);\n\nconst HotelIcon = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M3 21h18\"/>\n <path d=\"M19 21V5a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v16\"/>\n <path d=\"M9 21v-4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v4\"/>\n </svg>\n);\n\nconst DEFAULT_ICONS: Record<string, ReactNode> = {\n air: <PlaneIcon />,\n ground: <BusIcon />,\n hotel: <HotelIcon />,\n};\n\n/**\n * PreferencesPanel - Displays travel preferences in a multi-column layout\n */\nexport const PreferencesPanel = ({\n title,\n sections,\n alert,\n footer,\n isLoading = false,\n className = '',\n}: PreferencesPanelProps) => {\n const panelClasses = [\n styles.panel,\n isLoading ? styles.loading : '',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n <div className={panelClasses}>\n {alert && (\n <div className={styles.alert}>\n {alert}\n </div>\n )}\n\n {title && <h2 className={styles.title}>{title}</h2>}\n\n <div className={styles.grid}>\n {sections.map((section, i) => (\n <div key={i} className={styles.section}>\n <div className={styles.sectionHeader}>\n {(section.icon || DEFAULT_ICONS[section.title.toLowerCase()]) && (\n <span className={styles.sectionIcon}>\n {section.icon || DEFAULT_ICONS[section.title.toLowerCase()]}\n </span>\n )}\n <h3 className={styles.sectionTitle}>{section.title}</h3>\n </div>\n <div className={styles.fields}>\n {section.fields.map((field, j) => (\n <div key={j} className={styles.field}>\n <label className={styles.fieldLabel}>{field.label}</label>\n {field.input ? (\n <div className={styles.fieldInput}>{field.input}</div>\n ) : (\n <div className={styles.fieldValue}>{field.value || '—'}</div>\n )}\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n\n {footer && (\n <div className={styles.footer}>\n {footer}\n </div>\n )}\n </div>\n );\n};\n\nPreferencesPanel.displayName = 'PreferencesPanel';\n\nexport default PreferencesPanel;\n","import React from 'react';\nimport styles from './RequestSummary.module.css';\n\nexport interface SummaryItem {\n /** Label for the field */\n label: string;\n /** Value to display */\n value: string | number | null | undefined;\n /** Optional formatter function */\n format?: (value: any) => string;\n}\n\nexport interface SummarySegment {\n /** Segment label (e.g., \"Flight 1\") */\n label: string;\n /** Items in this segment */\n items: SummaryItem[];\n}\n\nexport interface SummarySectionConfig {\n /** Section title (e.g., \"Commercial Air Request\") */\n title: string;\n /** Key to check if this section should be visible */\n key: string;\n /** Direct items to display */\n items?: SummaryItem[];\n /** Segments with repeated items (e.g., multiple flights) */\n segments?: SummarySegment[];\n}\n\nexport interface RequestSummaryProps {\n /** Summary sections to display */\n sections: SummarySectionConfig[];\n /** Map of values by field key */\n values: Record<string, any>;\n /** Map of enabled sections by key */\n enabledSections?: Record<string, boolean>;\n /** Submission info */\n submissionInfo?: {\n submittedBy: string;\n submittedOn: string;\n };\n /** Additional CSS class */\n className?: string;\n /** Title for the summary panel */\n title?: string;\n}\n\n/**\n * SummaryItem component displays a single label-value pair.\n */\nconst SummaryItemRow: React.FC<{ item: SummaryItem; value: any }> = ({ item, value }) => {\n if (!value) return null;\n \n const formattedValue = item.format ? item.format(value) : String(value);\n \n return (\n <div className={styles.row}>\n <span className={styles.label}>{item.label}</span>\n <span className={styles.value}>{formattedValue}</span>\n </div>\n );\n};\n\n/**\n * SummarySection component for a group of related summary items.\n */\nexport const SummarySection: React.FC<{\n section: SummarySectionConfig;\n values: Record<string, any>;\n}> = ({ section, values }) => {\n // Check if any items have values\n const hasItems = section.items?.some(item => values[item.label] || values[`${section.key}_${item.label}`]);\n const hasSegments = section.segments?.some(seg => \n seg.items.some(item => values[`${section.key}_${seg.label}_${item.label}`] || values[item.label])\n );\n\n if (!hasItems && !hasSegments) return null;\n\n return (\n <div className={styles.section}>\n <h3 className={styles.sectionTitle}>{section.title}</h3>\n {section.items?.map((item, i) => (\n <SummaryItemRow \n key={i} \n item={item} \n value={values[item.label] || values[`${section.key}_${item.label}`]} \n />\n ))}\n {section.segments?.map((segment, i) => (\n <div key={i} className={styles.segment}>\n <h4 className={styles.segmentTitle}>{segment.label}</h4>\n {segment.items.map((item, j) => (\n <SummaryItemRow \n key={j} \n item={item} \n value={values[`${section.key}_${segment.label}_${item.label}`] || values[item.label]} \n />\n ))}\n </div>\n ))}\n </div>\n );\n};\n\n/**\n * RequestSummary component for displaying a summary of travel request form data.\n * Shows enabled sections with their filled-in values.\n */\nexport const RequestSummary: React.FC<RequestSummaryProps> = ({\n sections,\n values,\n enabledSections = {},\n submissionInfo,\n className,\n title = 'Request Summary',\n}) => {\n const visibleSections = sections.filter(\n section => enabledSections[section.key] !== false\n );\n\n return (\n <div className={`${styles.summary} ${className || ''}`}>\n <h2 className={styles.title}>{title}</h2>\n \n {submissionInfo && (\n <div className={styles.submissionInfo}>\n <span className={styles.label}>Submitted by</span>\n <span className={styles.value}>{submissionInfo.submittedBy}</span>\n <span className={styles.label}>on</span>\n <span className={styles.value}>{submissionInfo.submittedOn}</span>\n </div>\n )}\n \n <div className={styles.sections}>\n {visibleSections.map((section) => (\n <SummarySection key={section.key} section={section} values={values} />\n ))}\n </div>\n \n {visibleSections.length === 0 && (\n <p className={styles.empty}>No services selected</p>\n )}\n </div>\n );\n};\n\nRequestSummary.displayName = 'RequestSummary';\n\nexport default RequestSummary;\n","import React, { ReactNode } from 'react';\nimport styles from './RequestFormLayout.module.css';\n\nexport interface RequestFormHeaderProps {\n /** Title to display */\n title: string;\n /** Current page number (1-indexed) */\n currentPage?: number;\n /** Total pages */\n totalPages?: number;\n /** Event or request name */\n eventName?: string;\n /** Additional content on the right side */\n rightContent?: ReactNode;\n /** Additional CSS class */\n className?: string;\n}\n\nexport interface RequestFormFooterProps {\n /** Callback for cancel/previous button */\n onPrevious: () => void;\n /** Callback for next/submit button */\n onNext: () => void;\n /** Whether on first page */\n isFirstPage?: boolean;\n /** Whether on last page */\n isLastPage?: boolean;\n /** Whether the form is currently submitting */\n isSubmitting?: boolean;\n /** Custom previous button text */\n previousText?: string;\n /** Custom next button text */\n nextText?: string;\n /** Additional CSS class */\n className?: string;\n}\n\nexport interface RequestFormLayoutProps {\n /** Header component */\n header?: ReactNode;\n /** Left sidebar content (service toggles) */\n sidebar?: ReactNode;\n /** Main form content */\n children: ReactNode;\n /** Right sidebar content (summary) */\n summary?: ReactNode;\n /** Footer component */\n footer?: ReactNode;\n /** Additional CSS class */\n className?: string;\n /** Whether to show the sidebar on mobile */\n showSidebarOnMobile?: boolean;\n}\n\n/**\n * RequestFormHeader component for the fixed header in travel request forms.\n */\nexport const RequestFormHeader: React.FC<RequestFormHeaderProps> = ({\n title,\n currentPage,\n totalPages,\n eventName,\n rightContent,\n className,\n}) => {\n const showPagination = currentPage !== undefined && totalPages !== undefined && totalPages > 1;\n \n return (\n <header className={`${styles.header} ${className || ''}`}>\n <div className={styles.headerContent}>\n <h1 className={styles.headerTitle}>\n {title}\n {showPagination && (\n <span className={styles.pagination}>\n ({currentPage}/{totalPages})\n </span>\n )}\n {eventName && (\n <>\n <span className={styles.separator}>–</span>\n <span className={styles.eventName}>{eventName}</span>\n </>\n )}\n </h1>\n {rightContent && <div className={styles.headerRight}>{rightContent}</div>}\n </div>\n </header>\n );\n};\n\n/**\n * RequestFormFooter component for the fixed footer with navigation buttons.\n */\nexport const RequestFormFooter: React.FC<RequestFormFooterProps> = ({\n onPrevious,\n onNext,\n isFirstPage = false,\n isLastPage = false,\n isSubmitting = false,\n previousText,\n nextText,\n className,\n}) => {\n const prevLabel = previousText || (isFirstPage ? 'Cancel' : 'Previous');\n const nextLabel = nextText || (isLastPage ? 'Submit' : 'Next');\n \n return (\n <footer className={`${styles.footer} ${className || ''}`}>\n <div className={styles.footerContent}>\n <button\n type=\"button\"\n className={`${styles.button} ${styles.secondary}`}\n onClick={onPrevious}\n disabled={isSubmitting}\n >\n {prevLabel}\n </button>\n <button\n type=\"button\"\n className={`${styles.button} ${styles.primary}`}\n onClick={onNext}\n disabled={isSubmitting}\n >\n {isSubmitting ? 'Submitting...' : nextLabel}\n </button>\n </div>\n </footer>\n );\n};\n\n/**\n * RequestFormLayout organism for travel request forms.\n * Provides a three-column layout with fixed header and footer.\n */\nexport const RequestFormLayout: React.FC<RequestFormLayoutProps> = ({\n header,\n sidebar,\n children,\n summary,\n footer,\n className,\n showSidebarOnMobile = false,\n}) => {\n return (\n <div className={`${styles.layout} ${className || ''}`}>\n {header}\n \n <div className={styles.body}>\n {sidebar && (\n <aside className={`${styles.sidebar} ${showSidebarOnMobile ? styles.showOnMobile : ''}`}>\n <div className={styles.sidebarContent}>\n {sidebar}\n </div>\n </aside>\n )}\n \n <main className={styles.main}>\n <div className={styles.mainContent}>\n {children}\n </div>\n </main>\n \n {summary && (\n <aside className={styles.summarySidebar}>\n <div className={styles.summaryContent}>\n {summary}\n </div>\n </aside>\n )}\n </div>\n \n {footer}\n </div>\n );\n};\n\nRequestFormLayout.displayName = 'RequestFormLayout';\nRequestFormHeader.displayName = 'RequestFormHeader';\nRequestFormFooter.displayName = 'RequestFormFooter';\n\nexport default RequestFormLayout;\n","import React, { useState, useMemo } from 'react';\nimport styles from './Table.module.css';\n\nexport interface TableColumn<T = any> {\n /** Unique key for the column */\n key: string;\n /** Column header label */\n label: string;\n /** Whether the column is sortable */\n sortable?: boolean;\n /** Column width (e.g., '100px', '20%') */\n width?: string;\n /** Custom render function for cells */\n render?: (value: any, row: T, index: number) => React.ReactNode;\n /** Text alignment */\n align?: 'left' | 'center' | 'right';\n}\n\nexport interface TableProps<T = any> {\n /** Column definitions */\n columns: TableColumn<T>[];\n /** Data rows */\n data: T[];\n /** Unique key accessor for each row */\n rowKey?: keyof T | ((row: T) => string | number);\n /** Whether to show borders */\n bordered?: boolean;\n /** Whether rows are striped */\n striped?: boolean;\n /** Whether rows highlight on hover */\n hoverable?: boolean;\n /** Whether the table is compact */\n compact?: boolean;\n /** Loading state */\n loading?: boolean;\n /** Empty state message */\n emptyMessage?: string;\n /** Row click handler */\n onRowClick?: (row: T, index: number) => void;\n /** Additional CSS class */\n className?: string;\n}\n\nexport const Table = <T extends Record<string, any> = any>({\n columns,\n data,\n rowKey = 'id',\n bordered = false,\n striped = false,\n hoverable = true,\n compact = false,\n loading = false,\n emptyMessage = 'No data available',\n onRowClick,\n className = '',\n}: TableProps<T>) => {\n const [sortColumn, setSortColumn] = useState<string | null>(null);\n const [sortDirection, setSortDirection] = useState<'asc' | 'desc'>('asc');\n\n const handleSort = (column: TableColumn<T>) => {\n if (!column.sortable) return;\n \n if (sortColumn === column.key) {\n setSortDirection(sortDirection === 'asc' ? 'desc' : 'asc');\n } else {\n setSortColumn(column.key);\n setSortDirection('asc');\n }\n };\n\n const sortedData = useMemo(() => {\n if (!sortColumn) return data;\n \n return [...data].sort((a, b) => {\n const aVal = a[sortColumn];\n const bVal = b[sortColumn];\n \n if (aVal === bVal) return 0;\n if (aVal === null || aVal === undefined) return 1;\n if (bVal === null || bVal === undefined) return -1;\n \n const comparison = aVal < bVal ? -1 : 1;\n return sortDirection === 'asc' ? comparison : -comparison;\n });\n }, [data, sortColumn, sortDirection]);\n\n const getRowKey = (row: T, index: number): string | number => {\n if (typeof rowKey === 'function') {\n return rowKey(row);\n }\n return row[rowKey] ?? index;\n };\n\n return (\n <div className={`${styles.wrapper} ${className}`}>\n <table\n className={`${styles.table} ${bordered ? styles.bordered : ''} ${striped ? styles.striped : ''} ${hoverable ? styles.hoverable : ''} ${compact ? styles.compact : ''}`}\n >\n <thead className={styles.header}>\n <tr>\n {columns.map((column) => (\n <th\n key={column.key}\n className={`${styles.headerCell} ${column.sortable ? styles.sortable : ''} ${styles[`align${(column.align || 'left').charAt(0).toUpperCase()}${(column.align || 'left').slice(1)}`]}`}\n style={column.width ? { width: column.width } : undefined}\n onClick={() => handleSort(column)}\n >\n <span className={styles.headerContent}>\n {column.label}\n {column.sortable && (\n <span className={styles.sortIcon}>\n {sortColumn === column.key ? (\n sortDirection === 'asc' ? '↑' : '↓'\n ) : (\n '↕'\n )}\n </span>\n )}\n </span>\n </th>\n ))}\n </tr>\n </thead>\n <tbody className={styles.body}>\n {loading ? (\n <tr>\n <td colSpan={columns.length} className={styles.loading}>\n Loading...\n </td>\n </tr>\n ) : sortedData.length === 0 ? (\n <tr>\n <td colSpan={columns.length} className={styles.empty}>\n {emptyMessage}\n </td>\n </tr>\n ) : (\n sortedData.map((row, rowIndex) => (\n <tr\n key={getRowKey(row, rowIndex)}\n className={`${styles.row} ${onRowClick ? styles.clickable : ''}`}\n onClick={() => onRowClick?.(row, rowIndex)}\n >\n {columns.map((column) => (\n <td\n key={column.key}\n className={`${styles.cell} ${styles[`align${(column.align || 'left').charAt(0).toUpperCase()}${(column.align || 'left').slice(1)}`]}`}\n >\n {column.render\n ? column.render(row[column.key], row, rowIndex)\n : row[column.key]}\n </td>\n ))}\n </tr>\n ))\n )}\n </tbody>\n </table>\n </div>\n );\n};\n\nexport default Table;\n","import { useState, useMemo, ReactNode } from 'react';\nimport styles from './TeamCard.module.css';\n\nexport interface TeamOption {\n /** Team code (e.g., 'MBB', 'WBB') */\n code: string;\n /** Team description/name */\n description: string;\n /** Team ID */\n id: string | number;\n /** Team category: men, women, mixed */\n category?: 'men' | 'women' | 'mixed';\n}\n\nexport interface TeamCardProps {\n /** Title of the card */\n title?: string;\n /** Icon element */\n icon?: ReactNode;\n /** List of teams to display */\n teams: TeamOption[];\n /** Callback when a team is selected */\n onTeamSelect?: (team: TeamOption) => void;\n /** Additional class */\n className?: string;\n}\n\nconst TEAM_GROUPS = [\n { label: 'All', key: undefined },\n { label: 'Men', key: 'men' as const },\n { label: 'Women', key: 'women' as const },\n { label: 'Mixed', key: 'mixed' as const },\n];\n\nconst getTeamColor = (code: string): string => {\n const firstChar = code.charAt(0).toUpperCase();\n switch (firstChar) {\n case 'M':\n return '#8AC6D9';\n case 'W':\n return '#FFA99A';\n case 'X':\n return '#D1C1C3';\n default:\n return '#8AC6D9';\n }\n};\n\nconst UsersIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"/>\n <circle cx=\"9\" cy=\"7\" r=\"4\"/>\n <path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"/>\n <path d=\"M16 3.13a4 4 0 0 1 0 7.75\"/>\n </svg>\n);\n\nconst ChevronRightIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <polyline points=\"9 18 15 12 9 6\"/>\n </svg>\n);\n\n/**\n * TeamCard - Displays a list of teams with category filters\n */\nexport const TeamCard = ({\n title = 'Administer Teams',\n icon,\n teams,\n onTeamSelect,\n className = '',\n}: TeamCardProps) => {\n const [activeTab, setActiveTab] = useState<'men' | 'women' | 'mixed' | undefined>();\n\n const filteredTeams = useMemo(() => {\n if (!activeTab) return teams;\n return teams.filter(team => team.category === activeTab);\n }, [teams, activeTab]);\n\n const cardClasses = [\n styles.card,\n className,\n ].filter(Boolean).join(' ');\n\n return (\n <div className={cardClasses}>\n <div className={styles.header}>\n <span className={styles.icon}>\n {icon || <UsersIcon />}\n </span>\n <h3 className={styles.title}>{title}</h3>\n </div>\n\n <div className={styles.body}>\n <div className={styles.tabs}>\n {TEAM_GROUPS.map(({ label, key }) => (\n <button\n key={label}\n type=\"button\"\n onClick={() => setActiveTab(key)}\n className={`${styles.tab} ${activeTab === key ? styles.tabActive : ''}`}\n >\n {label}\n </button>\n ))}\n </div>\n\n <div className={styles.list}>\n {filteredTeams.map((team) => (\n <button\n key={team.id}\n type=\"button\"\n className={styles.teamItem}\n onClick={() => onTeamSelect?.(team)}\n >\n <span\n className={styles.teamCode}\n style={{ backgroundColor: getTeamColor(team.code) }}\n >\n {team.code}\n </span>\n <span className={styles.teamName}>{team.description}</span>\n <span className={styles.chevron}>\n <ChevronRightIcon />\n </span>\n </button>\n ))}\n {filteredTeams.length === 0 && (\n <div className={styles.empty}>No teams found</div>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nTeamCard.displayName = 'TeamCard';\n\nexport default TeamCard;\n","import { ArrowUpRightIcon, ChevronLeftIcon, ChevronRightIcon } from '../../atoms/Icons';\nimport { Button } from '../../atoms/Button';\nimport styles from './TeamScheduleActions.module.css';\n\nexport interface SeasonOption {\n value: string;\n label: string;\n}\n\nexport interface TeamScheduleActionsProps {\n isCompactView: boolean;\n tripCount: number;\n seasonLabel: string;\n seasonValue?: string;\n seasonOptions?: SeasonOption[];\n previousSeasonDisabled?: boolean;\n exportDisabled?: boolean;\n exporting?: boolean;\n groupTravelDisabled?: boolean;\n mergeDisabled?: boolean;\n merging?: boolean;\n onViewSchedule?: () => void;\n onBack?: () => void;\n onPreviousSeason?: () => void;\n onNextSeason?: () => void;\n onSeasonChange?: (value: string) => void;\n onExport?: () => void;\n onGroupTravelRequest?: () => void;\n onMergeEvents?: () => void;\n className?: string;\n}\n\n/** Exact presentational counterpart of Hub's Team Schedule action controls. */\nexport const TeamScheduleActions = ({\n isCompactView,\n tripCount,\n seasonLabel,\n seasonValue,\n seasonOptions = [],\n previousSeasonDisabled = false,\n exportDisabled = false,\n exporting = false,\n groupTravelDisabled = false,\n mergeDisabled = false,\n merging = false,\n onViewSchedule,\n onBack,\n onPreviousSeason,\n onNextSeason,\n onSeasonChange,\n onExport,\n onGroupTravelRequest,\n onMergeEvents,\n className = '',\n}: TeamScheduleActionsProps) => (\n <div className={[styles.actions, className].filter(Boolean).join(' ')}>\n <div className={styles.primaryRow}>\n {!isCompactView ? (\n <Button size=\"sm\" onClick={onViewSchedule}>View/Edit Schedule</Button>\n ) : (\n <Button size=\"sm\" onClick={onBack} leftIcon={<ChevronLeftIcon size={14} />}>Back</Button>\n )}\n\n <div className={styles.seasonNavigator}>\n <Button variant=\"secondary\" size=\"sm\" square aria-label=\"Previous Season\" disabled={previousSeasonDisabled} onClick={onPreviousSeason}><ChevronLeftIcon size={18} /></Button>\n <div className={styles.seasonLabel}>\n <Button variant=\"secondary\" size=\"sm\">{seasonLabel}</Button>\n {!!seasonOptions.length && (\n <select aria-label=\"Season\" value={seasonValue} onChange={(event) => onSeasonChange?.(event.target.value)}>\n {seasonOptions.map((option) => <option key={option.value} value={option.value}>{option.label}</option>)}\n </select>\n )}\n </div>\n <Button variant=\"secondary\" size=\"sm\" square aria-label=\"Next Season\" onClick={onNextSeason}><ChevronRightIcon size={18} /></Button>\n </div>\n\n {isCompactView && <Button variant=\"outline\" size=\"sm\" loading={exporting} disabled={exportDisabled} rightIcon={<ArrowUpRightIcon size={14} />} onClick={onExport}>Export XLS</Button>}\n <span className={styles.tripCount}>{tripCount} trips displayed</span>\n </div>\n\n {isCompactView && (\n <div className={styles.secondaryRow}>\n <Button variant=\"outline\" size=\"sm\" disabled={groupTravelDisabled} onClick={onGroupTravelRequest}>Group Travel Request</Button>\n <Button variant=\"outline\" size=\"sm\" disabled={mergeDisabled} loading={merging} onClick={onMergeEvents}>Merge Events</Button>\n </div>\n )}\n </div>\n);\n\nexport default TeamScheduleActions;\n","import { ReactNode } from 'react';\nimport { PlusIcon } from '../../atoms/Icons';\nimport styles from './TeamScheduleCompactTable.module.css';\n\nexport interface TeamScheduleCompactRow {\n id: string | number;\n trip: ReactNode;\n events: ReactNode;\n}\n\nexport interface TeamScheduleCompactTableProps {\n rows: TeamScheduleCompactRow[];\n tripHeaders?: ReactNode[];\n eventHeaders?: ReactNode[];\n onAddEvent?: () => void;\n addEventDisabled?: boolean;\n className?: string;\n}\n\nconst DEFAULT_TRIP_HEADERS = ['', 'GTR', 'Trvl Start', 'Trvl End', 'Trip Name', 'Services', ''];\nconst DEFAULT_EVENT_HEADERS = ['', 'Event Date', 'Opponent/Host', 'Event Title', 'Hm/Awy', ''];\n\n/** Hub's two-panel compact Team Schedule shell. Editable rows remain injectable. */\nexport const TeamScheduleCompactTable = ({\n rows,\n tripHeaders = DEFAULT_TRIP_HEADERS,\n eventHeaders = DEFAULT_EVENT_HEADERS,\n onAddEvent,\n addEventDisabled = false,\n className = '',\n}: TeamScheduleCompactTableProps) => (\n <div className={[styles.schedule, className].filter(Boolean).join(' ')}>\n <div className={styles.headers}>\n <div className={styles.tripHeader}>{tripHeaders.map((header, index) => <div key={index}>{header}</div>)}</div>\n <div className={styles.eventHeader}>{eventHeaders.map((header, index) => <div key={index}>{header}</div>)}</div>\n </div>\n <div className={styles.table}>\n {!rows.length ? <div className={styles.empty}>No data available.</div> : rows.map((row) => (\n <div className={styles.row} key={row.id}>\n <div className={styles.trip}>{row.trip}</div>\n <div className={styles.events}>{row.events}</div>\n </div>\n ))}\n </div>\n <div className={styles.addRow}>\n <button type=\"button\" disabled={addEventDisabled} onClick={onAddEvent}>Add Event <PlusIcon size={16} /></button>\n </div>\n </div>\n);\n\nexport default TeamScheduleCompactTable;\n","import { ReactNode, useMemo, useState } from 'react';\nimport { CalendarIcon, DocumentIcon, HotelIcon, PlaneIcon } from '../../atoms/Icons';\nimport styles from './TeamScheduleExpandedTable.module.css';\n\nexport interface TeamScheduleExpandedRow {\n masterTripGUID: string;\n sportCode?: string;\n travelStartDate?: string;\n travelEndDate?: string;\n tripName: string;\n airSegment?: ReactNode;\n groundSegment?: ReactNode;\n hotelSegment?: ReactNode;\n}\n\nexport interface TeamScheduleExpandedTableProps {\n rows: TeamScheduleExpandedRow[];\n teamCode?: string;\n onTripClick?: (row: TeamScheduleExpandedRow) => void;\n emptyMessage?: string;\n className?: string;\n}\n\ntype SortKey = 'sportCode' | 'travelStartDate' | 'tripName';\n\nconst parseLocalDate = (value?: string) => {\n if (!value) return null;\n const match = value.match(/^(\\d{4})-(\\d{2})-(\\d{2})/);\n if (match) return new Date(Number(match[1]), Number(match[2]) - 1, Number(match[3]));\n const parsed = new Date(value);\n return Number.isNaN(parsed.getTime()) ? null : parsed;\n};\n\nconst formatDate = (date: Date, includeYear = true) => date.toLocaleDateString('en-US', {\n month: 'short',\n day: 'numeric',\n ...(includeYear ? { year: 'numeric' } : {}),\n});\n\nexport const formatTeamScheduleTravelDates = (startValue?: string, endValue?: string) => {\n const start = parseLocalDate(startValue);\n const end = parseLocalDate(endValue);\n if (!start || !end) return 'No dates';\n if (start.getTime() === end.getTime()) return formatDate(start);\n if (start.getFullYear() !== end.getFullYear()) return `${formatDate(start)} - ${formatDate(end)}`;\n return `${formatDate(start, false)} - ${end.getDate()}, ${end.getFullYear()}`;\n};\n\nconst RunningIcon = () => (\n <svg viewBox=\"0 0 32 32\" width=\"16\" height=\"16\" fill=\"currentColor\" aria-hidden=\"true\">\n <circle cx=\"21\" cy=\"5\" r=\"3\" />\n <path d=\"m18.5 9.3-4.2 4.2-4.1-2.1-1.4 2.8 5.9 3 3.3-3.2 2.3 5.2-5.2 3.2 1.7 2.6 7.4-4.6-3.3-7.2 2.4-2.4 2.1 3.1 2.6-1.8-4.2-6.4zM10 18.8 5.6 26H9l4-6.2z\" />\n </svg>\n);\n\nconst GroundIcon = () => (\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.8\" aria-hidden=\"true\">\n <rect x=\"4\" y=\"3\" width=\"16\" height=\"16\" rx=\"2\" /><path d=\"M4 13h16M8 7h3m2 0h3M7 19v2m10-2v2\" />\n </svg>\n);\n\nconst headers: Array<{ key?: SortKey; label: string; icon: ReactNode }> = [\n { key: 'sportCode', label: 'Sport', icon: <RunningIcon /> },\n { key: 'travelStartDate', label: 'Date(s)', icon: <CalendarIcon size={16} /> },\n { key: 'tripName', label: 'Trip Name', icon: <DocumentIcon size={16} /> },\n { label: 'Air', icon: <PlaneIcon size={16} /> },\n { label: 'Ground', icon: <GroundIcon /> },\n { label: 'Hotel', icon: <HotelIcon size={16} /> },\n];\n\n/** Hub's read-only expanded Team Schedule table. */\nexport const TeamScheduleExpandedTable = ({ rows, teamCode, onTripClick, emptyMessage = 'No data available.', className = '' }: TeamScheduleExpandedTableProps) => {\n const [sortKey, setSortKey] = useState<SortKey>();\n const [ascending, setAscending] = useState(true);\n const sortedRows = useMemo(() => !sortKey ? rows : [...rows].sort((left, right) => {\n const leftValue = sortKey === 'sportCode' ? teamCode ?? left.sportCode ?? '' : left[sortKey] ?? '';\n const rightValue = sortKey === 'sportCode' ? teamCode ?? right.sportCode ?? '' : right[sortKey] ?? '';\n return String(leftValue).localeCompare(String(rightValue)) * (ascending ? 1 : -1);\n }), [ascending, rows, sortKey, teamCode]);\n\n const sort = (key: SortKey) => {\n if (sortKey === key) setAscending((value) => !value);\n else { setSortKey(key); setAscending(true); }\n };\n\n return (\n <div className={[styles.table, className].filter(Boolean).join(' ')}>\n <div className={styles.header}>\n {headers.map((header) => (\n <button key={header.label} type=\"button\" disabled={!header.key} onClick={() => header.key && sort(header.key)}>\n {header.icon}<span>{header.label}</span>{header.key === sortKey && <span aria-label={ascending ? 'ascending' : 'descending'}>{ascending ? '↑' : '↓'}</span>}\n </button>\n ))}\n </div>\n {!sortedRows.length ? <div className={styles.empty}>{emptyMessage}</div> : <div className={styles.body}>\n {sortedRows.map((row) => {\n const values: ReactNode[] = [\n teamCode ?? row.sportCode ?? '–',\n formatTeamScheduleTravelDates(row.travelStartDate, row.travelEndDate),\n <button type=\"button\" className={styles.tripLink} onClick={() => onTripClick?.(row)}>{row.tripName}</button>,\n row.airSegment,\n row.groundSegment,\n row.hotelSegment,\n ];\n return <div className={styles.row} key={row.masterTripGUID || row.tripName}>\n {values.map((value, index) => <div className={styles.cell} key={headers[index].label}><span className={styles.mobileLabel}>{headers[index].icon}{headers[index].label}</span><div>{value || '–'}</div></div>)}\n </div>;\n })}\n </div>}\n </div>\n );\n};\n\nexport default TeamScheduleExpandedTable;\n","import { Metric } from '../../atoms/Metric';\nimport styles from './TravelSummaryMetrics.module.css';\n\nexport interface TravelSummaryMetricsProps {\n tripsTraveled?: string | number;\n remainingTrips?: string | number;\n seasonTripCosts?: string | number;\n seasonLabel: string;\n overdueActions?: string | number;\n onOverdueActionsClick?: () => void;\n className?: string;\n}\n\nconst numericValue = (value?: string | number) => {\n if (value === undefined || value === null || value === '') return undefined;\n const parsed = Number(String(value).replace(/[^0-9.-]/g, ''));\n return Number.isFinite(parsed) ? parsed : undefined;\n};\n\nexport const formatCompactTripCost = (value?: string | number) => {\n const cost = numericValue(value);\n if (cost === undefined) return undefined;\n if (cost > 1_000_000) return `${(cost / 1_000_000).toFixed(2)}M`;\n return `${Math.floor(cost / 1_000)}K`;\n};\n\nexport const TravelSummaryMetrics = ({\n tripsTraveled,\n remainingTrips,\n seasonTripCosts,\n seasonLabel,\n overdueActions,\n onOverdueActionsClick,\n className = '',\n}: TravelSummaryMetricsProps) => {\n const overdueCount = numericValue(overdueActions) ?? 0;\n\n return (\n <div className={[styles.grid, className].filter(Boolean).join(' ')}>\n <Metric value={tripsTraveled} label=\"Trips Travelled\" />\n <Metric value={remainingTrips} label=\"Remaining Trips\" />\n <Metric value={formatCompactTripCost(seasonTripCosts)} label={`${seasonLabel} Trip Costs`} prefix=\"$\" />\n <Metric\n value={overdueActions}\n label=\"Overdue Actions\"\n warning={overdueCount > 0}\n dark\n onClick={onOverdueActionsClick}\n />\n </div>\n );\n};\n\nexport default TravelSummaryMetrics;\n","import { ReactNode } from 'react';\nimport styles from './TravelerForm.module.css';\n\nexport interface TravelerFormData {\n /** First name */\n firstName?: string;\n /** Middle initial */\n middleInitial?: string;\n /** Last name */\n lastName?: string;\n /** Weight in lbs */\n weight?: number;\n /** Gender */\n gender?: 'male' | 'female' | 'other' | 'prefer_not_to_say';\n /** Birth date */\n birthDate?: string;\n /** Traveler type */\n travelerType?: string;\n /** Known traveler number */\n knownTravelerNumber?: string;\n /** DHS redress number */\n dhsRedress?: string;\n /** Special requests */\n specialRequests?: string;\n /** Seat preference */\n seatPreference?: 'aisle' | 'window' | 'middle' | 'no_preference';\n}\n\nexport interface TravelerFormProps {\n /** Current form values */\n values?: TravelerFormData;\n /** Title of the form */\n title?: string;\n /** Subtitle/description */\n subtitle?: string;\n /** Render props for form fields - allows consumer to provide their own input components */\n children?: ReactNode;\n /** Form sections - render props approach */\n renderNameSection?: (values: TravelerFormData) => ReactNode;\n renderDetailsSection?: (values: TravelerFormData) => ReactNode;\n renderPreferencesSection?: (values: TravelerFormData) => ReactNode;\n /** Footer actions */\n footer?: ReactNode;\n /** Whether form is in loading state */\n isLoading?: boolean;\n /** Additional class */\n className?: string;\n}\n\n/**\n * TravelerForm - Form layout for editing traveler/roster member details\n */\nexport const TravelerForm = ({\n values = {},\n title,\n subtitle,\n children,\n renderNameSection,\n renderDetailsSection,\n renderPreferencesSection,\n footer,\n isLoading = false,\n className = '',\n}: TravelerFormProps) => {\n const formClasses = [\n styles.form,\n isLoading ? styles.loading : '',\n className,\n ].filter(Boolean).join(' ');\n\n return (\n <div className={formClasses}>\n {(title || subtitle) && (\n <div className={styles.header}>\n {title && <h2 className={styles.title}>{title}</h2>}\n {subtitle && <p className={styles.subtitle}>{subtitle}</p>}\n </div>\n )}\n\n {children ? (\n <div className={styles.content}>{children}</div>\n ) : (\n <div className={styles.sections}>\n {renderNameSection && (\n <div className={styles.section}>\n <h3 className={styles.sectionTitle}>Name</h3>\n <div className={styles.sectionContent}>\n {renderNameSection(values)}\n </div>\n </div>\n )}\n\n {renderDetailsSection && (\n <div className={styles.section}>\n <h3 className={styles.sectionTitle}>Details</h3>\n <div className={styles.sectionContent}>\n {renderDetailsSection(values)}\n </div>\n </div>\n )}\n\n {renderPreferencesSection && (\n <div className={styles.section}>\n <h3 className={styles.sectionTitle}>Travel Preferences</h3>\n <div className={styles.sectionContent}>\n {renderPreferencesSection(values)}\n </div>\n </div>\n )}\n </div>\n )}\n\n {footer && (\n <div className={styles.footer}>\n {footer}\n </div>\n )}\n </div>\n );\n};\n\nTravelerForm.displayName = 'TravelerForm';\n\nexport default TravelerForm;\n","import React from 'react';\nimport styles from './TripTable.module.css';\nimport { StatusBadge, StatusBadgeVariant } from '../../atoms/StatusBadge';\nimport { TypeIcon, TravelType } from '../../atoms/TypeIcon';\nimport { TravelServiceIcon } from '../../atoms/TravelServiceIcon';\n\nexport interface TripData {\n /** Unique trip identifier */\n id: string;\n /** PNR/Confirmation number */\n pnr?: string;\n /** Request ID (for requested trips) */\n reqId?: string;\n /** Traveler name(s) */\n travelers: string[];\n /** Sport code */\n sport?: string;\n /** Vendor/Airline code */\n vendor?: string;\n /** Itinerary string (e.g., \"ATL-RDU\") */\n itinerary?: string;\n /** Travel type codes */\n types: TravelType[];\n /** Multi-segment indicators */\n multiSegments?: TravelType[];\n /** Travel date range */\n dates: string;\n /** Trip status */\n status: StatusBadgeVariant;\n /** Requested by (for request trips) */\n requestedBy?: string;\n /** Submitted date (for request trips) */\n submitted?: string;\n}\n\nexport interface TripTableProps {\n /** Array of trip data */\n trips: TripData[];\n /** Table variant */\n variant?: 'current' | 'past' | 'requested';\n /** Density mode */\n density?: 'comfortable' | 'compact';\n /** Vendor display mode */\n vendorMode?: 'icon' | 'code';\n /** Use unified service column */\n useServiceColumn?: boolean;\n /** Callback when viewing a trip */\n onViewTrip?: (id: string) => void;\n /** Show empty state */\n emptyMessage?: string;\n /** Additional CSS class */\n className?: string;\n}\n\n// TravelerCell component\nconst TravelerCell: React.FC<{ names: string[] }> = ({ names }) => {\n if (names.length === 0) return <span>—</span>;\n if (names.length === 1) return <span>{names[0]}</span>;\n return (\n <span className={styles.travelerCell}>\n <span>{names[0]}</span>\n <span className={styles.moreCount}>+{names.length - 1}</span>\n </span>\n );\n};\n\n// Chevron icon\nconst ChevronRight: React.FC<{ size?: number }> = ({ size = 20 }) => (\n <svg \n width={size} \n height={size} \n viewBox=\"0 0 24 24\" \n fill=\"none\" \n stroke=\"currentColor\" \n strokeWidth=\"2.5\"\n >\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n);\n\nexport const TripTable: React.FC<TripTableProps> = ({\n trips,\n variant = 'current',\n density = 'comfortable',\n vendorMode = 'icon',\n useServiceColumn = false,\n onViewTrip,\n emptyMessage,\n className,\n}) => {\n const isRequested = variant === 'requested';\n const isCompact = density === 'compact';\n const serviceIconSize = isCompact ? 24 : 28;\n\n // Map status strings to our variants\n const mapStatus = (status: string): StatusBadgeVariant => {\n const statusMap: Record<string, StatusBadgeVariant> = {\n 'Ticketed': 'ticketed',\n 'Itinerary': 'itinerary',\n 'Not Ticketed': 'not-ticketed',\n 'Submitted': 'submitted',\n 'Pending': 'pending',\n 'Cancelled': 'cancelled',\n };\n return statusMap[status] || (status.toLowerCase() as StatusBadgeVariant);\n };\n\n return (\n <div className={`${styles.table} ${className || ''}`}>\n {/* Header */}\n <div \n className={`${styles.header} ${isRequested ? styles.requestedHeader : ''} ${useServiceColumn ? styles.serviceHeader : ''}`}\n >\n {isRequested ? (\n <>\n <div>Request ID</div>\n <div>Traveler(s)</div>\n <div>Trip Type</div>\n <div>Requested By</div>\n <div className={styles.viewCol}>View</div>\n </>\n ) : (\n <>\n <div>Traveler</div>\n <div>Sport</div>\n <div>PNR</div>\n {useServiceColumn ? (\n <>\n <div>Service</div>\n <div>Itinerary</div>\n </>\n ) : (\n <>\n <div>Vendor</div>\n <div>Itinerary</div>\n <div>Types</div>\n </>\n )}\n <div>Travel Dates</div>\n <div>Status</div>\n <div></div>\n </>\n )}\n </div>\n\n {/* Rows */}\n {trips.length === 0 ? (\n <div className={styles.empty}>\n <div className={styles.emptyTitle}>\n {isRequested ? 'No Requested Trips' : 'No Trips Found'}\n </div>\n <div className={styles.emptyText}>\n {emptyMessage || (isRequested \n ? 'Travel requests submitted to STM will appear here until an agent books them.'\n : 'Try clearing your filters or widening the date range.'\n )}\n </div>\n </div>\n ) : (\n trips.map((trip, index) => (\n <div\n key={trip.id || trip.pnr || trip.reqId || index}\n className={`\n ${styles.row} \n ${isRequested ? styles.requestedRow : ''} \n ${useServiceColumn ? styles.serviceRow : ''}\n ${isCompact ? styles.compact : ''}\n `}\n onClick={() => onViewTrip?.(trip.pnr || trip.reqId || trip.id)}\n >\n {isRequested ? (\n <>\n <div>\n <a \n href=\"#\" \n className={styles.pnrLink}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n onViewTrip?.(trip.reqId || trip.id);\n }}\n >\n {trip.reqId}\n </a>\n </div>\n <div className={styles.textMuted}>\n <TravelerCell names={trip.travelers} />\n </div>\n <div className={styles.typesCell}>\n {trip.types.map((t, ti) => (\n <TypeIcon key={ti} type={t} size={isCompact ? 14 : 16} />\n ))}\n </div>\n <div className={styles.requestedByCell}>\n <div className={styles.textMuted}>{trip.requestedBy}</div>\n {trip.submitted && (\n <div className={styles.submittedDate}>Submitted {trip.submitted}</div>\n )}\n </div>\n <div className={styles.viewCol}>\n <a \n href=\"#\"\n className={styles.viewLink}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n onViewTrip?.(trip.reqId || trip.id);\n }}\n title=\"View request detail\"\n >\n <ChevronRight />\n </a>\n </div>\n </>\n ) : (\n <>\n <div className={styles.textMuted}>\n <TravelerCell names={trip.travelers} />\n </div>\n <div className={styles.textMuted}>{trip.sport || '—'}</div>\n <div>\n <a \n href=\"#\" \n className={styles.pnrLink}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n onViewTrip?.(trip.pnr || trip.id);\n }}\n >\n {trip.pnr}\n </a>\n </div>\n {useServiceColumn ? (\n <>\n <div className={styles.serviceCell}>\n {(['A', 'H', 'C'] as TravelType[]).map(slot => (\n trip.types.includes(slot) ? (\n <TravelServiceIcon\n key={slot}\n type={slot}\n vendor={slot === 'A' ? trip.vendor : undefined}\n mode={vendorMode}\n size={serviceIconSize}\n multi={trip.multiSegments?.includes(slot)}\n />\n ) : (\n <span key={slot} className={styles.servicePlaceholder} style={{ width: serviceIconSize, height: serviceIconSize }} />\n )\n ))}\n </div>\n <div className={styles.textMuted}>{trip.itinerary || '—'}</div>\n </>\n ) : (\n <>\n <div>\n {trip.vendor && vendorMode === 'icon' ? (\n <TravelServiceIcon type=\"A\" vendor={trip.vendor} mode=\"icon\" size={24} />\n ) : (\n <span className={styles.vendorCode}>{trip.vendor || '—'}</span>\n )}\n </div>\n <div className={styles.textMuted}>{trip.itinerary || '—'}</div>\n <div className={styles.typesCell}>\n {trip.types.map((t, ti) => (\n <TypeIcon key={ti} type={t} size={isCompact ? 14 : 16} />\n ))}\n </div>\n </>\n )}\n <div className={styles.textMuted}>{trip.dates}</div>\n <div>\n <StatusBadge status={mapStatus(trip.status as string)} />\n </div>\n <div className={styles.viewCol}>\n <a \n href=\"#\"\n className={styles.viewLink}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n onViewTrip?.(trip.pnr || trip.id);\n }}\n title=\"View itinerary\"\n >\n <ChevronRight />\n </a>\n </div>\n </>\n )}\n </div>\n ))\n )}\n </div>\n );\n};\n\nexport default TripTable;\n","import { ReactNode } from 'react';\nimport { ChevronRightIcon, DocumentIcon, PlaneIcon } from '../../atoms/Icons';\nimport styles from './AdministrationPage.module.css';\n\nexport type AdministrationTab = 'system' | 'client';\n\nexport interface AdministrationCard {\n key: string;\n title: string;\n description: string;\n icon?: ReactNode;\n}\n\nexport interface AdministrationPageProps {\n activeTab?: AdministrationTab;\n onTabChange?: (tab: AdministrationTab) => void;\n cards?: AdministrationCard[];\n onCardClick?: (card: AdministrationCard) => void;\n children?: ReactNode;\n className?: string;\n}\n\nconst DEFAULT_CARDS: AdministrationCard[] = [\n {\n key: 'announcements',\n title: 'Announcements',\n description: 'Manage system-wide announcements and notifications',\n icon: <DocumentIcon size={16} />,\n },\n {\n key: 'suppliers',\n title: 'Suppliers',\n description: 'Manage air, car, and hotel suppliers',\n icon: <PlaneIcon size={16} />,\n },\n];\n\n/** Hub administration shell and system-card index. */\nexport const AdministrationPage = ({\n activeTab = 'system',\n onTabChange,\n cards = DEFAULT_CARDS,\n onCardClick,\n children,\n className = '',\n}: AdministrationPageProps) => (\n <div className={[styles.page, className].filter(Boolean).join(' ')}>\n <header className={styles.header}>\n <h1>Administration </h1>\n </header>\n\n <div className={styles.tabs} role=\"tablist\" aria-label=\"Administration sections\">\n {(['system', 'client'] as const).map((tab) => (\n <button\n key={tab}\n type=\"button\"\n role=\"tab\"\n aria-selected={activeTab === tab}\n className={[styles.tab, activeTab === tab ? styles.activeTab : ''].filter(Boolean).join(' ')}\n onClick={() => onTabChange?.(tab)}\n >\n {tab === 'system' ? 'System' : 'Client'}\n </button>\n ))}\n </div>\n\n {children ?? (\n activeTab === 'system' ? (\n <div className={styles.cards}>\n {cards.map((card) => (\n <button key={card.key} type=\"button\" className={styles.card} onClick={() => onCardClick?.(card)}>\n <span className={styles.cardIcon}>{card.icon}</span>\n <span className={styles.cardCopy}>\n <span className={styles.cardTitle}>{card.title}</span>\n <span className={styles.cardDescription}>{card.description}</span>\n </span>\n <ChevronRightIcon className={styles.chevron} size={14} />\n </button>\n ))}\n </div>\n ) : (\n <p className={styles.comingSoon}>Client administration settings coming soon.</p>\n )\n )}\n </div>\n);\n\nexport default AdministrationPage;\n","import { useMemo, useState } from 'react';\nimport { Button } from '../../atoms/Button';\nimport {\n ChevronLeftIcon,\n ChevronRightIcon,\n CubeIcon,\n DocumentIcon,\n PlaneIcon,\n PlusIcon,\n SettingsIcon,\n TrashIcon,\n} from '../../atoms/Icons';\nimport { ManifestView, ManifestViewToggle } from '../../molecules/ManifestViewToggle';\nimport { ManifestCapacityStats } from '../../organisms/ManifestCapacityStats';\nimport styles from './CharterManifestPage.module.css';\n\nexport type ManifestSendState = 'none' | 'initial-sent' | 'final-sent';\n\nexport interface CharterManifestSegment {\n id: string;\n label: string;\n detail: string;\n}\n\nexport interface CharterManifestPassenger {\n id: string | number;\n firstName: string;\n lastName: string;\n travelerType: string;\n screeningType?: string;\n personalWeight?: number;\n carryOnWeight?: number;\n checkedWeight?: number;\n seatAssignment?: string | null;\n}\n\nexport interface CharterManifestEquipment {\n id: string | number;\n name: string;\n quantity: number;\n weight: number;\n}\n\nexport interface CharterManifestPageProps {\n tripName: string;\n travelStartDate?: string;\n travelEndDate?: string;\n seats: number;\n payloadLimit: number;\n passengerWeight: number;\n cargoWeight: number;\n carrierName?: string;\n carrierNote?: string;\n passengers?: CharterManifestPassenger[];\n equipment?: CharterManifestEquipment[];\n segments?: CharterManifestSegment[];\n locked?: boolean;\n sendState?: ManifestSendState;\n onBack?: () => void;\n onGenerateFile?: () => void;\n onChangeCarrier?: () => void;\n onSplitSegments?: () => void;\n onAddPassengers?: () => void;\n onAddEquipment?: () => void;\n onRemovePassenger?: (passenger: CharterManifestPassenger) => void;\n onRemoveEquipment?: (equipment: CharterManifestEquipment) => void;\n onSendInitial?: () => void;\n onSendFinal?: () => void;\n onUndoInitial?: () => void;\n className?: string;\n}\n\nconst TYPE_ORDER = ['Player', 'Coach', 'Staff', 'Medical', 'Support', 'Admin'];\n\nconst formatDate = (value?: string) => {\n if (!value) return '';\n const date = new Date(value);\n if (Number.isNaN(date.getTime())) return value;\n return date.toLocaleDateString(undefined, { weekday: 'short', month: 'short', day: 'numeric', year: 'numeric' });\n};\n\nconst TypeTag = ({ type }: { type: string }) => (\n <span className={[styles.typeTag, styles[`type${type}`] ?? ''].filter(Boolean).join(' ')}>{type}</span>\n);\n\nconst StatusPill = ({ sendState, locked }: { sendState: ManifestSendState; locked: boolean }) => {\n const label = locked ? 'Final sent · Locked' : sendState === 'initial-sent' ? 'Initial sent' : sendState === 'final-sent' ? 'Final sent' : 'Not sent';\n return <span className={[styles.status, locked ? styles.statusLocked : ''].filter(Boolean).join(' ')}>{label}</span>;\n};\n\n/** Stateless, service-free rendering of Hub's charter manifest page. */\nexport const CharterManifestPage = ({\n tripName,\n travelStartDate,\n travelEndDate,\n seats,\n payloadLimit,\n passengerWeight,\n cargoWeight,\n carrierName = 'No carrier selected',\n carrierNote = 'Select a carrier to configure manifest fields.',\n passengers = [],\n equipment = [],\n segments = [],\n locked = false,\n sendState = 'none',\n onBack,\n onGenerateFile,\n onChangeCarrier,\n onSplitSegments,\n onAddPassengers,\n onAddEquipment,\n onRemovePassenger,\n onRemoveEquipment,\n onSendInitial,\n onSendFinal,\n onUndoInitial,\n className = '',\n}: CharterManifestPageProps) => {\n const [view, setView] = useState<ManifestView>('passengers');\n const [sort, setSort] = useState<'name' | 'type'>('name');\n const [scope, setScope] = useState('all');\n\n const sortedPassengers = useMemo(() => [...passengers].sort((a, b) => {\n if (sort === 'type') {\n const aRank = TYPE_ORDER.indexOf(a.travelerType);\n const bRank = TYPE_ORDER.indexOf(b.travelerType);\n const normalizedA = aRank < 0 ? TYPE_ORDER.length : aRank;\n const normalizedB = bRank < 0 ? TYPE_ORDER.length : bRank;\n return normalizedA - normalizedB || a.lastName.localeCompare(b.lastName);\n }\n return a.lastName.localeCompare(b.lastName);\n }), [passengers, sort]);\n\n return (\n <div className={[styles.page, className].filter(Boolean).join(' ')} data-screen-label=\"Charter Trip Manifest\">\n <header className={styles.header}>\n <div className={styles.headerRow}>\n <button type=\"button\" aria-label=\"Back\" className={styles.back} onClick={onBack}><ChevronLeftIcon size={28} /></button>\n <h1><strong>Manifest</strong><ChevronRightIcon size={24} /><span>{tripName}</span></h1>\n <div className={styles.headerActions}>\n <StatusPill sendState={sendState} locked={locked} />\n <Button variant=\"outline\" leftIcon={<DocumentIcon size={16} />} disabled={carrierName === 'No carrier selected'} onClick={onGenerateFile}>Generate File</Button>\n </div>\n </div>\n {(travelStartDate || travelEndDate) && (\n <div className={styles.dateRow}>\n <span>{formatDate(travelStartDate)}</span><span className={styles.dateLine}>▶</span><span>{formatDate(travelEndDate)}</span>\n </div>\n )}\n <div className={styles.metaRow}>\n <span><PlaneIcon size={16} />{seats} seats</span>\n <span><CubeIcon size={16} />Payload limit {payloadLimit.toLocaleString()} lb</span>\n </div>\n </header>\n\n <div className={styles.layout}>\n <aside className={styles.rail}>\n <div>\n <div className={styles.eyebrow}>Flight Manifest</div>\n <div className={styles.scopeList}>\n {[{ id: 'all', label: 'Full Trip', detail: 'All flight segments' }, ...segments].map((item) => (\n <button\n key={item.id}\n type=\"button\"\n className={[styles.scope, scope === item.id ? styles.activeScope : ''].filter(Boolean).join(' ')}\n onClick={() => setScope(item.id)}\n >\n <strong>{item.label}</strong><span>{item.detail}</span>\n </button>\n ))}\n </div>\n </div>\n {segments.length > 0 && (\n <Button variant=\"outline\" size=\"sm\" disabled={locked} onClick={onSplitSegments}>Split by Segment</Button>\n )}\n <div className={styles.carrierCard}>\n <div className={styles.eyebrow}>Carrier</div>\n <strong>{carrierName}</strong>\n <p>{carrierNote}</p>\n <Button variant=\"outline\" size=\"sm\" fullWidth disabled={locked} leftIcon={<SettingsIcon size={15} />} onClick={onChangeCarrier}>Change Carrier</Button>\n </div>\n </aside>\n\n <main className={styles.main}>\n <section className={styles.capacityCard}>\n <ManifestCapacityStats paxCount={passengers.length} seats={seats} paxWeight={passengerWeight} cargoWeight={cargoWeight} payloadLimit={payloadLimit} />\n </section>\n\n <div className={styles.viewRow}>\n <ManifestViewToggle view={view} onView={setView} paxCount={passengers.length} eqCount={equipment.length} locked={locked} />\n {locked && <span className={styles.lockedMessage}>Locked — coordinate any changes directly with the carrier.</span>}\n </div>\n\n {view === 'passengers' ? (\n <section>\n {!locked && (\n <div className={styles.tableActions}>\n <strong>{passengers.length} Passengers</strong>\n <div><span>Order by</span><span className={styles.sortToggle}>\n {(['name', 'type'] as const).map((option) => (\n <button key={option} type=\"button\" className={sort === option ? styles.activeSort : ''} onClick={() => setSort(option)}>{option}</button>\n ))}\n </span><Button size=\"sm\" leftIcon={<PlusIcon size={15} />} onClick={onAddPassengers}>Add Passengers</Button></div>\n </div>\n )}\n <div className={styles.tableWrap}>\n <table>\n <thead><tr><th>#</th><th>Passenger</th><th>Type</th><th>TSA Screening</th><th>Personal</th><th>Carry-On</th><th>Checked</th><th>Seat</th><th /></tr></thead>\n <tbody>\n {!sortedPassengers.length && <tr><td colSpan={9} className={styles.empty}>No passengers on this manifest yet. Add passengers from the master list.</td></tr>}\n {sortedPassengers.map((passenger, index) => (\n <tr key={passenger.id}>\n <td>{index + 1}</td>\n <td><strong>{passenger.lastName}</strong><span>, {passenger.firstName}</span></td>\n <td><TypeTag type={passenger.travelerType} /></td>\n <td>{passenger.screeningType || '—'}</td>\n <td>{passenger.personalWeight ?? 0} lb</td>\n <td>{passenger.carryOnWeight ?? 0} lb</td>\n <td>{passenger.checkedWeight ?? 0} lb</td>\n <td>{passenger.seatAssignment || '—'}</td>\n <td>{!locked && <button type=\"button\" aria-label={`Remove ${passenger.firstName} ${passenger.lastName}`} className={styles.remove} onClick={() => onRemovePassenger?.(passenger)}><TrashIcon size={16} /></button>}</td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </section>\n ) : (\n <section>\n {!locked && <div className={styles.tableActions}><strong>{equipment.length} Equipment Items</strong><Button size=\"sm\" leftIcon={<PlusIcon size={15} />} onClick={onAddEquipment}>Add Equipment</Button></div>}\n <div className={styles.tableWrap}>\n <table><thead><tr><th>Equipment</th><th>Quantity</th><th>Weight</th><th>Total</th><th /></tr></thead>\n <tbody>{equipment.map((item) => <tr key={item.id}><td><strong>{item.name}</strong></td><td>{item.quantity}</td><td>{item.weight.toLocaleString()} lb</td><td>{(item.quantity * item.weight).toLocaleString()} lb</td><td>{!locked && <button type=\"button\" aria-label={`Remove ${item.name}`} className={styles.remove} onClick={() => onRemoveEquipment?.(item)}><TrashIcon size={16} /></button>}</td></tr>)}</tbody>\n </table>\n </div>\n </section>\n )}\n\n {!locked && (\n <section className={styles.finalize}>\n <StatusPill sendState={sendState} locked={false} />\n <p>{sendState === 'initial-sent' ? 'Initial manifest sent. The final manifest may be sent within 3 days of departure.' : 'No manifest has been transmitted to the carrier yet.'}</p>\n <div className={styles.finalizeActions}>\n {sendState === 'none' && <Button onClick={onSendInitial}>Send Initial Manifest</Button>}\n {sendState === 'initial-sent' && <><Button onClick={onSendFinal}>Send Final Manifest</Button><Button variant=\"ghost\" size=\"sm\" onClick={onUndoInitial}>Undo initial</Button></>}\n </div>\n </section>\n )}\n </main>\n </div>\n </div>\n );\n};\n\nexport default CharterManifestPage;\n","import { ReactNode } from 'react';\nimport { PrinterIcon } from '../../atoms/Icons';\nimport styles from './ContactUsPage.module.css';\n\nexport interface ContactInfo {\n name?: string;\n email?: string;\n phone?: string;\n show247?: boolean;\n}\n\nexport interface ContactCardData {\n title: string;\n contacts: ContactInfo[];\n}\n\nexport interface ContactPair {\n sales?: ContactInfo;\n operations?: ContactInfo;\n}\n\nexport interface ContactUsData {\n accountManagers?: ContactInfo[];\n travelAgents?: ContactInfo[];\n charterAirContacts?: ContactPair[];\n motorcoachContacts?: ContactPair[];\n groupHotelContacts?: ContactInfo[];\n}\n\nexport interface ContactUsPageProps {\n title?: string;\n state?: 'loading' | 'data' | 'empty' | 'error';\n errorMessage?: string;\n data?: ContactUsData;\n onPrint?: () => void;\n /** Generic cards remain available for non-Hub consumers. */\n cards?: ContactCardData[];\n children?: ReactNode;\n className?: string;\n}\n\nconst cleanEmail = (email?: string) => email?.replace('.invalid', '');\n\nconst ContactField = ({ label, children, emergency = false }: { label: string; children: ReactNode; emergency?: boolean }) => (\n <div className={styles.field}>\n <span className={emergency ? styles.emergencyLabel : styles.label}>\n {label}\n {emergency && <span className={styles.emergencyDot} />}\n </span>\n <div className={styles.fieldValue}>{children}</div>\n </div>\n);\n\nconst ContactCard = ({ title, children }: { title: string; children: ReactNode }) => (\n <section className={styles.card}>\n <h2>{title}</h2>\n <div className={styles.cardBody}>{children}</div>\n </section>\n);\n\nconst SimpleContactCard = ({ title, contacts = [] }: { title: string; contacts?: ContactInfo[] }) => {\n const validContacts = contacts.filter((contact) => contact.name || contact.email || contact.phone);\n if (!validContacts.length) return null;\n return (\n <ContactCard title={title}>\n {validContacts.map((contact, index) => (\n <div className={styles.simpleContact} key={`${contact.email ?? contact.name ?? contact.phone}-${index}`}>\n {contact.name && <ContactField label=\"Name:\"><span>{contact.name}</span></ContactField>}\n {contact.email && <ContactField label=\"Email:\"><a href={`mailto:${cleanEmail(contact.email)}`}>{cleanEmail(contact.email)}</a></ContactField>}\n {contact.phone && <ContactField label=\"Phone:\"><span>{contact.phone}</span></ContactField>}\n </div>\n ))}\n </ContactCard>\n );\n};\n\nconst ContactColumn = ({ title, contact }: { title: string; contact?: ContactInfo }) => (\n <div className={styles.contactColumn}>\n <strong>{title}</strong>\n {contact?.name && <span>{contact.name}</span>}\n {contact?.email && <a href={`mailto:${cleanEmail(contact.email)}`}>{cleanEmail(contact.email)}</a>}\n {contact?.phone && <span>{contact.phone}{contact.show247 && <em> (24/7)</em>}</span>}\n </div>\n);\n\nconst PairedContacts = ({ contacts = [] }: { contacts?: ContactPair[] }) => (\n <>\n {contacts.map((contact, index) => (\n <div className={styles.contactPair} key={`${contact.sales?.email ?? contact.operations?.email}-${index}`}>\n <ContactColumn title=\"Sales Contact\" contact={contact.sales} />\n <ContactColumn title=\"Operations Contact\" contact={contact.operations} />\n </div>\n ))}\n </>\n);\n\nconst GenericCards = ({ cards }: { cards: ContactCardData[] }) => (\n <div className={styles.genericGrid}>\n {cards.map((card) => <SimpleContactCard key={card.title} title={card.title} contacts={card.contacts} />)}\n </div>\n);\n\n/** Exact presentational counterpart of the Hub Contact Us screen. */\nexport const ContactUsPage = ({\n title = 'Your Team of Experts',\n state,\n errorMessage = 'Unable to fetch contact information.',\n data,\n onPrint,\n cards = [],\n children,\n className = '',\n}: ContactUsPageProps) => {\n const resolvedState = state ?? (data || cards.length || children ? 'data' : 'empty');\n if (resolvedState === 'loading') return null;\n\n if (resolvedState === 'error' || resolvedState === 'empty') {\n return (\n <div className={styles.centeredState}>\n <div role={resolvedState === 'error' ? 'alert' : 'status'} className={resolvedState === 'error' ? styles.error : styles.warning}>\n {resolvedState === 'error' ? errorMessage : 'No contact information available.'}\n </div>\n </div>\n );\n }\n\n return (\n <div className={[styles.page, className].filter(Boolean).join(' ')}>\n <div className={styles.container}>\n <header className={styles.header}><h1>{title}</h1></header>\n <div className={styles.printRow}>\n <button type=\"button\" onClick={onPrint ?? (() => window.print())}><PrinterIcon size={16} />Print</button>\n </div>\n\n {children ?? (data ? (\n <>\n {!!(data.accountManagers?.length || data.travelAgents?.length) && (\n <div className={styles.primaryGrid}>\n <SimpleContactCard title=\"Account Manager\" contacts={data.accountManagers} />\n <SimpleContactCard title=\"Travel Agent\" contacts={data.travelAgents} />\n </div>\n )}\n\n <div className={styles.stack}>\n <ContactCard title=\"Group/Team Commercial Reservation Specialists\">\n <ContactField label=\"Business Hours:\"><span>Monday – Friday 8am-8pm ET</span></ContactField>\n <ContactField label=\"Toll-Free Number:\"><span>866-902-9654</span></ContactField>\n <ContactField label=\"After Hours/Emergency (24/7):\" emergency><span className={styles.emergency}>866-902-9654</span></ContactField>\n <ContactField label=\"Email:\"><a href=\"mailto:teamtravel@shortstravel.com\">teamtravel@shortstravel.com</a></ContactField>\n </ContactCard>\n\n <ContactCard title=\"Recruiting Travel Specialists\">\n <ContactField label=\"Business Hours:\"><span>Monday – Friday 8am-8pm ET</span></ContactField>\n <ContactField label=\"Toll-Free Number:\"><span>866-902-9654</span></ContactField>\n <ContactField label=\"After Hours/Emergency (24/7):\" emergency><span className={styles.emergency}>866-902-9654</span></ContactField>\n <ContactField label=\"Email:\"><a href=\"mailto:recruiting@shortstravel.com\">recruiting@shortstravel.com</a></ContactField>\n </ContactCard>\n\n {!!data.charterAirContacts?.length && <ContactCard title=\"Charter Air\"><PairedContacts contacts={data.charterAirContacts} /></ContactCard>}\n {!!data.motorcoachContacts?.length && (\n <ContactCard title=\"Charter Bus / Motorcoach\">\n <PairedContacts contacts={data.motorcoachContacts} />\n <p className={styles.motorcoachEmergency}>After Hours/Emergency (24/7): 319-423-3007</p>\n </ContactCard>\n )}\n {!!data.groupHotelContacts?.length && (\n <ContactCard title=\"Group Hotel\">\n {data.groupHotelContacts.map((contact, index) => (\n <div className={styles.contactPair} key={`${contact.email ?? contact.name}-${index}`}>\n <ContactColumn title=\"Sales Contact\" contact={contact} />\n <div className={styles.contactColumn} />\n </div>\n ))}\n </ContactCard>\n )}\n </div>\n </>\n ) : <GenericCards cards={cards} />)}\n\n <footer className={styles.support}>\n <h2>Short's Travel Website and Online Booking Tool Support</h2>\n <p>Monday – Friday 9am-9pm ET, except major holidays</p>\n <div><span>319-257-5309</span><a href=\"mailto:onlinesupport@shortstravel.com\">onlinesupport@shortstravel.com</a></div>\n </footer>\n </div>\n </div>\n );\n};\n\nexport default ContactUsPage;\n","import { useRef, useState } from 'react';\nimport {\n CheckIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n CloseIcon,\n EditIcon,\n FilterIcon,\n InfoIcon,\n PlusIcon,\n RefreshIcon,\n SettingsIcon,\n UserIcon,\n WarningIcon,\n} from '../../atoms/Icons';\nimport { PageBanners, SystemBanner, TravelAlertBanner } from '../../organisms/PageBanners';\nimport styles from './DashboardPage.module.css';\n\nexport type DashboardWidgetSize = 'S' | 'M' | 'L';\nexport type DashboardWidgetState = 'loading' | 'data' | 'empty' | 'error';\nexport type DashboardTravelerRange = 'last7' | 'yesterday' | 'today' | 'tomorrow' | 'next7';\n\nexport interface DashboardWidgetRow {\n primary: string;\n secondary?: string;\n value?: string;\n badge?: string;\n}\n\nexport interface DashboardTravelerRecord {\n traveler: string;\n dates: string;\n types: string[];\n}\n\nexport interface DashboardUnusedTicketRecord {\n traveler: string;\n airline: string;\n airlineLogo?: string;\n exp: string;\n expDays: number;\n amount: string;\n}\n\nexport interface DashboardInfoCenterItem {\n id: string;\n title: string;\n body?: string;\n href?: string;\n}\n\nexport interface DashboardWidget {\n id: string;\n type: 'travelers' | 'unused' | 'info';\n title: string;\n size: DashboardWidgetSize;\n state?: DashboardWidgetState;\n pinned?: boolean;\n rows?: DashboardWidgetRow[];\n travelerRecords?: DashboardTravelerRecord[];\n unusedRecords?: DashboardUnusedTicketRecord[];\n unusedTotalAmount?: string;\n infoCenterRecords?: DashboardInfoCenterItem[];\n emptyMessage?: string;\n footerLabel?: string;\n footerPath?: string;\n footerSecondary?: { label: string; path: string };\n}\n\nexport interface DashboardPageProps {\n greeting?: string;\n firstName?: string;\n accountName?: string;\n widgets?: DashboardWidget[];\n systemBanners?: SystemBanner[];\n alertBanners?: TravelAlertBanner[];\n syncStatus?: 'idle' | 'saving' | 'error';\n onRefresh?: (widget: DashboardWidget) => void;\n onRemove?: (widget: DashboardWidget) => void;\n onResize?: (widget: DashboardWidget, size: DashboardWidgetSize) => void;\n onReorder?: (from: number, to: number) => void;\n onReset?: () => void;\n onAddWidget?: (type: DashboardWidget['type']) => void;\n onTravelerRangeChange?: (widget: DashboardWidget, range: DashboardTravelerRange) => void;\n onNavigate?: (path: string, state?: unknown) => void;\n className?: string;\n}\n\nconst CATALOG: { type: DashboardWidget['type']; title: string; description: string }[] = [\n { type: 'travelers', title: \"Today's Travelers\", description: 'Current travelers with dates and travel types, plus the Where Are My Travelers report.' },\n { type: 'unused', title: 'Unused Tickets', description: 'Unused, unexpired airline tickets with traveler, carrier, expiration, and amount.' },\n { type: 'info', title: 'Info Center', description: 'Informational links, newsletters, and training resources.' },\n];\n\nconst TRAVELER_RANGES: { key: DashboardTravelerRange; label: string }[] = [\n { key: 'last7', label: \"Last 7 Days' Travelers\" },\n { key: 'yesterday', label: \"Yesterday's Travelers\" },\n { key: 'today', label: \"Today's Travelers\" },\n { key: 'tomorrow', label: \"Tomorrow's Travelers\" },\n { key: 'next7', label: \"Next 7 Days' Travelers\" },\n];\n\nconst rowsForSize = (size: DashboardWidgetSize) => size === 'S' ? 3 : size === 'M' ? 6 : 10;\nconst WidgetIcon = ({ type }: { type: DashboardWidget['type'] }) => type === 'travelers' ? <UserIcon size={20} /> : <InfoIcon size={20} />;\n\nconst LoadingState = () => <div className={styles.skeleton}><i /><i /><i /><span>Refreshing…</span></div>;\nconst EmptyState = ({ message }: { message: string }) => <div className={styles.state}><CheckIcon size={28} /><span>{message}</span></div>;\nconst ErrorState = ({ onRetry }: { onRetry: () => void }) => <div className={styles.state}><WarningIcon size={28} /><span>Couldn't load this card.</span><button type=\"button\" onClick={onRetry}><RefreshIcon size={16} />Retry</button></div>;\n\nconst TravelersBody = ({ records, size }: { records: DashboardTravelerRecord[]; size: DashboardWidgetSize }) => (\n <div className={styles.tableBody}>\n <div className={[styles.tableRow, styles.travelersGrid, styles.tableHead].join(' ')}><span>Traveler(s)</span><span>Dates</span><span>Types</span></div>\n {records.slice(0, rowsForSize(size)).map((record, index, visible) => (\n <div className={[styles.tableRow, styles.travelersGrid].join(' ')} data-last={index === visible.length - 1} key={`${record.traveler}-${index}`}>\n <strong>{record.traveler}</strong><span>{record.dates}</span><span className={styles.typeChips}>{record.types.map((type) => <b title={type} key={type}>{type}</b>)}</span>\n </div>\n ))}\n </div>\n);\n\nconst UnusedBody = ({ records, size, totalAmount = '$0.00' }: { records: DashboardUnusedTicketRecord[]; size: DashboardWidgetSize; totalAmount?: string }) => (\n <div className={styles.tableBody}>\n <div className={[styles.tableRow, styles.unusedGrid, styles.tableHead].join(' ')}><span>Traveler</span><span>Air</span><span>Exp</span><span>Amount</span></div>\n {records.slice(0, rowsForSize(size)).map((record, index, visible) => (\n <div className={[styles.tableRow, styles.unusedGrid].join(' ')} data-last={index === visible.length - 1} key={`${record.traveler}-${index}`}>\n <span>{record.traveler}</span><strong className={styles.carrier}>{record.airlineLogo && <img src={record.airlineLogo} alt=\"\" />}{record.airline}</strong><span className={record.expDays <= 28 ? styles.nearExpiry : ''}>{record.exp}</span><strong>{record.amount}</strong>\n </div>\n ))}\n <div className={styles.summary}><span>{records.length} unused ticket{records.length === 1 ? '' : 's'}</span><span>Total <strong>{totalAmount}</strong></span></div>\n </div>\n);\n\nconst InfoBody = ({ records, size, onNavigate }: { records: DashboardInfoCenterItem[]; size: DashboardWidgetSize; onNavigate?: DashboardPageProps['onNavigate'] }) => (\n <div className={styles.infoList}>\n {records.slice(0, size === 'S' ? 3 : size === 'M' ? 5 : 9).map((item) => item.href ? (\n <a href={item.href} target=\"_blank\" rel=\"noopener noreferrer\" key={item.id}><span><strong>{item.title}</strong>{item.body && <small>{item.body}</small>}</span><b>↗</b></a>\n ) : (\n <button type=\"button\" onClick={() => onNavigate?.('/info-center', { openArticleId: item.id })} key={item.id}><span><strong>{item.title}</strong>{item.body && <small>{item.body}</small>}</span><b>›</b></button>\n ))}\n </div>\n);\n\nconst WidgetBody = ({ widget, onNavigate }: { widget: DashboardWidget; onNavigate?: DashboardPageProps['onNavigate'] }) => {\n if (widget.travelerRecords) return <TravelersBody records={widget.travelerRecords} size={widget.size} />;\n if (widget.unusedRecords) return <UnusedBody records={widget.unusedRecords} totalAmount={widget.unusedTotalAmount} size={widget.size} />;\n if (widget.infoCenterRecords) return <InfoBody records={widget.infoCenterRecords} size={widget.size} onNavigate={onNavigate} />;\n return <div className={styles.rows}>{widget.rows?.map((row, index) => <div className={styles.row} key={`${row.primary}-${index}`}><div><strong>{row.primary}</strong>{row.secondary && <span>{row.secondary}</span>}</div>{row.badge && <small>{row.badge}</small>}{row.value && <b>{row.value}</b>}</div>)}</div>;\n};\n\nconst WidgetCard = ({ widget, editMode, index, count, onRefresh, onRemove, onResize, onReorder, onTravelerRangeChange, onNavigate }: {\n widget: DashboardWidget;\n editMode: boolean;\n index: number;\n count: number;\n onRefresh?: DashboardPageProps['onRefresh'];\n onRemove?: DashboardPageProps['onRemove'];\n onResize?: DashboardPageProps['onResize'];\n onReorder?: DashboardPageProps['onReorder'];\n onTravelerRangeChange?: DashboardPageProps['onTravelerRangeChange'];\n onNavigate?: DashboardPageProps['onNavigate'];\n}) => {\n const [rangeIndex, setRangeIndex] = useState(2);\n const isTravelers = widget.type === 'travelers';\n const changeRange = (delta: number) => {\n const next = Math.max(0, Math.min(TRAVELER_RANGES.length - 1, rangeIndex + delta));\n setRangeIndex(next);\n onTravelerRangeChange?.(widget, TRAVELER_RANGES[next].key);\n };\n const state = widget.state ?? 'data';\n\n return (\n <article className={[styles.widget, editMode ? styles.editing : ''].filter(Boolean).join(' ')}>\n <header className={styles.widgetHeader}>\n {editMode && <span className={styles.dragHandle} aria-hidden=\"true\">⠿</span>}\n <span className={styles.widgetIcon}><WidgetIcon type={widget.type} /></span>\n {isTravelers ? <div className={styles.rangeTitle}><button type=\"button\" aria-label=\"Show previous traveler range\" disabled={rangeIndex === 0} onClick={() => changeRange(-1)}><ChevronLeftIcon size={14} /></button><h3>{TRAVELER_RANGES[rangeIndex].label}</h3><button type=\"button\" aria-label=\"Show next traveler range\" disabled={rangeIndex === TRAVELER_RANGES.length - 1} onClick={() => changeRange(1)}><ChevronRightIcon size={14} /></button></div> : <h3>{widget.title}</h3>}\n <div className={styles.widgetActions}>\n {editMode ? <><span className={styles.sizeToggle} role=\"group\" aria-label={`${widget.title} size`}>{(['S', 'M', 'L'] as const).map((size) => <button key={size} type=\"button\" aria-label={({ S: 'Small', M: 'Medium', L: 'Large' } as const)[size]} aria-pressed={widget.size === size} className={widget.size === size ? styles.activeSize : ''} onClick={() => onResize?.(widget, size)}>{size}</button>)}</span>{!widget.pinned && <button type=\"button\" className={styles.iconButton} aria-label={`Remove ${widget.title} card`} onClick={() => onRemove?.(widget)}><CloseIcon size={16} /></button>}</> : <button type=\"button\" className={styles.iconButton} aria-label={`Refresh ${widget.title}`} onClick={() => onRefresh?.(widget)} disabled={state === 'loading'}><RefreshIcon size={20} /></button>}\n </div>\n </header>\n <div className={styles.widgetBody}>{state === 'loading' ? <LoadingState /> : state === 'error' ? <ErrorState onRetry={() => onRefresh?.(widget)} /> : state === 'empty' ? <EmptyState message={widget.emptyMessage ?? 'No records available.'} /> : <WidgetBody widget={widget} onNavigate={onNavigate} />}</div>\n {!editMode && (state === 'data' || state === 'empty') && (widget.footerLabel || widget.footerSecondary) && <footer className={styles.widgetFooter}>{widget.footerSecondary && state === 'data' && <button type=\"button\" onClick={() => onNavigate?.(widget.footerSecondary!.path)}><FilterIcon size={16} />{widget.footerSecondary.label}</button>}{widget.footerLabel && <button type=\"button\" onClick={() => onNavigate?.(widget.footerPath ?? '#')}>{widget.footerLabel}<span>→</span></button>}</footer>}\n {editMode && <footer className={styles.editFooter}><span>Reorder</span><button type=\"button\" aria-label={`Move ${widget.title} earlier`} disabled={index === 0} onClick={() => onReorder?.(index, index - 1)}>←</button><button type=\"button\" aria-label={`Move ${widget.title} later`} disabled={index === count - 1} onClick={() => onReorder?.(index, index + 1)}>→</button></footer>}\n </article>\n );\n};\n\n/** Exact, service-free rendering of Hub's personalized home page. */\nexport const DashboardPage = ({ greeting = 'Good morning', firstName, accountName, widgets = [], systemBanners = [], alertBanners = [], syncStatus = 'idle', onRefresh, onRemove, onResize, onReorder, onReset, onAddWidget, onTravelerRangeChange, onNavigate, className = '' }: DashboardPageProps) => {\n const [editMode, setEditMode] = useState(false);\n const [catalogOpen, setCatalogOpen] = useState(false);\n const [dragFrom, setDragFrom] = useState<number | null>(null);\n const dragGhost = useRef<HTMLDivElement | null>(null);\n const presentTypes = new Set(widgets.map((widget) => widget.type));\n\n return (\n <div className={[styles.page, className].filter(Boolean).join(' ')}>\n <PageBanners systemBanners={systemBanners} alertBanners={alertBanners} />\n <header className={styles.pageHeader}><div><h1>{greeting}{firstName ? `, ${firstName}` : ''}</h1>{accountName && <p>Here's your personalized travel overview for {accountName}.</p>}</div><div className={styles.pageActions}>{editMode ? <><button type=\"button\" className={styles.outlineButton} onClick={() => setCatalogOpen(true)}><PlusIcon size={20} />Add card</button><button type=\"button\" className={styles.textButton} onClick={onReset}>Reset to default</button><button type=\"button\" className={styles.primaryButton} onClick={() => { setEditMode(false); setCatalogOpen(false); }}><CheckIcon size={20} />Done</button></> : <button type=\"button\" className={styles.customizeButton} onClick={() => setEditMode(true)}><SettingsIcon size={20} />Customize Your Home Page</button>}</div></header>\n {editMode && <div className={styles.editBanner}><EditIcon size={20} /><span><strong>Customizing your home page.</strong> Drag cards to reorder, resize with S / M / L, or remove cards. Your layout saves automatically.</span></div>}\n {syncStatus === 'saving' && <p className={styles.syncStatus} aria-live=\"polite\">Saving layout…</p>}\n {syncStatus === 'error' && <p className={[styles.syncStatus, styles.syncError].join(' ')} role=\"alert\">Layout couldn't be saved. Changes are preserved locally.</p>}\n {widgets.length ? <div className={styles.grid}>{widgets.map((widget, index) => <div key={widget.id} className={styles[`size${widget.size}`]} draggable={editMode} onDragStart={(event) => { if (!editMode) return; setDragFrom(index); const ghost = document.createElement('div'); ghost.className = styles.dragGhost; document.body.appendChild(ghost); dragGhost.current = ghost; event.dataTransfer.setDragImage(ghost, 0, 0); }} onDragOver={(event) => event.preventDefault()} onDrop={() => { if (dragFrom !== null && dragFrom !== index) onReorder?.(dragFrom, index); setDragFrom(null); }} onDragEnd={() => { setDragFrom(null); dragGhost.current?.remove(); dragGhost.current = null; }}><WidgetCard widget={widget} editMode={editMode} index={index} count={widgets.length} onRefresh={onRefresh} onRemove={onRemove} onResize={onResize} onReorder={onReorder} onTravelerRangeChange={onTravelerRangeChange} onNavigate={onNavigate} /></div>)}</div> : <div className={styles.emptyPage}><PlusIcon size={28} /><strong>Your home page is empty</strong><span>Use \"Customize\" to add cards from the catalog.</span></div>}\n {catalogOpen && <><button type=\"button\" className={styles.scrim} aria-label=\"Close card catalog\" onClick={() => setCatalogOpen(false)} /><aside className={styles.catalog} role=\"dialog\" aria-modal=\"true\" aria-label=\"Add cards\"><header><div><h2>Add a card</h2><p>Cards available to your role for this account</p></div><button type=\"button\" aria-label=\"Close card catalog\" onClick={() => setCatalogOpen(false)}><CloseIcon size={20} /></button></header><div className={styles.catalogBody}>{CATALOG.map((item) => <div className={styles.catalogItem} key={item.type}><span className={styles.catalogIcon}><WidgetIcon type={item.type} /></span><div><strong>{item.title}</strong><span>Account</span><p>{item.description}</p></div>{presentTypes.has(item.type) ? <span className={styles.added}><CheckIcon size={16} />Added</span> : <button type=\"button\" onClick={() => onAddWidget?.(item.type)}><PlusIcon size={16} />Add</button>}</div>)}</div><footer>Each card can appear once on your home page.</footer></aside></>}\n </div>\n );\n};\n\nexport default DashboardPage;\n","import React, { useState } from 'react';\nimport styles from './GroupTravelRequestPage.module.css';\nimport { RequestFormLayout, RequestFormHeader, RequestFormFooter } from '../../organisms/RequestFormLayout';\nimport { ServiceToggleList, ServiceConfig } from '../../molecules/ServiceToggle';\nimport { RequestSummary, SummarySectionConfig } from '../../organisms/RequestSummary';\nimport { FormSection } from '../../molecules/FormSection';\nimport { FormRow } from '../../molecules/FormRow';\nimport { Accordion } from '../../molecules/Accordion';\n\n// Icons\nconst EventsIcon = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"/>\n <line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"/>\n <line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"/>\n <line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"/>\n </svg>\n);\n\nconst PlaneIcon = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M21 16v-2l-8-5V3.5a1.5 1.5 0 0 0-3 0V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5Z\"/>\n </svg>\n);\n\nconst HotelIcon = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M3 21h18\"/>\n <path d=\"M19 21V5a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v16\"/>\n <path d=\"M9 21v-4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v4\"/>\n <path d=\"M10 9h4\"/>\n <path d=\"M10 5h4\"/>\n </svg>\n);\n\nconst CarIcon = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10H8s-2.7.6-4.5 1.1C2.7 11.3 2 12.1 2 13v3c0 .6.4 1 1 1h2\"/>\n <circle cx=\"7\" cy=\"17\" r=\"2\"/>\n <path d=\"M9 17h6\"/>\n <circle cx=\"17\" cy=\"17\" r=\"2\"/>\n </svg>\n);\n\nconst BusIcon = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M8 6v6\"/>\n <path d=\"M16 6v6\"/>\n <path d=\"M2 12h20\"/>\n <path d=\"M4 18v2\"/>\n <path d=\"M20 18v2\"/>\n <rect x=\"4\" y=\"4\" width=\"16\" height=\"14\" rx=\"2\"/>\n <circle cx=\"8\" cy=\"16\" r=\"1\"/>\n <circle cx=\"16\" cy=\"16\" r=\"1\"/>\n </svg>\n);\n\n// Service configuration\nconst TRAVEL_SERVICES: ServiceConfig[] = [\n { key: 'general', label: 'General Details', icon: <EventsIcon />, hasToggle: false },\n { key: 'air', label: 'Commercial Air', icon: <PlaneIcon />, hasToggle: true },\n { key: 'charter', label: 'Charter Air', icon: <PlaneIcon />, hasToggle: true },\n { key: 'hotel', label: 'Hotel', icon: <HotelIcon />, hasToggle: true },\n { key: 'ground', label: 'Ground Transportation', icon: <CarIcon />, hasToggle: true },\n { key: 'bus', label: 'Bus Needed', icon: <BusIcon />, hasToggle: true },\n];\n\n// Summary configuration\nconst SUMMARY_SECTIONS: SummarySectionConfig[] = [\n {\n key: 'general',\n title: 'General Details',\n items: [\n { label: 'Travel Party Size', value: null },\n { label: 'Trip Start', value: null },\n { label: 'Trip Return', value: null },\n { label: 'Booking Contact', value: null },\n ],\n },\n {\n key: 'air',\n title: 'Commercial Air Request',\n items: [\n { label: 'Flight Type', value: null },\n { label: 'Departure Airport', value: null },\n { label: 'Arrival Airport', value: null },\n ],\n },\n {\n key: 'hotel',\n title: 'Hotel Request',\n items: [\n { label: 'Check-in Date', value: null },\n { label: 'Check-out Date', value: null },\n { label: 'Number of Rooms', value: null },\n ],\n },\n {\n key: 'ground',\n title: 'Ground Transportation',\n items: [\n { label: 'Vehicle Type', value: null },\n { label: 'Pickup Location', value: null },\n ],\n },\n];\n\nexport interface GroupTravelRequestPageProps {\n /** Event name to display in header */\n eventName?: string;\n /** Total pages for multi-page forms */\n totalPages?: number;\n /** Callback when form is submitted */\n onSubmit?: (data: any) => void;\n /** Callback when form is cancelled */\n onCancel?: () => void;\n /** Initial form values */\n initialValues?: Record<string, any>;\n /** Custom services configuration */\n services?: ServiceConfig[];\n /** Custom summary sections */\n summarySections?: SummarySectionConfig[];\n /** Additional CSS class */\n className?: string;\n}\n\n/**\n * GroupTravelRequestPage component provides a complete travel request form page.\n * Includes service toggles, form sections, and summary panel.\n */\nexport const GroupTravelRequestPage: React.FC<GroupTravelRequestPageProps> = ({\n eventName = 'New Trip',\n totalPages = 1,\n onSubmit,\n onCancel,\n initialValues = {},\n services = TRAVEL_SERVICES,\n summarySections = SUMMARY_SECTIONS,\n className,\n}) => {\n const [currentPage, setCurrentPage] = useState(1);\n const [enabledServices, setEnabledServices] = useState<Record<string, boolean>>({\n general: true,\n air: false,\n charter: false,\n hotel: false,\n ground: false,\n bus: false,\n ...Object.fromEntries(\n Object.entries(initialValues)\n .filter(([key]) => services.some(s => s.key === key))\n .map(([key, value]) => [key, Boolean(value)])\n ),\n });\n const [formValues, setFormValues] = useState<Record<string, any>>(initialValues);\n\n const handleToggle = (key: string, enabled: boolean) => {\n setEnabledServices(prev => ({ ...prev, [key]: enabled }));\n };\n\n const handleServiceClick = (key: string) => {\n const element = document.getElementById(key);\n if (element) {\n element.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }\n };\n\n const handlePrevious = () => {\n if (currentPage > 1) {\n setCurrentPage(currentPage - 1);\n } else {\n onCancel?.();\n }\n };\n\n const handleNext = () => {\n if (currentPage < totalPages) {\n setCurrentPage(currentPage + 1);\n } else {\n onSubmit?.(formValues);\n }\n };\n\n const updateFormValue = (key: string, value: any) => {\n setFormValues(prev => ({ ...prev, [key]: value }));\n };\n\n return (\n <RequestFormLayout\n className={className}\n header={\n <RequestFormHeader\n title=\"Group Travel Request\"\n currentPage={totalPages > 1 ? currentPage : undefined}\n totalPages={totalPages > 1 ? totalPages : undefined}\n eventName={eventName}\n />\n }\n sidebar={\n <div className={styles.sidebarSection}>\n <h3 className={styles.sidebarTitle}>Services</h3>\n <ServiceToggleList\n services={services}\n enabledServices={enabledServices}\n onToggle={handleToggle}\n onClick={handleServiceClick}\n />\n </div>\n }\n summary={\n <RequestSummary\n sections={summarySections}\n values={formValues}\n enabledSections={enabledServices}\n />\n }\n footer={\n <RequestFormFooter\n onPrevious={handlePrevious}\n onNext={handleNext}\n isFirstPage={currentPage === 1}\n isLastPage={currentPage === totalPages}\n />\n }\n >\n <div className={styles.formContent}>\n {/* General Details Section - Always visible */}\n <FormSection\n id=\"general\"\n title=\"General Details\"\n icon={<EventsIcon />}\n >\n <div className={styles.field}>\n <label className={styles.label}>Travel Party Size *</label>\n <input\n type=\"number\"\n className={styles.input}\n style={{ width: '200px' }}\n min={1}\n max={999}\n value={formValues['Travel Party Size'] || ''}\n onChange={(e) => updateFormValue('Travel Party Size', e.target.value)}\n />\n </div>\n <FormRow columns={2}>\n <div className={styles.field}>\n <label className={styles.label}>Trip Start *</label>\n <input\n type=\"date\"\n className={styles.input}\n value={formValues['Trip Start'] || ''}\n onChange={(e) => updateFormValue('Trip Start', e.target.value)}\n />\n </div>\n <div className={styles.field}>\n <label className={styles.label}>Trip Return *</label>\n <input\n type=\"date\"\n className={styles.input}\n value={formValues['Trip Return'] || ''}\n onChange={(e) => updateFormValue('Trip Return', e.target.value)}\n />\n </div>\n </FormRow>\n <div className={styles.field}>\n <label className={styles.label}>Booking Contact *</label>\n <input\n type=\"text\"\n className={styles.input}\n placeholder=\"Full Name\"\n value={formValues['Booking Contact'] || ''}\n onChange={(e) => updateFormValue('Booking Contact', e.target.value)}\n />\n </div>\n <div className={styles.field}>\n <label className={styles.label}>General Notes</label>\n <textarea\n className={styles.textarea}\n rows={4}\n placeholder=\"Any notes regarding this trip...\"\n value={formValues['General Notes'] || ''}\n onChange={(e) => updateFormValue('General Notes', e.target.value)}\n />\n </div>\n </FormSection>\n\n {/* Commercial Air Section */}\n {enabledServices.air && (\n <FormSection\n id=\"air\"\n title=\"Commercial Air Request\"\n icon={<PlaneIcon />}\n >\n <div className={styles.field}>\n <label className={styles.label}>Flight Type *</label>\n <div className={styles.radioGroup}>\n {['One Way', 'Round Trip', 'Multiple Destinations'].map(option => (\n <label key={option} className={styles.radioLabel}>\n <input\n type=\"radio\"\n name=\"flightType\"\n value={option}\n checked={formValues['Flight Type'] === option}\n onChange={(e) => updateFormValue('Flight Type', e.target.value)}\n />\n <span>{option}</span>\n </label>\n ))}\n </div>\n </div>\n <Accordion\n header={<span className={styles.segmentHeader}>Flight 1</span>}\n showTimeline\n >\n <FormRow columns={2}>\n <div className={styles.field}>\n <label className={styles.label}>Departure Airport *</label>\n <input\n type=\"text\"\n className={styles.input}\n placeholder=\"e.g., JFK\"\n value={formValues['Departure Airport'] || ''}\n onChange={(e) => updateFormValue('Departure Airport', e.target.value)}\n />\n </div>\n <div className={styles.field}>\n <label className={styles.label}>Arrival Airport *</label>\n <input\n type=\"text\"\n className={styles.input}\n placeholder=\"e.g., LAX\"\n value={formValues['Arrival Airport'] || ''}\n onChange={(e) => updateFormValue('Arrival Airport', e.target.value)}\n />\n </div>\n </FormRow>\n <FormRow columns={2}>\n <div className={styles.field}>\n <label className={styles.label}>Departure Date *</label>\n <input\n type=\"date\"\n className={styles.input}\n value={formValues['Departure Date'] || ''}\n onChange={(e) => updateFormValue('Departure Date', e.target.value)}\n />\n </div>\n <div className={styles.field}>\n <label className={styles.label}>Departure Time *</label>\n <select\n className={styles.select}\n value={formValues['Departure Time'] || ''}\n onChange={(e) => updateFormValue('Departure Time', e.target.value)}\n >\n <option value=\"\">Select time range</option>\n <option value=\"Early Morning (5:00am – 8:00am)\">Early Morning (5:00am – 8:00am)</option>\n <option value=\"Morning (8:00am – 12:00pm)\">Morning (8:00am – 12:00pm)</option>\n <option value=\"Afternoon (12:00pm - 3:00pm)\">Afternoon (12:00pm - 3:00pm)</option>\n <option value=\"Late Afternoon (3:00pm – 6:00pm)\">Late Afternoon (3:00pm – 6:00pm)</option>\n <option value=\"Evening (6:00pm – 12:00am)\">Evening (6:00pm – 12:00am)</option>\n </select>\n </div>\n </FormRow>\n </Accordion>\n <div className={styles.field}>\n <label className={styles.label}>Air Travel Notes</label>\n <textarea\n className={styles.textarea}\n rows={3}\n placeholder=\"Any special requirements for air travel...\"\n />\n </div>\n </FormSection>\n )}\n\n {/* Hotel Section */}\n {enabledServices.hotel && (\n <FormSection\n id=\"hotel\"\n title=\"Hotel Request\"\n icon={<HotelIcon />}\n >\n <FormRow columns={2}>\n <div className={styles.field}>\n <label className={styles.label}>Check-in Date *</label>\n <input\n type=\"date\"\n className={styles.input}\n value={formValues['Check-in Date'] || ''}\n onChange={(e) => updateFormValue('Check-in Date', e.target.value)}\n />\n </div>\n <div className={styles.field}>\n <label className={styles.label}>Check-out Date *</label>\n <input\n type=\"date\"\n className={styles.input}\n value={formValues['Check-out Date'] || ''}\n onChange={(e) => updateFormValue('Check-out Date', e.target.value)}\n />\n </div>\n </FormRow>\n <FormRow columns={2}>\n <div className={styles.field}>\n <label className={styles.label}>Number of Rooms *</label>\n <input\n type=\"number\"\n className={styles.input}\n min={1}\n value={formValues['Number of Rooms'] || ''}\n onChange={(e) => updateFormValue('Number of Rooms', e.target.value)}\n />\n </div>\n <div className={styles.field}>\n <label className={styles.label}>Room Type</label>\n <select\n className={styles.select}\n value={formValues['Room Type'] || ''}\n onChange={(e) => updateFormValue('Room Type', e.target.value)}\n >\n <option value=\"\">Select room type</option>\n <option value=\"Standard\">Standard</option>\n <option value=\"Double\">Double</option>\n <option value=\"Suite\">Suite</option>\n </select>\n </div>\n </FormRow>\n <div className={styles.field}>\n <label className={styles.label}>Hotel Preferences</label>\n <textarea\n className={styles.textarea}\n rows={3}\n placeholder=\"Preferred hotel chain, location requirements, amenities...\"\n value={formValues['Hotel Preferences'] || ''}\n onChange={(e) => updateFormValue('Hotel Preferences', e.target.value)}\n />\n </div>\n </FormSection>\n )}\n\n {/* Ground Transportation Section */}\n {enabledServices.ground && (\n <FormSection\n id=\"ground\"\n title=\"Ground Transportation\"\n icon={<CarIcon />}\n >\n <div className={styles.field}>\n <label className={styles.label}>Vehicle Type *</label>\n <select\n className={styles.select}\n value={formValues['Vehicle Type'] || ''}\n onChange={(e) => updateFormValue('Vehicle Type', e.target.value)}\n >\n <option value=\"\">Select vehicle type</option>\n <option value=\"Sedan\">Sedan</option>\n <option value=\"SUV\">SUV</option>\n <option value=\"Van\">Van</option>\n <option value=\"Limousine\">Limousine</option>\n </select>\n </div>\n <FormRow columns={2}>\n <div className={styles.field}>\n <label className={styles.label}>Pickup Location *</label>\n <input\n type=\"text\"\n className={styles.input}\n placeholder=\"Airport, hotel, etc.\"\n value={formValues['Pickup Location'] || ''}\n onChange={(e) => updateFormValue('Pickup Location', e.target.value)}\n />\n </div>\n <div className={styles.field}>\n <label className={styles.label}>Dropoff Location *</label>\n <input\n type=\"text\"\n className={styles.input}\n placeholder=\"Hotel, venue, etc.\"\n value={formValues['Dropoff Location'] || ''}\n onChange={(e) => updateFormValue('Dropoff Location', e.target.value)}\n />\n </div>\n </FormRow>\n </FormSection>\n )}\n </div>\n </RequestFormLayout>\n );\n};\n\nGroupTravelRequestPage.displayName = 'GroupTravelRequestPage';\n\nexport default GroupTravelRequestPage;\n","import React, { useState, useMemo } from 'react';\nimport styles from './IndividualTravelPage.module.css';\nimport { TripTable, TripData } from '../../organisms/TripTable';\nimport { FilterChip, FilterOption } from '../../molecules/FilterChip';\n\nexport type TabKey = 'requested' | 'current' | 'past';\n\nexport interface IndividualTravelPageProps {\n /** Current trips data */\n currentTrips: TripData[];\n /** Past trips data */\n pastTrips: TripData[];\n /** Requested trips data */\n requestedTrips: TripData[];\n /** Sport options for filter */\n sportOptions?: FilterOption[];\n /** Traveler options for filter */\n travelerOptions?: FilterOption[];\n /** Initial active tab */\n initialTab?: TabKey;\n /** Table density */\n density?: 'comfortable' | 'compact';\n /** Vendor display mode */\n vendorMode?: 'icon' | 'code';\n /** Use service column mode */\n useServiceColumn?: boolean;\n /** Callback when viewing a trip */\n onViewTrip?: (id: string) => void;\n /** Callback when viewing a request */\n onViewRequest?: (id: string) => void;\n /** Callback when exporting */\n onExport?: (scope: 'all' | 'current' | 'past') => void;\n /** Show traveler scope info for standard users */\n showTravelerScopeInfo?: boolean;\n /** Additional CSS class */\n className?: string;\n}\n\n// Default sport options\nconst defaultSportOptions: FilterOption[] = [\n { value: 'all', label: 'All Sports' },\n { value: 'MFB', label: 'MFB' },\n { value: 'MBB', label: 'MBB' },\n { value: 'WBB', label: 'WBB' },\n { value: 'MSO', label: 'MSO' },\n { value: 'WSO', label: 'WSO' },\n { value: 'MIH', label: 'MIH' },\n { value: 'WIH', label: 'WIH' },\n { value: 'XTO', label: 'XTO' },\n];\n\n// Icons\nconst SearchIcon: React.FC = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n </svg>\n);\n\nconst FilterIcon: React.FC = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <polygon points=\"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\" />\n </svg>\n);\n\nconst ExportIcon: React.FC = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M7 17L17 7\" />\n <path d=\"M7 7h10v10\" />\n </svg>\n);\n\nconst ChevronLeft: React.FC = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <polyline points=\"15 18 9 12 15 6\" />\n </svg>\n);\n\nconst ChevronRight: React.FC = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n);\n\nexport const IndividualTravelPage: React.FC<IndividualTravelPageProps> = ({\n currentTrips,\n pastTrips,\n requestedTrips,\n sportOptions = defaultSportOptions,\n travelerOptions,\n initialTab = 'current',\n density = 'comfortable',\n vendorMode = 'icon',\n useServiceColumn = false,\n onViewTrip,\n onViewRequest,\n onExport,\n showTravelerScopeInfo = false,\n className,\n}) => {\n const [activeTab, setActiveTab] = useState<TabKey>(initialTab);\n const [sport, setSport] = useState('all');\n const [traveler, setTraveler] = useState('all');\n const [search, setSearch] = useState('');\n const [showAdvancedFilters, setShowAdvancedFilters] = useState(false);\n const [showExportMenu, setShowExportMenu] = useState(false);\n\n // Build traveler options from data if not provided\n const computedTravelerOptions = useMemo(() => {\n if (travelerOptions) return travelerOptions;\n const names = new Set<string>();\n [...currentTrips, ...pastTrips].forEach(trip => {\n trip.travelers.forEach(name => names.add(name));\n });\n return [\n { value: 'all', label: 'All Travelers' },\n ...[...names].sort().map(name => ({ value: name, label: name })),\n ];\n }, [travelerOptions, currentTrips, pastTrips]);\n\n // Get current data based on tab\n const currentData = useMemo(() => {\n let data = activeTab === 'requested' ? requestedTrips\n : activeTab === 'current' ? currentTrips\n : pastTrips;\n\n // Apply filters\n if (sport !== 'all') {\n data = data.filter(trip => trip.sport?.toUpperCase() === sport.toUpperCase());\n }\n if (traveler !== 'all') {\n data = data.filter(trip => trip.travelers.includes(traveler));\n }\n if (search) {\n const q = search.toLowerCase();\n data = data.filter(trip =>\n trip.travelers.join(' ').toLowerCase().includes(q) ||\n (trip.pnr || '').toLowerCase().includes(q) ||\n (trip.reqId || '').toLowerCase().includes(q) ||\n (trip.itinerary || '').toLowerCase().includes(q) ||\n (trip.vendor || '').toLowerCase().includes(q)\n );\n }\n\n return data;\n }, [activeTab, requestedTrips, currentTrips, pastTrips, sport, traveler, search]);\n\n const hasActiveFilters = sport !== 'all' || traveler !== 'all' || !!search;\n\n const tabs = [\n { key: 'requested' as TabKey, label: 'Requested Trips', count: requestedTrips.length },\n { key: 'current' as TabKey, label: 'Current & Future Trips', count: currentTrips.length },\n { key: 'past' as TabKey, label: 'Past Trips', count: pastTrips.length },\n ];\n\n const handleViewTrip = (id: string) => {\n if (activeTab === 'requested') {\n onViewRequest?.(id);\n } else {\n onViewTrip?.(id);\n }\n };\n\n return (\n <div className={`${styles.page} ${className || ''}`}>\n {/* Page Title */}\n <div className={styles.header}>\n <h1 className={styles.title}>Individual & Small Group Travel</h1>\n </div>\n\n {/* Tabs */}\n <div className={styles.tabsContainer}>\n <div className={styles.tabs}>\n {tabs.map(tab => (\n <button\n key={tab.key}\n className={`${styles.tab} ${activeTab === tab.key ? styles.active : ''}`}\n onClick={() => setActiveTab(tab.key)}\n >\n {tab.label}\n <span className={`${styles.tabCount} ${activeTab === tab.key ? styles.activeCount : ''}`}>\n {tab.count}\n </span>\n </button>\n ))}\n </div>\n <div className={styles.exportWrapper}>\n <button \n className={styles.exportButton}\n onClick={() => setShowExportMenu(!showExportMenu)}\n >\n <span>Export</span>\n <ExportIcon />\n </button>\n {showExportMenu && (\n <div className={styles.exportMenu}>\n {hasActiveFilters && (\n <div className={styles.exportInfo}>\n <FilterIcon />\n <span>Active filters will be applied to the export.</span>\n </div>\n )}\n <button onClick={() => { onExport?.('all'); setShowExportMenu(false); }}>\n Export All Trips\n </button>\n <button onClick={() => { onExport?.('current'); setShowExportMenu(false); }}>\n Export Current & Future\n </button>\n <button onClick={() => { onExport?.('past'); setShowExportMenu(false); }}>\n Export Past Trips\n </button>\n </div>\n )}\n </div>\n </div>\n\n {/* Filters */}\n <div className={styles.filters}>\n <div className={styles.searchWrapper}>\n <span className={styles.searchIcon}><SearchIcon /></span>\n <input\n type=\"text\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n placeholder=\"Search traveler, PNR, route…\"\n className={styles.searchInput}\n />\n </div>\n\n <FilterChip\n label=\"Sport\"\n value={sport}\n options={sportOptions}\n onChange={setSport}\n />\n\n <FilterChip\n label=\"Traveler\"\n value={traveler}\n options={computedTravelerOptions}\n onChange={setTraveler}\n searchable\n searchPlaceholder=\"Search travelers…\"\n infoMessage={showTravelerScopeInfo ? \"Scoped to travelers in your assigned sports.\" : undefined}\n />\n\n {activeTab === 'past' && (\n <button\n className={`${styles.advancedButton} ${showAdvancedFilters ? styles.advancedActive : ''}`}\n onClick={() => setShowAdvancedFilters(!showAdvancedFilters)}\n >\n <FilterIcon />\n Advanced filters\n </button>\n )}\n </div>\n\n {/* Advanced Filters Panel (Past tab only) */}\n {activeTab === 'past' && showAdvancedFilters && (\n <div className={styles.advancedFilters}>\n <div className={styles.advancedHeader}>\n <h3>Advanced filters</h3>\n <button \n className={styles.closeButton}\n onClick={() => setShowAdvancedFilters(false)}\n >\n ×\n </button>\n </div>\n <div className={styles.advancedGrid}>\n <div className={styles.filterField}>\n <label>Travel Dates</label>\n <input type=\"text\" placeholder=\"Pick a date range\" />\n </div>\n <div className={styles.filterField}>\n <label>Destination / Routing</label>\n <input type=\"text\" placeholder=\"e.g. LAS, DFW\" />\n </div>\n <div className={styles.filterField}>\n <label>Vendor</label>\n <input type=\"text\" placeholder=\"e.g. DL, UA\" />\n </div>\n <div className={styles.filterField}>\n <label>Confirmation / PNR</label>\n <input type=\"text\" placeholder=\"e.g. GA12X7\" />\n </div>\n <div className={styles.filterField}>\n <label>Ticket Number</label>\n <input type=\"text\" placeholder=\"e.g. 0067123456789\" />\n </div>\n <div className={styles.filterField}>\n <label>Total / Billed Amount</label>\n <input type=\"text\" placeholder=\"$0.00 – $0.00\" />\n </div>\n <div className={styles.filterActions}>\n <button className={styles.applyButton}>Apply</button>\n <button className={styles.resetButton}>Reset</button>\n </div>\n </div>\n </div>\n )}\n\n {/* Table */}\n <TripTable\n trips={currentData}\n variant={activeTab}\n density={density}\n vendorMode={vendorMode}\n useServiceColumn={useServiceColumn}\n onViewTrip={handleViewTrip}\n />\n\n {/* Pagination */}\n {currentData.length > 0 && (\n <div className={styles.pagination}>\n <div className={styles.paginationInfo}>\n Showing 1–{currentData.length} of {currentData.length}\n </div>\n <div className={styles.paginationControls}>\n <button className={styles.pageButton} disabled>\n <ChevronLeft />\n </button>\n <span className={styles.pageInfo}>Page 1 of 1</span>\n <button className={styles.pageButton} disabled>\n <ChevronRight />\n </button>\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default IndividualTravelPage;\n","import { useEffect, useMemo, useState } from 'react';\nimport styles from './InfoCenterPage.module.css';\nimport { Modal } from '../../organisms/Modal';\nimport { Button } from '../../atoms/Button';\nimport { Spinner } from '../../atoms/Spinner';\nimport {\n IconProps,\n WarningIcon,\n PlaneIcon,\n CarIcon,\n HotelIcon,\n DocumentIcon,\n InfoIcon,\n BuildingIcon,\n GridIcon,\n EditIcon,\n HomeIcon,\n PlusIcon,\n ChevronRightIcon,\n ArrowUpRightIcon,\n} from '../../atoms/Icons';\n\nexport interface InfoCenterArticle {\n id: string;\n title: string;\n /** Short plain-text snippet shown on the card */\n body: string;\n /** Full HTML body rendered inside the article modal */\n fullText?: string;\n category: string;\n /** External link; when present \"Read more\" opens it instead of the modal */\n href?: string;\n}\n\nexport type InfoCenterPageState = 'loading' | 'data' | 'empty' | 'error';\n\nexport interface InfoCenterPageProps {\n /** Page title */\n title?: string;\n /** Account name shown in the subtitle */\n accountName?: string;\n /** Articles to display */\n articles?: InfoCenterArticle[];\n /** Explicit page state; derived from `articles` when omitted */\n state?: InfoCenterPageState;\n /** Show admin controls (Add Article, per-card edit) */\n isAdmin?: boolean;\n /** Called when the admin Add Article button is clicked */\n onAddArticle?: () => void;\n /** Called when an admin clicks a card's edit button */\n onEditArticle?: (article: InfoCenterArticle) => void;\n /** Called when an article with an external href is opened */\n onOpenExternal?: (article: InfoCenterArticle) => void;\n /** Additional class */\n className?: string;\n /** Show the Hub breadcrumb above the title. */\n showBreadcrumb?: boolean;\n /** Home link used by the breadcrumb. */\n homeHref?: string;\n /** Article to open after navigation from a dashboard card. */\n initialArticleId?: string;\n /** Called once the initial article has been consumed. */\n onInitialArticleOpen?: () => void;\n}\n\n// ── Category metadata ────────────────────────────────────────────────────────\n\ninterface CategoryMeta {\n label: string;\n icon: React.FC<IconProps>;\n alert?: boolean;\n}\n\nconst CATEGORY_META: Record<string, CategoryMeta> = {\n Alert: { label: 'Alert', icon: WarningIcon, alert: true },\n Air: { label: 'Air', icon: PlaneIcon },\n Car: { label: 'Car', icon: CarIcon },\n Hotel: { label: 'Hotel', icon: HotelIcon },\n Policy: { label: 'Policy', icon: DocumentIcon },\n General: { label: 'General', icon: DocumentIcon },\n STM: { label: \"Short's Info\", icon: InfoIcon },\n 'Client Specific': { label: 'Client Specific', icon: BuildingIcon },\n};\n\nconst DEFAULT_META: CategoryMeta = { label: 'General', icon: DocumentIcon };\n\nconst metaFor = (cat: string): CategoryMeta => CATEGORY_META[cat] ?? DEFAULT_META;\n\nconst CATEGORY_ORDER = ['Alert', 'General', 'Air', 'Car', 'Hotel', 'Policy', 'STM', 'Client Specific'];\n\n// ── Article card ─────────────────────────────────────────────────────────────\n\ninterface ArticleCardProps {\n article: InfoCenterArticle;\n isAdmin: boolean;\n onOpen: (article: InfoCenterArticle) => void;\n onEdit?: (article: InfoCenterArticle) => void;\n}\n\nconst ArticleCard = ({ article, isAdmin, onOpen, onEdit }: ArticleCardProps) => {\n const meta = metaFor(article.category);\n const CategoryIcon = meta.icon;\n\n return (\n <div className={[styles.card, meta.alert ? styles.cardAlert : ''].filter(Boolean).join(' ')}>\n <span className={[styles.categoryBadge, meta.alert ? styles.categoryAlert : ''].filter(Boolean).join(' ')}>\n <CategoryIcon size={13} />\n {meta.label}\n </span>\n\n <h3 className={styles.cardTitle}>{article.title}</h3>\n\n {article.body && <p className={styles.cardBody}>{article.body}</p>}\n\n <button type=\"button\" className={styles.readMore} onClick={() => onOpen(article)}>\n Read more\n <ChevronRightIcon size={14} />\n </button>\n\n {isAdmin && (\n <button\n type=\"button\"\n className={styles.editButton}\n onClick={() => onEdit?.(article)}\n title=\"Edit article\"\n aria-label=\"Edit article\"\n >\n <EditIcon size={14} />\n </button>\n )}\n </div>\n );\n};\n\n/**\n * InfoCenterPage - Info Center article browser\n *\n * Shows all published Info Center articles for the active account,\n * filtered by category tab. \"Read more\" on an article with an external\n * href opens it in a new tab; articles without an href open an inline\n * modal that renders the full article body.\n */\nexport const InfoCenterPage = ({\n title = 'Info Center',\n accountName,\n articles = [],\n state,\n isAdmin = false,\n onAddArticle,\n onEditArticle,\n onOpenExternal,\n className = '',\n showBreadcrumb = true,\n homeHref = '/home',\n initialArticleId,\n onInitialArticleOpen,\n}: InfoCenterPageProps) => {\n const pageState: InfoCenterPageState = state ?? (articles.length > 0 ? 'data' : 'empty');\n\n const [activeCategory, setActiveCategory] = useState('All');\n const [modalArticle, setModalArticle] = useState<InfoCenterArticle | null>(null);\n\n // Ordered, de-duped category list derived from the data\n const categories = useMemo(() => {\n const seen = new Set<string>();\n const found: string[] = [];\n CATEGORY_ORDER.forEach((c) => {\n if (articles.some((a) => a.category === c)) {\n seen.add(c);\n found.push(c);\n }\n });\n articles.forEach((a) => {\n if (!seen.has(a.category)) {\n seen.add(a.category);\n found.push(a.category);\n }\n });\n return found;\n }, [articles]);\n\n const filtered = useMemo(\n () => (activeCategory === 'All' ? articles : articles.filter((a) => a.category === activeCategory)),\n [articles, activeCategory]\n );\n\n useEffect(() => {\n if (!initialArticleId) return;\n const article = articles.find((item) => item.id === initialArticleId);\n if (!article) return;\n setModalArticle(article);\n onInitialArticleOpen?.();\n }, [articles, initialArticleId, onInitialArticleOpen]);\n\n const handleOpen = (article: InfoCenterArticle) => {\n if (article.href) {\n onOpenExternal?.(article);\n window.open(article.href, '_blank', 'noopener,noreferrer');\n } else {\n setModalArticle(article);\n }\n };\n\n const modalMeta = modalArticle ? metaFor(modalArticle.category) : null;\n const ModalCategoryIcon = modalMeta?.icon;\n\n return (\n <div className={[styles.page, className].filter(Boolean).join(' ')}>\n {showBreadcrumb && (\n <nav className={styles.breadcrumb} aria-label=\"Breadcrumb\">\n <a href={homeHref}><HomeIcon size={14} />Home</a>\n <span>/</span>\n <span>Info Center</span>\n </nav>\n )}\n {/* Page header */}\n <div className={styles.header}>\n <div className={styles.headerText}>\n <h1 className={styles.title}>{title}</h1>\n {accountName && (\n <p className={styles.subtitle}>Travel resources and program information for {accountName}.</p>\n )}\n </div>\n {isAdmin && (\n <Button variant=\"primary\" size=\"sm\" onClick={onAddArticle}>\n <PlusIcon size={15} />\n Add Article\n </Button>\n )}\n </div>\n\n {pageState === 'loading' && (\n <div className={styles.stateBlock}>\n <Spinner size=\"md\" />\n <span>Loading…</span>\n </div>\n )}\n\n {pageState === 'error' && (\n <div className={[styles.stateBlock, styles.stateError].join(' ')}>\n <WarningIcon size={28} />\n <p className={styles.stateText}>Unable to load Info Center resources.</p>\n </div>\n )}\n\n {pageState === 'empty' && (\n <div className={styles.stateBlock}>\n <InfoIcon size={28} />\n <p className={styles.stateText}>No resources available.</p>\n </div>\n )}\n\n {pageState === 'data' && (\n <>\n {/* Category tabs */}\n <div className={styles.tabs} role=\"tablist\" aria-label=\"Article categories\">\n <button\n type=\"button\"\n role=\"tab\"\n aria-selected={activeCategory === 'All'}\n onClick={() => setActiveCategory('All')}\n className={[styles.tab, activeCategory === 'All' ? styles.tabActive : ''].filter(Boolean).join(' ')}\n >\n <GridIcon size={15} />\n All\n </button>\n\n {categories.map((cat) => {\n const m = metaFor(cat);\n const TabIcon = m.icon;\n const isActive = activeCategory === cat;\n return (\n <button\n key={cat}\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n onClick={() => setActiveCategory(cat)}\n className={[\n styles.tab,\n isActive ? styles.tabActive : '',\n m.alert ? styles.tabAlert : '',\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <TabIcon size={15} />\n {m.label}\n </button>\n );\n })}\n </div>\n\n {/* Article grid */}\n {filtered.length === 0 ? (\n <div className={styles.stateBlock}>\n <InfoIcon size={24} />\n <p className={styles.stateText}>No resources in this category.</p>\n </div>\n ) : (\n <div className={styles.grid}>\n {filtered.map((article) => (\n <ArticleCard\n key={article.id}\n article={article}\n isAdmin={isAdmin}\n onOpen={handleOpen}\n onEdit={onEditArticle}\n />\n ))}\n </div>\n )}\n </>\n )}\n\n {/* Article modal */}\n <Modal\n isOpen={modalArticle !== null}\n onClose={() => setModalArticle(null)}\n title={modalArticle?.title}\n size=\"lg\"\n footer={\n modalArticle?.href ? (\n <a href={modalArticle.href} target=\"_blank\" rel=\"noopener noreferrer\" className={styles.externalLink}>\n Open external resource\n <ArrowUpRightIcon size={14} />\n </a>\n ) : undefined\n }\n >\n {modalArticle && (\n <div className={styles.modalContent}>\n {modalMeta && ModalCategoryIcon && (\n <span\n className={[styles.categoryBadge, modalMeta.alert ? styles.categoryAlert : '']\n .filter(Boolean)\n .join(' ')}\n >\n <ModalCategoryIcon size={13} />\n {modalMeta.label}\n </span>\n )}\n {modalArticle.fullText ? (\n <div className={styles.articleHtml} dangerouslySetInnerHTML={{ __html: modalArticle.fullText }} />\n ) : (\n <p className={styles.articleText}>{modalArticle.body}</p>\n )}\n </div>\n )}\n </Modal>\n </div>\n );\n};\n\nexport default InfoCenterPage;\n","import { ReactNode } from 'react';\nimport styles from './NotFoundPage.module.css';\n\nexport interface NotFoundPageProps {\n /** Error code to display */\n errorCode?: string | number;\n /** Main heading */\n title?: string;\n /** Description message */\n message?: string;\n /** Action button/link content */\n action?: ReactNode;\n /** Custom illustration or icon */\n illustration?: ReactNode;\n /** Additional class */\n className?: string;\n}\n\nconst DefaultIllustration = () => (\n <svg width=\"120\" height=\"120\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\" />\n <line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\" />\n </svg>\n);\n\n/**\n * NotFoundPage - 404 error page layout\n * \n * Shows a centered error page with:\n * - Error code (404)\n * - Title and message\n * - Optional action button\n * - Optional illustration\n */\nexport const NotFoundPage = ({\n errorCode = '404',\n title = 'Page Not Found',\n message = 'The page you are looking for does not exist or you do not have permission to access it.',\n action,\n illustration,\n className = '',\n}: NotFoundPageProps) => {\n const pageClasses = [\n styles.page,\n className,\n ].filter(Boolean).join(' ');\n\n return (\n <div className={pageClasses}>\n <div className={styles.card}>\n <div className={styles.illustration}>\n {illustration || <DefaultIllustration />}\n </div>\n <h1 className={styles.errorCode}>{errorCode}</h1>\n <h2 className={styles.title}>{title}</h2>\n <p className={styles.message}>{message}</p>\n {action && (\n <div className={styles.action}>\n {action}\n </div>\n )}\n </div>\n </div>\n );\n};\n\nNotFoundPage.displayName = 'NotFoundPage';\n\nexport default NotFoundPage;\n","import { ReactNode } from 'react';\nimport styles from './TeamManagementPage.module.css';\n\nexport interface TeamManagementTab {\n /** Tab identifier */\n id: string;\n /** Tab label */\n label: string;\n /** Tab icon */\n icon?: ReactNode;\n /** Tab badge count */\n badge?: number;\n}\n\nexport interface TeamManagementPageProps {\n /** Hub overview or team-detail shell. */\n variant?: 'overview' | 'team';\n /** Overview page title. */\n title?: string;\n /** Overview team navigation panel. */\n teamPanel?: ReactNode;\n /** Overview contacts heading. */\n contactsTitle?: string;\n /** Overview contacts notice. */\n contactAlert?: ReactNode;\n /** Overview contacts list. */\n contacts?: ReactNode;\n /** Team header component */\n header?: ReactNode;\n /** Available tabs */\n tabs?: TeamManagementTab[];\n /** Currently active tab */\n activeTab?: string;\n /** Tab change handler */\n onTabChange?: (tabId: string) => void;\n /** Tab content */\n children?: ReactNode;\n /** Sidebar content */\n sidebar?: ReactNode;\n /** Footer content */\n footer?: ReactNode;\n /** Additional class */\n className?: string;\n}\n\nconst RosterIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"/>\n <circle cx=\"9\" cy=\"7\" r=\"4\"/>\n <path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"/>\n <path d=\"M16 3.13a4 4 0 0 1 0 7.75\"/>\n </svg>\n);\n\nconst ContactsIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"/>\n <polyline points=\"22,6 12,13 2,6\"/>\n </svg>\n);\n\nconst PreferencesIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <circle cx=\"12\" cy=\"12\" r=\"3\"/>\n <path d=\"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z\"/>\n </svg>\n);\n\nconst ProgramsIcon = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"4\" rx=\"1\"/>\n <rect x=\"3\" y=\"10\" width=\"18\" height=\"4\" rx=\"1\"/>\n <rect x=\"3\" y=\"16\" width=\"18\" height=\"4\" rx=\"1\"/>\n </svg>\n);\n\nconst DEFAULT_TABS: TeamManagementTab[] = [\n { id: 'roster', label: 'Roster', icon: <RosterIcon /> },\n { id: 'contacts', label: 'Contacts', icon: <ContactsIcon /> },\n { id: 'preferences', label: 'Preferences', icon: <PreferencesIcon /> },\n { id: 'programs', label: 'Programs', icon: <ProgramsIcon /> },\n];\n\n/**\n * TeamManagementPage - Layout for team management with tabbed navigation\n */\nexport const TeamManagementPage = ({\n variant = 'team',\n title = 'Team Management',\n teamPanel,\n contactsTitle = 'School Contacts',\n contactAlert,\n contacts,\n header,\n tabs = DEFAULT_TABS,\n activeTab = 'roster',\n onTabChange,\n children,\n sidebar,\n footer,\n className = '',\n}: TeamManagementPageProps) => {\n const pageClasses = [styles.page, className].filter(Boolean).join(' ');\n\n if (variant === 'overview') {\n return (\n <div className={[styles.overview, className].filter(Boolean).join(' ')}>\n <header className={styles.overviewHeader}><h1>{title}</h1></header>\n <div className={styles.overviewGrid}>\n <aside>{teamPanel}</aside>\n <section className={styles.contactsColumn}>\n <h2>{contactsTitle}</h2>\n {contactAlert}\n {contacts}\n </section>\n </div>\n </div>\n );\n }\n\n return (\n <div className={pageClasses}>\n {header && <div className={styles.header}>{header}</div>}\n\n <div className={styles.tabNav}>\n {tabs.map((tab) => (\n <button\n key={tab.id}\n type=\"button\"\n className={[\n styles.tabButton,\n activeTab === tab.id ? styles.active : '',\n ].filter(Boolean).join(' ')}\n onClick={() => onTabChange?.(tab.id)}\n aria-selected={activeTab === tab.id}\n >\n {tab.icon && <span className={styles.tabIcon}>{tab.icon}</span>}\n <span>{tab.label}</span>\n {tab.badge !== undefined && tab.badge > 0 && (\n <span className={styles.tabBadge}>{tab.badge}</span>\n )}\n </button>\n ))}\n </div>\n\n <div className={styles.body}>\n <main className={styles.main}>\n {children}\n </main>\n {sidebar && (\n <aside className={styles.sidebar}>\n {sidebar}\n </aside>\n )}\n </div>\n\n {footer && <div className={styles.footer}>{footer}</div>}\n </div>\n );\n};\n\nTeamManagementPage.displayName = 'TeamManagementPage';\n\nexport default TeamManagementPage;\n","import { ReactNode } from 'react';\nimport styles from './TeamSchedulePage.module.css';\n\nexport interface ScheduleMetric {\n label: string;\n value: string | number;\n prefix?: string;\n suffix?: string;\n}\n\nexport interface ScheduleFilterOption {\n label: string;\n value: string | number;\n}\n\nexport interface TeamSchedulePageProps {\n /** Page title */\n title?: string;\n /** Mobile title variant */\n mobileTitle?: string;\n /** Summary metrics to display */\n metrics?: ScheduleMetric[];\n /** Exact Hub summary component. Overrides metrics when supplied. */\n summary?: ReactNode;\n /** Team filter content */\n teamFilter?: ReactNode;\n /** Service filter content */\n serviceFilter?: ReactNode;\n /** Action buttons area */\n actions?: ReactNode;\n /** Main schedule content - compact view */\n compactView?: ReactNode;\n /** Main schedule content - expanded view */\n expandedView?: ReactNode;\n /** Current view mode */\n viewMode?: 'compact' | 'expanded';\n /** Whether in mobile mode */\n isMobile?: boolean;\n /** Additional class */\n className?: string;\n}\n\n/**\n * TeamSchedulePage - Team travel schedule page layout\n * \n * Shows a page with:\n * - Title and filter row\n * - Summary metrics\n * - Action buttons\n * - Schedule table (compact or expanded view)\n */\nexport const TeamSchedulePage = ({\n title = 'Team Travel Schedule',\n mobileTitle = 'Travel Schedule',\n metrics = [],\n summary,\n teamFilter,\n serviceFilter,\n actions,\n compactView,\n expandedView,\n viewMode = 'compact',\n isMobile = false,\n className = '',\n}: TeamSchedulePageProps) => {\n const pageClasses = [\n styles.page,\n className,\n ].filter(Boolean).join(' ');\n\n const headerClasses = [\n styles.header,\n isMobile ? styles.headerMobile : '',\n ].filter(Boolean).join(' ');\n\n return (\n <div className={pageClasses}>\n <div className={headerClasses}>\n <div className={styles.titleSection}>\n <h1 className={styles.title}>\n {isMobile ? mobileTitle : title}\n </h1>\n <div className={styles.filters}>\n {teamFilter}\n {serviceFilter}\n </div>\n </div>\n \n {(summary || metrics.length > 0) && (\n <div className={styles.metrics}>\n {summary ?? metrics.map((metric, i) => (\n <div key={i} className={styles.metric}>\n <span className={styles.metricValue}>\n {metric.prefix}{metric.value}{metric.suffix}\n </span>\n <span className={styles.metricLabel}>{metric.label}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n\n {actions}\n\n <div className={styles.content}>\n {viewMode === 'compact' ? compactView : expandedView}\n </div>\n </div>\n );\n};\n\nTeamSchedulePage.displayName = 'TeamSchedulePage';\n\nexport default TeamSchedulePage;\n","import { ReactNode } from 'react';\nimport styles from './TeamTravelCalendarPage.module.css';\n\nexport type CalendarView = 'calendar' | 'card' | 'list';\n\nexport interface CalendarMetric {\n label: string;\n value: string | number;\n onClick?: () => void;\n}\n\nexport interface TeamTravelCalendarPageProps {\n /** Page title */\n title?: string;\n /** Mobile title variant */\n mobileTitle?: string;\n /** Summary metrics to display */\n metrics?: CalendarMetric[];\n /** Exact summary component used by Hub. Overrides metrics when supplied. */\n summary?: ReactNode;\n /** Team filter content */\n teamFilter?: ReactNode;\n /** Service filter content */\n serviceFilter?: ReactNode;\n /** View selector content */\n viewSelector?: ReactNode;\n /** Type selector content */\n typeSelector?: ReactNode;\n /** Calendar view content */\n calendarView?: ReactNode;\n /** Card view content */\n cardView?: ReactNode;\n /** List view content */\n listView?: ReactNode;\n /** Sidebar content (due dates) */\n sidebar?: ReactNode;\n /** Current view mode */\n view?: CalendarView;\n /** Whether sidebar is open */\n sidebarOpen?: boolean;\n /** Whether in mobile mode */\n isMobile?: boolean;\n /** Additional class */\n className?: string;\n}\n\n/**\n * TeamTravelCalendarPage - Team travel calendar page layout\n * \n * Shows a page with:\n * - Title and filter row\n * - Summary metrics\n * - View switcher (calendar/card/list)\n * - Main calendar/card/list view\n * - Sidebar for due dates\n */\nexport const TeamTravelCalendarPage = ({\n title = 'Team Travel Calendar',\n mobileTitle = 'Travel Calendar',\n metrics = [],\n summary,\n teamFilter,\n serviceFilter,\n viewSelector,\n typeSelector,\n calendarView,\n cardView,\n listView,\n sidebar,\n view = 'calendar',\n sidebarOpen: _sidebarOpen = false,\n isMobile = false,\n className = '',\n}: TeamTravelCalendarPageProps) => {\n const pageClasses = [\n styles.page,\n className,\n ].filter(Boolean).join(' ');\n\n const headerClasses = [\n styles.header,\n isMobile ? styles.headerMobile : '',\n ].filter(Boolean).join(' ');\n\n const renderView = () => {\n switch (view) {\n case 'calendar':\n return calendarView;\n case 'card':\n return cardView;\n case 'list':\n return listView;\n default:\n return null;\n }\n };\n\n return (\n <div className={pageClasses}>\n <div className={headerClasses}>\n <div className={styles.titleSection}>\n <h1 className={styles.title}>\n {isMobile ? mobileTitle : title}\n </h1>\n <div className={styles.filters}>\n {teamFilter}\n {serviceFilter}\n {viewSelector}\n {typeSelector}\n </div>\n </div>\n \n {(summary || metrics.length > 0) && (\n <div className={styles.metrics}>\n {summary ?? metrics.map((metric, i) => (\n <button key={i} className={styles.metric} onClick={metric.onClick} type=\"button\" disabled={!metric.onClick}>\n <span className={styles.metricValue}>{metric.value}</span>\n <span className={styles.metricLabel}>{metric.label}</span>\n </button>\n ))}\n </div>\n )}\n </div>\n\n <div className={styles.content}>{renderView()}</div>\n {sidebar}\n </div>\n );\n};\n\nTeamTravelCalendarPage.displayName = 'TeamTravelCalendarPage';\n\nexport default TeamTravelCalendarPage;\n","import { ReactNode } from 'react';\nimport styles from './TripDetailPage.module.css';\n\nexport interface TripDetailPageProps {\n /** Trip header content (title, status, dates) */\n header?: ReactNode;\n /** Air segment content */\n airSegment?: ReactNode;\n /** Ground segment content */\n groundSegment?: ReactNode;\n /** Hotel segment content */\n hotelSegment?: ReactNode;\n /** Files/attachments section */\n filesSection?: ReactNode;\n /** Team roster section */\n teamSection?: ReactNode;\n /** Events sidebar */\n eventsSection?: ReactNode;\n /** Due dates sidebar */\n dueDatesSection?: ReactNode;\n /** Additional class */\n className?: string;\n}\n\n/**\n * TripDetailPage - Trip detail view layout\n * \n * Displays a trip with:\n * - Header with trip info and status\n * - Main content area:\n * - Left (7 cols): Segments (Air/Ground/Hotel), Files, Team\n * - Right (3 cols): Events, Due Dates\n */\nexport const TripDetailPage = ({\n header,\n airSegment,\n groundSegment,\n hotelSegment,\n filesSection,\n teamSection,\n eventsSection,\n dueDatesSection,\n className = '',\n}: TripDetailPageProps) => {\n const pageClasses = [\n styles.page,\n className,\n ].filter(Boolean).join(' ');\n\n return (\n <div className={pageClasses}>\n {header && (\n <div className={styles.header}>\n {header}\n </div>\n )}\n\n <div className={styles.content}>\n {/* Main column - segments, files, team */}\n <div className={styles.mainColumn}>\n {/* Segments grid */}\n <div className={styles.segmentsGrid}>\n <div className={styles.segmentCard}>\n <h3 className={styles.segmentTitle}>Air</h3>\n {airSegment || <div className={styles.empty}>No flights</div>}\n </div>\n <div className={styles.segmentCard}>\n <h3 className={styles.segmentTitle}>Ground</h3>\n {groundSegment || <div className={styles.empty}>No ground transportation</div>}\n </div>\n <div className={styles.segmentCard}>\n <h3 className={styles.segmentTitle}>Hotel</h3>\n {hotelSegment || <div className={styles.empty}>No hotels</div>}\n </div>\n </div>\n\n {filesSection && (\n <div className={styles.section}>\n <h3 className={styles.sectionTitle}>Files</h3>\n {filesSection}\n </div>\n )}\n\n {teamSection && (\n <div className={styles.section}>\n <h3 className={styles.sectionTitle}>Team Roster</h3>\n {teamSection}\n </div>\n )}\n </div>\n\n {/* Sidebar - events, due dates */}\n <div className={styles.sidebar}>\n {eventsSection && (\n <div className={styles.sidebarSection}>\n <h3 className={styles.sectionTitle}>Events</h3>\n {eventsSection}\n </div>\n )}\n\n {dueDatesSection && (\n <div className={styles.sidebarSection}>\n <h3 className={styles.sectionTitle}>Due Dates</h3>\n {dueDatesSection}\n </div>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nTripDetailPage.displayName = 'TripDetailPage';\n\nexport default TripDetailPage;\n"],"names":["_jsx","PlaneIcon","CarIcon","_jsxs","_Fragment","HotelIcon","BusIcon","SearchIcon","ChevronDownIcon","ChevronRightIcon","FilterIcon","CalendarIcon","UsersIcon","WarningIcon","CheckIcon","PlusIcon","InfoIcon","EditIcon","LockIcon","TrashIcon","styles","typeColors","typeIcons","ExportIcon","ChevronIcon","DEFAULT_TABS","parseLocalDate","formatDate","ChevronRight"],"mappings":";;;AASA,MAAM,UAAU,GAAG,CAAC,QAAyB,EAAE,WAAmB,KAAI;AACpE,IAAA,MAAM,IAAI,GAAwB,CAAC,EACjC,IAAI,GAAG,EAAE,EACT,KAAK,GAAG,cAAc,EACtB,GAAG,KAAK,EACT,MACCA,GAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAC,4BAA4B,EAClC,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,KAAK,EACb,WAAW,EAAE,CAAC,EACd,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EAAA,GACR,KAAK,EAAA,QAAA,EAER,QAAQ,EAAA,CACL,CACP;AACD,IAAA,IAAI,CAAC,WAAW,GAAG,WAAW;AAC9B,IAAA,OAAO,IAAI;AACb,CAAC;AAED;AACO,MAAMC,WAAS,GAAG,UAAU,CACjCD,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,uMAAuM,EAAA,CAAG,EAClN,WAAW;MAGAE,SAAO,GAAG,UAAU,CAC/BC,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,4KAA4K,GAAG,EACvLA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,GAAG,EAC/BA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,SAAS,GAAG,EACpBA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,GAAG,CAAA,EAAA,CAC/B,EACH,SAAS;AAGJ,MAAMK,WAAS,GAAG,UAAU,CACjCF,4BACEH,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,cAAc,GAAG,EACzBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,YAAY,GAAG,EACvBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,WAAW,EAAA,CAAG,EACtBA,cAAM,CAAC,EAAC,cAAc,EAAA,CAAG,EACzBA,cAAM,CAAC,EAAC,sBAAsB,EAAA,CAAG,EACjCA,cAAM,CAAC,EAAC,YAAY,EAAA,CAAG,EACvBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,WAAW,EAAA,CAAG,EACtBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,WAAW,EAAA,CAAG,EACtBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,UAAU,GAAG,EACrBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAA,CAAG,IACjD,EACH,WAAW;AAGN,MAAM,QAAQ,GAAG,UAAU,CAChCG,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,yEAAyE,EAAA,CAAG,EACpFA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,WAAW,EAAA,CAAG,EACtBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,YAAY,EAAA,CAAG,EACvBA,GAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAA,CAAG,EAClDA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,SAAS,EAAA,CAAG,EACpBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,UAAU,EAAA,CAAG,CAAA,EAAA,CACpB,EACH,UAAU;MAGC,QAAQ,GAAG,UAAU,CAChCG,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,cAAM,CAAC,EAAC,4BAA4B,EAAA,CAAG,EACvCA,cAAM,CAAC,EAAC,WAAW,EAAA,CAAG,EACtBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,YAAY,GAAG,EACvBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,6DAA6D,GAAG,EACxEA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,WAAW,GAAG,EACtBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,YAAY,GAAG,CAAA,EAAA,CACtB,EACH,UAAU;AAGL,MAAMM,SAAO,GAAG,UAAU,CAC/BH,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,QAAQ,EAAA,CAAG,EACnBA,cAAM,CAAC,EAAC,SAAS,EAAA,CAAG,EACpBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,YAAY,EAAA,CAAG,EACvBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,2GAA2G,EAAA,CAAG,EACtHA,gBAAQ,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAA,CAAG,EAC/BA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,SAAS,GAAG,EACpBA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAA,CAAG,CAAA,EAAA,CAC/B,EACH,SAAS;AAGX;AACO,MAAMO,YAAU,GAAG,UAAU,CAClCJ,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAA,CAAG,EAChCA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,gBAAgB,EAAA,CAAG,CAAA,EAAA,CAC1B,EACH,YAAY;AAGP,MAAMQ,iBAAe,GAAG,UAAU,CACvCR,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,cAAc,EAAA,CAAG,EACzB,iBAAiB;AAGZ,MAAM,aAAa,GAAG,UAAU,CACrCA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,gBAAgB,EAAA,CAAG,EAC3B,eAAe;AAGV,MAAMS,kBAAgB,GAAG,UAAU,CACxCT,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,eAAe,EAAA,CAAG,EAC1B,kBAAkB;AAGb,MAAM,eAAe,GAAG,UAAU,CACvCA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,gBAAgB,EAAA,CAAG,EAC3B,iBAAiB;MAGN,gBAAgB,GAAG,UAAU,CACxCG,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,YAAY,GAAG,EACvBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,YAAY,GAAG,CAAA,EAAA,CACtB,EACH,kBAAkB;MAGP,iBAAiB,GAAG,UAAU,CACzCG,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,YAAY,GAAG,EACvBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,YAAY,GAAG,CAAA,EAAA,CACtB,EACH,mBAAmB;AAGd,MAAM,OAAO,GAAG,UAAU,CAC/BG,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,uGAAuG,EAAA,CAAG,EAClHA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAA,CAAG,CAAA,EAAA,CAC/B,EACH,SAAS;AAGJ,MAAM,YAAY,GAAG,UAAU,CACpCG,4BACEH,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,2CAA2C,GAAG,EACtDA,GAAA,CAAA,UAAA,EAAA,EAAU,MAAM,EAAC,kBAAkB,GAAG,EACtCA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAA,CAAG,IACtC,EACH,cAAc;AAGT,MAAMU,YAAU,GAAG,UAAU,CAClCV,GAAA,CAAA,SAAA,EAAA,EAAS,MAAM,EAAC,6CAA6C,EAAA,CAAG,EAChE,YAAY;MAGDW,cAAY,GAAG,UAAU,CACpCR,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,QAAQ,GAAG,EACnBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,SAAS,EAAA,CAAG,EACpBA,GAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAA,CAAG,EAClDA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,UAAU,GAAG,CAAA,EAAA,CACpB,EACH,cAAc;AAGT,MAAM,QAAQ,GAAG,UAAU,CAChCG,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,2CAA2C,EAAA,CAAG,EACtDA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAA,CAAG,CAAA,EAAA,CAC9B,EACH,UAAU;AAGL,MAAMY,WAAS,GAAG,UAAU,CACjCT,4BACEH,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,2CAA2C,EAAA,CAAG,EACtDA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAA,CAAG,EAC9BA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,4BAA4B,EAAA,CAAG,EACvCA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,2BAA2B,EAAA,CAAG,IACrC,EACH,WAAW;AAGN,MAAM,QAAQ,GAAG,UAAU,CAChCG,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAA,CAAG,EAClDA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,2CAA2C,EAAA,CAAG,IACrD,EACH,UAAU;AAGL,MAAM,SAAS,GAAG,UAAU,CACjCA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,+RAA+R,EAAA,CAAG,EAC1S,WAAW;AAGN,MAAM,WAAW,GAAG,UAAU,CACnCG,4BACEH,GAAA,CAAA,UAAA,EAAA,EAAU,MAAM,EAAC,mBAAmB,GAAG,EACvCA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,4EAA4E,GAAG,EACvFA,GAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAA,CAAG,IAC1C,EACH,aAAa;AAGR,MAAM,WAAW,GAAG,UAAU,CACnCG,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,oDAAoD,EAAA,CAAG,EAC/DA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,YAAY,EAAA,CAAG,EACvBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,qDAAqD,GAAG,EAChEA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,WAAW,EAAA,CAAG,CAAA,EAAA,CACrB,EACH,aAAa;AAGR,MAAMa,aAAW,GAAG,UAAU,CACnCV,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,2EAA2E,EAAA,CAAG,EACtFA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,SAAS,EAAA,CAAG,EACpBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,YAAY,EAAA,CAAG,CAAA,EAAA,CACtB,EACH,aAAa;AAGR,MAAMc,WAAS,GAAG,UAAU,CACjCd,GAAA,CAAA,UAAA,EAAA,EAAU,MAAM,EAAC,gBAAgB,EAAA,CAAG,EACpC,WAAW;MAGA,KAAK,GAAG,UAAU,CAC7BG,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,YAAY,GAAG,EACvBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,YAAY,GAAG,CAAA,EAAA,CACtB,EACH,OAAO;MAGIe,UAAQ,GAAG,UAAU,CAChCZ,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,UAAU,GAAG,EACrBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,UAAU,GAAG,CAAA,EAAA,CACpB,EACH,UAAU;AAGL,MAAM,SAAS,GAAG,UAAU,CACjCA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,UAAU,EAAA,CAAG,EACrB,WAAW;AAGN,MAAM,QAAQ,GAAG,UAAU,CAChCG,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAA,CAAG,EACvCA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAA,CAAG,EACrCA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAA,CAAG,CAAA,EAAA,CACtC,EACH,UAAU;AAGL,MAAM,aAAa,GAAG,UAAU,CACrCG,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,sGAAsG,EAAA,CAAG,EACjHA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,SAAS,EAAA,CAAG,EACpBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,UAAU,EAAA,CAAG,CAAA,EAAA,CACpB,EACH,eAAe;MAGJ,aAAa,GAAG,UAAU,CACrCG,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,wBAAwB,GAAG,EACnCA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,8BAA8B,GAAG,CAAA,EAAA,CACxC,EACH,eAAe;AAGjB;MACa,SAAS,GAAG,UAAU,CACjCG,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,YAAY,GAAG,EACvBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,YAAY,GAAG,CAAA,EAAA,CACtB,EACH,WAAW;MAGA,aAAa,GAAG,UAAU,CACrCG,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,cAAM,KAAK,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAA,CAAG,EAChDA,cAAM,KAAK,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,GAAG,EACjDA,GAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAA,CAAG,EAClDA,GAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,GAAG,CAAA,EAAA,CAChD,EACH,eAAe;AAGV,MAAM,UAAU,GAAG,UAAU,CAClCG,4BACEH,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,iEAAiE,GAAG,EAC5EA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,WAAW,GAAG,EACtBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,SAAS,EAAA,CAAG,EACpBA,cAAM,CAAC,EAAC,UAAU,EAAA,CAAG,EACrBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,UAAU,EAAA,CAAG,IACpB,EACH,YAAY;AAGP,MAAM,YAAY,GAAG,UAAU,CACpCG,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,ujBAAujB,EAAA,CAAG,EAClkBA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAA,CAAG,CAAA,EAAA,CAC/B,EACH,cAAc;AAGT,MAAM,QAAQ,GAAG,UAAU,CAChCG,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAA,CAAG,EACjCA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,aAAa,EAAA,CAAG,CAAA,EAAA,CACvB,EACH,UAAU;MAGC,WAAW,GAAG,UAAU,CACnCG,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,UAAA,EAAA,EAAU,MAAM,EAAC,8BAA8B,GAAG,EAClDA,GAAA,CAAA,UAAA,EAAA,EAAU,MAAM,EAAC,iBAAiB,GAAG,CAAA,EAAA,CACpC,EACH,aAAa;MAGF,aAAa,GAAG,UAAU,CACrCG,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,UAAA,EAAA,EAAU,MAAM,EAAC,6BAA6B,GAAG,EACjDA,GAAA,CAAA,UAAA,EAAA,EAAU,MAAM,EAAC,mBAAmB,GAAG,CAAA,EAAA,CACtC,EACH,eAAe;AAGV,MAAMgB,UAAQ,GAAG,UAAU,CAChCb,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAA,CAAG,EACjCA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,WAAW,GAAG,EACtBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,WAAW,EAAA,CAAG,CAAA,EAAA,CACrB,EACH,UAAU;AAGL,MAAM,YAAY,GAAG,UAAU,CACpCG,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,iEAAiE,EAAA,CAAG,EAC5EA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,WAAW,EAAA,CAAG,EACtBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,UAAU,GAAG,EACrBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,UAAU,EAAA,CAAG,CAAA,EAAA,CACpB,EACH,cAAc;AAGT,MAAM,YAAY,GAAG,UAAU,CACpCG,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,2CAA2C,EAAA,CAAG,EACtDA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,yCAAyC,EAAA,CAAG,EACpDA,cAAM,CAAC,EAAC,0CAA0C,EAAA,CAAG,EACrDA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,SAAS,EAAA,CAAG,EACpBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,UAAU,EAAA,CAAG,EACrBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,UAAU,EAAA,CAAG,EACrBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,UAAU,GAAG,CAAA,EAAA,CACpB,EACH,cAAc;MAGH,QAAQ,GAAG,UAAU,CAChCG,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,cAAM,KAAK,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAA,CAAG,EAChDA,cAAM,KAAK,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,GAAG,EACjDA,GAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAA,CAAG,EAClDA,GAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,GAAG,CAAA,EAAA,CAChD,EACH,UAAU;MAGCiB,UAAQ,GAAG,UAAU,CAChCd,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,kDAAkD,GAAG,EAC7DA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,WAAW,GAAG,CAAA,EAAA,CACrB,EACH,UAAU;AAGL,MAAM,QAAQ,GAAG,UAAU,CAChCG,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,eAAe,EAAA,CAAG,EAC1BA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,gBAAgB,EAAA,CAAG,EAC3BA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,cAAc,EAAA,CAAG,CAAA,EAAA,CACxB,EACH,UAAU;AAGL,MAAM,QAAQ,GAAG,UAAU,CAChCG,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,2BAA2B,EAAA,CAAG,EACtCA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,oBAAoB,EAAA,CAAG,EAC/BA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,WAAW,EAAA,CAAG,CAAA,EAAA,CACrB,EACH,UAAU;AAGL,MAAMkB,UAAQ,GAAG,UAAU,CAChCf,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAA,CAAG,EACnDA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,0BAA0B,EAAA,CAAG,IACpC,EACH,UAAU;AAGL,MAAMmB,WAAS,GAAG,UAAU,CACjChB,4BACEH,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,SAAS,GAAG,EACpBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,YAAY,GAAG,EACvBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,kBAAkB,EAAA,CAAG,EAC7BA,cAAM,CAAC,EAAC,UAAU,EAAA,CAAG,EACrBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,UAAU,EAAA,CAAG,IACpB,EACH,WAAW;AAGb;AACO,MAAM,KAAK,GAAG;AACnB,IAAA,KAAK,EAAEC,WAAS;AAChB,IAAA,GAAG,EAAEC,SAAO;AACZ,IAAA,KAAK,EAAEG,WAAS;AAChB,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,GAAG,EAAEC,SAAO;AACZ,IAAA,MAAM,EAAEC,YAAU;AAClB,IAAA,WAAW,EAAEC,iBAAe;AAC5B,IAAA,SAAS,EAAE,aAAa;AACxB,IAAA,YAAY,EAAEC,kBAAgB;AAC9B,IAAA,WAAW,EAAE,eAAe;AAC5B,IAAA,YAAY,EAAE,gBAAgB;AAC9B,IAAA,aAAa,EAAE,iBAAiB;AAChC,IAAA,GAAG,EAAE,OAAO;AACZ,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,MAAM,EAAEC,YAAU;AAClB,IAAA,QAAQ,EAAEC,cAAY;AACtB,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,KAAK,EAAEC,WAAS;AAChB,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,OAAO,EAAE,WAAW;AACpB,IAAA,OAAO,EAAE,WAAW;AACpB,IAAA,OAAO,EAAEC,aAAW;AACpB,IAAA,KAAK,EAAEC,WAAS;AAChB,IAAA,CAAC,EAAE,KAAK;AACR,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,IAAI,EAAEC,UAAQ;AACd,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,SAAS,EAAE,aAAa;AACxB,IAAA,SAAS,EAAE,aAAa;AACxB,IAAA,SAAS,EAAE,aAAa;AACxB,IAAA,MAAM,EAAE,UAAU;AAClB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,OAAO,EAAE,WAAW;AACpB,IAAA,SAAS,EAAE,aAAa;AACxB,IAAA,IAAI,EAAEC,UAAQ;AACd,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,QAAQ,EAAE,YAAY;AACtB,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAEC,UAAQ;AACd,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAEC,UAAQ;AACd,IAAA,KAAK,EAAEC,WAAS;;;;;ACndlB,MAAM,YAAY,GAAG;AACnB,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,OAAO,EAAEL,WAAS;AAClB,IAAA,OAAO,EAAED,aAAW;AACpB,IAAA,KAAK,EAAEA,aAAW;CACnB;AAEM,MAAM,KAAK,GAAyB,CAAC,EAC1C,OAAO,GAAG,SAAS,EACnB,KAAK,EACL,QAAQ,EACR,WAAW,GAAG,KAAK,EACnB,SAAS,EACT,SAAS,GAAG,EAAE,GACf,KAAI;AACH,IAAA,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC;IAE3C,QACEb,aAAK,SAAS,EAAE,GAAGoB,SAAM,CAAC,KAAK,CAAA,CAAA,EAAIA,SAAM,CAAC,OAAO,CAAC,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,EAAE,IAAI,EAAC,OAAO,EAAA,QAAA,EAC7EjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,SAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CAC5BpB,GAAA,CAAC,aAAa,EAAA,EAAC,SAAS,EAAEoB,SAAM,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAA,CAAI,EACnDjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,SAAM,CAAC,IAAI,EAAA,QAAA,EAAA,CACxB,KAAK,IAAIpB,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAEoB,SAAM,CAAC,KAAK,EAAA,QAAA,EAAG,KAAK,GAAM,EACnDpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,SAAM,CAAC,OAAO,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAO,CAAA,EAAA,CAC5C,EACL,WAAW,IAAI,SAAS,KACvBpB,GAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,SAAS,EAClB,SAAS,EAAEoB,SAAM,CAAC,aAAa,EAAA,YAAA,EACpB,eAAe,EAAA,QAAA,EAE1BpB,IAAC,SAAS,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,GAChB,CACV,CAAA,EAAA,CACG,EAAA,CACF;AAEV;;;;ACzCA,MAAM,WAAW,GAAG,CAAC,IAAY,KAAY;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;AACtC,IAAA,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;QACrB,OAAO,CAAA,EAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,EAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,WAAW,EAAE;IACpE;IACA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE;AACvC,CAAC;AAED;;AAEG;AACI,MAAM,MAAM,GAA0B,CAAC,EAC5C,GAAG,EACH,GAAG,EACH,QAAQ,EACR,IAAI,EACJ,IAAI,GAAG,IAAI,EACX,SAAS,GAAG,EAAE,EACd,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,eAAe,GAAG,QAAQ,KAAK,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;AAEpE,IAAA,MAAM,UAAU,GAAG;AACjB,QAAAoB,SAAM,CAAC,MAAM;QACbA,SAAM,CAAC,IAAI,CAAC;QACZ,SAAS;AACV;SACE,MAAM,CAAC,OAAO;SACd,IAAI,CAAC,GAAG,CAAC;IAEZ,QACEpB,aAAK,SAAS,EAAE,UAAU,EAAA,GAAM,KAAK,EAAA,QAAA,EAClC,GAAG,IACFA,GAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,QAAQ,EAAE,SAAS,EAAEoB,SAAM,CAAC,KAAK,EAAA,CAAI,KAExEpB,cAAM,SAAS,EAAEoB,SAAM,CAAC,QAAQ,EAAA,QAAA,EAAG,eAAe,EAAA,CAAQ,CAC3D,EAAA,CACG;AAEV;AAEA,MAAM,CAAC,WAAW,GAAG,QAAQ;MAOhB,WAAW,GAA+B,CAAC,EACtD,GAAG,GAAG,CAAC,EACP,SAAS,GAAG,EAAE,EACd,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;IACH,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;IACnD,MAAM,eAAe,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;AAChD,IAAA,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,GAAG,GAAG;AAE9C,IAAA,MAAM,UAAU,GAAG,CAACA,SAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IAEtE,QACEjB,cAAK,SAAS,EAAE,UAAU,EAAA,GAAM,KAAK,aAClC,eAAe,EACf,cAAc,GAAG,CAAC,KACjBH,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAA,EAAGoB,SAAM,CAAC,MAAM,IAAIA,SAAM,CAAC,EAAE,CAAA,CAAA,EAAIA,SAAM,CAAC,QAAQ,CAAA,CAAE,YAChEjB,IAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEiB,SAAM,CAAC,QAAQ,EAAA,QAAA,EAAA,CAAA,GAAA,EAAI,cAAc,IAAQ,EAAA,CACtD,CACP,CAAA,EAAA,CACG;AAEV;AAEA,WAAW,CAAC,WAAW,GAAG,aAAa;;;;AC3EvC;;AAEG;AACI,MAAM,KAAK,GAAyB,CAAC,EAC1C,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,IAAI,EACX,GAAG,GAAG,KAAK,EACX,SAAS,GAAG,EAAE,EACd,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,UAAU,GAAG;AACjB,QAAAA,SAAM,CAAC,KAAK;QACZA,SAAM,CAAC,OAAO,CAAC;QACfA,SAAM,CAAC,IAAI,CAAC;QACZ,SAAS;AACV;SACE,MAAM,CAAC,OAAO;SACd,IAAI,CAAC,GAAG,CAAC;IAEZ,QACEjB,eAAM,SAAS,EAAE,UAAU,EAAA,GAAM,KAAK,aACnC,GAAG,IAAIH,cAAM,SAAS,EAAEoB,SAAM,CAAC,GAAG,GAAI,EACtC,QAAQ,CAAA,EAAA,CACJ;AAEX;AAEA,KAAK,CAAC,WAAW,GAAG,OAAO;;;;ACpB3B;;;AAGG;MACU,MAAM,GAAG,UAAU,CAC9B,CACE,EACE,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,IAAI,EACX,SAAS,GAAG,KAAK,EACjB,OAAO,GAAG,KAAK,EACf,QAAQ,EACR,SAAS,EACT,MAAM,GAAG,KAAK,EACd,SAAS,GAAG,EAAE,EACd,QAAQ,EACR,QAAQ,EACR,GAAG,KAAK,EACT,EACD,GAAG,KACD;AACF,IAAA,MAAM,UAAU,GAAG;AACjB,QAAAA,SAAM,CAAC,MAAM;QACbA,SAAM,CAAC,OAAO,CAAC;QACfA,SAAM,CAAC,IAAI,CAAC;QACZ,SAAS,GAAGA,SAAM,CAAC,SAAS,GAAG,EAAE;QACjC,MAAM,GAAGA,SAAM,CAAC,MAAM,GAAG,EAAE;QAC3B,OAAO,GAAGA,SAAM,CAAC,OAAO,GAAG,EAAE;QAC7B,SAAS;AACV;SACE,MAAM,CAAC,OAAO;SACd,IAAI,CAAC,GAAG,CAAC;IAEZ,QACEjB,IAAA,CAAA,QAAA,EAAA,EACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,UAAU,EACrB,QAAQ,EAAE,QAAQ,IAAI,OAAO,EAAA,GACzB,KAAK,EAAA,QAAA,EAAA,CAER,OAAO,KACNH,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,SAAM,CAAC,OAAO,EAAA,QAAA,EAC7BjB,cACE,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAEfH,GAAA,CAAA,QAAA,EAAA,EACE,EAAE,EAAC,IAAI,EACP,EAAE,EAAC,IAAI,EACP,CAAC,EAAC,IAAI,EACN,aAAa,EAAC,MAAM,EAAA,CACpB,EACFA,GAAA,CAAA,MAAA,EAAA,EACE,CAAC,EAAC,yBAAyB,EAC3B,aAAa,EAAC,OAAO,EAAA,CACrB,CAAA,EAAA,CACE,EAAA,CACD,CACR,EACA,CAAC,OAAO,IAAI,QAAQ,IAAIA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,SAAM,CAAC,IAAI,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAQ,EACvE,QAAQ,IAAIpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,SAAM,CAAC,OAAO,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAQ,EAC9D,CAAC,OAAO,IAAI,SAAS,IAAIpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,SAAM,CAAC,IAAI,EAAA,QAAA,EAAG,SAAS,EAAA,CAAQ,CAAA,EAAA,CACnE;AAEb,CAAC;AAGH,MAAM,CAAC,WAAW,GAAG,QAAQ;;;;AC1E7B,MAAMN,WAAS,GAAG,OAChBd,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,GAAG,EAAC,OAAO,EAAC,UAAU,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B,EAAA,QAAA,EAC1FA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,kBAAkB,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAA,CAAE,EAAA,CAC3G,CACP;AAED,MAAM,iBAAiB,GAAG,OACxBA,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,GAAG,EAAC,OAAO,EAAC,UAAU,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B,YAC1FA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,QAAQ,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAA,CAAE,EAAA,CAC1E,CACP;AAED;;AAEG;AACI,MAAM,QAAQ,GAAG,UAAU,CAChC,CACE,EACE,KAAK,EACL,IAAI,GAAG,IAAI,EACX,UAAU,EACV,KAAK,EACL,aAAa,GAAG,KAAK,EACrB,SAAS,GAAG,EAAE,EACd,QAAQ,EACR,EAAE,EACF,OAAO,EACP,GAAG,KAAK,EACT,EACD,GAAG,KACD;AACF,IAAA,MAAM,WAAW,GAAG,KAAK,EAAE;AAC3B,IAAA,MAAM,UAAU,GAAG,EAAE,IAAI,WAAW;AACpC,IAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,UAAU,SAAS;AACvC,IAAA,MAAM,OAAO,GAAG,CAAA,EAAG,UAAU,QAAQ;AAErC,IAAA,MAAM,cAAc,GAAG;AACrB,QAAAoB,SAAM,CAAC,OAAO;QACdA,SAAM,CAAC,IAAI,CAAC;QACZ,QAAQ,GAAGA,SAAM,CAAC,QAAQ,GAAG,EAAE;QAC/B,KAAK,GAAGA,SAAM,CAAC,QAAQ,GAAG,EAAE;QAC5B,SAAS;KACV,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;AAG3B,IAAA,MAAM,QAAQ,GAAG,CAAC,IAA6B,KAAI;QACjD,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,aAAa,GAAG,aAAa;QACpC;;AAEA,QAAA,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;YAC7B,GAAG,CAAC,IAAI,CAAC;QACX;aAAO,IAAI,GAAG,EAAE;AACd,YAAA,GAAG,CAAC,OAAO,GAAG,IAAI;QACpB;AACF,IAAA,CAAC;AAED,IAAA,QACEjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,EAAA,QAAA,EAAA,CAC5BA,IAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAEiB,SAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAC5BjB,cAAK,SAAS,EAAEiB,SAAM,CAAC,eAAe,EAAA,QAAA,EAAA,CACpCpB,GAAA,CAAA,OAAA,EAAA,EACE,GAAG,EAAE,QAAQ,EACb,IAAI,EAAC,UAAU,EACf,EAAE,EAAE,UAAU,EACd,SAAS,EAAEoB,SAAM,CAAC,KAAK,EACvB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,kBACF,CAAC,CAAC,KAAK,EAAA,kBAAA,EAEnB,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI;qCAClD,MAAM,CAAC,OAAO;AACd,qCAAA,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,EAAA,GAEvB,KAAK,EAAA,CACT,EACFpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,SAAM,CAAC,QAAQ,EAAA,QAAA,EAC7B,aAAa,GAAGpB,GAAA,CAAC,iBAAiB,KAAG,GAAGA,GAAA,CAACc,WAAS,KAAG,EAAA,CACjD,CAAA,EAAA,CACH,EACL,KAAK,IAAId,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,SAAM,CAAC,SAAS,EAAA,QAAA,EAAG,KAAK,EAAA,CAAQ,CAAA,EAAA,CACrD,EACP,KAAK,KACJpB,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAEoB,SAAM,CAAC,SAAS,YAAG,KAAK,EAAA,CAAQ,CAC/D,EACA,UAAU,IAAI,CAAC,KAAK,KACnBpB,cAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAEoB,SAAM,CAAC,UAAU,EAAA,QAAA,EAAG,UAAU,GAAQ,CACtE,CAAA,EAAA,CACG;AAEV,CAAC;AAGH,QAAQ,CAAC,WAAW,GAAG,UAAU;;;;AC3FjC,MAAM,YAAY,GAAG,OACnBjB,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAA,CAAE,EACxDA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAA,CAAE,EACrCA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAA,CAAE,EACnCA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAA,CAAE,CAAA,EAAA,CAClC,CACP;AAED;;AAEG;AACI,MAAM,UAAU,GAAG,UAAU,CAClC,CACE,EACE,IAAI,GAAG,IAAI,EACX,KAAK,EACL,UAAU,EACV,KAAK,EACL,SAAS,GAAG,KAAK,EACjB,SAAS,GAAG,EAAE,EACd,EAAE,EACF,QAAQ,EACR,GAAG,KAAK,EACT,EACD,GAAG,KACD;AACF,IAAA,MAAM,WAAW,GAAG,KAAK,EAAE;AAC3B,IAAA,MAAM,OAAO,GAAG,EAAE,IAAI,WAAW;AACjC,IAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,OAAO,SAAS;AACpC,IAAA,MAAM,OAAO,GAAG,CAAA,EAAG,OAAO,QAAQ;AAElC,IAAA,MAAM,cAAc,GAAG;AACrB,QAAAoB,SAAM,CAAC,OAAO;QACd,SAAS,GAAGA,SAAM,CAAC,SAAS,GAAG,EAAE;QACjC,SAAS;KACV,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAE3B,IAAA,MAAM,mBAAmB,GAAG;AAC1B,QAAAA,SAAM,CAAC,YAAY;QACnBA,SAAM,CAAC,IAAI,CAAC;QACZ,KAAK,GAAGA,SAAM,CAAC,KAAK,GAAG,EAAE;QACzB,QAAQ,GAAGA,SAAM,CAAC,QAAQ,GAAG,EAAE;KAChC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAE3B,IAAA,QACEjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,EAAA,QAAA,EAAA,CAC3B,KAAK,KACJH,eAAO,OAAO,EAAE,OAAO,EAAE,SAAS,EAAEoB,SAAM,CAAC,KAAK,EAAA,QAAA,EAC7C,KAAK,EAAA,CACA,CACT,EACDjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,mBAAmB,EAAA,QAAA,EAAA,CACjCH,cAAM,SAAS,EAAEoB,SAAM,CAAC,IAAI,YAC1BpB,GAAA,CAAC,YAAY,KAAG,EAAA,CACX,EACPA,eACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,MAAM,EACX,EAAE,EAAE,OAAO,EACX,SAAS,EAAEoB,SAAM,CAAC,KAAK,EACvB,QAAQ,EAAE,QAAQ,EAAA,cAAA,EACJ,CAAC,CAAC,KAAK,EAAA,kBAAA,EAEnB,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI;6BAClD,MAAM,CAAC,OAAO;6BACd,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,EAAA,GAEvB,KAAK,EAAA,CACT,CAAA,EAAA,CACE,EACL,KAAK,KACJpB,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAEoB,SAAM,CAAC,SAAS,EAAA,QAAA,EAAG,KAAK,GAAQ,CAC/D,EACA,UAAU,IAAI,CAAC,KAAK,KACnBpB,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAEoB,SAAM,CAAC,UAAU,EAAA,QAAA,EAAG,UAAU,EAAA,CAAQ,CACtE,CAAA,EAAA,CACG;AAEV,CAAC;AAGH,UAAU,CAAC,WAAW,GAAG,YAAY;;;;AChFrC;;AAEG;AACI,MAAM,KAAK,GAAG,UAAU,CAC7B,CACE,EACE,IAAI,GAAG,IAAI,EACX,KAAK,EACL,UAAU,EACV,KAAK,EACL,QAAQ,EACR,SAAS,EACT,SAAS,GAAG,KAAK,EACjB,SAAS,GAAG,EAAE,EACd,EAAE,EACF,QAAQ,EACR,GAAG,KAAK,EACT,EACD,GAAG,KACD;IACF,MAAM,OAAO,GAAG,EAAE,IAAI,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAE;AAExE,IAAA,MAAM,cAAc,GAAG;AACrB,QAAAA,SAAM,CAAC,OAAO;QACd,SAAS,GAAGA,SAAM,CAAC,SAAS,GAAG,EAAE;QACjC,SAAS;AACV;SACE,MAAM,CAAC,OAAO;SACd,IAAI,CAAC,GAAG,CAAC;AAEZ,IAAA,MAAM,mBAAmB,GAAG;AAC1B,QAAAA,SAAM,CAAC,YAAY;QACnBA,SAAM,CAAC,IAAI,CAAC;QACZ,KAAK,GAAGA,SAAM,CAAC,KAAK,GAAG,EAAE;QACzB,QAAQ,GAAGA,SAAM,CAAC,QAAQ,GAAG,EAAE;AAChC;SACE,MAAM,CAAC,OAAO;SACd,IAAI,CAAC,GAAG,CAAC;AAEZ,IAAA,QACEjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,EAAA,QAAA,EAAA,CAC3B,KAAK,KACJH,GAAA,CAAA,OAAA,EAAA,EAAO,OAAO,EAAE,OAAO,EAAE,SAAS,EAAEoB,SAAM,CAAC,KAAK,EAAA,QAAA,EAC7C,KAAK,EAAA,CACA,CACT,EACDjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,mBAAmB,EAAA,QAAA,EAAA,CAChC,QAAQ,IAAIH,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,SAAM,CAAC,IAAI,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAQ,EAC5DpB,eACE,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,OAAO,EACX,SAAS,EAAEoB,SAAM,CAAC,KAAK,EACvB,QAAQ,EAAE,QAAQ,EAAA,cAAA,EACJ,CAAC,CAAC,KAAK,EAAA,kBAAA,EACH,KAAK,GAAG,CAAA,EAAG,OAAO,QAAQ,GAAG,UAAU,GAAG,CAAA,EAAG,OAAO,CAAA,OAAA,CAAS,GAAG,SAAS,EAAA,GACvF,KAAK,EAAA,CACT,EACD,SAAS,IAAIpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,SAAM,CAAC,IAAI,YAAG,SAAS,EAAA,CAAQ,CAAA,EAAA,CAC1D,EACL,KAAK,KACJpB,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAE,CAAA,EAAG,OAAO,CAAA,MAAA,CAAQ,EAAE,SAAS,EAAEoB,SAAM,CAAC,SAAS,EAAA,QAAA,EACtD,KAAK,EAAA,CACD,CACR,EACA,UAAU,IAAI,CAAC,KAAK,KACnBpB,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAE,CAAA,EAAG,OAAO,CAAA,OAAA,CAAS,EAAE,SAAS,EAAEoB,SAAM,CAAC,UAAU,YACxD,UAAU,EAAA,CACN,CACR,CAAA,EAAA,CACG;AAEV,CAAC;AAGH,KAAK,CAAC,WAAW,GAAG,OAAO;AAepB,MAAM,QAAQ,GAAG,UAAU,CAChC,CACE,EACE,IAAI,GAAG,IAAI,EACX,KAAK,EACL,UAAU,EACV,KAAK,EACL,SAAS,GAAG,KAAK,EACjB,SAAS,GAAG,EAAE,EACd,EAAE,EACF,QAAQ,EACR,IAAI,GAAG,CAAC,EACR,GAAG,KAAK,EACT,EACD,GAAG,KACD;IACF,MAAM,UAAU,GAAG,EAAE,IAAI,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAE;AAE9E,IAAA,MAAM,cAAc,GAAG;AACrB,QAAAA,SAAM,CAAC,OAAO;QACd,SAAS,GAAGA,SAAM,CAAC,SAAS,GAAG,EAAE;QACjC,SAAS;AACV;SACE,MAAM,CAAC,OAAO;SACd,IAAI,CAAC,GAAG,CAAC;AAEZ,IAAA,MAAM,eAAe,GAAG;AACtB,QAAAA,SAAM,CAAC,QAAQ;QACfA,SAAM,CAAC,IAAI,CAAC;QACZ,KAAK,GAAGA,SAAM,CAAC,KAAK,GAAG,EAAE;QACzB,QAAQ,GAAGA,SAAM,CAAC,QAAQ,GAAG,EAAE;AAChC;SACE,MAAM,CAAC,OAAO;SACd,IAAI,CAAC,GAAG,CAAC;IAEZ,QACEjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,EAAA,QAAA,EAAA,CAC3B,KAAK,KACJH,GAAA,CAAA,OAAA,EAAA,EAAO,OAAO,EAAE,UAAU,EAAE,SAAS,EAAEoB,SAAM,CAAC,KAAK,EAAA,QAAA,EAChD,KAAK,EAAA,CACA,CACT,EACDpB,GAAA,CAAA,UAAA,EAAA,EACE,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,UAAU,EACd,SAAS,EAAE,eAAe,EAC1B,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EAAA,cAAA,EACI,CAAC,CAAC,KAAK,EAAA,kBAAA,EACH,KAAK,GAAG,CAAA,EAAG,UAAU,CAAA,MAAA,CAAQ,GAAG,UAAU,GAAG,CAAA,EAAG,UAAU,CAAA,OAAA,CAAS,GAAG,SAAS,EAAA,GAC7F,KAAK,EAAA,CACT,EACD,KAAK,KACJA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAE,CAAA,EAAG,UAAU,CAAA,MAAA,CAAQ,EAAE,SAAS,EAAEoB,SAAM,CAAC,SAAS,YACzD,KAAK,EAAA,CACD,CACR,EACA,UAAU,IAAI,CAAC,KAAK,KACnBpB,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAE,CAAA,EAAG,UAAU,CAAA,OAAA,CAAS,EAAE,SAAS,EAAEoB,SAAM,CAAC,UAAU,EAAA,QAAA,EAC3D,UAAU,EAAA,CACN,CACR,CAAA,EAAA,CACG;AAEV,CAAC;AAGH,QAAQ,CAAC,WAAW,GAAG,UAAU;;;;AC5JjC,MAAM,WAAW,GAAG,OAClBpB,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,cAAc,EAAA,QAAA,EACjEA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,+EAA+E,EAAA,CAAE,EAAA,CACrF,CACP;AAED;;;AAGG;AACI,MAAM,MAAM,GAA0B,CAAC,EAC5C,KAAK,EACL,KAAK,EACL,MAAM,EACN,MAAM,EACN,IAAI,GAAG,KAAK,EACZ,OAAO,EACP,SAAS,GAAG,EAAE,EACd,OAAO,GAAG,KAAK,GAChB,KAAI;IACH,MAAM,YAAY,GAAG,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;IAEzF,QACEA,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE;AACP,QAAA,EAAAoB,SAAM,CAAC,MAAM;UACb,IAAI,GAAGA,SAAM,CAAC,IAAI,GAAG,EAAE;UACvB,OAAO,GAAGA,SAAM,CAAC,SAAS,GAAG,EAAE;UAC/B,SAAS;OACZ,EACD,OAAO,EAAE,OAAO,EAAA,QAAA,EAEf,KAAK,KAAK,SAAS,KAClBjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,SAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CAC5BjB,cAAK,SAAS,EAAEiB,SAAM,CAAC,QAAQ,aAC7BjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,SAAM,CAAC,cAAc,EAAA,QAAA,EAAA,CAClC,MAAM,IAAIpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,SAAM,CAAC,MAAM,EAAA,QAAA,EAAG,MAAM,GAAQ,EAC1DpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,SAAM,CAAC,KAAK,EAAA,QAAA,EAAG,YAAY,GAAQ,EACnD,MAAM,IAAIpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,SAAM,CAAC,MAAM,EAAA,QAAA,EAAG,MAAM,GAAQ,CAAA,EAAA,CACtD,EACL,OAAO,KACNpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,SAAM,CAAC,WAAW,EAAA,QAAA,EAChCpB,IAAC,WAAW,EAAA,EAAA,CAAG,GACX,CACP,CAAA,EAAA,CACG,EACNA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,SAAM,CAAC,KAAK,EAAA,QAAA,EAAG,KAAK,GAAO,CAAA,EAAA,CACvC,CACP,EAAA,CACG;AAEV;AAEA,MAAM,CAAC,WAAW,GAAG,QAAQ;;;;ACpC7B,MAAM,eAAe,GAAG,OACtBpB,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAC/FA,kBAAU,MAAM,EAAC,gBAAgB,EAAA,CAAE,EAAA,CAC/B,CACP;AAED;;AAEG;MACU,MAAM,GAAG,UAAU,CAC9B,CACE,EACE,OAAO,EACP,YAAY,EACZ,IAAI,GAAG,IAAI,EACX,KAAK,EACL,WAAW,EACX,UAAU,EACV,KAAK,EACL,QAAQ,EACR,SAAS,GAAG,KAAK,EACjB,SAAS,GAAG,EAAE,EACd,EAAE,EACF,QAAQ,EACR,GAAG,KAAK,EACT,EACD,GAAG,KACD;AACF,IAAA,MAAM,WAAW,GAAG,KAAK,EAAE;AAC3B,IAAA,MAAM,QAAQ,GAAG,EAAE,IAAI,WAAW;AAClC,IAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,QAAQ,SAAS;AACrC,IAAA,MAAM,OAAO,GAAG,CAAA,EAAG,QAAQ,QAAQ;AAEnC,IAAA,MAAM,cAAc,GAAG;AACrB,QAAAoB,SAAM,CAAC,OAAO;QACd,SAAS,GAAGA,SAAM,CAAC,SAAS,GAAG,EAAE;QACjC,SAAS;KACV,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAE3B,IAAA,MAAM,oBAAoB,GAAG;AAC3B,QAAAA,SAAM,CAAC,aAAa;QACpBA,SAAM,CAAC,IAAI,CAAC;QACZ,KAAK,GAAGA,SAAM,CAAC,KAAK,GAAG,EAAE;QACzB,QAAQ,GAAGA,SAAM,CAAC,QAAQ,GAAG,EAAE;QAC/B,QAAQ,GAAGA,SAAM,CAAC,WAAW,GAAG,EAAE;KACnC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IAE3B,MAAM,aAAa,GAAG,MAAK;;QAEzB,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3C,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,MAC/BpB,GAAA,CAAA,UAAA,EAAA,EAAkB,KAAK,EAAE,KAAK,CAAC,KAAK,EAAA,QAAA,EACjC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,MACxBA,GAAA,CAAA,QAAA,EAAA,EAEE,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAA,QAAA,EAExB,MAAM,CAAC,KAAK,EAAA,EAJR,MAAM,CAAC,KAAK,CAKV,CACV,CAAC,EAAA,EATW,CAAC,CAUL,CACZ,CAAC;QACJ;;QAGA,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACjC,YAAA,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,MACxBA,GAAA,CAAA,QAAA,EAAA,EAEE,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ,YAExB,MAAM,CAAC,KAAK,EAAA,EAJR,MAAM,CAAC,KAAK,CAKV,CACV,CAAC;QACJ;AAEA,QAAA,OAAO,IAAI;AACb,IAAA,CAAC;AAED,IAAA,QACEG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,EAAA,QAAA,EAAA,CAC3B,KAAK,KACJH,GAAA,CAAA,OAAA,EAAA,EAAO,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAEoB,SAAM,CAAC,KAAK,EAAA,QAAA,EAC9C,KAAK,EAAA,CACA,CACT,EACDjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,oBAAoB,aACjC,QAAQ,IAAIH,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,SAAM,CAAC,QAAQ,EAAA,QAAA,EAAG,QAAQ,GAAQ,EAChEjB,IAAA,CAAA,QAAA,EAAA,EACE,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAEiB,SAAM,CAAC,MAAM,EACxB,QAAQ,EAAE,QAAQ,EAAA,cAAA,EACJ,CAAC,CAAC,KAAK,EAAA,kBAAA,EAEnB,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI;6BAClD,MAAM,CAAC,OAAO;AACd,6BAAA,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,KAEvB,KAAK,EAAA,QAAA,EAAA,CAER,WAAW,KACVpB,GAAA,CAAA,QAAA,EAAA,EAAQ,KAAK,EAAC,EAAE,EAAC,QAAQ,EAAA,IAAA,EAAA,QAAA,EACtB,WAAW,EAAA,CACL,CACV,EACA,aAAa,EAAE,CAAA,EAAA,CACT,EACTA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,SAAM,CAAC,OAAO,EAAA,QAAA,EAC7BpB,IAAC,eAAe,EAAA,EAAA,CAAG,GACd,CAAA,EAAA,CACH,EACL,KAAK,KACJA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAEoB,SAAM,CAAC,SAAS,EAAA,QAAA,EAAG,KAAK,GAAQ,CAC/D,EACA,UAAU,IAAI,CAAC,KAAK,KACnBpB,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAEoB,SAAM,CAAC,UAAU,EAAA,QAAA,EAAG,UAAU,GAAQ,CACtE,CAAA,EAAA,CACG;AAEV,CAAC;AAGH,MAAM,CAAC,WAAW,GAAG,QAAQ;;;;MCpJhB,OAAO,GAA2B,CAAC,EAC9C,IAAI,GAAG,IAAI,EACX,SAAS,GAAG,EAAE,EACd,KAAK,EACL,KAAK,GAAG,YAAY,GACrB,KAAI;IACH,QACEjB,IAAA,CAAA,MAAA,EAAA,EACE,SAAS,EAAE,CAAA,EAAGiB,QAAM,CAAC,OAAO,CAAA,CAAA,EAAIA,QAAM,CAAC,IAAI,CAAC,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,EAC3D,IAAI,EAAC,QAAQ,EAAA,YAAA,EACD,KAAK,EACjB,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,GAAG,SAAS,EAAA,QAAA,EAAA,CAEpCjB,IAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAEiB,QAAM,CAAC,GAAG,EACrB,KAAK,EAAC,4BAA4B,EAClC,IAAI,EAAC,MAAM,EACX,OAAO,EAAC,WAAW,EAAA,QAAA,EAAA,CAEnBpB,gBACE,SAAS,EAAEoB,QAAM,CAAC,KAAK,EACvB,EAAE,EAAC,IAAI,EACP,EAAE,EAAC,IAAI,EACP,CAAC,EAAC,IAAI,EACN,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EAAA,CACf,EACFpB,GAAA,CAAA,MAAA,EAAA,EACE,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAC3B,IAAI,EAAC,cAAc,EACnB,CAAC,EAAC,iHAAiH,EAAA,CACnH,IACE,EACNpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,MAAM,EAAA,QAAA,EAAG,KAAK,EAAA,CAAQ,CAAA,EAAA,CACzC;AAEX;;;;AChCA,MAAM,YAAY,GAAuC;AACvD,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,cAAc,EAAE,cAAc;AAC9B,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,SAAS,EAAE,WAAW;CACvB;AAEM,MAAM,WAAW,GAA+B,CAAC,EACtD,MAAM,EACN,KAAK,EACL,SAAS,GACV,KAAI;IACH,MAAM,YAAY,GAAG,KAAK,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM;IAE5D,QACEpB,GAAA,CAAA,MAAA,EAAA,EACE,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,KAAK,CAAA,CAAA,EAAIA,QAAM,CAAC,MAAM,CAAC,CAAA,CAAA,EAAI,SAAS,IAAI,EAAE,CAAA,CAAE,EAAA,aAAA,EACpD,MAAM,EAAA,QAAA,EAElB,YAAY,EAAA,CACR;AAEX;;;;ACnBO,MAAM,GAAG,GAAuB,CAAC,EACtC,QAAQ,EACR,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,IAAI,EACX,SAAS,GAAG,KAAK,EACjB,QAAQ,EACR,OAAO,EACP,SAAS,GAAG,EAAE,EACd,KAAK,GACN,KAAI;AACH,IAAA,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAEpC,QACEjB,eACE,SAAS,EAAE,GAAGiB,QAAM,CAAC,GAAG,CAAA,CAAA,EAAIA,QAAM,CAAC,OAAO,CAAC,IAAIA,QAAM,CAAC,IAAI,CAAC,CAAA,CAAA,EAAI,WAAW,GAAGA,QAAM,CAAC,SAAS,GAAG,EAAE,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,EACjH,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,EACxC,QAAQ,EAAE,WAAW,GAAG,CAAC,GAAG,SAAS,aAErCpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,OAAO,YAAG,QAAQ,EAAA,CAAQ,EACjD,SAAS,KACRpB,GAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAEoB,QAAM,CAAC,YAAY,EAC9B,OAAO,EAAE,CAAC,CAAC,KAAI;oBACb,CAAC,CAAC,eAAe,EAAE;oBACnB,QAAQ,IAAI;gBACd,CAAC,EAAA,YAAA,EACU,QAAQ,EAAA,QAAA,EAEnBpB,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAEoB,QAAM,CAAC,UAAU,EAC5B,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,OAAO,EAAC,WAAW,EAAA,QAAA,EAEnBpB,cACE,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,WAAW,EAAE,CAAC,EACd,CAAC,EAAC,sBAAsB,EAAA,CACxB,EAAA,CACE,GACC,CACV,CAAA,EAAA,CACI;AAEX;;;;ACrDA,MAAM,SAAS,GAAG,OAChBG,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAA,CAAE,EAChCA,GAAA,CAAA,UAAA,EAAA,EAAU,MAAM,EAAC,kBAAkB,EAAA,CAAE,CAAA,EAAA,CACjC,CACP;AAED;;AAEG;AACI,MAAM,UAAU,GAAG,UAAU,CAClC,CACE,EACE,IAAI,GAAG,IAAI,EACX,KAAK,EACL,UAAU,EACV,KAAK,EACL,SAAS,GAAG,KAAK,EACjB,SAAS,GAAG,EAAE,EACd,EAAE,EACF,QAAQ,EACR,GAAG,KAAK,EACT,EACD,GAAG,KACD;AACF,IAAA,MAAM,WAAW,GAAG,KAAK,EAAE;AAC3B,IAAA,MAAM,OAAO,GAAG,EAAE,IAAI,WAAW;AACjC,IAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,OAAO,SAAS;AACpC,IAAA,MAAM,OAAO,GAAG,CAAA,EAAG,OAAO,QAAQ;AAElC,IAAA,MAAM,cAAc,GAAG;AACrB,QAAAoB,QAAM,CAAC,OAAO;QACd,SAAS,GAAGA,QAAM,CAAC,SAAS,GAAG,EAAE;QACjC,SAAS;KACV,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAE3B,IAAA,MAAM,mBAAmB,GAAG;AAC1B,QAAAA,QAAM,CAAC,YAAY;QACnBA,QAAM,CAAC,IAAI,CAAC;QACZ,KAAK,GAAGA,QAAM,CAAC,KAAK,GAAG,EAAE;QACzB,QAAQ,GAAGA,QAAM,CAAC,QAAQ,GAAG,EAAE;KAChC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAE3B,IAAA,QACEjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,EAAA,QAAA,EAAA,CAC3B,KAAK,KACJH,eAAO,OAAO,EAAE,OAAO,EAAE,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAC7C,KAAK,EAAA,CACA,CACT,EACDjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,mBAAmB,EAAA,QAAA,EAAA,CACjCH,cAAM,SAAS,EAAEoB,QAAM,CAAC,IAAI,YAC1BpB,GAAA,CAAC,SAAS,KAAG,EAAA,CACR,EACPA,eACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,MAAM,EACX,EAAE,EAAE,OAAO,EACX,SAAS,EAAEoB,QAAM,CAAC,KAAK,EACvB,QAAQ,EAAE,QAAQ,EAAA,cAAA,EACJ,CAAC,CAAC,KAAK,EAAA,kBAAA,EAEnB,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI;6BAClD,MAAM,CAAC,OAAO;6BACd,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,EAAA,GAEvB,KAAK,EAAA,CACT,CAAA,EAAA,CACE,EACL,KAAK,KACJpB,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAA,QAAA,EAAG,KAAK,GAAQ,CAC/D,EACA,UAAU,IAAI,CAAC,KAAK,KACnBpB,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAEoB,QAAM,CAAC,UAAU,EAAA,QAAA,EAAG,UAAU,EAAA,CAAQ,CACtE,CAAA,EAAA,CACG;AAEV,CAAC;AAGH,UAAU,CAAC,WAAW,GAAG,YAAY;;;;ACtFrC;;;AAGG;AACI,MAAM,KAAK,GAAyB,CAAC,EAC1C,QAAQ,EACR,MAAM,GAAG,OAAO,EAChB,SAAS,GAAG,EAAE,GACf,KAAI;IACH,QACEpB,YAAI,SAAS,EAAE,GAAGoB,QAAM,CAAC,KAAK,CAAA,CAAA,EAAIA,QAAM,CAAC,MAAM,CAAC,IAAI,SAAS,CAAA,CAAE,YAC5D,QAAQ,EAAA,CACN;AAET;AAEA,KAAK,CAAC,WAAW,GAAG,OAAO;;;;ACNpB,MAAM,MAAM,GAA0B,CAAC,EAC5C,OAAO,EACP,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,IAAI,GAAG,IAAI,EACX,KAAK,EACL,aAAa,GAAG,OAAO,EACvB,SAAS,GAAG,EAAE,EACd,YAAY,EAAE,SAAS,GACxB,KAAI;IACH,MAAM,WAAW,GAAG,MAAK;QACvB,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,QAAQ,GAAG,CAAC,OAAO,CAAC;QACtB;AACF,IAAA,CAAC;AAED,IAAA,MAAM,aAAa,GAAG,CAAC,CAAsB,KAAI;AAC/C,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE;YACrD,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,QAAQ,GAAG,CAAC,OAAO,CAAC;QACtB;AACF,IAAA,CAAC;AAED,IAAA,MAAM,aAAa,IACjBpB,aACE,SAAS,EAAE,GAAGoB,QAAM,CAAC,MAAM,CAAA,CAAA,EAAIA,QAAM,CAAC,IAAI,CAAC,CAAA,CAAA,EAAI,OAAO,GAAGA,QAAM,CAAC,OAAO,GAAG,EAAE,CAAA,CAAA,EAAI,QAAQ,GAAGA,QAAM,CAAC,QAAQ,GAAG,EAAE,IAAI,SAAS,CAAA,CAAE,EAC9H,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,aAAa,EACxB,IAAI,EAAC,QAAQ,EAAA,cAAA,EACC,OAAO,EAAA,eAAA,EACN,QAAQ,gBACX,SAAS,IAAI,KAAK,EAC9B,QAAQ,EAAE,QAAQ,GAAG,EAAE,GAAG,CAAC,YAE3BpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,CAAI,EAAA,CAC7B,CACP;IAED,IAAI,KAAK,EAAE;QACT,QACEjB,IAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAE,CAAA,EAAGiB,QAAM,CAAC,OAAO,CAAA,CAAA,EAAI,QAAQ,GAAGA,QAAM,CAAC,eAAe,GAAG,EAAE,CAAA,CAAE,EAAA,QAAA,EAAA,CAC5E,aAAa,KAAK,MAAM,IAAIpB,cAAM,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAG,KAAK,EAAA,CAAQ,EACzE,aAAa,EACb,aAAa,KAAK,OAAO,IAAIpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAG,KAAK,EAAA,CAAQ,CAAA,EAAA,CACrE;IAEZ;AAEA,IAAA,OAAO,aAAa;AACtB;;;;AClDO,MAAM,OAAO,GAA2B,CAAC,EAC9C,OAAO,EACP,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,OAAO,GAAG,MAAM,EAChB,KAAK,GAAG,GAAG,EACX,QAAQ,GAAG,KAAK,EAChB,SAAS,GAAG,EAAE,GACf,KAAI;IACH,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IACjD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC;AAC9D,IAAA,MAAM,UAAU,GAAG,MAAM,CAAwB,IAAI,CAAC;AACtD,IAAA,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC;AAC/C,IAAA,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC;IAE/C,MAAM,WAAW,GAAG,MAAK;QACvB,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO;YAAE;QAEhD,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,qBAAqB,EAAE;AAC1D,QAAA,MAAM,QAAQ,GAAG;YACf,KAAK,EAAE,MAAM,CAAC,UAAU;YACxB,MAAM,EAAE,MAAM,CAAC,WAAW;SAC3B;QAED,IAAI,YAAY,GAAG,QAAQ;AAE3B,QAAA,IAAI,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE;YAC1D,YAAY,GAAG,MAAM;QACvB;aAAO,IAAI,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE;YAClD,YAAY,GAAG,OAAO;QACxB;aAAO,IAAI,QAAQ,KAAK,KAAK,IAAI,OAAO,CAAC,GAAG,GAAG,CAAC,EAAE;YAChD,YAAY,GAAG,QAAQ;QACzB;AAAO,aAAA,IAAI,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE;YACpE,YAAY,GAAG,KAAK;QACtB;QAEA,iBAAiB,CAAC,YAAY,CAAC;AACjC,IAAA,CAAC;IAED,SAAS,CAAC,MAAK;QACb,IAAI,SAAS,EAAE;AACb,YAAA,WAAW,EAAE;QACf;AACF,IAAA,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEzB,MAAM,gBAAgB,GAAG,MAAK;AAC5B,QAAA,IAAI,QAAQ;YAAE;AACd,QAAA,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,MAAK;YACnC,YAAY,CAAC,IAAI,CAAC;QACpB,CAAC,EAAE,KAAK,CAAC;AACX,IAAA,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAK;AAC5B,QAAA,IAAI,UAAU,CAAC,OAAO,EAAE;AACtB,YAAA,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC;QAClC;QACA,YAAY,CAAC,KAAK,CAAC;AACrB,IAAA,CAAC;IAED,MAAM,WAAW,GAAG,MAAK;QACvB,IAAI,CAAC,QAAQ,EAAE;YACb,YAAY,CAAC,IAAI,CAAC;QACpB;AACF,IAAA,CAAC;IAED,MAAM,UAAU,GAAG,MAAK;QACtB,YAAY,CAAC,KAAK,CAAC;AACrB,IAAA,CAAC;IAED,SAAS,CAAC,MAAK;AACb,QAAA,OAAO,MAAK;AACV,YAAA,IAAI,UAAU,CAAC,OAAO,EAAE;AACtB,gBAAA,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC;YAClC;AACF,QAAA,CAAC;IACH,CAAC,EAAE,EAAE,CAAC;IAEN,QACEjB,IAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,CAAA,EAAGiB,QAAM,CAAC,OAAO,IAAI,SAAS,CAAA,CAAE,EAC3C,YAAY,EAAE,gBAAgB,EAC9B,YAAY,EAAE,gBAAgB,EAC9B,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,EAAA,QAAA,EAAA,CAEjB,QAAQ,EACR,SAAS,IAAI,OAAO,KACnBjB,IAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,CAAA,EAAGiB,QAAM,CAAC,OAAO,CAAA,CAAA,EAAIA,QAAM,CAAC,cAAc,CAAC,IAAIA,QAAM,CAAC,OAAO,CAAC,CAAA,CAAE,EAC3E,IAAI,EAAC,SAAS,EAAA,QAAA,EAAA,CAEdpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAG,OAAO,EAAA,CAAO,EAC/CpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,KAAK,CAAA,CAAA,EAAIA,QAAM,CAAC,CAAA,KAAA,EAAQ,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA,EAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,CAAA,CAAE,EAAA,CAAI,CAAA,EAAA,CACvH,CACP,CAAA,EAAA,CACG;AAEV;;;;ACrGA;AACA,MAAM,YAAY,GAA+C;IAC/D,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;IACpC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;IACpC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;IACpC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;IACpC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;IACpC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;IACpC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;IACpC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;IACpC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;IACpC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;CACrC;AAED;AACA,MAAMC,YAAU,GAAmD;IACjE,CAAC,EAAE,EAAE,EAAE,EAAE,qCAAqC,EAAE,EAAE,EAAE,+BAA+B,EAAE;IACrF,CAAC,EAAE,EAAE,EAAE,EAAE,uCAAuC,EAAE,EAAE,EAAE,+BAA+B,EAAE;IACvF,CAAC,EAAE,EAAE,EAAE,EAAE,oCAAoC,EAAE,EAAE,EAAE,+BAA+B,EAAE;IACpF,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;IACnC,CAAC,EAAE,EAAE,EAAE,EAAE,qCAAqC,EAAE,EAAE,EAAE,gCAAgC,EAAE;IACtF,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;IACnC,CAAC,EAAE,EAAE,EAAE,EAAE,iCAAiC,EAAE,EAAE,EAAE,sBAAsB,EAAE;CACzE;AAED;AACA,MAAMC,WAAS,GAAwC;AACrD,IAAA,CAAC,GACCtB,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,wHAAwH,GAAG,CACpI;AACD,IAAA,CAAC,GACCA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,qVAAqV,GAAG,CACjW;AACD,IAAA,CAAC,GACCA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,iHAAiH,GAAG,CAC7H;AACD,IAAA,CAAC,GACCA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,qVAAqV,GAAG,CACjW;AACD,IAAA,CAAC,GACCA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,wSAAwS,GAAG,CACpT;AACD,IAAA,CAAC,GACCA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,2UAA2U,GAAG,CACvV;AACD,IAAA,CAAC,GACCA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,qPAAqP,GAAG,CACjQ;CACF;AAEM,MAAM,iBAAiB,GAAqC,CAAC,EAClE,IAAI,EACJ,MAAM,EACN,IAAI,GAAG,MAAM,EACb,IAAI,GAAG,EAAE,EACT,KAAK,GAAG,KAAK,EACb,SAAS,GACV,KAAI;IACH,MAAM,SAAS,GAAG,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE;IAC7C,MAAM,MAAM,GAAG,IAAI,KAAK,MAAM,IAAI,YAAY,CAAC,SAAS;AACtD,UAAE,YAAY,CAAC,SAAS;UACtBqB,YAAU,CAAC,IAAI,CAAC,IAAIA,YAAU,CAAC,CAAC;IAEpC,QACElB,IAAA,CAAA,MAAA,EAAA,EACE,SAAS,EAAE,CAAA,EAAGiB,QAAM,CAAC,OAAO,CAAA,CAAA,EAAI,KAAK,GAAGA,QAAM,CAAC,KAAK,GAAG,EAAE,CAAA,CAAA,EAAI,SAAS,IAAI,EAAE,CAAA,CAAE,EAC9E,KAAK,EAAE;AACL,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,MAAM,EAAE,IAAI;YACZ,eAAe,EAAE,MAAM,CAAC,EAAE;YAC1B,KAAK,EAAE,MAAM,CAAC,EAAE;YAChB,QAAQ,EAAE,IAAI,GAAG,GAAG;AACrB,SAAA,EACD,KAAK,EAAE,MAAM,GAAG,CAAA,EAAG,MAAM,CAAA,EAAA,EAAK,IAAI,GAAG,GAAG,IAAI,EAAA,QAAA,EAAA,CAE3C,IAAI,KAAK,MAAM,IAAI,MAAM,IACxBpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,IAAI,EAAA,QAAA,EAAG,MAAM,EAAA,CAAQ,KAE7CpB,GAAA,CAAA,KAAA,EAAA,EACE,OAAO,EAAC,WAAW,EACnB,KAAK,EAAE,IAAI,GAAG,IAAI,EAClB,MAAM,EAAE,IAAI,GAAG,IAAI,EACnB,IAAI,EAAC,cAAc,YAElBsB,WAAS,CAAC,IAAI,CAAC,IAAIA,WAAS,CAAC,CAAC,EAAA,CAC3B,CACP,EACA,KAAK,IAAItB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,cAAc,EAAA,QAAA,EAAA,GAAA,EAAA,CAAU,CAAA,EAAA,CACrD;AAEX;;;;AC/FA,MAAM,UAAU,GAA+B;AAC7C,IAAA,CAAC,EAAE,KAAK;AACR,IAAA,CAAC,EAAE,KAAK;AACR,IAAA,CAAC,EAAE,OAAO;AACV,IAAA,CAAC,EAAE,MAAM;AACT,IAAA,CAAC,EAAE,MAAM;AACT,IAAA,CAAC,EAAE,KAAK;AACR,IAAA,CAAC,EAAE,SAAS;CACb;AAED,MAAM,UAAU,GAAmD;IACjE,CAAC,EAAE,EAAE,EAAE,EAAE,qCAAqC,EAAE,EAAE,EAAE,+BAA+B,EAAE;IACrF,CAAC,EAAE,EAAE,EAAE,EAAE,uCAAuC,EAAE,EAAE,EAAE,+BAA+B,EAAE;IACvF,CAAC,EAAE,EAAE,EAAE,EAAE,oCAAoC,EAAE,EAAE,EAAE,+BAA+B,EAAE;IACpF,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;IACnC,CAAC,EAAE,EAAE,EAAE,EAAE,qCAAqC,EAAE,EAAE,EAAE,gCAAgC,EAAE;IACtF,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;IACnC,CAAC,EAAE,EAAE,EAAE,EAAE,iCAAiC,EAAE,EAAE,EAAE,sBAAsB,EAAE;CACzE;AAED;AACA,MAAM,SAAS,GAAwC;AACrD,IAAA,CAAC,GACCpB,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,wHAAwH,GAAG,CACpI;AACD,IAAA,CAAC,GACCA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,qVAAqV,GAAG,CACjW;AACD,IAAA,CAAC,GACCA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,iHAAiH,GAAG,CAC7H;AACD,IAAA,CAAC,GACCA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,qVAAqV,GAAG,CACjW;AACD,IAAA,CAAC,GACCA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,wSAAwS,GAAG,CACpT;AACD,IAAA,CAAC,GACCA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,2UAA2U,GAAG,CACvV;AACD,IAAA,CAAC,GACCA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,qPAAqP,GAAG,CACjQ;CACF;AAEM,MAAM,QAAQ,GAA4B,CAAC,EAChD,IAAI,EACJ,IAAI,GAAG,EAAE,EACT,WAAW,GAAG,IAAI,EAClB,SAAS,GACV,KAAI;IACH,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,SAAS;AAE3C,IAAA,QACEA,GAAA,CAAA,MAAA,EAAA,EACE,SAAS,EAAE,GAAGoB,QAAM,CAAC,IAAI,CAAA,CAAA,EAAI,SAAS,IAAI,EAAE,CAAA,CAAE,EAC9C,KAAK,EAAE;AACL,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,MAAM,EAAE,IAAI;YACZ,eAAe,EAAE,MAAM,CAAC,EAAE;YAC1B,KAAK,EAAE,MAAM,CAAC,EAAE;SACjB,EACD,KAAK,EAAE,WAAW,GAAG,KAAK,GAAG,SAAS,EAAA,YAAA,EAC1B,KAAK,YAEjBpB,GAAA,CAAA,KAAA,EAAA,EACE,OAAO,EAAC,WAAW,EACnB,KAAK,EAAE,IAAI,GAAG,GAAG,EACjB,MAAM,EAAE,IAAI,GAAG,GAAG,EAClB,IAAI,EAAC,cAAc,EAAA,QAAA,EAElB,SAAS,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,EAAA,CAC3B,EAAA,CACD;AAEX;;;;ACxEA,MAAM,SAAS,GAAG,CAAC,EAAE,SAAS,EAA0B,MACtDA,aACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,YAEfA,GAAA,CAAA,UAAA,EAAA,EAAU,MAAM,EAAC,gBAAgB,EAAA,CAAG,EAAA,CAChC,CACP;AAED;;;AAGG;AACI,MAAM,SAAS,GAA6B,CAAC,EAClD,MAAM,EACN,QAAQ,EACR,WAAW,GAAG,IAAI,EAClB,IAAI,EAAE,cAAc,EACpB,YAAY,EACZ,YAAY,GAAG,KAAK,EACpB,SAAS,GACV,KAAI;IACH,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC;AAC7D,IAAA,MAAM,YAAY,GAAG,cAAc,KAAK,SAAS;IACjD,MAAM,MAAM,GAAG,YAAY,GAAG,cAAc,GAAG,YAAY;IAE3D,MAAM,YAAY,GAAG,MAAK;AACxB,QAAA,MAAM,OAAO,GAAG,CAAC,MAAM;QACvB,IAAI,CAAC,YAAY,EAAE;YACjB,eAAe,CAAC,OAAO,CAAC;QAC1B;AACA,QAAA,YAAY,GAAG,OAAO,CAAC;AACzB,IAAA,CAAC;AAED,IAAA,QACEG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,GAAGiB,QAAM,CAAC,SAAS,CAAA,CAAA,EAAI,SAAS,IAAI,EAAE,CAAA,CAAE,aACtDjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,eAAe,EAAA,QAAA,EAAA,CACpCpB,GAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAEoB,QAAM,CAAC,MAAM,EACxB,OAAO,EAAE,YAAY,EAAA,eAAA,EACN,MAAM,EAAA,QAAA,EAErBpB,GAAA,CAAC,SAAS,IAAC,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,KAAK,CAAA,CAAA,EAAI,MAAM,GAAGA,QAAM,CAAC,IAAI,GAAG,EAAE,CAAA,CAAE,EAAA,CAAI,EAAA,CACjE,EACTpB,aAAK,SAAS,EAAEoB,QAAM,CAAC,MAAM,EAAA,QAAA,EAAG,MAAM,EAAA,CAAO,CAAA,EAAA,CACzC,EACNjB,IAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,GAAGiB,QAAM,CAAC,IAAI,CAAA,CAAA,EAAI,MAAM,GAAGA,QAAM,CAAC,OAAO,GAAGA,QAAM,CAAC,MAAM,EAAE,EAAA,aAAA,EACzD,CAAC,MAAM,EAAA,QAAA,EAAA,CAEnB,YAAY,KACXjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,QAAQ,EAAA,QAAA,EAAA,CAC7BpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,IAAI,EAAA,CAAI,EAC/BpB,GAAA,CAAC,SAAS,EAAA,EAAC,SAAS,EAAEoB,QAAM,CAAC,QAAQ,EAAA,CAAI,CAAA,EAAA,CACrC,CACP,EACDpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,OAAO,YAAG,QAAQ,EAAA,CAAO,CAAA,EAAA,CAC5C,CAAA,EAAA,CACF;AAEV;AAEA,SAAS,CAAC,WAAW,GAAG,WAAW;;;;ACnEnC,MAAM,QAAQ,GAAG,OACfjB,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,aAAA,EAAa,MAAM,EAAA,QAAA,EAAA,CAClHH,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,GAAG,EACrCA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAA,CAAG,EACvCA,cAAM,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAA,CAAG,EACvCA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,cAAc,EAAC,MAAM,EAAC,MAAM,EAAA,CAAG,EAChEA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,cAAc,EAAC,MAAM,EAAC,MAAM,EAAA,CAAG,EACjEA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,cAAc,EAAC,MAAM,EAAC,MAAM,EAAA,CAAG,CAAA,EAAA,CAC7D,CACP;AAEM,MAAM,iBAAiB,GAAG,CAAC,EAChC,OAAO,EACP,KAAK,EACL,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,IAAI,GAAG,IAAI,EACX,SAAS,GAAG,EAAE,EACd,SAAS,GAAG,cAAc,GACH,MACvBA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAACoB,QAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAC,OAAO,gBAAa,SAAS,EAAA,QAAA,EACvG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;AACtB,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,KAAK;AAClC,QAAA,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE;AAC9D,QAAA,QACEjB,IAAA,CAAA,QAAA,EAAA,EAEE,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,cAAc,gBACT,cAAc,EAAA,cAAA,EACZ,MAAM,EACpB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE;AACT,gBAAAiB,QAAM,CAAC,IAAI;gBACXA,QAAM,CAAC,IAAI,CAAC;AACZ,gBAAA,MAAM,CAAC,KAAK,GAAGA,QAAM,CAAC,SAAS,GAAGA,QAAM,CAAC,QAAQ;gBACjD,MAAM,GAAGA,QAAM,CAAC,MAAM,GAAG,EAAE;AAC5B,aAAA,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAC3B,OAAO,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,EAAA,QAAA,EAAA,CAEnC,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,KAAK,IAAIpB,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,MAAM,CAAC,KAAK,GAAQ,CAAA,EAAA,EAfvC,MAAM,CAAC,EAAE,CAgBP;IAEb,CAAC,CAAC,EAAA,CACE;MASK,oBAAoB,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAA6B,MAC3FA,GAAA,CAAC,iBAAiB,OACZ,KAAK,EACT,SAAS,EAAC,eAAe,EACzB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,SAAS,KAAK,QAAQ,GAAG,SAA8B,CAAC,EACnE,OAAO,EAAE;AACP,QAAA,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAEA,IAACW,cAAY,EAAA,EAAC,IAAI,EAAE,EAAE,GAAI,EAAE;AACrE,QAAA,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAEX,IAAC,QAAQ,EAAA,EAAC,IAAI,EAAE,EAAE,GAAI,EAAE;AACzD,QAAA,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAEA,GAAA,CAAC,QAAQ,KAAG,EAAE;AAChD,KAAA,EAAA,CACD;MASS,oBAAoB,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAA6B,MAC3FA,GAAA,CAAC,iBAAiB,OACZ,KAAK,EACT,SAAS,EAAC,oBAAoB,EAC9B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,SAAS,KAAK,QAAQ,GAAG,SAA8B,CAAC,EACnE,OAAO,EAAE;AACP,QAAA,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;AAC/B,QAAA,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;AACxC,KAAA,EAAA,CACD;;;;ACvEG,MAAM,QAAQ,GAEjB,CAAC,EACH,KAAK,EACL,QAAQ,EACR,SAAS,GAAG,MAAM,EAClB,KAAK,EACL,SAAS,GAAG,EAAE,EACd,QAAQ,GAAG,KAAK,GACjB,KAAI;IACH,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AAC3C,IAAA,MAAM,WAAW,GAAG,MAAM,CAAiB,IAAI,CAAC;IAEhD,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,kBAAkB,GAAG,CAAC,KAAiB,KAAI;AAC/C,YAAA,IAAI,WAAW,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,EAAE;gBAC9E,SAAS,CAAC,KAAK,CAAC;YAClB;AACF,QAAA,CAAC;QAED,IAAI,MAAM,EAAE;AACV,YAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC;QAC5D;AAEA,QAAA,OAAO,MAAK;AACV,YAAA,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,CAAC;AAC/D,QAAA,CAAC;AACH,IAAA,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AAEZ,IAAA,MAAM,aAAa,GAAG,CAAC,CAAsB,KAAI;AAC/C,QAAA,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;YACtB,SAAS,CAAC,KAAK,CAAC;QAClB;AACF,IAAA,CAAC;AAED,IAAA,QACEG,IAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,WAAW,EAChB,SAAS,EAAE,CAAA,EAAGiB,QAAM,CAAC,QAAQ,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,EAC5C,SAAS,EAAE,aAAa,EAAA,QAAA,EAAA,CAExBjB,IAAA,CAAC,MAAM,EAAA,EACL,OAAO,EAAC,WAAW,EACnB,OAAO,EAAE,MAAM,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC,MAAM,CAAC,EAC9C,QAAQ,EAAE,QAAQ,EAAA,eAAA,EACH,MAAM,EAAA,eAAA,EACP,MAAM,EAAA,QAAA,EAAA,CAEnB,KAAK,EACNH,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,KAAK,IAAI,MAAM,GAAGA,QAAM,CAAC,SAAS,GAAG,EAAE,CAAA,CAAE,EAC9D,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EAAA,QAAA,EAEXpB,GAAA,CAAA,MAAA,EAAA,EAAM,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAC,gBAAgB,EAAA,CAAG,EAAA,CACpF,IACC,EAETA,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,GAAGoB,QAAM,CAAC,IAAI,CAAA,CAAA,EAAIA,QAAM,CAAC,SAAS,CAAC,CAAA,CAAA,EAAI,MAAM,GAAGA,QAAM,CAAC,QAAQ,GAAG,EAAE,EAAE,EACjF,KAAK,EAAE,KAAK,GAAG,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAA,EAAA,CAAI,EAAE,GAAG,SAAS,EACrD,IAAI,EAAC,MAAM,EAAA,QAAA,EAEV,QAAQ,EAAA,CACL,CAAA,EAAA,CACF;AAEV;AAEA,MAAM,YAAY,GAAgC,CAAC,EACjD,QAAQ,EACR,OAAO,EACP,QAAQ,GAAG,KAAK,EAChB,IAAI,EACJ,SAAS,GAAG,EAAE,GACf,KAAI;IACH,QACEjB,IAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,CAAA,EAAGiB,QAAM,CAAC,IAAI,IAAI,QAAQ,GAAGA,QAAM,CAAC,YAAY,GAAG,EAAE,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,EAC/E,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,UAAU,EAAA,QAAA,EAAA,CAEd,IAAI,IAAIpB,cAAM,SAAS,EAAEoB,QAAM,CAAC,QAAQ,EAAA,QAAA,EAAG,IAAI,EAAA,CAAQ,EACvD,QAAQ,CAAA,EAAA,CACF;AAEb,CAAC;AAED,QAAQ,CAAC,IAAI,GAAG,YAAY;;;;ACpGrB,MAAM,UAAU,GAA8B,CAAC,EACpD,KAAK,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,UAAU,GAAG,KAAK,EAClB,iBAAiB,GAAG,WAAW,EAC/B,WAAW,EACX,SAAS,GACV,KAAI;IACH,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IACvC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;AAClD,IAAA,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC;;IAGxC,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,IAAI;YAAE;AACX,QAAA,MAAM,WAAW,GAAG,CAAC,CAAa,KAAI;AACpC,YAAA,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAc,CAAC,EAAE;gBAC1D,OAAO,CAAC,KAAK,CAAC;YAChB;AACF,QAAA,CAAC;AACD,QAAA,MAAM,SAAS,GAAG,CAAC,CAAgB,KAAI;AACrC,YAAA,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ;gBAAE,OAAO,CAAC,KAAK,CAAC;AACxC,QAAA,CAAC;AACD,QAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC;AACnD,QAAA,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC;AAC/C,QAAA,OAAO,MAAK;AACV,YAAA,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC;AACtD,YAAA,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC;AACpD,QAAA,CAAC;AACH,IAAA,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;;IAGV,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,IAAI;YAAE,cAAc,CAAC,EAAE,CAAC;AAC/B,IAAA,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAEV,IAAA,MAAM,eAAe,GAAG,UAAU,IAAI;UAClC,OAAO,CAAC,MAAM,CAAC,GAAG,IAChB,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;UAE7D,OAAO;AAEX,IAAA,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC;AAC/D,IAAA,MAAM,YAAY,GAAG,cAAc,EAAE,KAAK,IAAI,KAAK;IACnD,MAAM,SAAS,GAAG,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK;AAE7C,IAAA,QACEjB,IAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,CAAA,EAAGiB,QAAM,CAAC,OAAO,IAAI,SAAS,IAAI,EAAE,CAAA,CAAE,EAAA,QAAA,EAAA,CAC9DjB,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,CAAA,EAAGiB,QAAM,CAAC,IAAI,IAAI,IAAI,GAAGA,QAAM,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,SAAS,GAAGA,QAAM,CAAC,MAAM,GAAG,EAAE,CAAA,CAAE,EACzF,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,EAAA,eAAA,EACf,SAAS,EAAA,eAAA,EACR,IAAI,aAEnBjB,IAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAAG,KAAK,SAAS,EAC9CpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAG,YAAY,EAAA,CAAQ,EACpDpB,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,OAAO,CAAA,CAAA,EAAI,IAAI,GAAGA,QAAM,CAAC,OAAO,GAAG,EAAE,CAAA,CAAE,EAC5D,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,YAEfpB,GAAA,CAAA,UAAA,EAAA,EAAU,MAAM,EAAC,gBAAgB,GAAG,EAAA,CAChC,CAAA,EAAA,CACC,EAER,IAAI,KACHG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,QAAQ,EAAE,IAAI,EAAC,SAAS,EAAA,QAAA,EAAA,CAC5C,WAAW,KACVjB,cAAK,SAAS,EAAEiB,QAAM,CAAC,WAAW,aAChCpB,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,cAAc,EAAA,QAAA,EACjEA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,kGAAkG,EAAA,CAAE,GACxG,EACNA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,WAAW,EAAA,CAAQ,CAAA,EAAA,CACtB,CACP,EAEA,UAAU,KACTG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,aAAa,EAAA,QAAA,EAAA,CAClCjB,cACE,SAAS,EAAEiB,QAAM,CAAC,UAAU,EAC5B,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAEfpB,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAA,CAAG,EAChCA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,OAAO,EAAC,EAAE,EAAC,OAAO,EAAA,CAAG,IAC1C,EACNA,GAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC/C,WAAW,EAAE,iBAAiB,EAC9B,SAAS,EAAEoB,QAAM,CAAC,WAAW,EAC7B,SAAS,SACT,CAAA,EAAA,CACE,CACP,EAEDjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAC/B,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,MAC1BpB,GAAA,CAAA,QAAA,EAAA,EAEE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,QAAQ,mBACE,MAAM,CAAC,KAAK,KAAK,KAAK,EACrC,SAAS,EAAE,GAAGoB,QAAM,CAAC,MAAM,CAAA,CAAA,EAAI,MAAM,CAAC,KAAK,KAAK,KAAK,GAAGA,QAAM,CAAC,QAAQ,GAAG,EAAE,CAAA,CAAE,EAC9E,OAAO,EAAE,MAAK;AACZ,oCAAA,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;oCACtB,OAAO,CAAC,KAAK,CAAC;AAChB,gCAAA,CAAC,EAAA,QAAA,EAEA,MAAM,CAAC,KAAK,IAVR,MAAM,CAAC,KAAK,CAWV,CACV,CAAC,EACD,eAAe,CAAC,MAAM,KAAK,CAAC,KAC3BpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAA,QAAA,EAAA,kBAAA,EAAA,CAAwB,CACzD,CAAA,EAAA,CACG,CAAA,EAAA,CACF,CACP,CAAA,EAAA,CACG;AAEV;;;;ACnIO,MAAM,SAAS,GAAG,UAAU,CACjC,CACE,EACE,KAAK,EACL,UAAU,EACV,KAAK,EACL,QAAQ,GAAG,KAAK,EAChB,SAAS,GAAG,KAAK,EACjB,SAAS,EACT,EAAE,GAAG,OAAO,EACZ,UAAU,EACV,aAAa,EACb,QAAQ,GACT,EACD,GAAG,KACD;AACF,IAAA,MAAM,WAAW,GAAG,KAAK,EAAE;IAC3B,MAAM,OAAO,GAAG,UAAU,EAAE,EAAE,IAAI,aAAa,EAAE,EAAE,IAAI,WAAW;AAClE,IAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,OAAO,SAAS;AACpC,IAAA,MAAM,OAAO,GAAG,CAAA,EAAG,OAAO,QAAQ;AAClC,IAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;AAE/B,IAAA,MAAM,WAAW,GAAG;AAClB,QAAA,UAAU,GAAG,QAAQ,GAAG,IAAI;AAC5B,QAAA,QAAQ,GAAG,OAAO,GAAG,IAAI;AAC1B;SACE,MAAM,CAAC,OAAO;AACd,SAAA,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS;IAEzB,MAAM,WAAW,GAAG,MAAK;QACvB,IAAI,QAAQ,EAAE;AACZ,YAAA,OAAO,QAAQ;QACjB;AAEA,QAAA,IAAI,EAAE,KAAK,UAAU,EAAE;YACrB,QACEpB,IAAC,QAAQ,EAAA,EACP,GAAG,EAAE,GAAqC,EAC1C,EAAE,EAAE,OAAO,EAAA,kBAAA,EACO,WAAW,kBACf,QAAQ,EAAA,eAAA,EACP,QAAQ,EAAA,GACnB,aAAa,EACjB,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,YAAY,IAAI,QAAQ,GAAGA,QAAM,CAAC,UAAU,GAAG,EAAE,CAAA,CAAA,EAAI,aAAa,EAAE,SAAS,IAAI,EAAE,CAAA,CAAE,EAAA,CAC1G;QAEN;QAEA,QACEpB,IAAC,KAAK,EAAA,EACJ,GAAG,EAAE,GAAkC,EACvC,EAAE,EAAE,OAAO,EAAA,kBAAA,EACO,WAAW,kBACf,QAAQ,EAAA,eAAA,EACP,QAAQ,EAAA,GACnB,UAAU,EACd,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,YAAY,IAAI,QAAQ,GAAGA,QAAM,CAAC,UAAU,GAAG,EAAE,CAAA,CAAA,EAAI,UAAU,EAAE,SAAS,IAAI,EAAE,CAAA,CAAE,EAAA,CACvG;AAEN,IAAA,CAAC;IAED,QACEjB,cAAK,SAAS,EAAE,GAAGiB,QAAM,CAAC,SAAS,CAAA,CAAA,EAAI,SAAS,IAAI,EAAE,CAAA,CAAE,EAAA,QAAA,EAAA,CACtDjB,gBACE,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,CAAA,EAAGiB,QAAM,CAAC,KAAK,CAAA,CAAA,EAAI,SAAS,GAAGA,QAAM,CAAC,cAAc,GAAG,EAAE,EAAE,EAAA,QAAA,EAAA,CAErE,KAAK,EACL,QAAQ,IAAIpB,cAAM,SAAS,EAAEoB,QAAM,CAAC,QAAQ,EAAA,aAAA,EAAc,MAAM,EAAA,QAAA,EAAA,GAAA,EAAA,CAAS,CAAA,EAAA,CACpE,EAEP,WAAW,EAAE,EAEb,UAAU,IAAI,CAAC,QAAQ,KACtBpB,WAAG,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAEoB,QAAM,CAAC,UAAU,EAAA,QAAA,EAC1C,UAAU,EAAA,CACT,CACL,EAEA,QAAQ,KACPpB,GAAA,CAAA,GAAA,EAAA,EAAG,EAAE,EAAE,OAAO,EAAE,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAE,IAAI,EAAC,OAAO,EAAA,QAAA,EACtD,KAAK,EAAA,CACJ,CACL,CAAA,EAAA,CACG;AAEV,CAAC;AAGH,SAAS,CAAC,WAAW,GAAG,WAAW;;;;ACrGnC;;;AAGG;MACU,OAAO,GAA2B,CAAC,EAC9C,QAAQ,EACR,OAAO,EACP,GAAG,GAAG,IAAI,EACV,SAAS,EACT,aAAa,GAAG,IAAI,GACrB,KAAI;IACH,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC3C,IAAA,MAAM,QAAQ,GAAG,OAAO,KAAK,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,UAA2B,CAAC;IAE9E,QACEpB,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE;AACP,QAAA,EAAAoB,QAAM,CAAC,GAAG,CAAA;AACV,QAAA,EAAAA,QAAM,CAAC,CAAA,IAAA,EAAO,QAAQ,CAAA,CAAE,CAAC,CAAA;AACzB,QAAA,EAAAA,QAAM,CAAC,CAAA,GAAA,EAAM,GAAG,CAAA,CAAE,CAAC;UACnB,aAAa,GAAGA,QAAM,CAAC,WAAW,GAAG,EAAE;AACvC,QAAA,EAAA,SAAS,IAAI,EAAE;OAClB,EAAA,QAAA,EAEA,QAAQ,EAAA,CACL;AAEV;AAEA,OAAO,CAAC,WAAW,GAAG,SAAS;;;;ACzB/B;;;AAGG;MACU,WAAW,GAA+B,CAAC,EACtD,KAAK,EACL,IAAI,EACJ,MAAM,EACN,QAAQ,GAAG,KAAK,EAChB,QAAQ,EACR,SAAS,EACT,EAAE,GACH,KAAI;AACH,IAAA,MAAM,WAAW,GAAG,MAAM,KAAK,WAAW;AAC1C,IAAA,MAAM,UAAU,GAAG,QAAQ,IAAI,WAAW;AAE1C,IAAA,QACEjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAA,EAAGiB,QAAM,CAAC,OAAO,CAAA,CAAA,EAAI,SAAS,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAA,QAAA,EAAA,CAC5DjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,MAAM,EAAA,QAAA,EAAA,CAC1B,IAAI,IAAIpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,IAAI,EAAA,QAAA,EAAG,IAAI,EAAA,CAAQ,EACpDpB,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAG,KAAK,EAAA,CAAM,IACrC,EACNjB,IAAA,CAAA,UAAA,EAAA,EACE,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE,GAAGiB,QAAM,CAAC,QAAQ,CAAA,CAAA,EAAI,UAAU,GAAGA,QAAM,CAAC,QAAQ,GAAG,EAAE,CAAA,CAAE,EAAA,QAAA,EAAA,CAEnE,MAAM,KACLjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,MAAM,EAAA,QAAA,EAAA,CAC3BpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,SAAA,EAAA,CAAgB,EACnDpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,WAAW,IAAIA,QAAM,CAAC,MAAM,CAAC,CAAA,CAAE,EAAA,QAAA,EACvD,MAAM,KAAK,WAAW,GAAG,WAAW,GAAG,MAAM,KAAK,OAAO,GAAG,OAAO,GAAG,eAAe,EAAA,CACjF,CAAA,EAAA,CACH,CACP,EACA,QAAQ,CAAA,EAAA,CACA,CAAA,EAAA,CACP;AAEV;AAEA,WAAW,CAAC,WAAW,GAAG,aAAa;;;;ACnDvC;MACa,SAAS,GAAG,CAAC,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI,EAAE,SAAS,GAAG,EAAE,EAAkB,MAChFpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAACoB,QAAM,CAAC,KAAK,EAAEA,QAAM,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAO;;;;MCGvF,kBAAkB,GAAG,CAAC,EACjC,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,OAAO,EACP,MAAM,EACN,SAAS,GAAG,EAAE,GACU,KAAI;AAC5B,IAAA,MAAM,IAAI,GAAkF;AAC1F,QAAA,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAER,WAAS,EAAE;AAC5E,QAAA,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;KACzE;IAED,QACEZ,aACE,SAAS,EAAE,CAACoB,QAAM,CAAC,MAAM,EAAE,MAAM,GAAGA,QAAM,CAAC,YAAY,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAClG,IAAI,EAAC,SAAS,EAAA,YAAA,EACH,eAAe,YAEzB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;AAChB,YAAA,MAAM,MAAM,GAAG,IAAI,KAAK,GAAG,CAAC,GAAG;AAC/B,YAAA,MAAM,IAAI,GAAG,MAAM,GAAGF,UAAQ,GAAG,GAAG,CAAC,IAAI;YACzC,QACEf,IAAA,CAAA,QAAA,EAAA,EAEE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,KAAK,EAAA,eAAA,EACK,MAAM,EACrB,OAAO,EAAE,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAC9B,SAAS,EAAE;AACT,oBAAAiB,QAAM,CAAC,GAAG;oBACV,MAAM,GAAGA,QAAM,CAAC,MAAM,GAAG,EAAE;oBAC3B,MAAM,GAAGA,QAAM,CAAC,MAAM,GAAG,EAAE;oBAC3B,MAAM,IAAI,MAAM,GAAGA,QAAM,CAAC,YAAY,GAAG,EAAE;AAC5C,iBAAA,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,QAAA,EAAA,CAE3BpB,IAAC,IAAI,EAAA,EAAC,IAAI,EAAE,EAAE,GAAI,EACjB,GAAG,CAAC,KAAK,EACVA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAG,GAAG,CAAC,KAAK,GAAQ,CAAA,EAAA,EAd5C,GAAG,CAAC,GAAG,CAeL;QAEb,CAAC,CAAC,EAAA,CACE;AAEV;;;;MCpBa,OAAO,GAA2B,CAAC,EAC9C,IAAI,EACJ,KAAK,EACL,MAAM,GAAG,KAAK,EACd,SAAS,GAAG,KAAK,EACjB,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,IAAI,EACX,KAAK,EACL,YAAY,GAAG,SAAS,EACxB,OAAO,EACP,QAAQ,GAAG,KAAK,EAChB,IAAI,EACJ,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,YAAY,EAAE,SAAS,GACxB,KAAI;AACH,IAAA,MAAM,OAAO,IACXjB,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACG,IAAI,IAAIJ,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,IAAI,IAAIA,QAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA,EAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,EAAE,EAAA,aAAA,EAAc,MAAM,YAAE,IAAI,EAAA,CAAQ,EAC5I,CAAC,SAAS,KACTpB,cAAM,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAG,KAAK,GAAQ,CAC9C,EACA,KAAK,KAAK,SAAS,IAAI,CAAC,SAAS,KAChCpB,IAAC,KAAK,EAAA,EAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAClD,KAAK,GACA,CACT,CAAA,EAAA,CACA,CACJ;AAED,IAAA,MAAM,UAAU,GAAG;AACjB,QAAAA,QAAM,CAAC,OAAO;QACdA,QAAM,CAAC,OAAO,CAAC;QACfA,QAAM,CAAC,IAAI,CAAC;QACZ,MAAM,GAAGA,QAAM,CAAC,MAAM,GAAG,EAAE;QAC3B,SAAS,GAAGA,QAAM,CAAC,SAAS,GAAG,EAAE;QACjC,QAAQ,GAAGA,QAAM,CAAC,QAAQ,GAAG,EAAE;AAC/B,QAAA,SAAS,IAAI,EAAE;KAChB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAE3B,IAAA,MAAM,WAAW,GAAG;AAClB,QAAA,SAAS,EAAE,UAAU;AACrB,QAAA,YAAY,EAAE,SAAS,KAAK,SAAS,GAAG,KAAK,GAAG,SAAS,CAAC;QAC1D,cAAc,EAAE,MAAM,GAAG,MAAe,GAAG,SAAS;AACpD,QAAA,eAAe,EAAE,QAAQ;KAC1B;AAED,IAAA,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;AACrB,QAAA,QACEpB,GAAA,CAAA,GAAA,EAAA,EACE,IAAI,EAAE,IAAI,EAAA,GACN,WAAW,EACf,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,EACvC,GAAG,EAAE,QAAQ,GAAG,qBAAqB,GAAG,SAAS,EAAA,QAAA,EAEhD,OAAO,EAAA,CACN;IAER;IAEA,QACEA,GAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,EACvC,QAAQ,EAAE,QAAQ,EAAA,GACd,WAAW,EAAA,QAAA,EAEd,OAAO,EAAA,CACD;AAEb;;;;ACxEA,MAAM,UAAU,GAAiC;AAC/C,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;CACP;AAED,MAAM,YAAY,GAAiC;AACjD,IAAA,EAAE,EAAE,CAAC;AACL,IAAA,EAAE,EAAE,CAAC;AACL,IAAA,EAAE,EAAE,CAAC;AACL,IAAA,EAAE,EAAE,CAAC;CACN;AAEM,MAAM,WAAW,GAA+B,CAAC,EACtD,KAAK,EACL,GAAG,GAAG,GAAG,EACT,IAAI,GAAG,IAAI,EACX,OAAO,GAAG,SAAS,EACnB,SAAS,GAAG,KAAK,EACjB,SAAS,GAAG,EAAE,GACf,KAAI;IACH,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC;AAElE,IAAA,QACEG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAA,EAAGiB,QAAM,CAAC,YAAY,CAAA,CAAA,EAAIA,QAAM,CAAC,CAAA,GAAA,EAAM,IAAI,EAAE,CAAC,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,EAAA,QAAA,EAAA,CAC3EpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,QAAQ,EAAA,QAAA,EAC7BpB,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,OAAO,CAAA,CAAA,EAAIA,QAAM,CAAC,OAAO,CAAC,EAAE,EACjD,KAAK,EAAE,EAAE,KAAK,EAAE,CAAA,EAAG,UAAU,CAAA,CAAA,CAAG,EAAE,EAClC,IAAI,EAAC,aAAa,mBACH,KAAK,EAAA,eAAA,EACL,CAAC,EAAA,eAAA,EACD,GAAG,GAClB,EAAA,CACE,EACL,SAAS,KACRjB,IAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEiB,QAAM,CAAC,QAAQ,EAAA,QAAA,EAAA,CAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CACnE,CAAA,EAAA,CACG;AAEV;AAEO,MAAM,cAAc,GAAkC,CAAC,EAC5D,KAAK,EACL,GAAG,GAAG,GAAG,EACT,IAAI,GAAG,IAAI,EACX,OAAO,GAAG,SAAS,EACnB,SAAS,GAAG,KAAK,EACjB,SAAS,GAAG,EAAE,GACf,KAAI;IACH,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC;AAElE,IAAA,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC;AAClC,IAAA,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC;IACtC,MAAM,MAAM,GAAG,CAAC,SAAS,GAAG,WAAW,IAAI,CAAC;IAC5C,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE;IAC1C,MAAM,gBAAgB,GAAG,aAAa,GAAG,CAAC,UAAU,GAAG,GAAG,IAAI,aAAa;IAE3E,QACEjB,cACE,SAAS,EAAE,GAAGiB,QAAM,CAAC,eAAe,CAAA,CAAA,EAAI,SAAS,EAAE,EACnD,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,EAAA,QAAA,EAAA,CAE9CjB,IAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,SAAS,EACjB,SAAS,EAAEiB,QAAM,CAAC,SAAS,EAAA,QAAA,EAAA,CAE3BpB,GAAA,CAAA,QAAA,EAAA,EACE,SAAS,EAAEoB,QAAM,CAAC,WAAW,EAC7B,EAAE,EAAE,SAAS,GAAG,CAAC,EACjB,EAAE,EAAE,SAAS,GAAG,CAAC,EACjB,CAAC,EAAE,MAAM,EACT,WAAW,EAAE,WAAW,EACxB,IAAI,EAAC,aAAa,EAAA,CAClB,EACFpB,GAAA,CAAA,QAAA,EAAA,EACE,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,UAAU,CAAA,CAAA,EAAIA,QAAM,CAAC,OAAO,CAAC,CAAA,CAAE,EACpD,EAAE,EAAE,SAAS,GAAG,CAAC,EACjB,EAAE,EAAE,SAAS,GAAG,CAAC,EACjB,CAAC,EAAE,MAAM,EACT,WAAW,EAAE,WAAW,EACxB,IAAI,EAAC,aAAa,EAClB,eAAe,EAAE,aAAa,EAC9B,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAC,OAAO,EACrB,IAAI,EAAC,aAAa,EAAA,eAAA,EACH,KAAK,EAAA,eAAA,EACL,CAAC,mBACD,GAAG,EAAA,CAClB,IACE,EACL,SAAS,KACRjB,IAAA,CAAA,MAAA,EAAA,EACE,SAAS,EAAEiB,QAAM,CAAC,WAAW,EAC7B,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,KAAK,IAAI,GAAG,KAAK,GAAG,IAAI,KAAK,IAAI,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,MAAM,GAAG,MAAM,EAAE,aAEpG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAA,GAAA,CAAA,EAAA,CAClB,CACR,CAAA,EAAA,CACG;AAEV;AAEA;AACO,MAAM,QAAQ,GAAG;AACtB,IAAA,GAAG,EAAE,WAAW;AAChB,IAAA,MAAM,EAAE,cAAc;;;;;ACxGxB,MAAM,UAAU,GAAG,OACjBjB,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,2CAA2C,EAAA,CAAE,EACrDA,GAAA,CAAA,UAAA,EAAA,EAAU,MAAM,EAAC,eAAe,EAAA,CAAE,EAClCA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAA,CAAE,CAAA,EAAA,CAClC,CACP;AAED,MAAMuB,YAAU,GAAG,OACjBpB,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,2CAA2C,EAAA,CAAE,EACrDA,GAAA,CAAA,UAAA,EAAA,EAAU,MAAM,EAAC,kBAAkB,EAAA,CAAE,EACrCA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAA,CAAE,CAAA,EAAA,CAClC,CACP;AAED,MAAMwB,aAAW,GAAG,OAClBxB,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAC/FA,kBAAU,MAAM,EAAC,gBAAgB,EAAA,CAAE,EAAA,CAC/B,CACP;AAED,MAAM,QAAQ,GAAG,OACfG,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAA,CAAE,EACzDA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,0BAA0B,EAAA,CAAE,CAAA,EAAA,CAChC,CACP;AAED,MAAM,UAAU,GAAG,OACjBG,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAA,CAAE,EACzDA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,yBAAyB,EAAA,CAAE,CAAA,EAAA,CAC/B,CACP;AAED,MAAM,QAAQ,GAAG,OACfG,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,cAAM,CAAC,EAAC,iEAAiE,EAAA,CAAE,EAC3EA,GAAA,CAAA,UAAA,EAAA,EAAU,MAAM,EAAC,uBAAuB,EAAA,CAAE,EAC1CA,GAAA,CAAA,UAAA,EAAA,EAAU,MAAM,EAAC,cAAc,EAAA,CAAE,CAAA,EAAA,CAC7B,CACP;AAED,MAAM,WAAW,GAAG,OAClBA,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,SAAS,EAAEoB,QAAM,CAAC,OAAO,EAAA,QAAA,EACzHpB,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,eAAe,EAAC,IAAI,EAAC,gBAAgB,EAAC,IAAI,EAAA,CAAE,EAAA,CACvE,CACP;AAED,MAAM,cAAc,GAAG,CAAC,EACtB,KAAK,EACL,IAAI,EACJ,OAAO,GAKR,KAAI;IACH,QACEG,cAAK,SAAS,EAAEiB,QAAM,CAAC,QAAQ,aAC7BjB,IAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAEiB,QAAM,CAAC,eAAe,EAAA,QAAA,EAAA,CACpD,IAAI,EACLpB,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,KAAK,GAAQ,EACpBA,GAAA,CAACwB,aAAW,EAAA,EAAA,CAAG,CAAA,EAAA,CACR,EACTxB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,YAAY,YAChC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MACrBjB,iBAEE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAEiB,QAAM,CAAC,YAAY,EAC9B,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAA,QAAA,EAAA,CAExB,MAAM,CAAC,IAAI,IAAIpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,gBAAgB,EAAA,QAAA,EAAG,MAAM,CAAC,IAAI,EAAA,CAAQ,EAC7E,MAAM,CAAC,KAAK,KAPR,CAAC,CAQC,CACV,CAAC,EAAA,CACE,CAAA,EAAA,CACF;AAEV,CAAC;AAED;;AAEG;MACU,aAAa,GAAG,CAAC,EAC5B,aAAa,EACb,aAAa,EACb,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,SAAS,GAAG,EAAE,GACK,KAAI;AACvB,IAAA,MAAM,cAAc,GAAG,CAACA,QAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAE5E,IAAA,QACEjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,EAAA,QAAA,EAAA,CAC5BA,cAAK,SAAS,EAAEiB,QAAM,CAAC,WAAW,aAC/B,WAAW,EACX,iBAAiB,CAAA,EAAA,CACd,EAENjB,cAAK,SAAS,EAAEiB,QAAM,CAAC,YAAY,aAChC,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,KACxCpB,GAAA,CAAC,cAAc,IACb,KAAK,EAAC,QAAQ,EACd,IAAI,EAAEA,GAAA,CAAC,UAAU,EAAA,EAAA,CAAG,EACpB,OAAO,EAAE,aAAa,GACtB,CACH,EAEA,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,KACxCA,IAAC,cAAc,EAAA,EACb,KAAK,EAAC,QAAQ,EACd,IAAI,EAAEA,IAACuB,YAAU,EAAA,EAAA,CAAG,EACpB,OAAO,EAAE,aAAa,EAAA,CACtB,CACH,EAEA,UAAU,KACTpB,IAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE;AACT,4BAAAiB,QAAM,CAAC,UAAU;4BACjB,UAAU,CAAC,QAAQ,GAAGA,QAAM,CAAC,MAAM,GAAG,EAAE;AACzC,yBAAA,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAC3B,OAAO,EAAE,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,EACxD,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAA,YAAA,EACjB,UAAU,CAAC,QAAQ,GAAG,eAAe,GAAG,aAAa,EAAA,QAAA,EAAA,CAEhE,UAAU,CAAC,QAAQ,GAAGpB,GAAA,CAAC,QAAQ,EAAA,EAAA,CAAG,GAAGA,GAAA,CAAC,UAAU,EAAA,EAAA,CAAG,EACpDA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,UAAU,CAAC,QAAQ,GAAG,QAAQ,GAAG,UAAU,EAAA,CAAQ,CAAA,EAAA,CACnD,CACV,EAEA,UAAU,KACTG,IAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAEiB,QAAM,CAAC,UAAU,EAC5B,OAAO,EAAE,UAAU,CAAC,OAAO,EAC3B,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,OAAO,EAAA,QAAA,EAAA,CAElD,UAAU,CAAC,OAAO,GAAGpB,GAAA,CAAC,WAAW,EAAA,EAAA,CAAG,GAAGA,GAAA,CAAC,QAAQ,EAAA,EAAA,CAAG,EACpDA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,UAAU,CAAC,KAAK,IAAI,MAAM,EAAA,CAAQ,CAAA,EAAA,CAClC,CACV,CAAA,EAAA,CACG,CAAA,EAAA,CACF;AAEV;AAEA,aAAa,CAAC,WAAW,GAAG,eAAe;;;;AC/JpC,MAAM,WAAW,GAAG,UAAU,CACnC,CACE,EACE,WAAW,GAAG,WAAW,EACzB,KAAK,EACL,YAAY,GAAG,EAAE,EACjB,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,IAAI,GAAG,IAAI,EACX,QAAQ,GAAG,KAAK,EAChB,SAAS,GAAG,IAAI,EAChB,UAAU,GAAG,IAAI,EACjB,SAAS,EACT,EAAE,EACF,YAAY,EAAE,SAAS,GAAG,QAAQ,EAClC,GAAG,KAAK,EACT,EACD,GAAG,KACD;IACF,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC;AAChE,IAAA,MAAM,YAAY,GAAG,KAAK,KAAK,SAAS,GAAG,KAAK,GAAG,aAAa;AAEhE,IAAA,MAAM,YAAY,GAAG,CAAC,CAAsC,KAAI;AAC9D,QAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK;AAC/B,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,gBAAgB,CAAC,QAAQ,CAAC;QAC5B;AACA,QAAA,QAAQ,GAAG,QAAQ,CAAC;AACtB,IAAA,CAAC;IAED,MAAM,WAAW,GAAG,MAAK;AACvB,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,gBAAgB,CAAC,EAAE,CAAC;QACtB;AACA,QAAA,QAAQ,GAAG,EAAE,CAAC;QACd,OAAO,IAAI;AACb,IAAA,CAAC;AAED,IAAA,MAAM,YAAY,GAAG,CAAC,CAAkB,KAAI;QAC1C,CAAC,CAAC,cAAc,EAAE;AAClB,QAAA,QAAQ,GAAG,YAAY,CAAC;AAC1B,IAAA,CAAC;AAED,IAAA,MAAM,aAAa,GAAG,CAAC,CAAsB,KAAI;AAC/C,QAAA,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;AACrB,YAAA,QAAQ,GAAG,YAAY,CAAC;QAC1B;AACF,IAAA,CAAC;AAED,IAAA,QACEG,IAAA,CAAA,MAAA,EAAA,EACE,SAAS,EAAE,GAAGiB,QAAM,CAAC,WAAW,CAAA,CAAA,EAAIA,QAAM,CAAC,IAAI,CAAC,CAAA,CAAA,EAAI,SAAS,IAAI,EAAE,CAAA,CAAE,EACrE,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAC,QAAQ,EAAA,QAAA,EAAA,CAEbjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,YAAY,EAAA,QAAA,EAAA,CACjCpB,IAACO,YAAU,EAAA,EAAC,SAAS,EAAEa,QAAM,CAAC,UAAU,EAAA,aAAA,EAAc,MAAM,GAAG,EAC/DpB,GAAA,CAAC,KAAK,EAAA,EACJ,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,EAAE,EACN,IAAI,EAAC,QAAQ,EACb,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,YAAA,EACX,SAAS,KACjB,KAAK,EAAA,CACT,EACD,SAAS,IAAI,YAAY,KACxBpB,GAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAEoB,QAAM,CAAC,WAAW,EAC7B,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,QAAQ,EAAA,YAAA,EACP,cAAc,EAAA,QAAA,EAEzBpB,IAAC,SAAS,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAA,CAChB,CACV,CAAA,EAAA,CACG,EACL,UAAU,KACTA,GAAA,CAAC,MAAM,EAAA,EACL,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,SAAS,EACjB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAAA,QAAA,EAAA,QAAA,EAAA,CAGX,CACV,CAAA,EAAA,CACI;AAEX,CAAC;AAGH,WAAW,CAAC,WAAW,GAAG,aAAa;;;;ACtHvC;;;AAGG;AACI,MAAM,iBAAiB,GAAG,CAAC,EAChC,IAAI,EACJ,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,SAAS,GAAG,EAAE,GACS,MACvBG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAACiB,QAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,QAAA,EAAA,CAC/D,IAAI,KAAK,KAAK,KACbjB,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACED,IAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,CACEH,GAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAEoB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,yBAAA,EAAA,CAAiC,EACpE,oBAAoB,CAAA,EAAA,CACjB,EACNpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAEpB,GAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAmB,EAAA,CAAM,EACzDA,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAEoB,QAAM,CAAC,eAAe,EAAA,QAAA,EAAA,0CAAA,EAAA,CAA8C,CAAA,EAAA,CACjF,CACJ,EACDjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,UAAU,EAAA,QAAA,EAAA,CAC9B,cAAc,EACd,kBAAkB,EAClB,aAAa,CAAA,EAAA,CACV,EACNjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAC/B,kBAAkB,EAClB,cAAc,CAAA,EAAA,CACX,EACNpB,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAM,UAAU,EAAA,CAAO,CAAA,EAAA,CACnB;;;;ACpBD,MAAM,OAAO,GAA2B,CAAC,EAC9C,OAAO,EACP,KAAK,EACL,QAAQ,EACR,IAAI,GAAG,IAAI,EACX,SAAS,GAAG,KAAK,EACjB,SAAS,GAAG,EAAE,EACd,YAAY,EAAE,SAAS,GACxB,KAAI;AACH,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,GAAGoB,QAAM,CAAC,OAAO,CAAA,CAAA,EAAIA,QAAM,CAAC,IAAI,CAAC,CAAA,CAAA,EAAI,SAAS,GAAGA,QAAM,CAAC,SAAS,GAAG,EAAE,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,EAChG,IAAI,EAAC,YAAY,EAAA,YAAA,EACL,SAAS,EAAA,QAAA,EAEpB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,MAClBjB,IAAA,CAAA,QAAA,EAAA,EAEE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,GAAGiB,QAAM,CAAC,MAAM,CAAA,CAAA,EAAI,KAAK,KAAK,MAAM,CAAC,KAAK,GAAGA,QAAM,CAAC,QAAQ,GAAG,EAAE,CAAA,CAAA,EAAI,MAAM,CAAC,QAAQ,GAAGA,QAAM,CAAC,QAAQ,GAAG,EAAE,CAAA,CAAE,EACxH,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EACzD,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,IAAI,EAAC,OAAO,EAAA,cAAA,EACE,KAAK,KAAK,MAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAEnC,MAAM,CAAC,IAAI,IAAIpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,IAAI,EAAA,QAAA,EAAG,MAAM,CAAC,IAAI,EAAA,CAAQ,EACjE,MAAM,CAAC,KAAK,CAAA,EAAA,EATR,MAAM,CAAC,KAAK,CAUV,CACV,CAAC,EAAA,CACE;AAEV;;;;AC3BA,MAAMI,aAAW,GAAG,OAClBxB,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAC/FA,kBAAU,MAAM,EAAC,gBAAgB,EAAA,CAAG,EAAA,CAChC,CACP;AAED,MAAM,SAAS,GAAG,OAChBA,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAC/FA,kBAAU,MAAM,EAAC,gBAAgB,EAAA,CAAG,EAAA,CAChC,CACP;AAED;;;AAGG;MACU,YAAY,GAAgC,CAAC,EACxD,KAAK,EACL,OAAO,GAAG,EAAE,EACZ,cAAc,GAAG,EAAE,EACnB,KAAK,GAAG,EAAE,EACV,QAAQ,EACR,WAAW,GAAG,KAAK,EACnB,IAAI,GAAG,EAAE,EACT,SAAS,GAAG,KAAK,EACjB,OAAO,GAAG,KAAK,EACf,QAAQ,GAAG,KAAK,EAChB,KAAK,GAAG,GAAG,EACX,SAAS,GAAG,EAAE,GACf,KAAI;IACH,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AAC3C,IAAA,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAS,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACjE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAsB,KAAK,CAAC;AAChF,IAAA,MAAM,WAAW,GAAG,MAAM,CAAiB,IAAI,CAAC;IAEhD,SAAS,CAAC,MAAK;QACb,iBAAiB,CAAC,KAAK,CAAC;AAC1B,IAAA,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAEX,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,kBAAkB,GAAG,CAAC,KAAiB,KAAI;AAC/C,YAAA,IAAI,WAAW,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,EAAE;gBAC9E,SAAS,CAAC,KAAK,CAAC;YAClB;AACF,QAAA,CAAC;AACD,QAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC;QAC1D,OAAO,MAAM,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,CAAC;IAC5E,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,MAAK;AAC9B,QAAA,IAAI,OAAO,IAAI,cAAc,EAAE;YAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,EAA0B,CAAC;QACrG;AACA,QAAA,OAAO,OAAO;IAChB,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAE5C,IAAA,MAAM,cAAc,GAAG,OAAO,CAAC,MAAK;AAClC,QAAA,IAAI,OAAO,IAAI,cAAc,IAAI,SAAS,EAAE;AAC1C,YAAA,OAAO,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE;QACxC;AACA,QAAA,OAAO,OAAO;IAChB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;AAEjD,IAAA,MAAM,YAAY,GAAG,CAAC,WAA4B,KAAI;AACpD,QAAA,IAAI,SAA8B;QAElC,IAAI,WAAW,EAAE;AACf,YAAA,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC,WAAW;AAC7C,kBAAE,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,WAAW;AAC9C,kBAAE,CAAC,GAAG,cAAc,EAAE,WAAW,CAAC;QACtC;aAAO;AACL,YAAA,SAAS,GAAG,CAAC,WAAW,CAAC;YACzB,SAAS,CAAC,KAAK,CAAC;QAClB;QAEA,iBAAiB,CAAC,SAAS,CAAC;AAC5B,QAAA,QAAQ,GAAG,SAAS,CAAC;AACvB,IAAA,CAAC;IAED,MAAM,eAAe,GAAG,MAAK;AAC3B,QAAA,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC;QAClD,iBAAiB,CAAC,SAAS,CAAC;AAC5B,QAAA,QAAQ,GAAG,SAAS,CAAC;AACvB,IAAA,CAAC;IAED,MAAM,WAAW,GAAG,MAAK;QACvB,iBAAiB,CAAC,EAAE,CAAC;AACrB,QAAA,QAAQ,GAAG,EAAE,CAAC;AAChB,IAAA,CAAC;IAED,MAAM,cAAc,GAAG,MAAK;AAC1B,QAAA,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B,OAAO,CAAA,OAAA,EAAU,KAAK,CAAA,CAAE;QAC1B;QACA,IAAI,cAAc,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE;YAC/C,OAAO,CAAA,IAAA,EAAO,KAAK,CAAA,CAAA,CAAG;QACxB;AACA,QAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC7E,QAAA,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;YACxB,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,SAAS,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1E;AACA,QAAA,OAAO,CAAA,EAAG,QAAQ,CAAC,MAAM,WAAW;AACtC,IAAA,CAAC;IAED,QACEG,cAAK,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,CAAA,EAAGiB,QAAM,CAAC,SAAS,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,EAAA,QAAA,EAAA,CAClEjB,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,CAAA,EAAGiB,QAAM,CAAC,OAAO,CAAA,CAAA,EAAI,QAAQ,GAAGA,QAAM,CAAC,QAAQ,GAAG,EAAE,CAAA,CAAA,EAAI,MAAM,GAAGA,QAAM,CAAC,IAAI,GAAG,EAAE,CAAA,CAAE,EAC9F,OAAO,EAAE,MAAM,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC,MAAM,CAAC,EAAA,QAAA,EAAA,CAE9CpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,WAAW,CAAA,CAAA,EAAI,cAAc,CAAC,MAAM,KAAK,CAAC,GAAGA,QAAM,CAAC,WAAW,GAAG,EAAE,EAAE,EAAA,QAAA,EAC9F,cAAc,EAAE,EAAA,CACZ,EACPpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,OAAO,EAAA,QAAA,EAC7BpB,IAACwB,aAAW,EAAA,EAAA,CAAG,GACV,CAAA,EAAA,CACA,EAER,MAAM,KACLrB,cAAK,SAAS,EAAEiB,QAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,aAE9C,OAAO,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,KACzBpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,IAAI,EAAA,QAAA,EACxB,IAAI,CAAC,GAAG,CAAC,GAAG,KACXpB,GAAA,CAAA,QAAA,EAAA,EAEE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,GAAG,IAAI,SAAS,KAAK,GAAG,GAAGA,QAAM,CAAC,SAAS,GAAG,EAAE,CAAA,CAAE,EACvE,OAAO,EAAE,MAAM,YAAY,CAAC,GAAG,CAAC,YAE/B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAA,EALtC,GAAG,CAMD,CACV,CAAC,GACE,CACP,EAGA,WAAW,KACVjB,cAAK,SAAS,EAAEiB,QAAM,CAAC,OAAO,aAC5BpB,GAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAE,OAAO,EAAE,eAAe,2BAElE,EACTpB,GAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,sBAE9D,CAAA,EAAA,CACL,CACP,EAGDpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,OAAO,EAAA,QAAA,EAC3B,cAAc,CAAC,GAAG,CAAC,MAAM,KACxBjB,IAAA,CAAA,KAAA,EAAA,EAEE,SAAS,EAAE,CAAA,EAAGiB,QAAM,CAAC,MAAM,CAAA,CAAA,EAAI,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAGA,QAAM,CAAC,QAAQ,GAAG,EAAE,CAAA,CAAE,EAC7F,OAAO,EAAE,MAAM,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,aAExC,WAAW,KACVpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,QAAQ,YAC7B,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAIpB,GAAA,CAAC,SAAS,KAAG,EAAA,CAClD,CACR,EACDA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAG,MAAM,CAAC,KAAK,EAAA,CAAQ,CAAA,EAAA,EATrD,MAAM,CAAC,KAAK,CAUb,CACP,CAAC,GACE,EAGL,WAAW,KACVpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,MAAM,EAAA,QAAA,EAC3BpB,GAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAEoB,QAAM,CAAC,QAAQ,EAC1B,OAAO,EAAE,MAAM,SAAS,CAAC,KAAK,CAAC,EAAA,QAAA,EAAA,OAAA,EAAA,CAGxB,EAAA,CACL,CACP,CAAA,EAAA,CACG,CACP,CAAA,EAAA,CACG;AAEV;AAEA,YAAY,CAAC,WAAW,GAAG,cAAc;;;;AC7KzC;;;AAGG;AACI,MAAM,aAAa,GAAiC,CAAC,EAC1D,KAAK,EACL,IAAI,EACJ,SAAS,GAAG,IAAI,EAChB,OAAO,GAAG,KAAK,EACf,QAAQ,EACR,OAAO,EACP,QAAQ,GAAG,KAAK,GACjB,KAAI;AACH,IAAA,MAAM,WAAW,GAAG,CAAC,SAAS,IAAI,OAAO;IAEzC,MAAM,WAAW,GAAG,MAAK;AACvB,QAAA,IAAI,WAAW,IAAI,OAAO,EAAE;AAC1B,YAAA,OAAO,EAAE;QACX;AACF,IAAA,CAAC;AAED,IAAA,QACEjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,IAAI,EAAA,QAAA,EAAA,CACzBjB,IAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,CAAA,EAAGiB,QAAM,CAAC,cAAc,IAAI,WAAW,GAAGA,QAAM,CAAC,SAAS,GAAG,EAAE,EAAE,EAC5E,OAAO,EAAE,WAAW,EAAA,QAAA,EAAA,CAEnB,IAAI,IAAIpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,IAAI,EAAA,QAAA,EAAG,IAAI,EAAA,CAAQ,EACpDpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAG,KAAK,GAAQ,CAAA,EAAA,CACzC,EACL,SAAS,KACRpB,IAAC,MAAM,EAAA,EACL,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,CAAC,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,EAC1C,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,IAAI,GACT,CACH,CAAA,EAAA,CACG;AAEV;AAEA;;;AAGG;AACI,MAAM,iBAAiB,GAAqC,CAAC,EAClE,QAAQ,EACR,eAAe,GAAG,EAAE,EACpB,QAAQ,EACR,OAAO,EACP,SAAS,GACV,KAAI;IACH,QACEA,aAAK,SAAS,EAAE,GAAGoB,QAAM,CAAC,IAAI,CAAA,CAAA,EAAI,SAAS,IAAI,EAAE,CAAA,CAAE,EAAA,QAAA,EAChD,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,MACpBpB,IAAC,aAAa,EAAA,EAEZ,UAAU,EAAE,OAAO,CAAC,GAAG,EACvB,KAAK,EAAE,OAAO,CAAC,KAAK,EACpB,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,SAAS,EAAE,OAAO,CAAC,SAAS,EAC5B,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,EAC9C,QAAQ,EAAE,CAAC,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,EACvD,OAAO,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,EAAA,EAPhC,OAAO,CAAC,GAAG,CAQhB,CACH,CAAC,EAAA,CACE;AAEV;AAEA,aAAa,CAAC,WAAW,GAAG,eAAe;AAC3C,iBAAiB,CAAC,WAAW,GAAG,mBAAmB;;;;AClH5C,MAAM,qBAAqB,GAAuD;AACvF,IAAA,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;AAC5B,IAAA,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;AAC5B,IAAA,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE;;AAGhC,MAAM,OAAO,GAA4D;AACvE,IAAA,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;AAC3B,IAAA,GAAG,qBAAqB;CACzB;MAUY,kBAAkB,GAAG,CAAC,EACjC,KAAK,EACL,YAAY,GAAG,EAAE,EACjB,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,SAAS,GAAG,EAAE,GACU,KAAI;IAC5B,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAyB,YAAY,CAAC;AACxF,IAAA,MAAM,WAAW,GAAG,KAAK,IAAI,aAAa;AAE1C,IAAA,MAAM,YAAY,GAAG,CAAC,SAAiC,KAAI;AACzD,QAAA,IAAI,QAAQ;YAAE;QACd,IAAI,KAAK,KAAK,SAAS;YAAE,gBAAgB,CAAC,SAAS,CAAC;AACpD,QAAA,QAAQ,GAAG,SAAS,CAAC;AACvB,IAAA,CAAC;IAED,QACEA,aAAK,SAAS,EAAE,CAACoB,QAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAC,OAAO,EAAA,YAAA,EAAY,eAAe,EAAA,QAAA,EAC1G,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,MAClBpB,gBAEE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,QAAQ,EAAA,cAAA,EACJ,WAAW,KAAK,MAAM,CAAC,KAAK,EAC1C,SAAS,EAAE,WAAW,KAAK,MAAM,CAAC,KAAK,GAAGoB,QAAM,CAAC,MAAM,GAAG,EAAE,EAC5D,OAAO,EAAE,MAAM,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAA,QAAA,EAExC,MAAM,CAAC,KAAK,IAPR,MAAM,CAAC,KAAK,IAAI,KAAK,CAQnB,CACV,CAAC,EAAA,CACE;AAEV;;;;AClCA,MAAM,QAAQ,GAAG,OACfjB,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAA,CAAE,EACtCA,GAAA,CAAA,UAAA,EAAA,EAAU,MAAM,EAAC,iBAAiB,EAAA,CAAE,CAAA,EAAA,CAChC,CACP;AAED;;AAEG;AACI,MAAM,UAAU,GAAG,CAAC,EACzB,KAAK,EAAE,aAAa,EACpB,QAAQ,EACR,QAAQ,EACR,QAAQ,GAAG,iBAAiB,EAC5B,QAAQ,EACR,MAAM,EACN,OAAO,EACP,SAAS,GAAG,EAAE,GACE,KAAI;AACpB,IAAA,MAAM,aAAa,GAAG;AACpB,QAAAoB,QAAM,CAAC,MAAM;QACb,SAAS;KACV,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAE3B,IAAA,MAAM,KAAK,GAAG,aAAa,KAAK,QAAQ,IAAI;AAC1C,UAAE,CAAA,EAAG,QAAQ,CAAA,GAAA,EAAM,QAAQ,CAAA;AAC3B,UAAE,QAAQ,IAAI,QAAQ,IAAI,EAAE,CAAC;IAE/B,MAAM,UAAU,GAAG,MAAK;QACtB,IAAI,MAAM,EAAE;AACV,YAAA,MAAM,EAAE;QACV;aAAO,IAAI,QAAQ,EAAE;;AAEnB,YAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,QAAQ;QACjC;AACF,IAAA,CAAC;AAED,IAAA,QACEjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,aAAa,EAAA,QAAA,EAAA,CAC3BA,cAAK,SAAS,EAAEiB,QAAM,CAAC,IAAI,aACxB,CAAC,QAAQ,IAAI,MAAM,MAClBpB,GAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAEoB,QAAM,CAAC,UAAU,EAC5B,OAAO,EAAE,UAAU,EAAA,YAAA,EACR,SAAS,EAAA,QAAA,EAEpBpB,GAAA,CAAC,QAAQ,EAAA,EAAA,CAAG,EAAA,CACL,CACV,EACDG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,MAAM,aAC1B,QAAQ,IAAIpB,cAAM,SAAS,EAAEoB,QAAM,CAAC,QAAQ,YAAG,QAAQ,EAAA,CAAQ,EAChEjB,IAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAAG,KAAK,cAAY,CAAA,EAAA,CAC3C,CAAA,EAAA,CACF,EACL,OAAO,KACNpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,OAAO,EAAA,QAAA,EAC3B,OAAO,GACJ,CACP,CAAA,EAAA,CACG;AAEV;AAcA,MAAMK,cAAY,GAAqB;AACrC,IAAA,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;AACnC,IAAA,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;AACjC,IAAA,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;AACvC,IAAA,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;CAC5C;AAED;AACO,MAAM,WAAW,GAAG,CAAC,EAAE,IAAI,GAAGA,cAAY,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,GAAG,EAAE,EAAoB,MAC3GzB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAACoB,QAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,YAAA,EAAa,0BAA0B,EAAA,QAAA,EACzG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MACZpB,GAAA,CAAA,QAAA,EAAA,EAEE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,SAAS,KAAK,GAAG,CAAC,EAAE,GAAGoB,QAAM,CAAC,SAAS,GAAG,EAAE,EAAA,cAAA,EACzC,SAAS,KAAK,GAAG,CAAC,EAAE,GAAG,MAAM,GAAG,SAAS,EACvD,OAAO,EAAE,MAAM,WAAW,GAAG,GAAG,CAAC,EAAE,CAAC,EAAA,QAAA,EAEnC,GAAG,CAAC,KAAK,EAAA,EANL,GAAG,CAAC,EAAE,CAOJ,CACV,CAAC,EAAA,CACE;AAGR,UAAU,CAAC,WAAW,GAAG,YAAY;AACrC,WAAW,CAAC,WAAW,GAAG,aAAa;;;;AC1DvC,MAAMnB,WAAS,GAAG,OAChBD,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAC/FA,cAAM,CAAC,EAAC,qGAAqG,EAAA,CAAE,EAAA,CAC3G,CACP;AAED,MAAMM,SAAO,GAAG,OACdH,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,cAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAA,CAAE,EACjDA,cAAM,CAAC,EAAC,QAAQ,EAAA,CAAE,EAClBA,cAAM,CAAC,EAAC,SAAS,EAAA,CAAE,EACnBA,gBAAQ,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,GAAE,EAC9BA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAA,CAAE,CAAA,EAAA,CAC3B,CACP;AAED,MAAMK,WAAS,GAAG,OAChBF,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,cAAM,CAAC,EAAC,UAAU,EAAA,CAAE,EACpBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,2CAA2C,EAAA,CAAE,EACrDA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,0CAA0C,EAAA,CAAE,CAAA,EAAA,CAChD,CACP;AAED,MAAM,SAAS,GAAG,OAChBG,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAA,CAAE,EACtCA,GAAA,CAAA,UAAA,EAAA,EAAU,MAAM,EAAC,kBAAkB,EAAA,CAAE,CAAA,EAAA,CACjC,CACP;AAED;;AAEG;MACU,WAAW,GAA+B,CAAC,EACtD,IAAI,EAAE,KAAK,EACX,OAAO,GAAG,OAAO,EACjB,SAAS,GAAG,EAAE,EACd,QAAQ,GACT,KAAI;IACH,QACEA,aAAK,SAAS,EAAE,GAAGoB,QAAM,CAAC,OAAO,CAAA,CAAA,EAAIA,QAAM,CAAC,OAAO,CAAC,IAAI,SAAS,CAAA,CAAE,YAChE,QAAQ,EAAA,CACL;AAEV;AAEA;;AAEG;AACI,MAAM,UAAU,GAA8B,CAAC,EACpD,OAAO,EACP,OAAO,GAAG,OAAO,EACjB,SAAS,GAAG,EAAE,GACf,KAAI;IACH,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACpC,QACEpB,GAAA,CAAC,WAAW,EAAA,EAAC,IAAI,EAAC,KAAK,EAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAA,QAAA,EAC5DA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,YAAA,EAAA,CAAmB,EAAA,CACpC;IAElB;AAEA,IAAA,QACEpB,GAAA,CAAC,WAAW,EAAA,EAAC,IAAI,EAAC,KAAK,EAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAA,QAAA,EAC3D,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MACrBG,IAAA,CAAA,KAAA,EAAA,EAAa,SAAS,EAAEiB,QAAM,CAAC,IAAI,aACjCjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,UAAU,EAAA,QAAA,EAAA,CAC/BpB,IAACC,WAAS,EAAA,EAAA,CAAG,EACbD,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,QAAQ,YAC7B,MAAM,CAAC,IAAI,KAAK,SAAS,GAAG,SAAS,GAAG,YAAY,EAAA,CAChD,CAAA,EAAA,CACH,EACNjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAC1BpB,cAAM,SAAS,EAAEoB,QAAM,CAAC,QAAQ,EAAA,QAAA,EAAG,MAAM,CAAC,SAAS,EAAA,CAAQ,EAC3DpB,GAAA,CAAC,SAAS,EAAA,EAAA,CAAG,EACbA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,QAAQ,EAAA,QAAA,EAAG,MAAM,CAAC,OAAO,EAAA,CAAQ,CAAA,EAAA,CACrD,EACNjB,cAAK,SAAS,EAAEiB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CAC5BpB,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,MAAM,CAAC,aAAa,EAAA,CAAQ,EAClC,MAAM,CAAC,aAAa,IAAIA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,MAAM,CAAC,aAAa,GAAQ,CAAA,EAAA,CACxD,EACL,MAAM,CAAC,OAAO,KACbG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CAC5BpB,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,MAAM,CAAC,OAAO,EAAA,CAAQ,EAC5B,MAAM,CAAC,YAAY,IAAIG,IAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,GAAA,EAAQ,MAAM,CAAC,YAAY,CAAA,EAAA,CAAQ,CAAA,EAAA,CACvD,CACP,KArBO,CAAC,CAsBL,CACP,CAAC,EAAA,CACU;AAElB;AAEA;;AAEG;AACI,MAAM,aAAa,GAAiC,CAAC,EAC1D,QAAQ,EACR,OAAO,GAAG,OAAO,EACjB,SAAS,GAAG,EAAE,GACf,KAAI;IACH,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QACtC,QACEH,GAAA,CAAC,WAAW,EAAA,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAA,QAAA,EAC/DA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,0BAAA,EAAA,CAAiC,EAAA,CAClD;IAElB;AAEA,IAAA,QACEpB,GAAA,CAAC,WAAW,IAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAA,QAAA,EAC9D,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,MACvBG,cAAa,SAAS,EAAEiB,QAAM,CAAC,IAAI,EAAA,QAAA,EAAA,CACjCjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,UAAU,EAAA,QAAA,EAAA,CAC/BpB,GAAA,CAACM,SAAO,KAAG,EACXN,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,QAAQ,EAAA,QAAA,EAC7B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAA,CACxD,CAAA,EAAA,CACH,EACNjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAC1BpB,cAAM,SAAS,EAAEoB,QAAM,CAAC,QAAQ,EAAA,QAAA,EAAG,OAAO,CAAC,cAAc,EAAA,CAAQ,EACjEpB,GAAA,CAAC,SAAS,EAAA,EAAA,CAAG,EACbA,cAAM,SAAS,EAAEoB,QAAM,CAAC,QAAQ,YAAG,OAAO,CAAC,eAAe,EAAA,CAAQ,IAC9D,EACNjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CAC5BpB,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,OAAO,CAAC,UAAU,EAAA,CAAQ,EAChC,OAAO,CAAC,UAAU,IAAIA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,OAAO,CAAC,UAAU,EAAA,CAAQ,CAAA,EAAA,CACpD,EACL,OAAO,CAAC,OAAO,KACdG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CAC5BpB,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,OAAO,CAAC,OAAO,EAAA,CAAQ,EAC7B,OAAO,CAAC,YAAY,IAAIG,IAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAO,OAAO,CAAC,YAAY,EAAA,WAAA,CAAA,EAAA,CAAiB,CAAA,EAAA,CACjE,CACP,KArBO,CAAC,CAsBL,CACP,CAAC,EAAA,CACU;AAElB;AAEA;;AAEG;AACI,MAAM,YAAY,GAAgC,CAAC,EACxD,MAAM,EACN,OAAO,GAAG,OAAO,EACjB,SAAS,GAAG,EAAE,GACf,KAAI;IACH,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAClC,QACEH,GAAA,CAAC,WAAW,EAAA,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAA,QAAA,EAC9DA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,WAAA,EAAA,CAAkB,EAAA,CACnC;IAElB;AAEA,IAAA,QACEpB,GAAA,CAAC,WAAW,EAAA,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAA,QAAA,EAC7D,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,MACnBG,IAAA,CAAA,KAAA,EAAA,EAAa,SAAS,EAAEiB,QAAM,CAAC,IAAI,EAAA,QAAA,EAAA,CACjCjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,UAAU,EAAA,QAAA,EAAA,CAC/BpB,GAAA,CAACK,WAAS,EAAA,EAAA,CAAG,EACbL,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,QAAQ,EAAA,QAAA,EAAG,KAAK,CAAC,IAAI,EAAA,CAAQ,CAAA,EAAA,CACjD,EACL,KAAK,CAAC,IAAI,KACTpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,OAAO,EAAA,QAAA,EAC5BpB,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,KAAK,CAAC,IAAI,EAAA,CAAQ,EAAA,CACrB,CACP,EACDG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAC1BpB,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,KAAK,CAAC,OAAO,EAAA,CAAQ,EAC5BA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,QAAA,EAAA,CAAc,EACdA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,KAAK,CAAC,QAAQ,EAAA,CAAQ,CAAA,EAAA,CACzB,EACL,KAAK,CAAC,SAAS,KACdA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,OAAO,EAAA,QAAA,EAC5BjB,IAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAO,KAAK,CAAC,SAAS,EAAA,QAAA,CAAA,EAAA,CAAc,EAAA,CAChC,CACP,CAAA,EAAA,EAnBO,CAAC,CAoBL,CACP,CAAC,EAAA,CACU;AAElB;AAEA,WAAW,CAAC,WAAW,GAAG,aAAa;AACvC,UAAU,CAAC,WAAW,GAAG,YAAY;AACrC,aAAa,CAAC,WAAW,GAAG,eAAe;AAC3C,YAAY,CAAC,WAAW,GAAG,cAAc;;;;AC7NzC;;;AAGG;AACI,MAAM,OAAO,GAA2B,CAAC,EAC9C,IAAI,EACJ,aAAa,EACb,KAAK,EACL,SAAS,EACT,WAAW,EACX,eAAe,GAAG,IAAI,EACtB,MAAM,EACN,SAAS,GAAG,EAAE,EACd,GAAG,KAAK,EACT,KAAI;IACH,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC;AAEzD,IAAA,MAAM,UAAU,GAAG;AACjB,QAAAiB,QAAM,CAAC,OAAO;QACd,QAAQ,GAAGA,QAAM,CAAC,QAAQ,GAAGA,QAAM,CAAC,SAAS;QAC7C,SAAS;AACV;SACE,MAAM,CAAC,OAAO;SACd,IAAI,CAAC,GAAG,CAAC;AAEZ,IAAA,MAAM,eAAe,GAAG,CAAC,IAAiB,KAAI;AAC5C,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,OAAO,EAAE;QAChB;QACA,IAAI,WAAW,EAAE;AACf,YAAA,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;QACvB;AACF,IAAA,CAAC;IAED,QACEjB,gBAAO,SAAS,EAAE,UAAU,EAAA,GAAM,KAAK,aACrCH,GAAA,CAAA,QAAA,EAAA,EACE,SAAS,EAAEoB,QAAM,CAAC,MAAM,EACxB,OAAO,EAAE,MAAM,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAA,YAAA,EACzB,QAAQ,GAAG,kBAAkB,GAAG,gBAAgB,YAE3D,QAAQ,IACPpB,IAAC,eAAe,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,KAE7BA,GAAA,CAACS,kBAAgB,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,CAC/B,EAAA,CACM,EAETT,aAAK,SAAS,EAAEoB,QAAM,CAAC,aAAa,EAAA,QAAA,EACjC,QAAQ,GAAG,IAAI,GAAG,aAAa,IAAI,IAAI,EAAA,CACpC,EAENpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,GAAG,YACvB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AAClB,oBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,KAAK,SAAS;AACvC,oBAAA,MAAM,WAAW,GAAG;AAClB,wBAAAA,QAAM,CAAC,OAAO;wBACd,QAAQ,GAAGA,QAAM,CAAC,MAAM,GAAG,EAAE;AAC9B;yBACE,MAAM,CAAC,OAAO;yBACd,IAAI,CAAC,GAAG,CAAC;AAEZ,oBAAA,QACEjB,IAAA,CAAA,QAAA,EAAA,EAEE,SAAS,EAAE,WAAW,EACtB,OAAO,EAAE,MAAM,eAAe,CAAC,IAAI,CAAC,EAAA,cAAA,EACtB,QAAQ,GAAG,MAAM,GAAG,SAAS,EAC3C,KAAK,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,SAAS,EAAA,QAAA,EAAA,CAEzCH,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,IAAI,YAAG,IAAI,CAAC,IAAI,EAAA,CAAQ,EAC/C,QAAQ,IAAIpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,KAAK,YAAG,IAAI,CAAC,KAAK,EAAA,CAAQ,KAP1D,IAAI,CAAC,GAAG,CAQN;AAEb,gBAAA,CAAC,CAAC,EAAA,CACE,EAEL,MAAM,IAAIpB,aAAK,SAAS,EAAEoB,QAAM,CAAC,MAAM,EAAA,QAAA,EAAG,MAAM,EAAA,CAAO,CAAA,EAAA,CAClD;AAEZ;AAEA,OAAO,CAAC,WAAW,GAAG,SAAS;;;;AC1F/B;;;AAGG;AACI,MAAM,MAAM,GAA0B,CAAC,EAC5C,OAAO,EACP,QAAQ,EACR,eAAe,EACf,cAAc,EACd,OAAO,EACP,WAAW,EACX,SAAS,GAAG,EAAE,EACd,GAAG,KAAK,EACT,KAAI;IACH,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC3C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;AAClD,IAAA,MAAM,WAAW,GAAG,MAAM,CAAiB,IAAI,CAAC;AAChD,IAAA,MAAM,cAAc,GAAG,MAAM,CAAmB,IAAI,CAAC;AAErD,IAAA,MAAM,UAAU,GAAG,CAACA,QAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;IAGvE,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,MAAM;YAAE;AAEb,QAAA,MAAM,kBAAkB,GAAG,CAAC,KAAiB,KAAI;AAC/C,YAAA,IAAI,WAAW,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,EAAE;gBAC9E,SAAS,CAAC,KAAK,CAAC;gBAChB,cAAc,CAAC,EAAE,CAAC;YACpB;AACF,QAAA,CAAC;AAED,QAAA,MAAM,YAAY,GAAG,CAAC,KAAoB,KAAI;AAC5C,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;gBAC1B,SAAS,CAAC,KAAK,CAAC;gBAChB,cAAc,CAAC,EAAE,CAAC;YACpB;AACF,QAAA,CAAC;AAED,QAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC;AAC1D,QAAA,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC;AAElD,QAAA,OAAO,MAAK;AACV,YAAA,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,CAAC;AAC7D,YAAA,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC;AACvD,QAAA,CAAC;AACH,IAAA,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;;IAGZ,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,MAAM,IAAI,cAAc,CAAC,OAAO,EAAE;AACpC,YAAA,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE;QAChC;AACF,IAAA,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAEZ,MAAM,YAAY,GAAG,MAAK;QACxB,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACnC,YAAA,SAAS,CAAC,CAAC,MAAM,CAAC;YAClB,IAAI,CAAC,MAAM,EAAE;gBACX,cAAc,CAAC,EAAE,CAAC;YACpB;QACF;aAAO,IAAI,cAAc,EAAE;AACzB,YAAA,cAAc,EAAE;QAClB;AACF,IAAA,CAAC;AAED,IAAA,MAAM,mBAAmB,GAAG,CAAC,eAA4B,KAAI;AAC3D,QAAA,eAAe,GAAG,eAAe,CAAC;QAClC,SAAS,CAAC,KAAK,CAAC;QAChB,cAAc,CAAC,EAAE,CAAC;AACpB,IAAA,CAAC;IAED,MAAM,gBAAgB,GAAG,QAAQ,EAAE,MAAM,CAAC,GAAG,IAC3C,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;AAC1D,QAAA,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAC3D,IAAI,EAAE;IAEP,MAAM,WAAW,GAAG,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;IAEnD,QACEjB,iBAAQ,SAAS,EAAE,UAAU,EAAA,GAAM,KAAK,aACtCA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,IAAI,EAAA,QAAA,EAAA,CACxB,WAAW,EACX,OAAO,KACNjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,cAAc,EAAE,GAAG,EAAE,WAAW,EAAA,QAAA,EAAA,CACrDjB,iBACE,SAAS,EAAE,GAAGiB,QAAM,CAAC,eAAe,CAAA,CAAA,EAAI,MAAM,GAAGA,QAAM,CAAC,IAAI,GAAG,EAAE,EAAE,EACnE,OAAO,EAAE,YAAY,EAAA,eAAA,EACN,MAAM,EAAA,eAAA,EACN,WAAW,GAAG,SAAS,GAAG,SAAS,EAAA,QAAA,EAAA,CAElDpB,cAAM,SAAS,EAAEoB,QAAM,CAAC,WAAW,YAAG,OAAO,CAAC,IAAI,EAAA,CAAQ,EAC1DpB,cAAM,SAAS,EAAEoB,QAAM,CAAC,WAAW,YAAG,OAAO,CAAC,IAAI,EAAA,CAAQ,EACzD,WAAW,KACVpB,GAAA,CAACQ,iBAAe,EAAA,EACd,IAAI,EAAE,EAAE,EACR,SAAS,EAAE,CAAA,EAAGY,QAAM,CAAC,OAAO,IAAI,MAAM,GAAGA,QAAM,CAAC,WAAW,GAAG,EAAE,EAAE,EAAA,CAClE,CACH,IACM,EAER,MAAM,IAAI,WAAW,KACpBjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,QAAQ,EAAE,IAAI,EAAC,SAAS,EAAA,QAAA,EAAA,CAC7CjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,cAAc,EAAA,QAAA,EAAA,CACnCjB,cACE,SAAS,EAAEiB,QAAM,CAAC,UAAU,EAC5B,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAEfpB,gBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAA,CAAG,EAChCA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,OAAO,EAAC,EAAE,EAAC,OAAO,EAAA,CAAG,IAC1C,EACNA,GAAA,CAAA,OAAA,EAAA,EACE,GAAG,EAAE,cAAc,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC/C,WAAW,EAAC,oBAAoB,EAChC,SAAS,EAAEoB,QAAM,CAAC,WAAW,GAC7B,CAAA,EAAA,CACE,EACNpB,aAAK,SAAS,EAAEoB,QAAM,CAAC,YAAY,YAChC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAC1B,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,MACvBjB,IAAA,CAAA,QAAA,EAAA,EAEE,SAAS,EAAE,CAAA,EAAGiB,QAAM,CAAC,YAAY,CAAA,CAAA,EAAI,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,GAAGA,QAAM,CAAC,QAAQ,GAAG,EAAE,CAAA,CAAE,EACvF,OAAO,EAAE,MAAM,mBAAmB,CAAC,GAAG,CAAC,EACvC,IAAI,EAAC,QAAQ,EAAA,eAAA,EACE,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,aAExCpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,gBAAgB,EAAA,QAAA,EAAG,GAAG,CAAC,IAAI,EAAA,CAAQ,EAC3DpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,gBAAgB,YAAG,GAAG,CAAC,IAAI,EAAA,CAAQ,CAAA,EAAA,EAPtD,GAAG,CAAC,IAAI,CAQN,CACV,CAAC,KAEFpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAA,QAAA,EAAA,mBAAA,EAAA,CAAyB,CAC1D,GACG,CAAA,EAAA,CACF,CACP,IACG,CACP,CAAA,EAAA,CACG,EACL,OAAO,IAAIpB,aAAK,SAAS,EAAEoB,QAAM,CAAC,OAAO,YAAG,OAAO,EAAA,CAAO,CAAA,EAAA,CACpD;AAEb;AAEA,MAAM,CAAC,WAAW,GAAG,QAAQ;;;;ACnJtB,MAAM,SAAS,GAA6B,CAAC,EAClD,QAAQ,GAAG,EAAE,EACb,YAAY,EACZ,IAAI,EACJ,aAAa,EACb,OAAO,EACP,eAAe,GAAG,IAAI,EACtB,cAAc,EACd,cAAc,EACd,QAAQ,EACR,SAAS,EACT,aAAa,EACb,SAAS,GACV,KAAI;AACH,IAAA,QACEjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAA,EAAGiB,QAAM,CAAC,SAAS,CAAA,CAAA,EAAI,SAAS,IAAI,EAAE,CAAA,CAAE,aACtDpB,GAAA,CAAC,OAAO,IACN,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,YAAY,EACvB,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,cAAc,EAC3B,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,SAAS,EAAA,CACjB,EACFG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,QAAQ,aAC7BpB,GAAA,CAAC,MAAM,IACL,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,aAAa,EAAA,CACtB,EACFA,cAAM,SAAS,EAAEoB,QAAM,CAAC,OAAO,EAAA,QAAA,EAC5B,QAAQ,GACJ,CAAA,EAAA,CACH,CAAA,EAAA,CACF;AAEV;;;;ACtDA;;AAEG;AACI,MAAM,IAAI,GAAG,UAAU,CAC5B,CACE,EACE,OAAO,GAAG,SAAS,EACnB,OAAO,GAAG,IAAI,EACd,WAAW,GAAG,KAAK,EACnB,SAAS,GAAG,EAAE,EACd,QAAQ,EACR,GAAG,KAAK,EACT,EACD,GAAG,KACD;AACF,IAAA,MAAM,UAAU,GAAG;AACjB,QAAAA,QAAM,CAAC,IAAI;QACXA,QAAM,CAAC,OAAO,CAAC;AACf,QAAAA,QAAM,CAAC,CAAA,QAAA,EAAW,OAAO,CAAA,CAAE,CAAC;QAC5B,WAAW,GAAGA,QAAM,CAAC,WAAW,GAAG,EAAE;QACrC,SAAS;AACV;SACE,MAAM,CAAC,OAAO;SACd,IAAI,CAAC,GAAG,CAAC;AAEZ,IAAA,QACEpB,GAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,KAAM,KAAK,EAAA,QAAA,EAC5C,QAAQ,EAAA,CACL;AAEV,CAAC;AAGH,IAAI,CAAC,WAAW,GAAG,MAAM;MAWZ,UAAU,GAA8B,CAAC,EACpD,KAAK,EACL,QAAQ,EACR,OAAO,EACP,SAAS,GAAG,EAAE,EACd,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,UAAU,GAAG,CAACoB,QAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IAEvE,QACEjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,UAAU,KAAM,KAAK,EAAA,QAAA,EAAA,CACnCA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,aAAa,EAAA,QAAA,EAAA,CACjC,KAAK,IAAIpB,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAG,KAAK,EAAA,CAAM,EAClD,QAAQ,IAAIpB,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAEoB,QAAM,CAAC,QAAQ,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAK,EACzD,QAAQ,CAAA,EAAA,CACL,EACL,OAAO,IAAIpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAG,OAAO,EAAA,CAAO,CAAA,EAAA,CACvD;AAEV;AAEA,UAAU,CAAC,WAAW,GAAG,YAAY;AAI9B,MAAM,QAAQ,GAA4B,CAAC,EAChD,SAAS,GAAG,EAAE,EACd,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,UAAU,GAAG,CAACA,QAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IAErE,QACEpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,UAAU,EAAA,GAAM,KAAK,EAAA,QAAA,EAClC,QAAQ,EAAA,CACL;AAEV;AAEA,QAAQ,CAAC,WAAW,GAAG,UAAU;AAI1B,MAAM,UAAU,GAA8B,CAAC,EACpD,SAAS,GAAG,EAAE,EACd,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;AACH,IAAA,MAAM,UAAU,GAAG,CAACoB,QAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IAEvE,QACEpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,UAAU,EAAA,GAAM,KAAK,EAAA,QAAA,EAClC,QAAQ,EAAA,CACL;AAEV;AAEA,UAAU,CAAC,WAAW,GAAG,YAAY;;;;AC1ErC,MAAM,QAAQ,GAAG,OACfG,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,GAAE,EAChCA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAA,CAAE,EACvCA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,OAAO,EAAC,EAAE,EAAC,GAAG,EAAA,CAAE,CAAA,EAAA,CACpC,CACP;AAED,MAAMiB,UAAQ,GAAG,OACfd,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,cAAM,CAAC,EAAC,4DAA4D,EAAA,CAAE,EACtEA,cAAM,CAAC,EAAC,yDAAyD,EAAA,CAAE,CAAA,EAAA,CAC/D,CACP;AAED,MAAMmB,WAAS,GAAG,OAChBhB,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,kBAAU,MAAM,EAAC,cAAc,EAAA,CAAE,EACjCA,cAAM,CAAC,EAAC,gFAAgF,EAAA,CAAE,CAAA,EAAA,CACtF,CACP;AAED,MAAMe,UAAQ,GAAG,OACfZ,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,cAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAA,CAAE,EACtCA,cAAM,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAA,CAAE,CAAA,EAAA,CAClC,CACP;AAED;;AAEG;AACI,MAAM,WAAW,GAAG,CAAC,EAC1B,KAAK,GAAG,UAAU,EAClB,OAAO,EACP,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,KAAK,EACL,OAAO,GAAG,IAAI,EACd,QAAQ,GAAG,aAAa,EACxB,KAAK,EACL,SAAS,GAAG,EAAE,GACG,KAAI;AACrB,IAAA,MAAM,WAAW,GAAG;AAClB,QAAAoB,QAAM,CAAC,SAAS;QAChB,SAAS;KACV,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAE3B,IAAA,QACEjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,WAAW,EAAA,QAAA,EAAA,CACxB,KAAK,KACJH,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EACzB,KAAK,GACF,CACP,EAEDjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,IAAI,EAAA,QAAA,EAAA,CACzBpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,MAAM,EAAA,QAAA,EAC3BjB,cAAK,SAAS,EAAEiB,QAAM,CAAC,QAAQ,aAC7BpB,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAG,KAAK,EAAA,CAAM,EACxC,OAAO,KACNpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,OAAO,EAAA,QAAA,EAC7BpB,GAAA,CAAC,QAAQ,EAAA,EAAA,CAAG,EAAA,CACP,CACR,CAAA,EAAA,CACG,GACF,EAENG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,IAAI,EAAA,QAAA,EAAA,CACxB,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,MACpBjB,IAAA,CAAA,KAAA,EAAA,EAAsB,SAAS,EAAEiB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CACjDjB,cAAK,SAAS,EAAEiB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAChCjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAC/B,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,SAAS,KAChBpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,SAAA,EAAA,CAAgB,CAC9C,EACA,OAAO,CAAC,WAAW,KAClBpB,cAAM,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,KAAK,CAAA,CAAA,EAAIA,QAAM,CAAC,cAAc,EAAE,EAAA,QAAA,EAAA,WAAA,EAAA,CAAkB,CAC9E,CAAA,EAAA,CACG,EACL,OAAO,CAAC,IAAI,KACXpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,WAAW,YAAG,OAAO,CAAC,IAAI,EAAA,CAAO,CACzD,EACDjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,cAAc,EAAA,QAAA,EAAA,CAClC,OAAO,CAAC,KAAK,KACZpB,GAAA,CAAA,GAAA,EAAA,EAAG,IAAI,EAAE,CAAA,OAAA,EAAU,OAAO,CAAC,KAAK,EAAE,EAAE,SAAS,EAAEoB,QAAM,CAAC,WAAW,EAAA,QAAA,EAC9D,OAAO,CAAC,KAAK,GACZ,CACL,EACA,OAAO,CAAC,KAAK,KACZpB,cAAM,SAAS,EAAEoB,QAAM,CAAC,YAAY,YAAG,OAAO,CAAC,KAAK,EAAA,CAAQ,CAC7D,IACG,CAAA,EAAA,CACF,EACNjB,cAAK,SAAS,EAAEiB,QAAM,CAAC,cAAc,EAAA,QAAA,EAAA,CAClC,MAAM,KACLpB,GAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAEoB,QAAM,CAAC,YAAY,EAC9B,OAAO,EAAE,MAAM,MAAM,CAAC,OAAO,CAAC,gBACnB,cAAc,EAAA,QAAA,EAEzBpB,IAACiB,UAAQ,EAAA,EAAA,CAAG,GACL,CACV,EACA,QAAQ,KACPjB,gBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,YAAY,IAAIA,QAAM,CAAC,kBAAkB,CAAA,CAAE,EAChE,OAAO,EAAE,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAA,YAAA,EACrB,gBAAgB,YAE3BpB,GAAA,CAACmB,WAAS,EAAA,EAAA,CAAG,EAAA,CACN,CACV,CAAA,EAAA,CACG,CAAA,EAAA,EA9CE,OAAO,CAAC,EAAE,CA+Cd,CACP,CAAC,EAED,QAAQ,CAAC,MAAM,KAAK,CAAC,KACpBnB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,KAAK,kCAAyB,CACtD,CAAA,EAAA,CACG,EAEL,OAAO,IAAI,KAAK,KACfpB,aAAK,SAAS,EAAEoB,QAAM,CAAC,MAAM,YAC3BjB,IAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAEiB,QAAM,CAAC,SAAS,EAC3B,OAAO,EAAE,KAAK,EAAA,QAAA,EAAA,CAEdpB,GAAA,CAACe,UAAQ,EAAA,EAAA,CAAG,EACX,QAAQ,CAAA,EAAA,CACF,EAAA,CACL,CACP,CAAA,EAAA,CACG,CAAA,EAAA,CACF;AAEV;AAEA,WAAW,CAAC,WAAW,GAAG,aAAa;;;;ACpIhC,MAAM,YAAY,GAAgC,CAAC,EACxD,KAAK,EACL,QAAQ,EACR,SAAS,GAAG,IAAI,EAChB,OAAO,EACP,SAAS,GAAG,EAAE,GACf,MACCZ,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAA,EAAGiB,QAAM,CAAC,MAAM,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,EAAA,QAAA,EAAA,CAC7CjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,aAAa,EAAA,QAAA,EAAA,CACjC,KAAK,IAAIpB,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAG,KAAK,EAAA,CAAM,EAClD,QAAQ,CAAA,EAAA,CACL,EACL,SAAS,KACRpB,gBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAEoB,QAAM,CAAC,WAAW,EAC7B,OAAO,EAAE,OAAO,EAAA,YAAA,EACL,cAAc,EAAA,QAAA,EAEzBpB,GAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,OAAO,EAAC,WAAW,EAAA,QAAA,EAEnBA,GAAA,CAAA,MAAA,EAAA,EACE,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,WAAW,EAAE,CAAC,EACd,CAAC,EAAC,sBAAsB,EAAA,CACxB,EAAA,CACE,EAAA,CACC,CACV,CAAA,EAAA,CACG;AAGD,MAAM,UAAU,GAA8B,CAAC,EAAE,QAAQ,EAAE,SAAS,GAAG,EAAE,EAAE,MAChFA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,IAAI,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAO;AAG1D,MAAM,YAAY,GAAgC,CAAC,EAAE,QAAQ,EAAE,SAAS,GAAG,EAAE,EAAE,MACpFpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,MAAM,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAO;AAG5D,MAAM,MAAM,GAIf,CAAC,EACH,MAAM,EACN,OAAO,EACP,QAAQ,GAAG,OAAO,EAClB,IAAI,GAAG,IAAI,EACX,QAAQ,EACR,oBAAoB,GAAG,IAAI,EAC3B,aAAa,GAAG,IAAI,EACpB,YAAY,GAAG,IAAI,EACnB,SAAS,GAAG,EAAE,GACf,KAAI;AACH,IAAA,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,CAAgB,KAAI;QACnB,IAAI,aAAa,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;AACvC,YAAA,OAAO,EAAE;QACX;AACF,IAAA,CAAC,EACD,CAAC,aAAa,EAAE,OAAO,CAAC,CACzB;IAED,SAAS,CAAC,MAAK;QACb,IAAI,MAAM,EAAE;AACV,YAAA,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC;YAClD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ;QACzC;AAEA,QAAA,OAAO,MAAK;AACV,YAAA,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC;YACrD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE;AACnC,QAAA,CAAC;AACH,IAAA,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAE1B,MAAM,mBAAmB,GAAG,MAAK;QAC/B,IAAI,oBAAoB,EAAE;AACxB,YAAA,OAAO,EAAE;QACX;AACF,IAAA,CAAC;AAED,IAAA,IAAI,CAAC,MAAM;AAAE,QAAA,OAAO,IAAI;IAExB,QACEjB,cAAK,SAAS,EAAEiB,QAAM,CAAC,SAAS,EAAA,QAAA,EAAA,CAC7B,YAAY,KACXpB,aACE,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,QAAQ,IAAI,MAAM,GAAGA,QAAM,CAAC,YAAY,GAAG,EAAE,CAAA,CAAE,EACpE,OAAO,EAAE,mBAAmB,EAAA,CAC5B,CACH,EACDpB,aACE,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,MAAM,IAAIA,QAAM,CAAC,QAAQ,CAAC,CAAA,CAAA,EAAIA,QAAM,CAAC,CAAA,IAAA,EAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA,EAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,IAAI,MAAM,GAAGA,QAAM,CAAC,UAAU,GAAG,EAAE,CAAA,CAAA,EAAI,SAAS,EAAE,EAClK,IAAI,EAAC,QAAQ,EAAA,YAAA,EACF,MAAM,YAEhB,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAI;AACtC,oBAAA,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;AAC9D,wBAAA,OAAO,KAAK,CAAC,YAAY,CAAC,KAA8C,EAAE;4BACxE,OAAO;AACR,yBAAA,CAAC;oBACJ;AACA,oBAAA,OAAO,KAAK;AACd,gBAAA,CAAC,CAAC,EAAA,CACE,CAAA,EAAA,CACF;AAEV;AAEA,MAAM,CAAC,MAAM,GAAG,YAAY;AAC5B,MAAM,CAAC,IAAI,GAAG,UAAU;AACxB,MAAM,CAAC,MAAM,GAAG,YAAY;;;;AC5IrB,MAAM,wBAAwB,GAAG,CAAC,IAA6D,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC;AAEtK,MAAMM,gBAAc,GAAG,CAAC,KAAa,KAAI;IACvC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC;AACnD,IAAA,IAAI,GAAG;AAAE,QAAA,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5E,IAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACrD,IAAA,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;AACnD,CAAC;AAED,MAAMC,YAAU,GAAG,CAAC,KAAa,EAAE,OAAmC,KAAKD,gBAAc,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,cAAc;AACxJ,MAAM,UAAU,GAAG,CAAC,IAAY,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS;AAEhJ,MAAM,WAAW,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAA6H,KAAI;AACjL,IAAA,MAAM,SAAS,GAAG,wBAAwB,CAAC,IAAI,CAAC;IAChD,MAAM,OAAO,GAAGA,gBAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AAC5C,IAAA,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,OAAO,GAAG,IAAI,IAAI,EAAE,IAAI,CAAC,SAAS;IAC/D,QACEvB,IAAA,CAAA,SAAA,EAAA,EAAS,SAAS,EAAEiB,QAAM,CAAC,IAAI,EAAA,QAAA,EAAA,CAC7BjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,SAAS,EAAA,QAAA,EAAA,CAC9BpB,GAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAA,YAAA,EAAa,CAAA,EAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAA,CAAA,EAAI,IAAI,CAAC,SAAS,CAAA,CAAE,EAAE,SAAS,EAAE,CAACoB,QAAM,CAAC,MAAM,EAAE,SAAS,GAAGA,QAAM,CAAC,SAAS,GAAG,OAAO,GAAGA,QAAM,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAA,QAAA,EAAG,SAAS,GAAGpB,GAAA,CAACc,WAAS,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,GAAG,IAAI,EAAA,CAAU,EACtSd,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAK,IAAI,CAAC,SAAS,EAAA,CAAM,CAAA,EAAA,CACrB,EACL,IAAI,CAAC,WAAW,IAAIA,GAAA,CAAA,GAAA,EAAA,EAAA,QAAA,EAAI,IAAI,CAAC,WAAW,GAAK,EAC9CG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,IAAI,EAAA,QAAA,EAAA,CACzBpB,GAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,eAAe,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAA,QAAA,EAAG,IAAI,CAAC,SAAS,EAAA,CAAQ,EACrFA,GAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,cAAc,IAAI,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,EAAA,QAAA,EAAG,IAAI,CAAC,QAAQ,EAAA,CAAU,CAAA,EAAA,CACpK,EACL,SAAS,IAAI,IAAI,CAAC,iBAAiB,IAAIG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,UAAU,EAAA,QAAA,EAAA,CAAEpB,GAAA,CAACc,WAAS,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAAX,IAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAMH,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAW,EAAA,GAAA,EAAE2B,YAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAA,GAAA,EAAE3B,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAW,EAAA,GAAA,EAAE,IAAI,CAAC,WAAW,CAAA,EAAA,CAAQ,CAAA,EAAA,CAAM,CAAA,EAAA,CACnP;AAEd,CAAC;AAED;AACO,MAAM,cAAc,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,GAAG,EAAE,EAAuB,KAAI;IACtJ,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,KAAI;AACnG,QAAA,IAAI,YAAY,IAAI,IAAI,KAAK,YAAY;AAAE,YAAA,OAAO,EAAE;QACpD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AAC9C,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,cAAc,KAAK,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AACzR,QAAA,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE;AAChD,IAAA,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC,CAA0B;IAE7E,QACEG,IAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAE,CAACiB,QAAM,CAAC,MAAM,EAAE,MAAM,GAAGA,QAAM,CAAC,IAAI,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,aAAA,EAAe,CAAC,MAAM,EAAA,YAAA,EAAa,WAAW,EAAA,QAAA,EAAA,CAC7IjB,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA,CAAQH,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAkB,EAAAA,GAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAA,YAAA,EAAY,iBAAiB,EAAC,OAAO,EAAE,OAAO,EAAA,QAAA,EAAEA,GAAA,CAAC,SAAS,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAA,CAAS,CAAA,EAAA,CAAS,EACxIG,cAAK,SAAS,EAAEiB,QAAM,CAAC,IAAI,EAAA,QAAA,EAAA,CACzBjB,gBAAO,SAAS,EAAEiB,QAAM,CAAC,MAAM,EAAA,QAAA,EAAA,CAAEpB,GAAA,CAACO,YAAU,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAAP,eAAO,IAAI,EAAC,QAAQ,EAAC,WAAW,EAAC,QAAQ,EAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAA,CAAI,IAAQ,EAC/K,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAGA,aAAK,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,qBAAA,EAAA,CAA2B,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,MACpIjB,6BAAoBH,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAK2B,YAAU,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAA,CAAM,EAAA3B,aAAK,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAKpB,GAAA,CAAC,WAAW,EAAA,EAAgC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAA,EAAlF,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,CAAA,CAAE,CAA8D,CAAC,EAAA,CAAO,CAAA,EAAA,EAAxP,IAAI,CAA8P,CACjR,CAAC,CAAA,EAAA,CACE,CAAA,EAAA,CACA;AAEZ;;;;AC9CA,MAAMC,WAAS,GAAG,OAChBD,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAC/FA,cAAM,CAAC,EAAC,qGAAqG,EAAA,CAAE,EAAA,CAC3G,CACP;AAED,MAAMK,WAAS,GAAG,OAChBF,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,cAAM,CAAC,EAAC,UAAU,EAAA,CAAE,EACpBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,2CAA2C,EAAA,CAAE,EACrDA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,0CAA0C,EAAA,CAAE,CAAA,EAAA,CAChD,CACP;AAED,MAAME,SAAO,GAAG,OACdC,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,cAAM,CAAC,EAAC,yCAAyC,EAAA,CAAE,EACnDA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,0CAA0C,EAAA,CAAE,EACpDA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,sEAAsE,EAAA,CAAE,CAAA,EAAA,CAC5E,CACP;AAED,MAAM,QAAQ,GAAG,OACfA,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAC/FA,iBAAS,MAAM,EAAC,gGAAgG,EAAA,CAAE,EAAA,CAC9G,CACP;AAED,MAAM,QAAQ,GAAG,OACfA,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAC/FA,cAAM,CAAC,EAAC,uDAAuD,EAAA,CAAE,EAAA,CAC7D,CACP;AAED,MAAM,SAAS,GAAG,OAChBG,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,kBAAU,MAAM,EAAC,cAAc,EAAA,CAAE,EACjCA,cAAM,CAAC,EAAC,gFAAgF,EAAA,CAAE,CAAA,EAAA,CACtF,CACP;AAED,MAAM,QAAQ,GAAG,OACfG,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,cAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAA,CAAE,EACtCA,cAAM,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAA,CAAE,CAAA,EAAA,CAClC,CACP;AAED,MAAM,UAAU,GAA8B;IAC5C,OAAO,EAAEA,GAAA,CAACC,WAAS,EAAA,EAAA,CAAG;IACtB,KAAK,EAAED,GAAA,CAACK,WAAS,EAAA,EAAA,CAAG;IACpB,GAAG,EAAEL,GAAA,CAACE,SAAO,EAAA,EAAA,CAAG;IAChB,KAAK,EAAEF,GAAA,CAAC,QAAQ,EAAA,EAAA,CAAG;CACpB;AAED,MAAM,WAAW,GAA2B;AAC1C,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,GAAG,EAAE,YAAY;AACjB,IAAA,KAAK,EAAE,OAAO;CACf;AAED;;AAEG;AACI,MAAM,kBAAkB,GAAG,CAAC,EACjC,KAAK,GAAG,qBAAqB,EAC7B,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,KAAK,EACL,KAAK,EACL,SAAS,GAAG,KAAK,EACjB,YAAY,GAAG,8BAA8B,EAC7C,SAAS,GAAG,EAAE,GACU,KAAI;AAC5B,IAAA,MAAM,gBAAgB,GAAG;AACvB,QAAAoB,QAAM,CAAC,SAAS;QAChB,SAAS,GAAGA,QAAM,CAAC,OAAO,GAAG,EAAE;QAC/B,SAAS;KACV,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IAE3B,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,KAAI;AACvD,QAAA,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO;AACpC,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AAAE,YAAA,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE;QAC9B,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;AACvB,QAAA,OAAO,GAAG;IACZ,CAAC,EAAE,EAAyC,CAAC;IAE7C,MAAM,SAAS,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC;IAEtD,QACEjB,cAAK,SAAS,EAAE,gBAAgB,EAAA,QAAA,EAAA,CAC7B,KAAK,IAAIH,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,KAAK,YAAG,KAAK,EAAA,CAAO,EAErDjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,MAAM,aAC3BpB,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAG,KAAK,EAAA,CAAM,EACxC,KAAK,KACJjB,IAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAEiB,QAAM,CAAC,SAAS,EAC3B,OAAO,EAAE,KAAK,EAAA,YAAA,EACH,wBAAwB,aAEnCpB,GAAA,CAAC,QAAQ,KAAG,EACZA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,aAAA,EAAA,CAAwB,CAAA,EAAA,CACjB,CACV,CAAA,EAAA,CACG,EAEL,QAAQ,CAAC,MAAM,KAAK,CAAC,IACpBA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAC1BpB,GAAA,CAAA,GAAA,EAAA,EAAA,QAAA,EAAI,YAAY,EAAA,CAAK,EAAA,CACjB,KAENA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,IAAI,EAAA,QAAA,EACxB,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACtB,oBAAA,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC;AAC1C,oBAAA,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;AAAE,wBAAA,OAAO,IAAI;oBAE3D,QACEjB,IAAA,CAAA,KAAA,EAAA,EAAgB,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CACrCjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAChCpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAA,QAAA,EAAG,UAAU,CAAC,IAAI,CAAC,EAAA,CAAQ,EAC5DpB,cAAM,SAAS,EAAEoB,QAAM,CAAC,UAAU,EAAA,QAAA,EAAG,WAAW,CAAC,IAAI,CAAC,EAAA,CAAQ,CAAA,EAAA,CAC1D,EACNpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,QAAQ,EAAA,QAAA,EAC5B,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,MACxBjB,IAAA,CAAA,KAAA,EAAA,EAAsB,SAAS,EAAEiB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CAC7CjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAChCpB,aAAK,SAAS,EAAEoB,QAAM,CAAC,eAAe,EAAA,QAAA,EAAG,OAAO,CAAC,QAAQ,EAAA,CAAO,EAC/D,OAAO,CAAC,WAAW,KAClBpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAG,OAAO,CAAC,WAAW,EAAA,CAAO,CAChE,EACDpB,aAAK,SAAS,EAAEoB,QAAM,CAAC,aAAa,EAAA,QAAA,EAAG,OAAO,CAAC,gBAAgB,EAAA,CAAO,EACrE,OAAO,CAAC,MAAM,KACbpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,aAAa,EAAA,QAAA,EAAG,OAAO,CAAC,MAAM,EAAA,CAAO,CAC7D,CAAA,EAAA,CACG,EACNjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,cAAc,EAAA,QAAA,EAAA,CAClC,MAAM,KACLpB,GAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAEoB,QAAM,CAAC,YAAY,EAC9B,OAAO,EAAE,MAAM,MAAM,CAAC,OAAO,CAAC,EAAA,YAAA,EAClB,CAAA,KAAA,EAAQ,OAAO,CAAC,QAAQ,CAAA,QAAA,CAAU,EAAA,QAAA,EAE9CpB,GAAA,CAAC,QAAQ,EAAA,EAAA,CAAG,EAAA,CACL,CACV,EACA,QAAQ,KACPA,GAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,CAACoB,QAAM,CAAC,YAAY,EAAEA,QAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAC/D,OAAO,EAAE,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAA,YAAA,EACpB,CAAA,OAAA,EAAU,OAAO,CAAC,QAAQ,CAAA,QAAA,CAAU,EAAA,QAAA,EAEhDpB,GAAA,CAAC,SAAS,EAAA,EAAA,CAAG,EAAA,CACN,CACV,IACG,CAAA,EAAA,EAhCE,OAAO,CAAC,EAAE,CAiCd,CACP,CAAC,EAAA,CACE,CAAA,EAAA,EA1CE,IAAI,CA2CR;AAEV,gBAAA,CAAC,CAAC,EAAA,CACE,CACP,CAAA,EAAA,CACG;AAEV;AAEA,kBAAkB,CAAC,WAAW,GAAG,oBAAoB;;;;AC/LrD,MAAM,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,GAAG,KAAK,EAAa,KAAI;AACpF,IAAA,MAAM,KAAK,GAAG,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,UAAU,GAAG,QAAQ,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC;AAE1F,IAAA,QACEG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,IAAI,EAAA,QAAA,EAAA,CACzBjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,QAAQ,EAAA,QAAA,EAAA,CAC7BpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAG,KAAK,EAAA,CAAQ,EAC5C,IAAI,IAAIpB,GAAA,CAACa,aAAW,EAAA,EAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAEO,QAAM,CAAC,WAAW,EAAA,YAAA,EAAc,GAAG,KAAK,CAAA,QAAA,CAAU,EAAA,CAAI,CAAA,EAAA,CAC7F,EACNpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAACoB,QAAM,CAAC,KAAK,EAAE,IAAI,GAAGA,QAAM,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,QAAA,EAAG,KAAK,EAAA,CAAO,EACvGpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,GAAG,YAAG,GAAG,EAAA,CAAO,EACvCpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,aAAA,EAAc,MAAM,EAAA,QAAA,EAC9CpB,GAAA,CAAA,MAAA,EAAA,EACE,SAAS,EAAE,CAACoB,QAAM,CAAC,SAAS,EAAE,IAAI,GAAGA,QAAM,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EACrF,KAAK,EAAE,EAAE,KAAK,EAAE,CAAA,EAAG,KAAK,GAAG,EAAE,EAAA,CAC7B,EAAA,CACE,CAAA,EAAA,CACF;AAEV,CAAC;AAED;MACa,qBAAqB,GAAG,CAAC,EACpC,QAAQ,EACR,KAAK,EACL,SAAS,EACT,WAAW,EACX,YAAY,EACZ,SAAS,GAAG,EAAE,GACa,KAAI;AAC/B,IAAA,MAAM,WAAW,GAAG,SAAS,GAAG,WAAW;IAC3C,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,IAAI,QAAQ,GAAG,KAAK;IAC/C,MAAM,WAAW,GAAG,YAAY,GAAG,CAAC,IAAI,WAAW,GAAG,YAAY;IAElE,QACEjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,SAAS,EAAA,QAAA,EAAA,CACvBA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAC1BpB,IAAC,IAAI,EAAA,EACH,KAAK,EAAC,OAAO,EACb,KAAK,EAAE,CAAA,EAAG,QAAQ,CAAA,GAAA,EAAM,KAAK,CAAA,CAAE,EAC/B,GAAG,EAAE,SAAS,GAAG,CAAA,EAAG,QAAQ,GAAG,KAAK,CAAA,cAAA,CAAgB,GAAG,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAA,WAAA,CAAa,EACpG,UAAU,EAAE,QAAQ,EACpB,QAAQ,EAAE,KAAK,EACf,IAAI,EAAE,SAAS,EAAA,CACf,EACFA,GAAA,CAAC,IAAI,EAAA,EACH,KAAK,EAAC,kBAAkB,EACxB,KAAK,EAAE,CAAA,EAAG,SAAS,CAAC,cAAc,EAAE,CAAA,GAAA,CAAK,EACzC,GAAG,EAAE,CAAA,EAAG,QAAQ,CAAA,WAAA,CAAa,EAC7B,UAAU,EAAE,SAAS,EACrB,QAAQ,EAAE,YAAY,EAAA,CACtB,EACFA,GAAA,CAAC,IAAI,EAAA,EACH,KAAK,EAAC,cAAc,EACpB,KAAK,EAAE,CAAA,EAAG,WAAW,CAAC,cAAc,EAAE,CAAA,GAAA,CAAK,EAC3C,GAAG,EAAC,kBAAkB,EACtB,UAAU,EAAE,WAAW,EACvB,QAAQ,EAAE,YAAY,EAAA,CACtB,EACFA,GAAA,CAAC,IAAI,EAAA,EACH,KAAK,EAAC,eAAe,EACrB,KAAK,EAAE,CAAA,EAAG,WAAW,CAAC,cAAc,EAAE,CAAA,GAAA,CAAK,EAC3C,GAAG,EAAE,WAAW,GAAG,GAAG,CAAC,WAAW,GAAG,YAAY,EAAE,cAAc,EAAE,CAAA,cAAA,CAAgB,GAAG,CAAA,MAAA,EAAS,YAAY,CAAC,cAAc,EAAE,CAAA,GAAA,CAAK,EACjI,UAAU,EAAE,WAAW,EACvB,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,WAAW,GACjB,CAAA,EAAA,CACE,EAEL,CAAC,SAAS,IAAI,WAAW,MACxBG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAE,IAAI,EAAC,OAAO,EAAA,QAAA,EAAA,CACxCpB,GAAA,CAACa,aAAW,EAAA,EAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAEO,QAAM,CAAC,SAAS,EAAA,CAAI,EACtDjB,IAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,CACG,SAAS,KACRA,IAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,CAAKH,GAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,CAAoC,EAAA,UAAA,EAAS,QAAQ,GAAG,KAAK,EAAA,iDAAA,CAAA,EAAA,CAAsD,CACzH,EACA,WAAW,KACVG,IAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,CAAKH,GAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,CAA6C,EAAA,+HAAA,CAAA,EAAA,CAA8H,CACjL,CAAA,EAAA,CACG,CAAA,EAAA,CACF,CACP,CAAA,EAAA,CACG;AAEV;;;;AC5EO,MAAM,KAAK,GAAyB,CAAC,EAC1C,MAAM,EACN,OAAO,EACP,KAAK,EACL,QAAQ,EACR,IAAI,GAAG,IAAI,EACX,eAAe,GAAG,IAAI,EACtB,oBAAoB,GAAG,IAAI,EAC3B,aAAa,GAAG,IAAI,EACpB,MAAM,EACN,SAAS,GAAG,EAAE,GACf,KAAI;AACH,IAAA,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,CAAgB,KAAI;QACnB,IAAI,aAAa,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;AACvC,YAAA,OAAO,EAAE;QACX;AACF,IAAA,CAAC,EACD,CAAC,aAAa,EAAE,OAAO,CAAC,CACzB;IAED,SAAS,CAAC,MAAK;QACb,IAAI,MAAM,EAAE;AACV,YAAA,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC;YAClD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ;QACzC;AAEA,QAAA,OAAO,MAAK;AACV,YAAA,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC;YACrD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE;AACnC,QAAA,CAAC;AACH,IAAA,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAE1B,IAAA,MAAM,mBAAmB,GAAG,CAAC,CAAmB,KAAI;QAClD,IAAI,oBAAoB,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,aAAa,EAAE;AACxD,YAAA,OAAO,EAAE;QACX;AACF,IAAA,CAAC;AAED,IAAA,IAAI,CAAC,MAAM;AAAE,QAAA,OAAO,IAAI;AAExB,IAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAA,QAAA,EAC1DjB,IAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,CAAA,EAAGiB,QAAM,CAAC,KAAK,CAAA,CAAA,EAAIA,QAAM,CAAC,IAAI,CAAC,CAAA,CAAA,EAAI,SAAS,EAAE,EACzD,IAAI,EAAC,QAAQ,gBACF,MAAM,EAAA,iBAAA,EACA,KAAK,GAAG,aAAa,GAAG,SAAS,EAAA,QAAA,EAAA,CAEjD,CAAC,KAAK,IAAI,eAAe,MACxBjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,MAAM,EAAA,QAAA,EAAA,CAC1B,KAAK,KACJpB,GAAA,CAAA,IAAA,EAAA,EAAI,EAAE,EAAC,aAAa,EAAC,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EACzC,KAAK,GACH,CACN,EACA,eAAe,KACdpB,gBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAEoB,QAAM,CAAC,WAAW,EAC7B,OAAO,EAAE,OAAO,EAAA,YAAA,EACL,aAAa,EAAA,QAAA,EAExBpB,GAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,OAAO,EAAC,WAAW,EAAA,QAAA,EAEnBA,GAAA,CAAA,MAAA,EAAA,EACE,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,WAAW,EAAE,CAAC,EACd,CAAC,EAAC,sBAAsB,EAAA,CACxB,EAAA,CACE,EAAA,CACC,CACV,CAAA,EAAA,CACG,CACP,EAEDA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,IAAI,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAO,EAE5C,MAAM,IAAIpB,aAAK,SAAS,EAAEoB,QAAM,CAAC,MAAM,EAAA,QAAA,EAAG,MAAM,GAAO,CAAA,EAAA,CACpD,EAAA,CACF;AAEV;AAQO,MAAM,WAAW,GAA+B,CAAC,EAAE,QAAQ,EAAE,SAAS,GAAG,EAAE,EAAE,MAClFpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,aAAa,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAO;AAkBnE,MAAM,YAAY,GAAgC,CAAC,EACxD,OAAO,EACP,WAAW,GAAG,SAAS,EACvB,UAAU,GAAG,QAAQ,EACrB,SAAS,EACT,OAAO,EACP,WAAW,GAAG,KAAK,EACnB,OAAO,GAAG,KAAK,EACf,GAAG,KAAK,EACT,MACCpB,GAAA,CAAC,KAAK,EAAA,EAAA,GACA,KAAK,EACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAC,IAAI,EACT,MAAM,EACJG,IAAA,CAAC,WAAW,EAAA,EAAA,QAAA,EAAA,CACVH,GAAA,CAAC,MAAM,EAAA,EAAC,OAAO,EAAC,WAAW,EAAC,OAAO,EAAE,OAAO,YACzC,UAAU,EAAA,CACJ,EACTA,GAAA,CAAC,MAAM,EAAA,EACL,OAAO,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,EAC3C,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,OAAO,EAAA,QAAA,EAEhB,OAAO,GAAG,YAAY,GAAG,WAAW,EAAA,CAC9B,IACG,EAAA,QAAA,EAGhBA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,cAAc,EAAA,QAAA,EAAG,OAAO,EAAA,CAAO,EAAA,CAChD;;;;ACpIV,MAAM,WAAW,GAAG,CAAC,EAAE,SAAS,EAAgC,MAC9DpB,GAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,KAAK,IAAI,GAAG,gBAAgB,GAAG,MAAM,EAAE,EAAA,QAAA,EAEpEA,GAAA,CAAA,UAAA,EAAA,EAAU,MAAM,EAAC,gBAAgB,EAAA,CAAG,EAAA,CAChC,CACP;AAED;;;AAGG;AACI,MAAM,MAAM,GAA0B,CAAC,EAC5C,KAAK,EACL,IAAI,EACJ,aAAa,GAAG,EAAE,EAClB,KAAK,EACL,MAAM,EACN,QAAQ,EACR,KAAK,EACL,MAAM,EACN,KAAK,EACL,SAAS,GAAG,EAAE,EACd,eAAe,GAAG,EAAE,EACpB,cAAc,GAAG,EAAE,EACnB,aAAa,GAAG,EAAE,EAClB,IAAI,GAAG,IAAI,EACX,SAAS,GAAG,IAAI,EAChB,IAAI,GAAG,IAAI,EACX,QAAQ,GACT,KAAI;IACH,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC;IAEtC,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,OAAO,IAAI,KAAK,SAAS,EAAE;YAC7B,OAAO,CAAC,IAAI,CAAC;QACf;AACF,IAAA,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAEV,MAAM,YAAY,GAAG,MAAK;AACxB,QAAA,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AAClC,YAAA,QAAQ,EAAE;QACZ;aAAO;AACL,YAAA,OAAO,CAAC,CAAC,IAAI,CAAC;QAChB;AACF,IAAA,CAAC;IAED,QACEG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAA,EAAGiB,QAAM,CAAC,MAAM,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,EAAA,QAAA,EAAA,CAC5C,KAAK,KACJpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,MAAM,CAAA,CAAA,EAAIA,QAAM,CAAC,IAAI,CAAC,CAAA,CAAA,EAAI,CAAC,IAAI,GAAGA,QAAM,CAAC,MAAM,GAAG,EAAE,CAAA,CAAA,EAAI,eAAe,CAAA,CAAE,YACjGjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAA,EAAGiB,QAAM,CAAC,QAAQ,CAAA,CAAA,EAAIA,QAAM,CAAC,IAAI,CAAC,CAAA,CAAA,EAAI,cAAc,EAAE,EAAA,QAAA,EAAA,CACnE,IAAI,KACHpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,IAAI,CAAA,CAAA,EAAI,IAAI,KAAK,IAAI,GAAG,EAAE,GAAGA,QAAM,CAAC,UAAU,CAAA,CAAA,EAAI,aAAa,CAAA,CAAE,EAAA,QAAA,EACzF,IAAI,EAAA,CACA,CACR,EACDpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAG,KAAK,EAAA,CAAQ,EAC5C,KAAK,IAAIpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAG,KAAK,EAAA,CAAQ,EACvDjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CACzB,KAAK,EACL,SAAS,KACRpB,GAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAC3B,OAAO,EAAE,YAAY,EAAA,eAAA,EACN,IAAI,EAAA,QAAA,EAEnBpB,GAAA,CAAC,WAAW,EAAA,EAAC,SAAS,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,EAAA,CAAI,EAAA,CACzC,CACV,CAAA,EAAA,CACG,CAAA,EAAA,CACF,EAAA,CACF,CACP,EACDG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAC/B,MAAM,EACPpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,IAAI,CAAA,CAAA,EAAIA,QAAM,CAAC,IAAI,CAAC,CAAA,CAAA,EAAI,CAAC,IAAI,GAAGA,QAAM,CAAC,MAAM,GAAG,EAAE,CAAA,CAAA,EAAI,aAAa,CAAA,CAAE,EAAA,QAAA,EAC5F,QAAQ,EAAA,CACL,EACL,KAAK,CAAA,EAAA,CACF,EACL,MAAM,KACLpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,MAAM,CAAA,CAAA,EAAI,CAAC,IAAI,GAAGA,QAAM,CAAC,MAAM,GAAG,EAAE,CAAA,CAAE,EAAA,QAAA,EAC7D,MAAM,EAAA,CACH,CACP,CAAA,EAAA,CACG;AAEV;AAEA;;AAEG;AACI,MAAM,aAAa,GAAqD,CAAC,EAC9E,IAAI,GAAG,KAAK,EACZ,SAAS,GAAG,EAAE,EACf,MACCpB,YAAI,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,OAAO,CAAA,CAAA,EAAI,IAAI,GAAGA,QAAM,CAAC,IAAI,GAAG,EAAE,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,EAAA,CAAI;AAGhF;;AAEG;AACI,MAAM,qBAAqB,GAAqD,CAAC,EACtF,IAAI,GAAG,KAAK,EACZ,SAAS,GAAG,EAAE,EACf,MACCpB,aAAK,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,eAAe,CAAA,CAAA,EAAI,IAAI,GAAGA,QAAM,CAAC,IAAI,GAAG,EAAE,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,EAAA,CAAI;AAGzF,MAAM,CAAC,WAAW,GAAG,QAAQ;;;;ACxI7B,MAAM,cAAc,GAAG,CAAC,KAAa,KAAI;IACvC,IAAI,OAAO,QAAQ,KAAK,WAAW;AAAE,QAAA,OAAO,KAAK;IACjD,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC;AAClD,IAAA,OAAO,CAAC,SAAS,GAAG,KAAK;IACzB,OAAO,OAAO,CAAC,KAAK;AACtB,CAAC;AAEM,MAAM,WAAW,GAAG,CAAC,EAC1B,aAAa,EACb,YAAY,EACZ,SAAS,GAAG,EAAE,GACG,KAAI;AACrB,IAAA,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAc,IAAI,GAAG,EAAE,CAAC;AAClE,IAAA,MAAM,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC;AAC5C,IAAA,MAAM,cAAc,GAAG,MAAM,CAAC,YAAY,CAAC;IAE3C,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,cAAc,CAAC,OAAO,KAAK,aAAa,IAAI,cAAc,CAAC,OAAO,KAAK,YAAY,EAAE;AACvF,YAAA,YAAY,CAAC,IAAI,GAAG,EAAE,CAAC;AACvB,YAAA,cAAc,CAAC,OAAO,GAAG,aAAa;AACtC,YAAA,cAAc,CAAC,OAAO,GAAG,YAAY;QACvC;AACF,IAAA,CAAC,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;AAEjC,IAAA,MAAM,OAAO,GAAG,CAAC,EAAU,KAAI;AAC7B,QAAA,YAAY,CAAC,CAAC,OAAO,KAAK,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACtD,IAAA,CAAC;IAED,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjF,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAEhF,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM;AAAE,QAAA,OAAO,IAAI;AAE/D,IAAA,QACEjB,IAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,CAACiB,QAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAC9D,IAAI,EAAC,QAAQ,gBACF,cAAc,EAAA,QAAA,EAAA,CAExB,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,MACxBjB,IAAA,CAAA,KAAA,EAAA,EAAqB,SAAS,EAAE,CAACiB,QAAM,CAAC,MAAM,EAAEA,QAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAC,QAAQ,EAAA,QAAA,EAAA,CACrFpB,GAAA,CAACgB,UAAQ,EAAA,EAAC,SAAS,EAAEI,QAAM,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,iBAAc,MAAM,EAAA,CAAG,EACvEjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CAC5BpB,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAE,uBAAuB,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAA,CAAI,EAC/E,MAAM,CAAC,UAAU,KAChBpB,WAAG,SAAS,EAAEoB,QAAM,CAAC,MAAM,EAAE,uBAAuB,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,GAAI,CACxF,CAAA,EAAA,CACG,EACNpB,GAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAEoB,QAAM,CAAC,OAAO,gBACd,gBAAgB,EAC3B,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,YAEjCpB,GAAA,CAAC,SAAS,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,GAChB,CAAA,EAAA,EAfD,MAAM,CAAC,EAAE,CAgBb,CACP,CAAC,EAED,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;AAC5B,gBAAA,MAAM,OAAO,IACXG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CAC5BpB,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAE,CAACoB,QAAM,CAAC,KAAK,EAAEA,QAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,QAAA,EAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,EAAA,CAAK,EAC5F,MAAM,CAAC,IAAI,IAAIpB,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAE,CAACoB,QAAM,CAAC,MAAM,EAAEA,QAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAA,CAAK,CAAA,EAAA,CACpG,CACP;gBAED,QACEjB,IAAA,CAAA,KAAA,EAAA,EAAqB,SAAS,EAAE,CAACiB,QAAM,CAAC,MAAM,EAAEA,QAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAC,OAAO,EAAA,QAAA,EAAA,CACnFpB,GAAA,CAACa,aAAW,EAAA,EAAC,SAAS,EAAEO,QAAM,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,EAAA,aAAA,EAAc,MAAM,EAAA,CAAG,EACxE,MAAM,CAAC,IAAI,IACVpB,GAAA,CAAA,GAAA,EAAA,EAAG,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAA,QAAA,EAC9C,OAAO,EAAA,CACN,KAEJ,OAAO,CACR,EACDpB,GAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,CAACoB,QAAM,CAAC,OAAO,EAAEA,QAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,gBAC/C,eAAe,EAC1B,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAA,QAAA,EAEjCpB,GAAA,CAAC,SAAS,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAA,CAChB,CAAA,EAAA,EAhBD,MAAM,CAAC,EAAE,CAiBb;YAEV,CAAC,CAAC,CAAA,EAAA,CACE;AAEV;;;;AC7EA,MAAMC,WAAS,GAAG,OAChBD,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAC/FA,cAAM,CAAC,EAAC,qGAAqG,EAAA,CAAE,EAAA,CAC3G,CACP;AAED,MAAMM,SAAO,GAAG,OACdH,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,cAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAA,CAAE,EACjDA,cAAM,CAAC,EAAC,QAAQ,EAAA,CAAE,EAClBA,cAAM,CAAC,EAAC,SAAS,EAAA,CAAE,EACnBA,gBAAQ,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,GAAE,EAC9BA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAA,CAAE,CAAA,EAAA,CAC3B,CACP;AAED,MAAMK,WAAS,GAAG,OAChBF,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,cAAM,CAAC,EAAC,UAAU,EAAA,CAAE,EACpBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,2CAA2C,EAAA,CAAE,EACrDA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,0CAA0C,EAAA,CAAE,CAAA,EAAA,CAChD,CACP;AAED,MAAM,aAAa,GAA8B;IAC/C,GAAG,EAAEA,GAAA,CAACC,WAAS,EAAA,EAAA,CAAG;IAClB,MAAM,EAAED,GAAA,CAACM,SAAO,EAAA,EAAA,CAAG;IACnB,KAAK,EAAEN,GAAA,CAACK,WAAS,EAAA,EAAA,CAAG;CACrB;AAED;;AAEG;MACU,gBAAgB,GAAG,CAAC,EAC/B,KAAK,EACL,QAAQ,EACR,KAAK,EACL,MAAM,EACN,SAAS,GAAG,KAAK,EACjB,SAAS,GAAG,EAAE,GACQ,KAAI;AAC1B,IAAA,MAAM,YAAY,GAAG;AACnB,QAAAe,QAAM,CAAC,KAAK;QACZ,SAAS,GAAGA,QAAM,CAAC,OAAO,GAAG,EAAE;QAC/B,SAAS;KACV,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IAE3B,QACEjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,YAAY,aACzB,KAAK,KACJH,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EACzB,KAAK,EAAA,CACF,CACP,EAEA,KAAK,IAAIpB,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAG,KAAK,EAAA,CAAM,EAEnDpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,IAAI,EAAA,QAAA,EACxB,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,MACvBjB,IAAA,CAAA,KAAA,EAAA,EAAa,SAAS,EAAEiB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CACpCjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,aAAa,EAAA,QAAA,EAAA,CACjC,CAAC,OAAO,CAAC,IAAI,IAAI,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,MAC1DpB,cAAM,SAAS,EAAEoB,QAAM,CAAC,WAAW,EAAA,QAAA,EAChC,OAAO,CAAC,IAAI,IAAI,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAA,CACtD,CACR,EACDpB,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAEoB,QAAM,CAAC,YAAY,YAAG,OAAO,CAAC,KAAK,EAAA,CAAM,CAAA,EAAA,CACpD,EACNpB,aAAK,SAAS,EAAEoB,QAAM,CAAC,MAAM,EAAA,QAAA,EAC1B,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,MAC3BjB,cAAa,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAClCpB,eAAO,SAAS,EAAEoB,QAAM,CAAC,UAAU,EAAA,QAAA,EAAG,KAAK,CAAC,KAAK,EAAA,CAAS,EACzD,KAAK,CAAC,KAAK,IACVpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,UAAU,EAAA,QAAA,EAAG,KAAK,CAAC,KAAK,GAAO,KAEtDpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,UAAU,EAAA,QAAA,EAAG,KAAK,CAAC,KAAK,IAAI,GAAG,EAAA,CAAO,CAC9D,CAAA,EAAA,EANO,CAAC,CAOL,CACP,CAAC,EAAA,CACE,CAAA,EAAA,EApBE,CAAC,CAqBL,CACP,CAAC,EAAA,CACE,EAEL,MAAM,KACLpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,MAAM,EAAA,QAAA,EAC1B,MAAM,EAAA,CACH,CACP,CAAA,EAAA,CACG;AAEV;AAEA,gBAAgB,CAAC,WAAW,GAAG,kBAAkB;;;;ACjFjD;;AAEG;AACH,MAAM,cAAc,GAAgD,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAI;AACtF,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,IAAI;IAEvB,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;AAEvE,IAAA,QACEjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,GAAG,EAAA,QAAA,EAAA,CACxBpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAG,IAAI,CAAC,KAAK,EAAA,CAAQ,EAClDpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAG,cAAc,EAAA,CAAQ,CAAA,EAAA,CAClD;AAEV,CAAC;AAED;;AAEG;AACI,MAAM,cAAc,GAGtB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAI;;AAE3B,IAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAA,EAAG,OAAO,CAAC,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,CAAA,CAAE,CAAC,CAAC;IAC1G,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,IAC5C,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,CAAA,EAAG,OAAO,CAAC,GAAG,CAAA,CAAA,EAAI,GAAG,CAAC,KAAK,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAClG;AAED,IAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW;AAAE,QAAA,OAAO,IAAI;AAE1C,IAAA,QACEjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CAC5BpB,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAEoB,QAAM,CAAC,YAAY,EAAA,QAAA,EAAG,OAAO,CAAC,KAAK,EAAA,CAAM,EACvD,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,MAC1BpB,GAAA,CAAC,cAAc,EAAA,EAEb,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAA,EAAG,OAAO,CAAC,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,EAAE,CAAC,EAAA,EAF9D,CAAC,CAGN,CACH,CAAC,EACD,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,MAChCG,IAAA,CAAA,KAAA,EAAA,EAAa,SAAS,EAAEiB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CACpCpB,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAEoB,QAAM,CAAC,YAAY,EAAA,QAAA,EAAG,OAAO,CAAC,KAAK,EAAA,CAAM,EACvD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,MACzBpB,GAAA,CAAC,cAAc,IAEb,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM,CAAC,CAAA,EAAG,OAAO,CAAC,GAAG,CAAA,CAAA,EAAI,OAAO,CAAC,KAAK,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,CAAA,CAAE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAF/E,CAAC,CAGN,CACH,CAAC,KARM,CAAC,CASL,CACP,CAAC,CAAA,EAAA,CACE;AAEV;AAEA;;;AAGG;MACU,cAAc,GAAkC,CAAC,EAC5D,QAAQ,EACR,MAAM,EACN,eAAe,GAAG,EAAE,EACpB,cAAc,EACd,SAAS,EACT,KAAK,GAAG,iBAAiB,GAC1B,KAAI;AACH,IAAA,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CACrC,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAClD;AAED,IAAA,QACEG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAA,EAAGiB,QAAM,CAAC,OAAO,CAAA,CAAA,EAAI,SAAS,IAAI,EAAE,CAAA,CAAE,EAAA,QAAA,EAAA,CACpDpB,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAG,KAAK,EAAA,CAAM,EAExC,cAAc,KACbjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,cAAc,EAAA,QAAA,EAAA,CACnCpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,cAAA,EAAA,CAAqB,EAClDpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAG,cAAc,CAAC,WAAW,EAAA,CAAQ,EAClEpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,IAAA,EAAA,CAAW,EACxCpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAG,cAAc,CAAC,WAAW,EAAA,CAAQ,CAAA,EAAA,CAC9D,CACP,EAEDpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,QAAQ,EAAA,QAAA,EAC5B,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,MAC3BpB,GAAA,CAAC,cAAc,EAAA,EAAmB,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAA,EAA7C,OAAO,CAAC,GAAG,CAAsC,CACvE,CAAC,EAAA,CACE,EAEL,eAAe,CAAC,MAAM,KAAK,CAAC,KAC3BA,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,sBAAA,EAAA,CAA0B,CACrD,CAAA,EAAA,CACG;AAEV;AAEA,cAAc,CAAC,WAAW,GAAG,gBAAgB;;;;AC7F7C;;AAEG;AACI,MAAM,iBAAiB,GAAqC,CAAC,EAClE,KAAK,EACL,WAAW,EACX,UAAU,EACV,SAAS,EACT,YAAY,EACZ,SAAS,GACV,KAAI;AACH,IAAA,MAAM,cAAc,GAAG,WAAW,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,GAAG,CAAC;AAE9F,IAAA,QACEpB,GAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,MAAM,CAAA,CAAA,EAAI,SAAS,IAAI,EAAE,CAAA,CAAE,EAAA,QAAA,EACtDjB,cAAK,SAAS,EAAEiB,QAAM,CAAC,aAAa,EAAA,QAAA,EAAA,CAClCjB,IAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAEiB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAC9B,KAAK,EACL,cAAc,KACbjB,eAAM,SAAS,EAAEiB,QAAM,CAAC,UAAU,kBAC9B,WAAW,EAAA,GAAA,EAAG,UAAU,EAAA,GAAA,CAAA,EAAA,CACrB,CACR,EACA,SAAS,KACRjB,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,cAAM,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAA,QAAA,EAAA,QAAA,EAAA,CAAU,EAC3CpB,cAAM,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAA,QAAA,EAAG,SAAS,GAAQ,CAAA,EAAA,CACpD,CACJ,IACE,EACJ,YAAY,IAAIpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAG,YAAY,GAAO,CAAA,EAAA,CACrE,EAAA,CACC;AAEb;AAEA;;AAEG;AACI,MAAM,iBAAiB,GAAqC,CAAC,EAClE,UAAU,EACV,MAAM,EACN,WAAW,GAAG,KAAK,EACnB,UAAU,GAAG,KAAK,EAClB,YAAY,GAAG,KAAK,EACpB,YAAY,EACZ,QAAQ,EACR,SAAS,GACV,KAAI;AACH,IAAA,MAAM,SAAS,GAAG,YAAY,KAAK,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;AACvE,IAAA,MAAM,SAAS,GAAG,QAAQ,KAAK,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE9D,IAAA,QACEpB,GAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,MAAM,CAAA,CAAA,EAAI,SAAS,IAAI,EAAE,CAAA,CAAE,EAAA,QAAA,EACtDjB,cAAK,SAAS,EAAEiB,QAAM,CAAC,aAAa,EAAA,QAAA,EAAA,CAClCpB,GAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,GAAGoB,QAAM,CAAC,MAAM,CAAA,CAAA,EAAIA,QAAM,CAAC,SAAS,CAAA,CAAE,EACjD,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,YAAY,YAErB,SAAS,EAAA,CACH,EACTpB,GAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,MAAM,IAAIA,QAAM,CAAC,OAAO,CAAA,CAAE,EAC/C,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,YAAY,EAAA,QAAA,EAErB,YAAY,GAAG,eAAe,GAAG,SAAS,GACpC,CAAA,EAAA,CACL,EAAA,CACC;AAEb;AAEA;;;AAGG;MACU,iBAAiB,GAAqC,CAAC,EAClE,MAAM,EACN,OAAO,EACP,QAAQ,EACR,OAAO,EACP,MAAM,EACN,SAAS,EACT,mBAAmB,GAAG,KAAK,GAC5B,KAAI;IACH,QACEjB,cAAK,SAAS,EAAE,GAAGiB,QAAM,CAAC,MAAM,CAAA,CAAA,EAAI,SAAS,IAAI,EAAE,CAAA,CAAE,EAAA,QAAA,EAAA,CAClD,MAAM,EAEPjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,IAAI,EAAA,QAAA,EAAA,CACxB,OAAO,KACNpB,GAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,OAAO,CAAA,CAAA,EAAI,mBAAmB,GAAGA,QAAM,CAAC,YAAY,GAAG,EAAE,CAAA,CAAE,EAAA,QAAA,EACrFpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,cAAc,EAAA,QAAA,EAClC,OAAO,EAAA,CACJ,EAAA,CACA,CACT,EAEDpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,IAAI,EAAA,QAAA,EAC1BpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,WAAW,EAAA,QAAA,EAC/B,QAAQ,EAAA,CACL,EAAA,CACD,EAEN,OAAO,KACNpB,GAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAEoB,QAAM,CAAC,cAAc,EAAA,QAAA,EACrCpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,cAAc,EAAA,QAAA,EAClC,OAAO,EAAA,CACJ,EAAA,CACA,CACT,IACG,EAEL,MAAM,CAAA,EAAA,CACH;AAEV;AAEA,iBAAiB,CAAC,WAAW,GAAG,mBAAmB;AACnD,iBAAiB,CAAC,WAAW,GAAG,mBAAmB;AACnD,iBAAiB,CAAC,WAAW,GAAG,mBAAmB;;;;MCvItC,KAAK,GAAG,CAAsC,EACzD,OAAO,EACP,IAAI,EACJ,MAAM,GAAG,IAAI,EACb,QAAQ,GAAG,KAAK,EAChB,OAAO,GAAG,KAAK,EACf,SAAS,GAAG,IAAI,EAChB,OAAO,GAAG,KAAK,EACf,OAAO,GAAG,KAAK,EACf,YAAY,GAAG,mBAAmB,EAClC,UAAU,EACV,SAAS,GAAG,EAAE,GACA,KAAI;IAClB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC;IACjE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAiB,KAAK,CAAC;AAEzE,IAAA,MAAM,UAAU,GAAG,CAAC,MAAsB,KAAI;QAC5C,IAAI,CAAC,MAAM,CAAC,QAAQ;YAAE;AAEtB,QAAA,IAAI,UAAU,KAAK,MAAM,CAAC,GAAG,EAAE;AAC7B,YAAA,gBAAgB,CAAC,aAAa,KAAK,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;QAC5D;aAAO;AACL,YAAA,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC;YACzB,gBAAgB,CAAC,KAAK,CAAC;QACzB;AACF,IAAA,CAAC;AAED,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,MAAK;AAC9B,QAAA,IAAI,CAAC,UAAU;AAAE,YAAA,OAAO,IAAI;AAE5B,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AAC7B,YAAA,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC;AAC1B,YAAA,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC;YAE1B,IAAI,IAAI,KAAK,IAAI;AAAE,gBAAA,OAAO,CAAC;AAC3B,YAAA,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;AAAE,gBAAA,OAAO,CAAC;AACjD,YAAA,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,EAAE;AAElD,YAAA,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC;AACvC,YAAA,OAAO,aAAa,KAAK,KAAK,GAAG,UAAU,GAAG,CAAC,UAAU;AAC3D,QAAA,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;AAErC,IAAA,MAAM,SAAS,GAAG,CAAC,GAAM,EAAE,KAAa,KAAqB;AAC3D,QAAA,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;AAChC,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC;QACpB;AACA,QAAA,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK;AAC7B,IAAA,CAAC;IAED,QACEpB,aAAK,SAAS,EAAE,GAAGoB,QAAM,CAAC,OAAO,CAAA,CAAA,EAAI,SAAS,EAAE,EAAA,QAAA,EAC9CjB,IAAA,CAAA,OAAA,EAAA,EACE,SAAS,EAAE,CAAA,EAAGiB,QAAM,CAAC,KAAK,CAAA,CAAA,EAAI,QAAQ,GAAGA,QAAM,CAAC,QAAQ,GAAG,EAAE,CAAA,CAAA,EAAI,OAAO,GAAGA,QAAM,CAAC,OAAO,GAAG,EAAE,CAAA,CAAA,EAAI,SAAS,GAAGA,QAAM,CAAC,SAAS,GAAG,EAAE,CAAA,CAAA,EAAI,OAAO,GAAGA,QAAM,CAAC,OAAO,GAAG,EAAE,CAAA,CAAE,EAAA,QAAA,EAAA,CAEtKpB,GAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAEoB,QAAM,CAAC,MAAM,EAAA,QAAA,EAC7BpB,sBACG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,MAClBA,GAAA,CAAA,IAAA,EAAA,EAEE,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,UAAU,CAAA,CAAA,EAAI,MAAM,CAAC,QAAQ,GAAGA,QAAM,CAAC,QAAQ,GAAG,EAAE,IAAIA,QAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,EAAE,EACrL,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,SAAS,EACzD,OAAO,EAAE,MAAM,UAAU,CAAC,MAAM,CAAC,EAAA,QAAA,EAEjCjB,eAAM,SAAS,EAAEiB,QAAM,CAAC,aAAa,aAClC,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,QAAQ,KACdpB,cAAM,SAAS,EAAEoB,QAAM,CAAC,QAAQ,EAAA,QAAA,EAC7B,UAAU,KAAK,MAAM,CAAC,GAAG,IACxB,aAAa,KAAK,KAAK,GAAG,GAAG,GAAG,GAAG,KAEnC,GAAG,CACJ,EAAA,CACI,CACR,CAAA,EAAA,CACI,EAAA,EAhBF,MAAM,CAAC,GAAG,CAiBZ,CACN,CAAC,GACC,EAAA,CACC,EACRpB,eAAO,SAAS,EAAEoB,QAAM,CAAC,IAAI,YAC1B,OAAO,IACNpB,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EACEA,YAAI,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAEoB,QAAM,CAAC,OAAO,2BAEjD,EAAA,CACF,IACH,UAAU,CAAC,MAAM,KAAK,CAAC,IACzBpB,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EACEA,YAAI,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EACjD,YAAY,EAAA,CACV,EAAA,CACF,KAEL,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,QAAQ,MAC3BpB,GAAA,CAAA,IAAA,EAAA,EAEE,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,GAAG,CAAA,CAAA,EAAI,UAAU,GAAGA,QAAM,CAAC,SAAS,GAAG,EAAE,CAAA,CAAE,EAChE,OAAO,EAAE,MAAM,UAAU,GAAG,GAAG,EAAE,QAAQ,CAAC,YAEzC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,MAClBpB,GAAA,CAAA,IAAA,EAAA,EAEE,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,IAAI,CAAA,CAAA,EAAIA,QAAM,CAAC,CAAA,KAAA,EAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA,EAAG,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,CAAA,CAAE,EAAA,QAAA,EAEpI,MAAM,CAAC;AACN,kCAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,QAAQ;AAC9C,kCAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAA,EALd,MAAM,CAAC,GAAG,CAMZ,CACN,CAAC,EAAA,EAbG,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,CAc1B,CACN,CAAC,CACH,EAAA,CACK,CAAA,EAAA,CACF,EAAA,CACJ;AAEV;;;;ACrIA,MAAM,WAAW,GAAG;AAClB,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAc,EAAE;AACrC,IAAA,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAgB,EAAE;AACzC,IAAA,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAgB,EAAE;CAC1C;AAED,MAAM,YAAY,GAAG,CAAC,IAAY,KAAY;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;IAC9C,QAAQ,SAAS;AACf,QAAA,KAAK,GAAG;AACN,YAAA,OAAO,SAAS;AAClB,QAAA,KAAK,GAAG;AACN,YAAA,OAAO,SAAS;AAClB,QAAA,KAAK,GAAG;AACN,YAAA,OAAO,SAAS;AAClB,QAAA;AACE,YAAA,OAAO,SAAS;;AAEtB,CAAC;AAED,MAAM,SAAS,GAAG,OAChBjB,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,2CAA2C,EAAA,CAAE,EACrDA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAA,CAAE,EAC7BA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,4BAA4B,EAAA,CAAE,EACtCA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,2BAA2B,EAAA,CAAE,CAAA,EAAA,CACjC,CACP;AAED,MAAM,gBAAgB,GAAG,OACvBA,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAC/FA,kBAAU,MAAM,EAAC,gBAAgB,EAAA,CAAE,EAAA,CAC/B,CACP;AAED;;AAEG;MACU,QAAQ,GAAG,CAAC,EACvB,KAAK,GAAG,kBAAkB,EAC1B,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,SAAS,GAAG,EAAE,GACA,KAAI;IAClB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,EAAyC;AAEnF,IAAA,MAAM,aAAa,GAAG,OAAO,CAAC,MAAK;AACjC,QAAA,IAAI,CAAC,SAAS;AAAE,YAAA,OAAO,KAAK;AAC5B,QAAA,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC;AAC1D,IAAA,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAEtB,IAAA,MAAM,WAAW,GAAG;AAClB,QAAAoB,QAAM,CAAC,IAAI;QACX,SAAS;KACV,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IAE3B,QACEjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,WAAW,aACzBA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,MAAM,aAC3BpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,IAAI,YACzB,IAAI,IAAIpB,GAAA,CAAC,SAAS,EAAA,EAAA,CAAG,EAAA,CACjB,EACPA,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAEoB,QAAM,CAAC,KAAK,YAAG,KAAK,EAAA,CAAM,CAAA,EAAA,CACrC,EAENjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,IAAI,EAAA,QAAA,EAAA,CACzBpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,IAAI,EAAA,QAAA,EACxB,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAC9BpB,GAAA,CAAA,QAAA,EAAA,EAEE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,MAAM,YAAY,CAAC,GAAG,CAAC,EAChC,SAAS,EAAE,GAAGoB,QAAM,CAAC,GAAG,CAAA,CAAA,EAAI,SAAS,KAAK,GAAG,GAAGA,QAAM,CAAC,SAAS,GAAG,EAAE,CAAA,CAAE,EAAA,QAAA,EAEtE,KAAK,EAAA,EALD,KAAK,CAMH,CACV,CAAC,EAAA,CACE,EAENjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,IAAI,EAAA,QAAA,EAAA,CACxB,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,MACtBjB,IAAA,CAAA,QAAA,EAAA,EAEE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAEiB,QAAM,CAAC,QAAQ,EAC1B,OAAO,EAAE,MAAM,YAAY,GAAG,IAAI,CAAC,EAAA,QAAA,EAAA,CAEnCpB,GAAA,CAAA,MAAA,EAAA,EACE,SAAS,EAAEoB,QAAM,CAAC,QAAQ,EAC1B,KAAK,EAAE,EAAE,eAAe,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,YAElD,IAAI,CAAC,IAAI,EAAA,CACL,EACPpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,QAAQ,EAAA,QAAA,EAAG,IAAI,CAAC,WAAW,EAAA,CAAQ,EAC3DpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,OAAO,EAAA,QAAA,EAC7BpB,GAAA,CAAC,gBAAgB,EAAA,EAAA,CAAG,EAAA,CACf,KAdF,IAAI,CAAC,EAAE,CAeL,CACV,CAAC,EACD,aAAa,CAAC,MAAM,KAAK,CAAC,KACzBA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,gBAAA,EAAA,CAAsB,CACnD,CAAA,EAAA,CACG,CAAA,EAAA,CACF,CAAA,EAAA,CACF;AAEV;AAEA,QAAQ,CAAC,WAAW,GAAG,UAAU;;;;ACzGjC;MACa,mBAAmB,GAAG,CAAC,EAClC,aAAa,EACb,SAAS,EACT,WAAW,EACX,WAAW,EACX,aAAa,GAAG,EAAE,EAClB,sBAAsB,GAAG,KAAK,EAC9B,cAAc,GAAG,KAAK,EACtB,SAAS,GAAG,KAAK,EACjB,mBAAmB,GAAG,KAAK,EAC3B,aAAa,GAAG,KAAK,EACrB,OAAO,GAAG,KAAK,EACf,cAAc,EACd,MAAM,EACN,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,oBAAoB,EACpB,aAAa,EACb,SAAS,GAAG,EAAE,GACW,MACzBjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAACiB,QAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,QAAA,EAAA,CACnEjB,cAAK,SAAS,EAAEiB,QAAM,CAAC,UAAU,EAAA,QAAA,EAAA,CAC9B,CAAC,aAAa,IACbpB,IAAC,MAAM,EAAA,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,cAAc,EAAA,QAAA,EAAA,oBAAA,EAAA,CAA6B,KAEtEA,GAAA,CAAC,MAAM,IAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAEA,GAAA,CAAC,eAAe,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,qBAAe,CAC1F,EAEDG,cAAK,SAAS,EAAEiB,QAAM,CAAC,eAAe,EAAA,QAAA,EAAA,CACpCpB,IAAC,MAAM,EAAA,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,sBAAY,iBAAiB,EAAC,QAAQ,EAAE,sBAAsB,EAAE,OAAO,EAAE,gBAAgB,EAAA,QAAA,EAAEA,GAAA,CAAC,eAAe,IAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAA,CAAS,EAC7KG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAChCpB,GAAA,CAAC,MAAM,EAAA,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,IAAI,EAAA,QAAA,EAAE,WAAW,EAAA,CAAU,EAC3D,CAAC,CAAC,aAAa,CAAC,MAAM,KACrBA,GAAA,CAAA,QAAA,EAAA,EAAA,YAAA,EAAmB,QAAQ,EAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,KAAK,KAAK,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,YACtG,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,KAAKA,GAAA,CAAA,QAAA,EAAA,EAA2B,KAAK,EAAE,MAAM,CAAC,KAAK,YAAG,MAAM,CAAC,KAAK,EAAA,EAAhD,MAAM,CAAC,KAAK,CAA8C,CAAC,EAAA,CAChG,CACV,IACG,EACNA,GAAA,CAAC,MAAM,EAAA,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAA,IAAA,EAAA,YAAA,EAAY,aAAa,EAAC,OAAO,EAAE,YAAY,EAAA,QAAA,EAAEA,GAAA,CAACS,kBAAgB,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,GAAS,CAAA,EAAA,CAChI,EAEL,aAAa,IAAIT,GAAA,CAAC,MAAM,EAAA,EAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAEA,GAAA,CAAC,gBAAgB,IAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAE,OAAO,EAAE,QAAQ,2BAAqB,EACrLG,IAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEiB,QAAM,CAAC,SAAS,EAAA,QAAA,EAAA,CAAG,SAAS,EAAA,kBAAA,CAAA,EAAA,CAAwB,CAAA,EAAA,CACjE,EAEL,aAAa,KACZjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,YAAY,aACjCpB,GAAA,CAAC,MAAM,IAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,QAAQ,EAAE,mBAAmB,EAAE,OAAO,EAAE,oBAAoB,EAAA,QAAA,EAAA,sBAAA,EAAA,CAA+B,EAC/HA,GAAA,CAAC,MAAM,EAAA,EAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,6BAAuB,CAAA,EAAA,CACxH,CACP,CAAA,EAAA,CACG;;;;ACnER,MAAM,oBAAoB,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,CAAC;AAC/F,MAAM,qBAAqB,GAAG,CAAC,EAAE,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC;AAE9F;MACa,wBAAwB,GAAG,CAAC,EACvC,IAAI,EACJ,WAAW,GAAG,oBAAoB,EAClC,YAAY,GAAG,qBAAqB,EACpC,UAAU,EACV,gBAAgB,GAAG,KAAK,EACxB,SAAS,GAAG,EAAE,GACgB,MAC9BG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAACiB,QAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,QAAA,EAAA,CACpEjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CAC5BpB,aAAK,SAAS,EAAEoB,QAAM,CAAC,UAAU,EAAA,QAAA,EAAG,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,KAAKpB,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAkB,MAAM,EAAA,EAAd,KAAK,CAAgB,CAAC,EAAA,CAAO,EAC9GA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAG,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,KAAKpB,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAkB,MAAM,EAAA,EAAd,KAAK,CAAgB,CAAC,EAAA,CAAO,CAAA,EAAA,CAC5G,EACNA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EACzB,CAAC,IAAI,CAAC,MAAM,GAAGpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,oBAAA,EAAA,CAA0B,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MACpFjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,GAAG,EAAA,QAAA,EAAA,CACxBpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,IAAI,EAAA,QAAA,EAAG,GAAG,CAAC,IAAI,GAAO,EAC7CpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,MAAM,EAAA,QAAA,EAAG,GAAG,CAAC,MAAM,EAAA,CAAO,KAFlB,GAAG,CAAC,EAAE,CAGjC,CACP,CAAC,GACE,EACNpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,MAAM,EAAA,QAAA,EAC3BjB,IAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,2BAAYH,GAAA,CAACe,UAAQ,EAAA,EAAC,IAAI,EAAE,EAAE,GAAI,CAAA,EAAA,CAAS,EAAA,CAC5G,CAAA,EAAA,CACF;;;;ACtBR,MAAM,cAAc,GAAG,CAAC,KAAc,KAAI;AACxC,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,IAAI;IACvB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC;AACrD,IAAA,IAAI,KAAK;AAAE,QAAA,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF,IAAA,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;AAC9B,IAAA,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,MAAM;AACvD,CAAC;AAED,MAAMY,YAAU,GAAG,CAAC,IAAU,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;AACtF,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,IAAI,WAAW,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;AAC5C,CAAA,CAAC;MAEW,6BAA6B,GAAG,CAAC,UAAmB,EAAE,QAAiB,KAAI;AACtF,IAAA,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,CAAC;AACxC,IAAA,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,CAAC;AACpC,IAAA,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG;AAAE,QAAA,OAAO,UAAU;IACrC,IAAI,KAAK,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,OAAO,EAAE;AAAE,QAAA,OAAOA,YAAU,CAAC,KAAK,CAAC;IAC/D,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE;QAAE,OAAO,CAAA,EAAGA,YAAU,CAAC,KAAK,CAAC,CAAA,GAAA,EAAMA,YAAU,CAAC,GAAG,CAAC,CAAA,CAAE;AACjG,IAAA,OAAO,GAAGA,YAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA,GAAA,EAAM,GAAG,CAAC,OAAO,EAAE,CAAA,EAAA,EAAK,GAAG,CAAC,WAAW,EAAE,EAAE;AAC/E;AAEA,MAAM,WAAW,GAAG,OAClBxB,IAAA,CAAA,KAAA,EAAA,EAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,cAAc,EAAA,aAAA,EAAa,MAAM,EAAA,QAAA,EAAA,CACpFH,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAA,CAAG,EAC/BA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,kJAAkJ,EAAA,CAAG,CAAA,EAAA,CACzJ,CACP;AAED,MAAM,UAAU,GAAG,OACjBG,IAAA,CAAA,KAAA,EAAA,EAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAA,aAAA,EAAa,MAAM,EAAA,QAAA,EAAA,CACpHH,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAA,CAAG,EAAAA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,oCAAoC,EAAA,CAAG,CAAA,EAAA,CAC7F,CACP;AAED,MAAM,OAAO,GAA6D;AACxE,IAAA,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAEA,GAAA,CAAC,WAAW,KAAG,EAAE;AAC3D,IAAA,EAAE,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAEA,IAACW,cAAY,EAAA,EAAC,IAAI,EAAE,EAAE,GAAI,EAAE;AAC9E,IAAA,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAEX,IAAC,YAAY,EAAA,EAAC,IAAI,EAAE,EAAE,GAAI,EAAE;AACzE,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAEA,GAAA,CAACC,WAAS,EAAA,EAAC,IAAI,EAAE,EAAE,GAAI,EAAE;IAC/C,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAED,GAAA,CAAC,UAAU,EAAA,EAAA,CAAG,EAAE;AACzC,IAAA,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAEA,GAAA,CAACK,WAAS,EAAA,EAAC,IAAI,EAAE,EAAE,GAAI,EAAE;CAClD;AAED;MACa,yBAAyB,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,GAAG,oBAAoB,EAAE,SAAS,GAAG,EAAE,EAAkC,KAAI;IAChK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAW;IACjD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC;AAChD,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;QAChF,MAAM,SAAS,GAAG,OAAO,KAAK,WAAW,GAAG,QAAQ,IAAI,IAAI,CAAC,SAAS,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QAClG,MAAM,UAAU,GAAG,OAAO,KAAK,WAAW,GAAG,QAAQ,IAAI,KAAK,CAAC,SAAS,IAAI,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;QACrG,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,SAAS,GAAG,CAAC,GAAG,EAAE,CAAC;AACnF,IAAA,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAEzC,IAAA,MAAM,IAAI,GAAG,CAAC,GAAY,KAAI;QAC5B,IAAI,OAAO,KAAK,GAAG;YAAE,YAAY,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC;aAC/C;YAAE,UAAU,CAAC,GAAG,CAAC;YAAE,YAAY,CAAC,IAAI,CAAC;QAAE;AAC9C,IAAA,CAAC;AAED,IAAA,QACEF,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAACiB,QAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,QAAA,EAAA,CACjEpB,aAAK,SAAS,EAAEoB,QAAM,CAAC,MAAM,EAAA,QAAA,EAC1B,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,MAClBjB,IAAA,CAAA,QAAA,EAAA,EAA2B,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAA,QAAA,EAAA,CAC1G,MAAM,CAAC,IAAI,EAACH,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,MAAM,CAAC,KAAK,EAAA,CAAQ,EAAC,MAAM,CAAC,GAAG,KAAK,OAAO,IAAIA,GAAA,CAAA,MAAA,EAAA,EAAA,YAAA,EAAkB,SAAS,GAAG,WAAW,GAAG,YAAY,EAAA,QAAA,EAAG,SAAS,GAAG,GAAG,GAAG,GAAG,EAAA,CAAQ,CAAA,EAAA,EADhJ,MAAM,CAAC,KAAK,CAEhB,CACV,CAAC,EAAA,CACE,EACL,CAAC,UAAU,CAAC,MAAM,GAAGA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,KAAK,YAAG,YAAY,EAAA,CAAO,GAAGpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,IAAI,EAAA,QAAA,EACnG,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;AACtB,oBAAA,MAAM,MAAM,GAAgB;AAC1B,wBAAA,QAAQ,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG;wBAChC,6BAA6B,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,aAAa,CAAC;wBACrEpB,GAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAEoB,QAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,GAAG,GAAG,CAAC,EAAA,QAAA,EAAG,GAAG,CAAC,QAAQ,EAAA,CAAU;AAC5G,wBAAA,GAAG,CAAC,UAAU;AACd,wBAAA,GAAG,CAAC,aAAa;AACjB,wBAAA,GAAG,CAAC,YAAY;qBACjB;AACD,oBAAA,OAAOpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,GAAG,EAAA,QAAA,EAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAKjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,IAAI,EAAA,QAAA,EAAA,CAA6BjB,IAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEiB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAAG,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAA,EAAA,CAAQ,EAAApB,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAM,KAAK,IAAI,GAAG,EAAA,CAAO,CAAA,EAAA,EAAtI,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAwH,CAAC,EAAA,EADvK,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,QAAQ,CAEpE;AACR,gBAAA,CAAC,CAAC,EAAA,CACE,CAAA,EAAA,CACF;AAEV;;;;AClGA,MAAM,YAAY,GAAG,CAAC,KAAuB,KAAI;IAC/C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE;AAAE,QAAA,OAAO,SAAS;AAC3E,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC7D,IAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,SAAS;AACrD,CAAC;AAEM,MAAM,qBAAqB,GAAG,CAAC,KAAuB,KAAI;AAC/D,IAAA,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC;IAChC,IAAI,IAAI,KAAK,SAAS;AAAE,QAAA,OAAO,SAAS;IACxC,IAAI,IAAI,GAAG,OAAS;AAAE,QAAA,OAAO,CAAA,EAAG,CAAC,IAAI,GAAG,OAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG;IAChE,OAAO,CAAA,EAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAK,CAAC,CAAA,CAAA,CAAG;AACvC;MAEa,oBAAoB,GAAG,CAAC,EACnC,aAAa,EACb,cAAc,EACd,eAAe,EACf,WAAW,EACX,cAAc,EACd,qBAAqB,EACrB,SAAS,GAAG,EAAE,GACY,KAAI;IAC9B,MAAM,YAAY,GAAG,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC;IAEtD,QACEG,cAAK,SAAS,EAAE,CAACiB,QAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,QAAA,EAAA,CAChEpB,IAAC,MAAM,EAAA,EAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAC,iBAAiB,EAAA,CAAG,EACxDA,IAAC,MAAM,EAAA,EAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAC,iBAAiB,EAAA,CAAG,EACzDA,IAAC,MAAM,EAAA,EAAC,KAAK,EAAE,qBAAqB,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,GAAG,WAAW,CAAA,WAAA,CAAa,EAAE,MAAM,EAAC,GAAG,EAAA,CAAG,EACxGA,IAAC,MAAM,EAAA,EACL,KAAK,EAAE,cAAc,EACrB,KAAK,EAAC,iBAAiB,EACvB,OAAO,EAAE,YAAY,GAAG,CAAC,EACzB,IAAI,QACJ,OAAO,EAAE,qBAAqB,EAAA,CAC9B,CAAA,EAAA,CACE;AAEV;;;;ACFA;;AAEG;AACI,MAAM,YAAY,GAAG,CAAC,EAC3B,MAAM,GAAG,EAAE,EACX,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACxB,MAAM,EACN,SAAS,GAAG,KAAK,EACjB,SAAS,GAAG,EAAE,GACI,KAAI;AACtB,IAAA,MAAM,WAAW,GAAG;AAClB,QAAAoB,QAAM,CAAC,IAAI;QACX,SAAS,GAAGA,QAAM,CAAC,OAAO,GAAG,EAAE;QAC/B,SAAS;KACV,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IAE3B,QACEjB,cAAK,SAAS,EAAE,WAAW,EAAA,QAAA,EAAA,CACxB,CAAC,KAAK,IAAI,QAAQ,MACjBA,cAAK,SAAS,EAAEiB,QAAM,CAAC,MAAM,aAC1B,KAAK,IAAIpB,YAAI,SAAS,EAAEoB,QAAM,CAAC,KAAK,YAAG,KAAK,EAAA,CAAM,EAClD,QAAQ,IAAIpB,WAAG,SAAS,EAAEoB,QAAM,CAAC,QAAQ,YAAG,QAAQ,EAAA,CAAK,IACtD,CACP,EAEA,QAAQ,IACPpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAO,KAEhDjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,QAAQ,EAAA,QAAA,EAAA,CAC5B,iBAAiB,KAChBjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CAC5BpB,YAAI,SAAS,EAAEoB,QAAM,CAAC,YAAY,qBAAW,EAC7CpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,cAAc,EAAA,QAAA,EAClC,iBAAiB,CAAC,MAAM,CAAC,EAAA,CACtB,CAAA,EAAA,CACF,CACP,EAEA,oBAAoB,KACnBjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CAC5BpB,YAAI,SAAS,EAAEoB,QAAM,CAAC,YAAY,wBAAc,EAChDpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,cAAc,EAAA,QAAA,EAClC,oBAAoB,CAAC,MAAM,CAAC,EAAA,CACzB,CAAA,EAAA,CACF,CACP,EAEA,wBAAwB,KACvBjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CAC5BpB,YAAI,SAAS,EAAEoB,QAAM,CAAC,YAAY,mCAAyB,EAC3DpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,cAAc,EAAA,QAAA,EAClC,wBAAwB,CAAC,MAAM,CAAC,EAAA,CAC7B,CAAA,EAAA,CACF,CACP,CAAA,EAAA,CACG,CACP,EAEA,MAAM,KACLpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,MAAM,EAAA,QAAA,EAC1B,MAAM,GACH,CACP,CAAA,EAAA,CACG;AAEV;AAEA,YAAY,CAAC,WAAW,GAAG,cAAc;;;;ACnEzC;AACA,MAAM,YAAY,GAAkC,CAAC,EAAE,KAAK,EAAE,KAAI;AAChE,IAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;AAAE,QAAA,OAAOpB,mCAAc;AAC7C,IAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;AAAE,QAAA,OAAOA,wBAAO,KAAK,CAAC,CAAC,CAAC,GAAQ;AACtD,IAAA,QACEG,IAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEiB,QAAM,CAAC,YAAY,EAAA,QAAA,EAAA,CAClCpB,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,KAAK,CAAC,CAAC,CAAC,EAAA,CAAQ,EACvBG,IAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEiB,QAAM,CAAC,SAAS,EAAA,QAAA,EAAA,CAAA,GAAA,EAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA,EAAA,CAAQ,CAAA,EAAA,CACxD;AAEX,CAAC;AAED;AACA,MAAMQ,cAAY,GAAgC,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,MAC9D5B,GAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,KAAK,EAAA,QAAA,EAEjBA,kBAAU,MAAM,EAAC,gBAAgB,EAAA,CAAG,EAAA,CAChC,CACP;AAEM,MAAM,SAAS,GAA6B,CAAC,EAClD,KAAK,EACL,OAAO,GAAG,SAAS,EACnB,OAAO,GAAG,aAAa,EACvB,UAAU,GAAG,MAAM,EACnB,gBAAgB,GAAG,KAAK,EACxB,UAAU,EACV,YAAY,EACZ,SAAS,GACV,KAAI;AACH,IAAA,MAAM,WAAW,GAAG,OAAO,KAAK,WAAW;AAC3C,IAAA,MAAM,SAAS,GAAG,OAAO,KAAK,SAAS;IACvC,MAAM,eAAe,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;;AAG3C,IAAA,MAAM,SAAS,GAAG,CAAC,MAAc,KAAwB;AACvD,QAAA,MAAM,SAAS,GAAuC;AACpD,YAAA,UAAU,EAAE,UAAU;AACtB,YAAA,WAAW,EAAE,WAAW;AACxB,YAAA,cAAc,EAAE,cAAc;AAC9B,YAAA,WAAW,EAAE,WAAW;AACxB,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,WAAW,EAAE,WAAW;SACzB;QACD,OAAO,SAAS,CAAC,MAAM,CAAC,IAAK,MAAM,CAAC,WAAW,EAAyB;AAC1E,IAAA,CAAC;AAED,IAAA,QACEG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAA,EAAGiB,QAAM,CAAC,KAAK,CAAA,CAAA,EAAI,SAAS,IAAI,EAAE,CAAA,CAAE,EAAA,QAAA,EAAA,CAElDpB,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,CAAA,EAAGoB,QAAM,CAAC,MAAM,CAAA,CAAA,EAAI,WAAW,GAAGA,QAAM,CAAC,eAAe,GAAG,EAAE,CAAA,CAAA,EAAI,gBAAgB,GAAGA,QAAM,CAAC,aAAa,GAAG,EAAE,EAAE,EAAA,QAAA,EAEzH,WAAW,IACVjB,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,YAAA,EAAA,CAAqB,EACrBA,uCAAsB,EACtBA,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAoB,EACpBA,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,cAAA,EAAA,CAAuB,EACvBA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAA,MAAA,EAAA,CAAY,CAAA,EAAA,CACzC,KAEHjB,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,CAAmB,EACnBA,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,OAAA,EAAA,CAAgB,EAChBA,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAc,EACb,gBAAgB,IACfG,4BACEH,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,CAAkB,EAClBA,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAoB,CAAA,EAAA,CACnB,KAEHG,4BACEH,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,QAAA,EAAA,CAAiB,EACjBA,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAoB,EACpBA,iCAAgB,CAAA,EAAA,CACf,CACJ,EACDA,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,cAAA,EAAA,CAAuB,EACvBA,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,QAAA,EAAA,CAAiB,EACjBA,GAAA,CAAA,KAAA,EAAA,EAAA,CAAW,CAAA,EAAA,CACV,CACJ,EAAA,CACG,EAGL,KAAK,CAAC,MAAM,KAAK,CAAC,IACjBG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAC1BpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,UAAU,YAC9B,WAAW,GAAG,oBAAoB,GAAG,gBAAgB,GAClD,EACNpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,SAAS,YAC7B,YAAY,KAAK;AAChB,8BAAE;8BACA,uDAAuD,CAC1D,EAAA,CACG,CAAA,EAAA,CACF,KAEN,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,MACpBpB,GAAA,CAAA,KAAA,EAAA,EAEE,SAAS,EAAE;AACP,cAAA,EAAAoB,QAAM,CAAC,GAAG,CAAA;gBACV,WAAW,GAAGA,QAAM,CAAC,YAAY,GAAG,EAAE,CAAA;gBACtC,gBAAgB,GAAGA,QAAM,CAAC,UAAU,GAAG,EAAE;gBACzC,SAAS,GAAGA,QAAM,CAAC,OAAO,GAAG,EAAE;aAClC,EACD,OAAO,EAAE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC,EAAA,QAAA,EAE7D,WAAW,IACVjB,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EACEA,WACE,IAAI,EAAC,GAAG,EACR,SAAS,EAAEoB,QAAM,CAAC,OAAO,EACzB,OAAO,EAAE,CAAC,CAAC,KAAI;oCACb,CAAC,CAAC,cAAc,EAAE;oCAClB,CAAC,CAAC,eAAe,EAAE;oCACnB,UAAU,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC;AACrC,gCAAA,CAAC,EAAA,QAAA,EAEA,IAAI,CAAC,KAAK,EAAA,CACT,EAAA,CACA,EACNpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAA,QAAA,EAC9BpB,GAAA,CAAC,YAAY,EAAA,EAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAA,CAAI,EAAA,CACnC,EACNA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAA,QAAA,EAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,MACpBpB,IAAC,QAAQ,EAAA,EAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,GAAG,EAAE,GAAG,EAAE,EAAA,EAAtC,EAAE,CAAwC,CAC1D,CAAC,EAAA,CACE,EACNG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,eAAe,EAAA,QAAA,EAAA,CACpCpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAA,QAAA,EAAG,IAAI,CAAC,WAAW,EAAA,CAAO,EACzD,IAAI,CAAC,SAAS,KACbjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,aAAa,EAAA,QAAA,EAAA,CAAA,YAAA,EAAa,IAAI,CAAC,SAAS,CAAA,EAAA,CAAO,CACvE,CAAA,EAAA,CACG,EACNpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,OAAO,EAAA,QAAA,EAC5BpB,GAAA,CAAA,GAAA,EAAA,EACE,IAAI,EAAC,GAAG,EACR,SAAS,EAAEoB,QAAM,CAAC,QAAQ,EAC1B,OAAO,EAAE,CAAC,CAAC,KAAI;oCACb,CAAC,CAAC,cAAc,EAAE;oCAClB,CAAC,CAAC,eAAe,EAAE;oCACnB,UAAU,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC;AACrC,gCAAA,CAAC,EACD,KAAK,EAAC,qBAAqB,EAAA,QAAA,EAE3BpB,GAAA,CAAC4B,cAAY,EAAA,EAAA,CAAG,EAAA,CACd,EAAA,CACA,CAAA,EAAA,CACL,KAEHzB,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAA,QAAA,EAC9BpB,GAAA,CAAC,YAAY,EAAA,EAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAA,CAAI,EAAA,CACnC,EACNA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAA,QAAA,EAAG,IAAI,CAAC,KAAK,IAAI,GAAG,GAAO,EAC3DpB,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EACEA,GAAA,CAAA,GAAA,EAAA,EACE,IAAI,EAAC,GAAG,EACR,SAAS,EAAEoB,QAAM,CAAC,OAAO,EACzB,OAAO,EAAE,CAAC,CAAC,KAAI;oCACb,CAAC,CAAC,cAAc,EAAE;oCAClB,CAAC,CAAC,eAAe,EAAE;oCACnB,UAAU,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC;AACnC,gCAAA,CAAC,EAAA,QAAA,EAEA,IAAI,CAAC,GAAG,GACP,EAAA,CACA,EACL,gBAAgB,IACfjB,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,WAAW,YAC9B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAkB,CAAC,GAAG,CAAC,IAAI,KACzC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IACvBpB,GAAA,CAAC,iBAAiB,EAAA,EAEhB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,IAAI,KAAK,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS,EAC9C,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAA,EALpC,IAAI,CAMT,KAEFA,GAAA,CAAA,MAAA,EAAA,EAAiB,SAAS,EAAEoB,QAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,EAAA,EAAtG,IAAI,CAAsG,CACtH,CACF,CAAC,EAAA,CACE,EACNpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAA,QAAA,EAAG,IAAI,CAAC,SAAS,IAAI,GAAG,EAAA,CAAO,CAAA,EAAA,CAC9D,KAEHjB,4BACEH,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EACG,IAAI,CAAC,MAAM,IAAI,UAAU,KAAK,MAAM,IACnCA,GAAA,CAAC,iBAAiB,EAAA,EAAC,IAAI,EAAC,GAAG,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAC,MAAM,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,KAEzEA,cAAM,SAAS,EAAEoB,QAAM,CAAC,UAAU,EAAA,QAAA,EAAG,IAAI,CAAC,MAAM,IAAI,GAAG,EAAA,CAAQ,CAChE,EAAA,CACG,EACNpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAA,QAAA,EAAG,IAAI,CAAC,SAAS,IAAI,GAAG,EAAA,CAAO,EAC/DpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAA,QAAA,EAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,MACpBpB,GAAA,CAAC,QAAQ,EAAA,EAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,GAAG,EAAE,GAAG,EAAE,EAAA,EAAtC,EAAE,CAAwC,CAC1D,CAAC,EAAA,CACE,CAAA,EAAA,CACL,CACJ,EACDA,aAAK,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAA,QAAA,EAAG,IAAI,CAAC,KAAK,GAAO,EACpDpB,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EACEA,GAAA,CAAC,WAAW,EAAA,EAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,MAAgB,CAAC,GAAI,EAAA,CACrD,EACNA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,OAAO,EAAA,QAAA,EAC5BpB,WACE,IAAI,EAAC,GAAG,EACR,SAAS,EAAEoB,QAAM,CAAC,QAAQ,EAC1B,OAAO,EAAE,CAAC,CAAC,KAAI;oCACb,CAAC,CAAC,cAAc,EAAE;oCAClB,CAAC,CAAC,eAAe,EAAE;oCACnB,UAAU,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC;AACnC,gCAAA,CAAC,EACD,KAAK,EAAC,gBAAgB,YAEtBpB,GAAA,CAAC4B,cAAY,EAAA,EAAA,CAAG,EAAA,CACd,EAAA,CACA,CAAA,EAAA,CACL,CACJ,EAAA,EAhII,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,CAiI3C,CACP,CAAC,CACH,CAAA,EAAA,CACG;AAEV;;;;ACjRA,MAAM,aAAa,GAAyB;AAC1C,IAAA;AACE,QAAA,GAAG,EAAE,eAAe;AACpB,QAAA,KAAK,EAAE,eAAe;AACtB,QAAA,WAAW,EAAE,oDAAoD;AACjE,QAAA,IAAI,EAAE5B,GAAA,CAAC,YAAY,IAAC,IAAI,EAAE,EAAE,EAAA,CAAI;AACjC,KAAA;AACD,IAAA;AACE,QAAA,GAAG,EAAE,WAAW;AAChB,QAAA,KAAK,EAAE,WAAW;AAClB,QAAA,WAAW,EAAE,sCAAsC;AACnD,QAAA,IAAI,EAAEA,GAAA,CAACC,WAAS,IAAC,IAAI,EAAE,EAAE,EAAA,CAAI;AAC9B,KAAA;CACF;AAED;AACO,MAAM,kBAAkB,GAAG,CAAC,EACjC,SAAS,GAAG,QAAQ,EACpB,WAAW,EACX,KAAK,GAAG,aAAa,EACrB,WAAW,EACX,QAAQ,EACR,SAAS,GAAG,EAAE,GACU,MACxBE,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAACiB,QAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,QAAA,EAAA,CAChEpB,gBAAQ,SAAS,EAAEoB,QAAM,CAAC,MAAM,EAAA,QAAA,EAC9BpB,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,CAA6B,EAAA,CACtB,EAETA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,IAAI,EAAE,IAAI,EAAC,SAAS,EAAA,YAAA,EAAY,yBAAyB,EAAA,QAAA,EAC5E,CAAC,QAAQ,EAAE,QAAQ,CAAW,CAAC,GAAG,CAAC,CAAC,GAAG,MACvCpB,gBAEE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,KAAK,EAAA,eAAA,EACK,SAAS,KAAK,GAAG,EAChC,SAAS,EAAE,CAACoB,QAAM,CAAC,GAAG,EAAE,SAAS,KAAK,GAAG,GAAGA,QAAM,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAC5F,OAAO,EAAE,MAAM,WAAW,GAAG,GAAG,CAAC,EAAA,QAAA,EAEhC,GAAG,KAAK,QAAQ,GAAG,QAAQ,GAAG,QAAQ,EAAA,EAPlC,GAAG,CAQD,CACV,CAAC,EAAA,CACE,EAEL,QAAQ,KACP,SAAS,KAAK,QAAQ,IACpBpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EACzB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MACdjB,iBAAuB,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAEiB,QAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC,EAAA,QAAA,EAAA,CAC7FpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,QAAQ,YAAG,IAAI,CAAC,IAAI,EAAA,CAAQ,EACpDjB,IAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEiB,QAAM,CAAC,QAAQ,EAAA,QAAA,EAAA,CAC9BpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAA,QAAA,EAAG,IAAI,CAAC,KAAK,EAAA,CAAQ,EACtDpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,eAAe,EAAA,QAAA,EAAG,IAAI,CAAC,WAAW,EAAA,CAAQ,CAAA,EAAA,CAC7D,EACPpB,GAAA,CAACS,kBAAgB,EAAA,EAAC,SAAS,EAAEW,QAAM,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAA,CAAI,CAAA,EAAA,EAN9C,IAAI,CAAC,GAAG,CAOZ,CACV,CAAC,EAAA,CACE,KAENpB,WAAG,SAAS,EAAEoB,QAAM,CAAC,UAAU,EAAA,QAAA,EAAA,6CAAA,EAAA,CAAiD,CACjF,CACF,CAAA,EAAA,CACG;;;;ACZR,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC;AAE9E,MAAM,UAAU,GAAG,CAAC,KAAc,KAAI;AACpC,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,EAAE;AACrB,IAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;IAC5B,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AAAE,QAAA,OAAO,KAAK;IAC9C,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAClH,CAAC;AAED,MAAM,OAAO,GAAG,CAAC,EAAE,IAAI,EAAoB,MACzCpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,CAACoB,QAAM,CAAC,OAAO,EAAEA,QAAM,CAAC,CAAA,IAAA,EAAO,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAG,IAAI,EAAA,CAAQ,CACxG;AAED,MAAM,UAAU,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAqD,KAAI;AAC9F,IAAA,MAAM,KAAK,GAAG,MAAM,GAAG,qBAAqB,GAAG,SAAS,KAAK,cAAc,GAAG,cAAc,GAAG,SAAS,KAAK,YAAY,GAAG,YAAY,GAAG,UAAU;AACrJ,IAAA,OAAOpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,CAACoB,QAAM,CAAC,MAAM,EAAE,MAAM,GAAGA,QAAM,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,QAAA,EAAG,KAAK,GAAQ;AACtH,CAAC;AAED;AACO,MAAM,mBAAmB,GAAG,CAAC,EAClC,QAAQ,EACR,eAAe,EACf,aAAa,EACb,KAAK,EACL,YAAY,EACZ,eAAe,EACf,WAAW,EACX,WAAW,GAAG,qBAAqB,EACnC,WAAW,GAAG,gDAAgD,EAC9D,UAAU,GAAG,EAAE,EACf,SAAS,GAAG,EAAE,EACd,QAAQ,GAAG,EAAE,EACb,MAAM,GAAG,KAAK,EACd,SAAS,GAAG,MAAM,EAClB,MAAM,EACN,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,aAAa,EACb,SAAS,GAAG,EAAE,GACW,KAAI;IAC7B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAe,YAAY,CAAC;IAC5D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAkB,MAAM,CAAC;IACzD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AAEzC,IAAA,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AACnE,QAAA,IAAI,IAAI,KAAK,MAAM,EAAE;YACnB,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC;YAChD,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC;AAChD,YAAA,MAAM,WAAW,GAAG,KAAK,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,KAAK;AACzD,YAAA,MAAM,WAAW,GAAG,KAAK,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,KAAK;AACzD,YAAA,OAAO,WAAW,GAAG,WAAW,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC1E;QACA,OAAO,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC7C,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAEvB,IAAA,QACEjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAACiB,QAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,mBAAA,EAAoB,uBAAuB,EAAA,QAAA,EAAA,CAC3GjB,IAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAEiB,QAAM,CAAC,MAAM,EAAA,QAAA,EAAA,CAC9BjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,SAAS,EAAA,QAAA,EAAA,CAC9BpB,GAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAA,YAAA,EAAY,MAAM,EAAC,SAAS,EAAEoB,QAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAA,QAAA,EAAEpB,GAAA,CAAC,eAAe,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,GAAS,EACvHG,IAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,CAAIH,GAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,CAAyB,EAAAA,GAAA,CAACS,kBAAgB,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAAT,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,QAAQ,EAAA,CAAQ,CAAA,EAAA,CAAK,EACvFG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,aAAa,EAAA,QAAA,EAAA,CAClCpB,GAAA,CAAC,UAAU,EAAA,EAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAA,CAAI,EACpDA,GAAA,CAAC,MAAM,EAAA,EAAC,OAAO,EAAC,SAAS,EAAC,QAAQ,EAAEA,GAAA,CAAC,YAAY,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAE,QAAQ,EAAE,WAAW,KAAK,qBAAqB,EAAE,OAAO,EAAE,cAAc,EAAA,QAAA,EAAA,eAAA,EAAA,CAAwB,CAAA,EAAA,CAC5J,CAAA,EAAA,CACF,EACL,CAAC,eAAe,IAAI,aAAa,MAChCG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CAC5BpB,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,UAAU,CAAC,eAAe,CAAC,EAAA,CAAQ,EAAAA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,QAAQ,EAAA,QAAA,EAAA,QAAA,EAAA,CAAU,EAAApB,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,UAAU,CAAC,aAAa,CAAC,EAAA,CAAQ,CAAA,EAAA,CACxH,CACP,EACDG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CAC5BjB,IAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAMH,GAAA,CAACC,WAAS,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAC,KAAK,EAAA,QAAA,CAAA,EAAA,CAAc,EACjDE,IAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAMH,GAAA,CAAC,QAAQ,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAA,gBAAA,EAAe,YAAY,CAAC,cAAc,EAAE,EAAA,KAAA,CAAA,EAAA,CAAW,CAAA,EAAA,CAC/E,CAAA,EAAA,CACC,EAETG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,MAAM,EAAA,QAAA,EAAA,CAC3BjB,IAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAEiB,QAAM,CAAC,IAAI,EAAA,QAAA,EAAA,CAC3BjB,IAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,CACEH,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAA,iBAAA,EAAA,CAAuB,EACrDpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAA,QAAA,EAC7B,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,qBAAqB,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,MACxFjB,IAAA,CAAA,QAAA,EAAA,EAEE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,CAACiB,QAAM,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,EAAE,GAAGA,QAAM,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAChG,OAAO,EAAE,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAA,QAAA,EAAA,CAEhCpB,GAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAS,IAAI,CAAC,KAAK,EAAA,CAAU,EAAAA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,IAAI,CAAC,MAAM,EAAA,CAAQ,CAAA,EAAA,EALlD,IAAI,CAAC,EAAE,CAML,CACV,CAAC,EAAA,CACE,IACF,EACL,QAAQ,CAAC,MAAM,GAAG,CAAC,KAClBA,GAAA,CAAC,MAAM,EAAA,EAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAA,QAAA,EAAA,kBAAA,EAAA,CAA2B,CAC1G,EACDG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAChCpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAA,SAAA,EAAA,CAAe,EAC7CpB,GAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAS,WAAW,EAAA,CAAU,EAC9BA,GAAA,CAAA,GAAA,EAAA,EAAA,QAAA,EAAI,WAAW,EAAA,CAAK,EACpBA,GAAA,CAAC,MAAM,EAAA,EAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,SAAS,EAAA,IAAA,EAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAEA,GAAA,CAAC,YAAY,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAE,OAAO,EAAE,eAAe,EAAA,QAAA,EAAA,gBAAA,EAAA,CAAyB,CAAA,EAAA,CACnJ,CAAA,EAAA,CACA,EAERG,IAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEiB,QAAM,CAAC,IAAI,EAAA,QAAA,EAAA,CAC1BpB,GAAA,CAAA,SAAA,EAAA,EAAS,SAAS,EAAEoB,QAAM,CAAC,YAAY,YACrCpB,GAAA,CAAC,qBAAqB,EAAA,EAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAA,CAAI,EAAA,CAC9I,EAEVG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,OAAO,aAC5BpB,GAAA,CAAC,kBAAkB,EAAA,EAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAA,CAAI,EAC1H,MAAM,IAAIA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,aAAa,EAAA,QAAA,EAAA,iEAAA,EAAA,CAAmE,CAAA,EAAA,CAC/G,EAEL,IAAI,KAAK,YAAY,IACpBjB,IAAA,CAAA,SAAA,EAAA,EAAA,QAAA,EAAA,CACG,CAAC,MAAM,KACNA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,YAAY,EAAA,QAAA,EAAA,CACjCjB,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA,CAAS,UAAU,CAAC,MAAM,EAAA,aAAA,CAAA,EAAA,CAAqB,EAC/CA,IAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,CAAKH,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,CAAqB,EAAAA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,UAAU,EAAA,QAAA,EACxD,CAAC,MAAM,EAAE,MAAM,CAAW,CAAC,GAAG,CAAC,CAAC,MAAM,MACtCpB,GAAA,CAAA,QAAA,EAAA,EAAqB,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,IAAI,KAAK,MAAM,GAAGoB,QAAM,CAAC,UAAU,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAAA,QAAA,EAAG,MAAM,EAAA,EAAlH,MAAM,CAAsH,CAC1I,CAAC,EAAA,CACG,EAAApB,GAAA,CAAC,MAAM,EAAA,EAAC,IAAI,EAAC,IAAI,EAAC,QAAQ,EAAEA,GAAA,CAACe,UAAQ,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAE,OAAO,EAAE,eAAe,EAAA,QAAA,EAAA,gBAAA,EAAA,CAAyB,CAAA,EAAA,CAAM,CAAA,EAAA,CAC9G,CACP,EACDf,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAA,QAAA,EAC9BjB,IAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EAAA,CACEH,GAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EAAOG,IAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,CAAIH,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,GAAA,EAAA,CAAU,EAAAA,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAkB,EAAAA,+BAAa,EAAAA,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,eAAA,EAAA,CAAsB,EAAAA,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,CAAiB,EAAAA,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,CAAiB,EAAAA,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,CAAgB,EAAAA,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAa,EAAAA,GAAA,CAAA,IAAA,EAAA,EAAA,CAAM,CAAA,EAAA,CAAK,EAAA,CAAQ,EAC5JG,IAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EAAA,CACG,CAAC,gBAAgB,CAAC,MAAM,IAAIH,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAIA,GAAA,CAAA,IAAA,EAAA,EAAI,OAAO,EAAE,CAAC,EAAE,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,0EAAA,EAAA,CAA+E,GAAK,EAC3J,gBAAgB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,MACrCjB,IAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,CACEH,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAK,KAAK,GAAG,CAAC,EAAA,CAAM,EACpBG,IAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,CAAIH,GAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAS,SAAS,CAAC,QAAQ,EAAA,CAAU,EAAAG,IAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,IAAA,EAAS,SAAS,CAAC,SAAS,CAAA,EAAA,CAAQ,IAAK,EAClFH,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAIA,GAAA,CAAC,OAAO,EAAA,EAAC,IAAI,EAAE,SAAS,CAAC,YAAY,EAAA,CAAI,EAAA,CAAK,EAClDA,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAK,SAAS,CAAC,aAAa,IAAI,GAAG,EAAA,CAAM,EACzCG,IAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,CAAK,SAAS,CAAC,cAAc,IAAI,CAAC,EAAA,KAAA,CAAA,EAAA,CAAS,EAC3CA,IAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,CAAK,SAAS,CAAC,aAAa,IAAI,CAAC,EAAA,KAAA,CAAA,EAAA,CAAS,EAC1CA,IAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,CAAK,SAAS,CAAC,aAAa,IAAI,CAAC,EAAA,KAAA,CAAA,EAAA,CAAS,EAC1CH,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAK,SAAS,CAAC,cAAc,IAAI,GAAG,EAAA,CAAM,EAC1CA,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAK,CAAC,MAAM,IAAIA,GAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAA,YAAA,EAAa,CAAA,OAAA,EAAU,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAA,CAAE,EAAE,SAAS,EAAEoB,QAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,iBAAiB,GAAG,SAAS,CAAC,EAAA,QAAA,EAAEpB,GAAA,CAACmB,WAAS,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAA,CAAS,EAAA,CAAM,CAAA,EAAA,EATjN,SAAS,CAAC,EAAE,CAUhB,CACN,CAAC,CAAA,EAAA,CACI,CAAA,EAAA,CACF,EAAA,CACJ,CAAA,EAAA,CACE,KAEVhB,IAAA,CAAA,SAAA,EAAA,EAAA,QAAA,EAAA,CACG,CAAC,MAAM,IAAIA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,YAAY,EAAA,QAAA,EAAA,CAAEjB,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA,CAAS,SAAS,CAAC,MAAM,EAAA,kBAAA,CAAA,EAAA,CAA0B,EAAAH,GAAA,CAAC,MAAM,IAAC,IAAI,EAAC,IAAI,EAAC,QAAQ,EAAEA,GAAA,CAACe,UAAQ,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAE,OAAO,EAAE,cAAc,EAAA,QAAA,EAAA,eAAA,EAAA,CAAwB,CAAA,EAAA,CAAM,EAC7Mf,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAA,QAAA,EAC9BjB,IAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EAAA,CAAOH,GAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EAAOG,IAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,CAAIH,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAkB,EAAAA,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,CAAiB,EAAAA,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,QAAA,EAAA,CAAe,EAAAA,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,OAAA,EAAA,CAAc,EAAAA,GAAA,CAAA,IAAA,EAAA,EAAA,CAAM,CAAA,EAAA,CAAK,EAAA,CAAQ,EACnGA,GAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EAAQ,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,KAAKG,IAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,CAAkBH,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAIA,GAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAS,IAAI,CAAC,IAAI,EAAA,CAAU,EAAA,CAAK,EAAAA,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAK,IAAI,CAAC,QAAQ,EAAA,CAAM,EAAAG,IAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,CAAK,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAA,KAAA,CAAA,EAAA,CAAS,EAAAA,IAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,CAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,EAAA,KAAA,CAAA,EAAA,CAAS,EAAAH,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAK,CAAC,MAAM,IAAIA,GAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAA,YAAA,EAAa,UAAU,IAAI,CAAC,IAAI,CAAA,CAAE,EAAE,SAAS,EAAEoB,QAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAA,QAAA,EAAEpB,GAAA,CAACmB,WAAS,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAA,CAAS,EAAA,CAAM,CAAA,EAAA,EAA/V,IAAI,CAAC,EAAE,CAA6V,CAAC,EAAA,CAAS,CAAA,EAAA,CACjZ,EAAA,CACJ,CAAA,EAAA,CACE,CACX,EAEA,CAAC,MAAM,KACNhB,IAAA,CAAA,SAAA,EAAA,EAAS,SAAS,EAAEiB,QAAM,CAAC,QAAQ,EAAA,QAAA,EAAA,CACjCpB,GAAA,CAAC,UAAU,EAAA,EAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAA,CAAI,EACnDA,qBAAI,SAAS,KAAK,cAAc,GAAG,mFAAmF,GAAG,sDAAsD,EAAA,CAAK,EACpLG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,eAAe,EAAA,QAAA,EAAA,CACnC,SAAS,KAAK,MAAM,IAAIpB,GAAA,CAAC,MAAM,EAAA,EAAC,OAAO,EAAE,aAAa,EAAA,QAAA,EAAA,uBAAA,EAAA,CAAgC,EACtF,SAAS,KAAK,cAAc,IAAIG,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CAAEJ,GAAA,CAAC,MAAM,EAAA,EAAC,OAAO,EAAE,WAAW,EAAA,QAAA,EAAA,qBAAA,EAAA,CAA8B,EAAAA,GAAA,CAAC,MAAM,EAAA,EAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,aAAa,EAAA,QAAA,EAAA,cAAA,EAAA,CAAuB,CAAA,EAAA,CAAG,CAAA,EAAA,CAC3K,CAAA,EAAA,CACE,CACX,CAAA,EAAA,CACI,CAAA,EAAA,CACH,CAAA,EAAA,CACF;AAEV;;;;ACpNA,MAAM,UAAU,GAAG,CAAC,KAAc,KAAK,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;AAErE,MAAM,YAAY,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,GAAG,KAAK,EAA+D,MACvHG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAC1BjB,IAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,SAAS,GAAGiB,QAAM,CAAC,cAAc,GAAGA,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAC9D,KAAK,EACL,SAAS,IAAIpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,YAAY,EAAA,CAAI,CAAA,EAAA,CACjD,EACPpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,UAAU,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAO,CAAA,EAAA,CAC/C,CACP;AAED,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAA0C,MAC9EjB,IAAA,CAAA,SAAA,EAAA,EAAS,SAAS,EAAEiB,QAAM,CAAC,IAAI,EAAA,QAAA,EAAA,CAC7BpB,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAK,KAAK,EAAA,CAAM,EAChBA,aAAK,SAAS,EAAEoB,QAAM,CAAC,QAAQ,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAO,CAAA,EAAA,CACzC,CACX;AAED,MAAM,iBAAiB,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,GAAG,EAAE,EAA+C,KAAI;IAClG,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;IAClG,IAAI,CAAC,aAAa,CAAC,MAAM;AAAE,QAAA,OAAO,IAAI;IACtC,QACEpB,GAAA,CAAC,WAAW,EAAA,EAAC,KAAK,EAAE,KAAK,EAAA,QAAA,EACtB,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,MAChCG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,aAAa,EAAA,QAAA,EAAA,CACjC,OAAO,CAAC,IAAI,IAAIpB,GAAA,CAAC,YAAY,EAAA,EAAC,KAAK,EAAC,OAAO,EAAA,QAAA,EAACA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,OAAO,CAAC,IAAI,GAAQ,EAAA,CAAe,EACtF,OAAO,CAAC,KAAK,IAAIA,GAAA,CAAC,YAAY,EAAA,EAAC,KAAK,EAAC,QAAQ,EAAA,QAAA,EAACA,GAAA,CAAA,GAAA,EAAA,EAAG,IAAI,EAAE,CAAA,OAAA,EAAU,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA,CAAE,EAAA,QAAA,EAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAA,CAAK,EAAA,CAAe,EAC5I,OAAO,CAAC,KAAK,IAAIA,GAAA,CAAC,YAAY,EAAA,EAAC,KAAK,EAAC,QAAQ,YAACA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,OAAO,CAAC,KAAK,EAAA,CAAQ,EAAA,CAAe,CAAA,EAAA,EAHjD,CAAA,EAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE,CAIjG,CACP,CAAC,EAAA,CACU;AAElB,CAAC;AAED,MAAM,aAAa,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAA4C,MACjFG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,aAAa,EAAA,QAAA,EAAA,CAClCpB,0BAAS,KAAK,EAAA,CAAU,EACvB,OAAO,EAAE,IAAI,IAAIA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,OAAO,CAAC,IAAI,EAAA,CAAQ,EAC5C,OAAO,EAAE,KAAK,IAAIA,GAAA,CAAA,GAAA,EAAA,EAAG,IAAI,EAAE,CAAA,OAAA,EAAU,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA,CAAE,YAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAA,CAAK,EACjG,OAAO,EAAE,KAAK,IAAIG,IAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAO,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,IAAIH,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,CAAgB,CAAA,EAAA,CAAQ,CAAA,EAAA,CAChF,CACP;AAED,MAAM,cAAc,GAAG,CAAC,EAAE,QAAQ,GAAG,EAAE,EAAgC,MACrEA,GAAA,CAAAI,QAAA,EAAA,EAAA,QAAA,EACG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,MAC3BD,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,WAAW,aAChCpB,GAAA,CAAC,aAAa,IAAC,KAAK,EAAC,eAAe,EAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAA,CAAI,EAC/DA,GAAA,CAAC,aAAa,EAAA,EAAC,KAAK,EAAC,oBAAoB,EAAC,OAAO,EAAE,OAAO,CAAC,UAAU,GAAI,CAAA,EAAA,EAFlC,CAAA,EAAG,OAAO,CAAC,KAAK,EAAE,KAAK,IAAI,OAAO,CAAC,UAAU,EAAE,KAAK,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE,CAGlG,CACP,CAAC,EAAA,CACD,CACJ;AAED,MAAM,YAAY,GAAG,CAAC,EAAE,KAAK,EAAgC,MAC3DA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,WAAW,EAAA,QAAA,EAC/B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAKpB,GAAA,CAAC,iBAAiB,EAAA,EAAkB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAtD,IAAI,CAAC,KAAK,CAAgD,CAAC,EAAA,CACpG,CACP;AAED;AACO,MAAM,aAAa,GAAG,CAAC,EAC5B,KAAK,GAAG,sBAAsB,EAC9B,KAAK,EACL,YAAY,GAAG,sCAAsC,EACrD,IAAI,EACJ,OAAO,EACP,KAAK,GAAG,EAAE,EACV,QAAQ,EACR,SAAS,GAAG,EAAE,GACK,KAAI;IACvB,MAAM,aAAa,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IACpF,IAAI,aAAa,KAAK,SAAS;AAAE,QAAA,OAAO,IAAI;IAE5C,IAAI,aAAa,KAAK,OAAO,IAAI,aAAa,KAAK,OAAO,EAAE;QAC1D,QACEA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,aAAa,EAAA,QAAA,EAClCpB,GAAA,CAAA,KAAA,EAAA,EAAK,IAAI,EAAE,aAAa,KAAK,OAAO,GAAG,OAAO,GAAG,QAAQ,EAAE,SAAS,EAAE,aAAa,KAAK,OAAO,GAAGoB,QAAM,CAAC,KAAK,GAAGA,QAAM,CAAC,OAAO,EAAA,QAAA,EAC5H,aAAa,KAAK,OAAO,GAAG,YAAY,GAAG,mCAAmC,EAAA,CAC3E,EAAA,CACF;IAEV;IAEA,QACEpB,aAAK,SAAS,EAAE,CAACoB,QAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,QAAA,EAChEjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,SAAS,EAAA,QAAA,EAAA,CAC9BpB,GAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAEoB,QAAM,CAAC,MAAM,EAAA,QAAA,EAAEpB,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAK,KAAK,EAAA,CAAM,GAAS,EAC3DA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,QAAQ,EAAA,QAAA,EAC7BjB,IAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,OAAO,KAAK,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,EAAA,QAAA,EAAA,CAAEH,IAAC,WAAW,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,aAAc,EAAA,CACrG,EAEL,QAAQ,KAAK,IAAI,IAChBG,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACG,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,KAC5DD,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,WAAW,aAChCpB,GAAA,CAAC,iBAAiB,IAAC,KAAK,EAAC,iBAAiB,EAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,GAAI,EAC7EA,GAAA,CAAC,iBAAiB,EAAA,EAAC,KAAK,EAAC,cAAc,EAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,GAAI,CAAA,EAAA,CACnE,CACP,EAEDG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAC1BjB,IAAA,CAAC,WAAW,EAAA,EAAC,KAAK,EAAC,+CAA+C,EAAA,QAAA,EAAA,CAChEH,GAAA,CAAC,YAAY,EAAA,EAAC,KAAK,EAAC,iBAAiB,EAAA,QAAA,EAACA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,CAAuC,EAAA,CAAe,EAC5FA,IAAC,YAAY,EAAA,EAAC,KAAK,EAAC,mBAAmB,EAAA,QAAA,EAACA,yCAAyB,EAAA,CAAe,EAChFA,GAAA,CAAC,YAAY,EAAA,EAAC,KAAK,EAAC,+BAA+B,EAAC,SAAS,EAAA,IAAA,EAAA,QAAA,EAACA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAA,QAAA,EAAA,cAAA,EAAA,CAAqB,EAAA,CAAe,EACnIpB,IAAC,YAAY,EAAA,EAAC,KAAK,EAAC,QAAQ,EAAA,QAAA,EAACA,WAAG,IAAI,EAAC,oCAAoC,EAAA,QAAA,EAAA,6BAAA,EAAA,CAAgC,EAAA,CAAe,CAAA,EAAA,CAC5G,EAEdG,IAAA,CAAC,WAAW,EAAA,EAAC,KAAK,EAAC,+BAA+B,aAChDH,GAAA,CAAC,YAAY,EAAA,EAAC,KAAK,EAAC,iBAAiB,YAACA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,CAAuC,EAAA,CAAe,EAC5FA,GAAA,CAAC,YAAY,IAAC,KAAK,EAAC,mBAAmB,EAAA,QAAA,EAACA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,cAAA,EAAA,CAAyB,EAAA,CAAe,EAChFA,GAAA,CAAC,YAAY,EAAA,EAAC,KAAK,EAAC,+BAA+B,EAAC,SAAS,EAAA,IAAA,EAAA,QAAA,EAACA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAA,QAAA,EAAA,cAAA,EAAA,CAAqB,EAAA,CAAe,EACnIpB,GAAA,CAAC,YAAY,IAAC,KAAK,EAAC,QAAQ,EAAA,QAAA,EAACA,GAAA,CAAA,GAAA,EAAA,EAAG,IAAI,EAAC,oCAAoC,EAAA,QAAA,EAAA,6BAAA,EAAA,CAAgC,EAAA,CAAe,CAAA,EAAA,CAC5G,EAEb,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,IAAIA,IAAC,WAAW,EAAA,EAAC,KAAK,EAAC,aAAa,EAAA,QAAA,EAACA,IAAC,cAAc,EAAA,EAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAA,CAAI,EAAA,CAAc,EACzI,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,KAChCG,IAAA,CAAC,WAAW,EAAA,EAAC,KAAK,EAAC,0BAA0B,EAAA,QAAA,EAAA,CAC3CH,GAAA,CAAC,cAAc,EAAA,EAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,GAAI,EACrDA,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAEoB,QAAM,CAAC,mBAAmB,EAAA,QAAA,EAAA,4CAAA,EAAA,CAAgD,CAAA,EAAA,CAC5E,CACf,EACA,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,KAChCpB,IAAC,WAAW,EAAA,EAAC,KAAK,EAAC,aAAa,EAAA,QAAA,EAC7B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,MAC1CG,cAAK,SAAS,EAAEiB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAChCpB,IAAC,aAAa,EAAA,EAAC,KAAK,EAAC,eAAe,EAAC,OAAO,EAAE,OAAO,EAAA,CAAI,EACzDA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,aAAa,EAAA,CAAI,CAAA,EAAA,EAFD,CAAA,EAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,IAAI,KAAK,CAAA,CAAE,CAG9E,CACP,CAAC,EAAA,CACU,CACf,CAAA,EAAA,CACG,CAAA,EAAA,CACL,IACDpB,IAAC,YAAY,EAAA,EAAC,KAAK,EAAE,KAAK,EAAA,CAAI,CAAC,EAEnCG,IAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAEiB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CAC/BpB,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,CAAoE,EACpEA,GAAA,CAAA,GAAA,EAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,CAAwD,EACxDG,IAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,CAAKH,yCAAyB,EAAAA,GAAA,CAAA,GAAA,EAAA,EAAG,IAAI,EAAC,uCAAuC,EAAA,QAAA,EAAA,gCAAA,EAAA,CAAmC,IAAM,CAAA,EAAA,CAC/G,CAAA,EAAA,CACL,EAAA,CACF;AAEV;;;;ACnGA,MAAM,OAAO,GAA4E;IACvF,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,wFAAwF,EAAE;IACxJ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,mFAAmF,EAAE;IAC7I,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,2DAA2D,EAAE;CACjH;AAED,MAAM,eAAe,GAAqD;AACxE,IAAA,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,wBAAwB,EAAE;AACjD,IAAA,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,uBAAuB,EAAE;AACpD,IAAA,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE;AAC5C,IAAA,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,sBAAsB,EAAE;AAClD,IAAA,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,wBAAwB,EAAE;CAClD;AAED,MAAM,WAAW,GAAG,CAAC,IAAyB,KAAK,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE;AAC3F,MAAM,UAAU,GAAG,CAAC,EAAE,IAAI,EAAqC,KAAK,IAAI,KAAK,WAAW,GAAGA,GAAA,CAAC,QAAQ,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,GAAGA,GAAA,CAACgB,UAAQ,EAAA,EAAC,IAAI,EAAE,EAAE,GAAI;AAE1I,MAAM,YAAY,GAAG,MAAMb,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,QAAQ,EAAA,QAAA,EAAA,CAAEpB,GAAA,CAAA,GAAA,EAAA,EAAA,CAAK,EAAAA,GAAA,CAAA,GAAA,EAAA,EAAA,CAAK,EAAAA,YAAK,EAAAA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,CAAwB,IAAM;AACzG,MAAM,UAAU,GAAG,CAAC,EAAE,OAAO,EAAuB,KAAKG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAAEpB,GAAA,CAACc,WAAS,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAAd,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,OAAO,EAAA,CAAQ,CAAA,EAAA,CAAM;AAC1I,MAAM,UAAU,GAAG,CAAC,EAAE,OAAO,EAA2B,KAAKG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAAEpB,IAACa,aAAW,EAAA,EAAC,IAAI,EAAE,EAAE,GAAI,EAAAb,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,CAAqC,EAAAG,IAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,OAAO,aAAEH,GAAA,CAAC,WAAW,IAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAA,OAAA,CAAA,EAAA,CAAc,IAAM;AAE9O,MAAM,aAAa,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAqE,MACzGG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,SAAS,EAAA,QAAA,EAAA,CAC9BjB,cAAK,SAAS,EAAE,CAACiB,QAAM,CAAC,QAAQ,EAAEA,QAAM,CAAC,aAAa,EAAEA,QAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,QAAA,EAAA,CAAEpB,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,aAAA,EAAA,CAAwB,EAAAA,kCAAkB,EAAAA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,OAAA,EAAA,CAAkB,CAAA,EAAA,CAAM,EACtJ,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,MAC9DG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAACiB,QAAM,CAAC,QAAQ,EAAEA,QAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,WAAA,EAAa,KAAK,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,aACxGpB,GAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAS,MAAM,CAAC,QAAQ,GAAU,EAAAA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,MAAM,CAAC,KAAK,EAAA,CAAQ,EAAAA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAA,QAAA,EAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAKpB,GAAA,CAAA,GAAA,EAAA,EAAG,KAAK,EAAE,IAAI,EAAA,QAAA,EAAc,IAAI,EAAA,EAAX,IAAI,CAAY,CAAC,EAAA,CAAQ,CAAA,EAAA,EAD3D,CAAA,EAAG,MAAM,CAAC,QAAQ,CAAA,CAAA,EAAI,KAAK,EAAE,CAExI,CACP,CAAC,CAAA,EAAA,CACE,CACP;AAED,MAAM,UAAU,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,EAA+F,MACvJG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,SAAS,EAAA,QAAA,EAAA,CAC9BjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAACiB,QAAM,CAAC,QAAQ,EAAEA,QAAM,CAAC,UAAU,EAAEA,QAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,QAAA,EAAA,CAAEpB,qCAAqB,EAAAA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAgB,EAAAA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAgB,EAAAA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,QAAA,EAAA,CAAmB,IAAM,EAC/J,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,MAC9DG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAACiB,QAAM,CAAC,QAAQ,EAAEA,QAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,WAAA,EAAa,KAAK,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,EAAA,QAAA,EAAA,CACrGpB,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,MAAM,CAAC,QAAQ,EAAA,CAAQ,EAAAG,iBAAQ,SAAS,EAAEiB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CAAG,MAAM,CAAC,WAAW,IAAIpB,GAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,MAAM,CAAC,WAAW,EAAE,GAAG,EAAC,EAAE,EAAA,CAAG,EAAE,MAAM,CAAC,OAAO,CAAA,EAAA,CAAU,EAAAA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE,GAAGoB,QAAM,CAAC,UAAU,GAAG,EAAE,EAAA,QAAA,EAAG,MAAM,CAAC,GAAG,EAAA,CAAQ,EAAApB,GAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAS,MAAM,CAAC,MAAM,EAAA,CAAU,KADhK,CAAA,EAAG,MAAM,CAAC,QAAQ,CAAA,CAAA,EAAI,KAAK,EAAE,CAErI,CACP,CAAC,EACFG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CAAEjB,IAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAO,OAAO,CAAC,MAAM,EAAA,gBAAA,EAAgB,OAAO,CAAC,MAAM,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,CAAA,EAAA,CAAQ,EAAAA,IAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,QAAA,EAAYH,GAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAS,WAAW,GAAU,CAAA,EAAA,CAAO,CAAA,EAAA,CAAM,CAAA,EAAA,CAC/J,CACP;AAED,MAAM,QAAQ,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAoH,MAC/JA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,QAAQ,YAC5B,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAChFjB,IAAA,CAAA,GAAA,EAAA,EAAG,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,qBAAqB,EAAA,QAAA,EAAA,CAAeA,IAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAMH,GAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAS,IAAI,CAAC,KAAK,EAAA,CAAU,EAAC,IAAI,CAAC,IAAI,IAAIA,GAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EAAQ,IAAI,CAAC,IAAI,EAAA,CAAS,CAAA,EAAA,CAAQ,EAAAA,gCAAQ,CAAA,EAAA,EAApG,IAAI,CAAC,EAAE,CAAiG,KAE3KG,IAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,MAAM,UAAU,GAAG,cAAc,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,EAAA,QAAA,EAAA,CAAgBA,IAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAMH,0BAAS,IAAI,CAAC,KAAK,EAAA,CAAU,EAAC,IAAI,CAAC,IAAI,IAAIA,yBAAQ,IAAI,CAAC,IAAI,EAAA,CAAS,IAAQ,EAAAA,GAAA,CAAA,GAAA,EAAA,EAAA,QAAA,EAAA,QAAA,EAAA,CAAQ,CAAA,EAAA,EAApG,IAAI,CAAC,EAAE,CAAsG,CAClN,CAAC,EAAA,CACE,CACP;AAED,MAAM,UAAU,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAA8E,KAAI;IACxH,IAAI,MAAM,CAAC,eAAe;AAAE,QAAA,OAAOA,GAAA,CAAC,aAAa,EAAA,EAAC,OAAO,EAAE,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,GAAI;IACxG,IAAI,MAAM,CAAC,aAAa;QAAE,OAAOA,GAAA,CAAC,UAAU,EAAA,EAAC,OAAO,EAAE,MAAM,CAAC,aAAa,EAAE,WAAW,EAAE,MAAM,CAAC,iBAAiB,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAA,CAAI;IACxI,IAAI,MAAM,CAAC,iBAAiB;AAAE,QAAA,OAAOA,IAAC,QAAQ,EAAA,EAAC,OAAO,EAAE,MAAM,CAAC,iBAAiB,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,GAAI;AAC/H,IAAA,OAAOA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,IAAI,EAAA,QAAA,EAAG,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,KAAKjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,GAAG,EAAA,QAAA,EAAA,CAAkCjB,IAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,CAAKH,GAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAS,GAAG,CAAC,OAAO,EAAA,CAAU,EAAC,GAAG,CAAC,SAAS,IAAIA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,GAAG,CAAC,SAAS,EAAA,CAAQ,CAAA,EAAA,CAAO,EAAC,GAAG,CAAC,KAAK,IAAIA,yBAAQ,GAAG,CAAC,KAAK,EAAA,CAAS,EAAE,GAAG,CAAC,KAAK,IAAIA,qBAAI,GAAG,CAAC,KAAK,EAAA,CAAK,KAA5L,CAAA,EAAG,GAAG,CAAC,OAAO,IAAI,KAAK,CAAA,CAAE,CAA0K,CAAC,GAAO;AACpT,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,qBAAqB,EAAE,UAAU,EAWhI,KAAI;IACH,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC/C,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,KAAK,WAAW;AAC/C,IAAA,MAAM,WAAW,GAAG,CAAC,KAAa,KAAI;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC,CAAC;QAClF,aAAa,CAAC,IAAI,CAAC;QACnB,qBAAqB,GAAG,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;AAC5D,IAAA,CAAC;AACD,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM;AAEpC,IAAA,QACEG,IAAA,CAAA,SAAA,EAAA,EAAS,SAAS,EAAE,CAACiB,QAAM,CAAC,MAAM,EAAE,QAAQ,GAAGA,QAAM,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,QAAA,EAAA,CAC3FjB,IAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAEiB,QAAM,CAAC,YAAY,EAAA,QAAA,EAAA,CACnC,QAAQ,IAAIpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,UAAU,EAAA,aAAA,EAAc,MAAM,uBAAS,EAC5EpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,UAAU,EAAA,QAAA,EAAEpB,GAAA,CAAC,UAAU,EAAA,EAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAA,CAAI,EAAA,CAAO,EAC3E,WAAW,GAAGG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,UAAU,EAAA,QAAA,EAAA,CAAEpB,GAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAA,YAAA,EAAY,8BAA8B,EAAC,QAAQ,EAAE,UAAU,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC,EAAE,CAAC,YAAEA,GAAA,CAAC,eAAe,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAA,CAAS,EAAAA,sBAAK,eAAe,CAAC,UAAU,CAAC,CAAC,KAAK,EAAA,CAAM,EAAAA,GAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAA,YAAA,EAAY,0BAA0B,EAAC,QAAQ,EAAE,UAAU,KAAK,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC,CAAC,CAAC,YAAEA,GAAA,CAACS,kBAAgB,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAA,CAAS,CAAA,EAAA,CAAM,GAAGT,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAK,MAAM,CAAC,KAAK,EAAA,CAAM,EACvdA,aAAK,SAAS,EAAEoB,QAAM,CAAC,aAAa,EAAA,QAAA,EACjC,QAAQ,GAAGjB,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CAAEJ,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,UAAU,EAAE,IAAI,EAAC,OAAO,EAAA,YAAA,EAAa,CAAA,EAAG,MAAM,CAAC,KAAK,CAAA,KAAA,CAAO,EAAA,QAAA,EAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAW,CAAC,GAAG,CAAC,CAAC,IAAI,KAAKpB,GAAA,CAAA,QAAA,EAAA,EAAmB,IAAI,EAAC,QAAQ,EAAA,YAAA,EAAc,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAY,CAAC,IAAI,CAAC,kBAAgB,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,KAAK,IAAI,GAAGoB,QAAM,CAAC,UAAU,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,QAAQ,GAAG,MAAM,EAAE,IAAI,CAAC,EAAA,QAAA,EAAG,IAAI,IAAtO,IAAI,CAA4O,CAAC,EAAA,CAAQ,EAAC,CAAC,MAAM,CAAC,MAAM,IAAIpB,GAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAEoB,QAAM,CAAC,UAAU,EAAA,YAAA,EAAc,CAAA,OAAA,EAAU,MAAM,CAAC,KAAK,CAAA,KAAA,CAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAA,QAAA,EAAEpB,GAAA,CAAC,SAAS,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAA,CAAS,CAAA,EAAA,CAAI,GAAGA,GAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAEoB,QAAM,CAAC,UAAU,EAAA,YAAA,EAAc,CAAA,QAAA,EAAW,MAAM,CAAC,KAAK,CAAA,CAAE,EAAE,OAAO,EAAE,MAAM,SAAS,GAAG,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,KAAK,SAAS,YAAEpB,GAAA,CAAC,WAAW,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAA,CAAS,EAAA,CAC3wB,IACC,EACTA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,UAAU,EAAA,QAAA,EAAG,KAAK,KAAK,SAAS,GAAGpB,IAAC,YAAY,EAAA,EAAA,CAAG,GAAG,KAAK,KAAK,OAAO,GAAGA,GAAA,CAAC,UAAU,EAAA,EAAC,OAAO,EAAE,MAAM,SAAS,GAAG,MAAM,CAAC,EAAA,CAAI,GAAG,KAAK,KAAK,OAAO,GAAGA,GAAA,CAAC,UAAU,EAAA,EAAC,OAAO,EAAE,MAAM,CAAC,YAAY,IAAI,uBAAuB,EAAA,CAAI,GAAGA,IAAC,UAAU,EAAA,EAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAI,EAAA,CAAO,EAChT,CAAC,QAAQ,KAAK,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,CAAC,KAAK,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,eAAe,CAAC,IAAIG,IAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAEiB,QAAM,CAAC,YAAY,EAAA,QAAA,EAAA,CAAG,MAAM,CAAC,eAAe,IAAI,KAAK,KAAK,MAAM,IAAIjB,IAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,eAAgB,CAAC,IAAI,CAAC,EAAA,QAAA,EAAA,CAAEH,GAAA,CAACU,YAAU,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAC,MAAM,CAAC,eAAe,CAAC,KAAK,IAAU,EAAE,MAAM,CAAC,WAAW,IAAIP,IAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC,aAAG,MAAM,CAAC,WAAW,EAACH,mCAAc,CAAA,EAAA,CAAS,CAAA,EAAA,CAAU,EAC3e,QAAQ,IAAIG,IAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAEiB,QAAM,CAAC,UAAU,EAAA,QAAA,EAAA,CAAEpB,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,CAAoB,EAAAA,GAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,gBAAa,CAAA,KAAA,EAAQ,MAAM,CAAC,KAAK,UAAU,EAAE,QAAQ,EAAE,KAAK,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,SAAS,GAAG,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,EAAA,QAAA,EAAA,QAAA,EAAA,CAAY,EAAAA,GAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAA,YAAA,EAAa,CAAA,KAAA,EAAQ,MAAM,CAAC,KAAK,CAAA,MAAA,CAAQ,EAAE,QAAQ,EAAE,KAAK,KAAK,KAAK,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,SAAS,GAAG,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,EAAA,QAAA,EAAA,QAAA,EAAA,CAAY,CAAA,EAAA,CAAS,CAAA,EAAA,CAChX;AAEd,CAAC;AAED;MACa,aAAa,GAAG,CAAC,EAAE,QAAQ,GAAG,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,GAAG,EAAE,EAAE,aAAa,GAAG,EAAE,EAAE,YAAY,GAAG,EAAE,EAAE,UAAU,GAAG,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,UAAU,EAAE,SAAS,GAAG,EAAE,EAAsB,KAAI;IACtS,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC/C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IACrD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC;AAC7D,IAAA,MAAM,SAAS,GAAG,MAAM,CAAwB,IAAI,CAAC;AACrD,IAAA,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;AAElE,IAAA,QACEG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAACiB,QAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,QAAA,EAAA,CAChEpB,GAAA,CAAC,WAAW,IAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAA,CAAI,EACzEG,iBAAQ,SAAS,EAAEiB,QAAM,CAAC,UAAU,EAAA,QAAA,EAAA,CAAEjB,IAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,CAAKA,IAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,CAAK,QAAQ,EAAE,SAAS,GAAG,CAAA,EAAA,EAAK,SAAS,CAAA,CAAE,GAAG,EAAE,CAAA,EAAA,CAAM,EAAC,WAAW,IAAIA,IAAA,CAAA,GAAA,EAAA,EAAA,QAAA,EAAA,CAAA,+CAAA,EAAiD,WAAW,EAAA,GAAA,CAAA,EAAA,CAAM,IAAO,EAAAH,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAG,QAAQ,GAAGjB,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CAAED,IAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAEiB,QAAM,CAAC,aAAa,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC,IAAI,CAAC,aAAEpB,GAAA,CAACe,UAAQ,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAA,UAAA,CAAA,EAAA,CAAiB,EAAAf,gBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAEoB,QAAM,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,iCAA2B,EAAAjB,IAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAEiB,QAAM,CAAC,aAAa,EAAE,OAAO,EAAE,MAAK,EAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAA,QAAA,EAAA,CAAEpB,GAAA,CAACc,WAAS,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,YAAa,CAAA,EAAA,CAAG,GAAGX,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAEiB,QAAM,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC,IAAI,CAAC,aAAEpB,GAAA,CAAC,YAAY,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAA,0BAAA,CAAA,EAAA,CAAiC,EAAA,CAAO,CAAA,EAAA,CAAS,EACnxB,QAAQ,IAAIG,cAAK,SAAS,EAAEiB,QAAM,CAAC,UAAU,EAAA,QAAA,EAAA,CAAEpB,GAAA,CAACiB,UAAQ,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAAd,0BAAMH,GAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,CAA4C,EAAA,kGAAA,CAAA,EAAA,CAAuG,CAAA,EAAA,CAAM,EACpO,UAAU,KAAK,QAAQ,IAAIA,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAEoB,QAAM,CAAC,UAAU,eAAY,QAAQ,EAAA,QAAA,EAAA,qBAAA,EAAA,CAAmB,EACjG,UAAU,KAAK,OAAO,IAAIpB,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAE,CAACoB,QAAM,CAAC,UAAU,EAAEA,QAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAC,OAAO,yEAA6D,EAClK,OAAO,CAAC,MAAM,GAAGpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,IAAI,EAAA,QAAA,EAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,KAAKpB,GAAA,CAAA,KAAA,EAAA,EAAqB,SAAS,EAAEoB,QAAM,CAAC,CAAA,IAAA,EAAO,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,KAAK,KAAI,EAAG,IAAI,CAAC,QAAQ;AAAE,wBAAA,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,GAAGA,QAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,MAAK,EAAG,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,KAAK;AAAE,wBAAA,SAAS,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,EAAA,QAAA,EAAEpB,GAAA,CAAC,UAAU,EAAA,EAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,UAAU,EAAE,UAAU,EAAA,CAAI,EAAA,EAA9zB,MAAM,CAAC,EAAE,CAA2zB,CAAC,EAAA,CAAO,GAAGG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,SAAS,EAAA,QAAA,EAAA,CAAEpB,IAACe,UAAQ,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAAf,GAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,CAAwC,EAAAA,6EAA2D,CAAA,EAAA,CAAM,EACxkC,WAAW,IAAIG,4BAAEH,GAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,YAAA,EAAa,oBAAoB,EAAC,OAAO,EAAE,MAAM,cAAc,CAAC,KAAK,CAAC,EAAA,CAAI,EAAAjB,gBAAO,SAAS,EAAEiB,QAAM,CAAC,OAAO,EAAE,IAAI,EAAC,QAAQ,EAAA,YAAA,EAAY,MAAM,EAAA,YAAA,EAAY,WAAW,EAAA,QAAA,EAAA,CAACjB,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA,CAAQA,yBAAKH,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,YAAA,EAAA,CAAmB,EAAAA,GAAA,CAAA,GAAA,EAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,CAAoD,CAAA,EAAA,CAAM,EAAAA,GAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,gBAAY,oBAAoB,EAAC,OAAO,EAAE,MAAM,cAAc,CAAC,KAAK,CAAC,EAAA,QAAA,EAAEA,GAAA,CAAC,SAAS,IAAC,IAAI,EAAE,EAAE,EAAA,CAAI,GAAS,CAAA,EAAA,CAAS,EAAAA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAKjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,WAAW,aAAkBpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAEpB,GAAA,CAAC,UAAU,IAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAA,CAAI,EAAA,CAAO,EAAAG,IAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,CAAKH,GAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAS,IAAI,CAAC,KAAK,EAAA,CAAU,EAAAA,oCAAoB,EAAAA,GAAA,CAAA,GAAA,EAAA,EAAA,QAAA,EAAI,IAAI,CAAC,WAAW,EAAA,CAAK,CAAA,EAAA,CAAM,EAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAGG,eAAM,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAAEpB,GAAA,CAACc,WAAS,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAA,OAAA,CAAA,EAAA,CAAY,GAAGX,IAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,aAAEH,GAAA,CAACe,UAAQ,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAA,KAAA,CAAA,EAAA,CAAY,CAAA,EAAA,EAAhX,IAAI,CAAC,IAAI,CAA8W,CAAC,GAAO,EAAAf,GAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,CAA6D,IAAQ,CAAA,EAAA,CAAG,CAAA,EAAA,CACx+B;AAEV;;;;ACrMA;AACA,MAAM,UAAU,GAAG,OACjBG,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAA,CAAE,EACxDA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAA,CAAE,EACrCA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAA,CAAE,EACnCA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAA,CAAE,CAAA,EAAA,CAClC,CACP;AAED,MAAM,SAAS,GAAG,OAChBA,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAC/FA,cAAM,CAAC,EAAC,qGAAqG,EAAA,CAAE,EAAA,CAC3G,CACP;AAED,MAAM,SAAS,GAAG,OAChBG,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,UAAU,EAAA,CAAE,EACpBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,2CAA2C,EAAA,CAAE,EACrDA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,0CAA0C,EAAA,CAAE,EACpDA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,SAAS,EAAA,CAAE,EACnBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,SAAS,EAAA,CAAE,CAAA,EAAA,CACf,CACP;AAED,MAAM,OAAO,GAAG,OACdG,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,4HAA4H,EAAA,CAAE,EACtIA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAA,CAAE,EAC9BA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,SAAS,EAAA,CAAE,EACnBA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAA,CAAE,CAAA,EAAA,CAC3B,CACP;AAED,MAAM,OAAO,GAAG,OACdG,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,QAAQ,EAAA,CAAE,EAClBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,SAAS,GAAE,EACnBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,UAAU,EAAA,CAAE,EACpBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,SAAS,EAAA,CAAE,EACnBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,UAAU,EAAA,CAAE,EACpBA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAA,CAAE,EACjDA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAA,CAAE,EAC9BA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAA,CAAE,CAAA,EAAA,CAC3B,CACP;AAED;AACA,MAAM,eAAe,GAAoB;AACvC,IAAA,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAEA,IAAC,UAAU,EAAA,EAAA,CAAG,EAAE,SAAS,EAAE,KAAK,EAAE;AACpF,IAAA,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAEA,IAAC,SAAS,EAAA,EAAA,CAAG,EAAE,SAAS,EAAE,IAAI,EAAE;AAC7E,IAAA,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAEA,IAAC,SAAS,EAAA,EAAA,CAAG,EAAE,SAAS,EAAE,IAAI,EAAE;AAC9E,IAAA,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAEA,IAAC,SAAS,EAAA,EAAA,CAAG,EAAE,SAAS,EAAE,IAAI,EAAE;AACtE,IAAA,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,uBAAuB,EAAE,IAAI,EAAEA,IAAC,OAAO,EAAA,EAAA,CAAG,EAAE,SAAS,EAAE,IAAI,EAAE;AACrF,IAAA,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAEA,IAAC,OAAO,EAAA,EAAA,CAAG,EAAE,SAAS,EAAE,IAAI,EAAE;CACxE;AAED;AACA,MAAM,gBAAgB,GAA2B;AAC/C,IAAA;AACE,QAAA,GAAG,EAAE,SAAS;AACd,QAAA,KAAK,EAAE,iBAAiB;AACxB,QAAA,KAAK,EAAE;AACL,YAAA,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE;AAC3C,YAAA,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;AACpC,YAAA,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE;AACrC,YAAA,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE;AAC1C,SAAA;AACF,KAAA;AACD,IAAA;AACE,QAAA,GAAG,EAAE,KAAK;AACV,QAAA,KAAK,EAAE,wBAAwB;AAC/B,QAAA,KAAK,EAAE;AACL,YAAA,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE;AACrC,YAAA,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE;AAC3C,YAAA,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE;AAC1C,SAAA;AACF,KAAA;AACD,IAAA;AACE,QAAA,GAAG,EAAE,OAAO;AACZ,QAAA,KAAK,EAAE,eAAe;AACtB,QAAA,KAAK,EAAE;AACL,YAAA,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE;AACvC,YAAA,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,YAAA,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE;AAC1C,SAAA;AACF,KAAA;AACD,IAAA;AACE,QAAA,GAAG,EAAE,QAAQ;AACb,QAAA,KAAK,EAAE,uBAAuB;AAC9B,QAAA,KAAK,EAAE;AACL,YAAA,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE;AACtC,YAAA,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE;AAC1C,SAAA;AACF,KAAA;CACF;AAqBD;;;AAGG;AACI,MAAM,sBAAsB,GAA0C,CAAC,EAC5E,SAAS,GAAG,UAAU,EACtB,UAAU,GAAG,CAAC,EACd,QAAQ,EACR,QAAQ,EACR,aAAa,GAAG,EAAE,EAClB,QAAQ,GAAG,eAAe,EAC1B,eAAe,GAAG,gBAAgB,EAClC,SAAS,GACV,KAAI;IACH,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;AACjD,IAAA,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAA0B;AAC9E,QAAA,OAAO,EAAE,IAAI;AACb,QAAA,GAAG,EAAE,KAAK;AACV,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,GAAG,EAAE,KAAK;QACV,GAAG,MAAM,CAAC,WAAW,CACnB,MAAM,CAAC,OAAO,CAAC,aAAa;aACzB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;AACnD,aAAA,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAChD;AACF,KAAA,CAAC;IACF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAsB,aAAa,CAAC;AAEhF,IAAA,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,OAAgB,KAAI;AACrD,QAAA,kBAAkB,CAAC,IAAI,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,GAAG,OAAO,EAAE,CAAC,CAAC;AAC3D,IAAA,CAAC;AAED,IAAA,MAAM,kBAAkB,GAAG,CAAC,GAAW,KAAI;QACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC;QAC5C,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAChE;AACF,IAAA,CAAC;IAED,MAAM,cAAc,GAAG,MAAK;AAC1B,QAAA,IAAI,WAAW,GAAG,CAAC,EAAE;AACnB,YAAA,cAAc,CAAC,WAAW,GAAG,CAAC,CAAC;QACjC;aAAO;YACL,QAAQ,IAAI;QACd;AACF,IAAA,CAAC;IAED,MAAM,UAAU,GAAG,MAAK;AACtB,QAAA,IAAI,WAAW,GAAG,UAAU,EAAE;AAC5B,YAAA,cAAc,CAAC,WAAW,GAAG,CAAC,CAAC;QACjC;aAAO;AACL,YAAA,QAAQ,GAAG,UAAU,CAAC;QACxB;AACF,IAAA,CAAC;AAED,IAAA,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,KAAU,KAAI;AAClD,QAAA,aAAa,CAAC,IAAI,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;AACpD,IAAA,CAAC;AAED,IAAA,QACEA,GAAA,CAAC,iBAAiB,IAChB,SAAS,EAAE,SAAS,EACpB,MAAM,EACJA,GAAA,CAAC,iBAAiB,IAChB,KAAK,EAAC,sBAAsB,EAC5B,WAAW,EAAE,UAAU,GAAG,CAAC,GAAG,WAAW,GAAG,SAAS,EACrD,UAAU,EAAE,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,SAAS,EACnD,SAAS,EAAE,SAAS,EAAA,CACpB,EAEJ,OAAO,EACLG,cAAK,SAAS,EAAEiB,QAAM,CAAC,cAAc,aACnCpB,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAEoB,QAAM,CAAC,YAAY,EAAA,QAAA,EAAA,UAAA,EAAA,CAAe,EACjDpB,IAAC,iBAAiB,EAAA,EAChB,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,kBAAkB,GAC3B,CAAA,EAAA,CACE,EAER,OAAO,EACLA,GAAA,CAAC,cAAc,EAAA,EACb,QAAQ,EAAE,eAAe,EACzB,MAAM,EAAE,UAAU,EAClB,eAAe,EAAE,eAAe,EAAA,CAChC,EAEJ,MAAM,EACJA,IAAC,iBAAiB,EAAA,EAChB,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,UAAU,EAClB,WAAW,EAAE,WAAW,KAAK,CAAC,EAC9B,UAAU,EAAE,WAAW,KAAK,UAAU,EAAA,CACtC,YAGJG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAEhCjB,KAAC,WAAW,EAAA,EACV,EAAE,EAAC,SAAS,EACZ,KAAK,EAAC,iBAAiB,EACvB,IAAI,EAAEH,GAAA,CAAC,UAAU,KAAG,EAAA,QAAA,EAAA,CAEpBG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAC1BpB,eAAO,SAAS,EAAEoB,QAAM,CAAC,KAAK,oCAA6B,EAC3DpB,GAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAEoB,QAAM,CAAC,KAAK,EACvB,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EACzB,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,UAAU,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAC5C,QAAQ,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,mBAAmB,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GACrE,CAAA,EAAA,CACE,EACNjB,KAAC,OAAO,EAAA,EAAC,OAAO,EAAE,CAAC,EAAA,QAAA,EAAA,CACjBA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAC1BpB,eAAO,SAAS,EAAEoB,QAAM,CAAC,KAAK,6BAAsB,EACpDpB,GAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAC,MAAM,EACX,SAAS,EAAEoB,QAAM,CAAC,KAAK,EACvB,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,EACrC,QAAQ,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAA,CAC9D,CAAA,EAAA,CACE,EACNjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAC1BpB,GAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAEoB,QAAM,CAAC,KAAK,8BAAuB,EACrDpB,GAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAC,MAAM,EACX,SAAS,EAAEoB,QAAM,CAAC,KAAK,EACvB,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,EACtC,QAAQ,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAA,CAC/D,CAAA,EAAA,CACE,IACE,EACVjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAC1BpB,eAAO,SAAS,EAAEoB,QAAM,CAAC,KAAK,kCAA2B,EACzDpB,GAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAC,MAAM,EACX,SAAS,EAAEoB,QAAM,CAAC,KAAK,EACvB,WAAW,EAAC,WAAW,EACvB,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAC1C,QAAQ,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GACnE,CAAA,EAAA,CACE,EACNjB,cAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,aAC1BpB,GAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,eAAA,EAAA,CAAuB,EACrDpB,GAAA,CAAA,UAAA,EAAA,EACE,SAAS,EAAEoB,QAAM,CAAC,QAAQ,EAC1B,IAAI,EAAE,CAAC,EACP,WAAW,EAAC,kCAAkC,EAC9C,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC,IAAI,EAAE,EACxC,QAAQ,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GACjE,CAAA,EAAA,CACE,CAAA,EAAA,CACM,EAGb,eAAe,CAAC,GAAG,KAClBjB,IAAA,CAAC,WAAW,IACV,EAAE,EAAC,KAAK,EACR,KAAK,EAAC,wBAAwB,EAC9B,IAAI,EAAEH,GAAA,CAAC,SAAS,EAAA,EAAA,CAAG,EAAA,QAAA,EAAA,CAEnBG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAC1BpB,GAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,eAAA,EAAA,CAAuB,EACrDpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,UAAU,EAAA,QAAA,EAC9B,CAAC,SAAS,EAAE,YAAY,EAAE,uBAAuB,CAAC,CAAC,GAAG,CAAC,MAAM,KAC5DjB,gBAAoB,SAAS,EAAEiB,QAAM,CAAC,UAAU,aAC9CpB,GAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAC,OAAO,EACZ,IAAI,EAAC,YAAY,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,UAAU,CAAC,aAAa,CAAC,KAAK,MAAM,EAC7C,QAAQ,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAA,CAC/D,EACFA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,MAAM,GAAQ,CAAA,EAAA,EARX,MAAM,CASV,CACT,CAAC,EAAA,CACE,CAAA,EAAA,CACF,EACNG,IAAA,CAAC,SAAS,IACR,MAAM,EAAEH,cAAM,SAAS,EAAEoB,QAAM,CAAC,aAAa,yBAAiB,EAC9D,YAAY,mBAEZjB,IAAA,CAAC,OAAO,IAAC,OAAO,EAAE,CAAC,EAAA,QAAA,EAAA,CACjBA,cAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,aAC1BpB,GAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,qBAAA,EAAA,CAA6B,EAC3DpB,eACE,IAAI,EAAC,MAAM,EACX,SAAS,EAAEoB,QAAM,CAAC,KAAK,EACvB,WAAW,EAAC,WAAW,EACvB,KAAK,EAAE,UAAU,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAC5C,QAAQ,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,mBAAmB,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GACrE,CAAA,EAAA,CACE,EACNjB,cAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,aAC1BpB,GAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,mBAAA,EAAA,CAA2B,EACzDpB,GAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAC,MAAM,EACX,SAAS,EAAEoB,QAAM,CAAC,KAAK,EACvB,WAAW,EAAC,WAAW,EACvB,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAC1C,QAAQ,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAA,CACnE,CAAA,EAAA,CACE,IACE,EACVjB,IAAA,CAAC,OAAO,EAAA,EAAC,OAAO,EAAE,CAAC,EAAA,QAAA,EAAA,CACjBA,cAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,aAC1BpB,GAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,kBAAA,EAAA,CAA0B,EACxDpB,GAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAC,MAAM,EACX,SAAS,EAAEoB,QAAM,CAAC,KAAK,EACvB,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE,EACzC,QAAQ,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAClE,CAAA,EAAA,CACE,EACNjB,cAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAC1BpB,GAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,kBAAA,EAAA,CAA0B,EACxDjB,IAAA,CAAA,QAAA,EAAA,EACE,SAAS,EAAEiB,QAAM,CAAC,MAAM,EACxB,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE,EACzC,QAAQ,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAA,QAAA,EAAA,CAElEpB,GAAA,CAAA,QAAA,EAAA,EAAQ,KAAK,EAAC,EAAE,EAAA,QAAA,EAAA,mBAAA,EAAA,CAA2B,EAC3CA,gBAAQ,KAAK,EAAC,sCAAiC,EAAA,QAAA,EAAA,sCAAA,EAAA,CAAyC,EACxFA,gBAAQ,KAAK,EAAC,iCAA4B,EAAA,QAAA,EAAA,iCAAA,EAAA,CAAoC,EAC9EA,gBAAQ,KAAK,EAAC,8BAA8B,EAAA,QAAA,EAAA,8BAAA,EAAA,CAAsC,EAClFA,GAAA,CAAA,QAAA,EAAA,EAAQ,KAAK,EAAC,uCAAkC,EAAA,QAAA,EAAA,uCAAA,EAAA,CAA0C,EAC1FA,GAAA,CAAA,QAAA,EAAA,EAAQ,KAAK,EAAC,iCAA4B,EAAA,QAAA,EAAA,iCAAA,EAAA,CAAoC,IACvE,CAAA,EAAA,CACL,CAAA,EAAA,CACE,IACA,EACZG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAC1BpB,GAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,kBAAA,EAAA,CAA0B,EACxDpB,kBACE,SAAS,EAAEoB,QAAM,CAAC,QAAQ,EAC1B,IAAI,EAAE,CAAC,EACP,WAAW,EAAC,4CAA4C,EAAA,CACxD,IACE,CAAA,EAAA,CACM,CACf,EAGA,eAAe,CAAC,KAAK,KACpBjB,KAAC,WAAW,EAAA,EACV,EAAE,EAAC,OAAO,EACV,KAAK,EAAC,eAAe,EACrB,IAAI,EAAEH,GAAA,CAAC,SAAS,EAAA,EAAA,CAAG,EAAA,QAAA,EAAA,CAEnBG,KAAC,OAAO,EAAA,EAAC,OAAO,EAAE,CAAC,aACjBA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAC1BpB,GAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,iBAAA,EAAA,CAAyB,EACvDpB,GAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAC,MAAM,EACX,SAAS,EAAEoB,QAAM,CAAC,KAAK,EACvB,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC,IAAI,EAAE,EACxC,QAAQ,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAA,CACjE,CAAA,EAAA,CACE,EACNjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAC1BpB,GAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,kBAAA,EAAA,CAA0B,EACxDpB,GAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAC,MAAM,EACX,SAAS,EAAEoB,QAAM,CAAC,KAAK,EACvB,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE,EACzC,QAAQ,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAA,CAClE,CAAA,EAAA,CACE,IACE,EACVjB,IAAA,CAAC,OAAO,EAAA,EAAC,OAAO,EAAE,CAAC,EAAA,QAAA,EAAA,CACjBA,cAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,aAC1BpB,GAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,mBAAA,EAAA,CAA2B,EACzDpB,GAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAEoB,QAAM,CAAC,KAAK,EACvB,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAC1C,QAAQ,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GACnE,CAAA,EAAA,CACE,EACNjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAC1BpB,GAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,WAAA,EAAA,CAAmB,EACjDjB,IAAA,CAAA,QAAA,EAAA,EACE,SAAS,EAAEiB,QAAM,CAAC,MAAM,EACxB,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,EACpC,QAAQ,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,aAE7DpB,GAAA,CAAA,QAAA,EAAA,EAAQ,KAAK,EAAC,EAAE,EAAA,QAAA,EAAA,kBAAA,EAAA,CAA0B,EAC1CA,GAAA,CAAA,QAAA,EAAA,EAAQ,KAAK,EAAC,UAAU,EAAA,QAAA,EAAA,UAAA,EAAA,CAAkB,EAC1CA,GAAA,CAAA,QAAA,EAAA,EAAQ,KAAK,EAAC,QAAQ,EAAA,QAAA,EAAA,QAAA,EAAA,CAAgB,EACtCA,GAAA,CAAA,QAAA,EAAA,EAAQ,KAAK,EAAC,OAAO,EAAA,QAAA,EAAA,OAAA,EAAA,CAAe,IAC7B,CAAA,EAAA,CACL,CAAA,EAAA,CACE,EACVG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAC1BpB,GAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,mBAAA,EAAA,CAA2B,EACzDpB,GAAA,CAAA,UAAA,EAAA,EACE,SAAS,EAAEoB,QAAM,CAAC,QAAQ,EAC1B,IAAI,EAAE,CAAC,EACP,WAAW,EAAC,4DAA4D,EACxE,KAAK,EAAE,UAAU,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAC5C,QAAQ,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,mBAAmB,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAA,CACrE,IACE,CAAA,EAAA,CACM,CACf,EAGA,eAAe,CAAC,MAAM,KACrBjB,IAAA,CAAC,WAAW,IACV,EAAE,EAAC,QAAQ,EACX,KAAK,EAAC,uBAAuB,EAC7B,IAAI,EAAEH,GAAA,CAAC,OAAO,EAAA,EAAA,CAAG,EAAA,QAAA,EAAA,CAEjBG,cAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,aAC1BpB,GAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,gBAAA,EAAA,CAAwB,EACtDjB,iBACE,SAAS,EAAEiB,QAAM,CAAC,MAAM,EACxB,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,EACvC,QAAQ,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAA,QAAA,EAAA,CAEhEpB,GAAA,CAAA,QAAA,EAAA,EAAQ,KAAK,EAAC,EAAE,EAAA,QAAA,EAAA,qBAAA,EAAA,CAA6B,EAC7CA,gBAAQ,KAAK,EAAC,OAAO,EAAA,QAAA,EAAA,OAAA,EAAA,CAAe,EACpCA,gBAAQ,KAAK,EAAC,KAAK,EAAA,QAAA,EAAA,KAAA,EAAA,CAAa,EAChCA,gBAAQ,KAAK,EAAC,KAAK,EAAA,QAAA,EAAA,KAAA,EAAA,CAAa,EAChCA,GAAA,CAAA,QAAA,EAAA,EAAQ,KAAK,EAAC,WAAW,EAAA,QAAA,EAAA,WAAA,EAAA,CAAmB,IACrC,CAAA,EAAA,CACL,EACNG,KAAC,OAAO,EAAA,EAAC,OAAO,EAAE,CAAC,aACjBA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAC1BpB,GAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,mBAAA,EAAA,CAA2B,EACzDpB,GAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAC,MAAM,EACX,SAAS,EAAEoB,QAAM,CAAC,KAAK,EACvB,WAAW,EAAC,sBAAsB,EAClC,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAC1C,QAAQ,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAA,CACnE,IACE,EACNjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CAC1BpB,eAAO,SAAS,EAAEoB,QAAM,CAAC,KAAK,mCAA4B,EAC1DpB,GAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAC,MAAM,EACX,SAAS,EAAEoB,QAAM,CAAC,KAAK,EACvB,WAAW,EAAC,oBAAoB,EAChC,KAAK,EAAE,UAAU,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAC3C,QAAQ,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAA,CACpE,IACE,CAAA,EAAA,CACE,CAAA,EAAA,CACE,CACf,CAAA,EAAA,CACG,EAAA,CACY;AAExB;AAEA,sBAAsB,CAAC,WAAW,GAAG,wBAAwB;;;;ACnc7D;AACA,MAAM,mBAAmB,GAAmB;AAC1C,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE;AACrC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;AAC9B,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;AAC9B,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;AAC9B,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;AAC9B,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;AAC9B,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;AAC9B,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;AAC9B,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;CAC/B;AAED;AACA,MAAM,UAAU,GAAa,OAC3BjB,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAA,CAAG,EAChCA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,OAAO,EAAC,EAAE,EAAC,OAAO,EAAA,CAAG,CAAA,EAAA,CAC1C,CACP;AAED,MAAM,UAAU,GAAa,OAC3BA,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAC/FA,iBAAS,MAAM,EAAC,6CAA6C,EAAA,CAAG,EAAA,CAC5D,CACP;AAED,MAAM,UAAU,GAAa,OAC3BG,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,cAAM,CAAC,EAAC,YAAY,EAAA,CAAG,EACvBA,cAAM,CAAC,EAAC,YAAY,EAAA,CAAG,CAAA,EAAA,CACnB,CACP;AAED,MAAM,WAAW,GAAa,OAC5BA,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAC/FA,kBAAU,MAAM,EAAC,iBAAiB,EAAA,CAAG,EAAA,CACjC,CACP;AAED,MAAM,YAAY,GAAa,OAC7BA,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAC/FA,kBAAU,MAAM,EAAC,gBAAgB,EAAA,CAAG,EAAA,CAChC,CACP;MAEY,oBAAoB,GAAwC,CAAC,EACxE,YAAY,EACZ,SAAS,EACT,cAAc,EACd,YAAY,GAAG,mBAAmB,EAClC,eAAe,EACf,UAAU,GAAG,SAAS,EACtB,OAAO,GAAG,aAAa,EACvB,UAAU,GAAG,MAAM,EACnB,gBAAgB,GAAG,KAAK,EACxB,UAAU,EACV,aAAa,EACb,QAAQ,EACR,qBAAqB,GAAG,KAAK,EAC7B,SAAS,GACV,KAAI;IACH,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAS,UAAU,CAAC;IAC9D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IACzC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC/C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;IACxC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IACrE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;;AAG3D,IAAA,MAAM,uBAAuB,GAAG,OAAO,CAAC,MAAK;AAC3C,QAAA,IAAI,eAAe;AAAE,YAAA,OAAO,eAAe;AAC3C,QAAA,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU;QAC/B,CAAC,GAAG,YAAY,EAAE,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,IAAG;AAC7C,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjD,QAAA,CAAC,CAAC;QACF,OAAO;AACL,YAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE;YACxC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;SACjE;IACH,CAAC,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;;AAG9C,IAAA,MAAM,WAAW,GAAG,OAAO,CAAC,MAAK;QAC/B,IAAI,IAAI,GAAG,SAAS,KAAK,WAAW,GAAG;AAC9B,cAAE,SAAS,KAAK,SAAS,GAAG;kBAC1B,SAAS;;AAGpB,QAAA,IAAI,KAAK,KAAK,KAAK,EAAE;YACnB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC;QAC/E;AACA,QAAA,IAAI,QAAQ,KAAK,KAAK,EAAE;AACtB,YAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC/D;QACA,IAAI,MAAM,EAAE;AACV,YAAA,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE;YAC9B,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClD,gBAAA,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC1C,gBAAA,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5C,gBAAA,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChD,gBAAA,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAC9C;QACH;AAEA,QAAA,OAAO,IAAI;AACb,IAAA,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAEjF,IAAA,MAAM,gBAAgB,GAAG,KAAK,KAAK,KAAK,IAAI,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,MAAM;AAE1E,IAAA,MAAM,IAAI,GAAG;AACX,QAAA,EAAE,GAAG,EAAE,WAAqB,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,cAAc,CAAC,MAAM,EAAE;AACtF,QAAA,EAAE,GAAG,EAAE,SAAmB,EAAE,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE;AACzF,QAAA,EAAE,GAAG,EAAE,MAAgB,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE;KACxE;AAED,IAAA,MAAM,cAAc,GAAG,CAAC,EAAU,KAAI;AACpC,QAAA,IAAI,SAAS,KAAK,WAAW,EAAE;AAC7B,YAAA,aAAa,GAAG,EAAE,CAAC;QACrB;aAAO;AACL,YAAA,UAAU,GAAG,EAAE,CAAC;QAClB;AACF,IAAA,CAAC;AAED,IAAA,QACEG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAA,EAAGiB,QAAM,CAAC,IAAI,CAAA,CAAA,EAAI,SAAS,IAAI,EAAE,CAAA,CAAE,EAAA,QAAA,EAAA,CAEjDpB,aAAK,SAAS,EAAEoB,QAAM,CAAC,MAAM,EAAA,QAAA,EAC3BpB,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,iCAAA,EAAA,CAA0C,GACjE,EAGNjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,aAAa,EAAA,QAAA,EAAA,CAClCpB,aAAK,SAAS,EAAEoB,QAAM,CAAC,IAAI,EAAA,QAAA,EACxB,IAAI,CAAC,GAAG,CAAC,GAAG,KACXjB,IAAA,CAAA,QAAA,EAAA,EAEE,SAAS,EAAE,CAAA,EAAGiB,QAAM,CAAC,GAAG,IAAI,SAAS,KAAK,GAAG,CAAC,GAAG,GAAGA,QAAM,CAAC,MAAM,GAAG,EAAE,CAAA,CAAE,EACxE,OAAO,EAAE,MAAM,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAA,QAAA,EAAA,CAEnC,GAAG,CAAC,KAAK,EACVpB,cAAM,SAAS,EAAE,GAAGoB,QAAM,CAAC,QAAQ,CAAA,CAAA,EAAI,SAAS,KAAK,GAAG,CAAC,GAAG,GAAGA,QAAM,CAAC,WAAW,GAAG,EAAE,EAAE,EAAA,QAAA,EACrF,GAAG,CAAC,KAAK,EAAA,CACL,KAPF,GAAG,CAAC,GAAG,CAQL,CACV,CAAC,EAAA,CACE,EACNjB,cAAK,SAAS,EAAEiB,QAAM,CAAC,aAAa,EAAA,QAAA,EAAA,CAClCjB,IAAA,CAAA,QAAA,EAAA,EACE,SAAS,EAAEiB,QAAM,CAAC,YAAY,EAC9B,OAAO,EAAE,MAAM,iBAAiB,CAAC,CAAC,cAAc,CAAC,EAAA,QAAA,EAAA,CAEjDpB,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,QAAA,EAAA,CAAmB,EACnBA,GAAA,CAAC,UAAU,EAAA,EAAA,CAAG,CAAA,EAAA,CACP,EACR,cAAc,KACbG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,UAAU,EAAA,QAAA,EAAA,CAC9B,gBAAgB,KACfjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,UAAU,aAC/BpB,GAAA,CAAC,UAAU,KAAG,EACdA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,CAA0D,IACtD,CACP,EACDA,GAAA,CAAA,QAAA,EAAA,EAAQ,OAAO,EAAE,QAAQ,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAA,QAAA,EAAA,kBAAA,EAAA,CAE9D,EACTA,gBAAQ,OAAO,EAAE,MAAK,EAAG,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,wCAElE,EACTA,GAAA,CAAA,QAAA,EAAA,EAAQ,OAAO,EAAE,MAAK,EAAG,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAA,QAAA,EAAA,mBAAA,EAAA,CAE/D,IACL,CACP,CAAA,EAAA,CACG,IACF,EAGNG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CAC5BjB,cAAK,SAAS,EAAEiB,QAAM,CAAC,aAAa,EAAA,QAAA,EAAA,CAClCpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,UAAU,EAAA,QAAA,EAAEpB,IAAC,UAAU,EAAA,EAAA,CAAG,GAAO,EACzDA,GAAA,CAAA,OAAA,EAAA,EACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC1C,WAAW,EAAC,mCAA8B,EAC1C,SAAS,EAAEoB,QAAM,CAAC,WAAW,EAAA,CAC7B,IACE,EAENpB,GAAA,CAAC,UAAU,EAAA,EACT,KAAK,EAAC,OAAO,EACb,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,QAAQ,GAClB,EAEFA,GAAA,CAAC,UAAU,EAAA,EACT,KAAK,EAAC,UAAU,EAChB,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,uBAAuB,EAChC,QAAQ,EAAE,WAAW,EACrB,UAAU,EAAA,IAAA,EACV,iBAAiB,EAAC,wBAAmB,EACrC,WAAW,EAAE,qBAAqB,GAAG,8CAA8C,GAAG,SAAS,EAAA,CAC/F,EAED,SAAS,KAAK,MAAM,KACnBG,iBACE,SAAS,EAAE,GAAGiB,QAAM,CAAC,cAAc,CAAA,CAAA,EAAI,mBAAmB,GAAGA,QAAM,CAAC,cAAc,GAAG,EAAE,CAAA,CAAE,EACzF,OAAO,EAAE,MAAM,sBAAsB,CAAC,CAAC,mBAAmB,CAAC,EAAA,QAAA,EAAA,CAE3DpB,IAAC,UAAU,EAAA,EAAA,CAAG,wBAEP,CACV,CAAA,EAAA,CACG,EAGL,SAAS,KAAK,MAAM,IAAI,mBAAmB,KAC1CG,cAAK,SAAS,EAAEiB,QAAM,CAAC,eAAe,aACpCjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,cAAc,EAAA,QAAA,EAAA,CACnCpB,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,CAAyB,EACzBA,GAAA,CAAA,QAAA,EAAA,EACE,SAAS,EAAEoB,QAAM,CAAC,WAAW,EAC7B,OAAO,EAAE,MAAM,sBAAsB,CAAC,KAAK,CAAC,uBAGrC,CAAA,EAAA,CACL,EACNjB,cAAK,SAAS,EAAEiB,QAAM,CAAC,YAAY,aACjCjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAChCpB,0CAA2B,EAC3BA,GAAA,CAAA,OAAA,EAAA,EAAO,IAAI,EAAC,MAAM,EAAC,WAAW,EAAC,mBAAmB,EAAA,CAAG,CAAA,EAAA,CACjD,EACNG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAChCpB,mDAAoC,EACpCA,GAAA,CAAA,OAAA,EAAA,EAAO,IAAI,EAAC,MAAM,EAAC,WAAW,EAAC,eAAe,EAAA,CAAG,CAAA,EAAA,CAC7C,EACNG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAChCpB,GAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EAAA,QAAA,EAAA,CAAqB,EACrBA,GAAA,CAAA,OAAA,EAAA,EAAO,IAAI,EAAC,MAAM,EAAC,WAAW,EAAC,aAAa,EAAA,CAAG,CAAA,EAAA,CAC3C,EACNG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAChCpB,GAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,CAAiC,EACjCA,GAAA,CAAA,OAAA,EAAA,EAAO,IAAI,EAAC,MAAM,EAAC,WAAW,EAAC,aAAa,EAAA,CAAG,CAAA,EAAA,CAC3C,EACNG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAChCpB,2CAA4B,EAC5BA,GAAA,CAAA,OAAA,EAAA,EAAO,IAAI,EAAC,MAAM,EAAC,WAAW,EAAC,oBAAoB,EAAA,CAAG,IAClD,EACNG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAChCpB,mDAAoC,EACpCA,GAAA,CAAA,OAAA,EAAA,EAAO,IAAI,EAAC,MAAM,EAAC,WAAW,EAAC,oBAAe,EAAA,CAAG,IAC7C,EACNG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,aAAa,EAAA,QAAA,EAAA,CAClCpB,gBAAQ,SAAS,EAAEoB,QAAM,CAAC,WAAW,sBAAgB,EACrDpB,GAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAEoB,QAAM,CAAC,WAAW,sBAAgB,CAAA,EAAA,CACjD,CAAA,EAAA,CACF,IACF,CACP,EAGDpB,IAAC,SAAS,EAAA,EACR,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,EAAE,cAAc,GAC1B,EAGD,WAAW,CAAC,MAAM,GAAG,CAAC,KACrBG,cAAK,SAAS,EAAEiB,QAAM,CAAC,UAAU,EAAA,QAAA,EAAA,CAC/BjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,cAAc,EAAA,QAAA,EAAA,CAAA,iBAAA,EACxB,WAAW,CAAC,MAAM,UAAM,WAAW,CAAC,MAAM,CAAA,EAAA,CACjD,EACNjB,cAAK,SAAS,EAAEiB,QAAM,CAAC,kBAAkB,EAAA,QAAA,EAAA,CACvCpB,GAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAEoB,QAAM,CAAC,UAAU,EAAE,QAAQ,EAAA,IAAA,EAAA,QAAA,EAC5CpB,GAAA,CAAC,WAAW,EAAA,EAAA,CAAG,EAAA,CACR,EACTA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,QAAQ,EAAA,QAAA,EAAA,aAAA,EAAA,CAAoB,EACpDpB,GAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAEoB,QAAM,CAAC,UAAU,EAAE,QAAQ,kBAC5CpB,GAAA,CAAC,YAAY,KAAG,EAAA,CACT,CAAA,EAAA,CACL,IACF,CACP,CAAA,EAAA,CACG;AAEV;;;;AClQA,MAAM,aAAa,GAAiC;AAClD,IAAA,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAEa,aAAW,EAAE,KAAK,EAAE,IAAI,EAAE;IACzD,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAEZ,WAAS,EAAE;IACtC,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAEC,SAAO,EAAE;IACpC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAEG,WAAS,EAAE;IAC1C,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE;IAC/C,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE;IACjD,GAAG,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAEW,UAAQ,EAAE;IAC9C,iBAAiB,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,YAAY,EAAE;CACpE;AAED,MAAM,YAAY,GAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE;AAE3E,MAAM,OAAO,GAAG,CAAC,GAAW,KAAmB,aAAa,CAAC,GAAG,CAAC,IAAI,YAAY;AAEjF,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,iBAAiB,CAAC;AAWtG,MAAM,WAAW,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAoB,KAAI;IAC7E,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;AACtC,IAAA,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI;AAE9B,IAAA,QACEb,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAACiB,QAAM,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAGA,QAAM,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,QAAA,EAAA,CACzFjB,IAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,CAACiB,QAAM,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,GAAGA,QAAM,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,QAAA,EAAA,CACvGpB,GAAA,CAAC,YAAY,IAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EACzB,IAAI,CAAC,KAAK,IACN,EAEPA,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAA,QAAA,EAAG,OAAO,CAAC,KAAK,EAAA,CAAM,EAEpD,OAAO,CAAC,IAAI,IAAIpB,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAEoB,QAAM,CAAC,QAAQ,EAAA,QAAA,EAAG,OAAO,CAAC,IAAI,EAAA,CAAK,EAElEjB,IAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAEiB,QAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC,OAAO,CAAC,EAAA,QAAA,EAAA,CAAA,WAAA,EAE9EpB,GAAA,CAACS,kBAAgB,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,CAAA,EAAA,CACvB,EAER,OAAO,KACNT,gBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAEoB,QAAM,CAAC,UAAU,EAC5B,OAAO,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,EAChC,KAAK,EAAC,cAAc,EAAA,YAAA,EACT,cAAc,EAAA,QAAA,EAEzBpB,GAAA,CAACiB,UAAQ,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,GACf,CACV,CAAA,EAAA,CACG;AAEV,CAAC;AAED;;;;;;;AAOG;MACU,cAAc,GAAG,CAAC,EAC7B,KAAK,GAAG,aAAa,EACrB,WAAW,EACX,QAAQ,GAAG,EAAE,EACb,KAAK,EACL,OAAO,GAAG,KAAK,EACf,YAAY,EACZ,aAAa,EACb,cAAc,EACd,SAAS,GAAG,EAAE,EACd,cAAc,GAAG,IAAI,EACrB,QAAQ,GAAG,OAAO,EAClB,gBAAgB,EAChB,oBAAoB,GACA,KAAI;AACxB,IAAA,MAAM,SAAS,GAAwB,KAAK,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC;IAExF,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC3D,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAA2B,IAAI,CAAC;;AAGhF,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,MAAK;AAC9B,QAAA,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU;QAC9B,MAAM,KAAK,GAAa,EAAE;AAC1B,QAAA,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AAC3B,YAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,EAAE;AAC1C,gBAAA,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACX,gBAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACf;AACF,QAAA,CAAC,CAAC;AACF,QAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;YACrB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;AACzB,gBAAA,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;AACpB,gBAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;YACxB;AACF,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,KAAK;AACd,IAAA,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAEd,IAAA,MAAM,QAAQ,GAAG,OAAO,CACtB,OAAO,cAAc,KAAK,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,cAAc,CAAC,CAAC,EACnG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAC3B;IAED,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,gBAAgB;YAAE;AACvB,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,gBAAgB,CAAC;AACrE,QAAA,IAAI,CAAC,OAAO;YAAE;QACd,eAAe,CAAC,OAAO,CAAC;QACxB,oBAAoB,IAAI;IAC1B,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;AAEtD,IAAA,MAAM,UAAU,GAAG,CAAC,OAA0B,KAAI;AAChD,QAAA,IAAI,OAAO,CAAC,IAAI,EAAE;AAChB,YAAA,cAAc,GAAG,OAAO,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,qBAAqB,CAAC;QAC5D;aAAO;YACL,eAAe,CAAC,OAAO,CAAC;QAC1B;AACF,IAAA,CAAC;AAED,IAAA,MAAM,SAAS,GAAG,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI;AACtE,IAAA,MAAM,iBAAiB,GAAG,SAAS,EAAE,IAAI;AAEzC,IAAA,QACEd,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAACiB,QAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,QAAA,EAAA,CAC/D,cAAc,KACbjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,UAAU,EAAA,YAAA,EAAa,YAAY,aACxDjB,IAAA,CAAA,GAAA,EAAA,EAAG,IAAI,EAAE,QAAQ,EAAA,QAAA,EAAA,CAAEH,GAAA,CAAC,QAAQ,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAA,MAAA,CAAA,EAAA,CAAQ,EACjDA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,GAAA,EAAA,CAAc,EACdA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,aAAA,EAAA,CAAwB,CAAA,EAAA,CACpB,CACP,EAEDG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,MAAM,EAAA,QAAA,EAAA,CAC3BjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,UAAU,aAC/BpB,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAG,KAAK,EAAA,CAAM,EACxC,WAAW,KACVjB,YAAG,SAAS,EAAEiB,QAAM,CAAC,QAAQ,EAAA,QAAA,EAAA,CAAA,+CAAA,EAAgD,WAAW,EAAA,GAAA,CAAA,EAAA,CAAM,CAC/F,IACG,EACL,OAAO,KACNjB,KAAC,MAAM,EAAA,EAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,YAAY,EAAA,QAAA,EAAA,CACvDH,IAACe,UAAQ,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAA,aAAA,CAAA,EAAA,CAEf,CACV,IACG,EAEL,SAAS,KAAK,SAAS,KACtBZ,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,UAAU,EAAA,QAAA,EAAA,CAC/BpB,GAAA,CAAC,OAAO,EAAA,EAAC,IAAI,EAAC,IAAI,GAAG,EACrBA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,eAAA,EAAA,CAAqB,CAAA,EAAA,CACjB,CACP,EAEA,SAAS,KAAK,OAAO,KACpBG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAACiB,QAAM,CAAC,UAAU,EAAEA,QAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,QAAA,EAAA,CAC9DpB,IAACa,aAAW,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EACzBb,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAA,QAAA,EAAA,uCAAA,EAAA,CAA2C,IACrE,CACP,EAEA,SAAS,KAAK,OAAO,KACpBjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,UAAU,aAC/BpB,GAAA,CAACgB,UAAQ,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EACtBhB,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAEoB,QAAM,CAAC,SAAS,wCAA6B,CAAA,EAAA,CACvD,CACP,EAEA,SAAS,KAAK,MAAM,KACnBjB,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CAEED,cAAK,SAAS,EAAEiB,QAAM,CAAC,IAAI,EAAE,IAAI,EAAC,SAAS,EAAA,YAAA,EAAY,oBAAoB,EAAA,QAAA,EAAA,CACzEjB,IAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,KAAK,EAAA,eAAA,EACK,cAAc,KAAK,KAAK,EACvC,OAAO,EAAE,MAAM,iBAAiB,CAAC,KAAK,CAAC,EACvC,SAAS,EAAE,CAACiB,QAAM,CAAC,GAAG,EAAE,cAAc,KAAK,KAAK,GAAGA,QAAM,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,QAAA,EAAA,CAEnGpB,IAAC,QAAQ,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAAA,KAAA,CAAA,EAAA,CAEf,EAER,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;AACtB,gCAAA,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;AACtB,gCAAA,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI;AACtB,gCAAA,MAAM,QAAQ,GAAG,cAAc,KAAK,GAAG;gCACvC,QACEG,iBAEE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,KAAK,EAAA,eAAA,EACK,QAAQ,EACvB,OAAO,EAAE,MAAM,iBAAiB,CAAC,GAAG,CAAC,EACrC,SAAS,EAAE;AACT,wCAAAiB,QAAM,CAAC,GAAG;wCACV,QAAQ,GAAGA,QAAM,CAAC,SAAS,GAAG,EAAE;wCAChC,CAAC,CAAC,KAAK,GAAGA,QAAM,CAAC,QAAQ,GAAG,EAAE;AAC/B;yCACE,MAAM,CAAC,OAAO;AACd,yCAAA,IAAI,CAAC,GAAG,CAAC,aAEZpB,GAAA,CAAC,OAAO,IAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EACpB,CAAC,CAAC,KAAK,KAdH,GAAG,CAeD;4BAEb,CAAC,CAAC,IACE,EAGL,QAAQ,CAAC,MAAM,KAAK,CAAC,IACpBG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,UAAU,EAAA,QAAA,EAAA,CAC/BpB,GAAA,CAACgB,UAAQ,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EACtBhB,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAEoB,QAAM,CAAC,SAAS,EAAA,QAAA,EAAA,gCAAA,EAAA,CAAoC,CAAA,EAAA,CAC9D,KAENpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,IAAI,EAAA,QAAA,EACxB,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,MACpBpB,IAAC,WAAW,EAAA,EAEV,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,aAAa,EAAA,EAJhB,OAAO,CAAC,EAAE,CAKf,CACH,CAAC,GACE,CACP,CAAA,EAAA,CACA,CACJ,EAGDA,GAAA,CAAC,KAAK,EAAA,EACJ,MAAM,EAAE,YAAY,KAAK,IAAI,EAC7B,OAAO,EAAE,MAAM,eAAe,CAAC,IAAI,CAAC,EACpC,KAAK,EAAE,YAAY,EAAE,KAAK,EAC1B,IAAI,EAAC,IAAI,EACT,MAAM,EACJ,YAAY,EAAE,IAAI,IAChBG,IAAA,CAAA,GAAA,EAAA,EAAG,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,qBAAqB,EAAC,SAAS,EAAEiB,QAAM,CAAC,YAAY,EAAA,QAAA,EAAA,CAAA,wBAAA,EAElGpB,GAAA,CAAC,gBAAgB,IAAC,IAAI,EAAE,EAAE,EAAA,CAAI,CAAA,EAAA,CAC5B,IACF,SAAS,EAAA,QAAA,EAGd,YAAY,KACXG,cAAK,SAAS,EAAEiB,QAAM,CAAC,YAAY,EAAA,QAAA,EAAA,CAChC,SAAS,IAAI,iBAAiB,KAC7BjB,IAAA,CAAA,MAAA,EAAA,EACE,SAAS,EAAE,CAACiB,QAAM,CAAC,aAAa,EAAE,SAAS,CAAC,KAAK,GAAGA,QAAM,CAAC,aAAa,GAAG,EAAE;iCAC1E,MAAM,CAAC,OAAO;AACd,iCAAA,IAAI,CAAC,GAAG,CAAC,EAAA,QAAA,EAAA,CAEZpB,GAAA,CAAC,iBAAiB,EAAA,EAAC,IAAI,EAAE,EAAE,EAAA,CAAI,EAC9B,SAAS,CAAC,KAAK,CAAA,EAAA,CACX,CACR,EACA,YAAY,CAAC,QAAQ,IACpBA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,WAAW,EAAE,uBAAuB,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE,EAAA,CAAI,KAElGpB,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAEoB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAG,YAAY,CAAC,IAAI,EAAA,CAAK,CAC1D,CAAA,EAAA,CACG,CACP,EAAA,CACK,CAAA,EAAA,CACJ;AAEV;;;;AC9UA,MAAM,mBAAmB,GAAG,OAC1BjB,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CACjGH,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,GAAG,EACjCA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAA,CAAG,EACtCA,GAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAA,CAAG,CAAA,EAAA,CAClC,CACP;AAED;;;;;;;;AAQG;AACI,MAAM,YAAY,GAAG,CAAC,EAC3B,SAAS,GAAG,KAAK,EACjB,KAAK,GAAG,gBAAgB,EACxB,OAAO,GAAG,yFAAyF,EACnG,MAAM,EACN,YAAY,EACZ,SAAS,GAAG,EAAE,GACI,KAAI;AACtB,IAAA,MAAM,WAAW,GAAG;AAClB,QAAAoB,QAAM,CAAC,IAAI;QACX,SAAS;KACV,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAE3B,IAAA,QACEpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,WAAW,EAAA,QAAA,EACzBG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,IAAI,EAAA,QAAA,EAAA,CACzBpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,YAAY,EAAA,QAAA,EAChC,YAAY,IAAIpB,GAAA,CAAC,mBAAmB,EAAA,EAAA,CAAG,EAAA,CACpC,EACNA,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAEoB,QAAM,CAAC,SAAS,YAAG,SAAS,EAAA,CAAM,EACjDpB,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EAAG,KAAK,EAAA,CAAM,EACzCpB,WAAG,SAAS,EAAEoB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAG,OAAO,EAAA,CAAK,EAC1C,MAAM,KACLpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,MAAM,EAAA,QAAA,EAC1B,MAAM,EAAA,CACH,CACP,CAAA,EAAA,CACG,EAAA,CACF;AAEV;AAEA,YAAY,CAAC,WAAW,GAAG,cAAc;;;;ACtBzC,MAAM,UAAU,GAAG,OACjBjB,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,2CAA2C,EAAA,CAAE,EACrDA,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAA,CAAE,EAC7BA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,4BAA4B,EAAA,CAAE,EACtCA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,2BAA2B,EAAA,CAAE,CAAA,EAAA,CACjC,CACP;AAED,MAAM,YAAY,GAAG,OACnBG,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,cAAM,CAAC,EAAC,6EAA6E,EAAA,CAAE,EACvFA,kBAAU,MAAM,EAAC,gBAAgB,EAAA,CAAE,CAAA,EAAA,CAC/B,CACP;AAED,MAAM,eAAe,GAAG,OACtBG,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,GAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAA,CAAE,EAC/BA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,guBAAguB,EAAA,CAAE,CAAA,EAAA,CACtuB,CACP;AAED,MAAM,YAAY,GAAG,OACnBG,IAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAA,QAAA,EAAA,CAC/FH,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAA,CAAE,EAChDA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAA,CAAE,EACjDA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAA,CAAE,CAAA,EAAA,CAC7C,CACP;AAED,MAAM,YAAY,GAAwB;AACxC,IAAA,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAEA,GAAA,CAAC,UAAU,KAAG,EAAE;AACvD,IAAA,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAEA,GAAA,CAAC,YAAY,KAAG,EAAE;AAC7D,IAAA,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAEA,GAAA,CAAC,eAAe,KAAG,EAAE;AACtE,IAAA,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAEA,GAAA,CAAC,YAAY,KAAG,EAAE;CAC9D;AAED;;AAEG;MACU,kBAAkB,GAAG,CAAC,EACjC,OAAO,GAAG,MAAM,EAChB,KAAK,GAAG,iBAAiB,EACzB,SAAS,EACT,aAAa,GAAG,iBAAiB,EACjC,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,IAAI,GAAG,YAAY,EACnB,SAAS,GAAG,QAAQ,EACpB,WAAW,EACX,QAAQ,EACR,OAAO,EACP,MAAM,EACN,SAAS,GAAG,EAAE,GACU,KAAI;AAC5B,IAAA,MAAM,WAAW,GAAG,CAACoB,QAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAEtE,IAAA,IAAI,OAAO,KAAK,UAAU,EAAE;AAC1B,QAAA,QACEjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAACiB,QAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,QAAA,EAAA,CACpEpB,GAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAEoB,QAAM,CAAC,cAAc,YAAEpB,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAK,KAAK,EAAA,CAAM,EAAA,CAAS,EACnEG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,YAAY,EAAA,QAAA,EAAA,CACjCpB,GAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EAAQ,SAAS,EAAA,CAAS,EAC1BG,kBAAS,SAAS,EAAEiB,QAAM,CAAC,cAAc,EAAA,QAAA,EAAA,CACvCpB,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAK,aAAa,EAAA,CAAM,EACvB,YAAY,EACZ,QAAQ,CAAA,EAAA,CACD,CAAA,EAAA,CACN,CAAA,EAAA,CACF;IAEV;AAEA,IAAA,QACEG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,WAAW,EAAA,QAAA,EAAA,CACxB,MAAM,IAAIH,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,MAAM,YAAG,MAAM,EAAA,CAAO,EAExDpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,MAAM,EAAA,QAAA,EAC1B,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MACZjB,IAAA,CAAA,QAAA,EAAA,EAEE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE;AACT,wBAAAiB,QAAM,CAAC,SAAS;AAChB,wBAAA,SAAS,KAAK,GAAG,CAAC,EAAE,GAAGA,QAAM,CAAC,MAAM,GAAG,EAAE;AAC1C,qBAAA,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAC3B,OAAO,EAAE,MAAM,WAAW,GAAG,GAAG,CAAC,EAAE,CAAC,EAAA,eAAA,EACrB,SAAS,KAAK,GAAG,CAAC,EAAE,aAElC,GAAG,CAAC,IAAI,IAAIpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAG,GAAG,CAAC,IAAI,EAAA,CAAQ,EAC/DpB,wBAAO,GAAG,CAAC,KAAK,EAAA,CAAQ,EACvB,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,KACvCA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,QAAQ,EAAA,QAAA,EAAG,GAAG,CAAC,KAAK,EAAA,CAAQ,CACrD,CAAA,EAAA,EAbI,GAAG,CAAC,EAAE,CAcJ,CACV,CAAC,EAAA,CACE,EAENjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,IAAI,EAAA,QAAA,EAAA,CACzBpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,IAAI,EAAA,QAAA,EACzB,QAAQ,EAAA,CACJ,EACN,OAAO,KACNpB,GAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAEoB,QAAM,CAAC,OAAO,EAAA,QAAA,EAC7B,OAAO,EAAA,CACF,CACT,CAAA,EAAA,CACG,EAEL,MAAM,IAAIpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,MAAM,EAAA,QAAA,EAAG,MAAM,EAAA,CAAO,CAAA,EAAA,CACpD;AAEV;AAEA,kBAAkB,CAAC,WAAW,GAAG,oBAAoB;;;;ACvHrD;;;;;;;;AAQG;AACI,MAAM,gBAAgB,GAAG,CAAC,EAC/B,KAAK,GAAG,sBAAsB,EAC9B,WAAW,GAAG,iBAAiB,EAC/B,OAAO,GAAG,EAAE,EACZ,OAAO,EACP,UAAU,EACV,aAAa,EACb,OAAO,EACP,WAAW,EACX,YAAY,EACZ,QAAQ,GAAG,SAAS,EACpB,QAAQ,GAAG,KAAK,EAChB,SAAS,GAAG,EAAE,GACQ,KAAI;AAC1B,IAAA,MAAM,WAAW,GAAG;AAClB,QAAAA,QAAM,CAAC,IAAI;QACX,SAAS;KACV,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAE3B,IAAA,MAAM,aAAa,GAAG;AACpB,QAAAA,QAAM,CAAC,MAAM;QACb,QAAQ,GAAGA,QAAM,CAAC,YAAY,GAAG,EAAE;KACpC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAE3B,IAAA,QACEjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,WAAW,EAAA,QAAA,EAAA,CACzBA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,aAAa,EAAA,QAAA,EAAA,CAC3BA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,YAAY,EAAA,QAAA,EAAA,CACjCpB,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAEoB,QAAM,CAAC,KAAK,EAAA,QAAA,EACxB,QAAQ,GAAG,WAAW,GAAG,KAAK,EAAA,CAC5B,EACLjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,OAAO,aAC3B,UAAU,EACV,aAAa,CAAA,EAAA,CACV,IACF,EAEL,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,MAC7BpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,OAAO,EAAA,QAAA,EAC3B,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAChCjB,cAAa,SAAS,EAAEiB,QAAM,CAAC,MAAM,EAAA,QAAA,EAAA,CACnCjB,IAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEiB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAChC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,IACtC,EACPpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAG,MAAM,CAAC,KAAK,EAAA,CAAQ,CAAA,EAAA,EAJlD,CAAC,CAKL,CACP,CAAC,EAAA,CACE,CACP,CAAA,EAAA,CACG,EAEL,OAAO,EAERpB,aAAK,SAAS,EAAEoB,QAAM,CAAC,OAAO,EAAA,QAAA,EAC3B,QAAQ,KAAK,SAAS,GAAG,WAAW,GAAG,YAAY,EAAA,CAChD,CAAA,EAAA,CACF;AAEV;AAEA,gBAAgB,CAAC,WAAW,GAAG,kBAAkB;;;;ACjEjD;;;;;;;;;AASG;AACI,MAAM,sBAAsB,GAAG,CAAC,EACrC,KAAK,GAAG,sBAAsB,EAC9B,WAAW,GAAG,iBAAiB,EAC/B,OAAO,GAAG,EAAE,EACZ,OAAO,EACP,UAAU,EACV,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,IAAI,GAAG,UAAU,EACjB,WAAW,EAAE,YAAY,GAAG,KAAK,EACjC,QAAQ,GAAG,KAAK,EAChB,SAAS,GAAG,EAAE,GACc,KAAI;AAChC,IAAA,MAAM,WAAW,GAAG;AAClB,QAAAA,QAAM,CAAC,IAAI;QACX,SAAS;KACV,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAE3B,IAAA,MAAM,aAAa,GAAG;AACpB,QAAAA,QAAM,CAAC,MAAM;QACb,QAAQ,GAAGA,QAAM,CAAC,YAAY,GAAG,EAAE;KACpC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IAE3B,MAAM,UAAU,GAAG,MAAK;QACtB,QAAQ,IAAI;AACV,YAAA,KAAK,UAAU;AACb,gBAAA,OAAO,YAAY;AACrB,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,QAAQ;AACjB,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,QAAQ;AACjB,YAAA;AACE,gBAAA,OAAO,IAAI;;AAEjB,IAAA,CAAC;AAED,IAAA,QACEjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,WAAW,EAAA,QAAA,EAAA,CACzBA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,aAAa,EAAA,QAAA,EAAA,CAC3BA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,YAAY,EAAA,QAAA,EAAA,CACjCpB,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAEoB,QAAM,CAAC,KAAK,YACxB,QAAQ,GAAG,WAAW,GAAG,KAAK,GAC5B,EACLjB,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEiB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CAC3B,UAAU,EACV,aAAa,EACb,YAAY,EACZ,YAAY,CAAA,EAAA,CACT,CAAA,EAAA,CACF,EAEL,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,MAC7BpB,aAAK,SAAS,EAAEoB,QAAM,CAAC,OAAO,EAAA,QAAA,EAC3B,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAChCjB,IAAA,CAAA,QAAA,EAAA,EAAgB,SAAS,EAAEiB,QAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CACxGpB,cAAM,SAAS,EAAEoB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAG,MAAM,CAAC,KAAK,GAAQ,EAC1DpB,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEoB,QAAM,CAAC,WAAW,EAAA,QAAA,EAAG,MAAM,CAAC,KAAK,EAAA,CAAQ,CAAA,EAAA,EAF/C,CAAC,CAGL,CACV,CAAC,EAAA,CACE,CACP,IACG,EAENpB,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEoB,QAAM,CAAC,OAAO,EAAA,QAAA,EAAG,UAAU,EAAE,EAAA,CAAO,EACnD,OAAO,CAAA,EAAA,CACJ;AAEV;AAEA,sBAAsB,CAAC,WAAW,GAAG,wBAAwB;;;;AC1G7D;;;;;;;;AAQG;AACI,MAAM,cAAc,GAAG,CAAC,EAC7B,MAAM,EACN,UAAU,EACV,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,aAAa,EACb,eAAe,EACf,SAAS,GAAG,EAAE,GACM,KAAI;AACxB,IAAA,MAAM,WAAW,GAAG;AAClB,QAAA,MAAM,CAAC,IAAI;QACX,SAAS;KACV,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IAE3B,QACEjB,cAAK,SAAS,EAAE,WAAW,EAAA,QAAA,EAAA,CACxB,MAAM,KACLH,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,MAAM,EAAA,QAAA,EAC1B,MAAM,EAAA,CACH,CACP,EAEDG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CAE5BA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,UAAU,EAAA,QAAA,EAAA,CAE/BA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,YAAY,EAAA,QAAA,EAAA,CACjCA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAChCH,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAE,MAAM,CAAC,YAAY,EAAA,QAAA,EAAA,KAAA,EAAA,CAAU,EAC3C,UAAU,IAAIA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,KAAK,EAAA,QAAA,EAAA,YAAA,EAAA,CAAkB,CAAA,EAAA,CACzD,EACNG,cAAK,SAAS,EAAE,MAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAChCH,YAAI,SAAS,EAAE,MAAM,CAAC,YAAY,EAAA,QAAA,EAAA,QAAA,EAAA,CAAa,EAC9C,aAAa,IAAIA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,KAAK,EAAA,QAAA,EAAA,0BAAA,EAAA,CAAgC,CAAA,EAAA,CAC1E,EACNG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAChCH,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAE,MAAM,CAAC,YAAY,EAAA,QAAA,EAAA,OAAA,EAAA,CAAY,EAC7C,YAAY,IAAIA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,KAAK,0BAAiB,CAAA,EAAA,CAC1D,CAAA,EAAA,CACF,EAEL,YAAY,KACXG,cAAK,SAAS,EAAE,MAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CAC5BH,YAAI,SAAS,EAAE,MAAM,CAAC,YAAY,EAAA,QAAA,EAAA,OAAA,EAAA,CAAY,EAC7C,YAAY,CAAA,EAAA,CACT,CACP,EAEA,WAAW,KACVG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,OAAO,aAC5BH,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAE,MAAM,CAAC,YAAY,4BAAkB,EACnD,WAAW,CAAA,EAAA,CACR,CACP,CAAA,EAAA,CACG,EAGNG,cAAK,SAAS,EAAE,MAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CAC3B,aAAa,KACZA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,cAAc,EAAA,QAAA,EAAA,CACnCH,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAE,MAAM,CAAC,YAAY,EAAA,QAAA,EAAA,QAAA,EAAA,CAAa,EAC9C,aAAa,CAAA,EAAA,CACV,CACP,EAEA,eAAe,KACdG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,cAAc,EAAA,QAAA,EAAA,CACnCH,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAE,MAAM,CAAC,YAAY,EAAA,QAAA,EAAA,WAAA,EAAA,CAAgB,EACjD,eAAe,CAAA,EAAA,CACZ,CACP,CAAA,EAAA,CACG,CAAA,EAAA,CACF,CAAA,EAAA,CACF;AAEV;AAEA,cAAc,CAAC,WAAW,GAAG,gBAAgB;;;;"}
|