openlearn-next 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8227,22 +8227,22 @@ import{r as reactExports,g as getDefaultExportFromCjs,R as React,a as reactDomEx
8227
8227
  * This source code is licensed under the ISC license.
8228
8228
  * See the LICENSE file in the root directory of this source tree.
8229
8229
  */const LucideReact=Object.freeze(Object.defineProperty({__proto__:null,AArrowDown,AArrowDownIcon:AArrowDown,AArrowUp,AArrowUpIcon:AArrowUp,ALargeSmall,ALargeSmallIcon:ALargeSmall,Accessibility,AccessibilityIcon:Accessibility,Activity,ActivityIcon:Activity,ActivitySquare:SquareActivity,ActivitySquareIcon:SquareActivity,AirVent,AirVentIcon:AirVent,Airplay,AirplayIcon:Airplay,AlarmCheck:AlarmClockCheck,AlarmCheckIcon:AlarmClockCheck,AlarmClock,AlarmClockCheck,AlarmClockCheckIcon:AlarmClockCheck,AlarmClockIcon:AlarmClock,AlarmClockMinus,AlarmClockMinusIcon:AlarmClockMinus,AlarmClockOff,AlarmClockOffIcon:AlarmClockOff,AlarmClockPlus,AlarmClockPlusIcon:AlarmClockPlus,AlarmMinus:AlarmClockMinus,AlarmMinusIcon:AlarmClockMinus,AlarmPlus:AlarmClockPlus,AlarmPlusIcon:AlarmClockPlus,AlarmSmoke,AlarmSmokeIcon:AlarmSmoke,Album,AlbumIcon:Album,AlertCircle:CircleAlert,AlertCircleIcon:CircleAlert,AlertOctagon:OctagonAlert,AlertOctagonIcon:OctagonAlert,AlertTriangle:TriangleAlert,AlertTriangleIcon:TriangleAlert,AlignCenter:TextAlignCenter,AlignCenterHorizontal,AlignCenterHorizontalIcon:AlignCenterHorizontal,AlignCenterIcon:TextAlignCenter,AlignCenterVertical,AlignCenterVerticalIcon:AlignCenterVertical,AlignEndHorizontal,AlignEndHorizontalIcon:AlignEndHorizontal,AlignEndVertical,AlignEndVerticalIcon:AlignEndVertical,AlignHorizontalDistributeCenter,AlignHorizontalDistributeCenterIcon:AlignHorizontalDistributeCenter,AlignHorizontalDistributeEnd,AlignHorizontalDistributeEndIcon:AlignHorizontalDistributeEnd,AlignHorizontalDistributeStart,AlignHorizontalDistributeStartIcon:AlignHorizontalDistributeStart,AlignHorizontalJustifyCenter,AlignHorizontalJustifyCenterIcon:AlignHorizontalJustifyCenter,AlignHorizontalJustifyEnd,AlignHorizontalJustifyEndIcon:AlignHorizontalJustifyEnd,AlignHorizontalJustifyStart,AlignHorizontalJustifyStartIcon:AlignHorizontalJustifyStart,AlignHorizontalSpaceAround,AlignHorizontalSpaceAroundIcon:AlignHorizontalSpaceAround,AlignHorizontalSpaceBetween,AlignHorizontalSpaceBetweenIcon:AlignHorizontalSpaceBetween,AlignJustify:TextAlignJustify,AlignJustifyIcon:TextAlignJustify,AlignLeft:TextAlignStart,AlignLeftIcon:TextAlignStart,AlignRight:TextAlignEnd,AlignRightIcon:TextAlignEnd,AlignStartHorizontal,AlignStartHorizontalIcon:AlignStartHorizontal,AlignStartVertical,AlignStartVerticalIcon:AlignStartVertical,AlignVerticalDistributeCenter,AlignVerticalDistributeCenterIcon:AlignVerticalDistributeCenter,AlignVerticalDistributeEnd,AlignVerticalDistributeEndIcon:AlignVerticalDistributeEnd,AlignVerticalDistributeStart,AlignVerticalDistributeStartIcon:AlignVerticalDistributeStart,AlignVerticalJustifyCenter,AlignVerticalJustifyCenterIcon:AlignVerticalJustifyCenter,AlignVerticalJustifyEnd,AlignVerticalJustifyEndIcon:AlignVerticalJustifyEnd,AlignVerticalJustifyStart,AlignVerticalJustifyStartIcon:AlignVerticalJustifyStart,AlignVerticalSpaceAround,AlignVerticalSpaceAroundIcon:AlignVerticalSpaceAround,AlignVerticalSpaceBetween,AlignVerticalSpaceBetweenIcon:AlignVerticalSpaceBetween,Ambulance,AmbulanceIcon:Ambulance,Ampersand,AmpersandIcon:Ampersand,Ampersands,AmpersandsIcon:Ampersands,Amphora,AmphoraIcon:Amphora,Anchor,AnchorIcon:Anchor,Angry,AngryIcon:Angry,Annoyed,AnnoyedIcon:Annoyed,Antenna,AntennaIcon:Antenna,Anvil,AnvilIcon:Anvil,Aperture,ApertureIcon:Aperture,AppWindow,AppWindowIcon:AppWindow,AppWindowMac,AppWindowMacIcon:AppWindowMac,Apple,AppleIcon:Apple,Archive,ArchiveIcon:Archive,ArchiveRestore,ArchiveRestoreIcon:ArchiveRestore,ArchiveX,ArchiveXIcon:ArchiveX,AreaChart:ChartArea,AreaChartIcon:ChartArea,Armchair,ArmchairIcon:Armchair,ArrowBigDown,ArrowBigDownDash,ArrowBigDownDashIcon:ArrowBigDownDash,ArrowBigDownIcon:ArrowBigDown,ArrowBigLeft,ArrowBigLeftDash,ArrowBigLeftDashIcon:ArrowBigLeftDash,ArrowBigLeftIcon:ArrowBigLeft,ArrowBigRight,ArrowBigRightDash,ArrowBigRightDashIcon:ArrowBigRightDash,ArrowBigRightIcon:ArrowBigRight,ArrowBigUp,ArrowBigUpDash,ArrowBigUpDashIcon:ArrowBigUpDash,ArrowBigUpIcon:ArrowBigUp,ArrowDown,ArrowDown01,ArrowDown01Icon:ArrowDown01,ArrowDown10,ArrowDown10Icon:ArrowDown10,ArrowDownAZ,ArrowDownAZIcon:ArrowDownAZ,ArrowDownAz:ArrowDownAZ,ArrowDownAzIcon:ArrowDownAZ,ArrowDownCircle:CircleArrowDown,ArrowDownCircleIcon:CircleArrowDown,ArrowDownFromLine,ArrowDownFromLineIcon:ArrowDownFromLine,ArrowDownIcon:ArrowDown,ArrowDownLeft,ArrowDownLeftFromCircle:CircleArrowOutDownLeft,ArrowDownLeftFromCircleIcon:CircleArrowOutDownLeft,ArrowDownLeftFromSquare:SquareArrowOutDownLeft,ArrowDownLeftFromSquareIcon:SquareArrowOutDownLeft,ArrowDownLeftIcon:ArrowDownLeft,ArrowDownLeftSquare:SquareArrowDownLeft,ArrowDownLeftSquareIcon:SquareArrowDownLeft,ArrowDownNarrowWide,ArrowDownNarrowWideIcon:ArrowDownNarrowWide,ArrowDownRight,ArrowDownRightFromCircle:CircleArrowOutDownRight,ArrowDownRightFromCircleIcon:CircleArrowOutDownRight,ArrowDownRightFromSquare:SquareArrowOutDownRight,ArrowDownRightFromSquareIcon:SquareArrowOutDownRight,ArrowDownRightIcon:ArrowDownRight,ArrowDownRightSquare:SquareArrowDownRight,ArrowDownRightSquareIcon:SquareArrowDownRight,ArrowDownSquare:SquareArrowDown,ArrowDownSquareIcon:SquareArrowDown,ArrowDownToDot,ArrowDownToDotIcon:ArrowDownToDot,ArrowDownToLine,ArrowDownToLineIcon:ArrowDownToLine,ArrowDownUp,ArrowDownUpIcon:ArrowDownUp,ArrowDownWideNarrow,ArrowDownWideNarrowIcon:ArrowDownWideNarrow,ArrowDownZA,ArrowDownZAIcon:ArrowDownZA,ArrowDownZa:ArrowDownZA,ArrowDownZaIcon:ArrowDownZA,ArrowLeft,ArrowLeftCircle:CircleArrowLeft,ArrowLeftCircleIcon:CircleArrowLeft,ArrowLeftFromLine,ArrowLeftFromLineIcon:ArrowLeftFromLine,ArrowLeftIcon:ArrowLeft,ArrowLeftRight,ArrowLeftRightIcon:ArrowLeftRight,ArrowLeftSquare:SquareArrowLeft,ArrowLeftSquareIcon:SquareArrowLeft,ArrowLeftToLine,ArrowLeftToLineIcon:ArrowLeftToLine,ArrowRight,ArrowRightCircle:CircleArrowRight,ArrowRightCircleIcon:CircleArrowRight,ArrowRightFromLine,ArrowRightFromLineIcon:ArrowRightFromLine,ArrowRightIcon:ArrowRight,ArrowRightLeft,ArrowRightLeftIcon:ArrowRightLeft,ArrowRightSquare:SquareArrowRight,ArrowRightSquareIcon:SquareArrowRight,ArrowRightToLine,ArrowRightToLineIcon:ArrowRightToLine,ArrowUp,ArrowUp01,ArrowUp01Icon:ArrowUp01,ArrowUp10,ArrowUp10Icon:ArrowUp10,ArrowUpAZ,ArrowUpAZIcon:ArrowUpAZ,ArrowUpAz:ArrowUpAZ,ArrowUpAzIcon:ArrowUpAZ,ArrowUpCircle:CircleArrowUp,ArrowUpCircleIcon:CircleArrowUp,ArrowUpDown,ArrowUpDownIcon:ArrowUpDown,ArrowUpFromDot,ArrowUpFromDotIcon:ArrowUpFromDot,ArrowUpFromLine,ArrowUpFromLineIcon:ArrowUpFromLine,ArrowUpIcon:ArrowUp,ArrowUpLeft,ArrowUpLeftFromCircle:CircleArrowOutUpLeft,ArrowUpLeftFromCircleIcon:CircleArrowOutUpLeft,ArrowUpLeftFromSquare:SquareArrowOutUpLeft,ArrowUpLeftFromSquareIcon:SquareArrowOutUpLeft,ArrowUpLeftIcon:ArrowUpLeft,ArrowUpLeftSquare:SquareArrowUpLeft,ArrowUpLeftSquareIcon:SquareArrowUpLeft,ArrowUpNarrowWide,ArrowUpNarrowWideIcon:ArrowUpNarrowWide,ArrowUpRight,ArrowUpRightFromCircle:CircleArrowOutUpRight,ArrowUpRightFromCircleIcon:CircleArrowOutUpRight,ArrowUpRightFromSquare:SquareArrowOutUpRight,ArrowUpRightFromSquareIcon:SquareArrowOutUpRight,ArrowUpRightIcon:ArrowUpRight,ArrowUpRightSquare:SquareArrowUpRight,ArrowUpRightSquareIcon:SquareArrowUpRight,ArrowUpSquare:SquareArrowUp,ArrowUpSquareIcon:SquareArrowUp,ArrowUpToLine,ArrowUpToLineIcon:ArrowUpToLine,ArrowUpWideNarrow,ArrowUpWideNarrowIcon:ArrowUpWideNarrow,ArrowUpZA,ArrowUpZAIcon:ArrowUpZA,ArrowUpZa:ArrowUpZA,ArrowUpZaIcon:ArrowUpZA,ArrowsUpFromLine,ArrowsUpFromLineIcon:ArrowsUpFromLine,Asterisk,AsteriskIcon:Asterisk,AsteriskSquare:SquareAsterisk,AsteriskSquareIcon:SquareAsterisk,AtSign,AtSignIcon:AtSign,Atom,AtomIcon:Atom,AudioLines,AudioLinesIcon:AudioLines,AudioWaveform,AudioWaveformIcon:AudioWaveform,Award,AwardIcon:Award,Axe,AxeIcon:Axe,Axis3D:Axis3d,Axis3DIcon:Axis3d,Axis3d,Axis3dIcon:Axis3d,Baby,BabyIcon:Baby,Backpack,BackpackIcon:Backpack,Badge,BadgeAlert,BadgeAlertIcon:BadgeAlert,BadgeCent,BadgeCentIcon:BadgeCent,BadgeCheck,BadgeCheckIcon:BadgeCheck,BadgeDollarSign,BadgeDollarSignIcon:BadgeDollarSign,BadgeEuro,BadgeEuroIcon:BadgeEuro,BadgeHelp:BadgeQuestionMark,BadgeHelpIcon:BadgeQuestionMark,BadgeIcon:Badge,BadgeIndianRupee,BadgeIndianRupeeIcon:BadgeIndianRupee,BadgeInfo,BadgeInfoIcon:BadgeInfo,BadgeJapaneseYen,BadgeJapaneseYenIcon:BadgeJapaneseYen,BadgeMinus,BadgeMinusIcon:BadgeMinus,BadgePercent,BadgePercentIcon:BadgePercent,BadgePlus,BadgePlusIcon:BadgePlus,BadgePoundSterling,BadgePoundSterlingIcon:BadgePoundSterling,BadgeQuestionMark,BadgeQuestionMarkIcon:BadgeQuestionMark,BadgeRussianRuble,BadgeRussianRubleIcon:BadgeRussianRuble,BadgeSwissFranc,BadgeSwissFrancIcon:BadgeSwissFranc,BadgeTurkishLira,BadgeTurkishLiraIcon:BadgeTurkishLira,BadgeX,BadgeXIcon:BadgeX,BaggageClaim,BaggageClaimIcon:BaggageClaim,Ban,BanIcon:Ban,Banana,BananaIcon:Banana,Bandage,BandageIcon:Bandage,Banknote,BanknoteArrowDown,BanknoteArrowDownIcon:BanknoteArrowDown,BanknoteArrowUp,BanknoteArrowUpIcon:BanknoteArrowUp,BanknoteIcon:Banknote,BanknoteX,BanknoteXIcon:BanknoteX,BarChart:ChartNoAxesColumnIncreasing,BarChart2:ChartNoAxesColumn,BarChart2Icon:ChartNoAxesColumn,BarChart3:ChartColumn,BarChart3Icon:ChartColumn,BarChart4:ChartColumnIncreasing,BarChart4Icon:ChartColumnIncreasing,BarChartBig:ChartColumnBig,BarChartBigIcon:ChartColumnBig,BarChartHorizontal:ChartBar,BarChartHorizontalBig:ChartBarBig,BarChartHorizontalBigIcon:ChartBarBig,BarChartHorizontalIcon:ChartBar,BarChartIcon:ChartNoAxesColumnIncreasing,Barcode,BarcodeIcon:Barcode,Barrel,BarrelIcon:Barrel,Baseline,BaselineIcon:Baseline,Bath,BathIcon:Bath,Battery,BatteryCharging,BatteryChargingIcon:BatteryCharging,BatteryFull,BatteryFullIcon:BatteryFull,BatteryIcon:Battery,BatteryLow,BatteryLowIcon:BatteryLow,BatteryMedium,BatteryMediumIcon:BatteryMedium,BatteryPlus,BatteryPlusIcon:BatteryPlus,BatteryWarning,BatteryWarningIcon:BatteryWarning,Beaker,BeakerIcon:Beaker,Bean,BeanIcon:Bean,BeanOff,BeanOffIcon:BeanOff,Bed,BedDouble,BedDoubleIcon:BedDouble,BedIcon:Bed,BedSingle,BedSingleIcon:BedSingle,Beef,BeefIcon:Beef,Beer,BeerIcon:Beer,BeerOff,BeerOffIcon:BeerOff,Bell,BellDot,BellDotIcon:BellDot,BellElectric,BellElectricIcon:BellElectric,BellIcon:Bell,BellMinus,BellMinusIcon:BellMinus,BellOff,BellOffIcon:BellOff,BellPlus,BellPlusIcon:BellPlus,BellRing,BellRingIcon:BellRing,BetweenHorizonalEnd:BetweenHorizontalEnd,BetweenHorizonalEndIcon:BetweenHorizontalEnd,BetweenHorizonalStart:BetweenHorizontalStart,BetweenHorizonalStartIcon:BetweenHorizontalStart,BetweenHorizontalEnd,BetweenHorizontalEndIcon:BetweenHorizontalEnd,BetweenHorizontalStart,BetweenHorizontalStartIcon:BetweenHorizontalStart,BetweenVerticalEnd,BetweenVerticalEndIcon:BetweenVerticalEnd,BetweenVerticalStart,BetweenVerticalStartIcon:BetweenVerticalStart,BicepsFlexed,BicepsFlexedIcon:BicepsFlexed,Bike,BikeIcon:Bike,Binary,BinaryIcon:Binary,Binoculars,BinocularsIcon:Binoculars,Biohazard,BiohazardIcon:Biohazard,Bird,BirdIcon:Bird,Bitcoin,BitcoinIcon:Bitcoin,Blend,BlendIcon:Blend,Blinds,BlindsIcon:Blinds,Blocks,BlocksIcon:Blocks,Bluetooth,BluetoothConnected,BluetoothConnectedIcon:BluetoothConnected,BluetoothIcon:Bluetooth,BluetoothOff,BluetoothOffIcon:BluetoothOff,BluetoothSearching,BluetoothSearchingIcon:BluetoothSearching,Bold,BoldIcon:Bold,Bolt,BoltIcon:Bolt,Bomb,BombIcon:Bomb,Bone,BoneIcon:Bone,Book,BookA,BookAIcon:BookA,BookAlert,BookAlertIcon:BookAlert,BookAudio,BookAudioIcon:BookAudio,BookCheck,BookCheckIcon:BookCheck,BookCopy,BookCopyIcon:BookCopy,BookDashed,BookDashedIcon:BookDashed,BookDown,BookDownIcon:BookDown,BookHeadphones,BookHeadphonesIcon:BookHeadphones,BookHeart,BookHeartIcon:BookHeart,BookIcon:Book,BookImage,BookImageIcon:BookImage,BookKey,BookKeyIcon:BookKey,BookLock,BookLockIcon:BookLock,BookMarked,BookMarkedIcon:BookMarked,BookMinus,BookMinusIcon:BookMinus,BookOpen,BookOpenCheck,BookOpenCheckIcon:BookOpenCheck,BookOpenIcon:BookOpen,BookOpenText,BookOpenTextIcon:BookOpenText,BookPlus,BookPlusIcon:BookPlus,BookTemplate:BookDashed,BookTemplateIcon:BookDashed,BookText,BookTextIcon:BookText,BookType,BookTypeIcon:BookType,BookUp,BookUp2,BookUp2Icon:BookUp2,BookUpIcon:BookUp,BookUser,BookUserIcon:BookUser,BookX,BookXIcon:BookX,Bookmark,BookmarkCheck,BookmarkCheckIcon:BookmarkCheck,BookmarkIcon:Bookmark,BookmarkMinus,BookmarkMinusIcon:BookmarkMinus,BookmarkPlus,BookmarkPlusIcon:BookmarkPlus,BookmarkX,BookmarkXIcon:BookmarkX,BoomBox,BoomBoxIcon:BoomBox,Bot,BotIcon:Bot,BotMessageSquare,BotMessageSquareIcon:BotMessageSquare,BotOff,BotOffIcon:BotOff,BottleWine,BottleWineIcon:BottleWine,BowArrow,BowArrowIcon:BowArrow,Box,BoxIcon:Box,BoxSelect:SquareDashed,BoxSelectIcon:SquareDashed,Boxes,BoxesIcon:Boxes,Braces,BracesIcon:Braces,Brackets,BracketsIcon:Brackets,Brain,BrainCircuit,BrainCircuitIcon:BrainCircuit,BrainCog,BrainCogIcon:BrainCog,BrainIcon:Brain,BrickWall,BrickWallFire,BrickWallFireIcon:BrickWallFire,BrickWallIcon:BrickWall,BrickWallShield,BrickWallShieldIcon:BrickWallShield,Briefcase,BriefcaseBusiness,BriefcaseBusinessIcon:BriefcaseBusiness,BriefcaseConveyorBelt,BriefcaseConveyorBeltIcon:BriefcaseConveyorBelt,BriefcaseIcon:Briefcase,BriefcaseMedical,BriefcaseMedicalIcon:BriefcaseMedical,BringToFront,BringToFrontIcon:BringToFront,Brush,BrushCleaning,BrushCleaningIcon:BrushCleaning,BrushIcon:Brush,Bubbles,BubblesIcon:Bubbles,Bug,BugIcon:Bug,BugOff,BugOffIcon:BugOff,BugPlay,BugPlayIcon:BugPlay,Building,Building2,Building2Icon:Building2,BuildingIcon:Building,Bus,BusFront,BusFrontIcon:BusFront,BusIcon:Bus,Cable,CableCar,CableCarIcon:CableCar,CableIcon:Cable,Cake,CakeIcon:Cake,CakeSlice,CakeSliceIcon:CakeSlice,Calculator,CalculatorIcon:Calculator,Calendar,Calendar1,Calendar1Icon:Calendar1,CalendarArrowDown,CalendarArrowDownIcon:CalendarArrowDown,CalendarArrowUp,CalendarArrowUpIcon:CalendarArrowUp,CalendarCheck,CalendarCheck2,CalendarCheck2Icon:CalendarCheck2,CalendarCheckIcon:CalendarCheck,CalendarClock,CalendarClockIcon:CalendarClock,CalendarCog,CalendarCogIcon:CalendarCog,CalendarDays,CalendarDaysIcon:CalendarDays,CalendarFold,CalendarFoldIcon:CalendarFold,CalendarHeart,CalendarHeartIcon:CalendarHeart,CalendarIcon:Calendar,CalendarMinus,CalendarMinus2,CalendarMinus2Icon:CalendarMinus2,CalendarMinusIcon:CalendarMinus,CalendarOff,CalendarOffIcon:CalendarOff,CalendarPlus,CalendarPlus2,CalendarPlus2Icon:CalendarPlus2,CalendarPlusIcon:CalendarPlus,CalendarRange,CalendarRangeIcon:CalendarRange,CalendarSearch,CalendarSearchIcon:CalendarSearch,CalendarSync,CalendarSyncIcon:CalendarSync,CalendarX,CalendarX2,CalendarX2Icon:CalendarX2,CalendarXIcon:CalendarX,Camera,CameraIcon:Camera,CameraOff,CameraOffIcon:CameraOff,CandlestickChart:ChartCandlestick,CandlestickChartIcon:ChartCandlestick,Candy,CandyCane,CandyCaneIcon:CandyCane,CandyIcon:Candy,CandyOff,CandyOffIcon:CandyOff,Cannabis,CannabisIcon:Cannabis,Captions,CaptionsIcon:Captions,CaptionsOff,CaptionsOffIcon:CaptionsOff,Car,CarFront,CarFrontIcon:CarFront,CarIcon:Car,CarTaxiFront,CarTaxiFrontIcon:CarTaxiFront,Caravan,CaravanIcon:Caravan,CardSim,CardSimIcon:CardSim,Carrot,CarrotIcon:Carrot,CaseLower,CaseLowerIcon:CaseLower,CaseSensitive,CaseSensitiveIcon:CaseSensitive,CaseUpper,CaseUpperIcon:CaseUpper,CassetteTape,CassetteTapeIcon:CassetteTape,Cast,CastIcon:Cast,Castle,CastleIcon:Castle,Cat,CatIcon:Cat,Cctv,CctvIcon:Cctv,ChartArea,ChartAreaIcon:ChartArea,ChartBar,ChartBarBig,ChartBarBigIcon:ChartBarBig,ChartBarDecreasing,ChartBarDecreasingIcon:ChartBarDecreasing,ChartBarIcon:ChartBar,ChartBarIncreasing,ChartBarIncreasingIcon:ChartBarIncreasing,ChartBarStacked,ChartBarStackedIcon:ChartBarStacked,ChartCandlestick,ChartCandlestickIcon:ChartCandlestick,ChartColumn,ChartColumnBig,ChartColumnBigIcon:ChartColumnBig,ChartColumnDecreasing,ChartColumnDecreasingIcon:ChartColumnDecreasing,ChartColumnIcon:ChartColumn,ChartColumnIncreasing,ChartColumnIncreasingIcon:ChartColumnIncreasing,ChartColumnStacked,ChartColumnStackedIcon:ChartColumnStacked,ChartGantt,ChartGanttIcon:ChartGantt,ChartLine,ChartLineIcon:ChartLine,ChartNetwork,ChartNetworkIcon:ChartNetwork,ChartNoAxesColumn,ChartNoAxesColumnDecreasing,ChartNoAxesColumnDecreasingIcon:ChartNoAxesColumnDecreasing,ChartNoAxesColumnIcon:ChartNoAxesColumn,ChartNoAxesColumnIncreasing,ChartNoAxesColumnIncreasingIcon:ChartNoAxesColumnIncreasing,ChartNoAxesCombined,ChartNoAxesCombinedIcon:ChartNoAxesCombined,ChartNoAxesGantt,ChartNoAxesGanttIcon:ChartNoAxesGantt,ChartPie,ChartPieIcon:ChartPie,ChartScatter,ChartScatterIcon:ChartScatter,ChartSpline,ChartSplineIcon:ChartSpline,Check,CheckCheck,CheckCheckIcon:CheckCheck,CheckCircle:CircleCheckBig,CheckCircle2:CircleCheck,CheckCircle2Icon:CircleCheck,CheckCircleIcon:CircleCheckBig,CheckIcon:Check,CheckLine,CheckLineIcon:CheckLine,CheckSquare:SquareCheckBig,CheckSquare2:SquareCheck,CheckSquare2Icon:SquareCheck,CheckSquareIcon:SquareCheckBig,ChefHat,ChefHatIcon:ChefHat,Cherry,CherryIcon:Cherry,ChevronDown,ChevronDownCircle:CircleChevronDown,ChevronDownCircleIcon:CircleChevronDown,ChevronDownIcon:ChevronDown,ChevronDownSquare:SquareChevronDown,ChevronDownSquareIcon:SquareChevronDown,ChevronFirst,ChevronFirstIcon:ChevronFirst,ChevronLast,ChevronLastIcon:ChevronLast,ChevronLeft,ChevronLeftCircle:CircleChevronLeft,ChevronLeftCircleIcon:CircleChevronLeft,ChevronLeftIcon:ChevronLeft,ChevronLeftSquare:SquareChevronLeft,ChevronLeftSquareIcon:SquareChevronLeft,ChevronRight,ChevronRightCircle:CircleChevronRight,ChevronRightCircleIcon:CircleChevronRight,ChevronRightIcon:ChevronRight,ChevronRightSquare:SquareChevronRight,ChevronRightSquareIcon:SquareChevronRight,ChevronUp,ChevronUpCircle:CircleChevronUp,ChevronUpCircleIcon:CircleChevronUp,ChevronUpIcon:ChevronUp,ChevronUpSquare:SquareChevronUp,ChevronUpSquareIcon:SquareChevronUp,ChevronsDown,ChevronsDownIcon:ChevronsDown,ChevronsDownUp,ChevronsDownUpIcon:ChevronsDownUp,ChevronsLeft,ChevronsLeftIcon:ChevronsLeft,ChevronsLeftRight,ChevronsLeftRightEllipsis,ChevronsLeftRightEllipsisIcon:ChevronsLeftRightEllipsis,ChevronsLeftRightIcon:ChevronsLeftRight,ChevronsRight,ChevronsRightIcon:ChevronsRight,ChevronsRightLeft,ChevronsRightLeftIcon:ChevronsRightLeft,ChevronsUp,ChevronsUpDown,ChevronsUpDownIcon:ChevronsUpDown,ChevronsUpIcon:ChevronsUp,Chrome:Chromium,ChromeIcon:Chromium,Chromium,ChromiumIcon:Chromium,Church,ChurchIcon:Church,Cigarette,CigaretteIcon:Cigarette,CigaretteOff,CigaretteOffIcon:CigaretteOff,Circle,CircleAlert,CircleAlertIcon:CircleAlert,CircleArrowDown,CircleArrowDownIcon:CircleArrowDown,CircleArrowLeft,CircleArrowLeftIcon:CircleArrowLeft,CircleArrowOutDownLeft,CircleArrowOutDownLeftIcon:CircleArrowOutDownLeft,CircleArrowOutDownRight,CircleArrowOutDownRightIcon:CircleArrowOutDownRight,CircleArrowOutUpLeft,CircleArrowOutUpLeftIcon:CircleArrowOutUpLeft,CircleArrowOutUpRight,CircleArrowOutUpRightIcon:CircleArrowOutUpRight,CircleArrowRight,CircleArrowRightIcon:CircleArrowRight,CircleArrowUp,CircleArrowUpIcon:CircleArrowUp,CircleCheck,CircleCheckBig,CircleCheckBigIcon:CircleCheckBig,CircleCheckIcon:CircleCheck,CircleChevronDown,CircleChevronDownIcon:CircleChevronDown,CircleChevronLeft,CircleChevronLeftIcon:CircleChevronLeft,CircleChevronRight,CircleChevronRightIcon:CircleChevronRight,CircleChevronUp,CircleChevronUpIcon:CircleChevronUp,CircleDashed,CircleDashedIcon:CircleDashed,CircleDivide,CircleDivideIcon:CircleDivide,CircleDollarSign,CircleDollarSignIcon:CircleDollarSign,CircleDot,CircleDotDashed,CircleDotDashedIcon:CircleDotDashed,CircleDotIcon:CircleDot,CircleEllipsis,CircleEllipsisIcon:CircleEllipsis,CircleEqual,CircleEqualIcon:CircleEqual,CircleFadingArrowUp,CircleFadingArrowUpIcon:CircleFadingArrowUp,CircleFadingPlus,CircleFadingPlusIcon:CircleFadingPlus,CircleGauge,CircleGaugeIcon:CircleGauge,CircleHelp:CircleQuestionMark,CircleHelpIcon:CircleQuestionMark,CircleIcon:Circle,CircleMinus,CircleMinusIcon:CircleMinus,CircleOff,CircleOffIcon:CircleOff,CircleParking,CircleParkingIcon:CircleParking,CircleParkingOff,CircleParkingOffIcon:CircleParkingOff,CirclePause,CirclePauseIcon:CirclePause,CirclePercent,CirclePercentIcon:CirclePercent,CirclePlay,CirclePlayIcon:CirclePlay,CirclePlus,CirclePlusIcon:CirclePlus,CirclePoundSterling,CirclePoundSterlingIcon:CirclePoundSterling,CirclePower,CirclePowerIcon:CirclePower,CircleQuestionMark,CircleQuestionMarkIcon:CircleQuestionMark,CircleSlash,CircleSlash2,CircleSlash2Icon:CircleSlash2,CircleSlashIcon:CircleSlash,CircleSlashed:CircleSlash2,CircleSlashedIcon:CircleSlash2,CircleSmall,CircleSmallIcon:CircleSmall,CircleStar,CircleStarIcon:CircleStar,CircleStop,CircleStopIcon:CircleStop,CircleUser,CircleUserIcon:CircleUser,CircleUserRound,CircleUserRoundIcon:CircleUserRound,CircleX,CircleXIcon:CircleX,CircuitBoard,CircuitBoardIcon:CircuitBoard,Citrus,CitrusIcon:Citrus,Clapperboard,ClapperboardIcon:Clapperboard,Clipboard,ClipboardCheck,ClipboardCheckIcon:ClipboardCheck,ClipboardClock,ClipboardClockIcon:ClipboardClock,ClipboardCopy,ClipboardCopyIcon:ClipboardCopy,ClipboardEdit:ClipboardPen,ClipboardEditIcon:ClipboardPen,ClipboardIcon:Clipboard,ClipboardList,ClipboardListIcon:ClipboardList,ClipboardMinus,ClipboardMinusIcon:ClipboardMinus,ClipboardPaste,ClipboardPasteIcon:ClipboardPaste,ClipboardPen,ClipboardPenIcon:ClipboardPen,ClipboardPenLine,ClipboardPenLineIcon:ClipboardPenLine,ClipboardPlus,ClipboardPlusIcon:ClipboardPlus,ClipboardSignature:ClipboardPenLine,ClipboardSignatureIcon:ClipboardPenLine,ClipboardType,ClipboardTypeIcon:ClipboardType,ClipboardX,ClipboardXIcon:ClipboardX,Clock,Clock1,Clock10,Clock10Icon:Clock10,Clock11,Clock11Icon:Clock11,Clock12,Clock12Icon:Clock12,Clock1Icon:Clock1,Clock2,Clock2Icon:Clock2,Clock3,Clock3Icon:Clock3,Clock4,Clock4Icon:Clock4,Clock5,Clock5Icon:Clock5,Clock6,Clock6Icon:Clock6,Clock7,Clock7Icon:Clock7,Clock8,Clock8Icon:Clock8,Clock9,Clock9Icon:Clock9,ClockAlert,ClockAlertIcon:ClockAlert,ClockArrowDown,ClockArrowDownIcon:ClockArrowDown,ClockArrowUp,ClockArrowUpIcon:ClockArrowUp,ClockFading,ClockFadingIcon:ClockFading,ClockIcon:Clock,ClockPlus,ClockPlusIcon:ClockPlus,ClosedCaption,ClosedCaptionIcon:ClosedCaption,Cloud,CloudAlert,CloudAlertIcon:CloudAlert,CloudCheck,CloudCheckIcon:CloudCheck,CloudCog,CloudCogIcon:CloudCog,CloudDownload,CloudDownloadIcon:CloudDownload,CloudDrizzle,CloudDrizzleIcon:CloudDrizzle,CloudFog,CloudFogIcon:CloudFog,CloudHail,CloudHailIcon:CloudHail,CloudIcon:Cloud,CloudLightning,CloudLightningIcon:CloudLightning,CloudMoon,CloudMoonIcon:CloudMoon,CloudMoonRain,CloudMoonRainIcon:CloudMoonRain,CloudOff,CloudOffIcon:CloudOff,CloudRain,CloudRainIcon:CloudRain,CloudRainWind,CloudRainWindIcon:CloudRainWind,CloudSnow,CloudSnowIcon:CloudSnow,CloudSun,CloudSunIcon:CloudSun,CloudSunRain,CloudSunRainIcon:CloudSunRain,CloudUpload,CloudUploadIcon:CloudUpload,Cloudy,CloudyIcon:Cloudy,Clover,CloverIcon:Clover,Club,ClubIcon:Club,Code,Code2:CodeXml,Code2Icon:CodeXml,CodeIcon:Code,CodeSquare:SquareCode,CodeSquareIcon:SquareCode,CodeXml,CodeXmlIcon:CodeXml,Codepen,CodepenIcon:Codepen,Codesandbox,CodesandboxIcon:Codesandbox,Coffee,CoffeeIcon:Coffee,Cog,CogIcon:Cog,Coins,CoinsIcon:Coins,Columns:Columns2,Columns2,Columns2Icon:Columns2,Columns3,Columns3Cog,Columns3CogIcon:Columns3Cog,Columns3Icon:Columns3,Columns4,Columns4Icon:Columns4,ColumnsIcon:Columns2,ColumnsSettings:Columns3Cog,ColumnsSettingsIcon:Columns3Cog,Combine,CombineIcon:Combine,Command,CommandIcon:Command,Compass,CompassIcon:Compass,Component,ComponentIcon:Component,Computer,ComputerIcon:Computer,ConciergeBell,ConciergeBellIcon:ConciergeBell,Cone,ConeIcon:Cone,Construction,ConstructionIcon:Construction,Contact,Contact2:ContactRound,Contact2Icon:ContactRound,ContactIcon:Contact,ContactRound,ContactRoundIcon:ContactRound,Container,ContainerIcon:Container,Contrast,ContrastIcon:Contrast,Cookie,CookieIcon:Cookie,CookingPot,CookingPotIcon:CookingPot,Copy,CopyCheck,CopyCheckIcon:CopyCheck,CopyIcon:Copy,CopyMinus,CopyMinusIcon:CopyMinus,CopyPlus,CopyPlusIcon:CopyPlus,CopySlash,CopySlashIcon:CopySlash,CopyX,CopyXIcon:CopyX,Copyleft,CopyleftIcon:Copyleft,Copyright,CopyrightIcon:Copyright,CornerDownLeft,CornerDownLeftIcon:CornerDownLeft,CornerDownRight,CornerDownRightIcon:CornerDownRight,CornerLeftDown,CornerLeftDownIcon:CornerLeftDown,CornerLeftUp,CornerLeftUpIcon:CornerLeftUp,CornerRightDown,CornerRightDownIcon:CornerRightDown,CornerRightUp,CornerRightUpIcon:CornerRightUp,CornerUpLeft,CornerUpLeftIcon:CornerUpLeft,CornerUpRight,CornerUpRightIcon:CornerUpRight,Cpu,CpuIcon:Cpu,CreativeCommons,CreativeCommonsIcon:CreativeCommons,CreditCard,CreditCardIcon:CreditCard,Croissant,CroissantIcon:Croissant,Crop,CropIcon:Crop,Cross,CrossIcon:Cross,Crosshair,CrosshairIcon:Crosshair,Crown,CrownIcon:Crown,Cuboid,CuboidIcon:Cuboid,CupSoda,CupSodaIcon:CupSoda,CurlyBraces:Braces,CurlyBracesIcon:Braces,Currency,CurrencyIcon:Currency,Cylinder,CylinderIcon:Cylinder,Dam,DamIcon:Dam,Database,DatabaseBackup,DatabaseBackupIcon:DatabaseBackup,DatabaseIcon:Database,DatabaseZap,DatabaseZapIcon:DatabaseZap,DecimalsArrowLeft,DecimalsArrowLeftIcon:DecimalsArrowLeft,DecimalsArrowRight,DecimalsArrowRightIcon:DecimalsArrowRight,Delete,DeleteIcon:Delete,Dessert,DessertIcon:Dessert,Diameter,DiameterIcon:Diameter,Diamond,DiamondIcon:Diamond,DiamondMinus,DiamondMinusIcon:DiamondMinus,DiamondPercent,DiamondPercentIcon:DiamondPercent,DiamondPlus,DiamondPlusIcon:DiamondPlus,Dice1,Dice1Icon:Dice1,Dice2,Dice2Icon:Dice2,Dice3,Dice3Icon:Dice3,Dice4,Dice4Icon:Dice4,Dice5,Dice5Icon:Dice5,Dice6,Dice6Icon:Dice6,Dices,DicesIcon:Dices,Diff,DiffIcon:Diff,Disc,Disc2,Disc2Icon:Disc2,Disc3,Disc3Icon:Disc3,DiscAlbum,DiscAlbumIcon:DiscAlbum,DiscIcon:Disc,Divide,DivideCircle:CircleDivide,DivideCircleIcon:CircleDivide,DivideIcon:Divide,DivideSquare:SquareDivide,DivideSquareIcon:SquareDivide,Dna,DnaIcon:Dna,DnaOff,DnaOffIcon:DnaOff,Dock,DockIcon:Dock,Dog,DogIcon:Dog,DollarSign,DollarSignIcon:DollarSign,Donut,DonutIcon:Donut,DoorClosed,DoorClosedIcon:DoorClosed,DoorClosedLocked,DoorClosedLockedIcon:DoorClosedLocked,DoorOpen,DoorOpenIcon:DoorOpen,Dot,DotIcon:Dot,DotSquare:SquareDot,DotSquareIcon:SquareDot,Download,DownloadCloud:CloudDownload,DownloadCloudIcon:CloudDownload,DownloadIcon:Download,DraftingCompass,DraftingCompassIcon:DraftingCompass,Drama,DramaIcon:Drama,Dribbble,DribbbleIcon:Dribbble,Drill,DrillIcon:Drill,Drone,DroneIcon:Drone,Droplet,DropletIcon:Droplet,DropletOff,DropletOffIcon:DropletOff,Droplets,DropletsIcon:Droplets,Drum,DrumIcon:Drum,Drumstick,DrumstickIcon:Drumstick,Dumbbell,DumbbellIcon:Dumbbell,Ear,EarIcon:Ear,EarOff,EarOffIcon:EarOff,Earth,EarthIcon:Earth,EarthLock,EarthLockIcon:EarthLock,Eclipse,EclipseIcon:Eclipse,Edit:SquarePen,Edit2:Pen,Edit2Icon:Pen,Edit3:PenLine,Edit3Icon:PenLine,EditIcon:SquarePen,Egg,EggFried,EggFriedIcon:EggFried,EggIcon:Egg,EggOff,EggOffIcon:EggOff,Ellipsis,EllipsisIcon:Ellipsis,EllipsisVertical,EllipsisVerticalIcon:EllipsisVertical,Equal,EqualApproximately,EqualApproximatelyIcon:EqualApproximately,EqualIcon:Equal,EqualNot,EqualNotIcon:EqualNot,EqualSquare:SquareEqual,EqualSquareIcon:SquareEqual,Eraser,EraserIcon:Eraser,EthernetPort,EthernetPortIcon:EthernetPort,Euro,EuroIcon:Euro,EvCharger,EvChargerIcon:EvCharger,Expand,ExpandIcon:Expand,ExternalLink,ExternalLinkIcon:ExternalLink,Eye,EyeClosed,EyeClosedIcon:EyeClosed,EyeIcon:Eye,EyeOff,EyeOffIcon:EyeOff,Facebook,FacebookIcon:Facebook,Factory,FactoryIcon:Factory,Fan,FanIcon:Fan,FastForward,FastForwardIcon:FastForward,Feather,FeatherIcon:Feather,Fence,FenceIcon:Fence,FerrisWheel,FerrisWheelIcon:FerrisWheel,Figma,FigmaIcon:Figma,File,FileArchive,FileArchiveIcon:FileArchive,FileAudio,FileAudio2,FileAudio2Icon:FileAudio2,FileAudioIcon:FileAudio,FileAxis3D:FileAxis3d,FileAxis3DIcon:FileAxis3d,FileAxis3d,FileAxis3dIcon:FileAxis3d,FileBadge,FileBadge2,FileBadge2Icon:FileBadge2,FileBadgeIcon:FileBadge,FileBarChart:FileChartColumnIncreasing,FileBarChart2:FileChartColumn,FileBarChart2Icon:FileChartColumn,FileBarChartIcon:FileChartColumnIncreasing,FileBox,FileBoxIcon:FileBox,FileChartColumn,FileChartColumnIcon:FileChartColumn,FileChartColumnIncreasing,FileChartColumnIncreasingIcon:FileChartColumnIncreasing,FileChartLine,FileChartLineIcon:FileChartLine,FileChartPie,FileChartPieIcon:FileChartPie,FileCheck,FileCheck2,FileCheck2Icon:FileCheck2,FileCheckIcon:FileCheck,FileClock,FileClockIcon:FileClock,FileCode,FileCode2,FileCode2Icon:FileCode2,FileCodeIcon:FileCode,FileCog,FileCog2:FileCog,FileCog2Icon:FileCog,FileCogIcon:FileCog,FileDiff,FileDiffIcon:FileDiff,FileDigit,FileDigitIcon:FileDigit,FileDown,FileDownIcon:FileDown,FileEdit:FilePen,FileEditIcon:FilePen,FileHeart,FileHeartIcon:FileHeart,FileIcon:File,FileImage,FileImageIcon:FileImage,FileInput,FileInputIcon:FileInput,FileJson,FileJson2,FileJson2Icon:FileJson2,FileJsonIcon:FileJson,FileKey,FileKey2,FileKey2Icon:FileKey2,FileKeyIcon:FileKey,FileLineChart:FileChartLine,FileLineChartIcon:FileChartLine,FileLock,FileLock2,FileLock2Icon:FileLock2,FileLockIcon:FileLock,FileMinus,FileMinus2,FileMinus2Icon:FileMinus2,FileMinusIcon:FileMinus,FileMusic,FileMusicIcon:FileMusic,FileOutput,FileOutputIcon:FileOutput,FilePen,FilePenIcon:FilePen,FilePenLine,FilePenLineIcon:FilePenLine,FilePieChart:FileChartPie,FilePieChartIcon:FileChartPie,FilePlay,FilePlayIcon:FilePlay,FilePlus,FilePlus2,FilePlus2Icon:FilePlus2,FilePlusIcon:FilePlus,FileQuestion:FileQuestionMark,FileQuestionIcon:FileQuestionMark,FileQuestionMark,FileQuestionMarkIcon:FileQuestionMark,FileScan,FileScanIcon:FileScan,FileSearch,FileSearch2,FileSearch2Icon:FileSearch2,FileSearchIcon:FileSearch,FileSignature:FilePenLine,FileSignatureIcon:FilePenLine,FileSliders,FileSlidersIcon:FileSliders,FileSpreadsheet,FileSpreadsheetIcon:FileSpreadsheet,FileStack,FileStackIcon:FileStack,FileSymlink,FileSymlinkIcon:FileSymlink,FileTerminal,FileTerminalIcon:FileTerminal,FileText,FileTextIcon:FileText,FileType,FileType2,FileType2Icon:FileType2,FileTypeIcon:FileType,FileUp,FileUpIcon:FileUp,FileUser,FileUserIcon:FileUser,FileVideo:FilePlay,FileVideo2:FileVideoCamera,FileVideo2Icon:FileVideoCamera,FileVideoCamera,FileVideoCameraIcon:FileVideoCamera,FileVideoIcon:FilePlay,FileVolume,FileVolume2,FileVolume2Icon:FileVolume2,FileVolumeIcon:FileVolume,FileWarning,FileWarningIcon:FileWarning,FileX,FileX2,FileX2Icon:FileX2,FileXIcon:FileX,Files,FilesIcon:Files,Film,FilmIcon:Film,Filter:Funnel,FilterIcon:Funnel,FilterX:FunnelX,FilterXIcon:FunnelX,Fingerprint,FingerprintIcon:Fingerprint,FireExtinguisher,FireExtinguisherIcon:FireExtinguisher,Fish,FishIcon:Fish,FishOff,FishOffIcon:FishOff,FishSymbol,FishSymbolIcon:FishSymbol,Flag,FlagIcon:Flag,FlagOff,FlagOffIcon:FlagOff,FlagTriangleLeft,FlagTriangleLeftIcon:FlagTriangleLeft,FlagTriangleRight,FlagTriangleRightIcon:FlagTriangleRight,Flame,FlameIcon:Flame,FlameKindling,FlameKindlingIcon:FlameKindling,Flashlight,FlashlightIcon:Flashlight,FlashlightOff,FlashlightOffIcon:FlashlightOff,FlaskConical,FlaskConicalIcon:FlaskConical,FlaskConicalOff,FlaskConicalOffIcon:FlaskConicalOff,FlaskRound,FlaskRoundIcon:FlaskRound,FlipHorizontal,FlipHorizontal2,FlipHorizontal2Icon:FlipHorizontal2,FlipHorizontalIcon:FlipHorizontal,FlipVertical,FlipVertical2,FlipVertical2Icon:FlipVertical2,FlipVerticalIcon:FlipVertical,Flower,Flower2,Flower2Icon:Flower2,FlowerIcon:Flower,Focus,FocusIcon:Focus,FoldHorizontal,FoldHorizontalIcon:FoldHorizontal,FoldVertical,FoldVerticalIcon:FoldVertical,Folder,FolderArchive,FolderArchiveIcon:FolderArchive,FolderCheck,FolderCheckIcon:FolderCheck,FolderClock,FolderClockIcon:FolderClock,FolderClosed,FolderClosedIcon:FolderClosed,FolderCode,FolderCodeIcon:FolderCode,FolderCog,FolderCog2:FolderCog,FolderCog2Icon:FolderCog,FolderCogIcon:FolderCog,FolderDot,FolderDotIcon:FolderDot,FolderDown,FolderDownIcon:FolderDown,FolderEdit:FolderPen,FolderEditIcon:FolderPen,FolderGit,FolderGit2,FolderGit2Icon:FolderGit2,FolderGitIcon:FolderGit,FolderHeart,FolderHeartIcon:FolderHeart,FolderIcon:Folder,FolderInput,FolderInputIcon:FolderInput,FolderKanban,FolderKanbanIcon:FolderKanban,FolderKey,FolderKeyIcon:FolderKey,FolderLock,FolderLockIcon:FolderLock,FolderMinus,FolderMinusIcon:FolderMinus,FolderOpen,FolderOpenDot,FolderOpenDotIcon:FolderOpenDot,FolderOpenIcon:FolderOpen,FolderOutput,FolderOutputIcon:FolderOutput,FolderPen,FolderPenIcon:FolderPen,FolderPlus,FolderPlusIcon:FolderPlus,FolderRoot,FolderRootIcon:FolderRoot,FolderSearch,FolderSearch2,FolderSearch2Icon:FolderSearch2,FolderSearchIcon:FolderSearch,FolderSymlink,FolderSymlinkIcon:FolderSymlink,FolderSync,FolderSyncIcon:FolderSync,FolderTree,FolderTreeIcon:FolderTree,FolderUp,FolderUpIcon:FolderUp,FolderX,FolderXIcon:FolderX,Folders,FoldersIcon:Folders,Footprints,FootprintsIcon:Footprints,ForkKnife:Utensils,ForkKnifeCrossed:UtensilsCrossed,ForkKnifeCrossedIcon:UtensilsCrossed,ForkKnifeIcon:Utensils,Forklift,ForkliftIcon:Forklift,FormInput:RectangleEllipsis,FormInputIcon:RectangleEllipsis,Forward,ForwardIcon:Forward,Frame,FrameIcon:Frame,Framer,FramerIcon:Framer,Frown,FrownIcon:Frown,Fuel,FuelIcon:Fuel,Fullscreen,FullscreenIcon:Fullscreen,FunctionSquare:SquareFunction,FunctionSquareIcon:SquareFunction,Funnel,FunnelIcon:Funnel,FunnelPlus,FunnelPlusIcon:FunnelPlus,FunnelX,FunnelXIcon:FunnelX,GalleryHorizontal,GalleryHorizontalEnd,GalleryHorizontalEndIcon:GalleryHorizontalEnd,GalleryHorizontalIcon:GalleryHorizontal,GalleryThumbnails,GalleryThumbnailsIcon:GalleryThumbnails,GalleryVertical,GalleryVerticalEnd,GalleryVerticalEndIcon:GalleryVerticalEnd,GalleryVerticalIcon:GalleryVertical,Gamepad,Gamepad2,Gamepad2Icon:Gamepad2,GamepadIcon:Gamepad,GanttChart:ChartNoAxesGantt,GanttChartIcon:ChartNoAxesGantt,GanttChartSquare:SquareChartGantt,GanttChartSquareIcon:SquareChartGantt,Gauge,GaugeCircle:CircleGauge,GaugeCircleIcon:CircleGauge,GaugeIcon:Gauge,Gavel,GavelIcon:Gavel,Gem,GemIcon:Gem,GeorgianLari,GeorgianLariIcon:GeorgianLari,Ghost,GhostIcon:Ghost,Gift,GiftIcon:Gift,GitBranch,GitBranchIcon:GitBranch,GitBranchPlus,GitBranchPlusIcon:GitBranchPlus,GitCommit:GitCommitHorizontal,GitCommitHorizontal,GitCommitHorizontalIcon:GitCommitHorizontal,GitCommitIcon:GitCommitHorizontal,GitCommitVertical,GitCommitVerticalIcon:GitCommitVertical,GitCompare,GitCompareArrows,GitCompareArrowsIcon:GitCompareArrows,GitCompareIcon:GitCompare,GitFork,GitForkIcon:GitFork,GitGraph,GitGraphIcon:GitGraph,GitMerge,GitMergeIcon:GitMerge,GitPullRequest,GitPullRequestArrow,GitPullRequestArrowIcon:GitPullRequestArrow,GitPullRequestClosed,GitPullRequestClosedIcon:GitPullRequestClosed,GitPullRequestCreate,GitPullRequestCreateArrow,GitPullRequestCreateArrowIcon:GitPullRequestCreateArrow,GitPullRequestCreateIcon:GitPullRequestCreate,GitPullRequestDraft,GitPullRequestDraftIcon:GitPullRequestDraft,GitPullRequestIcon:GitPullRequest,Github,GithubIcon:Github,Gitlab,GitlabIcon:Gitlab,GlassWater,GlassWaterIcon:GlassWater,Glasses,GlassesIcon:Glasses,Globe,Globe2:Earth,Globe2Icon:Earth,GlobeIcon:Globe,GlobeLock,GlobeLockIcon:GlobeLock,Goal,GoalIcon:Goal,Gpu,GpuIcon:Gpu,Grab:HandGrab,GrabIcon:HandGrab,GraduationCap,GraduationCapIcon:GraduationCap,Grape,GrapeIcon:Grape,Grid:Grid3x3,Grid2X2:Grid2x2,Grid2X2Check:Grid2x2Check,Grid2X2CheckIcon:Grid2x2Check,Grid2X2Icon:Grid2x2,Grid2X2Plus:Grid2x2Plus,Grid2X2PlusIcon:Grid2x2Plus,Grid2X2X:Grid2x2X,Grid2X2XIcon:Grid2x2X,Grid2x2,Grid2x2Check,Grid2x2CheckIcon:Grid2x2Check,Grid2x2Icon:Grid2x2,Grid2x2Plus,Grid2x2PlusIcon:Grid2x2Plus,Grid2x2X,Grid2x2XIcon:Grid2x2X,Grid3X3:Grid3x3,Grid3X3Icon:Grid3x3,Grid3x2,Grid3x2Icon:Grid3x2,Grid3x3,Grid3x3Icon:Grid3x3,GridIcon:Grid3x3,Grip,GripHorizontal,GripHorizontalIcon:GripHorizontal,GripIcon:Grip,GripVertical,GripVerticalIcon:GripVertical,Group,GroupIcon:Group,Guitar,GuitarIcon:Guitar,Ham,HamIcon:Ham,Hamburger,HamburgerIcon:Hamburger,Hammer,HammerIcon:Hammer,Hand,HandCoins,HandCoinsIcon:HandCoins,HandFist,HandFistIcon:HandFist,HandGrab,HandGrabIcon:HandGrab,HandHeart,HandHeartIcon:HandHeart,HandHelping,HandHelpingIcon:HandHelping,HandIcon:Hand,HandMetal,HandMetalIcon:HandMetal,HandPlatter,HandPlatterIcon:HandPlatter,Handbag,HandbagIcon:Handbag,Handshake,HandshakeIcon:Handshake,HardDrive,HardDriveDownload,HardDriveDownloadIcon:HardDriveDownload,HardDriveIcon:HardDrive,HardDriveUpload,HardDriveUploadIcon:HardDriveUpload,HardHat,HardHatIcon:HardHat,Hash,HashIcon:Hash,HatGlasses,HatGlassesIcon:HatGlasses,Haze,HazeIcon:Haze,HdmiPort,HdmiPortIcon:HdmiPort,Heading,Heading1,Heading1Icon:Heading1,Heading2,Heading2Icon:Heading2,Heading3,Heading3Icon:Heading3,Heading4,Heading4Icon:Heading4,Heading5,Heading5Icon:Heading5,Heading6,Heading6Icon:Heading6,HeadingIcon:Heading,HeadphoneOff,HeadphoneOffIcon:HeadphoneOff,Headphones,HeadphonesIcon:Headphones,Headset,HeadsetIcon:Headset,Heart,HeartCrack,HeartCrackIcon:HeartCrack,HeartHandshake,HeartHandshakeIcon:HeartHandshake,HeartIcon:Heart,HeartMinus,HeartMinusIcon:HeartMinus,HeartOff,HeartOffIcon:HeartOff,HeartPlus,HeartPlusIcon:HeartPlus,HeartPulse,HeartPulseIcon:HeartPulse,Heater,HeaterIcon:Heater,HelpCircle:CircleQuestionMark,HelpCircleIcon:CircleQuestionMark,HelpingHand:HandHelping,HelpingHandIcon:HandHelping,Hexagon,HexagonIcon:Hexagon,Highlighter,HighlighterIcon:Highlighter,History,HistoryIcon:History,Home:House,HomeIcon:House,Hop,HopIcon:Hop,HopOff,HopOffIcon:HopOff,Hospital,HospitalIcon:Hospital,Hotel,HotelIcon:Hotel,Hourglass,HourglassIcon:Hourglass,House,HouseHeart,HouseHeartIcon:HouseHeart,HouseIcon:House,HousePlug,HousePlugIcon:HousePlug,HousePlus,HousePlusIcon:HousePlus,HouseWifi,HouseWifiIcon:HouseWifi,IceCream:IceCreamCone,IceCream2:IceCreamBowl,IceCream2Icon:IceCreamBowl,IceCreamBowl,IceCreamBowlIcon:IceCreamBowl,IceCreamCone,IceCreamConeIcon:IceCreamCone,IceCreamIcon:IceCreamCone,Icon,IdCard,IdCardIcon:IdCard,IdCardLanyard,IdCardLanyardIcon:IdCardLanyard,Image,ImageDown,ImageDownIcon:ImageDown,ImageIcon:Image,ImageMinus,ImageMinusIcon:ImageMinus,ImageOff,ImageOffIcon:ImageOff,ImagePlay,ImagePlayIcon:ImagePlay,ImagePlus,ImagePlusIcon:ImagePlus,ImageUp,ImageUpIcon:ImageUp,ImageUpscale,ImageUpscaleIcon:ImageUpscale,Images,ImagesIcon:Images,Import,ImportIcon:Import,Inbox,InboxIcon:Inbox,Indent:ListIndentIncrease,IndentDecrease:ListIndentDecrease,IndentDecreaseIcon:ListIndentDecrease,IndentIcon:ListIndentIncrease,IndentIncrease:ListIndentIncrease,IndentIncreaseIcon:ListIndentIncrease,IndianRupee,IndianRupeeIcon:IndianRupee,Infinity:Infinity$1,InfinityIcon:Infinity$1,Info:Info$1,InfoIcon:Info$1,Inspect:SquareMousePointer,InspectIcon:SquareMousePointer,InspectionPanel,InspectionPanelIcon:InspectionPanel,Instagram,InstagramIcon:Instagram,Italic,ItalicIcon:Italic,IterationCcw,IterationCcwIcon:IterationCcw,IterationCw,IterationCwIcon:IterationCw,JapaneseYen,JapaneseYenIcon:JapaneseYen,Joystick,JoystickIcon:Joystick,Kanban,KanbanIcon:Kanban,KanbanSquare:SquareKanban,KanbanSquareDashed:SquareDashedKanban,KanbanSquareDashedIcon:SquareDashedKanban,KanbanSquareIcon:SquareKanban,Kayak,KayakIcon:Kayak,Key,KeyIcon:Key,KeyRound,KeyRoundIcon:KeyRound,KeySquare,KeySquareIcon:KeySquare,Keyboard,KeyboardIcon:Keyboard,KeyboardMusic,KeyboardMusicIcon:KeyboardMusic,KeyboardOff,KeyboardOffIcon:KeyboardOff,Lamp,LampCeiling,LampCeilingIcon:LampCeiling,LampDesk,LampDeskIcon:LampDesk,LampFloor,LampFloorIcon:LampFloor,LampIcon:Lamp,LampWallDown,LampWallDownIcon:LampWallDown,LampWallUp,LampWallUpIcon:LampWallUp,LandPlot,LandPlotIcon:LandPlot,Landmark,LandmarkIcon:Landmark,Languages,LanguagesIcon:Languages,Laptop,Laptop2:LaptopMinimal,Laptop2Icon:LaptopMinimal,LaptopIcon:Laptop,LaptopMinimal,LaptopMinimalCheck,LaptopMinimalCheckIcon:LaptopMinimalCheck,LaptopMinimalIcon:LaptopMinimal,Lasso,LassoIcon:Lasso,LassoSelect,LassoSelectIcon:LassoSelect,Laugh,LaughIcon:Laugh,Layers,Layers2,Layers2Icon:Layers2,Layers3:Layers,Layers3Icon:Layers,LayersIcon:Layers,Layout:PanelsTopLeft,LayoutDashboard,LayoutDashboardIcon:LayoutDashboard,LayoutGrid,LayoutGridIcon:LayoutGrid,LayoutIcon:PanelsTopLeft,LayoutList,LayoutListIcon:LayoutList,LayoutPanelLeft,LayoutPanelLeftIcon:LayoutPanelLeft,LayoutPanelTop,LayoutPanelTopIcon:LayoutPanelTop,LayoutTemplate,LayoutTemplateIcon:LayoutTemplate,Leaf,LeafIcon:Leaf,LeafyGreen,LeafyGreenIcon:LeafyGreen,Lectern,LecternIcon:Lectern,LetterText:TextInitial,LetterTextIcon:TextInitial,Library,LibraryBig,LibraryBigIcon:LibraryBig,LibraryIcon:Library,LibrarySquare:SquareLibrary,LibrarySquareIcon:SquareLibrary,LifeBuoy,LifeBuoyIcon:LifeBuoy,Ligature,LigatureIcon:Ligature,Lightbulb,LightbulbIcon:Lightbulb,LightbulbOff,LightbulbOffIcon:LightbulbOff,LineChart:ChartLine,LineChartIcon:ChartLine,LineSquiggle,LineSquiggleIcon:LineSquiggle,Link,Link2,Link2Icon:Link2,Link2Off,Link2OffIcon:Link2Off,LinkIcon:Link,Linkedin,LinkedinIcon:Linkedin,List,ListCheck,ListCheckIcon:ListCheck,ListChecks,ListChecksIcon:ListChecks,ListChevronsDownUp,ListChevronsDownUpIcon:ListChevronsDownUp,ListChevronsUpDown,ListChevronsUpDownIcon:ListChevronsUpDown,ListCollapse,ListCollapseIcon:ListCollapse,ListEnd,ListEndIcon:ListEnd,ListFilter,ListFilterIcon:ListFilter,ListFilterPlus,ListFilterPlusIcon:ListFilterPlus,ListIcon:List,ListIndentDecrease,ListIndentDecreaseIcon:ListIndentDecrease,ListIndentIncrease,ListIndentIncreaseIcon:ListIndentIncrease,ListMinus,ListMinusIcon:ListMinus,ListMusic,ListMusicIcon:ListMusic,ListOrdered,ListOrderedIcon:ListOrdered,ListPlus,ListPlusIcon:ListPlus,ListRestart,ListRestartIcon:ListRestart,ListStart,ListStartIcon:ListStart,ListTodo,ListTodoIcon:ListTodo,ListTree,ListTreeIcon:ListTree,ListVideo,ListVideoIcon:ListVideo,ListX,ListXIcon:ListX,Loader,Loader2:LoaderCircle,Loader2Icon:LoaderCircle,LoaderCircle,LoaderCircleIcon:LoaderCircle,LoaderIcon:Loader,LoaderPinwheel,LoaderPinwheelIcon:LoaderPinwheel,Locate,LocateFixed,LocateFixedIcon:LocateFixed,LocateIcon:Locate,LocateOff,LocateOffIcon:LocateOff,LocationEdit:MapPinPen,LocationEditIcon:MapPinPen,Lock,LockIcon:Lock,LockKeyhole,LockKeyholeIcon:LockKeyhole,LockKeyholeOpen,LockKeyholeOpenIcon:LockKeyholeOpen,LockOpen,LockOpenIcon:LockOpen,LogIn,LogInIcon:LogIn,LogOut,LogOutIcon:LogOut,Logs,LogsIcon:Logs,Lollipop,LollipopIcon:Lollipop,LucideAArrowDown:AArrowDown,LucideAArrowUp:AArrowUp,LucideALargeSmall:ALargeSmall,LucideAccessibility:Accessibility,LucideActivity:Activity,LucideActivitySquare:SquareActivity,LucideAirVent:AirVent,LucideAirplay:Airplay,LucideAlarmCheck:AlarmClockCheck,LucideAlarmClock:AlarmClock,LucideAlarmClockCheck:AlarmClockCheck,LucideAlarmClockMinus:AlarmClockMinus,LucideAlarmClockOff:AlarmClockOff,LucideAlarmClockPlus:AlarmClockPlus,LucideAlarmMinus:AlarmClockMinus,LucideAlarmPlus:AlarmClockPlus,LucideAlarmSmoke:AlarmSmoke,LucideAlbum:Album,LucideAlertCircle:CircleAlert,LucideAlertOctagon:OctagonAlert,LucideAlertTriangle:TriangleAlert,LucideAlignCenter:TextAlignCenter,LucideAlignCenterHorizontal:AlignCenterHorizontal,LucideAlignCenterVertical:AlignCenterVertical,LucideAlignEndHorizontal:AlignEndHorizontal,LucideAlignEndVertical:AlignEndVertical,LucideAlignHorizontalDistributeCenter:AlignHorizontalDistributeCenter,LucideAlignHorizontalDistributeEnd:AlignHorizontalDistributeEnd,LucideAlignHorizontalDistributeStart:AlignHorizontalDistributeStart,LucideAlignHorizontalJustifyCenter:AlignHorizontalJustifyCenter,LucideAlignHorizontalJustifyEnd:AlignHorizontalJustifyEnd,LucideAlignHorizontalJustifyStart:AlignHorizontalJustifyStart,LucideAlignHorizontalSpaceAround:AlignHorizontalSpaceAround,LucideAlignHorizontalSpaceBetween:AlignHorizontalSpaceBetween,LucideAlignJustify:TextAlignJustify,LucideAlignLeft:TextAlignStart,LucideAlignRight:TextAlignEnd,LucideAlignStartHorizontal:AlignStartHorizontal,LucideAlignStartVertical:AlignStartVertical,LucideAlignVerticalDistributeCenter:AlignVerticalDistributeCenter,LucideAlignVerticalDistributeEnd:AlignVerticalDistributeEnd,LucideAlignVerticalDistributeStart:AlignVerticalDistributeStart,LucideAlignVerticalJustifyCenter:AlignVerticalJustifyCenter,LucideAlignVerticalJustifyEnd:AlignVerticalJustifyEnd,LucideAlignVerticalJustifyStart:AlignVerticalJustifyStart,LucideAlignVerticalSpaceAround:AlignVerticalSpaceAround,LucideAlignVerticalSpaceBetween:AlignVerticalSpaceBetween,LucideAmbulance:Ambulance,LucideAmpersand:Ampersand,LucideAmpersands:Ampersands,LucideAmphora:Amphora,LucideAnchor:Anchor,LucideAngry:Angry,LucideAnnoyed:Annoyed,LucideAntenna:Antenna,LucideAnvil:Anvil,LucideAperture:Aperture,LucideAppWindow:AppWindow,LucideAppWindowMac:AppWindowMac,LucideApple:Apple,LucideArchive:Archive,LucideArchiveRestore:ArchiveRestore,LucideArchiveX:ArchiveX,LucideAreaChart:ChartArea,LucideArmchair:Armchair,LucideArrowBigDown:ArrowBigDown,LucideArrowBigDownDash:ArrowBigDownDash,LucideArrowBigLeft:ArrowBigLeft,LucideArrowBigLeftDash:ArrowBigLeftDash,LucideArrowBigRight:ArrowBigRight,LucideArrowBigRightDash:ArrowBigRightDash,LucideArrowBigUp:ArrowBigUp,LucideArrowBigUpDash:ArrowBigUpDash,LucideArrowDown:ArrowDown,LucideArrowDown01:ArrowDown01,LucideArrowDown10:ArrowDown10,LucideArrowDownAZ:ArrowDownAZ,LucideArrowDownAz:ArrowDownAZ,LucideArrowDownCircle:CircleArrowDown,LucideArrowDownFromLine:ArrowDownFromLine,LucideArrowDownLeft:ArrowDownLeft,LucideArrowDownLeftFromCircle:CircleArrowOutDownLeft,LucideArrowDownLeftFromSquare:SquareArrowOutDownLeft,LucideArrowDownLeftSquare:SquareArrowDownLeft,LucideArrowDownNarrowWide:ArrowDownNarrowWide,LucideArrowDownRight:ArrowDownRight,LucideArrowDownRightFromCircle:CircleArrowOutDownRight,LucideArrowDownRightFromSquare:SquareArrowOutDownRight,LucideArrowDownRightSquare:SquareArrowDownRight,LucideArrowDownSquare:SquareArrowDown,LucideArrowDownToDot:ArrowDownToDot,LucideArrowDownToLine:ArrowDownToLine,LucideArrowDownUp:ArrowDownUp,LucideArrowDownWideNarrow:ArrowDownWideNarrow,LucideArrowDownZA:ArrowDownZA,LucideArrowDownZa:ArrowDownZA,LucideArrowLeft:ArrowLeft,LucideArrowLeftCircle:CircleArrowLeft,LucideArrowLeftFromLine:ArrowLeftFromLine,LucideArrowLeftRight:ArrowLeftRight,LucideArrowLeftSquare:SquareArrowLeft,LucideArrowLeftToLine:ArrowLeftToLine,LucideArrowRight:ArrowRight,LucideArrowRightCircle:CircleArrowRight,LucideArrowRightFromLine:ArrowRightFromLine,LucideArrowRightLeft:ArrowRightLeft,LucideArrowRightSquare:SquareArrowRight,LucideArrowRightToLine:ArrowRightToLine,LucideArrowUp:ArrowUp,LucideArrowUp01:ArrowUp01,LucideArrowUp10:ArrowUp10,LucideArrowUpAZ:ArrowUpAZ,LucideArrowUpAz:ArrowUpAZ,LucideArrowUpCircle:CircleArrowUp,LucideArrowUpDown:ArrowUpDown,LucideArrowUpFromDot:ArrowUpFromDot,LucideArrowUpFromLine:ArrowUpFromLine,LucideArrowUpLeft:ArrowUpLeft,LucideArrowUpLeftFromCircle:CircleArrowOutUpLeft,LucideArrowUpLeftFromSquare:SquareArrowOutUpLeft,LucideArrowUpLeftSquare:SquareArrowUpLeft,LucideArrowUpNarrowWide:ArrowUpNarrowWide,LucideArrowUpRight:ArrowUpRight,LucideArrowUpRightFromCircle:CircleArrowOutUpRight,LucideArrowUpRightFromSquare:SquareArrowOutUpRight,LucideArrowUpRightSquare:SquareArrowUpRight,LucideArrowUpSquare:SquareArrowUp,LucideArrowUpToLine:ArrowUpToLine,LucideArrowUpWideNarrow:ArrowUpWideNarrow,LucideArrowUpZA:ArrowUpZA,LucideArrowUpZa:ArrowUpZA,LucideArrowsUpFromLine:ArrowsUpFromLine,LucideAsterisk:Asterisk,LucideAsteriskSquare:SquareAsterisk,LucideAtSign:AtSign,LucideAtom:Atom,LucideAudioLines:AudioLines,LucideAudioWaveform:AudioWaveform,LucideAward:Award,LucideAxe:Axe,LucideAxis3D:Axis3d,LucideAxis3d:Axis3d,LucideBaby:Baby,LucideBackpack:Backpack,LucideBadge:Badge,LucideBadgeAlert:BadgeAlert,LucideBadgeCent:BadgeCent,LucideBadgeCheck:BadgeCheck,LucideBadgeDollarSign:BadgeDollarSign,LucideBadgeEuro:BadgeEuro,LucideBadgeHelp:BadgeQuestionMark,LucideBadgeIndianRupee:BadgeIndianRupee,LucideBadgeInfo:BadgeInfo,LucideBadgeJapaneseYen:BadgeJapaneseYen,LucideBadgeMinus:BadgeMinus,LucideBadgePercent:BadgePercent,LucideBadgePlus:BadgePlus,LucideBadgePoundSterling:BadgePoundSterling,LucideBadgeQuestionMark:BadgeQuestionMark,LucideBadgeRussianRuble:BadgeRussianRuble,LucideBadgeSwissFranc:BadgeSwissFranc,LucideBadgeTurkishLira:BadgeTurkishLira,LucideBadgeX:BadgeX,LucideBaggageClaim:BaggageClaim,LucideBan:Ban,LucideBanana:Banana,LucideBandage:Bandage,LucideBanknote:Banknote,LucideBanknoteArrowDown:BanknoteArrowDown,LucideBanknoteArrowUp:BanknoteArrowUp,LucideBanknoteX:BanknoteX,LucideBarChart:ChartNoAxesColumnIncreasing,LucideBarChart2:ChartNoAxesColumn,LucideBarChart3:ChartColumn,LucideBarChart4:ChartColumnIncreasing,LucideBarChartBig:ChartColumnBig,LucideBarChartHorizontal:ChartBar,LucideBarChartHorizontalBig:ChartBarBig,LucideBarcode:Barcode,LucideBarrel:Barrel,LucideBaseline:Baseline,LucideBath:Bath,LucideBattery:Battery,LucideBatteryCharging:BatteryCharging,LucideBatteryFull:BatteryFull,LucideBatteryLow:BatteryLow,LucideBatteryMedium:BatteryMedium,LucideBatteryPlus:BatteryPlus,LucideBatteryWarning:BatteryWarning,LucideBeaker:Beaker,LucideBean:Bean,LucideBeanOff:BeanOff,LucideBed:Bed,LucideBedDouble:BedDouble,LucideBedSingle:BedSingle,LucideBeef:Beef,LucideBeer:Beer,LucideBeerOff:BeerOff,LucideBell:Bell,LucideBellDot:BellDot,LucideBellElectric:BellElectric,LucideBellMinus:BellMinus,LucideBellOff:BellOff,LucideBellPlus:BellPlus,LucideBellRing:BellRing,LucideBetweenHorizonalEnd:BetweenHorizontalEnd,LucideBetweenHorizonalStart:BetweenHorizontalStart,LucideBetweenHorizontalEnd:BetweenHorizontalEnd,LucideBetweenHorizontalStart:BetweenHorizontalStart,LucideBetweenVerticalEnd:BetweenVerticalEnd,LucideBetweenVerticalStart:BetweenVerticalStart,LucideBicepsFlexed:BicepsFlexed,LucideBike:Bike,LucideBinary:Binary,LucideBinoculars:Binoculars,LucideBiohazard:Biohazard,LucideBird:Bird,LucideBitcoin:Bitcoin,LucideBlend:Blend,LucideBlinds:Blinds,LucideBlocks:Blocks,LucideBluetooth:Bluetooth,LucideBluetoothConnected:BluetoothConnected,LucideBluetoothOff:BluetoothOff,LucideBluetoothSearching:BluetoothSearching,LucideBold:Bold,LucideBolt:Bolt,LucideBomb:Bomb,LucideBone:Bone,LucideBook:Book,LucideBookA:BookA,LucideBookAlert:BookAlert,LucideBookAudio:BookAudio,LucideBookCheck:BookCheck,LucideBookCopy:BookCopy,LucideBookDashed:BookDashed,LucideBookDown:BookDown,LucideBookHeadphones:BookHeadphones,LucideBookHeart:BookHeart,LucideBookImage:BookImage,LucideBookKey:BookKey,LucideBookLock:BookLock,LucideBookMarked:BookMarked,LucideBookMinus:BookMinus,LucideBookOpen:BookOpen,LucideBookOpenCheck:BookOpenCheck,LucideBookOpenText:BookOpenText,LucideBookPlus:BookPlus,LucideBookTemplate:BookDashed,LucideBookText:BookText,LucideBookType:BookType,LucideBookUp:BookUp,LucideBookUp2:BookUp2,LucideBookUser:BookUser,LucideBookX:BookX,LucideBookmark:Bookmark,LucideBookmarkCheck:BookmarkCheck,LucideBookmarkMinus:BookmarkMinus,LucideBookmarkPlus:BookmarkPlus,LucideBookmarkX:BookmarkX,LucideBoomBox:BoomBox,LucideBot:Bot,LucideBotMessageSquare:BotMessageSquare,LucideBotOff:BotOff,LucideBottleWine:BottleWine,LucideBowArrow:BowArrow,LucideBox:Box,LucideBoxSelect:SquareDashed,LucideBoxes:Boxes,LucideBraces:Braces,LucideBrackets:Brackets,LucideBrain:Brain,LucideBrainCircuit:BrainCircuit,LucideBrainCog:BrainCog,LucideBrickWall:BrickWall,LucideBrickWallFire:BrickWallFire,LucideBrickWallShield:BrickWallShield,LucideBriefcase:Briefcase,LucideBriefcaseBusiness:BriefcaseBusiness,LucideBriefcaseConveyorBelt:BriefcaseConveyorBelt,LucideBriefcaseMedical:BriefcaseMedical,LucideBringToFront:BringToFront,LucideBrush:Brush,LucideBrushCleaning:BrushCleaning,LucideBubbles:Bubbles,LucideBug:Bug,LucideBugOff:BugOff,LucideBugPlay:BugPlay,LucideBuilding:Building,LucideBuilding2:Building2,LucideBus:Bus,LucideBusFront:BusFront,LucideCable:Cable,LucideCableCar:CableCar,LucideCake:Cake,LucideCakeSlice:CakeSlice,LucideCalculator:Calculator,LucideCalendar:Calendar,LucideCalendar1:Calendar1,LucideCalendarArrowDown:CalendarArrowDown,LucideCalendarArrowUp:CalendarArrowUp,LucideCalendarCheck:CalendarCheck,LucideCalendarCheck2:CalendarCheck2,LucideCalendarClock:CalendarClock,LucideCalendarCog:CalendarCog,LucideCalendarDays:CalendarDays,LucideCalendarFold:CalendarFold,LucideCalendarHeart:CalendarHeart,LucideCalendarMinus:CalendarMinus,LucideCalendarMinus2:CalendarMinus2,LucideCalendarOff:CalendarOff,LucideCalendarPlus:CalendarPlus,LucideCalendarPlus2:CalendarPlus2,LucideCalendarRange:CalendarRange,LucideCalendarSearch:CalendarSearch,LucideCalendarSync:CalendarSync,LucideCalendarX:CalendarX,LucideCalendarX2:CalendarX2,LucideCamera:Camera,LucideCameraOff:CameraOff,LucideCandlestickChart:ChartCandlestick,LucideCandy:Candy,LucideCandyCane:CandyCane,LucideCandyOff:CandyOff,LucideCannabis:Cannabis,LucideCaptions:Captions,LucideCaptionsOff:CaptionsOff,LucideCar:Car,LucideCarFront:CarFront,LucideCarTaxiFront:CarTaxiFront,LucideCaravan:Caravan,LucideCardSim:CardSim,LucideCarrot:Carrot,LucideCaseLower:CaseLower,LucideCaseSensitive:CaseSensitive,LucideCaseUpper:CaseUpper,LucideCassetteTape:CassetteTape,LucideCast:Cast,LucideCastle:Castle,LucideCat:Cat,LucideCctv:Cctv,LucideChartArea:ChartArea,LucideChartBar:ChartBar,LucideChartBarBig:ChartBarBig,LucideChartBarDecreasing:ChartBarDecreasing,LucideChartBarIncreasing:ChartBarIncreasing,LucideChartBarStacked:ChartBarStacked,LucideChartCandlestick:ChartCandlestick,LucideChartColumn:ChartColumn,LucideChartColumnBig:ChartColumnBig,LucideChartColumnDecreasing:ChartColumnDecreasing,LucideChartColumnIncreasing:ChartColumnIncreasing,LucideChartColumnStacked:ChartColumnStacked,LucideChartGantt:ChartGantt,LucideChartLine:ChartLine,LucideChartNetwork:ChartNetwork,LucideChartNoAxesColumn:ChartNoAxesColumn,LucideChartNoAxesColumnDecreasing:ChartNoAxesColumnDecreasing,LucideChartNoAxesColumnIncreasing:ChartNoAxesColumnIncreasing,LucideChartNoAxesCombined:ChartNoAxesCombined,LucideChartNoAxesGantt:ChartNoAxesGantt,LucideChartPie:ChartPie,LucideChartScatter:ChartScatter,LucideChartSpline:ChartSpline,LucideCheck:Check,LucideCheckCheck:CheckCheck,LucideCheckCircle:CircleCheckBig,LucideCheckCircle2:CircleCheck,LucideCheckLine:CheckLine,LucideCheckSquare:SquareCheckBig,LucideCheckSquare2:SquareCheck,LucideChefHat:ChefHat,LucideCherry:Cherry,LucideChevronDown:ChevronDown,LucideChevronDownCircle:CircleChevronDown,LucideChevronDownSquare:SquareChevronDown,LucideChevronFirst:ChevronFirst,LucideChevronLast:ChevronLast,LucideChevronLeft:ChevronLeft,LucideChevronLeftCircle:CircleChevronLeft,LucideChevronLeftSquare:SquareChevronLeft,LucideChevronRight:ChevronRight,LucideChevronRightCircle:CircleChevronRight,LucideChevronRightSquare:SquareChevronRight,LucideChevronUp:ChevronUp,LucideChevronUpCircle:CircleChevronUp,LucideChevronUpSquare:SquareChevronUp,LucideChevronsDown:ChevronsDown,LucideChevronsDownUp:ChevronsDownUp,LucideChevronsLeft:ChevronsLeft,LucideChevronsLeftRight:ChevronsLeftRight,LucideChevronsLeftRightEllipsis:ChevronsLeftRightEllipsis,LucideChevronsRight:ChevronsRight,LucideChevronsRightLeft:ChevronsRightLeft,LucideChevronsUp:ChevronsUp,LucideChevronsUpDown:ChevronsUpDown,LucideChrome:Chromium,LucideChromium:Chromium,LucideChurch:Church,LucideCigarette:Cigarette,LucideCigaretteOff:CigaretteOff,LucideCircle:Circle,LucideCircleAlert:CircleAlert,LucideCircleArrowDown:CircleArrowDown,LucideCircleArrowLeft:CircleArrowLeft,LucideCircleArrowOutDownLeft:CircleArrowOutDownLeft,LucideCircleArrowOutDownRight:CircleArrowOutDownRight,LucideCircleArrowOutUpLeft:CircleArrowOutUpLeft,LucideCircleArrowOutUpRight:CircleArrowOutUpRight,LucideCircleArrowRight:CircleArrowRight,LucideCircleArrowUp:CircleArrowUp,LucideCircleCheck:CircleCheck,LucideCircleCheckBig:CircleCheckBig,LucideCircleChevronDown:CircleChevronDown,LucideCircleChevronLeft:CircleChevronLeft,LucideCircleChevronRight:CircleChevronRight,LucideCircleChevronUp:CircleChevronUp,LucideCircleDashed:CircleDashed,LucideCircleDivide:CircleDivide,LucideCircleDollarSign:CircleDollarSign,LucideCircleDot:CircleDot,LucideCircleDotDashed:CircleDotDashed,LucideCircleEllipsis:CircleEllipsis,LucideCircleEqual:CircleEqual,LucideCircleFadingArrowUp:CircleFadingArrowUp,LucideCircleFadingPlus:CircleFadingPlus,LucideCircleGauge:CircleGauge,LucideCircleHelp:CircleQuestionMark,LucideCircleMinus:CircleMinus,LucideCircleOff:CircleOff,LucideCircleParking:CircleParking,LucideCircleParkingOff:CircleParkingOff,LucideCirclePause:CirclePause,LucideCirclePercent:CirclePercent,LucideCirclePlay:CirclePlay,LucideCirclePlus:CirclePlus,LucideCirclePoundSterling:CirclePoundSterling,LucideCirclePower:CirclePower,LucideCircleQuestionMark:CircleQuestionMark,LucideCircleSlash:CircleSlash,LucideCircleSlash2:CircleSlash2,LucideCircleSlashed:CircleSlash2,LucideCircleSmall:CircleSmall,LucideCircleStar:CircleStar,LucideCircleStop:CircleStop,LucideCircleUser:CircleUser,LucideCircleUserRound:CircleUserRound,LucideCircleX:CircleX,LucideCircuitBoard:CircuitBoard,LucideCitrus:Citrus,LucideClapperboard:Clapperboard,LucideClipboard:Clipboard,LucideClipboardCheck:ClipboardCheck,LucideClipboardClock:ClipboardClock,LucideClipboardCopy:ClipboardCopy,LucideClipboardEdit:ClipboardPen,LucideClipboardList:ClipboardList,LucideClipboardMinus:ClipboardMinus,LucideClipboardPaste:ClipboardPaste,LucideClipboardPen:ClipboardPen,LucideClipboardPenLine:ClipboardPenLine,LucideClipboardPlus:ClipboardPlus,LucideClipboardSignature:ClipboardPenLine,LucideClipboardType:ClipboardType,LucideClipboardX:ClipboardX,LucideClock:Clock,LucideClock1:Clock1,LucideClock10:Clock10,LucideClock11:Clock11,LucideClock12:Clock12,LucideClock2:Clock2,LucideClock3:Clock3,LucideClock4:Clock4,LucideClock5:Clock5,LucideClock6:Clock6,LucideClock7:Clock7,LucideClock8:Clock8,LucideClock9:Clock9,LucideClockAlert:ClockAlert,LucideClockArrowDown:ClockArrowDown,LucideClockArrowUp:ClockArrowUp,LucideClockFading:ClockFading,LucideClockPlus:ClockPlus,LucideClosedCaption:ClosedCaption,LucideCloud:Cloud,LucideCloudAlert:CloudAlert,LucideCloudCheck:CloudCheck,LucideCloudCog:CloudCog,LucideCloudDownload:CloudDownload,LucideCloudDrizzle:CloudDrizzle,LucideCloudFog:CloudFog,LucideCloudHail:CloudHail,LucideCloudLightning:CloudLightning,LucideCloudMoon:CloudMoon,LucideCloudMoonRain:CloudMoonRain,LucideCloudOff:CloudOff,LucideCloudRain:CloudRain,LucideCloudRainWind:CloudRainWind,LucideCloudSnow:CloudSnow,LucideCloudSun:CloudSun,LucideCloudSunRain:CloudSunRain,LucideCloudUpload:CloudUpload,LucideCloudy:Cloudy,LucideClover:Clover,LucideClub:Club,LucideCode:Code,LucideCode2:CodeXml,LucideCodeSquare:SquareCode,LucideCodeXml:CodeXml,LucideCodepen:Codepen,LucideCodesandbox:Codesandbox,LucideCoffee:Coffee,LucideCog:Cog,LucideCoins:Coins,LucideColumns:Columns2,LucideColumns2:Columns2,LucideColumns3:Columns3,LucideColumns3Cog:Columns3Cog,LucideColumns4:Columns4,LucideColumnsSettings:Columns3Cog,LucideCombine:Combine,LucideCommand:Command,LucideCompass:Compass,LucideComponent:Component,LucideComputer:Computer,LucideConciergeBell:ConciergeBell,LucideCone:Cone,LucideConstruction:Construction,LucideContact:Contact,LucideContact2:ContactRound,LucideContactRound:ContactRound,LucideContainer:Container,LucideContrast:Contrast,LucideCookie:Cookie,LucideCookingPot:CookingPot,LucideCopy:Copy,LucideCopyCheck:CopyCheck,LucideCopyMinus:CopyMinus,LucideCopyPlus:CopyPlus,LucideCopySlash:CopySlash,LucideCopyX:CopyX,LucideCopyleft:Copyleft,LucideCopyright:Copyright,LucideCornerDownLeft:CornerDownLeft,LucideCornerDownRight:CornerDownRight,LucideCornerLeftDown:CornerLeftDown,LucideCornerLeftUp:CornerLeftUp,LucideCornerRightDown:CornerRightDown,LucideCornerRightUp:CornerRightUp,LucideCornerUpLeft:CornerUpLeft,LucideCornerUpRight:CornerUpRight,LucideCpu:Cpu,LucideCreativeCommons:CreativeCommons,LucideCreditCard:CreditCard,LucideCroissant:Croissant,LucideCrop:Crop,LucideCross:Cross,LucideCrosshair:Crosshair,LucideCrown:Crown,LucideCuboid:Cuboid,LucideCupSoda:CupSoda,LucideCurlyBraces:Braces,LucideCurrency:Currency,LucideCylinder:Cylinder,LucideDam:Dam,LucideDatabase:Database,LucideDatabaseBackup:DatabaseBackup,LucideDatabaseZap:DatabaseZap,LucideDecimalsArrowLeft:DecimalsArrowLeft,LucideDecimalsArrowRight:DecimalsArrowRight,LucideDelete:Delete,LucideDessert:Dessert,LucideDiameter:Diameter,LucideDiamond:Diamond,LucideDiamondMinus:DiamondMinus,LucideDiamondPercent:DiamondPercent,LucideDiamondPlus:DiamondPlus,LucideDice1:Dice1,LucideDice2:Dice2,LucideDice3:Dice3,LucideDice4:Dice4,LucideDice5:Dice5,LucideDice6:Dice6,LucideDices:Dices,LucideDiff:Diff,LucideDisc:Disc,LucideDisc2:Disc2,LucideDisc3:Disc3,LucideDiscAlbum:DiscAlbum,LucideDivide:Divide,LucideDivideCircle:CircleDivide,LucideDivideSquare:SquareDivide,LucideDna:Dna,LucideDnaOff:DnaOff,LucideDock:Dock,LucideDog:Dog,LucideDollarSign:DollarSign,LucideDonut:Donut,LucideDoorClosed:DoorClosed,LucideDoorClosedLocked:DoorClosedLocked,LucideDoorOpen:DoorOpen,LucideDot:Dot,LucideDotSquare:SquareDot,LucideDownload:Download,LucideDownloadCloud:CloudDownload,LucideDraftingCompass:DraftingCompass,LucideDrama:Drama,LucideDribbble:Dribbble,LucideDrill:Drill,LucideDrone:Drone,LucideDroplet:Droplet,LucideDropletOff:DropletOff,LucideDroplets:Droplets,LucideDrum:Drum,LucideDrumstick:Drumstick,LucideDumbbell:Dumbbell,LucideEar:Ear,LucideEarOff:EarOff,LucideEarth:Earth,LucideEarthLock:EarthLock,LucideEclipse:Eclipse,LucideEdit:SquarePen,LucideEdit2:Pen,LucideEdit3:PenLine,LucideEgg:Egg,LucideEggFried:EggFried,LucideEggOff:EggOff,LucideEllipsis:Ellipsis,LucideEllipsisVertical:EllipsisVertical,LucideEqual:Equal,LucideEqualApproximately:EqualApproximately,LucideEqualNot:EqualNot,LucideEqualSquare:SquareEqual,LucideEraser:Eraser,LucideEthernetPort:EthernetPort,LucideEuro:Euro,LucideEvCharger:EvCharger,LucideExpand:Expand,LucideExternalLink:ExternalLink,LucideEye:Eye,LucideEyeClosed:EyeClosed,LucideEyeOff:EyeOff,LucideFacebook:Facebook,LucideFactory:Factory,LucideFan:Fan,LucideFastForward:FastForward,LucideFeather:Feather,LucideFence:Fence,LucideFerrisWheel:FerrisWheel,LucideFigma:Figma,LucideFile:File,LucideFileArchive:FileArchive,LucideFileAudio:FileAudio,LucideFileAudio2:FileAudio2,LucideFileAxis3D:FileAxis3d,LucideFileAxis3d:FileAxis3d,LucideFileBadge:FileBadge,LucideFileBadge2:FileBadge2,LucideFileBarChart:FileChartColumnIncreasing,LucideFileBarChart2:FileChartColumn,LucideFileBox:FileBox,LucideFileChartColumn:FileChartColumn,LucideFileChartColumnIncreasing:FileChartColumnIncreasing,LucideFileChartLine:FileChartLine,LucideFileChartPie:FileChartPie,LucideFileCheck:FileCheck,LucideFileCheck2:FileCheck2,LucideFileClock:FileClock,LucideFileCode:FileCode,LucideFileCode2:FileCode2,LucideFileCog:FileCog,LucideFileCog2:FileCog,LucideFileDiff:FileDiff,LucideFileDigit:FileDigit,LucideFileDown:FileDown,LucideFileEdit:FilePen,LucideFileHeart:FileHeart,LucideFileImage:FileImage,LucideFileInput:FileInput,LucideFileJson:FileJson,LucideFileJson2:FileJson2,LucideFileKey:FileKey,LucideFileKey2:FileKey2,LucideFileLineChart:FileChartLine,LucideFileLock:FileLock,LucideFileLock2:FileLock2,LucideFileMinus:FileMinus,LucideFileMinus2:FileMinus2,LucideFileMusic:FileMusic,LucideFileOutput:FileOutput,LucideFilePen:FilePen,LucideFilePenLine:FilePenLine,LucideFilePieChart:FileChartPie,LucideFilePlay:FilePlay,LucideFilePlus:FilePlus,LucideFilePlus2:FilePlus2,LucideFileQuestion:FileQuestionMark,LucideFileQuestionMark:FileQuestionMark,LucideFileScan:FileScan,LucideFileSearch:FileSearch,LucideFileSearch2:FileSearch2,LucideFileSignature:FilePenLine,LucideFileSliders:FileSliders,LucideFileSpreadsheet:FileSpreadsheet,LucideFileStack:FileStack,LucideFileSymlink:FileSymlink,LucideFileTerminal:FileTerminal,LucideFileText:FileText,LucideFileType:FileType,LucideFileType2:FileType2,LucideFileUp:FileUp,LucideFileUser:FileUser,LucideFileVideo:FilePlay,LucideFileVideo2:FileVideoCamera,LucideFileVideoCamera:FileVideoCamera,LucideFileVolume:FileVolume,LucideFileVolume2:FileVolume2,LucideFileWarning:FileWarning,LucideFileX:FileX,LucideFileX2:FileX2,LucideFiles:Files,LucideFilm:Film,LucideFilter:Funnel,LucideFilterX:FunnelX,LucideFingerprint:Fingerprint,LucideFireExtinguisher:FireExtinguisher,LucideFish:Fish,LucideFishOff:FishOff,LucideFishSymbol:FishSymbol,LucideFlag:Flag,LucideFlagOff:FlagOff,LucideFlagTriangleLeft:FlagTriangleLeft,LucideFlagTriangleRight:FlagTriangleRight,LucideFlame:Flame,LucideFlameKindling:FlameKindling,LucideFlashlight:Flashlight,LucideFlashlightOff:FlashlightOff,LucideFlaskConical:FlaskConical,LucideFlaskConicalOff:FlaskConicalOff,LucideFlaskRound:FlaskRound,LucideFlipHorizontal:FlipHorizontal,LucideFlipHorizontal2:FlipHorizontal2,LucideFlipVertical:FlipVertical,LucideFlipVertical2:FlipVertical2,LucideFlower:Flower,LucideFlower2:Flower2,LucideFocus:Focus,LucideFoldHorizontal:FoldHorizontal,LucideFoldVertical:FoldVertical,LucideFolder:Folder,LucideFolderArchive:FolderArchive,LucideFolderCheck:FolderCheck,LucideFolderClock:FolderClock,LucideFolderClosed:FolderClosed,LucideFolderCode:FolderCode,LucideFolderCog:FolderCog,LucideFolderCog2:FolderCog,LucideFolderDot:FolderDot,LucideFolderDown:FolderDown,LucideFolderEdit:FolderPen,LucideFolderGit:FolderGit,LucideFolderGit2:FolderGit2,LucideFolderHeart:FolderHeart,LucideFolderInput:FolderInput,LucideFolderKanban:FolderKanban,LucideFolderKey:FolderKey,LucideFolderLock:FolderLock,LucideFolderMinus:FolderMinus,LucideFolderOpen:FolderOpen,LucideFolderOpenDot:FolderOpenDot,LucideFolderOutput:FolderOutput,LucideFolderPen:FolderPen,LucideFolderPlus:FolderPlus,LucideFolderRoot:FolderRoot,LucideFolderSearch:FolderSearch,LucideFolderSearch2:FolderSearch2,LucideFolderSymlink:FolderSymlink,LucideFolderSync:FolderSync,LucideFolderTree:FolderTree,LucideFolderUp:FolderUp,LucideFolderX:FolderX,LucideFolders:Folders,LucideFootprints:Footprints,LucideForkKnife:Utensils,LucideForkKnifeCrossed:UtensilsCrossed,LucideForklift:Forklift,LucideFormInput:RectangleEllipsis,LucideForward:Forward,LucideFrame:Frame,LucideFramer:Framer,LucideFrown:Frown,LucideFuel:Fuel,LucideFullscreen:Fullscreen,LucideFunctionSquare:SquareFunction,LucideFunnel:Funnel,LucideFunnelPlus:FunnelPlus,LucideFunnelX:FunnelX,LucideGalleryHorizontal:GalleryHorizontal,LucideGalleryHorizontalEnd:GalleryHorizontalEnd,LucideGalleryThumbnails:GalleryThumbnails,LucideGalleryVertical:GalleryVertical,LucideGalleryVerticalEnd:GalleryVerticalEnd,LucideGamepad:Gamepad,LucideGamepad2:Gamepad2,LucideGanttChart:ChartNoAxesGantt,LucideGanttChartSquare:SquareChartGantt,LucideGauge:Gauge,LucideGaugeCircle:CircleGauge,LucideGavel:Gavel,LucideGem:Gem,LucideGeorgianLari:GeorgianLari,LucideGhost:Ghost,LucideGift:Gift,LucideGitBranch:GitBranch,LucideGitBranchPlus:GitBranchPlus,LucideGitCommit:GitCommitHorizontal,LucideGitCommitHorizontal:GitCommitHorizontal,LucideGitCommitVertical:GitCommitVertical,LucideGitCompare:GitCompare,LucideGitCompareArrows:GitCompareArrows,LucideGitFork:GitFork,LucideGitGraph:GitGraph,LucideGitMerge:GitMerge,LucideGitPullRequest:GitPullRequest,LucideGitPullRequestArrow:GitPullRequestArrow,LucideGitPullRequestClosed:GitPullRequestClosed,LucideGitPullRequestCreate:GitPullRequestCreate,LucideGitPullRequestCreateArrow:GitPullRequestCreateArrow,LucideGitPullRequestDraft:GitPullRequestDraft,LucideGithub:Github,LucideGitlab:Gitlab,LucideGlassWater:GlassWater,LucideGlasses:Glasses,LucideGlobe:Globe,LucideGlobe2:Earth,LucideGlobeLock:GlobeLock,LucideGoal:Goal,LucideGpu:Gpu,LucideGrab:HandGrab,LucideGraduationCap:GraduationCap,LucideGrape:Grape,LucideGrid:Grid3x3,LucideGrid2X2:Grid2x2,LucideGrid2X2Check:Grid2x2Check,LucideGrid2X2Plus:Grid2x2Plus,LucideGrid2X2X:Grid2x2X,LucideGrid2x2:Grid2x2,LucideGrid2x2Check:Grid2x2Check,LucideGrid2x2Plus:Grid2x2Plus,LucideGrid2x2X:Grid2x2X,LucideGrid3X3:Grid3x3,LucideGrid3x2:Grid3x2,LucideGrid3x3:Grid3x3,LucideGrip:Grip,LucideGripHorizontal:GripHorizontal,LucideGripVertical:GripVertical,LucideGroup:Group,LucideGuitar:Guitar,LucideHam:Ham,LucideHamburger:Hamburger,LucideHammer:Hammer,LucideHand:Hand,LucideHandCoins:HandCoins,LucideHandFist:HandFist,LucideHandGrab:HandGrab,LucideHandHeart:HandHeart,LucideHandHelping:HandHelping,LucideHandMetal:HandMetal,LucideHandPlatter:HandPlatter,LucideHandbag:Handbag,LucideHandshake:Handshake,LucideHardDrive:HardDrive,LucideHardDriveDownload:HardDriveDownload,LucideHardDriveUpload:HardDriveUpload,LucideHardHat:HardHat,LucideHash:Hash,LucideHatGlasses:HatGlasses,LucideHaze:Haze,LucideHdmiPort:HdmiPort,LucideHeading:Heading,LucideHeading1:Heading1,LucideHeading2:Heading2,LucideHeading3:Heading3,LucideHeading4:Heading4,LucideHeading5:Heading5,LucideHeading6:Heading6,LucideHeadphoneOff:HeadphoneOff,LucideHeadphones:Headphones,LucideHeadset:Headset,LucideHeart:Heart,LucideHeartCrack:HeartCrack,LucideHeartHandshake:HeartHandshake,LucideHeartMinus:HeartMinus,LucideHeartOff:HeartOff,LucideHeartPlus:HeartPlus,LucideHeartPulse:HeartPulse,LucideHeater:Heater,LucideHelpCircle:CircleQuestionMark,LucideHelpingHand:HandHelping,LucideHexagon:Hexagon,LucideHighlighter:Highlighter,LucideHistory:History,LucideHome:House,LucideHop:Hop,LucideHopOff:HopOff,LucideHospital:Hospital,LucideHotel:Hotel,LucideHourglass:Hourglass,LucideHouse:House,LucideHouseHeart:HouseHeart,LucideHousePlug:HousePlug,LucideHousePlus:HousePlus,LucideHouseWifi:HouseWifi,LucideIceCream:IceCreamCone,LucideIceCream2:IceCreamBowl,LucideIceCreamBowl:IceCreamBowl,LucideIceCreamCone:IceCreamCone,LucideIdCard:IdCard,LucideIdCardLanyard:IdCardLanyard,LucideImage:Image,LucideImageDown:ImageDown,LucideImageMinus:ImageMinus,LucideImageOff:ImageOff,LucideImagePlay:ImagePlay,LucideImagePlus:ImagePlus,LucideImageUp:ImageUp,LucideImageUpscale:ImageUpscale,LucideImages:Images,LucideImport:Import,LucideInbox:Inbox,LucideIndent:ListIndentIncrease,LucideIndentDecrease:ListIndentDecrease,LucideIndentIncrease:ListIndentIncrease,LucideIndianRupee:IndianRupee,LucideInfinity:Infinity$1,LucideInfo:Info$1,LucideInspect:SquareMousePointer,LucideInspectionPanel:InspectionPanel,LucideInstagram:Instagram,LucideItalic:Italic,LucideIterationCcw:IterationCcw,LucideIterationCw:IterationCw,LucideJapaneseYen:JapaneseYen,LucideJoystick:Joystick,LucideKanban:Kanban,LucideKanbanSquare:SquareKanban,LucideKanbanSquareDashed:SquareDashedKanban,LucideKayak:Kayak,LucideKey:Key,LucideKeyRound:KeyRound,LucideKeySquare:KeySquare,LucideKeyboard:Keyboard,LucideKeyboardMusic:KeyboardMusic,LucideKeyboardOff:KeyboardOff,LucideLamp:Lamp,LucideLampCeiling:LampCeiling,LucideLampDesk:LampDesk,LucideLampFloor:LampFloor,LucideLampWallDown:LampWallDown,LucideLampWallUp:LampWallUp,LucideLandPlot:LandPlot,LucideLandmark:Landmark,LucideLanguages:Languages,LucideLaptop:Laptop,LucideLaptop2:LaptopMinimal,LucideLaptopMinimal:LaptopMinimal,LucideLaptopMinimalCheck:LaptopMinimalCheck,LucideLasso:Lasso,LucideLassoSelect:LassoSelect,LucideLaugh:Laugh,LucideLayers:Layers,LucideLayers2:Layers2,LucideLayers3:Layers,LucideLayout:PanelsTopLeft,LucideLayoutDashboard:LayoutDashboard,LucideLayoutGrid:LayoutGrid,LucideLayoutList:LayoutList,LucideLayoutPanelLeft:LayoutPanelLeft,LucideLayoutPanelTop:LayoutPanelTop,LucideLayoutTemplate:LayoutTemplate,LucideLeaf:Leaf,LucideLeafyGreen:LeafyGreen,LucideLectern:Lectern,LucideLetterText:TextInitial,LucideLibrary:Library,LucideLibraryBig:LibraryBig,LucideLibrarySquare:SquareLibrary,LucideLifeBuoy:LifeBuoy,LucideLigature:Ligature,LucideLightbulb:Lightbulb,LucideLightbulbOff:LightbulbOff,LucideLineChart:ChartLine,LucideLineSquiggle:LineSquiggle,LucideLink:Link,LucideLink2:Link2,LucideLink2Off:Link2Off,LucideLinkedin:Linkedin,LucideList:List,LucideListCheck:ListCheck,LucideListChecks:ListChecks,LucideListChevronsDownUp:ListChevronsDownUp,LucideListChevronsUpDown:ListChevronsUpDown,LucideListCollapse:ListCollapse,LucideListEnd:ListEnd,LucideListFilter:ListFilter,LucideListFilterPlus:ListFilterPlus,LucideListIndentDecrease:ListIndentDecrease,LucideListIndentIncrease:ListIndentIncrease,LucideListMinus:ListMinus,LucideListMusic:ListMusic,LucideListOrdered:ListOrdered,LucideListPlus:ListPlus,LucideListRestart:ListRestart,LucideListStart:ListStart,LucideListTodo:ListTodo,LucideListTree:ListTree,LucideListVideo:ListVideo,LucideListX:ListX,LucideLoader:Loader,LucideLoader2:LoaderCircle,LucideLoaderCircle:LoaderCircle,LucideLoaderPinwheel:LoaderPinwheel,LucideLocate:Locate,LucideLocateFixed:LocateFixed,LucideLocateOff:LocateOff,LucideLocationEdit:MapPinPen,LucideLock:Lock,LucideLockKeyhole:LockKeyhole,LucideLockKeyholeOpen:LockKeyholeOpen,LucideLockOpen:LockOpen,LucideLogIn:LogIn,LucideLogOut:LogOut,LucideLogs:Logs,LucideLollipop:Lollipop,LucideLuggage:Luggage,LucideMSquare:SquareM,LucideMagnet:Magnet,LucideMail:Mail,LucideMailCheck:MailCheck,LucideMailMinus:MailMinus,LucideMailOpen:MailOpen,LucideMailPlus:MailPlus,LucideMailQuestion:MailQuestionMark,LucideMailQuestionMark:MailQuestionMark,LucideMailSearch:MailSearch,LucideMailWarning:MailWarning,LucideMailX:MailX,LucideMailbox:Mailbox,LucideMails:Mails,LucideMap:Map$1,LucideMapMinus:MapMinus,LucideMapPin:MapPin,LucideMapPinCheck:MapPinCheck,LucideMapPinCheckInside:MapPinCheckInside,LucideMapPinHouse:MapPinHouse,LucideMapPinMinus:MapPinMinus,LucideMapPinMinusInside:MapPinMinusInside,LucideMapPinOff:MapPinOff,LucideMapPinPen:MapPinPen,LucideMapPinPlus:MapPinPlus,LucideMapPinPlusInside:MapPinPlusInside,LucideMapPinX:MapPinX,LucideMapPinXInside:MapPinXInside,LucideMapPinned:MapPinned,LucideMapPlus:MapPlus,LucideMars:Mars,LucideMarsStroke:MarsStroke,LucideMartini:Martini,LucideMaximize:Maximize,LucideMaximize2:Maximize2,LucideMedal:Medal,LucideMegaphone:Megaphone,LucideMegaphoneOff:MegaphoneOff,LucideMeh:Meh,LucideMemoryStick:MemoryStick,LucideMenu:Menu,LucideMenuSquare:SquareMenu,LucideMerge:Merge,LucideMessageCircle:MessageCircle,LucideMessageCircleCode:MessageCircleCode,LucideMessageCircleDashed:MessageCircleDashed,LucideMessageCircleHeart:MessageCircleHeart,LucideMessageCircleMore:MessageCircleMore,LucideMessageCircleOff:MessageCircleOff,LucideMessageCirclePlus:MessageCirclePlus,LucideMessageCircleQuestion:MessageCircleQuestionMark,LucideMessageCircleQuestionMark:MessageCircleQuestionMark,LucideMessageCircleReply:MessageCircleReply,LucideMessageCircleWarning:MessageCircleWarning,LucideMessageCircleX:MessageCircleX,LucideMessageSquare:MessageSquare,LucideMessageSquareCode:MessageSquareCode,LucideMessageSquareDashed:MessageSquareDashed,LucideMessageSquareDiff:MessageSquareDiff,LucideMessageSquareDot:MessageSquareDot,LucideMessageSquareHeart:MessageSquareHeart,LucideMessageSquareLock:MessageSquareLock,LucideMessageSquareMore:MessageSquareMore,LucideMessageSquareOff:MessageSquareOff,LucideMessageSquarePlus:MessageSquarePlus,LucideMessageSquareQuote:MessageSquareQuote,LucideMessageSquareReply:MessageSquareReply,LucideMessageSquareShare:MessageSquareShare,LucideMessageSquareText:MessageSquareText,LucideMessageSquareWarning:MessageSquareWarning,LucideMessageSquareX:MessageSquareX,LucideMessagesSquare:MessagesSquare,LucideMic:Mic,LucideMic2:MicVocal,LucideMicOff:MicOff,LucideMicVocal:MicVocal,LucideMicrochip:Microchip,LucideMicroscope:Microscope,LucideMicrowave:Microwave,LucideMilestone:Milestone,LucideMilk:Milk,LucideMilkOff:MilkOff,LucideMinimize:Minimize,LucideMinimize2:Minimize2,LucideMinus:Minus,LucideMinusCircle:CircleMinus,LucideMinusSquare:SquareMinus,LucideMonitor:Monitor,LucideMonitorCheck:MonitorCheck,LucideMonitorCloud:MonitorCloud,LucideMonitorCog:MonitorCog,LucideMonitorDot:MonitorDot,LucideMonitorDown:MonitorDown,LucideMonitorOff:MonitorOff,LucideMonitorPause:MonitorPause,LucideMonitorPlay:MonitorPlay,LucideMonitorSmartphone:MonitorSmartphone,LucideMonitorSpeaker:MonitorSpeaker,LucideMonitorStop:MonitorStop,LucideMonitorUp:MonitorUp,LucideMonitorX:MonitorX,LucideMoon:Moon,LucideMoonStar:MoonStar,LucideMoreHorizontal:Ellipsis,LucideMoreVertical:EllipsisVertical,LucideMotorbike:Motorbike,LucideMountain:Mountain,LucideMountainSnow:MountainSnow,LucideMouse:Mouse,LucideMouseOff:MouseOff,LucideMousePointer:MousePointer,LucideMousePointer2:MousePointer2,LucideMousePointerBan:MousePointerBan,LucideMousePointerClick:MousePointerClick,LucideMousePointerSquareDashed:SquareDashedMousePointer,LucideMove:Move,LucideMove3D:Move3d,LucideMove3d:Move3d,LucideMoveDiagonal:MoveDiagonal,LucideMoveDiagonal2:MoveDiagonal2,LucideMoveDown:MoveDown,LucideMoveDownLeft:MoveDownLeft,LucideMoveDownRight:MoveDownRight,LucideMoveHorizontal:MoveHorizontal,LucideMoveLeft:MoveLeft,LucideMoveRight:MoveRight,LucideMoveUp:MoveUp,LucideMoveUpLeft:MoveUpLeft,LucideMoveUpRight:MoveUpRight,LucideMoveVertical:MoveVertical,LucideMusic:Music,LucideMusic2:Music2,LucideMusic3:Music3,LucideMusic4:Music4,LucideNavigation:Navigation,LucideNavigation2:Navigation2,LucideNavigation2Off:Navigation2Off,LucideNavigationOff:NavigationOff,LucideNetwork:Network,LucideNewspaper:Newspaper,LucideNfc:Nfc,LucideNonBinary:NonBinary,LucideNotebook:Notebook,LucideNotebookPen:NotebookPen,LucideNotebookTabs:NotebookTabs,LucideNotebookText:NotebookText,LucideNotepadText:NotepadText,LucideNotepadTextDashed:NotepadTextDashed,LucideNut:Nut,LucideNutOff:NutOff,LucideOctagon:Octagon,LucideOctagonAlert:OctagonAlert,LucideOctagonMinus:OctagonMinus,LucideOctagonPause:OctagonPause,LucideOctagonX:OctagonX,LucideOmega:Omega,LucideOption:Option,LucideOrbit:Orbit,LucideOrigami:Origami,LucideOutdent:ListIndentDecrease,LucidePackage:Package,LucidePackage2:Package2,LucidePackageCheck:PackageCheck,LucidePackageMinus:PackageMinus,LucidePackageOpen:PackageOpen,LucidePackagePlus:PackagePlus,LucidePackageSearch:PackageSearch,LucidePackageX:PackageX,LucidePaintBucket:PaintBucket,LucidePaintRoller:PaintRoller,LucidePaintbrush:Paintbrush,LucidePaintbrush2:PaintbrushVertical,LucidePaintbrushVertical:PaintbrushVertical,LucidePalette:Palette,LucidePalmtree:TreePalm,LucidePanda:Panda,LucidePanelBottom:PanelBottom,LucidePanelBottomClose:PanelBottomClose,LucidePanelBottomDashed:PanelBottomDashed,LucidePanelBottomInactive:PanelBottomDashed,LucidePanelBottomOpen:PanelBottomOpen,LucidePanelLeft:PanelLeft,LucidePanelLeftClose:PanelLeftClose,LucidePanelLeftDashed:PanelLeftDashed,LucidePanelLeftInactive:PanelLeftDashed,LucidePanelLeftOpen:PanelLeftOpen,LucidePanelLeftRightDashed:PanelLeftRightDashed,LucidePanelRight:PanelRight,LucidePanelRightClose:PanelRightClose,LucidePanelRightDashed:PanelRightDashed,LucidePanelRightInactive:PanelRightDashed,LucidePanelRightOpen:PanelRightOpen,LucidePanelTop:PanelTop,LucidePanelTopBottomDashed:PanelTopBottomDashed,LucidePanelTopClose:PanelTopClose,LucidePanelTopDashed:PanelTopDashed,LucidePanelTopInactive:PanelTopDashed,LucidePanelTopOpen:PanelTopOpen,LucidePanelsLeftBottom:PanelsLeftBottom,LucidePanelsLeftRight:Columns3,LucidePanelsRightBottom:PanelsRightBottom,LucidePanelsTopBottom:Rows3,LucidePanelsTopLeft:PanelsTopLeft,LucidePaperclip:Paperclip,LucideParentheses:Parentheses,LucideParkingCircle:CircleParking,LucideParkingCircleOff:CircleParkingOff,LucideParkingMeter:ParkingMeter,LucideParkingSquare:SquareParking,LucideParkingSquareOff:SquareParkingOff,LucidePartyPopper:PartyPopper,LucidePause:Pause,LucidePauseCircle:CirclePause,LucidePauseOctagon:OctagonPause,LucidePawPrint:PawPrint,LucidePcCase:PcCase,LucidePen:Pen,LucidePenBox:SquarePen,LucidePenLine:PenLine,LucidePenOff:PenOff,LucidePenSquare:SquarePen,LucidePenTool:PenTool,LucidePencil:Pencil,LucidePencilLine:PencilLine,LucidePencilOff:PencilOff,LucidePencilRuler:PencilRuler,LucidePentagon:Pentagon,LucidePercent:Percent,LucidePercentCircle:CirclePercent,LucidePercentDiamond:DiamondPercent,LucidePercentSquare:SquarePercent,LucidePersonStanding:PersonStanding,LucidePhilippinePeso:PhilippinePeso,LucidePhone:Phone,LucidePhoneCall:PhoneCall,LucidePhoneForwarded:PhoneForwarded,LucidePhoneIncoming:PhoneIncoming,LucidePhoneMissed:PhoneMissed,LucidePhoneOff:PhoneOff,LucidePhoneOutgoing:PhoneOutgoing,LucidePi:Pi,LucidePiSquare:SquarePi,LucidePiano:Piano,LucidePickaxe:Pickaxe,LucidePictureInPicture:PictureInPicture,LucidePictureInPicture2:PictureInPicture2,LucidePieChart:ChartPie,LucidePiggyBank:PiggyBank,LucidePilcrow:Pilcrow,LucidePilcrowLeft:PilcrowLeft,LucidePilcrowRight:PilcrowRight,LucidePilcrowSquare:SquarePilcrow,LucidePill:Pill,LucidePillBottle:PillBottle,LucidePin:Pin,LucidePinOff:PinOff,LucidePipette:Pipette,LucidePizza:Pizza,LucidePlane:Plane,LucidePlaneLanding:PlaneLanding,LucidePlaneTakeoff:PlaneTakeoff,LucidePlay:Play,LucidePlayCircle:CirclePlay,LucidePlaySquare:SquarePlay,LucidePlug:Plug,LucidePlug2:Plug2,LucidePlugZap:PlugZap,LucidePlugZap2:PlugZap,LucidePlus:Plus,LucidePlusCircle:CirclePlus,LucidePlusSquare:SquarePlus,LucidePocket:Pocket,LucidePocketKnife:PocketKnife,LucidePodcast:Podcast,LucidePointer:Pointer,LucidePointerOff:PointerOff,LucidePopcorn:Popcorn,LucidePopsicle:Popsicle,LucidePoundSterling:PoundSterling,LucidePower:Power,LucidePowerCircle:CirclePower,LucidePowerOff:PowerOff,LucidePowerSquare:SquarePower,LucidePresentation:Presentation,LucidePrinter:Printer,LucidePrinterCheck:PrinterCheck,LucideProjector:Projector,LucideProportions:Proportions,LucidePuzzle:Puzzle,LucidePyramid:Pyramid,LucideQrCode:QrCode,LucideQuote:Quote,LucideRabbit:Rabbit,LucideRadar:Radar,LucideRadiation:Radiation,LucideRadical:Radical,LucideRadio:Radio,LucideRadioReceiver:RadioReceiver,LucideRadioTower:RadioTower,LucideRadius:Radius,LucideRailSymbol:RailSymbol,LucideRainbow:Rainbow,LucideRat:Rat,LucideRatio:Ratio,LucideReceipt:Receipt,LucideReceiptCent:ReceiptCent,LucideReceiptEuro:ReceiptEuro,LucideReceiptIndianRupee:ReceiptIndianRupee,LucideReceiptJapaneseYen:ReceiptJapaneseYen,LucideReceiptPoundSterling:ReceiptPoundSterling,LucideReceiptRussianRuble:ReceiptRussianRuble,LucideReceiptSwissFranc:ReceiptSwissFranc,LucideReceiptText:ReceiptText,LucideReceiptTurkishLira:ReceiptTurkishLira,LucideRectangleCircle:RectangleCircle,LucideRectangleEllipsis:RectangleEllipsis,LucideRectangleGoggles:RectangleGoggles,LucideRectangleHorizontal:RectangleHorizontal,LucideRectangleVertical:RectangleVertical,LucideRecycle:Recycle,LucideRedo:Redo,LucideRedo2:Redo2,LucideRedoDot:RedoDot,LucideRefreshCcw:RefreshCcw,LucideRefreshCcwDot:RefreshCcwDot,LucideRefreshCw:RefreshCw,LucideRefreshCwOff:RefreshCwOff,LucideRefrigerator:Refrigerator,LucideRegex:Regex,LucideRemoveFormatting:RemoveFormatting,LucideRepeat:Repeat,LucideRepeat1:Repeat1,LucideRepeat2:Repeat2,LucideReplace:Replace,LucideReplaceAll:ReplaceAll,LucideReply:Reply,LucideReplyAll:ReplyAll,LucideRewind:Rewind,LucideRibbon:Ribbon,LucideRocket:Rocket,LucideRockingChair:RockingChair,LucideRollerCoaster:RollerCoaster,LucideRose:Rose,LucideRotate3D:Rotate3d,LucideRotate3d:Rotate3d,LucideRotateCcw:RotateCcw,LucideRotateCcwKey:RotateCcwKey,LucideRotateCcwSquare:RotateCcwSquare,LucideRotateCw:RotateCw,LucideRotateCwSquare:RotateCwSquare,LucideRoute:Route,LucideRouteOff:RouteOff,LucideRouter:Router,LucideRows:Rows2,LucideRows2:Rows2,LucideRows3:Rows3,LucideRows4:Rows4,LucideRss:Rss,LucideRuler:Ruler,LucideRulerDimensionLine:RulerDimensionLine,LucideRussianRuble:RussianRuble,LucideSailboat:Sailboat,LucideSalad:Salad,LucideSandwich:Sandwich,LucideSatellite:Satellite,LucideSatelliteDish:SatelliteDish,LucideSaudiRiyal:SaudiRiyal,LucideSave:Save,LucideSaveAll:SaveAll,LucideSaveOff:SaveOff,LucideScale:Scale,LucideScale3D:Scale3d,LucideScale3d:Scale3d,LucideScaling:Scaling,LucideScan:Scan,LucideScanBarcode:ScanBarcode,LucideScanEye:ScanEye,LucideScanFace:ScanFace,LucideScanHeart:ScanHeart,LucideScanLine:ScanLine,LucideScanQrCode:ScanQrCode,LucideScanSearch:ScanSearch,LucideScanText:ScanText,LucideScatterChart:ChartScatter,LucideSchool:School,LucideSchool2:University,LucideScissors:Scissors,LucideScissorsLineDashed:ScissorsLineDashed,LucideScissorsSquare:SquareScissors,LucideScissorsSquareDashedBottom:SquareBottomDashedScissors,LucideScreenShare:ScreenShare,LucideScreenShareOff:ScreenShareOff,LucideScroll:Scroll,LucideScrollText:ScrollText,LucideSearch:Search,LucideSearchCheck:SearchCheck,LucideSearchCode:SearchCode,LucideSearchSlash:SearchSlash,LucideSearchX:SearchX,LucideSection:Section,LucideSend:Send,LucideSendHorizonal:SendHorizontal,LucideSendHorizontal:SendHorizontal,LucideSendToBack:SendToBack,LucideSeparatorHorizontal:SeparatorHorizontal,LucideSeparatorVertical:SeparatorVertical,LucideServer:Server,LucideServerCog:ServerCog,LucideServerCrash:ServerCrash,LucideServerOff:ServerOff,LucideSettings:Settings,LucideSettings2:Settings2,LucideShapes:Shapes,LucideShare:Share,LucideShare2:Share2,LucideSheet:Sheet,LucideShell:Shell,LucideShield:Shield,LucideShieldAlert:ShieldAlert,LucideShieldBan:ShieldBan,LucideShieldCheck:ShieldCheck,LucideShieldClose:ShieldX,LucideShieldEllipsis:ShieldEllipsis,LucideShieldHalf:ShieldHalf,LucideShieldMinus:ShieldMinus,LucideShieldOff:ShieldOff,LucideShieldPlus:ShieldPlus,LucideShieldQuestion:ShieldQuestionMark,LucideShieldQuestionMark:ShieldQuestionMark,LucideShieldUser:ShieldUser,LucideShieldX:ShieldX,LucideShip:Ship,LucideShipWheel:ShipWheel,LucideShirt:Shirt,LucideShoppingBag:ShoppingBag,LucideShoppingBasket:ShoppingBasket,LucideShoppingCart:ShoppingCart,LucideShovel:Shovel,LucideShowerHead:ShowerHead,LucideShredder:Shredder,LucideShrimp:Shrimp,LucideShrink:Shrink,LucideShrub:Shrub,LucideShuffle:Shuffle,LucideSidebar:PanelLeft,LucideSidebarClose:PanelLeftClose,LucideSidebarOpen:PanelLeftOpen,LucideSigma:Sigma,LucideSigmaSquare:SquareSigma,LucideSignal:Signal,LucideSignalHigh:SignalHigh,LucideSignalLow:SignalLow,LucideSignalMedium:SignalMedium,LucideSignalZero:SignalZero,LucideSignature:Signature,LucideSignpost:Signpost,LucideSignpostBig:SignpostBig,LucideSiren:Siren,LucideSkipBack:SkipBack,LucideSkipForward:SkipForward,LucideSkull:Skull,LucideSlack:Slack,LucideSlash:Slash,LucideSlashSquare:SquareSlash,LucideSlice:Slice,LucideSliders:SlidersVertical,LucideSlidersHorizontal:SlidersHorizontal,LucideSlidersVertical:SlidersVertical,LucideSmartphone:Smartphone,LucideSmartphoneCharging:SmartphoneCharging,LucideSmartphoneNfc:SmartphoneNfc,LucideSmile:Smile,LucideSmilePlus:SmilePlus,LucideSnail:Snail,LucideSnowflake:Snowflake,LucideSoapDispenserDroplet:SoapDispenserDroplet,LucideSofa:Sofa,LucideSortAsc:ArrowUpNarrowWide,LucideSortDesc:ArrowDownWideNarrow,LucideSoup:Soup,LucideSpace:Space,LucideSpade:Spade,LucideSparkle:Sparkle,LucideSparkles:Sparkles,LucideSpeaker:Speaker,LucideSpeech:Speech,LucideSpellCheck:SpellCheck,LucideSpellCheck2:SpellCheck2,LucideSpline:Spline,LucideSplinePointer:SplinePointer,LucideSplit:Split,LucideSplitSquareHorizontal:SquareSplitHorizontal,LucideSplitSquareVertical:SquareSplitVertical,LucideSpool:Spool,LucideSpotlight:Spotlight,LucideSprayCan:SprayCan,LucideSprout:Sprout,LucideSquare:Square,LucideSquareActivity:SquareActivity,LucideSquareArrowDown:SquareArrowDown,LucideSquareArrowDownLeft:SquareArrowDownLeft,LucideSquareArrowDownRight:SquareArrowDownRight,LucideSquareArrowLeft:SquareArrowLeft,LucideSquareArrowOutDownLeft:SquareArrowOutDownLeft,LucideSquareArrowOutDownRight:SquareArrowOutDownRight,LucideSquareArrowOutUpLeft:SquareArrowOutUpLeft,LucideSquareArrowOutUpRight:SquareArrowOutUpRight,LucideSquareArrowRight:SquareArrowRight,LucideSquareArrowUp:SquareArrowUp,LucideSquareArrowUpLeft:SquareArrowUpLeft,LucideSquareArrowUpRight:SquareArrowUpRight,LucideSquareAsterisk:SquareAsterisk,LucideSquareBottomDashedScissors:SquareBottomDashedScissors,LucideSquareChartGantt:SquareChartGantt,LucideSquareCheck:SquareCheck,LucideSquareCheckBig:SquareCheckBig,LucideSquareChevronDown:SquareChevronDown,LucideSquareChevronLeft:SquareChevronLeft,LucideSquareChevronRight:SquareChevronRight,LucideSquareChevronUp:SquareChevronUp,LucideSquareCode:SquareCode,LucideSquareDashed:SquareDashed,LucideSquareDashedBottom:SquareDashedBottom,LucideSquareDashedBottomCode:SquareDashedBottomCode,LucideSquareDashedKanban:SquareDashedKanban,LucideSquareDashedMousePointer:SquareDashedMousePointer,LucideSquareDashedTopSolid:SquareDashedTopSolid,LucideSquareDivide:SquareDivide,LucideSquareDot:SquareDot,LucideSquareEqual:SquareEqual,LucideSquareFunction:SquareFunction,LucideSquareGanttChart:SquareChartGantt,LucideSquareKanban:SquareKanban,LucideSquareLibrary:SquareLibrary,LucideSquareM:SquareM,LucideSquareMenu:SquareMenu,LucideSquareMinus:SquareMinus,LucideSquareMousePointer:SquareMousePointer,LucideSquareParking:SquareParking,LucideSquareParkingOff:SquareParkingOff,LucideSquarePause:SquarePause,LucideSquarePen:SquarePen,LucideSquarePercent:SquarePercent,LucideSquarePi:SquarePi,LucideSquarePilcrow:SquarePilcrow,LucideSquarePlay:SquarePlay,LucideSquarePlus:SquarePlus,LucideSquarePower:SquarePower,LucideSquareRadical:SquareRadical,LucideSquareRoundCorner:SquareRoundCorner,LucideSquareScissors:SquareScissors,LucideSquareSigma:SquareSigma,LucideSquareSlash:SquareSlash,LucideSquareSplitHorizontal:SquareSplitHorizontal,LucideSquareSplitVertical:SquareSplitVertical,LucideSquareSquare:SquareSquare,LucideSquareStack:SquareStack,LucideSquareStar:SquareStar,LucideSquareStop:SquareStop,LucideSquareTerminal:SquareTerminal,LucideSquareUser:SquareUser,LucideSquareUserRound:SquareUserRound,LucideSquareX:SquareX,LucideSquaresExclude:SquaresExclude,LucideSquaresIntersect:SquaresIntersect,LucideSquaresSubtract:SquaresSubtract,LucideSquaresUnite:SquaresUnite,LucideSquircle:Squircle,LucideSquircleDashed:SquircleDashed,LucideSquirrel:Squirrel,LucideStamp:Stamp,LucideStar:Star,LucideStarHalf:StarHalf,LucideStarOff:StarOff,LucideStars:Sparkles,LucideStepBack:StepBack,LucideStepForward:StepForward,LucideStethoscope:Stethoscope,LucideSticker:Sticker,LucideStickyNote:StickyNote,LucideStopCircle:CircleStop,LucideStore:Store,LucideStretchHorizontal:StretchHorizontal,LucideStretchVertical:StretchVertical,LucideStrikethrough:Strikethrough,LucideSubscript:Subscript,LucideSubtitles:Captions,LucideSun:Sun,LucideSunDim:SunDim,LucideSunMedium:SunMedium,LucideSunMoon:SunMoon,LucideSunSnow:SunSnow,LucideSunrise:Sunrise,LucideSunset:Sunset,LucideSuperscript:Superscript,LucideSwatchBook:SwatchBook,LucideSwissFranc:SwissFranc,LucideSwitchCamera:SwitchCamera,LucideSword:Sword,LucideSwords:Swords,LucideSyringe:Syringe,LucideTable:Table,LucideTable2:Table2,LucideTableCellsMerge:TableCellsMerge,LucideTableCellsSplit:TableCellsSplit,LucideTableColumnsSplit:TableColumnsSplit,LucideTableConfig:Columns3Cog,LucideTableOfContents:TableOfContents,LucideTableProperties:TableProperties,LucideTableRowsSplit:TableRowsSplit,LucideTablet:Tablet,LucideTabletSmartphone:TabletSmartphone,LucideTablets:Tablets,LucideTag:Tag,LucideTags:Tags,LucideTally1:Tally1,LucideTally2:Tally2,LucideTally3:Tally3,LucideTally4:Tally4,LucideTally5:Tally5,LucideTangent:Tangent,LucideTarget:Target,LucideTelescope:Telescope,LucideTent:Tent,LucideTentTree:TentTree,LucideTerminal:Terminal,LucideTerminalSquare:SquareTerminal,LucideTestTube:TestTube,LucideTestTube2:TestTubeDiagonal,LucideTestTubeDiagonal:TestTubeDiagonal,LucideTestTubes:TestTubes,LucideText:TextAlignStart,LucideTextAlignCenter:TextAlignCenter,LucideTextAlignEnd:TextAlignEnd,LucideTextAlignJustify:TextAlignJustify,LucideTextAlignStart:TextAlignStart,LucideTextCursor:TextCursor,LucideTextCursorInput:TextCursorInput,LucideTextInitial:TextInitial,LucideTextQuote:TextQuote,LucideTextSearch:TextSearch,LucideTextSelect:TextSelect,LucideTextSelection:TextSelect,LucideTextWrap:TextWrap,LucideTheater:Theater,LucideThermometer:Thermometer,LucideThermometerSnowflake:ThermometerSnowflake,LucideThermometerSun:ThermometerSun,LucideThumbsDown:ThumbsDown,LucideThumbsUp:ThumbsUp,LucideTicket:Ticket,LucideTicketCheck:TicketCheck,LucideTicketMinus:TicketMinus,LucideTicketPercent:TicketPercent,LucideTicketPlus:TicketPlus,LucideTicketSlash:TicketSlash,LucideTicketX:TicketX,LucideTickets:Tickets,LucideTicketsPlane:TicketsPlane,LucideTimer:Timer,LucideTimerOff:TimerOff,LucideTimerReset:TimerReset,LucideToggleLeft:ToggleLeft,LucideToggleRight:ToggleRight,LucideToilet:Toilet,LucideToolCase:ToolCase,LucideTornado:Tornado,LucideTorus:Torus,LucideTouchpad:Touchpad,LucideTouchpadOff:TouchpadOff,LucideTowerControl:TowerControl,LucideToyBrick:ToyBrick,LucideTractor:Tractor,LucideTrafficCone:TrafficCone,LucideTrain:TramFront,LucideTrainFront:TrainFront,LucideTrainFrontTunnel:TrainFrontTunnel,LucideTrainTrack:TrainTrack,LucideTramFront:TramFront,LucideTransgender:Transgender,LucideTrash:Trash,LucideTrash2:Trash2,LucideTreeDeciduous:TreeDeciduous,LucideTreePalm:TreePalm,LucideTreePine:TreePine,LucideTrees:Trees,LucideTrello:Trello,LucideTrendingDown:TrendingDown,LucideTrendingUp:TrendingUp,LucideTrendingUpDown:TrendingUpDown,LucideTriangle:Triangle,LucideTriangleAlert:TriangleAlert,LucideTriangleDashed:TriangleDashed,LucideTriangleRight:TriangleRight,LucideTrophy:Trophy,LucideTruck:Truck,LucideTruckElectric:TruckElectric,LucideTurkishLira:TurkishLira,LucideTurntable:Turntable,LucideTurtle:Turtle,LucideTv:Tv,LucideTv2:TvMinimal,LucideTvMinimal:TvMinimal,LucideTvMinimalPlay:TvMinimalPlay,LucideTwitch:Twitch,LucideTwitter:Twitter,LucideType:Type,LucideTypeOutline:TypeOutline,LucideUmbrella:Umbrella,LucideUmbrellaOff:UmbrellaOff,LucideUnderline:Underline,LucideUndo:Undo,LucideUndo2:Undo2,LucideUndoDot:UndoDot,LucideUnfoldHorizontal:UnfoldHorizontal,LucideUnfoldVertical:UnfoldVertical,LucideUngroup:Ungroup,LucideUniversity:University,LucideUnlink:Unlink,LucideUnlink2:Unlink2,LucideUnlock:LockOpen,LucideUnlockKeyhole:LockKeyholeOpen,LucideUnplug:Unplug,LucideUpload:Upload,LucideUploadCloud:CloudUpload,LucideUsb:Usb,LucideUser:User,LucideUser2:UserRound,LucideUserCheck:UserCheck,LucideUserCheck2:UserRoundCheck,LucideUserCircle:CircleUser,LucideUserCircle2:CircleUserRound,LucideUserCog:UserCog,LucideUserCog2:UserRoundCog,LucideUserLock:UserLock,LucideUserMinus:UserMinus,LucideUserMinus2:UserRoundMinus,LucideUserPen:UserPen,LucideUserPlus:UserPlus,LucideUserPlus2:UserRoundPlus,LucideUserRound:UserRound,LucideUserRoundCheck:UserRoundCheck,LucideUserRoundCog:UserRoundCog,LucideUserRoundMinus:UserRoundMinus,LucideUserRoundPen:UserRoundPen,LucideUserRoundPlus:UserRoundPlus,LucideUserRoundSearch:UserRoundSearch,LucideUserRoundX:UserRoundX,LucideUserSearch:UserSearch,LucideUserSquare:SquareUser,LucideUserSquare2:SquareUserRound,LucideUserStar:UserStar,LucideUserX:UserX,LucideUserX2:UserRoundX,LucideUsers:Users,LucideUsers2:UsersRound,LucideUsersRound:UsersRound,LucideUtensils:Utensils,LucideUtensilsCrossed:UtensilsCrossed,LucideUtilityPole:UtilityPole,LucideVariable:Variable,LucideVault:Vault,LucideVectorSquare:VectorSquare,LucideVegan:Vegan,LucideVenetianMask:VenetianMask,LucideVenus:Venus,LucideVenusAndMars:VenusAndMars,LucideVerified:BadgeCheck,LucideVibrate:Vibrate,LucideVibrateOff:VibrateOff,LucideVideo:Video,LucideVideoOff:VideoOff,LucideVideotape:Videotape,LucideView:View,LucideVoicemail:Voicemail,LucideVolleyball:Volleyball,LucideVolume:Volume,LucideVolume1:Volume1,LucideVolume2:Volume2,LucideVolumeOff:VolumeOff,LucideVolumeX:VolumeX,LucideVote:Vote,LucideWallet:Wallet,LucideWallet2:WalletMinimal,LucideWalletCards:WalletCards,LucideWalletMinimal:WalletMinimal,LucideWallpaper:Wallpaper,LucideWand:Wand,LucideWand2:WandSparkles,LucideWandSparkles:WandSparkles,LucideWarehouse:Warehouse,LucideWashingMachine:WashingMachine,LucideWatch:Watch,LucideWaves:Waves,LucideWavesLadder:WavesLadder,LucideWaypoints:Waypoints,LucideWebcam:Webcam,LucideWebhook:Webhook,LucideWebhookOff:WebhookOff,LucideWeight:Weight,LucideWheat:Wheat,LucideWheatOff:WheatOff,LucideWholeWord:WholeWord,LucideWifi:Wifi,LucideWifiCog:WifiCog,LucideWifiHigh:WifiHigh,LucideWifiLow:WifiLow,LucideWifiOff:WifiOff,LucideWifiPen:WifiPen,LucideWifiSync:WifiSync,LucideWifiZero:WifiZero,LucideWind:Wind,LucideWindArrowDown:WindArrowDown,LucideWine:Wine,LucideWineOff:WineOff,LucideWorkflow:Workflow,LucideWorm:Worm,LucideWrapText:TextWrap,LucideWrench:Wrench,LucideX:X,LucideXCircle:CircleX,LucideXOctagon:OctagonX,LucideXSquare:SquareX,LucideYoutube:Youtube,LucideZap:Zap,LucideZapOff:ZapOff,LucideZoomIn:ZoomIn,LucideZoomOut:ZoomOut,Luggage,LuggageIcon:Luggage,MSquare:SquareM,MSquareIcon:SquareM,Magnet,MagnetIcon:Magnet,Mail,MailCheck,MailCheckIcon:MailCheck,MailIcon:Mail,MailMinus,MailMinusIcon:MailMinus,MailOpen,MailOpenIcon:MailOpen,MailPlus,MailPlusIcon:MailPlus,MailQuestion:MailQuestionMark,MailQuestionIcon:MailQuestionMark,MailQuestionMark,MailQuestionMarkIcon:MailQuestionMark,MailSearch,MailSearchIcon:MailSearch,MailWarning,MailWarningIcon:MailWarning,MailX,MailXIcon:MailX,Mailbox,MailboxIcon:Mailbox,Mails,MailsIcon:Mails,Map:Map$1,MapIcon:Map$1,MapMinus,MapMinusIcon:MapMinus,MapPin,MapPinCheck,MapPinCheckIcon:MapPinCheck,MapPinCheckInside,MapPinCheckInsideIcon:MapPinCheckInside,MapPinHouse,MapPinHouseIcon:MapPinHouse,MapPinIcon:MapPin,MapPinMinus,MapPinMinusIcon:MapPinMinus,MapPinMinusInside,MapPinMinusInsideIcon:MapPinMinusInside,MapPinOff,MapPinOffIcon:MapPinOff,MapPinPen,MapPinPenIcon:MapPinPen,MapPinPlus,MapPinPlusIcon:MapPinPlus,MapPinPlusInside,MapPinPlusInsideIcon:MapPinPlusInside,MapPinX,MapPinXIcon:MapPinX,MapPinXInside,MapPinXInsideIcon:MapPinXInside,MapPinned,MapPinnedIcon:MapPinned,MapPlus,MapPlusIcon:MapPlus,Mars,MarsIcon:Mars,MarsStroke,MarsStrokeIcon:MarsStroke,Martini,MartiniIcon:Martini,Maximize,Maximize2,Maximize2Icon:Maximize2,MaximizeIcon:Maximize,Medal,MedalIcon:Medal,Megaphone,MegaphoneIcon:Megaphone,MegaphoneOff,MegaphoneOffIcon:MegaphoneOff,Meh,MehIcon:Meh,MemoryStick,MemoryStickIcon:MemoryStick,Menu,MenuIcon:Menu,MenuSquare:SquareMenu,MenuSquareIcon:SquareMenu,Merge,MergeIcon:Merge,MessageCircle,MessageCircleCode,MessageCircleCodeIcon:MessageCircleCode,MessageCircleDashed,MessageCircleDashedIcon:MessageCircleDashed,MessageCircleHeart,MessageCircleHeartIcon:MessageCircleHeart,MessageCircleIcon:MessageCircle,MessageCircleMore,MessageCircleMoreIcon:MessageCircleMore,MessageCircleOff,MessageCircleOffIcon:MessageCircleOff,MessageCirclePlus,MessageCirclePlusIcon:MessageCirclePlus,MessageCircleQuestion:MessageCircleQuestionMark,MessageCircleQuestionIcon:MessageCircleQuestionMark,MessageCircleQuestionMark,MessageCircleQuestionMarkIcon:MessageCircleQuestionMark,MessageCircleReply,MessageCircleReplyIcon:MessageCircleReply,MessageCircleWarning,MessageCircleWarningIcon:MessageCircleWarning,MessageCircleX,MessageCircleXIcon:MessageCircleX,MessageSquare,MessageSquareCode,MessageSquareCodeIcon:MessageSquareCode,MessageSquareDashed,MessageSquareDashedIcon:MessageSquareDashed,MessageSquareDiff,MessageSquareDiffIcon:MessageSquareDiff,MessageSquareDot,MessageSquareDotIcon:MessageSquareDot,MessageSquareHeart,MessageSquareHeartIcon:MessageSquareHeart,MessageSquareIcon:MessageSquare,MessageSquareLock,MessageSquareLockIcon:MessageSquareLock,MessageSquareMore,MessageSquareMoreIcon:MessageSquareMore,MessageSquareOff,MessageSquareOffIcon:MessageSquareOff,MessageSquarePlus,MessageSquarePlusIcon:MessageSquarePlus,MessageSquareQuote,MessageSquareQuoteIcon:MessageSquareQuote,MessageSquareReply,MessageSquareReplyIcon:MessageSquareReply,MessageSquareShare,MessageSquareShareIcon:MessageSquareShare,MessageSquareText,MessageSquareTextIcon:MessageSquareText,MessageSquareWarning,MessageSquareWarningIcon:MessageSquareWarning,MessageSquareX,MessageSquareXIcon:MessageSquareX,MessagesSquare,MessagesSquareIcon:MessagesSquare,Mic,Mic2:MicVocal,Mic2Icon:MicVocal,MicIcon:Mic,MicOff,MicOffIcon:MicOff,MicVocal,MicVocalIcon:MicVocal,Microchip,MicrochipIcon:Microchip,Microscope,MicroscopeIcon:Microscope,Microwave,MicrowaveIcon:Microwave,Milestone,MilestoneIcon:Milestone,Milk,MilkIcon:Milk,MilkOff,MilkOffIcon:MilkOff,Minimize,Minimize2,Minimize2Icon:Minimize2,MinimizeIcon:Minimize,Minus,MinusCircle:CircleMinus,MinusCircleIcon:CircleMinus,MinusIcon:Minus,MinusSquare:SquareMinus,MinusSquareIcon:SquareMinus,Monitor,MonitorCheck,MonitorCheckIcon:MonitorCheck,MonitorCloud,MonitorCloudIcon:MonitorCloud,MonitorCog,MonitorCogIcon:MonitorCog,MonitorDot,MonitorDotIcon:MonitorDot,MonitorDown,MonitorDownIcon:MonitorDown,MonitorIcon:Monitor,MonitorOff,MonitorOffIcon:MonitorOff,MonitorPause,MonitorPauseIcon:MonitorPause,MonitorPlay,MonitorPlayIcon:MonitorPlay,MonitorSmartphone,MonitorSmartphoneIcon:MonitorSmartphone,MonitorSpeaker,MonitorSpeakerIcon:MonitorSpeaker,MonitorStop,MonitorStopIcon:MonitorStop,MonitorUp,MonitorUpIcon:MonitorUp,MonitorX,MonitorXIcon:MonitorX,Moon,MoonIcon:Moon,MoonStar,MoonStarIcon:MoonStar,MoreHorizontal:Ellipsis,MoreHorizontalIcon:Ellipsis,MoreVertical:EllipsisVertical,MoreVerticalIcon:EllipsisVertical,Motorbike,MotorbikeIcon:Motorbike,Mountain,MountainIcon:Mountain,MountainSnow,MountainSnowIcon:MountainSnow,Mouse,MouseIcon:Mouse,MouseOff,MouseOffIcon:MouseOff,MousePointer,MousePointer2,MousePointer2Icon:MousePointer2,MousePointerBan,MousePointerBanIcon:MousePointerBan,MousePointerClick,MousePointerClickIcon:MousePointerClick,MousePointerIcon:MousePointer,MousePointerSquareDashed:SquareDashedMousePointer,MousePointerSquareDashedIcon:SquareDashedMousePointer,Move,Move3D:Move3d,Move3DIcon:Move3d,Move3d,Move3dIcon:Move3d,MoveDiagonal,MoveDiagonal2,MoveDiagonal2Icon:MoveDiagonal2,MoveDiagonalIcon:MoveDiagonal,MoveDown,MoveDownIcon:MoveDown,MoveDownLeft,MoveDownLeftIcon:MoveDownLeft,MoveDownRight,MoveDownRightIcon:MoveDownRight,MoveHorizontal,MoveHorizontalIcon:MoveHorizontal,MoveIcon:Move,MoveLeft,MoveLeftIcon:MoveLeft,MoveRight,MoveRightIcon:MoveRight,MoveUp,MoveUpIcon:MoveUp,MoveUpLeft,MoveUpLeftIcon:MoveUpLeft,MoveUpRight,MoveUpRightIcon:MoveUpRight,MoveVertical,MoveVerticalIcon:MoveVertical,Music,Music2,Music2Icon:Music2,Music3,Music3Icon:Music3,Music4,Music4Icon:Music4,MusicIcon:Music,Navigation,Navigation2,Navigation2Icon:Navigation2,Navigation2Off,Navigation2OffIcon:Navigation2Off,NavigationIcon:Navigation,NavigationOff,NavigationOffIcon:NavigationOff,Network,NetworkIcon:Network,Newspaper,NewspaperIcon:Newspaper,Nfc,NfcIcon:Nfc,NonBinary,NonBinaryIcon:NonBinary,Notebook,NotebookIcon:Notebook,NotebookPen,NotebookPenIcon:NotebookPen,NotebookTabs,NotebookTabsIcon:NotebookTabs,NotebookText,NotebookTextIcon:NotebookText,NotepadText,NotepadTextDashed,NotepadTextDashedIcon:NotepadTextDashed,NotepadTextIcon:NotepadText,Nut,NutIcon:Nut,NutOff,NutOffIcon:NutOff,Octagon,OctagonAlert,OctagonAlertIcon:OctagonAlert,OctagonIcon:Octagon,OctagonMinus,OctagonMinusIcon:OctagonMinus,OctagonPause,OctagonPauseIcon:OctagonPause,OctagonX,OctagonXIcon:OctagonX,Omega,OmegaIcon:Omega,Option,OptionIcon:Option,Orbit,OrbitIcon:Orbit,Origami,OrigamiIcon:Origami,Outdent:ListIndentDecrease,OutdentIcon:ListIndentDecrease,Package,Package2,Package2Icon:Package2,PackageCheck,PackageCheckIcon:PackageCheck,PackageIcon:Package,PackageMinus,PackageMinusIcon:PackageMinus,PackageOpen,PackageOpenIcon:PackageOpen,PackagePlus,PackagePlusIcon:PackagePlus,PackageSearch,PackageSearchIcon:PackageSearch,PackageX,PackageXIcon:PackageX,PaintBucket,PaintBucketIcon:PaintBucket,PaintRoller,PaintRollerIcon:PaintRoller,Paintbrush,Paintbrush2:PaintbrushVertical,Paintbrush2Icon:PaintbrushVertical,PaintbrushIcon:Paintbrush,PaintbrushVertical,PaintbrushVerticalIcon:PaintbrushVertical,Palette,PaletteIcon:Palette,Palmtree:TreePalm,PalmtreeIcon:TreePalm,Panda,PandaIcon:Panda,PanelBottom,PanelBottomClose,PanelBottomCloseIcon:PanelBottomClose,PanelBottomDashed,PanelBottomDashedIcon:PanelBottomDashed,PanelBottomIcon:PanelBottom,PanelBottomInactive:PanelBottomDashed,PanelBottomInactiveIcon:PanelBottomDashed,PanelBottomOpen,PanelBottomOpenIcon:PanelBottomOpen,PanelLeft,PanelLeftClose,PanelLeftCloseIcon:PanelLeftClose,PanelLeftDashed,PanelLeftDashedIcon:PanelLeftDashed,PanelLeftIcon:PanelLeft,PanelLeftInactive:PanelLeftDashed,PanelLeftInactiveIcon:PanelLeftDashed,PanelLeftOpen,PanelLeftOpenIcon:PanelLeftOpen,PanelLeftRightDashed,PanelLeftRightDashedIcon:PanelLeftRightDashed,PanelRight,PanelRightClose,PanelRightCloseIcon:PanelRightClose,PanelRightDashed,PanelRightDashedIcon:PanelRightDashed,PanelRightIcon:PanelRight,PanelRightInactive:PanelRightDashed,PanelRightInactiveIcon:PanelRightDashed,PanelRightOpen,PanelRightOpenIcon:PanelRightOpen,PanelTop,PanelTopBottomDashed,PanelTopBottomDashedIcon:PanelTopBottomDashed,PanelTopClose,PanelTopCloseIcon:PanelTopClose,PanelTopDashed,PanelTopDashedIcon:PanelTopDashed,PanelTopIcon:PanelTop,PanelTopInactive:PanelTopDashed,PanelTopInactiveIcon:PanelTopDashed,PanelTopOpen,PanelTopOpenIcon:PanelTopOpen,PanelsLeftBottom,PanelsLeftBottomIcon:PanelsLeftBottom,PanelsLeftRight:Columns3,PanelsLeftRightIcon:Columns3,PanelsRightBottom,PanelsRightBottomIcon:PanelsRightBottom,PanelsTopBottom:Rows3,PanelsTopBottomIcon:Rows3,PanelsTopLeft,PanelsTopLeftIcon:PanelsTopLeft,Paperclip,PaperclipIcon:Paperclip,Parentheses,ParenthesesIcon:Parentheses,ParkingCircle:CircleParking,ParkingCircleIcon:CircleParking,ParkingCircleOff:CircleParkingOff,ParkingCircleOffIcon:CircleParkingOff,ParkingMeter,ParkingMeterIcon:ParkingMeter,ParkingSquare:SquareParking,ParkingSquareIcon:SquareParking,ParkingSquareOff:SquareParkingOff,ParkingSquareOffIcon:SquareParkingOff,PartyPopper,PartyPopperIcon:PartyPopper,Pause,PauseCircle:CirclePause,PauseCircleIcon:CirclePause,PauseIcon:Pause,PauseOctagon:OctagonPause,PauseOctagonIcon:OctagonPause,PawPrint,PawPrintIcon:PawPrint,PcCase,PcCaseIcon:PcCase,Pen,PenBox:SquarePen,PenBoxIcon:SquarePen,PenIcon:Pen,PenLine,PenLineIcon:PenLine,PenOff,PenOffIcon:PenOff,PenSquare:SquarePen,PenSquareIcon:SquarePen,PenTool,PenToolIcon:PenTool,Pencil,PencilIcon:Pencil,PencilLine,PencilLineIcon:PencilLine,PencilOff,PencilOffIcon:PencilOff,PencilRuler,PencilRulerIcon:PencilRuler,Pentagon,PentagonIcon:Pentagon,Percent,PercentCircle:CirclePercent,PercentCircleIcon:CirclePercent,PercentDiamond:DiamondPercent,PercentDiamondIcon:DiamondPercent,PercentIcon:Percent,PercentSquare:SquarePercent,PercentSquareIcon:SquarePercent,PersonStanding,PersonStandingIcon:PersonStanding,PhilippinePeso,PhilippinePesoIcon:PhilippinePeso,Phone,PhoneCall,PhoneCallIcon:PhoneCall,PhoneForwarded,PhoneForwardedIcon:PhoneForwarded,PhoneIcon:Phone,PhoneIncoming,PhoneIncomingIcon:PhoneIncoming,PhoneMissed,PhoneMissedIcon:PhoneMissed,PhoneOff,PhoneOffIcon:PhoneOff,PhoneOutgoing,PhoneOutgoingIcon:PhoneOutgoing,Pi,PiIcon:Pi,PiSquare:SquarePi,PiSquareIcon:SquarePi,Piano,PianoIcon:Piano,Pickaxe,PickaxeIcon:Pickaxe,PictureInPicture,PictureInPicture2,PictureInPicture2Icon:PictureInPicture2,PictureInPictureIcon:PictureInPicture,PieChart:ChartPie,PieChartIcon:ChartPie,PiggyBank,PiggyBankIcon:PiggyBank,Pilcrow,PilcrowIcon:Pilcrow,PilcrowLeft,PilcrowLeftIcon:PilcrowLeft,PilcrowRight,PilcrowRightIcon:PilcrowRight,PilcrowSquare:SquarePilcrow,PilcrowSquareIcon:SquarePilcrow,Pill,PillBottle,PillBottleIcon:PillBottle,PillIcon:Pill,Pin,PinIcon:Pin,PinOff,PinOffIcon:PinOff,Pipette,PipetteIcon:Pipette,Pizza,PizzaIcon:Pizza,Plane,PlaneIcon:Plane,PlaneLanding,PlaneLandingIcon:PlaneLanding,PlaneTakeoff,PlaneTakeoffIcon:PlaneTakeoff,Play,PlayCircle:CirclePlay,PlayCircleIcon:CirclePlay,PlayIcon:Play,PlaySquare:SquarePlay,PlaySquareIcon:SquarePlay,Plug,Plug2,Plug2Icon:Plug2,PlugIcon:Plug,PlugZap,PlugZap2:PlugZap,PlugZap2Icon:PlugZap,PlugZapIcon:PlugZap,Plus,PlusCircle:CirclePlus,PlusCircleIcon:CirclePlus,PlusIcon:Plus,PlusSquare:SquarePlus,PlusSquareIcon:SquarePlus,Pocket,PocketIcon:Pocket,PocketKnife,PocketKnifeIcon:PocketKnife,Podcast,PodcastIcon:Podcast,Pointer,PointerIcon:Pointer,PointerOff,PointerOffIcon:PointerOff,Popcorn,PopcornIcon:Popcorn,Popsicle,PopsicleIcon:Popsicle,PoundSterling,PoundSterlingIcon:PoundSterling,Power,PowerCircle:CirclePower,PowerCircleIcon:CirclePower,PowerIcon:Power,PowerOff,PowerOffIcon:PowerOff,PowerSquare:SquarePower,PowerSquareIcon:SquarePower,Presentation,PresentationIcon:Presentation,Printer,PrinterCheck,PrinterCheckIcon:PrinterCheck,PrinterIcon:Printer,Projector,ProjectorIcon:Projector,Proportions,ProportionsIcon:Proportions,Puzzle,PuzzleIcon:Puzzle,Pyramid,PyramidIcon:Pyramid,QrCode,QrCodeIcon:QrCode,Quote,QuoteIcon:Quote,Rabbit,RabbitIcon:Rabbit,Radar,RadarIcon:Radar,Radiation,RadiationIcon:Radiation,Radical,RadicalIcon:Radical,Radio,RadioIcon:Radio,RadioReceiver,RadioReceiverIcon:RadioReceiver,RadioTower,RadioTowerIcon:RadioTower,Radius,RadiusIcon:Radius,RailSymbol,RailSymbolIcon:RailSymbol,Rainbow,RainbowIcon:Rainbow,Rat,RatIcon:Rat,Ratio,RatioIcon:Ratio,Receipt,ReceiptCent,ReceiptCentIcon:ReceiptCent,ReceiptEuro,ReceiptEuroIcon:ReceiptEuro,ReceiptIcon:Receipt,ReceiptIndianRupee,ReceiptIndianRupeeIcon:ReceiptIndianRupee,ReceiptJapaneseYen,ReceiptJapaneseYenIcon:ReceiptJapaneseYen,ReceiptPoundSterling,ReceiptPoundSterlingIcon:ReceiptPoundSterling,ReceiptRussianRuble,ReceiptRussianRubleIcon:ReceiptRussianRuble,ReceiptSwissFranc,ReceiptSwissFrancIcon:ReceiptSwissFranc,ReceiptText,ReceiptTextIcon:ReceiptText,ReceiptTurkishLira,ReceiptTurkishLiraIcon:ReceiptTurkishLira,RectangleCircle,RectangleCircleIcon:RectangleCircle,RectangleEllipsis,RectangleEllipsisIcon:RectangleEllipsis,RectangleGoggles,RectangleGogglesIcon:RectangleGoggles,RectangleHorizontal,RectangleHorizontalIcon:RectangleHorizontal,RectangleVertical,RectangleVerticalIcon:RectangleVertical,Recycle,RecycleIcon:Recycle,Redo,Redo2,Redo2Icon:Redo2,RedoDot,RedoDotIcon:RedoDot,RedoIcon:Redo,RefreshCcw,RefreshCcwDot,RefreshCcwDotIcon:RefreshCcwDot,RefreshCcwIcon:RefreshCcw,RefreshCw,RefreshCwIcon:RefreshCw,RefreshCwOff,RefreshCwOffIcon:RefreshCwOff,Refrigerator,RefrigeratorIcon:Refrigerator,Regex,RegexIcon:Regex,RemoveFormatting,RemoveFormattingIcon:RemoveFormatting,Repeat,Repeat1,Repeat1Icon:Repeat1,Repeat2,Repeat2Icon:Repeat2,RepeatIcon:Repeat,Replace,ReplaceAll,ReplaceAllIcon:ReplaceAll,ReplaceIcon:Replace,Reply,ReplyAll,ReplyAllIcon:ReplyAll,ReplyIcon:Reply,Rewind,RewindIcon:Rewind,Ribbon,RibbonIcon:Ribbon,Rocket,RocketIcon:Rocket,RockingChair,RockingChairIcon:RockingChair,RollerCoaster,RollerCoasterIcon:RollerCoaster,Rose,RoseIcon:Rose,Rotate3D:Rotate3d,Rotate3DIcon:Rotate3d,Rotate3d,Rotate3dIcon:Rotate3d,RotateCcw,RotateCcwIcon:RotateCcw,RotateCcwKey,RotateCcwKeyIcon:RotateCcwKey,RotateCcwSquare,RotateCcwSquareIcon:RotateCcwSquare,RotateCw,RotateCwIcon:RotateCw,RotateCwSquare,RotateCwSquareIcon:RotateCwSquare,Route,RouteIcon:Route,RouteOff,RouteOffIcon:RouteOff,Router,RouterIcon:Router,Rows:Rows2,Rows2,Rows2Icon:Rows2,Rows3,Rows3Icon:Rows3,Rows4,Rows4Icon:Rows4,RowsIcon:Rows2,Rss,RssIcon:Rss,Ruler,RulerDimensionLine,RulerDimensionLineIcon:RulerDimensionLine,RulerIcon:Ruler,RussianRuble,RussianRubleIcon:RussianRuble,Sailboat,SailboatIcon:Sailboat,Salad,SaladIcon:Salad,Sandwich,SandwichIcon:Sandwich,Satellite,SatelliteDish,SatelliteDishIcon:SatelliteDish,SatelliteIcon:Satellite,SaudiRiyal,SaudiRiyalIcon:SaudiRiyal,Save,SaveAll,SaveAllIcon:SaveAll,SaveIcon:Save,SaveOff,SaveOffIcon:SaveOff,Scale,Scale3D:Scale3d,Scale3DIcon:Scale3d,Scale3d,Scale3dIcon:Scale3d,ScaleIcon:Scale,Scaling,ScalingIcon:Scaling,Scan,ScanBarcode,ScanBarcodeIcon:ScanBarcode,ScanEye,ScanEyeIcon:ScanEye,ScanFace,ScanFaceIcon:ScanFace,ScanHeart,ScanHeartIcon:ScanHeart,ScanIcon:Scan,ScanLine,ScanLineIcon:ScanLine,ScanQrCode,ScanQrCodeIcon:ScanQrCode,ScanSearch,ScanSearchIcon:ScanSearch,ScanText,ScanTextIcon:ScanText,ScatterChart:ChartScatter,ScatterChartIcon:ChartScatter,School,School2:University,School2Icon:University,SchoolIcon:School,Scissors,ScissorsIcon:Scissors,ScissorsLineDashed,ScissorsLineDashedIcon:ScissorsLineDashed,ScissorsSquare:SquareScissors,ScissorsSquareDashedBottom:SquareBottomDashedScissors,ScissorsSquareDashedBottomIcon:SquareBottomDashedScissors,ScissorsSquareIcon:SquareScissors,ScreenShare,ScreenShareIcon:ScreenShare,ScreenShareOff,ScreenShareOffIcon:ScreenShareOff,Scroll,ScrollIcon:Scroll,ScrollText,ScrollTextIcon:ScrollText,Search,SearchCheck,SearchCheckIcon:SearchCheck,SearchCode,SearchCodeIcon:SearchCode,SearchIcon:Search,SearchSlash,SearchSlashIcon:SearchSlash,SearchX,SearchXIcon:SearchX,Section,SectionIcon:Section,Send,SendHorizonal:SendHorizontal,SendHorizonalIcon:SendHorizontal,SendHorizontal,SendHorizontalIcon:SendHorizontal,SendIcon:Send,SendToBack,SendToBackIcon:SendToBack,SeparatorHorizontal,SeparatorHorizontalIcon:SeparatorHorizontal,SeparatorVertical,SeparatorVerticalIcon:SeparatorVertical,Server,ServerCog,ServerCogIcon:ServerCog,ServerCrash,ServerCrashIcon:ServerCrash,ServerIcon:Server,ServerOff,ServerOffIcon:ServerOff,Settings,Settings2,Settings2Icon:Settings2,SettingsIcon:Settings,Shapes,ShapesIcon:Shapes,Share,Share2,Share2Icon:Share2,ShareIcon:Share,Sheet,SheetIcon:Sheet,Shell,ShellIcon:Shell,Shield,ShieldAlert,ShieldAlertIcon:ShieldAlert,ShieldBan,ShieldBanIcon:ShieldBan,ShieldCheck,ShieldCheckIcon:ShieldCheck,ShieldClose:ShieldX,ShieldCloseIcon:ShieldX,ShieldEllipsis,ShieldEllipsisIcon:ShieldEllipsis,ShieldHalf,ShieldHalfIcon:ShieldHalf,ShieldIcon:Shield,ShieldMinus,ShieldMinusIcon:ShieldMinus,ShieldOff,ShieldOffIcon:ShieldOff,ShieldPlus,ShieldPlusIcon:ShieldPlus,ShieldQuestion:ShieldQuestionMark,ShieldQuestionIcon:ShieldQuestionMark,ShieldQuestionMark,ShieldQuestionMarkIcon:ShieldQuestionMark,ShieldUser,ShieldUserIcon:ShieldUser,ShieldX,ShieldXIcon:ShieldX,Ship,ShipIcon:Ship,ShipWheel,ShipWheelIcon:ShipWheel,Shirt,ShirtIcon:Shirt,ShoppingBag,ShoppingBagIcon:ShoppingBag,ShoppingBasket,ShoppingBasketIcon:ShoppingBasket,ShoppingCart,ShoppingCartIcon:ShoppingCart,Shovel,ShovelIcon:Shovel,ShowerHead,ShowerHeadIcon:ShowerHead,Shredder,ShredderIcon:Shredder,Shrimp,ShrimpIcon:Shrimp,Shrink,ShrinkIcon:Shrink,Shrub,ShrubIcon:Shrub,Shuffle,ShuffleIcon:Shuffle,Sidebar:PanelLeft,SidebarClose:PanelLeftClose,SidebarCloseIcon:PanelLeftClose,SidebarIcon:PanelLeft,SidebarOpen:PanelLeftOpen,SidebarOpenIcon:PanelLeftOpen,Sigma,SigmaIcon:Sigma,SigmaSquare:SquareSigma,SigmaSquareIcon:SquareSigma,Signal,SignalHigh,SignalHighIcon:SignalHigh,SignalIcon:Signal,SignalLow,SignalLowIcon:SignalLow,SignalMedium,SignalMediumIcon:SignalMedium,SignalZero,SignalZeroIcon:SignalZero,Signature,SignatureIcon:Signature,Signpost,SignpostBig,SignpostBigIcon:SignpostBig,SignpostIcon:Signpost,Siren,SirenIcon:Siren,SkipBack,SkipBackIcon:SkipBack,SkipForward,SkipForwardIcon:SkipForward,Skull,SkullIcon:Skull,Slack,SlackIcon:Slack,Slash,SlashIcon:Slash,SlashSquare:SquareSlash,SlashSquareIcon:SquareSlash,Slice,SliceIcon:Slice,Sliders:SlidersVertical,SlidersHorizontal,SlidersHorizontalIcon:SlidersHorizontal,SlidersIcon:SlidersVertical,SlidersVertical,SlidersVerticalIcon:SlidersVertical,Smartphone,SmartphoneCharging,SmartphoneChargingIcon:SmartphoneCharging,SmartphoneIcon:Smartphone,SmartphoneNfc,SmartphoneNfcIcon:SmartphoneNfc,Smile,SmileIcon:Smile,SmilePlus,SmilePlusIcon:SmilePlus,Snail,SnailIcon:Snail,Snowflake,SnowflakeIcon:Snowflake,SoapDispenserDroplet,SoapDispenserDropletIcon:SoapDispenserDroplet,Sofa,SofaIcon:Sofa,SortAsc:ArrowUpNarrowWide,SortAscIcon:ArrowUpNarrowWide,SortDesc:ArrowDownWideNarrow,SortDescIcon:ArrowDownWideNarrow,Soup,SoupIcon:Soup,Space,SpaceIcon:Space,Spade,SpadeIcon:Spade,Sparkle,SparkleIcon:Sparkle,Sparkles,SparklesIcon:Sparkles,Speaker,SpeakerIcon:Speaker,Speech,SpeechIcon:Speech,SpellCheck,SpellCheck2,SpellCheck2Icon:SpellCheck2,SpellCheckIcon:SpellCheck,Spline,SplineIcon:Spline,SplinePointer,SplinePointerIcon:SplinePointer,Split,SplitIcon:Split,SplitSquareHorizontal:SquareSplitHorizontal,SplitSquareHorizontalIcon:SquareSplitHorizontal,SplitSquareVertical:SquareSplitVertical,SplitSquareVerticalIcon:SquareSplitVertical,Spool,SpoolIcon:Spool,Spotlight,SpotlightIcon:Spotlight,SprayCan,SprayCanIcon:SprayCan,Sprout,SproutIcon:Sprout,Square,SquareActivity,SquareActivityIcon:SquareActivity,SquareArrowDown,SquareArrowDownIcon:SquareArrowDown,SquareArrowDownLeft,SquareArrowDownLeftIcon:SquareArrowDownLeft,SquareArrowDownRight,SquareArrowDownRightIcon:SquareArrowDownRight,SquareArrowLeft,SquareArrowLeftIcon:SquareArrowLeft,SquareArrowOutDownLeft,SquareArrowOutDownLeftIcon:SquareArrowOutDownLeft,SquareArrowOutDownRight,SquareArrowOutDownRightIcon:SquareArrowOutDownRight,SquareArrowOutUpLeft,SquareArrowOutUpLeftIcon:SquareArrowOutUpLeft,SquareArrowOutUpRight,SquareArrowOutUpRightIcon:SquareArrowOutUpRight,SquareArrowRight,SquareArrowRightIcon:SquareArrowRight,SquareArrowUp,SquareArrowUpIcon:SquareArrowUp,SquareArrowUpLeft,SquareArrowUpLeftIcon:SquareArrowUpLeft,SquareArrowUpRight,SquareArrowUpRightIcon:SquareArrowUpRight,SquareAsterisk,SquareAsteriskIcon:SquareAsterisk,SquareBottomDashedScissors,SquareBottomDashedScissorsIcon:SquareBottomDashedScissors,SquareChartGantt,SquareChartGanttIcon:SquareChartGantt,SquareCheck,SquareCheckBig,SquareCheckBigIcon:SquareCheckBig,SquareCheckIcon:SquareCheck,SquareChevronDown,SquareChevronDownIcon:SquareChevronDown,SquareChevronLeft,SquareChevronLeftIcon:SquareChevronLeft,SquareChevronRight,SquareChevronRightIcon:SquareChevronRight,SquareChevronUp,SquareChevronUpIcon:SquareChevronUp,SquareCode,SquareCodeIcon:SquareCode,SquareDashed,SquareDashedBottom,SquareDashedBottomCode,SquareDashedBottomCodeIcon:SquareDashedBottomCode,SquareDashedBottomIcon:SquareDashedBottom,SquareDashedIcon:SquareDashed,SquareDashedKanban,SquareDashedKanbanIcon:SquareDashedKanban,SquareDashedMousePointer,SquareDashedMousePointerIcon:SquareDashedMousePointer,SquareDashedTopSolid,SquareDashedTopSolidIcon:SquareDashedTopSolid,SquareDivide,SquareDivideIcon:SquareDivide,SquareDot,SquareDotIcon:SquareDot,SquareEqual,SquareEqualIcon:SquareEqual,SquareFunction,SquareFunctionIcon:SquareFunction,SquareGanttChart:SquareChartGantt,SquareGanttChartIcon:SquareChartGantt,SquareIcon:Square,SquareKanban,SquareKanbanIcon:SquareKanban,SquareLibrary,SquareLibraryIcon:SquareLibrary,SquareM,SquareMIcon:SquareM,SquareMenu,SquareMenuIcon:SquareMenu,SquareMinus,SquareMinusIcon:SquareMinus,SquareMousePointer,SquareMousePointerIcon:SquareMousePointer,SquareParking,SquareParkingIcon:SquareParking,SquareParkingOff,SquareParkingOffIcon:SquareParkingOff,SquarePause,SquarePauseIcon:SquarePause,SquarePen,SquarePenIcon:SquarePen,SquarePercent,SquarePercentIcon:SquarePercent,SquarePi,SquarePiIcon:SquarePi,SquarePilcrow,SquarePilcrowIcon:SquarePilcrow,SquarePlay,SquarePlayIcon:SquarePlay,SquarePlus,SquarePlusIcon:SquarePlus,SquarePower,SquarePowerIcon:SquarePower,SquareRadical,SquareRadicalIcon:SquareRadical,SquareRoundCorner,SquareRoundCornerIcon:SquareRoundCorner,SquareScissors,SquareScissorsIcon:SquareScissors,SquareSigma,SquareSigmaIcon:SquareSigma,SquareSlash,SquareSlashIcon:SquareSlash,SquareSplitHorizontal,SquareSplitHorizontalIcon:SquareSplitHorizontal,SquareSplitVertical,SquareSplitVerticalIcon:SquareSplitVertical,SquareSquare,SquareSquareIcon:SquareSquare,SquareStack,SquareStackIcon:SquareStack,SquareStar,SquareStarIcon:SquareStar,SquareStop,SquareStopIcon:SquareStop,SquareTerminal,SquareTerminalIcon:SquareTerminal,SquareUser,SquareUserIcon:SquareUser,SquareUserRound,SquareUserRoundIcon:SquareUserRound,SquareX,SquareXIcon:SquareX,SquaresExclude,SquaresExcludeIcon:SquaresExclude,SquaresIntersect,SquaresIntersectIcon:SquaresIntersect,SquaresSubtract,SquaresSubtractIcon:SquaresSubtract,SquaresUnite,SquaresUniteIcon:SquaresUnite,Squircle,SquircleDashed,SquircleDashedIcon:SquircleDashed,SquircleIcon:Squircle,Squirrel,SquirrelIcon:Squirrel,Stamp,StampIcon:Stamp,Star,StarHalf,StarHalfIcon:StarHalf,StarIcon:Star,StarOff,StarOffIcon:StarOff,Stars:Sparkles,StarsIcon:Sparkles,StepBack,StepBackIcon:StepBack,StepForward,StepForwardIcon:StepForward,Stethoscope,StethoscopeIcon:Stethoscope,Sticker,StickerIcon:Sticker,StickyNote,StickyNoteIcon:StickyNote,StopCircle:CircleStop,StopCircleIcon:CircleStop,Store,StoreIcon:Store,StretchHorizontal,StretchHorizontalIcon:StretchHorizontal,StretchVertical,StretchVerticalIcon:StretchVertical,Strikethrough,StrikethroughIcon:Strikethrough,Subscript,SubscriptIcon:Subscript,Subtitles:Captions,SubtitlesIcon:Captions,Sun,SunDim,SunDimIcon:SunDim,SunIcon:Sun,SunMedium,SunMediumIcon:SunMedium,SunMoon,SunMoonIcon:SunMoon,SunSnow,SunSnowIcon:SunSnow,Sunrise,SunriseIcon:Sunrise,Sunset,SunsetIcon:Sunset,Superscript,SuperscriptIcon:Superscript,SwatchBook,SwatchBookIcon:SwatchBook,SwissFranc,SwissFrancIcon:SwissFranc,SwitchCamera,SwitchCameraIcon:SwitchCamera,Sword,SwordIcon:Sword,Swords,SwordsIcon:Swords,Syringe,SyringeIcon:Syringe,Table,Table2,Table2Icon:Table2,TableCellsMerge,TableCellsMergeIcon:TableCellsMerge,TableCellsSplit,TableCellsSplitIcon:TableCellsSplit,TableColumnsSplit,TableColumnsSplitIcon:TableColumnsSplit,TableConfig:Columns3Cog,TableConfigIcon:Columns3Cog,TableIcon:Table,TableOfContents,TableOfContentsIcon:TableOfContents,TableProperties,TablePropertiesIcon:TableProperties,TableRowsSplit,TableRowsSplitIcon:TableRowsSplit,Tablet,TabletIcon:Tablet,TabletSmartphone,TabletSmartphoneIcon:TabletSmartphone,Tablets,TabletsIcon:Tablets,Tag,TagIcon:Tag,Tags,TagsIcon:Tags,Tally1,Tally1Icon:Tally1,Tally2,Tally2Icon:Tally2,Tally3,Tally3Icon:Tally3,Tally4,Tally4Icon:Tally4,Tally5,Tally5Icon:Tally5,Tangent,TangentIcon:Tangent,Target,TargetIcon:Target,Telescope,TelescopeIcon:Telescope,Tent,TentIcon:Tent,TentTree,TentTreeIcon:TentTree,Terminal,TerminalIcon:Terminal,TerminalSquare:SquareTerminal,TerminalSquareIcon:SquareTerminal,TestTube,TestTube2:TestTubeDiagonal,TestTube2Icon:TestTubeDiagonal,TestTubeDiagonal,TestTubeDiagonalIcon:TestTubeDiagonal,TestTubeIcon:TestTube,TestTubes,TestTubesIcon:TestTubes,Text:TextAlignStart,TextAlignCenter,TextAlignCenterIcon:TextAlignCenter,TextAlignEnd,TextAlignEndIcon:TextAlignEnd,TextAlignJustify,TextAlignJustifyIcon:TextAlignJustify,TextAlignStart,TextAlignStartIcon:TextAlignStart,TextCursor,TextCursorIcon:TextCursor,TextCursorInput,TextCursorInputIcon:TextCursorInput,TextIcon:TextAlignStart,TextInitial,TextInitialIcon:TextInitial,TextQuote,TextQuoteIcon:TextQuote,TextSearch,TextSearchIcon:TextSearch,TextSelect,TextSelectIcon:TextSelect,TextSelection:TextSelect,TextSelectionIcon:TextSelect,TextWrap,TextWrapIcon:TextWrap,Theater,TheaterIcon:Theater,Thermometer,ThermometerIcon:Thermometer,ThermometerSnowflake,ThermometerSnowflakeIcon:ThermometerSnowflake,ThermometerSun,ThermometerSunIcon:ThermometerSun,ThumbsDown,ThumbsDownIcon:ThumbsDown,ThumbsUp,ThumbsUpIcon:ThumbsUp,Ticket,TicketCheck,TicketCheckIcon:TicketCheck,TicketIcon:Ticket,TicketMinus,TicketMinusIcon:TicketMinus,TicketPercent,TicketPercentIcon:TicketPercent,TicketPlus,TicketPlusIcon:TicketPlus,TicketSlash,TicketSlashIcon:TicketSlash,TicketX,TicketXIcon:TicketX,Tickets,TicketsIcon:Tickets,TicketsPlane,TicketsPlaneIcon:TicketsPlane,Timer,TimerIcon:Timer,TimerOff,TimerOffIcon:TimerOff,TimerReset,TimerResetIcon:TimerReset,ToggleLeft,ToggleLeftIcon:ToggleLeft,ToggleRight,ToggleRightIcon:ToggleRight,Toilet,ToiletIcon:Toilet,ToolCase,ToolCaseIcon:ToolCase,Tornado,TornadoIcon:Tornado,Torus,TorusIcon:Torus,Touchpad,TouchpadIcon:Touchpad,TouchpadOff,TouchpadOffIcon:TouchpadOff,TowerControl,TowerControlIcon:TowerControl,ToyBrick,ToyBrickIcon:ToyBrick,Tractor,TractorIcon:Tractor,TrafficCone,TrafficConeIcon:TrafficCone,Train:TramFront,TrainFront,TrainFrontIcon:TrainFront,TrainFrontTunnel,TrainFrontTunnelIcon:TrainFrontTunnel,TrainIcon:TramFront,TrainTrack,TrainTrackIcon:TrainTrack,TramFront,TramFrontIcon:TramFront,Transgender,TransgenderIcon:Transgender,Trash,Trash2,Trash2Icon:Trash2,TrashIcon:Trash,TreeDeciduous,TreeDeciduousIcon:TreeDeciduous,TreePalm,TreePalmIcon:TreePalm,TreePine,TreePineIcon:TreePine,Trees,TreesIcon:Trees,Trello,TrelloIcon:Trello,TrendingDown,TrendingDownIcon:TrendingDown,TrendingUp,TrendingUpDown,TrendingUpDownIcon:TrendingUpDown,TrendingUpIcon:TrendingUp,Triangle,TriangleAlert,TriangleAlertIcon:TriangleAlert,TriangleDashed,TriangleDashedIcon:TriangleDashed,TriangleIcon:Triangle,TriangleRight,TriangleRightIcon:TriangleRight,Trophy,TrophyIcon:Trophy,Truck,TruckElectric,TruckElectricIcon:TruckElectric,TruckIcon:Truck,TurkishLira,TurkishLiraIcon:TurkishLira,Turntable,TurntableIcon:Turntable,Turtle,TurtleIcon:Turtle,Tv,Tv2:TvMinimal,Tv2Icon:TvMinimal,TvIcon:Tv,TvMinimal,TvMinimalIcon:TvMinimal,TvMinimalPlay,TvMinimalPlayIcon:TvMinimalPlay,Twitch,TwitchIcon:Twitch,Twitter,TwitterIcon:Twitter,Type,TypeIcon:Type,TypeOutline,TypeOutlineIcon:TypeOutline,Umbrella,UmbrellaIcon:Umbrella,UmbrellaOff,UmbrellaOffIcon:UmbrellaOff,Underline,UnderlineIcon:Underline,Undo,Undo2,Undo2Icon:Undo2,UndoDot,UndoDotIcon:UndoDot,UndoIcon:Undo,UnfoldHorizontal,UnfoldHorizontalIcon:UnfoldHorizontal,UnfoldVertical,UnfoldVerticalIcon:UnfoldVertical,Ungroup,UngroupIcon:Ungroup,University,UniversityIcon:University,Unlink,Unlink2,Unlink2Icon:Unlink2,UnlinkIcon:Unlink,Unlock:LockOpen,UnlockIcon:LockOpen,UnlockKeyhole:LockKeyholeOpen,UnlockKeyholeIcon:LockKeyholeOpen,Unplug,UnplugIcon:Unplug,Upload,UploadCloud:CloudUpload,UploadCloudIcon:CloudUpload,UploadIcon:Upload,Usb,UsbIcon:Usb,User,User2:UserRound,User2Icon:UserRound,UserCheck,UserCheck2:UserRoundCheck,UserCheck2Icon:UserRoundCheck,UserCheckIcon:UserCheck,UserCircle:CircleUser,UserCircle2:CircleUserRound,UserCircle2Icon:CircleUserRound,UserCircleIcon:CircleUser,UserCog,UserCog2:UserRoundCog,UserCog2Icon:UserRoundCog,UserCogIcon:UserCog,UserIcon:User,UserLock,UserLockIcon:UserLock,UserMinus,UserMinus2:UserRoundMinus,UserMinus2Icon:UserRoundMinus,UserMinusIcon:UserMinus,UserPen,UserPenIcon:UserPen,UserPlus,UserPlus2:UserRoundPlus,UserPlus2Icon:UserRoundPlus,UserPlusIcon:UserPlus,UserRound,UserRoundCheck,UserRoundCheckIcon:UserRoundCheck,UserRoundCog,UserRoundCogIcon:UserRoundCog,UserRoundIcon:UserRound,UserRoundMinus,UserRoundMinusIcon:UserRoundMinus,UserRoundPen,UserRoundPenIcon:UserRoundPen,UserRoundPlus,UserRoundPlusIcon:UserRoundPlus,UserRoundSearch,UserRoundSearchIcon:UserRoundSearch,UserRoundX,UserRoundXIcon:UserRoundX,UserSearch,UserSearchIcon:UserSearch,UserSquare:SquareUser,UserSquare2:SquareUserRound,UserSquare2Icon:SquareUserRound,UserSquareIcon:SquareUser,UserStar,UserStarIcon:UserStar,UserX,UserX2:UserRoundX,UserX2Icon:UserRoundX,UserXIcon:UserX,Users,Users2:UsersRound,Users2Icon:UsersRound,UsersIcon:Users,UsersRound,UsersRoundIcon:UsersRound,Utensils,UtensilsCrossed,UtensilsCrossedIcon:UtensilsCrossed,UtensilsIcon:Utensils,UtilityPole,UtilityPoleIcon:UtilityPole,Variable,VariableIcon:Variable,Vault,VaultIcon:Vault,VectorSquare,VectorSquareIcon:VectorSquare,Vegan,VeganIcon:Vegan,VenetianMask,VenetianMaskIcon:VenetianMask,Venus,VenusAndMars,VenusAndMarsIcon:VenusAndMars,VenusIcon:Venus,Verified:BadgeCheck,VerifiedIcon:BadgeCheck,Vibrate,VibrateIcon:Vibrate,VibrateOff,VibrateOffIcon:VibrateOff,Video,VideoIcon:Video,VideoOff,VideoOffIcon:VideoOff,Videotape,VideotapeIcon:Videotape,View,ViewIcon:View,Voicemail,VoicemailIcon:Voicemail,Volleyball,VolleyballIcon:Volleyball,Volume,Volume1,Volume1Icon:Volume1,Volume2,Volume2Icon:Volume2,VolumeIcon:Volume,VolumeOff,VolumeOffIcon:VolumeOff,VolumeX,VolumeXIcon:VolumeX,Vote,VoteIcon:Vote,Wallet,Wallet2:WalletMinimal,Wallet2Icon:WalletMinimal,WalletCards,WalletCardsIcon:WalletCards,WalletIcon:Wallet,WalletMinimal,WalletMinimalIcon:WalletMinimal,Wallpaper,WallpaperIcon:Wallpaper,Wand,Wand2:WandSparkles,Wand2Icon:WandSparkles,WandIcon:Wand,WandSparkles,WandSparklesIcon:WandSparkles,Warehouse,WarehouseIcon:Warehouse,WashingMachine,WashingMachineIcon:WashingMachine,Watch,WatchIcon:Watch,Waves,WavesIcon:Waves,WavesLadder,WavesLadderIcon:WavesLadder,Waypoints,WaypointsIcon:Waypoints,Webcam,WebcamIcon:Webcam,Webhook,WebhookIcon:Webhook,WebhookOff,WebhookOffIcon:WebhookOff,Weight,WeightIcon:Weight,Wheat,WheatIcon:Wheat,WheatOff,WheatOffIcon:WheatOff,WholeWord,WholeWordIcon:WholeWord,Wifi,WifiCog,WifiCogIcon:WifiCog,WifiHigh,WifiHighIcon:WifiHigh,WifiIcon:Wifi,WifiLow,WifiLowIcon:WifiLow,WifiOff,WifiOffIcon:WifiOff,WifiPen,WifiPenIcon:WifiPen,WifiSync,WifiSyncIcon:WifiSync,WifiZero,WifiZeroIcon:WifiZero,Wind,WindArrowDown,WindArrowDownIcon:WindArrowDown,WindIcon:Wind,Wine,WineIcon:Wine,WineOff,WineOffIcon:WineOff,Workflow,WorkflowIcon:Workflow,Worm,WormIcon:Worm,WrapText:TextWrap,WrapTextIcon:TextWrap,Wrench,WrenchIcon:Wrench,X,XCircle:CircleX,XCircleIcon:CircleX,XIcon:X,XOctagon:OctagonX,XOctagonIcon:OctagonX,XSquare:SquareX,XSquareIcon:SquareX,Youtube,YoutubeIcon:Youtube,Zap,ZapIcon:Zap,ZapOff,ZapOffIcon:ZapOff,ZoomIn,ZoomInIcon:ZoomIn,ZoomOut,ZoomOutIcon:ZoomOut,createLucideIcon,icons:index$1},Symbol.toStringTag,{value:"Module"}));function ok$1(){}function unreachable(){}function stringify$1(e,t){const o={};return(e[e.length-1]===""?[...e,""]:e).join((o.padRight?" ":"")+","+(o.padLeft===!1?"":" ")).trim()}const nameRe=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,nameReJsx=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,emptyOptions$2={};function name(e,t){return(emptyOptions$2.jsx?nameReJsx:nameRe).test(e)}const re=/[ \t\n\f\r]/g;function whitespace(e){return typeof e=="object"?e.type==="text"?empty$1(e.value):!1:empty$1(e)}function empty$1(e){return e.replace(re,"")===""}class Schema{constructor(t,o,n){this.normal=o,this.property=t,n&&(this.space=n)}}Schema.prototype.normal={};Schema.prototype.property={};Schema.prototype.space=void 0;function merge(e,t){const o={},n={};for(const a of e)Object.assign(o,a.property),Object.assign(n,a.normal);return new Schema(o,n,t)}function normalize$1(e){return e.toLowerCase()}class Info{constructor(t,o){this.attribute=o,this.property=t}}Info.prototype.attribute="";Info.prototype.booleanish=!1;Info.prototype.boolean=!1;Info.prototype.commaOrSpaceSeparated=!1;Info.prototype.commaSeparated=!1;Info.prototype.defined=!1;Info.prototype.mustUseProperty=!1;Info.prototype.number=!1;Info.prototype.overloadedBoolean=!1;Info.prototype.property="";Info.prototype.spaceSeparated=!1;Info.prototype.space=void 0;let powers=0;const boolean=increment(),booleanish=increment(),overloadedBoolean=increment(),number=increment(),spaceSeparated=increment(),commaSeparated=increment(),commaOrSpaceSeparated=increment();function increment(){return 2**++powers}const types=Object.freeze(Object.defineProperty({__proto__:null,boolean,booleanish,commaOrSpaceSeparated,commaSeparated,number,overloadedBoolean,spaceSeparated},Symbol.toStringTag,{value:"Module"})),checks=Object.keys(types);class DefinedInfo extends Info{constructor(t,o,n,a){let i=-1;if(super(t,o),mark(this,"space",a),typeof n=="number")for(;++i<checks.length;){const c=checks[i];mark(this,checks[i],(n&types[c])===types[c])}}}DefinedInfo.prototype.defined=!0;function mark(e,t,o){o&&(e[t]=o)}function create$1(e){const t={},o={};for(const[n,a]of Object.entries(e.properties)){const i=new DefinedInfo(n,e.transform(e.attributes||{},n),a,e.space);e.mustUseProperty&&e.mustUseProperty.includes(n)&&(i.mustUseProperty=!0),t[n]=i,o[normalize$1(n)]=n,o[normalize$1(i.attribute)]=n}return new Schema(t,o,e.space)}const aria=create$1({properties:{ariaActiveDescendant:null,ariaAtomic:booleanish,ariaAutoComplete:null,ariaBusy:booleanish,ariaChecked:booleanish,ariaColCount:number,ariaColIndex:number,ariaColSpan:number,ariaControls:spaceSeparated,ariaCurrent:null,ariaDescribedBy:spaceSeparated,ariaDetails:null,ariaDisabled:booleanish,ariaDropEffect:spaceSeparated,ariaErrorMessage:null,ariaExpanded:booleanish,ariaFlowTo:spaceSeparated,ariaGrabbed:booleanish,ariaHasPopup:null,ariaHidden:booleanish,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:spaceSeparated,ariaLevel:number,ariaLive:null,ariaModal:booleanish,ariaMultiLine:booleanish,ariaMultiSelectable:booleanish,ariaOrientation:null,ariaOwns:spaceSeparated,ariaPlaceholder:null,ariaPosInSet:number,ariaPressed:booleanish,ariaReadOnly:booleanish,ariaRelevant:null,ariaRequired:booleanish,ariaRoleDescription:spaceSeparated,ariaRowCount:number,ariaRowIndex:number,ariaRowSpan:number,ariaSelected:booleanish,ariaSetSize:number,ariaSort:null,ariaValueMax:number,ariaValueMin:number,ariaValueNow:number,ariaValueText:null,role:null},transform(e,t){return t==="role"?t:"aria-"+t.slice(4).toLowerCase()}});function caseSensitiveTransform(e,t){return t in e?e[t]:t}function caseInsensitiveTransform(e,t){return caseSensitiveTransform(e,t.toLowerCase())}const html$2=create$1({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:commaSeparated,acceptCharset:spaceSeparated,accessKey:spaceSeparated,action:null,allow:null,allowFullScreen:boolean,allowPaymentRequest:boolean,allowUserMedia:boolean,alpha:boolean,alt:null,as:null,async:boolean,autoCapitalize:null,autoComplete:spaceSeparated,autoFocus:boolean,autoPlay:boolean,blocking:spaceSeparated,capture:null,charSet:null,checked:boolean,cite:null,className:spaceSeparated,closedBy:null,colorSpace:null,cols:number,colSpan:number,command:null,commandFor:null,content:null,contentEditable:booleanish,controls:boolean,controlsList:spaceSeparated,coords:number|commaSeparated,crossOrigin:null,data:null,dateTime:null,decoding:null,default:boolean,defer:boolean,dir:null,dirName:null,disabled:boolean,download:overloadedBoolean,draggable:booleanish,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:boolean,formTarget:null,headers:spaceSeparated,height:number,hidden:overloadedBoolean,high:number,href:null,hrefLang:null,htmlFor:spaceSeparated,httpEquiv:spaceSeparated,id:null,imageSizes:null,imageSrcSet:null,inert:boolean,inputMode:null,integrity:null,is:null,isMap:boolean,itemId:null,itemProp:spaceSeparated,itemRef:spaceSeparated,itemScope:boolean,itemType:spaceSeparated,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:boolean,low:number,manifest:null,max:null,maxLength:number,media:null,method:null,min:null,minLength:number,multiple:boolean,muted:boolean,name:null,nonce:null,noModule:boolean,noValidate:boolean,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:boolean,optimum:number,pattern:null,ping:spaceSeparated,placeholder:null,playsInline:boolean,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:boolean,referrerPolicy:null,rel:spaceSeparated,required:boolean,reversed:boolean,rows:number,rowSpan:number,sandbox:spaceSeparated,scope:null,scoped:boolean,seamless:boolean,selected:boolean,shadowRootClonable:boolean,shadowRootCustomElementRegistry:boolean,shadowRootDelegatesFocus:boolean,shadowRootMode:null,shadowRootSerializable:boolean,shape:null,size:number,sizes:null,slot:null,span:number,spellCheck:booleanish,src:null,srcDoc:null,srcLang:null,srcSet:null,start:number,step:null,style:null,tabIndex:number,target:null,title:null,translate:null,type:null,typeMustMatch:boolean,useMap:null,value:booleanish,width:number,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:spaceSeparated,axis:null,background:null,bgColor:null,border:number,borderColor:null,bottomMargin:number,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:boolean,declare:boolean,event:null,face:null,frame:null,frameBorder:null,hSpace:number,leftMargin:number,link:null,longDesc:null,lowSrc:null,marginHeight:number,marginWidth:number,noResize:boolean,noHref:boolean,noShade:boolean,noWrap:boolean,object:null,profile:null,prompt:null,rev:null,rightMargin:number,rules:null,scheme:null,scrolling:booleanish,standby:null,summary:null,text:null,topMargin:number,valueType:null,version:null,vAlign:null,vLink:null,vSpace:number,allowTransparency:null,autoCorrect:null,autoSave:null,credentialless:boolean,disablePictureInPicture:boolean,disableRemotePlayback:boolean,exportParts:commaSeparated,part:spaceSeparated,prefix:null,property:null,results:number,security:null,unselectable:null},space:"html",transform:caseInsensitiveTransform}),svg$1=create$1({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",maskType:"mask-type",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:commaOrSpaceSeparated,accentHeight:number,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:number,amplitude:number,arabicForm:null,ascent:number,attributeName:null,attributeType:null,azimuth:number,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:number,by:null,calcMode:null,capHeight:number,className:spaceSeparated,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:number,diffuseConstant:number,direction:null,display:null,dur:null,divisor:number,dominantBaseline:null,download:boolean,dx:null,dy:null,edgeMode:null,editable:null,elevation:number,enableBackground:null,end:null,event:null,exponent:number,externalResourcesRequired:null,fill:null,fillOpacity:number,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:commaSeparated,g2:commaSeparated,glyphName:commaSeparated,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:number,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:number,horizOriginX:number,horizOriginY:number,id:null,ideographic:number,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:number,k:number,k1:number,k2:number,k3:number,k4:number,kernelMatrix:commaOrSpaceSeparated,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:number,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskType:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:number,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:number,overlineThickness:number,paintOrder:null,panose1:null,path:null,pathLength:number,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:spaceSeparated,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:number,pointsAtY:number,pointsAtZ:number,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:commaOrSpaceSeparated,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:commaOrSpaceSeparated,rev:commaOrSpaceSeparated,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:commaOrSpaceSeparated,requiredFeatures:commaOrSpaceSeparated,requiredFonts:commaOrSpaceSeparated,requiredFormats:commaOrSpaceSeparated,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:number,specularExponent:number,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:number,strikethroughThickness:number,string:null,stroke:null,strokeDashArray:commaOrSpaceSeparated,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:number,strokeOpacity:number,strokeWidth:null,style:null,surfaceScale:number,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:commaOrSpaceSeparated,tabIndex:number,tableValues:null,target:null,targetX:number,targetY:number,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:commaOrSpaceSeparated,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:number,underlineThickness:number,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:number,values:null,vAlphabetic:number,vMathematical:number,vectorEffect:null,vHanging:number,vIdeographic:number,version:null,vertAdvY:number,vertOriginX:number,vertOriginY:number,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:number,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:caseSensitiveTransform}),xlink=create$1({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform(e,t){return"xlink:"+t.slice(5).toLowerCase()}}),xmlns=create$1({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:caseInsensitiveTransform}),xml=create$1({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(e,t){return"xml:"+t.slice(3).toLowerCase()}}),hastToReact={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"},cap$1=/[A-Z]/g,dash=/-[a-z]/g,valid=/^data[-\w.:]+$/i;function find(e,t){const o=normalize$1(t);let n=t,a=Info;if(o in e.normal)return e.property[e.normal[o]];if(o.length>4&&o.slice(0,4)==="data"&&valid.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(dash,camelcase);n="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!dash.test(i)){let c=i.replace(cap$1,kebab);c.charAt(0)!=="-"&&(c="-"+c),t="data"+c}}a=DefinedInfo}return new a(n,t)}function kebab(e){return"-"+e.toLowerCase()}function camelcase(e){return e.charAt(1).toUpperCase()}const html$1=merge([aria,html$2,xlink,xmlns,xml],"html"),svg=merge([aria,svg$1,xlink,xmlns,xml],"svg");function stringify(e){return e.join(" ").trim()}var cjs$2={},cjs$1,hasRequiredCjs$2;function requireCjs$2(){if(hasRequiredCjs$2)return cjs$1;hasRequiredCjs$2=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,o=/^\s*/,n=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,a=/^:\s*/,i=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,c=/^[;\s]*/,r=/^\s+|\s+$/g,s=`
8230
- `,h="/",u="*",p="",g="comment",k="declaration";function w(R,C){if(typeof R!="string")throw new TypeError("First argument must be a string");if(!R)return[];C=C||{};var v=1,j=1;function F(z){var A=z.match(t);A&&(v+=A.length);var Q=z.lastIndexOf(s);j=~Q?z.length-Q:j+z.length}function U(){var z={line:v,column:j};return function(A){return A.position=new b(z),Y(),A}}function b(z){this.start=z,this.end={line:v,column:j},this.source=C.source}b.prototype.content=R;function K(z){var A=new Error(C.source+":"+v+":"+j+": "+z);if(A.reason=z,A.filename=C.source,A.line=v,A.column=j,A.source=R,!C.silent)throw A}function Z(z){var A=z.exec(R);if(A){var Q=A[0];return F(Q),R=R.slice(Q.length),A}}function Y(){Z(o)}function oe(z){var A;for(z=z||[];A=H();)A!==!1&&z.push(A);return z}function H(){var z=U();if(!(h!=R.charAt(0)||u!=R.charAt(1))){for(var A=2;p!=R.charAt(A)&&(u!=R.charAt(A)||h!=R.charAt(A+1));)++A;if(A+=2,p===R.charAt(A-1))return K("End of comment missing");var Q=R.slice(2,A-2);return j+=2,F(Q),R=R.slice(A),j+=2,z({type:g,comment:Q})}}function E(){var z=U(),A=Z(n);if(A){if(H(),!Z(a))return K("property missing ':'");var Q=Z(i),se=z({type:k,property:S(A[0].replace(e,p)),value:Q?S(Q[0].replace(e,p)):p});return Z(c),se}}function J(){var z=[];oe(z);for(var A;A=E();)A!==!1&&(z.push(A),oe(z));return z}return Y(),J()}function S(R){return R?R.replace(r,p):p}return cjs$1=w,cjs$1}var hasRequiredCjs$1;function requireCjs$1(){if(hasRequiredCjs$1)return cjs$2;hasRequiredCjs$1=1;var e=cjs$2&&cjs$2.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(cjs$2,"__esModule",{value:!0}),cjs$2.default=o;const t=e(requireCjs$2());function o(n,a){let i=null;if(!n||typeof n!="string")return i;const c=(0,t.default)(n),r=typeof a=="function";return c.forEach(s=>{if(s.type!=="declaration")return;const{property:h,value:u}=s;r?a(h,u,s):u&&(i=i||{},i[h]=u)}),i}return cjs$2}var utilities={},hasRequiredUtilities;function requireUtilities(){if(hasRequiredUtilities)return utilities;hasRequiredUtilities=1,Object.defineProperty(utilities,"__esModule",{value:!0}),utilities.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,t=/-([a-z])/g,o=/^[^-]+$/,n=/^-(webkit|moz|ms|o|khtml)-/,a=/^-(ms)-/,i=function(h){return!h||o.test(h)||e.test(h)},c=function(h,u){return u.toUpperCase()},r=function(h,u){return"".concat(u,"-")},s=function(h,u){return u===void 0&&(u={}),i(h)?h:(h=h.toLowerCase(),u.reactCompat?h=h.replace(a,r):h=h.replace(n,r),h.replace(t,c))};return utilities.camelCase=s,utilities}var cjs,hasRequiredCjs;function requireCjs(){if(hasRequiredCjs)return cjs;hasRequiredCjs=1;var e=cjs&&cjs.__importDefault||function(a){return a&&a.__esModule?a:{default:a}},t=e(requireCjs$1()),o=requireUtilities();function n(a,i){var c={};return!a||typeof a!="string"||(0,t.default)(a,function(r,s){r&&s&&(c[(0,o.camelCase)(r,i)]=s)}),c}return n.default=n,cjs=n,cjs}var cjsExports=requireCjs();const styleToJs=getDefaultExportFromCjs(cjsExports),pointEnd=point$2("end"),pointStart=point$2("start");function point$2(e){return t;function t(o){const n=o&&o.position&&o.position[e]||{};if(typeof n.line=="number"&&n.line>0&&typeof n.column=="number"&&n.column>0)return{line:n.line,column:n.column,offset:typeof n.offset=="number"&&n.offset>-1?n.offset:void 0}}}function position$1(e){const t=pointStart(e),o=pointEnd(e);if(t&&o)return{start:t,end:o}}function stringifyPosition(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?position(e.position):"start"in e||"end"in e?position(e):"line"in e||"column"in e?point$1(e):""}function point$1(e){return index(e&&e.line)+":"+index(e&&e.column)}function position(e){return point$1(e&&e.start)+"-"+point$1(e&&e.end)}function index(e){return e&&typeof e=="number"?e:1}class VFileMessage extends Error{constructor(t,o,n){super(),typeof o=="string"&&(n=o,o=void 0);let a="",i={},c=!1;if(o&&("line"in o&&"column"in o?i={place:o}:"start"in o&&"end"in o?i={place:o}:"type"in o?i={ancestors:[o],place:o.position}:i={...o}),typeof t=="string"?a=t:!i.cause&&t&&(c=!0,a=t.message,i.cause=t),!i.ruleId&&!i.source&&typeof n=="string"){const s=n.indexOf(":");s===-1?i.ruleId=n:(i.source=n.slice(0,s),i.ruleId=n.slice(s+1))}if(!i.place&&i.ancestors&&i.ancestors){const s=i.ancestors[i.ancestors.length-1];s&&(i.place=s.position)}const r=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=r?r.column:void 0,this.fatal=void 0,this.file="",this.message=a,this.line=r?r.line:void 0,this.name=stringifyPosition(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=c&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}VFileMessage.prototype.file="";VFileMessage.prototype.name="";VFileMessage.prototype.reason="";VFileMessage.prototype.message="";VFileMessage.prototype.stack="";VFileMessage.prototype.column=void 0;VFileMessage.prototype.line=void 0;VFileMessage.prototype.ancestors=void 0;VFileMessage.prototype.cause=void 0;VFileMessage.prototype.fatal=void 0;VFileMessage.prototype.place=void 0;VFileMessage.prototype.ruleId=void 0;VFileMessage.prototype.source=void 0;const own$3={}.hasOwnProperty,emptyMap=new Map,cap=/[A-Z]/g,tableElements=new Set(["table","tbody","thead","tfoot","tr"]),tableCellElement=new Set(["td","th"]),docs="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function toJsxRuntime(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const o=t.filePath||void 0;let n;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");n=developmentCreate(o,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");n=productionCreate(o,t.jsx,t.jsxs)}const a={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:n,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:o,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?svg:html$1,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=one$1(a,e,void 0);return i&&typeof i!="string"?i:a.create(e,a.Fragment,{children:i||void 0},void 0)}function one$1(e,t,o){if(t.type==="element")return element$1(e,t,o);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return mdxExpression(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return mdxJsxElement(e,t,o);if(t.type==="mdxjsEsm")return mdxEsm(e,t);if(t.type==="root")return root$1(e,t,o);if(t.type==="text")return text$3(e,t)}function element$1(e,t,o){const n=e.schema;let a=n;t.tagName.toLowerCase()==="svg"&&n.space==="html"&&(a=svg,e.schema=a),e.ancestors.push(t);const i=findComponentFromName(e,t.tagName,!1),c=createElementProps(e,t);let r=createChildren(e,t);return tableElements.has(t.tagName)&&(r=r.filter(function(s){return typeof s=="string"?!whitespace(s):!0})),addNode(e,c,i,t),addChildren(c,r),e.ancestors.pop(),e.schema=n,e.create(t,i,c,o)}function mdxExpression(e,t){if(t.data&&t.data.estree&&e.evaluater){const n=t.data.estree.body[0];return n.type,e.evaluater.evaluateExpression(n.expression)}crashEstree(e,t.position)}function mdxEsm(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);crashEstree(e,t.position)}function mdxJsxElement(e,t,o){const n=e.schema;let a=n;t.name==="svg"&&n.space==="html"&&(a=svg,e.schema=a),e.ancestors.push(t);const i=t.name===null?e.Fragment:findComponentFromName(e,t.name,!0),c=createJsxElementProps(e,t),r=createChildren(e,t);return addNode(e,c,i,t),addChildren(c,r),e.ancestors.pop(),e.schema=n,e.create(t,i,c,o)}function root$1(e,t,o){const n={};return addChildren(n,createChildren(e,t)),e.create(t,e.Fragment,n,o)}function text$3(e,t){return t.value}function addNode(e,t,o,n){typeof o!="string"&&o!==e.Fragment&&e.passNode&&(t.node=n)}function addChildren(e,t){if(t.length>0){const o=t.length>1?t:t[0];o&&(e.children=o)}}function productionCreate(e,t,o){return n;function n(a,i,c,r){const h=Array.isArray(c.children)?o:t;return r?h(i,c,r):h(i,c)}}function developmentCreate(e,t){return o;function o(n,a,i,c){const r=Array.isArray(i.children),s=pointStart(n);return t(a,i,c,r,{columnNumber:s?s.column-1:void 0,fileName:e,lineNumber:s?s.line:void 0},void 0)}}function createElementProps(e,t){const o={};let n,a;for(a in t.properties)if(a!=="children"&&own$3.call(t.properties,a)){const i=createProperty(e,a,t.properties[a]);if(i){const[c,r]=i;e.tableCellAlignToStyle&&c==="align"&&typeof r=="string"&&tableCellElement.has(t.tagName)?n=r:o[c]=r}}if(n){const i=o.style||(o.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=n}return o}function createJsxElementProps(e,t){const o={};for(const n of t.attributes)if(n.type==="mdxJsxExpressionAttribute")if(n.data&&n.data.estree&&e.evaluater){const i=n.data.estree.body[0];i.type;const c=i.expression;c.type;const r=c.properties[0];r.type,Object.assign(o,e.evaluater.evaluateExpression(r.argument))}else crashEstree(e,t.position);else{const a=n.name;let i;if(n.value&&typeof n.value=="object")if(n.value.data&&n.value.data.estree&&e.evaluater){const r=n.value.data.estree.body[0];r.type,i=e.evaluater.evaluateExpression(r.expression)}else crashEstree(e,t.position);else i=n.value===null?!0:n.value;o[a]=i}return o}function createChildren(e,t){const o=[];let n=-1;const a=e.passKeys?new Map:emptyMap;for(;++n<t.children.length;){const i=t.children[n];let c;if(e.passKeys){const s=i.type==="element"?i.tagName:i.type==="mdxJsxFlowElement"||i.type==="mdxJsxTextElement"?i.name:void 0;if(s){const h=a.get(s)||0;c=s+"-"+h,a.set(s,h+1)}}const r=one$1(e,i,c);r!==void 0&&o.push(r)}return o}function createProperty(e,t,o){const n=find(e.schema,t);if(!(o==null||typeof o=="number"&&Number.isNaN(o))){if(Array.isArray(o)&&(o=n.commaSeparated?stringify$1(o):stringify(o)),n.property==="style"){let a=typeof o=="object"?o:parseStyle(e,String(o));return e.stylePropertyNameCase==="css"&&(a=transformStylesToCssCasing(a)),["style",a]}return[e.elementAttributeNameCase==="react"&&n.space?hastToReact[n.property]||n.property:n.attribute,o]}}function parseStyle(e,t){try{return styleToJs(t,{reactCompat:!0})}catch(o){if(e.ignoreInvalidStyle)return{};const n=o,a=new VFileMessage("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:n,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw a.file=e.filePath||void 0,a.url=docs+"#cannot-parse-style-attribute",a}}function findComponentFromName(e,t,o){let n;if(!o)n={type:"Literal",value:t};else if(t.includes(".")){const a=t.split(".");let i=-1,c;for(;++i<a.length;){const r=name(a[i])?{type:"Identifier",name:a[i]}:{type:"Literal",value:a[i]};c=c?{type:"MemberExpression",object:c,property:r,computed:!!(i&&r.type==="Literal"),optional:!1}:r}n=c}else n=name(t)&&!/^[a-z]/.test(t)?{type:"Identifier",name:t}:{type:"Literal",value:t};if(n.type==="Literal"){const a=n.value;return own$3.call(e.components,a)?e.components[a]:a}if(e.evaluater)return e.evaluater.evaluateExpression(n);crashEstree(e)}function crashEstree(e,t){const o=new VFileMessage("Cannot handle MDX estrees without `createEvaluater`",{ancestors:e.ancestors,place:t,ruleId:"mdx-estree",source:"hast-util-to-jsx-runtime"});throw o.file=e.filePath||void 0,o.url=docs+"#cannot-handle-mdx-estrees-without-createevaluater",o}function transformStylesToCssCasing(e){const t={};let o;for(o in e)own$3.call(e,o)&&(t[transformStyleToCssCasing(o)]=e[o]);return t}function transformStyleToCssCasing(e){let t=e.replace(cap,toDash);return t.slice(0,3)==="ms-"&&(t="-"+t),t}function toDash(e){return"-"+e.toLowerCase()}const urlAttributes={action:["form"],cite:["blockquote","del","ins","q"],data:["object"],formAction:["button","input"],href:["a","area","base","link"],icon:["menuitem"],itemId:null,manifest:["html"],ping:["a","area"],poster:["video"],src:["audio","embed","iframe","img","input","script","source","track","video"]},emptyOptions$1={};function toString$1(e,t){const o=emptyOptions$1,n=typeof o.includeImageAlt=="boolean"?o.includeImageAlt:!0,a=typeof o.includeHtml=="boolean"?o.includeHtml:!0;return one(e,n,a)}function one(e,t,o){if(node(e)){if("value"in e)return e.type==="html"&&!o?"":e.value;if(t&&"alt"in e&&e.alt)return e.alt;if("children"in e)return all(e.children,t,o)}return Array.isArray(e)?all(e,t,o):""}function all(e,t,o){const n=[];let a=-1;for(;++a<e.length;)n[a]=one(e[a],t,o);return n.join("")}function node(e){return!!(e&&typeof e=="object")}const element=document.createElement("i");function decodeNamedCharacterReference(e){const t="&"+e+";";element.innerHTML=t;const o=element.textContent;return o.charCodeAt(o.length-1)===59&&e!=="semi"||o===t?!1:o}function splice(e,t,o,n){const a=e.length;let i=0,c;if(t<0?t=-t>a?0:a+t:t=t>a?a:t,o=o>0?o:0,n.length<1e4)c=Array.from(n),c.unshift(t,o),e.splice(...c);else for(o&&e.splice(t,o);i<n.length;)c=n.slice(i,i+1e4),c.unshift(t,0),e.splice(...c),i+=1e4,t+=1e4}function push(e,t){return e.length>0?(splice(e,e.length,0,t),e):t}const hasOwnProperty={}.hasOwnProperty;function combineExtensions(e){const t={};let o=-1;for(;++o<e.length;)syntaxExtension(t,e[o]);return t}function syntaxExtension(e,t){let o;for(o in t){const a=(hasOwnProperty.call(e,o)?e[o]:void 0)||(e[o]={}),i=t[o];let c;if(i)for(c in i){hasOwnProperty.call(a,c)||(a[c]=[]);const r=i[c];constructs(a[c],Array.isArray(r)?r:r?[r]:[])}}}function constructs(e,t){let o=-1;const n=[];for(;++o<t.length;)(t[o].add==="after"?e:n).push(t[o]);splice(e,0,0,n)}function decodeNumericCharacterReference(e,t){const o=Number.parseInt(e,t);return o<9||o===11||o>13&&o<32||o>126&&o<160||o>55295&&o<57344||o>64975&&o<65008||(o&65535)===65535||(o&65535)===65534||o>1114111?"�":String.fromCodePoint(o)}function normalizeIdentifier(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const asciiAlpha=regexCheck(/[A-Za-z]/),asciiAlphanumeric=regexCheck(/[\dA-Za-z]/),asciiAtext=regexCheck(/[#-'*+\--9=?A-Z^-~]/);function asciiControl(e){return e!==null&&(e<32||e===127)}const asciiDigit=regexCheck(/\d/),asciiHexDigit=regexCheck(/[\dA-Fa-f]/),asciiPunctuation=regexCheck(/[!-/:-@[-`{-~]/);function markdownLineEnding(e){return e!==null&&e<-2}function markdownLineEndingOrSpace(e){return e!==null&&(e<0||e===32)}function markdownSpace(e){return e===-2||e===-1||e===32}const unicodePunctuation=regexCheck(/\p{P}|\p{S}/u),unicodeWhitespace=regexCheck(/\s/);function regexCheck(e){return t;function t(o){return o!==null&&o>-1&&e.test(String.fromCharCode(o))}}function normalizeUri(e){const t=[];let o=-1,n=0,a=0;for(;++o<e.length;){const i=e.charCodeAt(o);let c="";if(i===37&&asciiAlphanumeric(e.charCodeAt(o+1))&&asciiAlphanumeric(e.charCodeAt(o+2)))a=2;else if(i<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(i))||(c=String.fromCharCode(i));else if(i>55295&&i<57344){const r=e.charCodeAt(o+1);i<56320&&r>56319&&r<57344?(c=String.fromCharCode(i,r),a=1):c="�"}else c=String.fromCharCode(i);c&&(t.push(e.slice(n,o),encodeURIComponent(c)),n=o+a+1,c=""),a&&(o+=a,a=0)}return t.join("")+e.slice(n)}function factorySpace(e,t,o,n){const a=n?n-1:Number.POSITIVE_INFINITY;let i=0;return c;function c(s){return markdownSpace(s)?(e.enter(o),r(s)):t(s)}function r(s){return markdownSpace(s)&&i++<a?(e.consume(s),r):(e.exit(o),t(s))}}const content$1={tokenize:initializeContent};function initializeContent(e){const t=e.attempt(this.parser.constructs.contentInitial,n,a);let o;return t;function n(r){if(r===null){e.consume(r);return}return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),factorySpace(e,t,"linePrefix")}function a(r){return e.enter("paragraph"),i(r)}function i(r){const s=e.enter("chunkText",{contentType:"text",previous:o});return o&&(o.next=s),o=s,c(r)}function c(r){if(r===null){e.exit("chunkText"),e.exit("paragraph"),e.consume(r);return}return markdownLineEnding(r)?(e.consume(r),e.exit("chunkText"),i):(e.consume(r),c)}}const document$2={tokenize:initializeDocument},containerConstruct={tokenize:tokenizeContainer};function initializeDocument(e){const t=this,o=[];let n=0,a,i,c;return r;function r(j){if(n<o.length){const F=o[n];return t.containerState=F[1],e.attempt(F[0].continuation,s,h)(j)}return h(j)}function s(j){if(n++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,a&&v();const F=t.events.length;let U=F,b;for(;U--;)if(t.events[U][0]==="exit"&&t.events[U][1].type==="chunkFlow"){b=t.events[U][1].end;break}C(n);let K=F;for(;K<t.events.length;)t.events[K][1].end={...b},K++;return splice(t.events,U+1,0,t.events.slice(F)),t.events.length=K,h(j)}return r(j)}function h(j){if(n===o.length){if(!a)return g(j);if(a.currentConstruct&&a.currentConstruct.concrete)return w(j);t.interrupt=!!(a.currentConstruct&&!a._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(containerConstruct,u,p)(j)}function u(j){return a&&v(),C(n),g(j)}function p(j){return t.parser.lazy[t.now().line]=n!==o.length,c=t.now().offset,w(j)}function g(j){return t.containerState={},e.attempt(containerConstruct,k,w)(j)}function k(j){return n++,o.push([t.currentConstruct,t.containerState]),g(j)}function w(j){if(j===null){a&&v(),C(0),e.consume(j);return}return a=a||t.parser.flow(t.now()),e.enter("chunkFlow",{_tokenizer:a,contentType:"flow",previous:i}),S(j)}function S(j){if(j===null){R(e.exit("chunkFlow"),!0),C(0),e.consume(j);return}return markdownLineEnding(j)?(e.consume(j),R(e.exit("chunkFlow")),n=0,t.interrupt=void 0,r):(e.consume(j),S)}function R(j,F){const U=t.sliceStream(j);if(F&&U.push(null),j.previous=i,i&&(i.next=j),i=j,a.defineSkip(j.start),a.write(U),t.parser.lazy[j.start.line]){let b=a.events.length;for(;b--;)if(a.events[b][1].start.offset<c&&(!a.events[b][1].end||a.events[b][1].end.offset>c))return;const K=t.events.length;let Z=K,Y,oe;for(;Z--;)if(t.events[Z][0]==="exit"&&t.events[Z][1].type==="chunkFlow"){if(Y){oe=t.events[Z][1].end;break}Y=!0}for(C(n),b=K;b<t.events.length;)t.events[b][1].end={...oe},b++;splice(t.events,Z+1,0,t.events.slice(K)),t.events.length=b}}function C(j){let F=o.length;for(;F-- >j;){const U=o[F];t.containerState=U[1],U[0].exit.call(t,e)}o.length=j}function v(){a.write([null]),i=void 0,a=void 0,t.containerState._closeFlow=void 0}}function tokenizeContainer(e,t,o){return factorySpace(e,e.attempt(this.parser.constructs.document,t,o),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function classifyCharacter(e){if(e===null||markdownLineEndingOrSpace(e)||unicodeWhitespace(e))return 1;if(unicodePunctuation(e))return 2}function resolveAll(e,t,o){const n=[];let a=-1;for(;++a<e.length;){const i=e[a].resolveAll;i&&!n.includes(i)&&(t=i(t,o),n.push(i))}return t}const attention={name:"attention",resolveAll:resolveAllAttention,tokenize:tokenizeAttention};function resolveAllAttention(e,t){let o=-1,n,a,i,c,r,s,h,u;for(;++o<e.length;)if(e[o][0]==="enter"&&e[o][1].type==="attentionSequence"&&e[o][1]._close){for(n=o;n--;)if(e[n][0]==="exit"&&e[n][1].type==="attentionSequence"&&e[n][1]._open&&t.sliceSerialize(e[n][1]).charCodeAt(0)===t.sliceSerialize(e[o][1]).charCodeAt(0)){if((e[n][1]._close||e[o][1]._open)&&(e[o][1].end.offset-e[o][1].start.offset)%3&&!((e[n][1].end.offset-e[n][1].start.offset+e[o][1].end.offset-e[o][1].start.offset)%3))continue;s=e[n][1].end.offset-e[n][1].start.offset>1&&e[o][1].end.offset-e[o][1].start.offset>1?2:1;const p={...e[n][1].end},g={...e[o][1].start};movePoint(p,-s),movePoint(g,s),c={type:s>1?"strongSequence":"emphasisSequence",start:p,end:{...e[n][1].end}},r={type:s>1?"strongSequence":"emphasisSequence",start:{...e[o][1].start},end:g},i={type:s>1?"strongText":"emphasisText",start:{...e[n][1].end},end:{...e[o][1].start}},a={type:s>1?"strong":"emphasis",start:{...c.start},end:{...r.end}},e[n][1].end={...c.start},e[o][1].start={...r.end},h=[],e[n][1].end.offset-e[n][1].start.offset&&(h=push(h,[["enter",e[n][1],t],["exit",e[n][1],t]])),h=push(h,[["enter",a,t],["enter",c,t],["exit",c,t],["enter",i,t]]),h=push(h,resolveAll(t.parser.constructs.insideSpan.null,e.slice(n+1,o),t)),h=push(h,[["exit",i,t],["enter",r,t],["exit",r,t],["exit",a,t]]),e[o][1].end.offset-e[o][1].start.offset?(u=2,h=push(h,[["enter",e[o][1],t],["exit",e[o][1],t]])):u=0,splice(e,n-1,o-n+3,h),o=n+h.length-u-2;break}}for(o=-1;++o<e.length;)e[o][1].type==="attentionSequence"&&(e[o][1].type="data");return e}function tokenizeAttention(e,t){const o=this.parser.constructs.attentionMarkers.null,n=this.previous,a=classifyCharacter(n);let i;return c;function c(s){return i=s,e.enter("attentionSequence"),r(s)}function r(s){if(s===i)return e.consume(s),r;const h=e.exit("attentionSequence"),u=classifyCharacter(s),p=!u||u===2&&a||o.includes(s),g=!a||a===2&&u||o.includes(n);return h._open=!!(i===42?p:p&&(a||!g)),h._close=!!(i===42?g:g&&(u||!p)),t(s)}}function movePoint(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}const autolink={name:"autolink",tokenize:tokenizeAutolink};function tokenizeAutolink(e,t,o){let n=0;return a;function a(k){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(k),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),i}function i(k){return asciiAlpha(k)?(e.consume(k),c):k===64?o(k):h(k)}function c(k){return k===43||k===45||k===46||asciiAlphanumeric(k)?(n=1,r(k)):h(k)}function r(k){return k===58?(e.consume(k),n=0,s):(k===43||k===45||k===46||asciiAlphanumeric(k))&&n++<32?(e.consume(k),r):(n=0,h(k))}function s(k){return k===62?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(k),e.exit("autolinkMarker"),e.exit("autolink"),t):k===null||k===32||k===60||asciiControl(k)?o(k):(e.consume(k),s)}function h(k){return k===64?(e.consume(k),u):asciiAtext(k)?(e.consume(k),h):o(k)}function u(k){return asciiAlphanumeric(k)?p(k):o(k)}function p(k){return k===46?(e.consume(k),n=0,u):k===62?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(k),e.exit("autolinkMarker"),e.exit("autolink"),t):g(k)}function g(k){if((k===45||asciiAlphanumeric(k))&&n++<63){const w=k===45?g:p;return e.consume(k),w}return o(k)}}const blankLine={partial:!0,tokenize:tokenizeBlankLine};function tokenizeBlankLine(e,t,o){return n;function n(i){return markdownSpace(i)?factorySpace(e,a,"linePrefix")(i):a(i)}function a(i){return i===null||markdownLineEnding(i)?t(i):o(i)}}const blockQuote={continuation:{tokenize:tokenizeBlockQuoteContinuation},exit,name:"blockQuote",tokenize:tokenizeBlockQuoteStart};function tokenizeBlockQuoteStart(e,t,o){const n=this;return a;function a(c){if(c===62){const r=n.containerState;return r.open||(e.enter("blockQuote",{_container:!0}),r.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(c),e.exit("blockQuoteMarker"),i}return o(c)}function i(c){return markdownSpace(c)?(e.enter("blockQuotePrefixWhitespace"),e.consume(c),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(c))}}function tokenizeBlockQuoteContinuation(e,t,o){const n=this;return a;function a(c){return markdownSpace(c)?factorySpace(e,i,"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(c):i(c)}function i(c){return e.attempt(blockQuote,t,o)(c)}}function exit(e){e.exit("blockQuote")}const characterEscape={name:"characterEscape",tokenize:tokenizeCharacterEscape};function tokenizeCharacterEscape(e,t,o){return n;function n(i){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(i),e.exit("escapeMarker"),a}function a(i){return asciiPunctuation(i)?(e.enter("characterEscapeValue"),e.consume(i),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):o(i)}}const characterReference={name:"characterReference",tokenize:tokenizeCharacterReference};function tokenizeCharacterReference(e,t,o){const n=this;let a=0,i,c;return r;function r(p){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(p),e.exit("characterReferenceMarker"),s}function s(p){return p===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(p),e.exit("characterReferenceMarkerNumeric"),h):(e.enter("characterReferenceValue"),i=31,c=asciiAlphanumeric,u(p))}function h(p){return p===88||p===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(p),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),i=6,c=asciiHexDigit,u):(e.enter("characterReferenceValue"),i=7,c=asciiDigit,u(p))}function u(p){if(p===59&&a){const g=e.exit("characterReferenceValue");return c===asciiAlphanumeric&&!decodeNamedCharacterReference(n.sliceSerialize(g))?o(p):(e.enter("characterReferenceMarker"),e.consume(p),e.exit("characterReferenceMarker"),e.exit("characterReference"),t)}return c(p)&&a++<i?(e.consume(p),u):o(p)}}const nonLazyContinuation={partial:!0,tokenize:tokenizeNonLazyContinuation},codeFenced={concrete:!0,name:"codeFenced",tokenize:tokenizeCodeFenced};function tokenizeCodeFenced(e,t,o){const n=this,a={partial:!0,tokenize:U};let i=0,c=0,r;return s;function s(b){return h(b)}function h(b){const K=n.events[n.events.length-1];return i=K&&K[1].type==="linePrefix"?K[2].sliceSerialize(K[1],!0).length:0,r=b,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),u(b)}function u(b){return b===r?(c++,e.consume(b),u):c<3?o(b):(e.exit("codeFencedFenceSequence"),markdownSpace(b)?factorySpace(e,p,"whitespace")(b):p(b))}function p(b){return b===null||markdownLineEnding(b)?(e.exit("codeFencedFence"),n.interrupt?t(b):e.check(nonLazyContinuation,S,F)(b)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),g(b))}function g(b){return b===null||markdownLineEnding(b)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),p(b)):markdownSpace(b)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),factorySpace(e,k,"whitespace")(b)):b===96&&b===r?o(b):(e.consume(b),g)}function k(b){return b===null||markdownLineEnding(b)?p(b):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),w(b))}function w(b){return b===null||markdownLineEnding(b)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),p(b)):b===96&&b===r?o(b):(e.consume(b),w)}function S(b){return e.attempt(a,F,R)(b)}function R(b){return e.enter("lineEnding"),e.consume(b),e.exit("lineEnding"),C}function C(b){return i>0&&markdownSpace(b)?factorySpace(e,v,"linePrefix",i+1)(b):v(b)}function v(b){return b===null||markdownLineEnding(b)?e.check(nonLazyContinuation,S,F)(b):(e.enter("codeFlowValue"),j(b))}function j(b){return b===null||markdownLineEnding(b)?(e.exit("codeFlowValue"),v(b)):(e.consume(b),j)}function F(b){return e.exit("codeFenced"),t(b)}function U(b,K,Z){let Y=0;return oe;function oe(A){return b.enter("lineEnding"),b.consume(A),b.exit("lineEnding"),H}function H(A){return b.enter("codeFencedFence"),markdownSpace(A)?factorySpace(b,E,"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(A):E(A)}function E(A){return A===r?(b.enter("codeFencedFenceSequence"),J(A)):Z(A)}function J(A){return A===r?(Y++,b.consume(A),J):Y>=c?(b.exit("codeFencedFenceSequence"),markdownSpace(A)?factorySpace(b,z,"whitespace")(A):z(A)):Z(A)}function z(A){return A===null||markdownLineEnding(A)?(b.exit("codeFencedFence"),K(A)):Z(A)}}}function tokenizeNonLazyContinuation(e,t,o){const n=this;return a;function a(c){return c===null?o(c):(e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),i)}function i(c){return n.parser.lazy[n.now().line]?o(c):t(c)}}const codeIndented={name:"codeIndented",tokenize:tokenizeCodeIndented},furtherStart={partial:!0,tokenize:tokenizeFurtherStart};function tokenizeCodeIndented(e,t,o){const n=this;return a;function a(h){return e.enter("codeIndented"),factorySpace(e,i,"linePrefix",5)(h)}function i(h){const u=n.events[n.events.length-1];return u&&u[1].type==="linePrefix"&&u[2].sliceSerialize(u[1],!0).length>=4?c(h):o(h)}function c(h){return h===null?s(h):markdownLineEnding(h)?e.attempt(furtherStart,c,s)(h):(e.enter("codeFlowValue"),r(h))}function r(h){return h===null||markdownLineEnding(h)?(e.exit("codeFlowValue"),c(h)):(e.consume(h),r)}function s(h){return e.exit("codeIndented"),t(h)}}function tokenizeFurtherStart(e,t,o){const n=this;return a;function a(c){return n.parser.lazy[n.now().line]?o(c):markdownLineEnding(c)?(e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),a):factorySpace(e,i,"linePrefix",5)(c)}function i(c){const r=n.events[n.events.length-1];return r&&r[1].type==="linePrefix"&&r[2].sliceSerialize(r[1],!0).length>=4?t(c):markdownLineEnding(c)?a(c):o(c)}}const codeText={name:"codeText",previous,resolve:resolveCodeText,tokenize:tokenizeCodeText};function resolveCodeText(e){let t=e.length-4,o=3,n,a;if((e[o][1].type==="lineEnding"||e[o][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(n=o;++n<t;)if(e[n][1].type==="codeTextData"){e[o][1].type="codeTextPadding",e[t][1].type="codeTextPadding",o+=2,t-=2;break}}for(n=o-1,t++;++n<=t;)a===void 0?n!==t&&e[n][1].type!=="lineEnding"&&(a=n):(n===t||e[n][1].type==="lineEnding")&&(e[a][1].type="codeTextData",n!==a+2&&(e[a][1].end=e[n-1][1].end,e.splice(a+2,n-a-2),t-=n-a-2,n=a+2),a=void 0);return e}function previous(e){return e!==96||this.events[this.events.length-1][1].type==="characterEscape"}function tokenizeCodeText(e,t,o){let n=0,a,i;return c;function c(p){return e.enter("codeText"),e.enter("codeTextSequence"),r(p)}function r(p){return p===96?(e.consume(p),n++,r):(e.exit("codeTextSequence"),s(p))}function s(p){return p===null?o(p):p===32?(e.enter("space"),e.consume(p),e.exit("space"),s):p===96?(i=e.enter("codeTextSequence"),a=0,u(p)):markdownLineEnding(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),s):(e.enter("codeTextData"),h(p))}function h(p){return p===null||p===32||p===96||markdownLineEnding(p)?(e.exit("codeTextData"),s(p)):(e.consume(p),h)}function u(p){return p===96?(e.consume(p),a++,u):a===n?(e.exit("codeTextSequence"),e.exit("codeText"),t(p)):(i.type="codeTextData",h(p))}}class SpliceBuffer{constructor(t){this.left=t?[...t]:[],this.right=[]}get(t){if(t<0||t>=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return t<this.left.length?this.left[t]:this.right[this.right.length-t+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(t,o){const n=o??Number.POSITIVE_INFINITY;return n<this.left.length?this.left.slice(t,n):t>this.left.length?this.right.slice(this.right.length-n+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-n+this.left.length).reverse())}splice(t,o,n){const a=o||0;this.setCursor(Math.trunc(t));const i=this.right.splice(this.right.length-a,Number.POSITIVE_INFINITY);return n&&chunkedPush(this.left,n),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),chunkedPush(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),chunkedPush(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t<this.left.length){const o=this.left.splice(t,Number.POSITIVE_INFINITY);chunkedPush(this.right,o.reverse())}else{const o=this.right.splice(this.left.length+this.right.length-t,Number.POSITIVE_INFINITY);chunkedPush(this.left,o.reverse())}}}function chunkedPush(e,t){let o=0;if(t.length<1e4)e.push(...t);else for(;o<t.length;)e.push(...t.slice(o,o+1e4)),o+=1e4}function subtokenize(e){const t={};let o=-1,n,a,i,c,r,s,h;const u=new SpliceBuffer(e);for(;++o<u.length;){for(;o in t;)o=t[o];if(n=u.get(o),o&&n[1].type==="chunkFlow"&&u.get(o-1)[1].type==="listItemPrefix"&&(s=n[1]._tokenizer.events,i=0,i<s.length&&s[i][1].type==="lineEndingBlank"&&(i+=2),i<s.length&&s[i][1].type==="content"))for(;++i<s.length&&s[i][1].type!=="content";)s[i][1].type==="chunkText"&&(s[i][1]._isInFirstContentOfListItem=!0,i++);if(n[0]==="enter")n[1].contentType&&(Object.assign(t,subcontent(u,o)),o=t[o],h=!0);else if(n[1]._container){for(i=o,a=void 0;i--;)if(c=u.get(i),c[1].type==="lineEnding"||c[1].type==="lineEndingBlank")c[0]==="enter"&&(a&&(u.get(a)[1].type="lineEndingBlank"),c[1].type="lineEnding",a=i);else if(!(c[1].type==="linePrefix"||c[1].type==="listItemIndent"))break;a&&(n[1].end={...u.get(a)[1].start},r=u.slice(a,o),r.unshift(n),u.splice(a,o-a+1,r))}}return splice(e,0,Number.POSITIVE_INFINITY,u.slice(0)),!h}function subcontent(e,t){const o=e.get(t)[1],n=e.get(t)[2];let a=t-1;const i=[];let c=o._tokenizer;c||(c=n.parser[o.contentType](o.start),o._contentTypeTextTrailing&&(c._contentTypeTextTrailing=!0));const r=c.events,s=[],h={};let u,p,g=-1,k=o,w=0,S=0;const R=[S];for(;k;){for(;e.get(++a)[1]!==k;);i.push(a),k._tokenizer||(u=n.sliceStream(k),k.next||u.push(null),p&&c.defineSkip(k.start),k._isInFirstContentOfListItem&&(c._gfmTasklistFirstContentOfListItem=!0),c.write(u),k._isInFirstContentOfListItem&&(c._gfmTasklistFirstContentOfListItem=void 0)),p=k,k=k.next}for(k=o;++g<r.length;)r[g][0]==="exit"&&r[g-1][0]==="enter"&&r[g][1].type===r[g-1][1].type&&r[g][1].start.line!==r[g][1].end.line&&(S=g+1,R.push(S),k._tokenizer=void 0,k.previous=void 0,k=k.next);for(c.events=[],k?(k._tokenizer=void 0,k.previous=void 0):R.pop(),g=R.length;g--;){const C=r.slice(R[g],R[g+1]),v=i.pop();s.push([v,v+C.length-1]),e.splice(v,2,C)}for(s.reverse(),g=-1;++g<s.length;)h[w+s[g][0]]=w+s[g][1],w+=s[g][1]-s[g][0]-1;return h}const content={resolve:resolveContent,tokenize:tokenizeContent},continuationConstruct={partial:!0,tokenize:tokenizeContinuation};function resolveContent(e){return subtokenize(e),e}function tokenizeContent(e,t){let o;return n;function n(r){return e.enter("content"),o=e.enter("chunkContent",{contentType:"content"}),a(r)}function a(r){return r===null?i(r):markdownLineEnding(r)?e.check(continuationConstruct,c,i)(r):(e.consume(r),a)}function i(r){return e.exit("chunkContent"),e.exit("content"),t(r)}function c(r){return e.consume(r),e.exit("chunkContent"),o.next=e.enter("chunkContent",{contentType:"content",previous:o}),o=o.next,a}}function tokenizeContinuation(e,t,o){const n=this;return a;function a(c){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),factorySpace(e,i,"linePrefix")}function i(c){if(c===null||markdownLineEnding(c))return o(c);const r=n.events[n.events.length-1];return!n.parser.constructs.disable.null.includes("codeIndented")&&r&&r[1].type==="linePrefix"&&r[2].sliceSerialize(r[1],!0).length>=4?t(c):e.interrupt(n.parser.constructs.flow,o,t)(c)}}function factoryDestination(e,t,o,n,a,i,c,r,s){const h=s||Number.POSITIVE_INFINITY;let u=0;return p;function p(C){return C===60?(e.enter(n),e.enter(a),e.enter(i),e.consume(C),e.exit(i),g):C===null||C===32||C===41||asciiControl(C)?o(C):(e.enter(n),e.enter(c),e.enter(r),e.enter("chunkString",{contentType:"string"}),S(C))}function g(C){return C===62?(e.enter(i),e.consume(C),e.exit(i),e.exit(a),e.exit(n),t):(e.enter(r),e.enter("chunkString",{contentType:"string"}),k(C))}function k(C){return C===62?(e.exit("chunkString"),e.exit(r),g(C)):C===null||C===60||markdownLineEnding(C)?o(C):(e.consume(C),C===92?w:k)}function w(C){return C===60||C===62||C===92?(e.consume(C),k):k(C)}function S(C){return!u&&(C===null||C===41||markdownLineEndingOrSpace(C))?(e.exit("chunkString"),e.exit(r),e.exit(c),e.exit(n),t(C)):u<h&&C===40?(e.consume(C),u++,S):C===41?(e.consume(C),u--,S):C===null||C===32||C===40||asciiControl(C)?o(C):(e.consume(C),C===92?R:S)}function R(C){return C===40||C===41||C===92?(e.consume(C),S):S(C)}}function factoryLabel(e,t,o,n,a,i){const c=this;let r=0,s;return h;function h(k){return e.enter(n),e.enter(a),e.consume(k),e.exit(a),e.enter(i),u}function u(k){return r>999||k===null||k===91||k===93&&!s||k===94&&!r&&"_hiddenFootnoteSupport"in c.parser.constructs?o(k):k===93?(e.exit(i),e.enter(a),e.consume(k),e.exit(a),e.exit(n),t):markdownLineEnding(k)?(e.enter("lineEnding"),e.consume(k),e.exit("lineEnding"),u):(e.enter("chunkString",{contentType:"string"}),p(k))}function p(k){return k===null||k===91||k===93||markdownLineEnding(k)||r++>999?(e.exit("chunkString"),u(k)):(e.consume(k),s||(s=!markdownSpace(k)),k===92?g:p)}function g(k){return k===91||k===92||k===93?(e.consume(k),r++,p):p(k)}}function factoryTitle(e,t,o,n,a,i){let c;return r;function r(g){return g===34||g===39||g===40?(e.enter(n),e.enter(a),e.consume(g),e.exit(a),c=g===40?41:g,s):o(g)}function s(g){return g===c?(e.enter(a),e.consume(g),e.exit(a),e.exit(n),t):(e.enter(i),h(g))}function h(g){return g===c?(e.exit(i),s(c)):g===null?o(g):markdownLineEnding(g)?(e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),factorySpace(e,h,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),u(g))}function u(g){return g===c||g===null||markdownLineEnding(g)?(e.exit("chunkString"),h(g)):(e.consume(g),g===92?p:u)}function p(g){return g===c||g===92?(e.consume(g),u):u(g)}}function factoryWhitespace(e,t){let o;return n;function n(a){return markdownLineEnding(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),o=!0,n):markdownSpace(a)?factorySpace(e,n,o?"linePrefix":"lineSuffix")(a):t(a)}}const definition={name:"definition",tokenize:tokenizeDefinition},titleBefore={partial:!0,tokenize:tokenizeTitleBefore};function tokenizeDefinition(e,t,o){const n=this;let a;return i;function i(k){return e.enter("definition"),c(k)}function c(k){return factoryLabel.call(n,e,r,o,"definitionLabel","definitionLabelMarker","definitionLabelString")(k)}function r(k){return a=normalizeIdentifier(n.sliceSerialize(n.events[n.events.length-1][1]).slice(1,-1)),k===58?(e.enter("definitionMarker"),e.consume(k),e.exit("definitionMarker"),s):o(k)}function s(k){return markdownLineEndingOrSpace(k)?factoryWhitespace(e,h)(k):h(k)}function h(k){return factoryDestination(e,u,o,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(k)}function u(k){return e.attempt(titleBefore,p,p)(k)}function p(k){return markdownSpace(k)?factorySpace(e,g,"whitespace")(k):g(k)}function g(k){return k===null||markdownLineEnding(k)?(e.exit("definition"),n.parser.defined.push(a),t(k)):o(k)}}function tokenizeTitleBefore(e,t,o){return n;function n(r){return markdownLineEndingOrSpace(r)?factoryWhitespace(e,a)(r):o(r)}function a(r){return factoryTitle(e,i,o,"definitionTitle","definitionTitleMarker","definitionTitleString")(r)}function i(r){return markdownSpace(r)?factorySpace(e,c,"whitespace")(r):c(r)}function c(r){return r===null||markdownLineEnding(r)?t(r):o(r)}}const hardBreakEscape={name:"hardBreakEscape",tokenize:tokenizeHardBreakEscape};function tokenizeHardBreakEscape(e,t,o){return n;function n(i){return e.enter("hardBreakEscape"),e.consume(i),a}function a(i){return markdownLineEnding(i)?(e.exit("hardBreakEscape"),t(i)):o(i)}}const headingAtx={name:"headingAtx",resolve:resolveHeadingAtx,tokenize:tokenizeHeadingAtx};function resolveHeadingAtx(e,t){let o=e.length-2,n=3,a,i;return e[n][1].type==="whitespace"&&(n+=2),o-2>n&&e[o][1].type==="whitespace"&&(o-=2),e[o][1].type==="atxHeadingSequence"&&(n===o-1||o-4>n&&e[o-2][1].type==="whitespace")&&(o-=n+1===o?2:4),o>n&&(a={type:"atxHeadingText",start:e[n][1].start,end:e[o][1].end},i={type:"chunkText",start:e[n][1].start,end:e[o][1].end,contentType:"text"},splice(e,n,o-n+1,[["enter",a,t],["enter",i,t],["exit",i,t],["exit",a,t]])),e}function tokenizeHeadingAtx(e,t,o){let n=0;return a;function a(u){return e.enter("atxHeading"),i(u)}function i(u){return e.enter("atxHeadingSequence"),c(u)}function c(u){return u===35&&n++<6?(e.consume(u),c):u===null||markdownLineEndingOrSpace(u)?(e.exit("atxHeadingSequence"),r(u)):o(u)}function r(u){return u===35?(e.enter("atxHeadingSequence"),s(u)):u===null||markdownLineEnding(u)?(e.exit("atxHeading"),t(u)):markdownSpace(u)?factorySpace(e,r,"whitespace")(u):(e.enter("atxHeadingText"),h(u))}function s(u){return u===35?(e.consume(u),s):(e.exit("atxHeadingSequence"),r(u))}function h(u){return u===null||u===35||markdownLineEndingOrSpace(u)?(e.exit("atxHeadingText"),r(u)):(e.consume(u),h)}}const htmlBlockNames=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],htmlRawNames=["pre","script","style","textarea"],htmlFlow={concrete:!0,name:"htmlFlow",resolveTo:resolveToHtmlFlow,tokenize:tokenizeHtmlFlow},blankLineBefore={partial:!0,tokenize:tokenizeBlankLineBefore},nonLazyContinuationStart={partial:!0,tokenize:tokenizeNonLazyContinuationStart};function resolveToHtmlFlow(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function tokenizeHtmlFlow(e,t,o){const n=this;let a,i,c,r,s;return h;function h(f){return u(f)}function u(f){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(f),p}function p(f){return f===33?(e.consume(f),g):f===47?(e.consume(f),i=!0,S):f===63?(e.consume(f),a=3,n.interrupt?t:m):asciiAlpha(f)?(e.consume(f),c=String.fromCharCode(f),R):o(f)}function g(f){return f===45?(e.consume(f),a=2,k):f===91?(e.consume(f),a=5,r=0,w):asciiAlpha(f)?(e.consume(f),a=4,n.interrupt?t:m):o(f)}function k(f){return f===45?(e.consume(f),n.interrupt?t:m):o(f)}function w(f){const Ce="CDATA[";return f===Ce.charCodeAt(r++)?(e.consume(f),r===Ce.length?n.interrupt?t:E:w):o(f)}function S(f){return asciiAlpha(f)?(e.consume(f),c=String.fromCharCode(f),R):o(f)}function R(f){if(f===null||f===47||f===62||markdownLineEndingOrSpace(f)){const Ce=f===47,ie=c.toLowerCase();return!Ce&&!i&&htmlRawNames.includes(ie)?(a=1,n.interrupt?t(f):E(f)):htmlBlockNames.includes(c.toLowerCase())?(a=6,Ce?(e.consume(f),C):n.interrupt?t(f):E(f)):(a=7,n.interrupt&&!n.parser.lazy[n.now().line]?o(f):i?v(f):j(f))}return f===45||asciiAlphanumeric(f)?(e.consume(f),c+=String.fromCharCode(f),R):o(f)}function C(f){return f===62?(e.consume(f),n.interrupt?t:E):o(f)}function v(f){return markdownSpace(f)?(e.consume(f),v):oe(f)}function j(f){return f===47?(e.consume(f),oe):f===58||f===95||asciiAlpha(f)?(e.consume(f),F):markdownSpace(f)?(e.consume(f),j):oe(f)}function F(f){return f===45||f===46||f===58||f===95||asciiAlphanumeric(f)?(e.consume(f),F):U(f)}function U(f){return f===61?(e.consume(f),b):markdownSpace(f)?(e.consume(f),U):j(f)}function b(f){return f===null||f===60||f===61||f===62||f===96?o(f):f===34||f===39?(e.consume(f),s=f,K):markdownSpace(f)?(e.consume(f),b):Z(f)}function K(f){return f===s?(e.consume(f),s=null,Y):f===null||markdownLineEnding(f)?o(f):(e.consume(f),K)}function Z(f){return f===null||f===34||f===39||f===47||f===60||f===61||f===62||f===96||markdownLineEndingOrSpace(f)?U(f):(e.consume(f),Z)}function Y(f){return f===47||f===62||markdownSpace(f)?j(f):o(f)}function oe(f){return f===62?(e.consume(f),H):o(f)}function H(f){return f===null||markdownLineEnding(f)?E(f):markdownSpace(f)?(e.consume(f),H):o(f)}function E(f){return f===45&&a===2?(e.consume(f),Q):f===60&&a===1?(e.consume(f),se):f===62&&a===4?(e.consume(f),_e):f===63&&a===3?(e.consume(f),m):f===93&&a===5?(e.consume(f),be):markdownLineEnding(f)&&(a===6||a===7)?(e.exit("htmlFlowData"),e.check(blankLineBefore,we,J)(f)):f===null||markdownLineEnding(f)?(e.exit("htmlFlowData"),J(f)):(e.consume(f),E)}function J(f){return e.check(nonLazyContinuationStart,z,we)(f)}function z(f){return e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),A}function A(f){return f===null||markdownLineEnding(f)?J(f):(e.enter("htmlFlowData"),E(f))}function Q(f){return f===45?(e.consume(f),m):E(f)}function se(f){return f===47?(e.consume(f),c="",ge):E(f)}function ge(f){if(f===62){const Ce=c.toLowerCase();return htmlRawNames.includes(Ce)?(e.consume(f),_e):E(f)}return asciiAlpha(f)&&c.length<8?(e.consume(f),c+=String.fromCharCode(f),ge):E(f)}function be(f){return f===93?(e.consume(f),m):E(f)}function m(f){return f===62?(e.consume(f),_e):f===45&&a===2?(e.consume(f),m):E(f)}function _e(f){return f===null||markdownLineEnding(f)?(e.exit("htmlFlowData"),we(f)):(e.consume(f),_e)}function we(f){return e.exit("htmlFlow"),t(f)}}function tokenizeNonLazyContinuationStart(e,t,o){const n=this;return a;function a(c){return markdownLineEnding(c)?(e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),i):o(c)}function i(c){return n.parser.lazy[n.now().line]?o(c):t(c)}}function tokenizeBlankLineBefore(e,t,o){return n;function n(a){return e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),e.attempt(blankLine,t,o)}}const htmlText={name:"htmlText",tokenize:tokenizeHtmlText};function tokenizeHtmlText(e,t,o){const n=this;let a,i,c;return r;function r(m){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(m),s}function s(m){return m===33?(e.consume(m),h):m===47?(e.consume(m),U):m===63?(e.consume(m),j):asciiAlpha(m)?(e.consume(m),Z):o(m)}function h(m){return m===45?(e.consume(m),u):m===91?(e.consume(m),i=0,w):asciiAlpha(m)?(e.consume(m),v):o(m)}function u(m){return m===45?(e.consume(m),k):o(m)}function p(m){return m===null?o(m):m===45?(e.consume(m),g):markdownLineEnding(m)?(c=p,se(m)):(e.consume(m),p)}function g(m){return m===45?(e.consume(m),k):p(m)}function k(m){return m===62?Q(m):m===45?g(m):p(m)}function w(m){const _e="CDATA[";return m===_e.charCodeAt(i++)?(e.consume(m),i===_e.length?S:w):o(m)}function S(m){return m===null?o(m):m===93?(e.consume(m),R):markdownLineEnding(m)?(c=S,se(m)):(e.consume(m),S)}function R(m){return m===93?(e.consume(m),C):S(m)}function C(m){return m===62?Q(m):m===93?(e.consume(m),C):S(m)}function v(m){return m===null||m===62?Q(m):markdownLineEnding(m)?(c=v,se(m)):(e.consume(m),v)}function j(m){return m===null?o(m):m===63?(e.consume(m),F):markdownLineEnding(m)?(c=j,se(m)):(e.consume(m),j)}function F(m){return m===62?Q(m):j(m)}function U(m){return asciiAlpha(m)?(e.consume(m),b):o(m)}function b(m){return m===45||asciiAlphanumeric(m)?(e.consume(m),b):K(m)}function K(m){return markdownLineEnding(m)?(c=K,se(m)):markdownSpace(m)?(e.consume(m),K):Q(m)}function Z(m){return m===45||asciiAlphanumeric(m)?(e.consume(m),Z):m===47||m===62||markdownLineEndingOrSpace(m)?Y(m):o(m)}function Y(m){return m===47?(e.consume(m),Q):m===58||m===95||asciiAlpha(m)?(e.consume(m),oe):markdownLineEnding(m)?(c=Y,se(m)):markdownSpace(m)?(e.consume(m),Y):Q(m)}function oe(m){return m===45||m===46||m===58||m===95||asciiAlphanumeric(m)?(e.consume(m),oe):H(m)}function H(m){return m===61?(e.consume(m),E):markdownLineEnding(m)?(c=H,se(m)):markdownSpace(m)?(e.consume(m),H):Y(m)}function E(m){return m===null||m===60||m===61||m===62||m===96?o(m):m===34||m===39?(e.consume(m),a=m,J):markdownLineEnding(m)?(c=E,se(m)):markdownSpace(m)?(e.consume(m),E):(e.consume(m),z)}function J(m){return m===a?(e.consume(m),a=void 0,A):m===null?o(m):markdownLineEnding(m)?(c=J,se(m)):(e.consume(m),J)}function z(m){return m===null||m===34||m===39||m===60||m===61||m===96?o(m):m===47||m===62||markdownLineEndingOrSpace(m)?Y(m):(e.consume(m),z)}function A(m){return m===47||m===62||markdownLineEndingOrSpace(m)?Y(m):o(m)}function Q(m){return m===62?(e.consume(m),e.exit("htmlTextData"),e.exit("htmlText"),t):o(m)}function se(m){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(m),e.exit("lineEnding"),ge}function ge(m){return markdownSpace(m)?factorySpace(e,be,"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(m):be(m)}function be(m){return e.enter("htmlTextData"),c(m)}}const labelEnd={name:"labelEnd",resolveAll:resolveAllLabelEnd,resolveTo:resolveToLabelEnd,tokenize:tokenizeLabelEnd},resourceConstruct={tokenize:tokenizeResource},referenceFullConstruct={tokenize:tokenizeReferenceFull},referenceCollapsedConstruct={tokenize:tokenizeReferenceCollapsed};function resolveAllLabelEnd(e){let t=-1;const o=[];for(;++t<e.length;){const n=e[t][1];if(o.push(e[t]),n.type==="labelImage"||n.type==="labelLink"||n.type==="labelEnd"){const a=n.type==="labelImage"?4:2;n.type="data",t+=a}}return e.length!==o.length&&splice(e,0,e.length,o),e}function resolveToLabelEnd(e,t){let o=e.length,n=0,a,i,c,r;for(;o--;)if(a=e[o][1],i){if(a.type==="link"||a.type==="labelLink"&&a._inactive)break;e[o][0]==="enter"&&a.type==="labelLink"&&(a._inactive=!0)}else if(c){if(e[o][0]==="enter"&&(a.type==="labelImage"||a.type==="labelLink")&&!a._balanced&&(i=o,a.type!=="labelLink")){n=2;break}}else a.type==="labelEnd"&&(c=o);const s={type:e[i][1].type==="labelLink"?"link":"image",start:{...e[i][1].start},end:{...e[e.length-1][1].end}},h={type:"label",start:{...e[i][1].start},end:{...e[c][1].end}},u={type:"labelText",start:{...e[i+n+2][1].end},end:{...e[c-2][1].start}};return r=[["enter",s,t],["enter",h,t]],r=push(r,e.slice(i+1,i+n+3)),r=push(r,[["enter",u,t]]),r=push(r,resolveAll(t.parser.constructs.insideSpan.null,e.slice(i+n+4,c-3),t)),r=push(r,[["exit",u,t],e[c-2],e[c-1],["exit",h,t]]),r=push(r,e.slice(c+1)),r=push(r,[["exit",s,t]]),splice(e,i,e.length,r),e}function tokenizeLabelEnd(e,t,o){const n=this;let a=n.events.length,i,c;for(;a--;)if((n.events[a][1].type==="labelImage"||n.events[a][1].type==="labelLink")&&!n.events[a][1]._balanced){i=n.events[a][1];break}return r;function r(g){return i?i._inactive?p(g):(c=n.parser.defined.includes(normalizeIdentifier(n.sliceSerialize({start:i.end,end:n.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(g),e.exit("labelMarker"),e.exit("labelEnd"),s):o(g)}function s(g){return g===40?e.attempt(resourceConstruct,u,c?u:p)(g):g===91?e.attempt(referenceFullConstruct,u,c?h:p)(g):c?u(g):p(g)}function h(g){return e.attempt(referenceCollapsedConstruct,u,p)(g)}function u(g){return t(g)}function p(g){return i._balanced=!0,o(g)}}function tokenizeResource(e,t,o){return n;function n(p){return e.enter("resource"),e.enter("resourceMarker"),e.consume(p),e.exit("resourceMarker"),a}function a(p){return markdownLineEndingOrSpace(p)?factoryWhitespace(e,i)(p):i(p)}function i(p){return p===41?u(p):factoryDestination(e,c,r,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(p)}function c(p){return markdownLineEndingOrSpace(p)?factoryWhitespace(e,s)(p):u(p)}function r(p){return o(p)}function s(p){return p===34||p===39||p===40?factoryTitle(e,h,o,"resourceTitle","resourceTitleMarker","resourceTitleString")(p):u(p)}function h(p){return markdownLineEndingOrSpace(p)?factoryWhitespace(e,u)(p):u(p)}function u(p){return p===41?(e.enter("resourceMarker"),e.consume(p),e.exit("resourceMarker"),e.exit("resource"),t):o(p)}}function tokenizeReferenceFull(e,t,o){const n=this;return a;function a(r){return factoryLabel.call(n,e,i,c,"reference","referenceMarker","referenceString")(r)}function i(r){return n.parser.defined.includes(normalizeIdentifier(n.sliceSerialize(n.events[n.events.length-1][1]).slice(1,-1)))?t(r):o(r)}function c(r){return o(r)}}function tokenizeReferenceCollapsed(e,t,o){return n;function n(i){return e.enter("reference"),e.enter("referenceMarker"),e.consume(i),e.exit("referenceMarker"),a}function a(i){return i===93?(e.enter("referenceMarker"),e.consume(i),e.exit("referenceMarker"),e.exit("reference"),t):o(i)}}const labelStartImage={name:"labelStartImage",resolveAll:labelEnd.resolveAll,tokenize:tokenizeLabelStartImage};function tokenizeLabelStartImage(e,t,o){const n=this;return a;function a(r){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(r),e.exit("labelImageMarker"),i}function i(r){return r===91?(e.enter("labelMarker"),e.consume(r),e.exit("labelMarker"),e.exit("labelImage"),c):o(r)}function c(r){return r===94&&"_hiddenFootnoteSupport"in n.parser.constructs?o(r):t(r)}}const labelStartLink={name:"labelStartLink",resolveAll:labelEnd.resolveAll,tokenize:tokenizeLabelStartLink};function tokenizeLabelStartLink(e,t,o){const n=this;return a;function a(c){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(c),e.exit("labelMarker"),e.exit("labelLink"),i}function i(c){return c===94&&"_hiddenFootnoteSupport"in n.parser.constructs?o(c):t(c)}}const lineEnding={name:"lineEnding",tokenize:tokenizeLineEnding};function tokenizeLineEnding(e,t){return o;function o(n){return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),factorySpace(e,t,"linePrefix")}}const thematicBreak$1={name:"thematicBreak",tokenize:tokenizeThematicBreak};function tokenizeThematicBreak(e,t,o){let n=0,a;return i;function i(h){return e.enter("thematicBreak"),c(h)}function c(h){return a=h,r(h)}function r(h){return h===a?(e.enter("thematicBreakSequence"),s(h)):n>=3&&(h===null||markdownLineEnding(h))?(e.exit("thematicBreak"),t(h)):o(h)}function s(h){return h===a?(e.consume(h),n++,s):(e.exit("thematicBreakSequence"),markdownSpace(h)?factorySpace(e,r,"whitespace")(h):r(h))}}const list$1={continuation:{tokenize:tokenizeListContinuation},exit:tokenizeListEnd,name:"list",tokenize:tokenizeListStart},listItemPrefixWhitespaceConstruct={partial:!0,tokenize:tokenizeListItemPrefixWhitespace},indentConstruct={partial:!0,tokenize:tokenizeIndent};function tokenizeListStart(e,t,o){const n=this,a=n.events[n.events.length-1];let i=a&&a[1].type==="linePrefix"?a[2].sliceSerialize(a[1],!0).length:0,c=0;return r;function r(k){const w=n.containerState.type||(k===42||k===43||k===45?"listUnordered":"listOrdered");if(w==="listUnordered"?!n.containerState.marker||k===n.containerState.marker:asciiDigit(k)){if(n.containerState.type||(n.containerState.type=w,e.enter(w,{_container:!0})),w==="listUnordered")return e.enter("listItemPrefix"),k===42||k===45?e.check(thematicBreak$1,o,h)(k):h(k);if(!n.interrupt||k===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),s(k)}return o(k)}function s(k){return asciiDigit(k)&&++c<10?(e.consume(k),s):(!n.interrupt||c<2)&&(n.containerState.marker?k===n.containerState.marker:k===41||k===46)?(e.exit("listItemValue"),h(k)):o(k)}function h(k){return e.enter("listItemMarker"),e.consume(k),e.exit("listItemMarker"),n.containerState.marker=n.containerState.marker||k,e.check(blankLine,n.interrupt?o:u,e.attempt(listItemPrefixWhitespaceConstruct,g,p))}function u(k){return n.containerState.initialBlankLine=!0,i++,g(k)}function p(k){return markdownSpace(k)?(e.enter("listItemPrefixWhitespace"),e.consume(k),e.exit("listItemPrefixWhitespace"),g):o(k)}function g(k){return n.containerState.size=i+n.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(k)}}function tokenizeListContinuation(e,t,o){const n=this;return n.containerState._closeFlow=void 0,e.check(blankLine,a,i);function a(r){return n.containerState.furtherBlankLines=n.containerState.furtherBlankLines||n.containerState.initialBlankLine,factorySpace(e,t,"listItemIndent",n.containerState.size+1)(r)}function i(r){return n.containerState.furtherBlankLines||!markdownSpace(r)?(n.containerState.furtherBlankLines=void 0,n.containerState.initialBlankLine=void 0,c(r)):(n.containerState.furtherBlankLines=void 0,n.containerState.initialBlankLine=void 0,e.attempt(indentConstruct,t,c)(r))}function c(r){return n.containerState._closeFlow=!0,n.interrupt=void 0,factorySpace(e,e.attempt(list$1,t,o),"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(r)}}function tokenizeIndent(e,t,o){const n=this;return factorySpace(e,a,"listItemIndent",n.containerState.size+1);function a(i){const c=n.events[n.events.length-1];return c&&c[1].type==="listItemIndent"&&c[2].sliceSerialize(c[1],!0).length===n.containerState.size?t(i):o(i)}}function tokenizeListEnd(e){e.exit(this.containerState.type)}function tokenizeListItemPrefixWhitespace(e,t,o){const n=this;return factorySpace(e,a,"listItemPrefixWhitespace",n.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function a(i){const c=n.events[n.events.length-1];return!markdownSpace(i)&&c&&c[1].type==="listItemPrefixWhitespace"?t(i):o(i)}}const setextUnderline={name:"setextUnderline",resolveTo:resolveToSetextUnderline,tokenize:tokenizeSetextUnderline};function resolveToSetextUnderline(e,t){let o=e.length,n,a,i;for(;o--;)if(e[o][0]==="enter"){if(e[o][1].type==="content"){n=o;break}e[o][1].type==="paragraph"&&(a=o)}else e[o][1].type==="content"&&e.splice(o,1),!i&&e[o][1].type==="definition"&&(i=o);const c={type:"setextHeading",start:{...e[n][1].start},end:{...e[e.length-1][1].end}};return e[a][1].type="setextHeadingText",i?(e.splice(a,0,["enter",c,t]),e.splice(i+1,0,["exit",e[n][1],t]),e[n][1].end={...e[i][1].end}):e[n][1]=c,e.push(["exit",c,t]),e}function tokenizeSetextUnderline(e,t,o){const n=this;let a;return i;function i(h){let u=n.events.length,p;for(;u--;)if(n.events[u][1].type!=="lineEnding"&&n.events[u][1].type!=="linePrefix"&&n.events[u][1].type!=="content"){p=n.events[u][1].type==="paragraph";break}return!n.parser.lazy[n.now().line]&&(n.interrupt||p)?(e.enter("setextHeadingLine"),a=h,c(h)):o(h)}function c(h){return e.enter("setextHeadingLineSequence"),r(h)}function r(h){return h===a?(e.consume(h),r):(e.exit("setextHeadingLineSequence"),markdownSpace(h)?factorySpace(e,s,"lineSuffix")(h):s(h))}function s(h){return h===null||markdownLineEnding(h)?(e.exit("setextHeadingLine"),t(h)):o(h)}}const flow$1={tokenize:initializeFlow};function initializeFlow(e){const t=this,o=e.attempt(blankLine,n,e.attempt(this.parser.constructs.flowInitial,a,factorySpace(e,e.attempt(this.parser.constructs.flow,a,e.attempt(content,a)),"linePrefix")));return o;function n(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),t.currentConstruct=void 0,o}function a(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t.currentConstruct=void 0,o}}const resolver={resolveAll:createResolver()},string$1=initializeFactory("string"),text$2=initializeFactory("text");function initializeFactory(e){return{resolveAll:createResolver(e==="text"?resolveAllLineSuffixes:void 0),tokenize:t};function t(o){const n=this,a=this.parser.constructs[e],i=o.attempt(a,c,r);return c;function c(u){return h(u)?i(u):r(u)}function r(u){if(u===null){o.consume(u);return}return o.enter("data"),o.consume(u),s}function s(u){return h(u)?(o.exit("data"),i(u)):(o.consume(u),s)}function h(u){if(u===null)return!0;const p=a[u];let g=-1;if(p)for(;++g<p.length;){const k=p[g];if(!k.previous||k.previous.call(n,n.previous))return!0}return!1}}}function createResolver(e){return t;function t(o,n){let a=-1,i;for(;++a<=o.length;)i===void 0?o[a]&&o[a][1].type==="data"&&(i=a,a++):(!o[a]||o[a][1].type!=="data")&&(a!==i+2&&(o[i][1].end=o[a-1][1].end,o.splice(i+2,a-i-2),a=i+2),i=void 0);return e?e(o,n):o}}function resolveAllLineSuffixes(e,t){let o=0;for(;++o<=e.length;)if((o===e.length||e[o][1].type==="lineEnding")&&e[o-1][1].type==="data"){const n=e[o-1][1],a=t.sliceStream(n);let i=a.length,c=-1,r=0,s;for(;i--;){const h=a[i];if(typeof h=="string"){for(c=h.length;h.charCodeAt(c-1)===32;)r++,c--;if(c)break;c=-1}else if(h===-2)s=!0,r++;else if(h!==-1){i++;break}}if(t._contentTypeTextTrailing&&o===e.length&&(r=0),r){const h={type:o===e.length||s||r<2?"lineSuffix":"hardBreakTrailing",start:{_bufferIndex:i?c:n.start._bufferIndex+c,_index:n.start._index+i,line:n.end.line,column:n.end.column-r,offset:n.end.offset-r},end:{...n.end}};n.end={...h.start},n.start.offset===n.end.offset?Object.assign(n,h):(e.splice(o,0,["enter",h,t],["exit",h,t]),o+=2)}o++}return e}const document$1={42:list$1,43:list$1,45:list$1,48:list$1,49:list$1,50:list$1,51:list$1,52:list$1,53:list$1,54:list$1,55:list$1,56:list$1,57:list$1,62:blockQuote},contentInitial={91:definition},flowInitial={[-2]:codeIndented,[-1]:codeIndented,32:codeIndented},flow={35:headingAtx,42:thematicBreak$1,45:[setextUnderline,thematicBreak$1],60:htmlFlow,61:setextUnderline,95:thematicBreak$1,96:codeFenced,126:codeFenced},string={38:characterReference,92:characterEscape},text$1={[-5]:lineEnding,[-4]:lineEnding,[-3]:lineEnding,33:labelStartImage,38:characterReference,42:attention,60:[autolink,htmlText],91:labelStartLink,92:[hardBreakEscape,characterEscape],93:labelEnd,95:attention,96:codeText},insideSpan={null:[attention,resolver]},attentionMarkers={null:[42,95]},disable={null:[]},defaultConstructs=Object.freeze(Object.defineProperty({__proto__:null,attentionMarkers,contentInitial,disable,document:document$1,flow,flowInitial,insideSpan,string,text:text$1},Symbol.toStringTag,{value:"Module"}));function createTokenizer(e,t,o){let n={_bufferIndex:-1,_index:0,line:o&&o.line||1,column:o&&o.column||1,offset:o&&o.offset||0};const a={},i=[];let c=[],r=[];const s={attempt:K(U),check:K(b),consume:v,enter:j,exit:F,interrupt:K(b,{interrupt:!0})},h={code:null,containerState:{},defineSkip:S,events:[],now:w,parser:e,previous:null,sliceSerialize:g,sliceStream:k,write:p};let u=t.tokenize.call(h,s);return t.resolveAll&&i.push(t),h;function p(H){return c=push(c,H),R(),c[c.length-1]!==null?[]:(Z(t,0),h.events=resolveAll(i,h.events,h),h.events)}function g(H,E){return serializeChunks(k(H),E)}function k(H){return sliceChunks(c,H)}function w(){const{_bufferIndex:H,_index:E,line:J,column:z,offset:A}=n;return{_bufferIndex:H,_index:E,line:J,column:z,offset:A}}function S(H){a[H.line]=H.column,oe()}function R(){let H;for(;n._index<c.length;){const E=c[n._index];if(typeof E=="string")for(H=n._index,n._bufferIndex<0&&(n._bufferIndex=0);n._index===H&&n._bufferIndex<E.length;)C(E.charCodeAt(n._bufferIndex));else C(E)}}function C(H){u=u(H)}function v(H){markdownLineEnding(H)?(n.line++,n.column=1,n.offset+=H===-3?2:1,oe()):H!==-1&&(n.column++,n.offset++),n._bufferIndex<0?n._index++:(n._bufferIndex++,n._bufferIndex===c[n._index].length&&(n._bufferIndex=-1,n._index++)),h.previous=H}function j(H,E){const J=E||{};return J.type=H,J.start=w(),h.events.push(["enter",J,h]),r.push(J),J}function F(H){const E=r.pop();return E.end=w(),h.events.push(["exit",E,h]),E}function U(H,E){Z(H,E.from)}function b(H,E){E.restore()}function K(H,E){return J;function J(z,A,Q){let se,ge,be,m;return Array.isArray(z)?we(z):"tokenize"in z?we([z]):_e(z);function _e(le){return D;function D(W){const ce=W!==null&&le[W],he=W!==null&&le.null,ve=[...Array.isArray(ce)?ce:ce?[ce]:[],...Array.isArray(he)?he:he?[he]:[]];return we(ve)(W)}}function we(le){return se=le,ge=0,le.length===0?Q:f(le[ge])}function f(le){return D;function D(W){return m=Y(),be=le,le.partial||(h.currentConstruct=le),le.name&&h.parser.constructs.disable.null.includes(le.name)?ie():le.tokenize.call(E?Object.assign(Object.create(h),E):h,s,Ce,ie)(W)}}function Ce(le){return H(be,m),A}function ie(le){return m.restore(),++ge<se.length?f(se[ge]):Q}}}function Z(H,E){H.resolveAll&&!i.includes(H)&&i.push(H),H.resolve&&splice(h.events,E,h.events.length-E,H.resolve(h.events.slice(E),h)),H.resolveTo&&(h.events=H.resolveTo(h.events,h))}function Y(){const H=w(),E=h.previous,J=h.currentConstruct,z=h.events.length,A=Array.from(r);return{from:z,restore:Q};function Q(){n=H,h.previous=E,h.currentConstruct=J,h.events.length=z,r=A,oe()}}function oe(){n.line in a&&n.column<2&&(n.column=a[n.line],n.offset+=a[n.line]-1)}}function sliceChunks(e,t){const o=t.start._index,n=t.start._bufferIndex,a=t.end._index,i=t.end._bufferIndex;let c;if(o===a)c=[e[o].slice(n,i)];else{if(c=e.slice(o,a),n>-1){const r=c[0];typeof r=="string"?c[0]=r.slice(n):c.shift()}i>0&&c.push(e[a].slice(0,i))}return c}function serializeChunks(e,t){let o=-1;const n=[];let a;for(;++o<e.length;){const i=e[o];let c;if(typeof i=="string")c=i;else switch(i){case-5:{c="\r";break}case-4:{c=`
8230
+ `,h="/",u="*",p="",g="comment",k="declaration";function w(q,b){if(typeof q!="string")throw new TypeError("First argument must be a string");if(!q)return[];b=b||{};var v=1,j=1;function F(z){var A=z.match(t);A&&(v+=A.length);var Q=z.lastIndexOf(s);j=~Q?z.length-Q:j+z.length}function U(){var z={line:v,column:j};return function(A){return A.position=new C(z),ee(),A}}function C(z){this.start=z,this.end={line:v,column:j},this.source=b.source}C.prototype.content=q;function K(z){var A=new Error(b.source+":"+v+":"+j+": "+z);if(A.reason=z,A.filename=b.source,A.line=v,A.column=j,A.source=q,!b.silent)throw A}function Z(z){var A=z.exec(q);if(A){var Q=A[0];return F(Q),q=q.slice(Q.length),A}}function ee(){Z(o)}function oe(z){var A;for(z=z||[];A=H();)A!==!1&&z.push(A);return z}function H(){var z=U();if(!(h!=q.charAt(0)||u!=q.charAt(1))){for(var A=2;p!=q.charAt(A)&&(u!=q.charAt(A)||h!=q.charAt(A+1));)++A;if(A+=2,p===q.charAt(A-1))return K("End of comment missing");var Q=q.slice(2,A-2);return j+=2,F(Q),q=q.slice(A),j+=2,z({type:g,comment:Q})}}function E(){var z=U(),A=Z(n);if(A){if(H(),!Z(a))return K("property missing ':'");var Q=Z(i),se=z({type:k,property:N(A[0].replace(e,p)),value:Q?N(Q[0].replace(e,p)):p});return Z(c),se}}function J(){var z=[];oe(z);for(var A;A=E();)A!==!1&&(z.push(A),oe(z));return z}return ee(),J()}function N(q){return q?q.replace(r,p):p}return cjs$1=w,cjs$1}var hasRequiredCjs$1;function requireCjs$1(){if(hasRequiredCjs$1)return cjs$2;hasRequiredCjs$1=1;var e=cjs$2&&cjs$2.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(cjs$2,"__esModule",{value:!0}),cjs$2.default=o;const t=e(requireCjs$2());function o(n,a){let i=null;if(!n||typeof n!="string")return i;const c=(0,t.default)(n),r=typeof a=="function";return c.forEach(s=>{if(s.type!=="declaration")return;const{property:h,value:u}=s;r?a(h,u,s):u&&(i=i||{},i[h]=u)}),i}return cjs$2}var utilities={},hasRequiredUtilities;function requireUtilities(){if(hasRequiredUtilities)return utilities;hasRequiredUtilities=1,Object.defineProperty(utilities,"__esModule",{value:!0}),utilities.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,t=/-([a-z])/g,o=/^[^-]+$/,n=/^-(webkit|moz|ms|o|khtml)-/,a=/^-(ms)-/,i=function(h){return!h||o.test(h)||e.test(h)},c=function(h,u){return u.toUpperCase()},r=function(h,u){return"".concat(u,"-")},s=function(h,u){return u===void 0&&(u={}),i(h)?h:(h=h.toLowerCase(),u.reactCompat?h=h.replace(a,r):h=h.replace(n,r),h.replace(t,c))};return utilities.camelCase=s,utilities}var cjs,hasRequiredCjs;function requireCjs(){if(hasRequiredCjs)return cjs;hasRequiredCjs=1;var e=cjs&&cjs.__importDefault||function(a){return a&&a.__esModule?a:{default:a}},t=e(requireCjs$1()),o=requireUtilities();function n(a,i){var c={};return!a||typeof a!="string"||(0,t.default)(a,function(r,s){r&&s&&(c[(0,o.camelCase)(r,i)]=s)}),c}return n.default=n,cjs=n,cjs}var cjsExports=requireCjs();const styleToJs=getDefaultExportFromCjs(cjsExports),pointEnd=point$2("end"),pointStart=point$2("start");function point$2(e){return t;function t(o){const n=o&&o.position&&o.position[e]||{};if(typeof n.line=="number"&&n.line>0&&typeof n.column=="number"&&n.column>0)return{line:n.line,column:n.column,offset:typeof n.offset=="number"&&n.offset>-1?n.offset:void 0}}}function position$1(e){const t=pointStart(e),o=pointEnd(e);if(t&&o)return{start:t,end:o}}function stringifyPosition(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?position(e.position):"start"in e||"end"in e?position(e):"line"in e||"column"in e?point$1(e):""}function point$1(e){return index(e&&e.line)+":"+index(e&&e.column)}function position(e){return point$1(e&&e.start)+"-"+point$1(e&&e.end)}function index(e){return e&&typeof e=="number"?e:1}class VFileMessage extends Error{constructor(t,o,n){super(),typeof o=="string"&&(n=o,o=void 0);let a="",i={},c=!1;if(o&&("line"in o&&"column"in o?i={place:o}:"start"in o&&"end"in o?i={place:o}:"type"in o?i={ancestors:[o],place:o.position}:i={...o}),typeof t=="string"?a=t:!i.cause&&t&&(c=!0,a=t.message,i.cause=t),!i.ruleId&&!i.source&&typeof n=="string"){const s=n.indexOf(":");s===-1?i.ruleId=n:(i.source=n.slice(0,s),i.ruleId=n.slice(s+1))}if(!i.place&&i.ancestors&&i.ancestors){const s=i.ancestors[i.ancestors.length-1];s&&(i.place=s.position)}const r=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=r?r.column:void 0,this.fatal=void 0,this.file="",this.message=a,this.line=r?r.line:void 0,this.name=stringifyPosition(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=c&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}VFileMessage.prototype.file="";VFileMessage.prototype.name="";VFileMessage.prototype.reason="";VFileMessage.prototype.message="";VFileMessage.prototype.stack="";VFileMessage.prototype.column=void 0;VFileMessage.prototype.line=void 0;VFileMessage.prototype.ancestors=void 0;VFileMessage.prototype.cause=void 0;VFileMessage.prototype.fatal=void 0;VFileMessage.prototype.place=void 0;VFileMessage.prototype.ruleId=void 0;VFileMessage.prototype.source=void 0;const own$3={}.hasOwnProperty,emptyMap=new Map,cap=/[A-Z]/g,tableElements=new Set(["table","tbody","thead","tfoot","tr"]),tableCellElement=new Set(["td","th"]),docs="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function toJsxRuntime(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const o=t.filePath||void 0;let n;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");n=developmentCreate(o,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");n=productionCreate(o,t.jsx,t.jsxs)}const a={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:n,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:o,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?svg:html$1,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=one$1(a,e,void 0);return i&&typeof i!="string"?i:a.create(e,a.Fragment,{children:i||void 0},void 0)}function one$1(e,t,o){if(t.type==="element")return element$1(e,t,o);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return mdxExpression(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return mdxJsxElement(e,t,o);if(t.type==="mdxjsEsm")return mdxEsm(e,t);if(t.type==="root")return root$1(e,t,o);if(t.type==="text")return text$3(e,t)}function element$1(e,t,o){const n=e.schema;let a=n;t.tagName.toLowerCase()==="svg"&&n.space==="html"&&(a=svg,e.schema=a),e.ancestors.push(t);const i=findComponentFromName(e,t.tagName,!1),c=createElementProps(e,t);let r=createChildren(e,t);return tableElements.has(t.tagName)&&(r=r.filter(function(s){return typeof s=="string"?!whitespace(s):!0})),addNode(e,c,i,t),addChildren(c,r),e.ancestors.pop(),e.schema=n,e.create(t,i,c,o)}function mdxExpression(e,t){if(t.data&&t.data.estree&&e.evaluater){const n=t.data.estree.body[0];return n.type,e.evaluater.evaluateExpression(n.expression)}crashEstree(e,t.position)}function mdxEsm(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);crashEstree(e,t.position)}function mdxJsxElement(e,t,o){const n=e.schema;let a=n;t.name==="svg"&&n.space==="html"&&(a=svg,e.schema=a),e.ancestors.push(t);const i=t.name===null?e.Fragment:findComponentFromName(e,t.name,!0),c=createJsxElementProps(e,t),r=createChildren(e,t);return addNode(e,c,i,t),addChildren(c,r),e.ancestors.pop(),e.schema=n,e.create(t,i,c,o)}function root$1(e,t,o){const n={};return addChildren(n,createChildren(e,t)),e.create(t,e.Fragment,n,o)}function text$3(e,t){return t.value}function addNode(e,t,o,n){typeof o!="string"&&o!==e.Fragment&&e.passNode&&(t.node=n)}function addChildren(e,t){if(t.length>0){const o=t.length>1?t:t[0];o&&(e.children=o)}}function productionCreate(e,t,o){return n;function n(a,i,c,r){const h=Array.isArray(c.children)?o:t;return r?h(i,c,r):h(i,c)}}function developmentCreate(e,t){return o;function o(n,a,i,c){const r=Array.isArray(i.children),s=pointStart(n);return t(a,i,c,r,{columnNumber:s?s.column-1:void 0,fileName:e,lineNumber:s?s.line:void 0},void 0)}}function createElementProps(e,t){const o={};let n,a;for(a in t.properties)if(a!=="children"&&own$3.call(t.properties,a)){const i=createProperty(e,a,t.properties[a]);if(i){const[c,r]=i;e.tableCellAlignToStyle&&c==="align"&&typeof r=="string"&&tableCellElement.has(t.tagName)?n=r:o[c]=r}}if(n){const i=o.style||(o.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=n}return o}function createJsxElementProps(e,t){const o={};for(const n of t.attributes)if(n.type==="mdxJsxExpressionAttribute")if(n.data&&n.data.estree&&e.evaluater){const i=n.data.estree.body[0];i.type;const c=i.expression;c.type;const r=c.properties[0];r.type,Object.assign(o,e.evaluater.evaluateExpression(r.argument))}else crashEstree(e,t.position);else{const a=n.name;let i;if(n.value&&typeof n.value=="object")if(n.value.data&&n.value.data.estree&&e.evaluater){const r=n.value.data.estree.body[0];r.type,i=e.evaluater.evaluateExpression(r.expression)}else crashEstree(e,t.position);else i=n.value===null?!0:n.value;o[a]=i}return o}function createChildren(e,t){const o=[];let n=-1;const a=e.passKeys?new Map:emptyMap;for(;++n<t.children.length;){const i=t.children[n];let c;if(e.passKeys){const s=i.type==="element"?i.tagName:i.type==="mdxJsxFlowElement"||i.type==="mdxJsxTextElement"?i.name:void 0;if(s){const h=a.get(s)||0;c=s+"-"+h,a.set(s,h+1)}}const r=one$1(e,i,c);r!==void 0&&o.push(r)}return o}function createProperty(e,t,o){const n=find(e.schema,t);if(!(o==null||typeof o=="number"&&Number.isNaN(o))){if(Array.isArray(o)&&(o=n.commaSeparated?stringify$1(o):stringify(o)),n.property==="style"){let a=typeof o=="object"?o:parseStyle(e,String(o));return e.stylePropertyNameCase==="css"&&(a=transformStylesToCssCasing(a)),["style",a]}return[e.elementAttributeNameCase==="react"&&n.space?hastToReact[n.property]||n.property:n.attribute,o]}}function parseStyle(e,t){try{return styleToJs(t,{reactCompat:!0})}catch(o){if(e.ignoreInvalidStyle)return{};const n=o,a=new VFileMessage("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:n,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw a.file=e.filePath||void 0,a.url=docs+"#cannot-parse-style-attribute",a}}function findComponentFromName(e,t,o){let n;if(!o)n={type:"Literal",value:t};else if(t.includes(".")){const a=t.split(".");let i=-1,c;for(;++i<a.length;){const r=name(a[i])?{type:"Identifier",name:a[i]}:{type:"Literal",value:a[i]};c=c?{type:"MemberExpression",object:c,property:r,computed:!!(i&&r.type==="Literal"),optional:!1}:r}n=c}else n=name(t)&&!/^[a-z]/.test(t)?{type:"Identifier",name:t}:{type:"Literal",value:t};if(n.type==="Literal"){const a=n.value;return own$3.call(e.components,a)?e.components[a]:a}if(e.evaluater)return e.evaluater.evaluateExpression(n);crashEstree(e)}function crashEstree(e,t){const o=new VFileMessage("Cannot handle MDX estrees without `createEvaluater`",{ancestors:e.ancestors,place:t,ruleId:"mdx-estree",source:"hast-util-to-jsx-runtime"});throw o.file=e.filePath||void 0,o.url=docs+"#cannot-handle-mdx-estrees-without-createevaluater",o}function transformStylesToCssCasing(e){const t={};let o;for(o in e)own$3.call(e,o)&&(t[transformStyleToCssCasing(o)]=e[o]);return t}function transformStyleToCssCasing(e){let t=e.replace(cap,toDash);return t.slice(0,3)==="ms-"&&(t="-"+t),t}function toDash(e){return"-"+e.toLowerCase()}const urlAttributes={action:["form"],cite:["blockquote","del","ins","q"],data:["object"],formAction:["button","input"],href:["a","area","base","link"],icon:["menuitem"],itemId:null,manifest:["html"],ping:["a","area"],poster:["video"],src:["audio","embed","iframe","img","input","script","source","track","video"]},emptyOptions$1={};function toString$1(e,t){const o=emptyOptions$1,n=typeof o.includeImageAlt=="boolean"?o.includeImageAlt:!0,a=typeof o.includeHtml=="boolean"?o.includeHtml:!0;return one(e,n,a)}function one(e,t,o){if(node(e)){if("value"in e)return e.type==="html"&&!o?"":e.value;if(t&&"alt"in e&&e.alt)return e.alt;if("children"in e)return all(e.children,t,o)}return Array.isArray(e)?all(e,t,o):""}function all(e,t,o){const n=[];let a=-1;for(;++a<e.length;)n[a]=one(e[a],t,o);return n.join("")}function node(e){return!!(e&&typeof e=="object")}const element=document.createElement("i");function decodeNamedCharacterReference(e){const t="&"+e+";";element.innerHTML=t;const o=element.textContent;return o.charCodeAt(o.length-1)===59&&e!=="semi"||o===t?!1:o}function splice(e,t,o,n){const a=e.length;let i=0,c;if(t<0?t=-t>a?0:a+t:t=t>a?a:t,o=o>0?o:0,n.length<1e4)c=Array.from(n),c.unshift(t,o),e.splice(...c);else for(o&&e.splice(t,o);i<n.length;)c=n.slice(i,i+1e4),c.unshift(t,0),e.splice(...c),i+=1e4,t+=1e4}function push(e,t){return e.length>0?(splice(e,e.length,0,t),e):t}const hasOwnProperty={}.hasOwnProperty;function combineExtensions(e){const t={};let o=-1;for(;++o<e.length;)syntaxExtension(t,e[o]);return t}function syntaxExtension(e,t){let o;for(o in t){const a=(hasOwnProperty.call(e,o)?e[o]:void 0)||(e[o]={}),i=t[o];let c;if(i)for(c in i){hasOwnProperty.call(a,c)||(a[c]=[]);const r=i[c];constructs(a[c],Array.isArray(r)?r:r?[r]:[])}}}function constructs(e,t){let o=-1;const n=[];for(;++o<t.length;)(t[o].add==="after"?e:n).push(t[o]);splice(e,0,0,n)}function decodeNumericCharacterReference(e,t){const o=Number.parseInt(e,t);return o<9||o===11||o>13&&o<32||o>126&&o<160||o>55295&&o<57344||o>64975&&o<65008||(o&65535)===65535||(o&65535)===65534||o>1114111?"�":String.fromCodePoint(o)}function normalizeIdentifier(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const asciiAlpha=regexCheck(/[A-Za-z]/),asciiAlphanumeric=regexCheck(/[\dA-Za-z]/),asciiAtext=regexCheck(/[#-'*+\--9=?A-Z^-~]/);function asciiControl(e){return e!==null&&(e<32||e===127)}const asciiDigit=regexCheck(/\d/),asciiHexDigit=regexCheck(/[\dA-Fa-f]/),asciiPunctuation=regexCheck(/[!-/:-@[-`{-~]/);function markdownLineEnding(e){return e!==null&&e<-2}function markdownLineEndingOrSpace(e){return e!==null&&(e<0||e===32)}function markdownSpace(e){return e===-2||e===-1||e===32}const unicodePunctuation=regexCheck(/\p{P}|\p{S}/u),unicodeWhitespace=regexCheck(/\s/);function regexCheck(e){return t;function t(o){return o!==null&&o>-1&&e.test(String.fromCharCode(o))}}function normalizeUri(e){const t=[];let o=-1,n=0,a=0;for(;++o<e.length;){const i=e.charCodeAt(o);let c="";if(i===37&&asciiAlphanumeric(e.charCodeAt(o+1))&&asciiAlphanumeric(e.charCodeAt(o+2)))a=2;else if(i<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(i))||(c=String.fromCharCode(i));else if(i>55295&&i<57344){const r=e.charCodeAt(o+1);i<56320&&r>56319&&r<57344?(c=String.fromCharCode(i,r),a=1):c="�"}else c=String.fromCharCode(i);c&&(t.push(e.slice(n,o),encodeURIComponent(c)),n=o+a+1,c=""),a&&(o+=a,a=0)}return t.join("")+e.slice(n)}function factorySpace(e,t,o,n){const a=n?n-1:Number.POSITIVE_INFINITY;let i=0;return c;function c(s){return markdownSpace(s)?(e.enter(o),r(s)):t(s)}function r(s){return markdownSpace(s)&&i++<a?(e.consume(s),r):(e.exit(o),t(s))}}const content$1={tokenize:initializeContent};function initializeContent(e){const t=e.attempt(this.parser.constructs.contentInitial,n,a);let o;return t;function n(r){if(r===null){e.consume(r);return}return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),factorySpace(e,t,"linePrefix")}function a(r){return e.enter("paragraph"),i(r)}function i(r){const s=e.enter("chunkText",{contentType:"text",previous:o});return o&&(o.next=s),o=s,c(r)}function c(r){if(r===null){e.exit("chunkText"),e.exit("paragraph"),e.consume(r);return}return markdownLineEnding(r)?(e.consume(r),e.exit("chunkText"),i):(e.consume(r),c)}}const document$2={tokenize:initializeDocument},containerConstruct={tokenize:tokenizeContainer};function initializeDocument(e){const t=this,o=[];let n=0,a,i,c;return r;function r(j){if(n<o.length){const F=o[n];return t.containerState=F[1],e.attempt(F[0].continuation,s,h)(j)}return h(j)}function s(j){if(n++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,a&&v();const F=t.events.length;let U=F,C;for(;U--;)if(t.events[U][0]==="exit"&&t.events[U][1].type==="chunkFlow"){C=t.events[U][1].end;break}b(n);let K=F;for(;K<t.events.length;)t.events[K][1].end={...C},K++;return splice(t.events,U+1,0,t.events.slice(F)),t.events.length=K,h(j)}return r(j)}function h(j){if(n===o.length){if(!a)return g(j);if(a.currentConstruct&&a.currentConstruct.concrete)return w(j);t.interrupt=!!(a.currentConstruct&&!a._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(containerConstruct,u,p)(j)}function u(j){return a&&v(),b(n),g(j)}function p(j){return t.parser.lazy[t.now().line]=n!==o.length,c=t.now().offset,w(j)}function g(j){return t.containerState={},e.attempt(containerConstruct,k,w)(j)}function k(j){return n++,o.push([t.currentConstruct,t.containerState]),g(j)}function w(j){if(j===null){a&&v(),b(0),e.consume(j);return}return a=a||t.parser.flow(t.now()),e.enter("chunkFlow",{_tokenizer:a,contentType:"flow",previous:i}),N(j)}function N(j){if(j===null){q(e.exit("chunkFlow"),!0),b(0),e.consume(j);return}return markdownLineEnding(j)?(e.consume(j),q(e.exit("chunkFlow")),n=0,t.interrupt=void 0,r):(e.consume(j),N)}function q(j,F){const U=t.sliceStream(j);if(F&&U.push(null),j.previous=i,i&&(i.next=j),i=j,a.defineSkip(j.start),a.write(U),t.parser.lazy[j.start.line]){let C=a.events.length;for(;C--;)if(a.events[C][1].start.offset<c&&(!a.events[C][1].end||a.events[C][1].end.offset>c))return;const K=t.events.length;let Z=K,ee,oe;for(;Z--;)if(t.events[Z][0]==="exit"&&t.events[Z][1].type==="chunkFlow"){if(ee){oe=t.events[Z][1].end;break}ee=!0}for(b(n),C=K;C<t.events.length;)t.events[C][1].end={...oe},C++;splice(t.events,Z+1,0,t.events.slice(K)),t.events.length=C}}function b(j){let F=o.length;for(;F-- >j;){const U=o[F];t.containerState=U[1],U[0].exit.call(t,e)}o.length=j}function v(){a.write([null]),i=void 0,a=void 0,t.containerState._closeFlow=void 0}}function tokenizeContainer(e,t,o){return factorySpace(e,e.attempt(this.parser.constructs.document,t,o),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function classifyCharacter(e){if(e===null||markdownLineEndingOrSpace(e)||unicodeWhitespace(e))return 1;if(unicodePunctuation(e))return 2}function resolveAll(e,t,o){const n=[];let a=-1;for(;++a<e.length;){const i=e[a].resolveAll;i&&!n.includes(i)&&(t=i(t,o),n.push(i))}return t}const attention={name:"attention",resolveAll:resolveAllAttention,tokenize:tokenizeAttention};function resolveAllAttention(e,t){let o=-1,n,a,i,c,r,s,h,u;for(;++o<e.length;)if(e[o][0]==="enter"&&e[o][1].type==="attentionSequence"&&e[o][1]._close){for(n=o;n--;)if(e[n][0]==="exit"&&e[n][1].type==="attentionSequence"&&e[n][1]._open&&t.sliceSerialize(e[n][1]).charCodeAt(0)===t.sliceSerialize(e[o][1]).charCodeAt(0)){if((e[n][1]._close||e[o][1]._open)&&(e[o][1].end.offset-e[o][1].start.offset)%3&&!((e[n][1].end.offset-e[n][1].start.offset+e[o][1].end.offset-e[o][1].start.offset)%3))continue;s=e[n][1].end.offset-e[n][1].start.offset>1&&e[o][1].end.offset-e[o][1].start.offset>1?2:1;const p={...e[n][1].end},g={...e[o][1].start};movePoint(p,-s),movePoint(g,s),c={type:s>1?"strongSequence":"emphasisSequence",start:p,end:{...e[n][1].end}},r={type:s>1?"strongSequence":"emphasisSequence",start:{...e[o][1].start},end:g},i={type:s>1?"strongText":"emphasisText",start:{...e[n][1].end},end:{...e[o][1].start}},a={type:s>1?"strong":"emphasis",start:{...c.start},end:{...r.end}},e[n][1].end={...c.start},e[o][1].start={...r.end},h=[],e[n][1].end.offset-e[n][1].start.offset&&(h=push(h,[["enter",e[n][1],t],["exit",e[n][1],t]])),h=push(h,[["enter",a,t],["enter",c,t],["exit",c,t],["enter",i,t]]),h=push(h,resolveAll(t.parser.constructs.insideSpan.null,e.slice(n+1,o),t)),h=push(h,[["exit",i,t],["enter",r,t],["exit",r,t],["exit",a,t]]),e[o][1].end.offset-e[o][1].start.offset?(u=2,h=push(h,[["enter",e[o][1],t],["exit",e[o][1],t]])):u=0,splice(e,n-1,o-n+3,h),o=n+h.length-u-2;break}}for(o=-1;++o<e.length;)e[o][1].type==="attentionSequence"&&(e[o][1].type="data");return e}function tokenizeAttention(e,t){const o=this.parser.constructs.attentionMarkers.null,n=this.previous,a=classifyCharacter(n);let i;return c;function c(s){return i=s,e.enter("attentionSequence"),r(s)}function r(s){if(s===i)return e.consume(s),r;const h=e.exit("attentionSequence"),u=classifyCharacter(s),p=!u||u===2&&a||o.includes(s),g=!a||a===2&&u||o.includes(n);return h._open=!!(i===42?p:p&&(a||!g)),h._close=!!(i===42?g:g&&(u||!p)),t(s)}}function movePoint(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}const autolink={name:"autolink",tokenize:tokenizeAutolink};function tokenizeAutolink(e,t,o){let n=0;return a;function a(k){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(k),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),i}function i(k){return asciiAlpha(k)?(e.consume(k),c):k===64?o(k):h(k)}function c(k){return k===43||k===45||k===46||asciiAlphanumeric(k)?(n=1,r(k)):h(k)}function r(k){return k===58?(e.consume(k),n=0,s):(k===43||k===45||k===46||asciiAlphanumeric(k))&&n++<32?(e.consume(k),r):(n=0,h(k))}function s(k){return k===62?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(k),e.exit("autolinkMarker"),e.exit("autolink"),t):k===null||k===32||k===60||asciiControl(k)?o(k):(e.consume(k),s)}function h(k){return k===64?(e.consume(k),u):asciiAtext(k)?(e.consume(k),h):o(k)}function u(k){return asciiAlphanumeric(k)?p(k):o(k)}function p(k){return k===46?(e.consume(k),n=0,u):k===62?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(k),e.exit("autolinkMarker"),e.exit("autolink"),t):g(k)}function g(k){if((k===45||asciiAlphanumeric(k))&&n++<63){const w=k===45?g:p;return e.consume(k),w}return o(k)}}const blankLine={partial:!0,tokenize:tokenizeBlankLine};function tokenizeBlankLine(e,t,o){return n;function n(i){return markdownSpace(i)?factorySpace(e,a,"linePrefix")(i):a(i)}function a(i){return i===null||markdownLineEnding(i)?t(i):o(i)}}const blockQuote={continuation:{tokenize:tokenizeBlockQuoteContinuation},exit,name:"blockQuote",tokenize:tokenizeBlockQuoteStart};function tokenizeBlockQuoteStart(e,t,o){const n=this;return a;function a(c){if(c===62){const r=n.containerState;return r.open||(e.enter("blockQuote",{_container:!0}),r.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(c),e.exit("blockQuoteMarker"),i}return o(c)}function i(c){return markdownSpace(c)?(e.enter("blockQuotePrefixWhitespace"),e.consume(c),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(c))}}function tokenizeBlockQuoteContinuation(e,t,o){const n=this;return a;function a(c){return markdownSpace(c)?factorySpace(e,i,"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(c):i(c)}function i(c){return e.attempt(blockQuote,t,o)(c)}}function exit(e){e.exit("blockQuote")}const characterEscape={name:"characterEscape",tokenize:tokenizeCharacterEscape};function tokenizeCharacterEscape(e,t,o){return n;function n(i){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(i),e.exit("escapeMarker"),a}function a(i){return asciiPunctuation(i)?(e.enter("characterEscapeValue"),e.consume(i),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):o(i)}}const characterReference={name:"characterReference",tokenize:tokenizeCharacterReference};function tokenizeCharacterReference(e,t,o){const n=this;let a=0,i,c;return r;function r(p){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(p),e.exit("characterReferenceMarker"),s}function s(p){return p===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(p),e.exit("characterReferenceMarkerNumeric"),h):(e.enter("characterReferenceValue"),i=31,c=asciiAlphanumeric,u(p))}function h(p){return p===88||p===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(p),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),i=6,c=asciiHexDigit,u):(e.enter("characterReferenceValue"),i=7,c=asciiDigit,u(p))}function u(p){if(p===59&&a){const g=e.exit("characterReferenceValue");return c===asciiAlphanumeric&&!decodeNamedCharacterReference(n.sliceSerialize(g))?o(p):(e.enter("characterReferenceMarker"),e.consume(p),e.exit("characterReferenceMarker"),e.exit("characterReference"),t)}return c(p)&&a++<i?(e.consume(p),u):o(p)}}const nonLazyContinuation={partial:!0,tokenize:tokenizeNonLazyContinuation},codeFenced={concrete:!0,name:"codeFenced",tokenize:tokenizeCodeFenced};function tokenizeCodeFenced(e,t,o){const n=this,a={partial:!0,tokenize:U};let i=0,c=0,r;return s;function s(C){return h(C)}function h(C){const K=n.events[n.events.length-1];return i=K&&K[1].type==="linePrefix"?K[2].sliceSerialize(K[1],!0).length:0,r=C,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),u(C)}function u(C){return C===r?(c++,e.consume(C),u):c<3?o(C):(e.exit("codeFencedFenceSequence"),markdownSpace(C)?factorySpace(e,p,"whitespace")(C):p(C))}function p(C){return C===null||markdownLineEnding(C)?(e.exit("codeFencedFence"),n.interrupt?t(C):e.check(nonLazyContinuation,N,F)(C)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),g(C))}function g(C){return C===null||markdownLineEnding(C)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),p(C)):markdownSpace(C)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),factorySpace(e,k,"whitespace")(C)):C===96&&C===r?o(C):(e.consume(C),g)}function k(C){return C===null||markdownLineEnding(C)?p(C):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),w(C))}function w(C){return C===null||markdownLineEnding(C)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),p(C)):C===96&&C===r?o(C):(e.consume(C),w)}function N(C){return e.attempt(a,F,q)(C)}function q(C){return e.enter("lineEnding"),e.consume(C),e.exit("lineEnding"),b}function b(C){return i>0&&markdownSpace(C)?factorySpace(e,v,"linePrefix",i+1)(C):v(C)}function v(C){return C===null||markdownLineEnding(C)?e.check(nonLazyContinuation,N,F)(C):(e.enter("codeFlowValue"),j(C))}function j(C){return C===null||markdownLineEnding(C)?(e.exit("codeFlowValue"),v(C)):(e.consume(C),j)}function F(C){return e.exit("codeFenced"),t(C)}function U(C,K,Z){let ee=0;return oe;function oe(A){return C.enter("lineEnding"),C.consume(A),C.exit("lineEnding"),H}function H(A){return C.enter("codeFencedFence"),markdownSpace(A)?factorySpace(C,E,"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(A):E(A)}function E(A){return A===r?(C.enter("codeFencedFenceSequence"),J(A)):Z(A)}function J(A){return A===r?(ee++,C.consume(A),J):ee>=c?(C.exit("codeFencedFenceSequence"),markdownSpace(A)?factorySpace(C,z,"whitespace")(A):z(A)):Z(A)}function z(A){return A===null||markdownLineEnding(A)?(C.exit("codeFencedFence"),K(A)):Z(A)}}}function tokenizeNonLazyContinuation(e,t,o){const n=this;return a;function a(c){return c===null?o(c):(e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),i)}function i(c){return n.parser.lazy[n.now().line]?o(c):t(c)}}const codeIndented={name:"codeIndented",tokenize:tokenizeCodeIndented},furtherStart={partial:!0,tokenize:tokenizeFurtherStart};function tokenizeCodeIndented(e,t,o){const n=this;return a;function a(h){return e.enter("codeIndented"),factorySpace(e,i,"linePrefix",5)(h)}function i(h){const u=n.events[n.events.length-1];return u&&u[1].type==="linePrefix"&&u[2].sliceSerialize(u[1],!0).length>=4?c(h):o(h)}function c(h){return h===null?s(h):markdownLineEnding(h)?e.attempt(furtherStart,c,s)(h):(e.enter("codeFlowValue"),r(h))}function r(h){return h===null||markdownLineEnding(h)?(e.exit("codeFlowValue"),c(h)):(e.consume(h),r)}function s(h){return e.exit("codeIndented"),t(h)}}function tokenizeFurtherStart(e,t,o){const n=this;return a;function a(c){return n.parser.lazy[n.now().line]?o(c):markdownLineEnding(c)?(e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),a):factorySpace(e,i,"linePrefix",5)(c)}function i(c){const r=n.events[n.events.length-1];return r&&r[1].type==="linePrefix"&&r[2].sliceSerialize(r[1],!0).length>=4?t(c):markdownLineEnding(c)?a(c):o(c)}}const codeText={name:"codeText",previous,resolve:resolveCodeText,tokenize:tokenizeCodeText};function resolveCodeText(e){let t=e.length-4,o=3,n,a;if((e[o][1].type==="lineEnding"||e[o][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(n=o;++n<t;)if(e[n][1].type==="codeTextData"){e[o][1].type="codeTextPadding",e[t][1].type="codeTextPadding",o+=2,t-=2;break}}for(n=o-1,t++;++n<=t;)a===void 0?n!==t&&e[n][1].type!=="lineEnding"&&(a=n):(n===t||e[n][1].type==="lineEnding")&&(e[a][1].type="codeTextData",n!==a+2&&(e[a][1].end=e[n-1][1].end,e.splice(a+2,n-a-2),t-=n-a-2,n=a+2),a=void 0);return e}function previous(e){return e!==96||this.events[this.events.length-1][1].type==="characterEscape"}function tokenizeCodeText(e,t,o){let n=0,a,i;return c;function c(p){return e.enter("codeText"),e.enter("codeTextSequence"),r(p)}function r(p){return p===96?(e.consume(p),n++,r):(e.exit("codeTextSequence"),s(p))}function s(p){return p===null?o(p):p===32?(e.enter("space"),e.consume(p),e.exit("space"),s):p===96?(i=e.enter("codeTextSequence"),a=0,u(p)):markdownLineEnding(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),s):(e.enter("codeTextData"),h(p))}function h(p){return p===null||p===32||p===96||markdownLineEnding(p)?(e.exit("codeTextData"),s(p)):(e.consume(p),h)}function u(p){return p===96?(e.consume(p),a++,u):a===n?(e.exit("codeTextSequence"),e.exit("codeText"),t(p)):(i.type="codeTextData",h(p))}}class SpliceBuffer{constructor(t){this.left=t?[...t]:[],this.right=[]}get(t){if(t<0||t>=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return t<this.left.length?this.left[t]:this.right[this.right.length-t+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(t,o){const n=o??Number.POSITIVE_INFINITY;return n<this.left.length?this.left.slice(t,n):t>this.left.length?this.right.slice(this.right.length-n+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-n+this.left.length).reverse())}splice(t,o,n){const a=o||0;this.setCursor(Math.trunc(t));const i=this.right.splice(this.right.length-a,Number.POSITIVE_INFINITY);return n&&chunkedPush(this.left,n),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),chunkedPush(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),chunkedPush(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t<this.left.length){const o=this.left.splice(t,Number.POSITIVE_INFINITY);chunkedPush(this.right,o.reverse())}else{const o=this.right.splice(this.left.length+this.right.length-t,Number.POSITIVE_INFINITY);chunkedPush(this.left,o.reverse())}}}function chunkedPush(e,t){let o=0;if(t.length<1e4)e.push(...t);else for(;o<t.length;)e.push(...t.slice(o,o+1e4)),o+=1e4}function subtokenize(e){const t={};let o=-1,n,a,i,c,r,s,h;const u=new SpliceBuffer(e);for(;++o<u.length;){for(;o in t;)o=t[o];if(n=u.get(o),o&&n[1].type==="chunkFlow"&&u.get(o-1)[1].type==="listItemPrefix"&&(s=n[1]._tokenizer.events,i=0,i<s.length&&s[i][1].type==="lineEndingBlank"&&(i+=2),i<s.length&&s[i][1].type==="content"))for(;++i<s.length&&s[i][1].type!=="content";)s[i][1].type==="chunkText"&&(s[i][1]._isInFirstContentOfListItem=!0,i++);if(n[0]==="enter")n[1].contentType&&(Object.assign(t,subcontent(u,o)),o=t[o],h=!0);else if(n[1]._container){for(i=o,a=void 0;i--;)if(c=u.get(i),c[1].type==="lineEnding"||c[1].type==="lineEndingBlank")c[0]==="enter"&&(a&&(u.get(a)[1].type="lineEndingBlank"),c[1].type="lineEnding",a=i);else if(!(c[1].type==="linePrefix"||c[1].type==="listItemIndent"))break;a&&(n[1].end={...u.get(a)[1].start},r=u.slice(a,o),r.unshift(n),u.splice(a,o-a+1,r))}}return splice(e,0,Number.POSITIVE_INFINITY,u.slice(0)),!h}function subcontent(e,t){const o=e.get(t)[1],n=e.get(t)[2];let a=t-1;const i=[];let c=o._tokenizer;c||(c=n.parser[o.contentType](o.start),o._contentTypeTextTrailing&&(c._contentTypeTextTrailing=!0));const r=c.events,s=[],h={};let u,p,g=-1,k=o,w=0,N=0;const q=[N];for(;k;){for(;e.get(++a)[1]!==k;);i.push(a),k._tokenizer||(u=n.sliceStream(k),k.next||u.push(null),p&&c.defineSkip(k.start),k._isInFirstContentOfListItem&&(c._gfmTasklistFirstContentOfListItem=!0),c.write(u),k._isInFirstContentOfListItem&&(c._gfmTasklistFirstContentOfListItem=void 0)),p=k,k=k.next}for(k=o;++g<r.length;)r[g][0]==="exit"&&r[g-1][0]==="enter"&&r[g][1].type===r[g-1][1].type&&r[g][1].start.line!==r[g][1].end.line&&(N=g+1,q.push(N),k._tokenizer=void 0,k.previous=void 0,k=k.next);for(c.events=[],k?(k._tokenizer=void 0,k.previous=void 0):q.pop(),g=q.length;g--;){const b=r.slice(q[g],q[g+1]),v=i.pop();s.push([v,v+b.length-1]),e.splice(v,2,b)}for(s.reverse(),g=-1;++g<s.length;)h[w+s[g][0]]=w+s[g][1],w+=s[g][1]-s[g][0]-1;return h}const content={resolve:resolveContent,tokenize:tokenizeContent},continuationConstruct={partial:!0,tokenize:tokenizeContinuation};function resolveContent(e){return subtokenize(e),e}function tokenizeContent(e,t){let o;return n;function n(r){return e.enter("content"),o=e.enter("chunkContent",{contentType:"content"}),a(r)}function a(r){return r===null?i(r):markdownLineEnding(r)?e.check(continuationConstruct,c,i)(r):(e.consume(r),a)}function i(r){return e.exit("chunkContent"),e.exit("content"),t(r)}function c(r){return e.consume(r),e.exit("chunkContent"),o.next=e.enter("chunkContent",{contentType:"content",previous:o}),o=o.next,a}}function tokenizeContinuation(e,t,o){const n=this;return a;function a(c){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),factorySpace(e,i,"linePrefix")}function i(c){if(c===null||markdownLineEnding(c))return o(c);const r=n.events[n.events.length-1];return!n.parser.constructs.disable.null.includes("codeIndented")&&r&&r[1].type==="linePrefix"&&r[2].sliceSerialize(r[1],!0).length>=4?t(c):e.interrupt(n.parser.constructs.flow,o,t)(c)}}function factoryDestination(e,t,o,n,a,i,c,r,s){const h=s||Number.POSITIVE_INFINITY;let u=0;return p;function p(b){return b===60?(e.enter(n),e.enter(a),e.enter(i),e.consume(b),e.exit(i),g):b===null||b===32||b===41||asciiControl(b)?o(b):(e.enter(n),e.enter(c),e.enter(r),e.enter("chunkString",{contentType:"string"}),N(b))}function g(b){return b===62?(e.enter(i),e.consume(b),e.exit(i),e.exit(a),e.exit(n),t):(e.enter(r),e.enter("chunkString",{contentType:"string"}),k(b))}function k(b){return b===62?(e.exit("chunkString"),e.exit(r),g(b)):b===null||b===60||markdownLineEnding(b)?o(b):(e.consume(b),b===92?w:k)}function w(b){return b===60||b===62||b===92?(e.consume(b),k):k(b)}function N(b){return!u&&(b===null||b===41||markdownLineEndingOrSpace(b))?(e.exit("chunkString"),e.exit(r),e.exit(c),e.exit(n),t(b)):u<h&&b===40?(e.consume(b),u++,N):b===41?(e.consume(b),u--,N):b===null||b===32||b===40||asciiControl(b)?o(b):(e.consume(b),b===92?q:N)}function q(b){return b===40||b===41||b===92?(e.consume(b),N):N(b)}}function factoryLabel(e,t,o,n,a,i){const c=this;let r=0,s;return h;function h(k){return e.enter(n),e.enter(a),e.consume(k),e.exit(a),e.enter(i),u}function u(k){return r>999||k===null||k===91||k===93&&!s||k===94&&!r&&"_hiddenFootnoteSupport"in c.parser.constructs?o(k):k===93?(e.exit(i),e.enter(a),e.consume(k),e.exit(a),e.exit(n),t):markdownLineEnding(k)?(e.enter("lineEnding"),e.consume(k),e.exit("lineEnding"),u):(e.enter("chunkString",{contentType:"string"}),p(k))}function p(k){return k===null||k===91||k===93||markdownLineEnding(k)||r++>999?(e.exit("chunkString"),u(k)):(e.consume(k),s||(s=!markdownSpace(k)),k===92?g:p)}function g(k){return k===91||k===92||k===93?(e.consume(k),r++,p):p(k)}}function factoryTitle(e,t,o,n,a,i){let c;return r;function r(g){return g===34||g===39||g===40?(e.enter(n),e.enter(a),e.consume(g),e.exit(a),c=g===40?41:g,s):o(g)}function s(g){return g===c?(e.enter(a),e.consume(g),e.exit(a),e.exit(n),t):(e.enter(i),h(g))}function h(g){return g===c?(e.exit(i),s(c)):g===null?o(g):markdownLineEnding(g)?(e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),factorySpace(e,h,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),u(g))}function u(g){return g===c||g===null||markdownLineEnding(g)?(e.exit("chunkString"),h(g)):(e.consume(g),g===92?p:u)}function p(g){return g===c||g===92?(e.consume(g),u):u(g)}}function factoryWhitespace(e,t){let o;return n;function n(a){return markdownLineEnding(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),o=!0,n):markdownSpace(a)?factorySpace(e,n,o?"linePrefix":"lineSuffix")(a):t(a)}}const definition={name:"definition",tokenize:tokenizeDefinition},titleBefore={partial:!0,tokenize:tokenizeTitleBefore};function tokenizeDefinition(e,t,o){const n=this;let a;return i;function i(k){return e.enter("definition"),c(k)}function c(k){return factoryLabel.call(n,e,r,o,"definitionLabel","definitionLabelMarker","definitionLabelString")(k)}function r(k){return a=normalizeIdentifier(n.sliceSerialize(n.events[n.events.length-1][1]).slice(1,-1)),k===58?(e.enter("definitionMarker"),e.consume(k),e.exit("definitionMarker"),s):o(k)}function s(k){return markdownLineEndingOrSpace(k)?factoryWhitespace(e,h)(k):h(k)}function h(k){return factoryDestination(e,u,o,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(k)}function u(k){return e.attempt(titleBefore,p,p)(k)}function p(k){return markdownSpace(k)?factorySpace(e,g,"whitespace")(k):g(k)}function g(k){return k===null||markdownLineEnding(k)?(e.exit("definition"),n.parser.defined.push(a),t(k)):o(k)}}function tokenizeTitleBefore(e,t,o){return n;function n(r){return markdownLineEndingOrSpace(r)?factoryWhitespace(e,a)(r):o(r)}function a(r){return factoryTitle(e,i,o,"definitionTitle","definitionTitleMarker","definitionTitleString")(r)}function i(r){return markdownSpace(r)?factorySpace(e,c,"whitespace")(r):c(r)}function c(r){return r===null||markdownLineEnding(r)?t(r):o(r)}}const hardBreakEscape={name:"hardBreakEscape",tokenize:tokenizeHardBreakEscape};function tokenizeHardBreakEscape(e,t,o){return n;function n(i){return e.enter("hardBreakEscape"),e.consume(i),a}function a(i){return markdownLineEnding(i)?(e.exit("hardBreakEscape"),t(i)):o(i)}}const headingAtx={name:"headingAtx",resolve:resolveHeadingAtx,tokenize:tokenizeHeadingAtx};function resolveHeadingAtx(e,t){let o=e.length-2,n=3,a,i;return e[n][1].type==="whitespace"&&(n+=2),o-2>n&&e[o][1].type==="whitespace"&&(o-=2),e[o][1].type==="atxHeadingSequence"&&(n===o-1||o-4>n&&e[o-2][1].type==="whitespace")&&(o-=n+1===o?2:4),o>n&&(a={type:"atxHeadingText",start:e[n][1].start,end:e[o][1].end},i={type:"chunkText",start:e[n][1].start,end:e[o][1].end,contentType:"text"},splice(e,n,o-n+1,[["enter",a,t],["enter",i,t],["exit",i,t],["exit",a,t]])),e}function tokenizeHeadingAtx(e,t,o){let n=0;return a;function a(u){return e.enter("atxHeading"),i(u)}function i(u){return e.enter("atxHeadingSequence"),c(u)}function c(u){return u===35&&n++<6?(e.consume(u),c):u===null||markdownLineEndingOrSpace(u)?(e.exit("atxHeadingSequence"),r(u)):o(u)}function r(u){return u===35?(e.enter("atxHeadingSequence"),s(u)):u===null||markdownLineEnding(u)?(e.exit("atxHeading"),t(u)):markdownSpace(u)?factorySpace(e,r,"whitespace")(u):(e.enter("atxHeadingText"),h(u))}function s(u){return u===35?(e.consume(u),s):(e.exit("atxHeadingSequence"),r(u))}function h(u){return u===null||u===35||markdownLineEndingOrSpace(u)?(e.exit("atxHeadingText"),r(u)):(e.consume(u),h)}}const htmlBlockNames=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],htmlRawNames=["pre","script","style","textarea"],htmlFlow={concrete:!0,name:"htmlFlow",resolveTo:resolveToHtmlFlow,tokenize:tokenizeHtmlFlow},blankLineBefore={partial:!0,tokenize:tokenizeBlankLineBefore},nonLazyContinuationStart={partial:!0,tokenize:tokenizeNonLazyContinuationStart};function resolveToHtmlFlow(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function tokenizeHtmlFlow(e,t,o){const n=this;let a,i,c,r,s;return h;function h(f){return u(f)}function u(f){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(f),p}function p(f){return f===33?(e.consume(f),g):f===47?(e.consume(f),i=!0,N):f===63?(e.consume(f),a=3,n.interrupt?t:m):asciiAlpha(f)?(e.consume(f),c=String.fromCharCode(f),q):o(f)}function g(f){return f===45?(e.consume(f),a=2,k):f===91?(e.consume(f),a=5,r=0,w):asciiAlpha(f)?(e.consume(f),a=4,n.interrupt?t:m):o(f)}function k(f){return f===45?(e.consume(f),n.interrupt?t:m):o(f)}function w(f){const Ce="CDATA[";return f===Ce.charCodeAt(r++)?(e.consume(f),r===Ce.length?n.interrupt?t:E:w):o(f)}function N(f){return asciiAlpha(f)?(e.consume(f),c=String.fromCharCode(f),q):o(f)}function q(f){if(f===null||f===47||f===62||markdownLineEndingOrSpace(f)){const Ce=f===47,ie=c.toLowerCase();return!Ce&&!i&&htmlRawNames.includes(ie)?(a=1,n.interrupt?t(f):E(f)):htmlBlockNames.includes(c.toLowerCase())?(a=6,Ce?(e.consume(f),b):n.interrupt?t(f):E(f)):(a=7,n.interrupt&&!n.parser.lazy[n.now().line]?o(f):i?v(f):j(f))}return f===45||asciiAlphanumeric(f)?(e.consume(f),c+=String.fromCharCode(f),q):o(f)}function b(f){return f===62?(e.consume(f),n.interrupt?t:E):o(f)}function v(f){return markdownSpace(f)?(e.consume(f),v):oe(f)}function j(f){return f===47?(e.consume(f),oe):f===58||f===95||asciiAlpha(f)?(e.consume(f),F):markdownSpace(f)?(e.consume(f),j):oe(f)}function F(f){return f===45||f===46||f===58||f===95||asciiAlphanumeric(f)?(e.consume(f),F):U(f)}function U(f){return f===61?(e.consume(f),C):markdownSpace(f)?(e.consume(f),U):j(f)}function C(f){return f===null||f===60||f===61||f===62||f===96?o(f):f===34||f===39?(e.consume(f),s=f,K):markdownSpace(f)?(e.consume(f),C):Z(f)}function K(f){return f===s?(e.consume(f),s=null,ee):f===null||markdownLineEnding(f)?o(f):(e.consume(f),K)}function Z(f){return f===null||f===34||f===39||f===47||f===60||f===61||f===62||f===96||markdownLineEndingOrSpace(f)?U(f):(e.consume(f),Z)}function ee(f){return f===47||f===62||markdownSpace(f)?j(f):o(f)}function oe(f){return f===62?(e.consume(f),H):o(f)}function H(f){return f===null||markdownLineEnding(f)?E(f):markdownSpace(f)?(e.consume(f),H):o(f)}function E(f){return f===45&&a===2?(e.consume(f),Q):f===60&&a===1?(e.consume(f),se):f===62&&a===4?(e.consume(f),_e):f===63&&a===3?(e.consume(f),m):f===93&&a===5?(e.consume(f),be):markdownLineEnding(f)&&(a===6||a===7)?(e.exit("htmlFlowData"),e.check(blankLineBefore,we,J)(f)):f===null||markdownLineEnding(f)?(e.exit("htmlFlowData"),J(f)):(e.consume(f),E)}function J(f){return e.check(nonLazyContinuationStart,z,we)(f)}function z(f){return e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),A}function A(f){return f===null||markdownLineEnding(f)?J(f):(e.enter("htmlFlowData"),E(f))}function Q(f){return f===45?(e.consume(f),m):E(f)}function se(f){return f===47?(e.consume(f),c="",ge):E(f)}function ge(f){if(f===62){const Ce=c.toLowerCase();return htmlRawNames.includes(Ce)?(e.consume(f),_e):E(f)}return asciiAlpha(f)&&c.length<8?(e.consume(f),c+=String.fromCharCode(f),ge):E(f)}function be(f){return f===93?(e.consume(f),m):E(f)}function m(f){return f===62?(e.consume(f),_e):f===45&&a===2?(e.consume(f),m):E(f)}function _e(f){return f===null||markdownLineEnding(f)?(e.exit("htmlFlowData"),we(f)):(e.consume(f),_e)}function we(f){return e.exit("htmlFlow"),t(f)}}function tokenizeNonLazyContinuationStart(e,t,o){const n=this;return a;function a(c){return markdownLineEnding(c)?(e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),i):o(c)}function i(c){return n.parser.lazy[n.now().line]?o(c):t(c)}}function tokenizeBlankLineBefore(e,t,o){return n;function n(a){return e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),e.attempt(blankLine,t,o)}}const htmlText={name:"htmlText",tokenize:tokenizeHtmlText};function tokenizeHtmlText(e,t,o){const n=this;let a,i,c;return r;function r(m){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(m),s}function s(m){return m===33?(e.consume(m),h):m===47?(e.consume(m),U):m===63?(e.consume(m),j):asciiAlpha(m)?(e.consume(m),Z):o(m)}function h(m){return m===45?(e.consume(m),u):m===91?(e.consume(m),i=0,w):asciiAlpha(m)?(e.consume(m),v):o(m)}function u(m){return m===45?(e.consume(m),k):o(m)}function p(m){return m===null?o(m):m===45?(e.consume(m),g):markdownLineEnding(m)?(c=p,se(m)):(e.consume(m),p)}function g(m){return m===45?(e.consume(m),k):p(m)}function k(m){return m===62?Q(m):m===45?g(m):p(m)}function w(m){const _e="CDATA[";return m===_e.charCodeAt(i++)?(e.consume(m),i===_e.length?N:w):o(m)}function N(m){return m===null?o(m):m===93?(e.consume(m),q):markdownLineEnding(m)?(c=N,se(m)):(e.consume(m),N)}function q(m){return m===93?(e.consume(m),b):N(m)}function b(m){return m===62?Q(m):m===93?(e.consume(m),b):N(m)}function v(m){return m===null||m===62?Q(m):markdownLineEnding(m)?(c=v,se(m)):(e.consume(m),v)}function j(m){return m===null?o(m):m===63?(e.consume(m),F):markdownLineEnding(m)?(c=j,se(m)):(e.consume(m),j)}function F(m){return m===62?Q(m):j(m)}function U(m){return asciiAlpha(m)?(e.consume(m),C):o(m)}function C(m){return m===45||asciiAlphanumeric(m)?(e.consume(m),C):K(m)}function K(m){return markdownLineEnding(m)?(c=K,se(m)):markdownSpace(m)?(e.consume(m),K):Q(m)}function Z(m){return m===45||asciiAlphanumeric(m)?(e.consume(m),Z):m===47||m===62||markdownLineEndingOrSpace(m)?ee(m):o(m)}function ee(m){return m===47?(e.consume(m),Q):m===58||m===95||asciiAlpha(m)?(e.consume(m),oe):markdownLineEnding(m)?(c=ee,se(m)):markdownSpace(m)?(e.consume(m),ee):Q(m)}function oe(m){return m===45||m===46||m===58||m===95||asciiAlphanumeric(m)?(e.consume(m),oe):H(m)}function H(m){return m===61?(e.consume(m),E):markdownLineEnding(m)?(c=H,se(m)):markdownSpace(m)?(e.consume(m),H):ee(m)}function E(m){return m===null||m===60||m===61||m===62||m===96?o(m):m===34||m===39?(e.consume(m),a=m,J):markdownLineEnding(m)?(c=E,se(m)):markdownSpace(m)?(e.consume(m),E):(e.consume(m),z)}function J(m){return m===a?(e.consume(m),a=void 0,A):m===null?o(m):markdownLineEnding(m)?(c=J,se(m)):(e.consume(m),J)}function z(m){return m===null||m===34||m===39||m===60||m===61||m===96?o(m):m===47||m===62||markdownLineEndingOrSpace(m)?ee(m):(e.consume(m),z)}function A(m){return m===47||m===62||markdownLineEndingOrSpace(m)?ee(m):o(m)}function Q(m){return m===62?(e.consume(m),e.exit("htmlTextData"),e.exit("htmlText"),t):o(m)}function se(m){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(m),e.exit("lineEnding"),ge}function ge(m){return markdownSpace(m)?factorySpace(e,be,"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(m):be(m)}function be(m){return e.enter("htmlTextData"),c(m)}}const labelEnd={name:"labelEnd",resolveAll:resolveAllLabelEnd,resolveTo:resolveToLabelEnd,tokenize:tokenizeLabelEnd},resourceConstruct={tokenize:tokenizeResource},referenceFullConstruct={tokenize:tokenizeReferenceFull},referenceCollapsedConstruct={tokenize:tokenizeReferenceCollapsed};function resolveAllLabelEnd(e){let t=-1;const o=[];for(;++t<e.length;){const n=e[t][1];if(o.push(e[t]),n.type==="labelImage"||n.type==="labelLink"||n.type==="labelEnd"){const a=n.type==="labelImage"?4:2;n.type="data",t+=a}}return e.length!==o.length&&splice(e,0,e.length,o),e}function resolveToLabelEnd(e,t){let o=e.length,n=0,a,i,c,r;for(;o--;)if(a=e[o][1],i){if(a.type==="link"||a.type==="labelLink"&&a._inactive)break;e[o][0]==="enter"&&a.type==="labelLink"&&(a._inactive=!0)}else if(c){if(e[o][0]==="enter"&&(a.type==="labelImage"||a.type==="labelLink")&&!a._balanced&&(i=o,a.type!=="labelLink")){n=2;break}}else a.type==="labelEnd"&&(c=o);const s={type:e[i][1].type==="labelLink"?"link":"image",start:{...e[i][1].start},end:{...e[e.length-1][1].end}},h={type:"label",start:{...e[i][1].start},end:{...e[c][1].end}},u={type:"labelText",start:{...e[i+n+2][1].end},end:{...e[c-2][1].start}};return r=[["enter",s,t],["enter",h,t]],r=push(r,e.slice(i+1,i+n+3)),r=push(r,[["enter",u,t]]),r=push(r,resolveAll(t.parser.constructs.insideSpan.null,e.slice(i+n+4,c-3),t)),r=push(r,[["exit",u,t],e[c-2],e[c-1],["exit",h,t]]),r=push(r,e.slice(c+1)),r=push(r,[["exit",s,t]]),splice(e,i,e.length,r),e}function tokenizeLabelEnd(e,t,o){const n=this;let a=n.events.length,i,c;for(;a--;)if((n.events[a][1].type==="labelImage"||n.events[a][1].type==="labelLink")&&!n.events[a][1]._balanced){i=n.events[a][1];break}return r;function r(g){return i?i._inactive?p(g):(c=n.parser.defined.includes(normalizeIdentifier(n.sliceSerialize({start:i.end,end:n.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(g),e.exit("labelMarker"),e.exit("labelEnd"),s):o(g)}function s(g){return g===40?e.attempt(resourceConstruct,u,c?u:p)(g):g===91?e.attempt(referenceFullConstruct,u,c?h:p)(g):c?u(g):p(g)}function h(g){return e.attempt(referenceCollapsedConstruct,u,p)(g)}function u(g){return t(g)}function p(g){return i._balanced=!0,o(g)}}function tokenizeResource(e,t,o){return n;function n(p){return e.enter("resource"),e.enter("resourceMarker"),e.consume(p),e.exit("resourceMarker"),a}function a(p){return markdownLineEndingOrSpace(p)?factoryWhitespace(e,i)(p):i(p)}function i(p){return p===41?u(p):factoryDestination(e,c,r,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(p)}function c(p){return markdownLineEndingOrSpace(p)?factoryWhitespace(e,s)(p):u(p)}function r(p){return o(p)}function s(p){return p===34||p===39||p===40?factoryTitle(e,h,o,"resourceTitle","resourceTitleMarker","resourceTitleString")(p):u(p)}function h(p){return markdownLineEndingOrSpace(p)?factoryWhitespace(e,u)(p):u(p)}function u(p){return p===41?(e.enter("resourceMarker"),e.consume(p),e.exit("resourceMarker"),e.exit("resource"),t):o(p)}}function tokenizeReferenceFull(e,t,o){const n=this;return a;function a(r){return factoryLabel.call(n,e,i,c,"reference","referenceMarker","referenceString")(r)}function i(r){return n.parser.defined.includes(normalizeIdentifier(n.sliceSerialize(n.events[n.events.length-1][1]).slice(1,-1)))?t(r):o(r)}function c(r){return o(r)}}function tokenizeReferenceCollapsed(e,t,o){return n;function n(i){return e.enter("reference"),e.enter("referenceMarker"),e.consume(i),e.exit("referenceMarker"),a}function a(i){return i===93?(e.enter("referenceMarker"),e.consume(i),e.exit("referenceMarker"),e.exit("reference"),t):o(i)}}const labelStartImage={name:"labelStartImage",resolveAll:labelEnd.resolveAll,tokenize:tokenizeLabelStartImage};function tokenizeLabelStartImage(e,t,o){const n=this;return a;function a(r){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(r),e.exit("labelImageMarker"),i}function i(r){return r===91?(e.enter("labelMarker"),e.consume(r),e.exit("labelMarker"),e.exit("labelImage"),c):o(r)}function c(r){return r===94&&"_hiddenFootnoteSupport"in n.parser.constructs?o(r):t(r)}}const labelStartLink={name:"labelStartLink",resolveAll:labelEnd.resolveAll,tokenize:tokenizeLabelStartLink};function tokenizeLabelStartLink(e,t,o){const n=this;return a;function a(c){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(c),e.exit("labelMarker"),e.exit("labelLink"),i}function i(c){return c===94&&"_hiddenFootnoteSupport"in n.parser.constructs?o(c):t(c)}}const lineEnding={name:"lineEnding",tokenize:tokenizeLineEnding};function tokenizeLineEnding(e,t){return o;function o(n){return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),factorySpace(e,t,"linePrefix")}}const thematicBreak$1={name:"thematicBreak",tokenize:tokenizeThematicBreak};function tokenizeThematicBreak(e,t,o){let n=0,a;return i;function i(h){return e.enter("thematicBreak"),c(h)}function c(h){return a=h,r(h)}function r(h){return h===a?(e.enter("thematicBreakSequence"),s(h)):n>=3&&(h===null||markdownLineEnding(h))?(e.exit("thematicBreak"),t(h)):o(h)}function s(h){return h===a?(e.consume(h),n++,s):(e.exit("thematicBreakSequence"),markdownSpace(h)?factorySpace(e,r,"whitespace")(h):r(h))}}const list$1={continuation:{tokenize:tokenizeListContinuation},exit:tokenizeListEnd,name:"list",tokenize:tokenizeListStart},listItemPrefixWhitespaceConstruct={partial:!0,tokenize:tokenizeListItemPrefixWhitespace},indentConstruct={partial:!0,tokenize:tokenizeIndent};function tokenizeListStart(e,t,o){const n=this,a=n.events[n.events.length-1];let i=a&&a[1].type==="linePrefix"?a[2].sliceSerialize(a[1],!0).length:0,c=0;return r;function r(k){const w=n.containerState.type||(k===42||k===43||k===45?"listUnordered":"listOrdered");if(w==="listUnordered"?!n.containerState.marker||k===n.containerState.marker:asciiDigit(k)){if(n.containerState.type||(n.containerState.type=w,e.enter(w,{_container:!0})),w==="listUnordered")return e.enter("listItemPrefix"),k===42||k===45?e.check(thematicBreak$1,o,h)(k):h(k);if(!n.interrupt||k===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),s(k)}return o(k)}function s(k){return asciiDigit(k)&&++c<10?(e.consume(k),s):(!n.interrupt||c<2)&&(n.containerState.marker?k===n.containerState.marker:k===41||k===46)?(e.exit("listItemValue"),h(k)):o(k)}function h(k){return e.enter("listItemMarker"),e.consume(k),e.exit("listItemMarker"),n.containerState.marker=n.containerState.marker||k,e.check(blankLine,n.interrupt?o:u,e.attempt(listItemPrefixWhitespaceConstruct,g,p))}function u(k){return n.containerState.initialBlankLine=!0,i++,g(k)}function p(k){return markdownSpace(k)?(e.enter("listItemPrefixWhitespace"),e.consume(k),e.exit("listItemPrefixWhitespace"),g):o(k)}function g(k){return n.containerState.size=i+n.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(k)}}function tokenizeListContinuation(e,t,o){const n=this;return n.containerState._closeFlow=void 0,e.check(blankLine,a,i);function a(r){return n.containerState.furtherBlankLines=n.containerState.furtherBlankLines||n.containerState.initialBlankLine,factorySpace(e,t,"listItemIndent",n.containerState.size+1)(r)}function i(r){return n.containerState.furtherBlankLines||!markdownSpace(r)?(n.containerState.furtherBlankLines=void 0,n.containerState.initialBlankLine=void 0,c(r)):(n.containerState.furtherBlankLines=void 0,n.containerState.initialBlankLine=void 0,e.attempt(indentConstruct,t,c)(r))}function c(r){return n.containerState._closeFlow=!0,n.interrupt=void 0,factorySpace(e,e.attempt(list$1,t,o),"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(r)}}function tokenizeIndent(e,t,o){const n=this;return factorySpace(e,a,"listItemIndent",n.containerState.size+1);function a(i){const c=n.events[n.events.length-1];return c&&c[1].type==="listItemIndent"&&c[2].sliceSerialize(c[1],!0).length===n.containerState.size?t(i):o(i)}}function tokenizeListEnd(e){e.exit(this.containerState.type)}function tokenizeListItemPrefixWhitespace(e,t,o){const n=this;return factorySpace(e,a,"listItemPrefixWhitespace",n.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function a(i){const c=n.events[n.events.length-1];return!markdownSpace(i)&&c&&c[1].type==="listItemPrefixWhitespace"?t(i):o(i)}}const setextUnderline={name:"setextUnderline",resolveTo:resolveToSetextUnderline,tokenize:tokenizeSetextUnderline};function resolveToSetextUnderline(e,t){let o=e.length,n,a,i;for(;o--;)if(e[o][0]==="enter"){if(e[o][1].type==="content"){n=o;break}e[o][1].type==="paragraph"&&(a=o)}else e[o][1].type==="content"&&e.splice(o,1),!i&&e[o][1].type==="definition"&&(i=o);const c={type:"setextHeading",start:{...e[n][1].start},end:{...e[e.length-1][1].end}};return e[a][1].type="setextHeadingText",i?(e.splice(a,0,["enter",c,t]),e.splice(i+1,0,["exit",e[n][1],t]),e[n][1].end={...e[i][1].end}):e[n][1]=c,e.push(["exit",c,t]),e}function tokenizeSetextUnderline(e,t,o){const n=this;let a;return i;function i(h){let u=n.events.length,p;for(;u--;)if(n.events[u][1].type!=="lineEnding"&&n.events[u][1].type!=="linePrefix"&&n.events[u][1].type!=="content"){p=n.events[u][1].type==="paragraph";break}return!n.parser.lazy[n.now().line]&&(n.interrupt||p)?(e.enter("setextHeadingLine"),a=h,c(h)):o(h)}function c(h){return e.enter("setextHeadingLineSequence"),r(h)}function r(h){return h===a?(e.consume(h),r):(e.exit("setextHeadingLineSequence"),markdownSpace(h)?factorySpace(e,s,"lineSuffix")(h):s(h))}function s(h){return h===null||markdownLineEnding(h)?(e.exit("setextHeadingLine"),t(h)):o(h)}}const flow$1={tokenize:initializeFlow};function initializeFlow(e){const t=this,o=e.attempt(blankLine,n,e.attempt(this.parser.constructs.flowInitial,a,factorySpace(e,e.attempt(this.parser.constructs.flow,a,e.attempt(content,a)),"linePrefix")));return o;function n(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),t.currentConstruct=void 0,o}function a(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t.currentConstruct=void 0,o}}const resolver={resolveAll:createResolver()},string$1=initializeFactory("string"),text$2=initializeFactory("text");function initializeFactory(e){return{resolveAll:createResolver(e==="text"?resolveAllLineSuffixes:void 0),tokenize:t};function t(o){const n=this,a=this.parser.constructs[e],i=o.attempt(a,c,r);return c;function c(u){return h(u)?i(u):r(u)}function r(u){if(u===null){o.consume(u);return}return o.enter("data"),o.consume(u),s}function s(u){return h(u)?(o.exit("data"),i(u)):(o.consume(u),s)}function h(u){if(u===null)return!0;const p=a[u];let g=-1;if(p)for(;++g<p.length;){const k=p[g];if(!k.previous||k.previous.call(n,n.previous))return!0}return!1}}}function createResolver(e){return t;function t(o,n){let a=-1,i;for(;++a<=o.length;)i===void 0?o[a]&&o[a][1].type==="data"&&(i=a,a++):(!o[a]||o[a][1].type!=="data")&&(a!==i+2&&(o[i][1].end=o[a-1][1].end,o.splice(i+2,a-i-2),a=i+2),i=void 0);return e?e(o,n):o}}function resolveAllLineSuffixes(e,t){let o=0;for(;++o<=e.length;)if((o===e.length||e[o][1].type==="lineEnding")&&e[o-1][1].type==="data"){const n=e[o-1][1],a=t.sliceStream(n);let i=a.length,c=-1,r=0,s;for(;i--;){const h=a[i];if(typeof h=="string"){for(c=h.length;h.charCodeAt(c-1)===32;)r++,c--;if(c)break;c=-1}else if(h===-2)s=!0,r++;else if(h!==-1){i++;break}}if(t._contentTypeTextTrailing&&o===e.length&&(r=0),r){const h={type:o===e.length||s||r<2?"lineSuffix":"hardBreakTrailing",start:{_bufferIndex:i?c:n.start._bufferIndex+c,_index:n.start._index+i,line:n.end.line,column:n.end.column-r,offset:n.end.offset-r},end:{...n.end}};n.end={...h.start},n.start.offset===n.end.offset?Object.assign(n,h):(e.splice(o,0,["enter",h,t],["exit",h,t]),o+=2)}o++}return e}const document$1={42:list$1,43:list$1,45:list$1,48:list$1,49:list$1,50:list$1,51:list$1,52:list$1,53:list$1,54:list$1,55:list$1,56:list$1,57:list$1,62:blockQuote},contentInitial={91:definition},flowInitial={[-2]:codeIndented,[-1]:codeIndented,32:codeIndented},flow={35:headingAtx,42:thematicBreak$1,45:[setextUnderline,thematicBreak$1],60:htmlFlow,61:setextUnderline,95:thematicBreak$1,96:codeFenced,126:codeFenced},string={38:characterReference,92:characterEscape},text$1={[-5]:lineEnding,[-4]:lineEnding,[-3]:lineEnding,33:labelStartImage,38:characterReference,42:attention,60:[autolink,htmlText],91:labelStartLink,92:[hardBreakEscape,characterEscape],93:labelEnd,95:attention,96:codeText},insideSpan={null:[attention,resolver]},attentionMarkers={null:[42,95]},disable={null:[]},defaultConstructs=Object.freeze(Object.defineProperty({__proto__:null,attentionMarkers,contentInitial,disable,document:document$1,flow,flowInitial,insideSpan,string,text:text$1},Symbol.toStringTag,{value:"Module"}));function createTokenizer(e,t,o){let n={_bufferIndex:-1,_index:0,line:o&&o.line||1,column:o&&o.column||1,offset:o&&o.offset||0};const a={},i=[];let c=[],r=[];const s={attempt:K(U),check:K(C),consume:v,enter:j,exit:F,interrupt:K(C,{interrupt:!0})},h={code:null,containerState:{},defineSkip:N,events:[],now:w,parser:e,previous:null,sliceSerialize:g,sliceStream:k,write:p};let u=t.tokenize.call(h,s);return t.resolveAll&&i.push(t),h;function p(H){return c=push(c,H),q(),c[c.length-1]!==null?[]:(Z(t,0),h.events=resolveAll(i,h.events,h),h.events)}function g(H,E){return serializeChunks(k(H),E)}function k(H){return sliceChunks(c,H)}function w(){const{_bufferIndex:H,_index:E,line:J,column:z,offset:A}=n;return{_bufferIndex:H,_index:E,line:J,column:z,offset:A}}function N(H){a[H.line]=H.column,oe()}function q(){let H;for(;n._index<c.length;){const E=c[n._index];if(typeof E=="string")for(H=n._index,n._bufferIndex<0&&(n._bufferIndex=0);n._index===H&&n._bufferIndex<E.length;)b(E.charCodeAt(n._bufferIndex));else b(E)}}function b(H){u=u(H)}function v(H){markdownLineEnding(H)?(n.line++,n.column=1,n.offset+=H===-3?2:1,oe()):H!==-1&&(n.column++,n.offset++),n._bufferIndex<0?n._index++:(n._bufferIndex++,n._bufferIndex===c[n._index].length&&(n._bufferIndex=-1,n._index++)),h.previous=H}function j(H,E){const J=E||{};return J.type=H,J.start=w(),h.events.push(["enter",J,h]),r.push(J),J}function F(H){const E=r.pop();return E.end=w(),h.events.push(["exit",E,h]),E}function U(H,E){Z(H,E.from)}function C(H,E){E.restore()}function K(H,E){return J;function J(z,A,Q){let se,ge,be,m;return Array.isArray(z)?we(z):"tokenize"in z?we([z]):_e(z);function _e(le){return D;function D(W){const ce=W!==null&&le[W],he=W!==null&&le.null,ve=[...Array.isArray(ce)?ce:ce?[ce]:[],...Array.isArray(he)?he:he?[he]:[]];return we(ve)(W)}}function we(le){return se=le,ge=0,le.length===0?Q:f(le[ge])}function f(le){return D;function D(W){return m=ee(),be=le,le.partial||(h.currentConstruct=le),le.name&&h.parser.constructs.disable.null.includes(le.name)?ie():le.tokenize.call(E?Object.assign(Object.create(h),E):h,s,Ce,ie)(W)}}function Ce(le){return H(be,m),A}function ie(le){return m.restore(),++ge<se.length?f(se[ge]):Q}}}function Z(H,E){H.resolveAll&&!i.includes(H)&&i.push(H),H.resolve&&splice(h.events,E,h.events.length-E,H.resolve(h.events.slice(E),h)),H.resolveTo&&(h.events=H.resolveTo(h.events,h))}function ee(){const H=w(),E=h.previous,J=h.currentConstruct,z=h.events.length,A=Array.from(r);return{from:z,restore:Q};function Q(){n=H,h.previous=E,h.currentConstruct=J,h.events.length=z,r=A,oe()}}function oe(){n.line in a&&n.column<2&&(n.column=a[n.line],n.offset+=a[n.line]-1)}}function sliceChunks(e,t){const o=t.start._index,n=t.start._bufferIndex,a=t.end._index,i=t.end._bufferIndex;let c;if(o===a)c=[e[o].slice(n,i)];else{if(c=e.slice(o,a),n>-1){const r=c[0];typeof r=="string"?c[0]=r.slice(n):c.shift()}i>0&&c.push(e[a].slice(0,i))}return c}function serializeChunks(e,t){let o=-1;const n=[];let a;for(;++o<e.length;){const i=e[o];let c;if(typeof i=="string")c=i;else switch(i){case-5:{c="\r";break}case-4:{c=`
8231
8231
  `;break}case-3:{c=`\r
8232
- `;break}case-2:{c=t?" ":" ";break}case-1:{if(!t&&a)continue;c=" ";break}default:c=String.fromCharCode(i)}a=i===-2,n.push(c)}return n.join("")}function parse(e){const n={constructs:combineExtensions([defaultConstructs,...(e||{}).extensions||[]]),content:a(content$1),defined:[],document:a(document$2),flow:a(flow$1),lazy:{},string:a(string$1),text:a(text$2)};return n;function a(i){return c;function c(r){return createTokenizer(n,i,r)}}}function postprocess(e){for(;!subtokenize(e););return e}const search=/[\0\t\n\r]/g;function preprocess(){let e=1,t="",o=!0,n;return a;function a(i,c,r){const s=[];let h,u,p,g,k;for(i=t+(typeof i=="string"?i.toString():new TextDecoder(c||void 0).decode(i)),p=0,t="",o&&(i.charCodeAt(0)===65279&&p++,o=void 0);p<i.length;){if(search.lastIndex=p,h=search.exec(i),g=h&&h.index!==void 0?h.index:i.length,k=i.charCodeAt(g),!h){t=i.slice(p);break}if(k===10&&p===g&&n)s.push(-3),n=void 0;else switch(n&&(s.push(-5),n=void 0),p<g&&(s.push(i.slice(p,g)),e+=g-p),k){case 0:{s.push(65533),e++;break}case 9:{for(u=Math.ceil(e/4)*4,s.push(-2);e++<u;)s.push(-1);break}case 10:{s.push(-4),e=1;break}default:n=!0,e=1}p=g+1}return r&&(n&&s.push(-5),t&&s.push(t),s.push(null)),s}}const characterEscapeOrReference=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function decodeString(e){return e.replace(characterEscapeOrReference,decode)}function decode(e,t,o){if(t)return t;if(o.charCodeAt(0)===35){const a=o.charCodeAt(1),i=a===120||a===88;return decodeNumericCharacterReference(o.slice(i?2:1),i?16:10)}return decodeNamedCharacterReference(o)||e}const own$2={}.hasOwnProperty;function fromMarkdown(e,t,o){return t&&typeof t=="object"&&(o=t,t=void 0),compiler(o)(postprocess(parse(o).document().write(preprocess()(e,t,!0))))}function compiler(e){const t={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:i(nt),autolinkProtocol:Y,autolinkEmail:Y,atxHeading:i(me),blockQuote:i(he),characterEscape:Y,characterReference:Y,codeFenced:i(ve),codeFencedFenceInfo:c,codeFencedFenceMeta:c,codeIndented:i(ve,c),codeText:i(ue,c),codeTextData:Y,data:Y,codeFlowValue:Y,definition:i(qe),definitionDestinationString:c,definitionLabelString:c,definitionTitleString:c,emphasis:i(de),hardBreakEscape:i(Qe),hardBreakTrailing:i(Qe),htmlFlow:i(We,c),htmlFlowData:Y,htmlText:i(We,c),htmlTextData:Y,image:i(ut),label:c,link:i(nt),listItem:i(pt),listItemValue:g,listOrdered:i(at,p),listUnordered:i(at),paragraph:i(yt),reference:f,referenceString:c,resourceDestinationString:c,resourceTitleString:c,setextHeading:i(me),strong:i(kt),thematicBreak:i(Ee)},exit:{atxHeading:s(),atxHeadingSequence:U,autolink:s(),autolinkEmail:ce,autolinkProtocol:W,blockQuote:s(),characterEscapeValue:oe,characterReferenceMarkerHexadecimal:ie,characterReferenceMarkerNumeric:ie,characterReferenceValue:le,characterReference:D,codeFenced:s(R),codeFencedFence:S,codeFencedFenceInfo:k,codeFencedFenceMeta:w,codeFlowValue:oe,codeIndented:s(C),codeText:s(A),codeTextData:oe,data:oe,definition:s(),definitionDestinationString:F,definitionLabelString:v,definitionTitleString:j,emphasis:s(),hardBreakEscape:s(E),hardBreakTrailing:s(E),htmlFlow:s(J),htmlFlowData:oe,htmlText:s(z),htmlTextData:oe,image:s(se),label:be,labelText:ge,lineEnding:H,link:s(Q),listItem:s(),listOrdered:s(),listUnordered:s(),paragraph:s(),referenceString:Ce,resourceDestinationString:m,resourceTitleString:_e,resource:we,setextHeading:s(Z),setextHeadingLineSequence:K,setextHeadingText:b,strong:s(),thematicBreak:s()}};configure(t,(e||{}).mdastExtensions||[]);const o={};return n;function n(L){let P={type:"root",children:[]};const V={stack:[P],tokenStack:[],config:t,enter:r,exit:h,buffer:c,resume:u,data:o},T=[];let ne=-1;for(;++ne<L.length;)if(L[ne][1].type==="listOrdered"||L[ne][1].type==="listUnordered")if(L[ne][0]==="enter")T.push(ne);else{const O=T.pop();ne=a(L,O,ne)}for(ne=-1;++ne<L.length;){const O=t[L[ne][0]];own$2.call(O,L[ne][1].type)&&O[L[ne][1].type].call(Object.assign({sliceSerialize:L[ne][2].sliceSerialize},V),L[ne][1])}if(V.tokenStack.length>0){const O=V.tokenStack[V.tokenStack.length-1];(O[1]||defaultOnError).call(V,void 0,O[0])}for(P.position={start:point(L.length>0?L[0][1].start:{line:1,column:1,offset:0}),end:point(L.length>0?L[L.length-2][1].end:{line:1,column:1,offset:0})},ne=-1;++ne<t.transforms.length;)P=t.transforms[ne](P)||P;return P}function a(L,P,V){let T=P-1,ne=-1,O=!1,Re,te,Pe,Fe;for(;++T<=V;){const ae=L[T];switch(ae[1].type){case"listUnordered":case"listOrdered":case"blockQuote":{ae[0]==="enter"?ne++:ne--,Fe=void 0;break}case"lineEndingBlank":{ae[0]==="enter"&&(Re&&!Fe&&!ne&&!Pe&&(Pe=T),Fe=void 0);break}case"linePrefix":case"listItemValue":case"listItemMarker":case"listItemPrefix":case"listItemPrefixWhitespace":break;default:Fe=void 0}if(!ne&&ae[0]==="enter"&&ae[1].type==="listItemPrefix"||ne===-1&&ae[0]==="exit"&&(ae[1].type==="listUnordered"||ae[1].type==="listOrdered")){if(Re){let ze=T;for(te=void 0;ze--;){const $e=L[ze];if($e[1].type==="lineEnding"||$e[1].type==="lineEndingBlank"){if($e[0]==="exit")continue;te&&(L[te][1].type="lineEndingBlank",O=!0),$e[1].type="lineEnding",te=ze}else if(!($e[1].type==="linePrefix"||$e[1].type==="blockQuotePrefix"||$e[1].type==="blockQuotePrefixWhitespace"||$e[1].type==="blockQuoteMarker"||$e[1].type==="listItemIndent"))break}Pe&&(!te||Pe<te)&&(Re._spread=!0),Re.end=Object.assign({},te?L[te][1].start:ae[1].end),L.splice(te||T,0,["exit",Re,ae[2]]),T++,V++}if(ae[1].type==="listItemPrefix"){const ze={type:"listItem",_spread:!1,start:Object.assign({},ae[1].start),end:void 0};Re=ze,L.splice(T,0,["enter",ze,ae[2]]),T++,V++,Pe=void 0,Fe=!0}}}return L[P][1]._spread=O,V}function i(L,P){return V;function V(T){r.call(this,L(T),T),P&&P.call(this,T)}}function c(){this.stack.push({type:"fragment",children:[]})}function r(L,P,V){this.stack[this.stack.length-1].children.push(L),this.stack.push(L),this.tokenStack.push([P,V||void 0]),L.position={start:point(P.start),end:void 0}}function s(L){return P;function P(V){L&&L.call(this,V),h.call(this,V)}}function h(L,P){const V=this.stack.pop(),T=this.tokenStack.pop();if(T)T[0].type!==L.type&&(P?P.call(this,L,T[0]):(T[1]||defaultOnError).call(this,L,T[0]));else throw new Error("Cannot close `"+L.type+"` ("+stringifyPosition({start:L.start,end:L.end})+"): it’s not open");V.position.end=point(L.end)}function u(){return toString$1(this.stack.pop())}function p(){this.data.expectingFirstListItemValue=!0}function g(L){if(this.data.expectingFirstListItemValue){const P=this.stack[this.stack.length-2];P.start=Number.parseInt(this.sliceSerialize(L),10),this.data.expectingFirstListItemValue=void 0}}function k(){const L=this.resume(),P=this.stack[this.stack.length-1];P.lang=L}function w(){const L=this.resume(),P=this.stack[this.stack.length-1];P.meta=L}function S(){this.data.flowCodeInside||(this.buffer(),this.data.flowCodeInside=!0)}function R(){const L=this.resume(),P=this.stack[this.stack.length-1];P.value=L.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),this.data.flowCodeInside=void 0}function C(){const L=this.resume(),P=this.stack[this.stack.length-1];P.value=L.replace(/(\r?\n|\r)$/g,"")}function v(L){const P=this.resume(),V=this.stack[this.stack.length-1];V.label=P,V.identifier=normalizeIdentifier(this.sliceSerialize(L)).toLowerCase()}function j(){const L=this.resume(),P=this.stack[this.stack.length-1];P.title=L}function F(){const L=this.resume(),P=this.stack[this.stack.length-1];P.url=L}function U(L){const P=this.stack[this.stack.length-1];if(!P.depth){const V=this.sliceSerialize(L).length;P.depth=V}}function b(){this.data.setextHeadingSlurpLineEnding=!0}function K(L){const P=this.stack[this.stack.length-1];P.depth=this.sliceSerialize(L).codePointAt(0)===61?1:2}function Z(){this.data.setextHeadingSlurpLineEnding=void 0}function Y(L){const V=this.stack[this.stack.length-1].children;let T=V[V.length-1];(!T||T.type!=="text")&&(T=Ge(),T.position={start:point(L.start),end:void 0},V.push(T)),this.stack.push(T)}function oe(L){const P=this.stack.pop();P.value+=this.sliceSerialize(L),P.position.end=point(L.end)}function H(L){const P=this.stack[this.stack.length-1];if(this.data.atHardBreak){const V=P.children[P.children.length-1];V.position.end=point(L.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&t.canContainEols.includes(P.type)&&(Y.call(this,L),oe.call(this,L))}function E(){this.data.atHardBreak=!0}function J(){const L=this.resume(),P=this.stack[this.stack.length-1];P.value=L}function z(){const L=this.resume(),P=this.stack[this.stack.length-1];P.value=L}function A(){const L=this.resume(),P=this.stack[this.stack.length-1];P.value=L}function Q(){const L=this.stack[this.stack.length-1];if(this.data.inReference){const P=this.data.referenceType||"shortcut";L.type+="Reference",L.referenceType=P,delete L.url,delete L.title}else delete L.identifier,delete L.label;this.data.referenceType=void 0}function se(){const L=this.stack[this.stack.length-1];if(this.data.inReference){const P=this.data.referenceType||"shortcut";L.type+="Reference",L.referenceType=P,delete L.url,delete L.title}else delete L.identifier,delete L.label;this.data.referenceType=void 0}function ge(L){const P=this.sliceSerialize(L),V=this.stack[this.stack.length-2];V.label=decodeString(P),V.identifier=normalizeIdentifier(P).toLowerCase()}function be(){const L=this.stack[this.stack.length-1],P=this.resume(),V=this.stack[this.stack.length-1];if(this.data.inReference=!0,V.type==="link"){const T=L.children;V.children=T}else V.alt=P}function m(){const L=this.resume(),P=this.stack[this.stack.length-1];P.url=L}function _e(){const L=this.resume(),P=this.stack[this.stack.length-1];P.title=L}function we(){this.data.inReference=void 0}function f(){this.data.referenceType="collapsed"}function Ce(L){const P=this.resume(),V=this.stack[this.stack.length-1];V.label=P,V.identifier=normalizeIdentifier(this.sliceSerialize(L)).toLowerCase(),this.data.referenceType="full"}function ie(L){this.data.characterReferenceType=L.type}function le(L){const P=this.sliceSerialize(L),V=this.data.characterReferenceType;let T;V?(T=decodeNumericCharacterReference(P,V==="characterReferenceMarkerNumeric"?10:16),this.data.characterReferenceType=void 0):T=decodeNamedCharacterReference(P);const ne=this.stack[this.stack.length-1];ne.value+=T}function D(L){const P=this.stack.pop();P.position.end=point(L.end)}function W(L){oe.call(this,L);const P=this.stack[this.stack.length-1];P.url=this.sliceSerialize(L)}function ce(L){oe.call(this,L);const P=this.stack[this.stack.length-1];P.url="mailto:"+this.sliceSerialize(L)}function he(){return{type:"blockquote",children:[]}}function ve(){return{type:"code",lang:null,meta:null,value:""}}function ue(){return{type:"inlineCode",value:""}}function qe(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function de(){return{type:"emphasis",children:[]}}function me(){return{type:"heading",depth:0,children:[]}}function Qe(){return{type:"break"}}function We(){return{type:"html",value:""}}function ut(){return{type:"image",title:null,url:"",alt:null}}function nt(){return{type:"link",title:null,url:"",children:[]}}function at(L){return{type:"list",ordered:L.type==="listOrdered",start:null,spread:L._spread,children:[]}}function pt(L){return{type:"listItem",spread:L._spread,checked:null,children:[]}}function yt(){return{type:"paragraph",children:[]}}function kt(){return{type:"strong",children:[]}}function Ge(){return{type:"text",value:""}}function Ee(){return{type:"thematicBreak"}}}function point(e){return{line:e.line,column:e.column,offset:e.offset}}function configure(e,t){let o=-1;for(;++o<t.length;){const n=t[o];Array.isArray(n)?configure(e,n):extension(e,n)}}function extension(e,t){let o;for(o in t)if(own$2.call(t,o))switch(o){case"canContainEols":{const n=t[o];n&&e[o].push(...n);break}case"transforms":{const n=t[o];n&&e[o].push(...n);break}case"enter":case"exit":{const n=t[o];n&&Object.assign(e[o],n);break}}}function defaultOnError(e,t){throw e?new Error("Cannot close `"+e.type+"` ("+stringifyPosition({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+stringifyPosition({start:t.start,end:t.end})+") is open"):new Error("Cannot close document, a token (`"+t.type+"`, "+stringifyPosition({start:t.start,end:t.end})+") is still open")}function remarkParse(e){const t=this;t.parser=o;function o(n){return fromMarkdown(n,{...t.data("settings"),...e,extensions:t.data("micromarkExtensions")||[],mdastExtensions:t.data("fromMarkdownExtensions")||[]})}}function blockquote(e,t){const o={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,o),e.applyData(t,o)}function hardBreak(e,t){const o={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,o),[e.applyData(t,o),{type:"text",value:`
8232
+ `;break}case-2:{c=t?" ":" ";break}case-1:{if(!t&&a)continue;c=" ";break}default:c=String.fromCharCode(i)}a=i===-2,n.push(c)}return n.join("")}function parse(e){const n={constructs:combineExtensions([defaultConstructs,...(e||{}).extensions||[]]),content:a(content$1),defined:[],document:a(document$2),flow:a(flow$1),lazy:{},string:a(string$1),text:a(text$2)};return n;function a(i){return c;function c(r){return createTokenizer(n,i,r)}}}function postprocess(e){for(;!subtokenize(e););return e}const search=/[\0\t\n\r]/g;function preprocess(){let e=1,t="",o=!0,n;return a;function a(i,c,r){const s=[];let h,u,p,g,k;for(i=t+(typeof i=="string"?i.toString():new TextDecoder(c||void 0).decode(i)),p=0,t="",o&&(i.charCodeAt(0)===65279&&p++,o=void 0);p<i.length;){if(search.lastIndex=p,h=search.exec(i),g=h&&h.index!==void 0?h.index:i.length,k=i.charCodeAt(g),!h){t=i.slice(p);break}if(k===10&&p===g&&n)s.push(-3),n=void 0;else switch(n&&(s.push(-5),n=void 0),p<g&&(s.push(i.slice(p,g)),e+=g-p),k){case 0:{s.push(65533),e++;break}case 9:{for(u=Math.ceil(e/4)*4,s.push(-2);e++<u;)s.push(-1);break}case 10:{s.push(-4),e=1;break}default:n=!0,e=1}p=g+1}return r&&(n&&s.push(-5),t&&s.push(t),s.push(null)),s}}const characterEscapeOrReference=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function decodeString(e){return e.replace(characterEscapeOrReference,decode)}function decode(e,t,o){if(t)return t;if(o.charCodeAt(0)===35){const a=o.charCodeAt(1),i=a===120||a===88;return decodeNumericCharacterReference(o.slice(i?2:1),i?16:10)}return decodeNamedCharacterReference(o)||e}const own$2={}.hasOwnProperty;function fromMarkdown(e,t,o){return t&&typeof t=="object"&&(o=t,t=void 0),compiler(o)(postprocess(parse(o).document().write(preprocess()(e,t,!0))))}function compiler(e){const t={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:i(nt),autolinkProtocol:ee,autolinkEmail:ee,atxHeading:i(me),blockQuote:i(he),characterEscape:ee,characterReference:ee,codeFenced:i(ve),codeFencedFenceInfo:c,codeFencedFenceMeta:c,codeIndented:i(ve,c),codeText:i(ue,c),codeTextData:ee,data:ee,codeFlowValue:ee,definition:i(Re),definitionDestinationString:c,definitionLabelString:c,definitionTitleString:c,emphasis:i(de),hardBreakEscape:i(Qe),hardBreakTrailing:i(Qe),htmlFlow:i(We,c),htmlFlowData:ee,htmlText:i(We,c),htmlTextData:ee,image:i(ut),label:c,link:i(nt),listItem:i(pt),listItemValue:g,listOrdered:i(at,p),listUnordered:i(at),paragraph:i(yt),reference:f,referenceString:c,resourceDestinationString:c,resourceTitleString:c,setextHeading:i(me),strong:i(kt),thematicBreak:i(Ee)},exit:{atxHeading:s(),atxHeadingSequence:U,autolink:s(),autolinkEmail:ce,autolinkProtocol:W,blockQuote:s(),characterEscapeValue:oe,characterReferenceMarkerHexadecimal:ie,characterReferenceMarkerNumeric:ie,characterReferenceValue:le,characterReference:D,codeFenced:s(q),codeFencedFence:N,codeFencedFenceInfo:k,codeFencedFenceMeta:w,codeFlowValue:oe,codeIndented:s(b),codeText:s(A),codeTextData:oe,data:oe,definition:s(),definitionDestinationString:F,definitionLabelString:v,definitionTitleString:j,emphasis:s(),hardBreakEscape:s(E),hardBreakTrailing:s(E),htmlFlow:s(J),htmlFlowData:oe,htmlText:s(z),htmlTextData:oe,image:s(se),label:be,labelText:ge,lineEnding:H,link:s(Q),listItem:s(),listOrdered:s(),listUnordered:s(),paragraph:s(),referenceString:Ce,resourceDestinationString:m,resourceTitleString:_e,resource:we,setextHeading:s(Z),setextHeadingLineSequence:K,setextHeadingText:C,strong:s(),thematicBreak:s()}};configure(t,(e||{}).mdastExtensions||[]);const o={};return n;function n(L){let P={type:"root",children:[]};const V={stack:[P],tokenStack:[],config:t,enter:r,exit:h,buffer:c,resume:u,data:o},T=[];let ne=-1;for(;++ne<L.length;)if(L[ne][1].type==="listOrdered"||L[ne][1].type==="listUnordered")if(L[ne][0]==="enter")T.push(ne);else{const O=T.pop();ne=a(L,O,ne)}for(ne=-1;++ne<L.length;){const O=t[L[ne][0]];own$2.call(O,L[ne][1].type)&&O[L[ne][1].type].call(Object.assign({sliceSerialize:L[ne][2].sliceSerialize},V),L[ne][1])}if(V.tokenStack.length>0){const O=V.tokenStack[V.tokenStack.length-1];(O[1]||defaultOnError).call(V,void 0,O[0])}for(P.position={start:point(L.length>0?L[0][1].start:{line:1,column:1,offset:0}),end:point(L.length>0?L[L.length-2][1].end:{line:1,column:1,offset:0})},ne=-1;++ne<t.transforms.length;)P=t.transforms[ne](P)||P;return P}function a(L,P,V){let T=P-1,ne=-1,O=!1,qe,te,Pe,Fe;for(;++T<=V;){const ae=L[T];switch(ae[1].type){case"listUnordered":case"listOrdered":case"blockQuote":{ae[0]==="enter"?ne++:ne--,Fe=void 0;break}case"lineEndingBlank":{ae[0]==="enter"&&(qe&&!Fe&&!ne&&!Pe&&(Pe=T),Fe=void 0);break}case"linePrefix":case"listItemValue":case"listItemMarker":case"listItemPrefix":case"listItemPrefixWhitespace":break;default:Fe=void 0}if(!ne&&ae[0]==="enter"&&ae[1].type==="listItemPrefix"||ne===-1&&ae[0]==="exit"&&(ae[1].type==="listUnordered"||ae[1].type==="listOrdered")){if(qe){let ze=T;for(te=void 0;ze--;){const $e=L[ze];if($e[1].type==="lineEnding"||$e[1].type==="lineEndingBlank"){if($e[0]==="exit")continue;te&&(L[te][1].type="lineEndingBlank",O=!0),$e[1].type="lineEnding",te=ze}else if(!($e[1].type==="linePrefix"||$e[1].type==="blockQuotePrefix"||$e[1].type==="blockQuotePrefixWhitespace"||$e[1].type==="blockQuoteMarker"||$e[1].type==="listItemIndent"))break}Pe&&(!te||Pe<te)&&(qe._spread=!0),qe.end=Object.assign({},te?L[te][1].start:ae[1].end),L.splice(te||T,0,["exit",qe,ae[2]]),T++,V++}if(ae[1].type==="listItemPrefix"){const ze={type:"listItem",_spread:!1,start:Object.assign({},ae[1].start),end:void 0};qe=ze,L.splice(T,0,["enter",ze,ae[2]]),T++,V++,Pe=void 0,Fe=!0}}}return L[P][1]._spread=O,V}function i(L,P){return V;function V(T){r.call(this,L(T),T),P&&P.call(this,T)}}function c(){this.stack.push({type:"fragment",children:[]})}function r(L,P,V){this.stack[this.stack.length-1].children.push(L),this.stack.push(L),this.tokenStack.push([P,V||void 0]),L.position={start:point(P.start),end:void 0}}function s(L){return P;function P(V){L&&L.call(this,V),h.call(this,V)}}function h(L,P){const V=this.stack.pop(),T=this.tokenStack.pop();if(T)T[0].type!==L.type&&(P?P.call(this,L,T[0]):(T[1]||defaultOnError).call(this,L,T[0]));else throw new Error("Cannot close `"+L.type+"` ("+stringifyPosition({start:L.start,end:L.end})+"): it’s not open");V.position.end=point(L.end)}function u(){return toString$1(this.stack.pop())}function p(){this.data.expectingFirstListItemValue=!0}function g(L){if(this.data.expectingFirstListItemValue){const P=this.stack[this.stack.length-2];P.start=Number.parseInt(this.sliceSerialize(L),10),this.data.expectingFirstListItemValue=void 0}}function k(){const L=this.resume(),P=this.stack[this.stack.length-1];P.lang=L}function w(){const L=this.resume(),P=this.stack[this.stack.length-1];P.meta=L}function N(){this.data.flowCodeInside||(this.buffer(),this.data.flowCodeInside=!0)}function q(){const L=this.resume(),P=this.stack[this.stack.length-1];P.value=L.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),this.data.flowCodeInside=void 0}function b(){const L=this.resume(),P=this.stack[this.stack.length-1];P.value=L.replace(/(\r?\n|\r)$/g,"")}function v(L){const P=this.resume(),V=this.stack[this.stack.length-1];V.label=P,V.identifier=normalizeIdentifier(this.sliceSerialize(L)).toLowerCase()}function j(){const L=this.resume(),P=this.stack[this.stack.length-1];P.title=L}function F(){const L=this.resume(),P=this.stack[this.stack.length-1];P.url=L}function U(L){const P=this.stack[this.stack.length-1];if(!P.depth){const V=this.sliceSerialize(L).length;P.depth=V}}function C(){this.data.setextHeadingSlurpLineEnding=!0}function K(L){const P=this.stack[this.stack.length-1];P.depth=this.sliceSerialize(L).codePointAt(0)===61?1:2}function Z(){this.data.setextHeadingSlurpLineEnding=void 0}function ee(L){const V=this.stack[this.stack.length-1].children;let T=V[V.length-1];(!T||T.type!=="text")&&(T=Ge(),T.position={start:point(L.start),end:void 0},V.push(T)),this.stack.push(T)}function oe(L){const P=this.stack.pop();P.value+=this.sliceSerialize(L),P.position.end=point(L.end)}function H(L){const P=this.stack[this.stack.length-1];if(this.data.atHardBreak){const V=P.children[P.children.length-1];V.position.end=point(L.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&t.canContainEols.includes(P.type)&&(ee.call(this,L),oe.call(this,L))}function E(){this.data.atHardBreak=!0}function J(){const L=this.resume(),P=this.stack[this.stack.length-1];P.value=L}function z(){const L=this.resume(),P=this.stack[this.stack.length-1];P.value=L}function A(){const L=this.resume(),P=this.stack[this.stack.length-1];P.value=L}function Q(){const L=this.stack[this.stack.length-1];if(this.data.inReference){const P=this.data.referenceType||"shortcut";L.type+="Reference",L.referenceType=P,delete L.url,delete L.title}else delete L.identifier,delete L.label;this.data.referenceType=void 0}function se(){const L=this.stack[this.stack.length-1];if(this.data.inReference){const P=this.data.referenceType||"shortcut";L.type+="Reference",L.referenceType=P,delete L.url,delete L.title}else delete L.identifier,delete L.label;this.data.referenceType=void 0}function ge(L){const P=this.sliceSerialize(L),V=this.stack[this.stack.length-2];V.label=decodeString(P),V.identifier=normalizeIdentifier(P).toLowerCase()}function be(){const L=this.stack[this.stack.length-1],P=this.resume(),V=this.stack[this.stack.length-1];if(this.data.inReference=!0,V.type==="link"){const T=L.children;V.children=T}else V.alt=P}function m(){const L=this.resume(),P=this.stack[this.stack.length-1];P.url=L}function _e(){const L=this.resume(),P=this.stack[this.stack.length-1];P.title=L}function we(){this.data.inReference=void 0}function f(){this.data.referenceType="collapsed"}function Ce(L){const P=this.resume(),V=this.stack[this.stack.length-1];V.label=P,V.identifier=normalizeIdentifier(this.sliceSerialize(L)).toLowerCase(),this.data.referenceType="full"}function ie(L){this.data.characterReferenceType=L.type}function le(L){const P=this.sliceSerialize(L),V=this.data.characterReferenceType;let T;V?(T=decodeNumericCharacterReference(P,V==="characterReferenceMarkerNumeric"?10:16),this.data.characterReferenceType=void 0):T=decodeNamedCharacterReference(P);const ne=this.stack[this.stack.length-1];ne.value+=T}function D(L){const P=this.stack.pop();P.position.end=point(L.end)}function W(L){oe.call(this,L);const P=this.stack[this.stack.length-1];P.url=this.sliceSerialize(L)}function ce(L){oe.call(this,L);const P=this.stack[this.stack.length-1];P.url="mailto:"+this.sliceSerialize(L)}function he(){return{type:"blockquote",children:[]}}function ve(){return{type:"code",lang:null,meta:null,value:""}}function ue(){return{type:"inlineCode",value:""}}function Re(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function de(){return{type:"emphasis",children:[]}}function me(){return{type:"heading",depth:0,children:[]}}function Qe(){return{type:"break"}}function We(){return{type:"html",value:""}}function ut(){return{type:"image",title:null,url:"",alt:null}}function nt(){return{type:"link",title:null,url:"",children:[]}}function at(L){return{type:"list",ordered:L.type==="listOrdered",start:null,spread:L._spread,children:[]}}function pt(L){return{type:"listItem",spread:L._spread,checked:null,children:[]}}function yt(){return{type:"paragraph",children:[]}}function kt(){return{type:"strong",children:[]}}function Ge(){return{type:"text",value:""}}function Ee(){return{type:"thematicBreak"}}}function point(e){return{line:e.line,column:e.column,offset:e.offset}}function configure(e,t){let o=-1;for(;++o<t.length;){const n=t[o];Array.isArray(n)?configure(e,n):extension(e,n)}}function extension(e,t){let o;for(o in t)if(own$2.call(t,o))switch(o){case"canContainEols":{const n=t[o];n&&e[o].push(...n);break}case"transforms":{const n=t[o];n&&e[o].push(...n);break}case"enter":case"exit":{const n=t[o];n&&Object.assign(e[o],n);break}}}function defaultOnError(e,t){throw e?new Error("Cannot close `"+e.type+"` ("+stringifyPosition({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+stringifyPosition({start:t.start,end:t.end})+") is open"):new Error("Cannot close document, a token (`"+t.type+"`, "+stringifyPosition({start:t.start,end:t.end})+") is still open")}function remarkParse(e){const t=this;t.parser=o;function o(n){return fromMarkdown(n,{...t.data("settings"),...e,extensions:t.data("micromarkExtensions")||[],mdastExtensions:t.data("fromMarkdownExtensions")||[]})}}function blockquote(e,t){const o={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,o),e.applyData(t,o)}function hardBreak(e,t){const o={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,o),[e.applyData(t,o),{type:"text",value:`
8233
8233
  `}]}function code(e,t){const o=t.value?t.value+`
8234
8234
  `:"",n={},a=t.lang?t.lang.split(/\s+/):[];a.length>0&&(n.className=["language-"+a[0]]);let i={type:"element",tagName:"code",properties:n,children:[{type:"text",value:o}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i=e.applyData(t,i),i={type:"element",tagName:"pre",properties:{},children:[i]},e.patch(t,i),i}function strikethrough(e,t){const o={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,o),e.applyData(t,o)}function emphasis(e,t){const o={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,o),e.applyData(t,o)}function footnoteReference(e,t){const o=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=String(t.identifier).toUpperCase(),a=normalizeUri(n.toLowerCase()),i=e.footnoteOrder.indexOf(n);let c,r=e.footnoteCounts.get(n);r===void 0?(r=0,e.footnoteOrder.push(n),c=e.footnoteOrder.length):c=i+1,r+=1,e.footnoteCounts.set(n,r);const s={type:"element",tagName:"a",properties:{href:"#"+o+"fn-"+a,id:o+"fnref-"+a+(r>1?"-"+r:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(c)}]};e.patch(t,s);const h={type:"element",tagName:"sup",properties:{},children:[s]};return e.patch(t,h),e.applyData(t,h)}function heading(e,t){const o={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,o),e.applyData(t,o)}function html(e,t){if(e.options.allowDangerousHtml){const o={type:"raw",value:t.value};return e.patch(t,o),e.applyData(t,o)}}function revert(e,t){const o=t.referenceType;let n="]";if(o==="collapsed"?n+="[]":o==="full"&&(n+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+n}];const a=e.all(t),i=a[0];i&&i.type==="text"?i.value="["+i.value:a.unshift({type:"text",value:"["});const c=a[a.length-1];return c&&c.type==="text"?c.value+=n:a.push({type:"text",value:n}),a}function imageReference(e,t){const o=String(t.identifier).toUpperCase(),n=e.definitionById.get(o);if(!n)return revert(e,t);const a={src:normalizeUri(n.url||""),alt:t.alt};n.title!==null&&n.title!==void 0&&(a.title=n.title);const i={type:"element",tagName:"img",properties:a,children:[]};return e.patch(t,i),e.applyData(t,i)}function image(e,t){const o={src:normalizeUri(t.url)};t.alt!==null&&t.alt!==void 0&&(o.alt=t.alt),t.title!==null&&t.title!==void 0&&(o.title=t.title);const n={type:"element",tagName:"img",properties:o,children:[]};return e.patch(t,n),e.applyData(t,n)}function inlineCode(e,t){const o={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,o);const n={type:"element",tagName:"code",properties:{},children:[o]};return e.patch(t,n),e.applyData(t,n)}function linkReference(e,t){const o=String(t.identifier).toUpperCase(),n=e.definitionById.get(o);if(!n)return revert(e,t);const a={href:normalizeUri(n.url||"")};n.title!==null&&n.title!==void 0&&(a.title=n.title);const i={type:"element",tagName:"a",properties:a,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function link(e,t){const o={href:normalizeUri(t.url)};t.title!==null&&t.title!==void 0&&(o.title=t.title);const n={type:"element",tagName:"a",properties:o,children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function listItem(e,t,o){const n=e.all(t),a=o?listLoose(o):listItemLoose(t),i={},c=[];if(typeof t.checked=="boolean"){const u=n[0];let p;u&&u.type==="element"&&u.tagName==="p"?p=u:(p={type:"element",tagName:"p",properties:{},children:[]},n.unshift(p)),p.children.length>0&&p.children.unshift({type:"text",value:" "}),p.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let r=-1;for(;++r<n.length;){const u=n[r];(a||r!==0||u.type!=="element"||u.tagName!=="p")&&c.push({type:"text",value:`
8235
8235
  `}),u.type==="element"&&u.tagName==="p"&&!a?c.push(...u.children):c.push(u)}const s=n[n.length-1];s&&(a||s.type!=="element"||s.tagName!=="p")&&c.push({type:"text",value:`
8236
- `});const h={type:"element",tagName:"li",properties:i,children:c};return e.patch(t,h),e.applyData(t,h)}function listLoose(e){let t=!1;if(e.type==="list"){t=e.spread||!1;const o=e.children;let n=-1;for(;!t&&++n<o.length;)t=listItemLoose(o[n])}return t}function listItemLoose(e){const t=e.spread;return t??e.children.length>1}function list(e,t){const o={},n=e.all(t);let a=-1;for(typeof t.start=="number"&&t.start!==1&&(o.start=t.start);++a<n.length;){const c=n[a];if(c.type==="element"&&c.tagName==="li"&&c.properties&&Array.isArray(c.properties.className)&&c.properties.className.includes("task-list-item")){o.className=["contains-task-list"];break}}const i={type:"element",tagName:t.ordered?"ol":"ul",properties:o,children:e.wrap(n,!0)};return e.patch(t,i),e.applyData(t,i)}function paragraph(e,t){const o={type:"element",tagName:"p",properties:{},children:e.all(t)};return e.patch(t,o),e.applyData(t,o)}function root(e,t){const o={type:"root",children:e.wrap(e.all(t))};return e.patch(t,o),e.applyData(t,o)}function strong(e,t){const o={type:"element",tagName:"strong",properties:{},children:e.all(t)};return e.patch(t,o),e.applyData(t,o)}function table(e,t){const o=e.all(t),n=o.shift(),a=[];if(n){const c={type:"element",tagName:"thead",properties:{},children:e.wrap([n],!0)};e.patch(t.children[0],c),a.push(c)}if(o.length>0){const c={type:"element",tagName:"tbody",properties:{},children:e.wrap(o,!0)},r=pointStart(t.children[1]),s=pointEnd(t.children[t.children.length-1]);r&&s&&(c.position={start:r,end:s}),a.push(c)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(a,!0)};return e.patch(t,i),e.applyData(t,i)}function tableRow(e,t,o){const n=o?o.children:void 0,i=(n?n.indexOf(t):1)===0?"th":"td",c=o&&o.type==="table"?o.align:void 0,r=c?c.length:t.children.length;let s=-1;const h=[];for(;++s<r;){const p=t.children[s],g={},k=c?c[s]:void 0;k&&(g.align=k);let w={type:"element",tagName:i,properties:g,children:[]};p&&(w.children=e.all(p),e.patch(p,w),w=e.applyData(p,w)),h.push(w)}const u={type:"element",tagName:"tr",properties:{},children:e.wrap(h,!0)};return e.patch(t,u),e.applyData(t,u)}function tableCell(e,t){const o={type:"element",tagName:"td",properties:{},children:e.all(t)};return e.patch(t,o),e.applyData(t,o)}const tab=9,space=32;function trimLines(e){const t=String(e),o=/\r?\n|\r/g;let n=o.exec(t),a=0;const i=[];for(;n;)i.push(trimLine(t.slice(a,n.index),a>0,!0),n[0]),a=n.index+n[0].length,n=o.exec(t);return i.push(trimLine(t.slice(a),a>0,!1)),i.join("")}function trimLine(e,t,o){let n=0,a=e.length;if(t){let i=e.codePointAt(n);for(;i===tab||i===space;)n++,i=e.codePointAt(n)}if(o){let i=e.codePointAt(a-1);for(;i===tab||i===space;)a--,i=e.codePointAt(a-1)}return a>n?e.slice(n,a):""}function text(e,t){const o={type:"text",value:trimLines(String(t.value))};return e.patch(t,o),e.applyData(t,o)}function thematicBreak(e,t){const o={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,o),e.applyData(t,o)}const handlers={blockquote,break:hardBreak,code,delete:strikethrough,emphasis,footnoteReference,heading,html,imageReference,image,inlineCode,linkReference,link,listItem,list,paragraph,root,strong,table,tableCell,tableRow,text,thematicBreak,toml:ignore,yaml:ignore,definition:ignore,footnoteDefinition:ignore};function ignore(){}const VOID=-1,PRIMITIVE=0,ARRAY=1,OBJECT=2,DATE=3,REGEXP=4,MAP=5,SET=6,ERROR=7,BIGINT=8,env=typeof self=="object"?self:globalThis,guard=(e,t)=>{switch(e){case"Function":case"SharedWorker":case"Worker":case"eval":case"setInterval":case"setTimeout":throw new TypeError("unable to deserialize "+e)}return new env[e](t)},deserializer=(e,t)=>{const o=(a,i)=>(e.set(i,a),a),n=a=>{if(e.has(a))return e.get(a);const[i,c]=t[a];switch(i){case PRIMITIVE:case VOID:return o(c,a);case ARRAY:{const r=o([],a);for(const s of c)r.push(n(s));return r}case OBJECT:{const r=o({},a);for(const[s,h]of c)r[n(s)]=n(h);return r}case DATE:return o(new Date(c),a);case REGEXP:{const{source:r,flags:s}=c;return o(new RegExp(r,s),a)}case MAP:{const r=o(new Map,a);for(const[s,h]of c)r.set(n(s),n(h));return r}case SET:{const r=o(new Set,a);for(const s of c)r.add(n(s));return r}case ERROR:{const{name:r,message:s}=c;return o(guard(r,s),a)}case BIGINT:return o(BigInt(c),a);case"BigInt":return o(Object(BigInt(c)),a);case"ArrayBuffer":return o(new Uint8Array(c).buffer,c);case"DataView":{const{buffer:r}=new Uint8Array(c);return o(new DataView(r),c)}}return o(guard(i,c),a)};return n},deserialize=e=>deserializer(new Map,e)(0),EMPTY="",{toString}={},{keys}=Object,typeOf=e=>{const t=typeof e;if(t!=="object"||!e)return[PRIMITIVE,t];const o=toString.call(e).slice(8,-1);switch(o){case"Array":return[ARRAY,EMPTY];case"Object":return[OBJECT,EMPTY];case"Date":return[DATE,EMPTY];case"RegExp":return[REGEXP,EMPTY];case"Map":return[MAP,EMPTY];case"Set":return[SET,EMPTY];case"DataView":return[ARRAY,o]}return o.includes("Array")?[ARRAY,o]:o.includes("Error")?[ERROR,o]:[OBJECT,o]},shouldSkip=([e,t])=>e===PRIMITIVE&&(t==="function"||t==="symbol"),serializer=(e,t,o,n)=>{const a=(c,r)=>{const s=n.push(c)-1;return o.set(r,s),s},i=c=>{if(o.has(c))return o.get(c);let[r,s]=typeOf(c);switch(r){case PRIMITIVE:{let u=c;switch(s){case"bigint":r=BIGINT,u=c.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+s);u=null;break;case"undefined":return a([VOID],c)}return a([r,u],c)}case ARRAY:{if(s){let g=c;return s==="DataView"?g=new Uint8Array(c.buffer):s==="ArrayBuffer"&&(g=new Uint8Array(c)),a([s,[...g]],c)}const u=[],p=a([r,u],c);for(const g of c)u.push(i(g));return p}case OBJECT:{if(s)switch(s){case"BigInt":return a([s,c.toString()],c);case"Boolean":case"Number":case"String":return a([s,c.valueOf()],c)}if(t&&"toJSON"in c)return i(c.toJSON());const u=[],p=a([r,u],c);for(const g of keys(c))(e||!shouldSkip(typeOf(c[g])))&&u.push([i(g),i(c[g])]);return p}case DATE:return a([r,c.toISOString()],c);case REGEXP:{const{source:u,flags:p}=c;return a([r,{source:u,flags:p}],c)}case MAP:{const u=[],p=a([r,u],c);for(const[g,k]of c)(e||!(shouldSkip(typeOf(g))||shouldSkip(typeOf(k))))&&u.push([i(g),i(k)]);return p}case SET:{const u=[],p=a([r,u],c);for(const g of c)(e||!shouldSkip(typeOf(g)))&&u.push(i(g));return p}}const{message:h}=c;return a([r,{name:s,message:h}],c)};return i},serialize=(e,{json:t,lossy:o}={})=>{const n=[];return serializer(!(t||o),!!t,new Map,n)(e),n},structuredClone$1=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?deserialize(serialize(e,t)):structuredClone(e):(e,t)=>deserialize(serialize(e,t));function defaultFootnoteBackContent(e,t){const o=[{type:"text",value:"↩"}];return t>1&&o.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),o}function defaultFootnoteBackLabel(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function footer(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",o=e.options.footnoteBackContent||defaultFootnoteBackContent,n=e.options.footnoteBackLabel||defaultFootnoteBackLabel,a=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",c=e.options.footnoteLabelProperties||{className:["sr-only"]},r=[];let s=-1;for(;++s<e.footnoteOrder.length;){const h=e.footnoteById.get(e.footnoteOrder[s]);if(!h)continue;const u=e.all(h),p=String(h.identifier).toUpperCase(),g=normalizeUri(p.toLowerCase());let k=0;const w=[],S=e.footnoteCounts.get(p);for(;S!==void 0&&++k<=S;){w.length>0&&w.push({type:"text",value:" "});let v=typeof o=="string"?o:o(s,k);typeof v=="string"&&(v={type:"text",value:v}),w.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+g+(k>1?"-"+k:""),dataFootnoteBackref:"",ariaLabel:typeof n=="string"?n:n(s,k),className:["data-footnote-backref"]},children:Array.isArray(v)?v:[v]})}const R=u[u.length-1];if(R&&R.type==="element"&&R.tagName==="p"){const v=R.children[R.children.length-1];v&&v.type==="text"?v.value+=" ":R.children.push({type:"text",value:" "}),R.children.push(...w)}else u.push(...w);const C={type:"element",tagName:"li",properties:{id:t+"fn-"+g},children:e.wrap(u,!0)};e.patch(h,C),r.push(C)}if(r.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...structuredClone$1(c),id:"footnote-label"},children:[{type:"text",value:a}]},{type:"text",value:`
8236
+ `});const h={type:"element",tagName:"li",properties:i,children:c};return e.patch(t,h),e.applyData(t,h)}function listLoose(e){let t=!1;if(e.type==="list"){t=e.spread||!1;const o=e.children;let n=-1;for(;!t&&++n<o.length;)t=listItemLoose(o[n])}return t}function listItemLoose(e){const t=e.spread;return t??e.children.length>1}function list(e,t){const o={},n=e.all(t);let a=-1;for(typeof t.start=="number"&&t.start!==1&&(o.start=t.start);++a<n.length;){const c=n[a];if(c.type==="element"&&c.tagName==="li"&&c.properties&&Array.isArray(c.properties.className)&&c.properties.className.includes("task-list-item")){o.className=["contains-task-list"];break}}const i={type:"element",tagName:t.ordered?"ol":"ul",properties:o,children:e.wrap(n,!0)};return e.patch(t,i),e.applyData(t,i)}function paragraph(e,t){const o={type:"element",tagName:"p",properties:{},children:e.all(t)};return e.patch(t,o),e.applyData(t,o)}function root(e,t){const o={type:"root",children:e.wrap(e.all(t))};return e.patch(t,o),e.applyData(t,o)}function strong(e,t){const o={type:"element",tagName:"strong",properties:{},children:e.all(t)};return e.patch(t,o),e.applyData(t,o)}function table(e,t){const o=e.all(t),n=o.shift(),a=[];if(n){const c={type:"element",tagName:"thead",properties:{},children:e.wrap([n],!0)};e.patch(t.children[0],c),a.push(c)}if(o.length>0){const c={type:"element",tagName:"tbody",properties:{},children:e.wrap(o,!0)},r=pointStart(t.children[1]),s=pointEnd(t.children[t.children.length-1]);r&&s&&(c.position={start:r,end:s}),a.push(c)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(a,!0)};return e.patch(t,i),e.applyData(t,i)}function tableRow(e,t,o){const n=o?o.children:void 0,i=(n?n.indexOf(t):1)===0?"th":"td",c=o&&o.type==="table"?o.align:void 0,r=c?c.length:t.children.length;let s=-1;const h=[];for(;++s<r;){const p=t.children[s],g={},k=c?c[s]:void 0;k&&(g.align=k);let w={type:"element",tagName:i,properties:g,children:[]};p&&(w.children=e.all(p),e.patch(p,w),w=e.applyData(p,w)),h.push(w)}const u={type:"element",tagName:"tr",properties:{},children:e.wrap(h,!0)};return e.patch(t,u),e.applyData(t,u)}function tableCell(e,t){const o={type:"element",tagName:"td",properties:{},children:e.all(t)};return e.patch(t,o),e.applyData(t,o)}const tab=9,space=32;function trimLines(e){const t=String(e),o=/\r?\n|\r/g;let n=o.exec(t),a=0;const i=[];for(;n;)i.push(trimLine(t.slice(a,n.index),a>0,!0),n[0]),a=n.index+n[0].length,n=o.exec(t);return i.push(trimLine(t.slice(a),a>0,!1)),i.join("")}function trimLine(e,t,o){let n=0,a=e.length;if(t){let i=e.codePointAt(n);for(;i===tab||i===space;)n++,i=e.codePointAt(n)}if(o){let i=e.codePointAt(a-1);for(;i===tab||i===space;)a--,i=e.codePointAt(a-1)}return a>n?e.slice(n,a):""}function text(e,t){const o={type:"text",value:trimLines(String(t.value))};return e.patch(t,o),e.applyData(t,o)}function thematicBreak(e,t){const o={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,o),e.applyData(t,o)}const handlers={blockquote,break:hardBreak,code,delete:strikethrough,emphasis,footnoteReference,heading,html,imageReference,image,inlineCode,linkReference,link,listItem,list,paragraph,root,strong,table,tableCell,tableRow,text,thematicBreak,toml:ignore,yaml:ignore,definition:ignore,footnoteDefinition:ignore};function ignore(){}const VOID=-1,PRIMITIVE=0,ARRAY=1,OBJECT=2,DATE=3,REGEXP=4,MAP=5,SET=6,ERROR=7,BIGINT=8,env=typeof self=="object"?self:globalThis,guard=(e,t)=>{switch(e){case"Function":case"SharedWorker":case"Worker":case"eval":case"setInterval":case"setTimeout":throw new TypeError("unable to deserialize "+e)}return new env[e](t)},deserializer=(e,t)=>{const o=(a,i)=>(e.set(i,a),a),n=a=>{if(e.has(a))return e.get(a);const[i,c]=t[a];switch(i){case PRIMITIVE:case VOID:return o(c,a);case ARRAY:{const r=o([],a);for(const s of c)r.push(n(s));return r}case OBJECT:{const r=o({},a);for(const[s,h]of c)r[n(s)]=n(h);return r}case DATE:return o(new Date(c),a);case REGEXP:{const{source:r,flags:s}=c;return o(new RegExp(r,s),a)}case MAP:{const r=o(new Map,a);for(const[s,h]of c)r.set(n(s),n(h));return r}case SET:{const r=o(new Set,a);for(const s of c)r.add(n(s));return r}case ERROR:{const{name:r,message:s}=c;return o(guard(r,s),a)}case BIGINT:return o(BigInt(c),a);case"BigInt":return o(Object(BigInt(c)),a);case"ArrayBuffer":return o(new Uint8Array(c).buffer,c);case"DataView":{const{buffer:r}=new Uint8Array(c);return o(new DataView(r),c)}}return o(guard(i,c),a)};return n},deserialize=e=>deserializer(new Map,e)(0),EMPTY="",{toString}={},{keys}=Object,typeOf=e=>{const t=typeof e;if(t!=="object"||!e)return[PRIMITIVE,t];const o=toString.call(e).slice(8,-1);switch(o){case"Array":return[ARRAY,EMPTY];case"Object":return[OBJECT,EMPTY];case"Date":return[DATE,EMPTY];case"RegExp":return[REGEXP,EMPTY];case"Map":return[MAP,EMPTY];case"Set":return[SET,EMPTY];case"DataView":return[ARRAY,o]}return o.includes("Array")?[ARRAY,o]:o.includes("Error")?[ERROR,o]:[OBJECT,o]},shouldSkip=([e,t])=>e===PRIMITIVE&&(t==="function"||t==="symbol"),serializer=(e,t,o,n)=>{const a=(c,r)=>{const s=n.push(c)-1;return o.set(r,s),s},i=c=>{if(o.has(c))return o.get(c);let[r,s]=typeOf(c);switch(r){case PRIMITIVE:{let u=c;switch(s){case"bigint":r=BIGINT,u=c.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+s);u=null;break;case"undefined":return a([VOID],c)}return a([r,u],c)}case ARRAY:{if(s){let g=c;return s==="DataView"?g=new Uint8Array(c.buffer):s==="ArrayBuffer"&&(g=new Uint8Array(c)),a([s,[...g]],c)}const u=[],p=a([r,u],c);for(const g of c)u.push(i(g));return p}case OBJECT:{if(s)switch(s){case"BigInt":return a([s,c.toString()],c);case"Boolean":case"Number":case"String":return a([s,c.valueOf()],c)}if(t&&"toJSON"in c)return i(c.toJSON());const u=[],p=a([r,u],c);for(const g of keys(c))(e||!shouldSkip(typeOf(c[g])))&&u.push([i(g),i(c[g])]);return p}case DATE:return a([r,c.toISOString()],c);case REGEXP:{const{source:u,flags:p}=c;return a([r,{source:u,flags:p}],c)}case MAP:{const u=[],p=a([r,u],c);for(const[g,k]of c)(e||!(shouldSkip(typeOf(g))||shouldSkip(typeOf(k))))&&u.push([i(g),i(k)]);return p}case SET:{const u=[],p=a([r,u],c);for(const g of c)(e||!shouldSkip(typeOf(g)))&&u.push(i(g));return p}}const{message:h}=c;return a([r,{name:s,message:h}],c)};return i},serialize=(e,{json:t,lossy:o}={})=>{const n=[];return serializer(!(t||o),!!t,new Map,n)(e),n},structuredClone$1=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?deserialize(serialize(e,t)):structuredClone(e):(e,t)=>deserialize(serialize(e,t));function defaultFootnoteBackContent(e,t){const o=[{type:"text",value:"↩"}];return t>1&&o.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),o}function defaultFootnoteBackLabel(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function footer(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",o=e.options.footnoteBackContent||defaultFootnoteBackContent,n=e.options.footnoteBackLabel||defaultFootnoteBackLabel,a=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",c=e.options.footnoteLabelProperties||{className:["sr-only"]},r=[];let s=-1;for(;++s<e.footnoteOrder.length;){const h=e.footnoteById.get(e.footnoteOrder[s]);if(!h)continue;const u=e.all(h),p=String(h.identifier).toUpperCase(),g=normalizeUri(p.toLowerCase());let k=0;const w=[],N=e.footnoteCounts.get(p);for(;N!==void 0&&++k<=N;){w.length>0&&w.push({type:"text",value:" "});let v=typeof o=="string"?o:o(s,k);typeof v=="string"&&(v={type:"text",value:v}),w.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+g+(k>1?"-"+k:""),dataFootnoteBackref:"",ariaLabel:typeof n=="string"?n:n(s,k),className:["data-footnote-backref"]},children:Array.isArray(v)?v:[v]})}const q=u[u.length-1];if(q&&q.type==="element"&&q.tagName==="p"){const v=q.children[q.children.length-1];v&&v.type==="text"?v.value+=" ":q.children.push({type:"text",value:" "}),q.children.push(...w)}else u.push(...w);const b={type:"element",tagName:"li",properties:{id:t+"fn-"+g},children:e.wrap(u,!0)};e.patch(h,b),r.push(b)}if(r.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...structuredClone$1(c),id:"footnote-label"},children:[{type:"text",value:a}]},{type:"text",value:`
8237
8237
  `},{type:"element",tagName:"ol",properties:{},children:e.wrap(r,!0)},{type:"text",value:`
8238
- `}]}}const convert=(function(e){if(e==null)return ok;if(typeof e=="function")return castFactory(e);if(typeof e=="object")return Array.isArray(e)?anyFactory(e):propertiesFactory(e);if(typeof e=="string")return typeFactory(e);throw new Error("Expected function, string, or object as test")});function anyFactory(e){const t=[];let o=-1;for(;++o<e.length;)t[o]=convert(e[o]);return castFactory(n);function n(...a){let i=-1;for(;++i<t.length;)if(t[i].apply(this,a))return!0;return!1}}function propertiesFactory(e){const t=e;return castFactory(o);function o(n){const a=n;let i;for(i in e)if(a[i]!==t[i])return!1;return!0}}function typeFactory(e){return castFactory(t);function t(o){return o&&o.type===e}}function castFactory(e){return t;function t(o,n,a){return!!(looksLikeANode(o)&&e.call(this,o,typeof n=="number"?n:void 0,a||void 0))}}function ok(){return!0}function looksLikeANode(e){return e!==null&&typeof e=="object"&&"type"in e}function color(e){return e}const empty=[],CONTINUE=!0,EXIT=!1,SKIP="skip";function visitParents(e,t,o,n){let a;typeof t=="function"&&typeof o!="function"?(n=o,o=t):a=t;const i=convert(a),c=n?-1:1;r(e,void 0,[])();function r(s,h,u){const p=s&&typeof s=="object"?s:{};if(typeof p.type=="string"){const k=typeof p.tagName=="string"?p.tagName:typeof p.name=="string"?p.name:void 0;Object.defineProperty(g,"name",{value:"node ("+(s.type+(k?"<"+k+">":""))+")"})}return g;function g(){let k=empty,w,S,R;if((!t||i(s,h,u[u.length-1]||void 0))&&(k=toResult(o(s,u)),k[0]===EXIT))return k;if("children"in s&&s.children){const C=s;if(C.children&&k[0]!==SKIP)for(S=(n?C.children.length:-1)+c,R=u.concat(C);S>-1&&S<C.children.length;){const v=C.children[S];if(w=r(v,S,R)(),w[0]===EXIT)return w;S=typeof w[1]=="number"?w[1]:S+c}}return k}}}function toResult(e){return Array.isArray(e)?e:typeof e=="number"?[CONTINUE,e]:e==null?empty:[e]}function visit(e,t,o,n){let a,i,c;typeof t=="function"&&typeof o!="function"?(i=void 0,c=t,a=o):(i=t,c=o,a=n),visitParents(e,i,r,a);function r(s,h){const u=h[h.length-1],p=u?u.children.indexOf(s):void 0;return c(s,p,u)}}const own$1={}.hasOwnProperty,emptyOptions={};function createState(e,t){const o=t||emptyOptions,n=new Map,a=new Map,i=new Map,c={...handlers,...o.handlers},r={all:h,applyData,definitionById:n,footnoteById:a,footnoteCounts:i,footnoteOrder:[],handlers:c,one:s,options:o,patch,wrap:wrap$1};return visit(e,function(u){if(u.type==="definition"||u.type==="footnoteDefinition"){const p=u.type==="definition"?n:a,g=String(u.identifier).toUpperCase();p.has(g)||p.set(g,u)}}),r;function s(u,p){const g=u.type,k=r.handlers[g];if(own$1.call(r.handlers,g)&&k)return k(r,u,p);if(r.options.passThrough&&r.options.passThrough.includes(g)){if("children"in u){const{children:S,...R}=u,C=structuredClone$1(R);return C.children=r.all(u),C}return structuredClone$1(u)}return(r.options.unknownHandler||defaultUnknownHandler)(r,u,p)}function h(u){const p=[];if("children"in u){const g=u.children;let k=-1;for(;++k<g.length;){const w=r.one(g[k],u);if(w){if(k&&g[k-1].type==="break"&&(!Array.isArray(w)&&w.type==="text"&&(w.value=trimMarkdownSpaceStart(w.value)),!Array.isArray(w)&&w.type==="element")){const S=w.children[0];S&&S.type==="text"&&(S.value=trimMarkdownSpaceStart(S.value))}Array.isArray(w)?p.push(...w):p.push(w)}}}return p}}function patch(e,t){e.position&&(t.position=position$1(e))}function applyData(e,t){let o=t;if(e&&e.data){const n=e.data.hName,a=e.data.hChildren,i=e.data.hProperties;if(typeof n=="string")if(o.type==="element")o.tagName=n;else{const c="children"in o?o.children:[o];o={type:"element",tagName:n,properties:{},children:c}}o.type==="element"&&i&&Object.assign(o.properties,structuredClone$1(i)),"children"in o&&o.children&&a!==null&&a!==void 0&&(o.children=a)}return o}function defaultUnknownHandler(e,t){const o=t.data||{},n="value"in t&&!(own$1.call(o,"hProperties")||own$1.call(o,"hChildren"))?{type:"text",value:t.value}:{type:"element",tagName:"div",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function wrap$1(e,t){const o=[];let n=-1;for(t&&o.push({type:"text",value:`
8238
+ `}]}}const convert=(function(e){if(e==null)return ok;if(typeof e=="function")return castFactory(e);if(typeof e=="object")return Array.isArray(e)?anyFactory(e):propertiesFactory(e);if(typeof e=="string")return typeFactory(e);throw new Error("Expected function, string, or object as test")});function anyFactory(e){const t=[];let o=-1;for(;++o<e.length;)t[o]=convert(e[o]);return castFactory(n);function n(...a){let i=-1;for(;++i<t.length;)if(t[i].apply(this,a))return!0;return!1}}function propertiesFactory(e){const t=e;return castFactory(o);function o(n){const a=n;let i;for(i in e)if(a[i]!==t[i])return!1;return!0}}function typeFactory(e){return castFactory(t);function t(o){return o&&o.type===e}}function castFactory(e){return t;function t(o,n,a){return!!(looksLikeANode(o)&&e.call(this,o,typeof n=="number"?n:void 0,a||void 0))}}function ok(){return!0}function looksLikeANode(e){return e!==null&&typeof e=="object"&&"type"in e}function color(e){return e}const empty=[],CONTINUE=!0,EXIT=!1,SKIP="skip";function visitParents(e,t,o,n){let a;typeof t=="function"&&typeof o!="function"?(n=o,o=t):a=t;const i=convert(a),c=n?-1:1;r(e,void 0,[])();function r(s,h,u){const p=s&&typeof s=="object"?s:{};if(typeof p.type=="string"){const k=typeof p.tagName=="string"?p.tagName:typeof p.name=="string"?p.name:void 0;Object.defineProperty(g,"name",{value:"node ("+(s.type+(k?"<"+k+">":""))+")"})}return g;function g(){let k=empty,w,N,q;if((!t||i(s,h,u[u.length-1]||void 0))&&(k=toResult(o(s,u)),k[0]===EXIT))return k;if("children"in s&&s.children){const b=s;if(b.children&&k[0]!==SKIP)for(N=(n?b.children.length:-1)+c,q=u.concat(b);N>-1&&N<b.children.length;){const v=b.children[N];if(w=r(v,N,q)(),w[0]===EXIT)return w;N=typeof w[1]=="number"?w[1]:N+c}}return k}}}function toResult(e){return Array.isArray(e)?e:typeof e=="number"?[CONTINUE,e]:e==null?empty:[e]}function visit(e,t,o,n){let a,i,c;typeof t=="function"&&typeof o!="function"?(i=void 0,c=t,a=o):(i=t,c=o,a=n),visitParents(e,i,r,a);function r(s,h){const u=h[h.length-1],p=u?u.children.indexOf(s):void 0;return c(s,p,u)}}const own$1={}.hasOwnProperty,emptyOptions={};function createState(e,t){const o=t||emptyOptions,n=new Map,a=new Map,i=new Map,c={...handlers,...o.handlers},r={all:h,applyData,definitionById:n,footnoteById:a,footnoteCounts:i,footnoteOrder:[],handlers:c,one:s,options:o,patch,wrap:wrap$1};return visit(e,function(u){if(u.type==="definition"||u.type==="footnoteDefinition"){const p=u.type==="definition"?n:a,g=String(u.identifier).toUpperCase();p.has(g)||p.set(g,u)}}),r;function s(u,p){const g=u.type,k=r.handlers[g];if(own$1.call(r.handlers,g)&&k)return k(r,u,p);if(r.options.passThrough&&r.options.passThrough.includes(g)){if("children"in u){const{children:N,...q}=u,b=structuredClone$1(q);return b.children=r.all(u),b}return structuredClone$1(u)}return(r.options.unknownHandler||defaultUnknownHandler)(r,u,p)}function h(u){const p=[];if("children"in u){const g=u.children;let k=-1;for(;++k<g.length;){const w=r.one(g[k],u);if(w){if(k&&g[k-1].type==="break"&&(!Array.isArray(w)&&w.type==="text"&&(w.value=trimMarkdownSpaceStart(w.value)),!Array.isArray(w)&&w.type==="element")){const N=w.children[0];N&&N.type==="text"&&(N.value=trimMarkdownSpaceStart(N.value))}Array.isArray(w)?p.push(...w):p.push(w)}}}return p}}function patch(e,t){e.position&&(t.position=position$1(e))}function applyData(e,t){let o=t;if(e&&e.data){const n=e.data.hName,a=e.data.hChildren,i=e.data.hProperties;if(typeof n=="string")if(o.type==="element")o.tagName=n;else{const c="children"in o?o.children:[o];o={type:"element",tagName:n,properties:{},children:c}}o.type==="element"&&i&&Object.assign(o.properties,structuredClone$1(i)),"children"in o&&o.children&&a!==null&&a!==void 0&&(o.children=a)}return o}function defaultUnknownHandler(e,t){const o=t.data||{},n="value"in t&&!(own$1.call(o,"hProperties")||own$1.call(o,"hChildren"))?{type:"text",value:t.value}:{type:"element",tagName:"div",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function wrap$1(e,t){const o=[];let n=-1;for(t&&o.push({type:"text",value:`
8239
8239
  `});++n<e.length;)n&&o.push({type:"text",value:`
8240
8240
  `}),o.push(e[n]);return t&&e.length>0&&o.push({type:"text",value:`
8241
8241
  `}),o}function trimMarkdownSpaceStart(e){let t=0,o=e.charCodeAt(t);for(;o===9||o===32;)t++,o=e.charCodeAt(t);return e.slice(t)}function toHast(e,t){const o=createState(e,t),n=o.one(e,void 0),a=footer(o),i=Array.isArray(n)?{type:"root",children:n}:n||{type:"root",children:[]};return a&&i.children.push({type:"text",value:`
8242
- `},a),i}function remarkRehype(e,t){return e&&"run"in e?async function(o,n){const a=toHast(o,{file:n,...t});await e.run(a,n)}:function(o,n){return toHast(o,{file:n,...e||t})}}function bail(e){if(e)throw e}var extend$1,hasRequiredExtend;function requireExtend(){if(hasRequiredExtend)return extend$1;hasRequiredExtend=1;var e=Object.prototype.hasOwnProperty,t=Object.prototype.toString,o=Object.defineProperty,n=Object.getOwnPropertyDescriptor,a=function(h){return typeof Array.isArray=="function"?Array.isArray(h):t.call(h)==="[object Array]"},i=function(h){if(!h||t.call(h)!=="[object Object]")return!1;var u=e.call(h,"constructor"),p=h.constructor&&h.constructor.prototype&&e.call(h.constructor.prototype,"isPrototypeOf");if(h.constructor&&!u&&!p)return!1;var g;for(g in h);return typeof g>"u"||e.call(h,g)},c=function(h,u){o&&u.name==="__proto__"?o(h,u.name,{enumerable:!0,configurable:!0,value:u.newValue,writable:!0}):h[u.name]=u.newValue},r=function(h,u){if(u==="__proto__")if(e.call(h,u)){if(n)return n(h,u).value}else return;return h[u]};return extend$1=function s(){var h,u,p,g,k,w,S=arguments[0],R=1,C=arguments.length,v=!1;for(typeof S=="boolean"&&(v=S,S=arguments[1]||{},R=2),(S==null||typeof S!="object"&&typeof S!="function")&&(S={});R<C;++R)if(h=arguments[R],h!=null)for(u in h)p=r(S,u),g=r(h,u),S!==g&&(v&&g&&(i(g)||(k=a(g)))?(k?(k=!1,w=p&&a(p)?p:[]):w=p&&i(p)?p:{},c(S,{name:u,newValue:s(v,w,g)})):typeof g<"u"&&c(S,{name:u,newValue:g}));return S},extend$1}var extendExports=requireExtend();const extend=getDefaultExportFromCjs(extendExports);function isPlainObject(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function trough(){const e=[],t={run:o,use:n};return t;function o(...a){let i=-1;const c=a.pop();if(typeof c!="function")throw new TypeError("Expected function as last argument, not "+c);r(null,...a);function r(s,...h){const u=e[++i];let p=-1;if(s){c(s);return}for(;++p<a.length;)(h[p]===null||h[p]===void 0)&&(h[p]=a[p]);a=h,u?wrap(u,r)(...h):c(null,...h)}}function n(a){if(typeof a!="function")throw new TypeError("Expected `middelware` to be a function, not "+a);return e.push(a),t}}function wrap(e,t){let o;return n;function n(...c){const r=e.length>c.length;let s;r&&c.push(a);try{s=e.apply(this,c)}catch(h){const u=h;if(r&&o)throw u;return a(u)}r||(s&&s.then&&typeof s.then=="function"?s.then(i,a):s instanceof Error?a(s):i(s))}function a(c,...r){o||(o=!0,t(c,...r))}function i(c){a(null,c)}}const minpath={basename,dirname,extname,join,sep:"/"};function basename(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');assertPath$1(e);let o=0,n=-1,a=e.length,i;if(t===void 0||t.length===0||t.length>e.length){for(;a--;)if(e.codePointAt(a)===47){if(i){o=a+1;break}}else n<0&&(i=!0,n=a+1);return n<0?"":e.slice(o,n)}if(t===e)return"";let c=-1,r=t.length-1;for(;a--;)if(e.codePointAt(a)===47){if(i){o=a+1;break}}else c<0&&(i=!0,c=a+1),r>-1&&(e.codePointAt(a)===t.codePointAt(r--)?r<0&&(n=a):(r=-1,n=c));return o===n?n=c:n<0&&(n=e.length),e.slice(o,n)}function dirname(e){if(assertPath$1(e),e.length===0)return".";let t=-1,o=e.length,n;for(;--o;)if(e.codePointAt(o)===47){if(n){t=o;break}}else n||(n=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function extname(e){assertPath$1(e);let t=e.length,o=-1,n=0,a=-1,i=0,c;for(;t--;){const r=e.codePointAt(t);if(r===47){if(c){n=t+1;break}continue}o<0&&(c=!0,o=t+1),r===46?a<0?a=t:i!==1&&(i=1):a>-1&&(i=-1)}return a<0||o<0||i===0||i===1&&a===o-1&&a===n+1?"":e.slice(a,o)}function join(...e){let t=-1,o;for(;++t<e.length;)assertPath$1(e[t]),e[t]&&(o=o===void 0?e[t]:o+"/"+e[t]);return o===void 0?".":normalize(o)}function normalize(e){assertPath$1(e);const t=e.codePointAt(0)===47;let o=normalizeString(e,!t);return o.length===0&&!t&&(o="."),o.length>0&&e.codePointAt(e.length-1)===47&&(o+="/"),t?"/"+o:o}function normalizeString(e,t){let o="",n=0,a=-1,i=0,c=-1,r,s;for(;++c<=e.length;){if(c<e.length)r=e.codePointAt(c);else{if(r===47)break;r=47}if(r===47){if(!(a===c-1||i===1))if(a!==c-1&&i===2){if(o.length<2||n!==2||o.codePointAt(o.length-1)!==46||o.codePointAt(o.length-2)!==46){if(o.length>2){if(s=o.lastIndexOf("/"),s!==o.length-1){s<0?(o="",n=0):(o=o.slice(0,s),n=o.length-1-o.lastIndexOf("/")),a=c,i=0;continue}}else if(o.length>0){o="",n=0,a=c,i=0;continue}}t&&(o=o.length>0?o+"/..":"..",n=2)}else o.length>0?o+="/"+e.slice(a+1,c):o=e.slice(a+1,c),n=c-a-1;a=c,i=0}else r===46&&i>-1?i++:i=-1}return o}function assertPath$1(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const minproc={cwd};function cwd(){return"/"}function isUrl(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function urlToPath(e){if(typeof e=="string")e=new URL(e);else if(!isUrl(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return getPathFromURLPosix(e)}function getPathFromURLPosix(e){if(e.hostname!==""){const n=new TypeError('File URL host must be "localhost" or empty on darwin');throw n.code="ERR_INVALID_FILE_URL_HOST",n}const t=e.pathname;let o=-1;for(;++o<t.length;)if(t.codePointAt(o)===37&&t.codePointAt(o+1)===50){const n=t.codePointAt(o+2);if(n===70||n===102){const a=new TypeError("File URL path must not include encoded / characters");throw a.code="ERR_INVALID_FILE_URL_PATH",a}}return decodeURIComponent(t)}const order=["history","path","basename","stem","extname","dirname"];class VFile{constructor(t){let o;t?isUrl(t)?o={path:t}:typeof t=="string"||isUint8Array$1(t)?o={value:t}:o=t:o={},this.cwd="cwd"in o?"":minproc.cwd(),this.data={},this.history=[],this.messages=[],this.value,this.map,this.result,this.stored;let n=-1;for(;++n<order.length;){const i=order[n];i in o&&o[i]!==void 0&&o[i]!==null&&(this[i]=i==="history"?[...o[i]]:o[i])}let a;for(a in o)order.includes(a)||(this[a]=o[a])}get basename(){return typeof this.path=="string"?minpath.basename(this.path):void 0}set basename(t){assertNonEmpty(t,"basename"),assertPart(t,"basename"),this.path=minpath.join(this.dirname||"",t)}get dirname(){return typeof this.path=="string"?minpath.dirname(this.path):void 0}set dirname(t){assertPath(this.basename,"dirname"),this.path=minpath.join(t||"",this.basename)}get extname(){return typeof this.path=="string"?minpath.extname(this.path):void 0}set extname(t){if(assertPart(t,"extname"),assertPath(this.dirname,"extname"),t){if(t.codePointAt(0)!==46)throw new Error("`extname` must start with `.`");if(t.includes(".",1))throw new Error("`extname` cannot contain multiple dots")}this.path=minpath.join(this.dirname,this.stem+(t||""))}get path(){return this.history[this.history.length-1]}set path(t){isUrl(t)&&(t=urlToPath(t)),assertNonEmpty(t,"path"),this.path!==t&&this.history.push(t)}get stem(){return typeof this.path=="string"?minpath.basename(this.path,this.extname):void 0}set stem(t){assertNonEmpty(t,"stem"),assertPart(t,"stem"),this.path=minpath.join(this.dirname||"",t+(this.extname||""))}fail(t,o,n){const a=this.message(t,o,n);throw a.fatal=!0,a}info(t,o,n){const a=this.message(t,o,n);return a.fatal=void 0,a}message(t,o,n){const a=new VFileMessage(t,o,n);return this.path&&(a.name=this.path+":"+a.name,a.file=this.path),a.fatal=!1,this.messages.push(a),a}toString(t){return this.value===void 0?"":typeof this.value=="string"?this.value:new TextDecoder(t||void 0).decode(this.value)}}function assertPart(e,t){if(e&&e.includes(minpath.sep))throw new Error("`"+t+"` cannot be a path: did not expect `"+minpath.sep+"`")}function assertNonEmpty(e,t){if(!e)throw new Error("`"+t+"` cannot be empty")}function assertPath(e,t){if(!e)throw new Error("Setting `"+t+"` requires `path` to be set too")}function isUint8Array$1(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const CallableInstance=(function(e){const n=this.constructor.prototype,a=n[e],i=function(){return a.apply(i,arguments)};return Object.setPrototypeOf(i,n),i}),own={}.hasOwnProperty;class Processor extends CallableInstance{constructor(){super("copy"),this.Compiler=void 0,this.Parser=void 0,this.attachers=[],this.compiler=void 0,this.freezeIndex=-1,this.frozen=void 0,this.namespace={},this.parser=void 0,this.transformers=trough()}copy(){const t=new Processor;let o=-1;for(;++o<this.attachers.length;){const n=this.attachers[o];t.use(...n)}return t.data(extend(!0,{},this.namespace)),t}data(t,o){return typeof t=="string"?arguments.length===2?(assertUnfrozen("data",this.frozen),this.namespace[t]=o,this):own.call(this.namespace,t)&&this.namespace[t]||void 0:t?(assertUnfrozen("data",this.frozen),this.namespace=t,this):this.namespace}freeze(){if(this.frozen)return this;const t=this;for(;++this.freezeIndex<this.attachers.length;){const[o,...n]=this.attachers[this.freezeIndex];if(n[0]===!1)continue;n[0]===!0&&(n[0]=void 0);const a=o.call(t,...n);typeof a=="function"&&this.transformers.use(a)}return this.frozen=!0,this.freezeIndex=Number.POSITIVE_INFINITY,this}parse(t){this.freeze();const o=vfile(t),n=this.parser||this.Parser;return assertParser("parse",n),n(String(o),o)}process(t,o){const n=this;return this.freeze(),assertParser("process",this.parser||this.Parser),assertCompiler("process",this.compiler||this.Compiler),o?a(void 0,o):new Promise(a);function a(i,c){const r=vfile(t),s=n.parse(r);n.run(s,r,function(u,p,g){if(u||!p||!g)return h(u);const k=p,w=n.stringify(k,g);looksLikeAValue(w)?g.value=w:g.result=w,h(u,g)});function h(u,p){u||!p?c(u):i?i(p):o(void 0,p)}}}processSync(t){let o=!1,n;return this.freeze(),assertParser("processSync",this.parser||this.Parser),assertCompiler("processSync",this.compiler||this.Compiler),this.process(t,a),assertDone("processSync","process",o),n;function a(i,c){o=!0,bail(i),n=c}}run(t,o,n){assertNode(t),this.freeze();const a=this.transformers;return!n&&typeof o=="function"&&(n=o,o=void 0),n?i(void 0,n):new Promise(i);function i(c,r){const s=vfile(o);a.run(t,s,h);function h(u,p,g){const k=p||t;u?r(u):c?c(k):n(void 0,k,g)}}}runSync(t,o){let n=!1,a;return this.run(t,o,i),assertDone("runSync","run",n),a;function i(c,r){bail(c),a=r,n=!0}}stringify(t,o){this.freeze();const n=vfile(o),a=this.compiler||this.Compiler;return assertCompiler("stringify",a),assertNode(t),a(t,n)}use(t,...o){const n=this.attachers,a=this.namespace;if(assertUnfrozen("use",this.frozen),t!=null)if(typeof t=="function")s(t,o);else if(typeof t=="object")Array.isArray(t)?r(t):c(t);else throw new TypeError("Expected usable value, not `"+t+"`");return this;function i(h){if(typeof h=="function")s(h,[]);else if(typeof h=="object")if(Array.isArray(h)){const[u,...p]=h;s(u,p)}else c(h);else throw new TypeError("Expected usable value, not `"+h+"`")}function c(h){if(!("plugins"in h)&&!("settings"in h))throw new Error("Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither");r(h.plugins),h.settings&&(a.settings=extend(!0,a.settings,h.settings))}function r(h){let u=-1;if(h!=null)if(Array.isArray(h))for(;++u<h.length;){const p=h[u];i(p)}else throw new TypeError("Expected a list of plugins, not `"+h+"`")}function s(h,u){let p=-1,g=-1;for(;++p<n.length;)if(n[p][0]===h){g=p;break}if(g===-1)n.push([h,...u]);else if(u.length>0){let[k,...w]=u;const S=n[g][1];isPlainObject(S)&&isPlainObject(k)&&(k=extend(!0,S,k)),n[g]=[h,k,...w]}}}}const unified=new Processor().freeze();function assertParser(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function assertCompiler(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function assertUnfrozen(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function assertNode(e){if(!isPlainObject(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function assertDone(e,t,o){if(!o)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function vfile(e){return looksLikeAVFile(e)?e:new VFile(e)}function looksLikeAVFile(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function looksLikeAValue(e){return typeof e=="string"||isUint8Array(e)}function isUint8Array(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const changelog="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",emptyPlugins=[],emptyRemarkRehypeOptions={allowDangerousHtml:!0},safeProtocol=/^(https?|ircs?|mailto|xmpp)$/i,deprecations=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function Markdown(e){const t=createProcessor(e),o=createFile(e);return post(t.runSync(t.parse(o),o),e)}function createProcessor(e){const t=e.rehypePlugins||emptyPlugins,o=e.remarkPlugins||emptyPlugins,n=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...emptyRemarkRehypeOptions}:emptyRemarkRehypeOptions;return unified().use(remarkParse).use(o).use(remarkRehype,n).use(t)}function createFile(e){const t=e.children||"",o=new VFile;return typeof t=="string"&&(o.value=t),o}function post(e,t){const o=t.allowedElements,n=t.allowElement,a=t.components,i=t.disallowedElements,c=t.skipHtml,r=t.unwrapDisallowed,s=t.urlTransform||defaultUrlTransform;for(const u of deprecations)Object.hasOwn(t,u.from)&&(""+u.from+(u.to?"use `"+u.to+"` instead":"remove it")+changelog+u.id,void 0);return visit(e,h),toJsxRuntime(e,{Fragment:jsxRuntimeExports.Fragment,components:a,ignoreInvalidStyle:!0,jsx:jsxRuntimeExports.jsx,jsxs:jsxRuntimeExports.jsxs,passKeys:!0,passNode:!0});function h(u,p,g){if(u.type==="raw"&&g&&typeof p=="number")return c?g.children.splice(p,1):g.children[p]={type:"text",value:u.value},p;if(u.type==="element"){let k;for(k in urlAttributes)if(Object.hasOwn(urlAttributes,k)&&Object.hasOwn(u.properties,k)){const w=u.properties[k],S=urlAttributes[k];(S===null||S.includes(u.tagName))&&(u.properties[k]=s(String(w||""),k,u))}}if(u.type==="element"){let k=o?!o.includes(u.tagName):i?i.includes(u.tagName):!1;if(!k&&n&&typeof p=="number"&&(k=!n(u,p,g)),k&&g&&typeof p=="number")return r&&u.children?g.children.splice(p,1,...u.children):g.children.splice(p,1),p}}}function defaultUrlTransform(e){const t=e.indexOf(":"),o=e.indexOf("?"),n=e.indexOf("#"),a=e.indexOf("/");return t===-1||a!==-1&&t>a||o!==-1&&t>o||n!==-1&&t>n||safeProtocol.test(e.slice(0,t))?e:""}const PluginHostContext=reactExports.createContext(null);function PluginHostProvider({children:e,host:t}){return jsxRuntimeExports.jsx(PluginHostContext.Provider,{value:t,children:e})}function usePluginHost(){const e=reactExports.useContext(PluginHostContext);if(!e)throw new Error("usePluginHost must be used within PluginHostProvider");return e}const createStoreImpl=e=>{let t;const o=new Set,n=(h,u)=>{const p=typeof h=="function"?h(t):h;if(!Object.is(p,t)){const g=t;t=u??(typeof p!="object"||p===null)?p:Object.assign({},t,p),o.forEach(k=>k(t,g))}},a=()=>t,r={setState:n,getState:a,getInitialState:()=>s,subscribe:h=>(o.add(h),()=>o.delete(h))},s=t=e(n,a,r);return r},createStore=(e=>e?createStoreImpl(e):createStoreImpl),identity=e=>e;function useStore(e,t=identity){const o=React.useSyncExternalStore(e.subscribe,React.useCallback(()=>t(e.getState()),[e,t]),React.useCallback(()=>t(e.getInitialState()),[e,t]));return React.useDebugValue(o),o}const createImpl=e=>{const t=createStore(e),o=n=>useStore(t,n);return Object.assign(o,t),o},create=(e=>e?createImpl(e):createImpl),DASH_VIS_KEY="openlearn:dashboardVisibility";function loadDashboardVisibility(){try{const e=localStorage.getItem(DASH_VIS_KEY);if(e)return new Map(JSON.parse(e))}catch{}return new Map}function saveDashboardVisibility(e){try{localStorage.setItem(DASH_VIS_KEY,JSON.stringify([...e.entries()]))}catch{}}const usePluginHostStore=create()((e,t)=>({activePlugins:[],extensionPoints:new Map,services:null,dashboardVisibility:loadDashboardVisibility(),initialized:!1,initialize:o=>e({services:o,initialized:!0}),addPlugin:o=>e(n=>({activePlugins:[...n.activePlugins,o]})),removePlugin:o=>e(n=>({activePlugins:n.activePlugins.filter(a=>a.id!==o)})),updatePluginState:(o,n)=>e(a=>({activePlugins:a.activePlugins.map(i=>i.id===o?{...i,state:n}:i)})),registerExtensionPoint:(o,n)=>e(a=>{const i=a.extensionPoints.get(o)??[];if(i.find(s=>s.id===n.id)){const s=new Map(a.extensionPoints);return s.set(o,i.map(h=>h.id===n.id?n:h)),{extensionPoints:s}}const r=new Map(a.extensionPoints);return r.set(o,[...i,n]),{extensionPoints:r}}),unregisterExtensionPoint:(o,n)=>e(a=>{const i=a.extensionPoints.get(o);if(!i)return a;const c=i.filter(s=>s.id!==n),r=new Map(a.extensionPoints);return c.length===0?r.delete(o):r.set(o,c),{extensionPoints:r}}),unregisterPluginExtensionPoints:o=>e(n=>{const a=new Map(n.extensionPoints);for(const[i,c]of a){const r=c.filter(s=>s.pluginId!==o);r.length===0?a.delete(i):a.set(i,r)}return{extensionPoints:a}}),getExtensions:o=>t().extensionPoints.get(o)??[],setDashboardVisibility:(o,n)=>e(a=>{const i=new Map(a.dashboardVisibility);return i.set(o,n),saveDashboardVisibility(i),{dashboardVisibility:i}}),setDashboardVisibilityBatch:o=>e(n=>{const a=new Map(n.dashboardVisibility);for(const[i,c]of o)a.set(i,c);return saveDashboardVisibility(a),{dashboardVisibility:a}})}));let _socket=null;function setSocketInstance(e){_socket=e}function getSocketInstance(){if(!_socket)throw new Error("Socket instance not initialized. Call setSocketInstance() first.");return _socket}class SocketService{constructor(t){this.socket=t,setSocketInstance(t)}emit(t,...o){this.socket.emit(t,...o)}on(t,o){this.socket.on(t,o)}off(t,o){this.socket.off(t,o)}disconnect(){this.socket.disconnect()}}function LoadingSkeleton(){return jsxRuntimeExports.jsx("div",{className:"w-full h-32 bg-gray-100 rounded-xl animate-pulse flex items-center justify-center",children:jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center gap-2",children:[jsxRuntimeExports.jsx(LoaderCircle,{size:24,className:"text-gray-400 animate-spin"}),jsxRuntimeExports.jsx("span",{className:"text-xs text-gray-400",children:"Loading..."})]})})}class ExtensionErrorBoundary extends React.Component{constructor(t){super(t),this.state={hasError:!1},this.props=t}static getDerivedStateFromError(){return{hasError:!0}}render(){return this.state.hasError?this.props.fallback??null:this.props.children}}function DOMExtensionWrapper({ext:e,route:t,slotProps:o,slot:n}){const a=React.useRef(null),i=JSON.stringify(o||{});React.useEffect(()=>{a.current&&typeof e.render=="function"&&(a.current.innerHTML="",Promise.resolve(e.render(a.current,{route:t,...o})).catch(console.error))},[e,t,i]);const r=n==="teacher.dashboard.widget"?"h-auto":"h-full min-h-0";return jsxRuntimeExports.jsx("div",{ref:a,className:`w-full ${r}`})}const resolvedComponentCache=new WeakMap;function resolveExtensionComponent(e){const t=e.component,o=resolvedComponentCache.get(t);if(o)return o;if(t.__isLazyFactory===!0){const n=React.lazy(t);return resolvedComponentCache.set(t,n),n}return resolvedComponentCache.set(t,t),t}function ExtensionPointRenderer({slot:e,fallback:t,lang:o,route:n,slotProps:a}){const c=usePluginHost().getExtensions(e),r=usePluginHostStore(s=>s.dashboardVisibility);return c.length===0?null:e==="teacher.tab"&&a?.renderType==="button"?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:c.map(s=>{const h=`${s.pluginId}/${s.id}`,u=a?.teacherTab===h,p=s.title||s.label||s.id;return jsxRuntimeExports.jsxs("button",{onClick:()=>a?.setTeacherTab?.(h),className:`flex items-center gap-3 p-3 transition-colors text-sm font-medium rounded-xl ${u?"bg-indigo-50 text-indigo-700 font-bold":"text-gray-600 hover:bg-gray-50"} ${a?.mainNavCollapsed?"justify-center px-2":""}`,title:p,children:[jsxRuntimeExports.jsx(Puzzle,{size:20,className:"shrink-0"}),jsxRuntimeExports.jsx("span",{className:a?.mainNavCollapsed?"hidden":"hidden md:block",children:p})]},`${s.pluginId}/${s.id}`)})}):jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:c.map(s=>{const h=typeof s.component=="function",u=typeof s.render=="function";return e==="teacher.dashboard.widget"&&r.get(s.pluginId)===!1||!h&&!u?null:jsxRuntimeExports.jsx(ExtensionErrorBoundary,{fallback:jsxRuntimeExports.jsx("div",{className:"bg-red-50 border border-red-200 rounded-lg p-4 text-sm text-red-700",children:jsxRuntimeExports.jsx("p",{children:o==="zh"?"扩展组件加载失败":"Extension failed to load"})}),children:jsxRuntimeExports.jsx(reactExports.Suspense,{fallback:t??jsxRuntimeExports.jsx(LoadingSkeleton,{}),children:h?React.createElement(resolveExtensionComponent(s),{route:s.route||n,...s.slotProps,...a}):jsxRuntimeExports.jsx(DOMExtensionWrapper,{ext:s,route:s.route||n,slotProps:{...s.slotProps,...a},slot:e})})},`${s.pluginId}/${s.id}`)})})}const SOCKET_FORWARD_PREFIXES=["whiteboard.","courseware.","quiz.","rollcall."];class FrontendEventBus{constructor(){this.handlers=new Map}setSocketBridge(t){this.socketBridge=t}hasSocketBridge(){return!!this.socketBridge}subscribe(t,o){return this.handlers.has(t)||this.handlers.set(t,new Set),this.handlers.get(t).add(o),()=>{this.handlers.get(t)?.delete(o)}}async publish(t){const o=this.handlers.get(t.type);if(o)for(const n of o)try{n(t)}catch(a){console.error("[FrontendEventBus] handler error:",a)}this.socketBridge&&SOCKET_FORWARD_PREFIXES.some(n=>t.type.startsWith(n))&&this.socketBridge(t)}}const frontendEventBus=new FrontendEventBus;function PluginCardRenderer({pluginId:e,slot:t,widgetId:o,elementId:n,lessonId:a}){const c=usePluginHostStore(h=>h.extensionPoints).get(t)||[],r=c.find(h=>h.id===o)??c.find(h=>h.pluginId===e&&h.id===o);if(!r)return jsxRuntimeExports.jsxs("div",{className:"text-center py-6 text-xs text-gray-400 italic flex flex-col justify-center items-center h-full",children:[jsxRuntimeExports.jsx(LoaderCircle,{size:16,className:"animate-spin mb-1"}),jsxRuntimeExports.jsxs("span",{children:["组件 [",o,"] 正在加载或未启用..."]})]});const s=reactExports.useRef(null);return reactExports.useEffect(()=>{s.current&&(s.current.innerHTML="",!r.component&&r.render&&Promise.resolve(r.render(s.current,{elementId:n,lessonId:a})).catch(console.error))},[r,e,o,n,a]),r.component?React.createElement(r.component,{elementId:n,lessonId:a}):jsxRuntimeExports.jsx("div",{ref:s,className:"w-full h-full min-h-0"})}function RollCallWrapper({elementId:e,data:t,onElementUpdate:o,onPointerDown:n,onPointerMove:a,onPointerUp:i,onDelete:c}){const r=t.allStudents||[{id:"mock-s-1",name:"张明",email:"zhangming@edu-os.org"},{id:"mock-s-2",name:"李华",email:"lihua@edu-os.org"},{id:"mock-s-3",name:"王超",email:"wangchao@edu-os.org"},{id:"mock-s-4",name:"赵丽",email:"zhaoli@edu-os.org"},{id:"mock-s-5",name:"钱科",email:"qianke@edu-os.org"},{id:"mock-s-6",name:"孙雪",email:"sunxue@edu-os.org"}],[s,h]=reactExports.useState(t.selectedStudent||null),[u,p]=reactExports.useState(!1),[g,k]=reactExports.useState(""),w=()=>{if(r.length===0||u)return;p(!0);let S=0;const R=16,v=setInterval(()=>{const j=Math.floor(Math.random()*r.length);if(k(r[j].name),S++,S>=R){clearInterval(v);const F=Math.floor(Math.random()*r.length),U=r[F];h(U),p(!1),o&&o(e,{...t,selectedStudent:U,pickedTime:new Date().toISOString(),status:"picked"})}},80)};return jsxRuntimeExports.jsxs("div",{className:"w-full h-full bg-gradient-to-br from-indigo-950 via-slate-900 to-indigo-900 border border-indigo-500/50 rounded-xl shadow-2xl overflow-hidden flex flex-col font-sans select-none",style:{pointerEvents:"auto"},children:[jsxRuntimeExports.jsxs("div",{className:"bg-indigo-950/80 text-indigo-200 px-3 py-2 flex justify-between items-center text-xs font-semibold border-b border-indigo-900/50 cursor-move select-none shrink-0",onPointerDown:n,onPointerMove:a,onPointerUp:i,children:[jsxRuntimeExports.jsxs("span",{className:"flex items-center gap-1.5 text-indigo-300",children:[jsxRuntimeExports.jsx(Sparkles,{size:13,className:"animate-pulse text-indigo-400"}),jsxRuntimeExports.jsx("span",{children:"随机点名助手 (Picker Ext)"})]}),jsxRuntimeExports.jsx("button",{onClick:c,onPointerDown:S=>S.stopPropagation(),className:"p-1 hover:bg-indigo-900/60 rounded text-indigo-400 hover:text-red-450 transition-colors cursor-pointer",title:"删除组件",children:jsxRuntimeExports.jsx(Trash2,{size:13})})]}),jsxRuntimeExports.jsxs("div",{className:"flex-1 p-3.5 flex flex-col justify-between min-h-0 text-white gap-2",children:[jsxRuntimeExports.jsx("div",{className:"w-full flex-1 flex flex-col items-center justify-center p-2 rounded-lg bg-indigo-950/50 border border-indigo-900/30",children:u?jsxRuntimeExports.jsxs("div",{className:"text-center space-y-2",children:[jsxRuntimeExports.jsx("div",{className:"text-[10px] text-indigo-300 uppercase tracking-widest animate-pulse font-semibold",children:"检索班级学生中..."}),jsxRuntimeExports.jsx("div",{className:"text-2xl font-extrabold text-amber-300 scale-105 tracking-wider font-sans",children:g})]}):s?jsxRuntimeExports.jsxs("div",{className:"text-center space-y-1.5",children:[jsxRuntimeExports.jsxs("div",{className:"text-[9px] text-indigo-400 uppercase tracking-widest font-semibold flex items-center justify-center gap-1",children:[jsxRuntimeExports.jsx(UserCheck,{size:11,className:"text-emerald-400 animate-bounce"}),jsxRuntimeExports.jsx("span",{children:"抽中的幸运学生"})]}),jsxRuntimeExports.jsx("div",{className:"text-2xl font-extrabold text-transparent bg-clip-text bg-gradient-to-r from-amber-200 via-yellow-400 to-amber-300 tracking-wider",children:s.name}),jsxRuntimeExports.jsx("div",{className:"text-[9px] text-indigo-300/70 font-mono overflow-hidden text-ellipsis max-w-full",children:s.email||"No Email Account"})]}):jsxRuntimeExports.jsxs("div",{className:"text-center space-y-1",children:[jsxRuntimeExports.jsx(CircleQuestionMark,{size:28,className:"text-indigo-400/80 mx-auto animate-pulse"}),jsxRuntimeExports.jsx("div",{className:"text-xs text-indigo-300 font-semibold",children:"随机抽取摇奖板"}),jsxRuntimeExports.jsx("p",{className:"text-[9px] text-indigo-400/60 leading-tight",children:"将在白板上演示随机滚动,对课堂提问大有裨益"})]})}),jsxRuntimeExports.jsxs("div",{className:"w-full shrink-0 flex flex-col items-center gap-1",onPointerDown:S=>S.stopPropagation(),children:[jsxRuntimeExports.jsxs("button",{onClick:w,disabled:u,className:"w-full py-1.5 bg-gradient-to-r from-indigo-500 to-purple-600 hover:from-indigo-650 hover:to-purple-750 text-white font-bold text-[11px] uppercase tracking-wider rounded-lg shadow-md active:scale-97 disabled:opacity-50 transition-all flex items-center justify-center gap-1.5",children:[jsxRuntimeExports.jsx(Shuffle,{size:12,className:u?"animate-spin":""}),jsxRuntimeExports.jsx("span",{children:u?"滚轮运转中...":s?"重新随机点名":"开始随机点名"})]}),jsxRuntimeExports.jsxs("div",{className:"text-[8.5px] text-indigo-400/60 text-center font-mono",children:["班级人数:",r.length," 人 • 内核总线热同步"]})]})]})]})}function CodeSandboxWrapper({elementId,data,onElementUpdate,onPointerDown,onPointerMove,onPointerUp,onDelete}){const[code,setCode]=reactExports.useState(data.code||"console.log('Hello from sandbox!');"),[output,setOutput]=reactExports.useState(""),runCode=()=>{try{const logs=[],originalLog=console.log;console.log=(...e)=>{logs.push(e.map(t=>typeof t=="object"?JSON.stringify(t):String(t)).join(" ")),originalLog(...e)};const result=eval(code);result!==void 0&&logs.push(`Return: ${result}`),setOutput(logs.join(`
8242
+ `},a),i}function remarkRehype(e,t){return e&&"run"in e?async function(o,n){const a=toHast(o,{file:n,...t});await e.run(a,n)}:function(o,n){return toHast(o,{file:n,...e||t})}}function bail(e){if(e)throw e}var extend$1,hasRequiredExtend;function requireExtend(){if(hasRequiredExtend)return extend$1;hasRequiredExtend=1;var e=Object.prototype.hasOwnProperty,t=Object.prototype.toString,o=Object.defineProperty,n=Object.getOwnPropertyDescriptor,a=function(h){return typeof Array.isArray=="function"?Array.isArray(h):t.call(h)==="[object Array]"},i=function(h){if(!h||t.call(h)!=="[object Object]")return!1;var u=e.call(h,"constructor"),p=h.constructor&&h.constructor.prototype&&e.call(h.constructor.prototype,"isPrototypeOf");if(h.constructor&&!u&&!p)return!1;var g;for(g in h);return typeof g>"u"||e.call(h,g)},c=function(h,u){o&&u.name==="__proto__"?o(h,u.name,{enumerable:!0,configurable:!0,value:u.newValue,writable:!0}):h[u.name]=u.newValue},r=function(h,u){if(u==="__proto__")if(e.call(h,u)){if(n)return n(h,u).value}else return;return h[u]};return extend$1=function s(){var h,u,p,g,k,w,N=arguments[0],q=1,b=arguments.length,v=!1;for(typeof N=="boolean"&&(v=N,N=arguments[1]||{},q=2),(N==null||typeof N!="object"&&typeof N!="function")&&(N={});q<b;++q)if(h=arguments[q],h!=null)for(u in h)p=r(N,u),g=r(h,u),N!==g&&(v&&g&&(i(g)||(k=a(g)))?(k?(k=!1,w=p&&a(p)?p:[]):w=p&&i(p)?p:{},c(N,{name:u,newValue:s(v,w,g)})):typeof g<"u"&&c(N,{name:u,newValue:g}));return N},extend$1}var extendExports=requireExtend();const extend=getDefaultExportFromCjs(extendExports);function isPlainObject(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function trough(){const e=[],t={run:o,use:n};return t;function o(...a){let i=-1;const c=a.pop();if(typeof c!="function")throw new TypeError("Expected function as last argument, not "+c);r(null,...a);function r(s,...h){const u=e[++i];let p=-1;if(s){c(s);return}for(;++p<a.length;)(h[p]===null||h[p]===void 0)&&(h[p]=a[p]);a=h,u?wrap(u,r)(...h):c(null,...h)}}function n(a){if(typeof a!="function")throw new TypeError("Expected `middelware` to be a function, not "+a);return e.push(a),t}}function wrap(e,t){let o;return n;function n(...c){const r=e.length>c.length;let s;r&&c.push(a);try{s=e.apply(this,c)}catch(h){const u=h;if(r&&o)throw u;return a(u)}r||(s&&s.then&&typeof s.then=="function"?s.then(i,a):s instanceof Error?a(s):i(s))}function a(c,...r){o||(o=!0,t(c,...r))}function i(c){a(null,c)}}const minpath={basename,dirname,extname,join,sep:"/"};function basename(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');assertPath$1(e);let o=0,n=-1,a=e.length,i;if(t===void 0||t.length===0||t.length>e.length){for(;a--;)if(e.codePointAt(a)===47){if(i){o=a+1;break}}else n<0&&(i=!0,n=a+1);return n<0?"":e.slice(o,n)}if(t===e)return"";let c=-1,r=t.length-1;for(;a--;)if(e.codePointAt(a)===47){if(i){o=a+1;break}}else c<0&&(i=!0,c=a+1),r>-1&&(e.codePointAt(a)===t.codePointAt(r--)?r<0&&(n=a):(r=-1,n=c));return o===n?n=c:n<0&&(n=e.length),e.slice(o,n)}function dirname(e){if(assertPath$1(e),e.length===0)return".";let t=-1,o=e.length,n;for(;--o;)if(e.codePointAt(o)===47){if(n){t=o;break}}else n||(n=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function extname(e){assertPath$1(e);let t=e.length,o=-1,n=0,a=-1,i=0,c;for(;t--;){const r=e.codePointAt(t);if(r===47){if(c){n=t+1;break}continue}o<0&&(c=!0,o=t+1),r===46?a<0?a=t:i!==1&&(i=1):a>-1&&(i=-1)}return a<0||o<0||i===0||i===1&&a===o-1&&a===n+1?"":e.slice(a,o)}function join(...e){let t=-1,o;for(;++t<e.length;)assertPath$1(e[t]),e[t]&&(o=o===void 0?e[t]:o+"/"+e[t]);return o===void 0?".":normalize(o)}function normalize(e){assertPath$1(e);const t=e.codePointAt(0)===47;let o=normalizeString(e,!t);return o.length===0&&!t&&(o="."),o.length>0&&e.codePointAt(e.length-1)===47&&(o+="/"),t?"/"+o:o}function normalizeString(e,t){let o="",n=0,a=-1,i=0,c=-1,r,s;for(;++c<=e.length;){if(c<e.length)r=e.codePointAt(c);else{if(r===47)break;r=47}if(r===47){if(!(a===c-1||i===1))if(a!==c-1&&i===2){if(o.length<2||n!==2||o.codePointAt(o.length-1)!==46||o.codePointAt(o.length-2)!==46){if(o.length>2){if(s=o.lastIndexOf("/"),s!==o.length-1){s<0?(o="",n=0):(o=o.slice(0,s),n=o.length-1-o.lastIndexOf("/")),a=c,i=0;continue}}else if(o.length>0){o="",n=0,a=c,i=0;continue}}t&&(o=o.length>0?o+"/..":"..",n=2)}else o.length>0?o+="/"+e.slice(a+1,c):o=e.slice(a+1,c),n=c-a-1;a=c,i=0}else r===46&&i>-1?i++:i=-1}return o}function assertPath$1(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const minproc={cwd};function cwd(){return"/"}function isUrl(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function urlToPath(e){if(typeof e=="string")e=new URL(e);else if(!isUrl(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return getPathFromURLPosix(e)}function getPathFromURLPosix(e){if(e.hostname!==""){const n=new TypeError('File URL host must be "localhost" or empty on darwin');throw n.code="ERR_INVALID_FILE_URL_HOST",n}const t=e.pathname;let o=-1;for(;++o<t.length;)if(t.codePointAt(o)===37&&t.codePointAt(o+1)===50){const n=t.codePointAt(o+2);if(n===70||n===102){const a=new TypeError("File URL path must not include encoded / characters");throw a.code="ERR_INVALID_FILE_URL_PATH",a}}return decodeURIComponent(t)}const order=["history","path","basename","stem","extname","dirname"];class VFile{constructor(t){let o;t?isUrl(t)?o={path:t}:typeof t=="string"||isUint8Array$1(t)?o={value:t}:o=t:o={},this.cwd="cwd"in o?"":minproc.cwd(),this.data={},this.history=[],this.messages=[],this.value,this.map,this.result,this.stored;let n=-1;for(;++n<order.length;){const i=order[n];i in o&&o[i]!==void 0&&o[i]!==null&&(this[i]=i==="history"?[...o[i]]:o[i])}let a;for(a in o)order.includes(a)||(this[a]=o[a])}get basename(){return typeof this.path=="string"?minpath.basename(this.path):void 0}set basename(t){assertNonEmpty(t,"basename"),assertPart(t,"basename"),this.path=minpath.join(this.dirname||"",t)}get dirname(){return typeof this.path=="string"?minpath.dirname(this.path):void 0}set dirname(t){assertPath(this.basename,"dirname"),this.path=minpath.join(t||"",this.basename)}get extname(){return typeof this.path=="string"?minpath.extname(this.path):void 0}set extname(t){if(assertPart(t,"extname"),assertPath(this.dirname,"extname"),t){if(t.codePointAt(0)!==46)throw new Error("`extname` must start with `.`");if(t.includes(".",1))throw new Error("`extname` cannot contain multiple dots")}this.path=minpath.join(this.dirname,this.stem+(t||""))}get path(){return this.history[this.history.length-1]}set path(t){isUrl(t)&&(t=urlToPath(t)),assertNonEmpty(t,"path"),this.path!==t&&this.history.push(t)}get stem(){return typeof this.path=="string"?minpath.basename(this.path,this.extname):void 0}set stem(t){assertNonEmpty(t,"stem"),assertPart(t,"stem"),this.path=minpath.join(this.dirname||"",t+(this.extname||""))}fail(t,o,n){const a=this.message(t,o,n);throw a.fatal=!0,a}info(t,o,n){const a=this.message(t,o,n);return a.fatal=void 0,a}message(t,o,n){const a=new VFileMessage(t,o,n);return this.path&&(a.name=this.path+":"+a.name,a.file=this.path),a.fatal=!1,this.messages.push(a),a}toString(t){return this.value===void 0?"":typeof this.value=="string"?this.value:new TextDecoder(t||void 0).decode(this.value)}}function assertPart(e,t){if(e&&e.includes(minpath.sep))throw new Error("`"+t+"` cannot be a path: did not expect `"+minpath.sep+"`")}function assertNonEmpty(e,t){if(!e)throw new Error("`"+t+"` cannot be empty")}function assertPath(e,t){if(!e)throw new Error("Setting `"+t+"` requires `path` to be set too")}function isUint8Array$1(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const CallableInstance=(function(e){const n=this.constructor.prototype,a=n[e],i=function(){return a.apply(i,arguments)};return Object.setPrototypeOf(i,n),i}),own={}.hasOwnProperty;class Processor extends CallableInstance{constructor(){super("copy"),this.Compiler=void 0,this.Parser=void 0,this.attachers=[],this.compiler=void 0,this.freezeIndex=-1,this.frozen=void 0,this.namespace={},this.parser=void 0,this.transformers=trough()}copy(){const t=new Processor;let o=-1;for(;++o<this.attachers.length;){const n=this.attachers[o];t.use(...n)}return t.data(extend(!0,{},this.namespace)),t}data(t,o){return typeof t=="string"?arguments.length===2?(assertUnfrozen("data",this.frozen),this.namespace[t]=o,this):own.call(this.namespace,t)&&this.namespace[t]||void 0:t?(assertUnfrozen("data",this.frozen),this.namespace=t,this):this.namespace}freeze(){if(this.frozen)return this;const t=this;for(;++this.freezeIndex<this.attachers.length;){const[o,...n]=this.attachers[this.freezeIndex];if(n[0]===!1)continue;n[0]===!0&&(n[0]=void 0);const a=o.call(t,...n);typeof a=="function"&&this.transformers.use(a)}return this.frozen=!0,this.freezeIndex=Number.POSITIVE_INFINITY,this}parse(t){this.freeze();const o=vfile(t),n=this.parser||this.Parser;return assertParser("parse",n),n(String(o),o)}process(t,o){const n=this;return this.freeze(),assertParser("process",this.parser||this.Parser),assertCompiler("process",this.compiler||this.Compiler),o?a(void 0,o):new Promise(a);function a(i,c){const r=vfile(t),s=n.parse(r);n.run(s,r,function(u,p,g){if(u||!p||!g)return h(u);const k=p,w=n.stringify(k,g);looksLikeAValue(w)?g.value=w:g.result=w,h(u,g)});function h(u,p){u||!p?c(u):i?i(p):o(void 0,p)}}}processSync(t){let o=!1,n;return this.freeze(),assertParser("processSync",this.parser||this.Parser),assertCompiler("processSync",this.compiler||this.Compiler),this.process(t,a),assertDone("processSync","process",o),n;function a(i,c){o=!0,bail(i),n=c}}run(t,o,n){assertNode(t),this.freeze();const a=this.transformers;return!n&&typeof o=="function"&&(n=o,o=void 0),n?i(void 0,n):new Promise(i);function i(c,r){const s=vfile(o);a.run(t,s,h);function h(u,p,g){const k=p||t;u?r(u):c?c(k):n(void 0,k,g)}}}runSync(t,o){let n=!1,a;return this.run(t,o,i),assertDone("runSync","run",n),a;function i(c,r){bail(c),a=r,n=!0}}stringify(t,o){this.freeze();const n=vfile(o),a=this.compiler||this.Compiler;return assertCompiler("stringify",a),assertNode(t),a(t,n)}use(t,...o){const n=this.attachers,a=this.namespace;if(assertUnfrozen("use",this.frozen),t!=null)if(typeof t=="function")s(t,o);else if(typeof t=="object")Array.isArray(t)?r(t):c(t);else throw new TypeError("Expected usable value, not `"+t+"`");return this;function i(h){if(typeof h=="function")s(h,[]);else if(typeof h=="object")if(Array.isArray(h)){const[u,...p]=h;s(u,p)}else c(h);else throw new TypeError("Expected usable value, not `"+h+"`")}function c(h){if(!("plugins"in h)&&!("settings"in h))throw new Error("Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither");r(h.plugins),h.settings&&(a.settings=extend(!0,a.settings,h.settings))}function r(h){let u=-1;if(h!=null)if(Array.isArray(h))for(;++u<h.length;){const p=h[u];i(p)}else throw new TypeError("Expected a list of plugins, not `"+h+"`")}function s(h,u){let p=-1,g=-1;for(;++p<n.length;)if(n[p][0]===h){g=p;break}if(g===-1)n.push([h,...u]);else if(u.length>0){let[k,...w]=u;const N=n[g][1];isPlainObject(N)&&isPlainObject(k)&&(k=extend(!0,N,k)),n[g]=[h,k,...w]}}}}const unified=new Processor().freeze();function assertParser(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function assertCompiler(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function assertUnfrozen(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function assertNode(e){if(!isPlainObject(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function assertDone(e,t,o){if(!o)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function vfile(e){return looksLikeAVFile(e)?e:new VFile(e)}function looksLikeAVFile(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function looksLikeAValue(e){return typeof e=="string"||isUint8Array(e)}function isUint8Array(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const changelog="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",emptyPlugins=[],emptyRemarkRehypeOptions={allowDangerousHtml:!0},safeProtocol=/^(https?|ircs?|mailto|xmpp)$/i,deprecations=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function Markdown(e){const t=createProcessor(e),o=createFile(e);return post(t.runSync(t.parse(o),o),e)}function createProcessor(e){const t=e.rehypePlugins||emptyPlugins,o=e.remarkPlugins||emptyPlugins,n=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...emptyRemarkRehypeOptions}:emptyRemarkRehypeOptions;return unified().use(remarkParse).use(o).use(remarkRehype,n).use(t)}function createFile(e){const t=e.children||"",o=new VFile;return typeof t=="string"&&(o.value=t),o}function post(e,t){const o=t.allowedElements,n=t.allowElement,a=t.components,i=t.disallowedElements,c=t.skipHtml,r=t.unwrapDisallowed,s=t.urlTransform||defaultUrlTransform;for(const u of deprecations)Object.hasOwn(t,u.from)&&(""+u.from+(u.to?"use `"+u.to+"` instead":"remove it")+changelog+u.id,void 0);return visit(e,h),toJsxRuntime(e,{Fragment:jsxRuntimeExports.Fragment,components:a,ignoreInvalidStyle:!0,jsx:jsxRuntimeExports.jsx,jsxs:jsxRuntimeExports.jsxs,passKeys:!0,passNode:!0});function h(u,p,g){if(u.type==="raw"&&g&&typeof p=="number")return c?g.children.splice(p,1):g.children[p]={type:"text",value:u.value},p;if(u.type==="element"){let k;for(k in urlAttributes)if(Object.hasOwn(urlAttributes,k)&&Object.hasOwn(u.properties,k)){const w=u.properties[k],N=urlAttributes[k];(N===null||N.includes(u.tagName))&&(u.properties[k]=s(String(w||""),k,u))}}if(u.type==="element"){let k=o?!o.includes(u.tagName):i?i.includes(u.tagName):!1;if(!k&&n&&typeof p=="number"&&(k=!n(u,p,g)),k&&g&&typeof p=="number")return r&&u.children?g.children.splice(p,1,...u.children):g.children.splice(p,1),p}}}function defaultUrlTransform(e){const t=e.indexOf(":"),o=e.indexOf("?"),n=e.indexOf("#"),a=e.indexOf("/");return t===-1||a!==-1&&t>a||o!==-1&&t>o||n!==-1&&t>n||safeProtocol.test(e.slice(0,t))?e:""}const PluginHostContext=reactExports.createContext(null);function PluginHostProvider({children:e,host:t}){return jsxRuntimeExports.jsx(PluginHostContext.Provider,{value:t,children:e})}function usePluginHost(){const e=reactExports.useContext(PluginHostContext);if(!e)throw new Error("usePluginHost must be used within PluginHostProvider");return e}const createStoreImpl=e=>{let t;const o=new Set,n=(h,u)=>{const p=typeof h=="function"?h(t):h;if(!Object.is(p,t)){const g=t;t=u??(typeof p!="object"||p===null)?p:Object.assign({},t,p),o.forEach(k=>k(t,g))}},a=()=>t,r={setState:n,getState:a,getInitialState:()=>s,subscribe:h=>(o.add(h),()=>o.delete(h))},s=t=e(n,a,r);return r},createStore=(e=>e?createStoreImpl(e):createStoreImpl),identity=e=>e;function useStore(e,t=identity){const o=React.useSyncExternalStore(e.subscribe,React.useCallback(()=>t(e.getState()),[e,t]),React.useCallback(()=>t(e.getInitialState()),[e,t]));return React.useDebugValue(o),o}const createImpl=e=>{const t=createStore(e),o=n=>useStore(t,n);return Object.assign(o,t),o},create=(e=>e?createImpl(e):createImpl),DASH_VIS_KEY="openlearn:dashboardVisibility";function loadDashboardVisibility(){try{const e=localStorage.getItem(DASH_VIS_KEY);if(e)return new Map(JSON.parse(e))}catch{}return new Map}function saveDashboardVisibility(e){try{localStorage.setItem(DASH_VIS_KEY,JSON.stringify([...e.entries()]))}catch{}}const usePluginHostStore=create()((e,t)=>({activePlugins:[],extensionPoints:new Map,services:null,dashboardVisibility:loadDashboardVisibility(),initialized:!1,initialize:o=>e({services:o,initialized:!0}),addPlugin:o=>e(n=>({activePlugins:[...n.activePlugins,o]})),removePlugin:o=>e(n=>({activePlugins:n.activePlugins.filter(a=>a.id!==o)})),updatePluginState:(o,n)=>e(a=>({activePlugins:a.activePlugins.map(i=>i.id===o?{...i,state:n}:i)})),registerExtensionPoint:(o,n)=>e(a=>{const i=a.extensionPoints.get(o)??[];if(i.find(s=>s.id===n.id)){const s=new Map(a.extensionPoints);return s.set(o,i.map(h=>h.id===n.id?n:h)),{extensionPoints:s}}const r=new Map(a.extensionPoints);return r.set(o,[...i,n]),{extensionPoints:r}}),unregisterExtensionPoint:(o,n)=>e(a=>{const i=a.extensionPoints.get(o);if(!i)return a;const c=i.filter(s=>s.id!==n),r=new Map(a.extensionPoints);return c.length===0?r.delete(o):r.set(o,c),{extensionPoints:r}}),unregisterPluginExtensionPoints:o=>e(n=>{const a=new Map(n.extensionPoints);for(const[i,c]of a){const r=c.filter(s=>s.pluginId!==o);r.length===0?a.delete(i):a.set(i,r)}return{extensionPoints:a}}),getExtensions:o=>t().extensionPoints.get(o)??[],setDashboardVisibility:(o,n)=>e(a=>{const i=new Map(a.dashboardVisibility);return i.set(o,n),saveDashboardVisibility(i),{dashboardVisibility:i}}),setDashboardVisibilityBatch:o=>e(n=>{const a=new Map(n.dashboardVisibility);for(const[i,c]of o)a.set(i,c);return saveDashboardVisibility(a),{dashboardVisibility:a}})}));let _socket=null;function setSocketInstance(e){_socket=e}function getSocketInstance(){if(!_socket)throw new Error("Socket instance not initialized. Call setSocketInstance() first.");return _socket}class SocketService{constructor(t){this.socket=t,setSocketInstance(t)}emit(t,...o){this.socket.emit(t,...o)}on(t,o){this.socket.on(t,o)}off(t,o){this.socket.off(t,o)}disconnect(){this.socket.disconnect()}}function LoadingSkeleton(){return jsxRuntimeExports.jsx("div",{className:"w-full h-32 bg-gray-100 rounded-xl animate-pulse flex items-center justify-center",children:jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center gap-2",children:[jsxRuntimeExports.jsx(LoaderCircle,{size:24,className:"text-gray-400 animate-spin"}),jsxRuntimeExports.jsx("span",{className:"text-xs text-gray-400",children:"Loading..."})]})})}class ExtensionErrorBoundary extends React.Component{constructor(t){super(t),this.state={hasError:!1},this.props=t}static getDerivedStateFromError(){return{hasError:!0}}render(){return this.state.hasError?this.props.fallback??null:this.props.children}}function DOMExtensionWrapper({ext:e,route:t,slotProps:o,slot:n}){const a=React.useRef(null),i=JSON.stringify(o||{});React.useEffect(()=>{a.current&&typeof e.render=="function"&&(a.current.innerHTML="",Promise.resolve(e.render(a.current,{route:t,...o})).catch(console.error))},[e,t,i]);const r=n==="teacher.dashboard.widget"?"h-auto":"h-full min-h-0";return jsxRuntimeExports.jsx("div",{ref:a,className:`w-full ${r}`})}const resolvedComponentCache=new WeakMap;function resolveExtensionComponent(e){const t=e.component,o=resolvedComponentCache.get(t);if(o)return o;if(t.__isLazyFactory===!0){const n=React.lazy(t);return resolvedComponentCache.set(t,n),n}return resolvedComponentCache.set(t,t),t}function ExtensionPointRenderer({slot:e,fallback:t,lang:o,route:n,slotProps:a}){const c=usePluginHost().getExtensions(e),r=usePluginHostStore(s=>s.dashboardVisibility);return c.length===0?null:e==="teacher.tab"&&a?.renderType==="button"?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:c.map(s=>{const h=`${s.pluginId}/${s.id}`,u=a?.teacherTab===h,p=s.title||s.label||s.id;return jsxRuntimeExports.jsxs("button",{onClick:()=>a?.setTeacherTab?.(h),className:`flex items-center gap-3 p-3 transition-colors text-sm font-medium rounded-xl ${u?"bg-indigo-50 text-indigo-700 font-bold":"text-gray-600 hover:bg-gray-50"} ${a?.mainNavCollapsed?"justify-center px-2":""}`,title:p,children:[jsxRuntimeExports.jsx(Puzzle,{size:20,className:"shrink-0"}),jsxRuntimeExports.jsx("span",{className:a?.mainNavCollapsed?"hidden":"hidden md:block",children:p})]},`${s.pluginId}/${s.id}`)})}):jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:c.map(s=>{const h=typeof s.component=="function",u=typeof s.render=="function";return e==="teacher.dashboard.widget"&&r.get(s.pluginId)===!1||!h&&!u?null:jsxRuntimeExports.jsx(ExtensionErrorBoundary,{fallback:jsxRuntimeExports.jsx("div",{className:"bg-red-50 border border-red-200 rounded-lg p-4 text-sm text-red-700",children:jsxRuntimeExports.jsx("p",{children:o==="zh"?"扩展组件加载失败":"Extension failed to load"})}),children:jsxRuntimeExports.jsx(reactExports.Suspense,{fallback:t??jsxRuntimeExports.jsx(LoadingSkeleton,{}),children:h?React.createElement(resolveExtensionComponent(s),{route:s.route||n,...s.slotProps,...a}):jsxRuntimeExports.jsx(DOMExtensionWrapper,{ext:s,route:s.route||n,slotProps:{...s.slotProps,...a},slot:e})})},`${s.pluginId}/${s.id}`)})})}const SOCKET_FORWARD_PREFIXES=["whiteboard.","courseware.","quiz.","rollcall."];class FrontendEventBus{constructor(){this.handlers=new Map}setSocketBridge(t){this.socketBridge=t}hasSocketBridge(){return!!this.socketBridge}subscribe(t,o){return this.handlers.has(t)||this.handlers.set(t,new Set),this.handlers.get(t).add(o),()=>{this.handlers.get(t)?.delete(o)}}async publish(t){const o=this.handlers.get(t.type);if(o)for(const n of o)try{n(t)}catch(a){console.error("[FrontendEventBus] handler error:",a)}this.socketBridge&&SOCKET_FORWARD_PREFIXES.some(n=>t.type.startsWith(n))&&this.socketBridge(t)}}const frontendEventBus=new FrontendEventBus;function PluginCardRenderer({pluginId:e,slot:t,widgetId:o,elementId:n,lessonId:a}){const c=usePluginHostStore(h=>h.extensionPoints).get(t)||[],r=c.find(h=>h.id===o)??c.find(h=>h.pluginId===e&&h.id===o);if(!r)return jsxRuntimeExports.jsxs("div",{className:"text-center py-6 text-xs text-gray-400 italic flex flex-col justify-center items-center h-full",children:[jsxRuntimeExports.jsx(LoaderCircle,{size:16,className:"animate-spin mb-1"}),jsxRuntimeExports.jsxs("span",{children:["组件 [",o,"] 正在加载或未启用..."]})]});const s=reactExports.useRef(null);return reactExports.useEffect(()=>{s.current&&(s.current.innerHTML="",!r.component&&r.render&&Promise.resolve(r.render(s.current,{elementId:n,lessonId:a})).catch(console.error))},[r,e,o,n,a]),r.component?React.createElement(r.component,{elementId:n,lessonId:a}):jsxRuntimeExports.jsx("div",{ref:s,className:"w-full h-full min-h-0"})}function RollCallWrapper({elementId:e,data:t,onElementUpdate:o,onPointerDown:n,onPointerMove:a,onPointerUp:i,onDelete:c}){const r=t.allStudents||[{id:"mock-s-1",name:"张明",email:"zhangming@edu-os.org"},{id:"mock-s-2",name:"李华",email:"lihua@edu-os.org"},{id:"mock-s-3",name:"王超",email:"wangchao@edu-os.org"},{id:"mock-s-4",name:"赵丽",email:"zhaoli@edu-os.org"},{id:"mock-s-5",name:"钱科",email:"qianke@edu-os.org"},{id:"mock-s-6",name:"孙雪",email:"sunxue@edu-os.org"}],[s,h]=reactExports.useState(t.selectedStudent||null),[u,p]=reactExports.useState(!1),[g,k]=reactExports.useState(""),w=()=>{if(r.length===0||u)return;p(!0);let N=0;const q=16,v=setInterval(()=>{const j=Math.floor(Math.random()*r.length);if(k(r[j].name),N++,N>=q){clearInterval(v);const F=Math.floor(Math.random()*r.length),U=r[F];h(U),p(!1),o&&o(e,{...t,selectedStudent:U,pickedTime:new Date().toISOString(),status:"picked"})}},80)};return jsxRuntimeExports.jsxs("div",{className:"w-full h-full bg-gradient-to-br from-indigo-950 via-slate-900 to-indigo-900 border border-indigo-500/50 rounded-xl shadow-2xl overflow-hidden flex flex-col font-sans select-none",style:{pointerEvents:"auto"},children:[jsxRuntimeExports.jsxs("div",{className:"bg-indigo-950/80 text-indigo-200 px-3 py-2 flex justify-between items-center text-xs font-semibold border-b border-indigo-900/50 cursor-move select-none shrink-0",onPointerDown:n,onPointerMove:a,onPointerUp:i,children:[jsxRuntimeExports.jsxs("span",{className:"flex items-center gap-1.5 text-indigo-300",children:[jsxRuntimeExports.jsx(Sparkles,{size:13,className:"animate-pulse text-indigo-400"}),jsxRuntimeExports.jsx("span",{children:"随机点名助手 (Picker Ext)"})]}),jsxRuntimeExports.jsx("button",{onClick:c,onPointerDown:N=>N.stopPropagation(),className:"p-1 hover:bg-indigo-900/60 rounded text-indigo-400 hover:text-red-450 transition-colors cursor-pointer",title:"删除组件",children:jsxRuntimeExports.jsx(Trash2,{size:13})})]}),jsxRuntimeExports.jsxs("div",{className:"flex-1 p-3.5 flex flex-col justify-between min-h-0 text-white gap-2",children:[jsxRuntimeExports.jsx("div",{className:"w-full flex-1 flex flex-col items-center justify-center p-2 rounded-lg bg-indigo-950/50 border border-indigo-900/30",children:u?jsxRuntimeExports.jsxs("div",{className:"text-center space-y-2",children:[jsxRuntimeExports.jsx("div",{className:"text-[10px] text-indigo-300 uppercase tracking-widest animate-pulse font-semibold",children:"检索班级学生中..."}),jsxRuntimeExports.jsx("div",{className:"text-2xl font-extrabold text-amber-300 scale-105 tracking-wider font-sans",children:g})]}):s?jsxRuntimeExports.jsxs("div",{className:"text-center space-y-1.5",children:[jsxRuntimeExports.jsxs("div",{className:"text-[9px] text-indigo-400 uppercase tracking-widest font-semibold flex items-center justify-center gap-1",children:[jsxRuntimeExports.jsx(UserCheck,{size:11,className:"text-emerald-400 animate-bounce"}),jsxRuntimeExports.jsx("span",{children:"抽中的幸运学生"})]}),jsxRuntimeExports.jsx("div",{className:"text-2xl font-extrabold text-transparent bg-clip-text bg-gradient-to-r from-amber-200 via-yellow-400 to-amber-300 tracking-wider",children:s.name}),jsxRuntimeExports.jsx("div",{className:"text-[9px] text-indigo-300/70 font-mono overflow-hidden text-ellipsis max-w-full",children:s.email||"No Email Account"})]}):jsxRuntimeExports.jsxs("div",{className:"text-center space-y-1",children:[jsxRuntimeExports.jsx(CircleQuestionMark,{size:28,className:"text-indigo-400/80 mx-auto animate-pulse"}),jsxRuntimeExports.jsx("div",{className:"text-xs text-indigo-300 font-semibold",children:"随机抽取摇奖板"}),jsxRuntimeExports.jsx("p",{className:"text-[9px] text-indigo-400/60 leading-tight",children:"将在白板上演示随机滚动,对课堂提问大有裨益"})]})}),jsxRuntimeExports.jsxs("div",{className:"w-full shrink-0 flex flex-col items-center gap-1",onPointerDown:N=>N.stopPropagation(),children:[jsxRuntimeExports.jsxs("button",{onClick:w,disabled:u,className:"w-full py-1.5 bg-gradient-to-r from-indigo-500 to-purple-600 hover:from-indigo-650 hover:to-purple-750 text-white font-bold text-[11px] uppercase tracking-wider rounded-lg shadow-md active:scale-97 disabled:opacity-50 transition-all flex items-center justify-center gap-1.5",children:[jsxRuntimeExports.jsx(Shuffle,{size:12,className:u?"animate-spin":""}),jsxRuntimeExports.jsx("span",{children:u?"滚轮运转中...":s?"重新随机点名":"开始随机点名"})]}),jsxRuntimeExports.jsxs("div",{className:"text-[8.5px] text-indigo-400/60 text-center font-mono",children:["班级人数:",r.length," 人 • 内核总线热同步"]})]})]})]})}function CodeSandboxWrapper({elementId,data,onElementUpdate,onPointerDown,onPointerMove,onPointerUp,onDelete}){const[code,setCode]=reactExports.useState(data.code||"console.log('Hello from sandbox!');"),[output,setOutput]=reactExports.useState(""),runCode=()=>{try{const logs=[],originalLog=console.log;console.log=(...e)=>{logs.push(e.map(t=>typeof t=="object"?JSON.stringify(t):String(t)).join(" ")),originalLog(...e)};const result=eval(code);result!==void 0&&logs.push(`Return: ${result}`),setOutput(logs.join(`
8243
8243
  `)),console.log=originalLog}catch(e){setOutput(`Error: ${e.message}`)}},handleBlur=()=>{onElementUpdate&&code!==data.code&&onElementUpdate(elementId,{...data,code})};return jsxRuntimeExports.jsxs("div",{className:"w-full h-full bg-gray-900 border border-gray-700 rounded-lg shadow-xl overflow-hidden flex flex-col font-mono text-sm",style:{pointerEvents:"auto"},children:[jsxRuntimeExports.jsxs("div",{className:"bg-gray-800 text-gray-300 px-3 py-1.5 flex justify-between items-center text-xs border-b border-gray-700 cursor-move select-none shrink-0",onPointerDown,onPointerMove,onPointerUp,children:[jsxRuntimeExports.jsx("span",{className:"flex items-center gap-1",children:"JS Sandbox"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1.5",onPointerDown:e=>e.stopPropagation(),children:[jsxRuntimeExports.jsx("button",{onClick:runCode,className:"bg-green-600 hover:bg-green-500 text-white px-2 py-0.5 rounded shadow text-[10px] cursor-pointer",children:"Run"}),jsxRuntimeExports.jsx("button",{onClick:onDelete,className:"p-0.5 hover:bg-gray-700 rounded text-gray-400 hover:text-red-500 transition-colors cursor-pointer",title:"删除组件",children:jsxRuntimeExports.jsx(Trash2,{size:13})})]})]}),jsxRuntimeExports.jsx("textarea",{value:code,onChange:e=>setCode(e.target.value),onBlur:handleBlur,className:"w-full flex-1 min-h-0 bg-gray-900 text-green-400 p-3 focus:outline-none resize-none font-mono text-xs",placeholder:"// Write JS here",onPointerDown:e=>{e.stopPropagation()},onKeyDown:e=>{e.stopPropagation()}}),output&&jsxRuntimeExports.jsx("div",{className:"bg-black text-gray-400 p-2 border-t border-gray-800 h-24 overflow-y-auto whitespace-pre-wrap text-[10px] shrink-0",children:output})]})}function MathGraphWrapper({elementId,data,onElementUpdate,onPointerDown,onPointerMove,onPointerUp,onDelete}){const[equation,setEquation]=reactExports.useState(data.equation||"Math.sin(x)"),[points,setPoints]=reactExports.useState(""),[error,setError]=reactExports.useState(""),[containerDimensions,setContainerDimensions]=reactExports.useState({width:400,height:300}),graphContainerRef=reactExports.useRef(null);reactExports.useEffect(()=>{if(!graphContainerRef.current)return;const e=new ResizeObserver(t=>{for(const o of t)setContainerDimensions({width:o.contentRect.width||400,height:o.contentRect.height||300})});return e.observe(graphContainerRef.current),()=>e.disconnect()},[]),reactExports.useEffect(()=>{try{const generatedPoints=[],centerX=containerDimensions.width/2,centerY=containerDimensions.height/2;for(let xUnit=-10;xUnit<=10;xUnit+=.2){const x=xUnit,y=eval(equation);if(typeof y!="number"||isNaN(y))continue;const px=centerX+x*20,py=centerY-y*20;generatedPoints.push(`${px},${py}`)}setPoints(generatedPoints.join(" ")),setError("")}catch(e){setError(e.message)}},[equation,containerDimensions]);const handleBlur=()=>{onElementUpdate&&equation!==data.equation&&onElementUpdate(elementId,{...data,equation})};return jsxRuntimeExports.jsxs("div",{className:"w-full h-full bg-white border border-gray-300 rounded-lg shadow-xl overflow-hidden flex flex-col font-mono text-sm",style:{pointerEvents:"auto"},children:[jsxRuntimeExports.jsxs("div",{className:"bg-gray-100 text-gray-700 px-3 py-1.5 flex justify-between items-center text-xs border-b border-gray-300 cursor-move select-none shrink-0",onPointerDown,onPointerMove,onPointerUp,children:[jsxRuntimeExports.jsx("span",{className:"flex items-center gap-1 font-semibold text-gray-600",children:"Math Graph Sandbox"}),jsxRuntimeExports.jsx("button",{onClick:onDelete,onPointerDown:e=>e.stopPropagation(),className:"p-1 hover:bg-gray-200 rounded-full text-gray-500 hover:text-red-500 transition-colors cursor-pointer flex items-center justify-center",title:"删除组件",children:jsxRuntimeExports.jsx(Trash2,{size:13})})]}),jsxRuntimeExports.jsxs("div",{className:"p-3 border-b border-gray-200 flex-none flex flex-col gap-1",children:[jsxRuntimeExports.jsx("span",{className:"text-gray-500 text-xs",children:"y = f(x)"}),jsxRuntimeExports.jsx("input",{type:"text",value:equation,onChange:e=>setEquation(e.target.value),onBlur:handleBlur,className:"w-full border border-gray-300 rounded px-2 py-1 focus:outline-none focus:border-indigo-500 font-mono text-xs",placeholder:"e.g. Math.sin(x) * x",onPointerDown:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation()}),error&&jsxRuntimeExports.jsx("div",{className:"text-red-500 text-[10px] mt-1",children:error})]}),jsxRuntimeExports.jsx("div",{className:"flex-1 relative overflow-hidden bg-white min-h-0",ref:graphContainerRef,children:jsxRuntimeExports.jsxs("svg",{width:containerDimensions.width,height:containerDimensions.height,viewBox:`0 0 ${containerDimensions.width} ${containerDimensions.height}`,className:"absolute top-0 left-0",children:[jsxRuntimeExports.jsx("line",{x1:containerDimensions.width/2,y1:"0",x2:containerDimensions.width/2,y2:containerDimensions.height,stroke:"#e5e7eb",strokeWidth:"1"}),jsxRuntimeExports.jsx("line",{x1:"0",y1:containerDimensions.height/2,x2:containerDimensions.width,y2:containerDimensions.height/2,stroke:"#e5e7eb",strokeWidth:"1"}),points&&jsxRuntimeExports.jsx("polyline",{points,fill:"none",stroke:"#6366f1",strokeWidth:"2",strokeLinejoin:"round"})]})})]})}function HelloWorldWrapper({elementId:e,data:t,onElementUpdate:o,onPointerDown:n,onPointerMove:a,onPointerUp:i,onDelete:c,lessonId:r}){const[s,h]=reactExports.useState(!1),u=async()=>{h(!0);try{await fetch("/api/commands",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({commandType:"hello.say",payload:{lessonId:r,username:"World",shout:!0}})})}catch(p){console.error("Failed to trigger hello.say command:",p)}finally{h(!1)}};return jsxRuntimeExports.jsxs("div",{className:"w-full h-full bg-white border border-slate-200/80 rounded-xl shadow-lg overflow-hidden flex flex-col font-sans select-none",style:{pointerEvents:"auto"},children:[jsxRuntimeExports.jsxs("div",{className:"bg-slate-50 text-slate-700 px-2 py-1.5 flex justify-between items-center text-[10px] font-semibold border-b border-slate-150 cursor-move select-none shrink-0",onPointerDown:n,onPointerMove:a,onPointerUp:i,children:[jsxRuntimeExports.jsxs("span",{className:"flex items-center gap-1.5 text-slate-650",children:[jsxRuntimeExports.jsx(Sparkles,{size:11,className:"text-amber-500 animate-pulse"}),jsxRuntimeExports.jsx("span",{children:"Hello World 插件"})]}),jsxRuntimeExports.jsx("button",{onClick:c,onPointerDown:p=>p.stopPropagation(),className:"p-1 hover:bg-slate-150 rounded text-slate-400 hover:text-red-500 transition-colors cursor-pointer",title:"删除组件",children:jsxRuntimeExports.jsx(Trash2,{size:11})})]}),jsxRuntimeExports.jsx("div",{className:"flex-1 p-2 flex items-center justify-center bg-slate-50/20",children:jsxRuntimeExports.jsxs("button",{onClick:u,disabled:s,onPointerDown:p=>p.stopPropagation(),className:"w-full py-1 bg-gradient-to-r from-indigo-500 to-purple-600 hover:from-indigo-650 hover:to-purple-750 text-white font-bold text-[10px] rounded-lg shadow-sm active:scale-95 transition-all flex items-center justify-center gap-1 cursor-pointer",children:[jsxRuntimeExports.jsx(WandSparkles,{size:11,className:s?"animate-spin":""}),jsxRuntimeExports.jsx("span",{children:s?"输出中...":"点击输出"})]})})]})}function RevealPresentationWrapper({elementId:e,data:t,userRole:o="teacher",onElementUpdate:n}){const[a,i]=reactExports.useState("ppt"),[c,r]=reactExports.useState(t.markdown||`# Title Slide
8244
8244
  ---
8245
- ## Slide 2`),[s,h]=reactExports.useState(t.slideX||0),[u,p]=reactExports.useState(!1),[g,k]=reactExports.useState(4),[w,S]=reactExports.useState(!1),R=reactExports.useRef(null),C=o==="teacher",v=o==="student",j=t.fileUrl||"",F=t.fileType||"md",U=t.fileName||"",b=!!j,[K,Z]=reactExports.useState(!1),Y=reactExports.useRef(null),oe=reactExports.useRef(null),H=reactExports.useRef(null),E=!!t.isFullscreenSynced,J=!!t.isFullscreenForced,z=w||v&&E&&J,A=c.split(/(?:\r?\n|^)---(?:\r?\n|$)/).map(D=>D.trim()).filter(D=>D.length>0),Q=F==="md"?Math.max(1,A.length):t.slideCount||1;reactExports.useEffect(()=>{F!=="md"&&a!=="ppt"&&i("ppt")},[F,a]),reactExports.useEffect(()=>{t.slideX!==void 0&&t.slideX!==s&&h(t.slideX)},[t.slideX]),reactExports.useEffect(()=>{t.markdown!==void 0&&t.markdown!==c&&r(t.markdown)},[t.markdown]),reactExports.useEffect(()=>{if(F!=="pptx"||!j){H.current&&(H.current.destroy(),H.current=null);return}let D=!0;return fetch(j).then(W=>W.arrayBuffer()).then(async W=>{if(D&&(H.current&&(H.current.destroy(),H.current=null),oe.current)){oe.current.innerHTML="";try{const ce=tt(oe.current,{mode:"slide"});H.current=ce,await ce.load(W),D&&(C&&n&&t.slideCount!==ce.slideCount&&n(e,{...t,slideCount:ce.slideCount}),ce.renderSingleSlide(s))}catch(ce){console.error("PPTX preview init failed",ce)}}}).catch(W=>console.error("Fetch PPTX failed",W)),()=>{D=!1,H.current&&(H.current.destroy(),H.current=null)}},[j,F,z]),reactExports.useEffect(()=>{if(F==="pptx"&&H.current)try{H.current.renderSingleSlide(s)}catch(D){console.error("PPTX renderSingleSlide failed",D)}},[s,F]),reactExports.useEffect(()=>{if(!u||a!=="ppt"||F!=="md")return;const D=setInterval(()=>{h(W=>{const ce=(W+1)%Math.max(1,A.length);return n&&n(e,{...t,slideX:ce}),ce})},g*1e3);return()=>clearInterval(D)},[u,g,A.length,a,F]),reactExports.useEffect(()=>{const D=W=>{v&&E&&J||(W.key==="ArrowRight"||W.key===" "?(W.preventDefault(),se(s+1)):W.key==="ArrowLeft"?(W.preventDefault(),se(s-1)):W.key==="Escape"&&z&&(W.preventDefault(),_e(!1)))};return window.addEventListener("keydown",D),()=>window.removeEventListener("keydown",D)},[s,z,v,E,J,Q]);const se=D=>{if(v&&E&&J)return;const W=Math.min(Math.max(0,D),Q-1);h(W),C&&n&&n(e,{...t,slideX:W})},ge=D=>{r(D),n&&n(e,{...t,markdown:D})},be=async D=>{const W=D.target.files?.[0];if(!W)return;const ce=W.name.split(".").pop()?.toLowerCase();if(ce!=="pdf"&&ce!=="pptx"){alert("仅支持上传 PDF 或 PPTX 格式的课件文件!");return}Z(!0);try{const he=new FileReader;he.onload=async ve=>{const qe=(ve.target?.result).split(",")[1],de=await fetch("/api/upload",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({filename:W.name,base64Data:qe})});if(!de.ok)throw new Error("服务器上传文件失败");const me=await de.json();n&&(await n(e,{...t,fileUrl:me.url,fileName:W.name,fileType:me.type,slideX:0,slideCount:me.pageCount||1,isFullscreenSynced:t.isFullscreenSynced!==void 0?t.isFullscreenSynced:!0,isFullscreenForced:!1}),h(0))},he.readAsDataURL(W)}catch(he){console.error(he),alert("课件文件上传失败,请重试")}finally{Z(!1)}},m=()=>{window.confirm("确定要清除已上传的课件并恢复为 Markdown 编辑模式吗?")&&n&&(n(e,{...t,fileUrl:"",fileName:"",fileType:"md",slideX:0,slideCount:0,isFullscreenForced:!1}),h(0))},_e=D=>{S(D),C&&n&&n(e,{...t,isFullscreenForced:D})},we=D=>{n&&n(e,{...t,isFullscreenSynced:D,isFullscreenForced:D?w:!1})},f=[{name:"基础通用课件",desc:"标准的课件 structure",content:`# 物理学原理与探究
8245
+ ## Slide 2`),[s,h]=reactExports.useState(t.slideX||0),[u,p]=reactExports.useState(!1),[g,k]=reactExports.useState(4),[w,N]=reactExports.useState(!1),q=reactExports.useRef(null),b=o==="teacher",v=o==="student",j=t.fileUrl||"",F=t.fileType||"md",U=t.fileName||"",C=!!j,[K,Z]=reactExports.useState(!1),ee=reactExports.useRef(null),oe=reactExports.useRef(null),H=reactExports.useRef(null),E=!!t.isFullscreenSynced,J=!!t.isFullscreenForced,z=w||v&&E&&J,A=c.split(/(?:\r?\n|^)---(?:\r?\n|$)/).map(D=>D.trim()).filter(D=>D.length>0),Q=F==="md"?Math.max(1,A.length):t.slideCount||1;reactExports.useEffect(()=>{F!=="md"&&a!=="ppt"&&i("ppt")},[F,a]),reactExports.useEffect(()=>{t.slideX!==void 0&&t.slideX!==s&&h(t.slideX)},[t.slideX]),reactExports.useEffect(()=>{t.markdown!==void 0&&t.markdown!==c&&r(t.markdown)},[t.markdown]),reactExports.useEffect(()=>{if(F!=="pptx"||!j){H.current&&(H.current.destroy(),H.current=null);return}let D=!0;return fetch(j).then(W=>W.arrayBuffer()).then(async W=>{if(D&&(H.current&&(H.current.destroy(),H.current=null),oe.current)){oe.current.innerHTML="";try{const ce=tt(oe.current,{mode:"slide"});H.current=ce,await ce.load(W),D&&(b&&n&&t.slideCount!==ce.slideCount&&n(e,{...t,slideCount:ce.slideCount}),ce.renderSingleSlide(s))}catch(ce){console.error("PPTX preview init failed",ce)}}}).catch(W=>console.error("Fetch PPTX failed",W)),()=>{D=!1,H.current&&(H.current.destroy(),H.current=null)}},[j,F,z]),reactExports.useEffect(()=>{if(F==="pptx"&&H.current)try{H.current.renderSingleSlide(s)}catch(D){console.error("PPTX renderSingleSlide failed",D)}},[s,F]),reactExports.useEffect(()=>{if(!u||a!=="ppt"||F!=="md")return;const D=setInterval(()=>{h(W=>{const ce=(W+1)%Math.max(1,A.length);return n&&n(e,{...t,slideX:ce}),ce})},g*1e3);return()=>clearInterval(D)},[u,g,A.length,a,F]),reactExports.useEffect(()=>{const D=W=>{v&&E&&J||(W.key==="ArrowRight"||W.key===" "?(W.preventDefault(),se(s+1)):W.key==="ArrowLeft"?(W.preventDefault(),se(s-1)):W.key==="Escape"&&z&&(W.preventDefault(),_e(!1)))};return window.addEventListener("keydown",D),()=>window.removeEventListener("keydown",D)},[s,z,v,E,J,Q]);const se=D=>{if(v&&E&&J)return;const W=Math.min(Math.max(0,D),Q-1);h(W),b&&n&&n(e,{...t,slideX:W})},ge=D=>{r(D),n&&n(e,{...t,markdown:D})},be=async D=>{const W=D.target.files?.[0];if(!W)return;const ce=W.name.split(".").pop()?.toLowerCase();if(ce!=="pdf"&&ce!=="pptx"){alert("仅支持上传 PDF 或 PPTX 格式的课件文件!");return}Z(!0);try{const he=new FileReader;he.onload=async ve=>{const Re=(ve.target?.result).split(",")[1],de=await fetch("/api/upload",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({filename:W.name,base64Data:Re})});if(!de.ok)throw new Error("服务器上传文件失败");const me=await de.json();n&&(await n(e,{...t,fileUrl:me.url,fileName:W.name,fileType:me.type,slideX:0,slideCount:me.pageCount||1,isFullscreenSynced:t.isFullscreenSynced!==void 0?t.isFullscreenSynced:!0,isFullscreenForced:!1}),h(0))},he.readAsDataURL(W)}catch(he){console.error(he),alert("课件文件上传失败,请重试")}finally{Z(!1)}},m=()=>{window.confirm("确定要清除已上传的课件并恢复为 Markdown 编辑模式吗?")&&n&&(n(e,{...t,fileUrl:"",fileName:"",fileType:"md",slideX:0,slideCount:0,isFullscreenForced:!1}),h(0))},_e=D=>{N(D),b&&n&&n(e,{...t,isFullscreenForced:D})},we=D=>{n&&n(e,{...t,isFullscreenSynced:D,isFullscreenForced:D?w:!1})},f=[{name:"基础通用课件",desc:"标准的课件 structure",content:`# 物理学原理与探究
8246
8246
  ---
8247
8247
  ## 课程介绍
8248
8248
  1. 经典力学基础
@@ -8286,8 +8286,8 @@ The teacher used the virtual whiteboard to ___ classroom active learning slides.
8286
8286
 
8287
8287
  ## 问题思考
8288
8288
  当马拉着车在水平路面上加速前进时,马拉车的力与车拉马的力,哪一个更大?`}],ie=(()=>{const D=c.split(`
8289
- `),W=[];return D.forEach((ce,he)=>{const ve=ce.match(/^(#{1,3})\s+(.*)$/);ve&&W.push({text:ve[2].trim(),level:ve[1].length,lineIndex:he})}),W})();if(z&&typeof document<"u")return jsxRuntimeExports.jsxs("div",{className:"w-full h-full flex flex-col items-center justify-center bg-slate-900/10 text-slate-400 font-sans p-4",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center gap-2",children:[jsxRuntimeExports.jsx(Presentation,{size:24,className:"text-indigo-500 animate-pulse"}),jsxRuntimeExports.jsx("span",{className:"text-xs",children:"演示文稿正在全屏放映中"})]}),reactDomExports.createPortal(jsxRuntimeExports.jsxs("div",{className:"fixed inset-0 z-[99999] bg-neutral-950 flex flex-col items-center justify-center font-sans p-6",children:[jsxRuntimeExports.jsxs("div",{className:"absolute top-4 left-4 right-4 flex items-center justify-between text-white/80 select-none z-[100001] px-4 py-2 bg-neutral-900/60 backdrop-blur-md rounded-xl border border-neutral-800",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("span",{className:"w-2.5 h-2.5 rounded-full bg-emerald-500 animate-pulse"}),jsxRuntimeExports.jsxs("span",{className:"font-bold text-xs tracking-wider uppercase",children:[F==="md"?"Markdown Slides":`${F.toUpperCase()} Presentation`," ",v&&"(Synced)"]})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-4",children:[jsxRuntimeExports.jsxs("span",{className:"text-xs font-mono text-white/50",children:["Slide ",s+1," / ",Q]}),C&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[F==="md"&&jsxRuntimeExports.jsx("button",{onClick:()=>p(D=>!D),className:`px-2.5 py-1 rounded-md text-[10px] uppercase font-bold tracking-wider transition-colors border cursor-pointer ${u?"bg-emerald-50 border-emerald-400 text-white animate-pulse":"bg-transparent border-neutral-700 text-neutral-400 hover:bg-neutral-850"}`,children:u?"Autoplay Live":"Autoplay"}),jsxRuntimeExports.jsxs("label",{className:"flex items-center gap-1.5 text-xs text-white/70 cursor-pointer",children:[jsxRuntimeExports.jsx("input",{type:"checkbox",checked:E,onChange:D=>we(D.target.checked),className:"rounded border-neutral-700 bg-neutral-800 text-indigo-500 focus:ring-0 focus:ring-offset-0 cursor-pointer"}),jsxRuntimeExports.jsx("span",{children:"同步学生全屏"})]})]}),(!v||!J||!E||w)&&jsxRuntimeExports.jsx("button",{onClick:()=>_e(!1),className:"p-1 px-2.5 bg-red-600 text-white text-xs font-bold rounded-lg transition-colors cursor-pointer border-0 hover:bg-red-700",title:"退出放映",children:"退出放映 (Esc)"})]})]}),jsxRuntimeExports.jsx("div",{className:"w-full flex-1 min-h-0 flex items-center justify-center relative",children:F==="pdf"?jsxRuntimeExports.jsx("div",{className:"w-full h-full flex items-center justify-center p-2 bg-slate-100 max-w-[90vw] max-h-[82vh] aspect-video rounded-2xl overflow-hidden shadow-2xl border border-neutral-850",children:jsxRuntimeExports.jsx("iframe",{src:`${j}#page=${s+1}&toolbar=0&navpanes=0`,className:"w-full h-full border-0 rounded-xl"},`${j}-fs-${s}`)}):F==="pptx"?jsxRuntimeExports.jsx("div",{className:"w-full h-full flex items-center justify-center p-2 bg-slate-900/5 max-w-[90vw] max-h-[82vh] aspect-video rounded-2xl overflow-hidden shadow-2xl border border-neutral-850",children:jsxRuntimeExports.jsx("div",{ref:oe,className:"w-full h-full overflow-auto rounded-xl bg-white border border-slate-100 shadow-md flex items-center justify-center"})}):jsxRuntimeExports.jsx("div",{className:"flex-1 w-full flex items-center justify-center max-w-[90vw] min-h-0",children:jsxRuntimeExports.jsxs("div",{className:"w-full bg-white rounded-xl shadow-md border border-slate-100 flex flex-col overflow-y-auto p-6 md:p-8 aspect-video relative transition-all duration-300 hover:shadow-lg max-h-[82vh] max-w-none p-12 md:p-16 border-neutral-850 rounded-3xl shadow-2xl",children:[jsxRuntimeExports.jsxs("div",{className:"flex justify-between items-center text-[10px] font-semibold text-slate-400 border-b border-slate-100 pb-2 mb-4 shrink-0",children:[jsxRuntimeExports.jsx("span",{className:"tracking-wide uppercase text-indigo-650",children:"SMART CLASS SLIDE DECK"}),jsxRuntimeExports.jsxs("span",{className:"font-mono",children:["SLIDE ",s+1," / ",Q]})]}),jsxRuntimeExports.jsx("div",{className:"flex-1 min-h-0 overflow-y-auto pr-1",children:jsxRuntimeExports.jsx("div",{className:"markdown-body text-slate-800 leading-relaxed font-sans prose prose-neutral max-w-none text-xs",children:A[s]?jsxRuntimeExports.jsx(Markdown,{children:A[s]}):jsxRuntimeExports.jsx("div",{className:"text-center text-slate-400 italic py-8",children:"幻灯片没有内容,请在“编辑文档”中添加。"})})}),jsxRuntimeExports.jsxs("div",{className:"mt-4 pt-2 border-t border-slate-50 flex items-center justify-between text-[10px] text-slate-400 shrink-0 font-sans",children:[jsxRuntimeExports.jsx("span",{children:"智慧互动教室白板演示系统"}),jsxRuntimeExports.jsxs("span",{children:["Page ",s+1]})]})]})})}),!(v&&E&&J)&&jsxRuntimeExports.jsxs("div",{className:"absolute bottom-6 bg-neutral-900/80 backdrop-blur-md px-6 py-2.5 rounded-full border border-neutral-800 shadow-2xl z-[100001]",children:[jsxRuntimeExports.jsx("button",{disabled:s===0||v,onClick:()=>se(s-1),className:`p-1.5 rounded-full border transition-colors cursor-pointer ${s===0||v?"border-neutral-800 text-neutral-600 bg-neutral-950/20 cursor-not-allowed":"border-neutral-700 text-neutral-300 hover:bg-neutral-800"}`,title:"上一张 (ArrowLeft)",children:jsxRuntimeExports.jsx(ChevronLeft,{size:18})}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1.5 px-1 font-mono text-xs text-neutral-200",children:[jsxRuntimeExports.jsx("span",{className:"font-bold text-white text-base",children:s+1}),jsxRuntimeExports.jsx("span",{className:"text-neutral-600",children:"/"}),jsxRuntimeExports.jsx("span",{children:Q})]}),jsxRuntimeExports.jsx("button",{disabled:s>=Q-1||v,onClick:()=>se(s+1),className:`p-1.5 rounded-full border transition-colors cursor-pointer ${s>=Q-1||v?"border-neutral-800 text-neutral-600 bg-neutral-950/20 cursor-not-allowed":"border-neutral-700 text-neutral-300 hover:bg-neutral-800"}`,title:"下一张 (ArrowRight)",children:jsxRuntimeExports.jsx(ChevronRight,{size:18})})]})]}),document.body)]});const le=z?"fixed inset-0 z-[99999] bg-neutral-950 flex flex-col items-center justify-center font-sans p-6":"flex-1 flex flex-col items-center justify-between p-4 bg-slate-900/5 relative min-w-0";return jsxRuntimeExports.jsxs("div",{className:"w-full h-full flex flex-col bg-slate-50 text-slate-800 overflow-hidden text-xs relative font-sans",children:[!z&&jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between px-3 py-1.5 bg-slate-100 border-b border-slate-200 shrink-0 select-none relative z-10",children:[jsxRuntimeExports.jsx("div",{className:"flex items-center gap-1",children:F==="md"?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("button",{onClick:()=>i("ppt"),className:`px-2 py-1 rounded flex items-center gap-1 font-medium transition-colors cursor-pointer ${a==="ppt"?"bg-indigo-600 text-white shadow-sm":"text-slate-600 hover:bg-slate-200"}`,title:"播放课件幻灯片 (PPT Mode)",children:[jsxRuntimeExports.jsx(Play,{size:11}),jsxRuntimeExports.jsx("span",{children:"PPT 播放"})]}),jsxRuntimeExports.jsxs("button",{onClick:()=>i("doc"),className:`px-2 py-1 rounded flex items-center gap-1 font-medium transition-colors cursor-pointer ${a==="doc"?"bg-indigo-600 text-white shadow-sm":"text-slate-600 hover:bg-slate-200"}`,title:"以精美文档形式阅读 (Markdown Document mode)",children:[jsxRuntimeExports.jsx(BookOpen,{size:11}),jsxRuntimeExports.jsx("span",{children:"文档阅读"})]}),jsxRuntimeExports.jsxs("button",{onClick:()=>i("edit"),className:`px-2 py-1 rounded flex items-center gap-1 font-medium transition-colors cursor-pointer ${a==="edit"?"bg-indigo-600 text-white shadow-sm":"text-slate-600 hover:bg-slate-200"}`,title:"在线编辑 Markdown 内容",children:[jsxRuntimeExports.jsx(PenLine,{size:11}),jsxRuntimeExports.jsx("span",{children:"编辑文档"})]})]}):jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1 bg-indigo-50 border border-indigo-200/50 text-indigo-700 px-2 py-0.5 rounded text-[10px] font-semibold",children:[jsxRuntimeExports.jsx(Presentation,{size:10}),jsxRuntimeExports.jsxs("span",{children:[F.toUpperCase()," 课件演示中"]})]})}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[C&&jsxRuntimeExports.jsx("div",{className:"flex items-center gap-1.5 border-r border-slate-200 pr-3",children:K?jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-slate-500 font-medium",children:[jsxRuntimeExports.jsx(LoaderCircle,{size:10,className:"animate-spin"}),jsxRuntimeExports.jsx("span",{children:"上传解析中..."})]}):b?jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1.5 bg-slate-200/50 pl-2 pr-1.5 py-0.5 rounded border border-slate-300/30",children:[jsxRuntimeExports.jsx("span",{className:"text-[10px] font-medium text-slate-600 max-w-[120px] truncate font-mono",title:U,children:U}),jsxRuntimeExports.jsx("button",{onClick:m,className:"p-0.5 hover:bg-slate-300 rounded text-red-500 cursor-pointer border-0 bg-transparent",title:"清除并切换回 Markdown",children:jsxRuntimeExports.jsx(Trash2,{size:10})})]}):jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("button",{onClick:()=>Y.current?.click(),className:"px-2 py-1 rounded bg-indigo-50 border border-indigo-200 text-indigo-700 hover:bg-indigo-100 flex items-center gap-1 font-semibold text-[10px] cursor-pointer",title:"上传 PPTX 或 PDF 课件",children:[jsxRuntimeExports.jsx(Upload,{size:10}),jsxRuntimeExports.jsx("span",{children:"上传课件"})]}),jsxRuntimeExports.jsx("input",{type:"file",ref:Y,onChange:be,accept:".pdf,.pptx",className:"hidden"})]})}),a==="ppt"&&F==="md"&&jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1.5",children:[jsxRuntimeExports.jsxs("button",{onClick:()=>p(D=>!D),className:`p-1 rounded flex items-center gap-1 font-semibold text-[10px] transition-colors border cursor-pointer ${u?"bg-emerald-50 border-emerald-300 text-emerald-700":"bg-white border-slate-200 text-slate-500 hover:bg-slate-50"}`,title:"开启/关闭幻灯片自动播放",children:[u?jsxRuntimeExports.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-emerald-500 animate-ping"}):null,jsxRuntimeExports.jsx("span",{children:u?"自动播放中":"自动播放"})]}),u&&jsxRuntimeExports.jsxs("select",{value:g,onChange:D=>k(Number(D.target.value)),className:"bg-white border border-slate-200 rounded px-1 text-[10px] py-0.5 text-slate-700 font-medium",children:[jsxRuntimeExports.jsx("option",{value:2,children:"2秒"}),jsxRuntimeExports.jsx("option",{value:4,children:"4秒"}),jsxRuntimeExports.jsx("option",{value:6,children:"6秒"}),jsxRuntimeExports.jsx("option",{value:10,children:"10秒"})]})]}),C&&a==="ppt"&&jsxRuntimeExports.jsxs("label",{className:"flex items-center gap-1 text-[10px] text-slate-500 font-medium cursor-pointer",children:[jsxRuntimeExports.jsx("input",{type:"checkbox",checked:E,onChange:D=>we(D.target.checked),className:"rounded border-slate-300 text-indigo-650 focus:ring-0 focus:ring-offset-0 cursor-pointer"}),jsxRuntimeExports.jsx("span",{children:"同步学生全屏"})]}),a==="ppt"&&(!v||!(E&&J))&&jsxRuntimeExports.jsx("button",{onClick:()=>_e(!0),className:"p-1 rounded-lg text-slate-655 hover:bg-slate-200 border border-slate-200 bg-white transition-colors cursor-pointer",title:"全屏放映",children:jsxRuntimeExports.jsx(Maximize2,{size:11})})]})]}),jsxRuntimeExports.jsxs("div",{className:"flex-1 min-h-0 relative flex flex-row overflow-hidden",children:[a==="ppt"&&jsxRuntimeExports.jsxs("div",{className:le,children:[z&&jsxRuntimeExports.jsxs("div",{className:"absolute top-4 left-4 right-4 flex items-center justify-between text-white/80 select-none z-[100001] px-4 py-2 bg-neutral-900/60 backdrop-blur-md rounded-xl border border-neutral-800",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("span",{className:"w-2.5 h-2.5 rounded-full bg-emerald-500 animate-pulse"}),jsxRuntimeExports.jsxs("span",{className:"font-bold text-xs tracking-wider uppercase",children:[F==="md"?"Markdown Slides":`${F.toUpperCase()} Presentation`," ",v&&"(Synced)"]})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-4",children:[jsxRuntimeExports.jsxs("span",{className:"text-xs font-mono text-white/50",children:["Slide ",s+1," / ",Q]}),C&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[F==="md"&&jsxRuntimeExports.jsx("button",{onClick:()=>p(D=>!D),className:`px-2.5 py-1 rounded-md text-[10px] uppercase font-bold tracking-wider transition-colors border cursor-pointer ${u?"bg-emerald-50 border-emerald-400 text-white animate-pulse":"bg-transparent border-neutral-700 text-neutral-400 hover:bg-neutral-850"}`,children:u?"Autoplay Live":"Autoplay"}),jsxRuntimeExports.jsxs("label",{className:"flex items-center gap-1.5 text-xs text-white/70 cursor-pointer",children:[jsxRuntimeExports.jsx("input",{type:"checkbox",checked:E,onChange:D=>we(D.target.checked),className:"rounded border-neutral-700 bg-neutral-800 text-indigo-500 focus:ring-0 focus:ring-offset-0 cursor-pointer"}),jsxRuntimeExports.jsx("span",{children:"同步学生全屏"})]}),jsxRuntimeExports.jsx("button",{onClick:()=>_e(!1),className:"p-1 px-2.5 bg-red-655 text-white text-xs font-bold rounded-md transition-colors cursor-pointer border-0",title:"退出放映",children:"退出放映 (Esc)"})]})]})]}),jsxRuntimeExports.jsx("div",{className:"w-full flex-1 min-h-0 flex items-center justify-center relative",children:F==="pdf"?jsxRuntimeExports.jsx("div",{className:`w-full h-full flex items-center justify-center p-2 bg-slate-100 ${z?"max-w-5xl aspect-video rounded-2xl overflow-hidden shadow-2xl border border-neutral-850":""}`,children:jsxRuntimeExports.jsx("iframe",{src:`${j}#page=${s+1}&toolbar=0&navpanes=0`,className:"w-full h-full border-0 rounded-xl"},`${j}-${z?"fs":"card"}-${s}`)}):F==="pptx"?jsxRuntimeExports.jsx("div",{className:`w-full h-full flex items-center justify-center p-2 bg-slate-900/5 ${z?"max-w-5xl aspect-video rounded-2xl overflow-hidden shadow-2xl border border-neutral-850":""}`,children:jsxRuntimeExports.jsx("div",{ref:oe,className:"w-full h-full overflow-auto rounded-xl bg-white border border-slate-100 shadow-md flex items-center justify-center"})}):jsxRuntimeExports.jsx("div",{className:"flex-1 w-full flex items-center justify-center max-w-2xl min-h-0",children:jsxRuntimeExports.jsxs("div",{className:`w-full bg-white rounded-xl shadow-md border border-slate-100 flex flex-col overflow-y-auto p-6 md:p-8 aspect-video relative transition-all duration-300 hover:shadow-lg max-h-full ${z?"max-w-4xl p-12 md:p-16 border-neutral-850 rounded-3xl shadow-2xl":""}`,children:[jsxRuntimeExports.jsxs("div",{className:"flex justify-between items-center text-[10px] font-semibold text-slate-400 border-b border-slate-100 pb-2 mb-4 shrink-0",children:[jsxRuntimeExports.jsx("span",{className:"tracking-wide uppercase text-indigo-650",children:"SMART CLASS SLIDE DECK"}),jsxRuntimeExports.jsxs("span",{className:"font-mono",children:["SLIDE ",s+1," / ",Q]})]}),jsxRuntimeExports.jsx("div",{className:"flex-1 min-h-0 overflow-y-auto pr-1",children:jsxRuntimeExports.jsx("div",{className:"markdown-body text-slate-800 leading-relaxed font-sans prose prose-neutral max-w-none text-xs",children:A[s]?jsxRuntimeExports.jsx(Markdown,{children:A[s]}):jsxRuntimeExports.jsx("div",{className:"text-center text-slate-400 italic py-8",children:"幻灯片没有内容,请在“编辑文档”中添加。"})})}),jsxRuntimeExports.jsxs("div",{className:"mt-4 pt-2 border-t border-slate-50 flex items-center justify-between text-[10px] text-slate-400 shrink-0 font-sans",children:[jsxRuntimeExports.jsx("span",{children:"智慧互动教室白板演示系统"}),jsxRuntimeExports.jsxs("span",{children:["Page ",s+1]})]})]})})}),!(v&&E&&J)&&jsxRuntimeExports.jsxs("div",{className:`mt-4 flex items-center justify-center gap-3 select-none shrink-0 ${z?"absolute bottom-6 bg-neutral-900/80 backdrop-blur-md px-6 py-2.5 rounded-full border border-neutral-800 shadow-2xl z-[100001]":"bg-white px-4 py-2 rounded-full border border-slate-200/80 shadow-md relative z-10"}`,children:[jsxRuntimeExports.jsx("button",{disabled:s===0||v&&E&&J,onClick:()=>se(s-1),className:`p-1.5 rounded-full border transition-colors cursor-pointer ${s===0||v&&E&&J?z?"border-neutral-800 text-neutral-600 bg-neutral-950/20 cursor-not-allowed":"border-slate-100 bg-slate-50 text-slate-300 cursor-not-allowed":z?"border-neutral-700 text-neutral-300 hover:bg-neutral-800":"border-slate-205 text-slate-655 hover:bg-slate-50"}`,title:"上一张 (ArrowLeft)",children:jsxRuntimeExports.jsx(ChevronLeft,{size:z?18:14})}),jsxRuntimeExports.jsxs("div",{className:`flex items-center gap-1.5 px-1 font-mono text-xs ${z?"text-neutral-200":"text-slate-700"}`,children:[jsxRuntimeExports.jsx("span",{className:`font-bold ${z?"text-white text-base":"text-slate-900"}`,children:s+1}),jsxRuntimeExports.jsx("span",{className:z?"text-neutral-600":"text-slate-350",children:"/"}),jsxRuntimeExports.jsx("span",{children:Q})]}),jsxRuntimeExports.jsx("button",{disabled:s>=Q-1||v&&E&&J,onClick:()=>se(s+1),className:`p-1.5 rounded-full border transition-colors cursor-pointer ${s>=Q-1||v&&E&&J?z?"border-neutral-800 text-neutral-600 bg-neutral-950/20 cursor-not-allowed":"border-slate-100 bg-slate-50 text-slate-300 cursor-not-allowed":z?"border-neutral-700 text-neutral-300 hover:bg-neutral-800":"border-slate-205 text-slate-655 hover:bg-slate-50"}`,title:"下一张 (ArrowRight)",children:jsxRuntimeExports.jsx(ChevronRight,{size:z?18:14})})]})]}),a==="doc"&&F==="md"&&jsxRuntimeExports.jsxs("div",{className:"flex-1 flex flex-row min-h-0 bg-white",children:[ie.length>0&&jsxRuntimeExports.jsxs("div",{className:"w-1/4 min-w-[120px] max-w-[200px] border-r border-slate-200 bg-slate-50/50 flex flex-col py-3 px-2 overflow-y-auto shrink-0 select-none",children:[jsxRuntimeExports.jsxs("span",{className:"text-[10px] font-bold text-slate-400 uppercase tracking-widest px-2 mb-2 flex items-center gap-1",children:[jsxRuntimeExports.jsx(FileText,{size:10}),"文档大纲"]}),jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-0.5",children:ie.map((D,W)=>jsxRuntimeExports.jsx("button",{onClick:()=>{const ce=R.current?.querySelector(`[data-line-index="${D.lineIndex}"]`);ce&&ce.scrollIntoView({behavior:"smooth",block:"start"})},className:"text-left text-[11px] py-1 px-2 rounded hover:bg-slate-100 text-slate-600 hover:text-slate-900 truncate cursor-pointer font-medium whitespace-nowrap border-0 bg-transparent",style:{paddingLeft:`${Math.max(8,D.level*6)}px`},title:D.text,children:D.text},W))})]}),jsxRuntimeExports.jsx("div",{className:"flex-1 min-h-0 overflow-y-auto p-6 md:p-8",ref:R,children:jsxRuntimeExports.jsx("div",{className:"markdown-body prose prose-neutral max-w-none text-xs leading-relaxed text-slate-700",children:c.split(`
8290
- `).map((D,W)=>{const ce=D.match(/^(#{1,3})\s+(.*)$/);if(ce){const he=ce[1].length,ve=ce[2].trim(),ue=he===1?"h1":he===2?"h2":"h3",qe=he===1?"text-lg font-bold text-indigo-900 border-b pb-1 mt-4 mb-2":he===2?"text-base font-bold text-slate-800 mt-3 mb-1.5":"text-sm font-semibold text-slate-700 mt-2 mb-1";return jsxRuntimeExports.jsx(ue,{"data-line-index":W,className:qe,children:ve},W)}return D.trim()==="---"?jsxRuntimeExports.jsx("hr",{className:"my-4 border-slate-200"},W):jsxRuntimeExports.jsx("p",{className:"my-1.5 text-slate-600 antialiased leading-relaxed",children:D},W)})})})]}),a==="edit"&&F==="md"&&jsxRuntimeExports.jsxs("div",{className:"flex-1 flex flex-col md:flex-row min-h-0 bg-white",children:[jsxRuntimeExports.jsxs("div",{className:"w-full md:w-1/3 border-b md:border-b-0 md:border-r border-slate-100 bg-slate-50/40 p-3 flex flex-col overflow-y-auto shrink-0 select-none",children:[jsxRuntimeExports.jsxs("span",{className:"text-[10px] font-bold text-slate-400 tracking-wider uppercase mb-2 flex items-center gap-1",children:[jsxRuntimeExports.jsx(WandSparkles,{size:10,className:"text-indigo-650"}),"推荐课件及文档模板"]}),jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-2",children:f.map((D,W)=>jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>{window.confirm(`确定要加载模板 “${D.name}” 吗?这将会覆盖当前白板课件中的所有编辑内容。`)&&(ge(D.content),h(0))},className:"w-full text-left p-2.5 rounded-lg border border-slate-200 bg-white hover:border-indigo-300 hover:shadow-sm transition-all focus:outline-none cursor-pointer group",children:[jsxRuntimeExports.jsx("div",{className:"font-bold text-[11px] text-slate-800 group-hover:text-indigo-700 whitespace-nowrap overflow-hidden text-ellipsis",children:D.name}),jsxRuntimeExports.jsx("div",{className:"text-[9px] text-slate-400 mt-0.5",children:D.desc})]},W))}),jsxRuntimeExports.jsxs("div",{className:"mt-4 p-2 bg-amber-50 rounded border border-amber-100 text-[10px] text-amber-700 font-sans leading-relaxed",children:[jsxRuntimeExports.jsx("strong",{children:"💡 使用提示"}),jsxRuntimeExports.jsx("br",{}),"在任意位置插入一行 ",jsxRuntimeExports.jsx("code",{children:"---"})," 即可分割出一个新的幻灯片(PPT)页面。"]})]}),jsxRuntimeExports.jsxs("div",{className:"flex-1 flex flex-col p-3 min-h-[200px]",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between mb-1.5 px-1",children:[jsxRuntimeExports.jsx("span",{className:"font-bold text-slate-500 text-[10px] uppercase",children:"Markdown Source Code"}),jsxRuntimeExports.jsx("span",{className:"text-[9px] text-slate-400",children:"实时自动同步到所有协同终端"})]}),jsxRuntimeExports.jsx("textarea",{value:c,onChange:D=>ge(D.target.value),placeholder:"在此输入 Markdown 文档。使用 '---' 来作为 PPT 页面分页符...",className:"flex-1 w-full p-3 font-mono text-xs bg-slate-50 border border-slate-200 rounded-lg focus:outline-none focus:ring-1 focus:ring-indigo-500 focus:bg-white transition-all resize-none leading-relaxed text-slate-800"})]})]})]})]})}let _srcDocAttemptCounter=0;function wrapSrcDocWithBridge(e,t){const n={student_id:"teacher_preview",student_name:"Teacher (Preview)",class_id:"",attempt_id:`att_srcdoc_${t}_${Date.now()}_${++_srcDocAttemptCounter}`},a={uuid:t,name:"Whiteboard HTML Applet"};return`<!DOCTYPE html>
8289
+ `),W=[];return D.forEach((ce,he)=>{const ve=ce.match(/^(#{1,3})\s+(.*)$/);ve&&W.push({text:ve[2].trim(),level:ve[1].length,lineIndex:he})}),W})();if(z&&typeof document<"u")return jsxRuntimeExports.jsxs("div",{className:"w-full h-full flex flex-col items-center justify-center bg-slate-900/10 text-slate-400 font-sans p-4",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center gap-2",children:[jsxRuntimeExports.jsx(Presentation,{size:24,className:"text-indigo-500 animate-pulse"}),jsxRuntimeExports.jsx("span",{className:"text-xs",children:"演示文稿正在全屏放映中"})]}),reactDomExports.createPortal(jsxRuntimeExports.jsxs("div",{className:"fixed inset-0 z-[99999] bg-neutral-950 flex flex-col items-center justify-center font-sans p-6",children:[jsxRuntimeExports.jsxs("div",{className:"absolute top-4 left-4 right-4 flex items-center justify-between text-white/80 select-none z-[100001] px-4 py-2 bg-neutral-900/60 backdrop-blur-md rounded-xl border border-neutral-800",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("span",{className:"w-2.5 h-2.5 rounded-full bg-emerald-500 animate-pulse"}),jsxRuntimeExports.jsxs("span",{className:"font-bold text-xs tracking-wider uppercase",children:[F==="md"?"Markdown Slides":`${F.toUpperCase()} Presentation`," ",v&&"(Synced)"]})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-4",children:[jsxRuntimeExports.jsxs("span",{className:"text-xs font-mono text-white/50",children:["Slide ",s+1," / ",Q]}),b&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[F==="md"&&jsxRuntimeExports.jsx("button",{onClick:()=>p(D=>!D),className:`px-2.5 py-1 rounded-md text-[10px] uppercase font-bold tracking-wider transition-colors border cursor-pointer ${u?"bg-emerald-50 border-emerald-400 text-white animate-pulse":"bg-transparent border-neutral-700 text-neutral-400 hover:bg-neutral-850"}`,children:u?"Autoplay Live":"Autoplay"}),jsxRuntimeExports.jsxs("label",{className:"flex items-center gap-1.5 text-xs text-white/70 cursor-pointer",children:[jsxRuntimeExports.jsx("input",{type:"checkbox",checked:E,onChange:D=>we(D.target.checked),className:"rounded border-neutral-700 bg-neutral-800 text-indigo-500 focus:ring-0 focus:ring-offset-0 cursor-pointer"}),jsxRuntimeExports.jsx("span",{children:"同步学生全屏"})]})]}),(!v||!J||!E||w)&&jsxRuntimeExports.jsx("button",{onClick:()=>_e(!1),className:"p-1 px-2.5 bg-red-600 text-white text-xs font-bold rounded-lg transition-colors cursor-pointer border-0 hover:bg-red-700",title:"退出放映",children:"退出放映 (Esc)"})]})]}),jsxRuntimeExports.jsx("div",{className:"w-full flex-1 min-h-0 flex items-center justify-center relative",children:F==="pdf"?jsxRuntimeExports.jsx("div",{className:"w-full h-full flex items-center justify-center p-2 bg-slate-100 max-w-[90vw] max-h-[82vh] aspect-video rounded-2xl overflow-hidden shadow-2xl border border-neutral-850",children:jsxRuntimeExports.jsx("iframe",{src:`${j}#page=${s+1}&toolbar=0&navpanes=0`,className:"w-full h-full border-0 rounded-xl"},`${j}-fs-${s}`)}):F==="pptx"?jsxRuntimeExports.jsx("div",{className:"w-full h-full flex items-center justify-center p-2 bg-slate-900/5 max-w-[90vw] max-h-[82vh] aspect-video rounded-2xl overflow-hidden shadow-2xl border border-neutral-850",children:jsxRuntimeExports.jsx("div",{ref:oe,className:"w-full h-full overflow-auto rounded-xl bg-white border border-slate-100 shadow-md flex items-center justify-center"})}):jsxRuntimeExports.jsx("div",{className:"flex-1 w-full flex items-center justify-center max-w-[90vw] min-h-0",children:jsxRuntimeExports.jsxs("div",{className:"w-full bg-white rounded-xl shadow-md border border-slate-100 flex flex-col overflow-y-auto p-6 md:p-8 aspect-video relative transition-all duration-300 hover:shadow-lg max-h-[82vh] max-w-none p-12 md:p-16 border-neutral-850 rounded-3xl shadow-2xl",children:[jsxRuntimeExports.jsxs("div",{className:"flex justify-between items-center text-[10px] font-semibold text-slate-400 border-b border-slate-100 pb-2 mb-4 shrink-0",children:[jsxRuntimeExports.jsx("span",{className:"tracking-wide uppercase text-indigo-650",children:"SMART CLASS SLIDE DECK"}),jsxRuntimeExports.jsxs("span",{className:"font-mono",children:["SLIDE ",s+1," / ",Q]})]}),jsxRuntimeExports.jsx("div",{className:"flex-1 min-h-0 overflow-y-auto pr-1",children:jsxRuntimeExports.jsx("div",{className:"markdown-body text-slate-800 leading-relaxed font-sans prose prose-neutral max-w-none text-xs",children:A[s]?jsxRuntimeExports.jsx(Markdown,{children:A[s]}):jsxRuntimeExports.jsx("div",{className:"text-center text-slate-400 italic py-8",children:"幻灯片没有内容,请在“编辑文档”中添加。"})})}),jsxRuntimeExports.jsxs("div",{className:"mt-4 pt-2 border-t border-slate-50 flex items-center justify-between text-[10px] text-slate-400 shrink-0 font-sans",children:[jsxRuntimeExports.jsx("span",{children:"智慧互动教室白板演示系统"}),jsxRuntimeExports.jsxs("span",{children:["Page ",s+1]})]})]})})}),!(v&&E&&J)&&jsxRuntimeExports.jsxs("div",{className:"absolute bottom-6 bg-neutral-900/80 backdrop-blur-md px-6 py-2.5 rounded-full border border-neutral-800 shadow-2xl z-[100001]",children:[jsxRuntimeExports.jsx("button",{disabled:s===0||v,onClick:()=>se(s-1),className:`p-1.5 rounded-full border transition-colors cursor-pointer ${s===0||v?"border-neutral-800 text-neutral-600 bg-neutral-950/20 cursor-not-allowed":"border-neutral-700 text-neutral-300 hover:bg-neutral-800"}`,title:"上一张 (ArrowLeft)",children:jsxRuntimeExports.jsx(ChevronLeft,{size:18})}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1.5 px-1 font-mono text-xs text-neutral-200",children:[jsxRuntimeExports.jsx("span",{className:"font-bold text-white text-base",children:s+1}),jsxRuntimeExports.jsx("span",{className:"text-neutral-600",children:"/"}),jsxRuntimeExports.jsx("span",{children:Q})]}),jsxRuntimeExports.jsx("button",{disabled:s>=Q-1||v,onClick:()=>se(s+1),className:`p-1.5 rounded-full border transition-colors cursor-pointer ${s>=Q-1||v?"border-neutral-800 text-neutral-600 bg-neutral-950/20 cursor-not-allowed":"border-neutral-700 text-neutral-300 hover:bg-neutral-800"}`,title:"下一张 (ArrowRight)",children:jsxRuntimeExports.jsx(ChevronRight,{size:18})})]})]}),document.body)]});const le=z?"fixed inset-0 z-[99999] bg-neutral-950 flex flex-col items-center justify-center font-sans p-6":"flex-1 flex flex-col items-center justify-between p-4 bg-slate-900/5 relative min-w-0";return jsxRuntimeExports.jsxs("div",{className:"w-full h-full flex flex-col bg-slate-50 text-slate-800 overflow-hidden text-xs relative font-sans",children:[!z&&jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between px-3 py-1.5 bg-slate-100 border-b border-slate-200 shrink-0 select-none relative z-10",children:[jsxRuntimeExports.jsx("div",{className:"flex items-center gap-1",children:F==="md"?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("button",{onClick:()=>i("ppt"),className:`px-2 py-1 rounded flex items-center gap-1 font-medium transition-colors cursor-pointer ${a==="ppt"?"bg-indigo-600 text-white shadow-sm":"text-slate-600 hover:bg-slate-200"}`,title:"播放课件幻灯片 (PPT Mode)",children:[jsxRuntimeExports.jsx(Play,{size:11}),jsxRuntimeExports.jsx("span",{children:"PPT 播放"})]}),jsxRuntimeExports.jsxs("button",{onClick:()=>i("doc"),className:`px-2 py-1 rounded flex items-center gap-1 font-medium transition-colors cursor-pointer ${a==="doc"?"bg-indigo-600 text-white shadow-sm":"text-slate-600 hover:bg-slate-200"}`,title:"以精美文档形式阅读 (Markdown Document mode)",children:[jsxRuntimeExports.jsx(BookOpen,{size:11}),jsxRuntimeExports.jsx("span",{children:"文档阅读"})]}),jsxRuntimeExports.jsxs("button",{onClick:()=>i("edit"),className:`px-2 py-1 rounded flex items-center gap-1 font-medium transition-colors cursor-pointer ${a==="edit"?"bg-indigo-600 text-white shadow-sm":"text-slate-600 hover:bg-slate-200"}`,title:"在线编辑 Markdown 内容",children:[jsxRuntimeExports.jsx(PenLine,{size:11}),jsxRuntimeExports.jsx("span",{children:"编辑文档"})]})]}):jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1 bg-indigo-50 border border-indigo-200/50 text-indigo-700 px-2 py-0.5 rounded text-[10px] font-semibold",children:[jsxRuntimeExports.jsx(Presentation,{size:10}),jsxRuntimeExports.jsxs("span",{children:[F.toUpperCase()," 课件演示中"]})]})}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[b&&jsxRuntimeExports.jsx("div",{className:"flex items-center gap-1.5 border-r border-slate-200 pr-3",children:K?jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-slate-500 font-medium",children:[jsxRuntimeExports.jsx(LoaderCircle,{size:10,className:"animate-spin"}),jsxRuntimeExports.jsx("span",{children:"上传解析中..."})]}):C?jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1.5 bg-slate-200/50 pl-2 pr-1.5 py-0.5 rounded border border-slate-300/30",children:[jsxRuntimeExports.jsx("span",{className:"text-[10px] font-medium text-slate-600 max-w-[120px] truncate font-mono",title:U,children:U}),jsxRuntimeExports.jsx("button",{onClick:m,className:"p-0.5 hover:bg-slate-300 rounded text-red-500 cursor-pointer border-0 bg-transparent",title:"清除并切换回 Markdown",children:jsxRuntimeExports.jsx(Trash2,{size:10})})]}):jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("button",{onClick:()=>ee.current?.click(),className:"px-2 py-1 rounded bg-indigo-50 border border-indigo-200 text-indigo-700 hover:bg-indigo-100 flex items-center gap-1 font-semibold text-[10px] cursor-pointer",title:"上传 PPTX 或 PDF 课件",children:[jsxRuntimeExports.jsx(Upload,{size:10}),jsxRuntimeExports.jsx("span",{children:"上传课件"})]}),jsxRuntimeExports.jsx("input",{type:"file",ref:ee,onChange:be,accept:".pdf,.pptx",className:"hidden"})]})}),a==="ppt"&&F==="md"&&jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1.5",children:[jsxRuntimeExports.jsxs("button",{onClick:()=>p(D=>!D),className:`p-1 rounded flex items-center gap-1 font-semibold text-[10px] transition-colors border cursor-pointer ${u?"bg-emerald-50 border-emerald-300 text-emerald-700":"bg-white border-slate-200 text-slate-500 hover:bg-slate-50"}`,title:"开启/关闭幻灯片自动播放",children:[u?jsxRuntimeExports.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-emerald-500 animate-ping"}):null,jsxRuntimeExports.jsx("span",{children:u?"自动播放中":"自动播放"})]}),u&&jsxRuntimeExports.jsxs("select",{value:g,onChange:D=>k(Number(D.target.value)),className:"bg-white border border-slate-200 rounded px-1 text-[10px] py-0.5 text-slate-700 font-medium",children:[jsxRuntimeExports.jsx("option",{value:2,children:"2秒"}),jsxRuntimeExports.jsx("option",{value:4,children:"4秒"}),jsxRuntimeExports.jsx("option",{value:6,children:"6秒"}),jsxRuntimeExports.jsx("option",{value:10,children:"10秒"})]})]}),b&&a==="ppt"&&jsxRuntimeExports.jsxs("label",{className:"flex items-center gap-1 text-[10px] text-slate-500 font-medium cursor-pointer",children:[jsxRuntimeExports.jsx("input",{type:"checkbox",checked:E,onChange:D=>we(D.target.checked),className:"rounded border-slate-300 text-indigo-650 focus:ring-0 focus:ring-offset-0 cursor-pointer"}),jsxRuntimeExports.jsx("span",{children:"同步学生全屏"})]}),a==="ppt"&&(!v||!(E&&J))&&jsxRuntimeExports.jsx("button",{onClick:()=>_e(!0),className:"p-1 rounded-lg text-slate-655 hover:bg-slate-200 border border-slate-200 bg-white transition-colors cursor-pointer",title:"全屏放映",children:jsxRuntimeExports.jsx(Maximize2,{size:11})})]})]}),jsxRuntimeExports.jsxs("div",{className:"flex-1 min-h-0 relative flex flex-row overflow-hidden",children:[a==="ppt"&&jsxRuntimeExports.jsxs("div",{className:le,children:[z&&jsxRuntimeExports.jsxs("div",{className:"absolute top-4 left-4 right-4 flex items-center justify-between text-white/80 select-none z-[100001] px-4 py-2 bg-neutral-900/60 backdrop-blur-md rounded-xl border border-neutral-800",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("span",{className:"w-2.5 h-2.5 rounded-full bg-emerald-500 animate-pulse"}),jsxRuntimeExports.jsxs("span",{className:"font-bold text-xs tracking-wider uppercase",children:[F==="md"?"Markdown Slides":`${F.toUpperCase()} Presentation`," ",v&&"(Synced)"]})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-4",children:[jsxRuntimeExports.jsxs("span",{className:"text-xs font-mono text-white/50",children:["Slide ",s+1," / ",Q]}),b&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[F==="md"&&jsxRuntimeExports.jsx("button",{onClick:()=>p(D=>!D),className:`px-2.5 py-1 rounded-md text-[10px] uppercase font-bold tracking-wider transition-colors border cursor-pointer ${u?"bg-emerald-50 border-emerald-400 text-white animate-pulse":"bg-transparent border-neutral-700 text-neutral-400 hover:bg-neutral-850"}`,children:u?"Autoplay Live":"Autoplay"}),jsxRuntimeExports.jsxs("label",{className:"flex items-center gap-1.5 text-xs text-white/70 cursor-pointer",children:[jsxRuntimeExports.jsx("input",{type:"checkbox",checked:E,onChange:D=>we(D.target.checked),className:"rounded border-neutral-700 bg-neutral-800 text-indigo-500 focus:ring-0 focus:ring-offset-0 cursor-pointer"}),jsxRuntimeExports.jsx("span",{children:"同步学生全屏"})]}),jsxRuntimeExports.jsx("button",{onClick:()=>_e(!1),className:"p-1 px-2.5 bg-red-655 text-white text-xs font-bold rounded-md transition-colors cursor-pointer border-0",title:"退出放映",children:"退出放映 (Esc)"})]})]})]}),jsxRuntimeExports.jsx("div",{className:"w-full flex-1 min-h-0 flex items-center justify-center relative",children:F==="pdf"?jsxRuntimeExports.jsx("div",{className:`w-full h-full flex items-center justify-center p-2 bg-slate-100 ${z?"max-w-5xl aspect-video rounded-2xl overflow-hidden shadow-2xl border border-neutral-850":""}`,children:jsxRuntimeExports.jsx("iframe",{src:`${j}#page=${s+1}&toolbar=0&navpanes=0`,className:"w-full h-full border-0 rounded-xl"},`${j}-${z?"fs":"card"}-${s}`)}):F==="pptx"?jsxRuntimeExports.jsx("div",{className:`w-full h-full flex items-center justify-center p-2 bg-slate-900/5 ${z?"max-w-5xl aspect-video rounded-2xl overflow-hidden shadow-2xl border border-neutral-850":""}`,children:jsxRuntimeExports.jsx("div",{ref:oe,className:"w-full h-full overflow-auto rounded-xl bg-white border border-slate-100 shadow-md flex items-center justify-center"})}):jsxRuntimeExports.jsx("div",{className:"flex-1 w-full flex items-center justify-center max-w-2xl min-h-0",children:jsxRuntimeExports.jsxs("div",{className:`w-full bg-white rounded-xl shadow-md border border-slate-100 flex flex-col overflow-y-auto p-6 md:p-8 aspect-video relative transition-all duration-300 hover:shadow-lg max-h-full ${z?"max-w-4xl p-12 md:p-16 border-neutral-850 rounded-3xl shadow-2xl":""}`,children:[jsxRuntimeExports.jsxs("div",{className:"flex justify-between items-center text-[10px] font-semibold text-slate-400 border-b border-slate-100 pb-2 mb-4 shrink-0",children:[jsxRuntimeExports.jsx("span",{className:"tracking-wide uppercase text-indigo-650",children:"SMART CLASS SLIDE DECK"}),jsxRuntimeExports.jsxs("span",{className:"font-mono",children:["SLIDE ",s+1," / ",Q]})]}),jsxRuntimeExports.jsx("div",{className:"flex-1 min-h-0 overflow-y-auto pr-1",children:jsxRuntimeExports.jsx("div",{className:"markdown-body text-slate-800 leading-relaxed font-sans prose prose-neutral max-w-none text-xs",children:A[s]?jsxRuntimeExports.jsx(Markdown,{children:A[s]}):jsxRuntimeExports.jsx("div",{className:"text-center text-slate-400 italic py-8",children:"幻灯片没有内容,请在“编辑文档”中添加。"})})}),jsxRuntimeExports.jsxs("div",{className:"mt-4 pt-2 border-t border-slate-50 flex items-center justify-between text-[10px] text-slate-400 shrink-0 font-sans",children:[jsxRuntimeExports.jsx("span",{children:"智慧互动教室白板演示系统"}),jsxRuntimeExports.jsxs("span",{children:["Page ",s+1]})]})]})})}),!(v&&E&&J)&&jsxRuntimeExports.jsxs("div",{className:`mt-4 flex items-center justify-center gap-3 select-none shrink-0 ${z?"absolute bottom-6 bg-neutral-900/80 backdrop-blur-md px-6 py-2.5 rounded-full border border-neutral-800 shadow-2xl z-[100001]":"bg-white px-4 py-2 rounded-full border border-slate-200/80 shadow-md relative z-10"}`,children:[jsxRuntimeExports.jsx("button",{disabled:s===0||v&&E&&J,onClick:()=>se(s-1),className:`p-1.5 rounded-full border transition-colors cursor-pointer ${s===0||v&&E&&J?z?"border-neutral-800 text-neutral-600 bg-neutral-950/20 cursor-not-allowed":"border-slate-100 bg-slate-50 text-slate-300 cursor-not-allowed":z?"border-neutral-700 text-neutral-300 hover:bg-neutral-800":"border-slate-205 text-slate-655 hover:bg-slate-50"}`,title:"上一张 (ArrowLeft)",children:jsxRuntimeExports.jsx(ChevronLeft,{size:z?18:14})}),jsxRuntimeExports.jsxs("div",{className:`flex items-center gap-1.5 px-1 font-mono text-xs ${z?"text-neutral-200":"text-slate-700"}`,children:[jsxRuntimeExports.jsx("span",{className:`font-bold ${z?"text-white text-base":"text-slate-900"}`,children:s+1}),jsxRuntimeExports.jsx("span",{className:z?"text-neutral-600":"text-slate-350",children:"/"}),jsxRuntimeExports.jsx("span",{children:Q})]}),jsxRuntimeExports.jsx("button",{disabled:s>=Q-1||v&&E&&J,onClick:()=>se(s+1),className:`p-1.5 rounded-full border transition-colors cursor-pointer ${s>=Q-1||v&&E&&J?z?"border-neutral-800 text-neutral-600 bg-neutral-950/20 cursor-not-allowed":"border-slate-100 bg-slate-50 text-slate-300 cursor-not-allowed":z?"border-neutral-700 text-neutral-300 hover:bg-neutral-800":"border-slate-205 text-slate-655 hover:bg-slate-50"}`,title:"下一张 (ArrowRight)",children:jsxRuntimeExports.jsx(ChevronRight,{size:z?18:14})})]})]}),a==="doc"&&F==="md"&&jsxRuntimeExports.jsxs("div",{className:"flex-1 flex flex-row min-h-0 bg-white",children:[ie.length>0&&jsxRuntimeExports.jsxs("div",{className:"w-1/4 min-w-[120px] max-w-[200px] border-r border-slate-200 bg-slate-50/50 flex flex-col py-3 px-2 overflow-y-auto shrink-0 select-none",children:[jsxRuntimeExports.jsxs("span",{className:"text-[10px] font-bold text-slate-400 uppercase tracking-widest px-2 mb-2 flex items-center gap-1",children:[jsxRuntimeExports.jsx(FileText,{size:10}),"文档大纲"]}),jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-0.5",children:ie.map((D,W)=>jsxRuntimeExports.jsx("button",{onClick:()=>{const ce=q.current?.querySelector(`[data-line-index="${D.lineIndex}"]`);ce&&ce.scrollIntoView({behavior:"smooth",block:"start"})},className:"text-left text-[11px] py-1 px-2 rounded hover:bg-slate-100 text-slate-600 hover:text-slate-900 truncate cursor-pointer font-medium whitespace-nowrap border-0 bg-transparent",style:{paddingLeft:`${Math.max(8,D.level*6)}px`},title:D.text,children:D.text},W))})]}),jsxRuntimeExports.jsx("div",{className:"flex-1 min-h-0 overflow-y-auto p-6 md:p-8",ref:q,children:jsxRuntimeExports.jsx("div",{className:"markdown-body prose prose-neutral max-w-none text-xs leading-relaxed text-slate-700",children:c.split(`
8290
+ `).map((D,W)=>{const ce=D.match(/^(#{1,3})\s+(.*)$/);if(ce){const he=ce[1].length,ve=ce[2].trim(),ue=he===1?"h1":he===2?"h2":"h3",Re=he===1?"text-lg font-bold text-indigo-900 border-b pb-1 mt-4 mb-2":he===2?"text-base font-bold text-slate-800 mt-3 mb-1.5":"text-sm font-semibold text-slate-700 mt-2 mb-1";return jsxRuntimeExports.jsx(ue,{"data-line-index":W,className:Re,children:ve},W)}return D.trim()==="---"?jsxRuntimeExports.jsx("hr",{className:"my-4 border-slate-200"},W):jsxRuntimeExports.jsx("p",{className:"my-1.5 text-slate-600 antialiased leading-relaxed",children:D},W)})})})]}),a==="edit"&&F==="md"&&jsxRuntimeExports.jsxs("div",{className:"flex-1 flex flex-col md:flex-row min-h-0 bg-white",children:[jsxRuntimeExports.jsxs("div",{className:"w-full md:w-1/3 border-b md:border-b-0 md:border-r border-slate-100 bg-slate-50/40 p-3 flex flex-col overflow-y-auto shrink-0 select-none",children:[jsxRuntimeExports.jsxs("span",{className:"text-[10px] font-bold text-slate-400 tracking-wider uppercase mb-2 flex items-center gap-1",children:[jsxRuntimeExports.jsx(WandSparkles,{size:10,className:"text-indigo-650"}),"推荐课件及文档模板"]}),jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-2",children:f.map((D,W)=>jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>{window.confirm(`确定要加载模板 “${D.name}” 吗?这将会覆盖当前白板课件中的所有编辑内容。`)&&(ge(D.content),h(0))},className:"w-full text-left p-2.5 rounded-lg border border-slate-200 bg-white hover:border-indigo-300 hover:shadow-sm transition-all focus:outline-none cursor-pointer group",children:[jsxRuntimeExports.jsx("div",{className:"font-bold text-[11px] text-slate-800 group-hover:text-indigo-700 whitespace-nowrap overflow-hidden text-ellipsis",children:D.name}),jsxRuntimeExports.jsx("div",{className:"text-[9px] text-slate-400 mt-0.5",children:D.desc})]},W))}),jsxRuntimeExports.jsxs("div",{className:"mt-4 p-2 bg-amber-50 rounded border border-amber-100 text-[10px] text-amber-700 font-sans leading-relaxed",children:[jsxRuntimeExports.jsx("strong",{children:"💡 使用提示"}),jsxRuntimeExports.jsx("br",{}),"在任意位置插入一行 ",jsxRuntimeExports.jsx("code",{children:"---"})," 即可分割出一个新的幻灯片(PPT)页面。"]})]}),jsxRuntimeExports.jsxs("div",{className:"flex-1 flex flex-col p-3 min-h-[200px]",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between mb-1.5 px-1",children:[jsxRuntimeExports.jsx("span",{className:"font-bold text-slate-500 text-[10px] uppercase",children:"Markdown Source Code"}),jsxRuntimeExports.jsx("span",{className:"text-[9px] text-slate-400",children:"实时自动同步到所有协同终端"})]}),jsxRuntimeExports.jsx("textarea",{value:c,onChange:D=>ge(D.target.value),placeholder:"在此输入 Markdown 文档。使用 '---' 来作为 PPT 页面分页符...",className:"flex-1 w-full p-3 font-mono text-xs bg-slate-50 border border-slate-200 rounded-lg focus:outline-none focus:ring-1 focus:ring-indigo-500 focus:bg-white transition-all resize-none leading-relaxed text-slate-800"})]})]})]})]})}let _srcDocAttemptCounter=0;function wrapSrcDocWithBridge(e,t){const n={student_id:"teacher_preview",student_name:"Teacher (Preview)",class_id:"",attempt_id:`att_srcdoc_${t}_${Date.now()}_${++_srcDocAttemptCounter}`},a={uuid:t,name:"Whiteboard HTML Applet"};return`<!DOCTYPE html>
8291
8291
  <html><head>
8292
8292
  <script>
8293
8293
  window.__LMS_STUDENT__ = ${JSON.stringify(n)};
@@ -8327,17 +8327,17 @@ The teacher used the virtual whiteboard to ___ classroom active learning slides.
8327
8327
  <script src="/bridge.js"><\/script>
8328
8328
  </head><body>
8329
8329
  ${e||""}
8330
- </body></html>`}const WhiteboardToolbar=({tool:e,setTool:t,setSelectedShapeId:o,highlighterColor:n,setHighlighterColor:a,onElementAdd:i,currentPage:c,activeSegmentId:r,lessonId:s,safeElements:h,selectedShapeId:u,showGrid:p,setShowGrid:g,userRole:k="teacher",isSyncing:w,setIsSyncing:S,handleClearBoard:R,handleResetBoard:C,handleElementDelete:v,setDialog:j,setDialogInput:F,onRefresh:U})=>jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-start gap-1.5 px-3 py-1.5 bg-white border-b border-slate-200 shrink-0 font-sans select-none",children:[jsxRuntimeExports.jsx("button",{onClick:()=>{t("cursor"),o(null)},className:`p-1.5 rounded-xl transition-all cursor-pointer ${e==="cursor"?"bg-indigo-600 text-white shadow-2xs":"text-slate-600 hover:bg-slate-100"}`,title:"选择工具 (Pointer / Selector)",children:jsxRuntimeExports.jsx(MousePointer2,{size:16})}),jsxRuntimeExports.jsx("div",{className:"w-px h-4 bg-slate-200/80 mx-0.5"}),jsxRuntimeExports.jsx("button",{onClick:()=>t("pen"),className:`p-1.5 rounded-xl transition-all cursor-pointer ${e==="pen"?"bg-indigo-600 text-white shadow-2xs":"text-slate-600 hover:bg-slate-100"}`,title:"画笔工具 (Pen)",children:jsxRuntimeExports.jsx(PenTool,{size:16})}),jsxRuntimeExports.jsx("button",{onClick:()=>t("highlighter"),className:`p-1.5 rounded-xl transition-all cursor-pointer ${e==="highlighter"?"bg-amber-500 text-white shadow-2xs":"text-slate-600 hover:bg-slate-100"}`,title:"荧光高亮笔 (Highlighter)",children:jsxRuntimeExports.jsx(Highlighter,{size:16})}),e==="highlighter"&&jsxRuntimeExports.jsx("div",{className:"flex items-center gap-1 bg-slate-100 p-1 rounded-xl border border-slate-200 animate-in zoom-in-95 duration-150",children:[{hex:"#facc15",label:"Yellow"},{hex:"#4ade80",label:"Green"},{hex:"#f472b6",label:"Pink"},{hex:"#60a5fa",label:"Blue"}].map(b=>jsxRuntimeExports.jsx("button",{onClick:()=>a(b.hex),className:`w-3.5 h-3.5 rounded-full border transition-all ${n===b.hex?"ring-2 ring-indigo-500 scale-110 border-white":"border-transparent"}`,style:{backgroundColor:b.hex},title:b.label},b.hex))}),jsxRuntimeExports.jsx("div",{className:"w-px h-4 bg-slate-200/80 mx-0.5"}),jsxRuntimeExports.jsx("button",{onClick:()=>t("rect"),className:`p-1.5 rounded-xl transition-all cursor-pointer ${e==="rect"?"bg-indigo-600 text-white shadow-2xs":"text-slate-600 hover:bg-slate-100"}`,title:"矩形工具 (Rectangle)",children:jsxRuntimeExports.jsx(Square,{size:16})}),jsxRuntimeExports.jsx("button",{onClick:()=>t("circle"),className:`p-1.5 rounded-xl transition-all cursor-pointer ${e==="circle"?"bg-indigo-600 text-white shadow-2xs":"text-slate-600 hover:bg-slate-100"}`,title:"圆形工具 (Circle)",children:jsxRuntimeExports.jsx(Circle,{size:16})}),jsxRuntimeExports.jsx("button",{onClick:()=>t("text"),className:`p-1.5 rounded-xl transition-all cursor-pointer ${e==="text"?"bg-indigo-600 text-white shadow-2xs":"text-slate-600 hover:bg-slate-100"}`,title:"文本工具 (Text)",children:jsxRuntimeExports.jsx(Type,{size:16})}),jsxRuntimeExports.jsx("div",{className:"w-px h-4 bg-slate-200/80 mx-0.5"}),jsxRuntimeExports.jsx("button",{onClick:()=>{F(`# Title Slide
8330
+ </body></html>`}const WhiteboardToolbar=({tool:e,setTool:t,setSelectedShapeId:o,highlighterColor:n,setHighlighterColor:a,onElementAdd:i,currentPage:c,activeSegmentId:r,lessonId:s,safeElements:h,selectedShapeId:u,showGrid:p,setShowGrid:g,userRole:k="teacher",isSyncing:w,setIsSyncing:N,handleClearBoard:q,handleResetBoard:b,handleElementDelete:v,setDialog:j,setDialogInput:F,onRefresh:U})=>jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-start gap-1.5 px-3 py-1.5 bg-white border-b border-slate-200 shrink-0 font-sans select-none",children:[jsxRuntimeExports.jsx("button",{onClick:()=>{t("cursor"),o(null)},className:`p-1.5 rounded-xl transition-all cursor-pointer ${e==="cursor"?"bg-indigo-600 text-white shadow-2xs":"text-slate-600 hover:bg-slate-100"}`,title:"选择工具 (Pointer / Selector)",children:jsxRuntimeExports.jsx(MousePointer2,{size:16})}),jsxRuntimeExports.jsx("div",{className:"w-px h-4 bg-slate-200/80 mx-0.5"}),jsxRuntimeExports.jsx("button",{onClick:()=>t("pen"),className:`p-1.5 rounded-xl transition-all cursor-pointer ${e==="pen"?"bg-indigo-600 text-white shadow-2xs":"text-slate-600 hover:bg-slate-100"}`,title:"画笔工具 (Pen)",children:jsxRuntimeExports.jsx(PenTool,{size:16})}),jsxRuntimeExports.jsx("button",{onClick:()=>t("highlighter"),className:`p-1.5 rounded-xl transition-all cursor-pointer ${e==="highlighter"?"bg-amber-500 text-white shadow-2xs":"text-slate-600 hover:bg-slate-100"}`,title:"荧光高亮笔 (Highlighter)",children:jsxRuntimeExports.jsx(Highlighter,{size:16})}),e==="highlighter"&&jsxRuntimeExports.jsx("div",{className:"flex items-center gap-1 bg-slate-100 p-1 rounded-xl border border-slate-200 animate-in zoom-in-95 duration-150",children:[{hex:"#facc15",label:"Yellow"},{hex:"#4ade80",label:"Green"},{hex:"#f472b6",label:"Pink"},{hex:"#60a5fa",label:"Blue"}].map(C=>jsxRuntimeExports.jsx("button",{onClick:()=>a(C.hex),className:`w-3.5 h-3.5 rounded-full border transition-all ${n===C.hex?"ring-2 ring-indigo-500 scale-110 border-white":"border-transparent"}`,style:{backgroundColor:C.hex},title:C.label},C.hex))}),jsxRuntimeExports.jsx("div",{className:"w-px h-4 bg-slate-200/80 mx-0.5"}),jsxRuntimeExports.jsx("button",{onClick:()=>t("rect"),className:`p-1.5 rounded-xl transition-all cursor-pointer ${e==="rect"?"bg-indigo-600 text-white shadow-2xs":"text-slate-600 hover:bg-slate-100"}`,title:"矩形工具 (Rectangle)",children:jsxRuntimeExports.jsx(Square,{size:16})}),jsxRuntimeExports.jsx("button",{onClick:()=>t("circle"),className:`p-1.5 rounded-xl transition-all cursor-pointer ${e==="circle"?"bg-indigo-600 text-white shadow-2xs":"text-slate-600 hover:bg-slate-100"}`,title:"圆形工具 (Circle)",children:jsxRuntimeExports.jsx(Circle,{size:16})}),jsxRuntimeExports.jsx("button",{onClick:()=>t("text"),className:`p-1.5 rounded-xl transition-all cursor-pointer ${e==="text"?"bg-indigo-600 text-white shadow-2xs":"text-slate-600 hover:bg-slate-100"}`,title:"文本工具 (Text)",children:jsxRuntimeExports.jsx(Type,{size:16})}),jsxRuntimeExports.jsx("div",{className:"w-px h-4 bg-slate-200/80 mx-0.5"}),jsxRuntimeExports.jsx("button",{onClick:()=>{F(`# Title Slide
8331
8331
  ---
8332
8332
  ## Slide 2`),j({type:"prompt",title:"添加演示文稿",message:"请输入演示文稿的 Markdown 内容 (使用 --- 拆分新幻灯片):",placeholder:`# Title Slide
8333
8333
  ---
8334
- ## Slide 2`,onConfirm:async b=>{const K=b||`# Title Slide
8334
+ ## Slide 2`,onConfirm:async C=>{const K=C||`# Title Slide
8335
8335
  ---
8336
- ## Slide 2`;S(!0);try{await i("presentation",{markdown:K,x:50,y:50,width:600,height:400,slideX:0,slideY:0,page:c,segmentId:r}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:s},timestamp:Date.now(),correlationId:s})}finally{S(!1),j(null)}}})},className:"p-1.5 rounded-xl text-slate-600 hover:bg-slate-100 transition-all cursor-pointer",title:"插入演示幻灯片 (Presentation)",children:jsxRuntimeExports.jsx(Presentation,{size:16})}),jsxRuntimeExports.jsx("button",{onClick:async()=>{S(!0);try{await i("code-sandbox",{code:"console.log('Hello Sandbox!');",x:100,y:100,page:c,segmentId:r}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:s},timestamp:Date.now(),correlationId:s})}finally{S(!1)}},className:"p-1.5 rounded-xl text-slate-600 hover:bg-slate-100 transition-all cursor-pointer",title:"插入代码沙箱 (Code Sandbox)",children:jsxRuntimeExports.jsx(Terminal,{size:16})}),jsxRuntimeExports.jsx("button",{onClick:async()=>{S(!0);try{await i("math-graph",{equation:"Math.sin(x)",x:100,y:150,page:c,segmentId:r}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:s},timestamp:Date.now(),correlationId:s})}finally{S(!1)}},className:"p-1.5 rounded-xl text-slate-600 hover:bg-slate-100 transition-all cursor-pointer",title:"插入数学函数图表 (Math Graph)",children:jsxRuntimeExports.jsx(Activity,{size:16})}),jsxRuntimeExports.jsx("button",{onClick:async()=>{S(!0);try{await i("html-applet",{code:`<!-- Interactive Web Courseware -->
8336
+ ## Slide 2`;N(!0);try{await i("presentation",{markdown:K,x:50,y:50,width:600,height:400,slideX:0,slideY:0,page:c,segmentId:r}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:s},timestamp:Date.now(),correlationId:s})}finally{N(!1),j(null)}}})},className:"p-1.5 rounded-xl text-slate-600 hover:bg-slate-100 transition-all cursor-pointer",title:"插入演示幻灯片 (Presentation)",children:jsxRuntimeExports.jsx(Presentation,{size:16})}),jsxRuntimeExports.jsx("button",{onClick:async()=>{N(!0);try{await i("code-sandbox",{code:"console.log('Hello Sandbox!');",x:100,y:100,page:c,segmentId:r}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:s},timestamp:Date.now(),correlationId:s})}finally{N(!1)}},className:"p-1.5 rounded-xl text-slate-600 hover:bg-slate-100 transition-all cursor-pointer",title:"插入代码沙箱 (Code Sandbox)",children:jsxRuntimeExports.jsx(Terminal,{size:16})}),jsxRuntimeExports.jsx("button",{onClick:async()=>{N(!0);try{await i("math-graph",{equation:"Math.sin(x)",x:100,y:150,page:c,segmentId:r}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:s},timestamp:Date.now(),correlationId:s})}finally{N(!1)}},className:"p-1.5 rounded-xl text-slate-600 hover:bg-slate-100 transition-all cursor-pointer",title:"插入数学函数图表 (Math Graph)",children:jsxRuntimeExports.jsx(Activity,{size:16})}),jsxRuntimeExports.jsx("button",{onClick:async()=>{N(!0);try{await i("html-applet",{code:`<!-- Interactive Web Courseware -->
8337
8337
  <div style='padding:20px; text-align:center;'>
8338
8338
  <h2>Interactive Web Courseware</h2>
8339
8339
  <p>可在右侧属性栏中选择本地 ZIP/HTML 部署包。</p>
8340
- </div>`,x:100,y:150,page:c,segmentId:r}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:s},timestamp:Date.now(),correlationId:s})}finally{S(!1)}},className:"p-1.5 rounded-xl text-slate-600 hover:bg-slate-100 transition-all cursor-pointer",title:"插入交互网页课件 (Interactive Courseware)",children:jsxRuntimeExports.jsx(Globe,{size:16})}),jsxRuntimeExports.jsx("div",{className:"w-px h-4 bg-slate-200/80 mx-0.5"}),jsxRuntimeExports.jsx("button",{onClick:async()=>{S(!0);try{await i("rollcall",{title:"随机点名助手",x:120,y:120,page:c,segmentId:r}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:s},timestamp:Date.now(),correlationId:s})}finally{S(!1)}},className:"p-1.5 rounded-xl text-indigo-600 hover:bg-indigo-50 transition-all cursor-pointer flex items-center gap-1 text-xs font-semibold",title:"插入随机点名组件 (Roll Call)",children:jsxRuntimeExports.jsx(UserCheck,{size:15})}),jsxRuntimeExports.jsx("div",{className:"w-px h-4 bg-slate-200/80 mx-0.5"}),jsxRuntimeExports.jsx(ExtensionPointRenderer,{slot:"classroom.tool"}),jsxRuntimeExports.jsx("button",{onClick:async()=>{S(!0);try{(await fetch(`/api/lessons/${s}/ai-tutor`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({elements:h.map(K=>({type:K.type,data:JSON.parse(K.data)}))})})).ok?(frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:s},timestamp:Date.now(),correlationId:s}),U&&U()):j({type:"alert",title:"AI 辅导提示",message:"无法获取 AI 授课助手的帮助,请稍后再试。",onConfirm:()=>j(null)})}finally{S(!1)}},className:"p-1.5 rounded-xl text-purple-600 hover:bg-purple-50 transition-all cursor-pointer",title:"请求 AI 助教建议 (Ask AI Tutor)",children:jsxRuntimeExports.jsx(WandSparkles,{size:16})}),jsxRuntimeExports.jsx("div",{className:"w-px h-4 bg-slate-200/80 mx-0.5"}),jsxRuntimeExports.jsx("button",{onClick:()=>g(b=>!b),className:`p-1.5 rounded-xl transition-all cursor-pointer ${p?"text-indigo-600 bg-indigo-50/80":"text-slate-400 hover:bg-slate-100"}`,title:p?"关闭网格背景":"开启网格背景",children:jsxRuntimeExports.jsx(Grid3x3,{size:16})}),u&&jsxRuntimeExports.jsxs("button",{onClick:()=>{v(u),o(null)},className:"px-2 py-1 rounded-xl text-rose-600 bg-rose-50 hover:bg-rose-100 border border-rose-200/80 shadow-2xs font-semibold flex items-center gap-1 text-xs transition-all cursor-pointer",title:"删除选中图形",children:[jsxRuntimeExports.jsx(Trash2,{size:13})," 删除"]}),k!=="student"?jsxRuntimeExports.jsx("button",{onClick:R,className:"p-1.5 rounded-xl text-slate-500 hover:text-rose-600 hover:bg-rose-50 transition-all cursor-pointer",title:"清空白板 (Clear Board)",children:jsxRuntimeExports.jsx(Eraser,{size:16})}):jsxRuntimeExports.jsx("button",{onClick:C,className:"p-1.5 rounded-xl text-slate-500 hover:text-amber-600 hover:bg-amber-50 transition-all cursor-pointer",title:"重置白板 (Reset Board)",children:jsxRuntimeExports.jsx(RotateCcw,{size:16})}),w&&jsxRuntimeExports.jsx(LoaderCircle,{size:15,className:"text-indigo-500 animate-spin ml-1"})]}),WhiteboardPageBar=({pages:e,currentPage:t,showPageDrawer:o,setShowPageDrawer:n,editingPageIdx:a,setEditingPageIdx:i,editingPageTitle:c,setEditingPageTitle:r,activeMenuPageIdx:s,setActiveMenuPageIdx:h,safeElements:u,handleSwitchPage:p,handleRenamePage:g,handleDuplicatePage:k,handleMovePage:w,handleDeletePage:S,handleAddPage:R})=>jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"absolute bottom-3 left-1/2 -translate-x-1/2 z-20 flex items-center gap-1.5 bg-white/95 backdrop-blur-md px-3 py-1.5 rounded-full shadow-lg border border-slate-200/80 font-sans select-none",children:[jsxRuntimeExports.jsxs("button",{onClick:()=>n(!o),className:`p-1.5 rounded-full transition-colors cursor-pointer flex items-center gap-1 text-xs font-medium ${o?"bg-indigo-100 text-indigo-700":"text-slate-600 hover:bg-slate-100"}`,title:"页面大纲与预览 (Pages Outline)",children:[jsxRuntimeExports.jsx(LayoutGrid,{size:15}),jsxRuntimeExports.jsxs("span",{className:"hidden sm:inline text-[11px] font-semibold",children:["大纲 (",e.length,")"]})]}),jsxRuntimeExports.jsx("div",{className:"h-4 w-px bg-slate-200 mx-0.5"}),jsxRuntimeExports.jsx("button",{onClick:()=>p(Math.max(0,t-1)),className:"p-1 hover:bg-slate-100 rounded-full text-slate-600 disabled:opacity-30 disabled:hover:bg-transparent transition-colors cursor-pointer",disabled:t===0,title:"上一页",children:jsxRuntimeExports.jsx(ChevronLeft,{size:16})}),jsxRuntimeExports.jsx("div",{className:"flex items-center gap-1 max-w-[500px] overflow-x-auto no-scrollbar py-0.5",children:e.map((C,v)=>{const j=v===t,F=a===v;return jsxRuntimeExports.jsxs("div",{className:"relative group flex items-center",children:[F?jsxRuntimeExports.jsx("input",{type:"text",autoFocus:!0,value:c,onChange:U=>r(U.target.value),onKeyDown:U=>{U.key==="Enter"&&g(v,c),U.key==="Escape"&&i(null)},onBlur:()=>g(v,c),className:"px-2 py-0.5 text-xs font-bold bg-white border border-indigo-500 rounded-full outline-none w-28 text-slate-800 shadow-2xs"}):jsxRuntimeExports.jsx("button",{onClick:()=>p(v),onDoubleClick:()=>{i(v),r(C.title)},className:`px-3 py-1 rounded-full text-xs font-bold transition-all cursor-pointer flex items-center gap-1 border ${j?"bg-indigo-600 text-white border-indigo-600 shadow-2xs":"text-slate-600 hover:bg-slate-100 hover:text-slate-900 border-transparent"}`,title:"双击重命名",children:jsxRuntimeExports.jsx("span",{className:"truncate max-w-[120px]",children:C.title})}),jsxRuntimeExports.jsx("button",{onClick:U=>{U.stopPropagation(),h(s===v?null:v)},className:`p-0.5 rounded-full hover:bg-black/10 transition-colors ml-[-4px] z-10 ${j?"text-white/80 hover:text-white":"text-slate-400 hover:text-slate-600"}`,title:"页面选项",children:jsxRuntimeExports.jsx(ChevronDown,{size:12})}),s===v&&jsxRuntimeExports.jsxs("div",{className:"absolute bottom-full mb-2 left-1/2 -translate-x-1/2 bg-white rounded-xl shadow-xl border border-slate-100 py-1 w-36 z-50 text-xs font-normal",onClick:U=>U.stopPropagation(),children:[jsxRuntimeExports.jsxs("button",{onClick:()=>{i(v),r(C.title),h(null)},className:"w-full px-3 py-1.5 text-left text-slate-700 hover:bg-indigo-50 hover:text-indigo-600 flex items-center gap-2 cursor-pointer",children:[jsxRuntimeExports.jsx(PenLine,{size:13})," 重命名"]}),jsxRuntimeExports.jsxs("button",{onClick:()=>{k(v),h(null)},className:"w-full px-3 py-1.5 text-left text-slate-700 hover:bg-indigo-50 hover:text-indigo-600 flex items-center gap-2 cursor-pointer",children:[jsxRuntimeExports.jsx(Copy,{size:13})," 复制页面"]}),v>0&&jsxRuntimeExports.jsxs("button",{onClick:()=>{w(v,"left"),h(null)},className:"w-full px-3 py-1.5 text-left text-slate-700 hover:bg-indigo-50 hover:text-indigo-600 flex items-center gap-2 cursor-pointer",children:[jsxRuntimeExports.jsx(ChevronLeft,{size:13})," 向左移动"]}),v<e.length-1&&jsxRuntimeExports.jsxs("button",{onClick:()=>{w(v,"right"),h(null)},className:"w-full px-3 py-1.5 text-left text-slate-700 hover:bg-indigo-50 hover:text-indigo-600 flex items-center gap-2 cursor-pointer",children:[jsxRuntimeExports.jsx(ChevronRight,{size:13})," 向右移动"]}),jsxRuntimeExports.jsx("div",{className:"my-1 border-t border-slate-100"}),jsxRuntimeExports.jsxs("button",{onClick:()=>{S(v),h(null)},className:"w-full px-3 py-1.5 text-left text-red-600 hover:bg-red-50 flex items-center gap-2 cursor-pointer disabled:opacity-30",disabled:e.length<=1,children:[jsxRuntimeExports.jsx(Trash2,{size:13})," 删除页面"]})]})]},C.id||v)})}),jsxRuntimeExports.jsx("button",{onClick:()=>R(),className:"p-1 hover:bg-indigo-50 hover:text-indigo-600 text-slate-400 rounded-full transition-colors cursor-pointer ml-0.5",title:"新建白板页面",children:jsxRuntimeExports.jsx(Plus,{size:16})}),jsxRuntimeExports.jsx("button",{onClick:()=>p(Math.min(e.length-1,t+1)),className:"p-1 hover:bg-slate-100 rounded-full text-slate-600 disabled:opacity-30 disabled:hover:bg-transparent transition-colors cursor-pointer",disabled:t>=e.length-1,title:"下一页",children:jsxRuntimeExports.jsx(ChevronRight,{size:16})})]}),o&&jsxRuntimeExports.jsx("div",{className:"absolute inset-0 bg-slate-900/30 backdrop-blur-xs z-30 flex flex-col justify-end pointer-events-auto font-sans",onClick:()=>n(!1),children:jsxRuntimeExports.jsxs("div",{className:"bg-white/95 backdrop-blur-xl border-t border-slate-200 rounded-t-2xl shadow-2xl p-4 max-h-[70vh] flex flex-col w-full max-w-5xl mx-auto animate-in slide-in-from-bottom duration-200",onClick:C=>C.stopPropagation(),children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between pb-3 border-b border-slate-100 shrink-0",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(LayoutGrid,{className:"w-5 h-5 text-indigo-600"}),jsxRuntimeExports.jsx("h3",{className:"font-bold text-slate-800 text-sm",children:"白板页面大纲与预览"}),jsxRuntimeExports.jsxs("span",{className:"px-2 py-0.5 bg-indigo-50 text-indigo-600 text-xs rounded-full font-semibold",children:["共 ",e.length," 页"]})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsxs("button",{onClick:()=>R(),className:"px-3 py-1.5 bg-indigo-600 hover:bg-indigo-700 text-white rounded-lg text-xs font-semibold flex items-center gap-1.5 transition-colors cursor-pointer shadow-xs",children:[jsxRuntimeExports.jsx(Plus,{size:14})," 新建页面"]}),jsxRuntimeExports.jsx("button",{onClick:()=>n(!1),className:"p-1.5 hover:bg-slate-100 rounded-full text-slate-400 hover:text-slate-600 transition-colors cursor-pointer",children:jsxRuntimeExports.jsx(X,{size:16})})]})]}),jsxRuntimeExports.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-3 py-4 overflow-y-auto max-h-[50vh]",children:e.map((C,v)=>{const j=v===t,F=u.filter(U=>U.type!=="page_meta"&&(()=>{try{const b=JSON.parse(U.data);return(b.page??0)===v||b.pageId===C.id}catch{return v===0}})()).length;return jsxRuntimeExports.jsxs("div",{onClick:()=>{p(v),n(!1)},className:`relative flex flex-col p-3 rounded-xl border-2 transition-all cursor-pointer group bg-white ${j?"border-indigo-600 bg-indigo-50/20 shadow-md ring-2 ring-indigo-500/20":"border-slate-200/80 hover:border-indigo-300 hover:shadow-sm"}`,children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between mb-2",children:[jsxRuntimeExports.jsxs("span",{className:`text-[11px] font-extrabold px-2 py-0.5 rounded-md ${j?"bg-indigo-600 text-white":"bg-slate-100 text-slate-600"}`,children:["P",v+1]}),j&&jsxRuntimeExports.jsx("span",{className:"text-[10px] font-bold text-indigo-600 bg-indigo-50 px-1.5 py-0.5 rounded",children:"当前激活"})]}),jsxRuntimeExports.jsxs("div",{className:"h-20 bg-slate-50 border border-slate-100 rounded-lg flex flex-col items-center justify-center mb-2 overflow-hidden relative",children:[jsxRuntimeExports.jsx(FileText,{size:24,className:j?"text-indigo-400":"text-slate-300"}),jsxRuntimeExports.jsxs("span",{className:"text-[10px] text-slate-400 font-medium mt-1",children:[F," 个组件/笔画"]})]}),jsxRuntimeExports.jsx("div",{className:"font-bold text-xs text-slate-800 truncate mb-1",title:C.title,children:C.title}),jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between pt-2 border-t border-slate-100 text-slate-400 text-[11px]",onClick:U=>U.stopPropagation(),children:[jsxRuntimeExports.jsx("button",{onClick:()=>{i(v),r(C.title)},className:"hover:text-indigo-600 p-1 rounded hover:bg-slate-100 transition-colors",title:"重命名",children:jsxRuntimeExports.jsx(PenLine,{size:13})}),jsxRuntimeExports.jsx("button",{onClick:()=>k(v),className:"hover:text-indigo-600 p-1 rounded hover:bg-slate-100 transition-colors",title:"复制页面",children:jsxRuntimeExports.jsx(Copy,{size:13})}),v>0&&jsxRuntimeExports.jsx("button",{onClick:()=>w(v,"left"),className:"hover:text-indigo-600 p-1 rounded hover:bg-slate-100 transition-colors",title:"向左移",children:jsxRuntimeExports.jsx(ChevronLeft,{size:13})}),v<e.length-1&&jsxRuntimeExports.jsx("button",{onClick:()=>w(v,"right"),className:"hover:text-indigo-600 p-1 rounded hover:bg-slate-100 transition-colors",title:"向右移",children:jsxRuntimeExports.jsx(ChevronRight,{size:13})}),jsxRuntimeExports.jsx("button",{onClick:()=>S(v),className:"hover:text-red-600 p-1 rounded hover:bg-red-50 transition-colors disabled:opacity-30",disabled:e.length<=1,title:"删除页面",children:jsxRuntimeExports.jsx(Trash2,{size:13})})]})]},C.id||v)})})]})})]}),WhiteboardDialog=({dialog:e,dialogInput:t,setDialogInput:o,setDialog:n})=>e?jsxRuntimeExports.jsx("div",{className:"absolute inset-0 bg-neutral-900/40 backdrop-blur-[2px] flex items-center justify-center z-[9999] p-4 font-sans",children:jsxRuntimeExports.jsxs("div",{className:"bg-white rounded-xl shadow-2xl overflow-hidden max-w-sm w-full border border-gray-100 flex flex-col scale-100 pointer-events-auto",children:[jsxRuntimeExports.jsxs("div",{className:"px-5 py-4 border-b border-gray-150/60 bg-gray-50 flex justify-between items-center shrink-0",children:[jsxRuntimeExports.jsx("h3",{className:"font-bold text-gray-800 text-sm",children:e.title}),jsxRuntimeExports.jsx("button",{onClick:()=>n(null),className:"text-gray-400 hover:text-gray-650 transition-colors text-xl font-light cursor-pointer",children:"×"})]}),jsxRuntimeExports.jsxs("div",{className:"p-5 flex-1 min-h-0",children:[jsxRuntimeExports.jsx("p",{className:"text-xs text-gray-600 leading-relaxed whitespace-pre-wrap mb-4 font-medium",children:e.message}),e.type==="prompt"&&jsxRuntimeExports.jsx("textarea",{value:t,onChange:a=>o(a.target.value),placeholder:e.placeholder,className:"w-full h-32 p-3 border border-gray-300 rounded-lg text-xs font-mono focus:outline-none focus:ring-2 focus:ring-indigo-500 bg-gray-50 focus:bg-white transition-all resize-none font-medium",onPointerDown:a=>a.stopPropagation()})]}),jsxRuntimeExports.jsxs("div",{className:"px-5 py-3 border-t border-gray-100 bg-gray-50 flex justify-end gap-2 text-xs shrink-0",children:[e.type!=="alert"&&jsxRuntimeExports.jsx("button",{onClick:()=>n(null),className:"px-4 py-2 text-gray-500 hover:bg-gray-100 rounded-lg transition-colors font-medium border border-gray-200 cursor-pointer",children:"取消"}),jsxRuntimeExports.jsx("button",{onClick:async()=>{try{await e.onConfirm(t)}catch(a){console.error("Dialog action error:",a)}},className:"px-4 py-2 bg-indigo-600 hover:bg-indigo-700 text-white rounded-lg font-semibold transition-all shadow-sm cursor-pointer",children:"确定"})]})]})}):null,CoursewareEntrySelectorModal=({showEntrySelector:e,setShowEntrySelector:t,zipUploadInfo:o,zipCandidates:n,handlePropsUpdate:a,fetchCoursewares:i})=>!e||!o?null:jsxRuntimeExports.jsx("div",{className:"absolute inset-0 bg-neutral-900/40 backdrop-blur-[2px] flex items-center justify-center z-[9999] p-4 font-sans",children:jsxRuntimeExports.jsxs("div",{className:"bg-white rounded-xl shadow-2xl overflow-hidden max-w-sm w-full border border-gray-100 flex flex-col scale-100 pointer-events-auto",children:[jsxRuntimeExports.jsxs("div",{className:"px-5 py-4 border-b border-gray-150/60 bg-gray-50 flex justify-between items-center shrink-0",children:[jsxRuntimeExports.jsx("h3",{className:"font-bold text-gray-800 text-sm",children:"选择课件入口页面"}),jsxRuntimeExports.jsx("button",{onClick:()=>t(!1),className:"text-gray-400 hover:text-gray-650 transition-colors text-xl font-light cursor-pointer",children:"×"})]}),jsxRuntimeExports.jsxs("div",{className:"p-5 flex-1 min-h-0 space-y-3",children:[jsxRuntimeExports.jsx("p",{className:"text-xs text-gray-600 leading-relaxed font-medium",children:"ZIP压缩包中含有多个HTML文件,请选择一个作为课件入口:"}),jsxRuntimeExports.jsx("div",{className:"max-h-60 overflow-y-auto border border-gray-200 rounded-lg p-2 bg-gray-50 space-y-1",children:n.map(c=>jsxRuntimeExports.jsxs("button",{onClick:async()=>{try{const r=await fetch("/api/courseware/confirm",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({uuid:o.uuid,name:o.name,entry:c})});if(r.ok){const s=await r.json();a({coursewareUuid:s.uuid,resourceId:""}),t(!1),i()}}catch(r){console.error("Failed to confirm entry point:",r)}},className:"w-full text-left p-2 rounded hover:bg-indigo-50 hover:text-indigo-700 text-xs font-semibold font-mono truncate transition-all cursor-pointer",children:["📄 ",c]},c))})]}),jsxRuntimeExports.jsx("div",{className:"px-5 py-3 border-t border-gray-100 bg-gray-50 flex justify-end gap-2 text-xs shrink-0",children:jsxRuntimeExports.jsx("button",{onClick:()=>t(!1),className:"px-4 py-2 text-gray-500 hover:bg-gray-100 rounded-lg transition-colors font-medium border border-gray-200 cursor-pointer",children:"取消"})})]})}),DEFAULT_WHITEBOARD_PAGES=[{id:"page-0",title:"P1 · 引入导入",order:0},{id:"page-1",title:"P2 · 核心讲解",order:1},{id:"page-2",title:"P3 · 互动练习",order:2}],InteractiveWhiteboard=reactExports.forwardRef(({lessonId:e,elements:t,onElementAdd:o,onElementUpdate:n,onElementDelete:a,onClearBoard:i,onRefresh:c,enableAutoAI:r,activeSegmentId:s,onSegmentSync:h,userRole:u="teacher",isEditMode:p=!0},g)=>{const k=Array.isArray(t)?t:[],[w,S]=reactExports.useState("cursor"),[R,C]=reactExports.useState("#facc15"),[v,j]=reactExports.useState(0),[F,U]=reactExports.useState(!0),[b,K]=reactExports.useState(!1),[Z,Y]=reactExports.useState(DEFAULT_WHITEBOARD_PAGES),[oe,H]=reactExports.useState(!1),[E,J]=reactExports.useState(null),[z,A]=reactExports.useState(""),[Q,se]=reactExports.useState(null);reactExports.useEffect(()=>{const l=k.find(d=>d.type==="page_meta");if(l)try{const d=JSON.parse(l.data);Array.isArray(d.pages)&&d.pages.length>0&&Y(d.pages)}catch(d){console.error("Failed to parse whiteboard page_meta:",d)}},[t]);const ge=l=>{const d=k.find(_=>_.type==="page_meta");d&&n?n(d.id,{pages:l}):o&&o("page_meta",{pages:l}),me.current&&me.current.emit("whiteboard-update",{roomId:e,type:"page-meta-update",payload:{pages:l}})},be=l=>{j(l),se(null),me.current&&me.current.emit("whiteboard-update",{roomId:e,type:"page-change",payload:{page:l}})},m=l=>{const d=Z.length,_={id:`page-${Date.now()}-${d}`,title:l||`P${d+1} · 备课页面`,order:d},I=[...Z,_];Y(I),j(d),ge(I),me.current&&me.current.emit("whiteboard-update",{roomId:e,type:"page-change",payload:{page:d}})},_e=(l,d)=>{if(!d.trim()){J(null);return}const _=Z.map((I,$)=>$===l?{...I,title:d.trim()}:I);Y(_),ge(_),J(null),A("")},we=l=>{const d=Z[l];if(!d)return;const _=l+1,I={id:`page-${Date.now()}-${_}`,title:`${d.title} (副本)`,order:_},$=[...Z.slice(0,_),I,...Z.slice(_).map(q=>({...q,order:q.order+1}))];Y($),j(_),ge($),k.filter(q=>q.type!=="page_meta"&&(()=>{try{const G=JSON.parse(q.data);return(G.page??0)===l||G.pageId===d.id}catch{return l===0}})()).forEach(q=>{try{const G=JSON.parse(q.data);o&&o(q.type,{...G,page:_,pageId:I.id,x:(G.x??100)+20,y:(G.y??100)+20})}catch(G){console.error("Failed duplicating page element:",G)}})},f=l=>{if(Z.length<=1){je({title:"无法删除",message:"至少需要保留一个白板页面!",type:"alert"});return}const d=Z[l],_=k.filter($=>$.type!=="page_meta"&&(()=>{try{const N=JSON.parse($.data);return(N.page??0)===l||N.pageId===d.id}catch{return l===0}})()),I=()=>{a&&_.forEach(q=>a(q.id));const $=Z.filter((q,G)=>G!==l).map((q,G)=>({...q,order:G}));Y($);const N=Math.min(v,$.length-1);j(N),ge($)};_.length>0?je({title:"确认删除白板页面",message:`页面 [${d.title}] 包含 ${_.length} 个组件,删除页面将同时清理该页面的组件,是否确定删除?`,type:"confirm",onConfirm:I}):I()},Ce=(l,d)=>{const _=d==="left"?l-1:l+1;if(_<0||_>=Z.length)return;const I=[...Z],$=I[l];I[l]=I[_],I[_]=$,I.forEach((N,q)=>{N.order=q}),Y(I),v===l?j(_):v===_&&j(l),ge(I)},[ie,le]=reactExports.useState(null),[D,W]=reactExports.useState(!1),ce=reactExports.useRef(null),[he,ve]=reactExports.useState({width:0,height:0}),ue=reactExports.useRef(null),[qe,de]=reactExports.useState(!1),me=reactExports.useRef(null),[Qe,We]=reactExports.useState({}),[ut,nt]=reactExports.useState({}),[at,pt]=reactExports.useState({}),[yt,kt]=reactExports.useState({}),[Ge,Ee]=reactExports.useState(null),[L,P]=reactExports.useState(null),V=reactExports.useRef(null),T=reactExports.useRef(null),ne=reactExports.useRef(null),[O,Re]=reactExports.useState(null),te=l=>{u==="teacher"&&Re(l)},[Pe,Fe]=reactExports.useState(null),ae=l=>{u==="teacher"&&Fe(l)},[ze,$e]=reactExports.useState(null),[Te,it]=reactExports.useState(null),Xe=reactExports.useRef(null),[Ct,je]=reactExports.useState(null),[bt,mt]=reactExports.useState(""),[ee,Ae]=reactExports.useState(null),[Ze,ct]=reactExports.useState({}),[Ke,rt]=reactExports.useState({}),[It,Nt]=reactExports.useState([]),[Yt,xt]=reactExports.useState(!1),[St,$t]=reactExports.useState([]),[jt,Pt]=reactExports.useState([]),[At,qt]=reactExports.useState(null),[Rt,gt]=reactExports.useState(!1),dt=async()=>{try{const l=await fetch("/api/courseware");if(l.ok){const d=await l.json();$t(d)}}catch(l){console.error("Error fetching coursewares:",l)}},st=async()=>{try{xt(!0);const l=await fetch("/api/resources");if(l.ok){const d=await l.json();Nt(d)}}catch(l){console.error("Error fetching system resources:",l)}finally{xt(!1)}};reactExports.useEffect(()=>{if(O){const l=k.find(d=>d.id===O);if(l){l.type==="html-applet"&&(st(),dt());try{Ae(JSON.parse(l.data))}catch{Ae({})}}else Ae(null)}else Ae(null)},[O,t]);const Ve=async l=>{const d=k.find(q=>q.id===O);if(!d)return;let _={};try{_=JSON.parse(d.data)}catch{}const I={..._,...l},$=d.data,N=JSON.stringify(I);if($!==N&&(ct(q=>{const G=q[d.id]?[...q[d.id]]:[];return G.length>=30&&G.shift(),G.push($),{...q,[d.id]:G}}),rt(q=>({...q,[d.id]:[]}))),n){de(!0);try{await n(d.id,I),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}),c&&c()}catch(q){console.error("更新属性失败:",q)}finally{de(!1)}}},zt=async()=>{if(!O)return;const l=k.find(N=>N.id===O);if(!l)return;const d=Ze[O]||[];if(d.length===0)return;const _=d[d.length-1],I=d.slice(0,d.length-1),$=l.data;if(rt(N=>{const q=N[O]?[...N[O]]:[];return q.push($),{...N,[O]:q}}),ct(N=>({...N,[O]:I})),n){de(!0);try{const N=JSON.parse(_);Ae(N),await n(O,N),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}),c&&c()}catch(N){console.error("撤销修改失败:",N)}finally{de(!1)}}},Et=async()=>{if(!O)return;const l=k.find(N=>N.id===O);if(!l)return;const d=Ke[O]||[];if(d.length===0)return;const _=d[d.length-1],I=d.slice(0,d.length-1),$=l.data;if(ct(N=>{const q=N[O]?[...N[O]]:[];return q.push($),{...N,[O]:q}}),rt(N=>({...N,[O]:I})),n){de(!0);try{const N=JSON.parse(_);Ae(N),await n(O,N),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}),c&&c()}catch(N){console.error("重做修改失败:",N)}finally{de(!1)}}},fe=(l,d)=>{Ae(_=>_&&{..._,[l]:d})},Ie=(l,d)=>{Ve({[l]:d})},Oe=l=>{Ae(d=>d&&{...d,...l}),Ve(l)},Ue=(l,d)=>{const _=parseFloat(d);isNaN(_)||Ve({[l]:_})},Dt=(l,d)=>{Ae(_=>{if(!_)return _;const I=[..._.options||[]];return I[l]=d,{..._,options:I}})},Ht=(l,d)=>{if(!ee)return;const _=[...ee.options||[]];_[l]=d,Ve({options:_})},Bt=()=>{if(!ee)return;const l=ee.options||[],_="ABCDEFGHIJKLMNOPQRSTUVWXYZ"[l.length]||`Option ${l.length+1}`,I=[...l,`选项 ${_}`];Ae($=>$&&{...$,options:I}),Ve({options:I})},Ft=l=>{if(!ee)return;const d=(ee.options||[]).filter((_,I)=>I!==l);Ae(_=>_&&{..._,options:d}),Ve({options:d})};reactExports.useEffect(()=>{const l=()=>{ae(null)};return window.addEventListener("click",l),()=>window.removeEventListener("click",l)},[]);const Tt=l=>{try{const d=JSON.parse(l.data);if(l.type==="pen"&&d.points){let _=1/0,I=-1/0,$=1/0;for(let N=0;N<d.points.length;N+=2){const q=d.points[N],G=d.points[N+1];q<_&&(_=q),q>I&&(I=q),G<$&&($=G)}return{x:(_+I)/2,y:$-36}}else if(l.type==="rectangle"||l.type==="shape"&&d.shape==="rect"){const _=d.x??0,I=d.y??0,$=d.width??0,N=d.height??0;return{x:_+$/2,y:(N<0?I+N:I)-36}}else if(l.type==="circle"||l.type==="shape"&&d.shape==="circle"){const _=d.x??0,I=d.y??0,$=d.radius??0;return{x:_,y:I-$-36}}else if(l.type==="text"){const _=d.x??0,I=d.y??0;return{x:_+40,y:I-36}}else if(d.x!==void 0&&d.y!==void 0)return{x:d.x+(d.width?d.width/2:150),y:d.y-36}}catch(d){console.error(d)}return null},De=(l,d,_)=>{if(u!=="teacher")return;l.preventDefault();const I=_.x??0,$=_.y??0,N={id:d,currentX:I,currentY:$,startPointerX:l.clientX,startPointerY:l.clientY,data:_};V.current=N,P(N)},He=l=>{},Be=async l=>{},Ye=(l,d,_,I,$,N,q)=>{if(u!=="teacher")return;l.preventDefault(),l.stopPropagation();const G={id:d,corner:_,startX:l.clientX,startY:l.clientY,initialX:I,initialY:$,initialWidth:N,initialHeight:q},pe={id:d,x:I,y:$,width:N,height:q};T.current=G,ne.current=pe,$e(G),it(pe)},et=l=>{},ot=async l=>{};reactExports.useEffect(()=>{if(!L)return;const l=_=>{if(!V.current)return;const I=_.clientX-V.current.startPointerX,$=_.clientY-V.current.startPointerY,N=V.current.data.x??0,q=V.current.data.y??0;V.current.currentX=N+I,V.current.currentY=q+$,P({...V.current})},d=async _=>{if(!V.current)return;const I=V.current.currentX,$=V.current.currentY,N=V.current.id,q=V.current.data;if(V.current=null,P(null),n){de(!0);try{await n(N,{...q,x:I,y:$}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e})}catch(G){console.error("Drag end update error:",G)}finally{de(!1)}}};return window.addEventListener("pointermove",l),window.addEventListener("pointerup",d),()=>{window.removeEventListener("pointermove",l),window.removeEventListener("pointerup",d)}},[L,n,e]),reactExports.useEffect(()=>{if(!ze||!Te)return;const l=_=>{if(!T.current||!ne.current)return;const I=_.clientX-T.current.startX,$=_.clientY-T.current.startY;let N=T.current.initialX,q=T.current.initialY,G=T.current.initialWidth,pe=T.current.initialHeight;const ke=150,Le=100,{corner:Me}=T.current;if(Me==="bottom-right")G=Math.max(ke,T.current.initialWidth+I),pe=Math.max(Le,T.current.initialHeight+$);else if(Me==="bottom-left"){const M=T.current.initialWidth-I;M>=ke&&(G=M,N=T.current.initialX+I),pe=Math.max(Le,T.current.initialHeight+$)}else if(Me==="top-right"){G=Math.max(ke,T.current.initialWidth+I);const M=T.current.initialHeight-$;M>=Le&&(pe=M,q=T.current.initialY+$)}else if(Me==="top-left"){const M=T.current.initialWidth-I;M>=ke&&(G=M,N=T.current.initialX+I);const B=T.current.initialHeight-$;B>=Le&&(pe=B,q=T.current.initialY+$)}ne.current={id:T.current.id,x:N,y:q,width:G,height:pe},it({...ne.current})},d=async _=>{if(!T.current||!ne.current)return;const{id:I}=T.current,{x:$,y:N,width:q,height:G}=ne.current;T.current=null,ne.current=null,$e(null),it(null);const pe=k.find(ke=>ke.id===I);if(pe&&n)try{const ke=JSON.parse(pe.data);de(!0),await n(I,{...ke,x:$,y:N,width:q,height:G}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e})}catch(ke){console.error("Resize end update error:",ke)}finally{de(!1)}};return window.addEventListener("pointermove",l),window.addEventListener("pointerup",d),()=>{window.removeEventListener("pointermove",l),window.removeEventListener("pointerup",d)}},[ze,Te,t,n,e]);const Ne=l=>{je({type:"confirm",title:"删除组件",message:"您确定要从白板中删除这个组件或图形吗?该操作不可撤销。",onConfirm:async()=>{de(!0);try{a?await a(l):await fetch(`/api/lessons/${e}/whiteboard/${l}`,{method:"DELETE"}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}),c&&c(),te(null)}catch(d){console.error("Delete element failed:",d)}finally{de(!1),je(null)}}})},Vt=()=>{je({type:"confirm",title:"清空白板",message:"您确定要清空画布上的所有组件、图形和线条吗?此操作将永久清空白板且不可逆!",onConfirm:async()=>{de(!0);try{i?await i():await fetch(`/api/lessons/${e}/whiteboard`,{method:"DELETE"}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}),c&&c(),te(null)}catch(l){console.error("Clear board failed:",l)}finally{de(!1),je(null)}}})},Ot=()=>{je({type:"confirm",title:"重置白板",message:"您确定要将白板重置为开始上课的状态吗?您在白板上做的所有临时修改都将被重置。",onConfirm:async()=>{de(!0);try{await fetch(`/api/lessons/${e}/whiteboard/reset`,{method:"POST"}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}),c&&c(),te(null)}catch(l){console.error("Reset board failed:",l)}finally{de(!1),je(null)}}})};reactExports.useEffect(()=>{const l=d=>{if((d.key==="Delete"||d.key==="Backspace")&&O){const _=d.target;_.tagName!=="INPUT"&&_.tagName!=="TEXTAREA"&&(Ne(O),te(null))}};return window.addEventListener("keydown",l),()=>window.removeEventListener("keydown",l)},[O]);const ft=()=>{Xe.current&&clearTimeout(Xe.current),r&&(Xe.current=setTimeout(async()=>{de(!0);try{(await fetch(`/api/lessons/${e}/ai-tutor`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({elements:k.map(d=>({type:d.type,data:JSON.parse(d.data)}))})})).ok&&(frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}),c&&c())}catch(l){console.error(l)}finally{de(!1)}},6e4))};reactExports.useEffect(()=>(ft(),()=>{Xe.current&&clearTimeout(Xe.current)}),[t]),reactExports.useEffect(()=>{const l=getSocketInstance();me.current=l,l.emit("join-room",e);const d=_=>{_.type==="temp-draw"?We(I=>({...I,[_.userId]:_.payload})):_.type==="temp-end"?We(I=>{const $={...I};return delete $[_.userId],$}):_.type==="refresh"?c&&c():_.type==="segment-change"?h&&_.payload?.segmentId&&h(_.payload.segmentId):_.type==="page-change"?typeof _.payload?.page=="number"&&j(_.payload.page):_.type==="page-meta-update"&&Array.isArray(_.payload?.pages)&&Y(_.payload.pages)};return me.current.on("whiteboard-sync",d),()=>{me.current?.off("whiteboard-sync",d)}},[e,c,h]),reactExports.useEffect(()=>{if(!ue.current)return;const l=new ResizeObserver(_=>{for(let I of _)ue.current&&ve({width:ue.current.offsetWidth,height:ue.current.offsetHeight})});l.observe(ue.current);const d=()=>{ue.current&&ve({width:ue.current.offsetWidth,height:ue.current.offsetHeight})};return d(),window.addEventListener("resize",d),()=>{l.disconnect(),window.removeEventListener("resize",d)}},[]);const Ut=l=>{if(ft(),ae(null),w==="cursor"){l.target===l.target.getStage()&&te(null);return}if(qe)return;W(!0);const d=l.target.getStage().getPointerPosition();w==="pen"?le({type:"pen",points:[d.x,d.y],color:"black"}):w==="highlighter"?le({type:"highlighter",points:[d.x,d.y],color:R}):w==="rect"?le({type:"rectangle",x:d.x,y:d.y,width:0,height:0,stroke:"blue"}):w==="circle"?le({type:"circle",x:d.x,y:d.y,radius:0,stroke:"green"}):w==="text"&&le({type:"text",x:d.x,y:d.y,text:"Click to edit...",fontSize:16,color:"black"})},Wt=l=>{if(!D||!ie)return;const d=l.target.getStage().getPointerPosition();if(ie.type==="pen"||ie.type==="highlighter")le({...ie,points:ie.points.concat([d.x,d.y])});else if(ie.type==="rectangle")le({...ie,width:d.x-ie.x,height:d.y-ie.y});else if(ie.type==="circle"){const _=Math.sqrt(Math.pow(d.x-ie.x,2)+Math.pow(d.y-ie.y,2));le({...ie,radius:_})}},Gt=async()=>{if(!D||!ie)return;W(!1);const l={...ie,page:v,segmentId:s};le(null),de(!0);try{await o(l.type,l),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e})}finally{de(!1)}};reactExports.useEffect(()=>{!me.current||!me.current.id||(ie?me.current.emit("whiteboard-update",{roomId:e,type:"temp-draw",userId:me.current.id,payload:{...ie,page:v,segmentId:s}}):me.current.emit("whiteboard-update",{roomId:e,type:"temp-end",userId:me.current.id}))},[ie,e,v,s]),reactExports.useEffect(()=>{s&&me.current&&me.current.emit("whiteboard-update",{roomId:e,type:"segment-change",payload:{segmentId:s}})},[s,e]);const _t=l=>{if(!l)return null;const d=l.page??0,_=Z[v];return!(l.pageId&&_?.id?l.pageId===_.id:d===v)||s&&l.segmentId&&l.segmentId!==s?null:l.type==="pen"?jsxRuntimeExports.jsx(Line,{points:l.points,stroke:l.color,strokeWidth:4,tension:.5,lineCap:"round",lineJoin:"round"}):l.type==="highlighter"?jsxRuntimeExports.jsx(Line,{points:l.points,stroke:l.color||"#facc15",strokeWidth:18,tension:.5,lineCap:"round",lineJoin:"round",opacity:.5}):l.type==="rectangle"?jsxRuntimeExports.jsx(Rect,{x:l.x,y:l.y,width:l.width,height:l.height,stroke:l.stroke}):l.type==="circle"?jsxRuntimeExports.jsx(Circle$1,{x:l.x,y:l.y,radius:l.radius,stroke:l.stroke}):l.type==="text"?jsxRuntimeExports.jsx(Text,{x:l.x,y:l.y,text:l.text,fontSize:l.fontSize,fill:l.color}):null},Xt=()=>_t(ie?{...ie,page:v,segmentId:s}:null),Zt=()=>Object.values(Qe).map((l,d)=>jsxRuntimeExports.jsx(React.Fragment,{children:_t(l)},d)),Kt=l=>{try{const d=JSON.parse(l.data),_=L?.id===l.id,I=Te?.id===l.id,$=I?Te.x:_?L.currentX:d.x??0,N=I?Te.y:_?L.currentY:d.y??0,q=M=>M==="plugin"?d.width||500:M==="hello-world"?160:M==="quiz"?300:M==="rollcall"?320:M==="assignment"?310:M==="html-applet"||M==="code-sandbox"||M==="math-graph"?400:M==="presentation"?600:300,G=M=>M==="plugin"?d.height||400:M==="hello-world"?64:M==="quiz"?280:M==="rollcall"?310:M==="assignment"?250:M==="html-applet"?300:M==="code-sandbox"?320:M==="math-graph"?350:M==="presentation"?400:300,pe=I?Te.width:d.width??q(l.type),ke=I?Te.height:d.isMinimized?32:d.height??G(l.type),Le=O===l.id,Me=()=>Le?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"absolute -inset-1 border-2 border-indigo-500 rounded-lg pointer-events-none z-50 shadow-md animate-pulse duration-1000 animate-in fade-in"}),jsxRuntimeExports.jsx("div",{className:"absolute -top-1.5 -left-1.5 w-3.5 h-3.5 bg-white border-2 border-indigo-600 rounded-full cursor-nwse-resize z-50 hover:bg-indigo-50 hover:scale-110 transition-transform shadow",onPointerDown:M=>Ye(M,l.id,"top-left",$,N,pe,ke),onPointerMove:et,onPointerUp:ot}),jsxRuntimeExports.jsx("div",{className:"absolute -top-1.5 -right-1.5 w-3.5 h-3.5 bg-white border-2 border-indigo-600 rounded-full cursor-nesw-resize z-50 hover:bg-indigo-50 hover:scale-110 transition-transform shadow",onPointerDown:M=>Ye(M,l.id,"top-right",$,N,pe,ke),onPointerMove:et,onPointerUp:ot}),jsxRuntimeExports.jsx("div",{className:"absolute -bottom-1.5 -left-1.5 w-3.5 h-3.5 bg-white border-2 border-indigo-600 rounded-full cursor-nesw-resize z-50 hover:bg-indigo-50 hover:scale-110 transition-transform shadow",onPointerDown:M=>Ye(M,l.id,"bottom-left",$,N,pe,ke),onPointerMove:et,onPointerUp:ot}),jsxRuntimeExports.jsx("div",{className:"absolute -bottom-1.5 -right-1.5 w-3.5 h-3.5 bg-white border-2 border-indigo-600 rounded-full cursor-nwse-resize z-50 hover:bg-indigo-50 hover:scale-110 transition-transform shadow",onPointerDown:M=>Ye(M,l.id,"bottom-right",$,N,pe,ke),onPointerMove:et,onPointerUp:ot})]}):null;if(l.type==="plugin"){const M=u==="teacher",B=M?d.teacherWidgetId:d.studentWidgetId,ye=M?"teacher.dashboard.widget":"student.view";return jsxRuntimeExports.jsx(Group$1,{children:jsxRuntimeExports.jsx(Html,{divProps:{style:{position:"absolute",top:`${N}px`,left:`${$}px`,pointerEvents:"none",zIndex:Le?20:10}},children:jsxRuntimeExports.jsxs("div",{onPointerDown:xe=>{te(l.id),xe.stopPropagation()},onContextMenu:xe=>{xe.preventDefault(),xe.stopPropagation();const Se=ue.current?.getBoundingClientRect();Se&&ae({x:xe.clientX-Se.left,y:xe.clientY-Se.top,elementId:l.id})},className:"bg-white border border-gray-300 rounded-lg shadow-xl overflow-hidden flex flex-col font-sans text-sm relative",style:{pointerEvents:"auto",width:`${pe}px`,height:`${ke}px`},children:[jsxRuntimeExports.jsxs("div",{className:"bg-indigo-50 text-indigo-750 px-3 py-1.5 flex justify-between items-center text-xs font-semibold border-b border-indigo-150 cursor-move select-none shrink-0",onPointerDown:xe=>De(xe,l.id,d),onPointerMove:He,onPointerUp:Be,children:[jsxRuntimeExports.jsx("span",{children:d.title||"Plugin Component"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntimeExports.jsx("button",{onClick:()=>Ee(l.id),onPointerDown:xe=>xe.stopPropagation(),className:"p-1 hover:bg-slate-200/50 rounded-full text-indigo-650 hover:text-indigo-900 transition-colors cursor-pointer flex items-center justify-center",title:"全屏",children:jsxRuntimeExports.jsx(Maximize2,{size:11})}),jsxRuntimeExports.jsx("button",{onClick:()=>Ne(l.id),onPointerDown:xe=>xe.stopPropagation(),className:"p-1 hover:bg-slate-200/50 rounded-full text-indigo-600 hover:text-red-500 transition-colors cursor-pointer flex items-center justify-center",title:"删除组件",children:jsxRuntimeExports.jsx(Trash2,{size:11})})]})]}),!d.isMinimized&&jsxRuntimeExports.jsx("div",{className:"flex-grow bg-white overflow-auto relative min-h-0 p-2",children:jsxRuntimeExports.jsx(PluginCardRenderer,{pluginId:d.pluginId,slot:ye,widgetId:B,elementId:l.id,lessonId:e})}),!d.isMinimized&&Me()]})})},l.id)}if(l.type==="hello-world")return jsxRuntimeExports.jsx(Group$1,{children:jsxRuntimeExports.jsx(Html,{divProps:{style:{position:"absolute",top:`${N}px`,left:`${$}px`,pointerEvents:"none",zIndex:Le?20:10}},children:jsxRuntimeExports.jsxs("div",{onPointerDown:M=>{te(l.id),M.stopPropagation()},className:"bg-transparent",style:{pointerEvents:"auto",width:`${pe}px`,height:`${ke}px`},children:[jsxRuntimeExports.jsx(HelloWorldWrapper,{elementId:l.id,data:d,onPointerDown:M=>De(M,l.id,d),onPointerMove:He,onPointerUp:Be,onDelete:()=>Ne(l.id),onElementUpdate:n,lessonId:e}),Me()]})})},l.id);if(l.type==="rollcall")return jsxRuntimeExports.jsx(Group$1,{children:jsxRuntimeExports.jsx(Html,{divProps:{style:{position:"absolute",top:`${N}px`,left:`${$}px`,pointerEvents:"none",zIndex:Le?20:10}},children:jsxRuntimeExports.jsxs("div",{onPointerDown:M=>{te(l.id),M.stopPropagation()},onContextMenu:M=>{M.preventDefault(),M.stopPropagation();const B=ue.current?.getBoundingClientRect();B&&ae({x:M.clientX-B.left,y:M.clientY-B.top,elementId:l.id})},className:"bg-transparent",style:{pointerEvents:"auto",width:`${pe}px`,height:`${ke}px`},children:[jsxRuntimeExports.jsx(RollCallWrapper,{elementId:l.id,data:d,onElementUpdate:n,onPointerDown:M=>De(M,l.id,d),onPointerMove:He,onPointerUp:Be,onDelete:()=>Ne(l.id)}),Me()]})})},l.id);if(l.type==="quiz")return null;if(l.type==="assignment")return jsxRuntimeExports.jsx(Group$1,{children:jsxRuntimeExports.jsx(Html,{divProps:{style:{position:"absolute",top:`${N}px`,left:`${$}px`,pointerEvents:"none",zIndex:Le?20:10}},children:jsxRuntimeExports.jsxs("div",{onPointerDown:M=>{te(l.id),M.stopPropagation()},onContextMenu:M=>{M.preventDefault(),M.stopPropagation();const B=ue.current?.getBoundingClientRect();B&&ae({x:M.clientX-B.left,y:M.clientY-B.top,elementId:l.id})},className:"bg-white border border-gray-300 rounded-lg shadow-xl overflow-hidden flex flex-col font-sans text-sm relative select-none",style:{pointerEvents:"auto",width:`${pe}px`,height:`${ke}px`},children:[jsxRuntimeExports.jsxs("div",{className:"bg-orange-50 text-orange-700 px-3 py-1.5 flex justify-between items-center text-xs font-semibold border-b border-orange-100 cursor-move select-none shrink-0",onPointerDown:M=>De(M,l.id,d),onPointerMove:He,onPointerUp:Be,children:[jsxRuntimeExports.jsx("span",{children:"Assignment Upload Task"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntimeExports.jsx("button",{onClick:()=>Ee(l.id),onPointerDown:M=>M.stopPropagation(),className:"p-1 hover:bg-slate-200/50 rounded-full text-orange-600 hover:text-orange-900 transition-colors cursor-pointer flex items-center justify-center",title:"全屏",children:jsxRuntimeExports.jsx(Maximize2,{size:11})}),jsxRuntimeExports.jsx("button",{onClick:async()=>{n&&(await n(l.id,{...d,isMinimized:!d.isMinimized}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}))},onPointerDown:M=>M.stopPropagation(),className:"p-1 hover:bg-slate-200/50 rounded-full text-orange-655 hover:text-orange-900 transition-colors cursor-pointer flex items-center justify-center",title:d.isMinimized?"展开组件":"收起组件",children:d.isMinimized?jsxRuntimeExports.jsx(Maximize2,{size:11}):jsxRuntimeExports.jsx(Minimize2,{size:11})}),jsxRuntimeExports.jsx("button",{onClick:()=>Ne(l.id),onPointerDown:M=>M.stopPropagation(),className:"p-1 hover:bg-slate-200/50 rounded-full text-orange-600 hover:text-red-500 transition-colors cursor-pointer flex items-center justify-center",title:"删除组件",children:jsxRuntimeExports.jsx(Trash2,{size:11})})]})]}),!d.isMinimized&&jsxRuntimeExports.jsxs("div",{className:"p-4 text-center flex-1 overflow-y-auto flex flex-col justify-center min-h-0",children:[jsxRuntimeExports.jsx("p",{className:"font-semibold text-gray-800 mb-1 text-xs",children:d.title}),jsxRuntimeExports.jsx("p",{className:"text-xs text-gray-500 mb-3 line-clamp-3",children:d.description}),jsxRuntimeExports.jsx("button",{className:"w-full bg-orange-600 hover:bg-orange-700 text-white font-medium py-1.5 rounded transition-colors text-xs shadow-sm cursor-pointer",onClick:()=>{je({type:"alert",title:"作业文件上传",message:`系统已经成功模拟拉起本地文件选择和上传流程!
8341
- 已准备上传作业: ${d.title??"白板作业"}`,onConfirm:()=>je(null)})},children:"Upload File"})]}),!d.isMinimized&&Me()]})})},l.id);if(l.type==="html-applet")return jsxRuntimeExports.jsx(Group$1,{children:jsxRuntimeExports.jsx(Html,{divProps:{style:{position:"absolute",top:`${N}px`,left:`${$}px`,pointerEvents:"none",zIndex:Le?20:10}},children:jsxRuntimeExports.jsxs("div",{onPointerDown:M=>{te(l.id),M.stopPropagation()},onContextMenu:M=>{M.preventDefault(),M.stopPropagation();const B=ue.current?.getBoundingClientRect();B&&ae({x:M.clientX-B.left,y:M.clientY-B.top,elementId:l.id})},className:"bg-white border border-gray-300 rounded-lg shadow-xl overflow-hidden flex flex-col font-sans text-sm relative",style:{pointerEvents:"auto",width:`${pe}px`,height:`${ke}px`},children:[jsxRuntimeExports.jsxs("div",{className:"bg-gray-100 text-gray-700 px-3 py-1.5 flex justify-between items-center text-xs font-semibold border-b border-gray-200 cursor-move select-none shrink-0",onPointerDown:M=>De(M,l.id,d),onPointerMove:He,onPointerUp:Be,children:[jsxRuntimeExports.jsx("span",{children:"Interactive Courseware"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntimeExports.jsx("button",{onClick:()=>Ee(l.id),onPointerDown:M=>M.stopPropagation(),className:"p-1 hover:bg-slate-200/50 rounded-full text-gray-600 hover:text-gray-900 transition-colors cursor-pointer flex items-center justify-center",title:"全屏",children:jsxRuntimeExports.jsx(Maximize2,{size:11})}),jsxRuntimeExports.jsx("button",{onClick:async()=>{n&&(await n(l.id,{...d,isMinimized:!d.isMinimized}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}))},onPointerDown:M=>M.stopPropagation(),className:"p-1 hover:bg-slate-200/50 rounded-full text-gray-650 hover:text-gray-900 transition-colors cursor-pointer flex items-center justify-center",title:d.isMinimized?"展开组件":"收起组件",children:d.isMinimized?jsxRuntimeExports.jsx(Maximize2,{size:11}):jsxRuntimeExports.jsx(Minimize2,{size:11})}),jsxRuntimeExports.jsx("button",{onClick:()=>Ne(l.id),onPointerDown:M=>M.stopPropagation(),className:"p-1 hover:bg-slate-200/50 rounded-full text-gray-650 hover:text-red-500 transition-colors cursor-pointer flex items-center justify-center",title:"删除组件",children:jsxRuntimeExports.jsx(Trash2,{size:11})})]})]}),!d.isMinimized&&jsxRuntimeExports.jsx("div",{className:"flex-1 bg-white overflow-hidden relative min-h-0",children:jsxRuntimeExports.jsx("iframe",{className:"w-full h-full border-none",src:d.coursewareUuid?`/runtime/${d.coursewareUuid}/`:d.resourceId?`/api/resources/${d.resourceId}/`:void 0,srcDoc:d.coursewareUuid||d.resourceId?void 0:wrapSrcDocWithBridge(d.code,e),sandbox:"allow-scripts allow-same-origin allow-forms allow-downloads"})}),!d.isMinimized&&Me()]})})},l.id);if(l.type==="pen"){const M=O===l.id;return jsxRuntimeExports.jsx(Line,{id:l.id,points:d.points,stroke:M?"#3b82f6":d.color||"black",strokeWidth:M?6:4,tension:.5,lineCap:"round",lineJoin:"round",draggable:u==="teacher"&&w==="cursor",onClick:B=>{w==="cursor"&&(B.cancelBubble=!0,te(M?null:l.id))},onTap:B=>{w==="cursor"&&(B.cancelBubble=!0,te(M?null:l.id))},onDragEnd:async B=>{const ye=B.target,xe=ye.x(),Se=ye.y();ye.x(0),ye.y(0);const lt=d.points.map((Je,ht)=>ht%2===0?Je+xe:Je+Se);n&&(await n(l.id,{...d,points:lt}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}))}},l.id)}if(l.type==="highlighter"){const M=O===l.id;return jsxRuntimeExports.jsx(Line,{id:l.id,points:d.points,stroke:M?"#3b82f6":d.color||"#facc15",strokeWidth:M?24:18,tension:.5,lineCap:"round",lineJoin:"round",opacity:.5,draggable:u==="teacher"&&w==="cursor",onClick:B=>{w==="cursor"&&(B.cancelBubble=!0,te(M?null:l.id))},onTap:B=>{w==="cursor"&&(B.cancelBubble=!0,te(M?null:l.id))},onDragEnd:async B=>{const ye=B.target,xe=ye.x(),Se=ye.y();ye.x(0),ye.y(0);const lt=d.points.map((Je,ht)=>ht%2===0?Je+xe:Je+Se);n&&(await n(l.id,{...d,points:lt}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}))}},l.id)}if(l.type==="rectangle"||l.type==="shape"&&d.shape==="rect"){const M=O===l.id;return jsxRuntimeExports.jsx(Rect,{id:l.id,x:d.x,y:d.y,width:d.width,height:d.height,fill:d.fill||"transparent",stroke:M?"#3b82f6":d.stroke||"blue",strokeWidth:M?3:1,draggable:u==="teacher"&&w==="cursor",onClick:B=>{w==="cursor"&&(B.cancelBubble=!0,te(M?null:l.id))},onTap:B=>{w==="cursor"&&(B.cancelBubble=!0,te(M?null:l.id))},onDragEnd:async B=>{const ye=B.target,xe=ye.x(),Se=ye.y();ye.x(0),ye.y(0),n&&(await n(l.id,{...d,x:d.x+xe,y:d.y+Se}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}))}},l.id)}if(l.type==="circle"||l.type==="shape"&&d.shape==="circle"){const M=O===l.id;return jsxRuntimeExports.jsx(Circle$1,{id:l.id,x:d.x,y:d.y,radius:d.radius,fill:d.fill||"transparent",stroke:M?"#3b82f6":d.stroke||"green",strokeWidth:M?3:1,draggable:u==="teacher"&&w==="cursor",onClick:B=>{w==="cursor"&&(B.cancelBubble=!0,te(M?null:l.id))},onTap:B=>{w==="cursor"&&(B.cancelBubble=!0,te(M?null:l.id))},onDragEnd:async B=>{const ye=B.target,xe=ye.x(),Se=ye.y();ye.x(0),ye.y(0),n&&(await n(l.id,{...d,x:d.x+xe,y:d.y+Se}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}))}},l.id)}if(l.type==="text"){const M=O===l.id;return jsxRuntimeExports.jsx(Text,{id:l.id,x:d.x,y:d.y,text:d.text,fontSize:d.fontSize||16,fill:M?"#3b82f6":d.color||"black",fontStyle:M?"bold":"normal",draggable:u==="teacher"&&w==="cursor",onClick:B=>{w==="cursor"&&(B.cancelBubble=!0,te(M?null:l.id))},onTap:B=>{w==="cursor"&&(B.cancelBubble=!0,te(M?null:l.id))},onDragEnd:async B=>{const ye=B.target,xe=ye.x(),Se=ye.y();ye.x(0),ye.y(0),n&&(await n(l.id,{...d,x:d.x+xe,y:d.y+Se}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}))}},l.id)}if(l.type==="code-sandbox")return jsxRuntimeExports.jsx(Group$1,{children:jsxRuntimeExports.jsx(Html,{divProps:{style:{position:"absolute",top:`${N}px`,left:`${$}px`,pointerEvents:"none",zIndex:Le?20:10}},children:jsxRuntimeExports.jsxs("div",{onPointerDown:M=>{te(l.id),M.stopPropagation()},onContextMenu:M=>{M.preventDefault(),M.stopPropagation();const B=ue.current?.getBoundingClientRect();B&&ae({x:M.clientX-B.left,y:M.clientY-B.top,elementId:l.id})},className:"relative rounded-lg shadow-xl",style:{pointerEvents:"auto",width:`${pe}px`,height:`${ke}px`},children:[jsxRuntimeExports.jsx(CodeSandboxWrapper,{elementId:l.id,data:d,onElementUpdate:n?async(M,B)=>{await n(M,B),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e})}:void 0,onPointerDown:M=>De(M,l.id,d),onPointerMove:He,onPointerUp:Be,onDelete:()=>Ne(l.id)}),Me()]})})},l.id);if(l.type==="math-graph")return jsxRuntimeExports.jsx(Group$1,{children:jsxRuntimeExports.jsx(Html,{divProps:{style:{position:"absolute",top:`${N}px`,left:`${$}px`,pointerEvents:"none",zIndex:Le?20:10}},children:jsxRuntimeExports.jsxs("div",{onPointerDown:M=>{te(l.id),M.stopPropagation()},onContextMenu:M=>{M.preventDefault(),M.stopPropagation();const B=ue.current?.getBoundingClientRect();B&&ae({x:M.clientX-B.left,y:M.clientY-B.top,elementId:l.id})},className:"relative rounded-lg shadow-xl",style:{pointerEvents:"auto",width:`${pe}px`,height:`${ke}px`},children:[jsxRuntimeExports.jsx(MathGraphWrapper,{elementId:l.id,data:d,onElementUpdate:n?async(M,B)=>{await n(M,B),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e})}:void 0,onPointerDown:M=>De(M,l.id,d),onPointerMove:He,onPointerUp:Be,onDelete:()=>Ne(l.id)}),Me()]})})},l.id);if(l.type==="presentation")return jsxRuntimeExports.jsx(Group$1,{children:jsxRuntimeExports.jsx(Html,{divProps:{style:{position:"absolute",top:`${N}px`,left:`${$}px`,pointerEvents:"none",zIndex:Le?20:10}},children:jsxRuntimeExports.jsxs("div",{onPointerDown:M=>{te(l.id),M.stopPropagation()},onContextMenu:M=>{M.preventDefault(),M.stopPropagation();const B=ue.current?.getBoundingClientRect();B&&ae({x:M.clientX-B.left,y:M.clientY-B.top,elementId:l.id})},className:"bg-white border border-gray-305 rounded-lg shadow-xl overflow-hidden flex flex-col font-sans text-sm relative select-none",style:{pointerEvents:"auto",width:`${pe}px`,height:`${ke}px`},children:[jsxRuntimeExports.jsxs("div",{className:"bg-purple-100 text-purple-700 px-3 py-1.5 flex justify-between items-center text-xs font-semibold border-b border-purple-200 cursor-move shrink-0",onPointerDown:M=>De(M,l.id,d),onPointerMove:He,onPointerUp:Be,children:[jsxRuntimeExports.jsx("span",{children:"Interactive Presentation"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntimeExports.jsx("button",{onClick:()=>Ee(l.id),onPointerDown:M=>M.stopPropagation(),className:"p-1 hover:bg-slate-200/50 rounded-full text-purple-600 hover:text-purple-900 transition-colors cursor-pointer flex items-center justify-center",title:"全屏",children:jsxRuntimeExports.jsx(Maximize2,{size:11})}),jsxRuntimeExports.jsx("button",{onClick:async()=>{n&&(await n(l.id,{...d,isMinimized:!d.isMinimized}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}))},onPointerDown:M=>M.stopPropagation(),className:"p-1 hover:bg-slate-200/50 rounded-full text-purple-650 hover:text-purple-900 transition-colors cursor-pointer flex items-center justify-center",title:d.isMinimized?"展开组件":"收起组件",children:d.isMinimized?jsxRuntimeExports.jsx(Maximize2,{size:11}):jsxRuntimeExports.jsx(Minimize2,{size:11})}),jsxRuntimeExports.jsx("button",{onClick:()=>Ne(l.id),onPointerDown:M=>M.stopPropagation(),className:"p-1 hover:bg-slate-200/50 rounded-full text-purple-600 hover:text-red-500 transition-colors cursor-pointer flex items-center justify-center",title:"删除组件",children:jsxRuntimeExports.jsx(Trash2,{size:11})})]})]}),!d.isMinimized&&jsxRuntimeExports.jsx("div",{className:"flex-1 min-h-0 relative bg-white",style:{pointerEvents:"auto"},children:jsxRuntimeExports.jsx(RevealPresentationWrapper,{elementId:l.id,data:d,userRole:u,onElementUpdate:n?async(M,B)=>{await n(M,B),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e})}:void 0})}),!d.isMinimized&&Me()]})})},l.id)}catch(d){console.error(d)}return null},Mt=l=>{l.preventDefault(),l.dataTransfer.dropEffect="copy",b||K(!0)},Lt=l=>{l.preventDefault(),l.dataTransfer.dropEffect="copy",K(!0)},Jt=l=>{l.preventDefault(),l.currentTarget.contains(l.relatedTarget)||K(!1)},wt=(l,d,_,I)=>{const $={x:_,y:I,page:v,segmentId:s};switch(l){case"code-sandbox":return{...$,code:d.code??"console.log('Hello Sandbox!');"};case"math-graph":return{...$,equation:d.equation??"Math.sin(x)"};case"presentation":return{...$,markdown:d.markdown??`# Title Slide
8340
+ </div>`,x:100,y:150,page:c,segmentId:r}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:s},timestamp:Date.now(),correlationId:s})}finally{N(!1)}},className:"p-1.5 rounded-xl text-slate-600 hover:bg-slate-100 transition-all cursor-pointer",title:"插入交互网页课件 (Interactive Courseware)",children:jsxRuntimeExports.jsx(Globe,{size:16})}),jsxRuntimeExports.jsx("div",{className:"w-px h-4 bg-slate-200/80 mx-0.5"}),jsxRuntimeExports.jsx("button",{onClick:async()=>{N(!0);try{await i("rollcall",{title:"随机点名助手",x:120,y:120,page:c,segmentId:r}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:s},timestamp:Date.now(),correlationId:s})}finally{N(!1)}},className:"p-1.5 rounded-xl text-indigo-600 hover:bg-indigo-50 transition-all cursor-pointer flex items-center gap-1 text-xs font-semibold",title:"插入随机点名组件 (Roll Call)",children:jsxRuntimeExports.jsx(UserCheck,{size:15})}),jsxRuntimeExports.jsx("div",{className:"w-px h-4 bg-slate-200/80 mx-0.5"}),jsxRuntimeExports.jsx(ExtensionPointRenderer,{slot:"classroom.tool"}),jsxRuntimeExports.jsx("button",{onClick:async()=>{N(!0);try{(await fetch(`/api/lessons/${s}/ai-tutor`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({elements:h.map(K=>({type:K.type,data:JSON.parse(K.data)}))})})).ok?(frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:s},timestamp:Date.now(),correlationId:s}),U&&U()):j({type:"alert",title:"AI 辅导提示",message:"无法获取 AI 授课助手的帮助,请稍后再试。",onConfirm:()=>j(null)})}finally{N(!1)}},className:"p-1.5 rounded-xl text-purple-600 hover:bg-purple-50 transition-all cursor-pointer",title:"请求 AI 助教建议 (Ask AI Tutor)",children:jsxRuntimeExports.jsx(WandSparkles,{size:16})}),jsxRuntimeExports.jsx("div",{className:"w-px h-4 bg-slate-200/80 mx-0.5"}),jsxRuntimeExports.jsx("button",{onClick:()=>g(C=>!C),className:`p-1.5 rounded-xl transition-all cursor-pointer ${p?"text-indigo-600 bg-indigo-50/80":"text-slate-400 hover:bg-slate-100"}`,title:p?"关闭网格背景":"开启网格背景",children:jsxRuntimeExports.jsx(Grid3x3,{size:16})}),u&&jsxRuntimeExports.jsxs("button",{onClick:()=>{v(u),o(null)},className:"px-2 py-1 rounded-xl text-rose-600 bg-rose-50 hover:bg-rose-100 border border-rose-200/80 shadow-2xs font-semibold flex items-center gap-1 text-xs transition-all cursor-pointer",title:"删除选中图形",children:[jsxRuntimeExports.jsx(Trash2,{size:13})," 删除"]}),k!=="student"?jsxRuntimeExports.jsx("button",{onClick:q,className:"p-1.5 rounded-xl text-slate-500 hover:text-rose-600 hover:bg-rose-50 transition-all cursor-pointer",title:"清空白板 (Clear Board)",children:jsxRuntimeExports.jsx(Eraser,{size:16})}):jsxRuntimeExports.jsx("button",{onClick:b,className:"p-1.5 rounded-xl text-slate-500 hover:text-amber-600 hover:bg-amber-50 transition-all cursor-pointer",title:"重置白板 (Reset Board)",children:jsxRuntimeExports.jsx(RotateCcw,{size:16})}),w&&jsxRuntimeExports.jsx(LoaderCircle,{size:15,className:"text-indigo-500 animate-spin ml-1"})]}),WhiteboardPageBar=({pages:e,currentPage:t,showPageDrawer:o,setShowPageDrawer:n,editingPageIdx:a,setEditingPageIdx:i,editingPageTitle:c,setEditingPageTitle:r,activeMenuPageIdx:s,setActiveMenuPageIdx:h,safeElements:u,handleSwitchPage:p,handleRenamePage:g,handleDuplicatePage:k,handleMovePage:w,handleDeletePage:N,handleAddPage:q})=>jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"absolute bottom-3 left-1/2 -translate-x-1/2 z-20 flex items-center gap-1.5 bg-white/95 backdrop-blur-md px-3 py-1.5 rounded-full shadow-lg border border-slate-200/80 font-sans select-none",children:[jsxRuntimeExports.jsxs("button",{onClick:()=>n(!o),className:`p-1.5 rounded-full transition-colors cursor-pointer flex items-center gap-1 text-xs font-medium ${o?"bg-indigo-100 text-indigo-700":"text-slate-600 hover:bg-slate-100"}`,title:"页面大纲与预览 (Pages Outline)",children:[jsxRuntimeExports.jsx(LayoutGrid,{size:15}),jsxRuntimeExports.jsxs("span",{className:"hidden sm:inline text-[11px] font-semibold",children:["大纲 (",e.length,")"]})]}),jsxRuntimeExports.jsx("div",{className:"h-4 w-px bg-slate-200 mx-0.5"}),jsxRuntimeExports.jsx("button",{onClick:()=>p(Math.max(0,t-1)),className:"p-1 hover:bg-slate-100 rounded-full text-slate-600 disabled:opacity-30 disabled:hover:bg-transparent transition-colors cursor-pointer",disabled:t===0,title:"上一页",children:jsxRuntimeExports.jsx(ChevronLeft,{size:16})}),jsxRuntimeExports.jsx("div",{className:"flex items-center gap-1 max-w-[500px] overflow-x-auto no-scrollbar py-0.5",children:e.map((b,v)=>{const j=v===t,F=a===v;return jsxRuntimeExports.jsxs("div",{className:"relative group flex items-center",children:[F?jsxRuntimeExports.jsx("input",{type:"text",autoFocus:!0,value:c,onChange:U=>r(U.target.value),onKeyDown:U=>{U.key==="Enter"&&g(v,c),U.key==="Escape"&&i(null)},onBlur:()=>g(v,c),className:"px-2 py-0.5 text-xs font-bold bg-white border border-indigo-500 rounded-full outline-none w-28 text-slate-800 shadow-2xs"}):jsxRuntimeExports.jsx("button",{onClick:()=>p(v),onDoubleClick:()=>{i(v),r(b.title)},className:`px-3 py-1 rounded-full text-xs font-bold transition-all cursor-pointer flex items-center gap-1 border ${j?"bg-indigo-600 text-white border-indigo-600 shadow-2xs":"text-slate-600 hover:bg-slate-100 hover:text-slate-900 border-transparent"}`,title:"双击重命名",children:jsxRuntimeExports.jsx("span",{className:"truncate max-w-[120px]",children:b.title})}),jsxRuntimeExports.jsx("button",{onClick:U=>{U.stopPropagation(),h(s===v?null:v)},className:`p-0.5 rounded-full hover:bg-black/10 transition-colors ml-[-4px] z-10 ${j?"text-white/80 hover:text-white":"text-slate-400 hover:text-slate-600"}`,title:"页面选项",children:jsxRuntimeExports.jsx(ChevronDown,{size:12})}),s===v&&jsxRuntimeExports.jsxs("div",{className:"absolute bottom-full mb-2 left-1/2 -translate-x-1/2 bg-white rounded-xl shadow-xl border border-slate-100 py-1 w-36 z-50 text-xs font-normal",onClick:U=>U.stopPropagation(),children:[jsxRuntimeExports.jsxs("button",{onClick:()=>{i(v),r(b.title),h(null)},className:"w-full px-3 py-1.5 text-left text-slate-700 hover:bg-indigo-50 hover:text-indigo-600 flex items-center gap-2 cursor-pointer",children:[jsxRuntimeExports.jsx(PenLine,{size:13})," 重命名"]}),jsxRuntimeExports.jsxs("button",{onClick:()=>{k(v),h(null)},className:"w-full px-3 py-1.5 text-left text-slate-700 hover:bg-indigo-50 hover:text-indigo-600 flex items-center gap-2 cursor-pointer",children:[jsxRuntimeExports.jsx(Copy,{size:13})," 复制页面"]}),v>0&&jsxRuntimeExports.jsxs("button",{onClick:()=>{w(v,"left"),h(null)},className:"w-full px-3 py-1.5 text-left text-slate-700 hover:bg-indigo-50 hover:text-indigo-600 flex items-center gap-2 cursor-pointer",children:[jsxRuntimeExports.jsx(ChevronLeft,{size:13})," 向左移动"]}),v<e.length-1&&jsxRuntimeExports.jsxs("button",{onClick:()=>{w(v,"right"),h(null)},className:"w-full px-3 py-1.5 text-left text-slate-700 hover:bg-indigo-50 hover:text-indigo-600 flex items-center gap-2 cursor-pointer",children:[jsxRuntimeExports.jsx(ChevronRight,{size:13})," 向右移动"]}),jsxRuntimeExports.jsx("div",{className:"my-1 border-t border-slate-100"}),jsxRuntimeExports.jsxs("button",{onClick:()=>{N(v),h(null)},className:"w-full px-3 py-1.5 text-left text-red-600 hover:bg-red-50 flex items-center gap-2 cursor-pointer disabled:opacity-30",disabled:e.length<=1,children:[jsxRuntimeExports.jsx(Trash2,{size:13})," 删除页面"]})]})]},b.id||v)})}),jsxRuntimeExports.jsx("button",{onClick:()=>q(),className:"p-1 hover:bg-indigo-50 hover:text-indigo-600 text-slate-400 rounded-full transition-colors cursor-pointer ml-0.5",title:"新建白板页面",children:jsxRuntimeExports.jsx(Plus,{size:16})}),jsxRuntimeExports.jsx("button",{onClick:()=>p(Math.min(e.length-1,t+1)),className:"p-1 hover:bg-slate-100 rounded-full text-slate-600 disabled:opacity-30 disabled:hover:bg-transparent transition-colors cursor-pointer",disabled:t>=e.length-1,title:"下一页",children:jsxRuntimeExports.jsx(ChevronRight,{size:16})})]}),o&&jsxRuntimeExports.jsx("div",{className:"absolute inset-0 bg-slate-900/30 backdrop-blur-xs z-30 flex flex-col justify-end pointer-events-auto font-sans",onClick:()=>n(!1),children:jsxRuntimeExports.jsxs("div",{className:"bg-white/95 backdrop-blur-xl border-t border-slate-200 rounded-t-2xl shadow-2xl p-4 max-h-[70vh] flex flex-col w-full max-w-5xl mx-auto animate-in slide-in-from-bottom duration-200",onClick:b=>b.stopPropagation(),children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between pb-3 border-b border-slate-100 shrink-0",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(LayoutGrid,{className:"w-5 h-5 text-indigo-600"}),jsxRuntimeExports.jsx("h3",{className:"font-bold text-slate-800 text-sm",children:"白板页面大纲与预览"}),jsxRuntimeExports.jsxs("span",{className:"px-2 py-0.5 bg-indigo-50 text-indigo-600 text-xs rounded-full font-semibold",children:["共 ",e.length," 页"]})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsxs("button",{onClick:()=>q(),className:"px-3 py-1.5 bg-indigo-600 hover:bg-indigo-700 text-white rounded-lg text-xs font-semibold flex items-center gap-1.5 transition-colors cursor-pointer shadow-xs",children:[jsxRuntimeExports.jsx(Plus,{size:14})," 新建页面"]}),jsxRuntimeExports.jsx("button",{onClick:()=>n(!1),className:"p-1.5 hover:bg-slate-100 rounded-full text-slate-400 hover:text-slate-600 transition-colors cursor-pointer",children:jsxRuntimeExports.jsx(X,{size:16})})]})]}),jsxRuntimeExports.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-3 py-4 overflow-y-auto max-h-[50vh]",children:e.map((b,v)=>{const j=v===t,F=u.filter(U=>U.type!=="page_meta"&&(()=>{try{const C=JSON.parse(U.data);return(C.page??0)===v||C.pageId===b.id}catch{return v===0}})()).length;return jsxRuntimeExports.jsxs("div",{onClick:()=>{p(v),n(!1)},className:`relative flex flex-col p-3 rounded-xl border-2 transition-all cursor-pointer group bg-white ${j?"border-indigo-600 bg-indigo-50/20 shadow-md ring-2 ring-indigo-500/20":"border-slate-200/80 hover:border-indigo-300 hover:shadow-sm"}`,children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between mb-2",children:[jsxRuntimeExports.jsxs("span",{className:`text-[11px] font-extrabold px-2 py-0.5 rounded-md ${j?"bg-indigo-600 text-white":"bg-slate-100 text-slate-600"}`,children:["P",v+1]}),j&&jsxRuntimeExports.jsx("span",{className:"text-[10px] font-bold text-indigo-600 bg-indigo-50 px-1.5 py-0.5 rounded",children:"当前激活"})]}),jsxRuntimeExports.jsxs("div",{className:"h-20 bg-slate-50 border border-slate-100 rounded-lg flex flex-col items-center justify-center mb-2 overflow-hidden relative",children:[jsxRuntimeExports.jsx(FileText,{size:24,className:j?"text-indigo-400":"text-slate-300"}),jsxRuntimeExports.jsxs("span",{className:"text-[10px] text-slate-400 font-medium mt-1",children:[F," 个组件/笔画"]})]}),jsxRuntimeExports.jsx("div",{className:"font-bold text-xs text-slate-800 truncate mb-1",title:b.title,children:b.title}),jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between pt-2 border-t border-slate-100 text-slate-400 text-[11px]",onClick:U=>U.stopPropagation(),children:[jsxRuntimeExports.jsx("button",{onClick:()=>{i(v),r(b.title)},className:"hover:text-indigo-600 p-1 rounded hover:bg-slate-100 transition-colors",title:"重命名",children:jsxRuntimeExports.jsx(PenLine,{size:13})}),jsxRuntimeExports.jsx("button",{onClick:()=>k(v),className:"hover:text-indigo-600 p-1 rounded hover:bg-slate-100 transition-colors",title:"复制页面",children:jsxRuntimeExports.jsx(Copy,{size:13})}),v>0&&jsxRuntimeExports.jsx("button",{onClick:()=>w(v,"left"),className:"hover:text-indigo-600 p-1 rounded hover:bg-slate-100 transition-colors",title:"向左移",children:jsxRuntimeExports.jsx(ChevronLeft,{size:13})}),v<e.length-1&&jsxRuntimeExports.jsx("button",{onClick:()=>w(v,"right"),className:"hover:text-indigo-600 p-1 rounded hover:bg-slate-100 transition-colors",title:"向右移",children:jsxRuntimeExports.jsx(ChevronRight,{size:13})}),jsxRuntimeExports.jsx("button",{onClick:()=>N(v),className:"hover:text-red-600 p-1 rounded hover:bg-red-50 transition-colors disabled:opacity-30",disabled:e.length<=1,title:"删除页面",children:jsxRuntimeExports.jsx(Trash2,{size:13})})]})]},b.id||v)})})]})})]}),WhiteboardDialog=({dialog:e,dialogInput:t,setDialogInput:o,setDialog:n})=>e?jsxRuntimeExports.jsx("div",{className:"absolute inset-0 bg-neutral-900/40 backdrop-blur-[2px] flex items-center justify-center z-[9999] p-4 font-sans",children:jsxRuntimeExports.jsxs("div",{className:"bg-white rounded-xl shadow-2xl overflow-hidden max-w-sm w-full border border-gray-100 flex flex-col scale-100 pointer-events-auto",children:[jsxRuntimeExports.jsxs("div",{className:"px-5 py-4 border-b border-gray-150/60 bg-gray-50 flex justify-between items-center shrink-0",children:[jsxRuntimeExports.jsx("h3",{className:"font-bold text-gray-800 text-sm",children:e.title}),jsxRuntimeExports.jsx("button",{onClick:()=>n(null),className:"text-gray-400 hover:text-gray-650 transition-colors text-xl font-light cursor-pointer",children:"×"})]}),jsxRuntimeExports.jsxs("div",{className:"p-5 flex-1 min-h-0",children:[jsxRuntimeExports.jsx("p",{className:"text-xs text-gray-600 leading-relaxed whitespace-pre-wrap mb-4 font-medium",children:e.message}),e.type==="prompt"&&jsxRuntimeExports.jsx("textarea",{value:t,onChange:a=>o(a.target.value),placeholder:e.placeholder,className:"w-full h-32 p-3 border border-gray-300 rounded-lg text-xs font-mono focus:outline-none focus:ring-2 focus:ring-indigo-500 bg-gray-50 focus:bg-white transition-all resize-none font-medium",onPointerDown:a=>a.stopPropagation()})]}),jsxRuntimeExports.jsxs("div",{className:"px-5 py-3 border-t border-gray-100 bg-gray-50 flex justify-end gap-2 text-xs shrink-0",children:[e.type!=="alert"&&jsxRuntimeExports.jsx("button",{onClick:()=>n(null),className:"px-4 py-2 text-gray-500 hover:bg-gray-100 rounded-lg transition-colors font-medium border border-gray-200 cursor-pointer",children:"取消"}),jsxRuntimeExports.jsx("button",{onClick:async()=>{try{await e.onConfirm(t)}catch(a){console.error("Dialog action error:",a)}},className:"px-4 py-2 bg-indigo-600 hover:bg-indigo-700 text-white rounded-lg font-semibold transition-all shadow-sm cursor-pointer",children:"确定"})]})]})}):null,CoursewareEntrySelectorModal=({showEntrySelector:e,setShowEntrySelector:t,zipUploadInfo:o,zipCandidates:n,handlePropsUpdate:a,fetchCoursewares:i})=>!e||!o?null:jsxRuntimeExports.jsx("div",{className:"absolute inset-0 bg-neutral-900/40 backdrop-blur-[2px] flex items-center justify-center z-[9999] p-4 font-sans",children:jsxRuntimeExports.jsxs("div",{className:"bg-white rounded-xl shadow-2xl overflow-hidden max-w-sm w-full border border-gray-100 flex flex-col scale-100 pointer-events-auto",children:[jsxRuntimeExports.jsxs("div",{className:"px-5 py-4 border-b border-gray-150/60 bg-gray-50 flex justify-between items-center shrink-0",children:[jsxRuntimeExports.jsx("h3",{className:"font-bold text-gray-800 text-sm",children:"选择课件入口页面"}),jsxRuntimeExports.jsx("button",{onClick:()=>t(!1),className:"text-gray-400 hover:text-gray-650 transition-colors text-xl font-light cursor-pointer",children:"×"})]}),jsxRuntimeExports.jsxs("div",{className:"p-5 flex-1 min-h-0 space-y-3",children:[jsxRuntimeExports.jsx("p",{className:"text-xs text-gray-600 leading-relaxed font-medium",children:"ZIP压缩包中含有多个HTML文件,请选择一个作为课件入口:"}),jsxRuntimeExports.jsx("div",{className:"max-h-60 overflow-y-auto border border-gray-200 rounded-lg p-2 bg-gray-50 space-y-1",children:n.map(c=>jsxRuntimeExports.jsxs("button",{onClick:async()=>{try{const r=await fetch("/api/courseware/confirm",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({uuid:o.uuid,name:o.name,entry:c})});if(r.ok){const s=await r.json();a({coursewareUuid:s.uuid,resourceId:""}),t(!1),i()}}catch(r){console.error("Failed to confirm entry point:",r)}},className:"w-full text-left p-2 rounded hover:bg-indigo-50 hover:text-indigo-700 text-xs font-semibold font-mono truncate transition-all cursor-pointer",children:["📄 ",c]},c))})]}),jsxRuntimeExports.jsx("div",{className:"px-5 py-3 border-t border-gray-100 bg-gray-50 flex justify-end gap-2 text-xs shrink-0",children:jsxRuntimeExports.jsx("button",{onClick:()=>t(!1),className:"px-4 py-2 text-gray-500 hover:bg-gray-100 rounded-lg transition-colors font-medium border border-gray-200 cursor-pointer",children:"取消"})})]})});class FullscreenRendererRegistry{constructor(){this.renderers=new Map}register(t,o){this.renderers.set(t,o)}get(t){return this.renderers.get(t)}has(t){return this.renderers.has(t)}}const fullscreenRendererRegistry=new FullscreenRendererRegistry,FullscreenOverlay=({type:e,title:t,data:o,containerSize:n,onClose:a,lessonId:i})=>{React.useEffect(()=>{const u=p=>{p.key==="Escape"&&a()};return window.addEventListener("keydown",u),()=>window.removeEventListener("keydown",u)},[a]);const c=fullscreenRendererRegistry.get(e),[r,s]=reactExports.useState({width:window.innerWidth,height:window.innerHeight});reactExports.useEffect(()=>{const u=()=>s({width:window.innerWidth,height:window.innerHeight});return window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)},[]);const h=jsxRuntimeExports.jsx("div",{className:"fixed inset-0 z-[99999] bg-black/60 flex items-center justify-center",style:{pointerEvents:"auto"},children:jsxRuntimeExports.jsxs("div",{className:"relative bg-white rounded-xl shadow-2xl overflow-hidden flex flex-col",style:{width:Math.max(400,r.width-32),height:Math.max(300,r.height-32)},children:[jsxRuntimeExports.jsxs("div",{className:"bg-indigo-50 text-indigo-700 px-4 py-2 flex justify-between items-center text-sm font-semibold border-b border-indigo-100 shrink-0",children:[jsxRuntimeExports.jsx("span",{className:"truncate",children:t}),jsxRuntimeExports.jsxs("button",{onClick:a,className:"p-1.5 hover:bg-indigo-200/50 rounded-lg text-indigo-600 hover:text-indigo-900 transition-colors cursor-pointer flex items-center gap-1 text-xs",children:[jsxRuntimeExports.jsx(Minimize2,{size:14})," 退出全屏"]})]}),jsxRuntimeExports.jsx("div",{className:"absolute top-3 right-3 z-10",children:jsxRuntimeExports.jsx("button",{onClick:a,className:"w-8 h-8 flex items-center justify-center rounded-full bg-black/20 hover:bg-black/40 text-white transition-colors cursor-pointer",title:"关闭 (ESC)",children:jsxRuntimeExports.jsx(X,{size:16})})}),jsxRuntimeExports.jsx("div",{className:"flex-1 overflow-auto p-6",children:c?jsxRuntimeExports.jsx(c,{elementType:e,data:o,onClose:a,containerSize:r,lessonId:i}):jsxRuntimeExports.jsx(DefaultFullscreenRenderer,{elementType:e,data:o,onClose:a,containerSize:r,lessonId:i})})]})});return reactDomExports.createPortal(h,document.body)},PRIORITY_FIELDS=[{field:"text",icon:"📝",label:"文本"},{field:"markdown",icon:"📄",label:"Markdown"},{field:"code",icon:"💻",label:"代码"},{field:"question",icon:"❓",label:"测验",extra:["options"]},{field:"equation",icon:"📐",label:"公式"},{field:"url",icon:"🔗",label:"链接"},{field:"src",icon:"🖼",label:"图片"},{field:"coursewareUuid",icon:"📚",label:"课件"}];function DefaultFullscreenRenderer({data:e}){const t=PRIORITY_FIELDS.find(c=>e[c.field]!==void 0&&e[c.field]!==null&&e[c.field]!=="");if(!t)return jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center justify-center h-full gap-4 text-gray-500",children:[jsxRuntimeExports.jsx(BookOpen,{size:48,className:"opacity-30"}),jsxRuntimeExports.jsx("div",{className:"text-sm font-medium",children:"自动识别渲染"}),jsxRuntimeExports.jsx("pre",{className:"text-xs text-left bg-gray-50 border rounded-lg p-4 max-w-full max-h-80 overflow-auto font-mono",children:JSON.stringify(e,null,2)})]});const{field:o,icon:n,label:a,extra:i}=t;if(o==="markdown")return jsxRuntimeExports.jsx("div",{className:"prose prose-sm max-w-none",children:jsxRuntimeExports.jsx(Markdown,{children:String(e.markdown)})});if(o==="code")return jsxRuntimeExports.jsx("textarea",{value:String(e.code),readOnly:!0,className:"w-full h-full p-4 bg-gray-900 text-green-400 font-mono text-sm rounded-xl resize-none"});if(o==="text")return jsxRuntimeExports.jsx("div",{className:"flex items-start h-full",children:jsxRuntimeExports.jsx("div",{className:"text-lg whitespace-pre-wrap leading-relaxed",children:String(e.text)})});if(o==="question"){const c=Array.isArray(e.options)?e.options:[];return jsxRuntimeExports.jsxs("div",{className:"max-w-2xl mx-auto space-y-6",children:[jsxRuntimeExports.jsx("h3",{className:"text-xl font-bold text-gray-800",children:e.question}),jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-3",children:c.map((r,s)=>jsxRuntimeExports.jsxs("div",{className:"px-5 py-4 text-left bg-gray-50 border-2 border-gray-200 rounded-xl text-base",children:[jsxRuntimeExports.jsxs("span",{className:"font-bold text-indigo-600 mr-3",children:["ABCDEFGHIJKLMNOPQRSTUVWXYZ"[s],"."]}),r]},s))})]})}return o==="url"?jsxRuntimeExports.jsx("div",{className:"flex items-center justify-center h-full",children:jsxRuntimeExports.jsx("a",{href:String(e.url),target:"_blank",rel:"noopener noreferrer",className:"text-indigo-600 underline text-lg",children:String(e.url)})}):o==="src"?jsxRuntimeExports.jsx("div",{className:"flex items-center justify-center h-full",children:jsxRuntimeExports.jsx("img",{src:String(e.src),alt:"",className:"max-w-full max-h-full object-contain rounded-lg"})}):o==="coursewareUuid"?jsxRuntimeExports.jsx("iframe",{src:`/runtime/${e.coursewareUuid}/`,sandbox:"allow-scripts allow-same-origin allow-forms allow-downloads",className:"w-full h-full rounded-xl border"}):o==="equation"?jsxRuntimeExports.jsx("div",{className:"flex items-center justify-center h-full",children:jsxRuntimeExports.jsx("div",{className:"text-2xl font-mono text-gray-800 bg-gray-50 px-8 py-4 rounded-xl border",children:String(e.equation)})}):jsxRuntimeExports.jsx("div",{className:"flex items-center justify-center h-full",children:jsxRuntimeExports.jsxs("div",{className:"text-center",children:[jsxRuntimeExports.jsx("div",{className:"text-4xl mb-2",children:n}),jsxRuntimeExports.jsx("div",{className:"text-lg font-semibold text-gray-800",children:a}),jsxRuntimeExports.jsx("pre",{className:"mt-4 text-xs text-gray-500 max-w-md overflow-auto",children:JSON.stringify(e,null,2)})]})})}class PropertyEditorRegistry{constructor(){this.editors=new Map}register(t,o){this.editors.set(t,o)}get(t){return this.editors.get(t)}has(t){return this.editors.has(t)}}const propertyEditorRegistry=new PropertyEditorRegistry;fullscreenRendererRegistry.register("quiz",({data:e})=>jsxRuntimeExports.jsxs("div",{className:"max-w-2xl mx-auto space-y-6",children:[jsxRuntimeExports.jsx("h3",{className:"text-xl font-bold text-gray-800",children:e.question}),jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-3",children:(e.options||[]).map((t,o)=>jsxRuntimeExports.jsxs("button",{className:"px-5 py-4 text-left bg-gray-50 border-2 border-gray-200 rounded-xl text-base hover:bg-gray-100 transition-colors",children:[jsxRuntimeExports.jsxs("span",{className:"font-bold text-indigo-600 mr-3",children:["ABCDEFGHIJKLMNOPQRSTUVWXYZ"[o],"."]}),t]},o))}),e.submissions&&Object.keys(e.submissions).length>0&&jsxRuntimeExports.jsx("div",{className:"mt-4 p-4 bg-gray-50 rounded-xl",children:jsxRuntimeExports.jsxs("p",{className:"text-sm font-semibold text-gray-600",children:["提交统计: ",Object.keys(e.submissions).length," 人已作答"]})})]}));fullscreenRendererRegistry.register("timer",({data:e})=>jsxRuntimeExports.jsx("div",{className:"flex items-center justify-center h-full",children:jsxRuntimeExports.jsxs("div",{className:"text-center",children:[jsxRuntimeExports.jsxs("div",{className:"text-8xl font-mono font-bold text-orange-600 mb-4",children:[String(Math.floor((e.remaining??e.duration??60)/60)).padStart(2,"0"),":",String((e.remaining??e.duration??60)%60).padStart(2,"0")]}),jsxRuntimeExports.jsx("p",{className:"text-lg text-gray-500",children:e.label||"计时器"})]})}));fullscreenRendererRegistry.register("assignment",({data:e})=>jsxRuntimeExports.jsxs("div",{className:"max-w-2xl mx-auto space-y-6",children:[jsxRuntimeExports.jsx("h3",{className:"text-xl font-bold text-gray-800",children:e.title}),jsxRuntimeExports.jsx("p",{className:"text-gray-600 text-base whitespace-pre-wrap",children:e.description}),jsxRuntimeExports.jsx("button",{className:"w-full bg-orange-600 hover:bg-orange-700 text-white font-medium py-3 rounded-xl transition-colors text-base shadow-sm cursor-pointer",children:"Upload File"})]}));fullscreenRendererRegistry.register("rollcall",({data:e})=>jsxRuntimeExports.jsx("div",{className:"flex items-center justify-center h-full",children:jsxRuntimeExports.jsxs("div",{className:"text-center",children:[jsxRuntimeExports.jsx("div",{className:"text-6xl font-bold text-indigo-600 mb-4",children:e.selectedStudent||"点击点名"}),jsxRuntimeExports.jsx("p",{className:"text-lg text-gray-500",children:"随机点名"})]})}));fullscreenRendererRegistry.register("html-applet",({data:e,lessonId:t})=>e.coursewareUuid?jsxRuntimeExports.jsx("iframe",{src:`/runtime/${e.coursewareUuid}/`,sandbox:"allow-scripts allow-same-origin allow-forms allow-downloads",className:"w-full h-full rounded-xl border"}):e.resourceId?jsxRuntimeExports.jsx("iframe",{src:`/api/resources/${e.resourceId}/`,sandbox:"allow-scripts allow-same-origin allow-forms allow-downloads",className:"w-full h-full rounded-xl border"}):jsxRuntimeExports.jsx("iframe",{srcDoc:wrapSrcDocWithBridge(e.code||"",t),sandbox:"allow-scripts allow-same-origin allow-forms allow-downloads",className:"w-full h-full rounded-xl border"}));const DEFAULT_WHITEBOARD_PAGES=[{id:"page-0",title:"P1 · 引入导入",order:0},{id:"page-1",title:"P2 · 核心讲解",order:1},{id:"page-2",title:"P3 · 互动练习",order:2}],InteractiveWhiteboard=reactExports.forwardRef(({lessonId:e,elements:t,onElementAdd:o,onElementUpdate:n,onElementDelete:a,onClearBoard:i,onRefresh:c,enableAutoAI:r,activeSegmentId:s,onSegmentSync:h,userRole:u="teacher",isEditMode:p=!0},g)=>{const k=Array.isArray(t)?t:[],[w,N]=reactExports.useState("cursor"),[q,b]=reactExports.useState("#facc15"),[v,j]=reactExports.useState(0),[F,U]=reactExports.useState(!0),[C,K]=reactExports.useState(!1),[Z,ee]=reactExports.useState(DEFAULT_WHITEBOARD_PAGES),[oe,H]=reactExports.useState(!1),[E,J]=reactExports.useState(null),[z,A]=reactExports.useState(""),[Q,se]=reactExports.useState(null);reactExports.useEffect(()=>{const l=k.find(d=>d.type==="page_meta");if(l)try{const d=JSON.parse(l.data);Array.isArray(d.pages)&&d.pages.length>0&&ee(d.pages)}catch(d){console.error("Failed to parse whiteboard page_meta:",d)}},[t]);const ge=l=>{const d=k.find(_=>_.type==="page_meta");d&&n?n(d.id,{pages:l}):o&&o("page_meta",{pages:l}),me.current&&me.current.emit("whiteboard-update",{roomId:e,type:"page-meta-update",payload:{pages:l}})},be=l=>{j(l),se(null),me.current&&me.current.emit("whiteboard-update",{roomId:e,type:"page-change",payload:{page:l}})},m=l=>{const d=Z.length,_={id:`page-${Date.now()}-${d}`,title:l||`P${d+1} · 备课页面`,order:d},I=[...Z,_];ee(I),j(d),ge(I),me.current&&me.current.emit("whiteboard-update",{roomId:e,type:"page-change",payload:{page:d}})},_e=(l,d)=>{if(!d.trim()){J(null);return}const _=Z.map((I,$)=>$===l?{...I,title:d.trim()}:I);ee(_),ge(_),J(null),A("")},we=l=>{const d=Z[l];if(!d)return;const _=l+1,I={id:`page-${Date.now()}-${_}`,title:`${d.title} (副本)`,order:_},$=[...Z.slice(0,_),I,...Z.slice(_).map(R=>({...R,order:R.order+1}))];ee($),j(_),ge($),k.filter(R=>R.type!=="page_meta"&&(()=>{try{const G=JSON.parse(R.data);return(G.page??0)===l||G.pageId===d.id}catch{return l===0}})()).forEach(R=>{try{const G=JSON.parse(R.data);o&&o(R.type,{...G,page:_,pageId:I.id,x:(G.x??100)+20,y:(G.y??100)+20})}catch(G){console.error("Failed duplicating page element:",G)}})},f=l=>{if(Z.length<=1){je({title:"无法删除",message:"至少需要保留一个白板页面!",type:"alert"});return}const d=Z[l],_=k.filter($=>$.type!=="page_meta"&&(()=>{try{const S=JSON.parse($.data);return(S.page??0)===l||S.pageId===d.id}catch{return l===0}})()),I=()=>{a&&_.forEach(R=>a(R.id));const $=Z.filter((R,G)=>G!==l).map((R,G)=>({...R,order:G}));ee($);const S=Math.min(v,$.length-1);j(S),ge($)};_.length>0?je({title:"确认删除白板页面",message:`页面 [${d.title}] 包含 ${_.length} 个组件,删除页面将同时清理该页面的组件,是否确定删除?`,type:"confirm",onConfirm:I}):I()},Ce=(l,d)=>{const _=d==="left"?l-1:l+1;if(_<0||_>=Z.length)return;const I=[...Z],$=I[l];I[l]=I[_],I[_]=$,I.forEach((S,R)=>{S.order=R}),ee(I),v===l?j(_):v===_&&j(l),ge(I)},[ie,le]=reactExports.useState(null),[D,W]=reactExports.useState(!1),ce=reactExports.useRef(null),[he,ve]=reactExports.useState({width:0,height:0}),ue=reactExports.useRef(null),[Re,de]=reactExports.useState(!1),me=reactExports.useRef(null),[Qe,We]=reactExports.useState({}),[ut,nt]=reactExports.useState({}),[at,pt]=reactExports.useState({}),[yt,kt]=reactExports.useState({}),[Ge,Ee]=reactExports.useState(null),[L,P]=reactExports.useState(null),V=reactExports.useRef(null),T=reactExports.useRef(null),ne=reactExports.useRef(null),[O,qe]=reactExports.useState(null),te=l=>{u==="teacher"&&qe(l)},[Pe,Fe]=reactExports.useState(null),ae=l=>{u==="teacher"&&Fe(l)},[ze,$e]=reactExports.useState(null),[Te,it]=reactExports.useState(null),Xe=reactExports.useRef(null),[Ct,je]=reactExports.useState(null),[bt,mt]=reactExports.useState(""),[Y,Ae]=reactExports.useState(null),[Ze,ct]=reactExports.useState({}),[Ke,rt]=reactExports.useState({}),[It,Nt]=reactExports.useState([]),[Yt,xt]=reactExports.useState(!1),[St,$t]=reactExports.useState([]),[jt,Pt]=reactExports.useState([]),[At,Rt]=reactExports.useState(null),[qt,gt]=reactExports.useState(!1),dt=async()=>{try{const l=await fetch("/api/courseware");if(l.ok){const d=await l.json();$t(d)}}catch(l){console.error("Error fetching coursewares:",l)}},st=async()=>{try{xt(!0);const l=await fetch("/api/resources");if(l.ok){const d=await l.json();Nt(d)}}catch(l){console.error("Error fetching system resources:",l)}finally{xt(!1)}};reactExports.useEffect(()=>{if(O){const l=k.find(d=>d.id===O);if(l){l.type==="html-applet"&&(st(),dt());try{Ae(JSON.parse(l.data))}catch{Ae({})}}else Ae(null)}else Ae(null)},[O,t]);const Ve=async l=>{const d=k.find(R=>R.id===O);if(!d)return;let _={};try{_=JSON.parse(d.data)}catch{}const I={..._,...l},$=d.data,S=JSON.stringify(I);if($!==S&&(ct(R=>{const G=R[d.id]?[...R[d.id]]:[];return G.length>=30&&G.shift(),G.push($),{...R,[d.id]:G}}),rt(R=>({...R,[d.id]:[]}))),n){de(!0);try{await n(d.id,I),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}),c&&c()}catch(R){console.error("更新属性失败:",R)}finally{de(!1)}}},zt=async()=>{if(!O)return;const l=k.find(S=>S.id===O);if(!l)return;const d=Ze[O]||[];if(d.length===0)return;const _=d[d.length-1],I=d.slice(0,d.length-1),$=l.data;if(rt(S=>{const R=S[O]?[...S[O]]:[];return R.push($),{...S,[O]:R}}),ct(S=>({...S,[O]:I})),n){de(!0);try{const S=JSON.parse(_);Ae(S),await n(O,S),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}),c&&c()}catch(S){console.error("撤销修改失败:",S)}finally{de(!1)}}},Et=async()=>{if(!O)return;const l=k.find(S=>S.id===O);if(!l)return;const d=Ke[O]||[];if(d.length===0)return;const _=d[d.length-1],I=d.slice(0,d.length-1),$=l.data;if(ct(S=>{const R=S[O]?[...S[O]]:[];return R.push($),{...S,[O]:R}}),rt(S=>({...S,[O]:I})),n){de(!0);try{const S=JSON.parse(_);Ae(S),await n(O,S),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}),c&&c()}catch(S){console.error("重做修改失败:",S)}finally{de(!1)}}},fe=(l,d)=>{Ae(_=>_&&{..._,[l]:d})},Ie=(l,d)=>{Ve({[l]:d})},Oe=l=>{Ae(d=>d&&{...d,...l}),Ve(l)},Ue=(l,d)=>{const _=parseFloat(d);isNaN(_)||Ve({[l]:_})},Dt=(l,d)=>{Ae(_=>{if(!_)return _;const I=[..._.options||[]];return I[l]=d,{..._,options:I}})},Ht=(l,d)=>{if(!Y)return;const _=[...Y.options||[]];_[l]=d,Ve({options:_})},Bt=()=>{if(!Y)return;const l=Y.options||[],_="ABCDEFGHIJKLMNOPQRSTUVWXYZ"[l.length]||`Option ${l.length+1}`,I=[...l,`选项 ${_}`];Ae($=>$&&{...$,options:I}),Ve({options:I})},Ft=l=>{if(!Y)return;const d=(Y.options||[]).filter((_,I)=>I!==l);Ae(_=>_&&{..._,options:d}),Ve({options:d})};reactExports.useEffect(()=>{const l=()=>{ae(null)};return window.addEventListener("click",l),()=>window.removeEventListener("click",l)},[]);const Tt=l=>{try{const d=JSON.parse(l.data);if(l.type==="pen"&&d.points){let _=1/0,I=-1/0,$=1/0;for(let S=0;S<d.points.length;S+=2){const R=d.points[S],G=d.points[S+1];R<_&&(_=R),R>I&&(I=R),G<$&&($=G)}return{x:(_+I)/2,y:$-36}}else if(l.type==="rectangle"||l.type==="shape"&&d.shape==="rect"){const _=d.x??0,I=d.y??0,$=d.width??0,S=d.height??0;return{x:_+$/2,y:(S<0?I+S:I)-36}}else if(l.type==="circle"||l.type==="shape"&&d.shape==="circle"){const _=d.x??0,I=d.y??0,$=d.radius??0;return{x:_,y:I-$-36}}else if(l.type==="text"){const _=d.x??0,I=d.y??0;return{x:_+40,y:I-36}}else if(d.x!==void 0&&d.y!==void 0)return{x:d.x+(d.width?d.width/2:150),y:d.y-36}}catch(d){console.error(d)}return null},De=(l,d,_)=>{if(u!=="teacher")return;l.preventDefault();const I=_.x??0,$=_.y??0,S={id:d,currentX:I,currentY:$,startPointerX:l.clientX,startPointerY:l.clientY,data:_};V.current=S,P(S)},He=l=>{},Be=async l=>{},Ye=(l,d,_,I,$,S,R)=>{if(u!=="teacher")return;l.preventDefault(),l.stopPropagation();const G={id:d,corner:_,startX:l.clientX,startY:l.clientY,initialX:I,initialY:$,initialWidth:S,initialHeight:R},pe={id:d,x:I,y:$,width:S,height:R};T.current=G,ne.current=pe,$e(G),it(pe)},et=l=>{},ot=async l=>{};reactExports.useEffect(()=>{if(!L)return;const l=_=>{if(!V.current)return;const I=_.clientX-V.current.startPointerX,$=_.clientY-V.current.startPointerY,S=V.current.data.x??0,R=V.current.data.y??0;V.current.currentX=S+I,V.current.currentY=R+$,P({...V.current})},d=async _=>{if(!V.current)return;const I=V.current.currentX,$=V.current.currentY,S=V.current.id,R=V.current.data;if(V.current=null,P(null),n){de(!0);try{await n(S,{...R,x:I,y:$}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e})}catch(G){console.error("Drag end update error:",G)}finally{de(!1)}}};return window.addEventListener("pointermove",l),window.addEventListener("pointerup",d),()=>{window.removeEventListener("pointermove",l),window.removeEventListener("pointerup",d)}},[L,n,e]),reactExports.useEffect(()=>{if(!ze||!Te)return;const l=_=>{if(!T.current||!ne.current)return;const I=_.clientX-T.current.startX,$=_.clientY-T.current.startY;let S=T.current.initialX,R=T.current.initialY,G=T.current.initialWidth,pe=T.current.initialHeight;const ke=150,Le=100,{corner:Me}=T.current;if(Me==="bottom-right")G=Math.max(ke,T.current.initialWidth+I),pe=Math.max(Le,T.current.initialHeight+$);else if(Me==="bottom-left"){const M=T.current.initialWidth-I;M>=ke&&(G=M,S=T.current.initialX+I),pe=Math.max(Le,T.current.initialHeight+$)}else if(Me==="top-right"){G=Math.max(ke,T.current.initialWidth+I);const M=T.current.initialHeight-$;M>=Le&&(pe=M,R=T.current.initialY+$)}else if(Me==="top-left"){const M=T.current.initialWidth-I;M>=ke&&(G=M,S=T.current.initialX+I);const B=T.current.initialHeight-$;B>=Le&&(pe=B,R=T.current.initialY+$)}ne.current={id:T.current.id,x:S,y:R,width:G,height:pe},it({...ne.current})},d=async _=>{if(!T.current||!ne.current)return;const{id:I}=T.current,{x:$,y:S,width:R,height:G}=ne.current;T.current=null,ne.current=null,$e(null),it(null);const pe=k.find(ke=>ke.id===I);if(pe&&n)try{const ke=JSON.parse(pe.data);de(!0),await n(I,{...ke,x:$,y:S,width:R,height:G}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e})}catch(ke){console.error("Resize end update error:",ke)}finally{de(!1)}};return window.addEventListener("pointermove",l),window.addEventListener("pointerup",d),()=>{window.removeEventListener("pointermove",l),window.removeEventListener("pointerup",d)}},[ze,Te,t,n,e]);const Ne=l=>{je({type:"confirm",title:"删除组件",message:"您确定要从白板中删除这个组件或图形吗?该操作不可撤销。",onConfirm:async()=>{de(!0);try{a?await a(l):await fetch(`/api/lessons/${e}/whiteboard/${l}`,{method:"DELETE"}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}),c&&c(),te(null)}catch(d){console.error("Delete element failed:",d)}finally{de(!1),je(null)}}})},Vt=()=>{je({type:"confirm",title:"清空白板",message:"您确定要清空画布上的所有组件、图形和线条吗?此操作将永久清空白板且不可逆!",onConfirm:async()=>{de(!0);try{i?await i():await fetch(`/api/lessons/${e}/whiteboard`,{method:"DELETE"}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}),c&&c(),te(null)}catch(l){console.error("Clear board failed:",l)}finally{de(!1),je(null)}}})},Ot=()=>{je({type:"confirm",title:"重置白板",message:"您确定要将白板重置为开始上课的状态吗?您在白板上做的所有临时修改都将被重置。",onConfirm:async()=>{de(!0);try{await fetch(`/api/lessons/${e}/whiteboard/reset`,{method:"POST"}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}),c&&c(),te(null)}catch(l){console.error("Reset board failed:",l)}finally{de(!1),je(null)}}})};reactExports.useEffect(()=>{const l=d=>{if((d.key==="Delete"||d.key==="Backspace")&&O){const _=d.target;_.tagName!=="INPUT"&&_.tagName!=="TEXTAREA"&&(Ne(O),te(null))}};return window.addEventListener("keydown",l),()=>window.removeEventListener("keydown",l)},[O]);const ft=()=>{Xe.current&&clearTimeout(Xe.current),r&&(Xe.current=setTimeout(async()=>{de(!0);try{(await fetch(`/api/lessons/${e}/ai-tutor`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({elements:k.map(d=>({type:d.type,data:JSON.parse(d.data)}))})})).ok&&(frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}),c&&c())}catch(l){console.error(l)}finally{de(!1)}},6e4))};reactExports.useEffect(()=>(ft(),()=>{Xe.current&&clearTimeout(Xe.current)}),[t]),reactExports.useEffect(()=>{const l=getSocketInstance();me.current=l,l.emit("join-room",e);const d=_=>{_.type==="temp-draw"?We(I=>({...I,[_.userId]:_.payload})):_.type==="temp-end"?We(I=>{const $={...I};return delete $[_.userId],$}):_.type==="refresh"?c&&c():_.type==="segment-change"?h&&_.payload?.segmentId&&h(_.payload.segmentId):_.type==="page-change"?typeof _.payload?.page=="number"&&j(_.payload.page):_.type==="page-meta-update"&&Array.isArray(_.payload?.pages)&&ee(_.payload.pages)};return me.current.on("whiteboard-sync",d),()=>{me.current?.off("whiteboard-sync",d)}},[e,c,h]),reactExports.useEffect(()=>{if(!ue.current)return;const l=new ResizeObserver(_=>{for(let I of _)ue.current&&ve({width:ue.current.offsetWidth,height:ue.current.offsetHeight})});l.observe(ue.current);const d=()=>{ue.current&&ve({width:ue.current.offsetWidth,height:ue.current.offsetHeight})};return d(),window.addEventListener("resize",d),()=>{l.disconnect(),window.removeEventListener("resize",d)}},[]);const Ut=l=>{if(ft(),ae(null),w==="cursor"){l.target===l.target.getStage()&&te(null);return}if(Re)return;W(!0);const d=l.target.getStage().getPointerPosition();w==="pen"?le({type:"pen",points:[d.x,d.y],color:"black"}):w==="highlighter"?le({type:"highlighter",points:[d.x,d.y],color:q}):w==="rect"?le({type:"rectangle",x:d.x,y:d.y,width:0,height:0,stroke:"blue"}):w==="circle"?le({type:"circle",x:d.x,y:d.y,radius:0,stroke:"green"}):w==="text"&&le({type:"text",x:d.x,y:d.y,text:"Click to edit...",fontSize:16,color:"black"})},Wt=l=>{if(!D||!ie)return;const d=l.target.getStage().getPointerPosition();if(ie.type==="pen"||ie.type==="highlighter")le({...ie,points:ie.points.concat([d.x,d.y])});else if(ie.type==="rectangle")le({...ie,width:d.x-ie.x,height:d.y-ie.y});else if(ie.type==="circle"){const _=Math.sqrt(Math.pow(d.x-ie.x,2)+Math.pow(d.y-ie.y,2));le({...ie,radius:_})}},Gt=async()=>{if(!D||!ie)return;W(!1);const l={...ie,page:v,segmentId:s};le(null),de(!0);try{await o(l.type,l),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e})}finally{de(!1)}};reactExports.useEffect(()=>{!me.current||!me.current.id||(ie?me.current.emit("whiteboard-update",{roomId:e,type:"temp-draw",userId:me.current.id,payload:{...ie,page:v,segmentId:s}}):me.current.emit("whiteboard-update",{roomId:e,type:"temp-end",userId:me.current.id}))},[ie,e,v,s]),reactExports.useEffect(()=>{s&&me.current&&me.current.emit("whiteboard-update",{roomId:e,type:"segment-change",payload:{segmentId:s}})},[s,e]);const _t=l=>{if(!l)return null;const d=l.page??0,_=Z[v];return!(l.pageId&&_?.id?l.pageId===_.id:d===v)||s&&l.segmentId&&l.segmentId!==s?null:l.type==="pen"?jsxRuntimeExports.jsx(Line,{points:l.points,stroke:l.color,strokeWidth:4,tension:.5,lineCap:"round",lineJoin:"round"}):l.type==="highlighter"?jsxRuntimeExports.jsx(Line,{points:l.points,stroke:l.color||"#facc15",strokeWidth:18,tension:.5,lineCap:"round",lineJoin:"round",opacity:.5}):l.type==="rectangle"?jsxRuntimeExports.jsx(Rect,{x:l.x,y:l.y,width:l.width,height:l.height,stroke:l.stroke}):l.type==="circle"?jsxRuntimeExports.jsx(Circle$1,{x:l.x,y:l.y,radius:l.radius,stroke:l.stroke}):l.type==="text"?jsxRuntimeExports.jsx(Text,{x:l.x,y:l.y,text:l.text,fontSize:l.fontSize,fill:l.color}):null},Xt=()=>_t(ie?{...ie,page:v,segmentId:s}:null),Zt=()=>Object.values(Qe).map((l,d)=>jsxRuntimeExports.jsx(React.Fragment,{children:_t(l)},d)),Kt=l=>{try{const d=JSON.parse(l.data),_=L?.id===l.id,I=Te?.id===l.id,$=I?Te.x:_?L.currentX:d.x??0,S=I?Te.y:_?L.currentY:d.y??0,R=M=>M==="plugin"?d.width||500:M==="hello-world"?160:M==="quiz"?300:M==="rollcall"?320:M==="assignment"?310:M==="html-applet"||M==="code-sandbox"||M==="math-graph"?400:M==="presentation"?600:300,G=M=>M==="plugin"?d.height||400:M==="hello-world"?64:M==="quiz"?280:M==="rollcall"?310:M==="assignment"?250:M==="html-applet"?300:M==="code-sandbox"?320:M==="math-graph"?350:M==="presentation"?400:300,pe=I?Te.width:d.width??R(l.type),ke=I?Te.height:d.isMinimized?32:d.height??G(l.type),Le=O===l.id,Me=()=>Le?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"absolute -inset-1 border-2 border-indigo-500 rounded-lg pointer-events-none z-50 shadow-md animate-pulse duration-1000 animate-in fade-in"}),jsxRuntimeExports.jsx("div",{className:"absolute -top-1.5 -left-1.5 w-3.5 h-3.5 bg-white border-2 border-indigo-600 rounded-full cursor-nwse-resize z-50 hover:bg-indigo-50 hover:scale-110 transition-transform shadow",onPointerDown:M=>Ye(M,l.id,"top-left",$,S,pe,ke),onPointerMove:et,onPointerUp:ot}),jsxRuntimeExports.jsx("div",{className:"absolute -top-1.5 -right-1.5 w-3.5 h-3.5 bg-white border-2 border-indigo-600 rounded-full cursor-nesw-resize z-50 hover:bg-indigo-50 hover:scale-110 transition-transform shadow",onPointerDown:M=>Ye(M,l.id,"top-right",$,S,pe,ke),onPointerMove:et,onPointerUp:ot}),jsxRuntimeExports.jsx("div",{className:"absolute -bottom-1.5 -left-1.5 w-3.5 h-3.5 bg-white border-2 border-indigo-600 rounded-full cursor-nesw-resize z-50 hover:bg-indigo-50 hover:scale-110 transition-transform shadow",onPointerDown:M=>Ye(M,l.id,"bottom-left",$,S,pe,ke),onPointerMove:et,onPointerUp:ot}),jsxRuntimeExports.jsx("div",{className:"absolute -bottom-1.5 -right-1.5 w-3.5 h-3.5 bg-white border-2 border-indigo-600 rounded-full cursor-nwse-resize z-50 hover:bg-indigo-50 hover:scale-110 transition-transform shadow",onPointerDown:M=>Ye(M,l.id,"bottom-right",$,S,pe,ke),onPointerMove:et,onPointerUp:ot})]}):null;if(l.type==="plugin"){const M=u==="teacher",B=M?d.teacherWidgetId:d.studentWidgetId,ye=M?"teacher.dashboard.widget":"student.view";return jsxRuntimeExports.jsx(Group$1,{children:jsxRuntimeExports.jsx(Html,{divProps:{style:{position:"absolute",top:`${S}px`,left:`${$}px`,pointerEvents:"none",zIndex:Le?20:10}},children:jsxRuntimeExports.jsxs("div",{onPointerDown:xe=>{te(l.id),xe.stopPropagation()},onContextMenu:xe=>{xe.preventDefault(),xe.stopPropagation();const Se=ue.current?.getBoundingClientRect();Se&&ae({x:xe.clientX-Se.left,y:xe.clientY-Se.top,elementId:l.id})},className:"bg-white border border-gray-300 rounded-lg shadow-xl overflow-hidden flex flex-col font-sans text-sm relative",style:{pointerEvents:"auto",width:`${pe}px`,height:`${ke}px`},children:[jsxRuntimeExports.jsxs("div",{className:"bg-indigo-50 text-indigo-750 px-3 py-1.5 flex justify-between items-center text-xs font-semibold border-b border-indigo-150 cursor-move select-none shrink-0",onPointerDown:xe=>De(xe,l.id,d),onPointerMove:He,onPointerUp:Be,children:[jsxRuntimeExports.jsx("span",{children:d.title||"Plugin Component"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntimeExports.jsx("button",{onClick:()=>Ee(l.id),onPointerDown:xe=>xe.stopPropagation(),className:"p-1 hover:bg-slate-200/50 rounded-full text-indigo-650 hover:text-indigo-900 transition-colors cursor-pointer flex items-center justify-center",title:"全屏",children:jsxRuntimeExports.jsx(Maximize2,{size:11})}),jsxRuntimeExports.jsx("button",{onClick:()=>Ne(l.id),onPointerDown:xe=>xe.stopPropagation(),className:"p-1 hover:bg-slate-200/50 rounded-full text-indigo-600 hover:text-red-500 transition-colors cursor-pointer flex items-center justify-center",title:"删除组件",children:jsxRuntimeExports.jsx(Trash2,{size:11})})]})]}),!d.isMinimized&&jsxRuntimeExports.jsx("div",{className:"flex-grow bg-white overflow-auto relative min-h-0 p-2",children:jsxRuntimeExports.jsx(PluginCardRenderer,{pluginId:d.pluginId,slot:ye,widgetId:B,elementId:l.id,lessonId:e})}),!d.isMinimized&&Me()]})})},l.id)}if(l.type==="hello-world")return jsxRuntimeExports.jsx(Group$1,{children:jsxRuntimeExports.jsx(Html,{divProps:{style:{position:"absolute",top:`${S}px`,left:`${$}px`,pointerEvents:"none",zIndex:Le?20:10}},children:jsxRuntimeExports.jsxs("div",{onPointerDown:M=>{te(l.id),M.stopPropagation()},className:"bg-transparent",style:{pointerEvents:"auto",width:`${pe}px`,height:`${ke}px`},children:[jsxRuntimeExports.jsx(HelloWorldWrapper,{elementId:l.id,data:d,onPointerDown:M=>De(M,l.id,d),onPointerMove:He,onPointerUp:Be,onDelete:()=>Ne(l.id),onElementUpdate:n,lessonId:e}),Me()]})})},l.id);if(l.type==="rollcall")return jsxRuntimeExports.jsx(Group$1,{children:jsxRuntimeExports.jsx(Html,{divProps:{style:{position:"absolute",top:`${S}px`,left:`${$}px`,pointerEvents:"none",zIndex:Le?20:10}},children:jsxRuntimeExports.jsxs("div",{onPointerDown:M=>{te(l.id),M.stopPropagation()},onContextMenu:M=>{M.preventDefault(),M.stopPropagation();const B=ue.current?.getBoundingClientRect();B&&ae({x:M.clientX-B.left,y:M.clientY-B.top,elementId:l.id})},className:"bg-transparent",style:{pointerEvents:"auto",width:`${pe}px`,height:`${ke}px`},children:[jsxRuntimeExports.jsx(RollCallWrapper,{elementId:l.id,data:d,onElementUpdate:n,onPointerDown:M=>De(M,l.id,d),onPointerMove:He,onPointerUp:Be,onDelete:()=>Ne(l.id)}),Me()]})})},l.id);if(l.type==="quiz")return null;if(l.type==="assignment")return jsxRuntimeExports.jsx(Group$1,{children:jsxRuntimeExports.jsx(Html,{divProps:{style:{position:"absolute",top:`${S}px`,left:`${$}px`,pointerEvents:"none",zIndex:Le?20:10}},children:jsxRuntimeExports.jsxs("div",{onPointerDown:M=>{te(l.id),M.stopPropagation()},onContextMenu:M=>{M.preventDefault(),M.stopPropagation();const B=ue.current?.getBoundingClientRect();B&&ae({x:M.clientX-B.left,y:M.clientY-B.top,elementId:l.id})},className:"bg-white border border-gray-300 rounded-lg shadow-xl overflow-hidden flex flex-col font-sans text-sm relative select-none",style:{pointerEvents:"auto",width:`${pe}px`,height:`${ke}px`},children:[jsxRuntimeExports.jsxs("div",{className:"bg-orange-50 text-orange-700 px-3 py-1.5 flex justify-between items-center text-xs font-semibold border-b border-orange-100 cursor-move select-none shrink-0",onPointerDown:M=>De(M,l.id,d),onPointerMove:He,onPointerUp:Be,children:[jsxRuntimeExports.jsx("span",{children:"Assignment Upload Task"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntimeExports.jsx("button",{onClick:()=>Ee(l.id),onPointerDown:M=>M.stopPropagation(),className:"p-1 hover:bg-slate-200/50 rounded-full text-orange-600 hover:text-orange-900 transition-colors cursor-pointer flex items-center justify-center",title:"全屏",children:jsxRuntimeExports.jsx(Maximize2,{size:11})}),jsxRuntimeExports.jsx("button",{onClick:async()=>{n&&(await n(l.id,{...d,isMinimized:!d.isMinimized}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}))},onPointerDown:M=>M.stopPropagation(),className:"p-1 hover:bg-slate-200/50 rounded-full text-orange-655 hover:text-orange-900 transition-colors cursor-pointer flex items-center justify-center",title:d.isMinimized?"展开组件":"收起组件",children:d.isMinimized?jsxRuntimeExports.jsx(Maximize2,{size:11}):jsxRuntimeExports.jsx(Minimize2,{size:11})}),jsxRuntimeExports.jsx("button",{onClick:()=>Ne(l.id),onPointerDown:M=>M.stopPropagation(),className:"p-1 hover:bg-slate-200/50 rounded-full text-orange-600 hover:text-red-500 transition-colors cursor-pointer flex items-center justify-center",title:"删除组件",children:jsxRuntimeExports.jsx(Trash2,{size:11})})]})]}),!d.isMinimized&&jsxRuntimeExports.jsxs("div",{className:"p-4 text-center flex-1 overflow-y-auto flex flex-col justify-center min-h-0",children:[jsxRuntimeExports.jsx("p",{className:"font-semibold text-gray-800 mb-1 text-xs",children:d.title}),jsxRuntimeExports.jsx("p",{className:"text-xs text-gray-500 mb-3 line-clamp-3",children:d.description}),jsxRuntimeExports.jsx("button",{className:"w-full bg-orange-600 hover:bg-orange-700 text-white font-medium py-1.5 rounded transition-colors text-xs shadow-sm cursor-pointer",onClick:()=>{je({type:"alert",title:"作业文件上传",message:`系统已经成功模拟拉起本地文件选择和上传流程!
8341
+ 已准备上传作业: ${d.title??"白板作业"}`,onConfirm:()=>je(null)})},children:"Upload File"})]}),!d.isMinimized&&Me()]})})},l.id);if(l.type==="html-applet")return jsxRuntimeExports.jsx(Group$1,{children:jsxRuntimeExports.jsx(Html,{divProps:{style:{position:"absolute",top:`${S}px`,left:`${$}px`,pointerEvents:"none",zIndex:Le?20:10}},children:jsxRuntimeExports.jsxs("div",{onPointerDown:M=>{te(l.id),M.stopPropagation()},onContextMenu:M=>{M.preventDefault(),M.stopPropagation();const B=ue.current?.getBoundingClientRect();B&&ae({x:M.clientX-B.left,y:M.clientY-B.top,elementId:l.id})},className:"bg-white border border-gray-300 rounded-lg shadow-xl overflow-hidden flex flex-col font-sans text-sm relative",style:{pointerEvents:"auto",width:`${pe}px`,height:`${ke}px`},children:[jsxRuntimeExports.jsxs("div",{className:"bg-gray-100 text-gray-700 px-3 py-1.5 flex justify-between items-center text-xs font-semibold border-b border-gray-200 cursor-move select-none shrink-0",onPointerDown:M=>De(M,l.id,d),onPointerMove:He,onPointerUp:Be,children:[jsxRuntimeExports.jsx("span",{children:"Interactive Courseware"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntimeExports.jsx("button",{onClick:()=>Ee(l.id),onPointerDown:M=>M.stopPropagation(),className:"p-1 hover:bg-slate-200/50 rounded-full text-gray-600 hover:text-gray-900 transition-colors cursor-pointer flex items-center justify-center",title:"全屏",children:jsxRuntimeExports.jsx(Maximize2,{size:11})}),jsxRuntimeExports.jsx("button",{onClick:async()=>{n&&(await n(l.id,{...d,isMinimized:!d.isMinimized}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}))},onPointerDown:M=>M.stopPropagation(),className:"p-1 hover:bg-slate-200/50 rounded-full text-gray-650 hover:text-gray-900 transition-colors cursor-pointer flex items-center justify-center",title:d.isMinimized?"展开组件":"收起组件",children:d.isMinimized?jsxRuntimeExports.jsx(Maximize2,{size:11}):jsxRuntimeExports.jsx(Minimize2,{size:11})}),jsxRuntimeExports.jsx("button",{onClick:()=>Ne(l.id),onPointerDown:M=>M.stopPropagation(),className:"p-1 hover:bg-slate-200/50 rounded-full text-gray-650 hover:text-red-500 transition-colors cursor-pointer flex items-center justify-center",title:"删除组件",children:jsxRuntimeExports.jsx(Trash2,{size:11})})]})]}),!d.isMinimized&&jsxRuntimeExports.jsx("div",{className:"flex-1 bg-white overflow-hidden relative min-h-0",children:jsxRuntimeExports.jsx("iframe",{className:"w-full h-full border-none",src:d.coursewareUuid?`/runtime/${d.coursewareUuid}/`:d.resourceId?`/api/resources/${d.resourceId}/`:void 0,srcDoc:d.coursewareUuid||d.resourceId?void 0:wrapSrcDocWithBridge(d.code,e),sandbox:"allow-scripts allow-same-origin allow-forms allow-downloads"})}),!d.isMinimized&&Me()]})})},l.id);if(l.type==="pen"){const M=O===l.id;return jsxRuntimeExports.jsx(Line,{id:l.id,points:d.points,stroke:M?"#3b82f6":d.color||"black",strokeWidth:M?6:4,tension:.5,lineCap:"round",lineJoin:"round",draggable:u==="teacher"&&w==="cursor",onClick:B=>{w==="cursor"&&(B.cancelBubble=!0,te(M?null:l.id))},onTap:B=>{w==="cursor"&&(B.cancelBubble=!0,te(M?null:l.id))},onDragEnd:async B=>{const ye=B.target,xe=ye.x(),Se=ye.y();ye.x(0),ye.y(0);const lt=d.points.map((Je,ht)=>ht%2===0?Je+xe:Je+Se);n&&(await n(l.id,{...d,points:lt}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}))}},l.id)}if(l.type==="highlighter"){const M=O===l.id;return jsxRuntimeExports.jsx(Line,{id:l.id,points:d.points,stroke:M?"#3b82f6":d.color||"#facc15",strokeWidth:M?24:18,tension:.5,lineCap:"round",lineJoin:"round",opacity:.5,draggable:u==="teacher"&&w==="cursor",onClick:B=>{w==="cursor"&&(B.cancelBubble=!0,te(M?null:l.id))},onTap:B=>{w==="cursor"&&(B.cancelBubble=!0,te(M?null:l.id))},onDragEnd:async B=>{const ye=B.target,xe=ye.x(),Se=ye.y();ye.x(0),ye.y(0);const lt=d.points.map((Je,ht)=>ht%2===0?Je+xe:Je+Se);n&&(await n(l.id,{...d,points:lt}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}))}},l.id)}if(l.type==="rectangle"||l.type==="shape"&&d.shape==="rect"){const M=O===l.id;return jsxRuntimeExports.jsx(Rect,{id:l.id,x:d.x,y:d.y,width:d.width,height:d.height,fill:d.fill||"transparent",stroke:M?"#3b82f6":d.stroke||"blue",strokeWidth:M?3:1,draggable:u==="teacher"&&w==="cursor",onClick:B=>{w==="cursor"&&(B.cancelBubble=!0,te(M?null:l.id))},onTap:B=>{w==="cursor"&&(B.cancelBubble=!0,te(M?null:l.id))},onDragEnd:async B=>{const ye=B.target,xe=ye.x(),Se=ye.y();ye.x(0),ye.y(0),n&&(await n(l.id,{...d,x:d.x+xe,y:d.y+Se}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}))}},l.id)}if(l.type==="circle"||l.type==="shape"&&d.shape==="circle"){const M=O===l.id;return jsxRuntimeExports.jsx(Circle$1,{id:l.id,x:d.x,y:d.y,radius:d.radius,fill:d.fill||"transparent",stroke:M?"#3b82f6":d.stroke||"green",strokeWidth:M?3:1,draggable:u==="teacher"&&w==="cursor",onClick:B=>{w==="cursor"&&(B.cancelBubble=!0,te(M?null:l.id))},onTap:B=>{w==="cursor"&&(B.cancelBubble=!0,te(M?null:l.id))},onDragEnd:async B=>{const ye=B.target,xe=ye.x(),Se=ye.y();ye.x(0),ye.y(0),n&&(await n(l.id,{...d,x:d.x+xe,y:d.y+Se}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}))}},l.id)}if(l.type==="text"){const M=O===l.id;return jsxRuntimeExports.jsx(Text,{id:l.id,x:d.x,y:d.y,text:d.text,fontSize:d.fontSize||16,fill:M?"#3b82f6":d.color||"black",fontStyle:M?"bold":"normal",draggable:u==="teacher"&&w==="cursor",onClick:B=>{w==="cursor"&&(B.cancelBubble=!0,te(M?null:l.id))},onTap:B=>{w==="cursor"&&(B.cancelBubble=!0,te(M?null:l.id))},onDragEnd:async B=>{const ye=B.target,xe=ye.x(),Se=ye.y();ye.x(0),ye.y(0),n&&(await n(l.id,{...d,x:d.x+xe,y:d.y+Se}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}))}},l.id)}if(l.type==="code-sandbox")return jsxRuntimeExports.jsx(Group$1,{children:jsxRuntimeExports.jsx(Html,{divProps:{style:{position:"absolute",top:`${S}px`,left:`${$}px`,pointerEvents:"none",zIndex:Le?20:10}},children:jsxRuntimeExports.jsxs("div",{onPointerDown:M=>{te(l.id),M.stopPropagation()},onContextMenu:M=>{M.preventDefault(),M.stopPropagation();const B=ue.current?.getBoundingClientRect();B&&ae({x:M.clientX-B.left,y:M.clientY-B.top,elementId:l.id})},className:"relative rounded-lg shadow-xl",style:{pointerEvents:"auto",width:`${pe}px`,height:`${ke}px`},children:[jsxRuntimeExports.jsx(CodeSandboxWrapper,{elementId:l.id,data:d,onElementUpdate:n?async(M,B)=>{await n(M,B),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e})}:void 0,onPointerDown:M=>De(M,l.id,d),onPointerMove:He,onPointerUp:Be,onDelete:()=>Ne(l.id)}),Me()]})})},l.id);if(l.type==="math-graph")return jsxRuntimeExports.jsx(Group$1,{children:jsxRuntimeExports.jsx(Html,{divProps:{style:{position:"absolute",top:`${S}px`,left:`${$}px`,pointerEvents:"none",zIndex:Le?20:10}},children:jsxRuntimeExports.jsxs("div",{onPointerDown:M=>{te(l.id),M.stopPropagation()},onContextMenu:M=>{M.preventDefault(),M.stopPropagation();const B=ue.current?.getBoundingClientRect();B&&ae({x:M.clientX-B.left,y:M.clientY-B.top,elementId:l.id})},className:"relative rounded-lg shadow-xl",style:{pointerEvents:"auto",width:`${pe}px`,height:`${ke}px`},children:[jsxRuntimeExports.jsx(MathGraphWrapper,{elementId:l.id,data:d,onElementUpdate:n?async(M,B)=>{await n(M,B),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e})}:void 0,onPointerDown:M=>De(M,l.id,d),onPointerMove:He,onPointerUp:Be,onDelete:()=>Ne(l.id)}),Me()]})})},l.id);if(l.type==="presentation")return jsxRuntimeExports.jsx(Group$1,{children:jsxRuntimeExports.jsx(Html,{divProps:{style:{position:"absolute",top:`${S}px`,left:`${$}px`,pointerEvents:"none",zIndex:Le?20:10}},children:jsxRuntimeExports.jsxs("div",{onPointerDown:M=>{te(l.id),M.stopPropagation()},onContextMenu:M=>{M.preventDefault(),M.stopPropagation();const B=ue.current?.getBoundingClientRect();B&&ae({x:M.clientX-B.left,y:M.clientY-B.top,elementId:l.id})},className:"bg-white border border-gray-305 rounded-lg shadow-xl overflow-hidden flex flex-col font-sans text-sm relative select-none",style:{pointerEvents:"auto",width:`${pe}px`,height:`${ke}px`},children:[jsxRuntimeExports.jsxs("div",{className:"bg-purple-100 text-purple-700 px-3 py-1.5 flex justify-between items-center text-xs font-semibold border-b border-purple-200 cursor-move shrink-0",onPointerDown:M=>De(M,l.id,d),onPointerMove:He,onPointerUp:Be,children:[jsxRuntimeExports.jsx("span",{children:"Interactive Presentation"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1",children:[jsxRuntimeExports.jsx("button",{onClick:()=>Ee(l.id),onPointerDown:M=>M.stopPropagation(),className:"p-1 hover:bg-slate-200/50 rounded-full text-purple-600 hover:text-purple-900 transition-colors cursor-pointer flex items-center justify-center",title:"全屏",children:jsxRuntimeExports.jsx(Maximize2,{size:11})}),jsxRuntimeExports.jsx("button",{onClick:async()=>{n&&(await n(l.id,{...d,isMinimized:!d.isMinimized}),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}))},onPointerDown:M=>M.stopPropagation(),className:"p-1 hover:bg-slate-200/50 rounded-full text-purple-650 hover:text-purple-900 transition-colors cursor-pointer flex items-center justify-center",title:d.isMinimized?"展开组件":"收起组件",children:d.isMinimized?jsxRuntimeExports.jsx(Maximize2,{size:11}):jsxRuntimeExports.jsx(Minimize2,{size:11})}),jsxRuntimeExports.jsx("button",{onClick:()=>Ne(l.id),onPointerDown:M=>M.stopPropagation(),className:"p-1 hover:bg-slate-200/50 rounded-full text-purple-600 hover:text-red-500 transition-colors cursor-pointer flex items-center justify-center",title:"删除组件",children:jsxRuntimeExports.jsx(Trash2,{size:11})})]})]}),!d.isMinimized&&jsxRuntimeExports.jsx("div",{className:"flex-1 min-h-0 relative bg-white",style:{pointerEvents:"auto"},children:jsxRuntimeExports.jsx(RevealPresentationWrapper,{elementId:l.id,data:d,userRole:u,onElementUpdate:n?async(M,B)=>{await n(M,B),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e})}:void 0})}),!d.isMinimized&&Me()]})})},l.id)}catch(d){console.error(d)}return null},Mt=l=>{l.preventDefault(),l.dataTransfer.dropEffect="copy",C||K(!0)},Lt=l=>{l.preventDefault(),l.dataTransfer.dropEffect="copy",K(!0)},Jt=l=>{l.preventDefault(),l.currentTarget.contains(l.relatedTarget)||K(!1)},wt=(l,d,_,I)=>{const $={x:_,y:I,page:v,segmentId:s};switch(l){case"code-sandbox":return{...$,code:d.code??"console.log('Hello Sandbox!');"};case"math-graph":return{...$,equation:d.equation??"Math.sin(x)"};case"presentation":return{...$,markdown:d.markdown??`# Title Slide
8342
8342
  ---
8343
- ## Slide 2`,width:600,height:400,slideX:0,slideY:0};case"quiz":return{...$,question:d.question??"New Quiz",options:Array.isArray(d.options)?d.options:["A","B","C","D"]};case"html-applet":return{...$,code:d.code??""};case"assignment":return{...$,title:d.title??"New Assignment",description:d.description??""};case"hello-world":return $;case"rollcall":return{...$,allStudents:[]};default:return{...$,...d}}},Qt=async(l,d)=>{if(!ue.current)return;const _=ue.current.getBoundingClientRect(),I=Math.round(_.width/2),$=Math.round(_.height/2);de(!0);try{await o(l,wt(l,d,I,$)),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}),c&&c()}catch(N){console.error("addElementAtCenter error",N)}finally{de(!1)}};reactExports.useImperativeHandle(g,()=>({addElementAtCenter:Qt}));const vt=async l=>{l.preventDefault(),l.stopPropagation();try{let d=l.dataTransfer.getData("application/json");if(d||(d=l.dataTransfer.getData("text/plain")),d||(d=l.dataTransfer.getData("text")),d||(d=l.dataTransfer.getData("Text")),console.log("Whiteboard drop triggered. Payload:",d),!d)return;let _;try{_=JSON.parse(d)}catch(q){console.error("Failed to parse drop JSON payload:",q);return}if(typeof _!="object"||!_)return;if(!ue.current){console.warn("containerRef.current is not loaded on drop");return}const I=ue.current.getBoundingClientRect();let $=l.clientX-I.left,N=l.clientY-I.top;console.log(`Adding whiteboard element of type ${_.type} at (${$}, ${N})`),de(!0);try{await o(_.type,wt(_.type,_,$,N)),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}),c&&c()}finally{de(!1)}}catch(d){console.error("Drop error",d)}};return jsxRuntimeExports.jsxs("div",{className:"flex-1 flex flex-row min-h-0 overflow-hidden bg-white",children:[jsxRuntimeExports.jsxs("div",{className:"flex-1 flex flex-col min-h-0 bg-white relative min-w-0",onDragOver:Mt,onDragEnter:Lt,onDrop:vt,children:[jsxRuntimeExports.jsx(WhiteboardToolbar,{tool:w,setTool:S,setSelectedShapeId:te,highlighterColor:R,setHighlighterColor:C,onElementAdd:o,currentPage:v,activeSegmentId:s,lessonId:e,safeElements:k,selectedShapeId:O,showGrid:F,setShowGrid:U,userRole:u,isSyncing:qe,setIsSyncing:de,handleClearBoard:Vt,handleResetBoard:Ot,handleElementDelete:Ne,setDialog:je,setDialogInput:mt,onRefresh:c}),jsxRuntimeExports.jsxs("div",{ref:ue,className:"flex-1 bg-slate-50/70 rounded-2xl border border-slate-200/80 relative overflow-hidden w-full mb-14 shadow-inner transition-all",style:{backgroundImage:F?"radial-gradient(#cbd5e1 1.2px, transparent 1.2px)":"none",backgroundSize:"24px 24px",backgroundColor:"#f8fafc"},onDragOver:Mt,onDragEnter:Lt,onDragLeave:Jt,onDrop:async l=>{K(!1),await vt(l)},children:[b&&jsxRuntimeExports.jsxs("div",{className:"absolute inset-0 border-2 border-dashed border-indigo-500 bg-indigo-500/10 backdrop-blur-[2px] rounded-2xl flex flex-col items-center justify-center text-indigo-600 font-bold text-sm z-30 animate-in fade-in pointer-events-none",children:[jsxRuntimeExports.jsx(Plus,{size:32,className:"mb-2 text-indigo-600 animate-bounce"}),jsxRuntimeExports.jsx("span",{children:"释放鼠标将组件放入当前白板页面"})]}),k.filter(l=>{if(l.type==="page_meta")return!1;try{const d=JSON.parse(l.data),_=d.page??0,I=Z[v];return!(!(d.pageId&&I?.id?d.pageId===I.id:_===v)||s&&d.segmentId&&d.segmentId!==s)}catch{return v===0}}).length===0&&!Ge&&jsxRuntimeExports.jsxs("div",{className:"absolute inset-0 flex flex-col items-center justify-center pointer-events-none select-none text-slate-400 p-6 z-0",children:[jsxRuntimeExports.jsx("div",{className:"w-16 h-16 rounded-2xl bg-indigo-50/80 border border-indigo-100/80 flex items-center justify-center mb-3 shadow-2xs",children:jsxRuntimeExports.jsx(Sparkles,{className:"w-7 h-7 text-indigo-500 animate-pulse"})}),jsxRuntimeExports.jsx("p",{className:"font-bold text-sm text-slate-700 mb-1",children:"交互式备课白板"}),jsxRuntimeExports.jsx("p",{className:"text-xs text-slate-400 max-w-sm text-center",children:"从左侧组件库拖拽组件至此处,或使用顶部工具栏插入画笔、几何图形与 AI 助教"})]}),jsxRuntimeExports.jsxs("div",{className:"absolute inset-0 w-full h-full overflow-hidden",children:[he.width>0&&he.height>0&&(Ge?(()=>{const l=k.find(N=>N.id===Ge);if(!l)return Ee(null),null;let d={};try{d=JSON.parse(l.data)}catch{}const _=16,I=he.width-_*2,$=he.height-_*2;return jsxRuntimeExports.jsx("div",{className:"absolute inset-0 z-50 bg-black/60 flex items-center justify-center",style:{pointerEvents:"auto"},children:jsxRuntimeExports.jsxs("div",{className:"relative bg-white rounded-xl shadow-2xl overflow-hidden flex flex-col",style:{width:Math.max(400,I),height:Math.max(300,$)},children:[jsxRuntimeExports.jsxs("div",{className:"bg-indigo-50 text-indigo-700 px-4 py-2 flex justify-between items-center text-sm font-semibold border-b border-indigo-100 shrink-0",children:[jsxRuntimeExports.jsx("span",{children:l.type==="quiz"?"📝 随堂测验":l.type==="timer"?"⏱ 计时器":l.type==="assignment"?"📋 作业":l.type==="code-sandbox"?"💻 代码沙箱":l.type==="html-applet"?"🌐 交互课件":l.type==="rollcall"?"🎲 随机点名":l.type}),jsxRuntimeExports.jsxs("button",{onClick:()=>Ee(null),className:"p-1.5 hover:bg-indigo-200/50 rounded-lg text-indigo-600 hover:text-indigo-900 transition-colors cursor-pointer flex items-center gap-1 text-xs",children:[jsxRuntimeExports.jsx(Minimize2,{size:14})," 退出全屏"]})]}),jsxRuntimeExports.jsxs("div",{className:"flex-1 overflow-auto p-6",children:[l.type==="quiz"&&jsxRuntimeExports.jsxs("div",{className:"max-w-2xl mx-auto space-y-6",children:[jsxRuntimeExports.jsx("h3",{className:"text-xl font-bold text-gray-800",children:d.question}),jsxRuntimeExports.jsx("div",{className:"flex flex-col gap-3",children:(d.options||[]).map((N,q)=>jsxRuntimeExports.jsxs("button",{className:"px-5 py-4 text-left bg-gray-50 border-2 border-gray-200 rounded-xl text-base hover:bg-gray-100 transition-colors",children:[jsxRuntimeExports.jsxs("span",{className:"font-bold text-indigo-600 mr-3",children:["ABCDEFGHIJKLMNOPQRSTUVWXYZ"[q],"."]}),N]},q))}),d.submissions&&Object.keys(d.submissions).length>0&&jsxRuntimeExports.jsx("div",{className:"mt-4 p-4 bg-gray-50 rounded-xl",children:jsxRuntimeExports.jsxs("p",{className:"text-sm font-semibold text-gray-600",children:["提交统计: ",Object.keys(d.submissions).length," 人已作答"]})})]}),l.type==="timer"&&jsxRuntimeExports.jsx("div",{className:"flex items-center justify-center h-full",children:jsxRuntimeExports.jsxs("div",{className:"text-center",children:[jsxRuntimeExports.jsxs("div",{className:"text-8xl font-mono font-bold text-orange-600 mb-4",children:[String(Math.floor((d.remaining??d.duration??60)/60)).padStart(2,"0"),":",String((d.remaining??d.duration??60)%60).padStart(2,"0")]}),jsxRuntimeExports.jsx("p",{className:"text-lg text-gray-500",children:d.label||"计时器"})]})}),l.type==="assignment"&&jsxRuntimeExports.jsxs("div",{className:"max-w-2xl mx-auto space-y-6",children:[jsxRuntimeExports.jsx("h3",{className:"text-xl font-bold text-gray-800",children:d.title}),jsxRuntimeExports.jsx("p",{className:"text-gray-600 text-base whitespace-pre-wrap",children:d.description}),jsxRuntimeExports.jsx("button",{className:"w-full bg-orange-600 hover:bg-orange-700 text-white font-medium py-3 rounded-xl transition-colors text-base shadow-sm cursor-pointer",children:"Upload File"})]}),l.type==="code-sandbox"&&jsxRuntimeExports.jsx("div",{className:"h-full flex flex-col gap-4",children:jsxRuntimeExports.jsx("textarea",{value:d.code||"",readOnly:!0,className:"flex-1 p-4 bg-gray-900 text-green-400 font-mono text-sm rounded-xl resize-none"})}),l.type==="html-applet"&&jsxRuntimeExports.jsx("div",{className:"h-full flex items-center justify-center",children:jsxRuntimeExports.jsxs("div",{className:"text-center text-gray-500",children:[jsxRuntimeExports.jsx(BookOpen,{size:64,className:"mx-auto mb-4 text-indigo-300"}),jsxRuntimeExports.jsx("p",{className:"text-lg font-semibold",children:d.title||"交互课件"}),d.coursewareUuid&&jsxRuntimeExports.jsx("iframe",{src:`/runtime/${d.coursewareUuid}/`,sandbox:"allow-scripts allow-same-origin allow-forms allow-downloads",className:"w-full h-[60vh] mt-4 rounded-xl border"})]})}),l.type==="rollcall"&&jsxRuntimeExports.jsx("div",{className:"flex items-center justify-center h-full",children:jsxRuntimeExports.jsxs("div",{className:"text-center",children:[jsxRuntimeExports.jsx("div",{className:"text-6xl font-bold text-indigo-600 mb-4",children:d.selectedStudent||"点击点名"}),jsxRuntimeExports.jsx("p",{className:"text-lg text-gray-500",children:"随机点名"})]})}),!["quiz","timer","assignment","code-sandbox","html-applet","rollcall"].includes(l.type)&&jsxRuntimeExports.jsx("div",{className:"flex items-center justify-center h-full text-gray-400 text-sm",children:"此组件类型暂不支持全屏预览"})]})]})})})():jsxRuntimeExports.jsx(Stage,{width:he.width,height:he.height,onMouseDown:Ut,onMousemove:Wt,onMouseup:Gt,onContextMenu:l=>{l.evt.preventDefault();const d=ue.current?.getBoundingClientRect();if(d){const _=l.evt.clientX-d.left,I=l.evt.clientY-d.top,N=l.target.id();N?(te(N),ae({x:_,y:I,elementId:N})):ae({x:_,y:I})}},ref:ce,className:"w-full h-full cursor-crosshair",children:jsxRuntimeExports.jsxs(Layer,{children:[k.filter(l=>{if(l.type==="page_meta")return!1;try{const d=JSON.parse(l.data),_=d.page??0,I=Z[v];return!(!(d.pageId&&I?.id?d.pageId===I.id:_===v)||s&&d.segmentId&&d.segmentId!==s)}catch{return v===0}}).map(Kt),Xt(),Zt()]})})),O&&(()=>{const l=k.find($=>$.id===O);if(!l)return null;const d=Tt(l);if(!d)return null;const _=Math.max(10,Math.min(he.width-150,d.x-60)),I=Math.max(10,Math.min(he.height-50,d.y));return jsxRuntimeExports.jsxs("div",{style:{left:`${_}px`,top:`${I}px`,pointerEvents:"auto"},className:"absolute bg-white text-gray-800 shadow-xl border border-red-200 rounded-lg py-1 px-2 flex items-center gap-1.5 z-30 animate-in fade-in slide-in-from-bottom-2 duration-150 animate-out fade-out duration-100",children:[jsxRuntimeExports.jsx("span",{className:"text-xs font-semibold px-1 text-gray-500 capitalize select-none",children:l.type}),jsxRuntimeExports.jsx("div",{className:"w-[1px] h-3 bg-gray-200"}),jsxRuntimeExports.jsxs("button",{onClick:()=>{Ne(O),te(null)},className:"flex items-center gap-1 text-xs text-red-600 hover:text-white hover:bg-red-600 px-2 py-0.5 rounded transition-all font-medium cursor-pointer",children:[jsxRuntimeExports.jsx(Trash2,{size:12}),"删除"]})]})})(),Pe&&jsxRuntimeExports.jsx("div",{style:{left:`${Pe.x}px`,top:`${Pe.y}px`,pointerEvents:"auto"},className:"absolute bg-white rounded-lg shadow-2xl border border-gray-200 py-1.5 w-44 z-40 font-sans text-sm animate-in fade-in zoom-in-95 duration-100",onClick:l=>l.stopPropagation(),onContextMenu:l=>l.preventDefault(),children:Pe.elementId?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"px-3 py-1 text-[11px] text-gray-500 font-bold uppercase tracking-wider select-none",children:"组件选项"}),jsxRuntimeExports.jsxs("button",{onClick:()=>{const l=Pe.elementId;l&&(Ne(l),O===l&&te(null)),ae(null)},className:"w-full px-3 py-1.5 flex items-center gap-2 text-left text-red-600 hover:bg-red-50 transition-colors text-xs font-semibold",children:[jsxRuntimeExports.jsx(Trash2,{size:14}),"删除此组件"]})]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"px-3 py-1 text-[11px] text-gray-400 font-bold uppercase tracking-wider select-none",children:"白板操作"}),jsxRuntimeExports.jsxs("button",{onClick:()=>{S("cursor"),ae(null)},className:`w-full px-3 py-1.5 flex items-center gap-2 text-left text-xs font-medium hover:bg-gray-50 transition-colors ${w==="cursor"?"text-indigo-600":"text-gray-750"}`,children:[jsxRuntimeExports.jsx(MousePointer2,{size:14}),"选择工具 (Cursor)"]}),jsxRuntimeExports.jsxs("button",{onClick:()=>{S("pen"),ae(null)},className:`w-full px-3 py-1.5 flex items-center gap-2 text-left text-xs font-medium hover:bg-gray-50 transition-colors ${w==="pen"?"text-indigo-600":"text-gray-750"}`,children:[jsxRuntimeExports.jsx(PenTool,{size:14}),"画笔工具 (Pen)"]}),jsxRuntimeExports.jsxs("button",{onClick:()=>{S("highlighter"),ae(null)},className:`w-full px-3 py-1.5 flex items-center gap-2 text-left text-xs font-medium hover:bg-gray-50 transition-colors ${w==="highlighter"?"text-indigo-600":"text-gray-750"}`,children:[jsxRuntimeExports.jsx(Highlighter,{size:14}),"高亮荧光笔 (Highlighter)"]}),jsxRuntimeExports.jsxs("button",{onClick:()=>{S("rect"),ae(null)},className:`w-full px-3 py-1.5 flex items-center gap-2 text-left text-xs font-medium hover:bg-gray-50 transition-colors ${w==="rect"?"text-indigo-600":"text-gray-750"}`,children:[jsxRuntimeExports.jsx(Square,{size:14}),"矩形工具 (Rectangle)"]}),jsxRuntimeExports.jsxs("button",{onClick:()=>{S("circle"),ae(null)},className:`w-full px-3 py-1.5 flex items-center gap-2 text-left text-xs font-medium hover:bg-gray-50 transition-colors ${w==="circle"?"text-indigo-600":"text-gray-750"}`,children:[jsxRuntimeExports.jsx(Circle,{size:14}),"圆形工具 (Circle)"]}),jsxRuntimeExports.jsxs("button",{onClick:()=>{S("text"),ae(null)},className:`w-full px-3 py-1.5 flex items-center gap-2 text-left text-xs font-medium hover:bg-gray-50 transition-colors ${w==="text"?"text-indigo-600":"text-gray-750"}`,children:[jsxRuntimeExports.jsx(Type,{size:14}),"文本工具 (Text)"]})]})})]})]}),jsxRuntimeExports.jsx(WhiteboardPageBar,{pages:Z,currentPage:v,showPageDrawer:oe,setShowPageDrawer:H,editingPageIdx:E,setEditingPageIdx:J,editingPageTitle:z,setEditingPageTitle:A,activeMenuPageIdx:Q,setActiveMenuPageIdx:se,safeElements:k,handleSwitchPage:be,handleRenamePage:_e,handleDuplicatePage:we,handleMovePage:Ce,handleDeletePage:f,handleAddPage:m}),jsxRuntimeExports.jsx(WhiteboardDialog,{dialog:Ct,dialogInput:bt,setDialogInput:mt,setDialog:je}),jsxRuntimeExports.jsx(CoursewareEntrySelectorModal,{showEntrySelector:Rt,setShowEntrySelector:gt,zipUploadInfo:At,zipCandidates:jt,handlePropsUpdate:Oe,fetchCoursewares:dt})]}),p&&O&&ee&&(()=>{const l=k.find(d=>d.id===O);return l?jsxRuntimeExports.jsxs("div",{className:"w-80 h-full max-h-full bg-slate-50 border-l border-slate-200 flex flex-col font-sans text-xs select-none shadow-xl shrink-0 z-20 animate-in slide-in-from-right duration-200",onPointerDown:d=>d.stopPropagation(),children:[jsxRuntimeExports.jsxs("div",{className:"px-4 py-3 border-b border-slate-200 bg-white flex justify-between items-center shrink-0",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Settings,{size:15,className:"text-slate-500 animate-spin",style:{animationDuration:"6s"}}),jsxRuntimeExports.jsx("span",{className:"font-bold text-slate-800 text-sm",children:"属性编辑器"})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1.5 font-sans",children:[jsxRuntimeExports.jsxs("button",{onClick:zt,disabled:(Ze[O]||[]).length===0,className:`p-1 rounded-lg transition-all flex items-center justify-center gap-1 border border-transparent select-none cursor-pointer ${(Ze[O]||[]).length===0?"text-slate-350 bg-transparent border-transparent opacity-40 cursor-not-allowed":"text-slate-700 bg-slate-50 hover:bg-slate-100 hover:border-slate-200 active:bg-slate-150"}`,title:"撤销属性修改",children:[jsxRuntimeExports.jsx(Undo2,{size:13}),(Ze[O]||[]).length>0&&jsxRuntimeExports.jsx("span",{className:"text-[10px] font-bold text-slate-500",children:(Ze[O]||[]).length})]}),jsxRuntimeExports.jsxs("button",{onClick:Et,disabled:(Ke[O]||[]).length===0,className:`p-1 rounded-lg transition-all flex items-center justify-center gap-1 border border-transparent select-none cursor-pointer ${(Ke[O]||[]).length===0?"text-slate-350 bg-transparent border-transparent opacity-40 cursor-not-allowed":"text-slate-700 bg-slate-50 hover:bg-slate-100 hover:border-slate-200 active:bg-slate-150"}`,title:"重做属性修改",children:[jsxRuntimeExports.jsx(Redo2,{size:13}),(Ke[O]||[]).length>0&&jsxRuntimeExports.jsx("span",{className:"text-[10px] font-bold text-slate-500",children:(Ke[O]||[]).length})]}),jsxRuntimeExports.jsx("div",{className:"h-4 w-px bg-slate-200 mx-0.5 shrink-0"}),jsxRuntimeExports.jsx("button",{onClick:()=>te(null),className:"text-slate-400 hover:text-slate-650 hover:bg-slate-100 p-1 rounded-full transition-all cursor-pointer",title:"关闭属性编辑器",children:jsxRuntimeExports.jsx(X,{size:15})})]})]}),jsxRuntimeExports.jsxs("div",{className:"flex-1 overflow-y-auto p-4 space-y-4",children:[jsxRuntimeExports.jsxs("div",{className:"bg-white p-3 rounded-xl border border-slate-200 shadow-sm space-y-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("span",{className:"text-slate-400 text-[10px] font-bold uppercase tracking-wider",children:"组件类型"}),jsxRuntimeExports.jsx("span",{className:"px-2 py-0.5 bg-indigo-50 text-indigo-650 rounded text-[10px] font-bold uppercase tracking-wider",children:l.type})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("span",{className:"text-slate-400 text-[10px] font-bold uppercase tracking-wider",children:"组件标识"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-slate-500 text-[10px] truncate max-w-[155px]",title:l.id,children:l.id})]})]}),jsxRuntimeExports.jsxs("div",{className:"bg-white p-3 rounded-xl border border-slate-200 shadow-sm space-y-3",children:[jsxRuntimeExports.jsx("h4",{className:"font-bold text-slate-700 text-xs border-b border-slate-100 pb-1.5 flex items-center gap-1.5",children:"物理定位 & 尺寸"}),jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"X 坐标"}),jsxRuntimeExports.jsx("input",{type:"number",value:Math.round(ee.x??0),onChange:d=>fe("x",parseFloat(d.target.value)||0),onBlur:d=>Ue("x",d.target.value),className:"w-full px-2 py-1.5 border border-slate-200 rounded-lg text-xs font-mono focus:outline-none focus:ring-1 focus:ring-indigo-500"})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"Y 坐标"}),jsxRuntimeExports.jsx("input",{type:"number",value:Math.round(ee.y??0),onChange:d=>fe("y",parseFloat(d.target.value)||0),onBlur:d=>Ue("y",d.target.value),className:"w-full px-2 py-1.5 border border-slate-200 rounded-lg text-xs font-mono focus:outline-none focus:ring-1 focus:ring-indigo-500"})]})]}),l.type!=="pen"&&l.type!=="circle"&&jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-2 gap-2 mt-2",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"宽度 (Width)"}),jsxRuntimeExports.jsx("input",{type:"number",min:"50",value:Math.round(ee.width??300),onChange:d=>fe("width",parseFloat(d.target.value)||50),onBlur:d=>Ue("width",d.target.value),className:"w-full px-2 py-1.5 border border-slate-200 rounded-lg text-xs font-mono focus:outline-none focus:ring-1 focus:ring-indigo-500"})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"高度 (Height)"}),jsxRuntimeExports.jsx("input",{type:"number",min:"50",value:Math.round(ee.height??300),onChange:d=>fe("height",parseFloat(d.target.value)||50),onBlur:d=>Ue("height",d.target.value),className:"w-full px-2 py-1.5 border border-slate-200 rounded-lg text-xs font-mono focus:outline-none focus:ring-1 focus:ring-indigo-500"})]})]}),l.type==="circle"&&jsxRuntimeExports.jsxs("div",{className:"mt-2",children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"半径 (Radius)"}),jsxRuntimeExports.jsx("input",{type:"number",min:"5",value:Math.round(ee.radius??50),onChange:d=>fe("radius",parseFloat(d.target.value)||5),onBlur:d=>Ue("radius",d.target.value),className:"w-full px-2 py-1.5 border border-slate-200 rounded-lg text-xs font-mono focus:outline-none focus:ring-1 focus:ring-indigo-500"})]})]}),l.type==="quiz"&&jsxRuntimeExports.jsxs("div",{className:"bg-white p-3 rounded-xl border border-slate-200 shadow-sm space-y-3",children:[jsxRuntimeExports.jsx("h4",{className:"font-bold text-slate-700 text-xs border-b border-slate-100 pb-1.5",children:"随堂测验配置"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"测验题目 (Question)"}),jsxRuntimeExports.jsx("textarea",{value:ee.question||"",onChange:d=>fe("question",d.target.value),onBlur:d=>Ie("question",d.target.value),className:"w-full h-20 p-2 border border-slate-200 rounded-lg text-xs focus:outline-none focus:ring-1 focus:ring-indigo-500 resize-none font-medium leading-relaxed",placeholder:"编写问题描述..."})]}),(ee.options||[]).length>0&&jsxRuntimeExports.jsxs("div",{className:"bg-amber-50 border border-amber-200 rounded-lg p-2.5",children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-amber-700 font-bold mb-1.5",children:"⚠️ 正确答案 (Correct Answer)"}),jsxRuntimeExports.jsxs("select",{value:ee.correctAnswer||"",onChange:d=>{fe("correctAnswer",d.target.value),Ie("correctAnswer",d.target.value)},className:`w-full px-2 py-1.5 border rounded-lg text-xs font-medium focus:outline-none focus:ring-1 focus:ring-amber-500 cursor-pointer ${ee.correctAnswer?"border-green-300 bg-green-50 text-green-800":"border-amber-300 bg-white text-amber-800"}`,children:[jsxRuntimeExports.jsx("option",{value:"",children:"-- 请选择正确答案 --"}),(ee.options||[]).map((d,_)=>jsxRuntimeExports.jsx("option",{value:d,children:d},_))]}),!ee.correctAnswer&&jsxRuntimeExports.jsx("p",{className:"text-[9px] text-amber-600 mt-1",children:"未设置正确答案将无法自动判分"})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold",children:"选项列表 (Options)"}),jsxRuntimeExports.jsx("div",{className:"space-y-1.5 max-h-48 overflow-y-auto pr-1",children:(ee.options||[]).map((d,_)=>{const $="ABCDEFGHIJKLMNOPQRSTUVWXYZ"[_]||_+1;return jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1.5",children:[jsxRuntimeExports.jsx("span",{className:"font-bold text-slate-700 bg-slate-100 rounded px-1.5 py-1 text-center shrink-0 min-w-[22px]",children:$}),jsxRuntimeExports.jsx("input",{type:"text",value:d||"",onChange:N=>Dt(_,N.target.value),onBlur:N=>Ht(_,N.target.value),className:"flex-1 px-2 py-1 border border-slate-200 rounded-lg text-xs font-medium"}),jsxRuntimeExports.jsx("button",{onClick:()=>Ft(_),title:"删除选项",className:"text-slate-400 hover:text-red-500 hover:bg-red-50 p-1 rounded-md shrink-0 transition-colors cursor-pointer",children:jsxRuntimeExports.jsx(Trash2,{size:13})})]},_)})}),jsxRuntimeExports.jsxs("button",{onClick:Bt,className:"w-full mt-2 py-1 bg-slate-100 hover:bg-slate-200 text-slate-600 font-bold border border-slate-200/80 rounded-lg flex items-center justify-center gap-1 hover:text-slate-700 transition-all text-[11px] cursor-pointer",children:[jsxRuntimeExports.jsx(Plus,{size:12})," 添加选项"]})]})]}),l.type==="assignment"&&jsxRuntimeExports.jsxs("div",{className:"bg-white p-3 rounded-xl border border-slate-200 shadow-sm space-y-3",children:[jsxRuntimeExports.jsx("h4",{className:"font-bold text-slate-700 text-xs border-b border-slate-100 pb-1.5",children:"作业选项配置"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"作业任务标题 (Title)"}),jsxRuntimeExports.jsx("input",{type:"text",value:ee.title||"",onChange:d=>fe("title",d.target.value),onBlur:d=>Ie("title",d.target.value),className:"w-full px-2 py-1.5 border border-slate-200 rounded-lg text-xs font-semibold focus:outline-none focus:ring-1 focus:ring-indigo-500",placeholder:"作业名..."})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"详细作业要求描述"}),jsxRuntimeExports.jsx("textarea",{value:ee.description||"",onChange:d=>fe("description",d.target.value),onBlur:d=>Ie("description",d.target.value),className:"w-full h-24 p-2 border border-slate-200 rounded-lg text-xs focus:outline-none focus:ring-1 focus:ring-indigo-500 resize-none font-medium leading-relaxed",placeholder:"请输入详细的作业指南..."})]})]}),(l.type==="code-sandbox"||l.type==="html-applet")&&jsxRuntimeExports.jsxs("div",{className:"bg-white p-3 rounded-xl border border-slate-200 shadow-sm space-y-3",children:[jsxRuntimeExports.jsxs("h4",{className:"font-bold text-slate-700 text-xs border-b border-slate-100 pb-1.5 flex justify-between items-center",children:[jsxRuntimeExports.jsx("span",{children:"动态运行代码定制"}),l.type==="html-applet"&&jsxRuntimeExports.jsx("span",{className:"text-[10px] bg-indigo-50 text-indigo-700 px-1.5 py-0.5 rounded-full font-bold",children:"HTML Applet"})]}),l.type==="html-applet"&&jsxRuntimeExports.jsxs("div",{className:"space-y-3 border-b border-slate-100 pb-3",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-indigo-600 font-bold mb-1",children:"选择 AI 互动课件 (ZIP/HTML):"}),jsxRuntimeExports.jsxs("select",{value:ee.coursewareUuid||"",onChange:d=>{const _=d.target.value;Oe({coursewareUuid:_,resourceId:""})},className:"w-full text-xs p-2 bg-slate-50 border border-indigo-200 hover:border-indigo-300 rounded-lg text-slate-750 focus:outline-none focus:ring-1 focus:ring-indigo-500 transition-all font-semibold",children:[jsxRuntimeExports.jsx("option",{value:"",children:"-- 使用系统资源或自定义代码 --"}),St.map(d=>jsxRuntimeExports.jsxs("option",{value:d.uuid,children:["📁 [互动课件] ",d.name]},d.id))]})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-500 font-bold mb-1",children:"选择已有的系统资源:"}),jsxRuntimeExports.jsxs("select",{value:ee.resourceId||"",onChange:d=>{const _=d.target.value;Oe({resourceId:_,coursewareUuid:""})},className:"w-full text-xs p-2 bg-slate-50 border border-slate-200 hover:border-slate-300 rounded-lg text-slate-750 focus:outline-none focus:ring-1 focus:ring-indigo-500 transition-all font-semibold",children:[jsxRuntimeExports.jsx("option",{value:"",children:"-- 使用互动课件或自定义代码 --"}),It.map(d=>jsxRuntimeExports.jsxs("option",{value:d.id,children:["[",d.type==="folder"?"文件夹":"单HTML","] ",d.name]},d.id))]})]}),jsxRuntimeExports.jsxs("div",{className:"bg-slate-50 p-2.5 rounded-xl border border-slate-100 text-[10px] text-slate-500 space-y-2",children:[jsxRuntimeExports.jsx("span",{className:"font-bold text-slate-600 block",children:"上传资源 (会自动保存到对应库):"}),jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[jsxRuntimeExports.jsxs("label",{className:"col-span-2 flex flex-col items-center justify-center p-2 bg-indigo-50 hover:bg-indigo-100 border border-indigo-200 hover:border-indigo-300 rounded-lg cursor-pointer text-center transition-all",children:[jsxRuntimeExports.jsx("span",{className:"font-bold text-indigo-700 text-[10px]",children:"✨ 上传 AI 互动课件 (.zip/.html)"}),jsxRuntimeExports.jsx("input",{type:"file",accept:".zip,.html,.htm",className:"hidden",onChange:async d=>{const _=d.target.files?.[0];if(!_)return;const I=new FileReader;I.onload=async $=>{const N=$.target?.result;try{const q=await fetch("/api/courseware/upload",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:_.name.replace(/\.[^/.]+$/,""),filename:_.name,base64Data:N})});if(q.ok){const G=await q.json();G.need_select_entry?(Pt(G.candidates),qt({uuid:G.uuid,name:G.name}),gt(!0)):(Oe({coursewareUuid:G.uuid,resourceId:""}),dt())}else{const G=await q.json();alert("上传失败: "+(G.error||q.statusText))}}catch(q){console.error("Courseware upload failed:",q)}},I.readAsDataURL(_)}})]}),jsxRuntimeExports.jsxs("label",{className:"flex flex-col items-center justify-center p-2 bg-white hover:bg-slate-100 border border-slate-200 hover:border-slate-300 rounded-lg cursor-pointer text-center transition-all",children:[jsxRuntimeExports.jsx("span",{className:"font-bold text-slate-600 text-[10px]",children:"📄 上传系统HTML文件"}),jsxRuntimeExports.jsx("input",{type:"file",accept:".html,.htm",className:"hidden",onChange:async d=>{const _=d.target.files?.[0];if(!_)return;const I=new FileReader;I.onload=async $=>{const N=$.target?.result;try{const q=await fetch("/api/resources",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:_.name,type:"html",content:N})});if(q.ok){const G=await q.json();Oe({resourceId:G.id,coursewareUuid:""}),st()}}catch(q){console.error("Upload failed:",q)}},I.readAsText(_)}})]}),jsxRuntimeExports.jsxs("label",{className:"flex flex-col items-center justify-center p-2 bg-white hover:bg-slate-100 border border-slate-200 hover:border-slate-300 rounded-lg cursor-pointer text-center transition-all",children:[jsxRuntimeExports.jsx("span",{className:"font-bold text-slate-600 text-[10px]",children:"📁 上传系统文件夹"}),jsxRuntimeExports.jsx("input",{type:"file",webkitdirectory:"",directory:"",multiple:!0,className:"hidden",onChange:async d=>{const _=d.target.files;if(!_||_.length===0)return;const I=[];let $="";for(let N=0;N<_.length;N++){const q=_[N],G=q.webkitRelativePath||q.name;$||($=G.split("/")[0]||"uploaded_resource");const pe=q.name.split(".").pop()?.toLowerCase(),ke=["png","jpg","jpeg","gif","webp","ico"].includes(pe||"");await new Promise(Le=>{const Me=new FileReader;Me.onload=M=>{const B=M.target?.result;I.push({path:G,content:B}),Le()},ke?Me.readAsDataURL(q):Me.readAsText(q)})}try{const N=await fetch("/api/resources",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:$,type:"folder",content:JSON.stringify(I)})});if(N.ok){const q=await N.json();Oe({resourceId:q.id,coursewareUuid:""}),st()}}catch(N){console.error("Folder upload failed:",N)}}})]})]})]})]}),(!ee.resourceId&&!ee.coursewareUuid||l.type==="code-sandbox")&&jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"沙箱程序代码 (Source Code)"}),jsxRuntimeExports.jsx("textarea",{value:ee.code||"",onChange:d=>fe("code",d.target.value),onBlur:d=>Ie("code",d.target.value),className:"w-full h-48 p-3 border border-slate-300 rounded-lg text-xs font-mono focus:outline-none focus:ring-1 focus:ring-indigo-500 bg-slate-900 text-slate-100 resize-none leading-relaxed",placeholder:"// 编写交互沙箱代码..."})]})]}),l.type==="math-graph"&&jsxRuntimeExports.jsxs("div",{className:"bg-white p-3 rounded-xl border border-slate-200 shadow-sm space-y-3",children:[jsxRuntimeExports.jsx("h4",{className:"font-bold text-slate-700 text-xs border-b border-slate-100 pb-1.5",children:"函数解析拟合"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"函数表达式 y = f(x)"}),jsxRuntimeExports.jsx("input",{type:"text",value:ee.equation||"",onChange:d=>fe("equation",d.target.value),onBlur:d=>Ie("equation",d.target.value),className:"w-full px-2 py-1.5 border border-slate-200 rounded-lg text-xs font-mono focus:outline-none focus:ring-1 focus:ring-indigo-100"}),jsxRuntimeExports.jsxs("p",{className:"text-[10px] text-slate-400 mt-1 leading-snug",children:["支持标准 JS 表达式。 示例:",jsxRuntimeExports.jsx("br",{}),"• ",jsxRuntimeExports.jsx("code",{className:"bg-slate-100 px-1 rounded",children:"Math.sin(x)"})," 正负弦波形",jsxRuntimeExports.jsx("br",{}),"• ",jsxRuntimeExports.jsx("code",{className:"bg-slate-100 px-1 rounded",children:"Math.cos(x) * x"})," 振幅衰减"]})]})]}),l.type==="presentation"&&jsxRuntimeExports.jsxs("div",{className:"bg-white p-3 rounded-xl border border-slate-200 shadow-sm space-y-3",children:[jsxRuntimeExports.jsx("h4",{className:"font-bold text-slate-700 text-xs border-b border-slate-100 pb-1.5",children:"幻灯片 Markdown 文案"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"Markdown 源代码"}),jsxRuntimeExports.jsx("textarea",{value:ee.markdown||"",onChange:d=>fe("markdown",d.target.value),onBlur:d=>Ie("markdown",d.target.value),className:"w-full h-64 p-2.5 border border-slate-200 rounded-lg text-xs font-mono focus:outline-none focus:ring-1 focus:ring-indigo-100 resize-none font-medium leading-relaxed bg-slate-50",placeholder:"修改 Markdown 内容..."})]})]}),l.type==="text"&&jsxRuntimeExports.jsxs("div",{className:"bg-white p-3 rounded-xl border border-slate-200 shadow-sm space-y-3",children:[jsxRuntimeExports.jsx("h4",{className:"font-bold text-slate-700 text-xs border-b border-slate-100 pb-1.5",children:"文字属性管理"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"文本内容"}),jsxRuntimeExports.jsx("input",{type:"text",value:ee.text||"",onChange:d=>fe("text",d.target.value),onBlur:d=>Ie("text",d.target.value),className:"w-full px-2 py-1.5 border border-slate-200 rounded-lg text-xs font-medium focus:outline-none focus:ring-1 focus:ring-indigo-500"})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"文字大小 (FontSize)"}),jsxRuntimeExports.jsx("input",{type:"number",min:"10",max:"100",value:ee.fontSize||16,onChange:d=>fe("fontSize",parseInt(d.target.value)||10),onBlur:d=>Ue("fontSize",d.target.value),className:"w-full px-2 py-1.5 border border-slate-200 rounded-lg text-xs font-mono focus:outline-none"})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"文字填充颜色"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("input",{type:"color",value:ee.color||"#000000",onChange:d=>fe("color",d.target.value),onBlur:d=>Ie("color",d.target.value),className:"w-8 h-8 rounded border border-slate-200 cursor-pointer shrink-0"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-[11px] text-slate-500",children:ee.color||"#000000"})]})]})]}),(l.type==="rectangle"||l.type==="shape")&&jsxRuntimeExports.jsxs("div",{className:"bg-white p-3 rounded-xl border border-slate-200 shadow-sm space-y-3",children:[jsxRuntimeExports.jsx("h4",{className:"font-bold text-slate-700 text-xs border-b border-slate-100 pb-1.5",children:"矩形样式配置"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"外边框颜色"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("input",{type:"color",value:ee.stroke||"#000000",onChange:d=>fe("stroke",d.target.value),onBlur:d=>Ie("stroke",d.target.value),className:"w-8 h-8 rounded border border-slate-200 cursor-pointer shrink-0"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-[11px] text-slate-500",children:ee.stroke||"#000000"})]})]})]}),l.type==="circle"&&jsxRuntimeExports.jsxs("div",{className:"bg-white p-3 rounded-xl border border-slate-200 shadow-sm space-y-3",children:[jsxRuntimeExports.jsx("h4",{className:"font-bold text-slate-700 text-xs border-b border-slate-100 pb-1.5",children:"圆形样式配置"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"外边框颜色"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("input",{type:"color",value:ee.stroke||"#000000",onChange:d=>fe("stroke",d.target.value),onBlur:d=>Ie("stroke",d.target.value),className:"w-8 h-8 rounded border border-slate-200 cursor-pointer shrink-0"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-[11px] text-slate-500",children:ee.stroke||"#000000"})]})]})]}),l.type==="pen"&&jsxRuntimeExports.jsxs("div",{className:"bg-white p-3 rounded-xl border border-slate-200 shadow-sm space-y-3",children:[jsxRuntimeExports.jsx("h4",{className:"font-bold text-slate-700 text-xs border-b border-slate-100 pb-1.5",children:"线条样式配置"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"折线颜色"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("input",{type:"color",value:ee.color||"#000000",onChange:d=>fe("color",d.target.value),onBlur:d=>Ie("color",d.target.value),className:"w-8 h-8 rounded border border-slate-200 cursor-pointer shrink-0"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-[11px] text-slate-500",children:ee.color||"#000000"})]})]})]}),l.type==="highlighter"&&jsxRuntimeExports.jsxs("div",{className:"bg-white p-3 rounded-xl border border-slate-200 shadow-sm space-y-3",children:[jsxRuntimeExports.jsx("h4",{className:"font-bold text-slate-700 text-xs border-b border-slate-100 pb-1.5",children:"高亮荧光标记 (Highlighter)"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"荧光笔颜色"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("input",{type:"color",value:ee.color||"#facc15",onChange:d=>fe("color",d.target.value),onBlur:d=>Ie("color",d.target.value),className:"w-8 h-8 rounded border border-slate-200 cursor-pointer shrink-0"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-[11px] text-slate-500",children:ee.color||"#facc15"})]})]})]}),jsxRuntimeExports.jsx("div",{className:"text-[10px] text-slate-400 text-center select-none pt-2 font-medium",children:"提示:属性在失焦或修改时自动同步,多端可见。"})]}),jsxRuntimeExports.jsxs("div",{className:"p-3 border-t border-slate-200 bg-white flex flex-col gap-2 shrink-0",children:[jsxRuntimeExports.jsx("button",{onClick:()=>Ve(ee),disabled:qe,className:"w-full py-2 bg-indigo-600 hover:bg-indigo-700 text-white rounded-lg font-bold transition-all shadow-sm hover:shadow active:scale-[0.98] cursor-pointer flex items-center justify-center gap-1.5 text-xs",children:qe?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(LoaderCircle,{size:13,className:"animate-spin"}),"正在广播同步..."]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Paintbrush,{size:13}),"应用修改并强制同步"]})}),jsxRuntimeExports.jsxs("button",{onClick:()=>{Ne(O),te(null)},className:"w-full py-2 bg-red-50 hover:bg-red-105 text-red-650 rounded-lg font-semibold transition-all flex items-center justify-center gap-1.5 border border-red-200 cursor-pointer text-xs",children:[jsxRuntimeExports.jsx(Trash2,{size:13}),"删除当前组件"]})]})]}):null})()]})}),InteractiveWhiteboard$1=Object.freeze(Object.defineProperty({__proto__:null,DEFAULT_WHITEBOARD_PAGES,InteractiveWhiteboard},Symbol.toStringTag,{value:"Module"}));export{Pause as $,Activity as A,Bell as B,ChevronDown as C,Database as D,Eye as E,FileText as F,Globe as G,House as H,Users as I,CircleAlert as J,KeyRound as K,LogOut as L,Minimize2 as M,Lock as N,ArrowRight as O,Presentation as P,Play as Q,RefreshCw as R,Sparkles as S,Terminal as T,User as U,ChevronLeft as V,WandSparkles as W,X,createStore as Y,useStore as Z,Clock as _,Maximize2 as a,ScanLine as a$,Trophy as a0,MessagesSquare as a1,Vote as a2,CircleQuestionMark as a3,usePluginHostStore as a4,ShieldAlert as a5,FileCheck as a6,Award as a7,MessageSquare as a8,CircleCheckBig as a9,Settings as aA,Zap as aB,Github as aC,Code as aD,Info$1 as aE,EyeOff as aF,Tag as aG,Bold as aH,Italic as aI,Underline as aJ,Heading1 as aK,Heading2 as aL,List as aM,ListOrdered as aN,Quote as aO,Highlighter as aP,SquareDot as aQ,Bookmark as aR,Brain as aS,LayoutGrid as aT,Grid3x3 as aU,RotateCcw as aV,CalendarDays as aW,Pen as aX,FileSpreadsheet as aY,Camera as aZ,ImagePlus as a_,Star as aa,Timer as ab,TriangleAlert as ac,CirclePlay as ad,TrendingUp as ae,Funnel as af,Calendar as ag,Compass as ah,TrendingDown as ai,ChartLine as aj,ChartNoAxesColumn as ak,FileBadge as al,PenTool as am,ExtensionPointRenderer as an,Command as ao,ArrowLeft as ap,Send as aq,ChevronUp as ar,Blocks as as,Wrench as at,CalendarClock as au,GripVertical as av,ExternalLink as aw,Save as ax,Square as ay,LucideReact as az,LayoutTemplate as b,Server as b0,Layers as b1,Cpu as b2,Monitor as b3,Menu as b4,DOMExtensionWrapper as b5,PanelRightClose as b6,Paperclip as b7,usePluginHost as b8,SocketService as b9,PluginHostProvider as ba,InteractiveWhiteboard$1 as bb,ClipboardList as c,CircleCheck as d,Puzzle as e,Shuffle as f,Search as g,Upload as h,ChartColumn as i,jsxRuntimeExports as j,CircleX as k,Trash2 as l,BookOpen as m,Plus as n,Markdown as o,ChevronRight as p,LoaderCircle as q,Download as r,Check as s,Folder as t,File as u,Settings2 as v,Percent as w,ListFilter as x,GraduationCap as y,Shield as z};
8343
+ ## Slide 2`,width:600,height:400,slideX:0,slideY:0};case"quiz":return{...$,question:d.question??"New Quiz",options:Array.isArray(d.options)?d.options:["A","B","C","D"]};case"html-applet":return{...$,code:d.code??""};case"assignment":return{...$,title:d.title??"New Assignment",description:d.description??""};case"hello-world":return $;case"rollcall":return{...$,allStudents:[]};default:return{...$,...d}}},Qt=async(l,d)=>{if(!ue.current)return;const _=ue.current.getBoundingClientRect(),I=Math.round(_.width/2),$=Math.round(_.height/2);de(!0);try{await o(l,wt(l,d,I,$)),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}),c&&c()}catch(S){console.error("addElementAtCenter error",S)}finally{de(!1)}};reactExports.useImperativeHandle(g,()=>({addElementAtCenter:Qt}));const vt=async l=>{l.preventDefault(),l.stopPropagation();try{let d=l.dataTransfer.getData("application/json");if(d||(d=l.dataTransfer.getData("text/plain")),d||(d=l.dataTransfer.getData("text")),d||(d=l.dataTransfer.getData("Text")),console.log("Whiteboard drop triggered. Payload:",d),!d)return;let _;try{_=JSON.parse(d)}catch(R){console.error("Failed to parse drop JSON payload:",R);return}if(typeof _!="object"||!_)return;if(!ue.current){console.warn("containerRef.current is not loaded on drop");return}const I=ue.current.getBoundingClientRect();let $=l.clientX-I.left,S=l.clientY-I.top;console.log(`Adding whiteboard element of type ${_.type} at (${$}, ${S})`),de(!0);try{await o(_.type,wt(_.type,_,$,S)),frontendEventBus.publish({id:v7(),type:"whiteboard.element_updated",source:"whiteboard",payload:{lessonId:e},timestamp:Date.now(),correlationId:e}),c&&c()}finally{de(!1)}}catch(d){console.error("Drop error",d)}};return jsxRuntimeExports.jsxs("div",{className:"flex-1 flex flex-row min-h-0 overflow-hidden bg-white",children:[jsxRuntimeExports.jsxs("div",{className:"flex-1 flex flex-col min-h-0 bg-white relative min-w-0",onDragOver:Mt,onDragEnter:Lt,onDrop:vt,children:[jsxRuntimeExports.jsx(WhiteboardToolbar,{tool:w,setTool:N,setSelectedShapeId:te,highlighterColor:q,setHighlighterColor:b,onElementAdd:o,currentPage:v,activeSegmentId:s,lessonId:e,safeElements:k,selectedShapeId:O,showGrid:F,setShowGrid:U,userRole:u,isSyncing:Re,setIsSyncing:de,handleClearBoard:Vt,handleResetBoard:Ot,handleElementDelete:Ne,setDialog:je,setDialogInput:mt,onRefresh:c}),jsxRuntimeExports.jsxs("div",{ref:ue,className:"flex-1 bg-slate-50/70 rounded-2xl border border-slate-200/80 relative overflow-hidden w-full mb-14 shadow-inner transition-all",style:{backgroundImage:F?"radial-gradient(#cbd5e1 1.2px, transparent 1.2px)":"none",backgroundSize:"24px 24px",backgroundColor:"#f8fafc"},onDragOver:Mt,onDragEnter:Lt,onDragLeave:Jt,onDrop:async l=>{K(!1),await vt(l)},children:[C&&jsxRuntimeExports.jsxs("div",{className:"absolute inset-0 border-2 border-dashed border-indigo-500 bg-indigo-500/10 backdrop-blur-[2px] rounded-2xl flex flex-col items-center justify-center text-indigo-600 font-bold text-sm z-30 animate-in fade-in pointer-events-none",children:[jsxRuntimeExports.jsx(Plus,{size:32,className:"mb-2 text-indigo-600 animate-bounce"}),jsxRuntimeExports.jsx("span",{children:"释放鼠标将组件放入当前白板页面"})]}),k.filter(l=>{if(l.type==="page_meta")return!1;try{const d=JSON.parse(l.data),_=d.page??0,I=Z[v];return!(!(d.pageId&&I?.id?d.pageId===I.id:_===v)||s&&d.segmentId&&d.segmentId!==s)}catch{return v===0}}).length===0&&!Ge&&jsxRuntimeExports.jsxs("div",{className:"absolute inset-0 flex flex-col items-center justify-center pointer-events-none select-none text-slate-400 p-6 z-0",children:[jsxRuntimeExports.jsx("div",{className:"w-16 h-16 rounded-2xl bg-indigo-50/80 border border-indigo-100/80 flex items-center justify-center mb-3 shadow-2xs",children:jsxRuntimeExports.jsx(Sparkles,{className:"w-7 h-7 text-indigo-500 animate-pulse"})}),jsxRuntimeExports.jsx("p",{className:"font-bold text-sm text-slate-700 mb-1",children:"交互式备课白板"}),jsxRuntimeExports.jsx("p",{className:"text-xs text-slate-400 max-w-sm text-center",children:"从左侧组件库拖拽组件至此处,或使用顶部工具栏插入画笔、几何图形与 AI 助教"})]}),jsxRuntimeExports.jsxs("div",{className:"absolute inset-0 w-full h-full overflow-hidden",style:{pointerEvents:C?"none":"auto"},children:[he.width>0&&he.height>0&&(Ge?(()=>{const l=k.find(I=>I.id===Ge);if(!l)return Ee(null),null;let d={};try{d=JSON.parse(l.data)}catch{}const _={quiz:"📝 随堂测验",timer:"⏱ 计时器",assignment:"📋 作业","code-sandbox":"💻 代码沙箱","html-applet":"🌐 交互课件",rollcall:"🎲 随机点名",presentation:"📽 演示文稿","math-graph":"📐 数学图形",text:"📝 文本"};return jsxRuntimeExports.jsx(FullscreenOverlay,{type:l.type,title:_[l.type]||l.type,data:d,containerSize:he,onClose:()=>Ee(null),lessonId:e})})():jsxRuntimeExports.jsx(Stage,{width:he.width,height:he.height,onMouseDown:Ut,onMousemove:Wt,onMouseup:Gt,onContextMenu:l=>{l.evt.preventDefault();const d=ue.current?.getBoundingClientRect();if(d){const _=l.evt.clientX-d.left,I=l.evt.clientY-d.top,S=l.target.id();S?(te(S),ae({x:_,y:I,elementId:S})):ae({x:_,y:I})}},ref:ce,className:"w-full h-full cursor-crosshair",children:jsxRuntimeExports.jsxs(Layer,{children:[k.filter(l=>{if(l.type==="page_meta")return!1;try{const d=JSON.parse(l.data),_=d.page??0,I=Z[v];return!(!(d.pageId&&I?.id?d.pageId===I.id:_===v)||s&&d.segmentId&&d.segmentId!==s)}catch{return v===0}}).map(Kt),Xt(),Zt()]})})),O&&(()=>{const l=k.find($=>$.id===O);if(!l)return null;const d=Tt(l);if(!d)return null;const _=Math.max(10,Math.min(he.width-150,d.x-60)),I=Math.max(10,Math.min(he.height-50,d.y));return jsxRuntimeExports.jsxs("div",{style:{left:`${_}px`,top:`${I}px`,pointerEvents:"auto"},className:"absolute bg-white text-gray-800 shadow-xl border border-red-200 rounded-lg py-1 px-2 flex items-center gap-1.5 z-30 animate-in fade-in slide-in-from-bottom-2 duration-150 animate-out fade-out duration-100",children:[jsxRuntimeExports.jsx("span",{className:"text-xs font-semibold px-1 text-gray-500 capitalize select-none",children:l.type}),jsxRuntimeExports.jsx("div",{className:"w-[1px] h-3 bg-gray-200"}),jsxRuntimeExports.jsxs("button",{onClick:()=>{Ne(O),te(null)},className:"flex items-center gap-1 text-xs text-red-600 hover:text-white hover:bg-red-600 px-2 py-0.5 rounded transition-all font-medium cursor-pointer",children:[jsxRuntimeExports.jsx(Trash2,{size:12}),"删除"]})]})})(),Pe&&jsxRuntimeExports.jsx("div",{style:{left:`${Pe.x}px`,top:`${Pe.y}px`,pointerEvents:"auto"},className:"absolute bg-white rounded-lg shadow-2xl border border-gray-200 py-1.5 w-44 z-40 font-sans text-sm animate-in fade-in zoom-in-95 duration-100",onClick:l=>l.stopPropagation(),onContextMenu:l=>l.preventDefault(),children:Pe.elementId?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"px-3 py-1 text-[11px] text-gray-500 font-bold uppercase tracking-wider select-none",children:"组件选项"}),jsxRuntimeExports.jsxs("button",{onClick:()=>{const l=Pe.elementId;l&&(Ne(l),O===l&&te(null)),ae(null)},className:"w-full px-3 py-1.5 flex items-center gap-2 text-left text-red-600 hover:bg-red-50 transition-colors text-xs font-semibold",children:[jsxRuntimeExports.jsx(Trash2,{size:14}),"删除此组件"]})]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"px-3 py-1 text-[11px] text-gray-400 font-bold uppercase tracking-wider select-none",children:"白板操作"}),jsxRuntimeExports.jsxs("button",{onClick:()=>{N("cursor"),ae(null)},className:`w-full px-3 py-1.5 flex items-center gap-2 text-left text-xs font-medium hover:bg-gray-50 transition-colors ${w==="cursor"?"text-indigo-600":"text-gray-750"}`,children:[jsxRuntimeExports.jsx(MousePointer2,{size:14}),"选择工具 (Cursor)"]}),jsxRuntimeExports.jsxs("button",{onClick:()=>{N("pen"),ae(null)},className:`w-full px-3 py-1.5 flex items-center gap-2 text-left text-xs font-medium hover:bg-gray-50 transition-colors ${w==="pen"?"text-indigo-600":"text-gray-750"}`,children:[jsxRuntimeExports.jsx(PenTool,{size:14}),"画笔工具 (Pen)"]}),jsxRuntimeExports.jsxs("button",{onClick:()=>{N("highlighter"),ae(null)},className:`w-full px-3 py-1.5 flex items-center gap-2 text-left text-xs font-medium hover:bg-gray-50 transition-colors ${w==="highlighter"?"text-indigo-600":"text-gray-750"}`,children:[jsxRuntimeExports.jsx(Highlighter,{size:14}),"高亮荧光笔 (Highlighter)"]}),jsxRuntimeExports.jsxs("button",{onClick:()=>{N("rect"),ae(null)},className:`w-full px-3 py-1.5 flex items-center gap-2 text-left text-xs font-medium hover:bg-gray-50 transition-colors ${w==="rect"?"text-indigo-600":"text-gray-750"}`,children:[jsxRuntimeExports.jsx(Square,{size:14}),"矩形工具 (Rectangle)"]}),jsxRuntimeExports.jsxs("button",{onClick:()=>{N("circle"),ae(null)},className:`w-full px-3 py-1.5 flex items-center gap-2 text-left text-xs font-medium hover:bg-gray-50 transition-colors ${w==="circle"?"text-indigo-600":"text-gray-750"}`,children:[jsxRuntimeExports.jsx(Circle,{size:14}),"圆形工具 (Circle)"]}),jsxRuntimeExports.jsxs("button",{onClick:()=>{N("text"),ae(null)},className:`w-full px-3 py-1.5 flex items-center gap-2 text-left text-xs font-medium hover:bg-gray-50 transition-colors ${w==="text"?"text-indigo-600":"text-gray-750"}`,children:[jsxRuntimeExports.jsx(Type,{size:14}),"文本工具 (Text)"]})]})})]})]}),jsxRuntimeExports.jsx(WhiteboardPageBar,{pages:Z,currentPage:v,showPageDrawer:oe,setShowPageDrawer:H,editingPageIdx:E,setEditingPageIdx:J,editingPageTitle:z,setEditingPageTitle:A,activeMenuPageIdx:Q,setActiveMenuPageIdx:se,safeElements:k,handleSwitchPage:be,handleRenamePage:_e,handleDuplicatePage:we,handleMovePage:Ce,handleDeletePage:f,handleAddPage:m}),jsxRuntimeExports.jsx(WhiteboardDialog,{dialog:Ct,dialogInput:bt,setDialogInput:mt,setDialog:je}),jsxRuntimeExports.jsx(CoursewareEntrySelectorModal,{showEntrySelector:qt,setShowEntrySelector:gt,zipUploadInfo:At,zipCandidates:jt,handlePropsUpdate:Oe,fetchCoursewares:dt})]}),p&&O&&Y&&(()=>{const l=k.find(d=>d.id===O);return l?jsxRuntimeExports.jsxs("div",{className:"w-80 h-full max-h-full bg-slate-50 border-l border-slate-200 flex flex-col font-sans text-xs select-none shadow-xl shrink-0 z-20 animate-in slide-in-from-right duration-200",onPointerDown:d=>d.stopPropagation(),children:[jsxRuntimeExports.jsxs("div",{className:"px-4 py-3 border-b border-slate-200 bg-white flex justify-between items-center shrink-0",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Settings,{size:15,className:"text-slate-500 animate-spin",style:{animationDuration:"6s"}}),jsxRuntimeExports.jsx("span",{className:"font-bold text-slate-800 text-sm",children:"属性编辑器"})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1.5 font-sans",children:[jsxRuntimeExports.jsxs("button",{onClick:zt,disabled:(Ze[O]||[]).length===0,className:`p-1 rounded-lg transition-all flex items-center justify-center gap-1 border border-transparent select-none cursor-pointer ${(Ze[O]||[]).length===0?"text-slate-350 bg-transparent border-transparent opacity-40 cursor-not-allowed":"text-slate-700 bg-slate-50 hover:bg-slate-100 hover:border-slate-200 active:bg-slate-150"}`,title:"撤销属性修改",children:[jsxRuntimeExports.jsx(Undo2,{size:13}),(Ze[O]||[]).length>0&&jsxRuntimeExports.jsx("span",{className:"text-[10px] font-bold text-slate-500",children:(Ze[O]||[]).length})]}),jsxRuntimeExports.jsxs("button",{onClick:Et,disabled:(Ke[O]||[]).length===0,className:`p-1 rounded-lg transition-all flex items-center justify-center gap-1 border border-transparent select-none cursor-pointer ${(Ke[O]||[]).length===0?"text-slate-350 bg-transparent border-transparent opacity-40 cursor-not-allowed":"text-slate-700 bg-slate-50 hover:bg-slate-100 hover:border-slate-200 active:bg-slate-150"}`,title:"重做属性修改",children:[jsxRuntimeExports.jsx(Redo2,{size:13}),(Ke[O]||[]).length>0&&jsxRuntimeExports.jsx("span",{className:"text-[10px] font-bold text-slate-500",children:(Ke[O]||[]).length})]}),jsxRuntimeExports.jsx("div",{className:"h-4 w-px bg-slate-200 mx-0.5 shrink-0"}),jsxRuntimeExports.jsx("button",{onClick:()=>te(null),className:"text-slate-400 hover:text-slate-650 hover:bg-slate-100 p-1 rounded-full transition-all cursor-pointer",title:"关闭属性编辑器",children:jsxRuntimeExports.jsx(X,{size:15})})]})]}),jsxRuntimeExports.jsxs("div",{className:"flex-1 overflow-y-auto p-4 space-y-4",children:[jsxRuntimeExports.jsxs("div",{className:"bg-white p-3 rounded-xl border border-slate-200 shadow-sm space-y-2",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("span",{className:"text-slate-400 text-[10px] font-bold uppercase tracking-wider",children:"组件类型"}),jsxRuntimeExports.jsx("span",{className:"px-2 py-0.5 bg-indigo-50 text-indigo-650 rounded text-[10px] font-bold uppercase tracking-wider",children:l.type})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("span",{className:"text-slate-400 text-[10px] font-bold uppercase tracking-wider",children:"组件标识"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-slate-500 text-[10px] truncate max-w-[155px]",title:l.id,children:l.id})]})]}),jsxRuntimeExports.jsxs("div",{className:"bg-white p-3 rounded-xl border border-slate-200 shadow-sm space-y-3",children:[jsxRuntimeExports.jsx("h4",{className:"font-bold text-slate-700 text-xs border-b border-slate-100 pb-1.5 flex items-center gap-1.5",children:"物理定位 & 尺寸"}),jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"X 坐标"}),jsxRuntimeExports.jsx("input",{type:"number",value:Math.round(Y.x??0),onChange:d=>fe("x",parseFloat(d.target.value)||0),onBlur:d=>Ue("x",d.target.value),className:"w-full px-2 py-1.5 border border-slate-200 rounded-lg text-xs font-mono focus:outline-none focus:ring-1 focus:ring-indigo-500"})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"Y 坐标"}),jsxRuntimeExports.jsx("input",{type:"number",value:Math.round(Y.y??0),onChange:d=>fe("y",parseFloat(d.target.value)||0),onBlur:d=>Ue("y",d.target.value),className:"w-full px-2 py-1.5 border border-slate-200 rounded-lg text-xs font-mono focus:outline-none focus:ring-1 focus:ring-indigo-500"})]})]}),l.type!=="pen"&&l.type!=="circle"&&jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-2 gap-2 mt-2",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"宽度 (Width)"}),jsxRuntimeExports.jsx("input",{type:"number",min:"50",value:Math.round(Y.width??300),onChange:d=>fe("width",parseFloat(d.target.value)||50),onBlur:d=>Ue("width",d.target.value),className:"w-full px-2 py-1.5 border border-slate-200 rounded-lg text-xs font-mono focus:outline-none focus:ring-1 focus:ring-indigo-500"})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"高度 (Height)"}),jsxRuntimeExports.jsx("input",{type:"number",min:"50",value:Math.round(Y.height??300),onChange:d=>fe("height",parseFloat(d.target.value)||50),onBlur:d=>Ue("height",d.target.value),className:"w-full px-2 py-1.5 border border-slate-200 rounded-lg text-xs font-mono focus:outline-none focus:ring-1 focus:ring-indigo-500"})]})]}),l.type==="circle"&&jsxRuntimeExports.jsxs("div",{className:"mt-2",children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"半径 (Radius)"}),jsxRuntimeExports.jsx("input",{type:"number",min:"5",value:Math.round(Y.radius??50),onChange:d=>fe("radius",parseFloat(d.target.value)||5),onBlur:d=>Ue("radius",d.target.value),className:"w-full px-2 py-1.5 border border-slate-200 rounded-lg text-xs font-mono focus:outline-none focus:ring-1 focus:ring-indigo-500"})]})]}),(()=>{const d=propertyEditorRegistry.get(l.type);return d?jsxRuntimeExports.jsx(d,{elementId:l.id,elementType:l.type,data:Y,updateData:Oe,lessonId:e,onClose:()=>te(null)}):null})(),l.type==="quiz"&&jsxRuntimeExports.jsxs("div",{className:"bg-white p-3 rounded-xl border border-slate-200 shadow-sm space-y-3",children:[jsxRuntimeExports.jsx("h4",{className:"font-bold text-slate-700 text-xs border-b border-slate-100 pb-1.5",children:"随堂测验配置"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"测验题目 (Question)"}),jsxRuntimeExports.jsx("textarea",{value:Y.question||"",onChange:d=>fe("question",d.target.value),onBlur:d=>Ie("question",d.target.value),className:"w-full h-20 p-2 border border-slate-200 rounded-lg text-xs focus:outline-none focus:ring-1 focus:ring-indigo-500 resize-none font-medium leading-relaxed",placeholder:"编写问题描述..."})]}),(Y.options||[]).length>0&&jsxRuntimeExports.jsxs("div",{className:"bg-amber-50 border border-amber-200 rounded-lg p-2.5",children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-amber-700 font-bold mb-1.5",children:"⚠️ 正确答案 (Correct Answer)"}),jsxRuntimeExports.jsxs("select",{value:Y.correctAnswer||"",onChange:d=>{fe("correctAnswer",d.target.value),Ie("correctAnswer",d.target.value)},className:`w-full px-2 py-1.5 border rounded-lg text-xs font-medium focus:outline-none focus:ring-1 focus:ring-amber-500 cursor-pointer ${Y.correctAnswer?"border-green-300 bg-green-50 text-green-800":"border-amber-300 bg-white text-amber-800"}`,children:[jsxRuntimeExports.jsx("option",{value:"",children:"-- 请选择正确答案 --"}),(Y.options||[]).map((d,_)=>jsxRuntimeExports.jsx("option",{value:d,children:d},_))]}),!Y.correctAnswer&&jsxRuntimeExports.jsx("p",{className:"text-[9px] text-amber-600 mt-1",children:"未设置正确答案将无法自动判分"})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold",children:"选项列表 (Options)"}),jsxRuntimeExports.jsx("div",{className:"space-y-1.5 max-h-48 overflow-y-auto pr-1",children:(Y.options||[]).map((d,_)=>{const $="ABCDEFGHIJKLMNOPQRSTUVWXYZ"[_]||_+1;return jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1.5",children:[jsxRuntimeExports.jsx("span",{className:"font-bold text-slate-700 bg-slate-100 rounded px-1.5 py-1 text-center shrink-0 min-w-[22px]",children:$}),jsxRuntimeExports.jsx("input",{type:"text",value:d||"",onChange:S=>Dt(_,S.target.value),onBlur:S=>Ht(_,S.target.value),className:"flex-1 px-2 py-1 border border-slate-200 rounded-lg text-xs font-medium"}),jsxRuntimeExports.jsx("button",{onClick:()=>Ft(_),title:"删除选项",className:"text-slate-400 hover:text-red-500 hover:bg-red-50 p-1 rounded-md shrink-0 transition-colors cursor-pointer",children:jsxRuntimeExports.jsx(Trash2,{size:13})})]},_)})}),jsxRuntimeExports.jsxs("button",{onClick:Bt,className:"w-full mt-2 py-1 bg-slate-100 hover:bg-slate-200 text-slate-600 font-bold border border-slate-200/80 rounded-lg flex items-center justify-center gap-1 hover:text-slate-700 transition-all text-[11px] cursor-pointer",children:[jsxRuntimeExports.jsx(Plus,{size:12})," 添加选项"]})]})]}),l.type==="assignment"&&jsxRuntimeExports.jsxs("div",{className:"bg-white p-3 rounded-xl border border-slate-200 shadow-sm space-y-3",children:[jsxRuntimeExports.jsx("h4",{className:"font-bold text-slate-700 text-xs border-b border-slate-100 pb-1.5",children:"作业选项配置"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"作业任务标题 (Title)"}),jsxRuntimeExports.jsx("input",{type:"text",value:Y.title||"",onChange:d=>fe("title",d.target.value),onBlur:d=>Ie("title",d.target.value),className:"w-full px-2 py-1.5 border border-slate-200 rounded-lg text-xs font-semibold focus:outline-none focus:ring-1 focus:ring-indigo-500",placeholder:"作业名..."})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"详细作业要求描述"}),jsxRuntimeExports.jsx("textarea",{value:Y.description||"",onChange:d=>fe("description",d.target.value),onBlur:d=>Ie("description",d.target.value),className:"w-full h-24 p-2 border border-slate-200 rounded-lg text-xs focus:outline-none focus:ring-1 focus:ring-indigo-500 resize-none font-medium leading-relaxed",placeholder:"请输入详细的作业指南..."})]})]}),(l.type==="code-sandbox"||l.type==="html-applet")&&jsxRuntimeExports.jsxs("div",{className:"bg-white p-3 rounded-xl border border-slate-200 shadow-sm space-y-3",children:[jsxRuntimeExports.jsxs("h4",{className:"font-bold text-slate-700 text-xs border-b border-slate-100 pb-1.5 flex justify-between items-center",children:[jsxRuntimeExports.jsx("span",{children:"动态运行代码定制"}),l.type==="html-applet"&&jsxRuntimeExports.jsx("span",{className:"text-[10px] bg-indigo-50 text-indigo-700 px-1.5 py-0.5 rounded-full font-bold",children:"HTML Applet"})]}),l.type==="html-applet"&&jsxRuntimeExports.jsxs("div",{className:"space-y-3 border-b border-slate-100 pb-3",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-indigo-600 font-bold mb-1",children:"选择 AI 互动课件 (ZIP/HTML):"}),jsxRuntimeExports.jsxs("select",{value:Y.coursewareUuid||"",onChange:d=>{const _=d.target.value;Oe({coursewareUuid:_,resourceId:""})},className:"w-full text-xs p-2 bg-slate-50 border border-indigo-200 hover:border-indigo-300 rounded-lg text-slate-750 focus:outline-none focus:ring-1 focus:ring-indigo-500 transition-all font-semibold",children:[jsxRuntimeExports.jsx("option",{value:"",children:"-- 使用系统资源或自定义代码 --"}),St.map(d=>jsxRuntimeExports.jsxs("option",{value:d.uuid,children:["📁 [互动课件] ",d.name]},d.id))]})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-500 font-bold mb-1",children:"选择已有的系统资源:"}),jsxRuntimeExports.jsxs("select",{value:Y.resourceId||"",onChange:d=>{const _=d.target.value;Oe({resourceId:_,coursewareUuid:""})},className:"w-full text-xs p-2 bg-slate-50 border border-slate-200 hover:border-slate-300 rounded-lg text-slate-750 focus:outline-none focus:ring-1 focus:ring-indigo-500 transition-all font-semibold",children:[jsxRuntimeExports.jsx("option",{value:"",children:"-- 使用互动课件或自定义代码 --"}),It.map(d=>jsxRuntimeExports.jsxs("option",{value:d.id,children:["[",d.type==="folder"?"文件夹":"单HTML","] ",d.name]},d.id))]})]}),jsxRuntimeExports.jsxs("div",{className:"bg-slate-50 p-2.5 rounded-xl border border-slate-100 text-[10px] text-slate-500 space-y-2",children:[jsxRuntimeExports.jsx("span",{className:"font-bold text-slate-600 block",children:"上传资源 (会自动保存到对应库):"}),jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[jsxRuntimeExports.jsxs("label",{className:"col-span-2 flex flex-col items-center justify-center p-2 bg-indigo-50 hover:bg-indigo-100 border border-indigo-200 hover:border-indigo-300 rounded-lg cursor-pointer text-center transition-all",children:[jsxRuntimeExports.jsx("span",{className:"font-bold text-indigo-700 text-[10px]",children:"✨ 上传 AI 互动课件 (.zip/.html)"}),jsxRuntimeExports.jsx("input",{type:"file",accept:".zip,.html,.htm",className:"hidden",onChange:async d=>{const _=d.target.files?.[0];if(!_)return;const I=new FileReader;I.onload=async $=>{const S=$.target?.result;try{const R=await fetch("/api/courseware/upload",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:_.name.replace(/\.[^/.]+$/,""),filename:_.name,base64Data:S})});if(R.ok){const G=await R.json();G.need_select_entry?(Pt(G.candidates),Rt({uuid:G.uuid,name:G.name}),gt(!0)):(Oe({coursewareUuid:G.uuid,resourceId:""}),dt())}else{const G=await R.json();alert("上传失败: "+(G.error||R.statusText))}}catch(R){console.error("Courseware upload failed:",R)}},I.readAsDataURL(_)}})]}),jsxRuntimeExports.jsxs("label",{className:"flex flex-col items-center justify-center p-2 bg-white hover:bg-slate-100 border border-slate-200 hover:border-slate-300 rounded-lg cursor-pointer text-center transition-all",children:[jsxRuntimeExports.jsx("span",{className:"font-bold text-slate-600 text-[10px]",children:"📄 上传系统HTML文件"}),jsxRuntimeExports.jsx("input",{type:"file",accept:".html,.htm",className:"hidden",onChange:async d=>{const _=d.target.files?.[0];if(!_)return;const I=new FileReader;I.onload=async $=>{const S=$.target?.result;try{const R=await fetch("/api/resources",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:_.name,type:"html",content:S})});if(R.ok){const G=await R.json();Oe({resourceId:G.id,coursewareUuid:""}),st()}}catch(R){console.error("Upload failed:",R)}},I.readAsText(_)}})]}),jsxRuntimeExports.jsxs("label",{className:"flex flex-col items-center justify-center p-2 bg-white hover:bg-slate-100 border border-slate-200 hover:border-slate-300 rounded-lg cursor-pointer text-center transition-all",children:[jsxRuntimeExports.jsx("span",{className:"font-bold text-slate-600 text-[10px]",children:"📁 上传系统文件夹"}),jsxRuntimeExports.jsx("input",{type:"file",webkitdirectory:"",directory:"",multiple:!0,className:"hidden",onChange:async d=>{const _=d.target.files;if(!_||_.length===0)return;const I=[];let $="";for(let S=0;S<_.length;S++){const R=_[S],G=R.webkitRelativePath||R.name;$||($=G.split("/")[0]||"uploaded_resource");const pe=R.name.split(".").pop()?.toLowerCase(),ke=["png","jpg","jpeg","gif","webp","ico"].includes(pe||"");await new Promise(Le=>{const Me=new FileReader;Me.onload=M=>{const B=M.target?.result;I.push({path:G,content:B}),Le()},ke?Me.readAsDataURL(R):Me.readAsText(R)})}try{const S=await fetch("/api/resources",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:$,type:"folder",content:JSON.stringify(I)})});if(S.ok){const R=await S.json();Oe({resourceId:R.id,coursewareUuid:""}),st()}}catch(S){console.error("Folder upload failed:",S)}}})]})]})]})]}),(!Y.resourceId&&!Y.coursewareUuid||l.type==="code-sandbox")&&jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"沙箱程序代码 (Source Code)"}),jsxRuntimeExports.jsx("textarea",{value:Y.code||"",onChange:d=>fe("code",d.target.value),onBlur:d=>Ie("code",d.target.value),className:"w-full h-48 p-3 border border-slate-300 rounded-lg text-xs font-mono focus:outline-none focus:ring-1 focus:ring-indigo-500 bg-slate-900 text-slate-100 resize-none leading-relaxed",placeholder:"// 编写交互沙箱代码..."})]})]}),l.type==="math-graph"&&jsxRuntimeExports.jsxs("div",{className:"bg-white p-3 rounded-xl border border-slate-200 shadow-sm space-y-3",children:[jsxRuntimeExports.jsx("h4",{className:"font-bold text-slate-700 text-xs border-b border-slate-100 pb-1.5",children:"函数解析拟合"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"函数表达式 y = f(x)"}),jsxRuntimeExports.jsx("input",{type:"text",value:Y.equation||"",onChange:d=>fe("equation",d.target.value),onBlur:d=>Ie("equation",d.target.value),className:"w-full px-2 py-1.5 border border-slate-200 rounded-lg text-xs font-mono focus:outline-none focus:ring-1 focus:ring-indigo-100"}),jsxRuntimeExports.jsxs("p",{className:"text-[10px] text-slate-400 mt-1 leading-snug",children:["支持标准 JS 表达式。 示例:",jsxRuntimeExports.jsx("br",{}),"• ",jsxRuntimeExports.jsx("code",{className:"bg-slate-100 px-1 rounded",children:"Math.sin(x)"})," 正负弦波形",jsxRuntimeExports.jsx("br",{}),"• ",jsxRuntimeExports.jsx("code",{className:"bg-slate-100 px-1 rounded",children:"Math.cos(x) * x"})," 振幅衰减"]})]})]}),l.type==="presentation"&&jsxRuntimeExports.jsxs("div",{className:"bg-white p-3 rounded-xl border border-slate-200 shadow-sm space-y-3",children:[jsxRuntimeExports.jsx("h4",{className:"font-bold text-slate-700 text-xs border-b border-slate-100 pb-1.5",children:"幻灯片 Markdown 文案"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"Markdown 源代码"}),jsxRuntimeExports.jsx("textarea",{value:Y.markdown||"",onChange:d=>fe("markdown",d.target.value),onBlur:d=>Ie("markdown",d.target.value),className:"w-full h-64 p-2.5 border border-slate-200 rounded-lg text-xs font-mono focus:outline-none focus:ring-1 focus:ring-indigo-100 resize-none font-medium leading-relaxed bg-slate-50",placeholder:"修改 Markdown 内容..."})]})]}),l.type==="text"&&jsxRuntimeExports.jsxs("div",{className:"bg-white p-3 rounded-xl border border-slate-200 shadow-sm space-y-3",children:[jsxRuntimeExports.jsx("h4",{className:"font-bold text-slate-700 text-xs border-b border-slate-100 pb-1.5",children:"文字属性管理"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"文本内容"}),jsxRuntimeExports.jsx("input",{type:"text",value:Y.text||"",onChange:d=>fe("text",d.target.value),onBlur:d=>Ie("text",d.target.value),className:"w-full px-2 py-1.5 border border-slate-200 rounded-lg text-xs font-medium focus:outline-none focus:ring-1 focus:ring-indigo-500"})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"文字大小 (FontSize)"}),jsxRuntimeExports.jsx("input",{type:"number",min:"10",max:"100",value:Y.fontSize||16,onChange:d=>fe("fontSize",parseInt(d.target.value)||10),onBlur:d=>Ue("fontSize",d.target.value),className:"w-full px-2 py-1.5 border border-slate-200 rounded-lg text-xs font-mono focus:outline-none"})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"文字填充颜色"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("input",{type:"color",value:Y.color||"#000000",onChange:d=>fe("color",d.target.value),onBlur:d=>Ie("color",d.target.value),className:"w-8 h-8 rounded border border-slate-200 cursor-pointer shrink-0"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-[11px] text-slate-500",children:Y.color||"#000000"})]})]})]}),(l.type==="rectangle"||l.type==="shape")&&jsxRuntimeExports.jsxs("div",{className:"bg-white p-3 rounded-xl border border-slate-200 shadow-sm space-y-3",children:[jsxRuntimeExports.jsx("h4",{className:"font-bold text-slate-700 text-xs border-b border-slate-100 pb-1.5",children:"矩形样式配置"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"外边框颜色"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("input",{type:"color",value:Y.stroke||"#000000",onChange:d=>fe("stroke",d.target.value),onBlur:d=>Ie("stroke",d.target.value),className:"w-8 h-8 rounded border border-slate-200 cursor-pointer shrink-0"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-[11px] text-slate-500",children:Y.stroke||"#000000"})]})]})]}),l.type==="circle"&&jsxRuntimeExports.jsxs("div",{className:"bg-white p-3 rounded-xl border border-slate-200 shadow-sm space-y-3",children:[jsxRuntimeExports.jsx("h4",{className:"font-bold text-slate-700 text-xs border-b border-slate-100 pb-1.5",children:"圆形样式配置"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"外边框颜色"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("input",{type:"color",value:Y.stroke||"#000000",onChange:d=>fe("stroke",d.target.value),onBlur:d=>Ie("stroke",d.target.value),className:"w-8 h-8 rounded border border-slate-200 cursor-pointer shrink-0"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-[11px] text-slate-500",children:Y.stroke||"#000000"})]})]})]}),l.type==="pen"&&jsxRuntimeExports.jsxs("div",{className:"bg-white p-3 rounded-xl border border-slate-200 shadow-sm space-y-3",children:[jsxRuntimeExports.jsx("h4",{className:"font-bold text-slate-700 text-xs border-b border-slate-100 pb-1.5",children:"线条样式配置"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"折线颜色"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("input",{type:"color",value:Y.color||"#000000",onChange:d=>fe("color",d.target.value),onBlur:d=>Ie("color",d.target.value),className:"w-8 h-8 rounded border border-slate-200 cursor-pointer shrink-0"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-[11px] text-slate-500",children:Y.color||"#000000"})]})]})]}),l.type==="highlighter"&&jsxRuntimeExports.jsxs("div",{className:"bg-white p-3 rounded-xl border border-slate-200 shadow-sm space-y-3",children:[jsxRuntimeExports.jsx("h4",{className:"font-bold text-slate-700 text-xs border-b border-slate-100 pb-1.5",children:"高亮荧光标记 (Highlighter)"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("label",{className:"block text-[10px] text-slate-400 font-semibold mb-1",children:"荧光笔颜色"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("input",{type:"color",value:Y.color||"#facc15",onChange:d=>fe("color",d.target.value),onBlur:d=>Ie("color",d.target.value),className:"w-8 h-8 rounded border border-slate-200 cursor-pointer shrink-0"}),jsxRuntimeExports.jsx("span",{className:"font-mono text-[11px] text-slate-500",children:Y.color||"#facc15"})]})]})]}),jsxRuntimeExports.jsx("div",{className:"text-[10px] text-slate-400 text-center select-none pt-2 font-medium",children:"提示:属性在失焦或修改时自动同步,多端可见。"})]}),jsxRuntimeExports.jsxs("div",{className:"p-3 border-t border-slate-200 bg-white flex flex-col gap-2 shrink-0",children:[jsxRuntimeExports.jsx("button",{onClick:()=>Ve(Y),disabled:Re,className:"w-full py-2 bg-indigo-600 hover:bg-indigo-700 text-white rounded-lg font-bold transition-all shadow-sm hover:shadow active:scale-[0.98] cursor-pointer flex items-center justify-center gap-1.5 text-xs",children:Re?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(LoaderCircle,{size:13,className:"animate-spin"}),"正在广播同步..."]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Paintbrush,{size:13}),"应用修改并强制同步"]})}),jsxRuntimeExports.jsxs("button",{onClick:()=>{Ne(O),te(null)},className:"w-full py-2 bg-red-50 hover:bg-red-105 text-red-650 rounded-lg font-semibold transition-all flex items-center justify-center gap-1.5 border border-red-200 cursor-pointer text-xs",children:[jsxRuntimeExports.jsx(Trash2,{size:13}),"删除当前组件"]})]})]}):null})()]})}),InteractiveWhiteboard$1=Object.freeze(Object.defineProperty({__proto__:null,DEFAULT_WHITEBOARD_PAGES,InteractiveWhiteboard},Symbol.toStringTag,{value:"Module"}));export{Pause as $,Activity as A,Bell as B,ChevronDown as C,Database as D,Eye as E,FileText as F,Globe as G,House as H,Users as I,CircleAlert as J,KeyRound as K,LogOut as L,Minimize2 as M,Lock as N,ArrowRight as O,Presentation as P,Play as Q,RefreshCw as R,Sparkles as S,Terminal as T,User as U,ChevronLeft as V,WandSparkles as W,X,createStore as Y,useStore as Z,Clock as _,Maximize2 as a,Camera as a$,Trophy as a0,MessagesSquare as a1,Vote as a2,CircleQuestionMark as a3,usePluginHostStore as a4,ShieldAlert as a5,FileCheck as a6,Award as a7,MessageSquare as a8,CircleCheckBig as a9,Settings as aA,Zap as aB,Github as aC,Code as aD,PenLine as aE,Copy as aF,Info$1 as aG,EyeOff as aH,Tag as aI,Bold as aJ,Italic as aK,Underline as aL,Heading1 as aM,Heading2 as aN,List as aO,ListOrdered as aP,Quote as aQ,Highlighter as aR,SquareDot as aS,Bookmark as aT,Brain as aU,LayoutGrid as aV,Grid3x3 as aW,RotateCcw as aX,CalendarDays as aY,Pen as aZ,FileSpreadsheet as a_,Star as aa,Timer as ab,TriangleAlert as ac,CirclePlay as ad,TrendingUp as ae,Funnel as af,Calendar as ag,Compass as ah,TrendingDown as ai,ChartLine as aj,ChartNoAxesColumn as ak,FileBadge as al,PenTool as am,ExtensionPointRenderer as an,Command as ao,ArrowLeft as ap,Send as aq,ChevronUp as ar,Blocks as as,Wrench as at,CalendarClock as au,GripVertical as av,ExternalLink as aw,Save as ax,Square as ay,LucideReact as az,LayoutTemplate as b,ImagePlus as b0,ScanLine as b1,Server as b2,Layers as b3,Cpu as b4,Monitor as b5,Menu as b6,DOMExtensionWrapper as b7,PanelRightClose as b8,Paperclip as b9,usePluginHost as ba,SocketService as bb,PluginHostProvider as bc,InteractiveWhiteboard$1 as bd,ClipboardList as c,CircleCheck as d,Puzzle as e,Shuffle as f,Search as g,Upload as h,ChartColumn as i,jsxRuntimeExports as j,CircleX as k,Trash2 as l,BookOpen as m,Plus as n,Markdown as o,ChevronRight as p,LoaderCircle as q,Download as r,Check as s,Folder as t,File as u,Settings2 as v,Percent as w,ListFilter as x,GraduationCap as y,Shield as z};