@lmy54321/design-system 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +388 -0
- package/dist/index.d.ts +388 -0
- package/dist/index.js +3368 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +3315 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +60 -0
- package/styles/.gitkeep +0 -0
- package/styles/globals.css +233 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../components/ui/utils.ts","../components/ui/Btn.tsx","../components/ui/Switch.tsx","../components/ui/Tag.tsx","../components/ui/Loading.tsx","../components/ui/SegmentedControl.tsx","../components/ui/StatGrid.tsx","../components/ui/Dialog.tsx","../components/ui/Toast.tsx","../components/ui/ActionSheet.tsx","../components/ui/NotificationBar.tsx","../imports/svg-bot5vgf2as.ts","../components/ui/BubbleTip.tsx","../components/ui/Push.tsx","../components/ui/EmptyState.tsx","../components/ui/BottomNavigationBar.tsx","../components/ui/TopToolbar.tsx","../components/ui/BottomSheet.tsx","../components/ui/DraggablePanel.tsx","../components/ui/SearchBox.tsx","../components/ui/figma/ImageWithFallback.tsx","../imports/svg-51gau6u5ee.ts","../components/ui/POIListItem.tsx","../components/ui/PoiItem.tsx","../components/ui/NewsItem.tsx","../components/ui/BottomActions/BottomActionButtons.tsx","../imports/svg-xnzljasnkm.ts","../components/ui/BottomActions/BottomToolbar.tsx","../components/ui/TencentMap.tsx","../components/ui/TypographyDocs.tsx","../components/ui/GridSystemDocs.tsx"],"names":["twMerge","clsx","jsx","jsxs","motion","cva","svgPaths","AnimatePresence","ICONS","Fragment","React","Icon","imgHeader","useState","SVG_PATHS","IconBack","React3","Tag","IconMore","useRef","useEffect","center"],"mappings":"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","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import * as React from \"react\";\nimport { cn } from \"./utils\";\n\n// --- SVG Paths ---\nconst ICON_HOME_SMALL = \"M12.6667 12.6649V6.53093L8 2.8496L3.33333 6.53093V12.6649H12.6667ZM14 13.3316C14 13.5084 13.9298 13.678 13.8047 13.803C13.6797 13.928 13.5101 13.9983 13.3333 13.9983H2.66667C2.48986 13.9983 2.32029 13.928 2.19526 13.803C2.07024 13.678 2 13.5084 2 13.3316V6.2076C1.99996 6.1069 2.02273 6.0075 2.06661 5.91686C2.11048 5.82622 2.17432 5.7467 2.25333 5.68427L7.58667 1.47693C7.70436 1.38393 7.84999 1.33333 8 1.33333C8.15001 1.33333 8.29564 1.38393 8.41333 1.47693L13.7467 5.6836C13.8258 5.7461 13.8897 5.82573 13.9335 5.91649C13.9774 6.00726 14.0001 6.10679 14 6.2076V13.3316V13.3316ZM4.66667 7.99827H6C6 8.5287 6.21071 9.03741 6.58579 9.41248C6.96086 9.78755 7.46957 9.99827 8 9.99827C8.53043 9.99827 9.03914 9.78755 9.41421 9.41248C9.78929 9.03741 10 8.5287 10 7.99827H11.3333C11.3333 8.88232 10.9821 9.73017 10.357 10.3553C9.7319 10.9804 8.88406 11.3316 8 11.3316C7.11595 11.3316 6.2681 10.9804 5.64298 10.3553C5.01786 9.73017 4.66667 8.88232 4.66667 7.99827V7.99827Z\";\nconst ICON_CHEVRON = \"M8.24267 9.76571L12.876 5.13237L13.8187 6.07504L8.24267 11.651L2.66667 6.07504L3.60933 5.13238L8.24267 9.76571Z\";\nconst ICON_HOME_LARGE = \"M15.8333 15.8312V8.16366L10 3.562L4.16667 8.16366V15.8312H15.8333ZM17.5 16.6645C17.5 16.8855 17.4122 17.0975 17.2559 17.2538C17.0996 17.41 16.8877 17.4978 16.6667 17.4978H3.33333C3.11232 17.4978 2.90036 17.41 2.74408 17.2538C2.5878 17.0975 2.5 16.8855 2.5 16.6645V7.7595C2.49995 7.63362 2.52842 7.50937 2.58326 7.39607C2.63811 7.28278 2.71791 7.18337 2.81667 7.10533L9.48333 1.84617C9.63046 1.72991 9.81249 1.66667 10 1.66667C10.1875 1.66667 10.3695 1.72991 10.5167 1.84617L17.1833 7.1045C17.2822 7.18263 17.3621 7.28216 17.4169 7.39562C17.4718 7.50907 17.5002 7.63348 17.5 7.7595V16.6645V16.6645ZM5.83333 9.99783H7.5C7.5 10.6609 7.76339 11.2968 8.23223 11.7656C8.70107 12.2344 9.33696 12.4978 10 12.4978C10.663 12.4978 11.2989 12.2344 11.7678 11.7656C12.2366 11.2968 12.5 10.6609 12.5 9.99783H14.1667C14.1667 11.1029 13.7277 12.1627 12.9463 12.9441C12.1649 13.7255 11.1051 14.1645 10 14.1645C8.89493 14.1645 7.83512 13.7255 7.05372 12.9441C6.27232 12.1627 5.83333 11.1029 5.83333 9.99783V9.99783Z\";\n\n// --- Types ---\nexport type BtnSize = \"xsmall\" | \"small\" | \"middle\" | \"large\";\nexport type BtnVariant = \"primary\" | \"secondary\" | \"outline\" | \"ghost\";\n\nexport type BtnProps = {\n size?: BtnSize;\n variant?: BtnVariant;\n label?: string;\n icon?: React.ReactNode;\n iconPosition?: \"left\" | \"right\";\n onClick?: () => void;\n className?: string;\n};\n\n// --- Config Maps ---\nconst SIZE_CONFIG = {\n xsmall: {\n height: \"h-[28px]\",\n radius: \"rounded-[18px]\",\n padding: {\n left: \"px-[12px]\",\n right: \"pl-[12px] pr-[8px]\",\n },\n text: \"text-[12px] leading-[16px]\",\n iconSize: \"size-[16px]\",\n defaultIconPath: ICON_HOME_SMALL,\n defaultIconViewBox: \"0 0 16 16\",\n },\n small: {\n height: \"h-[32px]\",\n radius: \"rounded-[18px]\",\n padding: {\n left: \"px-[12px]\",\n right: \"pl-[12px] pr-[8px]\",\n },\n text: \"text-[12px] leading-[16px]\",\n iconSize: \"size-[16px]\",\n defaultIconPath: ICON_HOME_SMALL,\n defaultIconViewBox: \"0 0 16 16\",\n },\n middle: {\n height: \"h-[40px]\",\n radius: \"rounded-[22px]\",\n padding: {\n left: \"px-[16px]\",\n right: \"pl-[16px] pr-[12px]\",\n },\n text: \"text-[14px] leading-[20px]\",\n iconSize: \"size-[16px]\",\n defaultIconPath: ICON_CHEVRON,\n defaultIconViewBox: \"0 0 16 16\",\n },\n large: {\n height: \"h-[48px]\",\n radius: \"rounded-[50px]\",\n padding: {\n left: \"px-[16px]\",\n right: \"pl-[16px] pr-[12px]\",\n },\n text: \"text-[16px] leading-[24px]\",\n iconSize: \"size-[20px]\",\n defaultIconPath: ICON_HOME_LARGE,\n defaultIconViewBox: \"0 0 20 20\",\n },\n};\n\n// --- Default Icon Component ---\nfunction DefaultIcon({\n path,\n viewBox,\n className,\n color,\n}: {\n path: string;\n viewBox: string;\n className?: string;\n color?: string;\n}) {\n return (\n <div className={cn(\"relative shrink-0\", className)}>\n <svg\n className=\"block size-full\"\n fill=\"none\"\n preserveAspectRatio=\"none\"\n viewBox={viewBox}\n >\n <path d={path} fill={color || \"currentColor\"} />\n </svg>\n </div>\n );\n}\n\nexport function Btn({\n size = \"middle\", // Default to middle if not specified\n variant = \"primary\",\n label = \"操作项\",\n icon,\n iconPosition = \"left\",\n onClick,\n className,\n}: BtnProps) {\n const config = SIZE_CONFIG[size];\n\n // Specific logic: Xsmall Ghost limits label to 3 chars\n const displayLabel =\n size === \"xsmall\" && variant === \"ghost\" && label\n ? label.slice(0, 3)\n : label;\n\n const paddingClass =\n iconPosition === \"right\" ? config.padding.right : config.padding.left;\n\n const iconColor = \"currentColor\";\n\n return (\n <button\n type=\"button\"\n onClick={onClick}\n className={cn(\n \"group relative flex items-center justify-center max-w-[300px] transition-all outline-none\",\n config.height,\n config.radius,\n paddingClass,\n // Base Overlay Logic for Active State\n \"overflow-hidden active:after:absolute active:after:inset-0 active:after:bg-black/8 dark:active:after:bg-white/10 active:after:content-[''] active:after:rounded-[inherit]\",\n // Variants\n variant === \"primary\" && \"bg-primary text-primary-foreground\",\n variant === \"secondary\" && \"bg-secondary text-secondary-foreground\",\n variant === \"outline\" && \"bg-secondary text-secondary-foreground\",\n variant === \"ghost\" && \"bg-transparent text-secondary-foreground\",\n className\n )}\n >\n {/* Border for Outline Variant */}\n {variant === \"outline\" && (\n <div\n aria-hidden=\"true\"\n className={cn(\n \"absolute inset-0 border-[1.5px] border-solid border-primary pointer-events-none\",\n config.radius\n )}\n />\n )}\n\n <div\n className={cn(\n \"flex items-center justify-center min-w-0\",\n // Large Gap is 4px, others 2px.\n size === \"large\" ? \"gap-[4px]\" : \"gap-[2px]\",\n iconPosition === \"right\" ? \"flex-row\" : \"flex-row-reverse\"\n )}\n >\n {displayLabel && (\n <span\n className={cn(\n \"font-['PingFang_SC:Medium',sans-serif] whitespace-pre truncate\",\n config.text\n )}\n >\n {displayLabel}\n </span>\n )}\n\n {icon !== undefined ? (\n icon\n ) : (\n <DefaultIcon\n path={config.defaultIconPath}\n viewBox={config.defaultIconViewBox}\n className={config.iconSize}\n color={iconColor}\n />\n )}\n </div>\n </button>\n );\n}\n","import * as React from \"react\";\nimport { motion } from \"motion/react\";\nimport { cn } from \"./utils\";\n\nexport interface SwitchProps {\n checked: boolean;\n onCheckedChange?: (checked: boolean) => void;\n disabled?: boolean;\n className?: string;\n}\n\nexport function Switch({\n checked,\n onCheckedChange,\n disabled = false,\n className\n}: SwitchProps) {\n \n // Track Color\n // Active: #4B526B\n // Inactive: #4B526B (opacity 0.08) -> rgba(75, 82, 107, 0.08)\n // Disabled: Same as inactive track\n const trackColor = disabled || !checked \n ? \"rgba(75, 82, 107, 0.08)\" \n : \"#4B526B\";\n\n // Thumb Color\n // Disabled: rgba(0,0,0,0.08)\n // Enabled: White\n const thumbColor = disabled ? \"rgba(0,0,0,0.08)\" : \"white\";\n\n // Thumb Shadow\n // Disabled: none\n // Active: 0px 2px 8px 0px rgba(0,0,0,0.06)\n // Inactive: 0px 2px 10px 0px rgba(0,0,0,0.05)\n const thumbShadow = disabled \n ? \"none\"\n : checked \n ? \"0px 2px 8px 0px rgba(0,0,0,0.06)\"\n : \"0px 2px 10px 0px rgba(0,0,0,0.05)\";\n \n return (\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={checked}\n disabled={disabled}\n className={cn(\n \"relative inline-flex h-[32px] w-[56px] shrink-0 cursor-pointer items-center rounded-full transition-colors border-none outline-none\", \n disabled && \"cursor-not-allowed opacity-100\", // Ensure opacity isn't auto-reduced by tailwind disabled\n className\n )}\n onClick={() => !disabled && onCheckedChange?.(!checked)}\n style={{ backgroundColor: trackColor }}\n >\n <motion.div\n className=\"block h-[24px] w-[24px] rounded-full\"\n style={{ \n backgroundColor: thumbColor,\n boxShadow: thumbShadow,\n }}\n initial={false}\n animate={{\n x: checked ? 28 : 4, // Left: 4px, Right: 56-24-4 = 28px\n }}\n transition={{\n type: \"spring\",\n stiffness: 500,\n damping: 30\n }}\n />\n </button>\n );\n}\n","import React from \"react\";\nimport { cn } from \"./utils\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\n// --- SVGs ---\n// Using paths from the provided import (svg-p9lffc9543)\nconst svgPaths = {\n p11a45140: \"M8.66667 11.3333H5.33333V10H8.66667V11.3333Z\",\n p32556180: \"M10.6667 8.66667H5.33333V7.33333H10.6667V8.66667Z\",\n p374e1cf0: \"M6.182 7.325L9.657 3.85L10.364 4.557L6.182 8.739L2 4.557L2.707 3.85L6.182 7.325Z\",\n p5488400: \"M6 3.33333H10V2H11.3333V3.33333H13.1999C13.6417 3.33333 14 3.69164 14 4.13346V13.1999C14 13.6417 13.6417 14 13.1999 14H2.80013L2.7181 13.9961C2.31473 13.9551 2 13.6141 2 13.1999V4.13346C2 3.71928 2.31473 3.37825 2.7181 3.33724L2.80013 3.33333H4.66667V2H6V3.33333ZM3.33333 12.6667H12.6667V4.66667H11.3333V6H10V4.66667H6V6H4.66667V4.66667H3.33333V12.6667Z\",\n};\n\nexport function IcPlan({ className }: { className?: string }) {\n return (\n <svg className={cn(\"block\", className)} fill=\"currentColor\" viewBox=\"0 0 16 16\">\n <path d={svgPaths.p11a45140} />\n <path d={svgPaths.p32556180} />\n <path clipRule=\"evenodd\" d={svgPaths.p5488400} fillRule=\"evenodd\" />\n </svg>\n );\n}\n\nexport function IcExpand({ className }: { className?: string }) {\n return (\n <svg className={cn(\"block\", className)} fill=\"currentColor\" viewBox=\"0 0 12 12\">\n <path d={svgPaths.p374e1cf0} />\n </svg>\n );\n}\n\n// --- Component ---\n\nconst tagVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap transition-all box-border border font-sans shrink-0 gap-1 relative overflow-hidden active:after:absolute active:after:inset-0 active:after:bg-black/8 active:after:content-[''] active:after:rounded-[inherit]\",\n {\n variants: {\n variant: {\n filled: \"border-transparent\",\n outlined: \"bg-transparent\",\n },\n size: {\n lg: \"h-[28px] px-[8px] text-[14px] rounded-[4px]\",\n md: \"h-[24px] px-[6px] text-[12px] rounded-[4px]\",\n sm: \"h-[20px] px-[4px] text-[12px] rounded-[2px]\",\n xs: \"h-[16px] px-[2px] text-[10px] rounded-[2px]\",\n },\n },\n defaultVariants: {\n variant: \"filled\",\n size: \"lg\",\n },\n }\n);\n\nexport interface TagProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof tagVariants> {\n /** Label text */\n label: string;\n /** Custom Left Icon. Pass `null` to hide. Defaults to internal Plan icon if undefined? No, user said \"Left icon can be custom... and visible/hidden\". I'll make it optional. */\n icon?: React.ReactNode;\n /** Whether to show the fixed right arrow icon */\n showArrow?: boolean;\n /** Custom colors or radius can be passed via className */\n}\n\nexport function Tag({\n className,\n variant,\n size,\n label,\n icon,\n showArrow = false,\n onClick,\n ...props\n}: TagProps) {\n \n // Default styling matching Figma if not overridden by className\n // Filled: bg-[#dbe9fe] text-[#367bf6]\n // Outlined: border-[#367bf6] text-[#367bf6]\n const defaultColorClass = variant === 'outlined' \n ? \"border-[#367bf6] text-[#367bf6]\"\n : \"bg-[#dbe9fe] text-[#367bf6]\";\n\n // Icon sizing based on tag size\n const iconSizeClass = {\n lg: \"size-[16px]\",\n md: \"size-[14px]\",\n sm: \"size-[12px]\",\n xs: \"size-[10px]\",\n };\n \n const arrowSizeClass = {\n lg: \"size-[12px]\",\n md: \"size-[10px]\",\n sm: \"size-[9px]\",\n xs: \"size-[8px]\",\n };\n\n const currentIconSize = iconSizeClass[size || 'lg'];\n const currentArrowSize = arrowSizeClass[size || 'lg'];\n\n return (\n <div\n className={cn(\n tagVariants({ variant, size }),\n defaultColorClass,\n onClick ? \"cursor-pointer\" : \"cursor-default\",\n className\n )}\n onClick={onClick}\n {...props}\n >\n {/* Left Icon */}\n {icon && (\n <span className={cn(\"flex items-center justify-center shrink-0\", currentIconSize)}>\n {icon}\n </span>\n )}\n\n {/* Label */}\n <span className=\"leading-none pb-[1px]\">{label}</span>\n\n {/* Right Arrow */}\n {showArrow && (\n <span className={cn(\"flex items-center justify-center shrink-0\", currentArrowSize)}>\n <IcExpand className=\"size-full\" />\n </span>\n )}\n </div>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"./utils\";\n\n// --- Assets ---\nconst imgLoading = \"\";\n\nconst svgPaths = {\n p39080300: \"M6.9665 7.90931L2.19526 12.6805C1.93491 12.9409 1.93491 13.363 2.19526 13.6234C2.45561 13.8837 2.87772 13.8837 3.13807 13.6234L7.90931 8.85212L12.6805 13.6234C12.9409 13.8837 13.363 13.8837 13.6234 13.6234C13.8837 13.363 13.8837 12.9409 13.6234 12.6805L8.85212 7.90931L13.6234 3.13807C13.8837 2.87772 13.8837 2.45561 13.6234 2.19526C13.363 1.93491 12.9409 1.93491 12.6805 2.19526L7.90931 6.9665L3.13807 2.19526C2.87772 1.93491 2.45561 1.93491 2.19526 2.19526C1.93491 2.45561 1.93491 2.87772 2.19526 3.13807L6.9665 7.90931Z\",\n};\n\nfunction IcClose({ onClick }: { onClick?: () => void }) {\n return (\n <div \n className=\"relative shrink-0 size-[16px] cursor-pointer hover:opacity-70 transition-opacity\" \n data-name=\"ic_close\"\n onClick={onClick}\n >\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 16 16\">\n <g id=\"ic_close\" opacity=\"0.7\">\n <path d={svgPaths.p39080300} fill=\"currentColor\" id=\"Union\" />\n </g>\n </svg>\n </div>\n );\n}\n\nexport interface LoadingProps {\n showClose?: boolean;\n onClose?: () => void;\n className?: string;\n}\n\nexport function Loading({ showClose = true, onClose, className }: LoadingProps) {\n return (\n <div className={cn(\"bg-white relative rounded-[12px] shadow-[0px_0px_20px_0px_rgba(0,0,0,0.1)] inline-flex items-center justify-center h-[44px]\", className)} data-name=\"Loading\">\n <div className=\"box-border content-stretch flex items-center justify-center pl-[10px] pr-[10px] py-[10px] relative h-full\">\n <div className=\"content-stretch flex gap-[4px] items-center relative shrink-0 mr-[-2px]\">\n {/* Loading Icon */}\n <div className=\"relative shrink-0 size-[24px]\" data-name=\"样式 8_bmp_00000 1\">\n <img alt=\"\" className=\"absolute inset-0 max-w-none object-50%-50% object-cover pointer-events-none size-full animate-pulse\" src={imgLoading} />\n </div>\n \n {/* Text */}\n <p className=\"font-['PingFang_SC:Medium',sans-serif] leading-[16px] not-italic relative shrink-0 text-[14px] text-[rgba(0,0,0,0.9)] text-nowrap whitespace-pre pr-[4px]\">\n 努力加载中\n </p>\n\n {/* Close Section */}\n {showClose && (\n <div className=\"flex flex-row items-center self-stretch gap-[8px] ml-[4px]\">\n {/* Divider */}\n <div className=\"bg-[rgba(0,0,0,0.2)] h-[16px] shrink-0 w-[1px]\" />\n <IcClose onClick={onClose} />\n </div>\n )}\n </div>\n </div>\n </div>\n );\n}\n","import * as React from \"react\";\nimport { motion } from \"motion/react\";\nimport { cn } from \"./utils\";\n\nexport type SegmentedControlSize = 'large' | 'middle' | 'small';\n\nexport interface SegmentedControlProps {\n value: string;\n options: string[];\n onChange: (value: string) => void;\n size?: SegmentedControlSize;\n className?: string;\n}\n\nexport function SegmentedControl({\n value,\n options,\n onChange,\n size = 'large',\n className\n}: SegmentedControlProps) {\n \n // Configuration based on size\n const config = {\n large: {\n container: \"h-[48px] rounded-[24px] p-[4px]\",\n button: \"h-[40px] rounded-[22px] text-[14px]\",\n activeRadius: 22,\n },\n middle: {\n container: \"h-[40px] rounded-[20px] p-[4px]\",\n button: \"h-[32px] rounded-[18px] text-[12px]\",\n activeRadius: 18,\n },\n small: {\n container: \"h-[32px] rounded-[20px] p-[2px]\",\n button: \"h-[28px] rounded-[18px] text-[12px]\",\n activeRadius: 18,\n }\n };\n\n const currentConfig = config[size];\n\n return (\n <div className={cn(\n \"bg-[rgba(75,82,107,0.04)] flex items-center relative w-fit\",\n currentConfig.container,\n className\n )}>\n {options.map((option) => {\n const isActive = value === option;\n \n return (\n <button\n key={option}\n onClick={() => onChange(option)}\n className={cn(\n \"relative flex items-center justify-center px-[16px] font-medium font-sans transition-colors z-10 min-w-[60px] overflow-hidden\",\n currentConfig.button,\n isActive ? \"text-white\" : \"text-[rgba(0,0,0,0.9)] hover:text-black/70\",\n // Press state: 8% black overlay\n \"active:after:absolute active:after:inset-0 active:after:bg-black/8 active:after:content-[''] active:after:rounded-[inherit]\"\n )}\n >\n {isActive && (\n <motion.div\n layoutId={`active-segmented-control-bg-${size}`}\n className=\"absolute inset-0 bg-[#4b526b] shadow-sm -z-10\"\n style={{ borderRadius: currentConfig.activeRadius }}\n transition={{ type: \"spring\", bounce: 0.2, duration: 0.3 }}\n />\n )}\n <span className=\"relative z-10 whitespace-nowrap\">{option}</span>\n </button>\n );\n })}\n </div>\n );\n}\n","import React from \"react\";\nimport { cn } from \"./utils\";\n\nexport interface StatItem {\n label: string;\n value: string;\n variant?: \"primary\" | \"accent\" | \"default\";\n}\n\nexport interface StatGridProps {\n items: StatItem[];\n className?: string;\n}\n\nexport function StatGrid({ items, className }: StatGridProps) {\n const variantStyles = {\n primary: \"text-primary\",\n accent: \"text-accent\",\n default: \"text-foreground\"\n };\n\n return (\n <div className={cn(\"grid grid-cols-3 gap-[var(--spacing-sm)]\", className)}>\n {items.map((item, idx) => (\n <div key={idx} className=\"bg-card-muted rounded-[var(--radius-base)] p-[var(--spacing-sm)] text-center\">\n <div className={cn(\"mb-1 font-medium text-lg\", variantStyles[item.variant || 'default'])}>\n {item.value}\n </div>\n <div className=\"text-xs text-muted-foreground\">{item.label}</div>\n </div>\n ))}\n </div>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"./utils\";\n// Placeholder for figma asset - using empty string as fallback\nconst imgHeader = \"\";\n\n// --- Types ---\n\nexport type DialogVariant = 'default' | 'warning' | 'image';\n\nexport interface DialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n variant?: DialogVariant;\n title?: string;\n description?: string;\n mainActionText?: string;\n secondaryActionText?: string;\n imageSrc?: string;\n onMainAction?: () => void;\n onSecondaryAction?: () => void;\n demoMode?: boolean;\n}\n\n// --- Components ---\n\nexport function Dialog({\n open,\n onOpenChange,\n variant = 'default',\n title = \"标题最好是简短的\",\n description = \"请求授权确认文案要简短,可以居中\",\n mainActionText = \"主操作\",\n secondaryActionText = \"副操作\",\n imageSrc,\n onMainAction,\n onSecondaryAction,\n demoMode = false,\n}: DialogProps) {\n if (!open) return null;\n\n const isImageVariant = variant === 'image';\n const isWarningVariant = variant === 'warning';\n const positionClass = demoMode ? \"absolute\" : \"fixed\";\n\n // Determine styles based on variant\n const primaryBtnBg = isWarningVariant \n ? \"bg-[rgba(75,82,107,0.08)]\" \n : \"bg-[#4b526b]\";\n \n const primaryBtnText = isWarningVariant\n ? \"text-[#ff293b]\"\n : \"text-white\";\n\n const defaultImage = imgHeader;\n const activeImage = imageSrc || defaultImage;\n\n return (\n <div className={`${positionClass} inset-0 z-50 flex items-center justify-center`} data-name=\"DialogOverlay\">\n {/* Overlay: 60% Black */}\n <div \n className=\"absolute inset-0 bg-black/60\" \n onClick={() => onOpenChange(false)}\n />\n\n {/* Dialog Content */}\n <div className={cn(\n \"bg-white relative rounded-[32px] overflow-hidden flex flex-col items-center shadow-lg\",\n \"w-[320px] md:w-[340px]\", // Responsive width, matching standard mobile dialogs\n isImageVariant ? \"\" : \"p-[20px]\" // Standard padding for non-image variants\n )}>\n \n {/* Image Header (Only for Image Variant) */}\n {isImageVariant && (\n <div className=\"h-[148px] relative shrink-0 w-full mb-[20px]\">\n <div className=\"absolute inset-0 overflow-hidden bg-[#d9d9d9]\">\n <img \n alt=\"Dialog Header\" \n className=\"absolute w-full h-full object-cover\" \n src={activeImage} \n />\n </div>\n </div>\n )}\n\n {/* Text Content */}\n <div className={cn(\n \"flex flex-col gap-[6px] items-center text-center w-full\",\n isImageVariant ? \"px-[20px] mb-[20px]\" : \"mb-[20px]\"\n )}>\n <h3 className=\"font-['PingFang_SC:Medium',sans-serif] text-[20px] leading-[28px] text-[rgba(0,0,0,0.9)]\">\n {title}\n </h3>\n {description && (\n <p className=\"font-['PingFang_SC:Regular',sans-serif] text-[14px] leading-[20px] text-[rgba(0,0,0,0.9)] opacity-60\">\n {description}\n </p>\n )}\n </div>\n\n {/* Actions */}\n <div className={cn(\n \"flex flex-row gap-[12px] w-full\",\n isImageVariant ? \"px-[20px] pb-[20px]\" : \"\"\n )}>\n {/* Secondary Action */}\n <button \n onClick={onSecondaryAction}\n className=\"basis-0 grow h-[48px] rounded-[50px] bg-[rgba(75,82,107,0.08)] flex items-center justify-center relative overflow-hidden active:after:content-[''] active:after:absolute active:after:inset-0 active:after:bg-black/8 active:after:rounded-[inherit] transition-colors\"\n >\n <span className=\"font-['PingFang_SC:Medium',sans-serif] text-[16px] leading-[24px] text-[rgba(0,0,0,0.9)]\">\n {secondaryActionText}\n </span>\n </button>\n\n {/* Primary Action */}\n <button \n onClick={onMainAction}\n className={cn(\n \"basis-0 grow h-[48px] rounded-[50px] flex items-center justify-center relative overflow-hidden active:after:content-[''] active:after:absolute active:after:inset-0 active:after:bg-black/8 active:after:rounded-[inherit] transition-colors\",\n primaryBtnBg\n )}\n >\n <span className={cn(\n \"font-['PingFang_SC:Medium',sans-serif] text-[16px] leading-[24px]\",\n primaryBtnText\n )}>\n {mainActionText}\n </span>\n </button>\n </div>\n\n </div>\n </div>\n );\n}\n","import * as React from \"react\";\nimport { motion, AnimatePresence } from \"motion/react\";\nimport { cn } from \"./utils\";\n\nconst ICONS = {\n check: \"M10 18.3333C5.3975 18.3333 1.66667 14.6025 1.66667 10C1.66667 5.3975 5.3975 1.66667 10 1.66667C14.6025 1.66667 18.3333 5.3975 18.3333 10C18.3333 14.6025 14.6025 18.3333 10 18.3333ZM10 16.6667C11.7681 16.6667 13.4638 15.9643 14.714 14.714C15.9643 13.4638 16.6667 11.7681 16.6667 10C16.6667 8.23189 15.9643 6.5362 14.714 5.28595C13.4638 4.03571 11.7681 3.33333 10 3.33333C8.23189 3.33333 6.5362 4.03571 5.28595 5.28595C4.03571 6.5362 3.33333 8.23189 3.33333 10C3.33333 11.7681 4.03571 13.4638 5.28595 14.714C6.5362 15.9643 8.23189 16.6667 10 16.6667ZM8.62 13.4805L5.08417 9.94465L6.2625 8.76632L8.62 11.1238L13.3333 6.40965L14.5125 7.58798L8.62 13.4805Z\",\n close: \"M8.00048 7.05781L12.6338 2.42448L13.5765 3.36715L8.94315 8.00048L13.5765 12.6338L12.6338 13.5765L8.00048 8.94315L3.36715 13.5765L2.42448 12.6338L7.05781 8.00048L2.42448 3.36715L3.36715 2.42448L8.00048 7.05781Z\",\n chevronRight: \"M9.96668 8.00048L5.33334 12.6338L6.27601 13.5765L11.852 8.00048L6.27601 2.42448L5.33334 3.36715L9.96668 8.00048Z\"\n};\n\nexport interface ToastProps {\n /**\n * The lines of text to display.\n */\n lines: string[];\n /**\n * Whether to show the icon (checkmark).\n */\n showIcon?: boolean;\n /**\n * Whether to show the close button.\n * Ignored if variant is 'action'.\n */\n showClose?: boolean;\n /**\n * Callback when close button is clicked.\n */\n onClose?: () => void;\n /**\n * Variant of the toast.\n * - 'default': Width fits content, centered.\n * - 'action': Width fills container, used for bottom bar action toasts.\n */\n variant?: 'default' | 'action';\n /**\n * Text for the action button (only for 'action' variant).\n */\n actionText?: string;\n /**\n * Callback for the action button.\n */\n onAction?: () => void;\n}\n\nexport function Toast({ \n lines, \n showIcon = true, \n showClose = true, \n onClose,\n variant = 'default',\n actionText,\n onAction\n}: ToastProps) {\n const isAction = variant === 'action';\n const isPureText = !showIcon && !showClose && !isAction;\n const isDoubleLine = lines.length > 1;\n\n const paddingClass = isPureText ? \"px-[12px] py-[8px]\" : \"px-[8px] py-[10px]\";\n\n return (\n <motion.div\n layout\n initial={false}\n className={cn(\n \"relative rounded-[12px] overflow-hidden\",\n \"bg-primary/90 backdrop-blur-sm\",\n \"text-primary-foreground font-sans\",\n \"flex items-center\",\n isAction ? \"w-full h-[40px]\" : \"w-fit max-w-full justify-center\",\n \"shadow-lg\"\n )}\n transition={{\n type: \"spring\",\n stiffness: 500,\n damping: 30,\n mass: 0.5\n }}\n >\n <motion.div\n layout\n className={cn(\n \"flex items-center box-border relative w-full\",\n paddingClass,\n isAction ? \"justify-between\" : (isPureText ? \"justify-center\" : \"gap-2\")\n )}\n >\n {/* Left Section: Icon + Text */}\n <div className={cn(\"flex items-center\", isAction ? \"gap-2\" : \"gap-2\")}>\n {/* Icon Section */}\n <AnimatePresence mode=\"popLayout\" initial={false}>\n {showIcon && (\n <motion.div\n key=\"icon\"\n layout\n initial={{ opacity: 0, scale: 0.8, width: 0 }}\n animate={{ opacity: 1, scale: 1, width: \"auto\" }}\n exit={{ opacity: 0, scale: 0.8, width: 0 }}\n transition={{ duration: 0.2 }}\n className=\"flex items-center justify-center shrink-0\"\n >\n <div className=\"relative size-[20px]\">\n <svg className=\"block size-full\" fill=\"none\" viewBox=\"0 0 20 20\">\n <path d={ICONS.check} fill=\"currentColor\" />\n </svg>\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n\n {/* Text Section */}\n <motion.div\n layout\n className={cn(\n \"flex flex-col justify-center text-[14px] leading-[20px] text-nowrap\",\n isPureText ? \"text-center\" : \"text-left\",\n \"px-[4px]\" \n )}\n >\n {lines.map((line, index) => (\n <motion.p\n key={index}\n layout\n initial={{ opacity: 0, y: 5 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -5 }}\n className={cn(\n \"whitespace-pre\",\n index === 0 && isDoubleLine && !isPureText ? \"mb-0\" : \"\"\n )}\n >\n {line}\n </motion.p>\n ))}\n </motion.div>\n </div>\n\n {/* Right Section: Close OR Action */}\n <div className=\"flex items-center shrink-0\">\n {/* Action Section (Variant: Action) */}\n <AnimatePresence mode=\"popLayout\" initial={false}>\n {isAction && actionText && (\n <motion.div\n key=\"action\"\n layout\n initial={{ opacity: 0, x: 10 }}\n animate={{ opacity: 1, x: 0 }}\n exit={{ opacity: 0, x: 10 }}\n className=\"flex items-center pl-[8px] h-full\"\n >\n {/* Divider */}\n <div className=\"bg-current/20 w-[0.5px] h-[12px] shrink-0 mr-[12px]\" />\n \n {/* Action Button */}\n <button \n onClick={onAction}\n className={cn(\n \"flex items-center gap-[2px] hover:opacity-80 transition-opacity relative rounded overflow-hidden px-1 -mx-1\",\n \"active:after:absolute active:after:inset-0 active:after:bg-current/10 active:after:content-[''] active:after:rounded-[inherit]\"\n )}\n >\n <span className=\"text-[14px] font-medium leading-[20px] text-current whitespace-pre\">\n {actionText}\n </span>\n <div className=\"size-[16px]\">\n <svg className=\"block size-full\" fill=\"none\" viewBox=\"0 0 16 16\">\n <path d={ICONS.chevronRight} fill=\"currentColor\" />\n </svg>\n </div>\n </button>\n </motion.div>\n )}\n </AnimatePresence>\n\n {/* Close Section (Variant: Default) */}\n <AnimatePresence mode=\"popLayout\" initial={false}>\n {!isAction && showClose && (\n <motion.div\n key=\"close\"\n layout\n initial={{ opacity: 0, scale: 0.8, width: 0 }}\n animate={{ opacity: 1, scale: 1, width: \"auto\" }}\n exit={{ opacity: 0, scale: 0.8, width: 0 }}\n transition={{ duration: 0.2 }}\n className=\"flex items-center h-full shrink-0 pl-[4px]\"\n >\n {/* Vertical Divider */}\n <div className={cn(\n \"bg-current/20 w-[0.5px] shrink-0 mr-[8px]\",\n isDoubleLine ? \"h-[32px]\" : \"h-[12px]\"\n )} />\n \n {/* Close Icon */}\n <button \n onClick={onClose}\n className={cn(\n \"relative size-[16px] cursor-pointer hover:opacity-70 transition-opacity flex items-center justify-center rounded-full overflow-hidden\",\n \"active:after:absolute active:after:inset-0 active:after:bg-current/10 active:after:content-[''] active:after:rounded-full\"\n )}\n >\n <svg className=\"block size-full\" fill=\"none\" viewBox=\"0 0 16 16\">\n <path d={ICONS.close} fill=\"currentColor\" />\n </svg>\n </button>\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n </motion.div>\n </motion.div>\n );\n}\n","import React, { useState } from \"react\";\nimport { motion, AnimatePresence } from \"motion/react\";\nimport { cn } from \"./utils\";\n\n// --- Icons ---\n\nconst ICONS = {\n home: \"M15.8333 15.8344V8.16692L10 3.56525L4.16667 8.16692V15.8344H15.8333ZM17.5 16.6678C17.5 16.8888 17.4122 17.1007 17.2559 17.257C17.0996 17.4133 16.8877 17.5011 16.6667 17.5011H3.33333C3.11232 17.5011 2.90036 17.4133 2.74408 17.257C2.5878 17.1007 2.5 16.8888 2.5 16.6678V7.76275C2.49995 7.63688 2.52842 7.51263 2.58326 7.39933C2.63811 7.28603 2.71791 7.18663 2.81667 7.10859L9.48333 1.84942C9.63046 1.73316 9.81249 1.66992 10 1.66992C10.1875 1.66992 10.3695 1.73316 10.5167 1.84942L17.1833 7.10775C17.2822 7.18588 17.3621 7.28542 17.4169 7.39887C17.4718 7.51232 17.5002 7.63674 17.5 7.76275V16.6678V16.6678ZM5.83333 10.0011H7.5C7.5 10.6641 7.76339 11.3 8.23223 11.7689C8.70107 12.2377 9.33696 12.5011 10 12.5011C10.663 12.5011 11.2989 12.2377 11.7678 11.7689C12.2366 11.3 12.5 10.6641 12.5 10.0011H14.1667C14.1667 11.1062 13.7277 12.166 12.9463 12.9474C12.1649 13.7288 11.1051 14.1678 10 14.1678C8.89493 14.1678 7.83512 13.7288 7.05372 12.9474C6.27232 12.166 5.83333 11.1062 5.83333 10.0011V10.0011Z\",\n bus: \"M5.36035 0.0981727C7.06211 -0.0327168 8.77188 -0.0327317 10.4736 0.0981727L13.333 0.317899C13.7749 0.317899 14.1992 0.493758 14.5117 0.80618C14.8242 1.1187 15 1.54292 15 1.98489V4.48489H15.417C15.6469 4.48509 15.833 4.67189 15.833 4.90188V7.14407C15.833 7.30189 15.7437 7.44654 15.6025 7.51712L15 7.8179V14.0679C15 14.298 14.8131 14.4849 14.583 14.4849H14.167V15.3179C14.167 15.5389 14.0791 15.7515 13.9229 15.9077C13.7666 16.064 13.554 16.1519 13.333 16.1519H12.5C12.2791 16.1519 12.0674 16.0639 11.9111 15.9077C11.7549 15.7515 11.667 15.5389 11.667 15.3179V14.4849H4.16699V15.3179C4.16699 15.5389 4.07907 15.7515 3.92285 15.9077C3.76657 16.064 3.55402 16.1519 3.33301 16.1519H2.5C2.27911 16.1519 2.06739 16.0639 1.91113 15.9077C1.75485 15.7515 1.66699 15.5389 1.66699 15.3179V14.4849H1.25C1.01988 14.4849 0.833008 14.298 0.833008 14.0679V7.8179L0.230469 7.51712C0.0893087 7.44654 0 7.30189 0 7.14407V4.90188C0 4.67176 0.186874 4.48489 0.416992 4.48489H0.833008V1.98489C0.83305 1.54292 1.00877 1.1187 1.32129 0.80618C1.63384 0.493682 2.05802 0.317899 2.5 0.317899L5.36035 0.0981727ZM2.96289 10.7866C2.71607 10.7592 2.5 10.9524 2.5 11.2007V12.4019C2.50009 12.6319 2.68693 12.8179 2.91699 12.8179H5.50781C5.69901 12.8179 5.86574 12.688 5.91211 12.5025L6.13477 11.6138C6.19557 11.3693 6.0268 11.1271 5.77637 11.0991L2.96289 10.7866ZM10.0576 11.0991C9.80699 11.127 9.63828 11.3692 9.69922 11.6138L9.9209 12.5025C9.96726 12.6879 10.134 12.8179 10.3252 12.8179H12.917C13.1469 12.8177 13.3329 12.6318 13.333 12.4019V11.2007C13.333 10.9525 13.1177 10.7595 12.8711 10.7866L10.0576 11.0991ZM3.33301 3.23489C2.87306 3.23504 2.50026 3.60798 2.5 4.0679V8.71341C2.50003 9.14883 2.83538 9.51107 3.26953 9.54446L5.36035 9.70462C7.06213 9.83551 8.77186 9.83552 10.4736 9.70462L12.5635 9.54446C12.9976 9.51107 13.333 9.14883 13.333 8.71341V4.0679C13.3327 3.6079 12.9601 3.23491 12.5 3.23489H3.33301ZM4.24219 1.15188C4.20057 1.15199 4.16721 1.18549 4.16699 1.22708C4.16699 1.64535 4.5056 1.98469 4.92383 1.98489H10.9092C11.3275 1.98482 11.667 1.64543 11.667 1.22708C11.6668 1.18542 11.6325 1.15188 11.5908 1.15188H4.24219Z\",\n check: \"M8.33393 12.6446L15.9939 4.98372L17.1731 6.16206L8.33393 15.0012L3.0306 9.69789L4.20893 8.51956L8.33393 12.6446Z\"\n};\n\nfunction Icon({ path, className, fill = \"black\", fillOpacity = 0.9 }: { path: string, className?: string, fill?: string, fillOpacity?: number }) {\n return (\n <div className={cn(\"relative shrink-0 size-[20px]\", className)}>\n <svg className=\"block size-full\" fill=\"none\" viewBox={path === ICONS.bus ? \"0 0 16 17\" : \"0 0 20 20\"} preserveAspectRatio=\"none\">\n <path d={path} fill={fill} fillOpacity={fillOpacity} />\n </svg>\n </div>\n );\n}\n\n// --- Separator ---\nfunction Frame() {\n return (\n <div className=\"flex flex-col gap-[10px] h-[12px] items-start justify-center shrink-0 w-full pl-[8px]\">\n <div className=\"h-0 relative shrink-0 w-full opacity-12\">\n <div className=\"border-t border-black w-full\" />\n </div>\n </div>\n );\n}\n\n// --- Action Item Component ---\ninterface ActionItemProps {\n text: string;\n icon?: \"home\" | \"bus\";\n isWarning?: boolean;\n isSelected?: boolean;\n isTitle?: boolean;\n onClick?: () => void;\n}\n\nfunction ActionItem({ text, icon = \"home\", isWarning, isSelected, isTitle, onClick }: ActionItemProps) {\n if (isTitle) {\n return (\n <div className=\"flex gap-[4px] h-[32px] items-center justify-center relative shrink-0 w-full rounded-[50px]\">\n <span className=\"font-['PingFang_SC:Medium',sans-serif] leading-[20px] text-[14px] text-[rgba(0,0,0,0.42)] whitespace-pre z-10\">\n {text}\n </span>\n </div>\n )\n }\n\n // Wrapper for interactive items\n return (\n <motion.button\n className={cn(\n \"flex gap-[4px] h-[40px] items-center relative shrink-0 w-full text-left outline-none px-0\",\n isSelected ? \"justify-between\" : \"justify-start\",\n \"rounded-[8px]\", \n )}\n onClick={onClick}\n initial=\"idle\"\n whileTap=\"active\"\n style={{ WebkitTapHighlightColor: \"transparent\" }}\n >\n {/* Active Overlay */}\n <motion.div\n className=\"absolute inset-0 bg-black rounded-[inherit]\"\n variants={{\n idle: { opacity: 0 },\n active: { opacity: 0.08 },\n }}\n transition={{ duration: 0.1 }}\n />\n \n <div className=\"flex items-center gap-[4px] relative z-10\">\n <Icon \n path={icon === \"bus\" ? ICONS.bus : ICONS.home} \n fill={isWarning ? \"#FF293B\" : \"black\"} \n fillOpacity={isWarning ? 1 : 0.9}\n />\n <span className={cn(\n \"font-['PingFang_SC:Medium',sans-serif] leading-[24px] text-[16px] whitespace-pre\",\n isWarning ? \"text-[#ff293b]\" : \"text-[rgba(0,0,0,0.9)]\"\n )}>\n {text}\n </span>\n </div>\n\n {isSelected && (\n <div className=\"relative z-10\">\n <Icon path={ICONS.check} />\n </div>\n )}\n </motion.button>\n );\n}\n\n// --- Action Sheet Component ---\nexport type ActionSheetVariant = 'default' | 'edit' | 'title' | 'selectable';\n\ninterface ActionSheetProps {\n isOpen?: boolean;\n onClose?: () => void;\n demoMode?: boolean; \n variant?: ActionSheetVariant;\n className?: string;\n}\n\nexport function ActionSheet({ isOpen = true, onClose, demoMode, variant = 'default', className }: ActionSheetProps) {\n \n const renderContent = () => {\n switch(variant) {\n case 'edit': // Design 1\n return (\n <>\n <ActionItem text=\"操作项\" />\n <ActionItem text=\"操作项\" />\n <Frame />\n <ActionItem text=\"操作项 01\" />\n <ActionItem text=\"操作项 02\" />\n <ActionItem text=\"操作项 03\" />\n <Frame />\n <ActionItem text=\"警示项\" isWarning />\n </>\n );\n case 'title': // Design 2\n return (\n <>\n <ActionItem text=\"操作标题\" isTitle />\n <ActionItem text=\"操作项 01\" />\n <ActionItem text=\"操作项 02\" />\n <Frame />\n <ActionItem text=\"操作项 03\" />\n </>\n );\n case 'selectable': // Design 3\n return (\n <>\n <ActionItem text=\"公共交通\" icon=\"bus\" isSelected />\n <Frame />\n <ActionItem text=\"操作项 01\" />\n <ActionItem text=\"操作项 02\" />\n <ActionItem text=\"操作项 02\" />\n <ActionItem text=\"操作项 03\" />\n </>\n );\n case 'default':\n default:\n return (\n <>\n <ActionItem text=\"操作项\" />\n <ActionItem text=\"操作项\" />\n <Frame />\n <ActionItem text=\"操作项 01\" />\n <ActionItem text=\"操作项 02\" />\n <ActionItem text=\"操作项 03\" />\n <Frame />\n <ActionItem text=\"这是最大长度\" />\n </>\n );\n }\n }\n\n const Content = (\n <div \n className=\"bg-[rgba(255,255,255,0.6)] backdrop-blur-xl relative rounded-bl-[24px] rounded-br-[24px] rounded-tl-[24px] rounded-tr-[20px] shadow-[0px_4px_16px_0px_rgba(0,0,0,0.12)] w-[160px] overflow-hidden\"\n onClick={(e) => e.stopPropagation()} \n >\n <div className=\"flex flex-col justify-end size-full\">\n <div className=\"box-border flex flex-col gap-[4px] items-start justify-end px-[16px] py-[8px] relative size-full\">\n {renderContent()}\n </div>\n </div>\n </div>\n );\n\n if (demoMode) {\n if (!isOpen) return null;\n return (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center\">\n <div className=\"absolute inset-0 bg-black/60\" onClick={onClose} />\n <div className=\"relative z-10\">\n {Content}\n </div>\n </div>\n );\n }\n\n return (\n <AnimatePresence>\n {isOpen && (\n <motion.div\n initial={{ opacity: 0, scaleY: 0.8, y: 10 }}\n animate={{ opacity: 1, scaleY: 1, y: 0 }}\n exit={{ opacity: 0, scaleY: 0.8, y: 10 }}\n transition={{ type: \"spring\", stiffness: 300, damping: 30 }}\n className={cn(\"absolute z-50 origin-bottom-left\", className)} \n >\n {Content}\n </motion.div>\n )}\n </AnimatePresence>\n );\n}\n","import React from \"react\";\nimport { cn } from \"./utils\";\n\n// SVG Paths (Unified)\nconst ICONS = {\n volume: \"M6.66667 4.81335L4.402 6.66668H2V9.33335H4.402L6.66667 11.1867V4.81335ZM3.926 10.6667H1.33333C1.15652 10.6667 0.986953 10.5964 0.861929 10.4714C0.736905 10.3464 0.666667 10.1768 0.666667 10V6.00001C0.666667 5.8232 0.736905 5.65363 0.861929 5.52861C0.986953 5.40359 1.15652 5.33335 1.33333 5.33335H3.926L7.45533 2.44535C7.50417 2.40531 7.56337 2.37997 7.62604 2.37228C7.68872 2.36458 7.75229 2.37485 7.80936 2.40188C7.86643 2.42891 7.91465 2.4716 7.9484 2.52497C7.98215 2.57834 8.00004 2.6402 8 2.70335V13.2967C8.00004 13.3598 7.98215 13.4217 7.9484 13.4751C7.91465 13.5284 7.86643 13.5711 7.80936 13.5981C7.75229 13.6252 7.68872 13.6354 7.62604 13.6278C7.56337 13.6201 7.50417 13.5947 7.45533 13.5547L3.926 10.6667ZM12.9373 13.4227L11.9933 12.4787C12.6253 11.9164 13.1309 11.2265 13.4768 10.4545C13.8227 9.68249 14.001 8.84595 14 8.00001C14.0008 7.11074 13.8036 6.23245 13.4226 5.42893C13.0416 4.62541 12.4864 3.91684 11.7973 3.35468L12.744 2.40801C13.5563 3.09571 14.2088 3.95234 14.656 4.91814C15.1033 5.88395 15.3344 6.93569 15.3333 8.00001C15.3333 10.1487 14.4093 12.0813 12.9373 13.4227ZM10.5753 11.0607L9.62733 10.1127C9.95098 9.86381 10.2131 9.54384 10.3933 9.1775C10.5735 8.81116 10.667 8.40828 10.6667 8.00001C10.6667 7.04668 10.1667 6.21001 9.41333 5.73868L10.3727 4.77935C10.8776 5.15081 11.2881 5.63592 11.5708 6.19543C11.8535 6.75494 12.0005 7.37314 12 8.00001C12 9.22801 11.4467 10.3267 10.5753 11.0607Z\",\n close: \"M6.00036 5.29336L9.47536 1.81836L10.1824 2.52536L6.70736 6.00036L10.1824 9.47536L9.47536 10.1824L6.00036 6.70736L2.52536 10.1824L1.81836 9.47536L5.29336 6.00036L1.81836 2.52536L2.52536 1.81836L6.00036 5.29336Z\",\n home: \"M12.6667 12.6675V6.53354L8 2.8522L3.33333 6.53354V12.6675H12.6667ZM14 13.3342C14 13.511 13.9298 13.6806 13.8047 13.8056C13.6797 13.9306 13.5101 14.0009 13.3333 14.0009H2.66667C2.48986 14.0009 2.32029 13.9306 2.19526 13.8056C2.07024 13.6806 2 13.511 2 13.3342V6.2102C1.99996 6.1095 2.02273 6.0101 2.06661 5.91946C2.11048 5.82883 2.17432 5.7493 2.25333 5.68687L7.58667 1.47954C7.70436 1.38653 7.84999 1.33594 8 1.33594C8.15001 1.33594 8.29564 1.38653 8.41333 1.47954L13.7467 5.6862C13.8258 5.74871 13.8897 5.82834 13.9335 5.9191C13.9774 6.00986 14.0001 6.10939 14 6.2102V13.3342V13.3342ZM4.66667 8.00087H6C6 8.5313 6.21071 9.04001 6.58579 9.41508C6.96086 9.79016 7.46957 10.0009 8 10.0009C8.53043 10.0009 9.03914 9.79016 9.41421 9.41508C9.78929 9.04001 10 8.5313 10 8.00087H11.3333C11.3333 8.88492 10.9821 9.73277 10.357 10.3579C9.7319 10.983 8.88406 11.3342 8 11.3342C7.11595 11.3342 6.2681 10.983 5.64298 10.3579C5.01786 9.73277 4.66667 8.88492 4.66667 8.00087V8.00087Z\",\n};\n\nexport type NotificationVariant = 'success' | 'warning' | 'attention' | 'info';\n\nexport interface NotificationAction {\n label: string;\n onClick?: () => void;\n icon?: React.ReactNode;\n}\n\ninterface NotificationBarProps {\n variant?: NotificationVariant;\n message: string;\n onClose?: () => void;\n actions?: NotificationAction[];\n className?: string;\n}\n\nexport function NotificationBar({ \n variant = 'info', \n message, \n onClose,\n actions,\n className \n}: NotificationBarProps) {\n\n const styles = {\n success: {\n text: \"#0E8A39\",\n icon: \"#0E8A39\"\n },\n warning: {\n text: \"#f55a4f\",\n icon: \"#FF293B\"\n },\n attention: {\n text: \"#ff8b00\",\n icon: \"#FA6800\"\n },\n info: {\n text: \"#1d73fb\",\n icon: \"#367BF6\"\n }\n };\n\n const colors = styles[variant];\n\n return (\n <div \n className={cn(\n \"relative flex items-center w-full min-h-[40px]\",\n \"bg-[rgba(255,255,255,0.7)] rounded-[32px]\",\n \"shadow-[0px_4px_16px_0px_rgba(0,0,0,0.12)]\",\n \"px-[12px] py-[10px]\",\n \"backdrop-blur-sm\", // Added for better glass effect\n className\n )}\n data-name={`Notification Bar/${variant}`}\n >\n {/* Left: Icon + Text */}\n <div className=\"flex flex-1 items-center gap-[10px] min-w-0\">\n {/* Icon */}\n <div className=\"relative shrink-0 size-[16px]\"> \n <svg className=\"block size-full\" fill=\"none\" viewBox=\"0 0 16 16\">\n <path d={ICONS.volume} fill={colors.icon} />\n </svg>\n </div>\n\n {/* Text */}\n <div \n className=\"font-['PingFang_SC:Medium',sans-serif] text-[14px] leading-[20px] break-words whitespace-pre-wrap\"\n style={{ color: colors.text }}\n >\n {message}\n </div>\n </div>\n\n {/* Right: Actions + Close */}\n <div className=\"flex items-center shrink-0\">\n {actions && actions.length > 0 && (\n <>\n {actions.map((action, idx) => (\n <React.Fragment key={idx}>\n <div className=\"flex items-center\">\n {/* Separator before each action? No, pattern is Action -> Separator. */}\n {/* Wait, if we follow Frame6: Action, Sep, Action, Sep. */}\n {/* But the first action needs to be separated from the text? No, the text is flex-1. */}\n {/* The gap between Text and Action is fluid. */}\n \n <button \n onClick={action.onClick}\n className=\"flex items-center justify-center gap-[2px] h-[28px] min-w-[28px] rounded-[18px] hover:bg-black/5 transition-colors px-1\" // Added hover effect and px-1 for touch target\n >\n {/* Action Icon */}\n <div className=\"relative shrink-0 size-[16px]\">\n {action.icon ? action.icon : (\n <svg className=\"block size-full\" fill=\"none\" viewBox=\"0 0 16 16\">\n <path d={ICONS.home} fill={colors.text} />\n </svg>\n )}\n </div>\n {/* Action Text */}\n <span \n className=\"font-['PingFang_SC:Medium',sans-serif] text-[12px] leading-[16px] whitespace-nowrap\"\n style={{ color: colors.text }}\n >\n {action.label}\n </span>\n </button>\n\n {/* Separator: Always after an action, as per design (before Close) */}\n <div className=\"flex items-center justify-center w-[17px]\"> {/* Frame4 has gap 12px + line width? No. */}\n {/* Frame4 implementation: gap-[12px] px-[8px]. It contains a 0.5px line. */}\n {/* So the total width is 8px padding left + 0.5px + 8px padding right = 16.5px ~ 17px? */}\n {/* Actually, Frame4 has px-[8px] and the line is 0.5px. So total width is 16.5px. */}\n <div className=\"w-[0.5px] h-[12px] bg-[rgba(0,0,0,0.12)]\" />\n </div>\n </div>\n </React.Fragment>\n ))}\n </>\n )}\n\n {/* Close Icon */}\n {/* If there are actions, the separator is handled by the loop above. */}\n {/* If there are NO actions, we still need the 12px margin? */}\n {/* Existing code had ml-[12px]. With actions, the last separator provides spacing. */}\n {/* If actions exist, the last element was a separator with ~16px width. Close icon sits next to it. */}\n {/* If NO actions, we need margin-left 12px. */}\n \n <div className={cn(\"shrink-0\", (!actions || actions.length === 0) && \"ml-[12px]\")}>\n <button \n onClick={onClose}\n className=\"flex items-center justify-center size-[12px] opacity-40 hover:opacity-100 transition-opacity\"\n aria-label=\"Close notification\"\n >\n <svg className=\"block size-full\" fill=\"none\" viewBox=\"0 0 12 12\">\n <path d={ICONS.close} fill=\"black\" fillOpacity=\"1\" />\n </svg>\n </button>\n </div>\n </div>\n </div>\n );\n}\n","export default {\np19a8e000: \"M10 18.3333C5.3975 18.3333 1.66667 14.6025 1.66667 10C1.66667 5.3975 5.3975 1.66667 10 1.66667C14.6025 1.66667 18.3333 5.3975 18.3333 10C18.3333 14.6025 14.6025 18.3333 10 18.3333ZM10 16.6667C11.7681 16.6667 13.4638 15.9643 14.714 14.714C15.9643 13.4638 16.6667 11.7681 16.6667 10C16.6667 8.23189 15.9643 6.5362 14.714 5.28595C13.4638 4.03571 11.7681 3.33333 10 3.33333C8.23189 3.33333 6.5362 4.03571 5.28595 5.28595C4.03571 6.5362 3.33333 8.23189 3.33333 10C3.33333 11.7681 4.03571 13.4638 5.28595 14.714C6.5362 15.9643 8.23189 16.6667 10 16.6667ZM8.62 13.4805L5.08417 9.94465L6.2625 8.76632L8.62 11.1238L13.3333 6.40965L14.5125 7.58798L8.62 13.4805Z\",\np2ee0a700: \"M23.6 2.13333C22.8 1.06667 21.2 1.06667 20.4 2.13333L16 8L28 8L23.6 2.13333Z\",\np3e545500: \"M8.00048 7.05781L12.6338 2.42448L13.5765 3.36715L8.94315 8.00048L13.5765 12.6338L12.6338 13.5765L8.00048 8.94315L3.36715 13.5765L2.42448 12.6338L7.05781 8.00048L2.42448 3.36715L3.36715 2.42448L8.00048 7.05781Z\",\n}\n","import React from \"react\";\nimport { cn } from \"./utils\";\nimport svgPaths from \"../../imports/svg-bot5vgf2as\";\n\n// SVG Paths (Using imported paths from Figma)\nconst ICONS = {\n selected: svgPaths.p19a8e000,\n arrow: svgPaths.p2ee0a700,\n close: svgPaths.p3e545500,\n};\n\nexport type BubblePlacement = 'top' | 'bottom' | 'left' | 'right';\nexport type BubbleAlignment = 'start' | 'center' | 'end';\n\ninterface BubbleTipProps {\n message?: string;\n placement?: BubblePlacement;\n alignment?: BubbleAlignment;\n showIcon?: boolean;\n closable?: boolean;\n onClose?: () => void;\n className?: string;\n}\n\nexport function BubbleTip({\n message = \"气泡提示\",\n placement = 'top',\n alignment = 'center',\n showIcon = true,\n closable = true,\n onClose,\n className\n}: BubbleTipProps) {\n \n const ARROW_COLOR = \"#4B526B\"; \n\n let containerClasses = \"flex flex-col\";\n let arrowClasses = \"\";\n let arrowContainerClasses = \"flex w-full\";\n \n // Placement Logic\n switch (placement) {\n case 'top':\n containerClasses = \"flex flex-col items-center\"; \n arrowClasses = \"rotate-180\"; // Points Down\n break;\n case 'bottom':\n containerClasses = \"flex flex-col-reverse items-center\"; \n arrowClasses = \"\"; // Points Up (Default)\n break;\n case 'left':\n // Bubble Left, Arrow Right.\n containerClasses = \"flex flex-row items-center\"; \n arrowContainerClasses = \"flex h-full flex-col w-[8px] items-center justify-center\"; \n // Rotate 90deg clockwise to point right.\n arrowClasses = \"rotate-90\";\n break;\n \n case 'right':\n // Bubble Right, Arrow Left.\n containerClasses = \"flex flex-row-reverse items-center\"; \n arrowContainerClasses = \"flex h-full flex-col w-[8px] items-center justify-center\"; \n // Rotate 270deg (or -90deg) to point left.\n arrowClasses = \"-rotate-90\"; \n break;\n }\n\n let alignmentClass = \"justify-center\";\n \n if (placement === 'top' || placement === 'bottom') {\n if (alignment === 'start') alignmentClass = \"justify-start pl-[12px]\"; \n if (alignment === 'center') alignmentClass = \"justify-center\";\n if (alignment === 'end') alignmentClass = \"justify-end pr-[12px]\";\n } else {\n alignmentClass = \"justify-center items-center\"; \n }\n\n // Render Arrow Function (Strictly matching Figma structure for dimensions)\n const renderArrow = () => {\n // For Left/Right, the arrow container is 8x44.\n if (placement === 'left' || placement === 'right') {\n return (\n // Wrapper: 8x44\n <div className=\"flex w-[8px] h-[44px] items-center justify-center relative shrink-0\">\n {/* Rotated Inner Div */}\n <div className={cn(\"flex-none\", arrowClasses)}>\n {/* Arrow Component: 44x8 */}\n <div className=\"h-[8px] relative w-[44px]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 44 8\">\n <path d={ICONS.arrow} fill={ARROW_COLOR} fillOpacity=\"0.9\" />\n </svg>\n </div>\n </div>\n </div>\n );\n }\n\n // Top/Bottom fallback (Standard)\n return (\n <div className={cn(\"w-[44px] h-[8px] flex items-center justify-center\", arrowClasses)}>\n <svg \n className=\"block size-full\" \n width=\"44\" \n height=\"8\" \n viewBox=\"0 0 44 8\" \n fill=\"none\" \n preserveAspectRatio=\"none\"\n >\n <path d={ICONS.arrow} fill={ARROW_COLOR} fillOpacity=\"0.9\" />\n </svg>\n </div>\n );\n }\n\n return (\n <div className={cn(\"inline-flex relative filter drop-shadow-sm\", containerClasses, className)} data-name={`BubbleTip/${placement}/${alignment}`}>\n \n {/* Tooltip Body */}\n <div className=\"bg-[rgba(75,82,107,0.9)] backdrop-blur-sm text-white rounded-[12px] px-[12px] py-[10px] flex items-center max-w-[300px] z-20\">\n \n {/* Content Group */}\n <div className=\"flex items-center gap-[4px]\">\n {/* Selected Icon */}\n {showIcon && (\n <div className=\"relative shrink-0 size-[20px]\">\n <svg className=\"block size-full\" fill=\"none\" viewBox=\"0 0 20 20\">\n <path d={ICONS.selected} fill=\"white\" />\n </svg>\n </div>\n )}\n \n {/* Text */}\n <div className=\"font-['PingFang_SC:Medium',sans-serif] text-[14px] leading-normal whitespace-pre flex flex-col justify-center text-white\">\n {message}\n </div>\n </div>\n\n {/* Separator & Close Group */}\n {closable && (\n <div className=\"flex items-center gap-[8px] pl-[8px]\"> \n {/* Separator */}\n <div className=\"w-[0.5px] h-[12px] bg-[rgba(255,255,255,0.2)] shrink-0\" />\n \n {/* Close Button */}\n <button \n onClick={onClose}\n className=\"flex items-center justify-center size-[16px] opacity-80 hover:opacity-100 transition-opacity\"\n >\n <svg className=\"block size-full\" fill=\"none\" viewBox=\"0 0 16 16\">\n <path d={ICONS.close} fill=\"white\" />\n </svg>\n </button>\n </div>\n )}\n\n </div>\n\n {/* Arrow Container */}\n {/* z-10 to be below if needed, but here visually connected */}\n <div className={cn(\"shrink-0 relative z-10\", arrowContainerClasses, alignmentClass)}>\n {renderArrow()}\n </div>\n\n </div>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"./utils\";\nconst imgIcon = \"\";\n\nexport interface PushProps {\n icon?: string;\n title: string;\n description: string;\n actionText?: string;\n onAction?: () => void;\n className?: string;\n}\n\nexport function Push({\n icon = imgIcon,\n title,\n description,\n actionText,\n onAction,\n className,\n}: PushProps) {\n return (\n <div \n className={cn(\n \"relative h-[64px] w-full rounded-[24px] overflow-hidden\",\n \"backdrop-blur-[30px] backdrop-filter bg-[rgba(255,255,255,0.54)]\",\n \"shadow-[0px_2px_4px_0px_rgba(0,0,0,0.02),0px_4px_16px_1px_rgba(0,0,0,0.06)]\",\n className\n )}\n data-name=\"push\"\n >\n {/* Inner Border */}\n <div \n aria-hidden=\"true\" \n className=\"absolute inset-0 border border-[rgba(255,255,255,0.35)] rounded-[24px] pointer-events-none\" \n />\n \n {/* Content */}\n <div className=\"flex items-center px-[12px] h-full w-full box-border\">\n \n {/* Icon + Text Group */}\n <div className=\"flex items-center gap-[12px] flex-1 min-w-0 mr-[10px]\">\n {/* Icon */}\n <div className=\"relative shrink-0 size-[40px]\">\n <img \n src={icon} \n alt=\"\" \n className=\"size-full object-cover pointer-events-none\" \n />\n </div>\n\n {/* Text Content */}\n <div className=\"flex flex-col justify-center min-w-0 flex-1\">\n <p className=\"font-['PingFang_SC:Medium',sans-serif] text-[16px] leading-[24px] text-[rgba(0,0,0,0.9)] truncate w-full text-left\">\n {title}\n </p>\n <p className=\"font-['PingFang_SC:Regular',sans-serif] text-[14px] leading-[20px] text-[rgba(0,0,0,0.7)] truncate w-full text-left\">\n {description}\n </p>\n </div>\n </div>\n\n {/* Optional Action Button */}\n {actionText && (\n <button\n onClick={onAction}\n className=\"shrink-0 bg-[rgba(75,82,107,0.08)] h-[32px] px-[12px] rounded-[18px] flex items-center justify-center relative overflow-hidden active:after:content-[''] active:after:absolute active:after:inset-0 active:after:bg-black/8 active:after:rounded-[inherit] transition-colors\"\n >\n <span className=\"font-['PingFang_SC:Medium',sans-serif] text-[12px] text-[rgba(0,0,0,0.9)] whitespace-nowrap leading-[16px] text-center\">\n {actionText}\n </span>\n </button>\n )}\n </div>\n </div>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"./utils\";\n\n// --- Assets & SVGs ---\n\n// Not Logged In\nconst imgNotLoggedIn = \"\";\nconst svgNotLoggedIn = {\n p22057700: \"M1.25033 1.25033L10.315 5.01618\",\n p2e691e00: \"M1.25015 1.25015L6.37527 1.96206\",\n p375bc00: \"M12.3095 6.62025C12.5748 9.0696 10.7846 12.7557 9.70501 14.9703C8.73017 16.9701 10.9925 19.8014 10.9925 19.8014L8.55611 20.4507C8.55611 20.4507 6.5254 20.8607 7.5521 19.1277C8.90242 16.8485 1.83046 12.5754 0.848111 10.2716C-3.64015 -0.254204 11.0887 -4.65223 12.3095 6.62025Z\",\n p952fc80: \"M0.357212 5.80561L9.69063 0.750005L5.6906 15.9168L17.6907 10.8612\",\n p9a5c900: \"M0.357212 3.08334L4.6649 0.750005L2.81875 7.75L8.35721 5.41667\",\n};\n\n// Network Error\nconst imgNetwork1 = \"\";\nconst imgNetwork2 = \"\";\nconst svgNetwork = {\n p1214e8f0: \"M35.9729 13.862L29.5224 11.4579L30.6893 16.4137L25.9892 21.4434L27.0102 25.7797L28.7588 22.0989L35.1355 18.6359L35.9729 13.862Z\",\n p137e7700: \"M1.25034 1.25034L8.17922 3.83772L2.02019 9.08062\",\n p1db48f00: \"M28.2508 28.0668C28.6536 29.7775 27.5933 31.4907 25.8827 31.8935C24.1721 32.2963 22.4588 31.2361 22.056 29.5255C21.6532 27.8148 22.7134 26.1015 24.4241 25.6987C26.1347 25.2959 27.848 26.3562 28.2508 28.0668Z\",\n p24da3e80: \"M4.32648 9.01306H1.80284L0 0H5.16747L4.32648 9.01306Z\",\n p26c007c0: \"M47.6144 33.2635L27.5643 36.7829L12.4342 40.2538L16.7945 31.1377L6.68339 17.538L16.1406 5.96466L46.2894 12.2154L47.6144 33.2635Z\",\n p28dc7e00: \"M1.61966 1.30115C3.35431 15.6124 -7.05373 39.0307 24.6044 39.0307\",\n p2d57ae00: \"M22.1814 23.8984L20.2013 20.6358C21.4891 19.8544 22.9431 19.3881 24.4452 19.2764C25.9475 19.1648 27.4554 19.4101 28.8446 19.9925C30.2339 20.5751 31.466 21.4787 32.4394 22.6285C33.4127 23.7783 34.1002 25.1426 34.4455 26.609L30.7286 27.4842C30.5215 26.6045 30.1091 25.7859 29.5253 25.0961C28.9412 24.4062 28.2013 23.8645 27.3677 23.5149C26.5343 23.1655 25.6301 23.0171 24.7288 23.084C23.8276 23.151 22.9541 23.4296 22.1814 23.8984Z\",\n p32471600: \"M5.21994 9.93656L3.39158 10.4896L0 1.99084L5.04466 0L5.21994 9.93656Z\",\n p3261a780: \"M3.71598 2.5899H9.42252C12.5412 2.30237 18.8848 1.70077 19.3094 1.5946C19.8403 1.46189 27.8693 -0.0642537 28.4665 0.00210145C29.0637 0.0684566 32.9786 1.72734 33.7749 2.5899C34.5711 3.45246 35.5665 5.90772 35.4338 6.63762C35.3276 7.22155 33.4873 11.0392 32.5805 12.875L12.4749 15.861H2.72064L0 13.3395C0.0442325 10.9286 0.185782 6.06697 0.398118 5.90772C0.610455 5.74846 2.6985 3.62948 3.71598 2.5899Z\",\n p91e2fc0: \"M4.80733 1.30133C0.904269 9.54112 -6.13316 25.587 25.6814 25.587\",\n pd470e00: \"M16.9 15.1943C19.0463 13.892 21.4703 13.1158 23.9739 12.9297C26.4778 12.7436 28.9911 13.1526 31.3066 14.1236C33.6219 15.0945 35.6746 16.5997 37.2968 18.5158C38.9191 20.4322 40.065 22.7064 40.6405 25.1504L36.9236 26.0256C36.4862 24.1682 35.6157 22.4398 34.3827 20.9834C33.1498 19.527 31.5892 18.3827 29.8294 17.6448C28.0698 16.9069 26.1603 16.596 24.2575 16.7373C22.3546 16.8787 20.5117 17.4683 18.8804 18.4581L16.9 15.1943Z\",\n};\n\n// Generic\nconst imgGeneric = \"\";\nconst svgGeneric = {\n p1b9b8400: \"M0 9.08801L41.3639 0L38.6365 27.2725L0.000109239 38.179L0 9.08801Z\",\n p2b0e2af0: \"M5 26.3633L0 9.09056L41.3636 0L48.1818 14.0909L5 26.3633Z\",\n p3182d400: \"M7.27273 0L40 7.27273L33.6364 24.0909L0 15.4545L7.27273 0Z\",\n p3435b100: \"M51.9243 24.5455L3.63636 11.1992L50.1523 3.63636L90.9091 13.6587L51.9243 24.5455Z\",\n p36984100: \"M0 0L32.7272 7.27262V36.3636L2.72727 25.4544L0 0Z\",\n p387fd0f1: \"M2.27273 29.9997L0 9.09056L41.3636 0L38.1818 19.5455L2.27273 29.9997Z\",\n p3921f100: \"M2.72727 32.2727L0 6.81813L40.9091 0L74.0909 4.99994L71.3636 32.2726L32.7272 43.1818L2.72727 32.2727Z\",\n pe91a400: \"M0 0L32.7273 7.27273L27.7273 25.9091L2.27273 17.7273L0 0Z\",\n peb6ca00: \"M24.5459 0C29.5664 0.000241199 33.6367 4.07024 33.6367 9.09082C33.6367 14.1114 29.5665 18.1814 24.5459 18.1816H9.74414L4.32324 20.6689C3.52666 21.0339 2.72553 20.171 3.14844 19.4033L4.50488 16.9395C1.81061 15.3617 0 12.4385 0 9.09082C4.7932e-05 4.07012 4.07012 4.79334e-05 9.09082 0H24.5459ZM10.9092 7.27246C9.90509 7.27246 9.09092 8.08675 9.09082 9.09082C9.09082 10.095 9.90503 10.9092 10.9092 10.9092C11.9133 10.9091 12.7275 10.0949 12.7275 9.09082C12.7274 8.08681 11.9132 7.27256 10.9092 7.27246ZM17.2725 7.27246C16.2684 7.2725 15.4542 8.08678 15.4541 9.09082C15.4541 10.095 16.2683 10.9091 17.2725 10.9092C18.2766 10.9092 19.0908 10.095 19.0908 9.09082C19.0907 8.08675 18.2766 7.27246 17.2725 7.27246ZM23.6367 7.27246C22.6326 7.27246 21.8185 8.08675 21.8184 9.09082C21.8184 10.095 22.6326 10.9092 23.6367 10.9092C24.6407 10.9090 25.4541 10.0948 25.4541 9.09082C25.454 8.08689 24.6406 7.27269 23.6367 7.27246Z\",\n};\n\n// No Plan (New)\nconst imgNoPlan = \"\";\nconst svgNoPlan = {\n pf17a1b0: \"M14.4591 16.1091C12.193 14.8474 11.1358 11.4576 11.459 9.42774C12.4224 3.37755 1.1858 6.44949 4.16405 9.42773C5.16405 10.4277 18.3153 7.5299 14.4591 2.57466C12.3274 -0.164506 3.09311 0.83532 0.837723 4.29513\",\n};\n\n// No Comment (New)\nconst imgNoComment = \"\";\nconst svgNoComment = {\n p198508c0: \"M0.196953 15.411C4.74767 14.1725 15.1793 9.43237 20.5 0.380045\",\n p1f020300: \"M0.343501 0L10.3435 0.314658C10.3435 0.314658 9.64265 2.52038 10.3435 3.49265C11.428 4.99714 11.1562 7.13916 10.3435 8.80626C9.60966 10.3117 10.3435 11.5312 10.3435 11.5312H0.343501C0.343501 11.5312 -0.429376 9.74012 0.343501 8.43554C1.36 6.71974 1.42874 5.32266 0.343501 3.78098C-0.323074 2.83405 0.343501 0 0.343501 0Z\",\n p1f0f3180: \"M32.5992 0.447391C23.8589 12.2071 2.88233 16.6568 8.28535 11.5715C13.6884 6.48618 21.3162 17.1335 0.180614 22.3776\",\n p200381c0: \"M0.203594 11.9026C3.57269 10.9523 11.2957 7.31547 15.2349 0.370002\",\n p2dd0a400: \"M0.309106 0.407716L10.3091 0C10.3091 0 9.46313 2.051 10.3091 3.206C11.4304 4.73685 11.2952 6.47188 10.3091 8.06499C9.60531 9.20201 10.3091 11.4891 10.3091 11.4891H0.309106C0.309106 11.4891 -0.386383 9.2071 0.309106 8.06499C1.49751 6.11343 1.22782 4.99778 0.309106 3.44497C-0.37425 2.28996 0.309106 0.407716 0.309106 0.407716Z\",\n};\n\n// Location Related (New)\nconst imgLocationMap = \"\";\nconst imgLocationAvatar = \"\";\nconst svgLocation = {\n p191f4380: \"M3.02692 0C3.84431 0 4.50845 0.217121 5.01932 0.676906C5.53019 1.12392 5.78563 1.73697 5.78563 2.50327C5.78563 3.12909 5.61959 3.65274 5.3003 4.06143C5.18535 4.20192 4.82774 4.53399 4.22747 5.05763C3.9848 5.26198 3.806 5.49188 3.69105 5.72177C3.55056 5.9772 3.4867 6.25818 3.4867 6.56471V6.78183H2.12012V6.56471C2.12012 6.09215 2.19675 5.68345 2.37556 5.35139C2.54159 4.99377 3.02692 4.47013 3.81877 3.76768L4.03589 3.52502C4.26578 3.23127 4.3935 2.92474 4.3935 2.59268C4.3935 2.14566 4.26578 1.80082 4.02312 1.54539C3.76768 1.28995 3.3973 1.16223 2.93751 1.16223C2.36278 1.16223 1.94131 1.34104 1.68588 1.71142C1.45599 2.01794 1.34104 2.45219 1.34104 3.01415H0C0 2.0818 0.268208 1.35381 0.804624 0.817395C1.34104 0.268208 2.0818 0 3.02692 0ZM2.79702 7.4715C3.06523 7.4715 3.29513 7.54814 3.47393 7.72694C3.65274 7.89297 3.74214 8.11009 3.74214 8.3783C3.74214 8.64651 3.63996 8.86363 3.46116 9.04244C3.28235 9.20847 3.05246 9.29787 2.79702 9.29787C2.54159 9.29787 2.3117 9.20847 2.13289 9.02966C1.95409 8.85086 1.86468 8.63374 1.86468 8.3783C1.86468 8.11009 1.95409 7.89297 2.13289 7.72694C2.3117 7.54814 2.54159 7.4715 2.79702 7.4715Z\",\n p1ef03a80: \"M37.2335 0L0 1.36763L2.51532e-05 1.84821L11.1151 3.88717H45.9426C45.9426 3.88717 43.655 2.00441 41.9069 1.27064C40.1984 0.553488 37.2335 0 37.2335 0Z\",\n p1f0a8b80: \"M12.384 16.5131L13.5919 19.7804L5.53628 15.0475L0 9.80712L4.68839 0L16.2136 2.46672L18.1372 12.4882L12.384 16.5131Z\",\n pc8c3800: \"M20.1765 0.253607C33.012 -1.61351 44.8948 7.02998 46.7175 19.5593C48.4249 31.2966 42.5453 43.4451 30.5232 52.3239C28.9507 53.4853 26.9161 53.8349 25.0603 53.2204C11.723 48.8038 1.93587 38.006 0.236102 26.321C-1.58649 13.7916 7.341 2.12077 20.1765 0.253607ZM31.7039 22.4479C31.0509 17.9594 26.8828 14.8497 22.3943 15.5026C17.906 16.1558 14.7971 20.3238 15.45 24.8122C16.1029 29.3007 20.271 32.4104 24.7595 31.7575C29.2479 31.1045 32.3567 26.9363 31.7039 22.4479Z\",\n};\nconst svgMaskLocation = \"data:image/svg+xml,%3Csvg%20preserveAspectRatio%3D%22none%22%20width%3D%22100%25%22%20height%3D%22100%25%22%20overflow%3D%22visible%22%20style%3D%22display%3A%20block%3B%22%20viewBox%3D%220%200%20141%2034%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20id%3D%22Vector%2015474%22%20d%3D%22M63.0162%201.59199L33.3322%2011.1174C26.5004%2018.6125%201.41069%2012.2574%200.137186%2015.1228C-1.13631%2017.9882%206.77002%2028.5211%2010.8824%2033.4294L96.0699%2020.2936L135.174%206.05353L140.421%203.78071L117.14%200L85.5016%203.78071L63.0162%201.59199Z%22%20fill%3D%22var(--fill-0%2C%20%23D9D9D9)%22%20style%3D%22fill%3A%23D9D9D9%3Bfill%3Acolor(display-p3%200.8510%200.8510%200.8510)%3Bfill-opacity%3A1%3B%22%2F%3E%0A%3C%2Fsvg%3E%0A\";\n\n// --- Components ---\n\nfunction IllustrationNotLoggedIn() {\n return (\n <div className=\"mb-[-20px] overflow-clip relative shrink-0 size-[160px]\">\n <div className=\"absolute h-[101.642px] left-[calc(20%-10.08px)] top-[calc(20%-0.28px)] w-[116.162px]\">\n <img alt=\"\" className=\"absolute inset-0 max-w-none object-50%-50% object-cover pointer-events-none size-full\" src={imgNotLoggedIn} />\n </div>\n <div className=\"absolute flex h-[calc(1px*((var(--transform-inner-width)*0.34325677156448364)+(var(--transform-inner-height)*0.9392415881156921)))] items-center justify-center left-[calc(40%+12.24px)] top-[calc(40%+3.06px)] w-[calc(1px*((var(--transform-inner-height)*0.34325677156448364)+(var(--transform-inner-width)*0.9392415881156921)))]\" style={{ \"--transform-inner-width\": \"9.0625\", \"--transform-inner-height\": \"3.765625\" } as React.CSSProperties}>\n <div className=\"flex-none rotate-[339.925deg]\">\n <div className=\"h-[3.766px] relative w-[9.065px]\">\n <div className=\"absolute inset-[-33.2%_-13.79%]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 12 7\">\n <path d={svgNotLoggedIn.p22057700} id=\"Vector 15467\" stroke=\"url(#paint0_linear_80_22445)\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"2.5\" />\n <defs>\n <linearGradient gradientUnits=\"userSpaceOnUse\" id=\"paint0_linear_80_22445\" x1=\"1.55301\" x2=\"4.48867\" y1=\"-1.01401\" y2=\"10.0419\">\n <stop stopColor=\"#111E42\" style={{ stopColor: \"color(display-p3 0.0667 0.1176 0.2588)\", stopOpacity: \"1\" }} />\n <stop offset=\"1\" stopColor=\"#808CB6\" style={{ stopColor: \"color(display-p3 0.5020 0.5490 0.7137)\", stopOpacity: \"1\" }} />\n </linearGradient>\n </defs>\n </svg>\n </div>\n </div>\n </div>\n </div>\n <div className=\"absolute flex h-[calc(1px*((var(--transform-inner-width)*0.10811964422464371)+(var(--transform-inner-height)*0.9941378831863403)))] items-center justify-center left-[calc(40%-3.15px)] top-[calc(40%+5.69px)] w-[calc(1px*((var(--transform-inner-height)*0.10811964422464371)+(var(--transform-inner-width)*0.9941378831863403)))]\" style={{ \"--transform-inner-width\": \"5.125\", \"--transform-inner-height\": \"0.703125\" } as React.CSSProperties}>\n <div className=\"flex-none rotate-[186.207deg] scale-y-[-100%]\">\n <div className=\"h-[0.712px] relative w-[5.125px]\">\n <div className=\"absolute inset-[-175.61%_-24.39%]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 8 4\">\n <path d={svgNotLoggedIn.p2e691e00} id=\"Vector 15468\" stroke=\"url(#paint0_linear_80_22451)\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"2.5\" />\n <defs>\n <linearGradient gradientUnits=\"userSpaceOnUse\" id=\"paint0_linear_80_22451\" x1=\"1.42129\" x2=\"1.61837\" y1=\"0.822095\" y2=\"3.042\">\n <stop stopColor=\"#111E42\" style={{ stopColor: \"color(display-p3 0.0667 0.1176 0.2588)\", stopOpacity: \"1\" }} />\n <stop offset=\"1\" stopColor=\"#808CB6\" style={{ stopColor: \"color(display-p3 0.5020 0.5490 0.7137)\", stopOpacity: \"1\" }} />\n </linearGradient>\n </defs>\n </svg>\n </div>\n </div>\n </div>\n </div>\n <div className=\"absolute flex h-[calc(1px*((var(--transform-inner-width)*0.99418705701828)+(var(--transform-inner-height)*0.10766687989234924)))] items-center justify-center left-[calc(40%-11.43px)] top-[calc(40%+6.77px)] w-[calc(1px*((var(--transform-inner-height)*0.99418705701828)+(var(--transform-inner-width)*0.10766687989234924)))]\" style={{ \"--transform-inner-width\": \"12.328125\", \"--transform-inner-height\": \"20.484375\" } as React.CSSProperties}>\n <div className=\"flex-none rotate-[276.181deg]\">\n <div className=\"h-[20.493px] relative w-[12.336px]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 13 21\">\n <g id=\"Rectangle 1329138158\">\n <path d={svgNotLoggedIn.p375bc00} fill=\"url(#paint0_linear_80_22449)\" />\n <path d={svgNotLoggedIn.p375bc00} fill=\"url(#paint1_radial_80_22449)\" />\n </g>\n <defs>\n <linearGradient gradientUnits=\"userSpaceOnUse\" id=\"paint0_linear_80_22449\" x1=\"5.91568\" x2=\"5.91568\" y1=\"2.70749\" y2=\"18.1353\">\n <stop stopColor=\"#C5F1FF\" style={{ stopColor: \"color(display-p3 0.7736 0.9434 1.0000)\", stopOpacity: \"1\" }} />\n <stop offset=\"0.539494\" stopColor=\"#65D9FF\" style={{ stopColor: \"color(display-p3 0.3980 0.8495 1.0000)\", stopOpacity: \"1\" }} />\n <stop offset=\"1\" stopColor=\"#DEF7FF\" stopOpacity=\"0\" style={{ stopColor: \"none\", stopOpacity: \"0\" }} />\n </linearGradient>\n <radialGradient cx=\"0\" cy=\"0\" gradientTransform=\"translate(8.66006 2.98688) rotate(131.772) scale(1.49904 2.72021)\" gradientUnits=\"userSpaceOnUse\" id=\"paint1_radial_80_22449\" r=\"1\">\n <stop stopColor=\"white\" stopOpacity=\"0.93\" style={{ stopColor: \"white\", stopOpacity: \"0.93\" }} />\n <stop offset=\"1\" stopColor=\"white\" stopOpacity=\"0\" style={{ stopColor: \"none\", stopOpacity: \"0\" }} />\n </radialGradient>\n </defs>\n </svg>\n </div>\n </div>\n </div>\n <div className=\"absolute h-[7px] left-[calc(20%+10.49px)] top-[calc(40%-7.03px)] w-[8px]\">\n <div className=\"absolute inset-[-10.71%_-3.64%_-10.71%_-4.47%]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 9 9\">\n <path d={svgNotLoggedIn.p9a5c900} id=\"Vector 15081\" stroke=\"var(--stroke-0, #6B6B6B)\" strokeLinejoin=\"round\" strokeWidth=\"1.5\" style={{ stroke: \"color(display-p3 0.4181 0.4181 0.4181)\", strokeOpacity: \"1\" }} />\n </svg>\n </div>\n </div>\n <div className=\"absolute h-[15.167px] left-[calc(20%-6.85px)] top-[calc(20%+8.05px)] w-[17.333px]\">\n <div className=\"absolute inset-[-4.95%_-1.68%_-4.95%_-2.06%]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 18 17\">\n <path d={svgNotLoggedIn.p952fc80} id=\"Vector 15082\" stroke=\"var(--stroke-0, #6B6B6B)\" strokeLinejoin=\"round\" strokeWidth=\"1.5\" style={{ stroke: \"color(display-p3 0.4181 0.4181 0.4181)\", strokeOpacity: \"1\" }} />\n </svg>\n </div>\n </div>\n </div>\n );\n}\n\nfunction IllustrationNetworkError() {\n const Group = () => (\n <div className=\"h-[50.834px] relative w-[54.286px]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 55 51\">\n <g id=\"Group 2147224758\">\n <path d={svgNetwork.p26c007c0} fill=\"var(--fill-0, #00CCFF)\" id=\"Subtract\" style={{ fill: \"color(display-p3 0.0000 0.8000 1.0000)\", fillOpacity: \"1\" }} />\n <g id=\"Vector\">\n <path d={svgNetwork.p1db48f00} fill=\"var(--fill-0, white)\" style={{ fill: \"white\", fillOpacity: \"1\" }} />\n <path d={svgNetwork.p2d57ae00} fill=\"var(--fill-0, white)\" style={{ fill: \"white\", fillOpacity: \"1\" }} />\n <path d={svgNetwork.pd470e00} fill=\"var(--fill-0, white)\" style={{ fill: \"white\", fillOpacity: \"1\" }} />\n </g>\n <path d={svgNetwork.p1214e8f0} fill=\"var(--fill-0, #00CCFF)\" id=\"Vector 15453\" style={{ fill: \"color(display-p3 0.0000 0.8000 1.0000)\", fillOpacity: \"1\" }} />\n </g>\n </svg>\n </div>\n );\n\n return (\n <div className=\"mb-[-20px] overflow-clip relative shrink-0 size-[160px]\">\n <div className=\"absolute h-[85px] left-[calc(20%-0.28px)] top-[calc(20%+5px)] w-[97.143px]\">\n <img alt=\"\" className=\"absolute inset-0 max-w-none object-50%-50% object-cover pointer-events-none size-full\" src={imgNetwork1} />\n </div>\n <div className=\"absolute h-[15.861px] left-[calc(40%+0.13px)] top-[calc(40%+5.6px)] w-[35.446px]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 36 16\">\n <path d={svgNetwork.p3261a780} fill=\"url(#paint0_linear_80_22551)\" id=\"Vector 15466\" />\n <defs>\n <linearGradient gradientUnits=\"userSpaceOnUse\" id=\"paint0_linear_80_22551\" x1=\"17.7229\" x2=\"17.7229\" y1=\"1.91361e-10\" y2=\"15.861\">\n <stop stopColor=\"#FBFCFF\" style={{ stopColor: \"color(display-p3 0.9843 0.9882 1.0000)\", stopOpacity: \"1\" }} />\n <stop offset=\"1\" stopColor=\"#F9F9FE\" style={{ stopColor: \"color(display-p3 0.9765 0.9765 0.9961)\", stopOpacity: \"1\" }} />\n </linearGradient>\n </defs>\n </svg>\n </div>\n <div className=\"absolute flex h-[calc(1px*((var(--transform-inner-width)*0.14709778130054474)+(var(--transform-inner-height)*0.9891219735145569)))] items-center justify-center left-[calc(40%+3.33px)] top-[calc(40%+11.94px)] w-[calc(1px*((var(--transform-inner-height)*0.14709778130054474)+(var(--transform-inner-width)*0.9891219735145569)))]\" style={{ \"--transform-inner-width\": \"6.921875\", \"--transform-inner-height\": \"7.828125\" } as React.CSSProperties}>\n <div className=\"flex-none rotate-[351.541deg]\">\n <div className=\"h-[7.83px] relative w-[6.929px]\">\n <div className=\"absolute inset-[-15.97%_-18.04%_-15.96%_-18.05%]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 10 11\">\n <path d={svgNetwork.p137e7700} id=\"Vector 15467\" stroke=\"url(#paint0_linear_80_22547)\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"2.5\" />\n <defs>\n <linearGradient gradientUnits=\"userSpaceOnUse\" id=\"paint0_linear_80_22547\" x1=\"4.71478\" x2=\"4.71478\" y1=\"1.25034\" y2=\"9.08062\">\n <stop stopColor=\"#111E42\" style={{ stopColor: \"color(display-p3 0.0667 0.1176 0.2588)\", stopOpacity: \"1\" }} />\n <stop offset=\"1\" stopColor=\"#808CB6\" style={{ stopColor: \"color(display-p3 0.5020 0.5490 0.7137)\", stopOpacity: \"1\" }} />\n </linearGradient>\n </defs>\n </svg>\n </div>\n </div>\n </div>\n </div>\n <div className=\"absolute flex h-[calc(1px*((var(--transform-inner-width)*0.26151159405708313)+(var(--transform-inner-height)*0.9652003049850464)))] items-center justify-center left-[calc(40%+23.29px)] top-[calc(40%+8.44px)] w-[calc(1px*((var(--transform-inner-height)*0.26151159405708313)+(var(--transform-inner-width)*0.9652003049850464)))]\" style={{ \"--transform-inner-width\": \"6.921875\", \"--transform-inner-height\": \"7.828125\" } as React.CSSProperties}>\n <div className=\"flex-none rotate-[164.84deg] scale-y-[-100%]\">\n <div className=\"h-[7.83px] relative w-[6.929px]\">\n <div className=\"absolute inset-[-15.97%_-18.04%_-15.96%_-18.05%]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 10 11\">\n <path d={svgNetwork.p137e7700} id=\"Vector 15468\" stroke=\"url(#paint0_linear_80_22527)\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"2.5\" />\n <defs>\n <linearGradient gradientUnits=\"userSpaceOnUse\" id=\"paint0_linear_80_22527\" x1=\"4.71478\" x2=\"4.71478\" y1=\"1.25034\" y2=\"9.08062\">\n <stop stopColor=\"#111E42\" style={{ stopColor: \"color(display-p3 0.0667 0.1176 0.2588)\", stopOpacity: \"1\" }} />\n <stop offset=\"1\" stopColor=\"#808CB6\" style={{ stopColor: \"color(display-p3 0.5020 0.5490 0.7137)\", stopOpacity: \"1\" }} />\n </linearGradient>\n </defs>\n </svg>\n </div>\n </div>\n </div>\n </div>\n <div className=\"absolute h-[37.73px] left-[calc(60%+17.8px)] top-[calc(40%+8.99px)] w-[23.303px]\">\n <div className=\"absolute inset-[-3.45%_-5.58%]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 26 41\">\n <path d={svgNetwork.p28dc7e00} id=\"Vector 15454\" stroke=\"url(#paint0_linear_80_22545)\" strokeLinecap=\"round\" strokeWidth=\"2.60204\" />\n <defs>\n <linearGradient gradientUnits=\"userSpaceOnUse\" id=\"paint0_linear_80_22545\" x1=\"1.30114\" x2=\"24.6044\" y1=\"28.8709\" y2=\"39.0307\">\n <stop stopColor=\"#5E7A8E\" style={{ stopColor: \"color(display-p3 0.3696 0.4765 0.5582)\", stopOpacity: \"1\" }} />\n <stop offset=\"1\" stopColor=\"#5E7A8E\" stopOpacity=\"0\" style={{ stopColor: \"none\", stopOpacity: \"0\" }} />\n </linearGradient>\n </defs>\n </svg>\n </div>\n </div>\n <div className=\"absolute flex h-[24.286px] items-center justify-center left-[calc(20%-4.67px)] top-[calc(40%+22.44px)] w-[24.38px]\">\n <div className=\"flex-none rotate-[180deg] scale-y-[-100%]\">\n <div className=\"h-[24.286px] relative w-[24.38px]\">\n <div className=\"absolute inset-[-5.36%_-5.34%]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 27 27\">\n <path d={svgNetwork.p91e2fc0} id=\"Vector 15455\" stroke=\"url(#paint0_linear_80_22543)\" strokeLinecap=\"round\" strokeWidth=\"2.60204\" />\n <defs>\n <linearGradient gradientUnits=\"userSpaceOnUse\" id=\"paint0_linear_80_22543\" x1=\"3.12903\" x2=\"21.0963\" y1=\"19.846\" y2=\"32.236\">\n <stop stopColor=\"#5E7A8E\" style={{ stopColor: \"color(display-p3 0.3696 0.4765 0.5582)\", stopOpacity: \"1\" }} />\n <stop offset=\"1\" stopColor=\"#5E7A8E\" stopOpacity=\"0\" style={{ stopColor: \"none\", stopOpacity: \"0\" }} />\n </linearGradient>\n </defs>\n </svg>\n </div>\n </div>\n </div>\n </div>\n <div className=\"absolute h-[12.449px] left-[calc(20%-13px)] opacity-[0.45] top-[calc(60%+12.1px)] w-[122px]\">\n <div className=\"absolute inset-0 overflow-hidden pointer-events-none\">\n <img alt=\"\" className=\"absolute h-[980%] left-0 max-w-none top-[-705%] w-full\" src={imgNetwork2} />\n </div>\n </div>\n <div className=\"absolute flex h-[calc(1px*((var(--transform-inner-width)*0.16029761731624603)+(var(--transform-inner-height)*0.9870687127113342)))] items-center justify-center left-[calc(20%-1.31px)] top-[7.26px] w-[calc(1px*((var(--transform-inner-height)*0.16029761731624603)+(var(--transform-inner-width)*0.9870687127113342)))]\" style={{ \"--transform-inner-width\": \"54.28125\", \"--transform-inner-height\": \"50.828125\" } as React.CSSProperties}>\n <div className=\"flex-none rotate-[189.224deg] scale-y-[-100%]\">\n <Group />\n </div>\n </div>\n <div className=\"absolute h-[9.013px] left-[calc(20%+10.94px)] top-[calc(40%+3.94px)] w-[5.167px]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 6 10\">\n <path d={svgNetwork.p24da3e80} fill=\"var(--fill-0, #00CCFF)\" id=\"Vector 15456\" style={{ fill: \"color(display-p3 0.0000 0.8000 1.0000)\", fillOpacity: \"1\" }} />\n </svg>\n </div>\n <div className=\"absolute flex h-[calc(1px*((var(--transform-inner-width)*0.6759710907936096)+(var(--transform-inner-height)*0.7369280457496643)))] items-center justify-center left-[calc(20%+0.29px)] top-[calc(40%+6.69px)] w-[calc(1px*((var(--transform-inner-height)*0.6759710907936096)+(var(--transform-inner-width)*0.7369280457496643)))]\" style={{ \"--transform-inner-width\": \"5.21875\", \"--transform-inner-height\": \"10.484375\" } as React.CSSProperties}>\n <div className=\"flex-none rotate-[317.47deg]\">\n <div className=\"h-[10.49px] relative w-[5.22px]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 6 11\">\n <path d={svgNetwork.p32471600} fill=\"var(--fill-0, #00CCFF)\" id=\"Vector 15457\" style={{ fill: \"color(display-p3 0.0000 0.8000 1.0000)\", fillOpacity: \"1\" }} />\n </svg>\n </div>\n </div>\n </div>\n <div className=\"absolute flex h-[calc(1px*((var(--transform-inner-width)*0.08017818629741669)+(var(--transform-inner-height)*0.9967805743217468)))] items-center justify-center left-[calc(60%+14.91px)] top-[calc(40%-1.95px)] w-[calc(1px*((var(--transform-inner-height)*0.08017818629741669)+(var(--transform-inner-width)*0.9967805743217468)))]\" style={{ \"--transform-inner-width\": \"1.015625\", \"--transform-inner-height\": \"3.796875\" } as React.CSSProperties}>\n <div className=\"flex-none rotate-[355.401deg]\">\n <div className=\"bg-[#b1b1b1] h-[3.812px] rounded-[5px] w-[1.029px]\" />\n </div>\n </div>\n <div className=\"absolute flex h-[calc(1px*((var(--transform-inner-width)*0.08017818629741669)+(var(--transform-inner-height)*0.9967805743217468)))] items-center justify-center left-[calc(60%+18.47px)] top-[calc(40%-2.24px)] w-[calc(1px*((var(--transform-inner-height)*0.08017818629741669)+(var(--transform-inner-width)*0.9967805743217468)))]\" style={{ \"--transform-inner-width\": \"1.015625\", \"--transform-inner-height\": \"3.796875\" } as React.CSSProperties}>\n <div className=\"flex-none rotate-[355.401deg]\">\n <div className=\"bg-[#b1b1b1] h-[3.812px] rounded-[5px] w-[1.029px]\" />\n </div>\n </div>\n <div className=\"absolute flex h-[calc(1px*((var(--transform-inner-width)*0.08017818629741669)+(var(--transform-inner-height)*0.9967805743217468)))] items-center justify-center left-[calc(60%+12.83px)] top-[calc(40%+0.36px)] w-[calc(1px*((var(--transform-inner-height)*0.08017818629741669)+(var(--transform-inner-width)*0.9967805743217468)))]\" style={{ \"--transform-inner-width\": \"9.15625\", \"--transform-inner-height\": \"8.078125\" } as React.CSSProperties}>\n <div className=\"flex-none rotate-[355.401deg]\">\n <div className=\"bg-[#d7d7d7] h-[8.082px] rounded-bl-[5px] rounded-br-[5px] rounded-tl-[1px] rounded-tr-[1px] w-[9.17px]\" />\n </div>\n </div>\n <div className=\"absolute flex h-[calc(1px*((var(--transform-inner-width)*0.4104115962982178)+(var(--transform-inner-height)*0.9119004607200623)))] items-center justify-center left-[calc(20%+9.03px)] top-[calc(40%+14.41px)] w-[calc(1px*((var(--transform-inner-height)*0.4104115962982178)+(var(--transform-inner-width)*0.9119004607200623)))]\" style={{ \"--transform-inner-width\": \"9.15625\", \"--transform-inner-height\": \"5.640625\" } as React.CSSProperties}>\n <div className=\"flex-none rotate-[335.769deg]\">\n <div className=\"bg-[#d7d7d7] h-[5.651px] rounded-bl-[5px] rounded-br-[5px] rounded-tl-[1px] rounded-tr-[1px] w-[9.17px]\" />\n </div>\n </div>\n <div className=\"absolute flex h-[calc(1px*((var(--transform-inner-width)*0.08017818629741669)+(var(--transform-inner-height)*0.9967805743217468)))] items-center justify-center left-[calc(60%+15.23px)] top-[calc(40%+7.54px)] w-[calc(1px*((var(--transform-inner-height)*0.08017818629741669)+(var(--transform-inner-width)*0.9967805743217468)))]\" style={{ \"--transform-inner-width\": \"5.328125\", \"--transform-inner-height\": \"2\" } as React.CSSProperties}>\n <div className=\"flex-none rotate-[355.401deg]\">\n <div className=\"bg-[#c3c3c3] h-[2px] rounded-[5px] w-[5.331px]\" />\n </div>\n </div>\n <div className=\"absolute flex h-[calc(1px*((var(--transform-inner-width)*0.4104115962982178)+(var(--transform-inner-height)*0.9119004607200623)))] items-center justify-center left-[calc(20%+12.6px)] top-[calc(40%+19.44px)] w-[calc(1px*((var(--transform-inner-height)*0.4104115962982178)+(var(--transform-inner-width)*0.9119004607200623)))]\" style={{ \"--transform-inner-width\": \"5.328125\", \"--transform-inner-height\": \"2\" } as React.CSSProperties}>\n <div className=\"flex-none rotate-[335.769deg]\">\n <div className=\"bg-[#c3c3c3] h-[2px] rounded-[5px] w-[5.331px]\" />\n </div>\n </div>\n </div>\n );\n}\n\nfunction IllustrationGeneric() {\n const Group = () => (\n <div className=\"absolute h-[20.755px] left-[63.64px] top-[4.55px] w-[33.637px]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 34 21\">\n <g id=\"Group 2147224756\">\n <path d={svgGeneric.peb6ca00} fill=\"var(--fill-0, #CCCCCC)\" id=\"Subtract\" opacity=\"0.5\" style={{ fill: \"color(display-p3 0.8013 0.8013 0.8013)\", fillOpacity: \"1\" }} />\n </g>\n </svg>\n </div>\n );\n\n const Group1 = () => (\n <div className=\"absolute contents left-[-10px] top-[-4.55px]\">\n <div className=\"absolute h-[20.909px] left-[-3.64px] top-[67.27px] w-[87.273px]\">\n <div className=\"absolute inset-[-17.39%_-4.17%]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 95 29\">\n <g filter=\"url(#filter0_f_80_22721)\" id=\"Vector 15443\">\n <path d={svgGeneric.p3435b100} fill=\"url(#paint0_linear_80_22721)\" />\n </g>\n <defs>\n <filter colorInterpolationFilters=\"sRGB\" filterUnits=\"userSpaceOnUse\" height=\"28.1818\" id=\"filter0_f_80_22721\" width=\"94.5455\" x=\"0\" y=\"0\">\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feBlend in=\"SourceGraphic\" in2=\"BackgroundImageFix\" mode=\"normal\" result=\"shape\" />\n <feGaussianBlur result=\"effect1_foregroundBlur_80_22721\" stdDeviation=\"1.81818\" />\n </filter>\n <linearGradient gradientUnits=\"userSpaceOnUse\" id=\"paint0_linear_80_22721\" x1=\"4.52238\" x2=\"54.1726\" y1=\"4.52611\" y2=\"19.0938\">\n <stop stopColor=\"#C3C3C3\" stopOpacity=\"0\" style={{ stopColor: \"none\", stopOpacity: \"0\" }} />\n <stop offset=\"0.426356\" stopColor=\"#8A8A8A\" stopOpacity=\"0.542102\" style={{ stopColor: \"color(display-p3 0.5411 0.5411 0.5411)\", stopOpacity: \"0.542102\" }} />\n <stop offset=\"1\" stopColor=\"#CCCCCC\" style={{ stopColor: \"color(display-p3 0.8014 0.8014 0.8014)\", stopOpacity: \"1\" }} />\n </linearGradient>\n </defs>\n </svg>\n </div>\n </div>\n <div className=\"absolute h-[43.182px] left-[11.82px] top-[44.55px] w-[74.091px]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 75 44\">\n <path d={svgGeneric.p3921f100} fill=\"var(--fill-0, #BBBBBB)\" id=\"Vector 15450\" style={{ fill: \"color(display-p3 0.7333 0.7333 0.7333)\", fillOpacity: \"1\" }} />\n </svg>\n </div>\n <div className=\"absolute h-[100.227px] left-[-10px] top-[-4.55px] w-[114.545px]\">\n <img alt=\"\" className=\"absolute inset-0 max-w-none object-50%-50% object-cover pointer-events-none size-full\" src={imgGeneric} />\n </div>\n <div className=\"absolute h-[38.179px] left-[44.55px] top-[49.55px] w-[41.364px]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 42 39\">\n <path d={svgGeneric.p1b9b8400} fill=\"var(--fill-0, #EAEAEA)\" id=\"Vector 15444\" style={{ fill: \"color(display-p3 0.9188 0.9188 0.9188)\", fillOpacity: \"1\" }} />\n </svg>\n </div>\n <Group />\n <div className=\"absolute h-[36.364px] left-[11.82px] top-[51.36px] w-[32.727px]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 33 37\">\n <path d={svgGeneric.p36984100} fill=\"var(--fill-0, #D9D9D9)\" id=\"Vector 15445\" style={{ fill: \"color(display-p3 0.8510 0.8510 0.8510)\", fillOpacity: \"1\" }} />\n </svg>\n </div>\n <div className=\"absolute h-[30px] left-[44.55px] top-[49.55px] w-[41.364px]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 42 30\">\n <path d={svgGeneric.p387fd0f1} fill=\"var(--fill-0, #D5D5D5)\" id=\"Vector 15448\" style={{ fill: \"color(display-p3 0.8341 0.8341 0.8341)\", fillOpacity: \"1\" }} />\n </svg>\n </div>\n <div className=\"absolute h-[26.363px] left-[44.55px] top-[49.55px] w-[48.182px]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 49 27\">\n <path d={svgGeneric.p2b0e2af0} fill=\"var(--fill-0, #EAEAEA)\" id=\"Vector 15446\" style={{ fill: \"color(display-p3 0.9188 0.9188 0.9188)\", fillOpacity: \"1\" }} />\n </svg>\n </div>\n <div className=\"absolute h-[25.909px] left-[11.82px] top-[51.36px] w-[32.727px]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 33 26\">\n <path d={svgGeneric.pe91a400} fill=\"var(--fill-0, #BFBFBF)\" id=\"Vector 15447\" style={{ fill: \"color(display-p3 0.7490 0.7490 0.7490)\", fillOpacity: \"1\" }} />\n </svg>\n </div>\n <div className=\"absolute h-[24.091px] left-[4.55px] top-[51.36px] w-[40px]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 40 25\">\n <path d={svgGeneric.p3182d400} fill=\"var(--fill-0, #D9D9D9)\" id=\"Vector 15449\" style={{ fill: \"color(display-p3 0.8510 0.8510 0.8510)\", fillOpacity: \"1\" }} />\n </svg>\n </div>\n </div>\n );\n\n const Frame2 = () => (\n <div className=\"absolute left-1/2 size-[100px] top-1/2 translate-x-[-50%] translate-y-[-50%]\">\n <Group1 />\n </div>\n );\n\n return (\n <div className=\"mb-[-20px] overflow-clip relative shrink-0 size-[160px]\">\n <Frame2 />\n </div>\n );\n}\n\nfunction IllustrationNoPlan() {\n return (\n <div className=\"mb-[-20px] overflow-clip relative shrink-0 size-[160px]\">\n <div className=\"absolute h-[79.673px] left-[calc(20%-13px)] top-[calc(20%-8.55px)] w-[122px]\">\n <div className=\"absolute inset-0 overflow-hidden pointer-events-none\">\n <img alt=\"\" className=\"absolute h-[153.13%] left-0 max-w-none top-[-10.16%] w-full\" src={imgNoPlan} />\n </div>\n </div>\n <div className=\"absolute h-[15.109px] left-[calc(20%+14.88px)] top-[calc(20%-0.44px)] w-[14.327px]\">\n <div className=\"absolute inset-[-6.62%_-6.98%_-5.78%_-5.85%]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 17 17\">\n <path d={svgNoPlan.pf17a1b0} id=\"Vector 15080\" stroke=\"var(--stroke-0, #6B6B6B)\" strokeWidth=\"2\" style={{ stroke: \"color(display-p3 0.4181 0.4181 0.4181)\", strokeOpacity: \"1\" }} />\n </svg>\n </div>\n </div>\n <div className=\"absolute h-[12.449px] left-[calc(20%-13px)] opacity-[0.45] top-[calc(60%+12.1px)] w-[122px]\">\n <div className=\"absolute inset-0 overflow-hidden pointer-events-none\">\n <img alt=\"\" className=\"absolute h-[980%] left-0 max-w-none top-[-705%] w-full\" src={imgNoPlan} />\n </div>\n </div>\n </div>\n );\n}\n\nfunction IllustrationNoComment() {\n return (\n <div className=\"mb-[-20px] overflow-clip relative shrink-0 size-[160px]\">\n <div className=\"absolute h-[101.642px] left-[calc(20%-9.79px)] top-[calc(20%+9.68px)] w-[116.162px]\">\n <img alt=\"\" className=\"absolute inset-0 max-w-none object-50%-50% object-cover pointer-events-none size-full\" src={imgNoComment} />\n </div>\n <div className=\"absolute h-[11.489px] left-[calc(40%-1.69px)] top-[calc(60%-5.12px)] w-[11.1px]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 12 12\">\n <path d={svgNoComment.p2dd0a400} fill=\"url(#paint0_linear_80_22873)\" id=\"Rectangle 1329138157\" />\n <defs>\n <linearGradient gradientUnits=\"userSpaceOnUse\" id=\"paint0_linear_80_22873\" x1=\"5.30908\" x2=\"5.30908\" y1=\"-0.124756\" y2=\"11.489\">\n <stop stopColor=\"#95E4FF\" style={{ stopColor: \"color(display-p3 0.5829 0.8957 1.0000)\", stopOpacity: \"1\" }} />\n <stop offset=\"1\" stopColor=\"#DEF7FF\" style={{ stopColor: \"color(display-p3 0.8691 0.9673 1.0000)\", stopOpacity: \"1\" }} />\n </linearGradient>\n </defs>\n </svg>\n </div>\n <div className=\"absolute h-[11.531px] left-[calc(40%+23.97px)] top-[calc(60%-5.16px)] w-[11.059px]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 12 12\">\n <path d={svgNoComment.p1f020300} fill=\"url(#paint0_linear_80_22861)\" id=\"Rectangle 1329138158\" />\n <defs>\n <linearGradient gradientUnits=\"userSpaceOnUse\" id=\"paint0_linear_80_22861\" x1=\"5.34351\" x2=\"5.34351\" y1=\"-0.0825195\" y2=\"11.5313\">\n <stop stopColor=\"#95E4FF\" style={{ stopColor: \"color(display-p3 0.5829 0.8957 1.0000)\", stopOpacity: \"1\" }} />\n <stop offset=\"1\" stopColor=\"#DEF7FF\" style={{ stopColor: \"color(display-p3 0.8691 0.9673 1.0000)\", stopOpacity: \"1\" }} />\n </linearGradient>\n </defs>\n </svg>\n </div>\n <div className=\"absolute flex h-[calc(1px*((var(--transform-inner-width)*0.12505891919136047)+(var(--transform-inner-height)*0.992149293422699)))] items-center justify-center left-[calc(40%+13.18px)] top-[calc(20%-1.42px)] w-[calc(1px*((var(--transform-inner-height)*0.12505891919136047)+(var(--transform-inner-width)*0.992149293422699)))]\" style={{ \"--transform-inner-width\": \"32.40625\", \"--transform-inner-height\": \"21.921875\" } as React.CSSProperties}>\n <div className=\"flex-none rotate-[352.816deg]\">\n <div className=\"h-[21.93px] relative w-[32.419px]\">\n <div className=\"absolute inset-[-2.04%_-1.86%_-3.32%_-0.56%]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 34 24\">\n <path d={svgNoComment.p1f0f3180} id=\"Vector 15464\" stroke=\"var(--stroke-0, #6B6B6B)\" strokeWidth=\"1.5\" style={{ stroke: \"color(display-p3 0.4181 0.4181 0.4181)\", strokeOpacity: \"1\" }} />\n </svg>\n </div>\n </div>\n </div>\n </div>\n <div className=\"absolute flex h-[calc(1px*((var(--transform-inner-width)*0.12505891919136047)+(var(--transform-inner-height)*0.992149293422699)))] items-center justify-center left-[calc(60%+1.47px)] top-[calc(20%+0.53px)] w-[calc(1px*((var(--transform-inner-height)*0.12505891919136047)+(var(--transform-inner-width)*0.992149293422699)))]\" style={{ \"--transform-inner-width\": \"15.015625\", \"--transform-inner-height\": \"11.53125\" } as React.CSSProperties}>\n <div className=\"flex-none rotate-[352.816deg]\">\n <div className=\"h-[11.533px] relative w-[15.031px]\">\n <div className=\"absolute inset-[-3.21%_-4.34%_-6.26%_-1.35%]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 16 13\">\n <path d={svgNoComment.p200381c0} id=\"Vector 15465\" stroke=\"var(--stroke-0, #6B6B6B)\" strokeWidth=\"1.5\" style={{ stroke: \"color(display-p3 0.4181 0.4181 0.4181)\", strokeOpacity: \"1\" }} />\n </svg>\n </div>\n </div>\n </div>\n </div>\n <div className=\"absolute flex h-[calc(1px*((var(--transform-inner-width)*0.5137559771537781)+(var(--transform-inner-height)*0.8579363226890564)))] items-center justify-center left-[calc(20%+11.11px)] top-[calc(20%+19.14px)] w-[calc(1px*((var(--transform-inner-height)*0.5137559771537781)+(var(--transform-inner-width)*0.8579363226890564)))]\" style={{ \"--transform-inner-width\": \"20.296875\", \"--transform-inner-height\": \"15.015625\" } as React.CSSProperties}>\n <div className=\"flex-none rotate-[30.914deg]\">\n <div className=\"h-[15.031px] relative w-[20.303px]\">\n <div className=\"absolute inset-[-2.53%_-3.18%_-4.81%_-0.97%]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 22 17\">\n <path d={svgNoComment.p198508c0} id=\"Vector 15466\" stroke=\"var(--stroke-0, #6B6B6B)\" strokeWidth=\"1.5\" style={{ stroke: \"color(display-p3 0.4181 0.4181 0.4181)\", strokeOpacity: \"1\" }} />\n </svg>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n}\n\nfunction IllustrationLocation() {\n const MaskGroup = () => (\n <div className=\"absolute contents left-[4.23px] top-[calc(60%+2.52px)]\" data-name=\"Mask group\">\n <div className=\"absolute h-[168.216px] left-[calc(50%-3.87px)] mask-alpha mask-intersect mask-no-clip mask-no-repeat mask-position-[8.097px_95.504px] mask-size-[140.421px_33.429px] top-[3.02px] translate-x-[-50%] w-[160px]\" data-name=\"2 5\" style={{ maskImage: `url('${svgMaskLocation}')` }}>\n <img alt=\"\" className=\"absolute inset-0 max-w-none object-50%-50% object-cover pointer-events-none size-full\" src={imgLocationMap} />\n </div>\n </div>\n );\n\n return (\n <div className=\"mb-[-20px] overflow-clip relative shrink-0 size-[160px]\">\n <div className=\"absolute flex h-[calc(1px*((var(--transform-inner-width)*0.05882693827152252)+(var(--transform-inner-height)*0.9982682466506958)))] items-center justify-center left-[calc(40%+8.62px)] top-[calc(40%-0.98px)] w-[calc(1px*((var(--transform-inner-height)*0.05882693827152252)+(var(--transform-inner-width)*0.9982682466506958)))]\" style={{ \"--transform-inner-width\": \"52.90625\", \"--transform-inner-height\": \"52.90625\" } as React.CSSProperties}>\n <div className=\"flex-none rotate-[3.372deg]\">\n <div className=\"relative size-[52.909px]\" data-name=\"73 1 1\">\n <img alt=\"\" className=\"absolute inset-0 max-w-none object-50%-50% object-cover pointer-events-none size-full\" src={imgLocationAvatar} />\n </div>\n </div>\n </div>\n <div className=\"absolute h-[3.887px] left-[calc(40%+16.58px)] top-[calc(60%+8.79px)] w-[45.943px]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 46 4\">\n <path d={svgLocation.p1ef03a80} fill=\"url(#paint0_linear_80_22939)\" id=\"Vector 15475\" />\n <defs>\n <linearGradient gradientUnits=\"userSpaceOnUse\" id=\"paint0_linear_80_22939\" x1=\"22.9713\" x2=\"22.9713\" y1=\"0.000161142\" y2=\"3.88717\">\n <stop stopColor=\"#7C7C7C\" style={{ stopColor: \"color(display-p3 0.4874 0.4874 0.4874)\", stopOpacity: \"1\" }} />\n <stop offset=\"1\" stopColor=\"#A5AEAE\" stopOpacity=\"0\" style={{ stopColor: \"none\", stopOpacity: \"0\" }} />\n </linearGradient>\n </defs>\n </svg>\n </div>\n <MaskGroup />\n <div className=\"absolute h-[53.519px] left-[calc(20%+11.24px)] top-[calc(20%+19.7px)] w-[47.009px]\" data-name=\"Subtract\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 47 54\">\n <g filter=\"url(#filter0_i_80_22931)\" id=\"Subtract\">\n <path d={svgLocation.pc8c3800} fill=\"url(#paint0_linear_80_22931)\" />\n </g>\n <defs>\n <filter colorInterpolationFilters=\"sRGB\" filterUnits=\"userSpaceOnUse\" height=\"55.5193\" id=\"filter0_i_80_22931\" width=\"48.0078\" x=\"-1\" y=\"-2\">\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feBlend in=\"SourceGraphic\" in2=\"BackgroundImageFix\" mode=\"normal\" result=\"shape\" />\n <feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" />\n <feOffset dx=\"-1\" dy=\"-2\" />\n <feGaussianBlur stdDeviation=\"1.9\" />\n <feComposite in2=\"hardAlpha\" k2=\"-1\" k3=\"1\" operator=\"arithmetic\" />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0\" />\n <feBlend in2=\"shape\" mode=\"normal\" result=\"effect1_innerShadow_80_22931\" />\n </filter>\n <linearGradient gradientUnits=\"userSpaceOnUse\" id=\"paint0_linear_80_22931\" x1=\"20.1764\" x2=\"28.0058\" y1=\"0.253481\" y2=\"54.0753\">\n <stop stopColor=\"#EAEAEA\" style={{ stopColor: \"color(display-p3 0.9176 0.9176 0.9176)\", stopOpacity: \"1\" }} />\n <stop offset=\"1\" stopColor=\"#CACACA\" style={{ stopColor: \"color(display-p3 0.7935 0.7935 0.7935)\", stopOpacity: \"1\" }} />\n </linearGradient>\n </defs>\n </svg>\n </div>\n <div className=\"absolute flex h-[calc(1px*((var(--transform-inner-width)*0.2092834711074829)+(var(--transform-inner-height)*0.9778549671173096)))] items-center justify-center left-[calc(60%+12.09px)] top-[calc(40%-9.34px)] w-[calc(1px*((var(--transform-inner-height)*0.2092834711074829)+(var(--transform-inner-width)*0.9778549671173096)))]\" style={{ \"--transform-inner-width\": \"18.125\", \"--transform-inner-height\": \"19.765625\" } as React.CSSProperties}>\n <div className=\"flex-none rotate-[192.08deg] scale-y-[-100%]\">\n <div className=\"h-[19.78px] relative w-[18.137px]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 19 20\">\n <path d={svgLocation.p1f0a8b80} fill=\"var(--fill-0, #00CCFF)\" id=\"Vector 15453\" style={{ fill: \"color(display-p3 0.0000 0.8000 1.0000)\", fillOpacity: \"1\" }} />\n </svg>\n </div>\n </div>\n </div>\n <div className=\"absolute h-[9.298px] left-[calc(60%+19.75px)] top-[calc(40%-3.69px)] w-[5.786px]\" data-name=\"?\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 6 10\">\n <path d={svgLocation.p191f4380} fill=\"var(--fill-0, white)\" id=\"ï¼\" style={{ fill: \"white\", fillOpacity: \"1\" }} />\n </svg>\n </div>\n </div>\n );\n}\n\n// --- Main Component ---\n\nexport type EmptyStateVariant = 'not-logged-in' | 'network-error' | 'generic' | 'no-plan' | 'no-comment' | 'location-related';\n\nexport interface EmptyStateProps {\n variant?: EmptyStateVariant;\n title?: string;\n description?: string;\n className?: string;\n}\n\nexport function EmptyState({\n variant = 'generic',\n title,\n description,\n className\n}: EmptyStateProps) {\n \n let defaultTitle = \"通用空状态\";\n let defaultDesc = \"你可以去看周边热门\";\n let Illustration = IllustrationGeneric;\n\n switch (variant) {\n case 'not-logged-in':\n defaultTitle = \"未登录\";\n defaultDesc = \"你可以去看周边热门\";\n Illustration = IllustrationNotLoggedIn;\n break;\n case 'network-error':\n defaultTitle = \"网络好像有点问题\";\n defaultDesc = \"我是副标题\";\n Illustration = IllustrationNetworkError;\n break;\n case 'no-plan':\n defaultTitle = \"暂无计划\";\n defaultDesc = \"你可以去看周边热门\";\n Illustration = IllustrationNoPlan;\n break;\n case 'no-comment':\n defaultTitle = \"暂无评论\";\n defaultDesc = \"我是副标题\";\n Illustration = IllustrationNoComment;\n break;\n case 'location-related':\n defaultTitle = \"位置相关\";\n defaultDesc = \"你可以去看周边热门\";\n Illustration = IllustrationLocation;\n break;\n case 'generic':\n default:\n defaultTitle = \"通用空状态\";\n defaultDesc = \"你可以去看周边热门\";\n Illustration = IllustrationGeneric;\n break;\n }\n\n const displayTitle = title ?? defaultTitle;\n const displayDesc = description ?? defaultDesc;\n\n return (\n <div className={cn(\"content-stretch flex flex-col items-center relative w-full\", className)}>\n <div className=\"box-border content-stretch flex flex-col items-center pb-[20px] pt-0 px-0 relative shrink-0 w-full\">\n <Illustration />\n \n {/* Message and Description */}\n <div className=\"box-border content-stretch flex flex-col gap-[4px] items-start leading-[0] mb-[-20px] not-italic relative shrink-0 text-center w-full\">\n <div className=\"flex flex-col font-['PingFang_SC:Medium',sans-serif] justify-center relative shrink-0 text-[16px] text-black w-full\">\n <p className=\"leading-[24px]\">{displayTitle}</p>\n </div>\n <div className=\"flex flex-col font-['PingFang_SC:Regular',sans-serif] justify-center relative shrink-0 text-[14px] text-[rgba(60,60,67,0.6)] w-full\">\n <p className=\"leading-[20px]\">{displayDesc}</p>\n </div>\n </div>\n </div>\n </div>\n );\n}\n","import React, { useState } from \"react\";\nimport { motion, AnimatePresence } from \"motion/react\";\nimport { cn } from \"./utils\";\n\n// --- SVG Assets & Icons ---\n\nconst svgPaths = {\n compass: \"M11.9999 2C17.5227 2 21.9999 6.47715 21.9999 12C21.9999 17.5228 17.5227 22 11.9999 22C6.47703 22 1.99988 17.5228 1.99988 12C1.99988 6.47715 6.47703 2 11.9999 2ZM16.5067 7.01465C16.3898 6.98914 16.2674 6.9976 16.1552 7.03906L16.1493 7.04102V7.04199L16.1464 7.04297C16.144 7.04388 16.1399 7.04517 16.1356 7.04688C16.1262 7.05063 16.1115 7.05633 16.0936 7.06348C16.057 7.0781 16.0028 7.10031 15.9344 7.12793C15.7969 7.18352 15.5982 7.26446 15.3583 7.36426C14.8781 7.564 14.2259 7.84171 13.5419 8.15234C12.8583 8.4628 12.1383 8.80775 11.5233 9.14258C10.9197 9.47126 10.3886 9.80516 10.1005 10.0977C9.80022 10.3922 9.46148 10.9289 9.12976 11.5371C8.79351 12.1537 8.44911 12.8729 8.1405 13.5547C7.83172 14.2369 7.55665 14.8855 7.35925 15.3633C7.26055 15.6022 7.18069 15.7997 7.12585 15.9365C7.09858 16.0046 7.07774 16.0584 7.06335 16.0947C7.0562 16.1128 7.05045 16.1273 7.04675 16.1367C7.04498 16.1412 7.04278 16.1451 7.04187 16.1475L7.04089 16.1494V16.1504L7.03992 16.1533C6.99764 16.2657 6.98849 16.3885 7.01355 16.5059C7.03871 16.6234 7.09686 16.7321 7.18152 16.8174C7.26658 16.9028 7.37523 16.962 7.49304 16.9873C7.6108 17.0125 7.73403 17.0028 7.84656 16.96L7.84949 16.959L7.85046 16.958L7.85339 16.957C7.85574 16.9561 7.85984 16.9548 7.86414 16.9531C7.87356 16.9494 7.88813 16.9437 7.90613 16.9365C7.94274 16.9219 7.99685 16.8997 8.06531 16.8721C8.20283 16.8165 8.40059 16.7355 8.6405 16.6357C9.12073 16.436 9.77263 16.1584 10.4569 15.8477C11.1407 15.5372 11.8612 15.1923 12.4764 14.8574C13.0826 14.5274 13.6158 14.1918 13.9032 13.8984L13.9022 13.8975C14.2015 13.6023 14.5396 13.0686 14.87 12.4629C15.2062 11.8465 15.5506 11.1279 15.8593 10.4463C16.1681 9.76404 16.443 9.11464 16.6405 8.63672C16.7392 8.39785 16.819 8.20033 16.8739 8.06348C16.9012 7.99543 16.923 7.9417 16.9374 7.90527C16.9445 7.88736 16.9503 7.87271 16.954 7.86328C16.9557 7.85903 16.957 7.85491 16.9579 7.85254L16.9589 7.85059V7.84961L16.7264 7.75781L16.9598 7.84961L16.9608 7.84473C17.0022 7.73234 17.0109 7.61015 16.9852 7.49316C16.9595 7.37611 16.9011 7.2683 16.8163 7.18359C16.7315 7.09895 16.6238 7.04026 16.5067 7.01465Z\",\n explore: \"M11.9994 4C14.0369 4 15.8955 4.76341 17.308 6.01758C19.9238 5.19935 21.8562 5.13402 22.3656 6.01562L22.4047 6.09082C22.8173 6.98841 21.7964 8.58774 19.8373 10.3916C19.9434 10.9112 19.9994 11.449 19.9994 12C19.9994 16.4183 16.4177 20 11.9994 20C9.96142 19.9999 8.10238 19.2363 6.68985 17.9814C4.07604 18.7985 2.1453 18.8656 1.63614 17.9844C1.12758 17.1032 2.1484 15.4636 4.16153 13.6094C4.05536 13.0895 3.99942 12.5512 3.99942 12C3.99942 7.58191 7.5814 4.0003 11.9994 4ZM19.1733 8.53516C17.7335 9.97992 15.4789 11.6877 12.7358 13.2715C9.98663 14.8586 7.37437 15.9593 5.40177 16.4824C5.77361 17.0335 6.21337 17.5352 6.70841 17.9766C8.58008 17.3897 10.8017 16.4196 13.1 15.1348L13.6352 14.8301C16.1241 13.393 18.2694 11.8332 19.8256 10.4023C19.6859 9.74635 19.4645 9.12037 19.1733 8.53516ZM4.79532 15.4971C4.29212 16.0051 3.92644 16.4456 3.67911 16.8037C4.11306 16.7686 4.67756 16.6731 5.36954 16.4912C5.37179 16.4906 5.37414 16.4889 5.37638 16.4883C5.16133 16.1715 4.96878 15.8382 4.8002 15.4912C4.79854 15.4929 4.797 15.4954 4.79532 15.4971ZM20.3217 7.19531C19.8879 7.23051 19.3234 7.32612 18.6322 7.50781C18.6284 7.50881 18.6243 7.50974 18.6205 7.51074C18.8362 7.82821 19.0297 8.16189 19.1986 8.50977C19.201 8.50736 19.2041 8.50532 19.2065 8.50293C19.7097 7.99491 20.0743 7.5535 20.3217 7.19531Z\",\n plan: \"M12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2ZM11.0078 6.18262C10.8974 6.18262 10.8076 6.27236 10.8076 6.38281V12.9824C10.8077 13.0928 10.8974 13.1826 11.0078 13.1826H17.6074C17.7178 13.1826 17.8075 13.0928 17.8076 12.9824V11.0488C17.8074 10.9386 17.7177 10.8496 17.6074 10.8496H13.3408C13.2304 10.8496 13.1406 10.7599 13.1406 10.6494V6.38281C13.1406 6.27251 13.0517 6.18286 12.9414 6.18262H11.0078Z\",\n // Simulated User icon path that matches the weight and style\n me: \"M12 11C14.2091 11 16 9.20914 16 7C16 4.79086 14.2091 3 12 3C9.79086 3 8 4.79086 8 7C8 9.20914 9.79086 11 12 11ZM12 21C15.866 21 19 19.2091 19 17C19 14.7909 15.866 13 12 13C8.13401 13 5 14.7909 5 17C5 19.2091 8.13401 21 12 21\"\n};\n\nfunction IconCompass({ className }: { className?: string }) {\n return (\n <svg className={className} viewBox=\"0 0 24 24\" fill=\"none\">\n <path d={svgPaths.compass} fill=\"url(#paint_compass)\" />\n <defs>\n <linearGradient id=\"paint_compass\" x1=\"10.037\" y1=\"15.1811\" x2=\"19.636\" y2=\"7.4102\" gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#1D1F2B\" />\n <stop offset=\"1\" stopColor=\"#626991\" />\n </linearGradient>\n </defs>\n </svg>\n )\n}\n\nfunction IconExplore({ className }: { className?: string }) {\n return (\n <svg className={className} viewBox=\"0 0 24 24\" fill=\"none\">\n <path d={svgPaths.explore} fill=\"url(#paint_explore)\" />\n <defs>\n <linearGradient id=\"paint_explore\" x1=\"9.94163\" y1=\"14.5449\" x2=\"17.7787\" y2=\"6.22223\" gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#1D1F2B\" />\n <stop offset=\"1\" stopColor=\"#626991\" />\n </linearGradient>\n </defs>\n </svg>\n )\n}\n\nfunction IconPlan({ className }: { className?: string }) {\n return (\n <svg className={className} viewBox=\"0 0 24 24\" fill=\"none\">\n <path d={svgPaths.plan} fill=\"url(#paint_plan)\" />\n <defs>\n <linearGradient id=\"paint_plan\" x1=\"4.77778\" y1=\"18.6667\" x2=\"19.2222\" y2=\"4.77778\" gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#1D1F2B\" />\n <stop offset=\"1\" stopColor=\"#626991\" />\n </linearGradient>\n </defs>\n </svg>\n )\n}\n\nfunction IconMe({ className }: { className?: string }) {\n return (\n <svg className={className} viewBox=\"0 0 24 24\" fill=\"none\">\n <path d={svgPaths.me} fill=\"url(#paint_me)\" />\n <defs>\n <linearGradient id=\"paint_me\" x1=\"5\" y1=\"21\" x2=\"19\" y2=\"3\" gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#1D1F2B\" />\n <stop offset=\"1\" stopColor=\"#626991\" />\n </linearGradient>\n </defs>\n </svg>\n )\n }\n\nexport type TabId = 'home' | 'explore' | 'plan' | 'me';\n\ninterface BottomNavigationBarProps {\n activeTab?: TabId;\n onTabChange?: (id: TabId) => void;\n className?: string;\n}\n\nexport function BottomNavigationBar({ \n activeTab = 'home', \n onTabChange,\n className \n}: BottomNavigationBarProps) {\n const tabs = [\n { id: 'home' as const, label: '首页', icon: IconCompass },\n { id: 'explore' as const, label: '探索', icon: IconExplore },\n { id: 'plan' as const, label: '计划', icon: IconPlan },\n { id: 'me' as const, label: '我的', icon: IconMe },\n ];\n\n return (\n <div \n className={cn(\n \"relative flex items-center justify-center p-[4px] gap-[4px]\",\n \"bg-card/40 backdrop-blur-xl saturate-150\",\n \"rounded-[68px]\",\n \"shadow-[0px_8px_24px_0px_rgba(0,0,0,0.08),0px_24px_80px_0px_rgba(104,106,113,0.2)]\",\n className\n )}\n style={{\n // Fallback for older browsers, though backdrop-blur is widely supported\n WebkitBackdropFilter: \"blur(20px) saturate(150%)\"\n }}\n >\n {tabs.map((tab) => {\n const isActive = activeTab === tab.id;\n const Icon = tab.icon;\n\n return (\n <button\n key={tab.id}\n onClick={() => onTabChange?.(tab.id)}\n className={cn(\n \"relative flex items-center justify-center rounded-[24px] cursor-pointer\",\n \"outline-none select-none touch-manipulation overflow-hidden\",\n // Base padding for unselected state\n isActive ? \"pl-[12px] pr-[14px] py-[10px]\" : \"px-[18px] py-[11px]\",\n // Press overlay\n \"active:after:absolute active:after:inset-0 active:after:bg-foreground/10 active:after:content-[''] active:after:rounded-[inherit]\"\n )}\n style={{\n WebkitTapHighlightColor: \"transparent\"\n }}\n >\n {/* Animated Background Pill */}\n {isActive && (\n <motion.div\n layoutId=\"active-pill\"\n className=\"absolute inset-0 bg-secondary/50 rounded-[24px]\"\n transition={{ \n type: \"spring\", \n bounce: 0.2, \n duration: 0.5 \n }}\n />\n )}\n\n {/* Content Container */}\n <motion.div \n className=\"relative z-10 flex items-center justify-center gap-[2px]\"\n layout // Animates layout changes (gap, position)\n transition={{ \n type: \"spring\", \n bounce: 0.2, \n duration: 0.5 \n }}\n >\n {/* Icon - Only visible when active */}\n <AnimatePresence mode=\"popLayout\">\n {isActive && (\n <motion.div\n initial={{ opacity: 0, scale: 0.5, width: 0 }}\n animate={{ opacity: 1, scale: 1, width: 'auto' }}\n exit={{ opacity: 0, scale: 0.5, width: 0 }}\n transition={{ \n type: \"spring\", \n bounce: 0.2, \n duration: 0.4 \n }}\n className=\"flex items-center justify-center overflow-hidden\"\n >\n <Icon className=\"size-[24px] text-primary\" />\n </motion.div>\n )}\n </AnimatePresence>\n\n {/* Label */}\n <motion.span\n layout // Animates text position\n className={cn(\n \"font-medium text-[16px] leading-[24px] whitespace-nowrap font-sans\",\n \"text-foreground\"\n )}\n >\n {tab.label}\n </motion.span>\n </motion.div>\n </button>\n );\n })}\n </div>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"./utils\";\n\n// --- SVG Paths from Figma Import ---\nconst SVG_PATHS = {\n back: \"M7.35667 10.0006L13.1483 15.7923L11.97 16.9706L5 10.0006L11.97 3.0306L13.1483 4.20893L7.35667 10.0006Z\",\n more: \"M3.75 8.75C3.0625 8.75 2.5 9.3125 2.5 10C2.5 10.6875 3.0625 11.25 3.75 11.25C4.4375 11.25 5 10.6875 5 10C5 9.3125 4.4375 8.75 3.75 8.75ZM16.25 8.75C15.5625 8.75 15 9.3125 15 10C15 10.6875 15.5625 11.25 16.25 11.25C16.9375 11.25 17.5 10.6875 17.5 10C17.5 9.3125 16.9375 8.75 16.25 8.75ZM10 8.75C9.3125 8.75 8.75 9.3125 8.75 10C8.75 10.6875 9.3125 11.25 10 11.25C10.6875 11.25 11.25 10.6875 11.25 10C11.25 9.3125 10.6875 8.75 10 8.75Z\",\n // Added from svg-v0lb8q62m9.ts for completeness\n bookmark: \"M13.2324 5.55013L18.7183 7.16715L15.2311 11.6992L15.3882 17.4162L10 15.4997L4.61182 17.4162L4.76888 11.6992L1.28174 7.16715L6.76758 5.55013L10 0.833333L13.2324 5.55013ZM7.8068 6.98161L4.08529 8.0778L6.45182 11.1532L6.3444 15.0301L10 13.7313L13.6548 15.0301L13.5482 11.1532L15.9139 8.0778L12.1932 6.98161L10 3.78092L7.8068 6.98161Z\",\n share: \"M9.16667 1.70833V3.385C7.48559 3.5989 5.94904 4.44489 4.86932 5.75101C3.7896 7.05714 3.24773 8.72539 3.35385 10.4167C3.45997 12.108 4.20611 13.6954 5.44062 14.8563C6.67513 16.0173 8.30537 16.6646 10 16.6667C11.6238 16.6666 13.1919 16.074 14.4098 15C15.6277 13.926 16.4118 12.4444 16.615 10.8333H18.2925C17.8742 15.0442 14.3208 18.3333 10 18.3333C5.3975 18.3333 1.66667 14.6025 1.66667 10C1.66667 5.67917 4.95583 2.12583 9.16667 1.70833V1.70833ZM16.6667 4.51167L10 11.1783L8.82167 10L15.4883 3.33333H11.6667V1.66667H18.3333V8.33333H16.6667V4.51167Z\",\n close: \"M10.0006 8.82227L15.7923 3.0306L16.9706 4.20893L11.1789 10.0006L16.9706 15.7923L15.7923 16.9706L10.0006 11.1789L4.20893 16.9706L3.0306 15.7923L8.82227 10.0006L3.0306 4.20893L4.20893 3.0306L10.0006 8.82227Z\",\n};\n\n// --- Icons ---\nfunction IconBack() {\n return (\n <svg className=\"block size-[20px] text-foreground\" fill=\"none\" viewBox=\"0 0 20 20\">\n <path d={SVG_PATHS.back} fill=\"currentColor\" />\n </svg>\n );\n}\n\nfunction IconMore() {\n return (\n <svg className=\"block size-[20px] text-foreground\" fill=\"none\" viewBox=\"0 0 20 20\">\n <path d={SVG_PATHS.more} fill=\"currentColor\" />\n </svg>\n );\n}\n\n// --- Button Component ---\n// \"带磨砂玻璃质感和IOS26玻璃的反光包边\" (Glass Mode)\n// \"所有按钮变为灰色\" (Gray Mode - for Card/Sheet)\n\ntype ButtonAppearance = 'glass' | 'gray';\n\ninterface RoundBtnProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n children: React.ReactNode;\n appearance?: ButtonAppearance;\n}\n\nfunction RoundBtn({ children, className, appearance = 'glass', ...props }: RoundBtnProps) {\n return (\n <button\n type=\"button\"\n className={cn(\n \"relative flex flex-col items-center justify-center shrink-0 size-[40px] rounded-[22px]\",\n \"bg-card/50\", // Common background base\n // Glass Appearance: White 54% + Shadow + Blur -> Converted to card/50 + blur\n appearance === 'glass' && \"bg-card/80 shadow-[0px_4px_16px_0px_rgba(0,0,0,0.12)] backdrop-blur-md border border-border/20\",\n // Gray Appearance: No Blur, No Shadow (Flat Gray) -> bg-muted\n appearance === 'gray' && \"bg-secondary backdrop-blur-none shadow-none\",\n \n // Active state\n \"active:after:absolute active:after:inset-0 active:after:bg-foreground/10 active:after:content-[''] active:after:rounded-[inherit]\",\n className\n )}\n {...props}\n >\n {children}\n </button>\n );\n}\n\n// --- Tab Component ---\ninterface TabItemProps {\n active?: boolean;\n label: string;\n onClick?: () => void;\n}\n\nfunction TabItem({ active, label, onClick }: TabItemProps) {\n return (\n <button\n type=\"button\"\n onClick={onClick}\n className={cn(\n \"box-border flex flex-col items-center relative cursor-pointer\",\n // Replaced min-w-[78px] and shrink-0 with flex-1 to distribute width evenly\n \"flex-1 min-w-0 px-2\", \n active ? \"pt-[8px] pb-0 gap-[4px]\" : \"py-[8px] gap-[4px]\"\n )}\n >\n <span\n className={cn(\n \"text-[18px] text-center whitespace-nowrap leading-[18px] transition-colors w-full truncate\",\n active\n ? \"text-foreground font-medium\"\n : \"text-muted-foreground font-normal\"\n )}\n >\n {label}\n </span>\n {active && (\n <div className=\"h-[4px] relative shrink-0 w-[16px]\">\n <div className=\"absolute bg-primary h-[3px] left-0 rounded-[10px] top-0 w-[16px]\" />\n </div>\n )}\n </button>\n );\n}\n\n// --- Main Component ---\n\nexport type ToolbarMode = 'left-title' | 'center-title' | 'tabs';\n\nexport interface TopToolbarProps {\n mode?: ToolbarMode;\n appearance?: ButtonAppearance; // New prop for visual style\n \n // Title Props\n title?: string;\n showTitle?: boolean; // Legacy support, mainly for left-title\n \n // Back Button\n showBack?: boolean;\n onBack?: () => void;\n \n // Right Actions\n rightActionCount?: number; // 0 to 3 (capped at 2 for center modes)\n onAction?: (index: number) => void;\n \n // Tab Props\n tabs?: string[];\n activeTabIndex?: number;\n onTabChange?: (index: number) => void;\n \n className?: string;\n}\n\nexport function TopToolbar({\n mode = 'left-title',\n appearance = 'glass',\n title = \"页面主标题\",\n showTitle = true,\n showBack = true,\n rightActionCount = 2,\n onBack,\n onAction,\n tabs = [\"标签\", \"标签\", \"标签\"],\n activeTabIndex = 0,\n onTabChange,\n className,\n}: TopToolbarProps) {\n // Constraint: Center modes can have at most 2 right actions\n // Left mode can have up to 3\n const maxActions = mode === 'left-title' ? 3 : 2;\n const safeActionCount = Math.min(Math.max(0, rightActionCount), maxActions);\n\n return (\n <div className={cn(\"relative w-full h-[48px] flex items-center px-[12px]\", className)}>\n {/* Left Section: Back Button */}\n <div className={cn(\"flex items-center gap-[12px] shrink-0 z-20\", mode === 'left-title' ? \"mr-4\" : \"\")}>\n {showBack && (\n <RoundBtn onClick={onBack} appearance={appearance}>\n <IconBack />\n </RoundBtn>\n )}\n </div>\n\n {/* Left Title Mode: Title sits here in the flow */}\n {mode === 'left-title' && (\n showTitle ? (\n <div className=\"flex-1 min-w-0 mr-[26px]\">\n <h1 \n className=\"truncate\"\n title={title}\n >\n {title}\n </h1>\n </div>\n ) : (\n <div className=\"flex-1\" />\n )\n )}\n\n {/* Center Title Mode: Absolute Centered */}\n {mode === 'center-title' && showTitle && (\n <div className=\"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 flex flex-col justify-center items-center z-10\">\n <h3 \n className=\"text-center whitespace-nowrap\"\n // Limit to 7 chars as requested\n title={title}\n >\n {title.length > 7 ? title.slice(0, 7) + \"...\" : title}\n </h3>\n </div>\n )}\n\n {/* Tabs Mode: Flex Flow Between Buttons */}\n {mode === 'tabs' && (\n <div className=\"flex-1 flex items-center justify-between h-[34px] px-2 min-w-0 z-10\">\n {tabs.map((tab, index) => (\n <TabItem \n key={index}\n label={tab}\n active={index === activeTabIndex}\n onClick={() => onTabChange?.(index)}\n />\n ))}\n </div>\n )}\n\n {/* Right Section: Action Buttons */}\n {/* For center modes, we need to ensure this stays on the right */}\n <div className={cn(\"flex items-center gap-[8px] shrink-0 z-20\", mode !== 'left-title' && mode !== 'tabs' ? \"ml-auto\" : \"\")}>\n {Array.from({ length: safeActionCount }).map((_, i) => (\n <RoundBtn key={i} onClick={() => onAction?.(i)} appearance={appearance}>\n <IconMore />\n </RoundBtn>\n ))}\n </div>\n </div>\n );\n}\n","import * as React from \"react\";\nimport { motion, AnimatePresence } from \"motion/react\";\nimport { cn } from \"./utils\";\nconst imgHeader = \"\";\n\n// --- SVGs ---\n\nconst svgPaths = {\n close: \"M10.0006 8.82227L15.7923 3.0306L16.9706 4.20893L11.1789 10.0006L16.9706 15.7923L15.7923 16.9706L10.0006 11.1789L4.20893 16.9706L3.0306 15.7923L8.82227 10.0006L3.0306 4.20893L4.20893 3.0306L10.0006 8.82227Z\",\n check: \"M5.54808 8.91506C5.68517 8.7731 5.911 8.76798 6.05439 8.90357L8.91511 11.6087L14.0259 6.3385C14.1641 6.19598 14.3916 6.19224 14.5344 6.33015L15.2401 7.01168C15.3833 7.15 15.3871 7.37832 15.2485 7.52126L10.1388 12.7904L9.09587 13.877C8.95862 14.02 8.73162 14.0251 8.58802 13.8885L4.76317 10.25C4.61835 10.1122 4.61349 9.88287 4.75233 9.73909L5.54808 8.91506Z\",\n \n // Share Icons\n wechat: \"M29.2621 19.4686C29.6005 19.4686 29.9389 19.4999 30.2755 19.5294C29.37 15.3272 24.8274 12.1875 19.6529 12.1875C13.8665 12.2078 9.12506 16.1186 9.12506 21.0846C9.12506 23.9475 10.7056 26.3088 13.331 28.1369L12.2712 31.273L15.9564 29.4467C17.2766 29.705 18.3364 29.9632 19.6398 29.9632C19.9782 29.9632 20.3 29.9485 20.6216 29.9189C20.4126 29.2057 20.3043 28.4669 20.3 27.7238C20.3149 23.171 24.2603 19.4705 29.264 19.4705L29.2622 19.4686H29.2621ZM23.5985 16.6388C24.398 16.6388 24.9186 17.1553 24.9186 17.9485C24.9186 18.7233 24.398 19.2583 23.5985 19.2583C22.8156 19.2583 22.0179 18.74 22.0179 17.9485C22.0179 17.1553 22.8156 16.6388 23.5985 16.6388V16.6388ZM16.2297 19.2583C15.4488 19.2583 14.6493 18.74 14.6493 17.9485C14.6493 17.1553 15.4488 16.6388 16.2297 16.6388C17.0126 16.6388 17.5499 17.1553 17.5499 17.9485C17.5499 18.7233 17.0293 19.2583 16.2297 19.2583ZM38.8751 27.6149C38.8751 23.4421 34.6692 20.0313 29.924 20.0313C24.9204 20.0313 20.9748 23.4421 20.9748 27.6149C20.9748 31.8024 24.9204 35.2003 29.924 35.2003C30.969 35.2003 32.0288 34.9421 33.0868 34.682L35.9725 36.25L35.1749 33.6452C37.2946 32.0477 38.8751 29.9595 38.8751 27.6149V27.6149ZM27.0234 26.305C26.5028 26.305 25.9636 25.7885 25.9636 25.2536C25.9636 24.7371 26.5028 24.2022 27.0234 24.2022C27.8229 24.2022 28.3436 24.7205 28.3436 25.2536C28.3436 25.7886 27.8229 26.3051 27.0234 26.3051V26.305ZM32.8116 26.305C32.2892 26.305 31.7666 25.7885 31.7666 25.2536C31.7666 24.7371 32.2873 24.2022 32.8116 24.2022C33.6093 24.2022 34.1317 24.7205 34.1317 25.2536C34.1317 25.7886 33.6093 26.3051 32.8116 26.3051V26.305Z\",\n moments: \"M23.8771 14.0267V4.44716C23.8771 4.44716 19.1894 1.93416 13.7173 3.8718L23.8771 14.0267ZM24.7646 19.6624V4.84271C24.7646 4.84271 30.3063 7.35406 31.868 13.4547L24.7646 19.6624ZM21.7833 23.9699L32.0134 14.3495C32.0134 14.3495 33.8236 17.2924 31.1242 23.9699H21.7833ZM16.5596 25.1897H30.3765C30.3765 25.1897 28.7086 29.7106 22.7387 31.5772L16.5596 25.1897ZM12.0493 22.1377V31.1441C12.0493 31.1441 15.6378 33.4421 21.7833 31.8991L12.0493 22.1377ZM4.05598 22.6036L11.0547 16.324V30.6047C11.0547 30.6046 6.82639 29.1369 4.05598 22.6036ZM3.87862 21.5992C3.87862 21.5992 2.27767 16.4335 4.51686 11.9469H14.143L3.87862 21.5992ZM5.12165 10.94C5.12165 10.94 7.14675 6.34883 12.6525 4.19461L19.2229 10.94H5.12165Z\",\n qq_bg: \"M35.1721 27.6044C34.6014 25.7733 33.9452 24.2344 32.9359 21.7158C33.0928 15.1006 30.3396 9.75 23.9985 9.75C17.5861 9.75 14.8934 15.2075 15.0646 21.7158C14.0517 24.238 13.3991 25.7662 12.8284 27.6044C11.6159 31.5051 12.0082 33.1189 12.3078 33.1545C12.9497 33.2328 14.8078 30.2191 14.8078 30.2191C14.8078 31.9647 15.7065 34.241 17.6538 35.8832C16.7123 36.1718 14.5974 36.9484 15.1003 37.7997C15.5068 38.4873 22.0976 38.2379 23.9985 38.0242C25.8994 38.2379 32.4901 38.4873 32.8967 37.7997C33.3995 36.9519 31.2811 36.1718 30.3431 35.8832C32.2904 34.2374 33.1891 31.9611 33.1891 30.2191C33.1891 30.2191 35.0472 33.2328 35.6892 33.1545C35.9923 33.1153 36.3846 31.5016 35.1721 27.6044Z\",\n weibo_1: \"M0 16.3909C0.000120501 9.90626 9.76945 2.21591 13.5586 3.79621C15.6014 4.64828 14.2267 7.71723 14.5146 8.03254C14.9769 8.53659 19.0829 5.70166 21.499 7.67414C22.9158 8.83096 21.6073 10.9817 21.7139 11.3402C21.879 11.894 24.4902 12.0756 25.5195 14.1429C27.1334 17.3854 22.4545 24.0001 12.7354 24.0003C4.80129 24.0003 0 20.1873 0 16.3909ZM20.8018 15.6409C20.491 12.4675 16.2646 10.2754 11.3613 10.7444C6.45793 11.2137 2.73382 14.1665 3.04395 17.3402C3.35443 20.5139 7.58174 22.7068 12.4854 22.2376C17.3889 21.7684 21.1122 18.8147 20.8018 15.6409Z\",\n weibo_2: \"M15.8174 15.8046C16.4177 17.9258 14.8583 20.2117 12.3346 20.9102C9.81081 21.6087 7.27831 20.4554 6.67808 18.3342C6.07785 16.213 7.63718 13.9271 10.1609 13.2286C12.6847 12.5301 15.2172 13.6834 15.8174 15.8046ZM11.3283 17.1713C11.662 17.8811 11.2504 18.7702 10.409 19.1571C9.5676 19.544 8.61501 19.2821 8.28133 18.5723C7.94765 17.8624 8.35924 16.9733 9.20065 16.5865C10.0421 16.1996 10.9947 16.4614 11.3283 17.1713ZM12.4319 16.8021C12.7597 16.6514 12.9201 16.3049 12.7901 16.0283C12.6601 15.7517 12.2889 15.6497 11.961 15.8005C11.6332 15.9512 11.4728 16.2976 11.6028 16.5742C11.7328 16.8508 12.104 16.9528 12.4319 16.8021Z\",\n weibo_3: \"M20.1584 2.28677C20.6078 2.17677 21.0788 2.11813 21.565 2.11813C24.7859 2.11813 27.397 4.70049 27.397 7.88598C27.397 8.58955 27.2701 9.26142 27.0386 9.882C26.834 10.4308 27.1178 11.0397 27.6727 11.2421C28.2276 11.4446 28.8433 11.1638 29.048 10.615C29.3656 9.76323 29.5386 8.84339 29.5386 7.88598C29.5386 3.53067 25.9687 0 21.565 0C20.904 0 20.2603 0.0797899 19.6439 0.230671C19.0698 0.371191 18.7196 0.945379 18.8617 1.51316C19.0037 2.08093 19.5843 2.42729 20.1584 2.28677Z\",\n weibo_4: \"M21.1046 5.98384C21.2513 5.94931 21.4053 5.93078 21.565 5.93078C22.6569 5.93078 23.542 6.80615 23.542 7.88598C23.542 8.12168 23.5003 8.3454 23.4247 8.55184C23.2233 9.10179 23.5108 9.70907 24.0669 9.90824C24.623 10.1074 25.237 9.82303 25.4384 9.27308C25.5974 8.83874 25.6836 8.37115 25.6836 7.88598C25.6836 5.63634 23.8397 3.81264 21.565 3.81264C21.237 3.81264 20.9166 3.85078 20.6087 3.92328C20.0333 4.05872 19.678 4.62979 19.8149 5.1988C19.9519 5.76781 20.5293 6.11928 21.1046 5.98384Z\",\n qr: \"M16 17V16H13V13H16V15H18V17H17V19H15V21H13V18H15V17H16ZM21 21H17V19H19V17H21V21ZM3 3H11V11H3V3ZM5 5V9H9V5H5ZM13 3H21V11H13V3ZM15 5V9H19V5H5ZM15 5V9H19V5H15ZM3 13H11V21H3V13ZM5 15V19H9V15H5ZM18 13H21V15H18V13ZM6 6H8V8H6V6ZM6 16H8V18H6V16ZM16 6H18V8H16V6Z\",\n tap: \"M14.3022 6.01416H10.8706V7.66455H12.9985C13.5885 7.66459 14.0666 8.14298 14.0669 8.73291L14.0679 17.6343H17.3042V8.64404H19.3354V18.5034C19.3354 19.0933 18.8559 19.5714 18.2661 19.5718H14.0679V20.8618C14.0679 21.452 13.5887 21.9312 12.9985 21.9312H4.64111C4.05105 21.9311 3.57277 21.4519 3.57275 20.8618V8.73291C3.57296 8.14293 4.05108 7.66455 4.64111 7.66455H8.84033V5.14404C8.84055 4.55415 9.31877 4.0758 9.90869 4.07568H14.3022V6.01416ZM5.60303 19.9927H12.0366V9.60303H11.064V9.89795C11.064 10.252 10.7774 10.5395 10.4233 10.5396H7.46436C7.11028 10.5395 6.82373 10.252 6.82373 9.89795V9.60303H5.60303V19.9927ZM15.8306 5.17041C16.318 5.17056 16.7856 5.38839 17.1304 5.77588C17.4752 6.16364 17.6694 6.6904 17.6694 7.23877H15.8306V5.17041ZM15.8306 2.06885C17.0497 2.06899 18.2185 2.61423 19.0806 3.5835C19.9427 4.55288 20.4272 5.86786 20.4272 7.23877H18.5884C18.5884 6.41631 18.2979 5.62703 17.7808 5.04541C17.2636 4.4639 16.562 4.13735 15.8306 4.13721V2.06885Z\",\n addDesk_1: \"M13 11H17V13H13V17H11V13H7V11H11V7H13V11Z\",\n addDesk_2: \"M20 2C20.5523 2 21 2.44772 21 3V21C21 21.5523 20.5523 22 20 22H4C3.44772 22 3 21.5523 3 21V3C3 2.44772 3.44772 2 4 2H20ZM5 20H19V4H5V20Z\",\n more: \"M4.5 10.5C3.675 10.5 3 11.175 3 12C3 12.825 3.675 13.5 4.5 13.5C5.325 13.5 6 12.825 6 12C6 11.175 5.325 10.5 4.5 10.5ZM19.5 10.5C18.675 10.5 18 11.175 18 12C18 12.825 18.675 13.5 19.5 13.5C20.325 13.5 21 12.825 21 12C21 11.175 20.325 10.5 19.5 10.5ZM12 10.5C11.175 10.5 10.5 11.175 10.5 12C10.5 12.825 11.175 13.5 12 13.5C12.825 13.5 13.5 12.825 13.5 12C13.5 11.175 12.825 10.5 12 10.5Z\",\n};\n\n// --- Components ---\n\nexport interface BottomSheetProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n title?: string;\n headerDescription?: string;\n description?: React.ReactNode;\n mainActionText?: string;\n secondaryActionText?: string;\n onMainAction?: () => void;\n onSecondaryAction?: () => void;\n children?: React.ReactNode;\n className?: string;\n demoMode?: boolean;\n imageSrc?: string;\n}\n\nexport function BottomSheet({\n open,\n onOpenChange,\n title = \"标题\",\n headerDescription,\n description,\n mainActionText = \"主操作\",\n secondaryActionText = \"副操作\",\n onMainAction,\n onSecondaryAction,\n children,\n className,\n demoMode = false,\n imageSrc,\n}: BottomSheetProps) {\n const positionClass = demoMode ? \"absolute\" : \"fixed\";\n const activeImage = imageSrc || imgHeader;\n \n return (\n <AnimatePresence>\n {open && (\n <>\n {/* Overlay */}\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.3 }}\n className={`${positionClass} inset-0 bg-black/60 z-50`}\n onClick={() => onOpenChange(false)}\n />\n\n {/* Sheet */}\n <motion.div\n initial={{ y: \"100%\" }}\n animate={{ y: 0 }}\n exit={{ y: \"100%\" }}\n transition={{ type: \"spring\", damping: 25, stiffness: 300 }}\n className={cn(\n `${positionClass} bottom-0 left-0 right-0 z-50 bg-white rounded-t-[32px] overflow-hidden shadow-xl max-h-[90vh] flex flex-col`,\n className\n )}\n >\n {/* Image Header (Optional) */}\n {imageSrc ? (\n <div className=\"relative shrink-0 w-full h-[195px]\">\n <div className=\"absolute inset-0 overflow-hidden\">\n <img src={activeImage} alt=\"Header\" className=\"w-full h-full object-cover\" />\n </div>\n <div className=\"absolute inset-0 bg-[rgba(183,183,183,0.2)]\" />\n \n {/* Floating Close Button for Image Mode */}\n <button \n onClick={() => onOpenChange(false)}\n className=\"absolute top-[12px] right-[12px] size-[40px] rounded-[22px] bg-white/50 backdrop-blur-sm flex items-center justify-center active:opacity-70 transition-opacity shadow-sm\"\n >\n <svg className=\"size-[20px]\" viewBox=\"0 0 20 20\" fill=\"none\">\n <path d={svgPaths.close} fill=\"rgba(0,0,0,0.9)\" />\n </svg>\n </button>\n </div>\n ) : (\n /* Standard Header Container */\n <div className=\"flex flex-col pt-[12px] px-[20px] pb-0 shrink-0\">\n {/* Title Row */}\n <div className=\"flex items-center justify-between\">\n {/* Title Area */}\n <div className=\"flex-1 mr-[12px]\">\n <h3 className=\"font-['PingFang_SC:Semibold',sans-serif] text-[20px] leading-[28px] text-[rgba(0,0,0,0.9)] text-left break-words\">\n {title}\n </h3>\n </div>\n \n {/* Close Button */}\n <button \n onClick={() => onOpenChange(false)}\n className=\"shrink-0 size-[40px] rounded-[22px] bg-[rgba(75,82,107,0.08)] flex items-center justify-center active:opacity-70 transition-opacity\"\n >\n <svg className=\"size-[20px]\" viewBox=\"0 0 20 20\" fill=\"none\">\n <path d={svgPaths.close} fill=\"rgba(0,0,0,0.9)\" />\n </svg>\n </button>\n </div>\n\n {/* Header Description Row */}\n {headerDescription && (\n <div className=\"mt-[4px]\">\n <p className=\"font-['PingFang_SC:Regular',sans-serif] text-[14px] leading-[20px] text-[rgba(0,0,0,0.42)] text-left\">\n {headerDescription}\n </p>\n </div>\n )}\n </div>\n )}\n\n {/* Content Area */}\n <div className={cn(\n \"px-[20px] overflow-y-auto\",\n imageSrc ? \"pt-[20px]\" : \"pt-[16px]\"\n )}>\n {/* Image Mode Title & Header Description */}\n {imageSrc && (\n <div className=\"mb-[8px]\">\n <h3 className=\"font-['PingFang_SC:Semibold',sans-serif] text-[20px] leading-[28px] text-[rgba(0,0,0,0.9)] text-left break-words\">\n {title}\n </h3>\n {headerDescription && (\n <div className=\"mt-[4px]\">\n <p className=\"font-['PingFang_SC:Regular',sans-serif] text-[14px] leading-[20px] text-[rgba(0,0,0,0.42)] text-left\">\n {headerDescription}\n </p>\n </div>\n )}\n </div>\n )}\n\n {/* Body Description */}\n {description && (\n <div className=\"font-['PingFang_SC:Regular',sans-serif] text-[14px] leading-[20px] text-[rgba(0,0,0,0.9)] mb-[16px]\">\n {typeof description === 'string' ? (\n <p className=\"whitespace-pre-wrap\">{description}</p>\n ) : description}\n </div>\n )}\n \n {/* Custom Children (e.g., Options, Share Grid) */}\n {children}\n </div>\n\n {/* Footer Action Buttons */}\n <div className=\"px-[20px] pt-[24px] pb-[32px] flex gap-[12px] shrink-0 bg-white mt-auto\">\n {/* Secondary Action */}\n <button \n onClick={onSecondaryAction}\n className=\"basis-0 grow h-[48px] rounded-[50px] bg-[rgba(75,82,107,0.08)] flex items-center justify-center relative overflow-hidden active:after:content-[''] active:after:absolute active:after:inset-0 active:after:bg-black/8 active:after:rounded-[inherit] transition-colors\"\n >\n <span className=\"font-['PingFang_SC:Medium',sans-serif] text-[16px] leading-[24px] text-[rgba(0,0,0,0.9)]\">\n {secondaryActionText}\n </span>\n </button>\n\n {/* Primary Action */}\n <button \n onClick={onMainAction}\n className=\"basis-0 grow h-[48px] rounded-[50px] bg-[#4b526b] flex items-center justify-center relative overflow-hidden active:after:content-[''] active:after:absolute active:after:inset-0 active:after:bg-black/8 active:after:rounded-[inherit] transition-colors\"\n >\n <span className=\"font-['PingFang_SC:Medium',sans-serif] text-[16px] leading-[24px] text-white\">\n {mainActionText}\n </span>\n </button>\n </div>\n \n {/* Home Indicator Safe Area Placeholder */}\n <div className=\"h-[10px] w-full bg-white\" />\n </motion.div>\n </>\n )}\n </AnimatePresence>\n );\n}\n\nexport interface BottomSheetOptionProps {\n label: string;\n selected?: boolean;\n onClick?: () => void;\n hasDivider?: boolean;\n}\n\nexport function BottomSheetOption({ label, selected, onClick, hasDivider = true }: BottomSheetOptionProps) {\n return (\n <div className=\"flex flex-col w-full\" onClick={onClick}>\n <div className=\"h-[44px] flex items-center justify-between w-full cursor-pointer active:bg-gray-50 transition-colors -mx-[20px] px-[20px]\">\n <span className=\"font-['PingFang_SC:Medium',sans-serif] text-[16px] leading-[24px] text-[rgba(0,0,0,0.9)]\">\n {label}\n </span>\n <div className=\"size-[20px] flex items-center justify-center\">\n {selected ? (\n <svg className=\"size-full\" viewBox=\"0 0 20 20\" fill=\"none\">\n <circle cx=\"10\" cy=\"10\" r=\"9\" fill=\"#4B526B\" />\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d={svgPaths.check} fill=\"white\" />\n </svg>\n ) : (\n <svg className=\"size-full\" viewBox=\"0 0 20 20\" fill=\"none\">\n <circle cx=\"10\" cy=\"10\" r=\"8.25\" stroke=\"black\" strokeOpacity=\"0.12\" strokeWidth=\"1.5\" />\n </svg>\n )}\n </div>\n </div>\n {hasDivider && (\n <div className=\"h-[1px] w-full bg-black/5 my-[4px]\" />\n )}\n </div>\n )\n}\n\nexport type ShareItemType = 'wechat' | 'moments' | 'qq' | 'weibo' | 'qr' | 'tap' | 'add_desk' | 'more';\n\nexport interface BottomSheetShareItemProps {\n type: ShareItemType;\n label: string;\n onClick?: () => void;\n}\n\nexport function BottomSheetShareItem({ type, label, onClick }: BottomSheetShareItemProps) {\n const renderIcon = () => {\n switch(type) {\n case 'wechat':\n return (\n <svg className=\"size-[48px]\" viewBox=\"0 0 48 48\" fill=\"none\">\n <circle cx=\"24\" cy=\"24\" r=\"24\" fill=\"#09BB07\"/>\n <path d={svgPaths.wechat} fill=\"white\"/>\n </svg>\n );\n case 'moments':\n return (\n <svg className=\"size-[48px]\" viewBox=\"0 0 48 48\" fill=\"none\">\n <circle cx=\"24\" cy=\"24\" r=\"24\" fill=\"#09BB07\"/>\n <path transform=\"translate(6, 6) scale(0.75)\" d={svgPaths.moments} fill=\"white\"/>\n </svg>\n );\n case 'qq':\n return (\n <svg className=\"size-[48px]\" viewBox=\"0 0 48 48\" fill=\"none\">\n <circle cx=\"24\" cy=\"24\" r=\"24\" fill=\"#00A9FF\"/>\n <path d={svgPaths.qq_bg} fill=\"white\"/>\n </svg>\n );\n case 'weibo':\n return (\n <svg className=\"size-[48px]\" viewBox=\"0 0 48 48\" fill=\"none\">\n <circle cx=\"24\" cy=\"24\" r=\"24\" fill=\"#E31C34\"/>\n <g transform=\"translate(9, 12) scale(1)\">\n <path d={svgPaths.weibo_1} fill=\"white\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d={svgPaths.weibo_2} fill=\"white\"/>\n <path d={svgPaths.weibo_3} fill=\"white\"/>\n <path d={svgPaths.weibo_4} fill=\"white\"/>\n </g>\n </svg>\n );\n case 'qr':\n return (\n <div className=\"size-[48px] rounded-[24px] border-[0.5px] border-black/10 flex items-center justify-center\">\n <svg className=\"size-[24px]\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d={svgPaths.qr} fill=\"black\" fillOpacity=\"0.9\"/>\n </svg>\n </div>\n );\n case 'tap':\n return (\n <div className=\"size-[48px] rounded-[24px] border-[0.5px] border-black/10 flex items-center justify-center\">\n <svg className=\"size-[24px]\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d={svgPaths.tap} fill=\"black\" fillOpacity=\"0.9\"/>\n </svg>\n </div>\n );\n case 'add_desk':\n return (\n <div className=\"size-[48px] rounded-[24px] border-[0.5px] border-black/10 flex items-center justify-center\">\n <svg className=\"size-[24px]\" viewBox=\"0 0 24 24\" fill=\"none\">\n <g>\n <path d={svgPaths.addDesk_1} fill=\"black\" fillOpacity=\"0.9\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d={svgPaths.addDesk_2} fill=\"black\" fillOpacity=\"0.9\"/>\n </g>\n </svg>\n </div>\n );\n case 'more':\n return (\n <div className=\"size-[48px] rounded-[24px] border-[0.5px] border-black/10 flex items-center justify-center\">\n <svg className=\"size-[24px]\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d={svgPaths.more} fill=\"black\" fillOpacity=\"0.9\"/>\n </svg>\n </div>\n );\n }\n };\n\n return (\n <div className=\"flex flex-col gap-[4px] items-center w-[64px] cursor-pointer\" onClick={onClick}>\n <div className=\"shrink-0 relative\">\n {renderIcon()}\n </div>\n <p className=\"font-['PingFang_SC:Regular',sans-serif] text-[12px] leading-[18px] text-[rgba(0,0,0,0.9)] text-center whitespace-nowrap\">\n {label}\n </p>\n </div>\n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { motion, PanInfo, useMotionValue, AnimatePresence } from \"motion/react\";\nimport { cn } from \"./utils\";\nimport svgPaths from \"../../imports/svg-arhcqim3ai\";\nimport { TopToolbar, TopToolbarProps } from \"./TopToolbar\";\n\nexport const DRAWER_STATES = {\n SMALL: 0,\n MEDIUM: 1,\n LARGE: 2,\n FULL: 3,\n};\n\ninterface DraggablePanelProps {\n children?: React.ReactNode;\n className?: string;\n state?: number;\n onStateChange?: (state: number) => void;\n fullScreenContent?: React.ReactNode;\n fullScreenTrigger?: (onTrigger: () => void) => React.ReactNode;\n // Top Toolbar configuration for three-stage panel (Small/Medium/Large)\n topToolbar?: TopToolbarProps;\n // Optional: Show top toolbar only in certain states\n showTopToolbarInStates?: number[];\n // Optional: Fixed bottom bar content (e.g. BottomToolbar)\n bottomBar?: React.ReactNode;\n}\n\nexport function DraggablePanel({ \n children, \n className, \n state: controlledState, \n onStateChange,\n fullScreenContent,\n fullScreenTrigger,\n topToolbar,\n showTopToolbarInStates,\n bottomBar\n}: DraggablePanelProps) {\n const [internalState, setInternalState] = useState(DRAWER_STATES.SMALL);\n const [previousState, setPreviousState] = useState(DRAWER_STATES.MEDIUM);\n \n const state = controlledState !== undefined ? controlledState : internalState;\n \n const setState = (newState: number) => {\n if (controlledState === undefined) {\n setInternalState(newState);\n }\n onStateChange?.(newState);\n };\n\n const goToFullScreen = () => {\n setPreviousState(state);\n setState(DRAWER_STATES.FULL);\n };\n\n const exitFullScreen = () => {\n setState(previousState);\n };\n\n // Heights\n const smallHeight = 160;\n const mediumHeight = 400;\n \n const onDragEnd = (event: any, info: PanInfo) => {\n // Don't allow dragging in full screen mode\n if (state === DRAWER_STATES.FULL) return;\n \n const offset = info.offset.y;\n const velocity = info.velocity.y;\n\n if (offset < -20 || velocity < -500) {\n // Dragging Up\n if (state === DRAWER_STATES.SMALL) setState(DRAWER_STATES.MEDIUM);\n else if (state === DRAWER_STATES.MEDIUM) setState(DRAWER_STATES.LARGE);\n } else if (offset > 20 || velocity > 500) {\n // Dragging Down\n if (state === DRAWER_STATES.LARGE) setState(DRAWER_STATES.MEDIUM);\n else if (state === DRAWER_STATES.MEDIUM) setState(DRAWER_STATES.SMALL);\n }\n };\n\n const getBackgroundStyle = () => {\n switch (state) {\n case DRAWER_STATES.SMALL:\n // Design 1\n return \"bg-gradient-to-b from-card/48 to-card/84 backdrop-blur-[30px]\";\n case DRAWER_STATES.MEDIUM:\n // Design 2\n return \"bg-card/90 backdrop-blur-[30px]\";\n case DRAWER_STATES.LARGE:\n // Design 3\n return \"bg-card\";\n case DRAWER_STATES.FULL:\n // Full screen - solid background\n return \"bg-card\";\n default:\n return \"bg-card\";\n }\n };\n\n const getHeight = () => {\n switch (state) {\n case DRAWER_STATES.SMALL: return smallHeight;\n case DRAWER_STATES.MEDIUM: return mediumHeight;\n case DRAWER_STATES.LARGE: return \"calc(100% - 51px)\";\n case DRAWER_STATES.FULL: return \"100%\";\n }\n };\n\n const getMargins = () => {\n if (state === DRAWER_STATES.FULL) return 0;\n return state === DRAWER_STATES.LARGE ? 0 : 8;\n };\n\n const isFullScreen = state === DRAWER_STATES.FULL;\n\n // Determine if TopToolbar should be shown (including full screen if specified in showTopToolbarInStates)\n const shouldShowTopToolbar = topToolbar && (\n !showTopToolbarInStates || showTopToolbarInStates.includes(state)\n );\n\n return (\n <>\n {/* Top Toolbar - Fixed Position at 63px (Only for non-full-screen states) */}\n {shouldShowTopToolbar && !isFullScreen && (\n <div className=\"absolute top-[63px] left-0 w-full z-[1000] pointer-events-none\">\n {/* Toolbar itself needs to be interactive */}\n <div className=\"pointer-events-auto\">\n <TopToolbar \n {...topToolbar} \n appearance={state === DRAWER_STATES.LARGE ? 'gray' : 'glass'} \n />\n </div>\n </div>\n )}\n\n {/* Overlay for Large State */}\n <AnimatePresence>\n {state === DRAWER_STATES.LARGE && (\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.2 }}\n className=\"absolute inset-0 bg-black/60\"\n onClick={() => setState(DRAWER_STATES.MEDIUM)}\n />\n )}\n </AnimatePresence>\n\n <motion.div\n className={cn(\n \"absolute z-[999] overflow-hidden shadow-[0px_2px_4px_0px_rgba(0,0,0,0.02),0px_4px_16px_1px_rgba(0,0,0,0.06)]\",\n !isFullScreen && \"touch-none\",\n getBackgroundStyle(),\n className\n )}\n initial={{\n height: smallHeight,\n left: 8,\n right: 8,\n bottom: 8,\n borderTopLeftRadius: 32,\n borderTopRightRadius: 32,\n borderBottomLeftRadius: 44,\n borderBottomRightRadius: 44,\n }}\n onClick={(e) => e.stopPropagation()}\n onPointerDown={(e) => e.stopPropagation()}\n onMouseDown={(e) => e.stopPropagation()}\n onTouchStart={(e) => e.stopPropagation()}\n animate={{\n height: getHeight(),\n left: getMargins(),\n right: getMargins(),\n bottom: getMargins(),\n top: isFullScreen ? 0 : \"auto\",\n borderTopLeftRadius: isFullScreen ? 0 : 32,\n borderTopRightRadius: isFullScreen ? 0 : 32,\n borderBottomLeftRadius: state === DRAWER_STATES.LARGE || isFullScreen ? 0 : 44,\n borderBottomRightRadius: state === DRAWER_STATES.LARGE || isFullScreen ? 0 : 44,\n }}\n transition={{ type: \"spring\", damping: 25, stiffness: 200 }}\n drag={isFullScreen ? false : \"y\"}\n dragConstraints={{ top: 0, bottom: 0 }}\n dragElastic={0.2}\n onDragEnd={onDragEnd}\n >\n {/* Inner Border (Only for Small/Medium) */}\n {state !== DRAWER_STATES.LARGE && state !== DRAWER_STATES.FULL && (\n <div className=\"absolute inset-0 pointer-events-none border border-border rounded-[inherit]\" />\n )}\n\n {isFullScreen ? (\n <div className=\"flex flex-col size-full h-full relative\">\n {/* Top Toolbar for Full Screen (if enabled) */}\n {shouldShowTopToolbar && (\n <div className=\"w-full shrink-0 pointer-events-auto bg-background\">\n <TopToolbar \n {...topToolbar} \n appearance=\"gray\"\n />\n </div>\n )}\n \n\n\n {/* Full Screen Content */}\n <div className=\"w-full flex-1 overflow-auto relative\">\n {fullScreenContent || children}\n </div>\n </div>\n ) : (\n /* Normal Mode - Content Wrapper */\n <div className=\"flex flex-col items-center size-full h-full relative\">\n \n {/* Grabber */}\n <div className=\"w-full flex flex-col items-center pt-[12px] pb-[8px] cursor-grab active:cursor-grabbing touch-none shrink-0 z-10\">\n {/* Matches Grabber style from import */}\n <div className=\"bg-input h-[4px] rounded-[2px] w-[36px]\" />\n </div>\n\n {/* Top Toolbar has been moved outside */}\n\n {/* Scrollable Content Area */}\n <div className={cn(\n \"w-full flex-1 overflow-auto relative\",\n // If Large state and Toolbar is visible, we need to push content down so it clears the fixed toolbar\n (state === DRAWER_STATES.LARGE && shouldShowTopToolbar) ? \"pt-12\" : \"\"\n )}>\n {children}\n \n {/* Full Screen Trigger Button */}\n {fullScreenTrigger && (\n <div className=\"mt-4\">\n {fullScreenTrigger(goToFullScreen)}\n </div>\n )}\n </div>\n\n {/* Bottom Bar - Fixed at the bottom of the panel */}\n {bottomBar && (\n <div className=\"w-full shrink-0 z-20 bg-transparent\">\n {bottomBar}\n </div>\n )}\n </div>\n )}\n </motion.div>\n </>\n );\n}","import * as React from \"react\";\nimport { cn } from \"./utils\";\nimport { Btn } from \"./Btn\";\n\n// --- SVG Paths ---\nconst SVG_PATHS = {\n back: \"M7.35667 10.0006L13.1483 15.7923L11.97 16.9706L5 10.0006L11.97 3.0306L13.1483 4.20893L7.35667 10.0006Z\",\n mic1: \"M9.99951 2.5C9.33646 2.5 8.70058 2.76339 8.23174 3.23223C7.7629 3.70107 7.49951 4.33696 7.49951 5V10C7.49951 10.663 7.7629 11.2989 8.23174 11.7678C8.70058 12.2366 9.33646 12.5 9.99951 12.5C10.6625 12.5 11.2984 12.2366 11.7673 11.7678C12.2361 11.2989 12.4995 10.663 12.4995 10V5C12.4995 4.33696 12.2361 3.70107 11.7673 3.23223C11.2984 2.76339 10.6625 2.5 9.99951 2.5ZM9.99951 0.833333C10.5467 0.833333 11.0885 0.941107 11.594 1.1505C12.0995 1.3599 12.5589 1.66681 12.9458 2.05372C13.3327 2.44063 13.6396 2.89996 13.849 3.40549C14.0584 3.91101 14.1662 4.45283 14.1662 5V10C14.1662 11.1051 13.7272 12.1649 12.9458 12.9463C12.1644 13.7277 11.1046 14.1667 9.99951 14.1667C8.89444 14.1667 7.83463 13.7277 7.05323 12.9463C6.27183 12.1649 5.83284 11.1051 5.83284 10V5C5.83284 3.89493 6.27183 2.83512 7.05323 2.05372C7.83463 1.27232 8.89444 0.833333 9.99951 0.833333ZM1.82617 11.635L3.46117 11.3075C3.76483 12.8179 4.58203 14.1765 5.77393 15.1527C6.96583 16.1288 8.45891 16.6621 9.99951 16.6621C11.5401 16.6621 13.0332 16.1288 14.2251 15.1527C14.5861 14.857 14.9128 14.5262 15.2013 14.1667L16.6068 15.0786C15.0829 17.0578 12.6896 18.3333 9.99951 18.3333C5.95784 18.3333 2.58617 15.4542 1.82617 11.635Z\",\n mic2: \"M16.9276 9.56153C16.9833 9.42022 17.1833 9.42022 17.2391 9.56153L17.8816 11.1907C17.8986 11.2339 17.9328 11.268 17.9759 11.2851L19.6051 11.9276C19.7465 11.9833 19.7465 12.1833 19.6051 12.2391L17.9759 12.8816C17.9328 12.8986 17.8986 12.9328 17.8816 12.9759L17.2391 14.6051C17.1833 14.7465 16.9833 14.7465 16.9276 14.6051L16.2851 12.9759C16.268 12.9328 16.2339 12.8986 16.1907 12.8816L14.5615 12.2391C14.4202 12.1833 14.4202 11.9833 14.5615 11.9276L16.1907 11.2851C16.2339 11.268 16.268 11.2339 16.2851 11.1907L16.9276 9.56153Z\",\n close1: \"M10 18.3333C5.3975 18.3333 1.66667 14.6025 1.66667 10C1.66667 5.3975 5.3975 1.66667 10 1.66667C14.6025 1.66667 18.3333 5.3975 18.3333 10C18.3333 14.6025 14.6025 18.3333 10 18.3333Z\",\n close2: \"M7.64328 6.46416L9.99994 8.82166L12.3566 6.46416L13.5358 7.64332L11.1783 9.99999L13.5358 12.3567L12.3566 13.5358L9.99994 11.1783L7.64328 13.5358L6.46411 12.3567L8.82161 9.99999L6.46411 7.64332L7.64328 6.46416Z\",\n expand: \"M6.182 7.325L9.657 3.85L10.364 4.557L6.182 8.739L2 4.557L2.707 3.85L6.182 7.325Z\",\n};\n\n// --- Icons ---\n\nfunction IconBack() {\n return (\n <svg className=\"block size-[20px] text-foreground\" fill=\"none\" viewBox=\"0 0 20 20\">\n <path d={SVG_PATHS.back} fill=\"currentColor\" />\n </svg>\n );\n}\n\nfunction IconMic() {\n return (\n <svg className=\"block size-[20px] text-foreground\" fill=\"none\" viewBox=\"0 0 20 20\">\n <path d={SVG_PATHS.mic1} fill=\"currentColor\" />\n <path d={SVG_PATHS.mic2} fill=\"currentColor\" />\n </svg>\n );\n}\n\nfunction IconClose() {\n return (\n <svg className=\"block size-[20px]\" fill=\"none\" viewBox=\"0 0 20 20\">\n {/* Background Circle */}\n <path d={SVG_PATHS.close1} fill=\"currentColor\" className=\"text-muted\" />\n {/* X mark */}\n <path d={SVG_PATHS.close2} fill=\"currentColor\" className=\"text-muted-foreground\" />\n </svg>\n );\n}\n\nfunction IconExpand() {\n return (\n <svg className=\"block size-[12px] text-muted-foreground\" fill=\"none\" viewBox=\"0 0 12 12\">\n <path d={SVG_PATHS.expand} fill=\"currentColor\" />\n </svg>\n );\n}\n\nexport type SearchBoxVariant = 'card' | 'map';\n\nexport type SearchBoxMode = 'default' | 'scenic' | 'scenic-date'; // Expanded modes\n\nexport interface SearchBoxProps {\n value?: string;\n onChange?: (value: string) => void;\n placeholder?: string;\n variant?: SearchBoxVariant;\n mode?: SearchBoxMode; // New mode prop\n locationLabel?: string; // New prop for location like \"北京市\"\n dateRange?: { start: string; end: string }; // New prop for date range\n onBack?: () => void;\n onSearch?: () => void;\n onMic?: () => void;\n // Callbacks for internal state transitions if parent wants to know\n onClear?: () => void; \n className?: string;\n}\n\nexport function SearchBox({\n value = \"\",\n onChange,\n placeholder = \"底纹词\",\n variant = 'card',\n mode = 'default', // Default to standard behavior\n locationLabel = \"北京市\",\n dateRange,\n onBack,\n onSearch,\n onMic,\n onClear,\n className\n}: SearchBoxProps) {\n const [isFocused, setIsFocused] = React.useState(false);\n\n // Derived State\n const hasValue = value.length > 0;\n \n // States:\n // 1. Default: !hasValue && !isFocused\n // 2. Inputting: isFocused\n // 3. Result: hasValue && !isFocused\n \n // Determine Interaction State\n let interactionState: 'default' | 'inputting' | 'result' = 'default';\n if (isFocused) {\n interactionState = 'inputting';\n } else if (hasValue) {\n interactionState = 'result';\n }\n\n // Visuals based on Interaction State\n // Button Text\n let btnLabel = \"搜索\";\n if (interactionState === 'result' || mode.startsWith('scenic')) btnLabel = \"取消\";\n\n // Button Variant\n let btnVariant: \"secondary\" | \"primary\" = \"secondary\";\n if (interactionState === 'inputting') btnVariant = \"primary\";\n if (interactionState === 'result' || mode.startsWith('scenic')) btnVariant = \"secondary\"; \n\n // Right Icon\n const renderRightIcon = () => {\n if (interactionState === 'inputting') {\n return (\n <button \n type=\"button\"\n onClick={() => {\n onChange?.(\"\");\n onClear?.();\n }}\n className=\"shrink-0 p-1 rounded-full active:bg-black/5\"\n >\n <IconClose />\n </button>\n );\n }\n return (\n <button \n type=\"button\"\n onClick={onMic}\n className=\"shrink-0 p-1 rounded-full active:bg-black/5\"\n >\n <IconMic />\n </button>\n );\n };\n\n // Handle Button Click\n const handleBtnClick = () => {\n if (interactionState === 'result' || mode.startsWith('scenic')) {\n onChange?.(\"\"); \n onClear?.();\n } else {\n onSearch?.();\n }\n };\n\n // Render Scenic Prefix\n const renderScenicPrefix = () => {\n if (mode === 'default') return null;\n\n return (\n <div className=\"flex items-center gap-[6px] mr-2 shrink-0\">\n {/* Date Range Section (Only for scenic-date) */}\n {mode === 'scenic-date' && dateRange && (\n <>\n <div className=\"flex items-center rounded-[8px] px-[4px] backdrop-blur-sm\">\n <div className=\"flex flex-col items-start justify-center text-[12px] leading-[12px] text-muted-foreground font-sans gap-[4px]\">\n <p className=\"whitespace-nowrap\">住 {dateRange.start}</p>\n <p className=\"whitespace-nowrap\">离 {dateRange.end}</p>\n </div>\n </div>\n {/* Divider */}\n <div className=\"h-[26px] w-px bg-border mx-[2px]\" />\n </>\n )}\n\n {/* Location Section */}\n <div className=\"flex items-center gap-[2px] h-[28px] px-[4px] rounded-[8px] backdrop-blur-sm cursor-pointer active:bg-black/5 transition-colors\">\n <span className=\"text-[14px] leading-[20px] text-muted-foreground font-sans whitespace-nowrap\">\n {locationLabel}\n </span>\n <IconExpand />\n </div>\n </div>\n );\n };\n\n return (\n <div className={cn(\n \"relative w-full h-[48px] rounded-[24px] flex items-center overflow-hidden transition-colors duration-200\",\n // Map variant uses specific shadow from design\n variant === 'card' \n ? \"bg-card/50\" \n : \"bg-card shadow-[0px_2px_4px_0px_rgba(0,0,0,0.02),0px_4px_16px_1px_rgba(0,0,0,0.06)]\",\n className\n )}>\n <div className=\"flex items-center w-full h-full pl-[12px] pr-[4px] py-[4px] gap-[8px]\">\n {/* Back Button */}\n <button \n type=\"button\"\n onClick={onBack}\n className={cn(\n \"shrink-0 size-[20px] flex items-center justify-center active:opacity-70 transition-opacity\"\n )}\n >\n <IconBack />\n </button>\n\n {/* Input Container */}\n <div className=\"flex-1 flex items-center relative h-full min-w-0\">\n {/* Scenic Mode Prefix */}\n {renderScenicPrefix()}\n\n <input\n type=\"text\"\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n onSearch?.();\n // Optionally blur to close keyboard/change state\n (e.target as HTMLInputElement).blur();\n }\n }}\n placeholder={mode.startsWith('scenic') ? \"景点\" : placeholder} \n className={cn(\n \"w-full bg-transparent border-none outline-none text-[16px] font-sans placeholder:font-medium\", \n // Note: Scenic mode placeholder is actually darker/bolder in design\n // Colors\n interactionState === 'default' && !mode.startsWith('scenic') \n ? \"text-muted-foreground placeholder:text-muted-foreground placeholder:font-normal\" \n : \"text-foreground placeholder:text-foreground\",\n // Alignment\n \"text-left\"\n )}\n />\n \n {/* Right Icon (Mic or Close) */}\n <div className=\"shrink-0 ml-2 flex items-center justify-center\">\n {renderRightIcon()}\n </div>\n </div>\n\n {/* Search/Cancel Button */}\n <Btn \n size=\"middle\"\n variant={btnVariant}\n label={btnLabel}\n onClick={handleBtnClick}\n icon={null} \n />\n </div>\n </div>\n );\n}\n","import React, { useState } from 'react'\n\nconst ERROR_IMG_SRC =\n 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODgiIGhlaWdodD0iODgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBvcGFjaXR5PSIuMyIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIzLjciPjxyZWN0IHg9IjE2IiB5PSIxNiIgd2lkdGg9IjU2IiBoZWlnaHQ9IjU2IiByeD0iNiIvPjxwYXRoIGQ9Im0xNiA1OCAxNi0xOCAzMiAzMiIvPjxjaXJjbGUgY3g9IjUzIiBjeT0iMzUiIHI9IjciLz48L3N2Zz4KCg=='\n\nexport function ImageWithFallback(props: React.ImgHTMLAttributes<HTMLImageElement>) {\n const [didError, setDidError] = useState(false)\n\n const handleError = () => {\n setDidError(true)\n }\n\n const { src, alt, style, className, ...rest } = props\n\n return didError ? (\n <div\n className={`inline-block bg-gray-100 text-center align-middle ${className ?? ''}`}\n style={style}\n >\n <div className=\"flex items-center justify-center w-full h-full\">\n <img src={ERROR_IMG_SRC} alt=\"Error loading image\" {...rest} data-original-url={src} />\n </div>\n </div>\n ) : (\n <img src={src} alt={alt} className={className} style={style} {...rest} onError={handleError} />\n )\n}\n","export default {\np19ad01c0: \"M5.12969 0.157127C5.03047 0.104737 4.91719 0.0914458 4.80973 0.119583C4.71989 0.141109 4.63825 0.191325 4.5756 0.263601C4.28445 0.609616 4.11309 0.972956 4.06214 1.3546C3.94771 2.21299 3.99058 2.53978 4.07232 2.89608C4.14902 3.19779 4.25179 3.49118 4.37929 3.77246C4.84558 3.29774 5.16401 2.69848 5.33354 1.97806C5.44475 1.50796 5.45069 1.01635 5.35087 0.543331L5.31771 0.397238C5.30382 0.345332 5.27991 0.297133 5.24752 0.255767C5.21513 0.214402 5.17499 0.180795 5.12969 0.157127Z\",\np1ac9d900: \"M5.15167 6.10417L8.0475 3.20833L8.63667 3.7975L5.15167 7.2825L1.66667 3.7975L2.25583 3.20833L5.15167 6.10417Z\",\np1b043080: \"M9.04914 9.98438L8.18976 11.502C8.07026 11.7132 7.76898 11.7222 7.63703 11.5186L4.16925 6.16504C4.03002 5.95013 4.18378 5.66625 4.43976 5.66602H6.08332L9.04914 9.98438ZM11.1263 5.66602C11.3835 5.66623 11.5374 5.9523 11.3958 6.16699L10.1878 7.99414L8.64875 5.66602H11.1263Z\",\np23ea2100: \"M6.61141 7.36716C7.40782 6.67757 7.60591 5.88923 7.61089 5.59111C7.61624 5.29189 7.12544 5.32805 6.71104 5.47796C6.29716 5.62781 5.80056 5.77469 4.93196 6.551C4.06189 7.32804 3.5257 8.33474 3.38124 8.73008C3.23678 9.12543 3.80404 8.86235 4.41256 8.64088C5.21846 8.35698 5.9642 7.925 6.61141 7.36716Z\",\np28964500: \"M5.60104 9.0694C6.2833 9.01675 6.64436 9.3176 6.58212 9.58263C6.5193 9.84721 5.91845 10.5755 4.7835 10.9058C3.64972 11.2371 2.49272 11.3215 2.05497 11.3831C1.61772 11.4445 1.09306 11.4547 1.32709 11.189C1.87595 10.5972 2.52574 10.1078 3.24606 9.74364C4.21415 9.26379 4.91937 9.12249 5.60104 9.0694Z\",\np28b79500: \"M6.94224 3.12768C6.99532 2.82715 6.97349 2.48916 6.63612 2.53996C6.29777 2.59091 5.777 2.86381 5.13143 3.77485C4.70064 4.38299 4.46978 5.16194 4.43919 6.11433C5.08899 5.7577 5.61398 5.37219 6.01438 4.95936C6.61466 4.33963 6.88964 3.42813 6.94224 3.12768Z\",\np295c2000: \"M5.15316 5.75933H8.67112V4.59029H9.74274V5.75933H10.9659V6.76601H9.74274V9.78604C9.74274 10.5221 9.38553 10.901 8.69277 10.901H7.43713L7.19899 9.86181C7.58867 9.90511 7.9567 9.93758 8.32474 9.93758C8.55205 9.93758 8.67112 9.78604 8.67112 9.5046V7.09074C7.87011 8.38968 6.83096 9.42883 5.55367 10.2082L4.94749 9.20152C6.18149 8.59535 7.16651 7.78351 7.90258 6.76601H5.15316V5.75933ZM12.5246 3.17228V12.8277H11.4422V12.4489H4.55781V12.8277H3.47536V3.17228H12.5246ZM4.55781 11.4314H11.4422V4.18978H4.55781V11.4314Z\",\np31d09440: \"M7.23139 3.04123C7.28669 2.74906 7.26395 2.42045 6.91252 2.46984C6.56007 2.51937 6.01761 2.78469 5.34513 3.67043C4.8964 4.26168 4.65592 5.01899 4.62406 5.94492C5.30093 5.5982 5.84779 5.22339 6.26487 4.82203C6.89017 4.21952 7.1766 3.33334 7.23139 3.04123Z\",\np34722600: \"M5.00586 3L6.94082 5.67877L5.00586 8.36289\",\np36cc0c80: \"M6.34691 7.57726C7.11147 6.86797 7.30164 6.05711 7.30642 5.75046C7.31155 5.44269 6.84038 5.47989 6.44256 5.63409C6.04523 5.78821 5.5685 5.93929 4.73464 6.73778C3.89938 7.53702 3.38463 8.57249 3.24595 8.97912C3.10727 9.38576 3.65184 9.11517 4.23602 8.88737C5.00968 8.59536 5.7256 8.15104 6.34691 7.57726Z\",\np3d0f7cc0: \"M6.58555 7.40966C4.83068 8.31389 6.14659 11.4777 7.90168 10.1217C9.65655 8.76592 8.3403 6.05253 10.534 5.60082C12.2889 5.23946 13.1663 7.86215 10.9727 8.76592\",\np3ea31fd2: \"M4.70848 2.11136C4.99195 1.59366 5.5974 1.34288 6.16391 1.5085L7.64745 1.94222C7.8778 2.00957 8.12262 2.00957 8.35298 1.94222L9.83652 1.5085C10.403 1.34288 11.0085 1.59366 11.2919 2.11136L12.0343 3.46707C12.1495 3.67757 12.3227 3.85069 12.5332 3.96595L13.8889 4.70829C14.4066 4.99176 14.6574 5.59721 14.4917 6.16372L14.058 7.64726C13.9907 7.87761 13.9907 8.12243 14.058 8.35279L14.4917 9.83633C14.6574 10.4028 14.4066 11.0083 13.8889 11.2918L12.5332 12.0341C12.3227 12.1494 12.1495 12.3225 12.0343 12.533L11.2919 13.8887C11.0085 14.4064 10.403 14.6572 9.83652 14.4915L8.35298 14.0578C8.12262 13.9905 7.8778 13.9905 7.64745 14.0578L6.1639 14.4915C5.5974 14.6572 4.99195 14.4064 4.70848 13.8887L3.96614 12.533C3.85088 12.3225 3.67776 12.1494 3.46726 12.0341L2.11155 11.2918C1.59385 11.0083 1.34307 10.4028 1.50869 9.83633L1.94241 8.35279C2.00976 8.12243 2.00976 7.87761 1.94241 7.64726L1.50869 6.16371C1.34307 5.59721 1.59385 4.99176 2.11155 4.70829L3.46726 3.96595C3.67776 3.85069 3.85088 3.67757 3.96614 3.46707L4.70848 2.11136Z\",\np3f2f0980: \"M6.58555 7.41063C4.83068 8.31486 6.14659 11.4787 7.90168 10.1227C9.65655 8.76689 8.3403 6.05351 10.534 5.6018C12.2889 5.24044 13.1663 7.86312 10.9727 8.76689\",\np3f31d080: \"M5.34343 0.152763C5.24007 0.101828 5.12208 0.0889056 5.01014 0.116261C4.91655 0.137189 4.83151 0.18601 4.76625 0.256278C4.46297 0.592682 4.28447 0.945929 4.23139 1.31697C4.1122 2.15151 4.15685 2.46923 4.242 2.81564C4.3219 3.10896 4.42895 3.3942 4.56176 3.66767C5.04748 3.20613 5.37918 2.62352 5.55577 1.92311C5.67162 1.46607 5.6778 0.988122 5.57382 0.528239L5.53928 0.386203C5.52482 0.335739 5.49991 0.288879 5.46617 0.248663C5.43243 0.208447 5.39061 0.175773 5.34343 0.152763Z\",\npfcaf500: \"M5.37721 9.32883C6.03218 9.27468 6.3788 9.58413 6.31905 9.85672C6.25874 10.1289 5.68192 10.8779 4.59238 11.2177C3.50395 11.5584 2.39323 11.6453 1.97298 11.7086C1.55323 11.7718 1.04955 11.7823 1.27422 11.509C1.80113 10.9003 2.42492 10.3969 3.11643 10.0223C4.0458 9.52878 4.72281 9.38344 5.37721 9.32883Z\",\n}\n","import React from \"react\";\nimport { ImageWithFallback } from \"./figma/ImageWithFallback\";\nimport svgPaths from \"../../imports/svg-51gau6u5ee\";\n\ninterface POI {\n id: string;\n title: string;\n address: string;\n tel?: string;\n category?: string;\n type?: string;\n location: {\n lat: number;\n lng: number;\n };\n _distance?: number;\n photo?: string; // Photo URL from Tencent API\n}\n\ninterface POIListItemProps {\n poi: POI;\n onClick?: () => void;\n highlighted?: string;\n}\n\n// VIP图标\nfunction VipIcon() {\n return (\n <div className=\"relative shrink-0 size-[16px]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 16 16\">\n <g>\n <path d={svgPaths.p3ea31fd2} fill=\"#FFCD81\" />\n <g filter=\"url(#filter0_d_vip)\">\n <path d={svgPaths.p1b043080} fill=\"white\" />\n </g>\n </g>\n <defs>\n <filter colorInterpolationFilters=\"sRGB\" filterUnits=\"userSpaceOnUse\" height=\"9.32367\" id=\"filter0_d_vip\" width=\"10.6567\" x=\"2.45487\" y=\"4.83509\">\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" />\n <feOffset dy=\"0.830926\" />\n <feGaussianBlur stdDeviation=\"0.830926\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 1 0 0 0 0 0.432 0 0 0 0 0.1125 0 0 0 0.1 0\" />\n <feBlend in2=\"BackgroundImageFix\" mode=\"normal\" result=\"effect1_dropShadow_vip\" />\n <feBlend in=\"SourceGraphic\" in2=\"effect1_dropShadow_vip\" mode=\"normal\" result=\"shape\" />\n </filter>\n </defs>\n </svg>\n </div>\n );\n}\n\n// 麦穗图标\nfunction WheatIcon() {\n return (\n <div className=\"h-[12px] relative shrink-0 w-[8px]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 8 12\">\n <g>\n <path d={svgPaths.pfcaf500} fill=\"#A87B00\" />\n <path d={svgPaths.p19ad01c0} fill=\"#A87B00\" opacity=\"0.6\" />\n <path d={svgPaths.p28b79500} fill=\"#A87B00\" opacity=\"0.7\" />\n <path d={svgPaths.p36cc0c80} fill=\"#A87B00\" opacity=\"0.8\" />\n </g>\n </svg>\n </div>\n );\n}\n\n// 榜单标签\nfunction RankBadge({ text }: { text: string }) {\n return (\n <div className=\"bg-[#fff9e0] box-border flex items-center h-[20px] px-[4px] rounded-[4px]\">\n <div className=\"flex-none rotate-[180deg] scale-y-[-100%]\">\n <WheatIcon />\n </div>\n <p className=\"font-sans text-[#a87b00] text-[12px] leading-[12px] whitespace-pre\">{text}</p>\n <WheatIcon />\n </div>\n );\n}\n\n// 普通标签\nfunction Tag({ text }: { text: string }) {\n return (\n <div className=\"backdrop-blur-sm bg-secondary h-[20px] px-[4px] flex items-center justify-center rounded-[4px]\">\n <p className=\"font-sans text-[12px] leading-[12px] text-muted-foreground whitespace-pre\">{text}</p>\n </div>\n );\n}\n\n// 分隔线\nfunction Divider() {\n return (\n <div className=\"h-[10px] w-0 relative shrink-0\">\n <div className=\"absolute inset-0\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 1 10\">\n <path d=\"M0.25 0V10\" stroke=\"rgba(178, 183, 198, 1)\" strokeWidth=\"0.5\" />\n </svg>\n </div>\n </div>\n );\n}\n\n// 小程序图标\nfunction MiniProgramIcon() {\n return (\n <div className=\"relative shrink-0 size-[14px]\">\n <div className=\"absolute inset-[-7.22%_-14.88%_-21.56%_-13.9%]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 19 19\">\n <g>\n <g filter=\"url(#filter0_d_miniprogram)\">\n <circle cx=\"9.01461\" cy=\"8.0073\" fill=\"#00B83D\" r=\"7\" />\n </g>\n <path d={svgPaths.p3f2f0980} stroke=\"white\" strokeLinecap=\"round\" strokeWidth=\"1.16667\" />\n </g>\n <defs>\n <filter colorInterpolationFilters=\"sRGB\" filterUnits=\"userSpaceOnUse\" height=\"18.0292\" id=\"filter0_d_miniprogram\" width=\"18.0292\" x=\"0\" y=\"0\">\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" />\n <feOffset dy=\"1.0073\" />\n <feGaussianBlur stdDeviation=\"1.0073\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05 0\" />\n <feBlend in2=\"BackgroundImageFix\" mode=\"normal\" result=\"effect1_dropShadow_miniprogram\" />\n <feBlend in=\"SourceGraphic\" in2=\"effect1_dropShadow_miniprogram\" mode=\"normal\" result=\"shape\" />\n </filter>\n </defs>\n </svg>\n </div>\n </div>\n );\n}\n\n// 展开图标\nfunction ExpandIcon() {\n return (\n <div className=\"relative size-[10px]\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 10 10\">\n <g>\n <path d={svgPaths.p1ac9d900} fill=\"#4B526B\" />\n </g>\n </svg>\n </div>\n );\n}\n\nexport function POIListItem({ poi, onClick, highlighted }: POIListItemProps) {\n const highlightText = (text: string, query: string) => {\n if (!query) return text;\n const parts = text.split(new RegExp(`(${query})`, 'gi'));\n return parts.map((part, i) =>\n part.toLowerCase() === query.toLowerCase() ? (\n <span key={i} className=\"text-primary\">{part}</span>\n ) : (\n <span key={i}>{part}</span>\n )\n );\n };\n\n // 模拟评分和价格数据\n const rating = (4.5 + Math.random() * 0.8).toFixed(1);\n const pricePerPerson = Math.floor(30 + Math.random() * 100);\n const categoryName = poi.category?.split(':')[1] || poi.category || \"餐厅\";\n const distance = poi._distance ? `${Math.floor(poi._distance)}米` : \"901米\";\n \n // 模拟榜单信息 - 根据POI类型\n const isTopRanked = Math.random() > 0.6;\n const rankText = isTopRanked ? \"北京美食榜 第2名\" : null;\n\n // 为每个POI生成不同的fallback图片\n const fallbackImages = [\n 'photo-1546069901-ba9599a7e63c', // ramen bowl\n 'photo-1504674900247-0877df9cc836', // food dish\n 'photo-1555939594-58d7cb561ad1', // burger\n 'photo-1565299624946-b28f40a0ae38', // pizza\n 'photo-1540189549336-e6e99c3679fe', // salad\n 'photo-1567620905732-2d1ec7ab7445', // pancakes\n 'photo-1512621776951-a57141f2eefd', // sushi\n 'photo-1529042410759-befb1204b468', // dessert\n ];\n const imageIndex = Math.abs(poi.id.split('').reduce((acc, char) => acc + char.charCodeAt(0), 0)) % fallbackImages.length;\n const fallbackImage = `https://images.unsplash.com/${fallbackImages[imageIndex]}?w=200&h=200&fit=crop`;\n\n return (\n <div\n className=\"flex gap-[8px] py-[12px] border-b border-border cursor-pointer active:bg-muted/20 transition-colors\"\n onClick={onClick}\n >\n {/* 图片 */}\n <div className=\"shrink-0 w-[91px] h-[91px] rounded-[8px] overflow-hidden bg-muted\">\n <ImageWithFallback\n src={poi.photo || fallbackImage}\n alt={poi.title}\n className=\"w-full h-full object-cover\"\n />\n </div>\n\n {/* 内容 */}\n <div className=\"flex-1 min-w-0 flex flex-col gap-[8px]\">\n {/* 标题和标签 */}\n <div className=\"flex flex-col gap-[6px]\">\n {/* 标题 */}\n <div className=\"flex gap-[4px] items-center\">\n <p className=\"font-sans text-[16px] leading-[16px] text-foreground overflow-ellipsis overflow-hidden whitespace-nowrap\">\n {highlighted ? highlightText(poi.title, highlighted) : poi.title}\n </p>\n {Math.random() > 0.7 && <VipIcon />}\n </div>\n\n {/* 标签行 */}\n <div className=\"flex gap-[4px] items-center h-[20px] overflow-x-auto no-scrollbar\">\n {rankText && <RankBadge text={rankText} />}\n <Tag text=\"线上排队\" />\n <Tag text=\"菜品健康\" />\n </div>\n </div>\n\n {/* 信息详情 */}\n <div className=\"flex flex-col gap-[4px]\">\n {/* 评分/价格/分类/时间 */}\n <div className=\"flex gap-[6px] items-center text-[12px] leading-[16px] text-muted-foreground font-sans overflow-x-auto no-scrollbar\">\n <span className=\"whitespace-nowrap\">{rating}分</span>\n <Divider />\n <span className=\"whitespace-nowrap\">¥{pricePerPerson}/人</span>\n <Divider />\n <span className=\"whitespace-nowrap\">{categoryName}</span>\n <Divider />\n <span className=\"whitespace-nowrap\">5分钟前有人来过</span>\n </div>\n\n {/* 距离 */}\n <div className=\"flex gap-[8px] items-center text-[12px] leading-[16px] text-muted-foreground font-sans\">\n <span className=\"whitespace-nowrap\">{distance}</span>\n <span className=\"overflow-ellipsis overflow-hidden truncate flex-1\">{poi.address}</span>\n </div>\n\n {/* 团购信息 */}\n <div className=\"flex gap-[4px] items-center rounded-[2px] overflow-hidden\">\n <div className=\"relative shrink-0 size-[16px]\">\n <div className=\"absolute inset-0\">\n <svg className=\"block size-full\" fill=\"none\" preserveAspectRatio=\"none\" viewBox=\"0 0 16 16\">\n <g>\n <rect fill=\"#FFEFE5\" height=\"16\" rx=\"2\" width=\"16\" />\n <path d={svgPaths.p295c2000} fill=\"#FA6800\" />\n </g>\n </svg>\n </div>\n </div>\n <div className=\"flex-1 min-w-0 flex gap-[3px] items-center\">\n <p className=\"font-sans text-[#fa6800] text-[12px] leading-[16px] whitespace-nowrap\">¥20.8</p>\n <p className=\"font-sans text-[12px] leading-[16px] text-muted-foreground whitespace-nowrap\">6.1折</p>\n <p className=\"flex-1 font-sans text-[12px] leading-[16px] text-muted-foreground overflow-ellipsis overflow-hidden whitespace-nowrap\">\n (日落微醺)狮王精酿茉莉白啤 周一至周日免\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n}","import React from \"react\";\nimport { ImageWithFallback } from \"./figma/ImageWithFallback\";\nimport { cn } from \"./utils\";\n\nexport interface PoiItemProps {\n imageUrl: string;\n title: string;\n rating: string;\n distance: string;\n description: string;\n className?: string;\n}\n\nexport function PoiItem({ \n imageUrl, \n title, \n rating, \n distance, \n description,\n className \n}: PoiItemProps) {\n return (\n <div className={cn(\n \"flex gap-[var(--spacing-xs)] py-[var(--spacing-sm)] px-[var(--spacing-base)] border-b border-border last:border-0\",\n className\n )}>\n <div className=\"shrink-0 w-[91px] h-[91px]\">\n <ImageWithFallback \n src={imageUrl} \n alt={title} \n className=\"w-full h-full rounded-[var(--radius-sm)] object-cover\" \n />\n </div>\n <div className=\"flex-1 min-w-0 flex flex-col gap-[var(--spacing-xxs)]\">\n <h4 className=\"text-foreground font-medium text-base truncate\">{title}</h4>\n <div className=\"flex gap-[var(--spacing-xs)] text-xs text-muted-foreground\">\n <span>{rating}分</span>\n <span>•</span>\n <span>{distance}</span>\n </div>\n <p className=\"text-xs text-muted-foreground line-clamp-2\">{description}</p>\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport { cn } from \"./utils\";\n\nexport interface NewsItemProps {\n title: string;\n source: string;\n time: string;\n category: string;\n variant?: \"primary\" | \"accent\" | \"default\";\n className?: string;\n}\n\nexport function NewsItem({ \n title, \n source, \n time, \n category, \n variant = \"default\",\n className\n}: NewsItemProps) {\n const categoryStyles = {\n primary: \"bg-primary/10 text-primary\",\n accent: \"bg-accent/10 text-accent\",\n default: \"bg-muted text-muted-foreground\"\n };\n\n return (\n <div className={cn(\"grid grid-cols-12 gap-[var(--spacing-xs)] py-[var(--spacing-sm)]\", className)}>\n <div className=\"col-span-8 flex flex-col gap-[var(--spacing-xxs)]\">\n <h4 className=\"text-foreground text-sm font-medium line-clamp-2\">{title}</h4>\n <p className=\"text-xs text-muted-foreground\">{time} · {source}</p>\n </div>\n <div className={cn(\n \"col-span-4 rounded-[var(--radius-sm)] h-20 flex items-center justify-center text-xs font-medium\",\n categoryStyles[variant]\n )}>\n {category}\n </div>\n </div>\n );\n}\n","import * as React from \"react\";\nimport { motion, AnimatePresence } from \"motion/react\";\nimport { cn } from \"../utils\";\n\nimport { SearchBox } from \"../SearchBox\";\n\nexport type BottomActionMode = 'single' | 'split' | 'weighted';\nexport type BottomLeftContentType = 'none' | 'search' | 'capsule' | 'capsule-more';\n\nexport interface BottomActionButtonsProps {\n mode: BottomActionMode;\n leftContent?: BottomLeftContentType;\n mainText?: string;\n secondaryText?: string;\n hasShadow?: boolean;\n onMainClick?: () => void;\n onSecondaryClick?: () => void;\n className?: string;\n}\n\nfunction Capsule({ more = false }: { more?: boolean }) {\n return (\n <div className=\"flex items-center h-[48px] bg-card rounded-[24px] px-4 shadow-sm border border-border shrink-0\">\n <div className=\"flex flex-col justify-center mr-3\">\n <span className=\"text-[10px] text-muted-foreground leading-none mb-1\">距离</span>\n <span className=\"text-[14px] font-semibold leading-none\">2.5 km</span>\n </div>\n <div className=\"w-px h-6 bg-border mx-2\" />\n <div className=\"flex flex-col justify-center\">\n <span className=\"text-[10px] text-muted-foreground leading-none mb-1\">预计</span>\n <span className=\"text-[14px] font-semibold leading-none\">15 min</span>\n </div>\n {more && (\n <>\n <div className=\"w-px h-6 bg-border mx-3\" />\n <button className=\"p-1 hover:bg-secondary/50 rounded-full transition-colors\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" className=\"text-foreground\">\n <path d=\"M8 3C8.55228 3 9 2.55228 9 2C9 1.44772 8.55228 1 8 1C7.44772 1 7 1.44772 7 2C7 2.55228 7.44772 3 8 3Z\" fill=\"currentColor\"/>\n <path d=\"M8 9C8.55228 9 9 8.55228 9 8C9 7.44772 8.55228 7 8 7C7.44772 7 7 7.44772 7 8C7 8.55228 7.44772 9 8 9Z\" fill=\"currentColor\"/>\n <path d=\"M8 15C8.55228 15 9 14.55228 9 14C9 13.44772 8.55228 13 8 13C7.44772 13 7 13.44772 7 14C7 14.55228 7.44772 15 8 15Z\" fill=\"currentColor\"/>\n </svg>\n </button>\n </>\n )}\n </div>\n );\n}\n\nexport function BottomActionButtons({\n mode,\n leftContent = 'none',\n mainText = \"主操作\",\n secondaryText = \"副操作\",\n hasShadow = false,\n onMainClick,\n onSecondaryClick,\n className\n}: BottomActionButtonsProps) {\n\n const shadowClass = hasShadow ? \"shadow-[0px_7px_24px_0px_rgba(0,0,0,0.06),0px_16px_29px_0px_rgba(0,0,0,0.04)]\" : \"\";\n\n // Common button styles with press state overlay\n const baseButtonClass = cn(\n \"h-[48px] rounded-[50px] flex items-center justify-center px-[16px] whitespace-nowrap text-[16px] font-medium font-sans transition-opacity hover:opacity-90 relative overflow-hidden\",\n \"active:after:absolute active:after:inset-0 active:after:bg-foreground/10 active:after:content-[''] active:after:rounded-[inherit]\"\n );\n \n const mainButtonClass = cn(baseButtonClass, \"bg-primary text-primary-foreground\", shadowClass);\n const secondaryButtonClass = cn(baseButtonClass, \"bg-secondary text-secondary-foreground\", shadowClass);\n\n return (\n <div className={cn(\n \"w-full px-[16px] py-[12px] bg-background/0 pointer-events-auto\", // Removed bg-background to allow transparency if parent handles it, but parent usually sets it. Changed to transparent/0 for flexibility as parent container has styles.\n className\n )}>\n <div className=\"flex items-center w-full gap-[12px]\">\n \n {/* Left Content Area */}\n {leftContent === 'search' && (\n <div className=\"flex-1 min-w-0\">\n <SearchBox \n className=\"h-[48px]\"\n variant=\"card\"\n placeholder=\"搜地点、查公交、找路线\"\n />\n </div>\n )}\n\n {leftContent === 'capsule' && <Capsule />}\n {leftContent === 'capsule-more' && <Capsule more={true} />}\n\n {/* Buttons Area */}\n {/* If we have left content (specifically search), the buttons might need to adapt or shrink. */}\n {/* If search is present, we typically only show one button or compact buttons? */}\n {/* For now, let's allow the flex layout to handle it, but 'search' takes flex-1 so buttons will be pushed. */}\n \n <div className={cn(\n \"flex items-center\",\n leftContent === 'search' ? \"shrink-0\" : (mode === 'single' ? \"flex-1 justify-center\" : \"flex-1 gap-[12px]\"),\n // If capsule is present, it's fixed width, so buttons take remaining space\n (leftContent === 'capsule' || leftContent === 'capsule-more') && \"flex-1\"\n )}>\n <AnimatePresence mode=\"popLayout\" initial={false}>\n {mode !== 'single' && (\n <motion.button\n key=\"secondary\"\n layout\n initial={{ opacity: 0, width: 0, scale: 0.8 }}\n animate={{ \n opacity: 1, \n scale: 1,\n width: \"auto\",\n flex: mode === 'weighted' ? 1 : 1 \n }}\n exit={{ opacity: 0, width: 0, scale: 0.8 }}\n transition={{ type: \"spring\", bounce: 0.2, duration: 0.4 }}\n className={cn(secondaryButtonClass)}\n onClick={onSecondaryClick}\n >\n <span className=\"w-full text-center overflow-hidden text-ellipsis\">{secondaryText}</span>\n </motion.button>\n )}\n\n <motion.button\n key=\"main\"\n layout\n initial={{ flex: 1 }}\n animate={{ \n flex: mode === 'weighted' ? 2 : 1 \n }}\n transition={{ type: \"spring\", bounce: 0.2, duration: 0.4 }}\n className={cn(mainButtonClass)}\n onClick={onMainClick}\n >\n {mainText}\n </motion.button>\n </AnimatePresence>\n </div>\n </div>\n </div>\n );\n}\n","export default {\np2b6d0380: \"M15.0258 13.8475L18.595 17.4158L17.4158 18.595L13.8475 15.0258C12.5198 16.0902 10.8683 16.6691 9.16667 16.6667C5.02667 16.6667 1.66667 13.3067 1.66667 9.16667C1.66667 5.02667 5.02667 1.66667 9.16667 1.66667C13.3067 1.66667 16.6667 5.02667 16.6667 9.16667C16.6691 10.8683 16.0902 12.5198 15.0258 13.8475ZM13.3542 13.2292C14.4118 12.1416 15.0024 10.6837 15 9.16667C15 5.94333 12.3892 3.33333 9.16667 3.33333C5.94333 3.33333 3.33333 5.94333 3.33333 9.16667C3.33333 12.3892 5.94333 15 9.16667 15C10.6837 15.0024 12.1416 14.4118 13.2292 13.3542L13.3542 13.2292V13.2292Z\",\np3edcb700: \"M15.8333 15.8344V8.16692L10 3.56525L4.16667 8.16692V15.8344H15.8333ZM17.5 16.6678C17.5 16.8888 17.4122 17.1007 17.2559 17.257C17.0996 17.4133 16.8877 17.5011 16.6667 17.5011H3.33333C3.11232 17.5011 2.90036 17.4133 2.74408 17.257C2.5878 17.1007 2.5 16.8888 2.5 16.6678V7.76275C2.49995 7.63688 2.52842 7.51263 2.58326 7.39933C2.63811 7.28603 2.71791 7.18663 2.81667 7.10859L9.48333 1.84942C9.63046 1.73316 9.81249 1.66992 10 1.66992C10.1875 1.66992 10.3695 1.73316 10.5167 1.84942L17.1833 7.10775C17.2822 7.18588 17.3621 7.28542 17.4169 7.39887C17.4718 7.51232 17.5002 7.63674 17.5 7.76275V16.6678V16.6678ZM5.83333 10.0011H7.5C7.5 10.6641 7.76339 11.3 8.23223 11.7689C8.70107 12.2377 9.33696 12.5011 10 12.5011C10.663 12.5011 11.2989 12.2377 11.7678 11.7689C12.2366 11.3 12.5 10.6641 12.5 10.0011H14.1667C14.1667 11.1062 13.7277 12.166 12.9463 12.9474C12.1649 13.7288 11.1051 14.1678 10 14.1678C8.89493 14.1678 7.83512 13.7288 7.05372 12.9474C6.27232 12.166 5.83333 11.1062 5.83333 10.0011V10.0011Z\",\np64ccaf0: \"M4.16667 8.33333C3.25 8.33333 2.5 9.08333 2.5 10C2.5 10.9167 3.25 11.6667 4.16667 11.6667C5.08333 11.6667 5.83333 10.9167 5.83333 10C5.83333 9.08333 5.08333 8.33333 4.16667 8.33333ZM15.8333 8.33333C14.9167 8.33333 14.1667 9.08333 14.1667 10C14.1667 10.9167 14.9167 11.6667 15.8333 11.6667C16.75 11.6667 17.5 10.9167 17.5 10C17.5 9.08333 16.75 8.33333 15.8333 8.33333ZM10 8.33333C9.08333 8.33333 8.33333 9.08333 8.33333 10C8.33333 10.9167 9.08333 11.6667 10 11.6667C10.9167 11.6667 11.6667 10.9167 11.6667 10C11.6667 9.08333 10.9167 8.33333 10 8.33333Z\",\n}\n","import React, { useState, useRef, useEffect } from \"react\";\nimport { motion, AnimatePresence } from \"motion/react\";\nimport { cn } from \"../utils\";\nimport svgPaths from \"../../../imports/svg-xnzljasnkm\";\nimport { ActionSheet, ActionSheetVariant } from \"../ActionSheet\";\n\n// --- Icons ---\nfunction IconSearch() {\n return (\n <div className=\"relative shrink-0 size-[20px]\">\n <svg className=\"block size-full\" fill=\"none\" viewBox=\"0 0 20 20\">\n <path d={svgPaths.p2b6d0380} fill=\"currentColor\" className=\"text-foreground\" />\n </svg>\n </div>\n );\n}\n\nfunction IconHome() {\n return (\n <div className=\"relative shrink-0 size-[20px]\">\n <svg className=\"block size-full\" fill=\"none\" viewBox=\"0 0 20 20\">\n <path d={svgPaths.p3edcb700} fill=\"currentColor\" className=\"text-foreground\" />\n </svg>\n </div>\n );\n}\n\nfunction IconMore() {\n return (\n <div className=\"relative shrink-0 size-[20px]\">\n <svg className=\"block size-full\" fill=\"none\" viewBox=\"0 0 20 20\">\n <path d={svgPaths.p64ccaf0} fill=\"currentColor\" className=\"text-foreground\" />\n </svg>\n </div>\n );\n}\n\n// --- Components ---\n\nfunction SearchPill({ text = \"文案\" }: { text?: string }) {\n return (\n <div className=\"box-border flex gap-[4px] h-full items-center justify-center px-[12px] py-0 relative rounded-[50px] shrink-0 bg-card/50 hover:bg-card/80 transition-colors cursor-pointer\">\n <IconSearch />\n <span className=\"leading-[24px] text-[16px] text-foreground whitespace-pre\">{text}</span>\n </div>\n );\n}\n\nfunction IconButton({ children, onClick, active }: { children: React.ReactNode, onClick?: () => void, active?: boolean }) {\n return (\n <div \n className={cn(\n \"box-border flex flex-col gap-[4px] h-full items-center justify-center px-[14px] py-[11px] relative rounded-[50px] shrink-0 w-[48px] cursor-pointer transition-colors\",\n active ? \"bg-black/5\" : \"hover:bg-black/5\"\n )}\n onClick={onClick}\n >\n {children}\n </div>\n );\n}\n\nfunction Separator() {\n return (\n <div className=\"flex h-[16px] items-center justify-center relative shrink-0 w-[1px]\">\n <div className=\"w-[1px] h-[16px] bg-black/10\" />\n </div>\n )\n}\n\nexport interface BottomToolbarProps {\n leftMode?: \"search\" | \"capsule\" | \"capsule-more\" | \"empty\";\n rightMode?: \"dual\" | \"single\";\n actionSheetVariant?: ActionSheetVariant;\n rightData?: {\n primaryLabel?: string;\n secondaryLabel?: string;\n };\n leftData?: {\n searchText?: string;\n };\n}\n\nexport function BottomToolbar({\n leftMode = \"search\",\n rightMode = \"dual\",\n actionSheetVariant = \"default\",\n rightData = { primaryLabel: \"操作\", secondaryLabel: \"操作\" },\n leftData = { searchText: \"文案\" }\n}: BottomToolbarProps) {\n const [showActionSheet, setShowActionSheet] = useState(false);\n const toolbarRef = useRef<HTMLDivElement>(null);\n const [containerWidth, setContainerWidth] = useState<number>(390);\n\n // Measure container width\n useEffect(() => {\n if (toolbarRef.current) {\n const updateWidth = () => {\n const width = toolbarRef.current?.offsetWidth || 390;\n setContainerWidth(width);\n };\n \n updateWidth();\n \n const resizeObserver = new ResizeObserver(updateWidth);\n resizeObserver.observe(toolbarRef.current);\n \n return () => resizeObserver.disconnect();\n }\n }, []);\n\n // Close when clicking outside\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (toolbarRef.current && !toolbarRef.current.contains(event.target as Node) && showActionSheet) {\n setShowActionSheet(false);\n }\n };\n\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [showActionSheet]);\n\n // Breakpoint logic based on container width\n const isSmall = containerWidth < 360; // < 360px: gap-8, buttons grow (very small devices)\n const isMedium = containerWidth >= 360 && containerWidth < 416; // 360-415px: gap-16, buttons grow (most mobile devices)\n const isLarge = containerWidth >= 416; // 416px+: justify-between, buttons fixed width (large devices)\n\n // Dynamic gap between left and right groups\n const groupGap = isSmall ? \"gap-[8px]\" : isMedium ? \"gap-[16px]\" : \"\";\n \n // Dynamic button padding based on width\n const buttonPaddingX = isSmall ? \"px-[18px]\" : isMedium && containerWidth < 390 ? \"px-[18px]\" : isMedium ? \"px-[20px]\" : \"px-[28px]\";\n\n // Render Left Group based on leftMode\n const renderLeftGroup = () => {\n if (leftMode === 'empty') return <div />;\n\n return (\n <motion.div \n initial={{ opacity: 0, scale: 0.9 }}\n animate={{ opacity: 1, scale: 1 }}\n exit={{ opacity: 0, scale: 0.9 }}\n transition={{ duration: 0.2 }}\n className=\"bg-card box-border flex h-[48px] items-center justify-center relative rounded-[24px] shadow-[0px_7px_24px_0px_rgba(0,0,0,0.06),0px_16px_29px_0px_rgba(0,0,0,0.04)] shrink-0 z-20\"\n >\n \n {(leftMode === 'search') && (\n <>\n <SearchPill text={leftData.searchText} />\n <Separator />\n </>\n )}\n\n <IconButton>\n <IconHome />\n </IconButton>\n\n {(leftMode === 'search' || leftMode === 'capsule-more') && (\n <>\n <Separator />\n {/* More Button (Trigger) */}\n <IconButton onClick={() => setShowActionSheet(true)} active={showActionSheet}>\n <IconMore />\n </IconButton>\n </>\n )}\n </motion.div>\n );\n };\n\n return (\n <div ref={toolbarRef} className=\"relative w-full mx-auto\">\n {/* Backdrop for dismissing - optional but good for UX if the user clicks anywhere on the map */}\n {showActionSheet && (\n <div className=\"fixed inset-0 z-10\" onClick={() => setShowActionSheet(false)} />\n )}\n\n <div className=\"relative rounded-[26px] w-full pointer-events-none\">\n <div className=\"flex flex-row items-end w-full pointer-events-auto\">\n <div className={cn(\n \"box-border flex items-end pb-[28px] pt-[24px] px-[12px] relative w-full\",\n isLarge ? \"justify-between\" : groupGap\n )}>\n \n {/* Left Group (Swaps with ActionSheet) */}\n <div className=\"relative h-[48px] flex items-end justify-start shrink-0\"> \n <AnimatePresence mode=\"wait\">\n {!showActionSheet ? (\n renderLeftGroup()\n ) : (\n <div className=\"absolute bottom-0 left-0 z-30 w-max\">\n {/* ActionSheet Component now rendered directly here */}\n <ActionSheet \n isOpen={true} \n variant={actionSheetVariant}\n className=\"bottom-0 left-0 shadow-none origin-bottom-left\"\n />\n </div>\n )}\n </AnimatePresence>\n </div>\n\n {/* Right Group (Always visible) */}\n <div className={cn(\n \"flex gap-[8px] items-center justify-end relative\",\n !isLarge && \"basis-0 grow shrink-0 min-h-px min-w-px\"\n )}>\n {/* Secondary Action */}\n {rightMode === 'dual' && (\n <div className={cn(\n \"bg-card box-border flex gap-[4px] h-[48px] items-center justify-center min-w-[64px] max-w-[88px] py-[10px] relative rounded-[50px] shadow-[0px_7px_24px_0px_rgba(0,0,0,0.06),0px_16px_29px_0px_rgba(0,0,0,0.04)] cursor-pointer transition-colors overflow-hidden\",\n \"active:after:absolute active:after:inset-0 active:after:bg-black/8 dark:active:after:bg-white/10 active:after:content-[''] active:after:rounded-[inherit]\",\n buttonPaddingX,\n !isLarge && \"basis-0 grow shrink-0\"\n )}>\n <span className=\"leading-[24px] text-[16px] text-foreground whitespace-pre\">\n {rightData.secondaryLabel || \"操作\"}\n </span>\n </div>\n )}\n \n {/* Primary Action */}\n <div className={cn(\n \"bg-primary box-border flex gap-[4px] h-[48px] items-center justify-center min-w-[64px] max-w-[88px] py-[10px] relative rounded-[50px] shadow-[0px_7px_24px_0px_rgba(0,0,0,0.06),0px_16px_29px_0px_rgba(0,0,0,0.04)] cursor-pointer transition-colors overflow-hidden\",\n \"active:after:absolute active:after:inset-0 active:after:bg-black/8 dark:active:after:bg-white/10 active:after:content-[''] active:after:rounded-[inherit]\",\n buttonPaddingX,\n !isLarge && \"basis-0 grow shrink-0\"\n )}>\n <span className=\"leading-[24px] text-[16px] text-primary-foreground whitespace-pre\">\n {rightData.primaryLabel || \"操作\"}\n </span>\n </div>\n </div>\n\n </div>\n </div>\n </div>\n </div>\n );\n}\n","import React, { useEffect, useRef } from 'react';\n\ndeclare global {\n interface Window {\n TMap: any;\n }\n}\n\ninterface TencentMapProps {\n className?: string;\n center?: { lat: number; lng: number };\n zoom?: number;\n pitch?: number;\n rotation?: number;\n showPois?: boolean;\n showText?: boolean;\n roamMode?: 'none' | 'orbit'; \n demoMode?: 'none' | 'route';\n markers?: Array<{ id: string; lat: number; lng: number; name?: string }>;\n}\n\nexport function TencentMap({ \n className, \n center = { lat: 39.984120, lng: 116.307484 }, \n zoom = 17,\n pitch = 60,\n rotation = 0,\n showPois = true,\n showText = true,\n roamMode = 'none',\n demoMode = 'none',\n markers = []\n}: TencentMapProps) {\n const mapRef = useRef<HTMLDivElement>(null);\n const mapInstance = useRef<any>(null);\n const animationRef = useRef<number>();\n \n // Layers\n const routeLayerRef = useRef<any>(null);\n const markerLayerRef = useRef<any>(null);\n const selectLayerRef = useRef<any>(null); // New selection marker layer\n const customMarkersLayerRef = useRef<any>(null); // Layer for external markers prop\n const moveAnimationRef = useRef<number>();\n\n // Initialize Map\n useEffect(() => {\n const initMap = () => {\n if (window.TMap && mapRef.current && !mapInstance.current) {\n // Construct initial features\n const features = ['base', 'building3d'];\n if (showPois) features.push('point');\n if (showText) features.push('label');\n\n mapInstance.current = new window.TMap.Map(mapRef.current, {\n center: new window.TMap.LatLng(center.lat, center.lng),\n zoom: zoom,\n pitch: pitch,\n rotation: rotation,\n viewMode: '3D',\n baseMap: {\n type: 'vector',\n features: features\n },\n // Disable all default controls for a pure map view\n zoomControl: false,\n scaleControl: false,\n rotationControl: false,\n pitchControl: false, // Explicitly disable pitch control (often the 3D ring)\n navigationControl: false, \n mapTypeControl: false,\n });\n\n // Click Listener for POI Selection\n mapInstance.current.on('click', (evt: any) => {\n // If a POI is clicked (evt.poi exists), show a marker there\n if (evt.poi && evt.poi.latLng) {\n handlePoiSelect(evt.poi.latLng);\n } else {\n // Optional: Clear selection if clicking empty ground? \n // User didn't explicitly ask to clear, but it's good UX.\n clearSelection();\n }\n });\n }\n };\n\n if (!window.TMap) {\n const script = document.createElement('script');\n script.src = `https://map.qq.com/api/gljs?v=1.exp&key=QK3BZ-YUJLG-MG5Q3-QHI2I-LRFM3-2MBHJ`;\n script.async = true;\n script.onload = () => {\n initMap();\n };\n document.body.appendChild(script);\n } else {\n initMap();\n }\n\n return () => {\n // Cleanup if needed\n };\n }, []); // Empty dependency array = run once on mount\n\n const clearSelection = () => {\n if (selectLayerRef.current) {\n selectLayerRef.current.setMap(null);\n selectLayerRef.current = null;\n }\n };\n\n const handlePoiSelect = (latLng: any) => {\n if (!mapInstance.current || !window.TMap) return;\n\n // Initialize layer if needed\n if (!selectLayerRef.current) {\n selectLayerRef.current = new window.TMap.MultiMarker({\n map: mapInstance.current,\n styles: {\n // Large \"Water Drop\" style marker (using default TMap pin image or similar)\n 'selected': new window.TMap.MarkerStyle({\n width: 30, \n height: 45,\n anchor: { x: 15, y: 45 },\n src: 'https://mapapi.qq.com/web/lbs/javascriptGL/demo/img/markerDefault.png' \n })\n },\n geometries: []\n });\n } else {\n selectLayerRef.current.setMap(mapInstance.current);\n }\n\n // Update Marker Position\n selectLayerRef.current.setGeometries([{\n id: 'poi-selected',\n styleId: 'selected',\n position: latLng\n }]);\n };\n\n // Helpers for Demo Features\n const createRouteDemo = () => {\n if (!mapInstance.current || !window.TMap) return;\n const map = mapInstance.current;\n const center = map.getCenter();\n const startLat = center.getLat() - 0.001;\n const startLng = center.getLng() - 0.001;\n const endLat = center.getLat() + 0.001;\n const endLng = center.getLng() + 0.001;\n\n const path = [\n new window.TMap.LatLng(startLat, startLng),\n new window.TMap.LatLng(startLat, endLng), // Go East\n new window.TMap.LatLng(endLat, endLng), // Go North\n ];\n\n // 1. Draw Line\n if (routeLayerRef.current) routeLayerRef.current.setMap(null);\n routeLayerRef.current = new window.TMap.MultiPolyline({\n map: map,\n styles: {\n 'route': new window.TMap.PolylineStyle({\n color: '#3777FF', \n width: 6,\n borderWidth: 2,\n borderColor: '#FFF',\n lineCap: 'round'\n })\n },\n geometries: [{\n id: 'demo-route',\n styleId: 'route',\n paths: path\n }]\n });\n\n // 2. Add Markers (Start/End + Car)\n if (markerLayerRef.current) markerLayerRef.current.setMap(null);\n markerLayerRef.current = new window.TMap.MultiMarker({\n map: map,\n styles: {\n 'start': new window.TMap.MarkerStyle({\n width: 24, height: 36,\n anchor: { x: 12, y: 36 },\n src: 'https://mapapi.qq.com/web/lbs/javascriptGL/demo/img/start.png'\n }),\n 'end': new window.TMap.MarkerStyle({\n width: 24, height: 36,\n anchor: { x: 12, y: 36 },\n src: 'https://mapapi.qq.com/web/lbs/javascriptGL/demo/img/end.png'\n }),\n 'car': new window.TMap.MarkerStyle({\n width: 48, height: 24,\n anchor: { x: 24, y: 12 },\n src: 'https://mapapi.qq.com/web/lbs/javascriptGL/demo/img/car.png',\n faceTo: 'map'\n })\n },\n geometries: [\n { id: 'start', styleId: 'start', position: path[0] },\n { id: 'end', styleId: 'end', position: path[path.length - 1] },\n { id: 'car', styleId: 'car', position: path[0] } // Initial car pos\n ]\n });\n \n // 3. Animate Car\n if (moveAnimationRef.current) cancelAnimationFrame(moveAnimationRef.current);\n \n let progress = 0;\n const speed = 0.002; // progress per frame\n \n const animateCar = () => {\n if (!markerLayerRef.current) return;\n progress += speed;\n if (progress > 1) progress = 0; // Loop\n \n // Simple interpolation between 3 points (2 segments)\n // Segment 1: 0 -> 0.5\n // Segment 2: 0.5 -> 1\n let currentPos;\n let heading = 0;\n \n if (progress < 0.5) {\n // First leg\n const p = progress * 2;\n const lat = path[0].lat + (path[1].lat - path[0].lat) * p;\n const lng = path[0].lng + (path[1].lng - path[0].lng) * p;\n currentPos = new window.TMap.LatLng(lat, lng);\n heading = 90; // East\n } else {\n // Second leg\n const p = (progress - 0.5) * 2;\n const lat = path[1].lat + (path[2].lat - path[1].lat) * p;\n const lng = path[1].lng + (path[2].lng - path[1].lng) * p;\n currentPos = new window.TMap.LatLng(lat, lng);\n heading = 0; // North\n }\n\n // Update position using updateGeometries\n markerLayerRef.current.updateGeometries([{\n id: 'car',\n position: currentPos\n }]);\n \n moveAnimationRef.current = requestAnimationFrame(animateCar);\n };\n \n moveAnimationRef.current = requestAnimationFrame(animateCar);\n };\n\n const clearDemos = () => {\n if (routeLayerRef.current) {\n routeLayerRef.current.setMap(null);\n routeLayerRef.current = null;\n }\n if (markerLayerRef.current) {\n markerLayerRef.current.setMap(null);\n markerLayerRef.current = null;\n }\n if (selectLayerRef.current) {\n selectLayerRef.current.setMap(null);\n selectLayerRef.current = null;\n }\n if (moveAnimationRef.current) {\n cancelAnimationFrame(moveAnimationRef.current);\n }\n };\n\n // Handle Demo Mode Changes\n useEffect(() => {\n if (!mapInstance.current) return;\n \n // Sync demo mode to map instance for event handlers\n mapInstance.current['__demoMode'] = demoMode;\n\n // Clear previous\n clearDemos();\n\n if (demoMode === 'route') {\n createRouteDemo();\n }\n\n return () => {\n // cleanup on unmount or change\n // clearDemos(); // We don't want to clear immediately if just re-rendering, but demoMode change implies switch\n };\n }, [demoMode]);\n\n\n // Update Map Features (POI/Text)\n useEffect(() => {\n if (mapInstance.current && window.TMap) {\n const features = ['base', 'building3d'];\n if (showPois) features.push('point');\n if (showText) features.push('label');\n \n if (mapInstance.current.setBaseMap) {\n mapInstance.current.setBaseMap({\n type: 'vector',\n features: features\n });\n }\n }\n }, [showPois, showText]);\n\n // Handle Roaming / Animation\n useEffect(() => {\n if (!mapInstance.current) return;\n\n const animate = () => {\n if (roamMode === 'orbit') {\n const map = mapInstance.current;\n // Rotate 0.2 degrees per frame\n const newRotation = (map.getRotation() + 0.2) % 360;\n map.setRotation(newRotation);\n animationRef.current = requestAnimationFrame(animate);\n }\n };\n\n if (roamMode === 'orbit') {\n cancelAnimationFrame(animationRef.current!);\n animationRef.current = requestAnimationFrame(animate);\n } else {\n cancelAnimationFrame(animationRef.current!);\n }\n\n return () => {\n if (animationRef.current) cancelAnimationFrame(animationRef.current);\n };\n }, [roamMode]);\n\n // Update External Markers\n useEffect(() => {\n if (!mapInstance.current || !window.TMap) return;\n\n // Initialize layer if needed\n if (!customMarkersLayerRef.current) {\n customMarkersLayerRef.current = new window.TMap.MultiMarker({\n map: mapInstance.current,\n styles: {\n 'default-marker': new window.TMap.MarkerStyle({\n width: 24, \n height: 36,\n anchor: { x: 12, y: 36 },\n src: 'https://mapapi.qq.com/web/lbs/javascriptGL/demo/img/markerDefault.png' \n })\n },\n geometries: []\n });\n }\n\n if (markers && markers.length > 0) {\n const geometries = markers.map(m => ({\n id: m.id,\n styleId: 'default-marker',\n position: new window.TMap.LatLng(m.lat, m.lng),\n properties: { title: m.name }\n }));\n customMarkersLayerRef.current.setGeometries(geometries);\n } else {\n customMarkersLayerRef.current.setGeometries([]);\n }\n }, [markers]);\n\n // Update Map View when props change\n useEffect(() => {\n if (mapInstance.current && window.TMap) {\n const targetStatus = {\n center: new window.TMap.LatLng(center.lat, center.lng),\n zoom: zoom,\n pitch: pitch,\n rotation: rotation,\n };\n \n // Use easeTo for smooth animation (1000ms default duration)\n mapInstance.current.easeTo(targetStatus, { duration: 1200, ease: 'cubic-in-out' });\n }\n }, [center.lat, center.lng, zoom, pitch, rotation]);\n\n\n // Force cleanup of controls via DOM manipulation\n useEffect(() => {\n const nukeControls = () => {\n if (!mapRef.current) return;\n \n // Get map dimensions\n const mapRect = mapRef.current.getBoundingClientRect();\n if (mapRect.width === 0 || mapRect.height === 0) return;\n\n // Strategy: Iterate over ALL direct children of the map container\n // TMap usually puts the canvas in one div, and controls/overlays in others.\n // We want to find the controls.\n \n const children = Array.from(mapRef.current.children);\n \n children.forEach((child) => {\n const element = child as HTMLElement;\n \n // 1. Skip <style> tags (our own styles)\n if (element.tagName === 'STYLE') return;\n \n // 2. Identify the Canvas container (The actual map)\n // Usually it has a canvas inside or is a canvas. \n // If we hide the map, we failed.\n if (element.querySelector('canvas') || element.tagName === 'CANVAS') {\n return; \n }\n \n // 3. Check for specific control signatures\n const innerHTML = element.innerHTML.toLowerCase();\n if (innerHTML.includes('rotate') || innerHTML.includes('compass') || innerHTML.includes('control')) {\n element.style.display = 'none';\n return;\n }\n\n // 4. Geometric Targeting\n // If it's a DIV, Absolute/Fixed, and in the Top-Right Quadrant\n const style = window.getComputedStyle(element);\n const position = style.position;\n \n if (position === 'absolute' || position === 'fixed') {\n const rect = element.getBoundingClientRect();\n \n // Check intersection with Top-Right Safe Zone (e.g. 100x150 area in top right)\n const mapRight = mapRect.right;\n const mapTop = mapRect.top;\n \n // Element center point\n const elCenterX = rect.left + rect.width / 2;\n const elCenterY = rect.top + rect.height / 2;\n \n // Is center in top right?\n // Right side: > 70% of width\n // Top side: < 20% of height\n const relativeX = elCenterX - mapRect.left;\n const relativeY = elCenterY - mapRect.top;\n \n const isRight = relativeX > (mapRect.width * 0.7);\n const isTop = relativeY < (mapRect.height * 0.3);\n \n if (isRight && isTop) {\n // High probability of being a control (Compass/Layers/etc)\n // Markers are usually centrally located or scattered, but rarely fixed to the corner \n // UNLESS it's a specific UI element.\n // We assume any top-right element in the map container that isn't the canvas is a control to be killed.\n element.style.display = 'none';\n element.style.opacity = '0';\n element.style.pointerEvents = 'none';\n }\n }\n });\n \n // 5. Deep Search for nested specific controls (in case structure is deep)\n // Search for the specific white circle compass by generic attributes often found\n const potentials = mapRef.current.querySelectorAll('div[title], img, div[class*=\"control\"]');\n potentials.forEach((el: any) => {\n const title = el.getAttribute('title');\n if (title && ['旋转', '透视', '俯仰', '指南针', 'Rotation', 'Compass', 'Pitch'].includes(title)) {\n el.style.display = 'none';\n }\n });\n };\n\n // Run periodically - TMap might re-inject controls on interaction\n const intervalId = setInterval(nukeControls, 100); // 10Hz\n \n return () => {\n clearInterval(intervalId);\n };\n }, []);\n\n return (\n <div ref={mapRef} className={`tencent-map-container-custom ${className || ''}`} style={{ width: '100%', height: '100%', position: 'relative', overflow: 'hidden' }}>\n {/* Forcefully hide any TMap controls that might persist due to API defaults or caching */}\n <style>{`\n /* 1. Standard API Class Hiding */\n .tmap-zoom-control, \n .tmap-scale-control, \n .tmap-rotation-control,\n .tmap-control,\n .tmap-control-container,\n \n /* 2. Title-based Hiding (Chinese & English) */\n div[title=\"旋转\"], \n div[title=\"透视\"],\n div[title=\"俯仰\"],\n div[title=\"复位\"],\n div[title=\"指南针\"],\n div[title=\"Rotation\"],\n div[title=\"Compass\"],\n div[title=\"Pitch\"],\n div[title=\"Reset\"],\n \n /* 3. Internal Class Hiding */\n .tmap-compass-control,\n .tmap-rotate-control,\n .tmap-pitch-control,\n \n /* 4. Logo & Attribution */\n .logo-text,\n .tmap-logo,\n a[href*=\"map.qq.com\"],\n img[src*=\"logo\"] {\n display: none !important;\n }\n\n /* 5. AGGRESSIVE POSITION-BASED HIDING */\n /* Target absolute positioned divs in the top-right corner. */\n \n /* Any div that is absolutely positioned, pinned to the right, and pinned to the top */\n .tencent-map-container-custom div[style*=\"position: absolute\"][style*=\"right\"][style*=\"top\"] {\n display: none !important;\n filter: grayscale(100%) !important; /* Fallback */\n opacity: 0 !important;\n pointer-events: none !important;\n }\n `}</style>\n </div>\n );\n}\n","export function TypographyDocs() {\n return (\n <div className=\"flex flex-col gap-8 p-6 rounded-2xl bg-background\">\n {/* Header */}\n <div className=\"flex flex-col gap-3\">\n <h2 className=\"text-foreground\">Typography 字体系统</h2>\n <p className=\"text-muted-foreground\">\n 设计系统采用 PingFang SC 作为主字体,提供6个标准字号层级。大字号(24/20/18px)支持 Bold (800)、Medium (600)、Regular (400) 三种字重,中小字号(16/14/12px)支持 Medium (600)、Regular (400) 两种字重。所有字体样式已在 /styles/globals.css 中定义,通过语义化HTML标签自动应用。\n </p>\n </div>\n\n {/* Typography Scale */}\n <div className=\"flex flex-col gap-6\">\n {/* 24px - Page Title */}\n <div className=\"bg-card-muted p-4 rounded-[16px]\">\n <div className=\"flex flex-col gap-4\">\n <div className=\"flex items-start justify-between gap-8\">\n <div className=\"flex-1\">\n <h4 className=\"text-foreground mb-2\">页面大标题 / Page Title</h4>\n <div className=\"flex flex-col gap-1 text-sm text-muted-foreground\">\n <span>Font Size: 24px</span>\n <span>Line Height: 32px</span>\n <span>Font Weight: Bold (800) / Medium (600) / Regular (400)</span>\n </div>\n </div>\n <div className=\"flex-1 flex flex-col gap-2\">\n <p style={{ fontSize: '24px', lineHeight: '32px', fontWeight: 800, fontFamily: 'PingFang SC, -apple-system, sans-serif' }} className=\"text-foreground\">\n 用户体验设计中心\n </p>\n <p style={{ fontSize: '24px', lineHeight: '32px', fontWeight: 600, fontFamily: 'PingFang SC, -apple-system, sans-serif' }} className=\"text-foreground\">\n 用户体验设计中心\n </p>\n <p style={{ fontSize: '24px', lineHeight: '32px', fontWeight: 400, fontFamily: 'PingFang SC, -apple-system, sans-serif' }} className=\"text-foreground\">\n 用户体验设计中心\n </p>\n </div>\n </div>\n </div>\n </div>\n\n {/* 20px - Large Title */}\n <div className=\"bg-card-muted p-4 rounded-[16px]\">\n <div className=\"flex flex-col gap-4\">\n <div className=\"flex items-start justify-between gap-8\">\n <div className=\"flex-1\">\n <h4 className=\"text-foreground mb-2\">大标题 / Large Title</h4>\n <div className=\"flex flex-col gap-1 text-sm text-muted-foreground\">\n <span>Font Size: 20px</span>\n <span>Line Height: 28px</span>\n <span>Font Weight: Bold (800) / Medium (600) / Regular (400)</span>\n </div>\n </div>\n <div className=\"flex-1 flex flex-col gap-2\">\n <p style={{ fontSize: '20px', lineHeight: '28px', fontWeight: 800, fontFamily: 'PingFang SC, -apple-system, sans-serif' }} className=\"text-foreground\">\n 用户体验设计中心\n </p>\n <p style={{ fontSize: '20px', lineHeight: '28px', fontWeight: 600, fontFamily: 'PingFang SC, -apple-system, sans-serif' }} className=\"text-foreground\">\n 用户体验设计中心\n </p>\n <p style={{ fontSize: '20px', lineHeight: '28px', fontWeight: 400, fontFamily: 'PingFang SC, -apple-system, sans-serif' }} className=\"text-foreground\">\n 用户体验设计中心\n </p>\n </div>\n </div>\n </div>\n </div>\n\n {/* 18px - Section Title */}\n <div className=\"bg-card-muted p-4 rounded-[16px]\">\n <div className=\"flex flex-col gap-4\">\n <div className=\"flex items-start justify-between gap-8\">\n <div className=\"flex-1\">\n <h4 className=\"text-foreground mb-2\">分类标题 / Section Title</h4>\n <div className=\"flex flex-col gap-1 text-sm text-muted-foreground\">\n <span>Font Size: 18px</span>\n <span>Line Height: 24px</span>\n <span>Font Weight: Bold (800) / Medium (600) / Regular (400)</span>\n </div>\n </div>\n <div className=\"flex-1 flex flex-col gap-2\">\n <p style={{ fontSize: '18px', lineHeight: '24px', fontWeight: 800, fontFamily: 'PingFang SC, -apple-system, sans-serif' }} className=\"text-foreground\">\n 用户体验设计中心\n </p>\n <p style={{ fontSize: '18px', lineHeight: '24px', fontWeight: 600, fontFamily: 'PingFang SC, -apple-system, sans-serif' }} className=\"text-foreground\">\n 用户体验设计中心\n </p>\n <p style={{ fontSize: '18px', lineHeight: '24px', fontWeight: 400, fontFamily: 'PingFang SC, -apple-system, sans-serif' }} className=\"text-foreground\">\n 用户体验设计中心\n </p>\n </div>\n </div>\n </div>\n </div>\n\n {/* 16px - Emphasis */}\n <div className=\"bg-card-muted p-4 rounded-[16px]\">\n <div className=\"flex flex-col gap-4\">\n <div className=\"flex items-start justify-between gap-8\">\n <div className=\"flex-1\">\n <h4 className=\"text-foreground mb-2\">强调字 / Emphasis</h4>\n <div className=\"flex flex-col gap-1 text-sm text-muted-foreground\">\n <span>Font Size: 16px</span>\n <span>Line Height: 24px</span>\n <span>Font Weight: Medium (600) / Regular (400)</span>\n </div>\n </div>\n <div className=\"flex-1 flex flex-col gap-2\">\n <p style={{ fontSize: '16px', lineHeight: '24px', fontWeight: 600, fontFamily: 'PingFang SC, -apple-system, sans-serif' }} className=\"text-foreground\">\n 用户体验设计中心\n </p>\n <p style={{ fontSize: '16px', lineHeight: '24px', fontWeight: 400, fontFamily: 'PingFang SC, -apple-system, sans-serif' }} className=\"text-muted-foreground\">\n 用户体验设计中心\n </p>\n </div>\n </div>\n </div>\n </div>\n\n {/* 14px - Body Text */}\n <div className=\"bg-card-muted p-4 rounded-[16px]\">\n <div className=\"flex flex-col gap-4\">\n <div className=\"flex items-start justify-between gap-8\">\n <div className=\"flex-1\">\n <h4 className=\"text-foreground mb-2\">文本 / Body Text</h4>\n <div className=\"flex flex-col gap-1 text-sm text-muted-foreground\">\n <span>Font Size: 14px</span>\n <span>Line Height: 20px</span>\n <span>Font Weight: Medium (600) / Regular (400)</span>\n </div>\n </div>\n <div className=\"flex-1 flex flex-col gap-2\">\n <p style={{ fontSize: '14px', lineHeight: '20px', fontWeight: 600, fontFamily: 'PingFang SC, -apple-system, sans-serif' }} className=\"text-foreground\">\n 用户体验设计中心\n </p>\n <p style={{ fontSize: '14px', lineHeight: '20px', fontWeight: 400, fontFamily: 'PingFang SC, -apple-system, sans-serif' }} className=\"text-muted-foreground\">\n 用户体验设计中心\n </p>\n </div>\n </div>\n </div>\n </div>\n\n {/* 12px - Caption */}\n <div className=\"bg-card-muted p-4 rounded-[16px]\">\n <div className=\"flex flex-col gap-4\">\n <div className=\"flex items-start justify-between gap-8\">\n <div className=\"flex-1\">\n <h4 className=\"text-foreground mb-2\">注释 / Caption</h4>\n <div className=\"flex flex-col gap-1 text-sm text-muted-foreground\">\n <span>Font Size: 12px</span>\n <span>Line Height: 16px</span>\n <span>Font Weight: Medium (600) / Regular (400)</span>\n </div>\n </div>\n <div className=\"flex-1 flex flex-col gap-2\">\n <p style={{ fontSize: '12px', lineHeight: '16px', fontWeight: 600, fontFamily: 'PingFang SC, -apple-system, sans-serif' }} className=\"text-foreground\">\n 用户体验设计中心\n </p>\n <p style={{ fontSize: '12px', lineHeight: '16px', fontWeight: 400, fontFamily: 'PingFang SC, -apple-system, sans-serif' }} className=\"text-muted-foreground\">\n 用户体验设计中心\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {/* Usage Guidelines */}\n <div className=\"bg-card border-[0.5px] border-card-border rounded-[16px] shadow-[var(--elevation-sm)] p-4\">\n <h4 className=\"text-foreground mb-3\">使用指南 / Usage Guidelines</h4>\n <div className=\"flex flex-col gap-2 text-sm text-muted-foreground\">\n <p>• 优先使用语义化HTML标签(h1-h6, p等),由全局样式自动应用字体设置</p>\n <p>• 禁止使用Tailwind字体类(text-xl, font-bold等),除非用户明确要求</p>\n <p>• 所有字体样式已在 /styles/globals.css 中定义,确保Dark Mode自动适配</p>\n <p>• 字体家族:PingFang SC, -apple-system, BlinkMacSystemFont, sans-serif</p>\n </div>\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport { StatGrid } from \"./StatGrid\";\nimport { PoiItem } from \"./PoiItem\";\nimport { NewsItem } from \"./NewsItem\";\n\nexport function GridSystemDocs() {\n return (\n <div className=\"flex flex-col gap-8 p-6 rounded-2xl bg-background\">\n {/* Header */}\n <div className=\"flex flex-col gap-3\">\n <h2 className=\"text-foreground\">Grid System 栅格系统</h2>\n <p className=\"text-muted-foreground\">\n 移动端栅格系统基于12列网格,通过标准化的边距、间距和列宽,确保布局的一致性。适用于390px基准宽度的移动端设计。\n </p>\n </div>\n\n {/* 页面边距规范 */}\n <div className=\"bg-card-muted p-4 rounded-[16px]\">\n <h3 className=\"text-foreground mb-4\">页面边距规范 / Page Margins</h3>\n \n <div className=\"space-y-4\">\n {/* 16px 标准边距 */}\n <div className=\"bg-card p-4 rounded-lg border border-border\">\n <div className=\"flex items-center justify-between mb-3\">\n <h4 className=\"text-foreground\">标准页面边距</h4>\n <span className=\"text-sm text-muted-foreground font-mono\">px-4 (16px)</span>\n </div>\n <div className=\"bg-muted/30 p-4 relative\">\n <div className=\"absolute left-0 top-0 bottom-0 w-4 bg-primary/20 border-r-2 border-primary\">\n <span className=\"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 text-[10px] text-primary rotate-90 whitespace-nowrap\">16px</span>\n </div>\n <div className=\"absolute right-0 top-0 bottom-0 w-4 bg-primary/20 border-l-2 border-primary\">\n <span className=\"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 text-[10px] text-primary rotate-90 whitespace-nowrap\">16px</span>\n </div>\n <div className=\"bg-card p-3 text-center text-sm text-muted-foreground\">\n 页面主内容区域\n </div>\n </div>\n </div>\n\n {/* 12px 推送边距 */}\n <div className=\"bg-card p-4 rounded-lg border border-border\">\n <div className=\"flex items-center justify-between mb-3\">\n <h4 className=\"text-foreground\">推送通知边距</h4>\n <span className=\"text-sm text-muted-foreground font-mono\">px-3 (12px)</span>\n </div>\n <div className=\"bg-muted/30 p-3 relative\">\n <div className=\"absolute left-0 top-0 bottom-0 w-3 bg-accent/20 border-r-2 border-accent\">\n <span className=\"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 text-[10px] text-accent rotate-90 whitespace-nowrap\">12px</span>\n </div>\n <div className=\"absolute right-0 top-0 bottom-0 w-3 bg-accent/20 border-l-2 border-accent\">\n <span className=\"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 text-[10px] text-accent rotate-90 whitespace-nowrap\">12px</span>\n </div>\n <div className=\"bg-card p-3 text-center text-sm text-muted-foreground\">\n 推送通知内容\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {/* 垂直间距规范 */}\n <div className=\"bg-card-muted p-4 rounded-[16px]\">\n <h3 className=\"text-foreground mb-4\">垂直间距规范 / Vertical Spacing</h3>\n \n <div className=\"bg-card p-4 rounded-lg border border-border space-y-6\">\n {/* 24px 模块间距 */}\n <div>\n <div className=\"flex items-center justify-between mb-2\">\n <span className=\"text-sm text-foreground\">大模块间距</span>\n <span className=\"text-xs text-muted-foreground font-mono\">space-y-6 (24px)</span>\n </div>\n <div className=\"space-y-6\">\n <div className=\"bg-primary/10 h-12 rounded flex items-center justify-center text-sm text-primary\">模块 A</div>\n <div className=\"bg-primary/10 h-12 rounded flex items-center justify-center text-sm text-primary\">模块 B</div>\n </div>\n </div>\n\n {/* 16px 中等间距 */}\n <div>\n <div className=\"flex items-center justify-between mb-2\">\n <span className=\"text-sm text-foreground\">中等模块间距</span>\n <span className=\"text-xs text-muted-foreground font-mono\">space-y-4 (16px)</span>\n </div>\n <div className=\"space-y-4\">\n <div className=\"bg-accent/10 h-10 rounded flex items-center justify-center text-sm text-accent\">区块 A</div>\n <div className=\"bg-accent/10 h-10 rounded flex items-center justify-center text-sm text-accent\">区块 B</div>\n </div>\n </div>\n\n {/* 12px 小间距 */}\n <div>\n <div className=\"flex items-center justify-between mb-2\">\n <span className=\"text-sm text-foreground\">小模块间距</span>\n <span className=\"text-xs text-muted-foreground font-mono\">space-y-3 (12px)</span>\n </div>\n <div className=\"space-y-3\">\n <div className=\"bg-muted h-8 rounded flex items-center justify-center text-xs text-muted-foreground\">内容 A</div>\n <div className=\"bg-muted h-8 rounded flex items-center justify-center text-xs text-muted-foreground\">内容 B</div>\n </div>\n </div>\n </div>\n </div>\n\n {/* 12列栅格布局 */}\n <div className=\"bg-card-muted p-4 rounded-[16px]\">\n <h3 className=\"text-foreground mb-4\">12列栅格布局 / 12-Column Grid</h3>\n \n <div className=\"space-y-4\">\n {/* 等分布局 */}\n <div className=\"bg-card p-4 rounded-lg border border-border\">\n <h4 className=\"text-foreground mb-3\">等分布局</h4>\n \n {/* 2列 */}\n <div className=\"mb-4\">\n <p className=\"text-xs text-muted-foreground mb-2\">2列布局 (grid-cols-2)</p>\n <div className=\"grid grid-cols-2 gap-4\">\n <div className=\"bg-primary/10 h-20 rounded flex items-center justify-center text-sm text-primary\">col-1</div>\n <div className=\"bg-primary/10 h-20 rounded flex items-center justify-center text-sm text-primary\">col-2</div>\n </div>\n </div>\n\n {/* 3列 */}\n <div className=\"mb-4\">\n <p className=\"text-xs text-muted-foreground mb-2\">3列布局 (grid-cols-3)</p>\n <div className=\"grid grid-cols-3 gap-3\">\n <div className=\"bg-accent/10 h-16 rounded flex items-center justify-center text-xs text-accent\">1</div>\n <div className=\"bg-accent/10 h-16 rounded flex items-center justify-center text-xs text-accent\">2</div>\n <div className=\"bg-accent/10 h-16 rounded flex items-center justify-center text-xs text-accent\">3</div>\n </div>\n </div>\n\n {/* 4列 */}\n <div>\n <p className=\"text-xs text-muted-foreground mb-2\">4列布局 (grid-cols-4)</p>\n <div className=\"grid grid-cols-4 gap-2\">\n <div className=\"bg-muted h-12 rounded flex items-center justify-center text-xs text-muted-foreground\">1</div>\n <div className=\"bg-muted h-12 rounded flex items-center justify-center text-xs text-muted-foreground\">2</div>\n <div className=\"bg-muted h-12 rounded flex items-center justify-center text-xs text-muted-foreground\">3</div>\n <div className=\"bg-muted h-12 rounded flex items-center justify-center text-xs text-muted-foreground\">4</div>\n </div>\n </div>\n </div>\n\n {/* 不等分布局 */}\n <div className=\"bg-card p-4 rounded-lg border border-border\">\n <h4 className=\"text-foreground mb-3\">不等分布局(基于12列)</h4>\n \n {/* 1:2 布局 */}\n <div className=\"mb-4\">\n <p className=\"text-xs text-muted-foreground mb-2\">1:2 布局 (col-span-4 + col-span-8)</p>\n <div className=\"grid grid-cols-12 gap-2\">\n <div className=\"col-span-4 bg-primary/10 h-20 rounded flex items-center justify-center text-sm text-primary\">4列</div>\n <div className=\"col-span-8 bg-primary/10 h-20 rounded flex items-center justify-center text-sm text-primary\">8列</div>\n </div>\n </div>\n\n {/* 2:1 布局 */}\n <div className=\"mb-4\">\n <p className=\"text-xs text-muted-foreground mb-2\">2:1 布局 (col-span-8 + col-span-4)</p>\n <div className=\"grid grid-cols-12 gap-2\">\n <div className=\"col-span-8 bg-accent/10 h-20 rounded flex items-center justify-center text-sm text-accent\">8列</div>\n <div className=\"col-span-4 bg-accent/10 h-20 rounded flex items-center justify-center text-sm text-accent\">4列</div>\n </div>\n </div>\n\n {/* 1:1:1 布局 */}\n <div>\n <p className=\"text-xs text-muted-foreground mb-2\">1:1:1 布局 (col-span-4 × 3)</p>\n <div className=\"grid grid-cols-12 gap-2\">\n <div className=\"col-span-4 bg-muted h-16 rounded flex items-center justify-center text-xs text-muted-foreground\">4列</div>\n <div className=\"col-span-4 bg-muted h-16 rounded flex items-center justify-center text-xs text-muted-foreground\">4列</div>\n <div className=\"col-span-4 bg-muted h-16 rounded flex items-center justify-center text-xs text-muted-foreground\">4列</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {/* Flexbox 布局模式 */}\n <div className=\"bg-card-muted p-4 rounded-[16px]\">\n <h3 className=\"text-foreground mb-4\">Flexbox 布局模式 / Flex Layouts</h3>\n \n <div className=\"space-y-4\">\n {/* 左固定 + 右自适应 */}\n <div className=\"bg-card p-4 rounded-lg border border-border\">\n <h4 className=\"text-foreground mb-2\">左固定 + 右自适应</h4>\n <p className=\"text-xs text-muted-foreground mb-3\">适用场景:列表项、商品卡片</p>\n <div className=\"flex gap-2\">\n <div className=\"shrink-0 w-[91px] h-[91px] bg-primary/10 rounded-lg flex items-center justify-center text-xs text-primary\">91×91px<br/>图片</div>\n <div className=\"flex-1 min-w-0 bg-accent/10 rounded-lg p-3 flex flex-col gap-2\">\n <div className=\"text-sm text-foreground\">标题内容(自适应宽度)</div>\n <div className=\"text-xs text-muted-foreground\">描述文字...</div>\n </div>\n </div>\n </div>\n\n {/* 两端对齐 */}\n <div className=\"bg-card p-4 rounded-lg border border-border\">\n <h4 className=\"text-foreground mb-2\">两端对齐布局</h4>\n <p className=\"text-xs text-muted-foreground mb-3\">适用场景:导航栏、工具栏</p>\n <div className=\"flex items-center justify-between bg-muted/30 p-3 rounded-lg\">\n <div className=\"bg-primary/10 px-4 py-2 rounded text-sm text-primary\">左侧内容</div>\n <div className=\"bg-accent/10 px-4 py-2 rounded text-sm text-accent\">右侧操作</div>\n </div>\n </div>\n\n {/* 居中对齐 */}\n <div className=\"bg-card p-4 rounded-lg border border-border\">\n <h4 className=\"text-foreground mb-2\">居中对齐布局</h4>\n <p className=\"text-xs text-muted-foreground mb-3\">适用场景:空状态、加载中</p>\n <div className=\"flex items-center justify-center bg-muted/30 p-8 rounded-lg\">\n <div className=\"bg-primary/10 px-6 py-3 rounded text-sm text-primary\">居中内容</div>\n </div>\n </div>\n </div>\n </div>\n\n {/* 列表项布局 */}\n <div className=\"bg-card-muted p-4 rounded-[16px]\">\n <h3 className=\"text-foreground mb-4\">列表项布局规范 / List Item Layout</h3>\n \n <div className=\"bg-card rounded-lg border border-border overflow-hidden\">\n {/* 标准列表项 */}\n <div className=\"flex gap-2 py-3 px-4 border-b border-border\">\n <div className=\"shrink-0 w-[91px] h-[91px] bg-primary/10 rounded-lg flex items-center justify-center text-xs text-primary\">91×91px</div>\n <div className=\"flex-1 min-w-0 flex flex-col gap-2\">\n <h4 className=\"text-foreground\">列表项标题</h4>\n <div className=\"flex gap-2 items-center text-xs text-muted-foreground\">\n <span>标签1</span>\n <span>•</span>\n <span>标签2</span>\n </div>\n <p className=\"text-xs text-muted-foreground truncate\">这是一段描述文字,超出宽度会被截断...</p>\n </div>\n </div>\n\n {/* 紧凑列表项 */}\n <div className=\"flex gap-3 py-2 px-4 border-b border-border\">\n <div className=\"shrink-0 w-12 h-12 bg-accent/10 rounded-full flex items-center justify-center text-xs text-accent\">48px</div>\n <div className=\"flex-1 min-w-0 flex flex-col justify-center\">\n <h4 className=\"text-foreground text-sm\">紧凑列表项</h4>\n <p className=\"text-xs text-muted-foreground\">次要信息</p>\n </div>\n </div>\n\n {/* 带操作的列表项 */}\n <div className=\"flex gap-2 py-3 px-4 items-center\">\n <div className=\"shrink-0 w-10 h-10 bg-primary/10 rounded-lg flex items-center justify-center text-xs text-primary\">图标</div>\n <div className=\"flex-1 min-w-0\">\n <h4 className=\"text-foreground text-sm\">列表项标题</h4>\n </div>\n <div className=\"shrink-0 bg-accent/10 px-3 py-1.5 rounded text-xs text-accent\">操作</div>\n </div>\n </div>\n </div>\n\n {/* 实际应用示例 */}\n <div className=\"bg-card-muted p-4 rounded-[16px]\">\n <h3 className=\"text-foreground mb-4\">实际应用示例 / Real-world Examples</h3>\n \n <div className=\"space-y-4\">\n {/* 示例1: 统计卡片 */}\n <div className=\"bg-card p-4 rounded-lg border border-border\">\n <h4 className=\"text-foreground mb-2\">数据统计卡片</h4>\n <p className=\"text-xs text-muted-foreground mb-3\">3列等分 + 12px 间距</p>\n <StatGrid \n items={[\n { value: \"1,248\", label: \"今日访问\", variant: \"primary\" },\n { value: \"356\", label: \"新增用户\", variant: \"accent\" },\n { value: \"96.8%\", label: \"转化率\", variant: \"default\" }\n ]}\n />\n </div>\n\n {/* 示例2: POI 列表 */}\n <div className=\"bg-card p-4 rounded-lg border border-border\">\n <h4 className=\"text-foreground mb-2\">POI 地点列表</h4>\n <p className=\"text-xs text-muted-foreground mb-3\">左固定图片 (91px) + 右侧自适应内容</p>\n <div className=\"space-y-3\">\n <PoiItem \n imageUrl=\"https://images.unsplash.com/photo-1763924636913-02c404a937f5?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxjaGluZXNlJTIwYW5jaWVudCUyMHRlbXBsZSUyMHNjZW5pY3xlbnwxfHx8fDE3NjQ0MjY5MjJ8MA&ixlib=rb-4.1.0&q=80&w=1080\"\n title=\"故宫博物院\"\n rating=\"4.8分\"\n distance=\"1.2km\"\n description=\"中国明清两代的皇家宫殿,旧称紫禁城,位于北京中轴线的中心,是中国古代宫廷建筑之精华\"\n />\n <PoiItem \n imageUrl=\"https://images.unsplash.com/photo-1597434429739-2574d7e06807?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxtb3VudGFpbiUyMGxhbmRzY2FwZSUyMG5hdHVyZXxlbnwxfHx8fDE3NjQzNjA3OTd8MA&ixlib=rb-4.1.0&q=80&w=1080\"\n title=\"黄山风景区\"\n rating=\"4.9分\"\n distance=\"320km\"\n description=\"以奇松、怪石、云海、温泉、冬雪“五绝”著称于世,素有“天下第一奇山”之美誉\"\n />\n </div>\n </div>\n\n {/* 示例3: 新闻卡片 */}\n <div className=\"bg-card p-4 rounded-lg border border-border\">\n <h4 className=\"text-foreground mb-2\">新闻文章列表</h4>\n <p className=\"text-xs text-muted-foreground mb-3\">2:1 不等分布局 (内容 8列 + 图片 4列)</p>\n <div className=\"space-y-3\">\n <NewsItem \n title=\"人工智能助力医疗诊断准确率提升至98%,多家医院开始试点应用\"\n time=\"2小时前\"\n source=\"科技日报\"\n category=\"AI医疗\"\n variant=\"primary\"\n />\n <NewsItem \n title=\"新能源汽车销量持续增长,第三季度同比上涨45%创历史新高\"\n time=\"5小时前\"\n source=\"财经观察\"\n category=\"汽车产业\"\n variant=\"accent\"\n />\n </div>\n </div>\n\n {/* 示例4: 快捷入口 */}\n <div className=\"bg-card p-4 rounded-lg border border-border\">\n <h4 className=\"text-foreground mb-2\">快捷功能入口</h4>\n <p className=\"text-xs text-muted-foreground mb-3\">4列等分 + 8px 间距</p>\n <div className=\"grid grid-cols-4 gap-2\">\n {['扫一扫', '付款', '收款', '卡包'].map((item, idx) => (\n <div key={idx} className=\"flex flex-col items-center gap-2\">\n <div className=\"w-12 h-12 bg-primary/10 rounded-lg flex items-center justify-center text-xs text-primary\">图标</div>\n <span className=\"text-xs text-muted-foreground\">{item}</span>\n </div>\n ))}\n </div>\n </div>\n\n {/* 示例5: 完整页面布局 */}\n <div className=\"bg-card p-4 rounded-lg border border-border\">\n <h4 className=\"text-foreground mb-2\">完整页面布局</h4>\n <p className=\"text-xs text-muted-foreground mb-3\">顶部固定 + 中间滚动 + 底部固定</p>\n <div className=\"bg-muted/30 rounded-lg overflow-hidden\" style={{ height: '320px' }}>\n {/* 顶部工具栏 */}\n <div className=\"bg-card border-b border-border px-4 py-3\">\n <div className=\"text-sm text-foreground\">我的订单</div>\n </div>\n \n {/* 滚动内容区 */}\n <div className=\"px-4 py-4 space-y-3 overflow-y-auto\" style={{ height: '228px' }}>\n <div className=\"bg-card-muted rounded-lg p-3\">\n <h4 className=\"text-foreground text-sm mb-2\">待付款订单 (3)</h4>\n <p className=\"text-xs text-muted-foreground\">共计 ¥1,286.00,请尽快完成支付</p>\n </div>\n <div className=\"bg-card-muted rounded-lg p-3\">\n <h4 className=\"text-foreground text-sm mb-2\">待收货订单 (2)</h4>\n <p className=\"text-xs text-muted-foreground\">预计明天送达,请保持手机畅通</p>\n </div>\n <div className=\"bg-card-muted rounded-lg p-3\">\n <h4 className=\"text-foreground text-sm mb-2\">待评价订单 (5)</h4>\n <p className=\"text-xs text-muted-foreground\">分享您的购物体验,帮助其他买家</p>\n </div>\n <div className=\"bg-card-muted rounded-lg p-3\">\n <h4 className=\"text-foreground text-sm mb-2\">售后订单 (1)</h4>\n <p className=\"text-xs text-muted-foreground\">退款申请处理中,预计3个工作日</p>\n </div>\n </div>\n \n {/* 底部操作栏 */}\n <div className=\"bg-card border-t border-border px-4 py-3\">\n <div className=\"flex gap-2\">\n <div className=\"flex-1 bg-secondary rounded-lg py-2 text-center text-sm text-foreground\">筛选订单</div>\n <div className=\"flex-1 bg-primary rounded-lg py-2 text-center text-sm text-primary-foreground\">继续购物</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {/* 使用建议 */}\n <div className=\"bg-card border-[0.5px] border-card-border rounded-[16px] shadow-[var(--elevation-sm)] p-4\">\n <h4 className=\"text-foreground mb-3\">使用建议 / Best Practices</h4>\n <div className=\"flex flex-col gap-2 text-sm text-muted-foreground\">\n <p>✅ 优先使用 Flexbox 进行一维布局(行或列)</p>\n <p>✅ 使用 Grid 处理复杂的二维布局(行+列)</p>\n <p>✅ 移动端优先,先设计小屏布局再扩展</p>\n <p>✅ 保持间距一致性,使用标准间距值</p>\n <p>❌ 避免固定宽度,使用 flex-1、col-span 等响应式单位</p>\n <p>❌ 避免过度嵌套栅格,不超过2层</p>\n <p>❌ 底部固定元素必须适配 iOS 安全区域(pb-safe)</p>\n </div>\n </div>\n </div>\n );\n}\n"]}
|