@hkyhy/marsun-components-core 0.1.33 → 0.1.35
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/components/AgentHub/Report/Detail/ReportMetaStrip/index.d.ts +19 -0
- package/dist/components/AgentHub/Report/Detail/ReportMetaStrip/index.js +46 -0
- package/dist/components/AgentHub/Report/Detail/ReportMetaStrip/index.js.map +1 -0
- package/dist/components/AgentHub/Report/Detail/ReportMetaStrip/style.module.scss.js +12 -0
- package/dist/components/AgentHub/Report/Detail/ReportMetaStrip/style.module.scss.js.map +1 -0
- package/dist/components/AgentHub/Report/Detail/ReportTemplate/index.d.ts +18 -0
- package/dist/components/AgentHub/Report/Detail/ReportTemplate/index.js +98 -0
- package/dist/components/AgentHub/Report/Detail/ReportTemplate/index.js.map +1 -0
- package/dist/components/AgentHub/Report/Detail/ReportTemplate/style.module.scss.js +14 -0
- package/dist/components/AgentHub/Report/Detail/ReportTemplate/style.module.scss.js.map +1 -0
- package/dist/components/AgentHub/Report/Detail/index.d.ts +4 -0
- package/dist/components/AgentHub/Report/index.d.ts +1 -0
- package/dist/components/Icons/index.d.ts +2 -1
- package/dist/components/Icons/index.js +158 -155
- package/dist/components/Icons/index.js.map +1 -1
- package/dist/components/InteractiveBlock/InteractiveBlock.d.ts +3 -0
- package/dist/components/InteractiveBlock/InteractiveBlock.js +49 -46
- package/dist/components/InteractiveBlock/InteractiveBlock.js.map +1 -1
- package/dist/components/InteractiveBlock/index.d.ts +1 -1
- package/dist/components/InteractiveBlock/style.module.scss.js +14 -13
- package/dist/components/InteractiveBlock/style.module.scss.js.map +1 -1
- package/dist/components/Modal/Modal/index.d.ts +6 -0
- package/dist/components/Modal/Modal/index.js +120 -0
- package/dist/components/Modal/Modal/index.js.map +1 -0
- package/dist/components/Modal/Modal/style.module.scss.js +17 -0
- package/dist/components/Modal/Modal/style.module.scss.js.map +1 -0
- package/dist/components/Modal/ModalTypes.d.ts +26 -0
- package/dist/components/Modal/StepModal/index.js +43 -41
- package/dist/components/Modal/StepModal/index.js.map +1 -1
- package/dist/components/Modal/index.d.ts +3 -0
- package/dist/components/Modal/utils/resolveModalSize.d.ts +22 -0
- package/dist/components/Modal/utils/resolveModalSize.js +28 -0
- package/dist/components/Modal/utils/resolveModalSize.js.map +1 -0
- package/dist/components/Table/ColumnConfigPanel.js +164 -137
- package/dist/components/Table/ColumnConfigPanel.js.map +1 -1
- package/dist/components/Table/Table.d.ts +26 -6
- package/dist/components/Table/Table.js +313 -100
- package/dist/components/Table/Table.js.map +1 -1
- package/dist/components/Table/columnConfig.module.scss.js +32 -28
- package/dist/components/Table/columnConfig.module.scss.js.map +1 -1
- package/dist/components/Table/columnConfigUtils.d.ts +8 -1
- package/dist/components/Table/columnConfigUtils.js +114 -84
- package/dist/components/Table/columnConfigUtils.js.map +1 -1
- package/dist/components/Table/index.d.ts +2 -2
- package/dist/components/Table/style.module.scss.js +16 -3
- package/dist/components/Table/style.module.scss.js.map +1 -1
- package/dist/components/Table/tablePrefsTypes.d.ts +12 -0
- package/dist/components/Table/tablePrefsTypes.js +7 -0
- package/dist/components/Table/tablePrefsTypes.js.map +1 -0
- package/dist/components/Table/tablePrefsUtils.d.ts +11 -0
- package/dist/components/Table/tablePrefsUtils.js +66 -0
- package/dist/components/Table/tablePrefsUtils.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +405 -382
- package/dist/index.js.map +1 -1
- package/dist/marsun-components-core.css +1 -1
- package/dist/styles/global.css +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/Icons/index.tsx"],"sourcesContent":["import type { LucideIcon, LucideProps } from 'lucide-react';\nimport './icons.global.css';\nimport {\n ArrowLeft as ArrowLeftIcon,\n ArrowLeftRight as ArrowLeftRightIcon,\n BarChart3 as BarChart3Icon,\n Bell as BellIcon,\n BookOpen as BookOpenIcon,\n Bot as BotIcon,\n Check as CheckIcon,\n ChevronDown as ChevronDownIcon,\n ChevronLeft as ChevronLeftIcon,\n ChevronRight as ChevronRightIcon,\n ChevronUp as ChevronUpIcon,\n CircleAlert as CircleAlertIcon,\n CircleCheck as CircleCheckIcon,\n CircleHelp as CircleHelpIcon,\n CirclePlay as CirclePlayIcon,\n CircleX as CircleXIcon,\n ClipboardCheck as ClipboardCheckIcon,\n Clock as ClockIcon,\n CloudDownload as CloudDownloadIcon,\n CloudUpload as CloudUploadIcon,\n Code as CodeIcon,\n Copy as CopyIcon,\n Crown as CrownIcon,\n Database as DatabaseIcon,\n Download as DownloadIcon,\n Eye as EyeIcon,\n FileArchive as FileArchiveIcon,\n File as FileIcon,\n FileImage as FileImageIcon,\n FileSpreadsheet as FileSpreadsheetIcon,\n FileText as FileTextIcon,\n Flag as FlagIcon,\n Flame as FlameIcon,\n Folder as FolderIcon,\n FolderOpen as FolderOpenIcon,\n Hash as HashIcon,\n House as HouseIcon,\n Import as ImportIcon,\n Inbox as InboxIcon,\n Info as InfoIcon,\n LayoutDashboard as LayoutDashboardIcon,\n LayoutGrid as LayoutGridIcon,\n ListTodo as ListTodoIcon,\n Loader2 as Loader2Icon,\n Lock as LockIcon,\n LogOut as LogOutIcon,\n Maximize2 as Maximize2Icon,\n MessageCircle as MessageCircleIcon,\n MessageSquare as MessageSquareIcon,\n Minimize2 as Minimize2Icon,\n PanelLeftClose as PanelLeftCloseIcon,\n PanelLeftOpen as PanelLeftOpenIcon,\n Pause as PauseIcon,\n Pencil as PencilIcon,\n Plus as PlusIcon,\n Presentation as PresentationIcon,\n RefreshCw as RefreshCwIcon,\n RotateCw as RotateCwIcon,\n Send as SendIcon,\n Settings as SettingsIcon,\n ShieldCheck as ShieldCheckIcon,\n Shield as ShieldIcon,\n SlidersHorizontal as SlidersHorizontalIcon,\n Square as SquareIcon,\n Star as StarIcon,\n ThumbsDown as ThumbsDownIcon,\n ThumbsUp as ThumbsUpIcon,\n Trash2 as Trash2Icon,\n Trophy as TrophyIcon,\n Undo2 as Undo2Icon,\n Upload as UploadIcon,\n User as UserIcon,\n UserPlus as UserPlusIcon,\n UserRoundCog as UserRoundCogIcon,\n Users as UsersIcon,\n X as XIcon,\n} from 'lucide-react';\nimport React from 'react';\n\nexport type IconProps = LucideProps & {\n spin?: boolean;\n rotate?: number;\n};\n\nconst createIcon = (Icon: LucideIcon, options?: { filled?: boolean }) => {\n const WrappedIcon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ spin, rotate, className, style, strokeWidth, fill, color, ...props }, ref) => (\n <Icon\n ref={ref}\n size=\"1em\"\n className={\n ['marsun-icon', className, spin ? 'animate-spin' : ''].filter(Boolean).join(' ') ||\n undefined\n }\n style={{\n display: 'inline-block',\n verticalAlign: '-0.125em',\n ...(color ? {} : { color: 'inherit' }),\n ...(rotate ? { transform: `rotate(${rotate}deg)` } : null),\n ...style,\n }}\n color={color ?? 'currentColor'}\n strokeWidth={strokeWidth ?? (options?.filled ? 0 : 2)}\n fill={fill ?? (options?.filled ? 'currentColor' : 'none')}\n aria-hidden={props['aria-label'] ? undefined : true}\n {...props}\n />\n ),\n );\n\n WrappedIcon.displayName = Icon.displayName ?? Icon.name;\n return WrappedIcon;\n};\n\nexport const ArrowLeft = createIcon(ArrowLeftIcon);\nexport const ArrowLeftRight = createIcon(ArrowLeftRightIcon);\nexport const BarChart3 = createIcon(BarChart3Icon);\nexport const Bell = createIcon(BellIcon);\nexport const BookOpen = createIcon(BookOpenIcon);\nexport const Bot = createIcon(BotIcon);\nexport const Check = createIcon(CheckIcon);\nexport const ChevronDown = createIcon(ChevronDownIcon);\nexport const ChevronLeft = createIcon(ChevronLeftIcon);\nexport const ChevronRight = createIcon(ChevronRightIcon);\nexport const ChevronUp = createIcon(ChevronUpIcon);\nexport const CircleAlert = createIcon(CircleAlertIcon);\nexport const CircleCheck = createIcon(CircleCheckIcon);\nexport const CircleHelp = createIcon(CircleHelpIcon);\nexport const CirclePlay = createIcon(CirclePlayIcon);\nexport const CircleX = createIcon(CircleXIcon);\nexport const ClipboardCheck = createIcon(ClipboardCheckIcon);\nexport const Clock = createIcon(ClockIcon);\nexport const CloudDownload = createIcon(CloudDownloadIcon);\nexport const CloudUpload = createIcon(CloudUploadIcon);\nexport const Code = createIcon(CodeIcon);\nexport const Copy = createIcon(CopyIcon);\nexport const Crown = createIcon(CrownIcon, { filled: true });\nexport const Database = createIcon(DatabaseIcon);\nexport const Download = createIcon(DownloadIcon);\nexport const Eye = createIcon(EyeIcon);\nexport const File = createIcon(FileIcon);\nexport const FileArchive = createIcon(FileArchiveIcon);\nexport const FileImage = createIcon(FileImageIcon);\nexport const FileSpreadsheet = createIcon(FileSpreadsheetIcon);\nexport const FileText = createIcon(FileTextIcon);\nexport const Flag = createIcon(FlagIcon);\nexport const Flame = createIcon(FlameIcon);\nexport const Folder = createIcon(FolderIcon);\nexport const FolderOpen = createIcon(FolderOpenIcon);\nexport const Hash = createIcon(HashIcon);\nexport const House = createIcon(HouseIcon);\nexport const Import = createIcon(ImportIcon);\nexport const Inbox = createIcon(InboxIcon);\nexport const Info = createIcon(InfoIcon);\nexport const LayoutDashboard = createIcon(LayoutDashboardIcon);\nexport const LayoutGrid = createIcon(LayoutGridIcon);\nexport const ListTodo = createIcon(ListTodoIcon);\nexport const Loader2 = createIcon(Loader2Icon);\nexport const Lock = createIcon(LockIcon);\nexport const LogOut = createIcon(LogOutIcon);\nexport const Maximize2 = createIcon(Maximize2Icon);\nexport const MessageCircle = createIcon(MessageCircleIcon);\nexport const MessageSquare = createIcon(MessageSquareIcon);\nexport const Minimize2 = createIcon(Minimize2Icon);\nexport const PanelLeftClose = createIcon(PanelLeftCloseIcon);\nexport const PanelLeftOpen = createIcon(PanelLeftOpenIcon);\nexport const Pause = createIcon(PauseIcon, { filled: true });\nexport const Pencil = createIcon(PencilIcon);\nexport const Plus = createIcon(PlusIcon);\nexport const Presentation = createIcon(PresentationIcon);\nexport const RefreshCw = createIcon(RefreshCwIcon);\nexport const RotateCw = createIcon(RotateCwIcon);\nexport const Send = createIcon(SendIcon);\nexport const Settings = createIcon(SettingsIcon);\nexport const Shield = createIcon(ShieldIcon);\nexport const ShieldCheck = createIcon(ShieldCheckIcon);\nexport const SlidersHorizontal = createIcon(SlidersHorizontalIcon);\nexport const Square = createIcon(SquareIcon, { filled: true });\nexport const Star = createIcon(StarIcon, { filled: true });\nexport const ThumbsDown = createIcon(ThumbsDownIcon);\nexport const ThumbsUp = createIcon(ThumbsUpIcon);\nexport const Trash2 = createIcon(Trash2Icon);\nexport const Trophy = createIcon(TrophyIcon);\nexport const Undo2 = createIcon(Undo2Icon);\nexport const Upload = createIcon(UploadIcon);\nexport const User = createIcon(UserIcon);\nexport const UserPlus = createIcon(UserPlusIcon);\nexport const UserRoundCog = createIcon(UserRoundCogIcon);\nexport const Users = createIcon(UsersIcon);\nexport const X = createIcon(XIcon);\n\nexport { createIcon };\n\nexport const ICON_NAMES = [\n 'ArrowLeft',\n 'ArrowLeftRight',\n 'BarChart3',\n 'Bell',\n 'BookOpen',\n 'Bot',\n 'Check',\n 'ChevronDown',\n 'ChevronLeft',\n 'ChevronRight',\n 'ChevronUp',\n 'CircleAlert',\n 'CircleCheck',\n 'CircleHelp',\n 'CirclePlay',\n 'CircleX',\n 'ClipboardCheck',\n 'Clock',\n 'CloudDownload',\n 'CloudUpload',\n 'Code',\n 'Copy',\n 'Crown',\n 'Database',\n 'Download',\n 'Eye',\n 'File',\n 'FileArchive',\n 'FileImage',\n 'FileSpreadsheet',\n 'FileText',\n 'Flag',\n 'Flame',\n 'Folder',\n 'FolderOpen',\n 'Hash',\n 'House',\n 'Import',\n 'Inbox',\n 'Info',\n 'LayoutDashboard',\n 'LayoutGrid',\n 'ListTodo',\n 'Loader2',\n 'Lock',\n 'LogOut',\n 'Maximize2',\n 'MessageCircle',\n 'MessageSquare',\n 'Minimize2',\n 'PanelLeftClose',\n 'PanelLeftOpen',\n 'Pause',\n 'Pencil',\n 'Plus',\n 'Presentation',\n 'RefreshCw',\n 'RotateCw',\n 'Send',\n 'Settings',\n 'Shield',\n 'ShieldCheck',\n 'SlidersHorizontal',\n 'Square',\n 'Star',\n 'ThumbsDown',\n 'ThumbsUp',\n 'Trash2',\n 'Trophy',\n 'Undo2',\n 'Upload',\n 'User',\n 'UserPlus',\n 'UserRoundCog',\n 'Users',\n 'X',\n] as const;\n\nexport type IconName = (typeof ICON_NAMES)[number];\n\nexport const ICON_REGISTRY: Record<IconName, React.FC<IconProps>> = {\n ArrowLeft,\n ArrowLeftRight,\n BarChart3,\n Bell,\n BookOpen,\n Bot,\n Check,\n ChevronDown,\n ChevronLeft,\n ChevronRight,\n ChevronUp,\n CircleAlert,\n CircleCheck,\n CircleHelp,\n CirclePlay,\n CircleX,\n ClipboardCheck,\n Clock,\n CloudDownload,\n CloudUpload,\n Code,\n Copy,\n Crown,\n Database,\n Download,\n Eye,\n File,\n FileArchive,\n FileImage,\n FileSpreadsheet,\n FileText,\n Flag,\n Flame,\n Folder,\n FolderOpen,\n Hash,\n House,\n Import,\n Inbox,\n Info,\n LayoutDashboard,\n LayoutGrid,\n ListTodo,\n Loader2,\n Lock,\n LogOut,\n Maximize2,\n MessageCircle,\n MessageSquare,\n Minimize2,\n PanelLeftClose,\n PanelLeftOpen,\n Pause,\n Pencil,\n Plus,\n Presentation,\n RefreshCw,\n RotateCw,\n Send,\n Settings,\n Shield,\n ShieldCheck,\n SlidersHorizontal,\n Square,\n Star,\n ThumbsDown,\n ThumbsUp,\n Trash2,\n Trophy,\n Undo2,\n Upload,\n User,\n UserPlus,\n UserRoundCog,\n Users,\n X,\n};\n"],"names":["createIcon","Icon","options","WrappedIcon","React","spin","rotate","className","style","strokeWidth","fill","color","props","ref","jsx","ArrowLeft","ArrowLeftIcon","ArrowLeftRight","ArrowLeftRightIcon","BarChart3","BarChart3Icon","Bell","BellIcon","BookOpen","BookOpenIcon","Bot","BotIcon","Check","CheckIcon","ChevronDown","ChevronDownIcon","ChevronLeft","ChevronLeftIcon","ChevronRight","ChevronRightIcon","ChevronUp","ChevronUpIcon","CircleAlert","CircleAlertIcon","CircleCheck","CircleCheckIcon","CircleHelp","CircleHelpIcon","CirclePlay","CirclePlayIcon","CircleX","CircleXIcon","ClipboardCheck","ClipboardCheckIcon","Clock","ClockIcon","CloudDownload","CloudDownloadIcon","CloudUpload","CloudUploadIcon","Code","CodeIcon","Copy","CopyIcon","Crown","CrownIcon","Database","DatabaseIcon","Download","DownloadIcon","Eye","EyeIcon","File","FileIcon","FileArchive","FileArchiveIcon","FileImage","FileImageIcon","FileSpreadsheet","FileSpreadsheetIcon","FileText","FileTextIcon","Flag","FlagIcon","Flame","FlameIcon","Folder","FolderIcon","FolderOpen","FolderOpenIcon","Hash","HashIcon","House","HouseIcon","Import","ImportIcon","Inbox","InboxIcon","Info","InfoIcon","LayoutDashboard","LayoutDashboardIcon","LayoutGrid","LayoutGridIcon","ListTodo","ListTodoIcon","Loader2","Loader2Icon","Lock","LockIcon","LogOut","LogOutIcon","Maximize2","Maximize2Icon","MessageCircle","MessageCircleIcon","MessageSquare","MessageSquareIcon","Minimize2","Minimize2Icon","PanelLeftClose","PanelLeftCloseIcon","PanelLeftOpen","PanelLeftOpenIcon","Pause","PauseIcon","Pencil","PencilIcon","Plus","PlusIcon","Presentation","PresentationIcon","RefreshCw","RefreshCwIcon","RotateCw","RotateCwIcon","Send","SendIcon","Settings","SettingsIcon","Shield","ShieldIcon","ShieldCheck","ShieldCheckIcon","SlidersHorizontal","SlidersHorizontalIcon","Square","SquareIcon","Star","StarIcon","ThumbsDown","ThumbsDownIcon","ThumbsUp","ThumbsUpIcon","Trash2","Trash2Icon","Trophy","TrophyIcon","Undo2","Undo2Icon","Upload","UploadIcon","User","UserIcon","UserPlus","UserPlusIcon","UserRoundCog","UserRoundCogIcon","Users","UsersIcon","X","XIcon","ICON_NAMES","ICON_REGISTRY"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/Icons/index.tsx"],"sourcesContent":["import type { LucideIcon, LucideProps } from 'lucide-react';\nimport './icons.global.css';\nimport {\n ArrowLeft as ArrowLeftIcon,\n ArrowLeftRight as ArrowLeftRightIcon,\n BarChart3 as BarChart3Icon,\n Bell as BellIcon,\n BookOpen as BookOpenIcon,\n Bot as BotIcon,\n Check as CheckIcon,\n ChevronDown as ChevronDownIcon,\n ChevronLeft as ChevronLeftIcon,\n ChevronRight as ChevronRightIcon,\n ChevronUp as ChevronUpIcon,\n CircleAlert as CircleAlertIcon,\n CircleCheck as CircleCheckIcon,\n CircleHelp as CircleHelpIcon,\n CirclePlay as CirclePlayIcon,\n CircleX as CircleXIcon,\n ClipboardCheck as ClipboardCheckIcon,\n Clock as ClockIcon,\n CloudDownload as CloudDownloadIcon,\n CloudUpload as CloudUploadIcon,\n Code as CodeIcon,\n Copy as CopyIcon,\n Crown as CrownIcon,\n Database as DatabaseIcon,\n Download as DownloadIcon,\n Eye as EyeIcon,\n EyeOff as EyeOffIcon,\n FileArchive as FileArchiveIcon,\n File as FileIcon,\n FileImage as FileImageIcon,\n FileSpreadsheet as FileSpreadsheetIcon,\n FileText as FileTextIcon,\n Flag as FlagIcon,\n Flame as FlameIcon,\n Folder as FolderIcon,\n FolderOpen as FolderOpenIcon,\n Hash as HashIcon,\n House as HouseIcon,\n Import as ImportIcon,\n Inbox as InboxIcon,\n Info as InfoIcon,\n LayoutDashboard as LayoutDashboardIcon,\n LayoutGrid as LayoutGridIcon,\n ListTodo as ListTodoIcon,\n Loader2 as Loader2Icon,\n Lock as LockIcon,\n LogOut as LogOutIcon,\n Maximize2 as Maximize2Icon,\n MessageCircle as MessageCircleIcon,\n MessageSquare as MessageSquareIcon,\n Minimize2 as Minimize2Icon,\n PanelLeftClose as PanelLeftCloseIcon,\n PanelLeftOpen as PanelLeftOpenIcon,\n Pause as PauseIcon,\n Pencil as PencilIcon,\n Plus as PlusIcon,\n Presentation as PresentationIcon,\n RefreshCw as RefreshCwIcon,\n RotateCw as RotateCwIcon,\n Send as SendIcon,\n Settings as SettingsIcon,\n ShieldCheck as ShieldCheckIcon,\n Shield as ShieldIcon,\n SlidersHorizontal as SlidersHorizontalIcon,\n Square as SquareIcon,\n Star as StarIcon,\n ThumbsDown as ThumbsDownIcon,\n ThumbsUp as ThumbsUpIcon,\n Trash2 as Trash2Icon,\n Trophy as TrophyIcon,\n Undo2 as Undo2Icon,\n Upload as UploadIcon,\n User as UserIcon,\n UserPlus as UserPlusIcon,\n UserRoundCog as UserRoundCogIcon,\n Users as UsersIcon,\n X as XIcon,\n} from 'lucide-react';\nimport React from 'react';\n\nexport type IconProps = LucideProps & {\n spin?: boolean;\n rotate?: number;\n};\n\nconst createIcon = (Icon: LucideIcon, options?: { filled?: boolean }) => {\n const WrappedIcon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ spin, rotate, className, style, strokeWidth, fill, color, ...props }, ref) => (\n <Icon\n ref={ref}\n size=\"1em\"\n className={\n ['marsun-icon', className, spin ? 'animate-spin' : ''].filter(Boolean).join(' ') ||\n undefined\n }\n style={{\n display: 'inline-block',\n verticalAlign: '-0.125em',\n ...(color ? {} : { color: 'inherit' }),\n ...(rotate ? { transform: `rotate(${rotate}deg)` } : null),\n ...style,\n }}\n color={color ?? 'currentColor'}\n strokeWidth={strokeWidth ?? (options?.filled ? 0 : 2)}\n fill={fill ?? (options?.filled ? 'currentColor' : 'none')}\n aria-hidden={props['aria-label'] ? undefined : true}\n {...props}\n />\n ),\n );\n\n WrappedIcon.displayName = Icon.displayName ?? Icon.name;\n return WrappedIcon;\n};\n\nexport const ArrowLeft = createIcon(ArrowLeftIcon);\nexport const ArrowLeftRight = createIcon(ArrowLeftRightIcon);\nexport const BarChart3 = createIcon(BarChart3Icon);\nexport const Bell = createIcon(BellIcon);\nexport const BookOpen = createIcon(BookOpenIcon);\nexport const Bot = createIcon(BotIcon);\nexport const Check = createIcon(CheckIcon);\nexport const ChevronDown = createIcon(ChevronDownIcon);\nexport const ChevronLeft = createIcon(ChevronLeftIcon);\nexport const ChevronRight = createIcon(ChevronRightIcon);\nexport const ChevronUp = createIcon(ChevronUpIcon);\nexport const CircleAlert = createIcon(CircleAlertIcon);\nexport const CircleCheck = createIcon(CircleCheckIcon);\nexport const CircleHelp = createIcon(CircleHelpIcon);\nexport const CirclePlay = createIcon(CirclePlayIcon);\nexport const CircleX = createIcon(CircleXIcon);\nexport const ClipboardCheck = createIcon(ClipboardCheckIcon);\nexport const Clock = createIcon(ClockIcon);\nexport const CloudDownload = createIcon(CloudDownloadIcon);\nexport const CloudUpload = createIcon(CloudUploadIcon);\nexport const Code = createIcon(CodeIcon);\nexport const Copy = createIcon(CopyIcon);\nexport const Crown = createIcon(CrownIcon, { filled: true });\nexport const Database = createIcon(DatabaseIcon);\nexport const Download = createIcon(DownloadIcon);\nexport const Eye = createIcon(EyeIcon);\nexport const EyeOff = createIcon(EyeOffIcon);\nexport const File = createIcon(FileIcon);\nexport const FileArchive = createIcon(FileArchiveIcon);\nexport const FileImage = createIcon(FileImageIcon);\nexport const FileSpreadsheet = createIcon(FileSpreadsheetIcon);\nexport const FileText = createIcon(FileTextIcon);\nexport const Flag = createIcon(FlagIcon);\nexport const Flame = createIcon(FlameIcon);\nexport const Folder = createIcon(FolderIcon);\nexport const FolderOpen = createIcon(FolderOpenIcon);\nexport const Hash = createIcon(HashIcon);\nexport const House = createIcon(HouseIcon);\nexport const Import = createIcon(ImportIcon);\nexport const Inbox = createIcon(InboxIcon);\nexport const Info = createIcon(InfoIcon);\nexport const LayoutDashboard = createIcon(LayoutDashboardIcon);\nexport const LayoutGrid = createIcon(LayoutGridIcon);\nexport const ListTodo = createIcon(ListTodoIcon);\nexport const Loader2 = createIcon(Loader2Icon);\nexport const Lock = createIcon(LockIcon);\nexport const LogOut = createIcon(LogOutIcon);\nexport const Maximize2 = createIcon(Maximize2Icon);\nexport const MessageCircle = createIcon(MessageCircleIcon);\nexport const MessageSquare = createIcon(MessageSquareIcon);\nexport const Minimize2 = createIcon(Minimize2Icon);\nexport const PanelLeftClose = createIcon(PanelLeftCloseIcon);\nexport const PanelLeftOpen = createIcon(PanelLeftOpenIcon);\nexport const Pause = createIcon(PauseIcon, { filled: true });\nexport const Pencil = createIcon(PencilIcon);\nexport const Plus = createIcon(PlusIcon);\nexport const Presentation = createIcon(PresentationIcon);\nexport const RefreshCw = createIcon(RefreshCwIcon);\nexport const RotateCw = createIcon(RotateCwIcon);\nexport const Send = createIcon(SendIcon);\nexport const Settings = createIcon(SettingsIcon);\nexport const Shield = createIcon(ShieldIcon);\nexport const ShieldCheck = createIcon(ShieldCheckIcon);\nexport const SlidersHorizontal = createIcon(SlidersHorizontalIcon);\nexport const Square = createIcon(SquareIcon, { filled: true });\nexport const Star = createIcon(StarIcon, { filled: true });\nexport const ThumbsDown = createIcon(ThumbsDownIcon);\nexport const ThumbsUp = createIcon(ThumbsUpIcon);\nexport const Trash2 = createIcon(Trash2Icon);\nexport const Trophy = createIcon(TrophyIcon);\nexport const Undo2 = createIcon(Undo2Icon);\nexport const Upload = createIcon(UploadIcon);\nexport const User = createIcon(UserIcon);\nexport const UserPlus = createIcon(UserPlusIcon);\nexport const UserRoundCog = createIcon(UserRoundCogIcon);\nexport const Users = createIcon(UsersIcon);\nexport const X = createIcon(XIcon);\n\nexport { createIcon };\n\nexport const ICON_NAMES = [\n 'ArrowLeft',\n 'ArrowLeftRight',\n 'BarChart3',\n 'Bell',\n 'BookOpen',\n 'Bot',\n 'Check',\n 'ChevronDown',\n 'ChevronLeft',\n 'ChevronRight',\n 'ChevronUp',\n 'CircleAlert',\n 'CircleCheck',\n 'CircleHelp',\n 'CirclePlay',\n 'CircleX',\n 'ClipboardCheck',\n 'Clock',\n 'CloudDownload',\n 'CloudUpload',\n 'Code',\n 'Copy',\n 'Crown',\n 'Database',\n 'Download',\n 'Eye',\n 'EyeOff',\n 'File',\n 'FileArchive',\n 'FileImage',\n 'FileSpreadsheet',\n 'FileText',\n 'Flag',\n 'Flame',\n 'Folder',\n 'FolderOpen',\n 'Hash',\n 'House',\n 'Import',\n 'Inbox',\n 'Info',\n 'LayoutDashboard',\n 'LayoutGrid',\n 'ListTodo',\n 'Loader2',\n 'Lock',\n 'LogOut',\n 'Maximize2',\n 'MessageCircle',\n 'MessageSquare',\n 'Minimize2',\n 'PanelLeftClose',\n 'PanelLeftOpen',\n 'Pause',\n 'Pencil',\n 'Plus',\n 'Presentation',\n 'RefreshCw',\n 'RotateCw',\n 'Send',\n 'Settings',\n 'Shield',\n 'ShieldCheck',\n 'SlidersHorizontal',\n 'Square',\n 'Star',\n 'ThumbsDown',\n 'ThumbsUp',\n 'Trash2',\n 'Trophy',\n 'Undo2',\n 'Upload',\n 'User',\n 'UserPlus',\n 'UserRoundCog',\n 'Users',\n 'X',\n] as const;\n\nexport type IconName = (typeof ICON_NAMES)[number];\n\nexport const ICON_REGISTRY: Record<IconName, React.FC<IconProps>> = {\n ArrowLeft,\n ArrowLeftRight,\n BarChart3,\n Bell,\n BookOpen,\n Bot,\n Check,\n ChevronDown,\n ChevronLeft,\n ChevronRight,\n ChevronUp,\n CircleAlert,\n CircleCheck,\n CircleHelp,\n CirclePlay,\n CircleX,\n ClipboardCheck,\n Clock,\n CloudDownload,\n CloudUpload,\n Code,\n Copy,\n Crown,\n Database,\n Download,\n Eye,\n EyeOff,\n File,\n FileArchive,\n FileImage,\n FileSpreadsheet,\n FileText,\n Flag,\n Flame,\n Folder,\n FolderOpen,\n Hash,\n House,\n Import,\n Inbox,\n Info,\n LayoutDashboard,\n LayoutGrid,\n ListTodo,\n Loader2,\n Lock,\n LogOut,\n Maximize2,\n MessageCircle,\n MessageSquare,\n Minimize2,\n PanelLeftClose,\n PanelLeftOpen,\n Pause,\n Pencil,\n Plus,\n Presentation,\n RefreshCw,\n RotateCw,\n Send,\n Settings,\n Shield,\n ShieldCheck,\n SlidersHorizontal,\n Square,\n Star,\n ThumbsDown,\n ThumbsUp,\n Trash2,\n Trophy,\n Undo2,\n Upload,\n User,\n UserPlus,\n UserRoundCog,\n Users,\n X,\n};\n"],"names":["createIcon","Icon","options","WrappedIcon","React","spin","rotate","className","style","strokeWidth","fill","color","props","ref","jsx","ArrowLeft","ArrowLeftIcon","ArrowLeftRight","ArrowLeftRightIcon","BarChart3","BarChart3Icon","Bell","BellIcon","BookOpen","BookOpenIcon","Bot","BotIcon","Check","CheckIcon","ChevronDown","ChevronDownIcon","ChevronLeft","ChevronLeftIcon","ChevronRight","ChevronRightIcon","ChevronUp","ChevronUpIcon","CircleAlert","CircleAlertIcon","CircleCheck","CircleCheckIcon","CircleHelp","CircleHelpIcon","CirclePlay","CirclePlayIcon","CircleX","CircleXIcon","ClipboardCheck","ClipboardCheckIcon","Clock","ClockIcon","CloudDownload","CloudDownloadIcon","CloudUpload","CloudUploadIcon","Code","CodeIcon","Copy","CopyIcon","Crown","CrownIcon","Database","DatabaseIcon","Download","DownloadIcon","Eye","EyeIcon","EyeOff","EyeOffIcon","File","FileIcon","FileArchive","FileArchiveIcon","FileImage","FileImageIcon","FileSpreadsheet","FileSpreadsheetIcon","FileText","FileTextIcon","Flag","FlagIcon","Flame","FlameIcon","Folder","FolderIcon","FolderOpen","FolderOpenIcon","Hash","HashIcon","House","HouseIcon","Import","ImportIcon","Inbox","InboxIcon","Info","InfoIcon","LayoutDashboard","LayoutDashboardIcon","LayoutGrid","LayoutGridIcon","ListTodo","ListTodoIcon","Loader2","Loader2Icon","Lock","LockIcon","LogOut","LogOutIcon","Maximize2","Maximize2Icon","MessageCircle","MessageCircleIcon","MessageSquare","MessageSquareIcon","Minimize2","Minimize2Icon","PanelLeftClose","PanelLeftCloseIcon","PanelLeftOpen","PanelLeftOpenIcon","Pause","PauseIcon","Pencil","PencilIcon","Plus","PlusIcon","Presentation","PresentationIcon","RefreshCw","RefreshCwIcon","RotateCw","RotateCwIcon","Send","SendIcon","Settings","SettingsIcon","Shield","ShieldIcon","ShieldCheck","ShieldCheckIcon","SlidersHorizontal","SlidersHorizontalIcon","Square","SquareIcon","Star","StarIcon","ThumbsDown","ThumbsDownIcon","ThumbsUp","ThumbsUpIcon","Trash2","Trash2Icon","Trophy","TrophyIcon","Undo2","Undo2Icon","Upload","UploadIcon","User","UserIcon","UserPlus","UserPlusIcon","UserRoundCog","UserRoundCogIcon","Users","UsersIcon","X","XIcon","ICON_NAMES","ICON_REGISTRY"],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ export type InteractiveBlockAction = {
|
|
|
12
12
|
hidden?: boolean;
|
|
13
13
|
};
|
|
14
14
|
export type InteractiveBlockTagsPlacement = 'inline' | 'below';
|
|
15
|
+
export type InteractiveBlockSurface = 'plain' | 'inset';
|
|
15
16
|
export type InteractiveBlockProps = {
|
|
16
17
|
title: ReactNode;
|
|
17
18
|
info?: DescriptionItem[];
|
|
@@ -20,6 +21,8 @@ export type InteractiveBlockProps = {
|
|
|
20
21
|
tags?: InteractiveBlockTag[];
|
|
21
22
|
tagsPlacement?: InteractiveBlockTagsPlacement;
|
|
22
23
|
actions?: InteractiveBlockAction[];
|
|
24
|
+
/** 列表表面:inset 对齐归档检索灰底项 */
|
|
25
|
+
surface?: InteractiveBlockSurface;
|
|
23
26
|
selected?: boolean;
|
|
24
27
|
onClick?: () => void;
|
|
25
28
|
className?: string;
|
|
@@ -1,42 +1,43 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import { Info as
|
|
1
|
+
import { jsx as i, jsxs as l, Fragment as g } from "react/jsx-runtime";
|
|
2
|
+
import w from "@kne/button-group";
|
|
3
|
+
import t from "classnames";
|
|
4
|
+
import { Info as x } from "../Icons/index.js";
|
|
5
5
|
import n from "./style.module.scss.js";
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
const
|
|
9
|
-
title:
|
|
6
|
+
import D from "../Tag/SemanticTag.js";
|
|
7
|
+
import P from "../TooltipInfo/TooltipInfo.js";
|
|
8
|
+
const M = ({
|
|
9
|
+
title: p,
|
|
10
10
|
info: a,
|
|
11
11
|
subtitle: o,
|
|
12
12
|
description: s,
|
|
13
13
|
tags: r,
|
|
14
14
|
tagsPlacement: d = "inline",
|
|
15
|
-
actions:
|
|
16
|
-
|
|
15
|
+
actions: h,
|
|
16
|
+
surface: m = "plain",
|
|
17
|
+
selected: u,
|
|
17
18
|
onClick: c,
|
|
18
|
-
className:
|
|
19
|
+
className: v
|
|
19
20
|
}) => {
|
|
20
|
-
const
|
|
21
|
+
const b = (h ?? []).filter((e) => !e.hidden), y = !!(o || r != null && r.length), N = b.map((e) => ({
|
|
21
22
|
type: "link",
|
|
22
23
|
key: e.key,
|
|
23
24
|
icon: e.icon,
|
|
24
25
|
children: e.label,
|
|
25
26
|
onClick: e.onClick
|
|
26
|
-
})), f = r != null && r.length ? /* @__PURE__ */
|
|
27
|
+
})), f = r != null && r.length ? /* @__PURE__ */ i(
|
|
27
28
|
"div",
|
|
28
29
|
{
|
|
29
|
-
className:
|
|
30
|
+
className: t(
|
|
30
31
|
"marsun-interactive-block-tags",
|
|
31
32
|
n["marsun-interactive-block-tags"]
|
|
32
33
|
),
|
|
33
|
-
children: r.map((e) => /* @__PURE__ */
|
|
34
|
+
children: r.map((e) => /* @__PURE__ */ i(D, { color: e.color, children: e.label }, e.label))
|
|
34
35
|
}
|
|
35
|
-
) : null,
|
|
36
|
+
) : null, k = /* @__PURE__ */ l(g, { children: [
|
|
36
37
|
/* @__PURE__ */ l(
|
|
37
38
|
"div",
|
|
38
39
|
{
|
|
39
|
-
className:
|
|
40
|
+
className: t(
|
|
40
41
|
"marsun-interactive-block-header",
|
|
41
42
|
n["marsun-interactive-block-header"]
|
|
42
43
|
),
|
|
@@ -44,39 +45,39 @@ const L = ({
|
|
|
44
45
|
/* @__PURE__ */ l(
|
|
45
46
|
"div",
|
|
46
47
|
{
|
|
47
|
-
className:
|
|
48
|
+
className: t(
|
|
48
49
|
"marsun-interactive-block-title-group",
|
|
49
50
|
n["marsun-interactive-block-title-group"]
|
|
50
51
|
),
|
|
51
52
|
children: [
|
|
52
|
-
/* @__PURE__ */
|
|
53
|
+
/* @__PURE__ */ i(
|
|
53
54
|
"p",
|
|
54
55
|
{
|
|
55
|
-
className:
|
|
56
|
+
className: t(
|
|
56
57
|
"marsun-interactive-block-title",
|
|
57
58
|
n["marsun-interactive-block-title"]
|
|
58
59
|
),
|
|
59
|
-
children:
|
|
60
|
+
children: p
|
|
60
61
|
}
|
|
61
62
|
),
|
|
62
|
-
a != null && a.length ? /* @__PURE__ */
|
|
63
|
-
|
|
63
|
+
a != null && a.length ? /* @__PURE__ */ i(
|
|
64
|
+
P,
|
|
64
65
|
{
|
|
65
66
|
content: a,
|
|
66
67
|
placement: "topLeft",
|
|
67
68
|
overlayStyle: { minWidth: 220, maxWidth: 360 },
|
|
68
69
|
overlayClassName: "marsun-interactive-block-info-tooltip",
|
|
69
|
-
children: /* @__PURE__ */
|
|
70
|
+
children: /* @__PURE__ */ i(
|
|
70
71
|
"span",
|
|
71
72
|
{
|
|
72
|
-
className:
|
|
73
|
+
className: t(
|
|
73
74
|
"marsun-interactive-block-info-trigger",
|
|
74
75
|
n["marsun-interactive-block-info-trigger"]
|
|
75
76
|
),
|
|
76
77
|
onClick: (e) => e.stopPropagation(),
|
|
77
78
|
onMouseDown: (e) => e.stopPropagation(),
|
|
78
79
|
onKeyDown: (e) => e.stopPropagation(),
|
|
79
|
-
children: /* @__PURE__ */
|
|
80
|
+
children: /* @__PURE__ */ i(x, { size: 16, "aria-hidden": !0 })
|
|
80
81
|
}
|
|
81
82
|
)
|
|
82
83
|
}
|
|
@@ -84,35 +85,35 @@ const L = ({
|
|
|
84
85
|
]
|
|
85
86
|
}
|
|
86
87
|
),
|
|
87
|
-
|
|
88
|
+
b.length ? /* @__PURE__ */ i(
|
|
88
89
|
"div",
|
|
89
90
|
{
|
|
90
|
-
className:
|
|
91
|
+
className: t(
|
|
91
92
|
"marsun-interactive-block-actions",
|
|
92
93
|
n["marsun-interactive-block-actions"]
|
|
93
94
|
),
|
|
94
95
|
onClick: (e) => e.stopPropagation(),
|
|
95
96
|
onKeyDown: (e) => e.stopPropagation(),
|
|
96
97
|
role: "presentation",
|
|
97
|
-
children: /* @__PURE__ */
|
|
98
|
+
children: /* @__PURE__ */ i(w, { moreType: "link", list: N })
|
|
98
99
|
}
|
|
99
100
|
) : null
|
|
100
101
|
]
|
|
101
102
|
}
|
|
102
103
|
),
|
|
103
|
-
|
|
104
|
+
y ? /* @__PURE__ */ l(
|
|
104
105
|
"div",
|
|
105
106
|
{
|
|
106
|
-
className:
|
|
107
|
+
className: t(
|
|
107
108
|
"marsun-interactive-block-meta",
|
|
108
109
|
n["marsun-interactive-block-meta"],
|
|
109
110
|
d === "below" && n["marsun-interactive-block-meta--below"]
|
|
110
111
|
),
|
|
111
112
|
children: [
|
|
112
|
-
o ? /* @__PURE__ */
|
|
113
|
+
o ? /* @__PURE__ */ i(
|
|
113
114
|
"p",
|
|
114
115
|
{
|
|
115
|
-
className:
|
|
116
|
+
className: t(
|
|
116
117
|
"marsun-interactive-block-subtitle",
|
|
117
118
|
n["marsun-interactive-block-subtitle"]
|
|
118
119
|
),
|
|
@@ -123,10 +124,10 @@ const L = ({
|
|
|
123
124
|
]
|
|
124
125
|
}
|
|
125
126
|
) : null,
|
|
126
|
-
s ? /* @__PURE__ */
|
|
127
|
+
s ? /* @__PURE__ */ i(
|
|
127
128
|
"p",
|
|
128
129
|
{
|
|
129
|
-
className:
|
|
130
|
+
className: t(
|
|
130
131
|
"marsun-interactive-block-description",
|
|
131
132
|
n["marsun-interactive-block-description"]
|
|
132
133
|
),
|
|
@@ -134,38 +135,40 @@ const L = ({
|
|
|
134
135
|
}
|
|
135
136
|
) : null
|
|
136
137
|
] });
|
|
137
|
-
return c ? /* @__PURE__ */
|
|
138
|
+
return c ? /* @__PURE__ */ i(
|
|
138
139
|
"div",
|
|
139
140
|
{
|
|
140
141
|
role: "button",
|
|
141
142
|
tabIndex: 0,
|
|
142
|
-
className:
|
|
143
|
+
className: t(
|
|
143
144
|
"marsun-interactive-block",
|
|
144
145
|
n["marsun-interactive-block"],
|
|
145
146
|
n["marsun-interactive-block--clickable"],
|
|
146
|
-
m && n["marsun-interactive-block--
|
|
147
|
-
u
|
|
147
|
+
m === "inset" && n["marsun-interactive-block--inset"],
|
|
148
|
+
u && n["marsun-interactive-block--selected"],
|
|
149
|
+
v
|
|
148
150
|
),
|
|
149
151
|
onClick: c,
|
|
150
152
|
onKeyDown: (e) => {
|
|
151
153
|
(e.key === "Enter" || e.key === " ") && (e.preventDefault(), c());
|
|
152
154
|
},
|
|
153
|
-
children:
|
|
155
|
+
children: k
|
|
154
156
|
}
|
|
155
|
-
) : /* @__PURE__ */
|
|
157
|
+
) : /* @__PURE__ */ i(
|
|
156
158
|
"div",
|
|
157
159
|
{
|
|
158
|
-
className:
|
|
160
|
+
className: t(
|
|
159
161
|
"marsun-interactive-block",
|
|
160
162
|
n["marsun-interactive-block"],
|
|
161
|
-
m && n["marsun-interactive-block--
|
|
162
|
-
u
|
|
163
|
+
m === "inset" && n["marsun-interactive-block--inset"],
|
|
164
|
+
u && n["marsun-interactive-block--selected"],
|
|
165
|
+
v
|
|
163
166
|
),
|
|
164
|
-
children:
|
|
167
|
+
children: k
|
|
165
168
|
}
|
|
166
169
|
);
|
|
167
170
|
};
|
|
168
171
|
export {
|
|
169
|
-
|
|
172
|
+
M as default
|
|
170
173
|
};
|
|
171
174
|
//# sourceMappingURL=InteractiveBlock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InteractiveBlock.js","sources":["../../../src/components/InteractiveBlock/InteractiveBlock.tsx"],"sourcesContent":["import ButtonGroup from '@kne/button-group';\nimport classNames from 'classnames';\nimport type { ReactNode } from 'react';\nimport type { DescriptionItem } from '../Descriptions/CommonDescriptions';\nimport { Info } from '../Icons';\nimport { SemanticTag } from '../Tag';\nimport { TooltipInfo } from '../TooltipInfo';\nimport styles from './style.module.scss';\n\nexport type InteractiveBlockTag = {\n label: string;\n color: string;\n};\n\nexport type InteractiveBlockAction = {\n key: string;\n label: string;\n icon?: ReactNode;\n onClick?: () => void;\n hidden?: boolean;\n};\n\nexport type InteractiveBlockTagsPlacement = 'inline' | 'below';\n\nexport type InteractiveBlockProps = {\n title: ReactNode;\n info?: DescriptionItem[];\n subtitle?: ReactNode;\n description?: ReactNode;\n tags?: InteractiveBlockTag[];\n tagsPlacement?: InteractiveBlockTagsPlacement;\n actions?: InteractiveBlockAction[];\n selected?: boolean;\n onClick?: () => void;\n className?: string;\n};\n\n/**\n * 带操作性的展示块:title → Info+TooltipInfo → actions;tags 紧贴 subtitle。\n */\nconst InteractiveBlock: React.FC<InteractiveBlockProps> = ({\n title,\n info,\n subtitle,\n description,\n tags,\n tagsPlacement = 'inline',\n actions,\n selected,\n onClick,\n className,\n}) => {\n const visibleActions = (actions ?? []).filter((a) => !a.hidden);\n const hasMeta = Boolean(subtitle || tags?.length);\n\n const actionList = visibleActions.map((action) => ({\n type: 'link' as const,\n key: action.key,\n icon: action.icon,\n children: action.label,\n onClick: action.onClick,\n }));\n\n const tagsNode = tags?.length ? (\n <div\n className={classNames(\n 'marsun-interactive-block-tags',\n styles['marsun-interactive-block-tags'],\n )}\n >\n {tags.map((tag) => (\n <SemanticTag key={tag.label} color={tag.color}>\n {tag.label}\n </SemanticTag>\n ))}\n </div>\n ) : null;\n\n const body = (\n <>\n <div\n className={classNames(\n 'marsun-interactive-block-header',\n styles['marsun-interactive-block-header'],\n )}\n >\n <div\n className={classNames(\n 'marsun-interactive-block-title-group',\n styles['marsun-interactive-block-title-group'],\n )}\n >\n <p\n className={classNames(\n 'marsun-interactive-block-title',\n styles['marsun-interactive-block-title'],\n )}\n >\n {title}\n </p>\n {info?.length ? (\n <TooltipInfo\n content={info}\n placement=\"topLeft\"\n overlayStyle={{ minWidth: 220, maxWidth: 360 }}\n overlayClassName=\"marsun-interactive-block-info-tooltip\"\n >\n <span\n className={classNames(\n 'marsun-interactive-block-info-trigger',\n styles['marsun-interactive-block-info-trigger'],\n )}\n onClick={(e) => e.stopPropagation()}\n onMouseDown={(e) => e.stopPropagation()}\n onKeyDown={(e) => e.stopPropagation()}\n >\n <Info size={16} aria-hidden />\n </span>\n </TooltipInfo>\n ) : null}\n </div>\n {visibleActions.length ? (\n <div\n className={classNames(\n 'marsun-interactive-block-actions',\n styles['marsun-interactive-block-actions'],\n )}\n onClick={(e) => e.stopPropagation()}\n onKeyDown={(e) => e.stopPropagation()}\n role=\"presentation\"\n >\n <ButtonGroup moreType=\"link\" list={actionList} />\n </div>\n ) : null}\n </div>\n {hasMeta ? (\n <div\n className={classNames(\n 'marsun-interactive-block-meta',\n styles['marsun-interactive-block-meta'],\n tagsPlacement === 'below' && styles['marsun-interactive-block-meta--below'],\n )}\n >\n {subtitle ? (\n <p\n className={classNames(\n 'marsun-interactive-block-subtitle',\n styles['marsun-interactive-block-subtitle'],\n )}\n >\n {subtitle}\n </p>\n ) : null}\n {tagsNode}\n </div>\n ) : null}\n {description ? (\n <p\n className={classNames(\n 'marsun-interactive-block-description',\n styles['marsun-interactive-block-description'],\n )}\n >\n {description}\n </p>\n ) : null}\n </>\n );\n\n if (onClick) {\n return (\n <div\n role=\"button\"\n tabIndex={0}\n className={classNames(\n 'marsun-interactive-block',\n styles['marsun-interactive-block'],\n styles['marsun-interactive-block--clickable'],\n selected && styles['marsun-interactive-block--selected'],\n className,\n )}\n onClick={onClick}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onClick();\n }\n }}\n >\n {body}\n </div>\n );\n }\n\n return (\n <div\n className={classNames(\n 'marsun-interactive-block',\n styles['marsun-interactive-block'],\n selected && styles['marsun-interactive-block--selected'],\n className,\n )}\n >\n {body}\n </div>\n );\n};\n\nexport default InteractiveBlock;\n"],"names":["InteractiveBlock","title","info","subtitle","description","tags","tagsPlacement","actions","selected","onClick","className","visibleActions","a","hasMeta","actionList","action","tagsNode","jsx","classNames","styles","tag","SemanticTag","body","jsxs","Fragment","TooltipInfo","Info","ButtonGroup"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"InteractiveBlock.js","sources":["../../../src/components/InteractiveBlock/InteractiveBlock.tsx"],"sourcesContent":["import ButtonGroup from '@kne/button-group';\nimport classNames from 'classnames';\nimport type { ReactNode } from 'react';\nimport type { DescriptionItem } from '../Descriptions/CommonDescriptions';\nimport { Info } from '../Icons';\nimport { SemanticTag } from '../Tag';\nimport { TooltipInfo } from '../TooltipInfo';\nimport styles from './style.module.scss';\n\nexport type InteractiveBlockTag = {\n label: string;\n color: string;\n};\n\nexport type InteractiveBlockAction = {\n key: string;\n label: string;\n icon?: ReactNode;\n onClick?: () => void;\n hidden?: boolean;\n};\n\nexport type InteractiveBlockTagsPlacement = 'inline' | 'below';\n\nexport type InteractiveBlockSurface = 'plain' | 'inset';\n\nexport type InteractiveBlockProps = {\n title: ReactNode;\n info?: DescriptionItem[];\n subtitle?: ReactNode;\n description?: ReactNode;\n tags?: InteractiveBlockTag[];\n tagsPlacement?: InteractiveBlockTagsPlacement;\n actions?: InteractiveBlockAction[];\n /** 列表表面:inset 对齐归档检索灰底项 */\n surface?: InteractiveBlockSurface;\n selected?: boolean;\n onClick?: () => void;\n className?: string;\n};\n\n/**\n * 带操作性的展示块:title → Info+TooltipInfo → actions;tags 紧贴 subtitle。\n */\nconst InteractiveBlock: React.FC<InteractiveBlockProps> = ({\n title,\n info,\n subtitle,\n description,\n tags,\n tagsPlacement = 'inline',\n actions,\n surface = 'plain',\n selected,\n onClick,\n className,\n}) => {\n const visibleActions = (actions ?? []).filter((a) => !a.hidden);\n const hasMeta = Boolean(subtitle || tags?.length);\n\n const actionList = visibleActions.map((action) => ({\n type: 'link' as const,\n key: action.key,\n icon: action.icon,\n children: action.label,\n onClick: action.onClick,\n }));\n\n const tagsNode = tags?.length ? (\n <div\n className={classNames(\n 'marsun-interactive-block-tags',\n styles['marsun-interactive-block-tags'],\n )}\n >\n {tags.map((tag) => (\n <SemanticTag key={tag.label} color={tag.color}>\n {tag.label}\n </SemanticTag>\n ))}\n </div>\n ) : null;\n\n const body = (\n <>\n <div\n className={classNames(\n 'marsun-interactive-block-header',\n styles['marsun-interactive-block-header'],\n )}\n >\n <div\n className={classNames(\n 'marsun-interactive-block-title-group',\n styles['marsun-interactive-block-title-group'],\n )}\n >\n <p\n className={classNames(\n 'marsun-interactive-block-title',\n styles['marsun-interactive-block-title'],\n )}\n >\n {title}\n </p>\n {info?.length ? (\n <TooltipInfo\n content={info}\n placement=\"topLeft\"\n overlayStyle={{ minWidth: 220, maxWidth: 360 }}\n overlayClassName=\"marsun-interactive-block-info-tooltip\"\n >\n <span\n className={classNames(\n 'marsun-interactive-block-info-trigger',\n styles['marsun-interactive-block-info-trigger'],\n )}\n onClick={(e) => e.stopPropagation()}\n onMouseDown={(e) => e.stopPropagation()}\n onKeyDown={(e) => e.stopPropagation()}\n >\n <Info size={16} aria-hidden />\n </span>\n </TooltipInfo>\n ) : null}\n </div>\n {visibleActions.length ? (\n <div\n className={classNames(\n 'marsun-interactive-block-actions',\n styles['marsun-interactive-block-actions'],\n )}\n onClick={(e) => e.stopPropagation()}\n onKeyDown={(e) => e.stopPropagation()}\n role=\"presentation\"\n >\n <ButtonGroup moreType=\"link\" list={actionList} />\n </div>\n ) : null}\n </div>\n {hasMeta ? (\n <div\n className={classNames(\n 'marsun-interactive-block-meta',\n styles['marsun-interactive-block-meta'],\n tagsPlacement === 'below' && styles['marsun-interactive-block-meta--below'],\n )}\n >\n {subtitle ? (\n <p\n className={classNames(\n 'marsun-interactive-block-subtitle',\n styles['marsun-interactive-block-subtitle'],\n )}\n >\n {subtitle}\n </p>\n ) : null}\n {tagsNode}\n </div>\n ) : null}\n {description ? (\n <p\n className={classNames(\n 'marsun-interactive-block-description',\n styles['marsun-interactive-block-description'],\n )}\n >\n {description}\n </p>\n ) : null}\n </>\n );\n\n if (onClick) {\n return (\n <div\n role=\"button\"\n tabIndex={0}\n className={classNames(\n 'marsun-interactive-block',\n styles['marsun-interactive-block'],\n styles['marsun-interactive-block--clickable'],\n surface === 'inset' && styles['marsun-interactive-block--inset'],\n selected && styles['marsun-interactive-block--selected'],\n className,\n )}\n onClick={onClick}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onClick();\n }\n }}\n >\n {body}\n </div>\n );\n }\n\n return (\n <div\n className={classNames(\n 'marsun-interactive-block',\n styles['marsun-interactive-block'],\n surface === 'inset' && styles['marsun-interactive-block--inset'],\n selected && styles['marsun-interactive-block--selected'],\n className,\n )}\n >\n {body}\n </div>\n );\n};\n\nexport default InteractiveBlock;\n"],"names":["InteractiveBlock","title","info","subtitle","description","tags","tagsPlacement","actions","surface","selected","onClick","className","visibleActions","a","hasMeta","actionList","action","tagsNode","jsx","classNames","styles","tag","SemanticTag","body","jsxs","Fragment","TooltipInfo","Info","ButtonGroup"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { default } from './InteractiveBlock';
|
|
2
2
|
export { default as InteractiveBlock } from './InteractiveBlock';
|
|
3
|
-
export type { InteractiveBlockAction, InteractiveBlockProps, InteractiveBlockTag, InteractiveBlockTagsPlacement, } from './InteractiveBlock';
|
|
3
|
+
export type { InteractiveBlockAction, InteractiveBlockProps, InteractiveBlockSurface, InteractiveBlockTag, InteractiveBlockTagsPlacement, } from './InteractiveBlock';
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
const e = {
|
|
2
|
-
"marsun-interactive-block": "_marsun-interactive-
|
|
3
|
-
"marsun-interactive-block--clickable": "_marsun-interactive-block--
|
|
4
|
-
"marsun-interactive-block--
|
|
5
|
-
"marsun-interactive-block
|
|
6
|
-
"marsun-interactive-block-
|
|
7
|
-
"marsun-interactive-block-
|
|
8
|
-
"marsun-interactive-block-
|
|
9
|
-
"marsun-interactive-block-
|
|
10
|
-
"marsun-interactive-block-
|
|
11
|
-
"marsun-interactive-block-meta
|
|
12
|
-
"marsun-interactive-block-
|
|
13
|
-
"marsun-interactive-block-
|
|
14
|
-
"marsun-interactive-block-
|
|
2
|
+
"marsun-interactive-block": "_marsun-interactive-block_jc90o_1",
|
|
3
|
+
"marsun-interactive-block--clickable": "_marsun-interactive-block--clickable_jc90o_12",
|
|
4
|
+
"marsun-interactive-block--inset": "_marsun-interactive-block--inset_jc90o_15",
|
|
5
|
+
"marsun-interactive-block--selected": "_marsun-interactive-block--selected_jc90o_24",
|
|
6
|
+
"marsun-interactive-block-title": "_marsun-interactive-block-title_jc90o_28",
|
|
7
|
+
"marsun-interactive-block-header": "_marsun-interactive-block-header_jc90o_48",
|
|
8
|
+
"marsun-interactive-block-title-group": "_marsun-interactive-block-title-group_jc90o_55",
|
|
9
|
+
"marsun-interactive-block-info-trigger": "_marsun-interactive-block-info-trigger_jc90o_74",
|
|
10
|
+
"marsun-interactive-block-actions": "_marsun-interactive-block-actions_jc90o_84",
|
|
11
|
+
"marsun-interactive-block-meta": "_marsun-interactive-block-meta_jc90o_101",
|
|
12
|
+
"marsun-interactive-block-meta--below": "_marsun-interactive-block-meta--below_jc90o_108",
|
|
13
|
+
"marsun-interactive-block-subtitle": "_marsun-interactive-block-subtitle_jc90o_113",
|
|
14
|
+
"marsun-interactive-block-tags": "_marsun-interactive-block-tags_jc90o_120",
|
|
15
|
+
"marsun-interactive-block-description": "_marsun-interactive-block-description_jc90o_126"
|
|
15
16
|
};
|
|
16
17
|
export {
|
|
17
18
|
e as default
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"style.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { jsxs as p, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import I from "@kne/button-group";
|
|
3
|
+
import { Modal as z } from "antd";
|
|
4
|
+
import e from "classnames";
|
|
5
|
+
import { useMemo as h, useState as B, useEffect as T } from "react";
|
|
6
|
+
import { Info as V } from "../../Icons/index.js";
|
|
7
|
+
import { resolveModalWidth as _, resolveModalSizeAnchor as j, MODAL_SIZE_BODY_HEIGHT as C } from "../utils/resolveModalSize.js";
|
|
8
|
+
import r from "./style.module.scss.js";
|
|
9
|
+
import D from "../../TooltipInfo/TooltipInfo.js";
|
|
10
|
+
import G from "../../VirtualScrollbar/VirtualScrollbar/index.js";
|
|
11
|
+
function O() {
|
|
12
|
+
const [i, m] = B(() => typeof window < "u" ? window.innerWidth : 1200);
|
|
13
|
+
return T(() => {
|
|
14
|
+
const o = () => m(window.innerWidth);
|
|
15
|
+
return window.addEventListener("resize", o), () => window.removeEventListener("resize", o);
|
|
16
|
+
}, []), i;
|
|
17
|
+
}
|
|
18
|
+
const Q = ({
|
|
19
|
+
open: i,
|
|
20
|
+
onCancel: m,
|
|
21
|
+
title: o,
|
|
22
|
+
info: a,
|
|
23
|
+
description: f,
|
|
24
|
+
actions: w,
|
|
25
|
+
footer: y = null,
|
|
26
|
+
size: l,
|
|
27
|
+
width: s,
|
|
28
|
+
children: v,
|
|
29
|
+
className: N,
|
|
30
|
+
destroyOnHidden: M = !0,
|
|
31
|
+
maskClosable: W = !1,
|
|
32
|
+
scrollable: b = !1,
|
|
33
|
+
closable: x = !0
|
|
34
|
+
}) => {
|
|
35
|
+
const n = O(), E = h(
|
|
36
|
+
() => _({ size: l, width: s, viewportWidth: n }),
|
|
37
|
+
[l, s, n]
|
|
38
|
+
), L = h(
|
|
39
|
+
() => j({ size: l, width: s, viewportWidth: n }),
|
|
40
|
+
[l, s, n]
|
|
41
|
+
), g = C[L], d = h(() => {
|
|
42
|
+
const u = (w ?? []).filter((H) => !H.hidden), c = u[0];
|
|
43
|
+
return !c || c.type != null ? u : [{ ...c, type: "primary" }, ...u.slice(1)];
|
|
44
|
+
}, [w]), S = /* @__PURE__ */ p("div", { className: e("marsun-modal-title-wrap", r["marsun-modal-title-wrap"]), children: [
|
|
45
|
+
/* @__PURE__ */ p("div", { className: e("marsun-modal-title-row", r["marsun-modal-title-row"]), children: [
|
|
46
|
+
/* @__PURE__ */ p("div", { className: e("marsun-modal-title-group", r["marsun-modal-title-group"]), children: [
|
|
47
|
+
/* @__PURE__ */ t("div", { className: e("marsun-modal-title", r["marsun-modal-title"]), children: o }),
|
|
48
|
+
a != null && a.length ? /* @__PURE__ */ t(
|
|
49
|
+
D,
|
|
50
|
+
{
|
|
51
|
+
content: a,
|
|
52
|
+
placement: "topLeft",
|
|
53
|
+
overlayStyle: { minWidth: 220, maxWidth: 360 },
|
|
54
|
+
overlayClassName: "marsun-modal-info-tooltip",
|
|
55
|
+
children: /* @__PURE__ */ t(
|
|
56
|
+
"span",
|
|
57
|
+
{
|
|
58
|
+
className: e(
|
|
59
|
+
"marsun-modal-info-trigger",
|
|
60
|
+
r["marsun-modal-info-trigger"]
|
|
61
|
+
),
|
|
62
|
+
children: /* @__PURE__ */ t(V, { size: 16, "aria-hidden": !0 })
|
|
63
|
+
}
|
|
64
|
+
)
|
|
65
|
+
}
|
|
66
|
+
) : null
|
|
67
|
+
] }),
|
|
68
|
+
d.length > 0 ? /* @__PURE__ */ t(
|
|
69
|
+
"div",
|
|
70
|
+
{
|
|
71
|
+
className: e(
|
|
72
|
+
"marsun-modal-title-actions",
|
|
73
|
+
r["marsun-modal-title-actions"]
|
|
74
|
+
),
|
|
75
|
+
children: /* @__PURE__ */ t(I, { list: d, showLength: Math.max(d.length, 2) })
|
|
76
|
+
}
|
|
77
|
+
) : null
|
|
78
|
+
] }),
|
|
79
|
+
f ? /* @__PURE__ */ t("div", { className: e("marsun-modal-description", r["marsun-modal-description"]), children: f }) : null
|
|
80
|
+
] }), A = b ? /* @__PURE__ */ t(
|
|
81
|
+
G,
|
|
82
|
+
{
|
|
83
|
+
wrapperClassName: e(
|
|
84
|
+
"marsun-modal-scroll-wrapper",
|
|
85
|
+
r["marsun-modal-scroll-wrapper"]
|
|
86
|
+
),
|
|
87
|
+
className: e("marsun-modal-scroll", r["marsun-modal-scroll"]),
|
|
88
|
+
children: v
|
|
89
|
+
}
|
|
90
|
+
) : /* @__PURE__ */ t("div", { className: e("marsun-modal-body-inner", r["marsun-modal-body-inner"]), children: v });
|
|
91
|
+
return /* @__PURE__ */ t(
|
|
92
|
+
z,
|
|
93
|
+
{
|
|
94
|
+
open: i,
|
|
95
|
+
onCancel: m,
|
|
96
|
+
title: S,
|
|
97
|
+
footer: y,
|
|
98
|
+
width: E,
|
|
99
|
+
centered: !0,
|
|
100
|
+
closable: x,
|
|
101
|
+
maskClosable: W,
|
|
102
|
+
destroyOnHidden: M,
|
|
103
|
+
className: e("marsun-modal", r["marsun-modal"], N),
|
|
104
|
+
styles: {
|
|
105
|
+
body: {
|
|
106
|
+
height: g,
|
|
107
|
+
maxHeight: g,
|
|
108
|
+
overflow: "hidden",
|
|
109
|
+
paddingTop: 12,
|
|
110
|
+
paddingBottom: 12
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
children: A
|
|
114
|
+
}
|
|
115
|
+
);
|
|
116
|
+
};
|
|
117
|
+
export {
|
|
118
|
+
Q as default
|
|
119
|
+
};
|
|
120
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/Modal/Modal/index.tsx"],"sourcesContent":["import ButtonGroup from '@kne/button-group';\nimport { Modal as AntModal } from 'antd';\nimport classNames from 'classnames';\nimport { useEffect, useMemo, useState, type ReactNode } from 'react';\nimport { Info } from '../../Icons';\nimport { TooltipInfo } from '../../TooltipInfo';\nimport { VirtualScrollbar } from '../../VirtualScrollbar';\nimport type { MarsunModalProps } from '../ModalTypes';\nimport {\n MODAL_SIZE_BODY_HEIGHT,\n resolveModalSizeAnchor,\n resolveModalWidth,\n} from '../utils/resolveModalSize';\nimport styles from './style.module.scss';\n\nfunction useViewportWidth(): number {\n const [vw, setVw] = useState(() => (typeof window !== 'undefined' ? window.innerWidth : 1200));\n\n useEffect(() => {\n const onResize = () => setVw(window.innerWidth);\n window.addEventListener('resize', onResize);\n return () => window.removeEventListener('resize', onResize);\n }, []);\n\n return vw;\n}\n\n/**\n * 通用居中 Modal:必填标题、可选 info/description、标题 Action(ButtonGroup)、S/M/L 宽度(只可缩小)、固定 body 高。\n */\nconst Modal: React.FC<MarsunModalProps> = ({\n open,\n onCancel,\n title,\n info,\n description,\n actions,\n footer = null,\n size,\n width,\n children,\n className,\n destroyOnHidden = true,\n maskClosable = false,\n scrollable = false,\n closable = true,\n}) => {\n const viewportWidth = useViewportWidth();\n const effectiveWidth = useMemo(\n () => resolveModalWidth({ size, width, viewportWidth }),\n [size, width, viewportWidth],\n );\n const sizeAnchor = useMemo(\n () => resolveModalSizeAnchor({ size, width, viewportWidth }),\n [size, width, viewportWidth],\n );\n const bodyHeight = MODAL_SIZE_BODY_HEIGHT[sizeAnchor];\n\n const visibleActions = useMemo(() => {\n const list = (actions ?? []).filter((a) => !a.hidden);\n const first = list[0];\n if (!first || first.type != null) return list;\n return [{ ...first, type: 'primary' as const }, ...list.slice(1)];\n }, [actions]);\n\n const titleNode = (\n <div className={classNames('marsun-modal-title-wrap', styles['marsun-modal-title-wrap'])}>\n <div className={classNames('marsun-modal-title-row', styles['marsun-modal-title-row'])}>\n <div className={classNames('marsun-modal-title-group', styles['marsun-modal-title-group'])}>\n <div className={classNames('marsun-modal-title', styles['marsun-modal-title'])}>\n {title}\n </div>\n {info?.length ? (\n <TooltipInfo\n content={info}\n placement=\"topLeft\"\n overlayStyle={{ minWidth: 220, maxWidth: 360 }}\n overlayClassName=\"marsun-modal-info-tooltip\"\n >\n <span\n className={classNames(\n 'marsun-modal-info-trigger',\n styles['marsun-modal-info-trigger'],\n )}\n >\n <Info size={16} aria-hidden />\n </span>\n </TooltipInfo>\n ) : null}\n </div>\n {visibleActions.length > 0 ? (\n <div\n className={classNames(\n 'marsun-modal-title-actions',\n styles['marsun-modal-title-actions'],\n )}\n >\n <ButtonGroup list={visibleActions} showLength={Math.max(visibleActions.length, 2)} />\n </div>\n ) : null}\n </div>\n {description ? (\n <div className={classNames('marsun-modal-description', styles['marsun-modal-description'])}>\n {description}\n </div>\n ) : null}\n </div>\n );\n\n const body: ReactNode = scrollable ? (\n <VirtualScrollbar\n wrapperClassName={classNames(\n 'marsun-modal-scroll-wrapper',\n styles['marsun-modal-scroll-wrapper'],\n )}\n className={classNames('marsun-modal-scroll', styles['marsun-modal-scroll'])}\n >\n {children}\n </VirtualScrollbar>\n ) : (\n <div className={classNames('marsun-modal-body-inner', styles['marsun-modal-body-inner'])}>\n {children}\n </div>\n );\n\n return (\n <AntModal\n open={open}\n onCancel={onCancel}\n title={titleNode}\n footer={footer}\n width={effectiveWidth}\n centered\n closable={closable}\n maskClosable={maskClosable}\n destroyOnHidden={destroyOnHidden}\n className={classNames('marsun-modal', styles['marsun-modal'], className)}\n styles={{\n body: {\n height: bodyHeight,\n maxHeight: bodyHeight,\n overflow: 'hidden',\n paddingTop: 12,\n paddingBottom: 12,\n },\n }}\n >\n {body}\n </AntModal>\n );\n};\n\nexport default Modal;\n"],"names":["useViewportWidth","vw","setVw","useState","useEffect","onResize","Modal","open","onCancel","title","info","description","actions","footer","size","width","children","className","destroyOnHidden","maskClosable","scrollable","closable","viewportWidth","effectiveWidth","useMemo","resolveModalWidth","sizeAnchor","resolveModalSizeAnchor","bodyHeight","MODAL_SIZE_BODY_HEIGHT","visibleActions","list","a","first","titleNode","classNames","styles","jsxs","jsx","TooltipInfo","Info","ButtonGroup","body","VirtualScrollbar","AntModal"],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const a = {
|
|
2
|
+
"marsun-modal": "_marsun-modal_1ggfn_1",
|
|
3
|
+
"marsun-modal-title-wrap": "_marsun-modal-title-wrap_1ggfn_23",
|
|
4
|
+
"marsun-modal-title-row": "_marsun-modal-title-row_1ggfn_30",
|
|
5
|
+
"marsun-modal-title-group": "_marsun-modal-title-group_1ggfn_41",
|
|
6
|
+
"marsun-modal-title": "_marsun-modal-title_1ggfn_23",
|
|
7
|
+
"marsun-modal-info-trigger": "_marsun-modal-info-trigger_1ggfn_56",
|
|
8
|
+
"marsun-modal-title-actions": "_marsun-modal-title-actions_1ggfn_66",
|
|
9
|
+
"marsun-modal-description": "_marsun-modal-description_1ggfn_71",
|
|
10
|
+
"marsun-modal-scroll-wrapper": "_marsun-modal-scroll-wrapper_1ggfn_81",
|
|
11
|
+
"marsun-modal-scroll": "_marsun-modal-scroll_1ggfn_81",
|
|
12
|
+
"marsun-modal-body-inner": "_marsun-modal-body-inner_1ggfn_96"
|
|
13
|
+
};
|
|
14
|
+
export {
|
|
15
|
+
a as default
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=style.module.scss.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { DescriptionItem } from '../Descriptions/CommonDescriptions';
|
|
3
|
+
import { ModalSize } from './utils/resolveModalSize';
|
|
4
|
+
export type MarsunModalProps = {
|
|
5
|
+
open: boolean;
|
|
6
|
+
onCancel: () => void;
|
|
7
|
+
/** 弹窗标题(必填) */
|
|
8
|
+
title: ReactNode;
|
|
9
|
+
/** 标题旁 Info + TooltipInfo(对齐 InteractiveBlock) */
|
|
10
|
+
info?: DescriptionItem[];
|
|
11
|
+
/** 标题行下方说明文案 */
|
|
12
|
+
description?: ReactNode;
|
|
13
|
+
/** 标题右侧操作,ButtonGroup listArray */
|
|
14
|
+
actions?: Record<string, unknown>[];
|
|
15
|
+
footer?: ReactNode | null;
|
|
16
|
+
size?: ModalSize;
|
|
17
|
+
/** 显式默认宽,优先于 size 作为锚点 */
|
|
18
|
+
width?: number;
|
|
19
|
+
children: ReactNode;
|
|
20
|
+
className?: string;
|
|
21
|
+
destroyOnHidden?: boolean;
|
|
22
|
+
maskClosable?: boolean;
|
|
23
|
+
/** body 内单层 VirtualScrollbar */
|
|
24
|
+
scrollable?: boolean;
|
|
25
|
+
closable?: boolean;
|
|
26
|
+
};
|