diff --git a/.gitignore b/.gitignore index f08e9e0..36fd51b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ node_modules/ -dist/ coverage/ .DS_Store .zcode/ diff --git a/dist/metona-toast.cjs.js b/dist/metona-toast.cjs.js new file mode 100644 index 0000000..6dda3b3 --- /dev/null +++ b/dist/metona-toast.cjs.js @@ -0,0 +1,4299 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +/** + * MetonaToast Utils — 工具函数 + * @module utils + * @version 0.2.1 + */ +/** + * 生成唯一ID + */ +const generateId = () => { + return 'met-' + Date.now().toString(36) + '-' + Math.random().toString(36).slice(2, 8); +}; +/** + * HTML转义 + * @param s - 输入字符串 + */ +const escapeHTML = (s) => { + if (typeof document === 'undefined') { + return String(s == null ? '' : s) + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); + } + const div = document.createElement('div'); + div.textContent = String(s == null ? '' : s); + return div.innerHTML; +}; +/** + * 检测暗色模式偏好 + */ +const prefersDark = () => { + return typeof window !== 'undefined' && + typeof window.matchMedia === 'function' && + window.matchMedia('(prefers-color-scheme: dark)').matches; +}; + +/** + * MetonaToast Icons — 图标SVG定义 + * @module icons + * @version 0.2.1 + * @description 107 个内置 SVG 图标 + */ +const ICONS = { + success: ` + + `, + error: ` + + + + `, + warning: ` + + + + `, + info: ` + + + + `, + loading: ` + + `, + close: ` + + + `, + check: ` + + `, + x: ` + + + `, + alert: ` + + + + `, + question: ` + + + + `, + star: ` + + `, + heart: ` + + `, + bell: ` + + + `, + mail: ` + + + `, + settings: ` + + + `, + user: ` + + + `, + home: ` + + + `, + search: ` + + + `, + plus: ` + + + `, + minus: ` + + `, + edit: ` + + + `, + trash: ` + + + + + `, + download: ` + + + + `, + upload: ` + + + + `, + share: ` + + + + + + `, + link: ` + + + `, + external: ` + + + + `, + clock: ` + + + `, + calendar: ` + + + + + `, + map: ` + + + + `, + compass: ` + + + `, + globe: ` + + + + `, + wifi: ` + + + + + `, + cloud: ` + + `, + sun: ` + + + + + + + + + + `, + moon: ` + + `, + zap: ` + + `, + activity: ` + + `, + cpu: ` + + + + + + + + + + + `, + database: ` + + + + `, + server: ` + + + + + `, + terminal: ` + + + `, + code: ` + + + `, + git: ` + + + + + `, + package: ` + + + + + `, + layers: ` + + + + `, + grid: ` + + + + + `, + list: ` + + + + + + + `, + filter: ` + + `, + sort: ` + + + `, + refresh: ` + + + + `, + sync: ` + + + + `, + power: ` + + + `, + battery: ` + + + `, + bluetooth: ` + + `, + volume: ` + + + `, + mic: ` + + + + + `, + camera: ` + + + `, + image: ` + + + + `, + video: ` + + + `, + music: ` + + + + `, + file: ` + + + `, + folder: ` + + `, + clipboard: ` + + + `, + save: ` + + + + `, + print: ` + + + + `, + eye: ` + + + `, + eyeOff: ` + + + `, + lock: ` + + + `, + unlock: ` + + + `, + shield: ` + + `, + key: ` + + `, + flag: ` + + + `, + bookmark: ` + + `, + tag: ` + + + `, + gift: ` + + + + + + `, + award: ` + + + `, + target: ` + + + + `, + crosshair: ` + + + + + + `, + move: ` + + + + + + + `, + maximize: ` + + `, + minimize: ` + + `, + copy: ` + + + `, + cut: ` + + + + + + `, + paste: ` + + + `, + rotateCw: ` + + + `, + rotateCcw: ` + + + `, + zoomIn: ` + + + + + `, + zoomOut: ` + + + + `, + crop: ` + + + `, + sliders: ` + + + + + + + + + + `, + toggleLeft: ` + + + `, + toggleRight: ` + + + `, + checkCircle: ` + + + `, + xCircle: ` + + + + `, + alertCircle: ` + + + + `, + infoCircle: ` + + + + `, + helpCircle: ` + + + + `, + alertTriangle: ` + + + + `, + checkSquare: ` + + + `, + square: ` + + `, + circle: ` + + `, + triangle: ` + + `, + hexagon: ` + + `, + octagon: ` + + `, + pentagon: ` + + `, + diamond: ` + + `, +}; + +/** + * MetonaToast Locales — 国际化翻译数据 + * @module locales + * @version 0.2.1 + * @description 内置 zh-CN / en-US 完整翻译 + */ +const LOCALES = { + 'zh-CN': { + // === 操作 === + close: '关闭', + loading: '加载中...', + success: '操作成功', + error: '操作失败', + warning: '警告', + info: '信息', + confirm: '确认', + cancel: '取消', + yes: '是', + no: '否', + ok: '确定', + retry: '重试', + undo: '撤销', + redo: '重做', + save: '保存', + delete: '删除', + edit: '编辑', + add: '添加', + remove: '移除', + search: '搜索', + filter: '筛选', + sort: '排序', + refresh: '刷新', + sync: '同步', + upload: '上传', + download: '下载', + share: '分享', + copy: '复制', + cut: '剪切', + paste: '粘贴', + print: '打印', + export: '导出', + import: '导入', + settings: '设置', + help: '帮助', + about: '关于', + version: '版本', + language: '语言', + theme: '主题', + dark: '暗色', + light: '亮色', + auto: '自动', + notifications: '通知', + enable: '启用', + disable: '禁用', + on: '开启', + off: '关闭', + max: '最大', + min: '最小', + expand: '展开', + collapse: '折叠', + fullscreen: '全屏', + exitFullscreen: '退出全屏', + zoomIn: '放大', + zoomOut: '缩小', + reset: '重置', + apply: '应用', + submit: '提交', + send: '发送', + receive: '接收', + connect: '连接', + disconnect: '断开', + start: '开始', + stop: '停止', + pause: '暂停', + resume: '继续', + next: '下一个', + previous: '上一个', + first: '第一个', + last: '最后一个', + back: '返回', + forward: '前进', + home: '首页', + menu: '菜单', + more: '更多', + less: '更少', + show: '显示', + hide: '隐藏', + visible: '可见', + hidden: '隐藏', + // === 状态 === + enabled: '已启用', + disabled: '已禁用', + active: '活跃', + inactive: '非活跃', + online: '在线', + offline: '离线', + connected: '已连接', + disconnected: '已断开', + loaded: '已加载', + saving: '保存中', + saved: '已保存', + deleting: '删除中', + deleted: '已删除', + uploading: '上传中', + uploaded: '已上传', + downloading: '下载中', + downloaded: '已下载', + processing: '处理中', + processed: '已处理', + syncing: '同步中', + synced: '已同步', + sending: '发送中', + sent: '已发送', + receiving: '接收中', + received: '已接收', + connecting: '连接中', + // === 交互 === + question: '问题', + feedback: '反馈', + report: '报告', + bug: '错误', + feature: '功能', + improvement: '改进', + suggestion: '建议', + request: '请求', + response: '响应', + status: '状态', + progress: '进度', + complete: '完成', + incomplete: '未完成', + pending: '待处理', + failed: '失败', + cancelled: '已取消', + timeout: '超时', + expired: '已过期', + invalid: '无效', + valid: '有效', + required: '必填', + optional: '可选', + allowed: '允许', + denied: '拒绝', + approved: '已批准', + rejected: '已拒绝', + accepted: '已接受', + declined: '已拒绝', + confirmed: '已确认', + unconfirmed: '未确认', + verified: '已验证', + unverified: '未验证', + authenticated: '已认证', + unauthenticated: '未认证', + authorized: '已授权', + unauthorized: '未授权', + // === 范围 / 角色 === + public: '公开', + private: '私有', + protected: '受保护', + internal: '内部', + external: '外部', + local: '本地', + remote: '远程', + global: '全局', + system: '系统', + user: '用户', + admin: '管理员', + moderator: '版主', + guest: '访客', + member: '成员', + owner: '所有者', + creator: '创建者', + editor: '编辑者', + viewer: '查看者', + subscriber: '订阅者', + follower: '关注者', + following: '关注中', + friend: '朋友', + contact: '联系人', + // === 组织 === + group: '群组', + team: '团队', + organization: '组织', + company: '公司', + department: '部门', + project: '项目', + task: '任务', + issue: '问题', + ticket: '工单', + message: '消息', + notification: '通知', + alert: '警报', + reminder: '提醒', + event: '事件', + activity: '活动', + log: '日志', + analytics: '分析', + statistics: '统计', + metrics: '指标', + performance: '性能', + security: '安全', + privacy: '隐私', + compliance: '合规', + policy: '政策', + terms: '条款', + conditions: '条件', + agreement: '协议', + contract: '合同', + license: '许可证', + copyright: '版权', + trademark: '商标', + patent: '专利', + tradeSecret: '商业秘密', + confidential: '机密', + sensitive: '敏感', + critical: '关键', + important: '重要', + urgent: '紧急', + high: '高', + medium: '中', + low: '低', + none: '无', + all: '全部', + any: '任何', + some: '一些', + each: '每个', + every: '每个', + both: '两者', + neither: '两者都不', + either: '任一', + other: '其他', + another: '另一个', + this: '这个', + that: '那个', + these: '这些', + those: '那些', + here: '这里', + there: '那里', + where: '哪里', + when: '何时', + why: '为什么', + how: '如何', + what: '什么', + who: '谁', + which: '哪个', + whose: '谁的', + whom: '谁', + }, + 'en-US': { + // === Actions === + close: 'Close', + loading: 'Loading...', + success: 'Success', + error: 'Error', + warning: 'Warning', + info: 'Info', + confirm: 'Confirm', + cancel: 'Cancel', + yes: 'Yes', + no: 'No', + ok: 'OK', + retry: 'Retry', + undo: 'Undo', + redo: 'Redo', + save: 'Save', + delete: 'Delete', + edit: 'Edit', + add: 'Add', + remove: 'Remove', + search: 'Search', + filter: 'Filter', + sort: 'Sort', + refresh: 'Refresh', + sync: 'Sync', + upload: 'Upload', + download: 'Download', + share: 'Share', + copy: 'Copy', + cut: 'Cut', + paste: 'Paste', + print: 'Print', + export: 'Export', + import: 'Import', + settings: 'Settings', + help: 'Help', + about: 'About', + version: 'Version', + language: 'Language', + theme: 'Theme', + dark: 'Dark', + light: 'Light', + auto: 'Auto', + notifications: 'Notifications', + enable: 'Enable', + disable: 'Disable', + on: 'On', + off: 'Off', + max: 'Max', + min: 'Min', + expand: 'Expand', + collapse: 'Collapse', + fullscreen: 'Fullscreen', + exitFullscreen: 'Exit Fullscreen', + zoomIn: 'Zoom In', + zoomOut: 'Zoom Out', + reset: 'Reset', + apply: 'Apply', + submit: 'Submit', + send: 'Send', + receive: 'Receive', + connect: 'Connect', + disconnect: 'Disconnect', + start: 'Start', + stop: 'Stop', + pause: 'Pause', + resume: 'Resume', + next: 'Next', + previous: 'Previous', + first: 'First', + last: 'Last', + back: 'Back', + forward: 'Forward', + home: 'Home', + menu: 'Menu', + more: 'More', + less: 'Less', + show: 'Show', + hide: 'Hide', + visible: 'Visible', + hidden: 'Hidden', + // === Status === + enabled: 'Enabled', + disabled: 'Disabled', + active: 'Active', + inactive: 'Inactive', + online: 'Online', + offline: 'Offline', + connected: 'Connected', + disconnected: 'Disconnected', + loaded: 'Loaded', + saving: 'Saving', + saved: 'Saved', + deleting: 'Deleting', + deleted: 'Deleted', + uploading: 'Uploading', + uploaded: 'Uploaded', + downloading: 'Downloading', + downloaded: 'Downloaded', + processing: 'Processing', + processed: 'Processed', + syncing: 'Syncing', + synced: 'Synced', + sending: 'Sending', + sent: 'Sent', + receiving: 'Receiving', + received: 'Received', + connecting: 'Connecting', + // === Interaction === + question: 'Question', + feedback: 'Feedback', + report: 'Report', + bug: 'Bug', + feature: 'Feature', + improvement: 'Improvement', + suggestion: 'Suggestion', + request: 'Request', + response: 'Response', + status: 'Status', + progress: 'Progress', + complete: 'Complete', + incomplete: 'Incomplete', + pending: 'Pending', + failed: 'Failed', + cancelled: 'Cancelled', + timeout: 'Timeout', + expired: 'Expired', + invalid: 'Invalid', + valid: 'Valid', + required: 'Required', + optional: 'Optional', + allowed: 'Allowed', + denied: 'Denied', + approved: 'Approved', + rejected: 'Rejected', + accepted: 'Accepted', + declined: 'Declined', + confirmed: 'Confirmed', + unconfirmed: 'Unconfirmed', + verified: 'Verified', + unverified: 'Unverified', + authenticated: 'Authenticated', + unauthenticated: 'Unauthenticated', + authorized: 'Authorized', + unauthorized: 'Unauthorized', + // === Scope / Role === + public: 'Public', + private: 'Private', + protected: 'Protected', + internal: 'Internal', + external: 'External', + local: 'Local', + remote: 'Remote', + global: 'Global', + system: 'System', + user: 'User', + admin: 'Admin', + moderator: 'Moderator', + guest: 'Guest', + member: 'Member', + owner: 'Owner', + creator: 'Creator', + editor: 'Editor', + viewer: 'Viewer', + subscriber: 'Subscriber', + follower: 'Follower', + following: 'Following', + friend: 'Friend', + contact: 'Contact', + // === Organization === + group: 'Group', + team: 'Team', + organization: 'Organization', + company: 'Company', + department: 'Department', + project: 'Project', + task: 'Task', + issue: 'Issue', + ticket: 'Ticket', + message: 'Message', + notification: 'Notification', + alert: 'Alert', + reminder: 'Reminder', + event: 'Event', + activity: 'Activity', + log: 'Log', + analytics: 'Analytics', + statistics: 'Statistics', + metrics: 'Metrics', + performance: 'Performance', + security: 'Security', + privacy: 'Privacy', + compliance: 'Compliance', + policy: 'Policy', + terms: 'Terms', + conditions: 'Conditions', + agreement: 'Agreement', + contract: 'Contract', + license: 'License', + copyright: 'Copyright', + trademark: 'Trademark', + patent: 'Patent', + tradeSecret: 'Trade Secret', + confidential: 'Confidential', + sensitive: 'Sensitive', + critical: 'Critical', + important: 'Important', + urgent: 'Urgent', + high: 'High', + medium: 'Medium', + low: 'Low', + none: 'None', + all: 'All', + any: 'Any', + some: 'Some', + each: 'Each', + every: 'Every', + both: 'Both', + neither: 'Neither', + either: 'Either', + other: 'Other', + another: 'Another', + this: 'This', + that: 'That', + these: 'These', + those: 'Those', + here: 'Here', + there: 'There', + where: 'Where', + when: 'When', + why: 'Why', + how: 'How', + what: 'What', + who: 'Who', + which: 'Which', + whose: 'Whose', + whom: 'Whom', + }, +}; + +/** + * MetonaToast Constants — 常量定义 + * @module constants + * @version 0.2.1 + */ +/** + * 默认配置 + */ +const DEFAULTS = Object.freeze({ + position: 'top-right', + duration: 4000, + max: 6, + gap: 12, + offset: 24, + pauseOnHover: true, + closeOnClick: true, + draggable: true, + showProgress: true, + progressDirection: 'horizontal', + icon: true, + closeButton: true, + theme: 'auto', + animation: 'slide', + zIndex: 9999, + width: 360, + className: '', + style: {}, + onShow: null, + onBeforeShow: null, + onClose: null, + onClick: null, + onUpdate: null, + resetTimerOnUpdate: false, + notifyWhenHidden: false, + onError: null, + locale: 'zh-CN', + plugins: [], +}); +/** + * 类型颜色配置 + */ +const TYPE_COLORS = { + success: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + error: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + warning: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + info: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + loading: { fg: '#6366f1', bg: 'rgba(99, 102, 241, 0.1)' }, + default: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + check: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + x: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + alert: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + question: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + star: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + heart: { fg: '#ec4899', bg: 'rgba(236, 72, 153, 0.1)' }, + bell: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + mail: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + settings: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + user: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + home: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + search: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + plus: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + minus: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + edit: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + trash: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + download: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + upload: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + share: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + link: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + external: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + clock: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + calendar: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + map: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + compass: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + globe: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + wifi: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + cloud: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + sun: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + moon: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + zap: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + activity: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + cpu: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + database: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + server: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + terminal: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + code: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + git: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + package: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + layers: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + grid: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + list: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + filter: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + sort: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + refresh: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + sync: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + power: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + battery: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + bluetooth: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + volume: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + mic: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + camera: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + image: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + video: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + music: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + file: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + folder: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + clipboard: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + save: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + print: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + eye: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + eyeOff: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + lock: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + unlock: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + shield: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + key: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + flag: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + bookmark: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + tag: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + gift: { fg: '#ec4899', bg: 'rgba(236, 72, 153, 0.1)' }, + award: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + target: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + crosshair: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + move: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + maximize: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + minimize: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + copy: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + cut: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + paste: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + rotateCw: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + rotateCcw: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + zoomIn: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + zoomOut: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + crop: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + sliders: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + toggleLeft: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + toggleRight: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + checkCircle: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + xCircle: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + alertCircle: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + infoCircle: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + helpCircle: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + alertTriangle: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + checkSquare: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + square: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + circle: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + triangle: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + hexagon: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + octagon: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + pentagon: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + diamond: { fg: '#ec4899', bg: 'rgba(236, 72, 153, 0.1)' }, +}; +/** + * 动画配置 + */ +const ANIMATIONS = { + slide: { + enter: { transform: 'translateX(80px)', opacity: '0' }, + leave: { transform: 'translateX(120%)', opacity: '0' }, + duration: 400, + easing: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + }, + fade: { + enter: { opacity: '0', filter: 'blur(3px)' }, + leave: { opacity: '0', filter: 'blur(3px)' }, + duration: 500, + easing: 'ease', + }, + scale: { + enter: { transform: 'scale(0.55)', opacity: '0' }, + leave: { transform: 'scale(0.55)', opacity: '0' }, + duration: 450, + easing: 'cubic-bezier(0.34, 1.56, 0.64, 1)', + }, + bounce: { + enter: { transform: 'translateY(-80px)', opacity: '0' }, + leave: { transform: 'translateY(20px)', opacity: '0' }, + duration: 650, + easing: 'ease', + }, + flip: { + enter: { transform: 'perspective(500px) rotateX(-90deg)', opacity: '0' }, + leave: { transform: 'perspective(500px) rotateX(90deg)', opacity: '0' }, + duration: 500, + easing: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + }, + rotate: { + enter: { transform: 'rotate(-25deg) scale(0.6)', opacity: '0' }, + leave: { transform: 'rotate(25deg) scale(0.6)', opacity: '0' }, + duration: 500, + easing: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + }, + zoom: { + enter: { transform: 'scale(0.1)', opacity: '0' }, + leave: { transform: 'scale(0.1)', opacity: '0' }, + duration: 500, + easing: 'cubic-bezier(0.34, 1.56, 0.64, 1)', + }, + slideUp: { + enter: { transform: 'translateY(60px)', opacity: '0' }, + leave: { transform: 'translateY(-120%)', opacity: '0' }, + duration: 400, + easing: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + }, + slideDown: { + enter: { transform: 'translateY(-60px)', opacity: '0' }, + leave: { transform: 'translateY(120%)', opacity: '0' }, + duration: 400, + easing: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + }, + slideLeft: { + enter: { transform: 'translateX(-90px)', opacity: '0' }, + leave: { transform: 'translateX(120%)', opacity: '0' }, + duration: 400, + easing: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + }, + slideRight: { + enter: { transform: 'translateX(90px)', opacity: '0' }, + leave: { transform: 'translateX(-120%)', opacity: '0' }, + duration: 400, + easing: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + }, +}; +/** + * 主题配置 + */ +const THEMES = { + light: { + bg: 'rgba(255, 255, 255, 0.96)', + text: '#1f2937', + border: 'rgba(0, 0, 0, 0.06)', + shadow: '0 10px 36px -10px rgba(0, 0, 0, 0.18), 0 4px 14px -4px rgba(0, 0, 0, 0.08)', + hoverShadow: '0 14px 48px -10px rgba(0, 0, 0, 0.22), 0 6px 18px -4px rgba(0, 0, 0, 0.10)', + progressBg: 'rgba(0, 0, 0, 0.06)', + closeHoverBg: 'rgba(0, 0, 0, 0.06)', + }, + dark: { + bg: 'rgba(28, 32, 40, 0.94)', + text: '#e6e8eb', + border: 'rgba(255, 255, 255, 0.08)', + shadow: '0 10px 36px -10px rgba(0, 0, 0, 0.6), 0 4px 14px -4px rgba(0, 0, 0, 0.4)', + hoverShadow: '0 14px 48px -8px rgba(0, 0, 0, 0.6), 0 6px 18px -4px rgba(0, 0, 0, 0.4)', + progressBg: 'rgba(255, 255, 255, 0.08)', + closeHoverBg: 'rgba(255, 255, 255, 0.08)', + }, + auto: { + bg: 'rgba(255, 255, 255, 0.96)', + text: '#1f2937', + border: 'rgba(0, 0, 0, 0.06)', + shadow: '0 10px 36px -10px rgba(0, 0, 0, 0.18), 0 4px 14px -4px rgba(0, 0, 0, 0.08)', + hoverShadow: '0 14px 48px -10px rgba(0, 0, 0, 0.22), 0 6px 18px -4px rgba(0, 0, 0, 0.10)', + progressBg: 'rgba(0, 0, 0, 0.06)', + closeHoverBg: 'rgba(0, 0, 0, 0.06)', + }, + warm: { + bg: 'rgba(255, 251, 235, 0.96)', + text: '#78350f', + border: 'rgba(245, 158, 11, 0.2)', + shadow: '0 10px 36px -10px rgba(245, 158, 11, 0.18), 0 4px 14px -4px rgba(245, 158, 11, 0.08)', + hoverShadow: '0 14px 48px -10px rgba(245, 158, 11, 0.22), 0 6px 18px -4px rgba(245, 158, 11, 0.10)', + progressBg: 'rgba(245, 158, 11, 0.1)', + closeHoverBg: 'rgba(245, 158, 11, 0.1)', + }, +}; + +/** + * MetonaToast Styles — 样式管理 + * @module styles + * @version 0.2.1 + */ +// 样式缓存 +let styleElement = null; +/** + * 生成CSS样式 + */ +const generateCSS = () => { + return ` + .met-container { + pointer-events: none; + display: flex; + flex-direction: column; + gap: 12px; + box-sizing: border-box; + padding: 24px; + max-width: 100vw; + position: fixed; + z-index: 9999; + } + + .met-container.top-left { top: 0; left: 0; align-items: flex-start; } + .met-container.top-center { top: 0; left: 0; right: 0; align-items: center; } + .met-container.top-right { top: 0; right: 0; align-items: flex-end; } + .met-container.bottom-left { bottom: 0; left: 0; align-items: flex-start; } + .met-container.bottom-center{ bottom: 0; left: 0; right: 0; align-items: center; } + .met-container.bottom-right { bottom: 0; right: 0; align-items: flex-end; } + + .met-toast { + position: relative; + display: flex; + align-items: flex-start; + gap: 12px; + padding: 14px 16px; + border-radius: 12px; + box-sizing: border-box; + backdrop-filter: blur(14px) saturate(180%); + -webkit-backdrop-filter: blur(14px) saturate(180%); + font: 14px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; + user-select: none; + -webkit-user-select: none; + transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), + box-shadow 0.25s ease, + opacity 0.25s ease; + will-change: transform, opacity; + flex-shrink: 0; + pointer-events: auto; + min-width: 240px; + max-width: calc(100vw - 48px); + width: 360px; + border: 1px solid var(--met-border, rgba(0,0,0,0.06)); + background: var(--met-bg, rgba(255,255,255,0.96)); + color: var(--met-text, #1f2937); + box-shadow: var(--met-shadow, 0 10px 36px -10px rgba(0,0,0,0.18), 0 4px 14px -4px rgba(0,0,0,0.08)); + transform: translateZ(0); + -webkit-transform: translateZ(0); + backface-visibility: hidden; + -webkit-backface-visibility: hidden; + perspective: 1000; + } + + .met-toast:hover { + box-shadow: var(--met-hover-shadow, 0 14px 48px -10px rgba(0,0,0,0.22), 0 6px 18px -4px rgba(0,0,0,0.10)) !important; + } + + .met-toast.met-clickable { + cursor: pointer; + } + + .met-icon { + flex-shrink: 0; + display: flex; + align-items: center; + justify-content: center; + width: 24px; + height: 24px; + margin-top: 1px; + } + + .met-content { + flex: 1; + min-width: 0; + word-wrap: break-word; + overflow-wrap: break-word; + } + + .met-title { + font-weight: 600; + font-size: 14px; + letter-spacing: 0.1px; + } + + .met-message { + font-size: 13px; + opacity: 0.85; + margin-top: 2px; + } + + .met-close { + flex-shrink: 0; + background: transparent; + border: 0; + padding: 4px; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + border-radius: 6px; + transition: background 0.2s, color 0.2s; + line-height: 0; + color: inherit; + opacity: 0.5; + } + + .met-close:hover { + opacity: 1; + background: var(--met-close-hover-bg, rgba(0,0,0,0.06)); + } + + .met-progress { + position: absolute; + left: 0; right: 0; bottom: 0; + height: 3px; + overflow: hidden; + background: var(--met-progress-bg, rgba(0,0,0,0.06)); + border-radius: 0 0 12px 12px; + } + + .met-progress-v { + position: absolute; + left: 0; top: 0; bottom: 0; + width: 3px; + overflow: hidden; + background: var(--met-progress-bg, rgba(0,0,0,0.06)); + border-radius: 12px 0 0 12px; + } + + .met-bar { + position: absolute; + left: 0; top: 0; + height: 100%; width: 100%; + transform-origin: left; + transform: scaleX(1); + } + + .met-bar-v { + position: absolute; + left: 0; bottom: 0; + width: 100%; height: 100%; + transform-origin: bottom; + transform: scaleY(1); + } + + .met-side { + position: absolute; + left: 0; top: 0; bottom: 0; + width: 4px; + border-radius: 12px 0 0 12px; + } + + .met-spin { + animation: met-rot 1s linear infinite; + transform-origin: 50% 50%; + } + + .met-toast.met-leaving { + pointer-events: none; + z-index: 1; + } + + @keyframes met-rot { + to { transform: rotate(360deg); } + } + + .met-anim-slide.met-toast, + .met-anim-fade.met-toast, + .met-anim-scale.met-toast, + .met-anim-bounce.met-toast, + .met-anim-flip.met-toast, + .met-anim-rotate.met-toast, + .met-anim-zoom.met-toast, + .met-anim-slideUp.met-toast, + .met-anim-slideDown.met-toast, + .met-anim-slideLeft.met-toast, + .met-anim-slideRight.met-toast { + opacity: 0; + } + + @keyframes met-slide-in { + 0% { transform: translateX(80px); opacity: 0; } + 65% { transform: translateX(-6px); opacity: 1; } + 100% { transform: translateX(0); opacity: 1; } + } + @keyframes met-fade-in { + 0% { opacity: 0; filter: blur(3px); } + 100% { opacity: 1; filter: blur(0); } + } + @keyframes met-scale-in { + 0% { transform: scale(0.55); opacity: 0; } + 65% { transform: scale(1.07); opacity: 1; } + 100% { transform: scale(1); opacity: 1; } + } + @keyframes met-bounce-in { + 0% { transform: translateY(-80px); opacity: 0; animation-timing-function: ease-in; } + 45% { transform: translateY(14px); opacity: 1; animation-timing-function: ease-out; } + 65% { transform: translateY(-12px); animation-timing-function: ease-in; } + 82% { transform: translateY(4px); animation-timing-function: ease-out; } + 100% { transform: translateY(0); opacity: 1; } + } + @keyframes met-flip-in { + 0% { transform: perspective(500px) rotateX(-90deg); opacity: 0; } + 60% { transform: perspective(500px) rotateX(8deg); opacity: 1; } + 85% { transform: perspective(500px) rotateX(-2deg); } + 100% { transform: perspective(500px) rotateX(0); opacity: 1; } + } + @keyframes met-rotate-in { + 0% { transform: rotate(-25deg) scale(0.6); opacity: 0; } + 60% { transform: rotate(4deg) scale(1.05); opacity: 1; } + 85% { transform: rotate(-1deg) scale(0.98); } + 100% { transform: rotate(0) scale(1); opacity: 1; } + } + @keyframes met-zoom-in { + 0% { transform: scale(0.1); opacity: 0; } + 50% { transform: scale(1.12); opacity: 1; } + 75% { transform: scale(0.94); } + 100% { transform: scale(1); opacity: 1; } + } + @keyframes met-slideUp-in { + 0% { transform: translateY(60px); opacity: 0; } + 70% { transform: translateY(-6px); opacity: 1; } + 100% { transform: translateY(0); opacity: 1; } + } + @keyframes met-slideDown-in { + 0% { transform: translateY(-60px); opacity: 0; } + 70% { transform: translateY(6px); opacity: 1; } + 100% { transform: translateY(0); opacity: 1; } + } + @keyframes met-slideLeft-in { + 0% { transform: translateX(-90px); opacity: 0; } + 65% { transform: translateX(6px); opacity: 1; } + 100% { transform: translateX(0); opacity: 1; } + } + @keyframes met-slideRight-in { + 0% { transform: translateX(90px); opacity: 0; } + 65% { transform: translateX(-6px); opacity: 1; } + 100% { transform: translateX(0); opacity: 1; } + } + + .met-anim-slide.met-toast.met-show { animation: met-slide-in 0.40s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; } + .met-anim-fade.met-toast.met-show { animation: met-fade-in 0.50s ease forwards; } + .met-anim-scale.met-toast.met-show { animation: met-scale-in 0.45s cubic-bezier(0.34, 1.56, 0.64, 1) forwards; } + .met-anim-bounce.met-toast.met-show { animation: met-bounce-in 0.65s ease forwards; } + .met-anim-flip.met-toast.met-show { animation: met-flip-in 0.50s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; } + .met-anim-rotate.met-toast.met-show { animation: met-rotate-in 0.50s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; } + .met-anim-zoom.met-toast.met-show { animation: met-zoom-in 0.50s cubic-bezier(0.34, 1.56, 0.64, 1) forwards; } + .met-anim-slideUp.met-toast.met-show { animation: met-slideUp-in 0.40s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; } + .met-anim-slideDown.met-toast.met-show { animation: met-slideDown-in 0.40s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; } + .met-anim-slideLeft.met-toast.met-show { animation: met-slideLeft-in 0.40s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; } + .met-anim-slideRight.met-toast.met-show { animation: met-slideRight-in 0.40s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; } + + @media (max-width: 480px) { + .met-container { padding: 12px !important; } + .met-toast { width: 100% !important; min-width: 0 !important; } + } + + @media (max-width: 768px) { + .met-toast { font-size: 13px; } + .met-title { font-size: 13px; } + .met-message { font-size: 12px; } + } + + @media (min-width: 1200px) { + .met-toast { width: 400px; } + } + + @media (min-width: 1920px) { + .met-toast { width: 440px; } + } + + @media (max-width: 320px) { + .met-toast { width: 100%; min-width: 0; padding: 12px 14px; } + .met-container { padding: 8px; } + } + + @media (orientation: landscape) and (max-height: 500px) { + .met-container { padding: 12px 24px; } + .met-toast { min-height: 44px; padding: 10px 14px; } + } + + @media (orientation: portrait) and (max-width: 500px) { + .met-container { padding: 12px; } + .met-toast { width: 100%; min-width: 0; } + } + + @media (prefers-reduced-motion: reduce) { + .met-toast { transition: opacity 0.15s !important; } + .met-toast.met-show { animation: none !important; opacity: 1 !important; } + .met-spin { animation-duration: 2.5s !important; } + } + + @media (forced-colors: active) { + .met-toast { border: 2px solid ButtonText; } + .met-close { border: 1px solid ButtonText; } + } + + @media (prefers-contrast: high) { + .met-toast { border-width: 3px; border-style: solid; } + .met-close { border: 2px solid currentColor; border-radius: 4px; } + } + + .met-toast:focus-visible { + outline: 2px solid #3b82f6; + outline-offset: 2px; + } + .met-close:focus-visible { + outline: 2px solid #3b82f6; + outline-offset: 2px; + } + + @media (hover: none) and (pointer: coarse) { + .met-toast:hover { box-shadow: inherit; } + .met-toast { min-height: 48px; } + .met-close { min-width: 48px; min-height: 48px; } + } + + @media print { + .met-container { display: none !important; } + .met-toast { display: none !important; } + } + + :fullscreen .met-container, + :picture-in-picture .met-container { + z-index: 2147483647; + } + + @supports (padding: max(0px)) { + .met-container { + padding: max(24px, env(safe-area-inset-top)) + max(24px, env(safe-area-inset-right)) + max(24px, env(safe-area-inset-bottom)) + max(24px, env(safe-area-inset-left)); + } + } + + .met-toast:active { + transform: scale(0.98); + } + + .met-toast.met-success { border-left: 4px solid #10b981; } + .met-toast.met-error { border-left: 4px solid #ef4444; } + .met-toast.met-warning { border-left: 4px solid #f59e0b; } + .met-toast.met-info { border-left: 4px solid #3b82f6; } + .met-toast.met-loading { border-left: 4px solid #6366f1; } + + .met-bar, .met-bar-v { + transition: transform 0.1s linear; + } + + .met-container::-webkit-scrollbar { width: 6px; height: 6px; } + .met-container::-webkit-scrollbar-track { background: transparent; } + .met-container::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.2); border-radius: 3px; } + .met-container::-webkit-scrollbar-thumb:hover { background: rgba(0,0,0,0.3); } + + .met-toast.met-theme-dark { + background: rgba(28, 32, 40, 0.94); + color: #e6e8eb; + border-color: rgba(255, 255, 255, 0.08); + box-shadow: 0 10px 36px -10px rgba(0, 0, 0, 0.6), 0 4px 14px -4px rgba(0, 0, 0, 0.4); + } + .met-toast.met-theme-dark:hover { + box-shadow: 0 14px 48px -8px rgba(0, 0, 0, 0.6), 0 6px 18px -4px rgba(0, 0, 0, 0.4) !important; + } + .met-toast.met-theme-dark .met-close:hover { + background: rgba(255, 255, 255, 0.08); + } + .met-toast.met-theme-dark .met-progress, + .met-toast.met-theme-dark .met-progress-v { + background: rgba(255, 255, 255, 0.08); + } + + .met-toast.met-theme-light { + background: rgba(255, 255, 255, 0.96); + color: #1f2937; + border-color: rgba(0, 0, 0, 0.06); + box-shadow: 0 10px 36px -10px rgba(0, 0, 0, 0.18), 0 4px 14px -4px rgba(0, 0, 0, 0.08); + } + .met-toast.met-theme-light:hover { + box-shadow: 0 14px 48px -10px rgba(0, 0, 0, 0.22), 0 6px 18px -4px rgba(0, 0, 0, 0.10) !important; + } + .met-toast.met-theme-light .met-close:hover { + background: rgba(0, 0, 0, 0.06); + } + .met-toast.met-theme-light .met-progress, + .met-toast.met-theme-light .met-progress-v { + background: rgba(0, 0, 0, 0.06); + } + + .met-toast[data-theme] { + --met-bg: var(--met-theme-bg); + --met-text: var(--met-theme-text); + --met-border: var(--met-theme-border); + --met-shadow: var(--met-theme-shadow); + } + + @media (prefers-color-scheme: dark) { + .met-theme-auto .met-toast { + background: rgba(28, 32, 40, 0.94); + color: #e6e8eb; + border-color: rgba(255, 255, 255, 0.08); + box-shadow: 0 10px 36px -10px rgba(0, 0, 0, 0.6), 0 4px 14px -4px rgba(0, 0, 0, 0.4); + } + .met-theme-auto .met-toast:hover { + box-shadow: 0 14px 48px -8px rgba(0, 0, 0, 0.6), 0 6px 18px -4px rgba(0, 0, 0, 0.4) !important; + } + .met-theme-auto .met-close:hover { background: rgba(255, 255, 255, 0.08); } + .met-theme-auto .met-progress, + .met-theme-auto .met-progress-v { background: rgba(255, 255, 255, 0.08); } + } + + @media (prefers-color-scheme: light) { + .met-theme-auto .met-toast { + background: rgba(255, 255, 255, 0.96); + color: #1f2937; + border-color: rgba(0, 0, 0, 0.06); + box-shadow: 0 10px 36px -10px rgba(0, 0, 0, 0.18), 0 4px 14px -4px rgba(0, 0, 0, 0.08); + } + .met-theme-auto .met-toast:hover { + box-shadow: 0 14px 48px -10px rgba(0, 0, 0, 0.22), 0 6px 18px -4px rgba(0, 0, 0, 0.10) !important; + } + .met-theme-auto .met-close:hover { background: rgba(0, 0, 0, 0.06); } + .met-theme-auto .met-progress, + .met-theme-auto .met-progress-v { background: rgba(0, 0, 0, 0.06); } + } + `; +}; +/** + * 注入样式 + */ +const injectStyles = () => { + if (typeof document === 'undefined') + return; + if (styleElement && document.getElementById('metona-toast-styles')) { + return; + } + const css = generateCSS(); + styleElement = document.createElement('style'); + styleElement.id = 'metona-toast-styles'; + styleElement.textContent = css.replace(/\s+/g, ' '); + document.head.appendChild(styleElement); +}; + +/** + * MetonaToast Themes — 主题管理 + * @module themes + * @version 0.2.1 + */ +// 当前主题状态 +let currentTheme = 'auto'; +const themeListeners = new Set(); +let systemThemeMediaQuery = null; +let systemThemeListener = null; +/** + * 获取系统主题 + */ +const getSystemTheme = () => { + if (typeof window === 'undefined') + return 'light'; + return prefersDark() ? 'dark' : 'light'; +}; +/** + * 获取主题(别名) + */ +const getTheme = (theme) => { + return resolveTheme(theme); +}; +/** + * 解析主题 — 'auto' 始终按系统主题检测,不依赖当前手动选择的主题 + */ +const resolveTheme = (theme) => { + if (theme === 'auto') { + return getSystemTheme(); + } + return theme; +}; +/** + * 获取主题配置 + */ +const getThemeConfig = (theme) => { + const resolved = resolveTheme(theme); + return THEMES[resolved] || THEMES.light; +}; +/** + * 应用主题 + */ +const applyTheme = (theme) => { + currentTheme = theme; + const resolved = resolveTheme(theme); + if (typeof document !== 'undefined') { + document.documentElement.setAttribute('data-met-theme', resolved); + document.documentElement.classList.remove('met-theme-light', 'met-theme-dark', 'met-theme-auto'); + document.documentElement.classList.add(`met-theme-${resolved}`); + const config = getThemeConfig(theme); + setThemeVariables(config); + } + notifyThemeListeners(theme, resolved); +}; +/** + * 设置主题CSS变量 + */ +const setThemeVariables = (config) => { + if (typeof document === 'undefined') + return; + const root = document.documentElement; + root.style.setProperty('--met-bg', config.bg); + root.style.setProperty('--met-text', config.text); + root.style.setProperty('--met-border', config.border); + root.style.setProperty('--met-shadow', config.shadow); + root.style.setProperty('--met-hover-shadow', config.hoverShadow); + root.style.setProperty('--met-progress-bg', config.progressBg); + root.style.setProperty('--met-close-hover-bg', config.closeHoverBg); + root.style.setProperty('--met-success', '#10b981'); + root.style.setProperty('--met-error', '#ef4444'); + root.style.setProperty('--met-warning', '#f59e0b'); + root.style.setProperty('--met-info', '#3b82f6'); + root.style.setProperty('--met-loading', '#6366f1'); +}; +/** + * 获取当前主题 + */ +const getCurrentTheme = () => { + return currentTheme; +}; +/** + * 获取解析后的主题 + */ +const getResolvedTheme = () => { + return resolveTheme(currentTheme); +}; +/** + * 切换主题 + */ +const switchTheme = (theme) => { + applyTheme(theme); + saveTheme(theme); +}; +/** + * 切换亮色/暗色主题 + */ +const toggleTheme = () => { + const resolved = getResolvedTheme(); + const newTheme = resolved === 'dark' ? 'light' : 'dark'; + switchTheme(newTheme); +}; +/** + * 重置为自动主题 + */ +const resetToAuto = () => { + switchTheme('auto'); +}; +/** + * 保存主题到本地存储 + */ +const saveTheme = (theme) => { + if (typeof localStorage !== 'undefined') { + try { + localStorage.setItem('metona-toast-theme', theme); + } + catch (e) { + console.warn('Failed to save theme:', e); + } + } +}; +/** + * 从本地存储加载主题 + */ +const loadTheme = () => { + if (typeof localStorage !== 'undefined') { + try { + return localStorage.getItem('metona-toast-theme') || 'auto'; + } + catch (e) { + console.warn('Failed to load theme:', e); + } + } + return 'auto'; +}; +/** + * 初始化主题系统 + */ +const initTheme = () => { + const savedTheme = loadTheme(); + applyTheme(savedTheme); + watchSystemTheme(); +}; +/** + * 监听系统主题变化 + */ +const watchSystemTheme = () => { + if (typeof window === 'undefined' || !window.matchMedia) + return; + if (systemThemeMediaQuery && systemThemeListener) { + systemThemeMediaQuery.removeEventListener('change', systemThemeListener); + } + systemThemeMediaQuery = window.matchMedia('(prefers-color-scheme: dark)'); + systemThemeListener = () => { + if (currentTheme === 'auto') { + applyTheme('auto'); + } + }; + systemThemeMediaQuery.addEventListener('change', systemThemeListener); +}; +/** + * 停止监听系统主题变化 + */ +const unwatchSystemTheme = () => { + if (systemThemeMediaQuery && systemThemeListener) { + systemThemeMediaQuery.removeEventListener('change', systemThemeListener); + systemThemeMediaQuery = null; + systemThemeListener = null; + } +}; +/** + * 添加主题监听器 + */ +const addThemeListener = (listener) => { + themeListeners.add(listener); + return () => { + themeListeners.delete(listener); + }; +}; +/** + * 移除主题监听器 + */ +const removeThemeListener = (listener) => { + themeListeners.delete(listener); +}; +/** + * 通知主题监听器 + */ +const notifyThemeListeners = (theme, resolved) => { + themeListeners.forEach((listener) => { + try { + listener(theme, resolved); + } + catch (e) { + console.error('Theme listener error:', e); + } + }); +}; +/** + * 清除所有主题监听器 + */ +const clearThemeListeners = () => { + themeListeners.clear(); +}; +/** + * 注册自定义主题 + */ +const registerTheme = (name, config) => { + THEMES[name] = { + bg: config.bg || THEMES.light.bg, + text: config.text || THEMES.light.text, + border: config.border || THEMES.light.border, + shadow: config.shadow || THEMES.light.shadow, + hoverShadow: config.hoverShadow || THEMES.light.hoverShadow, + progressBg: config.progressBg || THEMES.light.progressBg, + closeHoverBg: config.closeHoverBg || THEMES.light.closeHoverBg, + }; +}; +/** + * 注销自定义主题 + */ +const unregisterTheme = (name) => { + if (name === 'light' || name === 'dark' || name === 'auto') { + console.warn('Cannot unregister built-in theme:', name); + return; + } + delete THEMES[name]; +}; +/** + * 获取所有主题 + */ +const getAllThemes = () => { + return { ...THEMES }; +}; +/** + * 获取主题名称列表 + */ +const getThemeNames = () => { + return Object.keys(THEMES); +}; +/** + * 检查主题是否存在 + */ +const hasTheme = (name) => { + return name in THEMES; +}; +/** + * 获取主题预览 + */ +const getThemePreview = (theme) => { + const config = getThemeConfig(theme); + const resolved = resolveTheme(theme); + return { + name: theme, + resolved, + colors: { + background: config.bg, + text: config.text, + border: config.border, + }, + isDark: resolved === 'dark', + isLight: resolved === 'light', + isAuto: theme === 'auto', + }; +}; +/** + * 生成主题CSS + */ +const generateThemeCSS = (theme) => { + const config = getThemeConfig(theme); + const resolved = resolveTheme(theme); + return ` + .met-theme-${resolved} { + --met-bg: ${config.bg}; + --met-text: ${config.text}; + --met-border: ${config.border}; + --met-shadow: ${config.shadow}; + --met-hover-shadow: ${config.hoverShadow}; + --met-progress-bg: ${config.progressBg}; + --met-close-hover-bg: ${config.closeHoverBg}; + } + `; +}; +/** + * 应用主题CSS + */ +const applyThemeCSS = (theme) => { + if (typeof document === 'undefined') + return; + const css = generateThemeCSS(theme); + const styleId = 'metona-toast-theme-css'; + const oldStyle = document.getElementById(styleId); + if (oldStyle) { + oldStyle.remove(); + } + const style = document.createElement('style'); + style.id = styleId; + style.textContent = css; + document.head.appendChild(style); +}; +/** + * 移除主题CSS + */ +const removeThemeCSS = () => { + if (typeof document === 'undefined') + return; + const styleId = 'metona-toast-theme-css'; + const style = document.getElementById(styleId); + if (style) { + style.remove(); + } +}; +/** + * 主题工具 — 代理层 + */ +const themeUtils = { + getSystemTheme, + resolveTheme, + getThemeConfig, + applyTheme, + getCurrentTheme, + getResolvedTheme, + switchTheme, + toggleTheme, + resetToAuto, + initTheme, + watchSystemTheme, + unwatchSystemTheme, + addThemeListener, + removeThemeListener, + clearThemeListeners, + registerTheme, + unregisterTheme, + getAllThemes, + getThemeNames, + hasTheme, + getThemePreview, + generateThemeCSS, + applyThemeCSS, + removeThemeCSS, + saveTheme, + loadTheme, +}; + +/** + * MetonaToast i18n — 国际化管理 + * @module i18n + * @version 0.2.1 + */ +// 当前语言状态 +let currentLocale = 'zh-CN'; +const localeListeners = new Set(); +let fallbackLocale = 'zh-CN'; +/** + * 获取当前语言 + */ +const getCurrentLocale = () => { + return currentLocale; +}; +/** + * 设置当前语言 + */ +const setCurrentLocale = (locale) => { + if (!LOCALES[locale]) { + console.warn(`Locale "${locale}" not found, falling back to "${fallbackLocale}"`); + locale = fallbackLocale; + } + currentLocale = locale; + notifyLocaleListeners(locale); + saveLocale(locale); +}; +/** + * 获取回退语言 + */ +const getFallbackLocale = () => { + return fallbackLocale; +}; +/** + * 设置回退语言 + */ +const setFallbackLocale = (locale) => { + if (!LOCALES[locale]) { + console.warn(`Fallback locale "${locale}" not found`); + return; + } + fallbackLocale = locale; +}; +/** + * 翻译函数 + */ +const t = (key, params = {}) => { + const currentTranslation = getTranslation(currentLocale, key); + if (currentTranslation !== undefined) { + return interpolate(currentTranslation, params); + } + if (currentLocale !== fallbackLocale) { + const fallbackTranslation = getTranslation(fallbackLocale, key); + if (fallbackTranslation !== undefined) { + return interpolate(fallbackTranslation, params); + } + } + console.warn(`Translation missing for key "${key}" in locale "${currentLocale}"`); + return key; +}; +/** + * 获取翻译 + */ +const getTranslation = (locale, key) => { + const localeData = LOCALES[locale]; + if (!localeData) + return undefined; + const keys = key.split('.'); + let result = localeData; + for (const k of keys) { + if (result && typeof result === 'object' && k in result) { + result = result[k]; + } + else { + return undefined; + } + } + return typeof result === 'string' ? result : undefined; +}; +/** + * 插值函数 + */ +const interpolate = (str, params) => { + return str.replace(/\{(\w+)\}/g, (_match, key) => { + return params[key] !== undefined ? String(params[key]) : _match; + }); +}; +/** + * 检查翻译是否存在 + */ +const hasTranslation = (key) => { + return getTranslation(currentLocale, key) !== undefined || + getTranslation(fallbackLocale, key) !== undefined; +}; +/** + * 获取所有翻译 + */ +const getTranslations = (locale) => { + return LOCALES[locale] || {}; +}; +/** + * 添加翻译 + */ +const addTranslations = (locale, translations) => { + if (!LOCALES[locale]) { + LOCALES[locale] = {}; + } + deepMerge(LOCALES[locale], translations); +}; +/** + * 深度合并对象 + */ +const deepMerge = (target, source) => { + for (const key in source) { + if (source[key] instanceof Object && key in target && target[key] instanceof Object) { + deepMerge(target[key], source[key]); + } + else { + target[key] = source[key]; + } + } + return target; +}; +/** + * 移除翻译 + */ +const removeTranslation = (locale, key) => { + const localeData = LOCALES[locale]; + if (!localeData) + return; + const keys = key.split('.'); + let current = localeData; + for (let i = 0; i < keys.length - 1; i++) { + if (current[keys[i]] && typeof current[keys[i]] === 'object') { + current = current[keys[i]]; + } + else { + return; + } + } + delete current[keys[keys.length - 1]]; +}; +/** + * 清除翻译 + */ +const clearTranslations = (locale) => { + if (LOCALES[locale]) { + LOCALES[locale] = {}; + } +}; +/** + * 获取支持的语言列表 + */ +const getSupportedLocales = () => { + return Object.keys(LOCALES); +}; +/** + * 检查语言是否支持 + */ +const isLocaleSupported = (locale) => { + return locale in LOCALES; +}; +/** + * 获取语言名称 + */ +const getLocaleName = (locale) => { + const names = { + 'zh-CN': '简体中文', + 'zh-TW': '繁體中文', + 'en-US': 'English (US)', + 'en-GB': 'English (UK)', + 'ja': '日本語', + 'ko': '한국어', + 'fr': 'Français', + 'de': 'Deutsch', + 'es': 'Español', + 'pt': 'Português', + 'ru': 'Русский', + 'ar': 'العربية', + 'hi': 'हिन्दी', + 'th': 'ไทย', + 'vi': 'Tiếng Việt', + 'id': 'Bahasa Indonesia', + 'ms': 'Bahasa Melayu', + 'tr': 'Türkçe', + 'it': 'Italiano', + 'nl': 'Nederlands', + 'pl': 'Polski', + 'uk': 'Українська', + 'cs': 'Čeština', + 'sv': 'Svenska', + 'da': 'Dansk', + 'fi': 'Suomi', + 'nb': 'Norsk', + 'el': 'Ελληνικά', + 'he': 'עברית', + 'hu': 'Magyar', + 'ro': 'Română', + 'bg': 'Български', + 'hr': 'Hrvatski', + 'sk': 'Slovenčina', + 'sl': 'Slovenščina', + 'et': 'Eesti', + 'lv': 'Latviešu', + 'lt': 'Lietuvių', + 'ca': 'Català', + 'gl': 'Galego', + 'eu': 'Euskara', + 'cy': 'Cymraeg', + 'ga': 'Gaeilge', + 'mt': 'Malti', + 'is': 'Íslenska', + 'mk': 'Македонски', + 'sq': 'Shqip', + 'sr': 'Српски', + 'bs': 'Bosanski', + 'me': 'Crnogorski', + 'ka': 'ქართული', + 'hy': 'Հայերեն', + 'az': 'Azərbaycan', + 'uz': "O'zbek", + 'kk': 'Қазақ', + 'ky': 'Кыргыз', + 'tg': 'Тоҷикӣ', + 'tk': 'Türkmen', + 'mn': 'Монгол', + 'ne': 'नेपाली', + 'si': 'සිංහල', + 'my': 'မြန်မာ', + 'km': 'ខ្មែរ', + 'lo': 'ລາວ', + 'am': 'አማርኛ', + 'sw': 'Kiswahili', + 'yo': 'Yorùbá', + 'ig': 'Igbo', + 'ha': 'Hausa', + 'zu': 'isiZulu', + 'af': 'Afrikaans', + 'xh': 'isiXhosa', + 'st': 'Sesotho', + 'tn': 'Setswana', + 'ts': 'Xitsonga', + 'ss': 'siSwati', + 've': 'Tshivenda', + 'nr': 'isiNdebele', + }; + return names[locale] || locale; +}; +/** + * 获取语言方向 + */ +const getLocaleDirection = (locale) => { + const rtlLocales = ['ar', 'he', 'fa', 'ur', 'yi', 'ps', 'sd', 'ug']; + return rtlLocales.includes(locale) ? 'rtl' : 'ltr'; +}; +/** + * 获取语言信息 + */ +const getLocaleInfo = (locale) => { + return { + code: locale, + name: getLocaleName(locale), + direction: getLocaleDirection(locale), + isSupported: isLocaleSupported(locale), + isCurrent: locale === currentLocale, + isFallback: locale === fallbackLocale, + }; +}; +/** + * 获取所有语言信息 + */ +const getAllLocaleInfo = () => { + return getSupportedLocales().map(getLocaleInfo); +}; +/** + * 保存语言到本地存储 + */ +const saveLocale = (locale) => { + if (typeof localStorage !== 'undefined') { + try { + localStorage.setItem('metona-toast-locale', locale); + } + catch (e) { + console.warn('Failed to save locale:', e); + } + } +}; +/** + * 从本地存储加载语言 + */ +const loadLocale = () => { + if (typeof localStorage !== 'undefined') { + try { + return localStorage.getItem('metona-toast-locale') || getDefaultLocale(); + } + catch (e) { + console.warn('Failed to load locale:', e); + } + } + return getDefaultLocale(); +}; +/** + * 获取默认语言 + */ +const getDefaultLocale = () => { + if (typeof navigator !== 'undefined') { + const browserLocale = navigator.language || navigator.userLanguage; + if (browserLocale && isLocaleSupported(browserLocale)) { + return browserLocale; + } + const shortLocale = browserLocale?.split('-')[0]; + if (shortLocale && isLocaleSupported(shortLocale)) { + return shortLocale; + } + } + return fallbackLocale; +}; +/** + * 初始化国际化系统 + */ +const initI18n = () => { + const savedLocale = loadLocale(); + setCurrentLocale(savedLocale); +}; +/** + * 切换语言 + */ +const switchLocale = (locale) => { + setCurrentLocale(locale); +}; +/** + * 添加语言监听器 + */ +const addLocaleListener = (listener) => { + localeListeners.add(listener); + return () => { + localeListeners.delete(listener); + }; +}; +/** + * 移除语言监听器 + */ +const removeLocaleListener = (listener) => { + localeListeners.delete(listener); +}; +/** + * 通知语言监听器 + */ +const notifyLocaleListeners = (locale) => { + localeListeners.forEach((listener) => { + try { + listener(locale); + } + catch (e) { + console.error('Locale listener error:', e); + } + }); +}; +/** + * 清除所有语言监听器 + */ +const clearLocaleListeners = () => { + localeListeners.clear(); +}; +/** + * 格式化数字 + */ +const formatNumber = (number, options = {}) => { + try { + return new Intl.NumberFormat(currentLocale, options).format(number); + } + catch (e) { + return number.toString(); + } +}; +/** + * 格式化货币 + */ +const formatCurrency = (amount, currency = 'USD', options = {}) => { + try { + return new Intl.NumberFormat(currentLocale, { + style: 'currency', + currency, + ...options, + }).format(amount); + } + catch (e) { + return amount.toString(); + } +}; +/** + * 格式化百分比 + */ +const formatPercent = (value, options = {}) => { + try { + return new Intl.NumberFormat(currentLocale, { + style: 'percent', + minimumFractionDigits: 0, + maximumFractionDigits: 2, + ...options, + }).format(value / 100); + } + catch (e) { + return `${value}%`; + } +}; +/** + * 格式化日期 + */ +const formatDate = (date, options = {}) => { + try { + const dateObj = date instanceof Date ? date : new Date(date); + return new Intl.DateTimeFormat(currentLocale, options).format(dateObj); + } + catch (e) { + return String(date); + } +}; +/** + * 格式化时间 + */ +const formatTime = (date, options = {}) => { + return formatDate(date, { + hour: 'numeric', + minute: 'numeric', + second: 'numeric', + ...options, + }); +}; +/** + * 格式化相对时间 + */ +const formatRelativeTime = (date, options = {}) => { + try { + const dateObj = date instanceof Date ? date : new Date(date); + const now = new Date(); + const diff = dateObj.getTime() - now.getTime(); + const rtf = new Intl.RelativeTimeFormat(currentLocale, { + numeric: 'auto', + ...options, + }); + const units = [ + { unit: 'year', ms: 365 * 24 * 60 * 60 * 1000 }, + { unit: 'month', ms: 30 * 24 * 60 * 60 * 1000 }, + { unit: 'week', ms: 7 * 24 * 60 * 60 * 1000 }, + { unit: 'day', ms: 24 * 60 * 60 * 1000 }, + { unit: 'hour', ms: 60 * 60 * 1000 }, + { unit: 'minute', ms: 60 * 1000 }, + { unit: 'second', ms: 1000 }, + ]; + for (const { unit, ms } of units) { + if (Math.abs(diff) >= ms || unit === 'second') { + const value = Math.round(diff / ms); + return rtf.format(value, unit); + } + } + return String(date); + } + catch (e) { + return String(date); + } +}; +/** + * 格式化列表 — 优先使用 Intl.ListFormat,降级到逗号拼接 + */ +const formatList = (list, _options = {}) => { + const intl = Intl; + if (typeof intl.ListFormat === 'function') { + try { + return new intl.ListFormat(currentLocale, { + style: 'long', + type: 'conjunction', + }).format(list); + } + catch (_e) { /* fallback below */ } + } + return list.join(', '); +}; +/** + * 格式化复数 + */ +const formatPlural = (count, options = {}) => { + try { + return new Intl.PluralRules(currentLocale, options).select(count); + } + catch (e) { + return count === 1 ? 'one' : 'other'; + } +}; +/** + * 复数翻译 + */ +const plural = (key, count, params = {}) => { + const pluralForm = formatPlural(count); + const pluralKey = `${key}.${pluralForm}`; + if (hasTranslation(pluralKey)) { + return t(pluralKey, { ...params, count }); + } + if (hasTranslation(key)) { + return t(key, { ...params, count }); + } + return key; +}; +/** + * 国际化工具 — 代理层 + */ +const i18nUtils = { + t, + plural, + getCurrentLocale, + setCurrentLocale, + switchLocale, + getFallbackLocale, + setFallbackLocale, + hasTranslation, + getTranslations, + addTranslations, + removeTranslation, + clearTranslations, + getSupportedLocales, + isLocaleSupported, + getLocaleName, + getLocaleDirection, + getLocaleInfo, + getAllLocaleInfo, + formatNumber, + formatCurrency, + formatPercent, + formatDate, + formatTime, + formatRelativeTime, + formatList, + formatPlural, + addLocaleListener, + removeLocaleListener, + clearLocaleListeners, + initI18n, + saveLocale, + loadLocale, + getDefaultLocale, +}; +/** + * 预设语言包 + */ +({ + 'zh-CN': { + name: '简体中文', + nativeName: '简体中文', + direction: 'ltr', + translations: LOCALES['zh-CN'], + }, + 'en-US': { + name: 'English (US)', + nativeName: 'English (US)', + direction: 'ltr', + translations: LOCALES['en-US'], + }, +}); + +/** + * MetonaToast Toast — Toast 类 + * @module toast + * @version 0.2.1 + */ +/** + * Toast 类 — 核心通知组件 + */ +class Toast { + /** + * 设置 Toast 类级别的回调函数 + */ + static setCallbacks(callbacks) { + if (callbacks.onError !== undefined) + Toast._onError = callbacks.onError; + if (callbacks.removeToast !== undefined) + Toast._removeToast = callbacks.removeToast; + } + static on(name, fn) { + if (!this._hooks.has(name)) + this._hooks.set(name, []); + this._hooks.get(name).push(fn); + return () => this.off(name, fn); + } + static off(name, fn) { + const list = this._hooks.get(name); + if (list) + this._hooks.set(name, list.filter(f => f !== fn)); + } + /** + * 触发钩子 — 如果任意钩子返回 false 则整体返回 false + */ + static trigger(name, toast) { + const list = this._hooks.get(name); + if (!list || list.length === 0) + return true; + let allow = true; + list.forEach(fn => { + try { + const result = fn(toast); + if (result === false) + allow = false; + } + catch (e) { + console.error('Hook error:', name, e); + if (Toast._onError) { + try { + Toast._onError({ hook: name, error: e, toast }); + } + catch (_e) { /* noop */ } + } + } + }); + return allow; + } + constructor(opts) { + this.el = null; + this.barEl = null; + this.rafId = null; + this.startedAt = 0; + this.paused = false; + this.closing = false; + this.group = null; + this._cleanups = []; + this.id = opts.id || generateId(); + this.type = opts.type || 'default'; + this.title = opts.title || ''; + this.message = opts.message ?? opts.content ?? ''; + this.html = opts.html || ''; + this.iconHTML = opts.iconHTML || ''; + this.config = { ...DEFAULTS, ...opts }; + // 防止嵌套对象被多个 toast 实例共享引用 + if (opts.style && typeof opts.style === 'object') { + this.config.style = { ...opts.style }; + } + this.remaining = this.config.duration || 0; + this.group = opts.group || null; + } + _palette() { + const theme = getTheme(this.config.theme || 'auto'); + const c = TYPE_COLORS[this.type] || TYPE_COLORS.default; + const tc = THEMES[theme] || THEMES.light; + const t = { bg: tc.bg, border: tc.border, shadow: tc.shadow }; + return { theme, c, t }; + } + create() { + if (typeof window === 'undefined' || typeof document === 'undefined') + return this; + // beforeShow 钩子 — 返回 false 可阻止显示 + if (!Toast.trigger('beforeShow', this)) + return this; + // onBeforeShow 配置回调 — 返回 false 可阻止显示 + if (typeof this.config.onBeforeShow === 'function') { + try { + if (this.config.onBeforeShow(this) === false) + return this; + } + catch (e) { + console.error('onBeforeShow callback error:', e); + } + } + injectStyles(); + const container = this._getContainer(); + const { theme, c, t } = this._palette(); + this._limitToasts(container); + const el = document.createElement('div'); + el.className = this._buildClassName(theme); + el.setAttribute('role', (this.type === 'error' || this.type === 'warning') ? 'alert' : 'status'); + el.setAttribute('aria-live', this.type === 'error' ? 'assertive' : 'polite'); + el.dataset.id = this.id; + this._applyStyles(el, theme, t); + this._buildContent(el, c); + this.el = el; + // Chrome bug: column-reverse + appendChild 会导致重叠。改用 column + insertBefore + const pos = this.config.position || 'top-right'; + if (pos.startsWith('top')) { + container.insertBefore(el, container.firstChild); + } + else { + container.appendChild(el); + } + this._bindEvents(el); + this._startTimer(); + // 进入动画 + requestAnimationFrame(() => { + requestAnimationFrame(() => { + el.classList.add('met-show'); + }); + }); + if (typeof this.config.onShow === 'function') { + try { + this.config.onShow(this); + } + catch (e) { + console.error('onShow callback error:', e); + } + } + Toast.trigger('afterShow', this); + return this; + } + _getContainer() { + const rawPosition = this.config.position || 'top-right'; + const zIndex = this.config.zIndex || 9999; + // RTL 语言时翻转 left/right + const isRTL = getLocaleDirection(getCurrentLocale()) === 'rtl'; + const position = isRTL + ? rawPosition.replace('left', '__TMP__').replace('right', 'left').replace('__TMP__', 'right') + : rawPosition; + // 从模块级缓存获取 (由 api.ts 管理) + const cached = _containerCache.get(document.body); + if (cached && cached.has(position)) { + return cached.get(position); + } + // 缓存未命中时创建新容器 + if (!_containerCache.has(document.body)) { + _containerCache.set(document.body, new Map()); + } + const el = document.createElement('div'); + el.className = `met-container ${position}`; + el.setAttribute('aria-label', 'Notifications'); + el.setAttribute('role', 'region'); + const posStyles = { + 'top-left': 'top:0;left:0;align-items:flex-start', + 'top-center': 'top:0;left:0;right:0;align-items:center', + 'top-right': 'top:0;right:0;align-items:flex-end', + 'bottom-left': 'bottom:0;left:0;align-items:flex-start', + 'bottom-center': 'bottom:0;left:0;right:0;align-items:center', + 'bottom-right': 'bottom:0;right:0;align-items:flex-end', + }; + el.style.cssText = ` + display:flex; + flex-direction:column; + gap:${this.config.gap || 12}px; + box-sizing:border-box; + padding:${this.config.offset || 24}px; + max-width:100vw; + position:fixed; + z-index:${zIndex}; + pointer-events:none; + ${posStyles[position] || 'top:0;right:0;align-items:flex-end'} + `; + document.body.appendChild(el); + _containerCache.get(document.body).set(position, el); + return el; + } + _limitToasts(container) { + const max = this.config.max || 6; + const list = Array.from(container.querySelectorAll('.met-toast')); + if (list.length >= max) { + const first = list[0]; + const id = first?.dataset.id; + if (id && Toast._removeToast) { + Toast._removeToast(id); + } + } + } + _buildClassName(theme) { + const CSS_ANIMS = ['slide', 'fade', 'scale', 'bounce', 'flip', 'rotate', 'zoom', + 'slideUp', 'slideDown', 'slideLeft', 'slideRight']; + const anim = CSS_ANIMS.includes(this.config.animation || '') ? this.config.animation : 'slide'; + return [ + 'met-toast', + `met-${this.type}`, + `met-theme-${theme}`, + `met-anim-${anim}`, + (this.config.closeOnClick || this.config.draggable) ? 'met-clickable' : '', + this.config.className || '', + ].filter(Boolean).join(' '); + } + _applyStyles(el, _theme, _t) { + const widthValue = typeof this.config.width === 'number' + ? `${this.config.width}px` + : (typeof this.config.width === 'string' ? this.config.width : '360px'); + const set = (p, v) => el.style.setProperty(p, v, 'important'); + set('position', 'relative'); + set('flex-shrink', '0'); + set('min-width', '240px'); + set('max-width', 'calc(100vw - 48px)'); + set('width', widthValue); + // 用户自定义样式最后应用 + if (this.config.style && Object.keys(this.config.style).length > 0) { + Object.entries(this.config.style).forEach(([k, v]) => { el.style[k] = v; }); + } + } + _buildContent(el, c) { + // 自定义渲染函数 — 完全接管 DOM 构建 + if (typeof this.config.render === 'function') { + el.innerHTML = this.config.render(this); + this.barEl = el.querySelector('.met-bar, .met-bar-v'); + return; + } + const showIcon = this.config.icon !== false && (this.iconHTML || ICONS[this.type]); + const showClose = this.config.closeButton !== false; + const showProgress = this.config.showProgress !== false && (this.config.duration || 0) > 0; + const showSide = (!showIcon && this.type !== 'default'); + const safeTitle = this.title ? `
${escapeHTML(this.title)}
` : ''; + const safeMessage = this.html + ? `
${this.html}
` + : (this.message ? `
${escapeHTML(this.message)}
` : ''); + const iconHTML = showIcon + ? `
${this.iconHTML || ICONS[this.type]}
` : ''; + const closeHTML = showClose + ? `` + : ''; + const progressHTML = showProgress + ? (this.config.progressDirection === 'vertical' + ? `
` + : `
`) + : ''; + const sideHTML = showSide + ? `
` : ''; + el.innerHTML = ` + ${iconHTML} + ${sideHTML} +
+ ${safeTitle} + ${safeMessage} +
+ ${closeHTML} + ${progressHTML} + `; + this.barEl = el.querySelector('.met-bar, .met-bar-v'); + } + _bindEvents(el) { + const eventHandler = (e) => { + const target = e.target; + if (target.closest('.met-close')) { + e.stopPropagation(); + this.close(); + return; + } + if (this.config.closeOnClick && !target.closest('.met-close')) { + if (typeof this.config.onClick === 'function') { + try { + this.config.onClick(this); + } + catch (err) { + console.error('onClick callback error:', err); + } + } + this.close(); + return; + } + }; + el.addEventListener('click', eventHandler); + this._cleanups.push(() => el.removeEventListener('click', eventHandler)); + if (this.config.pauseOnHover && (this.config.duration || 0) > 0) { + const mouseEnter = () => this._pause(); + const mouseLeave = () => this._resume(); + el.addEventListener('mouseenter', mouseEnter); + el.addEventListener('mouseleave', mouseLeave); + this._cleanups.push(() => { + el.removeEventListener('mouseenter', mouseEnter); + el.removeEventListener('mouseleave', mouseLeave); + }); + } + if (this.config.draggable) { + this._bindDrag(el); + } + } + _bindDrag(el) { + let sx = 0, sy = 0, dx = 0, dy = 0, dragging = false; + const down = (e) => { + if (e.target.closest('.met-close')) + return; + dragging = true; + sx = e.clientX; + sy = e.clientY; + el.setPointerCapture(e.pointerId); + el.style.transition = 'none'; + this._pause(); + }; + const move = (e) => { + if (!dragging) + return; + dx = e.clientX - sx; + dy = e.clientY - sy; + el.style.transform = `translate(${dx}px, ${dy}px) rotate(${dx * 0.1}deg)`; + el.style.opacity = String(Math.max(0, 1 - Math.abs(dx) / 200)); + }; + const up = (e) => { + if (!dragging) + return; + dragging = false; + el.releasePointerCapture(e.pointerId); + el.style.transition = ''; + if (Math.abs(dx) > 120) { + el.style.transform = `translate(${dx * 2}px, ${dy}px) rotate(${dx * 0.2}deg)`; + el.style.opacity = '0'; + setTimeout(() => this.close(true), 250); + } + else { + el.style.transform = ''; + el.style.opacity = ''; + this._resume(); + } + dx = dy = 0; + }; + el.addEventListener('pointerdown', down); + el.addEventListener('pointermove', move); + el.addEventListener('pointerup', up); + el.addEventListener('pointercancel', up); + this._cleanups.push(() => { + el.removeEventListener('pointerdown', down); + el.removeEventListener('pointermove', move); + el.removeEventListener('pointerup', up); + el.removeEventListener('pointercancel', up); + }); + } + _startTimer(resuming = false) { + if ((this.config.duration || 0) <= 0) + return; + if (!resuming) { + this.startedAt = Date.now(); + this.remaining = this.config.duration || 0; + } + const tick = () => { + if (this.paused || this.closing) + return; + try { + const elapsed = Date.now() - this.startedAt; + this.remaining = Math.max(0, (this.config.duration || 0) - elapsed); + if (this.barEl) { + const ratio = this.remaining / (this.config.duration || 1); + const t = this.config.progressDirection === 'vertical' + ? `scaleY(${ratio})` : `scaleX(${ratio})`; + this.barEl.style.transform = t; + } + if (this.remaining <= 0) { + this.close(); + return; + } + } + catch (e) { + console.error('Timer tick error:', e); + if (Toast._onError) { + try { + Toast._onError({ source: 'timer', error: e, toast: this }); + } + catch (_e) { /* noop */ } + } + } + this.rafId = requestAnimationFrame(tick); + }; + this.rafId = requestAnimationFrame(tick); + } + _pause() { + if (this.paused || (this.config.duration || 0) <= 0) + return; + this.paused = true; + if (this.rafId !== null) + cancelAnimationFrame(this.rafId); + this.remaining = Math.max(0, (this.config.duration || 0) - (Date.now() - this.startedAt)); + } + _resume() { + if (!this.paused) + return; + this.paused = false; + this.startedAt = Date.now() - ((this.config.duration || 0) - this.remaining); + this._startTimer(true); + } + update(partial) { + Toast.trigger('beforeUpdate', this); + const typeChanged = partial.type && partial.type !== this.type; + if (partial.type) + this.type = partial.type; + if (partial.title !== undefined) + this.title = partial.title; + if (partial.message !== undefined) + this.message = partial.message; + if (partial.html !== undefined) + this.html = partial.html; + if (!this.el) { + Toast.trigger('afterUpdate', this); + return this; + } + // 类型变更时同步更新 DOM 类名、边框颜色和进度条颜色 + if (typeChanged) { + const typeClasses = ['met-success', 'met-error', 'met-warning', 'met-info', 'met-loading', 'met-default']; + typeClasses.forEach(c => this.el.classList.remove(c)); + this.el.classList.add(`met-${this.type}`); + if (this.barEl) { + const c = TYPE_COLORS[this.type] || TYPE_COLORS.default; + this.barEl.style.background = c.fg; + } + const side = this.el.querySelector('.met-side'); + if (side) { + const c = TYPE_COLORS[this.type] || TYPE_COLORS.default; + side.style.background = c.fg; + } + } + const content = this.el.querySelector('.met-content'); + if (content) { + const safeTitle = this.title ? `
${escapeHTML(this.title)}
` : ''; + const safeMessage = this.html + ? `
${this.html}
` + : (this.message ? `
${escapeHTML(this.message)}
` : ''); + content.innerHTML = `${safeTitle}${safeMessage}`; + } + // resetTimerOnUpdate: 更新内容后重置计时器 + if (this.config.resetTimerOnUpdate && (this.config.duration || 0) > 0) { + if (this.rafId !== null) + cancelAnimationFrame(this.rafId); + this.startedAt = Date.now(); + this.remaining = this.config.duration || 0; + this._startTimer(); + } + if (typeof this.config.onUpdate === 'function') { + try { + this.config.onUpdate(this); + } + catch (e) { + console.error('onUpdate callback error:', e); + } + } + Toast.trigger('afterUpdate', this); + return this; + } + /** + * 运行时移动 Toast 到新位置 + */ + updatePosition(position) { + if (!position || !this.el) + return this; + const oldContainer = this.el.parentNode; + this.config.position = position; + const newContainer = this._getContainer(); + if (oldContainer === newContainer) + return this; + // 从旧容器移除,加入新容器 + if (oldContainer && this.el.parentNode === oldContainer) { + oldContainer.removeChild(this.el); + } + const pos = position; + if (pos.startsWith('top')) { + newContainer.insertBefore(this.el, newContainer.firstChild); + } + else { + newContainer.appendChild(this.el); + } + return this; + } + /** + * 立即从 DOM 和内存中移除(不触发离场动画) + */ + remove() { + if (this.rafId !== null) { + cancelAnimationFrame(this.rafId); + this.rafId = null; + } + this._cleanups.forEach(fn => { try { + fn(); + } + catch (_e) { /* noop */ } }); + this._cleanups = []; + if (this.el && this.el.parentNode) { + this.el.parentNode.removeChild(this.el); + } + this.el = null; + if (Toast._removeToast) + Toast._removeToast(this.id); + } + close(immediate = false) { + if (this.closing) + return; + this.closing = true; + Toast.trigger('beforeClose', this); + if (this.rafId !== null) + cancelAnimationFrame(this.rafId); + this._cleanups.forEach(fn => { try { + fn(); + } + catch (_e) { /* noop */ } }); + this._cleanups = []; + const el = this.el; + if (!el) { + if (Toast._removeToast) + Toast._removeToast(this.id); + return; + } + // 立即脱离文档流 + const container = el.parentNode; + if (container && !immediate) { + const elRect = el.getBoundingClientRect(); + const containerRect = container.getBoundingClientRect(); + el.style.position = 'absolute'; + el.style.top = (elRect.top - containerRect.top) + 'px'; + el.style.left = (elRect.left - containerRect.left) + 'px'; + el.style.width = elRect.width + 'px'; + el.style.margin = '0'; + } + el.classList.add('met-leaving'); + el.classList.remove('met-show'); + const pos = this.config.position || 'top-right'; + const isRTL = getLocaleDirection(getCurrentLocale()) === 'rtl'; + let transform = 'scale(.96)'; + if (pos.includes('right')) + transform = isRTL ? 'translateX(-120%)' : 'translateX(120%)'; + else if (pos.includes('left')) + transform = isRTL ? 'translateX(120%)' : 'translateX(-120%)'; + else if (pos.startsWith('top')) + transform = 'translateY(-20px)'; + else + transform = 'translateY(20px)'; + el.style.transform = transform; + el.style.opacity = '0'; + setTimeout(() => this._destroy(), immediate ? 0 : 300); + } + _destroy() { + if (this.el && this.el.parentNode) { + this.el.parentNode.removeChild(this.el); + } + this.el = null; + if (typeof this.config.onClose === 'function') { + try { + this.config.onClose(this); + } + catch (e) { + console.error('onClose callback error:', e); + } + } + Toast.trigger('afterClose', this); + if (Toast._removeToast) + Toast._removeToast(this.id); + } +} +// 静态钩子系统 +Toast._hooks = new Map(); +// 由 api.ts 注入的回调,通过 setCallbacks() 设置 +Toast._onError = null; +Toast._removeToast = null; +/** + * 模块级共享容器缓存,所有 Toast 实例共用 + */ +const _containerCache = new Map(); + +/** + * MetonaToast Templates — HTML 模板辅助函数 + * @module templates + * @version 0.2.1 + * @description confirm / prompt / progress / action 的 DOM 模板 + */ +/** + * 按钮行模板 — confirm/prompt 共用 + */ +const btnRow = (buttons) => ` +
+ ${buttons} +
`; +/** + * 确认对话框模板 + */ +const confirmHTML = (opts) => { + const confirmText = opts.confirmText || t('confirm'); + const cancelText = opts.cancelText || t('cancel'); + const confirmColor = opts.confirmColor || '#10b981'; + const cancelColor = opts.cancelColor || '#6b7280'; + return btnRow(` + + + `); +}; +/** + * 输入对话框模板 + */ +const promptHTML = (opts) => { + const submitText = opts.submitText || t('confirm'); + const cancelText = opts.cancelText || t('cancel'); + const submitColor = opts.submitColor || '#3b82f6'; + const cancelColor = opts.cancelColor || '#6b7280'; + return ` + + ${btnRow(` + + + `)} + `; +}; +/** + * 进度条模板 + */ +const progressHTML = (opts) => { + const color = opts.progressColor || '#3b82f6'; + return ` +
+
+
+
0%
+ `; +}; +/** + * Action Toast 模板 + */ +const actionHTML = (actions) => { + if (!Array.isArray(actions) || actions.length === 0) + return ''; + const buttons = actions.map((a, i) => { + const bg = a.style?.background || a.color || '#6366f1'; + const cls = `met-action-btn-${i}`; + return ``; + }).join(''); + return btnRow(buttons); +}; + +/** + * MetonaToast Plugins — 插件系统 + * @module plugins + * @version 0.2.1 + */ +/** + * 插件管理器 + */ +class PluginManager { + constructor() { + this.plugins = new Map(); + this.initialized = false; + } + register(name, plugin) { + if (this.plugins.has(name)) { + console.warn(`Plugin "${name}" is already registered`); + return this; + } + if (!plugin || typeof plugin !== 'object' || !plugin.name) { + console.error(`Invalid plugin "${name}": must be an object with a "name" property`); + return this; + } + const stored = { ...plugin, installed: false, enabled: true }; + if (!stored.name) + stored.name = name; + this.plugins.set(name, stored); + if (stored.install) { + try { + stored.install(this); + stored.installed = true; + } + catch (e) { + console.error(`Failed to install plugin "${name}":`, e); + } + } + return this; + } + unregister(name) { + const plugin = this.plugins.get(name); + if (!plugin) + return this; + if (plugin.uninstall) { + try { + plugin.uninstall(this); + } + catch (e) { + console.error(`Failed to uninstall plugin "${name}":`, e); + } + } + this.plugins.delete(name); + return this; + } + get(name) { return this.plugins.get(name) || null; } + has(name) { return this.plugins.has(name); } + getAll() { return Array.from(this.plugins.values()); } + getNames() { return Array.from(this.plugins.keys()); } + enable(name) { + const p = this.plugins.get(name); + if (p) + p.enabled = true; + return this; + } + disable(name) { + const p = this.plugins.get(name); + if (p) + p.enabled = false; + return this; + } + isEnabled(name) { + const p = this.plugins.get(name); + return p ? !!p.enabled : false; + } + destroy() { + this.plugins.forEach((p) => { + if (p.destroy) { + try { + p.destroy(this); + } + catch (_e) { /* noop */ } + } + }); + this.plugins.clear(); + } +} +/** + * 预设插件 + */ +const presetPlugins = { + /** + * 键盘快捷键插件 — ESC 关闭所有 Toast + */ + keyboard: { + name: 'keyboard', + version: '1.0.0', + description: 'ESC 关闭所有 Toast', + _handler: null, + install() { + if (typeof document === 'undefined') + return; + const handler = (e) => { + if (e.key === 'Escape') { + document.querySelectorAll('.met-toast .met-close').forEach(btn => { + try { + btn.click(); + } + catch (_e) { /* noop */ } + }); + } + }; + this._handler = handler; + document.addEventListener('keydown', handler); + }, + uninstall() { + const handler = this._handler; + if (handler && typeof document !== 'undefined') { + document.removeEventListener('keydown', handler); + this._handler = null; + } + }, + }, + /** + * 持久化插件 — 自动保存/加载配置到 localStorage + */ + persistence: { + name: 'persistence', + version: '1.0.0', + description: '自动持久化配置到 localStorage', + storageKey: 'metona-toast-config', + install() { + if (typeof localStorage !== 'undefined') { + try { + const key = this.storageKey; + const saved = localStorage.getItem(key); + return saved ? JSON.parse(saved) : null; + } + catch (_e) { + return null; + } + } + return null; + }, + save(config) { + if (typeof localStorage !== 'undefined') { + try { + const key = this.storageKey; + localStorage.setItem(key, JSON.stringify(config)); + } + catch (_e) { /* noop */ } + } + }, + uninstall() { + if (typeof localStorage !== 'undefined') { + try { + const key = this.storageKey; + localStorage.removeItem(key); + } + catch (_e) { /* noop */ } + } + }, + }, + /** + * 无障碍插件 — 屏幕阅读器公告 + */ + accessibility: { + name: 'accessibility', + version: '1.0.0', + description: '通过屏幕阅读器朗读 Toast 内容', + announce(toast) { + if (typeof document === 'undefined') + return; + const el = document.createElement('div'); + el.setAttribute('aria-live', 'assertive'); + el.setAttribute('aria-atomic', 'true'); + el.style.cssText = 'position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;'; + const typeName = t(toast.type) || toast.type; + el.textContent = `${typeName}: ${toast.title || ''} ${toast.message || ''}`; + document.body.appendChild(el); + setTimeout(() => { if (el.parentNode) + el.parentNode.removeChild(el); }, 3000); + }, + }, +}; +/** + * 插件工具 + */ +const pluginUtils = { + createManager() { return new PluginManager(); }, + register(name, plugin) { return defaultPluginManager.register(name, plugin); }, + unregister(name) { return defaultPluginManager.unregister(name); }, + get(name) { return defaultPluginManager.get(name); }, + has(name) { return defaultPluginManager.has(name); }, + getAll() { return defaultPluginManager.getAll(); }, + getNames() { return defaultPluginManager.getNames(); }, + enable(name) { return defaultPluginManager.enable(name); }, + disable(name) { return defaultPluginManager.disable(name); }, + isEnabled(name) { return defaultPluginManager.isEnabled(name); }, + getPreset(name) { return presetPlugins[name] || null; }, + getAllPresets() { return { ...presetPlugins }; }, + createPlugin(config) { + return { + name: config.name || 'custom', + version: config.version || '1.0.0', + description: config.description || '', + hooks: config.hooks || {}, + install: config.install || undefined, + uninstall: config.uninstall || undefined, + ...config, + }; + }, + validatePlugin(plugin) { + const errors = []; + if (!plugin || typeof plugin !== 'object') + errors.push('Plugin must be an object'); + if (!plugin.name && !plugin.version) + errors.push('Plugin must have a name or version'); + return { valid: errors.length === 0, errors }; + }, +}; +const defaultPluginManager = new PluginManager(); + +/** + * MetonaToast API — meToast 核心 API 对象 + * @module api + * @version 0.2.1 + */ +/** + * 参数标准化工具 + */ +const normalizeArgs = (args, defaultType = 'default') => { + const [first, second] = args; + if (typeof first === 'string') { + return { + ...(second || {}), + type: second?.type || defaultType, + message: first, + }; + } + if (first && typeof first === 'object') { + return { + ...first, + type: first.type || defaultType, + }; + } + return { + type: defaultType, + message: '', + }; +}; +/** 版本号常量 */ +const VERSION$1 = '0.2.1'; +/** + * meToast API 对象 + */ +const meToast = { + _toasts: new Map(), + _config: { ...DEFAULTS }, + version: '0.2.1', + configure(opts) { + if (!opts || typeof opts !== 'object') + return this; + Object.assign(this._config, opts); + if (opts.theme) { + applyTheme(opts.theme); + } + if (opts.locale) { + setCurrentLocale(opts.locale); + } + return this; + }, + _emit(opts) { + const merged = { ...this._config, ...opts }; + if (merged.content && !merged.message) + merged.message = merged.content; + const t = new Toast(merged); + t.create(); + this._toasts.set(t.id, t); + return t; + }, + _remove(id) { + this._toasts.delete(id); + }, + find(id) { + if (!id) + return undefined; + return this._toasts.get(id); + }, + show(messageOrOpts, opts = {}) { + const normalized = normalizeArgs([messageOrOpts, opts], 'default'); + return this._emit(normalized); + }, + success(messageOrOpts, opts = {}) { + const normalized = normalizeArgs([messageOrOpts, opts], 'success'); + return this._emit(normalized); + }, + error(messageOrOpts, opts = {}) { + const normalized = normalizeArgs([messageOrOpts, opts], 'error'); + return this._emit(normalized); + }, + warning(messageOrOpts, opts = {}) { + const normalized = normalizeArgs([messageOrOpts, opts], 'warning'); + return this._emit(normalized); + }, + info(messageOrOpts, opts = {}) { + const normalized = normalizeArgs([messageOrOpts, opts], 'info'); + return this._emit(normalized); + }, + loading(messageOrOpts, opts = {}) { + const normalized = normalizeArgs([messageOrOpts, opts], 'loading'); + normalized.duration = 0; + normalized.closeButton = false; + normalized.showProgress = false; + const toast = this._emit(normalized); + return { + id: toast.id, + success: (msg, o = {}) => this._resolve(toast, 'success', msg || t('success'), o), + error: (msg, o = {}) => this._resolve(toast, 'error', msg || t('error'), o), + info: (msg, o = {}) => this._resolve(toast, 'info', msg || t('info'), o), + warning: (msg, o = {}) => this._resolve(toast, 'warning', msg || t('warning'), o), + update: (p) => { toast.update(p); return this; }, + dismiss: () => toast.close(), + }; + }, + promise(promise, opts = {}) { + if (!promise || typeof promise.then !== 'function') { + console.error('MeToast.promise: first argument must be a Promise'); + return Promise.reject(new Error('Invalid promise')); + } + const loadingMsg = opts.loading || t('loading'); + const successMsg = opts.success || t('success'); + const errorMsg = opts.error || t('error'); + const ctrl = this.loading(loadingMsg); + return Promise.resolve(promise) + .then((data) => { + ctrl.success(successMsg); + return data; + }) + .catch((err) => { + ctrl.error(errorMsg); + throw err; + }); + }, + _resolve(loadingToast, type, message, opts) { + const id = loadingToast.id; + const old = this._toasts.get(id); + if (!old) + return null; + const position = old.config.position; + old.close(); + return this._emit({ ...opts, type, message, position }); + }, + confirm(message, opts = {}) { + if (typeof message !== 'string') { + console.error('MeToast.confirm: message must be a string'); + return Promise.resolve(false); + } + return new Promise((resolve) => { + let resolved = false; + const safeResolve = (val) => { + if (!resolved) { + resolved = true; + clearTimeout(safetyTimeout); + resolve(val); + } + }; + const safetyTimeout = setTimeout(() => safeResolve(false), 10000); + const toast = this._emit({ + ...opts, + type: opts.type || 'warning', + message, + duration: 0, + closeButton: false, + closeOnClick: false, + draggable: false, + html: confirmHTML(opts), + }); + setTimeout(() => { + const confirmBtn = toast.el?.querySelector('.met-confirm-btn'); + const cancelBtn = toast.el?.querySelector('.met-cancel-btn'); + if (confirmBtn) { + confirmBtn.addEventListener('click', () => { + toast.close(); + safeResolve(true); + }); + } + if (cancelBtn) { + cancelBtn.addEventListener('click', () => { + toast.close(); + safeResolve(false); + }); + } + }, 0); + }); + }, + prompt(message, opts = {}) { + if (typeof message !== 'string') { + console.error('MeToast.prompt: message must be a string'); + return Promise.resolve(null); + } + return new Promise((resolve) => { + let resolved = false; + const safeResolve = (val) => { + if (!resolved) { + resolved = true; + clearTimeout(safetyTimeout); + resolve(val); + } + }; + const safetyTimeout = setTimeout(() => safeResolve(null), 10000); + const toast = this._emit({ + ...opts, + type: opts.type || 'info', + message, + duration: 0, + closeButton: false, + closeOnClick: false, + draggable: false, + html: promptHTML(opts), + }); + setTimeout(() => { + const input = toast.el?.querySelector('.met-input'); + const submitBtn = toast.el?.querySelector('.met-submit-btn'); + const cancelBtn = toast.el?.querySelector('.met-cancel-btn'); + if (input) { + input.focus(); + input.addEventListener('keydown', (e) => { + if (e.key === 'Enter') { + toast.close(); + safeResolve(input.value); + } + }); + } + if (submitBtn) { + submitBtn.addEventListener('click', () => { + toast.close(); + safeResolve(input?.value || null); + }); + } + if (cancelBtn) { + cancelBtn.addEventListener('click', () => { + toast.close(); + safeResolve(null); + }); + } + }, 0); + }); + }, + progress(messageOrOpts, opts = {}) { + const normalized = normalizeArgs([messageOrOpts, opts], 'info'); + normalized.duration = 0; + normalized.closeButton = false; + normalized.showProgress = false; + const toast = this._emit({ + ...normalized, + html: progressHTML(opts), + }); + return { + id: toast.id, + setProgress(percent) { + const fill = toast.el?.querySelector('.met-progress-fill'); + const text = toast.el?.querySelector('.met-progress-text'); + if (fill) { + fill.style.width = `${Math.min(100, Math.max(0, percent))}%`; + } + if (text) { + text.textContent = `${Math.round(percent)}%`; + } + }, + complete(message) { + this.setProgress(100); + setTimeout(() => { + toast.update({ + type: 'success', + message: message || t('success'), + html: '', + }); + setTimeout(() => toast.close(), 1000); + }, 300); + }, + error(message) { + toast.update({ + type: 'error', + message: message || t('error'), + html: '', + }); + setTimeout(() => toast.close(), 2000); + }, + dismiss() { + toast.close(); + }, + }; + }, + countdown(message, seconds = 10, opts = {}) { + if (typeof message !== 'string') { + console.error('MeToast.countdown: message must be a string'); + return { id: '', cancel: () => { }, pause: () => { }, resume: () => { } }; + } + let remaining = Math.max(1, parseInt(String(seconds)) || 10); + let timer = null; + const toast = this._emit({ + ...opts, + type: opts.type || 'warning', + message: message.replace(/\{seconds\}/g, String(remaining)), + duration: 0, + closeButton: true, + showProgress: false, + }); + const tick = () => { + remaining--; + if (remaining <= 0) { + if (timer !== null) + clearInterval(timer); + toast.close(); + if (typeof opts.onComplete === 'function') { + try { + opts.onComplete(); + } + catch (e) { + console.error('countdown onComplete error:', e); + } + } + return; + } + toast.update({ + message: message.replace(/\{seconds\}/g, String(remaining)), + }); + }; + timer = setInterval(tick, 1000); + return { + id: toast.id, + cancel() { if (timer !== null) + clearInterval(timer); toast.close(); }, + pause() { if (timer !== null) + clearInterval(timer); }, + resume() { if (timer !== null) + clearInterval(timer); timer = setInterval(tick, 1000); }, + }; + }, + action(messageOrOpts, actions = [], opts = {}) { + const normalized = normalizeArgs([messageOrOpts, opts], 'info'); + normalized.duration = opts.duration ?? 0; + normalized.closeButton = opts.closeButton ?? true; + const toast = this._emit({ + ...normalized, + html: (normalized.html || '') + actionHTML(actions), + }); + if (Array.isArray(actions)) { + setTimeout(() => { + actions.forEach((a, i) => { + const btn = toast.el?.querySelector(`.met-action-btn-${i}`); + if (btn && typeof a.onClick === 'function') { + btn.addEventListener('click', () => { + try { + a.onClick(toast); + } + catch (e) { + console.error('Action onClick error:', e); + } + if (a.close !== false) + toast.close(); + }); + } + }); + }, 0); + } + return { id: toast.id, toast, dismiss: () => toast.close() }; + }, + queue(messages, opts = {}) { + if (!Array.isArray(messages)) { + console.error('MeToast.queue: messages must be an array'); + const p = Promise.resolve(); + return { then: (fn) => p.then(fn), catch: (rj) => p.catch(rj), cancel: () => { } }; + } + let cancelled = false; + const promise = new Promise((resolve) => { + let index = 0; + const delay = opts.delay || 1000; + const userOnClose = opts.onClose; + const showNext = () => { + if (cancelled || index >= messages.length) { + resolve(); + return; + } + const message = messages[index]; + index++; + const msg = typeof message === 'string' ? message : (message?.message || ''); + const msgObj = (typeof message === 'object' && message !== null) ? message : {}; + const msgOnClose = msgObj.onClose; + this._emit({ + ...opts, + ...msgObj, + message: msg, + duration: msgObj.duration || opts.duration || 3000, + onClose: (toast) => { + if (typeof msgOnClose === 'function') { + try { + msgOnClose(toast); + } + catch (_e) { /* noop */ } + } + if (typeof userOnClose === 'function') { + try { + userOnClose(toast); + } + catch (_e) { /* noop */ } + } + setTimeout(showNext, delay); + }, + }); + }; + showNext(); + }); + return { + then: (fn, rj) => promise.then(fn, rj), + catch: (rj) => promise.catch(rj), + cancel: () => { cancelled = true; }, + }; + }, + stack(messages, opts = {}) { + if (!Array.isArray(messages)) { + console.error('MeToast.stack: messages must be an array'); + return; + } + messages.forEach((message, index) => { + setTimeout(() => { + const msg = typeof message === 'string' ? message : (message?.message || ''); + this._emit({ + ...opts, + ...((typeof message === 'object' && message !== null) ? message : {}), + message: msg, + }); + }, index * (opts.stagger || 100)); + }); + }, + dismiss(id) { + if (id) { + const t = this._toasts.get(id); + if (t) + t.close(); + return; + } + this._toasts.forEach(t => t.close()); + }, + /** + * 立即移除指定 Toast(不触发离场动画) + */ + removeToast(id) { + if (!id) + return; + const t = this._toasts.get(id); + if (t) + t.remove(); + }, + clear(position) { + this._toasts.forEach(t => { + if (!position || t.config.position === position) + t.close(); + }); + }, + getAll() { + return new Map(this._toasts); + }, + count() { + return this._toasts.size; + }, + group(name) { + const self = this; + const methods = ['show', 'success', 'error', 'warning', 'info', 'loading', 'action']; + const g = { _group: name }; + methods.forEach(m => { + g[m] = (...args) => { + const lastArg = args[args.length - 1]; + const isObj = typeof lastArg === 'object' && lastArg !== null && !Array.isArray(lastArg); + const selfMethods = self; + if (isObj && args.length === 1) { + return selfMethods[m]({ ...lastArg, group: name }); + } + if (isObj) { + args.pop(); + return selfMethods[m](...args, { ...lastArg, group: name }); + } + return selfMethods[m](...args, { group: name }); + }; + }); + g.dismiss = () => self.dismissGroup(name); + g.count = () => self._groupCount(name); + return g; + }, + dismissGroup(name) { + this._toasts.forEach(t => { if (t.group === name) + t.close(); }); + }, + _groupCount(name) { + let c = 0; + this._toasts.forEach(t => { if (t.group === name) + c++; }); + return c; + }, + getToasts() { + return Array.from(this._toasts.values()); + }, + hasToasts() { + return this._toasts.size > 0; + }, + getToast(id) { + if (!id) + return null; + return this._toasts.get(id) || null; + }, + closeAll() { + this._toasts.forEach(t => t.close()); + }, + clearAll() { + this._toasts.forEach(t => t.close()); + }, + pauseAll() { + this._toasts.forEach(t => t._pause()); + }, + resumeAll() { + this._toasts.forEach(t => t._resume()); + }, + updateAll(partial) { + if (partial && typeof partial === 'object') { + this._toasts.forEach(t => t.update(partial)); + } + }, + findToasts(predicate) { + if (typeof predicate !== 'function') + return []; + return Array.from(this._toasts.values()).filter(predicate); + }, + findByType(type) { + return this.findToasts(t => t.type === type); + }, + findByPosition(position) { + return this.findToasts(t => t.config.position === position); + }, + // ====== 以下方法依赖子模块(themes/i18n/plugins/animations),由 index.ts 注入 ====== + init(options = {}) { + if (options.config) { + this.configure(options.config); + } + if (options.theme && this.themes) { + this.themes.switchTheme(options.theme); + } + if (options.locale && this.i18n) { + this.i18n.switchLocale(options.locale); + } + if (options.plugins && Array.isArray(options.plugins)) { + options.plugins.forEach((p) => { + this.use(p); + }); + } + return this; + }, + getStatus() { + return { + version: VERSION$1, + toasts: this._toasts.size, + theme: this.themes?.getCurrentTheme?.() || 'auto', + locale: this.i18n?.getCurrentLocale?.() || 'zh-CN', + plugins: this.plugins?.getNames?.() || [], + animations: this.animations?.getActiveCount?.() || 0, + }; + }, + getConfig() { + return { ...this._config }; + }, + updateConfig(config) { + if (config && typeof config === 'object') { + Object.assign(this._config, config); + } + return this; + }, + resetConfig() { + const keys = Object.keys(this._config); + keys.forEach(k => delete this._config[k]); + Object.assign(this._config, DEFAULTS); + return this; + }, + use(plugin, options = {}) { + if (typeof plugin === 'string') { + const preset = presetPlugins[plugin]; + if (!preset) { + console.warn(`Preset plugin "${plugin}" not found`); + return this; + } + this.plugins.register(plugin, { ...preset, ...options }); + // 连接插件钩子 + if (plugin === 'accessibility') { + Toast.on('afterShow', (toast) => { + const acc = preset; + if (typeof acc.announce === 'function') + acc.announce(toast); + }); + } + if (plugin === 'persistence') { + const saved = typeof preset.install === 'function' + ? preset.install(this.plugins) + : null; + if (saved) + this.configure(saved); + Toast.on('afterClose', () => { + const p = preset; + if (typeof p.save === 'function') + p.save(this.getConfig()); + }); + } + } + else if (plugin && typeof plugin === 'object') { + this.plugins.register(plugin.name || 'custom', { ...plugin, ...options }); + } + return this; + }, + destroy() { + if (this._destroyed) + return; + this._destroyed = true; + this.dismiss(); + // 清理子模块 + if (this.plugins && typeof this.plugins.destroy === 'function') { + this.plugins.destroy(); + } + if (this.themes) { + if (typeof this.themes.clearThemeListeners === 'function') { + this.themes.clearThemeListeners(); + } + if (typeof this.themes.unwatchSystemTheme === 'function') { + this.themes.unwatchSystemTheme(); + } + } + if (this.i18n && typeof this.i18n.clearLocaleListeners === 'function') { + this.i18n.clearLocaleListeners(); + } + if (this.animations && typeof this.animations.cancelAll === 'function') { + this.animations.cancelAll(); + } + // 清理 DOM + if (typeof document !== 'undefined') { + const containers = document.querySelectorAll('.met-container'); + containers.forEach((c) => { if (c.parentNode) + c.parentNode.removeChild(c); }); + const style = document.getElementById('metona-toast-styles'); + if (style && style.parentNode) + style.parentNode.removeChild(style); + } + this._toasts.clear(); + _containerCache.clear(); + }, + // 子模块引用(由 index.ts 注入实际实现) + animations: null, + themes: null, + i18n: null, + plugins: null, + presetPlugins: {}, +}; +// 连接 Toast 静态回调到 meToast 实例 +Toast.setCallbacks({ + onError: (info) => { + const onError = meToast._config.onError; + if (typeof onError === 'function') { + try { + onError(info); + } + catch (_e) { /* noop */ } + } + }, + removeToast: (id) => { + meToast._toasts.delete(id); + }, +}); + +/** + * MetonaToast Animations — 动画管理 + * @module animations + * @version 0.2.1 + */ +// 动画缓存 +const animationMap = new Map(); +// 注册默认动画 +Object.entries(ANIMATIONS).forEach(([name, config]) => { + animationMap.set(name, { + name, + enter: config.enter, + leave: config.leave, + duration: config.duration, + easing: config.easing, + }); +}); +/** + * 动画工具函数 + */ +const animationUtils = { + register(name, config) { + animationMap.set(name, { + name, + enter: config.enter || {}, + leave: config.leave || {}, + duration: config.duration || 300, + easing: config.easing || 'cubic-bezier(0.4, 0, 0.2, 1)', + }); + }, + unregister(name) { + animationMap.delete(name); + }, + get(name) { + return animationMap.get(name) || null; + }, + getAnimationNames() { + return Array.from(animationMap.keys()); + }, + getActiveCount() { + return animationMap.size; + }, + cancelAll() { + // CSS动画由浏览器原生管理,无需手动取消 + }, + reset() { + animationMap.clear(); + Object.entries(ANIMATIONS).forEach(([name, config]) => { + animationMap.set(name, { + name, + enter: config.enter, + leave: config.leave, + duration: config.duration, + easing: config.easing, + }); + }); + }, + destroy() { + animationMap.clear(); + }, +}; + +/** + * MetonaToast — 轻量级Toast通知库 + * @module metona-toast + * @version 0.2.1 + * @author thzxx + * @license MIT + */ +// 版本信息 +const VERSION = '0.2.1'; +/** + * 增强的 MeToast 对象 — 在 meToast 基础上注入子模块 + */ +const enhancedMeToast = { + ...meToast, + version: VERSION, + animations: animationUtils, + themes: themeUtils, + i18n: i18nUtils, + plugins: pluginUtils, + presetPlugins, +}; +// 初始化主题和国际化 +if (typeof themeUtils.initTheme === 'function') { + themeUtils.initTheme(); +} +if (typeof i18nUtils.initI18n === 'function') { + i18nUtils.initI18n(); +} +// 浏览器环境全局注册 +if (typeof window !== 'undefined') { + window.MeToast = enhancedMeToast; + window.Met = enhancedMeToast; + // Notification API — 页面不可见时自动发送系统通知 + const sendNotification = (toast) => { + try { + new Notification(toast.title || toast.type, { body: toast.message }); + } + catch (_e) { /* noop */ } + }; + enhancedMeToast._notify = (toast) => { + if (typeof Notification === 'undefined') + return; + if (Notification.permission === 'denied') + return; + if (!document.hidden) + return; + if (Notification.permission === 'default') { + Notification.requestPermission().then(p => { if (p === 'granted') + sendNotification(toast); }); + return; + } + sendNotification(toast); + }; + Toast.on('afterShow', (toast) => { + const config = toast.config; + if (config.notifyWhenHidden) { + (enhancedMeToast._notify)(toast); + } + }); +} + +exports.MeToast = enhancedMeToast; +exports.Met = enhancedMeToast; +exports.Toast = Toast; +exports.VERSION = VERSION; +exports.default = enhancedMeToast; +exports.meToast = enhancedMeToast; +//# sourceMappingURL=metona-toast.cjs.js.map diff --git a/dist/metona-toast.cjs.js.map b/dist/metona-toast.cjs.js.map new file mode 100644 index 0000000..8759a57 --- /dev/null +++ b/dist/metona-toast.cjs.js.map @@ -0,0 +1 @@ +{"version":3,"file":"metona-toast.cjs.js","sources":["../src/utils.ts","../src/icons.ts","../src/locales.ts","../src/constants.ts","../src/styles.ts","../src/themes.ts","../src/i18n.ts","../src/toast.ts","../src/templates.ts","../src/plugins.ts","../src/api.ts","../src/animations.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["VERSION"],"mappings":"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"} \ No newline at end of file diff --git a/dist/metona-toast.d.ts b/dist/metona-toast.d.ts new file mode 100644 index 0000000..03d26cf --- /dev/null +++ b/dist/metona-toast.d.ts @@ -0,0 +1,550 @@ +/** + * MetonaToast — 核心类型定义 + * @module types + * @version 0.2.1 + */ +/** Toast 通知类型(107种内置图标类型) */ +type ToastType = 'default' | 'success' | 'error' | 'warning' | 'info' | 'loading' | 'check' | 'x' | 'alert' | 'question' | 'star' | 'heart' | 'bell' | 'mail' | 'settings' | 'user' | 'home' | 'search' | 'plus' | 'minus' | 'edit' | 'trash' | 'download' | 'upload' | 'share' | 'link' | 'external' | 'clock' | 'calendar' | 'map' | 'compass' | 'globe' | 'wifi' | 'cloud' | 'sun' | 'moon' | 'zap' | 'activity' | 'cpu' | 'database' | 'server' | 'terminal' | 'code' | 'git' | 'package' | 'layers' | 'grid' | 'list' | 'filter' | 'sort' | 'refresh' | 'sync' | 'power' | 'battery' | 'bluetooth' | 'volume' | 'mic' | 'camera' | 'image' | 'video' | 'music' | 'file' | 'folder' | 'clipboard' | 'save' | 'print' | 'eye' | 'eyeOff' | 'lock' | 'unlock' | 'shield' | 'key' | 'flag' | 'bookmark' | 'tag' | 'gift' | 'award' | 'target' | 'crosshair' | 'move' | 'maximize' | 'minimize' | 'copy' | 'cut' | 'paste' | 'rotateCw' | 'rotateCcw' | 'zoomIn' | 'zoomOut' | 'crop' | 'sliders' | 'toggleLeft' | 'toggleRight' | 'checkCircle' | 'xCircle' | 'alertCircle' | 'infoCircle' | 'helpCircle' | 'alertTriangle' | 'checkSquare' | 'square' | 'circle' | 'triangle' | 'hexagon' | 'octagon' | 'pentagon' | 'diamond'; +/** Toast 显示位置 */ +type ToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right'; +/** Toast 主题 */ +type ToastTheme = 'light' | 'dark' | 'auto' | 'warm' | (string & {}); +/** Toast 动画类型 */ +type ToastAnimation = 'slide' | 'fade' | 'scale' | 'bounce' | 'flip' | 'rotate' | 'zoom' | 'slideUp' | 'slideDown' | 'slideLeft' | 'slideRight' | (string & {}); +/** 进度条方向 */ +type ToastProgressDirection = 'horizontal' | 'vertical'; +interface TypeColor { + fg: string; + bg: string; +} +interface ToastConfig { + position?: ToastPosition; + duration?: number; + max?: number; + gap?: number; + offset?: number; + pauseOnHover?: boolean; + closeOnClick?: boolean; + draggable?: boolean; + showProgress?: boolean; + progressDirection?: ToastProgressDirection; + icon?: boolean; + closeButton?: boolean; + theme?: ToastTheme; + animation?: ToastAnimation; + zIndex?: number; + width?: number | string; + className?: string; + style?: Record; + onShow?: ((toast: ToastInstance) => void) | null; + onBeforeShow?: ((toast: ToastInstance) => boolean | void) | null; + onClose?: ((toast: ToastInstance) => void) | null; + onClick?: ((toast: ToastInstance) => void) | null; + onUpdate?: ((toast: ToastInstance) => void) | null; + render?: ((toast: ToastInstance) => string) | null; + resetTimerOnUpdate?: boolean; + notifyWhenHidden?: boolean; + onError?: ((errorInfo: ErrorInfo) => void) | null; + group?: string | null; + locale?: string; + plugins?: Array; +} +interface ErrorInfo { + hook?: string; + source?: string; + error: Error; + toast?: ToastInstance; +} +interface ToastOptions extends Partial { + type?: string; + title?: string; + message?: string; + content?: string; + html?: string; + iconHTML?: string; + id?: string; +} +interface ToastInstance { + id: string; + type: string; + title: string; + message: string; + html: string; + iconHTML: string; + config: ToastConfig; + el: HTMLElement | null; + barEl: HTMLElement | null; + rafId: number | null; + remaining: number; + startedAt: number; + paused: boolean; + closing: boolean; + group: string | null; + _cleanups: Array<() => void>; + _palette(): { + theme: string; + c: TypeColor; + t: Partial; + }; + create(): this; + update(partial: Partial): this; + updatePosition(position: string): this; + remove(): void; + close(immediate?: boolean): void; + _pause(): void; + _resume(): void; + _destroy(): void; +} +interface LoadingControl { + id: string; + success(message?: string, opts?: ToastOptions): ToastInstance | null; + error(message?: string, opts?: ToastOptions): ToastInstance | null; + info(message?: string, opts?: ToastOptions): ToastInstance | null; + warning(message?: string, opts?: ToastOptions): ToastInstance | null; + update(partial: Partial): unknown; + dismiss(): void; +} +interface ProgressControl { + id: string; + setProgress(percent: number): void; + complete(message?: string): void; + error(message?: string): void; + dismiss(): void; +} +interface CountdownControl { + id: string; + cancel(): void; + pause(): void; + resume(): void; +} +interface ActionControl { + id: string; + toast: ToastInstance; + dismiss(): void; +} +interface QueueControl { + then(onfulfilled?: ((value: void) => TResult1 | PromiseLike) | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike) | null): Promise; + catch(onrejected?: ((reason: unknown) => TResult | PromiseLike) | null): Promise; + cancel(): void; +} +interface GroupAPI { + _group: string; + show: (...args: unknown[]) => ToastInstance; + success: (...args: unknown[]) => ToastInstance; + error: (...args: unknown[]) => ToastInstance; + warning: (...args: unknown[]) => ToastInstance; + info: (...args: unknown[]) => ToastInstance; + loading: (...args: unknown[]) => LoadingControl; + action: (...args: unknown[]) => ActionControl; + dismiss(): void; + count(): number; +} +interface ActionButton { + text: string; + onClick: (toast: ToastInstance) => void; + color?: string; + style?: Record; + close?: boolean; +} +interface PromiseOptions extends ToastOptions { + loading?: string; + success?: string; + error?: string; +} +interface ConfirmOptions extends ToastOptions { + confirmText?: string; + confirmColor?: string; + cancelText?: string; + cancelColor?: string; +} +interface PromptOptions extends ToastOptions { + inputType?: string; + placeholder?: string; + defaultValue?: string; + submitText?: string; + submitColor?: string; + cancelText?: string; + cancelColor?: string; +} +interface ProgressOptions extends ToastOptions { + progressColor?: string; +} +interface CountdownOptions extends ToastOptions { + onComplete?: (() => void) | null; +} +interface QueueOptions extends ToastOptions { + delay?: number; +} +interface StackOptions extends ToastOptions { + stagger?: number; +} +interface InitOptions { + config?: Partial; + theme?: ToastTheme; + locale?: string; + plugins?: Array; +} +interface StatusInfo { + version: string; + toasts: number; + theme: string; + locale: string; + plugins: string[]; + animations: number; +} +interface AnimationConfig { + enter: Record; + leave: Record; + duration: number; + easing: string; + name?: string; + delay?: number; + iterations?: number; + direction?: 'normal' | 'reverse' | 'alternate' | 'alternate-reverse'; + fillMode?: 'none' | 'forwards' | 'backwards' | 'both'; +} +interface AnimationUtils { + register(name: string, config: Partial): void; + unregister(name: string): void; + get(name: string): AnimationConfig | null; + getAnimationNames(): string[]; + getActiveCount(): number; + cancelAll(): void; + reset(): void; + destroy(): void; +} +interface ThemeConfig { + bg: string; + text: string; + border: string; + shadow: string; + hoverShadow: string; + progressBg: string; + closeHoverBg: string; + backdropFilter?: string; +} +interface ThemePreview { + name: string; + resolved: string; + colors: { + background: string; + text: string; + border: string; + }; + isDark: boolean; + isLight: boolean; + isAuto: boolean; +} +interface ThemeUtils { + getSystemTheme(): 'light' | 'dark'; + resolveTheme(theme: string): string; + getThemeConfig(theme: string): ThemeConfig; + applyTheme(theme: string): void; + getCurrentTheme(): string; + getResolvedTheme(): string; + switchTheme(theme: string): void; + toggleTheme(): void; + resetToAuto(): void; + initTheme(): void; + watchSystemTheme(): void; + unwatchSystemTheme(): void; + addThemeListener(listener: (theme: string, resolved: string) => void): () => void; + removeThemeListener(listener: (theme: string, resolved: string) => void): void; + clearThemeListeners(): void; + registerTheme(name: string, config: ThemeConfig): void; + unregisterTheme(name: string): void; + getAllThemes(): Record; + getThemeNames(): string[]; + hasTheme(name: string): boolean; + getThemePreview(theme: string): ThemePreview; + generateThemeCSS(theme: string): string; + applyThemeCSS(theme: string): void; + removeThemeCSS(): void; + saveTheme(theme: string): void; + loadTheme(): string; +} +interface LocaleInfo { + code: string; + name: string; + direction: 'ltr' | 'rtl'; + isSupported: boolean; + isCurrent: boolean; + isFallback: boolean; +} +interface I18nUtils { + t(key: string, params?: Record): string; + plural(key: string, count: number, params?: Record): string; + getCurrentLocale(): string; + setCurrentLocale(locale: string): void; + switchLocale(locale: string): void; + getFallbackLocale(): string; + setFallbackLocale(locale: string): void; + hasTranslation(key: string): boolean; + getTranslations(locale: string): Record; + addTranslations(locale: string, translations: Record): void; + removeTranslation(locale: string, key: string): void; + clearTranslations(locale: string): void; + getSupportedLocales(): string[]; + isLocaleSupported(locale: string): boolean; + getLocaleName(locale: string): string; + getLocaleDirection(locale: string): 'ltr' | 'rtl'; + getLocaleInfo(locale: string): LocaleInfo; + getAllLocaleInfo(): LocaleInfo[]; + formatNumber(number: number, options?: Intl.NumberFormatOptions): string; + formatCurrency(amount: number, currency?: string, options?: Intl.NumberFormatOptions): string; + formatPercent(value: number, options?: Intl.NumberFormatOptions): string; + formatDate(date: Date | number | string, options?: Intl.DateTimeFormatOptions): string; + formatTime(date: Date | number | string, options?: Intl.DateTimeFormatOptions): string; + formatRelativeTime(date: Date | number | string, options?: Intl.RelativeTimeFormatOptions): string; + formatList(list: string[], options?: Record): string; + formatPlural(count: number, options?: Intl.PluralRulesOptions): string; + addLocaleListener(listener: (locale: string) => void): () => void; + removeLocaleListener(listener: (locale: string) => void): void; + clearLocaleListeners(): void; + initI18n(): void; + saveLocale(locale: string): void; + loadLocale(): string; + getDefaultLocale(): string; +} +interface Plugin { + name: string; + version?: string; + description?: string; + hooks?: Record void>; + middleware?: (...args: unknown[]) => unknown; + install?: (manager: PluginManager) => void | Record | null; + uninstall?: (manager: PluginManager) => void; + init?: (manager: PluginManager) => void; + destroy?: (manager: PluginManager) => void; + installed?: boolean; + enabled?: boolean; + [key: string]: unknown; +} +interface PluginManager { + register(name: string, plugin: Plugin): PluginManager; + unregister(name: string): PluginManager; + get(name: string): Plugin | null; + has(name: string): boolean; + getAll(): Plugin[]; + getNames(): string[]; + enable(name: string): PluginManager; + disable(name: string): PluginManager; + isEnabled(name: string): boolean; + destroy(): void; +} +interface PluginUtils { + createManager(): PluginManager; + register(name: string, plugin: Plugin): PluginManager; + unregister(name: string): PluginManager; + get(name: string): Plugin | null; + has(name: string): boolean; + getAll(): Plugin[]; + getNames(): string[]; + enable(name: string): PluginManager; + disable(name: string): PluginManager; + isEnabled(name: string): boolean; + getPreset(name: string): Plugin | null; + getAllPresets(): Record; + createPlugin(config: Partial): Plugin; + validatePlugin(plugin: Partial): { + valid: boolean; + errors: string[]; + }; +} +interface MeToast { + version: string; + _toasts: Map; + _config: ToastConfig; + _destroyed?: boolean; + _emit(opts: ToastOptions): ToastInstance; + _remove(id: string): void; + _resolve(loadingToast: ToastInstance, type: string, message: string, opts: ToastOptions): ToastInstance | null; + _groupCount(name: string): number; + configure(opts: Partial): MeToast; + init(options?: InitOptions): MeToast; + destroy(): void; + getStatus(): StatusInfo; + getConfig(): ToastConfig; + updateConfig(config: Partial): MeToast; + resetConfig(): MeToast; + show(messageOrOpts: string | ToastOptions, opts?: ToastOptions): ToastInstance; + success(messageOrOpts: string | ToastOptions, opts?: ToastOptions): ToastInstance; + error(messageOrOpts: string | ToastOptions, opts?: ToastOptions): ToastInstance; + warning(messageOrOpts: string | ToastOptions, opts?: ToastOptions): ToastInstance; + info(messageOrOpts: string | ToastOptions, opts?: ToastOptions): ToastInstance; + loading(messageOrOpts: string | ToastOptions, opts?: ToastOptions): LoadingControl; + promise(promise: Promise, opts?: PromiseOptions): Promise; + confirm(message: string, opts?: ConfirmOptions): Promise; + prompt(message: string, opts?: PromptOptions): Promise; + progress(messageOrOpts: string | ToastOptions, opts?: ProgressOptions): ProgressControl; + countdown(message: string, seconds?: number, opts?: CountdownOptions): CountdownControl; + action(messageOrOpts: string | ToastOptions, actions?: ActionButton[], opts?: ToastOptions): ActionControl; + queue(messages: Array, opts?: QueueOptions): QueueControl; + stack(messages: Array, opts?: StackOptions): void; + group(name: string): GroupAPI; + dismissGroup(name: string): void; + find(id: string): ToastInstance | undefined; + dismiss(id?: string): void; + removeToast(id: string): void; + clear(position?: ToastPosition): void; + getToasts(): ToastInstance[]; + count(): number; + hasToasts(): boolean; + getToast(id: string): ToastInstance | null; + closeAll(): void; + clearAll(): void; + pauseAll(): void; + resumeAll(): void; + updateAll(partial: Partial): void; + findToasts(predicate: (toast: ToastInstance) => boolean): ToastInstance[]; + findByType(type: ToastType): ToastInstance[]; + findByPosition(position: ToastPosition): ToastInstance[]; + getAll(): Map; + use(plugin: string | Plugin, options?: Record): MeToast; + animations: AnimationUtils; + themes: ThemeUtils; + i18n: I18nUtils; + plugins: PluginUtils; + presetPlugins: Record; +} +declare global { + interface Window { + MeToast: MeToast; + Met: MeToast; + } +} + +/** + * MetonaToast Toast — Toast 类 + * @module toast + * @version 0.2.1 + */ + +/** + * Toast 类 — 核心通知组件 + */ +declare class Toast implements ToastInstance { + static _hooks: Map boolean | void>>; + private static _onError; + private static _removeToast; + /** + * 设置 Toast 类级别的回调函数 + */ + static setCallbacks(callbacks: { + onError?: ((errorInfo: ErrorInfo) => void) | null; + removeToast?: ((id: string) => void) | null; + }): void; + static on(name: string, fn: (toast: Toast) => boolean | void): () => void; + static off(name: string, fn: (toast: Toast) => boolean | void): void; + /** + * 触发钩子 — 如果任意钩子返回 false 则整体返回 false + */ + static trigger(name: string, toast: Toast): boolean; + id: string; + type: string; + title: string; + message: string; + html: string; + iconHTML: string; + config: ToastConfig; + el: HTMLElement | null; + barEl: HTMLElement | null; + rafId: number | null; + remaining: number; + startedAt: number; + paused: boolean; + closing: boolean; + group: string | null; + _cleanups: Array<() => void>; + constructor(opts: ToastOptions); + _palette(): { + theme: string; + c: TypeColor; + t: Partial; + }; + create(): this; + _getContainer(): HTMLElement; + _limitToasts(container: HTMLElement): void; + _buildClassName(theme: string): string; + _applyStyles(el: HTMLElement, _theme: string, _t: Partial): void; + _buildContent(el: HTMLElement, c: TypeColor): void; + _bindEvents(el: HTMLElement): void; + _bindDrag(el: HTMLElement): void; + _startTimer(resuming?: boolean): void; + _pause(): void; + _resume(): void; + update(partial: Partial): this; + /** + * 运行时移动 Toast 到新位置 + */ + updatePosition(position: string): this; + /** + * 立即从 DOM 和内存中移除(不触发离场动画) + */ + remove(): void; + close(immediate?: boolean): void; + _destroy(): void; +} + +declare const VERSION = "0.2.1"; +/** + * 增强的 MeToast 对象 — 在 meToast 基础上注入子模块 + */ +declare const enhancedMeToast: { + version: string; + animations: AnimationUtils; + themes: ThemeUtils; + i18n: I18nUtils; + plugins: PluginUtils; + presetPlugins: Record; + _toasts: Map; + _config: ToastConfig; + _destroyed?: boolean; + _emit(opts: ToastOptions): ToastInstance; + _remove(id: string): void; + _resolve(loadingToast: ToastInstance, type: string, message: string, opts: ToastOptions): ToastInstance | null; + _groupCount(name: string): number; + configure(opts: Partial): MeToast; + init(options?: InitOptions): MeToast; + destroy(): void; + getStatus(): StatusInfo; + getConfig(): ToastConfig; + updateConfig(config: Partial): MeToast; + resetConfig(): MeToast; + show(messageOrOpts: string | ToastOptions, opts?: ToastOptions): ToastInstance; + success(messageOrOpts: string | ToastOptions, opts?: ToastOptions): ToastInstance; + error(messageOrOpts: string | ToastOptions, opts?: ToastOptions): ToastInstance; + warning(messageOrOpts: string | ToastOptions, opts?: ToastOptions): ToastInstance; + info(messageOrOpts: string | ToastOptions, opts?: ToastOptions): ToastInstance; + loading(messageOrOpts: string | ToastOptions, opts?: ToastOptions): LoadingControl; + promise(promise: Promise, opts?: PromiseOptions): Promise; + confirm(message: string, opts?: ConfirmOptions): Promise; + prompt(message: string, opts?: PromptOptions): Promise; + progress(messageOrOpts: string | ToastOptions, opts?: ProgressOptions): ProgressControl; + countdown(message: string, seconds?: number, opts?: CountdownOptions): CountdownControl; + action(messageOrOpts: string | ToastOptions, actions?: ActionButton[], opts?: ToastOptions): ActionControl; + queue(messages: Array, opts?: QueueOptions): QueueControl; + stack(messages: Array, opts?: StackOptions): void; + group(name: string): GroupAPI; + dismissGroup(name: string): void; + find(id: string): ToastInstance | undefined; + dismiss(id?: string): void; + removeToast(id: string): void; + clear(position?: ToastPosition): void; + getToasts(): ToastInstance[]; + count(): number; + hasToasts(): boolean; + getToast(id: string): ToastInstance | null; + closeAll(): void; + clearAll(): void; + pauseAll(): void; + resumeAll(): void; + updateAll(partial: Partial): void; + findToasts(predicate: (toast: ToastInstance) => boolean): ToastInstance[]; + findByType(type: ToastType): ToastInstance[]; + findByPosition(position: ToastPosition): ToastInstance[]; + getAll(): Map; + use(plugin: string | Plugin, options?: Record): MeToast; +}; + +export { ActionButton, ActionControl, AnimationConfig, AnimationUtils, ConfirmOptions, CountdownControl, CountdownOptions, ErrorInfo, GroupAPI, I18nUtils, InitOptions, LoadingControl, LocaleInfo, enhancedMeToast as MeToast, enhancedMeToast as Met, Plugin, PluginManager, PluginUtils, ProgressControl, ProgressOptions, PromiseOptions, PromptOptions, QueueControl, QueueOptions, StackOptions, StatusInfo, ThemeConfig, ThemePreview, ThemeUtils, Toast, ToastAnimation, ToastConfig, ToastInstance, ToastOptions, ToastPosition, ToastProgressDirection, ToastTheme, ToastType, TypeColor, VERSION, enhancedMeToast as default, enhancedMeToast as meToast }; diff --git a/dist/metona-toast.esm.js b/dist/metona-toast.esm.js new file mode 100644 index 0000000..77e0154 --- /dev/null +++ b/dist/metona-toast.esm.js @@ -0,0 +1,4290 @@ +/** + * MetonaToast Utils — 工具函数 + * @module utils + * @version 0.2.1 + */ +/** + * 生成唯一ID + */ +const generateId = () => { + return 'met-' + Date.now().toString(36) + '-' + Math.random().toString(36).slice(2, 8); +}; +/** + * HTML转义 + * @param s - 输入字符串 + */ +const escapeHTML = (s) => { + if (typeof document === 'undefined') { + return String(s == null ? '' : s) + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); + } + const div = document.createElement('div'); + div.textContent = String(s == null ? '' : s); + return div.innerHTML; +}; +/** + * 检测暗色模式偏好 + */ +const prefersDark = () => { + return typeof window !== 'undefined' && + typeof window.matchMedia === 'function' && + window.matchMedia('(prefers-color-scheme: dark)').matches; +}; + +/** + * MetonaToast Icons — 图标SVG定义 + * @module icons + * @version 0.2.1 + * @description 107 个内置 SVG 图标 + */ +const ICONS = { + success: ` + + `, + error: ` + + + + `, + warning: ` + + + + `, + info: ` + + + + `, + loading: ` + + `, + close: ` + + + `, + check: ` + + `, + x: ` + + + `, + alert: ` + + + + `, + question: ` + + + + `, + star: ` + + `, + heart: ` + + `, + bell: ` + + + `, + mail: ` + + + `, + settings: ` + + + `, + user: ` + + + `, + home: ` + + + `, + search: ` + + + `, + plus: ` + + + `, + minus: ` + + `, + edit: ` + + + `, + trash: ` + + + + + `, + download: ` + + + + `, + upload: ` + + + + `, + share: ` + + + + + + `, + link: ` + + + `, + external: ` + + + + `, + clock: ` + + + `, + calendar: ` + + + + + `, + map: ` + + + + `, + compass: ` + + + `, + globe: ` + + + + `, + wifi: ` + + + + + `, + cloud: ` + + `, + sun: ` + + + + + + + + + + `, + moon: ` + + `, + zap: ` + + `, + activity: ` + + `, + cpu: ` + + + + + + + + + + + `, + database: ` + + + + `, + server: ` + + + + + `, + terminal: ` + + + `, + code: ` + + + `, + git: ` + + + + + `, + package: ` + + + + + `, + layers: ` + + + + `, + grid: ` + + + + + `, + list: ` + + + + + + + `, + filter: ` + + `, + sort: ` + + + `, + refresh: ` + + + + `, + sync: ` + + + + `, + power: ` + + + `, + battery: ` + + + `, + bluetooth: ` + + `, + volume: ` + + + `, + mic: ` + + + + + `, + camera: ` + + + `, + image: ` + + + + `, + video: ` + + + `, + music: ` + + + + `, + file: ` + + + `, + folder: ` + + `, + clipboard: ` + + + `, + save: ` + + + + `, + print: ` + + + + `, + eye: ` + + + `, + eyeOff: ` + + + `, + lock: ` + + + `, + unlock: ` + + + `, + shield: ` + + `, + key: ` + + `, + flag: ` + + + `, + bookmark: ` + + `, + tag: ` + + + `, + gift: ` + + + + + + `, + award: ` + + + `, + target: ` + + + + `, + crosshair: ` + + + + + + `, + move: ` + + + + + + + `, + maximize: ` + + `, + minimize: ` + + `, + copy: ` + + + `, + cut: ` + + + + + + `, + paste: ` + + + `, + rotateCw: ` + + + `, + rotateCcw: ` + + + `, + zoomIn: ` + + + + + `, + zoomOut: ` + + + + `, + crop: ` + + + `, + sliders: ` + + + + + + + + + + `, + toggleLeft: ` + + + `, + toggleRight: ` + + + `, + checkCircle: ` + + + `, + xCircle: ` + + + + `, + alertCircle: ` + + + + `, + infoCircle: ` + + + + `, + helpCircle: ` + + + + `, + alertTriangle: ` + + + + `, + checkSquare: ` + + + `, + square: ` + + `, + circle: ` + + `, + triangle: ` + + `, + hexagon: ` + + `, + octagon: ` + + `, + pentagon: ` + + `, + diamond: ` + + `, +}; + +/** + * MetonaToast Locales — 国际化翻译数据 + * @module locales + * @version 0.2.1 + * @description 内置 zh-CN / en-US 完整翻译 + */ +const LOCALES = { + 'zh-CN': { + // === 操作 === + close: '关闭', + loading: '加载中...', + success: '操作成功', + error: '操作失败', + warning: '警告', + info: '信息', + confirm: '确认', + cancel: '取消', + yes: '是', + no: '否', + ok: '确定', + retry: '重试', + undo: '撤销', + redo: '重做', + save: '保存', + delete: '删除', + edit: '编辑', + add: '添加', + remove: '移除', + search: '搜索', + filter: '筛选', + sort: '排序', + refresh: '刷新', + sync: '同步', + upload: '上传', + download: '下载', + share: '分享', + copy: '复制', + cut: '剪切', + paste: '粘贴', + print: '打印', + export: '导出', + import: '导入', + settings: '设置', + help: '帮助', + about: '关于', + version: '版本', + language: '语言', + theme: '主题', + dark: '暗色', + light: '亮色', + auto: '自动', + notifications: '通知', + enable: '启用', + disable: '禁用', + on: '开启', + off: '关闭', + max: '最大', + min: '最小', + expand: '展开', + collapse: '折叠', + fullscreen: '全屏', + exitFullscreen: '退出全屏', + zoomIn: '放大', + zoomOut: '缩小', + reset: '重置', + apply: '应用', + submit: '提交', + send: '发送', + receive: '接收', + connect: '连接', + disconnect: '断开', + start: '开始', + stop: '停止', + pause: '暂停', + resume: '继续', + next: '下一个', + previous: '上一个', + first: '第一个', + last: '最后一个', + back: '返回', + forward: '前进', + home: '首页', + menu: '菜单', + more: '更多', + less: '更少', + show: '显示', + hide: '隐藏', + visible: '可见', + hidden: '隐藏', + // === 状态 === + enabled: '已启用', + disabled: '已禁用', + active: '活跃', + inactive: '非活跃', + online: '在线', + offline: '离线', + connected: '已连接', + disconnected: '已断开', + loaded: '已加载', + saving: '保存中', + saved: '已保存', + deleting: '删除中', + deleted: '已删除', + uploading: '上传中', + uploaded: '已上传', + downloading: '下载中', + downloaded: '已下载', + processing: '处理中', + processed: '已处理', + syncing: '同步中', + synced: '已同步', + sending: '发送中', + sent: '已发送', + receiving: '接收中', + received: '已接收', + connecting: '连接中', + // === 交互 === + question: '问题', + feedback: '反馈', + report: '报告', + bug: '错误', + feature: '功能', + improvement: '改进', + suggestion: '建议', + request: '请求', + response: '响应', + status: '状态', + progress: '进度', + complete: '完成', + incomplete: '未完成', + pending: '待处理', + failed: '失败', + cancelled: '已取消', + timeout: '超时', + expired: '已过期', + invalid: '无效', + valid: '有效', + required: '必填', + optional: '可选', + allowed: '允许', + denied: '拒绝', + approved: '已批准', + rejected: '已拒绝', + accepted: '已接受', + declined: '已拒绝', + confirmed: '已确认', + unconfirmed: '未确认', + verified: '已验证', + unverified: '未验证', + authenticated: '已认证', + unauthenticated: '未认证', + authorized: '已授权', + unauthorized: '未授权', + // === 范围 / 角色 === + public: '公开', + private: '私有', + protected: '受保护', + internal: '内部', + external: '外部', + local: '本地', + remote: '远程', + global: '全局', + system: '系统', + user: '用户', + admin: '管理员', + moderator: '版主', + guest: '访客', + member: '成员', + owner: '所有者', + creator: '创建者', + editor: '编辑者', + viewer: '查看者', + subscriber: '订阅者', + follower: '关注者', + following: '关注中', + friend: '朋友', + contact: '联系人', + // === 组织 === + group: '群组', + team: '团队', + organization: '组织', + company: '公司', + department: '部门', + project: '项目', + task: '任务', + issue: '问题', + ticket: '工单', + message: '消息', + notification: '通知', + alert: '警报', + reminder: '提醒', + event: '事件', + activity: '活动', + log: '日志', + analytics: '分析', + statistics: '统计', + metrics: '指标', + performance: '性能', + security: '安全', + privacy: '隐私', + compliance: '合规', + policy: '政策', + terms: '条款', + conditions: '条件', + agreement: '协议', + contract: '合同', + license: '许可证', + copyright: '版权', + trademark: '商标', + patent: '专利', + tradeSecret: '商业秘密', + confidential: '机密', + sensitive: '敏感', + critical: '关键', + important: '重要', + urgent: '紧急', + high: '高', + medium: '中', + low: '低', + none: '无', + all: '全部', + any: '任何', + some: '一些', + each: '每个', + every: '每个', + both: '两者', + neither: '两者都不', + either: '任一', + other: '其他', + another: '另一个', + this: '这个', + that: '那个', + these: '这些', + those: '那些', + here: '这里', + there: '那里', + where: '哪里', + when: '何时', + why: '为什么', + how: '如何', + what: '什么', + who: '谁', + which: '哪个', + whose: '谁的', + whom: '谁', + }, + 'en-US': { + // === Actions === + close: 'Close', + loading: 'Loading...', + success: 'Success', + error: 'Error', + warning: 'Warning', + info: 'Info', + confirm: 'Confirm', + cancel: 'Cancel', + yes: 'Yes', + no: 'No', + ok: 'OK', + retry: 'Retry', + undo: 'Undo', + redo: 'Redo', + save: 'Save', + delete: 'Delete', + edit: 'Edit', + add: 'Add', + remove: 'Remove', + search: 'Search', + filter: 'Filter', + sort: 'Sort', + refresh: 'Refresh', + sync: 'Sync', + upload: 'Upload', + download: 'Download', + share: 'Share', + copy: 'Copy', + cut: 'Cut', + paste: 'Paste', + print: 'Print', + export: 'Export', + import: 'Import', + settings: 'Settings', + help: 'Help', + about: 'About', + version: 'Version', + language: 'Language', + theme: 'Theme', + dark: 'Dark', + light: 'Light', + auto: 'Auto', + notifications: 'Notifications', + enable: 'Enable', + disable: 'Disable', + on: 'On', + off: 'Off', + max: 'Max', + min: 'Min', + expand: 'Expand', + collapse: 'Collapse', + fullscreen: 'Fullscreen', + exitFullscreen: 'Exit Fullscreen', + zoomIn: 'Zoom In', + zoomOut: 'Zoom Out', + reset: 'Reset', + apply: 'Apply', + submit: 'Submit', + send: 'Send', + receive: 'Receive', + connect: 'Connect', + disconnect: 'Disconnect', + start: 'Start', + stop: 'Stop', + pause: 'Pause', + resume: 'Resume', + next: 'Next', + previous: 'Previous', + first: 'First', + last: 'Last', + back: 'Back', + forward: 'Forward', + home: 'Home', + menu: 'Menu', + more: 'More', + less: 'Less', + show: 'Show', + hide: 'Hide', + visible: 'Visible', + hidden: 'Hidden', + // === Status === + enabled: 'Enabled', + disabled: 'Disabled', + active: 'Active', + inactive: 'Inactive', + online: 'Online', + offline: 'Offline', + connected: 'Connected', + disconnected: 'Disconnected', + loaded: 'Loaded', + saving: 'Saving', + saved: 'Saved', + deleting: 'Deleting', + deleted: 'Deleted', + uploading: 'Uploading', + uploaded: 'Uploaded', + downloading: 'Downloading', + downloaded: 'Downloaded', + processing: 'Processing', + processed: 'Processed', + syncing: 'Syncing', + synced: 'Synced', + sending: 'Sending', + sent: 'Sent', + receiving: 'Receiving', + received: 'Received', + connecting: 'Connecting', + // === Interaction === + question: 'Question', + feedback: 'Feedback', + report: 'Report', + bug: 'Bug', + feature: 'Feature', + improvement: 'Improvement', + suggestion: 'Suggestion', + request: 'Request', + response: 'Response', + status: 'Status', + progress: 'Progress', + complete: 'Complete', + incomplete: 'Incomplete', + pending: 'Pending', + failed: 'Failed', + cancelled: 'Cancelled', + timeout: 'Timeout', + expired: 'Expired', + invalid: 'Invalid', + valid: 'Valid', + required: 'Required', + optional: 'Optional', + allowed: 'Allowed', + denied: 'Denied', + approved: 'Approved', + rejected: 'Rejected', + accepted: 'Accepted', + declined: 'Declined', + confirmed: 'Confirmed', + unconfirmed: 'Unconfirmed', + verified: 'Verified', + unverified: 'Unverified', + authenticated: 'Authenticated', + unauthenticated: 'Unauthenticated', + authorized: 'Authorized', + unauthorized: 'Unauthorized', + // === Scope / Role === + public: 'Public', + private: 'Private', + protected: 'Protected', + internal: 'Internal', + external: 'External', + local: 'Local', + remote: 'Remote', + global: 'Global', + system: 'System', + user: 'User', + admin: 'Admin', + moderator: 'Moderator', + guest: 'Guest', + member: 'Member', + owner: 'Owner', + creator: 'Creator', + editor: 'Editor', + viewer: 'Viewer', + subscriber: 'Subscriber', + follower: 'Follower', + following: 'Following', + friend: 'Friend', + contact: 'Contact', + // === Organization === + group: 'Group', + team: 'Team', + organization: 'Organization', + company: 'Company', + department: 'Department', + project: 'Project', + task: 'Task', + issue: 'Issue', + ticket: 'Ticket', + message: 'Message', + notification: 'Notification', + alert: 'Alert', + reminder: 'Reminder', + event: 'Event', + activity: 'Activity', + log: 'Log', + analytics: 'Analytics', + statistics: 'Statistics', + metrics: 'Metrics', + performance: 'Performance', + security: 'Security', + privacy: 'Privacy', + compliance: 'Compliance', + policy: 'Policy', + terms: 'Terms', + conditions: 'Conditions', + agreement: 'Agreement', + contract: 'Contract', + license: 'License', + copyright: 'Copyright', + trademark: 'Trademark', + patent: 'Patent', + tradeSecret: 'Trade Secret', + confidential: 'Confidential', + sensitive: 'Sensitive', + critical: 'Critical', + important: 'Important', + urgent: 'Urgent', + high: 'High', + medium: 'Medium', + low: 'Low', + none: 'None', + all: 'All', + any: 'Any', + some: 'Some', + each: 'Each', + every: 'Every', + both: 'Both', + neither: 'Neither', + either: 'Either', + other: 'Other', + another: 'Another', + this: 'This', + that: 'That', + these: 'These', + those: 'Those', + here: 'Here', + there: 'There', + where: 'Where', + when: 'When', + why: 'Why', + how: 'How', + what: 'What', + who: 'Who', + which: 'Which', + whose: 'Whose', + whom: 'Whom', + }, +}; + +/** + * MetonaToast Constants — 常量定义 + * @module constants + * @version 0.2.1 + */ +/** + * 默认配置 + */ +const DEFAULTS = Object.freeze({ + position: 'top-right', + duration: 4000, + max: 6, + gap: 12, + offset: 24, + pauseOnHover: true, + closeOnClick: true, + draggable: true, + showProgress: true, + progressDirection: 'horizontal', + icon: true, + closeButton: true, + theme: 'auto', + animation: 'slide', + zIndex: 9999, + width: 360, + className: '', + style: {}, + onShow: null, + onBeforeShow: null, + onClose: null, + onClick: null, + onUpdate: null, + resetTimerOnUpdate: false, + notifyWhenHidden: false, + onError: null, + locale: 'zh-CN', + plugins: [], +}); +/** + * 类型颜色配置 + */ +const TYPE_COLORS = { + success: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + error: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + warning: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + info: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + loading: { fg: '#6366f1', bg: 'rgba(99, 102, 241, 0.1)' }, + default: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + check: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + x: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + alert: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + question: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + star: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + heart: { fg: '#ec4899', bg: 'rgba(236, 72, 153, 0.1)' }, + bell: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + mail: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + settings: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + user: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + home: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + search: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + plus: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + minus: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + edit: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + trash: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + download: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + upload: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + share: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + link: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + external: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + clock: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + calendar: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + map: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + compass: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + globe: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + wifi: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + cloud: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + sun: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + moon: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + zap: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + activity: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + cpu: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + database: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + server: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + terminal: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + code: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + git: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + package: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + layers: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + grid: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + list: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + filter: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + sort: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + refresh: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + sync: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + power: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + battery: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + bluetooth: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + volume: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + mic: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + camera: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + image: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + video: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + music: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + file: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + folder: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + clipboard: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + save: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + print: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + eye: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + eyeOff: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + lock: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + unlock: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + shield: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + key: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + flag: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + bookmark: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + tag: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + gift: { fg: '#ec4899', bg: 'rgba(236, 72, 153, 0.1)' }, + award: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + target: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + crosshair: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + move: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + maximize: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + minimize: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + copy: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + cut: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + paste: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + rotateCw: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + rotateCcw: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + zoomIn: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + zoomOut: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + crop: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + sliders: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + toggleLeft: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + toggleRight: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + checkCircle: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + xCircle: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + alertCircle: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + infoCircle: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + helpCircle: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + alertTriangle: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + checkSquare: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + square: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + circle: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + triangle: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + hexagon: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + octagon: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + pentagon: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + diamond: { fg: '#ec4899', bg: 'rgba(236, 72, 153, 0.1)' }, +}; +/** + * 动画配置 + */ +const ANIMATIONS = { + slide: { + enter: { transform: 'translateX(80px)', opacity: '0' }, + leave: { transform: 'translateX(120%)', opacity: '0' }, + duration: 400, + easing: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + }, + fade: { + enter: { opacity: '0', filter: 'blur(3px)' }, + leave: { opacity: '0', filter: 'blur(3px)' }, + duration: 500, + easing: 'ease', + }, + scale: { + enter: { transform: 'scale(0.55)', opacity: '0' }, + leave: { transform: 'scale(0.55)', opacity: '0' }, + duration: 450, + easing: 'cubic-bezier(0.34, 1.56, 0.64, 1)', + }, + bounce: { + enter: { transform: 'translateY(-80px)', opacity: '0' }, + leave: { transform: 'translateY(20px)', opacity: '0' }, + duration: 650, + easing: 'ease', + }, + flip: { + enter: { transform: 'perspective(500px) rotateX(-90deg)', opacity: '0' }, + leave: { transform: 'perspective(500px) rotateX(90deg)', opacity: '0' }, + duration: 500, + easing: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + }, + rotate: { + enter: { transform: 'rotate(-25deg) scale(0.6)', opacity: '0' }, + leave: { transform: 'rotate(25deg) scale(0.6)', opacity: '0' }, + duration: 500, + easing: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + }, + zoom: { + enter: { transform: 'scale(0.1)', opacity: '0' }, + leave: { transform: 'scale(0.1)', opacity: '0' }, + duration: 500, + easing: 'cubic-bezier(0.34, 1.56, 0.64, 1)', + }, + slideUp: { + enter: { transform: 'translateY(60px)', opacity: '0' }, + leave: { transform: 'translateY(-120%)', opacity: '0' }, + duration: 400, + easing: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + }, + slideDown: { + enter: { transform: 'translateY(-60px)', opacity: '0' }, + leave: { transform: 'translateY(120%)', opacity: '0' }, + duration: 400, + easing: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + }, + slideLeft: { + enter: { transform: 'translateX(-90px)', opacity: '0' }, + leave: { transform: 'translateX(120%)', opacity: '0' }, + duration: 400, + easing: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + }, + slideRight: { + enter: { transform: 'translateX(90px)', opacity: '0' }, + leave: { transform: 'translateX(-120%)', opacity: '0' }, + duration: 400, + easing: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + }, +}; +/** + * 主题配置 + */ +const THEMES = { + light: { + bg: 'rgba(255, 255, 255, 0.96)', + text: '#1f2937', + border: 'rgba(0, 0, 0, 0.06)', + shadow: '0 10px 36px -10px rgba(0, 0, 0, 0.18), 0 4px 14px -4px rgba(0, 0, 0, 0.08)', + hoverShadow: '0 14px 48px -10px rgba(0, 0, 0, 0.22), 0 6px 18px -4px rgba(0, 0, 0, 0.10)', + progressBg: 'rgba(0, 0, 0, 0.06)', + closeHoverBg: 'rgba(0, 0, 0, 0.06)', + }, + dark: { + bg: 'rgba(28, 32, 40, 0.94)', + text: '#e6e8eb', + border: 'rgba(255, 255, 255, 0.08)', + shadow: '0 10px 36px -10px rgba(0, 0, 0, 0.6), 0 4px 14px -4px rgba(0, 0, 0, 0.4)', + hoverShadow: '0 14px 48px -8px rgba(0, 0, 0, 0.6), 0 6px 18px -4px rgba(0, 0, 0, 0.4)', + progressBg: 'rgba(255, 255, 255, 0.08)', + closeHoverBg: 'rgba(255, 255, 255, 0.08)', + }, + auto: { + bg: 'rgba(255, 255, 255, 0.96)', + text: '#1f2937', + border: 'rgba(0, 0, 0, 0.06)', + shadow: '0 10px 36px -10px rgba(0, 0, 0, 0.18), 0 4px 14px -4px rgba(0, 0, 0, 0.08)', + hoverShadow: '0 14px 48px -10px rgba(0, 0, 0, 0.22), 0 6px 18px -4px rgba(0, 0, 0, 0.10)', + progressBg: 'rgba(0, 0, 0, 0.06)', + closeHoverBg: 'rgba(0, 0, 0, 0.06)', + }, + warm: { + bg: 'rgba(255, 251, 235, 0.96)', + text: '#78350f', + border: 'rgba(245, 158, 11, 0.2)', + shadow: '0 10px 36px -10px rgba(245, 158, 11, 0.18), 0 4px 14px -4px rgba(245, 158, 11, 0.08)', + hoverShadow: '0 14px 48px -10px rgba(245, 158, 11, 0.22), 0 6px 18px -4px rgba(245, 158, 11, 0.10)', + progressBg: 'rgba(245, 158, 11, 0.1)', + closeHoverBg: 'rgba(245, 158, 11, 0.1)', + }, +}; + +/** + * MetonaToast Styles — 样式管理 + * @module styles + * @version 0.2.1 + */ +// 样式缓存 +let styleElement = null; +/** + * 生成CSS样式 + */ +const generateCSS = () => { + return ` + .met-container { + pointer-events: none; + display: flex; + flex-direction: column; + gap: 12px; + box-sizing: border-box; + padding: 24px; + max-width: 100vw; + position: fixed; + z-index: 9999; + } + + .met-container.top-left { top: 0; left: 0; align-items: flex-start; } + .met-container.top-center { top: 0; left: 0; right: 0; align-items: center; } + .met-container.top-right { top: 0; right: 0; align-items: flex-end; } + .met-container.bottom-left { bottom: 0; left: 0; align-items: flex-start; } + .met-container.bottom-center{ bottom: 0; left: 0; right: 0; align-items: center; } + .met-container.bottom-right { bottom: 0; right: 0; align-items: flex-end; } + + .met-toast { + position: relative; + display: flex; + align-items: flex-start; + gap: 12px; + padding: 14px 16px; + border-radius: 12px; + box-sizing: border-box; + backdrop-filter: blur(14px) saturate(180%); + -webkit-backdrop-filter: blur(14px) saturate(180%); + font: 14px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; + user-select: none; + -webkit-user-select: none; + transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), + box-shadow 0.25s ease, + opacity 0.25s ease; + will-change: transform, opacity; + flex-shrink: 0; + pointer-events: auto; + min-width: 240px; + max-width: calc(100vw - 48px); + width: 360px; + border: 1px solid var(--met-border, rgba(0,0,0,0.06)); + background: var(--met-bg, rgba(255,255,255,0.96)); + color: var(--met-text, #1f2937); + box-shadow: var(--met-shadow, 0 10px 36px -10px rgba(0,0,0,0.18), 0 4px 14px -4px rgba(0,0,0,0.08)); + transform: translateZ(0); + -webkit-transform: translateZ(0); + backface-visibility: hidden; + -webkit-backface-visibility: hidden; + perspective: 1000; + } + + .met-toast:hover { + box-shadow: var(--met-hover-shadow, 0 14px 48px -10px rgba(0,0,0,0.22), 0 6px 18px -4px rgba(0,0,0,0.10)) !important; + } + + .met-toast.met-clickable { + cursor: pointer; + } + + .met-icon { + flex-shrink: 0; + display: flex; + align-items: center; + justify-content: center; + width: 24px; + height: 24px; + margin-top: 1px; + } + + .met-content { + flex: 1; + min-width: 0; + word-wrap: break-word; + overflow-wrap: break-word; + } + + .met-title { + font-weight: 600; + font-size: 14px; + letter-spacing: 0.1px; + } + + .met-message { + font-size: 13px; + opacity: 0.85; + margin-top: 2px; + } + + .met-close { + flex-shrink: 0; + background: transparent; + border: 0; + padding: 4px; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + border-radius: 6px; + transition: background 0.2s, color 0.2s; + line-height: 0; + color: inherit; + opacity: 0.5; + } + + .met-close:hover { + opacity: 1; + background: var(--met-close-hover-bg, rgba(0,0,0,0.06)); + } + + .met-progress { + position: absolute; + left: 0; right: 0; bottom: 0; + height: 3px; + overflow: hidden; + background: var(--met-progress-bg, rgba(0,0,0,0.06)); + border-radius: 0 0 12px 12px; + } + + .met-progress-v { + position: absolute; + left: 0; top: 0; bottom: 0; + width: 3px; + overflow: hidden; + background: var(--met-progress-bg, rgba(0,0,0,0.06)); + border-radius: 12px 0 0 12px; + } + + .met-bar { + position: absolute; + left: 0; top: 0; + height: 100%; width: 100%; + transform-origin: left; + transform: scaleX(1); + } + + .met-bar-v { + position: absolute; + left: 0; bottom: 0; + width: 100%; height: 100%; + transform-origin: bottom; + transform: scaleY(1); + } + + .met-side { + position: absolute; + left: 0; top: 0; bottom: 0; + width: 4px; + border-radius: 12px 0 0 12px; + } + + .met-spin { + animation: met-rot 1s linear infinite; + transform-origin: 50% 50%; + } + + .met-toast.met-leaving { + pointer-events: none; + z-index: 1; + } + + @keyframes met-rot { + to { transform: rotate(360deg); } + } + + .met-anim-slide.met-toast, + .met-anim-fade.met-toast, + .met-anim-scale.met-toast, + .met-anim-bounce.met-toast, + .met-anim-flip.met-toast, + .met-anim-rotate.met-toast, + .met-anim-zoom.met-toast, + .met-anim-slideUp.met-toast, + .met-anim-slideDown.met-toast, + .met-anim-slideLeft.met-toast, + .met-anim-slideRight.met-toast { + opacity: 0; + } + + @keyframes met-slide-in { + 0% { transform: translateX(80px); opacity: 0; } + 65% { transform: translateX(-6px); opacity: 1; } + 100% { transform: translateX(0); opacity: 1; } + } + @keyframes met-fade-in { + 0% { opacity: 0; filter: blur(3px); } + 100% { opacity: 1; filter: blur(0); } + } + @keyframes met-scale-in { + 0% { transform: scale(0.55); opacity: 0; } + 65% { transform: scale(1.07); opacity: 1; } + 100% { transform: scale(1); opacity: 1; } + } + @keyframes met-bounce-in { + 0% { transform: translateY(-80px); opacity: 0; animation-timing-function: ease-in; } + 45% { transform: translateY(14px); opacity: 1; animation-timing-function: ease-out; } + 65% { transform: translateY(-12px); animation-timing-function: ease-in; } + 82% { transform: translateY(4px); animation-timing-function: ease-out; } + 100% { transform: translateY(0); opacity: 1; } + } + @keyframes met-flip-in { + 0% { transform: perspective(500px) rotateX(-90deg); opacity: 0; } + 60% { transform: perspective(500px) rotateX(8deg); opacity: 1; } + 85% { transform: perspective(500px) rotateX(-2deg); } + 100% { transform: perspective(500px) rotateX(0); opacity: 1; } + } + @keyframes met-rotate-in { + 0% { transform: rotate(-25deg) scale(0.6); opacity: 0; } + 60% { transform: rotate(4deg) scale(1.05); opacity: 1; } + 85% { transform: rotate(-1deg) scale(0.98); } + 100% { transform: rotate(0) scale(1); opacity: 1; } + } + @keyframes met-zoom-in { + 0% { transform: scale(0.1); opacity: 0; } + 50% { transform: scale(1.12); opacity: 1; } + 75% { transform: scale(0.94); } + 100% { transform: scale(1); opacity: 1; } + } + @keyframes met-slideUp-in { + 0% { transform: translateY(60px); opacity: 0; } + 70% { transform: translateY(-6px); opacity: 1; } + 100% { transform: translateY(0); opacity: 1; } + } + @keyframes met-slideDown-in { + 0% { transform: translateY(-60px); opacity: 0; } + 70% { transform: translateY(6px); opacity: 1; } + 100% { transform: translateY(0); opacity: 1; } + } + @keyframes met-slideLeft-in { + 0% { transform: translateX(-90px); opacity: 0; } + 65% { transform: translateX(6px); opacity: 1; } + 100% { transform: translateX(0); opacity: 1; } + } + @keyframes met-slideRight-in { + 0% { transform: translateX(90px); opacity: 0; } + 65% { transform: translateX(-6px); opacity: 1; } + 100% { transform: translateX(0); opacity: 1; } + } + + .met-anim-slide.met-toast.met-show { animation: met-slide-in 0.40s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; } + .met-anim-fade.met-toast.met-show { animation: met-fade-in 0.50s ease forwards; } + .met-anim-scale.met-toast.met-show { animation: met-scale-in 0.45s cubic-bezier(0.34, 1.56, 0.64, 1) forwards; } + .met-anim-bounce.met-toast.met-show { animation: met-bounce-in 0.65s ease forwards; } + .met-anim-flip.met-toast.met-show { animation: met-flip-in 0.50s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; } + .met-anim-rotate.met-toast.met-show { animation: met-rotate-in 0.50s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; } + .met-anim-zoom.met-toast.met-show { animation: met-zoom-in 0.50s cubic-bezier(0.34, 1.56, 0.64, 1) forwards; } + .met-anim-slideUp.met-toast.met-show { animation: met-slideUp-in 0.40s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; } + .met-anim-slideDown.met-toast.met-show { animation: met-slideDown-in 0.40s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; } + .met-anim-slideLeft.met-toast.met-show { animation: met-slideLeft-in 0.40s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; } + .met-anim-slideRight.met-toast.met-show { animation: met-slideRight-in 0.40s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; } + + @media (max-width: 480px) { + .met-container { padding: 12px !important; } + .met-toast { width: 100% !important; min-width: 0 !important; } + } + + @media (max-width: 768px) { + .met-toast { font-size: 13px; } + .met-title { font-size: 13px; } + .met-message { font-size: 12px; } + } + + @media (min-width: 1200px) { + .met-toast { width: 400px; } + } + + @media (min-width: 1920px) { + .met-toast { width: 440px; } + } + + @media (max-width: 320px) { + .met-toast { width: 100%; min-width: 0; padding: 12px 14px; } + .met-container { padding: 8px; } + } + + @media (orientation: landscape) and (max-height: 500px) { + .met-container { padding: 12px 24px; } + .met-toast { min-height: 44px; padding: 10px 14px; } + } + + @media (orientation: portrait) and (max-width: 500px) { + .met-container { padding: 12px; } + .met-toast { width: 100%; min-width: 0; } + } + + @media (prefers-reduced-motion: reduce) { + .met-toast { transition: opacity 0.15s !important; } + .met-toast.met-show { animation: none !important; opacity: 1 !important; } + .met-spin { animation-duration: 2.5s !important; } + } + + @media (forced-colors: active) { + .met-toast { border: 2px solid ButtonText; } + .met-close { border: 1px solid ButtonText; } + } + + @media (prefers-contrast: high) { + .met-toast { border-width: 3px; border-style: solid; } + .met-close { border: 2px solid currentColor; border-radius: 4px; } + } + + .met-toast:focus-visible { + outline: 2px solid #3b82f6; + outline-offset: 2px; + } + .met-close:focus-visible { + outline: 2px solid #3b82f6; + outline-offset: 2px; + } + + @media (hover: none) and (pointer: coarse) { + .met-toast:hover { box-shadow: inherit; } + .met-toast { min-height: 48px; } + .met-close { min-width: 48px; min-height: 48px; } + } + + @media print { + .met-container { display: none !important; } + .met-toast { display: none !important; } + } + + :fullscreen .met-container, + :picture-in-picture .met-container { + z-index: 2147483647; + } + + @supports (padding: max(0px)) { + .met-container { + padding: max(24px, env(safe-area-inset-top)) + max(24px, env(safe-area-inset-right)) + max(24px, env(safe-area-inset-bottom)) + max(24px, env(safe-area-inset-left)); + } + } + + .met-toast:active { + transform: scale(0.98); + } + + .met-toast.met-success { border-left: 4px solid #10b981; } + .met-toast.met-error { border-left: 4px solid #ef4444; } + .met-toast.met-warning { border-left: 4px solid #f59e0b; } + .met-toast.met-info { border-left: 4px solid #3b82f6; } + .met-toast.met-loading { border-left: 4px solid #6366f1; } + + .met-bar, .met-bar-v { + transition: transform 0.1s linear; + } + + .met-container::-webkit-scrollbar { width: 6px; height: 6px; } + .met-container::-webkit-scrollbar-track { background: transparent; } + .met-container::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.2); border-radius: 3px; } + .met-container::-webkit-scrollbar-thumb:hover { background: rgba(0,0,0,0.3); } + + .met-toast.met-theme-dark { + background: rgba(28, 32, 40, 0.94); + color: #e6e8eb; + border-color: rgba(255, 255, 255, 0.08); + box-shadow: 0 10px 36px -10px rgba(0, 0, 0, 0.6), 0 4px 14px -4px rgba(0, 0, 0, 0.4); + } + .met-toast.met-theme-dark:hover { + box-shadow: 0 14px 48px -8px rgba(0, 0, 0, 0.6), 0 6px 18px -4px rgba(0, 0, 0, 0.4) !important; + } + .met-toast.met-theme-dark .met-close:hover { + background: rgba(255, 255, 255, 0.08); + } + .met-toast.met-theme-dark .met-progress, + .met-toast.met-theme-dark .met-progress-v { + background: rgba(255, 255, 255, 0.08); + } + + .met-toast.met-theme-light { + background: rgba(255, 255, 255, 0.96); + color: #1f2937; + border-color: rgba(0, 0, 0, 0.06); + box-shadow: 0 10px 36px -10px rgba(0, 0, 0, 0.18), 0 4px 14px -4px rgba(0, 0, 0, 0.08); + } + .met-toast.met-theme-light:hover { + box-shadow: 0 14px 48px -10px rgba(0, 0, 0, 0.22), 0 6px 18px -4px rgba(0, 0, 0, 0.10) !important; + } + .met-toast.met-theme-light .met-close:hover { + background: rgba(0, 0, 0, 0.06); + } + .met-toast.met-theme-light .met-progress, + .met-toast.met-theme-light .met-progress-v { + background: rgba(0, 0, 0, 0.06); + } + + .met-toast[data-theme] { + --met-bg: var(--met-theme-bg); + --met-text: var(--met-theme-text); + --met-border: var(--met-theme-border); + --met-shadow: var(--met-theme-shadow); + } + + @media (prefers-color-scheme: dark) { + .met-theme-auto .met-toast { + background: rgba(28, 32, 40, 0.94); + color: #e6e8eb; + border-color: rgba(255, 255, 255, 0.08); + box-shadow: 0 10px 36px -10px rgba(0, 0, 0, 0.6), 0 4px 14px -4px rgba(0, 0, 0, 0.4); + } + .met-theme-auto .met-toast:hover { + box-shadow: 0 14px 48px -8px rgba(0, 0, 0, 0.6), 0 6px 18px -4px rgba(0, 0, 0, 0.4) !important; + } + .met-theme-auto .met-close:hover { background: rgba(255, 255, 255, 0.08); } + .met-theme-auto .met-progress, + .met-theme-auto .met-progress-v { background: rgba(255, 255, 255, 0.08); } + } + + @media (prefers-color-scheme: light) { + .met-theme-auto .met-toast { + background: rgba(255, 255, 255, 0.96); + color: #1f2937; + border-color: rgba(0, 0, 0, 0.06); + box-shadow: 0 10px 36px -10px rgba(0, 0, 0, 0.18), 0 4px 14px -4px rgba(0, 0, 0, 0.08); + } + .met-theme-auto .met-toast:hover { + box-shadow: 0 14px 48px -10px rgba(0, 0, 0, 0.22), 0 6px 18px -4px rgba(0, 0, 0, 0.10) !important; + } + .met-theme-auto .met-close:hover { background: rgba(0, 0, 0, 0.06); } + .met-theme-auto .met-progress, + .met-theme-auto .met-progress-v { background: rgba(0, 0, 0, 0.06); } + } + `; +}; +/** + * 注入样式 + */ +const injectStyles = () => { + if (typeof document === 'undefined') + return; + if (styleElement && document.getElementById('metona-toast-styles')) { + return; + } + const css = generateCSS(); + styleElement = document.createElement('style'); + styleElement.id = 'metona-toast-styles'; + styleElement.textContent = css.replace(/\s+/g, ' '); + document.head.appendChild(styleElement); +}; + +/** + * MetonaToast Themes — 主题管理 + * @module themes + * @version 0.2.1 + */ +// 当前主题状态 +let currentTheme = 'auto'; +const themeListeners = new Set(); +let systemThemeMediaQuery = null; +let systemThemeListener = null; +/** + * 获取系统主题 + */ +const getSystemTheme = () => { + if (typeof window === 'undefined') + return 'light'; + return prefersDark() ? 'dark' : 'light'; +}; +/** + * 获取主题(别名) + */ +const getTheme = (theme) => { + return resolveTheme(theme); +}; +/** + * 解析主题 — 'auto' 始终按系统主题检测,不依赖当前手动选择的主题 + */ +const resolveTheme = (theme) => { + if (theme === 'auto') { + return getSystemTheme(); + } + return theme; +}; +/** + * 获取主题配置 + */ +const getThemeConfig = (theme) => { + const resolved = resolveTheme(theme); + return THEMES[resolved] || THEMES.light; +}; +/** + * 应用主题 + */ +const applyTheme = (theme) => { + currentTheme = theme; + const resolved = resolveTheme(theme); + if (typeof document !== 'undefined') { + document.documentElement.setAttribute('data-met-theme', resolved); + document.documentElement.classList.remove('met-theme-light', 'met-theme-dark', 'met-theme-auto'); + document.documentElement.classList.add(`met-theme-${resolved}`); + const config = getThemeConfig(theme); + setThemeVariables(config); + } + notifyThemeListeners(theme, resolved); +}; +/** + * 设置主题CSS变量 + */ +const setThemeVariables = (config) => { + if (typeof document === 'undefined') + return; + const root = document.documentElement; + root.style.setProperty('--met-bg', config.bg); + root.style.setProperty('--met-text', config.text); + root.style.setProperty('--met-border', config.border); + root.style.setProperty('--met-shadow', config.shadow); + root.style.setProperty('--met-hover-shadow', config.hoverShadow); + root.style.setProperty('--met-progress-bg', config.progressBg); + root.style.setProperty('--met-close-hover-bg', config.closeHoverBg); + root.style.setProperty('--met-success', '#10b981'); + root.style.setProperty('--met-error', '#ef4444'); + root.style.setProperty('--met-warning', '#f59e0b'); + root.style.setProperty('--met-info', '#3b82f6'); + root.style.setProperty('--met-loading', '#6366f1'); +}; +/** + * 获取当前主题 + */ +const getCurrentTheme = () => { + return currentTheme; +}; +/** + * 获取解析后的主题 + */ +const getResolvedTheme = () => { + return resolveTheme(currentTheme); +}; +/** + * 切换主题 + */ +const switchTheme = (theme) => { + applyTheme(theme); + saveTheme(theme); +}; +/** + * 切换亮色/暗色主题 + */ +const toggleTheme = () => { + const resolved = getResolvedTheme(); + const newTheme = resolved === 'dark' ? 'light' : 'dark'; + switchTheme(newTheme); +}; +/** + * 重置为自动主题 + */ +const resetToAuto = () => { + switchTheme('auto'); +}; +/** + * 保存主题到本地存储 + */ +const saveTheme = (theme) => { + if (typeof localStorage !== 'undefined') { + try { + localStorage.setItem('metona-toast-theme', theme); + } + catch (e) { + console.warn('Failed to save theme:', e); + } + } +}; +/** + * 从本地存储加载主题 + */ +const loadTheme = () => { + if (typeof localStorage !== 'undefined') { + try { + return localStorage.getItem('metona-toast-theme') || 'auto'; + } + catch (e) { + console.warn('Failed to load theme:', e); + } + } + return 'auto'; +}; +/** + * 初始化主题系统 + */ +const initTheme = () => { + const savedTheme = loadTheme(); + applyTheme(savedTheme); + watchSystemTheme(); +}; +/** + * 监听系统主题变化 + */ +const watchSystemTheme = () => { + if (typeof window === 'undefined' || !window.matchMedia) + return; + if (systemThemeMediaQuery && systemThemeListener) { + systemThemeMediaQuery.removeEventListener('change', systemThemeListener); + } + systemThemeMediaQuery = window.matchMedia('(prefers-color-scheme: dark)'); + systemThemeListener = () => { + if (currentTheme === 'auto') { + applyTheme('auto'); + } + }; + systemThemeMediaQuery.addEventListener('change', systemThemeListener); +}; +/** + * 停止监听系统主题变化 + */ +const unwatchSystemTheme = () => { + if (systemThemeMediaQuery && systemThemeListener) { + systemThemeMediaQuery.removeEventListener('change', systemThemeListener); + systemThemeMediaQuery = null; + systemThemeListener = null; + } +}; +/** + * 添加主题监听器 + */ +const addThemeListener = (listener) => { + themeListeners.add(listener); + return () => { + themeListeners.delete(listener); + }; +}; +/** + * 移除主题监听器 + */ +const removeThemeListener = (listener) => { + themeListeners.delete(listener); +}; +/** + * 通知主题监听器 + */ +const notifyThemeListeners = (theme, resolved) => { + themeListeners.forEach((listener) => { + try { + listener(theme, resolved); + } + catch (e) { + console.error('Theme listener error:', e); + } + }); +}; +/** + * 清除所有主题监听器 + */ +const clearThemeListeners = () => { + themeListeners.clear(); +}; +/** + * 注册自定义主题 + */ +const registerTheme = (name, config) => { + THEMES[name] = { + bg: config.bg || THEMES.light.bg, + text: config.text || THEMES.light.text, + border: config.border || THEMES.light.border, + shadow: config.shadow || THEMES.light.shadow, + hoverShadow: config.hoverShadow || THEMES.light.hoverShadow, + progressBg: config.progressBg || THEMES.light.progressBg, + closeHoverBg: config.closeHoverBg || THEMES.light.closeHoverBg, + }; +}; +/** + * 注销自定义主题 + */ +const unregisterTheme = (name) => { + if (name === 'light' || name === 'dark' || name === 'auto') { + console.warn('Cannot unregister built-in theme:', name); + return; + } + delete THEMES[name]; +}; +/** + * 获取所有主题 + */ +const getAllThemes = () => { + return { ...THEMES }; +}; +/** + * 获取主题名称列表 + */ +const getThemeNames = () => { + return Object.keys(THEMES); +}; +/** + * 检查主题是否存在 + */ +const hasTheme = (name) => { + return name in THEMES; +}; +/** + * 获取主题预览 + */ +const getThemePreview = (theme) => { + const config = getThemeConfig(theme); + const resolved = resolveTheme(theme); + return { + name: theme, + resolved, + colors: { + background: config.bg, + text: config.text, + border: config.border, + }, + isDark: resolved === 'dark', + isLight: resolved === 'light', + isAuto: theme === 'auto', + }; +}; +/** + * 生成主题CSS + */ +const generateThemeCSS = (theme) => { + const config = getThemeConfig(theme); + const resolved = resolveTheme(theme); + return ` + .met-theme-${resolved} { + --met-bg: ${config.bg}; + --met-text: ${config.text}; + --met-border: ${config.border}; + --met-shadow: ${config.shadow}; + --met-hover-shadow: ${config.hoverShadow}; + --met-progress-bg: ${config.progressBg}; + --met-close-hover-bg: ${config.closeHoverBg}; + } + `; +}; +/** + * 应用主题CSS + */ +const applyThemeCSS = (theme) => { + if (typeof document === 'undefined') + return; + const css = generateThemeCSS(theme); + const styleId = 'metona-toast-theme-css'; + const oldStyle = document.getElementById(styleId); + if (oldStyle) { + oldStyle.remove(); + } + const style = document.createElement('style'); + style.id = styleId; + style.textContent = css; + document.head.appendChild(style); +}; +/** + * 移除主题CSS + */ +const removeThemeCSS = () => { + if (typeof document === 'undefined') + return; + const styleId = 'metona-toast-theme-css'; + const style = document.getElementById(styleId); + if (style) { + style.remove(); + } +}; +/** + * 主题工具 — 代理层 + */ +const themeUtils = { + getSystemTheme, + resolveTheme, + getThemeConfig, + applyTheme, + getCurrentTheme, + getResolvedTheme, + switchTheme, + toggleTheme, + resetToAuto, + initTheme, + watchSystemTheme, + unwatchSystemTheme, + addThemeListener, + removeThemeListener, + clearThemeListeners, + registerTheme, + unregisterTheme, + getAllThemes, + getThemeNames, + hasTheme, + getThemePreview, + generateThemeCSS, + applyThemeCSS, + removeThemeCSS, + saveTheme, + loadTheme, +}; + +/** + * MetonaToast i18n — 国际化管理 + * @module i18n + * @version 0.2.1 + */ +// 当前语言状态 +let currentLocale = 'zh-CN'; +const localeListeners = new Set(); +let fallbackLocale = 'zh-CN'; +/** + * 获取当前语言 + */ +const getCurrentLocale = () => { + return currentLocale; +}; +/** + * 设置当前语言 + */ +const setCurrentLocale = (locale) => { + if (!LOCALES[locale]) { + console.warn(`Locale "${locale}" not found, falling back to "${fallbackLocale}"`); + locale = fallbackLocale; + } + currentLocale = locale; + notifyLocaleListeners(locale); + saveLocale(locale); +}; +/** + * 获取回退语言 + */ +const getFallbackLocale = () => { + return fallbackLocale; +}; +/** + * 设置回退语言 + */ +const setFallbackLocale = (locale) => { + if (!LOCALES[locale]) { + console.warn(`Fallback locale "${locale}" not found`); + return; + } + fallbackLocale = locale; +}; +/** + * 翻译函数 + */ +const t = (key, params = {}) => { + const currentTranslation = getTranslation(currentLocale, key); + if (currentTranslation !== undefined) { + return interpolate(currentTranslation, params); + } + if (currentLocale !== fallbackLocale) { + const fallbackTranslation = getTranslation(fallbackLocale, key); + if (fallbackTranslation !== undefined) { + return interpolate(fallbackTranslation, params); + } + } + console.warn(`Translation missing for key "${key}" in locale "${currentLocale}"`); + return key; +}; +/** + * 获取翻译 + */ +const getTranslation = (locale, key) => { + const localeData = LOCALES[locale]; + if (!localeData) + return undefined; + const keys = key.split('.'); + let result = localeData; + for (const k of keys) { + if (result && typeof result === 'object' && k in result) { + result = result[k]; + } + else { + return undefined; + } + } + return typeof result === 'string' ? result : undefined; +}; +/** + * 插值函数 + */ +const interpolate = (str, params) => { + return str.replace(/\{(\w+)\}/g, (_match, key) => { + return params[key] !== undefined ? String(params[key]) : _match; + }); +}; +/** + * 检查翻译是否存在 + */ +const hasTranslation = (key) => { + return getTranslation(currentLocale, key) !== undefined || + getTranslation(fallbackLocale, key) !== undefined; +}; +/** + * 获取所有翻译 + */ +const getTranslations = (locale) => { + return LOCALES[locale] || {}; +}; +/** + * 添加翻译 + */ +const addTranslations = (locale, translations) => { + if (!LOCALES[locale]) { + LOCALES[locale] = {}; + } + deepMerge(LOCALES[locale], translations); +}; +/** + * 深度合并对象 + */ +const deepMerge = (target, source) => { + for (const key in source) { + if (source[key] instanceof Object && key in target && target[key] instanceof Object) { + deepMerge(target[key], source[key]); + } + else { + target[key] = source[key]; + } + } + return target; +}; +/** + * 移除翻译 + */ +const removeTranslation = (locale, key) => { + const localeData = LOCALES[locale]; + if (!localeData) + return; + const keys = key.split('.'); + let current = localeData; + for (let i = 0; i < keys.length - 1; i++) { + if (current[keys[i]] && typeof current[keys[i]] === 'object') { + current = current[keys[i]]; + } + else { + return; + } + } + delete current[keys[keys.length - 1]]; +}; +/** + * 清除翻译 + */ +const clearTranslations = (locale) => { + if (LOCALES[locale]) { + LOCALES[locale] = {}; + } +}; +/** + * 获取支持的语言列表 + */ +const getSupportedLocales = () => { + return Object.keys(LOCALES); +}; +/** + * 检查语言是否支持 + */ +const isLocaleSupported = (locale) => { + return locale in LOCALES; +}; +/** + * 获取语言名称 + */ +const getLocaleName = (locale) => { + const names = { + 'zh-CN': '简体中文', + 'zh-TW': '繁體中文', + 'en-US': 'English (US)', + 'en-GB': 'English (UK)', + 'ja': '日本語', + 'ko': '한국어', + 'fr': 'Français', + 'de': 'Deutsch', + 'es': 'Español', + 'pt': 'Português', + 'ru': 'Русский', + 'ar': 'العربية', + 'hi': 'हिन्दी', + 'th': 'ไทย', + 'vi': 'Tiếng Việt', + 'id': 'Bahasa Indonesia', + 'ms': 'Bahasa Melayu', + 'tr': 'Türkçe', + 'it': 'Italiano', + 'nl': 'Nederlands', + 'pl': 'Polski', + 'uk': 'Українська', + 'cs': 'Čeština', + 'sv': 'Svenska', + 'da': 'Dansk', + 'fi': 'Suomi', + 'nb': 'Norsk', + 'el': 'Ελληνικά', + 'he': 'עברית', + 'hu': 'Magyar', + 'ro': 'Română', + 'bg': 'Български', + 'hr': 'Hrvatski', + 'sk': 'Slovenčina', + 'sl': 'Slovenščina', + 'et': 'Eesti', + 'lv': 'Latviešu', + 'lt': 'Lietuvių', + 'ca': 'Català', + 'gl': 'Galego', + 'eu': 'Euskara', + 'cy': 'Cymraeg', + 'ga': 'Gaeilge', + 'mt': 'Malti', + 'is': 'Íslenska', + 'mk': 'Македонски', + 'sq': 'Shqip', + 'sr': 'Српски', + 'bs': 'Bosanski', + 'me': 'Crnogorski', + 'ka': 'ქართული', + 'hy': 'Հայերեն', + 'az': 'Azərbaycan', + 'uz': "O'zbek", + 'kk': 'Қазақ', + 'ky': 'Кыргыз', + 'tg': 'Тоҷикӣ', + 'tk': 'Türkmen', + 'mn': 'Монгол', + 'ne': 'नेपाली', + 'si': 'සිංහල', + 'my': 'မြန်မာ', + 'km': 'ខ្មែរ', + 'lo': 'ລາວ', + 'am': 'አማርኛ', + 'sw': 'Kiswahili', + 'yo': 'Yorùbá', + 'ig': 'Igbo', + 'ha': 'Hausa', + 'zu': 'isiZulu', + 'af': 'Afrikaans', + 'xh': 'isiXhosa', + 'st': 'Sesotho', + 'tn': 'Setswana', + 'ts': 'Xitsonga', + 'ss': 'siSwati', + 've': 'Tshivenda', + 'nr': 'isiNdebele', + }; + return names[locale] || locale; +}; +/** + * 获取语言方向 + */ +const getLocaleDirection = (locale) => { + const rtlLocales = ['ar', 'he', 'fa', 'ur', 'yi', 'ps', 'sd', 'ug']; + return rtlLocales.includes(locale) ? 'rtl' : 'ltr'; +}; +/** + * 获取语言信息 + */ +const getLocaleInfo = (locale) => { + return { + code: locale, + name: getLocaleName(locale), + direction: getLocaleDirection(locale), + isSupported: isLocaleSupported(locale), + isCurrent: locale === currentLocale, + isFallback: locale === fallbackLocale, + }; +}; +/** + * 获取所有语言信息 + */ +const getAllLocaleInfo = () => { + return getSupportedLocales().map(getLocaleInfo); +}; +/** + * 保存语言到本地存储 + */ +const saveLocale = (locale) => { + if (typeof localStorage !== 'undefined') { + try { + localStorage.setItem('metona-toast-locale', locale); + } + catch (e) { + console.warn('Failed to save locale:', e); + } + } +}; +/** + * 从本地存储加载语言 + */ +const loadLocale = () => { + if (typeof localStorage !== 'undefined') { + try { + return localStorage.getItem('metona-toast-locale') || getDefaultLocale(); + } + catch (e) { + console.warn('Failed to load locale:', e); + } + } + return getDefaultLocale(); +}; +/** + * 获取默认语言 + */ +const getDefaultLocale = () => { + if (typeof navigator !== 'undefined') { + const browserLocale = navigator.language || navigator.userLanguage; + if (browserLocale && isLocaleSupported(browserLocale)) { + return browserLocale; + } + const shortLocale = browserLocale?.split('-')[0]; + if (shortLocale && isLocaleSupported(shortLocale)) { + return shortLocale; + } + } + return fallbackLocale; +}; +/** + * 初始化国际化系统 + */ +const initI18n = () => { + const savedLocale = loadLocale(); + setCurrentLocale(savedLocale); +}; +/** + * 切换语言 + */ +const switchLocale = (locale) => { + setCurrentLocale(locale); +}; +/** + * 添加语言监听器 + */ +const addLocaleListener = (listener) => { + localeListeners.add(listener); + return () => { + localeListeners.delete(listener); + }; +}; +/** + * 移除语言监听器 + */ +const removeLocaleListener = (listener) => { + localeListeners.delete(listener); +}; +/** + * 通知语言监听器 + */ +const notifyLocaleListeners = (locale) => { + localeListeners.forEach((listener) => { + try { + listener(locale); + } + catch (e) { + console.error('Locale listener error:', e); + } + }); +}; +/** + * 清除所有语言监听器 + */ +const clearLocaleListeners = () => { + localeListeners.clear(); +}; +/** + * 格式化数字 + */ +const formatNumber = (number, options = {}) => { + try { + return new Intl.NumberFormat(currentLocale, options).format(number); + } + catch (e) { + return number.toString(); + } +}; +/** + * 格式化货币 + */ +const formatCurrency = (amount, currency = 'USD', options = {}) => { + try { + return new Intl.NumberFormat(currentLocale, { + style: 'currency', + currency, + ...options, + }).format(amount); + } + catch (e) { + return amount.toString(); + } +}; +/** + * 格式化百分比 + */ +const formatPercent = (value, options = {}) => { + try { + return new Intl.NumberFormat(currentLocale, { + style: 'percent', + minimumFractionDigits: 0, + maximumFractionDigits: 2, + ...options, + }).format(value / 100); + } + catch (e) { + return `${value}%`; + } +}; +/** + * 格式化日期 + */ +const formatDate = (date, options = {}) => { + try { + const dateObj = date instanceof Date ? date : new Date(date); + return new Intl.DateTimeFormat(currentLocale, options).format(dateObj); + } + catch (e) { + return String(date); + } +}; +/** + * 格式化时间 + */ +const formatTime = (date, options = {}) => { + return formatDate(date, { + hour: 'numeric', + minute: 'numeric', + second: 'numeric', + ...options, + }); +}; +/** + * 格式化相对时间 + */ +const formatRelativeTime = (date, options = {}) => { + try { + const dateObj = date instanceof Date ? date : new Date(date); + const now = new Date(); + const diff = dateObj.getTime() - now.getTime(); + const rtf = new Intl.RelativeTimeFormat(currentLocale, { + numeric: 'auto', + ...options, + }); + const units = [ + { unit: 'year', ms: 365 * 24 * 60 * 60 * 1000 }, + { unit: 'month', ms: 30 * 24 * 60 * 60 * 1000 }, + { unit: 'week', ms: 7 * 24 * 60 * 60 * 1000 }, + { unit: 'day', ms: 24 * 60 * 60 * 1000 }, + { unit: 'hour', ms: 60 * 60 * 1000 }, + { unit: 'minute', ms: 60 * 1000 }, + { unit: 'second', ms: 1000 }, + ]; + for (const { unit, ms } of units) { + if (Math.abs(diff) >= ms || unit === 'second') { + const value = Math.round(diff / ms); + return rtf.format(value, unit); + } + } + return String(date); + } + catch (e) { + return String(date); + } +}; +/** + * 格式化列表 — 优先使用 Intl.ListFormat,降级到逗号拼接 + */ +const formatList = (list, _options = {}) => { + const intl = Intl; + if (typeof intl.ListFormat === 'function') { + try { + return new intl.ListFormat(currentLocale, { + style: 'long', + type: 'conjunction', + }).format(list); + } + catch (_e) { /* fallback below */ } + } + return list.join(', '); +}; +/** + * 格式化复数 + */ +const formatPlural = (count, options = {}) => { + try { + return new Intl.PluralRules(currentLocale, options).select(count); + } + catch (e) { + return count === 1 ? 'one' : 'other'; + } +}; +/** + * 复数翻译 + */ +const plural = (key, count, params = {}) => { + const pluralForm = formatPlural(count); + const pluralKey = `${key}.${pluralForm}`; + if (hasTranslation(pluralKey)) { + return t(pluralKey, { ...params, count }); + } + if (hasTranslation(key)) { + return t(key, { ...params, count }); + } + return key; +}; +/** + * 国际化工具 — 代理层 + */ +const i18nUtils = { + t, + plural, + getCurrentLocale, + setCurrentLocale, + switchLocale, + getFallbackLocale, + setFallbackLocale, + hasTranslation, + getTranslations, + addTranslations, + removeTranslation, + clearTranslations, + getSupportedLocales, + isLocaleSupported, + getLocaleName, + getLocaleDirection, + getLocaleInfo, + getAllLocaleInfo, + formatNumber, + formatCurrency, + formatPercent, + formatDate, + formatTime, + formatRelativeTime, + formatList, + formatPlural, + addLocaleListener, + removeLocaleListener, + clearLocaleListeners, + initI18n, + saveLocale, + loadLocale, + getDefaultLocale, +}; +/** + * 预设语言包 + */ +({ + 'zh-CN': { + name: '简体中文', + nativeName: '简体中文', + direction: 'ltr', + translations: LOCALES['zh-CN'], + }, + 'en-US': { + name: 'English (US)', + nativeName: 'English (US)', + direction: 'ltr', + translations: LOCALES['en-US'], + }, +}); + +/** + * MetonaToast Toast — Toast 类 + * @module toast + * @version 0.2.1 + */ +/** + * Toast 类 — 核心通知组件 + */ +class Toast { + /** + * 设置 Toast 类级别的回调函数 + */ + static setCallbacks(callbacks) { + if (callbacks.onError !== undefined) + Toast._onError = callbacks.onError; + if (callbacks.removeToast !== undefined) + Toast._removeToast = callbacks.removeToast; + } + static on(name, fn) { + if (!this._hooks.has(name)) + this._hooks.set(name, []); + this._hooks.get(name).push(fn); + return () => this.off(name, fn); + } + static off(name, fn) { + const list = this._hooks.get(name); + if (list) + this._hooks.set(name, list.filter(f => f !== fn)); + } + /** + * 触发钩子 — 如果任意钩子返回 false 则整体返回 false + */ + static trigger(name, toast) { + const list = this._hooks.get(name); + if (!list || list.length === 0) + return true; + let allow = true; + list.forEach(fn => { + try { + const result = fn(toast); + if (result === false) + allow = false; + } + catch (e) { + console.error('Hook error:', name, e); + if (Toast._onError) { + try { + Toast._onError({ hook: name, error: e, toast }); + } + catch (_e) { /* noop */ } + } + } + }); + return allow; + } + constructor(opts) { + this.el = null; + this.barEl = null; + this.rafId = null; + this.startedAt = 0; + this.paused = false; + this.closing = false; + this.group = null; + this._cleanups = []; + this.id = opts.id || generateId(); + this.type = opts.type || 'default'; + this.title = opts.title || ''; + this.message = opts.message ?? opts.content ?? ''; + this.html = opts.html || ''; + this.iconHTML = opts.iconHTML || ''; + this.config = { ...DEFAULTS, ...opts }; + // 防止嵌套对象被多个 toast 实例共享引用 + if (opts.style && typeof opts.style === 'object') { + this.config.style = { ...opts.style }; + } + this.remaining = this.config.duration || 0; + this.group = opts.group || null; + } + _palette() { + const theme = getTheme(this.config.theme || 'auto'); + const c = TYPE_COLORS[this.type] || TYPE_COLORS.default; + const tc = THEMES[theme] || THEMES.light; + const t = { bg: tc.bg, border: tc.border, shadow: tc.shadow }; + return { theme, c, t }; + } + create() { + if (typeof window === 'undefined' || typeof document === 'undefined') + return this; + // beforeShow 钩子 — 返回 false 可阻止显示 + if (!Toast.trigger('beforeShow', this)) + return this; + // onBeforeShow 配置回调 — 返回 false 可阻止显示 + if (typeof this.config.onBeforeShow === 'function') { + try { + if (this.config.onBeforeShow(this) === false) + return this; + } + catch (e) { + console.error('onBeforeShow callback error:', e); + } + } + injectStyles(); + const container = this._getContainer(); + const { theme, c, t } = this._palette(); + this._limitToasts(container); + const el = document.createElement('div'); + el.className = this._buildClassName(theme); + el.setAttribute('role', (this.type === 'error' || this.type === 'warning') ? 'alert' : 'status'); + el.setAttribute('aria-live', this.type === 'error' ? 'assertive' : 'polite'); + el.dataset.id = this.id; + this._applyStyles(el, theme, t); + this._buildContent(el, c); + this.el = el; + // Chrome bug: column-reverse + appendChild 会导致重叠。改用 column + insertBefore + const pos = this.config.position || 'top-right'; + if (pos.startsWith('top')) { + container.insertBefore(el, container.firstChild); + } + else { + container.appendChild(el); + } + this._bindEvents(el); + this._startTimer(); + // 进入动画 + requestAnimationFrame(() => { + requestAnimationFrame(() => { + el.classList.add('met-show'); + }); + }); + if (typeof this.config.onShow === 'function') { + try { + this.config.onShow(this); + } + catch (e) { + console.error('onShow callback error:', e); + } + } + Toast.trigger('afterShow', this); + return this; + } + _getContainer() { + const rawPosition = this.config.position || 'top-right'; + const zIndex = this.config.zIndex || 9999; + // RTL 语言时翻转 left/right + const isRTL = getLocaleDirection(getCurrentLocale()) === 'rtl'; + const position = isRTL + ? rawPosition.replace('left', '__TMP__').replace('right', 'left').replace('__TMP__', 'right') + : rawPosition; + // 从模块级缓存获取 (由 api.ts 管理) + const cached = _containerCache.get(document.body); + if (cached && cached.has(position)) { + return cached.get(position); + } + // 缓存未命中时创建新容器 + if (!_containerCache.has(document.body)) { + _containerCache.set(document.body, new Map()); + } + const el = document.createElement('div'); + el.className = `met-container ${position}`; + el.setAttribute('aria-label', 'Notifications'); + el.setAttribute('role', 'region'); + const posStyles = { + 'top-left': 'top:0;left:0;align-items:flex-start', + 'top-center': 'top:0;left:0;right:0;align-items:center', + 'top-right': 'top:0;right:0;align-items:flex-end', + 'bottom-left': 'bottom:0;left:0;align-items:flex-start', + 'bottom-center': 'bottom:0;left:0;right:0;align-items:center', + 'bottom-right': 'bottom:0;right:0;align-items:flex-end', + }; + el.style.cssText = ` + display:flex; + flex-direction:column; + gap:${this.config.gap || 12}px; + box-sizing:border-box; + padding:${this.config.offset || 24}px; + max-width:100vw; + position:fixed; + z-index:${zIndex}; + pointer-events:none; + ${posStyles[position] || 'top:0;right:0;align-items:flex-end'} + `; + document.body.appendChild(el); + _containerCache.get(document.body).set(position, el); + return el; + } + _limitToasts(container) { + const max = this.config.max || 6; + const list = Array.from(container.querySelectorAll('.met-toast')); + if (list.length >= max) { + const first = list[0]; + const id = first?.dataset.id; + if (id && Toast._removeToast) { + Toast._removeToast(id); + } + } + } + _buildClassName(theme) { + const CSS_ANIMS = ['slide', 'fade', 'scale', 'bounce', 'flip', 'rotate', 'zoom', + 'slideUp', 'slideDown', 'slideLeft', 'slideRight']; + const anim = CSS_ANIMS.includes(this.config.animation || '') ? this.config.animation : 'slide'; + return [ + 'met-toast', + `met-${this.type}`, + `met-theme-${theme}`, + `met-anim-${anim}`, + (this.config.closeOnClick || this.config.draggable) ? 'met-clickable' : '', + this.config.className || '', + ].filter(Boolean).join(' '); + } + _applyStyles(el, _theme, _t) { + const widthValue = typeof this.config.width === 'number' + ? `${this.config.width}px` + : (typeof this.config.width === 'string' ? this.config.width : '360px'); + const set = (p, v) => el.style.setProperty(p, v, 'important'); + set('position', 'relative'); + set('flex-shrink', '0'); + set('min-width', '240px'); + set('max-width', 'calc(100vw - 48px)'); + set('width', widthValue); + // 用户自定义样式最后应用 + if (this.config.style && Object.keys(this.config.style).length > 0) { + Object.entries(this.config.style).forEach(([k, v]) => { el.style[k] = v; }); + } + } + _buildContent(el, c) { + // 自定义渲染函数 — 完全接管 DOM 构建 + if (typeof this.config.render === 'function') { + el.innerHTML = this.config.render(this); + this.barEl = el.querySelector('.met-bar, .met-bar-v'); + return; + } + const showIcon = this.config.icon !== false && (this.iconHTML || ICONS[this.type]); + const showClose = this.config.closeButton !== false; + const showProgress = this.config.showProgress !== false && (this.config.duration || 0) > 0; + const showSide = (!showIcon && this.type !== 'default'); + const safeTitle = this.title ? `
${escapeHTML(this.title)}
` : ''; + const safeMessage = this.html + ? `
${this.html}
` + : (this.message ? `
${escapeHTML(this.message)}
` : ''); + const iconHTML = showIcon + ? `
${this.iconHTML || ICONS[this.type]}
` : ''; + const closeHTML = showClose + ? `` + : ''; + const progressHTML = showProgress + ? (this.config.progressDirection === 'vertical' + ? `
` + : `
`) + : ''; + const sideHTML = showSide + ? `
` : ''; + el.innerHTML = ` + ${iconHTML} + ${sideHTML} +
+ ${safeTitle} + ${safeMessage} +
+ ${closeHTML} + ${progressHTML} + `; + this.barEl = el.querySelector('.met-bar, .met-bar-v'); + } + _bindEvents(el) { + const eventHandler = (e) => { + const target = e.target; + if (target.closest('.met-close')) { + e.stopPropagation(); + this.close(); + return; + } + if (this.config.closeOnClick && !target.closest('.met-close')) { + if (typeof this.config.onClick === 'function') { + try { + this.config.onClick(this); + } + catch (err) { + console.error('onClick callback error:', err); + } + } + this.close(); + return; + } + }; + el.addEventListener('click', eventHandler); + this._cleanups.push(() => el.removeEventListener('click', eventHandler)); + if (this.config.pauseOnHover && (this.config.duration || 0) > 0) { + const mouseEnter = () => this._pause(); + const mouseLeave = () => this._resume(); + el.addEventListener('mouseenter', mouseEnter); + el.addEventListener('mouseleave', mouseLeave); + this._cleanups.push(() => { + el.removeEventListener('mouseenter', mouseEnter); + el.removeEventListener('mouseleave', mouseLeave); + }); + } + if (this.config.draggable) { + this._bindDrag(el); + } + } + _bindDrag(el) { + let sx = 0, sy = 0, dx = 0, dy = 0, dragging = false; + const down = (e) => { + if (e.target.closest('.met-close')) + return; + dragging = true; + sx = e.clientX; + sy = e.clientY; + el.setPointerCapture(e.pointerId); + el.style.transition = 'none'; + this._pause(); + }; + const move = (e) => { + if (!dragging) + return; + dx = e.clientX - sx; + dy = e.clientY - sy; + el.style.transform = `translate(${dx}px, ${dy}px) rotate(${dx * 0.1}deg)`; + el.style.opacity = String(Math.max(0, 1 - Math.abs(dx) / 200)); + }; + const up = (e) => { + if (!dragging) + return; + dragging = false; + el.releasePointerCapture(e.pointerId); + el.style.transition = ''; + if (Math.abs(dx) > 120) { + el.style.transform = `translate(${dx * 2}px, ${dy}px) rotate(${dx * 0.2}deg)`; + el.style.opacity = '0'; + setTimeout(() => this.close(true), 250); + } + else { + el.style.transform = ''; + el.style.opacity = ''; + this._resume(); + } + dx = dy = 0; + }; + el.addEventListener('pointerdown', down); + el.addEventListener('pointermove', move); + el.addEventListener('pointerup', up); + el.addEventListener('pointercancel', up); + this._cleanups.push(() => { + el.removeEventListener('pointerdown', down); + el.removeEventListener('pointermove', move); + el.removeEventListener('pointerup', up); + el.removeEventListener('pointercancel', up); + }); + } + _startTimer(resuming = false) { + if ((this.config.duration || 0) <= 0) + return; + if (!resuming) { + this.startedAt = Date.now(); + this.remaining = this.config.duration || 0; + } + const tick = () => { + if (this.paused || this.closing) + return; + try { + const elapsed = Date.now() - this.startedAt; + this.remaining = Math.max(0, (this.config.duration || 0) - elapsed); + if (this.barEl) { + const ratio = this.remaining / (this.config.duration || 1); + const t = this.config.progressDirection === 'vertical' + ? `scaleY(${ratio})` : `scaleX(${ratio})`; + this.barEl.style.transform = t; + } + if (this.remaining <= 0) { + this.close(); + return; + } + } + catch (e) { + console.error('Timer tick error:', e); + if (Toast._onError) { + try { + Toast._onError({ source: 'timer', error: e, toast: this }); + } + catch (_e) { /* noop */ } + } + } + this.rafId = requestAnimationFrame(tick); + }; + this.rafId = requestAnimationFrame(tick); + } + _pause() { + if (this.paused || (this.config.duration || 0) <= 0) + return; + this.paused = true; + if (this.rafId !== null) + cancelAnimationFrame(this.rafId); + this.remaining = Math.max(0, (this.config.duration || 0) - (Date.now() - this.startedAt)); + } + _resume() { + if (!this.paused) + return; + this.paused = false; + this.startedAt = Date.now() - ((this.config.duration || 0) - this.remaining); + this._startTimer(true); + } + update(partial) { + Toast.trigger('beforeUpdate', this); + const typeChanged = partial.type && partial.type !== this.type; + if (partial.type) + this.type = partial.type; + if (partial.title !== undefined) + this.title = partial.title; + if (partial.message !== undefined) + this.message = partial.message; + if (partial.html !== undefined) + this.html = partial.html; + if (!this.el) { + Toast.trigger('afterUpdate', this); + return this; + } + // 类型变更时同步更新 DOM 类名、边框颜色和进度条颜色 + if (typeChanged) { + const typeClasses = ['met-success', 'met-error', 'met-warning', 'met-info', 'met-loading', 'met-default']; + typeClasses.forEach(c => this.el.classList.remove(c)); + this.el.classList.add(`met-${this.type}`); + if (this.barEl) { + const c = TYPE_COLORS[this.type] || TYPE_COLORS.default; + this.barEl.style.background = c.fg; + } + const side = this.el.querySelector('.met-side'); + if (side) { + const c = TYPE_COLORS[this.type] || TYPE_COLORS.default; + side.style.background = c.fg; + } + } + const content = this.el.querySelector('.met-content'); + if (content) { + const safeTitle = this.title ? `
${escapeHTML(this.title)}
` : ''; + const safeMessage = this.html + ? `
${this.html}
` + : (this.message ? `
${escapeHTML(this.message)}
` : ''); + content.innerHTML = `${safeTitle}${safeMessage}`; + } + // resetTimerOnUpdate: 更新内容后重置计时器 + if (this.config.resetTimerOnUpdate && (this.config.duration || 0) > 0) { + if (this.rafId !== null) + cancelAnimationFrame(this.rafId); + this.startedAt = Date.now(); + this.remaining = this.config.duration || 0; + this._startTimer(); + } + if (typeof this.config.onUpdate === 'function') { + try { + this.config.onUpdate(this); + } + catch (e) { + console.error('onUpdate callback error:', e); + } + } + Toast.trigger('afterUpdate', this); + return this; + } + /** + * 运行时移动 Toast 到新位置 + */ + updatePosition(position) { + if (!position || !this.el) + return this; + const oldContainer = this.el.parentNode; + this.config.position = position; + const newContainer = this._getContainer(); + if (oldContainer === newContainer) + return this; + // 从旧容器移除,加入新容器 + if (oldContainer && this.el.parentNode === oldContainer) { + oldContainer.removeChild(this.el); + } + const pos = position; + if (pos.startsWith('top')) { + newContainer.insertBefore(this.el, newContainer.firstChild); + } + else { + newContainer.appendChild(this.el); + } + return this; + } + /** + * 立即从 DOM 和内存中移除(不触发离场动画) + */ + remove() { + if (this.rafId !== null) { + cancelAnimationFrame(this.rafId); + this.rafId = null; + } + this._cleanups.forEach(fn => { try { + fn(); + } + catch (_e) { /* noop */ } }); + this._cleanups = []; + if (this.el && this.el.parentNode) { + this.el.parentNode.removeChild(this.el); + } + this.el = null; + if (Toast._removeToast) + Toast._removeToast(this.id); + } + close(immediate = false) { + if (this.closing) + return; + this.closing = true; + Toast.trigger('beforeClose', this); + if (this.rafId !== null) + cancelAnimationFrame(this.rafId); + this._cleanups.forEach(fn => { try { + fn(); + } + catch (_e) { /* noop */ } }); + this._cleanups = []; + const el = this.el; + if (!el) { + if (Toast._removeToast) + Toast._removeToast(this.id); + return; + } + // 立即脱离文档流 + const container = el.parentNode; + if (container && !immediate) { + const elRect = el.getBoundingClientRect(); + const containerRect = container.getBoundingClientRect(); + el.style.position = 'absolute'; + el.style.top = (elRect.top - containerRect.top) + 'px'; + el.style.left = (elRect.left - containerRect.left) + 'px'; + el.style.width = elRect.width + 'px'; + el.style.margin = '0'; + } + el.classList.add('met-leaving'); + el.classList.remove('met-show'); + const pos = this.config.position || 'top-right'; + const isRTL = getLocaleDirection(getCurrentLocale()) === 'rtl'; + let transform = 'scale(.96)'; + if (pos.includes('right')) + transform = isRTL ? 'translateX(-120%)' : 'translateX(120%)'; + else if (pos.includes('left')) + transform = isRTL ? 'translateX(120%)' : 'translateX(-120%)'; + else if (pos.startsWith('top')) + transform = 'translateY(-20px)'; + else + transform = 'translateY(20px)'; + el.style.transform = transform; + el.style.opacity = '0'; + setTimeout(() => this._destroy(), immediate ? 0 : 300); + } + _destroy() { + if (this.el && this.el.parentNode) { + this.el.parentNode.removeChild(this.el); + } + this.el = null; + if (typeof this.config.onClose === 'function') { + try { + this.config.onClose(this); + } + catch (e) { + console.error('onClose callback error:', e); + } + } + Toast.trigger('afterClose', this); + if (Toast._removeToast) + Toast._removeToast(this.id); + } +} +// 静态钩子系统 +Toast._hooks = new Map(); +// 由 api.ts 注入的回调,通过 setCallbacks() 设置 +Toast._onError = null; +Toast._removeToast = null; +/** + * 模块级共享容器缓存,所有 Toast 实例共用 + */ +const _containerCache = new Map(); + +/** + * MetonaToast Templates — HTML 模板辅助函数 + * @module templates + * @version 0.2.1 + * @description confirm / prompt / progress / action 的 DOM 模板 + */ +/** + * 按钮行模板 — confirm/prompt 共用 + */ +const btnRow = (buttons) => ` +
+ ${buttons} +
`; +/** + * 确认对话框模板 + */ +const confirmHTML = (opts) => { + const confirmText = opts.confirmText || t('confirm'); + const cancelText = opts.cancelText || t('cancel'); + const confirmColor = opts.confirmColor || '#10b981'; + const cancelColor = opts.cancelColor || '#6b7280'; + return btnRow(` + + + `); +}; +/** + * 输入对话框模板 + */ +const promptHTML = (opts) => { + const submitText = opts.submitText || t('confirm'); + const cancelText = opts.cancelText || t('cancel'); + const submitColor = opts.submitColor || '#3b82f6'; + const cancelColor = opts.cancelColor || '#6b7280'; + return ` + + ${btnRow(` + + + `)} + `; +}; +/** + * 进度条模板 + */ +const progressHTML = (opts) => { + const color = opts.progressColor || '#3b82f6'; + return ` +
+
+
+
0%
+ `; +}; +/** + * Action Toast 模板 + */ +const actionHTML = (actions) => { + if (!Array.isArray(actions) || actions.length === 0) + return ''; + const buttons = actions.map((a, i) => { + const bg = a.style?.background || a.color || '#6366f1'; + const cls = `met-action-btn-${i}`; + return ``; + }).join(''); + return btnRow(buttons); +}; + +/** + * MetonaToast Plugins — 插件系统 + * @module plugins + * @version 0.2.1 + */ +/** + * 插件管理器 + */ +class PluginManager { + constructor() { + this.plugins = new Map(); + this.initialized = false; + } + register(name, plugin) { + if (this.plugins.has(name)) { + console.warn(`Plugin "${name}" is already registered`); + return this; + } + if (!plugin || typeof plugin !== 'object' || !plugin.name) { + console.error(`Invalid plugin "${name}": must be an object with a "name" property`); + return this; + } + const stored = { ...plugin, installed: false, enabled: true }; + if (!stored.name) + stored.name = name; + this.plugins.set(name, stored); + if (stored.install) { + try { + stored.install(this); + stored.installed = true; + } + catch (e) { + console.error(`Failed to install plugin "${name}":`, e); + } + } + return this; + } + unregister(name) { + const plugin = this.plugins.get(name); + if (!plugin) + return this; + if (plugin.uninstall) { + try { + plugin.uninstall(this); + } + catch (e) { + console.error(`Failed to uninstall plugin "${name}":`, e); + } + } + this.plugins.delete(name); + return this; + } + get(name) { return this.plugins.get(name) || null; } + has(name) { return this.plugins.has(name); } + getAll() { return Array.from(this.plugins.values()); } + getNames() { return Array.from(this.plugins.keys()); } + enable(name) { + const p = this.plugins.get(name); + if (p) + p.enabled = true; + return this; + } + disable(name) { + const p = this.plugins.get(name); + if (p) + p.enabled = false; + return this; + } + isEnabled(name) { + const p = this.plugins.get(name); + return p ? !!p.enabled : false; + } + destroy() { + this.plugins.forEach((p) => { + if (p.destroy) { + try { + p.destroy(this); + } + catch (_e) { /* noop */ } + } + }); + this.plugins.clear(); + } +} +/** + * 预设插件 + */ +const presetPlugins = { + /** + * 键盘快捷键插件 — ESC 关闭所有 Toast + */ + keyboard: { + name: 'keyboard', + version: '1.0.0', + description: 'ESC 关闭所有 Toast', + _handler: null, + install() { + if (typeof document === 'undefined') + return; + const handler = (e) => { + if (e.key === 'Escape') { + document.querySelectorAll('.met-toast .met-close').forEach(btn => { + try { + btn.click(); + } + catch (_e) { /* noop */ } + }); + } + }; + this._handler = handler; + document.addEventListener('keydown', handler); + }, + uninstall() { + const handler = this._handler; + if (handler && typeof document !== 'undefined') { + document.removeEventListener('keydown', handler); + this._handler = null; + } + }, + }, + /** + * 持久化插件 — 自动保存/加载配置到 localStorage + */ + persistence: { + name: 'persistence', + version: '1.0.0', + description: '自动持久化配置到 localStorage', + storageKey: 'metona-toast-config', + install() { + if (typeof localStorage !== 'undefined') { + try { + const key = this.storageKey; + const saved = localStorage.getItem(key); + return saved ? JSON.parse(saved) : null; + } + catch (_e) { + return null; + } + } + return null; + }, + save(config) { + if (typeof localStorage !== 'undefined') { + try { + const key = this.storageKey; + localStorage.setItem(key, JSON.stringify(config)); + } + catch (_e) { /* noop */ } + } + }, + uninstall() { + if (typeof localStorage !== 'undefined') { + try { + const key = this.storageKey; + localStorage.removeItem(key); + } + catch (_e) { /* noop */ } + } + }, + }, + /** + * 无障碍插件 — 屏幕阅读器公告 + */ + accessibility: { + name: 'accessibility', + version: '1.0.0', + description: '通过屏幕阅读器朗读 Toast 内容', + announce(toast) { + if (typeof document === 'undefined') + return; + const el = document.createElement('div'); + el.setAttribute('aria-live', 'assertive'); + el.setAttribute('aria-atomic', 'true'); + el.style.cssText = 'position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;'; + const typeName = t(toast.type) || toast.type; + el.textContent = `${typeName}: ${toast.title || ''} ${toast.message || ''}`; + document.body.appendChild(el); + setTimeout(() => { if (el.parentNode) + el.parentNode.removeChild(el); }, 3000); + }, + }, +}; +/** + * 插件工具 + */ +const pluginUtils = { + createManager() { return new PluginManager(); }, + register(name, plugin) { return defaultPluginManager.register(name, plugin); }, + unregister(name) { return defaultPluginManager.unregister(name); }, + get(name) { return defaultPluginManager.get(name); }, + has(name) { return defaultPluginManager.has(name); }, + getAll() { return defaultPluginManager.getAll(); }, + getNames() { return defaultPluginManager.getNames(); }, + enable(name) { return defaultPluginManager.enable(name); }, + disable(name) { return defaultPluginManager.disable(name); }, + isEnabled(name) { return defaultPluginManager.isEnabled(name); }, + getPreset(name) { return presetPlugins[name] || null; }, + getAllPresets() { return { ...presetPlugins }; }, + createPlugin(config) { + return { + name: config.name || 'custom', + version: config.version || '1.0.0', + description: config.description || '', + hooks: config.hooks || {}, + install: config.install || undefined, + uninstall: config.uninstall || undefined, + ...config, + }; + }, + validatePlugin(plugin) { + const errors = []; + if (!plugin || typeof plugin !== 'object') + errors.push('Plugin must be an object'); + if (!plugin.name && !plugin.version) + errors.push('Plugin must have a name or version'); + return { valid: errors.length === 0, errors }; + }, +}; +const defaultPluginManager = new PluginManager(); + +/** + * MetonaToast API — meToast 核心 API 对象 + * @module api + * @version 0.2.1 + */ +/** + * 参数标准化工具 + */ +const normalizeArgs = (args, defaultType = 'default') => { + const [first, second] = args; + if (typeof first === 'string') { + return { + ...(second || {}), + type: second?.type || defaultType, + message: first, + }; + } + if (first && typeof first === 'object') { + return { + ...first, + type: first.type || defaultType, + }; + } + return { + type: defaultType, + message: '', + }; +}; +/** 版本号常量 */ +const VERSION$1 = '0.2.1'; +/** + * meToast API 对象 + */ +const meToast = { + _toasts: new Map(), + _config: { ...DEFAULTS }, + version: '0.2.1', + configure(opts) { + if (!opts || typeof opts !== 'object') + return this; + Object.assign(this._config, opts); + if (opts.theme) { + applyTheme(opts.theme); + } + if (opts.locale) { + setCurrentLocale(opts.locale); + } + return this; + }, + _emit(opts) { + const merged = { ...this._config, ...opts }; + if (merged.content && !merged.message) + merged.message = merged.content; + const t = new Toast(merged); + t.create(); + this._toasts.set(t.id, t); + return t; + }, + _remove(id) { + this._toasts.delete(id); + }, + find(id) { + if (!id) + return undefined; + return this._toasts.get(id); + }, + show(messageOrOpts, opts = {}) { + const normalized = normalizeArgs([messageOrOpts, opts], 'default'); + return this._emit(normalized); + }, + success(messageOrOpts, opts = {}) { + const normalized = normalizeArgs([messageOrOpts, opts], 'success'); + return this._emit(normalized); + }, + error(messageOrOpts, opts = {}) { + const normalized = normalizeArgs([messageOrOpts, opts], 'error'); + return this._emit(normalized); + }, + warning(messageOrOpts, opts = {}) { + const normalized = normalizeArgs([messageOrOpts, opts], 'warning'); + return this._emit(normalized); + }, + info(messageOrOpts, opts = {}) { + const normalized = normalizeArgs([messageOrOpts, opts], 'info'); + return this._emit(normalized); + }, + loading(messageOrOpts, opts = {}) { + const normalized = normalizeArgs([messageOrOpts, opts], 'loading'); + normalized.duration = 0; + normalized.closeButton = false; + normalized.showProgress = false; + const toast = this._emit(normalized); + return { + id: toast.id, + success: (msg, o = {}) => this._resolve(toast, 'success', msg || t('success'), o), + error: (msg, o = {}) => this._resolve(toast, 'error', msg || t('error'), o), + info: (msg, o = {}) => this._resolve(toast, 'info', msg || t('info'), o), + warning: (msg, o = {}) => this._resolve(toast, 'warning', msg || t('warning'), o), + update: (p) => { toast.update(p); return this; }, + dismiss: () => toast.close(), + }; + }, + promise(promise, opts = {}) { + if (!promise || typeof promise.then !== 'function') { + console.error('MeToast.promise: first argument must be a Promise'); + return Promise.reject(new Error('Invalid promise')); + } + const loadingMsg = opts.loading || t('loading'); + const successMsg = opts.success || t('success'); + const errorMsg = opts.error || t('error'); + const ctrl = this.loading(loadingMsg); + return Promise.resolve(promise) + .then((data) => { + ctrl.success(successMsg); + return data; + }) + .catch((err) => { + ctrl.error(errorMsg); + throw err; + }); + }, + _resolve(loadingToast, type, message, opts) { + const id = loadingToast.id; + const old = this._toasts.get(id); + if (!old) + return null; + const position = old.config.position; + old.close(); + return this._emit({ ...opts, type, message, position }); + }, + confirm(message, opts = {}) { + if (typeof message !== 'string') { + console.error('MeToast.confirm: message must be a string'); + return Promise.resolve(false); + } + return new Promise((resolve) => { + let resolved = false; + const safeResolve = (val) => { + if (!resolved) { + resolved = true; + clearTimeout(safetyTimeout); + resolve(val); + } + }; + const safetyTimeout = setTimeout(() => safeResolve(false), 10000); + const toast = this._emit({ + ...opts, + type: opts.type || 'warning', + message, + duration: 0, + closeButton: false, + closeOnClick: false, + draggable: false, + html: confirmHTML(opts), + }); + setTimeout(() => { + const confirmBtn = toast.el?.querySelector('.met-confirm-btn'); + const cancelBtn = toast.el?.querySelector('.met-cancel-btn'); + if (confirmBtn) { + confirmBtn.addEventListener('click', () => { + toast.close(); + safeResolve(true); + }); + } + if (cancelBtn) { + cancelBtn.addEventListener('click', () => { + toast.close(); + safeResolve(false); + }); + } + }, 0); + }); + }, + prompt(message, opts = {}) { + if (typeof message !== 'string') { + console.error('MeToast.prompt: message must be a string'); + return Promise.resolve(null); + } + return new Promise((resolve) => { + let resolved = false; + const safeResolve = (val) => { + if (!resolved) { + resolved = true; + clearTimeout(safetyTimeout); + resolve(val); + } + }; + const safetyTimeout = setTimeout(() => safeResolve(null), 10000); + const toast = this._emit({ + ...opts, + type: opts.type || 'info', + message, + duration: 0, + closeButton: false, + closeOnClick: false, + draggable: false, + html: promptHTML(opts), + }); + setTimeout(() => { + const input = toast.el?.querySelector('.met-input'); + const submitBtn = toast.el?.querySelector('.met-submit-btn'); + const cancelBtn = toast.el?.querySelector('.met-cancel-btn'); + if (input) { + input.focus(); + input.addEventListener('keydown', (e) => { + if (e.key === 'Enter') { + toast.close(); + safeResolve(input.value); + } + }); + } + if (submitBtn) { + submitBtn.addEventListener('click', () => { + toast.close(); + safeResolve(input?.value || null); + }); + } + if (cancelBtn) { + cancelBtn.addEventListener('click', () => { + toast.close(); + safeResolve(null); + }); + } + }, 0); + }); + }, + progress(messageOrOpts, opts = {}) { + const normalized = normalizeArgs([messageOrOpts, opts], 'info'); + normalized.duration = 0; + normalized.closeButton = false; + normalized.showProgress = false; + const toast = this._emit({ + ...normalized, + html: progressHTML(opts), + }); + return { + id: toast.id, + setProgress(percent) { + const fill = toast.el?.querySelector('.met-progress-fill'); + const text = toast.el?.querySelector('.met-progress-text'); + if (fill) { + fill.style.width = `${Math.min(100, Math.max(0, percent))}%`; + } + if (text) { + text.textContent = `${Math.round(percent)}%`; + } + }, + complete(message) { + this.setProgress(100); + setTimeout(() => { + toast.update({ + type: 'success', + message: message || t('success'), + html: '', + }); + setTimeout(() => toast.close(), 1000); + }, 300); + }, + error(message) { + toast.update({ + type: 'error', + message: message || t('error'), + html: '', + }); + setTimeout(() => toast.close(), 2000); + }, + dismiss() { + toast.close(); + }, + }; + }, + countdown(message, seconds = 10, opts = {}) { + if (typeof message !== 'string') { + console.error('MeToast.countdown: message must be a string'); + return { id: '', cancel: () => { }, pause: () => { }, resume: () => { } }; + } + let remaining = Math.max(1, parseInt(String(seconds)) || 10); + let timer = null; + const toast = this._emit({ + ...opts, + type: opts.type || 'warning', + message: message.replace(/\{seconds\}/g, String(remaining)), + duration: 0, + closeButton: true, + showProgress: false, + }); + const tick = () => { + remaining--; + if (remaining <= 0) { + if (timer !== null) + clearInterval(timer); + toast.close(); + if (typeof opts.onComplete === 'function') { + try { + opts.onComplete(); + } + catch (e) { + console.error('countdown onComplete error:', e); + } + } + return; + } + toast.update({ + message: message.replace(/\{seconds\}/g, String(remaining)), + }); + }; + timer = setInterval(tick, 1000); + return { + id: toast.id, + cancel() { if (timer !== null) + clearInterval(timer); toast.close(); }, + pause() { if (timer !== null) + clearInterval(timer); }, + resume() { if (timer !== null) + clearInterval(timer); timer = setInterval(tick, 1000); }, + }; + }, + action(messageOrOpts, actions = [], opts = {}) { + const normalized = normalizeArgs([messageOrOpts, opts], 'info'); + normalized.duration = opts.duration ?? 0; + normalized.closeButton = opts.closeButton ?? true; + const toast = this._emit({ + ...normalized, + html: (normalized.html || '') + actionHTML(actions), + }); + if (Array.isArray(actions)) { + setTimeout(() => { + actions.forEach((a, i) => { + const btn = toast.el?.querySelector(`.met-action-btn-${i}`); + if (btn && typeof a.onClick === 'function') { + btn.addEventListener('click', () => { + try { + a.onClick(toast); + } + catch (e) { + console.error('Action onClick error:', e); + } + if (a.close !== false) + toast.close(); + }); + } + }); + }, 0); + } + return { id: toast.id, toast, dismiss: () => toast.close() }; + }, + queue(messages, opts = {}) { + if (!Array.isArray(messages)) { + console.error('MeToast.queue: messages must be an array'); + const p = Promise.resolve(); + return { then: (fn) => p.then(fn), catch: (rj) => p.catch(rj), cancel: () => { } }; + } + let cancelled = false; + const promise = new Promise((resolve) => { + let index = 0; + const delay = opts.delay || 1000; + const userOnClose = opts.onClose; + const showNext = () => { + if (cancelled || index >= messages.length) { + resolve(); + return; + } + const message = messages[index]; + index++; + const msg = typeof message === 'string' ? message : (message?.message || ''); + const msgObj = (typeof message === 'object' && message !== null) ? message : {}; + const msgOnClose = msgObj.onClose; + this._emit({ + ...opts, + ...msgObj, + message: msg, + duration: msgObj.duration || opts.duration || 3000, + onClose: (toast) => { + if (typeof msgOnClose === 'function') { + try { + msgOnClose(toast); + } + catch (_e) { /* noop */ } + } + if (typeof userOnClose === 'function') { + try { + userOnClose(toast); + } + catch (_e) { /* noop */ } + } + setTimeout(showNext, delay); + }, + }); + }; + showNext(); + }); + return { + then: (fn, rj) => promise.then(fn, rj), + catch: (rj) => promise.catch(rj), + cancel: () => { cancelled = true; }, + }; + }, + stack(messages, opts = {}) { + if (!Array.isArray(messages)) { + console.error('MeToast.stack: messages must be an array'); + return; + } + messages.forEach((message, index) => { + setTimeout(() => { + const msg = typeof message === 'string' ? message : (message?.message || ''); + this._emit({ + ...opts, + ...((typeof message === 'object' && message !== null) ? message : {}), + message: msg, + }); + }, index * (opts.stagger || 100)); + }); + }, + dismiss(id) { + if (id) { + const t = this._toasts.get(id); + if (t) + t.close(); + return; + } + this._toasts.forEach(t => t.close()); + }, + /** + * 立即移除指定 Toast(不触发离场动画) + */ + removeToast(id) { + if (!id) + return; + const t = this._toasts.get(id); + if (t) + t.remove(); + }, + clear(position) { + this._toasts.forEach(t => { + if (!position || t.config.position === position) + t.close(); + }); + }, + getAll() { + return new Map(this._toasts); + }, + count() { + return this._toasts.size; + }, + group(name) { + const self = this; + const methods = ['show', 'success', 'error', 'warning', 'info', 'loading', 'action']; + const g = { _group: name }; + methods.forEach(m => { + g[m] = (...args) => { + const lastArg = args[args.length - 1]; + const isObj = typeof lastArg === 'object' && lastArg !== null && !Array.isArray(lastArg); + const selfMethods = self; + if (isObj && args.length === 1) { + return selfMethods[m]({ ...lastArg, group: name }); + } + if (isObj) { + args.pop(); + return selfMethods[m](...args, { ...lastArg, group: name }); + } + return selfMethods[m](...args, { group: name }); + }; + }); + g.dismiss = () => self.dismissGroup(name); + g.count = () => self._groupCount(name); + return g; + }, + dismissGroup(name) { + this._toasts.forEach(t => { if (t.group === name) + t.close(); }); + }, + _groupCount(name) { + let c = 0; + this._toasts.forEach(t => { if (t.group === name) + c++; }); + return c; + }, + getToasts() { + return Array.from(this._toasts.values()); + }, + hasToasts() { + return this._toasts.size > 0; + }, + getToast(id) { + if (!id) + return null; + return this._toasts.get(id) || null; + }, + closeAll() { + this._toasts.forEach(t => t.close()); + }, + clearAll() { + this._toasts.forEach(t => t.close()); + }, + pauseAll() { + this._toasts.forEach(t => t._pause()); + }, + resumeAll() { + this._toasts.forEach(t => t._resume()); + }, + updateAll(partial) { + if (partial && typeof partial === 'object') { + this._toasts.forEach(t => t.update(partial)); + } + }, + findToasts(predicate) { + if (typeof predicate !== 'function') + return []; + return Array.from(this._toasts.values()).filter(predicate); + }, + findByType(type) { + return this.findToasts(t => t.type === type); + }, + findByPosition(position) { + return this.findToasts(t => t.config.position === position); + }, + // ====== 以下方法依赖子模块(themes/i18n/plugins/animations),由 index.ts 注入 ====== + init(options = {}) { + if (options.config) { + this.configure(options.config); + } + if (options.theme && this.themes) { + this.themes.switchTheme(options.theme); + } + if (options.locale && this.i18n) { + this.i18n.switchLocale(options.locale); + } + if (options.plugins && Array.isArray(options.plugins)) { + options.plugins.forEach((p) => { + this.use(p); + }); + } + return this; + }, + getStatus() { + return { + version: VERSION$1, + toasts: this._toasts.size, + theme: this.themes?.getCurrentTheme?.() || 'auto', + locale: this.i18n?.getCurrentLocale?.() || 'zh-CN', + plugins: this.plugins?.getNames?.() || [], + animations: this.animations?.getActiveCount?.() || 0, + }; + }, + getConfig() { + return { ...this._config }; + }, + updateConfig(config) { + if (config && typeof config === 'object') { + Object.assign(this._config, config); + } + return this; + }, + resetConfig() { + const keys = Object.keys(this._config); + keys.forEach(k => delete this._config[k]); + Object.assign(this._config, DEFAULTS); + return this; + }, + use(plugin, options = {}) { + if (typeof plugin === 'string') { + const preset = presetPlugins[plugin]; + if (!preset) { + console.warn(`Preset plugin "${plugin}" not found`); + return this; + } + this.plugins.register(plugin, { ...preset, ...options }); + // 连接插件钩子 + if (plugin === 'accessibility') { + Toast.on('afterShow', (toast) => { + const acc = preset; + if (typeof acc.announce === 'function') + acc.announce(toast); + }); + } + if (plugin === 'persistence') { + const saved = typeof preset.install === 'function' + ? preset.install(this.plugins) + : null; + if (saved) + this.configure(saved); + Toast.on('afterClose', () => { + const p = preset; + if (typeof p.save === 'function') + p.save(this.getConfig()); + }); + } + } + else if (plugin && typeof plugin === 'object') { + this.plugins.register(plugin.name || 'custom', { ...plugin, ...options }); + } + return this; + }, + destroy() { + if (this._destroyed) + return; + this._destroyed = true; + this.dismiss(); + // 清理子模块 + if (this.plugins && typeof this.plugins.destroy === 'function') { + this.plugins.destroy(); + } + if (this.themes) { + if (typeof this.themes.clearThemeListeners === 'function') { + this.themes.clearThemeListeners(); + } + if (typeof this.themes.unwatchSystemTheme === 'function') { + this.themes.unwatchSystemTheme(); + } + } + if (this.i18n && typeof this.i18n.clearLocaleListeners === 'function') { + this.i18n.clearLocaleListeners(); + } + if (this.animations && typeof this.animations.cancelAll === 'function') { + this.animations.cancelAll(); + } + // 清理 DOM + if (typeof document !== 'undefined') { + const containers = document.querySelectorAll('.met-container'); + containers.forEach((c) => { if (c.parentNode) + c.parentNode.removeChild(c); }); + const style = document.getElementById('metona-toast-styles'); + if (style && style.parentNode) + style.parentNode.removeChild(style); + } + this._toasts.clear(); + _containerCache.clear(); + }, + // 子模块引用(由 index.ts 注入实际实现) + animations: null, + themes: null, + i18n: null, + plugins: null, + presetPlugins: {}, +}; +// 连接 Toast 静态回调到 meToast 实例 +Toast.setCallbacks({ + onError: (info) => { + const onError = meToast._config.onError; + if (typeof onError === 'function') { + try { + onError(info); + } + catch (_e) { /* noop */ } + } + }, + removeToast: (id) => { + meToast._toasts.delete(id); + }, +}); + +/** + * MetonaToast Animations — 动画管理 + * @module animations + * @version 0.2.1 + */ +// 动画缓存 +const animationMap = new Map(); +// 注册默认动画 +Object.entries(ANIMATIONS).forEach(([name, config]) => { + animationMap.set(name, { + name, + enter: config.enter, + leave: config.leave, + duration: config.duration, + easing: config.easing, + }); +}); +/** + * 动画工具函数 + */ +const animationUtils = { + register(name, config) { + animationMap.set(name, { + name, + enter: config.enter || {}, + leave: config.leave || {}, + duration: config.duration || 300, + easing: config.easing || 'cubic-bezier(0.4, 0, 0.2, 1)', + }); + }, + unregister(name) { + animationMap.delete(name); + }, + get(name) { + return animationMap.get(name) || null; + }, + getAnimationNames() { + return Array.from(animationMap.keys()); + }, + getActiveCount() { + return animationMap.size; + }, + cancelAll() { + // CSS动画由浏览器原生管理,无需手动取消 + }, + reset() { + animationMap.clear(); + Object.entries(ANIMATIONS).forEach(([name, config]) => { + animationMap.set(name, { + name, + enter: config.enter, + leave: config.leave, + duration: config.duration, + easing: config.easing, + }); + }); + }, + destroy() { + animationMap.clear(); + }, +}; + +/** + * MetonaToast — 轻量级Toast通知库 + * @module metona-toast + * @version 0.2.1 + * @author thzxx + * @license MIT + */ +// 版本信息 +const VERSION = '0.2.1'; +/** + * 增强的 MeToast 对象 — 在 meToast 基础上注入子模块 + */ +const enhancedMeToast = { + ...meToast, + version: VERSION, + animations: animationUtils, + themes: themeUtils, + i18n: i18nUtils, + plugins: pluginUtils, + presetPlugins, +}; +// 初始化主题和国际化 +if (typeof themeUtils.initTheme === 'function') { + themeUtils.initTheme(); +} +if (typeof i18nUtils.initI18n === 'function') { + i18nUtils.initI18n(); +} +// 浏览器环境全局注册 +if (typeof window !== 'undefined') { + window.MeToast = enhancedMeToast; + window.Met = enhancedMeToast; + // Notification API — 页面不可见时自动发送系统通知 + const sendNotification = (toast) => { + try { + new Notification(toast.title || toast.type, { body: toast.message }); + } + catch (_e) { /* noop */ } + }; + enhancedMeToast._notify = (toast) => { + if (typeof Notification === 'undefined') + return; + if (Notification.permission === 'denied') + return; + if (!document.hidden) + return; + if (Notification.permission === 'default') { + Notification.requestPermission().then(p => { if (p === 'granted') + sendNotification(toast); }); + return; + } + sendNotification(toast); + }; + Toast.on('afterShow', (toast) => { + const config = toast.config; + if (config.notifyWhenHidden) { + (enhancedMeToast._notify)(toast); + } + }); +} + +export { enhancedMeToast as MeToast, enhancedMeToast as Met, Toast, VERSION, enhancedMeToast as default, enhancedMeToast as meToast }; +//# sourceMappingURL=metona-toast.esm.js.map diff --git a/dist/metona-toast.esm.js.map b/dist/metona-toast.esm.js.map new file mode 100644 index 0000000..d71f7b0 --- /dev/null +++ b/dist/metona-toast.esm.js.map @@ -0,0 +1 @@ +{"version":3,"file":"metona-toast.esm.js","sources":["../src/utils.ts","../src/icons.ts","../src/locales.ts","../src/constants.ts","../src/styles.ts","../src/themes.ts","../src/i18n.ts","../src/toast.ts","../src/templates.ts","../src/plugins.ts","../src/api.ts","../src/animations.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["VERSION"],"mappings":"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"} \ No newline at end of file diff --git a/dist/metona-toast.js b/dist/metona-toast.js new file mode 100644 index 0000000..fc2cebb --- /dev/null +++ b/dist/metona-toast.js @@ -0,0 +1,4305 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.MeToast = {})); +})(this, (function (exports) { 'use strict'; + + /** + * MetonaToast Utils — 工具函数 + * @module utils + * @version 0.2.1 + */ + /** + * 生成唯一ID + */ + const generateId = () => { + return 'met-' + Date.now().toString(36) + '-' + Math.random().toString(36).slice(2, 8); + }; + /** + * HTML转义 + * @param s - 输入字符串 + */ + const escapeHTML = (s) => { + if (typeof document === 'undefined') { + return String(s == null ? '' : s) + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); + } + const div = document.createElement('div'); + div.textContent = String(s == null ? '' : s); + return div.innerHTML; + }; + /** + * 检测暗色模式偏好 + */ + const prefersDark = () => { + return typeof window !== 'undefined' && + typeof window.matchMedia === 'function' && + window.matchMedia('(prefers-color-scheme: dark)').matches; + }; + + /** + * MetonaToast Icons — 图标SVG定义 + * @module icons + * @version 0.2.1 + * @description 107 个内置 SVG 图标 + */ + const ICONS = { + success: ` + + `, + error: ` + + + + `, + warning: ` + + + + `, + info: ` + + + + `, + loading: ` + + `, + close: ` + + + `, + check: ` + + `, + x: ` + + + `, + alert: ` + + + + `, + question: ` + + + + `, + star: ` + + `, + heart: ` + + `, + bell: ` + + + `, + mail: ` + + + `, + settings: ` + + + `, + user: ` + + + `, + home: ` + + + `, + search: ` + + + `, + plus: ` + + + `, + minus: ` + + `, + edit: ` + + + `, + trash: ` + + + + + `, + download: ` + + + + `, + upload: ` + + + + `, + share: ` + + + + + + `, + link: ` + + + `, + external: ` + + + + `, + clock: ` + + + `, + calendar: ` + + + + + `, + map: ` + + + + `, + compass: ` + + + `, + globe: ` + + + + `, + wifi: ` + + + + + `, + cloud: ` + + `, + sun: ` + + + + + + + + + + `, + moon: ` + + `, + zap: ` + + `, + activity: ` + + `, + cpu: ` + + + + + + + + + + + `, + database: ` + + + + `, + server: ` + + + + + `, + terminal: ` + + + `, + code: ` + + + `, + git: ` + + + + + `, + package: ` + + + + + `, + layers: ` + + + + `, + grid: ` + + + + + `, + list: ` + + + + + + + `, + filter: ` + + `, + sort: ` + + + `, + refresh: ` + + + + `, + sync: ` + + + + `, + power: ` + + + `, + battery: ` + + + `, + bluetooth: ` + + `, + volume: ` + + + `, + mic: ` + + + + + `, + camera: ` + + + `, + image: ` + + + + `, + video: ` + + + `, + music: ` + + + + `, + file: ` + + + `, + folder: ` + + `, + clipboard: ` + + + `, + save: ` + + + + `, + print: ` + + + + `, + eye: ` + + + `, + eyeOff: ` + + + `, + lock: ` + + + `, + unlock: ` + + + `, + shield: ` + + `, + key: ` + + `, + flag: ` + + + `, + bookmark: ` + + `, + tag: ` + + + `, + gift: ` + + + + + + `, + award: ` + + + `, + target: ` + + + + `, + crosshair: ` + + + + + + `, + move: ` + + + + + + + `, + maximize: ` + + `, + minimize: ` + + `, + copy: ` + + + `, + cut: ` + + + + + + `, + paste: ` + + + `, + rotateCw: ` + + + `, + rotateCcw: ` + + + `, + zoomIn: ` + + + + + `, + zoomOut: ` + + + + `, + crop: ` + + + `, + sliders: ` + + + + + + + + + + `, + toggleLeft: ` + + + `, + toggleRight: ` + + + `, + checkCircle: ` + + + `, + xCircle: ` + + + + `, + alertCircle: ` + + + + `, + infoCircle: ` + + + + `, + helpCircle: ` + + + + `, + alertTriangle: ` + + + + `, + checkSquare: ` + + + `, + square: ` + + `, + circle: ` + + `, + triangle: ` + + `, + hexagon: ` + + `, + octagon: ` + + `, + pentagon: ` + + `, + diamond: ` + + `, + }; + + /** + * MetonaToast Locales — 国际化翻译数据 + * @module locales + * @version 0.2.1 + * @description 内置 zh-CN / en-US 完整翻译 + */ + const LOCALES = { + 'zh-CN': { + // === 操作 === + close: '关闭', + loading: '加载中...', + success: '操作成功', + error: '操作失败', + warning: '警告', + info: '信息', + confirm: '确认', + cancel: '取消', + yes: '是', + no: '否', + ok: '确定', + retry: '重试', + undo: '撤销', + redo: '重做', + save: '保存', + delete: '删除', + edit: '编辑', + add: '添加', + remove: '移除', + search: '搜索', + filter: '筛选', + sort: '排序', + refresh: '刷新', + sync: '同步', + upload: '上传', + download: '下载', + share: '分享', + copy: '复制', + cut: '剪切', + paste: '粘贴', + print: '打印', + export: '导出', + import: '导入', + settings: '设置', + help: '帮助', + about: '关于', + version: '版本', + language: '语言', + theme: '主题', + dark: '暗色', + light: '亮色', + auto: '自动', + notifications: '通知', + enable: '启用', + disable: '禁用', + on: '开启', + off: '关闭', + max: '最大', + min: '最小', + expand: '展开', + collapse: '折叠', + fullscreen: '全屏', + exitFullscreen: '退出全屏', + zoomIn: '放大', + zoomOut: '缩小', + reset: '重置', + apply: '应用', + submit: '提交', + send: '发送', + receive: '接收', + connect: '连接', + disconnect: '断开', + start: '开始', + stop: '停止', + pause: '暂停', + resume: '继续', + next: '下一个', + previous: '上一个', + first: '第一个', + last: '最后一个', + back: '返回', + forward: '前进', + home: '首页', + menu: '菜单', + more: '更多', + less: '更少', + show: '显示', + hide: '隐藏', + visible: '可见', + hidden: '隐藏', + // === 状态 === + enabled: '已启用', + disabled: '已禁用', + active: '活跃', + inactive: '非活跃', + online: '在线', + offline: '离线', + connected: '已连接', + disconnected: '已断开', + loaded: '已加载', + saving: '保存中', + saved: '已保存', + deleting: '删除中', + deleted: '已删除', + uploading: '上传中', + uploaded: '已上传', + downloading: '下载中', + downloaded: '已下载', + processing: '处理中', + processed: '已处理', + syncing: '同步中', + synced: '已同步', + sending: '发送中', + sent: '已发送', + receiving: '接收中', + received: '已接收', + connecting: '连接中', + // === 交互 === + question: '问题', + feedback: '反馈', + report: '报告', + bug: '错误', + feature: '功能', + improvement: '改进', + suggestion: '建议', + request: '请求', + response: '响应', + status: '状态', + progress: '进度', + complete: '完成', + incomplete: '未完成', + pending: '待处理', + failed: '失败', + cancelled: '已取消', + timeout: '超时', + expired: '已过期', + invalid: '无效', + valid: '有效', + required: '必填', + optional: '可选', + allowed: '允许', + denied: '拒绝', + approved: '已批准', + rejected: '已拒绝', + accepted: '已接受', + declined: '已拒绝', + confirmed: '已确认', + unconfirmed: '未确认', + verified: '已验证', + unverified: '未验证', + authenticated: '已认证', + unauthenticated: '未认证', + authorized: '已授权', + unauthorized: '未授权', + // === 范围 / 角色 === + public: '公开', + private: '私有', + protected: '受保护', + internal: '内部', + external: '外部', + local: '本地', + remote: '远程', + global: '全局', + system: '系统', + user: '用户', + admin: '管理员', + moderator: '版主', + guest: '访客', + member: '成员', + owner: '所有者', + creator: '创建者', + editor: '编辑者', + viewer: '查看者', + subscriber: '订阅者', + follower: '关注者', + following: '关注中', + friend: '朋友', + contact: '联系人', + // === 组织 === + group: '群组', + team: '团队', + organization: '组织', + company: '公司', + department: '部门', + project: '项目', + task: '任务', + issue: '问题', + ticket: '工单', + message: '消息', + notification: '通知', + alert: '警报', + reminder: '提醒', + event: '事件', + activity: '活动', + log: '日志', + analytics: '分析', + statistics: '统计', + metrics: '指标', + performance: '性能', + security: '安全', + privacy: '隐私', + compliance: '合规', + policy: '政策', + terms: '条款', + conditions: '条件', + agreement: '协议', + contract: '合同', + license: '许可证', + copyright: '版权', + trademark: '商标', + patent: '专利', + tradeSecret: '商业秘密', + confidential: '机密', + sensitive: '敏感', + critical: '关键', + important: '重要', + urgent: '紧急', + high: '高', + medium: '中', + low: '低', + none: '无', + all: '全部', + any: '任何', + some: '一些', + each: '每个', + every: '每个', + both: '两者', + neither: '两者都不', + either: '任一', + other: '其他', + another: '另一个', + this: '这个', + that: '那个', + these: '这些', + those: '那些', + here: '这里', + there: '那里', + where: '哪里', + when: '何时', + why: '为什么', + how: '如何', + what: '什么', + who: '谁', + which: '哪个', + whose: '谁的', + whom: '谁', + }, + 'en-US': { + // === Actions === + close: 'Close', + loading: 'Loading...', + success: 'Success', + error: 'Error', + warning: 'Warning', + info: 'Info', + confirm: 'Confirm', + cancel: 'Cancel', + yes: 'Yes', + no: 'No', + ok: 'OK', + retry: 'Retry', + undo: 'Undo', + redo: 'Redo', + save: 'Save', + delete: 'Delete', + edit: 'Edit', + add: 'Add', + remove: 'Remove', + search: 'Search', + filter: 'Filter', + sort: 'Sort', + refresh: 'Refresh', + sync: 'Sync', + upload: 'Upload', + download: 'Download', + share: 'Share', + copy: 'Copy', + cut: 'Cut', + paste: 'Paste', + print: 'Print', + export: 'Export', + import: 'Import', + settings: 'Settings', + help: 'Help', + about: 'About', + version: 'Version', + language: 'Language', + theme: 'Theme', + dark: 'Dark', + light: 'Light', + auto: 'Auto', + notifications: 'Notifications', + enable: 'Enable', + disable: 'Disable', + on: 'On', + off: 'Off', + max: 'Max', + min: 'Min', + expand: 'Expand', + collapse: 'Collapse', + fullscreen: 'Fullscreen', + exitFullscreen: 'Exit Fullscreen', + zoomIn: 'Zoom In', + zoomOut: 'Zoom Out', + reset: 'Reset', + apply: 'Apply', + submit: 'Submit', + send: 'Send', + receive: 'Receive', + connect: 'Connect', + disconnect: 'Disconnect', + start: 'Start', + stop: 'Stop', + pause: 'Pause', + resume: 'Resume', + next: 'Next', + previous: 'Previous', + first: 'First', + last: 'Last', + back: 'Back', + forward: 'Forward', + home: 'Home', + menu: 'Menu', + more: 'More', + less: 'Less', + show: 'Show', + hide: 'Hide', + visible: 'Visible', + hidden: 'Hidden', + // === Status === + enabled: 'Enabled', + disabled: 'Disabled', + active: 'Active', + inactive: 'Inactive', + online: 'Online', + offline: 'Offline', + connected: 'Connected', + disconnected: 'Disconnected', + loaded: 'Loaded', + saving: 'Saving', + saved: 'Saved', + deleting: 'Deleting', + deleted: 'Deleted', + uploading: 'Uploading', + uploaded: 'Uploaded', + downloading: 'Downloading', + downloaded: 'Downloaded', + processing: 'Processing', + processed: 'Processed', + syncing: 'Syncing', + synced: 'Synced', + sending: 'Sending', + sent: 'Sent', + receiving: 'Receiving', + received: 'Received', + connecting: 'Connecting', + // === Interaction === + question: 'Question', + feedback: 'Feedback', + report: 'Report', + bug: 'Bug', + feature: 'Feature', + improvement: 'Improvement', + suggestion: 'Suggestion', + request: 'Request', + response: 'Response', + status: 'Status', + progress: 'Progress', + complete: 'Complete', + incomplete: 'Incomplete', + pending: 'Pending', + failed: 'Failed', + cancelled: 'Cancelled', + timeout: 'Timeout', + expired: 'Expired', + invalid: 'Invalid', + valid: 'Valid', + required: 'Required', + optional: 'Optional', + allowed: 'Allowed', + denied: 'Denied', + approved: 'Approved', + rejected: 'Rejected', + accepted: 'Accepted', + declined: 'Declined', + confirmed: 'Confirmed', + unconfirmed: 'Unconfirmed', + verified: 'Verified', + unverified: 'Unverified', + authenticated: 'Authenticated', + unauthenticated: 'Unauthenticated', + authorized: 'Authorized', + unauthorized: 'Unauthorized', + // === Scope / Role === + public: 'Public', + private: 'Private', + protected: 'Protected', + internal: 'Internal', + external: 'External', + local: 'Local', + remote: 'Remote', + global: 'Global', + system: 'System', + user: 'User', + admin: 'Admin', + moderator: 'Moderator', + guest: 'Guest', + member: 'Member', + owner: 'Owner', + creator: 'Creator', + editor: 'Editor', + viewer: 'Viewer', + subscriber: 'Subscriber', + follower: 'Follower', + following: 'Following', + friend: 'Friend', + contact: 'Contact', + // === Organization === + group: 'Group', + team: 'Team', + organization: 'Organization', + company: 'Company', + department: 'Department', + project: 'Project', + task: 'Task', + issue: 'Issue', + ticket: 'Ticket', + message: 'Message', + notification: 'Notification', + alert: 'Alert', + reminder: 'Reminder', + event: 'Event', + activity: 'Activity', + log: 'Log', + analytics: 'Analytics', + statistics: 'Statistics', + metrics: 'Metrics', + performance: 'Performance', + security: 'Security', + privacy: 'Privacy', + compliance: 'Compliance', + policy: 'Policy', + terms: 'Terms', + conditions: 'Conditions', + agreement: 'Agreement', + contract: 'Contract', + license: 'License', + copyright: 'Copyright', + trademark: 'Trademark', + patent: 'Patent', + tradeSecret: 'Trade Secret', + confidential: 'Confidential', + sensitive: 'Sensitive', + critical: 'Critical', + important: 'Important', + urgent: 'Urgent', + high: 'High', + medium: 'Medium', + low: 'Low', + none: 'None', + all: 'All', + any: 'Any', + some: 'Some', + each: 'Each', + every: 'Every', + both: 'Both', + neither: 'Neither', + either: 'Either', + other: 'Other', + another: 'Another', + this: 'This', + that: 'That', + these: 'These', + those: 'Those', + here: 'Here', + there: 'There', + where: 'Where', + when: 'When', + why: 'Why', + how: 'How', + what: 'What', + who: 'Who', + which: 'Which', + whose: 'Whose', + whom: 'Whom', + }, + }; + + /** + * MetonaToast Constants — 常量定义 + * @module constants + * @version 0.2.1 + */ + /** + * 默认配置 + */ + const DEFAULTS = Object.freeze({ + position: 'top-right', + duration: 4000, + max: 6, + gap: 12, + offset: 24, + pauseOnHover: true, + closeOnClick: true, + draggable: true, + showProgress: true, + progressDirection: 'horizontal', + icon: true, + closeButton: true, + theme: 'auto', + animation: 'slide', + zIndex: 9999, + width: 360, + className: '', + style: {}, + onShow: null, + onBeforeShow: null, + onClose: null, + onClick: null, + onUpdate: null, + resetTimerOnUpdate: false, + notifyWhenHidden: false, + onError: null, + locale: 'zh-CN', + plugins: [], + }); + /** + * 类型颜色配置 + */ + const TYPE_COLORS = { + success: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + error: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + warning: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + info: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + loading: { fg: '#6366f1', bg: 'rgba(99, 102, 241, 0.1)' }, + default: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + check: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + x: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + alert: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + question: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + star: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + heart: { fg: '#ec4899', bg: 'rgba(236, 72, 153, 0.1)' }, + bell: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + mail: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + settings: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + user: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + home: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + search: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + plus: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + minus: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + edit: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + trash: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + download: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + upload: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + share: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + link: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + external: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + clock: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + calendar: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + map: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + compass: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + globe: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + wifi: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + cloud: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + sun: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + moon: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + zap: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + activity: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + cpu: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + database: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + server: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + terminal: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + code: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + git: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + package: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + layers: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + grid: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + list: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + filter: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + sort: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + refresh: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + sync: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + power: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + battery: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + bluetooth: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + volume: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + mic: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + camera: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + image: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + video: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + music: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + file: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + folder: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + clipboard: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + save: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + print: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + eye: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + eyeOff: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + lock: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + unlock: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + shield: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + key: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + flag: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + bookmark: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + tag: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + gift: { fg: '#ec4899', bg: 'rgba(236, 72, 153, 0.1)' }, + award: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + target: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + crosshair: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + move: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + maximize: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + minimize: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + copy: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + cut: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + paste: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + rotateCw: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + rotateCcw: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + zoomIn: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + zoomOut: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + crop: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + sliders: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + toggleLeft: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + toggleRight: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + checkCircle: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + xCircle: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + alertCircle: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + infoCircle: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + helpCircle: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + alertTriangle: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + checkSquare: { fg: '#10b981', bg: 'rgba(16, 185, 129, 0.1)' }, + square: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + circle: { fg: '#6b7280', bg: 'rgba(107, 114, 128, 0.1)' }, + triangle: { fg: '#f59e0b', bg: 'rgba(245, 158, 11, 0.1)' }, + hexagon: { fg: '#3b82f6', bg: 'rgba(59, 130, 246, 0.1)' }, + octagon: { fg: '#ef4444', bg: 'rgba(239, 68, 68, 0.1)' }, + pentagon: { fg: '#8b5cf6', bg: 'rgba(139, 92, 246, 0.1)' }, + diamond: { fg: '#ec4899', bg: 'rgba(236, 72, 153, 0.1)' }, + }; + /** + * 动画配置 + */ + const ANIMATIONS = { + slide: { + enter: { transform: 'translateX(80px)', opacity: '0' }, + leave: { transform: 'translateX(120%)', opacity: '0' }, + duration: 400, + easing: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + }, + fade: { + enter: { opacity: '0', filter: 'blur(3px)' }, + leave: { opacity: '0', filter: 'blur(3px)' }, + duration: 500, + easing: 'ease', + }, + scale: { + enter: { transform: 'scale(0.55)', opacity: '0' }, + leave: { transform: 'scale(0.55)', opacity: '0' }, + duration: 450, + easing: 'cubic-bezier(0.34, 1.56, 0.64, 1)', + }, + bounce: { + enter: { transform: 'translateY(-80px)', opacity: '0' }, + leave: { transform: 'translateY(20px)', opacity: '0' }, + duration: 650, + easing: 'ease', + }, + flip: { + enter: { transform: 'perspective(500px) rotateX(-90deg)', opacity: '0' }, + leave: { transform: 'perspective(500px) rotateX(90deg)', opacity: '0' }, + duration: 500, + easing: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + }, + rotate: { + enter: { transform: 'rotate(-25deg) scale(0.6)', opacity: '0' }, + leave: { transform: 'rotate(25deg) scale(0.6)', opacity: '0' }, + duration: 500, + easing: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + }, + zoom: { + enter: { transform: 'scale(0.1)', opacity: '0' }, + leave: { transform: 'scale(0.1)', opacity: '0' }, + duration: 500, + easing: 'cubic-bezier(0.34, 1.56, 0.64, 1)', + }, + slideUp: { + enter: { transform: 'translateY(60px)', opacity: '0' }, + leave: { transform: 'translateY(-120%)', opacity: '0' }, + duration: 400, + easing: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + }, + slideDown: { + enter: { transform: 'translateY(-60px)', opacity: '0' }, + leave: { transform: 'translateY(120%)', opacity: '0' }, + duration: 400, + easing: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + }, + slideLeft: { + enter: { transform: 'translateX(-90px)', opacity: '0' }, + leave: { transform: 'translateX(120%)', opacity: '0' }, + duration: 400, + easing: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + }, + slideRight: { + enter: { transform: 'translateX(90px)', opacity: '0' }, + leave: { transform: 'translateX(-120%)', opacity: '0' }, + duration: 400, + easing: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + }, + }; + /** + * 主题配置 + */ + const THEMES = { + light: { + bg: 'rgba(255, 255, 255, 0.96)', + text: '#1f2937', + border: 'rgba(0, 0, 0, 0.06)', + shadow: '0 10px 36px -10px rgba(0, 0, 0, 0.18), 0 4px 14px -4px rgba(0, 0, 0, 0.08)', + hoverShadow: '0 14px 48px -10px rgba(0, 0, 0, 0.22), 0 6px 18px -4px rgba(0, 0, 0, 0.10)', + progressBg: 'rgba(0, 0, 0, 0.06)', + closeHoverBg: 'rgba(0, 0, 0, 0.06)', + }, + dark: { + bg: 'rgba(28, 32, 40, 0.94)', + text: '#e6e8eb', + border: 'rgba(255, 255, 255, 0.08)', + shadow: '0 10px 36px -10px rgba(0, 0, 0, 0.6), 0 4px 14px -4px rgba(0, 0, 0, 0.4)', + hoverShadow: '0 14px 48px -8px rgba(0, 0, 0, 0.6), 0 6px 18px -4px rgba(0, 0, 0, 0.4)', + progressBg: 'rgba(255, 255, 255, 0.08)', + closeHoverBg: 'rgba(255, 255, 255, 0.08)', + }, + auto: { + bg: 'rgba(255, 255, 255, 0.96)', + text: '#1f2937', + border: 'rgba(0, 0, 0, 0.06)', + shadow: '0 10px 36px -10px rgba(0, 0, 0, 0.18), 0 4px 14px -4px rgba(0, 0, 0, 0.08)', + hoverShadow: '0 14px 48px -10px rgba(0, 0, 0, 0.22), 0 6px 18px -4px rgba(0, 0, 0, 0.10)', + progressBg: 'rgba(0, 0, 0, 0.06)', + closeHoverBg: 'rgba(0, 0, 0, 0.06)', + }, + warm: { + bg: 'rgba(255, 251, 235, 0.96)', + text: '#78350f', + border: 'rgba(245, 158, 11, 0.2)', + shadow: '0 10px 36px -10px rgba(245, 158, 11, 0.18), 0 4px 14px -4px rgba(245, 158, 11, 0.08)', + hoverShadow: '0 14px 48px -10px rgba(245, 158, 11, 0.22), 0 6px 18px -4px rgba(245, 158, 11, 0.10)', + progressBg: 'rgba(245, 158, 11, 0.1)', + closeHoverBg: 'rgba(245, 158, 11, 0.1)', + }, + }; + + /** + * MetonaToast Styles — 样式管理 + * @module styles + * @version 0.2.1 + */ + // 样式缓存 + let styleElement = null; + /** + * 生成CSS样式 + */ + const generateCSS = () => { + return ` + .met-container { + pointer-events: none; + display: flex; + flex-direction: column; + gap: 12px; + box-sizing: border-box; + padding: 24px; + max-width: 100vw; + position: fixed; + z-index: 9999; + } + + .met-container.top-left { top: 0; left: 0; align-items: flex-start; } + .met-container.top-center { top: 0; left: 0; right: 0; align-items: center; } + .met-container.top-right { top: 0; right: 0; align-items: flex-end; } + .met-container.bottom-left { bottom: 0; left: 0; align-items: flex-start; } + .met-container.bottom-center{ bottom: 0; left: 0; right: 0; align-items: center; } + .met-container.bottom-right { bottom: 0; right: 0; align-items: flex-end; } + + .met-toast { + position: relative; + display: flex; + align-items: flex-start; + gap: 12px; + padding: 14px 16px; + border-radius: 12px; + box-sizing: border-box; + backdrop-filter: blur(14px) saturate(180%); + -webkit-backdrop-filter: blur(14px) saturate(180%); + font: 14px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; + user-select: none; + -webkit-user-select: none; + transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), + box-shadow 0.25s ease, + opacity 0.25s ease; + will-change: transform, opacity; + flex-shrink: 0; + pointer-events: auto; + min-width: 240px; + max-width: calc(100vw - 48px); + width: 360px; + border: 1px solid var(--met-border, rgba(0,0,0,0.06)); + background: var(--met-bg, rgba(255,255,255,0.96)); + color: var(--met-text, #1f2937); + box-shadow: var(--met-shadow, 0 10px 36px -10px rgba(0,0,0,0.18), 0 4px 14px -4px rgba(0,0,0,0.08)); + transform: translateZ(0); + -webkit-transform: translateZ(0); + backface-visibility: hidden; + -webkit-backface-visibility: hidden; + perspective: 1000; + } + + .met-toast:hover { + box-shadow: var(--met-hover-shadow, 0 14px 48px -10px rgba(0,0,0,0.22), 0 6px 18px -4px rgba(0,0,0,0.10)) !important; + } + + .met-toast.met-clickable { + cursor: pointer; + } + + .met-icon { + flex-shrink: 0; + display: flex; + align-items: center; + justify-content: center; + width: 24px; + height: 24px; + margin-top: 1px; + } + + .met-content { + flex: 1; + min-width: 0; + word-wrap: break-word; + overflow-wrap: break-word; + } + + .met-title { + font-weight: 600; + font-size: 14px; + letter-spacing: 0.1px; + } + + .met-message { + font-size: 13px; + opacity: 0.85; + margin-top: 2px; + } + + .met-close { + flex-shrink: 0; + background: transparent; + border: 0; + padding: 4px; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + border-radius: 6px; + transition: background 0.2s, color 0.2s; + line-height: 0; + color: inherit; + opacity: 0.5; + } + + .met-close:hover { + opacity: 1; + background: var(--met-close-hover-bg, rgba(0,0,0,0.06)); + } + + .met-progress { + position: absolute; + left: 0; right: 0; bottom: 0; + height: 3px; + overflow: hidden; + background: var(--met-progress-bg, rgba(0,0,0,0.06)); + border-radius: 0 0 12px 12px; + } + + .met-progress-v { + position: absolute; + left: 0; top: 0; bottom: 0; + width: 3px; + overflow: hidden; + background: var(--met-progress-bg, rgba(0,0,0,0.06)); + border-radius: 12px 0 0 12px; + } + + .met-bar { + position: absolute; + left: 0; top: 0; + height: 100%; width: 100%; + transform-origin: left; + transform: scaleX(1); + } + + .met-bar-v { + position: absolute; + left: 0; bottom: 0; + width: 100%; height: 100%; + transform-origin: bottom; + transform: scaleY(1); + } + + .met-side { + position: absolute; + left: 0; top: 0; bottom: 0; + width: 4px; + border-radius: 12px 0 0 12px; + } + + .met-spin { + animation: met-rot 1s linear infinite; + transform-origin: 50% 50%; + } + + .met-toast.met-leaving { + pointer-events: none; + z-index: 1; + } + + @keyframes met-rot { + to { transform: rotate(360deg); } + } + + .met-anim-slide.met-toast, + .met-anim-fade.met-toast, + .met-anim-scale.met-toast, + .met-anim-bounce.met-toast, + .met-anim-flip.met-toast, + .met-anim-rotate.met-toast, + .met-anim-zoom.met-toast, + .met-anim-slideUp.met-toast, + .met-anim-slideDown.met-toast, + .met-anim-slideLeft.met-toast, + .met-anim-slideRight.met-toast { + opacity: 0; + } + + @keyframes met-slide-in { + 0% { transform: translateX(80px); opacity: 0; } + 65% { transform: translateX(-6px); opacity: 1; } + 100% { transform: translateX(0); opacity: 1; } + } + @keyframes met-fade-in { + 0% { opacity: 0; filter: blur(3px); } + 100% { opacity: 1; filter: blur(0); } + } + @keyframes met-scale-in { + 0% { transform: scale(0.55); opacity: 0; } + 65% { transform: scale(1.07); opacity: 1; } + 100% { transform: scale(1); opacity: 1; } + } + @keyframes met-bounce-in { + 0% { transform: translateY(-80px); opacity: 0; animation-timing-function: ease-in; } + 45% { transform: translateY(14px); opacity: 1; animation-timing-function: ease-out; } + 65% { transform: translateY(-12px); animation-timing-function: ease-in; } + 82% { transform: translateY(4px); animation-timing-function: ease-out; } + 100% { transform: translateY(0); opacity: 1; } + } + @keyframes met-flip-in { + 0% { transform: perspective(500px) rotateX(-90deg); opacity: 0; } + 60% { transform: perspective(500px) rotateX(8deg); opacity: 1; } + 85% { transform: perspective(500px) rotateX(-2deg); } + 100% { transform: perspective(500px) rotateX(0); opacity: 1; } + } + @keyframes met-rotate-in { + 0% { transform: rotate(-25deg) scale(0.6); opacity: 0; } + 60% { transform: rotate(4deg) scale(1.05); opacity: 1; } + 85% { transform: rotate(-1deg) scale(0.98); } + 100% { transform: rotate(0) scale(1); opacity: 1; } + } + @keyframes met-zoom-in { + 0% { transform: scale(0.1); opacity: 0; } + 50% { transform: scale(1.12); opacity: 1; } + 75% { transform: scale(0.94); } + 100% { transform: scale(1); opacity: 1; } + } + @keyframes met-slideUp-in { + 0% { transform: translateY(60px); opacity: 0; } + 70% { transform: translateY(-6px); opacity: 1; } + 100% { transform: translateY(0); opacity: 1; } + } + @keyframes met-slideDown-in { + 0% { transform: translateY(-60px); opacity: 0; } + 70% { transform: translateY(6px); opacity: 1; } + 100% { transform: translateY(0); opacity: 1; } + } + @keyframes met-slideLeft-in { + 0% { transform: translateX(-90px); opacity: 0; } + 65% { transform: translateX(6px); opacity: 1; } + 100% { transform: translateX(0); opacity: 1; } + } + @keyframes met-slideRight-in { + 0% { transform: translateX(90px); opacity: 0; } + 65% { transform: translateX(-6px); opacity: 1; } + 100% { transform: translateX(0); opacity: 1; } + } + + .met-anim-slide.met-toast.met-show { animation: met-slide-in 0.40s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; } + .met-anim-fade.met-toast.met-show { animation: met-fade-in 0.50s ease forwards; } + .met-anim-scale.met-toast.met-show { animation: met-scale-in 0.45s cubic-bezier(0.34, 1.56, 0.64, 1) forwards; } + .met-anim-bounce.met-toast.met-show { animation: met-bounce-in 0.65s ease forwards; } + .met-anim-flip.met-toast.met-show { animation: met-flip-in 0.50s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; } + .met-anim-rotate.met-toast.met-show { animation: met-rotate-in 0.50s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; } + .met-anim-zoom.met-toast.met-show { animation: met-zoom-in 0.50s cubic-bezier(0.34, 1.56, 0.64, 1) forwards; } + .met-anim-slideUp.met-toast.met-show { animation: met-slideUp-in 0.40s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; } + .met-anim-slideDown.met-toast.met-show { animation: met-slideDown-in 0.40s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; } + .met-anim-slideLeft.met-toast.met-show { animation: met-slideLeft-in 0.40s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; } + .met-anim-slideRight.met-toast.met-show { animation: met-slideRight-in 0.40s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; } + + @media (max-width: 480px) { + .met-container { padding: 12px !important; } + .met-toast { width: 100% !important; min-width: 0 !important; } + } + + @media (max-width: 768px) { + .met-toast { font-size: 13px; } + .met-title { font-size: 13px; } + .met-message { font-size: 12px; } + } + + @media (min-width: 1200px) { + .met-toast { width: 400px; } + } + + @media (min-width: 1920px) { + .met-toast { width: 440px; } + } + + @media (max-width: 320px) { + .met-toast { width: 100%; min-width: 0; padding: 12px 14px; } + .met-container { padding: 8px; } + } + + @media (orientation: landscape) and (max-height: 500px) { + .met-container { padding: 12px 24px; } + .met-toast { min-height: 44px; padding: 10px 14px; } + } + + @media (orientation: portrait) and (max-width: 500px) { + .met-container { padding: 12px; } + .met-toast { width: 100%; min-width: 0; } + } + + @media (prefers-reduced-motion: reduce) { + .met-toast { transition: opacity 0.15s !important; } + .met-toast.met-show { animation: none !important; opacity: 1 !important; } + .met-spin { animation-duration: 2.5s !important; } + } + + @media (forced-colors: active) { + .met-toast { border: 2px solid ButtonText; } + .met-close { border: 1px solid ButtonText; } + } + + @media (prefers-contrast: high) { + .met-toast { border-width: 3px; border-style: solid; } + .met-close { border: 2px solid currentColor; border-radius: 4px; } + } + + .met-toast:focus-visible { + outline: 2px solid #3b82f6; + outline-offset: 2px; + } + .met-close:focus-visible { + outline: 2px solid #3b82f6; + outline-offset: 2px; + } + + @media (hover: none) and (pointer: coarse) { + .met-toast:hover { box-shadow: inherit; } + .met-toast { min-height: 48px; } + .met-close { min-width: 48px; min-height: 48px; } + } + + @media print { + .met-container { display: none !important; } + .met-toast { display: none !important; } + } + + :fullscreen .met-container, + :picture-in-picture .met-container { + z-index: 2147483647; + } + + @supports (padding: max(0px)) { + .met-container { + padding: max(24px, env(safe-area-inset-top)) + max(24px, env(safe-area-inset-right)) + max(24px, env(safe-area-inset-bottom)) + max(24px, env(safe-area-inset-left)); + } + } + + .met-toast:active { + transform: scale(0.98); + } + + .met-toast.met-success { border-left: 4px solid #10b981; } + .met-toast.met-error { border-left: 4px solid #ef4444; } + .met-toast.met-warning { border-left: 4px solid #f59e0b; } + .met-toast.met-info { border-left: 4px solid #3b82f6; } + .met-toast.met-loading { border-left: 4px solid #6366f1; } + + .met-bar, .met-bar-v { + transition: transform 0.1s linear; + } + + .met-container::-webkit-scrollbar { width: 6px; height: 6px; } + .met-container::-webkit-scrollbar-track { background: transparent; } + .met-container::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.2); border-radius: 3px; } + .met-container::-webkit-scrollbar-thumb:hover { background: rgba(0,0,0,0.3); } + + .met-toast.met-theme-dark { + background: rgba(28, 32, 40, 0.94); + color: #e6e8eb; + border-color: rgba(255, 255, 255, 0.08); + box-shadow: 0 10px 36px -10px rgba(0, 0, 0, 0.6), 0 4px 14px -4px rgba(0, 0, 0, 0.4); + } + .met-toast.met-theme-dark:hover { + box-shadow: 0 14px 48px -8px rgba(0, 0, 0, 0.6), 0 6px 18px -4px rgba(0, 0, 0, 0.4) !important; + } + .met-toast.met-theme-dark .met-close:hover { + background: rgba(255, 255, 255, 0.08); + } + .met-toast.met-theme-dark .met-progress, + .met-toast.met-theme-dark .met-progress-v { + background: rgba(255, 255, 255, 0.08); + } + + .met-toast.met-theme-light { + background: rgba(255, 255, 255, 0.96); + color: #1f2937; + border-color: rgba(0, 0, 0, 0.06); + box-shadow: 0 10px 36px -10px rgba(0, 0, 0, 0.18), 0 4px 14px -4px rgba(0, 0, 0, 0.08); + } + .met-toast.met-theme-light:hover { + box-shadow: 0 14px 48px -10px rgba(0, 0, 0, 0.22), 0 6px 18px -4px rgba(0, 0, 0, 0.10) !important; + } + .met-toast.met-theme-light .met-close:hover { + background: rgba(0, 0, 0, 0.06); + } + .met-toast.met-theme-light .met-progress, + .met-toast.met-theme-light .met-progress-v { + background: rgba(0, 0, 0, 0.06); + } + + .met-toast[data-theme] { + --met-bg: var(--met-theme-bg); + --met-text: var(--met-theme-text); + --met-border: var(--met-theme-border); + --met-shadow: var(--met-theme-shadow); + } + + @media (prefers-color-scheme: dark) { + .met-theme-auto .met-toast { + background: rgba(28, 32, 40, 0.94); + color: #e6e8eb; + border-color: rgba(255, 255, 255, 0.08); + box-shadow: 0 10px 36px -10px rgba(0, 0, 0, 0.6), 0 4px 14px -4px rgba(0, 0, 0, 0.4); + } + .met-theme-auto .met-toast:hover { + box-shadow: 0 14px 48px -8px rgba(0, 0, 0, 0.6), 0 6px 18px -4px rgba(0, 0, 0, 0.4) !important; + } + .met-theme-auto .met-close:hover { background: rgba(255, 255, 255, 0.08); } + .met-theme-auto .met-progress, + .met-theme-auto .met-progress-v { background: rgba(255, 255, 255, 0.08); } + } + + @media (prefers-color-scheme: light) { + .met-theme-auto .met-toast { + background: rgba(255, 255, 255, 0.96); + color: #1f2937; + border-color: rgba(0, 0, 0, 0.06); + box-shadow: 0 10px 36px -10px rgba(0, 0, 0, 0.18), 0 4px 14px -4px rgba(0, 0, 0, 0.08); + } + .met-theme-auto .met-toast:hover { + box-shadow: 0 14px 48px -10px rgba(0, 0, 0, 0.22), 0 6px 18px -4px rgba(0, 0, 0, 0.10) !important; + } + .met-theme-auto .met-close:hover { background: rgba(0, 0, 0, 0.06); } + .met-theme-auto .met-progress, + .met-theme-auto .met-progress-v { background: rgba(0, 0, 0, 0.06); } + } + `; + }; + /** + * 注入样式 + */ + const injectStyles = () => { + if (typeof document === 'undefined') + return; + if (styleElement && document.getElementById('metona-toast-styles')) { + return; + } + const css = generateCSS(); + styleElement = document.createElement('style'); + styleElement.id = 'metona-toast-styles'; + styleElement.textContent = css.replace(/\s+/g, ' '); + document.head.appendChild(styleElement); + }; + + /** + * MetonaToast Themes — 主题管理 + * @module themes + * @version 0.2.1 + */ + // 当前主题状态 + let currentTheme = 'auto'; + const themeListeners = new Set(); + let systemThemeMediaQuery = null; + let systemThemeListener = null; + /** + * 获取系统主题 + */ + const getSystemTheme = () => { + if (typeof window === 'undefined') + return 'light'; + return prefersDark() ? 'dark' : 'light'; + }; + /** + * 获取主题(别名) + */ + const getTheme = (theme) => { + return resolveTheme(theme); + }; + /** + * 解析主题 — 'auto' 始终按系统主题检测,不依赖当前手动选择的主题 + */ + const resolveTheme = (theme) => { + if (theme === 'auto') { + return getSystemTheme(); + } + return theme; + }; + /** + * 获取主题配置 + */ + const getThemeConfig = (theme) => { + const resolved = resolveTheme(theme); + return THEMES[resolved] || THEMES.light; + }; + /** + * 应用主题 + */ + const applyTheme = (theme) => { + currentTheme = theme; + const resolved = resolveTheme(theme); + if (typeof document !== 'undefined') { + document.documentElement.setAttribute('data-met-theme', resolved); + document.documentElement.classList.remove('met-theme-light', 'met-theme-dark', 'met-theme-auto'); + document.documentElement.classList.add(`met-theme-${resolved}`); + const config = getThemeConfig(theme); + setThemeVariables(config); + } + notifyThemeListeners(theme, resolved); + }; + /** + * 设置主题CSS变量 + */ + const setThemeVariables = (config) => { + if (typeof document === 'undefined') + return; + const root = document.documentElement; + root.style.setProperty('--met-bg', config.bg); + root.style.setProperty('--met-text', config.text); + root.style.setProperty('--met-border', config.border); + root.style.setProperty('--met-shadow', config.shadow); + root.style.setProperty('--met-hover-shadow', config.hoverShadow); + root.style.setProperty('--met-progress-bg', config.progressBg); + root.style.setProperty('--met-close-hover-bg', config.closeHoverBg); + root.style.setProperty('--met-success', '#10b981'); + root.style.setProperty('--met-error', '#ef4444'); + root.style.setProperty('--met-warning', '#f59e0b'); + root.style.setProperty('--met-info', '#3b82f6'); + root.style.setProperty('--met-loading', '#6366f1'); + }; + /** + * 获取当前主题 + */ + const getCurrentTheme = () => { + return currentTheme; + }; + /** + * 获取解析后的主题 + */ + const getResolvedTheme = () => { + return resolveTheme(currentTheme); + }; + /** + * 切换主题 + */ + const switchTheme = (theme) => { + applyTheme(theme); + saveTheme(theme); + }; + /** + * 切换亮色/暗色主题 + */ + const toggleTheme = () => { + const resolved = getResolvedTheme(); + const newTheme = resolved === 'dark' ? 'light' : 'dark'; + switchTheme(newTheme); + }; + /** + * 重置为自动主题 + */ + const resetToAuto = () => { + switchTheme('auto'); + }; + /** + * 保存主题到本地存储 + */ + const saveTheme = (theme) => { + if (typeof localStorage !== 'undefined') { + try { + localStorage.setItem('metona-toast-theme', theme); + } + catch (e) { + console.warn('Failed to save theme:', e); + } + } + }; + /** + * 从本地存储加载主题 + */ + const loadTheme = () => { + if (typeof localStorage !== 'undefined') { + try { + return localStorage.getItem('metona-toast-theme') || 'auto'; + } + catch (e) { + console.warn('Failed to load theme:', e); + } + } + return 'auto'; + }; + /** + * 初始化主题系统 + */ + const initTheme = () => { + const savedTheme = loadTheme(); + applyTheme(savedTheme); + watchSystemTheme(); + }; + /** + * 监听系统主题变化 + */ + const watchSystemTheme = () => { + if (typeof window === 'undefined' || !window.matchMedia) + return; + if (systemThemeMediaQuery && systemThemeListener) { + systemThemeMediaQuery.removeEventListener('change', systemThemeListener); + } + systemThemeMediaQuery = window.matchMedia('(prefers-color-scheme: dark)'); + systemThemeListener = () => { + if (currentTheme === 'auto') { + applyTheme('auto'); + } + }; + systemThemeMediaQuery.addEventListener('change', systemThemeListener); + }; + /** + * 停止监听系统主题变化 + */ + const unwatchSystemTheme = () => { + if (systemThemeMediaQuery && systemThemeListener) { + systemThemeMediaQuery.removeEventListener('change', systemThemeListener); + systemThemeMediaQuery = null; + systemThemeListener = null; + } + }; + /** + * 添加主题监听器 + */ + const addThemeListener = (listener) => { + themeListeners.add(listener); + return () => { + themeListeners.delete(listener); + }; + }; + /** + * 移除主题监听器 + */ + const removeThemeListener = (listener) => { + themeListeners.delete(listener); + }; + /** + * 通知主题监听器 + */ + const notifyThemeListeners = (theme, resolved) => { + themeListeners.forEach((listener) => { + try { + listener(theme, resolved); + } + catch (e) { + console.error('Theme listener error:', e); + } + }); + }; + /** + * 清除所有主题监听器 + */ + const clearThemeListeners = () => { + themeListeners.clear(); + }; + /** + * 注册自定义主题 + */ + const registerTheme = (name, config) => { + THEMES[name] = { + bg: config.bg || THEMES.light.bg, + text: config.text || THEMES.light.text, + border: config.border || THEMES.light.border, + shadow: config.shadow || THEMES.light.shadow, + hoverShadow: config.hoverShadow || THEMES.light.hoverShadow, + progressBg: config.progressBg || THEMES.light.progressBg, + closeHoverBg: config.closeHoverBg || THEMES.light.closeHoverBg, + }; + }; + /** + * 注销自定义主题 + */ + const unregisterTheme = (name) => { + if (name === 'light' || name === 'dark' || name === 'auto') { + console.warn('Cannot unregister built-in theme:', name); + return; + } + delete THEMES[name]; + }; + /** + * 获取所有主题 + */ + const getAllThemes = () => { + return { ...THEMES }; + }; + /** + * 获取主题名称列表 + */ + const getThemeNames = () => { + return Object.keys(THEMES); + }; + /** + * 检查主题是否存在 + */ + const hasTheme = (name) => { + return name in THEMES; + }; + /** + * 获取主题预览 + */ + const getThemePreview = (theme) => { + const config = getThemeConfig(theme); + const resolved = resolveTheme(theme); + return { + name: theme, + resolved, + colors: { + background: config.bg, + text: config.text, + border: config.border, + }, + isDark: resolved === 'dark', + isLight: resolved === 'light', + isAuto: theme === 'auto', + }; + }; + /** + * 生成主题CSS + */ + const generateThemeCSS = (theme) => { + const config = getThemeConfig(theme); + const resolved = resolveTheme(theme); + return ` + .met-theme-${resolved} { + --met-bg: ${config.bg}; + --met-text: ${config.text}; + --met-border: ${config.border}; + --met-shadow: ${config.shadow}; + --met-hover-shadow: ${config.hoverShadow}; + --met-progress-bg: ${config.progressBg}; + --met-close-hover-bg: ${config.closeHoverBg}; + } + `; + }; + /** + * 应用主题CSS + */ + const applyThemeCSS = (theme) => { + if (typeof document === 'undefined') + return; + const css = generateThemeCSS(theme); + const styleId = 'metona-toast-theme-css'; + const oldStyle = document.getElementById(styleId); + if (oldStyle) { + oldStyle.remove(); + } + const style = document.createElement('style'); + style.id = styleId; + style.textContent = css; + document.head.appendChild(style); + }; + /** + * 移除主题CSS + */ + const removeThemeCSS = () => { + if (typeof document === 'undefined') + return; + const styleId = 'metona-toast-theme-css'; + const style = document.getElementById(styleId); + if (style) { + style.remove(); + } + }; + /** + * 主题工具 — 代理层 + */ + const themeUtils = { + getSystemTheme, + resolveTheme, + getThemeConfig, + applyTheme, + getCurrentTheme, + getResolvedTheme, + switchTheme, + toggleTheme, + resetToAuto, + initTheme, + watchSystemTheme, + unwatchSystemTheme, + addThemeListener, + removeThemeListener, + clearThemeListeners, + registerTheme, + unregisterTheme, + getAllThemes, + getThemeNames, + hasTheme, + getThemePreview, + generateThemeCSS, + applyThemeCSS, + removeThemeCSS, + saveTheme, + loadTheme, + }; + + /** + * MetonaToast i18n — 国际化管理 + * @module i18n + * @version 0.2.1 + */ + // 当前语言状态 + let currentLocale = 'zh-CN'; + const localeListeners = new Set(); + let fallbackLocale = 'zh-CN'; + /** + * 获取当前语言 + */ + const getCurrentLocale = () => { + return currentLocale; + }; + /** + * 设置当前语言 + */ + const setCurrentLocale = (locale) => { + if (!LOCALES[locale]) { + console.warn(`Locale "${locale}" not found, falling back to "${fallbackLocale}"`); + locale = fallbackLocale; + } + currentLocale = locale; + notifyLocaleListeners(locale); + saveLocale(locale); + }; + /** + * 获取回退语言 + */ + const getFallbackLocale = () => { + return fallbackLocale; + }; + /** + * 设置回退语言 + */ + const setFallbackLocale = (locale) => { + if (!LOCALES[locale]) { + console.warn(`Fallback locale "${locale}" not found`); + return; + } + fallbackLocale = locale; + }; + /** + * 翻译函数 + */ + const t = (key, params = {}) => { + const currentTranslation = getTranslation(currentLocale, key); + if (currentTranslation !== undefined) { + return interpolate(currentTranslation, params); + } + if (currentLocale !== fallbackLocale) { + const fallbackTranslation = getTranslation(fallbackLocale, key); + if (fallbackTranslation !== undefined) { + return interpolate(fallbackTranslation, params); + } + } + console.warn(`Translation missing for key "${key}" in locale "${currentLocale}"`); + return key; + }; + /** + * 获取翻译 + */ + const getTranslation = (locale, key) => { + const localeData = LOCALES[locale]; + if (!localeData) + return undefined; + const keys = key.split('.'); + let result = localeData; + for (const k of keys) { + if (result && typeof result === 'object' && k in result) { + result = result[k]; + } + else { + return undefined; + } + } + return typeof result === 'string' ? result : undefined; + }; + /** + * 插值函数 + */ + const interpolate = (str, params) => { + return str.replace(/\{(\w+)\}/g, (_match, key) => { + return params[key] !== undefined ? String(params[key]) : _match; + }); + }; + /** + * 检查翻译是否存在 + */ + const hasTranslation = (key) => { + return getTranslation(currentLocale, key) !== undefined || + getTranslation(fallbackLocale, key) !== undefined; + }; + /** + * 获取所有翻译 + */ + const getTranslations = (locale) => { + return LOCALES[locale] || {}; + }; + /** + * 添加翻译 + */ + const addTranslations = (locale, translations) => { + if (!LOCALES[locale]) { + LOCALES[locale] = {}; + } + deepMerge(LOCALES[locale], translations); + }; + /** + * 深度合并对象 + */ + const deepMerge = (target, source) => { + for (const key in source) { + if (source[key] instanceof Object && key in target && target[key] instanceof Object) { + deepMerge(target[key], source[key]); + } + else { + target[key] = source[key]; + } + } + return target; + }; + /** + * 移除翻译 + */ + const removeTranslation = (locale, key) => { + const localeData = LOCALES[locale]; + if (!localeData) + return; + const keys = key.split('.'); + let current = localeData; + for (let i = 0; i < keys.length - 1; i++) { + if (current[keys[i]] && typeof current[keys[i]] === 'object') { + current = current[keys[i]]; + } + else { + return; + } + } + delete current[keys[keys.length - 1]]; + }; + /** + * 清除翻译 + */ + const clearTranslations = (locale) => { + if (LOCALES[locale]) { + LOCALES[locale] = {}; + } + }; + /** + * 获取支持的语言列表 + */ + const getSupportedLocales = () => { + return Object.keys(LOCALES); + }; + /** + * 检查语言是否支持 + */ + const isLocaleSupported = (locale) => { + return locale in LOCALES; + }; + /** + * 获取语言名称 + */ + const getLocaleName = (locale) => { + const names = { + 'zh-CN': '简体中文', + 'zh-TW': '繁體中文', + 'en-US': 'English (US)', + 'en-GB': 'English (UK)', + 'ja': '日本語', + 'ko': '한국어', + 'fr': 'Français', + 'de': 'Deutsch', + 'es': 'Español', + 'pt': 'Português', + 'ru': 'Русский', + 'ar': 'العربية', + 'hi': 'हिन्दी', + 'th': 'ไทย', + 'vi': 'Tiếng Việt', + 'id': 'Bahasa Indonesia', + 'ms': 'Bahasa Melayu', + 'tr': 'Türkçe', + 'it': 'Italiano', + 'nl': 'Nederlands', + 'pl': 'Polski', + 'uk': 'Українська', + 'cs': 'Čeština', + 'sv': 'Svenska', + 'da': 'Dansk', + 'fi': 'Suomi', + 'nb': 'Norsk', + 'el': 'Ελληνικά', + 'he': 'עברית', + 'hu': 'Magyar', + 'ro': 'Română', + 'bg': 'Български', + 'hr': 'Hrvatski', + 'sk': 'Slovenčina', + 'sl': 'Slovenščina', + 'et': 'Eesti', + 'lv': 'Latviešu', + 'lt': 'Lietuvių', + 'ca': 'Català', + 'gl': 'Galego', + 'eu': 'Euskara', + 'cy': 'Cymraeg', + 'ga': 'Gaeilge', + 'mt': 'Malti', + 'is': 'Íslenska', + 'mk': 'Македонски', + 'sq': 'Shqip', + 'sr': 'Српски', + 'bs': 'Bosanski', + 'me': 'Crnogorski', + 'ka': 'ქართული', + 'hy': 'Հայերեն', + 'az': 'Azərbaycan', + 'uz': "O'zbek", + 'kk': 'Қазақ', + 'ky': 'Кыргыз', + 'tg': 'Тоҷикӣ', + 'tk': 'Türkmen', + 'mn': 'Монгол', + 'ne': 'नेपाली', + 'si': 'සිංහල', + 'my': 'မြန်မာ', + 'km': 'ខ្មែរ', + 'lo': 'ລາວ', + 'am': 'አማርኛ', + 'sw': 'Kiswahili', + 'yo': 'Yorùbá', + 'ig': 'Igbo', + 'ha': 'Hausa', + 'zu': 'isiZulu', + 'af': 'Afrikaans', + 'xh': 'isiXhosa', + 'st': 'Sesotho', + 'tn': 'Setswana', + 'ts': 'Xitsonga', + 'ss': 'siSwati', + 've': 'Tshivenda', + 'nr': 'isiNdebele', + }; + return names[locale] || locale; + }; + /** + * 获取语言方向 + */ + const getLocaleDirection = (locale) => { + const rtlLocales = ['ar', 'he', 'fa', 'ur', 'yi', 'ps', 'sd', 'ug']; + return rtlLocales.includes(locale) ? 'rtl' : 'ltr'; + }; + /** + * 获取语言信息 + */ + const getLocaleInfo = (locale) => { + return { + code: locale, + name: getLocaleName(locale), + direction: getLocaleDirection(locale), + isSupported: isLocaleSupported(locale), + isCurrent: locale === currentLocale, + isFallback: locale === fallbackLocale, + }; + }; + /** + * 获取所有语言信息 + */ + const getAllLocaleInfo = () => { + return getSupportedLocales().map(getLocaleInfo); + }; + /** + * 保存语言到本地存储 + */ + const saveLocale = (locale) => { + if (typeof localStorage !== 'undefined') { + try { + localStorage.setItem('metona-toast-locale', locale); + } + catch (e) { + console.warn('Failed to save locale:', e); + } + } + }; + /** + * 从本地存储加载语言 + */ + const loadLocale = () => { + if (typeof localStorage !== 'undefined') { + try { + return localStorage.getItem('metona-toast-locale') || getDefaultLocale(); + } + catch (e) { + console.warn('Failed to load locale:', e); + } + } + return getDefaultLocale(); + }; + /** + * 获取默认语言 + */ + const getDefaultLocale = () => { + if (typeof navigator !== 'undefined') { + const browserLocale = navigator.language || navigator.userLanguage; + if (browserLocale && isLocaleSupported(browserLocale)) { + return browserLocale; + } + const shortLocale = browserLocale?.split('-')[0]; + if (shortLocale && isLocaleSupported(shortLocale)) { + return shortLocale; + } + } + return fallbackLocale; + }; + /** + * 初始化国际化系统 + */ + const initI18n = () => { + const savedLocale = loadLocale(); + setCurrentLocale(savedLocale); + }; + /** + * 切换语言 + */ + const switchLocale = (locale) => { + setCurrentLocale(locale); + }; + /** + * 添加语言监听器 + */ + const addLocaleListener = (listener) => { + localeListeners.add(listener); + return () => { + localeListeners.delete(listener); + }; + }; + /** + * 移除语言监听器 + */ + const removeLocaleListener = (listener) => { + localeListeners.delete(listener); + }; + /** + * 通知语言监听器 + */ + const notifyLocaleListeners = (locale) => { + localeListeners.forEach((listener) => { + try { + listener(locale); + } + catch (e) { + console.error('Locale listener error:', e); + } + }); + }; + /** + * 清除所有语言监听器 + */ + const clearLocaleListeners = () => { + localeListeners.clear(); + }; + /** + * 格式化数字 + */ + const formatNumber = (number, options = {}) => { + try { + return new Intl.NumberFormat(currentLocale, options).format(number); + } + catch (e) { + return number.toString(); + } + }; + /** + * 格式化货币 + */ + const formatCurrency = (amount, currency = 'USD', options = {}) => { + try { + return new Intl.NumberFormat(currentLocale, { + style: 'currency', + currency, + ...options, + }).format(amount); + } + catch (e) { + return amount.toString(); + } + }; + /** + * 格式化百分比 + */ + const formatPercent = (value, options = {}) => { + try { + return new Intl.NumberFormat(currentLocale, { + style: 'percent', + minimumFractionDigits: 0, + maximumFractionDigits: 2, + ...options, + }).format(value / 100); + } + catch (e) { + return `${value}%`; + } + }; + /** + * 格式化日期 + */ + const formatDate = (date, options = {}) => { + try { + const dateObj = date instanceof Date ? date : new Date(date); + return new Intl.DateTimeFormat(currentLocale, options).format(dateObj); + } + catch (e) { + return String(date); + } + }; + /** + * 格式化时间 + */ + const formatTime = (date, options = {}) => { + return formatDate(date, { + hour: 'numeric', + minute: 'numeric', + second: 'numeric', + ...options, + }); + }; + /** + * 格式化相对时间 + */ + const formatRelativeTime = (date, options = {}) => { + try { + const dateObj = date instanceof Date ? date : new Date(date); + const now = new Date(); + const diff = dateObj.getTime() - now.getTime(); + const rtf = new Intl.RelativeTimeFormat(currentLocale, { + numeric: 'auto', + ...options, + }); + const units = [ + { unit: 'year', ms: 365 * 24 * 60 * 60 * 1000 }, + { unit: 'month', ms: 30 * 24 * 60 * 60 * 1000 }, + { unit: 'week', ms: 7 * 24 * 60 * 60 * 1000 }, + { unit: 'day', ms: 24 * 60 * 60 * 1000 }, + { unit: 'hour', ms: 60 * 60 * 1000 }, + { unit: 'minute', ms: 60 * 1000 }, + { unit: 'second', ms: 1000 }, + ]; + for (const { unit, ms } of units) { + if (Math.abs(diff) >= ms || unit === 'second') { + const value = Math.round(diff / ms); + return rtf.format(value, unit); + } + } + return String(date); + } + catch (e) { + return String(date); + } + }; + /** + * 格式化列表 — 优先使用 Intl.ListFormat,降级到逗号拼接 + */ + const formatList = (list, _options = {}) => { + const intl = Intl; + if (typeof intl.ListFormat === 'function') { + try { + return new intl.ListFormat(currentLocale, { + style: 'long', + type: 'conjunction', + }).format(list); + } + catch (_e) { /* fallback below */ } + } + return list.join(', '); + }; + /** + * 格式化复数 + */ + const formatPlural = (count, options = {}) => { + try { + return new Intl.PluralRules(currentLocale, options).select(count); + } + catch (e) { + return count === 1 ? 'one' : 'other'; + } + }; + /** + * 复数翻译 + */ + const plural = (key, count, params = {}) => { + const pluralForm = formatPlural(count); + const pluralKey = `${key}.${pluralForm}`; + if (hasTranslation(pluralKey)) { + return t(pluralKey, { ...params, count }); + } + if (hasTranslation(key)) { + return t(key, { ...params, count }); + } + return key; + }; + /** + * 国际化工具 — 代理层 + */ + const i18nUtils = { + t, + plural, + getCurrentLocale, + setCurrentLocale, + switchLocale, + getFallbackLocale, + setFallbackLocale, + hasTranslation, + getTranslations, + addTranslations, + removeTranslation, + clearTranslations, + getSupportedLocales, + isLocaleSupported, + getLocaleName, + getLocaleDirection, + getLocaleInfo, + getAllLocaleInfo, + formatNumber, + formatCurrency, + formatPercent, + formatDate, + formatTime, + formatRelativeTime, + formatList, + formatPlural, + addLocaleListener, + removeLocaleListener, + clearLocaleListeners, + initI18n, + saveLocale, + loadLocale, + getDefaultLocale, + }; + /** + * 预设语言包 + */ + ({ + 'zh-CN': { + name: '简体中文', + nativeName: '简体中文', + direction: 'ltr', + translations: LOCALES['zh-CN'], + }, + 'en-US': { + name: 'English (US)', + nativeName: 'English (US)', + direction: 'ltr', + translations: LOCALES['en-US'], + }, + }); + + /** + * MetonaToast Toast — Toast 类 + * @module toast + * @version 0.2.1 + */ + /** + * Toast 类 — 核心通知组件 + */ + class Toast { + /** + * 设置 Toast 类级别的回调函数 + */ + static setCallbacks(callbacks) { + if (callbacks.onError !== undefined) + Toast._onError = callbacks.onError; + if (callbacks.removeToast !== undefined) + Toast._removeToast = callbacks.removeToast; + } + static on(name, fn) { + if (!this._hooks.has(name)) + this._hooks.set(name, []); + this._hooks.get(name).push(fn); + return () => this.off(name, fn); + } + static off(name, fn) { + const list = this._hooks.get(name); + if (list) + this._hooks.set(name, list.filter(f => f !== fn)); + } + /** + * 触发钩子 — 如果任意钩子返回 false 则整体返回 false + */ + static trigger(name, toast) { + const list = this._hooks.get(name); + if (!list || list.length === 0) + return true; + let allow = true; + list.forEach(fn => { + try { + const result = fn(toast); + if (result === false) + allow = false; + } + catch (e) { + console.error('Hook error:', name, e); + if (Toast._onError) { + try { + Toast._onError({ hook: name, error: e, toast }); + } + catch (_e) { /* noop */ } + } + } + }); + return allow; + } + constructor(opts) { + this.el = null; + this.barEl = null; + this.rafId = null; + this.startedAt = 0; + this.paused = false; + this.closing = false; + this.group = null; + this._cleanups = []; + this.id = opts.id || generateId(); + this.type = opts.type || 'default'; + this.title = opts.title || ''; + this.message = opts.message ?? opts.content ?? ''; + this.html = opts.html || ''; + this.iconHTML = opts.iconHTML || ''; + this.config = { ...DEFAULTS, ...opts }; + // 防止嵌套对象被多个 toast 实例共享引用 + if (opts.style && typeof opts.style === 'object') { + this.config.style = { ...opts.style }; + } + this.remaining = this.config.duration || 0; + this.group = opts.group || null; + } + _palette() { + const theme = getTheme(this.config.theme || 'auto'); + const c = TYPE_COLORS[this.type] || TYPE_COLORS.default; + const tc = THEMES[theme] || THEMES.light; + const t = { bg: tc.bg, border: tc.border, shadow: tc.shadow }; + return { theme, c, t }; + } + create() { + if (typeof window === 'undefined' || typeof document === 'undefined') + return this; + // beforeShow 钩子 — 返回 false 可阻止显示 + if (!Toast.trigger('beforeShow', this)) + return this; + // onBeforeShow 配置回调 — 返回 false 可阻止显示 + if (typeof this.config.onBeforeShow === 'function') { + try { + if (this.config.onBeforeShow(this) === false) + return this; + } + catch (e) { + console.error('onBeforeShow callback error:', e); + } + } + injectStyles(); + const container = this._getContainer(); + const { theme, c, t } = this._palette(); + this._limitToasts(container); + const el = document.createElement('div'); + el.className = this._buildClassName(theme); + el.setAttribute('role', (this.type === 'error' || this.type === 'warning') ? 'alert' : 'status'); + el.setAttribute('aria-live', this.type === 'error' ? 'assertive' : 'polite'); + el.dataset.id = this.id; + this._applyStyles(el, theme, t); + this._buildContent(el, c); + this.el = el; + // Chrome bug: column-reverse + appendChild 会导致重叠。改用 column + insertBefore + const pos = this.config.position || 'top-right'; + if (pos.startsWith('top')) { + container.insertBefore(el, container.firstChild); + } + else { + container.appendChild(el); + } + this._bindEvents(el); + this._startTimer(); + // 进入动画 + requestAnimationFrame(() => { + requestAnimationFrame(() => { + el.classList.add('met-show'); + }); + }); + if (typeof this.config.onShow === 'function') { + try { + this.config.onShow(this); + } + catch (e) { + console.error('onShow callback error:', e); + } + } + Toast.trigger('afterShow', this); + return this; + } + _getContainer() { + const rawPosition = this.config.position || 'top-right'; + const zIndex = this.config.zIndex || 9999; + // RTL 语言时翻转 left/right + const isRTL = getLocaleDirection(getCurrentLocale()) === 'rtl'; + const position = isRTL + ? rawPosition.replace('left', '__TMP__').replace('right', 'left').replace('__TMP__', 'right') + : rawPosition; + // 从模块级缓存获取 (由 api.ts 管理) + const cached = _containerCache.get(document.body); + if (cached && cached.has(position)) { + return cached.get(position); + } + // 缓存未命中时创建新容器 + if (!_containerCache.has(document.body)) { + _containerCache.set(document.body, new Map()); + } + const el = document.createElement('div'); + el.className = `met-container ${position}`; + el.setAttribute('aria-label', 'Notifications'); + el.setAttribute('role', 'region'); + const posStyles = { + 'top-left': 'top:0;left:0;align-items:flex-start', + 'top-center': 'top:0;left:0;right:0;align-items:center', + 'top-right': 'top:0;right:0;align-items:flex-end', + 'bottom-left': 'bottom:0;left:0;align-items:flex-start', + 'bottom-center': 'bottom:0;left:0;right:0;align-items:center', + 'bottom-right': 'bottom:0;right:0;align-items:flex-end', + }; + el.style.cssText = ` + display:flex; + flex-direction:column; + gap:${this.config.gap || 12}px; + box-sizing:border-box; + padding:${this.config.offset || 24}px; + max-width:100vw; + position:fixed; + z-index:${zIndex}; + pointer-events:none; + ${posStyles[position] || 'top:0;right:0;align-items:flex-end'} + `; + document.body.appendChild(el); + _containerCache.get(document.body).set(position, el); + return el; + } + _limitToasts(container) { + const max = this.config.max || 6; + const list = Array.from(container.querySelectorAll('.met-toast')); + if (list.length >= max) { + const first = list[0]; + const id = first?.dataset.id; + if (id && Toast._removeToast) { + Toast._removeToast(id); + } + } + } + _buildClassName(theme) { + const CSS_ANIMS = ['slide', 'fade', 'scale', 'bounce', 'flip', 'rotate', 'zoom', + 'slideUp', 'slideDown', 'slideLeft', 'slideRight']; + const anim = CSS_ANIMS.includes(this.config.animation || '') ? this.config.animation : 'slide'; + return [ + 'met-toast', + `met-${this.type}`, + `met-theme-${theme}`, + `met-anim-${anim}`, + (this.config.closeOnClick || this.config.draggable) ? 'met-clickable' : '', + this.config.className || '', + ].filter(Boolean).join(' '); + } + _applyStyles(el, _theme, _t) { + const widthValue = typeof this.config.width === 'number' + ? `${this.config.width}px` + : (typeof this.config.width === 'string' ? this.config.width : '360px'); + const set = (p, v) => el.style.setProperty(p, v, 'important'); + set('position', 'relative'); + set('flex-shrink', '0'); + set('min-width', '240px'); + set('max-width', 'calc(100vw - 48px)'); + set('width', widthValue); + // 用户自定义样式最后应用 + if (this.config.style && Object.keys(this.config.style).length > 0) { + Object.entries(this.config.style).forEach(([k, v]) => { el.style[k] = v; }); + } + } + _buildContent(el, c) { + // 自定义渲染函数 — 完全接管 DOM 构建 + if (typeof this.config.render === 'function') { + el.innerHTML = this.config.render(this); + this.barEl = el.querySelector('.met-bar, .met-bar-v'); + return; + } + const showIcon = this.config.icon !== false && (this.iconHTML || ICONS[this.type]); + const showClose = this.config.closeButton !== false; + const showProgress = this.config.showProgress !== false && (this.config.duration || 0) > 0; + const showSide = (!showIcon && this.type !== 'default'); + const safeTitle = this.title ? `
${escapeHTML(this.title)}
` : ''; + const safeMessage = this.html + ? `
${this.html}
` + : (this.message ? `
${escapeHTML(this.message)}
` : ''); + const iconHTML = showIcon + ? `
${this.iconHTML || ICONS[this.type]}
` : ''; + const closeHTML = showClose + ? `` + : ''; + const progressHTML = showProgress + ? (this.config.progressDirection === 'vertical' + ? `
` + : `
`) + : ''; + const sideHTML = showSide + ? `
` : ''; + el.innerHTML = ` + ${iconHTML} + ${sideHTML} +
+ ${safeTitle} + ${safeMessage} +
+ ${closeHTML} + ${progressHTML} + `; + this.barEl = el.querySelector('.met-bar, .met-bar-v'); + } + _bindEvents(el) { + const eventHandler = (e) => { + const target = e.target; + if (target.closest('.met-close')) { + e.stopPropagation(); + this.close(); + return; + } + if (this.config.closeOnClick && !target.closest('.met-close')) { + if (typeof this.config.onClick === 'function') { + try { + this.config.onClick(this); + } + catch (err) { + console.error('onClick callback error:', err); + } + } + this.close(); + return; + } + }; + el.addEventListener('click', eventHandler); + this._cleanups.push(() => el.removeEventListener('click', eventHandler)); + if (this.config.pauseOnHover && (this.config.duration || 0) > 0) { + const mouseEnter = () => this._pause(); + const mouseLeave = () => this._resume(); + el.addEventListener('mouseenter', mouseEnter); + el.addEventListener('mouseleave', mouseLeave); + this._cleanups.push(() => { + el.removeEventListener('mouseenter', mouseEnter); + el.removeEventListener('mouseleave', mouseLeave); + }); + } + if (this.config.draggable) { + this._bindDrag(el); + } + } + _bindDrag(el) { + let sx = 0, sy = 0, dx = 0, dy = 0, dragging = false; + const down = (e) => { + if (e.target.closest('.met-close')) + return; + dragging = true; + sx = e.clientX; + sy = e.clientY; + el.setPointerCapture(e.pointerId); + el.style.transition = 'none'; + this._pause(); + }; + const move = (e) => { + if (!dragging) + return; + dx = e.clientX - sx; + dy = e.clientY - sy; + el.style.transform = `translate(${dx}px, ${dy}px) rotate(${dx * 0.1}deg)`; + el.style.opacity = String(Math.max(0, 1 - Math.abs(dx) / 200)); + }; + const up = (e) => { + if (!dragging) + return; + dragging = false; + el.releasePointerCapture(e.pointerId); + el.style.transition = ''; + if (Math.abs(dx) > 120) { + el.style.transform = `translate(${dx * 2}px, ${dy}px) rotate(${dx * 0.2}deg)`; + el.style.opacity = '0'; + setTimeout(() => this.close(true), 250); + } + else { + el.style.transform = ''; + el.style.opacity = ''; + this._resume(); + } + dx = dy = 0; + }; + el.addEventListener('pointerdown', down); + el.addEventListener('pointermove', move); + el.addEventListener('pointerup', up); + el.addEventListener('pointercancel', up); + this._cleanups.push(() => { + el.removeEventListener('pointerdown', down); + el.removeEventListener('pointermove', move); + el.removeEventListener('pointerup', up); + el.removeEventListener('pointercancel', up); + }); + } + _startTimer(resuming = false) { + if ((this.config.duration || 0) <= 0) + return; + if (!resuming) { + this.startedAt = Date.now(); + this.remaining = this.config.duration || 0; + } + const tick = () => { + if (this.paused || this.closing) + return; + try { + const elapsed = Date.now() - this.startedAt; + this.remaining = Math.max(0, (this.config.duration || 0) - elapsed); + if (this.barEl) { + const ratio = this.remaining / (this.config.duration || 1); + const t = this.config.progressDirection === 'vertical' + ? `scaleY(${ratio})` : `scaleX(${ratio})`; + this.barEl.style.transform = t; + } + if (this.remaining <= 0) { + this.close(); + return; + } + } + catch (e) { + console.error('Timer tick error:', e); + if (Toast._onError) { + try { + Toast._onError({ source: 'timer', error: e, toast: this }); + } + catch (_e) { /* noop */ } + } + } + this.rafId = requestAnimationFrame(tick); + }; + this.rafId = requestAnimationFrame(tick); + } + _pause() { + if (this.paused || (this.config.duration || 0) <= 0) + return; + this.paused = true; + if (this.rafId !== null) + cancelAnimationFrame(this.rafId); + this.remaining = Math.max(0, (this.config.duration || 0) - (Date.now() - this.startedAt)); + } + _resume() { + if (!this.paused) + return; + this.paused = false; + this.startedAt = Date.now() - ((this.config.duration || 0) - this.remaining); + this._startTimer(true); + } + update(partial) { + Toast.trigger('beforeUpdate', this); + const typeChanged = partial.type && partial.type !== this.type; + if (partial.type) + this.type = partial.type; + if (partial.title !== undefined) + this.title = partial.title; + if (partial.message !== undefined) + this.message = partial.message; + if (partial.html !== undefined) + this.html = partial.html; + if (!this.el) { + Toast.trigger('afterUpdate', this); + return this; + } + // 类型变更时同步更新 DOM 类名、边框颜色和进度条颜色 + if (typeChanged) { + const typeClasses = ['met-success', 'met-error', 'met-warning', 'met-info', 'met-loading', 'met-default']; + typeClasses.forEach(c => this.el.classList.remove(c)); + this.el.classList.add(`met-${this.type}`); + if (this.barEl) { + const c = TYPE_COLORS[this.type] || TYPE_COLORS.default; + this.barEl.style.background = c.fg; + } + const side = this.el.querySelector('.met-side'); + if (side) { + const c = TYPE_COLORS[this.type] || TYPE_COLORS.default; + side.style.background = c.fg; + } + } + const content = this.el.querySelector('.met-content'); + if (content) { + const safeTitle = this.title ? `
${escapeHTML(this.title)}
` : ''; + const safeMessage = this.html + ? `
${this.html}
` + : (this.message ? `
${escapeHTML(this.message)}
` : ''); + content.innerHTML = `${safeTitle}${safeMessage}`; + } + // resetTimerOnUpdate: 更新内容后重置计时器 + if (this.config.resetTimerOnUpdate && (this.config.duration || 0) > 0) { + if (this.rafId !== null) + cancelAnimationFrame(this.rafId); + this.startedAt = Date.now(); + this.remaining = this.config.duration || 0; + this._startTimer(); + } + if (typeof this.config.onUpdate === 'function') { + try { + this.config.onUpdate(this); + } + catch (e) { + console.error('onUpdate callback error:', e); + } + } + Toast.trigger('afterUpdate', this); + return this; + } + /** + * 运行时移动 Toast 到新位置 + */ + updatePosition(position) { + if (!position || !this.el) + return this; + const oldContainer = this.el.parentNode; + this.config.position = position; + const newContainer = this._getContainer(); + if (oldContainer === newContainer) + return this; + // 从旧容器移除,加入新容器 + if (oldContainer && this.el.parentNode === oldContainer) { + oldContainer.removeChild(this.el); + } + const pos = position; + if (pos.startsWith('top')) { + newContainer.insertBefore(this.el, newContainer.firstChild); + } + else { + newContainer.appendChild(this.el); + } + return this; + } + /** + * 立即从 DOM 和内存中移除(不触发离场动画) + */ + remove() { + if (this.rafId !== null) { + cancelAnimationFrame(this.rafId); + this.rafId = null; + } + this._cleanups.forEach(fn => { try { + fn(); + } + catch (_e) { /* noop */ } }); + this._cleanups = []; + if (this.el && this.el.parentNode) { + this.el.parentNode.removeChild(this.el); + } + this.el = null; + if (Toast._removeToast) + Toast._removeToast(this.id); + } + close(immediate = false) { + if (this.closing) + return; + this.closing = true; + Toast.trigger('beforeClose', this); + if (this.rafId !== null) + cancelAnimationFrame(this.rafId); + this._cleanups.forEach(fn => { try { + fn(); + } + catch (_e) { /* noop */ } }); + this._cleanups = []; + const el = this.el; + if (!el) { + if (Toast._removeToast) + Toast._removeToast(this.id); + return; + } + // 立即脱离文档流 + const container = el.parentNode; + if (container && !immediate) { + const elRect = el.getBoundingClientRect(); + const containerRect = container.getBoundingClientRect(); + el.style.position = 'absolute'; + el.style.top = (elRect.top - containerRect.top) + 'px'; + el.style.left = (elRect.left - containerRect.left) + 'px'; + el.style.width = elRect.width + 'px'; + el.style.margin = '0'; + } + el.classList.add('met-leaving'); + el.classList.remove('met-show'); + const pos = this.config.position || 'top-right'; + const isRTL = getLocaleDirection(getCurrentLocale()) === 'rtl'; + let transform = 'scale(.96)'; + if (pos.includes('right')) + transform = isRTL ? 'translateX(-120%)' : 'translateX(120%)'; + else if (pos.includes('left')) + transform = isRTL ? 'translateX(120%)' : 'translateX(-120%)'; + else if (pos.startsWith('top')) + transform = 'translateY(-20px)'; + else + transform = 'translateY(20px)'; + el.style.transform = transform; + el.style.opacity = '0'; + setTimeout(() => this._destroy(), immediate ? 0 : 300); + } + _destroy() { + if (this.el && this.el.parentNode) { + this.el.parentNode.removeChild(this.el); + } + this.el = null; + if (typeof this.config.onClose === 'function') { + try { + this.config.onClose(this); + } + catch (e) { + console.error('onClose callback error:', e); + } + } + Toast.trigger('afterClose', this); + if (Toast._removeToast) + Toast._removeToast(this.id); + } + } + // 静态钩子系统 + Toast._hooks = new Map(); + // 由 api.ts 注入的回调,通过 setCallbacks() 设置 + Toast._onError = null; + Toast._removeToast = null; + /** + * 模块级共享容器缓存,所有 Toast 实例共用 + */ + const _containerCache = new Map(); + + /** + * MetonaToast Templates — HTML 模板辅助函数 + * @module templates + * @version 0.2.1 + * @description confirm / prompt / progress / action 的 DOM 模板 + */ + /** + * 按钮行模板 — confirm/prompt 共用 + */ + const btnRow = (buttons) => ` +
+ ${buttons} +
`; + /** + * 确认对话框模板 + */ + const confirmHTML = (opts) => { + const confirmText = opts.confirmText || t('confirm'); + const cancelText = opts.cancelText || t('cancel'); + const confirmColor = opts.confirmColor || '#10b981'; + const cancelColor = opts.cancelColor || '#6b7280'; + return btnRow(` + + + `); + }; + /** + * 输入对话框模板 + */ + const promptHTML = (opts) => { + const submitText = opts.submitText || t('confirm'); + const cancelText = opts.cancelText || t('cancel'); + const submitColor = opts.submitColor || '#3b82f6'; + const cancelColor = opts.cancelColor || '#6b7280'; + return ` + + ${btnRow(` + + + `)} + `; + }; + /** + * 进度条模板 + */ + const progressHTML = (opts) => { + const color = opts.progressColor || '#3b82f6'; + return ` +
+
+
+
0%
+ `; + }; + /** + * Action Toast 模板 + */ + const actionHTML = (actions) => { + if (!Array.isArray(actions) || actions.length === 0) + return ''; + const buttons = actions.map((a, i) => { + const bg = a.style?.background || a.color || '#6366f1'; + const cls = `met-action-btn-${i}`; + return ``; + }).join(''); + return btnRow(buttons); + }; + + /** + * MetonaToast Plugins — 插件系统 + * @module plugins + * @version 0.2.1 + */ + /** + * 插件管理器 + */ + class PluginManager { + constructor() { + this.plugins = new Map(); + this.initialized = false; + } + register(name, plugin) { + if (this.plugins.has(name)) { + console.warn(`Plugin "${name}" is already registered`); + return this; + } + if (!plugin || typeof plugin !== 'object' || !plugin.name) { + console.error(`Invalid plugin "${name}": must be an object with a "name" property`); + return this; + } + const stored = { ...plugin, installed: false, enabled: true }; + if (!stored.name) + stored.name = name; + this.plugins.set(name, stored); + if (stored.install) { + try { + stored.install(this); + stored.installed = true; + } + catch (e) { + console.error(`Failed to install plugin "${name}":`, e); + } + } + return this; + } + unregister(name) { + const plugin = this.plugins.get(name); + if (!plugin) + return this; + if (plugin.uninstall) { + try { + plugin.uninstall(this); + } + catch (e) { + console.error(`Failed to uninstall plugin "${name}":`, e); + } + } + this.plugins.delete(name); + return this; + } + get(name) { return this.plugins.get(name) || null; } + has(name) { return this.plugins.has(name); } + getAll() { return Array.from(this.plugins.values()); } + getNames() { return Array.from(this.plugins.keys()); } + enable(name) { + const p = this.plugins.get(name); + if (p) + p.enabled = true; + return this; + } + disable(name) { + const p = this.plugins.get(name); + if (p) + p.enabled = false; + return this; + } + isEnabled(name) { + const p = this.plugins.get(name); + return p ? !!p.enabled : false; + } + destroy() { + this.plugins.forEach((p) => { + if (p.destroy) { + try { + p.destroy(this); + } + catch (_e) { /* noop */ } + } + }); + this.plugins.clear(); + } + } + /** + * 预设插件 + */ + const presetPlugins = { + /** + * 键盘快捷键插件 — ESC 关闭所有 Toast + */ + keyboard: { + name: 'keyboard', + version: '1.0.0', + description: 'ESC 关闭所有 Toast', + _handler: null, + install() { + if (typeof document === 'undefined') + return; + const handler = (e) => { + if (e.key === 'Escape') { + document.querySelectorAll('.met-toast .met-close').forEach(btn => { + try { + btn.click(); + } + catch (_e) { /* noop */ } + }); + } + }; + this._handler = handler; + document.addEventListener('keydown', handler); + }, + uninstall() { + const handler = this._handler; + if (handler && typeof document !== 'undefined') { + document.removeEventListener('keydown', handler); + this._handler = null; + } + }, + }, + /** + * 持久化插件 — 自动保存/加载配置到 localStorage + */ + persistence: { + name: 'persistence', + version: '1.0.0', + description: '自动持久化配置到 localStorage', + storageKey: 'metona-toast-config', + install() { + if (typeof localStorage !== 'undefined') { + try { + const key = this.storageKey; + const saved = localStorage.getItem(key); + return saved ? JSON.parse(saved) : null; + } + catch (_e) { + return null; + } + } + return null; + }, + save(config) { + if (typeof localStorage !== 'undefined') { + try { + const key = this.storageKey; + localStorage.setItem(key, JSON.stringify(config)); + } + catch (_e) { /* noop */ } + } + }, + uninstall() { + if (typeof localStorage !== 'undefined') { + try { + const key = this.storageKey; + localStorage.removeItem(key); + } + catch (_e) { /* noop */ } + } + }, + }, + /** + * 无障碍插件 — 屏幕阅读器公告 + */ + accessibility: { + name: 'accessibility', + version: '1.0.0', + description: '通过屏幕阅读器朗读 Toast 内容', + announce(toast) { + if (typeof document === 'undefined') + return; + const el = document.createElement('div'); + el.setAttribute('aria-live', 'assertive'); + el.setAttribute('aria-atomic', 'true'); + el.style.cssText = 'position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;'; + const typeName = t(toast.type) || toast.type; + el.textContent = `${typeName}: ${toast.title || ''} ${toast.message || ''}`; + document.body.appendChild(el); + setTimeout(() => { if (el.parentNode) + el.parentNode.removeChild(el); }, 3000); + }, + }, + }; + /** + * 插件工具 + */ + const pluginUtils = { + createManager() { return new PluginManager(); }, + register(name, plugin) { return defaultPluginManager.register(name, plugin); }, + unregister(name) { return defaultPluginManager.unregister(name); }, + get(name) { return defaultPluginManager.get(name); }, + has(name) { return defaultPluginManager.has(name); }, + getAll() { return defaultPluginManager.getAll(); }, + getNames() { return defaultPluginManager.getNames(); }, + enable(name) { return defaultPluginManager.enable(name); }, + disable(name) { return defaultPluginManager.disable(name); }, + isEnabled(name) { return defaultPluginManager.isEnabled(name); }, + getPreset(name) { return presetPlugins[name] || null; }, + getAllPresets() { return { ...presetPlugins }; }, + createPlugin(config) { + return { + name: config.name || 'custom', + version: config.version || '1.0.0', + description: config.description || '', + hooks: config.hooks || {}, + install: config.install || undefined, + uninstall: config.uninstall || undefined, + ...config, + }; + }, + validatePlugin(plugin) { + const errors = []; + if (!plugin || typeof plugin !== 'object') + errors.push('Plugin must be an object'); + if (!plugin.name && !plugin.version) + errors.push('Plugin must have a name or version'); + return { valid: errors.length === 0, errors }; + }, + }; + const defaultPluginManager = new PluginManager(); + + /** + * MetonaToast API — meToast 核心 API 对象 + * @module api + * @version 0.2.1 + */ + /** + * 参数标准化工具 + */ + const normalizeArgs = (args, defaultType = 'default') => { + const [first, second] = args; + if (typeof first === 'string') { + return { + ...(second || {}), + type: second?.type || defaultType, + message: first, + }; + } + if (first && typeof first === 'object') { + return { + ...first, + type: first.type || defaultType, + }; + } + return { + type: defaultType, + message: '', + }; + }; + /** 版本号常量 */ + const VERSION$1 = '0.2.1'; + /** + * meToast API 对象 + */ + const meToast = { + _toasts: new Map(), + _config: { ...DEFAULTS }, + version: '0.2.1', + configure(opts) { + if (!opts || typeof opts !== 'object') + return this; + Object.assign(this._config, opts); + if (opts.theme) { + applyTheme(opts.theme); + } + if (opts.locale) { + setCurrentLocale(opts.locale); + } + return this; + }, + _emit(opts) { + const merged = { ...this._config, ...opts }; + if (merged.content && !merged.message) + merged.message = merged.content; + const t = new Toast(merged); + t.create(); + this._toasts.set(t.id, t); + return t; + }, + _remove(id) { + this._toasts.delete(id); + }, + find(id) { + if (!id) + return undefined; + return this._toasts.get(id); + }, + show(messageOrOpts, opts = {}) { + const normalized = normalizeArgs([messageOrOpts, opts], 'default'); + return this._emit(normalized); + }, + success(messageOrOpts, opts = {}) { + const normalized = normalizeArgs([messageOrOpts, opts], 'success'); + return this._emit(normalized); + }, + error(messageOrOpts, opts = {}) { + const normalized = normalizeArgs([messageOrOpts, opts], 'error'); + return this._emit(normalized); + }, + warning(messageOrOpts, opts = {}) { + const normalized = normalizeArgs([messageOrOpts, opts], 'warning'); + return this._emit(normalized); + }, + info(messageOrOpts, opts = {}) { + const normalized = normalizeArgs([messageOrOpts, opts], 'info'); + return this._emit(normalized); + }, + loading(messageOrOpts, opts = {}) { + const normalized = normalizeArgs([messageOrOpts, opts], 'loading'); + normalized.duration = 0; + normalized.closeButton = false; + normalized.showProgress = false; + const toast = this._emit(normalized); + return { + id: toast.id, + success: (msg, o = {}) => this._resolve(toast, 'success', msg || t('success'), o), + error: (msg, o = {}) => this._resolve(toast, 'error', msg || t('error'), o), + info: (msg, o = {}) => this._resolve(toast, 'info', msg || t('info'), o), + warning: (msg, o = {}) => this._resolve(toast, 'warning', msg || t('warning'), o), + update: (p) => { toast.update(p); return this; }, + dismiss: () => toast.close(), + }; + }, + promise(promise, opts = {}) { + if (!promise || typeof promise.then !== 'function') { + console.error('MeToast.promise: first argument must be a Promise'); + return Promise.reject(new Error('Invalid promise')); + } + const loadingMsg = opts.loading || t('loading'); + const successMsg = opts.success || t('success'); + const errorMsg = opts.error || t('error'); + const ctrl = this.loading(loadingMsg); + return Promise.resolve(promise) + .then((data) => { + ctrl.success(successMsg); + return data; + }) + .catch((err) => { + ctrl.error(errorMsg); + throw err; + }); + }, + _resolve(loadingToast, type, message, opts) { + const id = loadingToast.id; + const old = this._toasts.get(id); + if (!old) + return null; + const position = old.config.position; + old.close(); + return this._emit({ ...opts, type, message, position }); + }, + confirm(message, opts = {}) { + if (typeof message !== 'string') { + console.error('MeToast.confirm: message must be a string'); + return Promise.resolve(false); + } + return new Promise((resolve) => { + let resolved = false; + const safeResolve = (val) => { + if (!resolved) { + resolved = true; + clearTimeout(safetyTimeout); + resolve(val); + } + }; + const safetyTimeout = setTimeout(() => safeResolve(false), 10000); + const toast = this._emit({ + ...opts, + type: opts.type || 'warning', + message, + duration: 0, + closeButton: false, + closeOnClick: false, + draggable: false, + html: confirmHTML(opts), + }); + setTimeout(() => { + const confirmBtn = toast.el?.querySelector('.met-confirm-btn'); + const cancelBtn = toast.el?.querySelector('.met-cancel-btn'); + if (confirmBtn) { + confirmBtn.addEventListener('click', () => { + toast.close(); + safeResolve(true); + }); + } + if (cancelBtn) { + cancelBtn.addEventListener('click', () => { + toast.close(); + safeResolve(false); + }); + } + }, 0); + }); + }, + prompt(message, opts = {}) { + if (typeof message !== 'string') { + console.error('MeToast.prompt: message must be a string'); + return Promise.resolve(null); + } + return new Promise((resolve) => { + let resolved = false; + const safeResolve = (val) => { + if (!resolved) { + resolved = true; + clearTimeout(safetyTimeout); + resolve(val); + } + }; + const safetyTimeout = setTimeout(() => safeResolve(null), 10000); + const toast = this._emit({ + ...opts, + type: opts.type || 'info', + message, + duration: 0, + closeButton: false, + closeOnClick: false, + draggable: false, + html: promptHTML(opts), + }); + setTimeout(() => { + const input = toast.el?.querySelector('.met-input'); + const submitBtn = toast.el?.querySelector('.met-submit-btn'); + const cancelBtn = toast.el?.querySelector('.met-cancel-btn'); + if (input) { + input.focus(); + input.addEventListener('keydown', (e) => { + if (e.key === 'Enter') { + toast.close(); + safeResolve(input.value); + } + }); + } + if (submitBtn) { + submitBtn.addEventListener('click', () => { + toast.close(); + safeResolve(input?.value || null); + }); + } + if (cancelBtn) { + cancelBtn.addEventListener('click', () => { + toast.close(); + safeResolve(null); + }); + } + }, 0); + }); + }, + progress(messageOrOpts, opts = {}) { + const normalized = normalizeArgs([messageOrOpts, opts], 'info'); + normalized.duration = 0; + normalized.closeButton = false; + normalized.showProgress = false; + const toast = this._emit({ + ...normalized, + html: progressHTML(opts), + }); + return { + id: toast.id, + setProgress(percent) { + const fill = toast.el?.querySelector('.met-progress-fill'); + const text = toast.el?.querySelector('.met-progress-text'); + if (fill) { + fill.style.width = `${Math.min(100, Math.max(0, percent))}%`; + } + if (text) { + text.textContent = `${Math.round(percent)}%`; + } + }, + complete(message) { + this.setProgress(100); + setTimeout(() => { + toast.update({ + type: 'success', + message: message || t('success'), + html: '', + }); + setTimeout(() => toast.close(), 1000); + }, 300); + }, + error(message) { + toast.update({ + type: 'error', + message: message || t('error'), + html: '', + }); + setTimeout(() => toast.close(), 2000); + }, + dismiss() { + toast.close(); + }, + }; + }, + countdown(message, seconds = 10, opts = {}) { + if (typeof message !== 'string') { + console.error('MeToast.countdown: message must be a string'); + return { id: '', cancel: () => { }, pause: () => { }, resume: () => { } }; + } + let remaining = Math.max(1, parseInt(String(seconds)) || 10); + let timer = null; + const toast = this._emit({ + ...opts, + type: opts.type || 'warning', + message: message.replace(/\{seconds\}/g, String(remaining)), + duration: 0, + closeButton: true, + showProgress: false, + }); + const tick = () => { + remaining--; + if (remaining <= 0) { + if (timer !== null) + clearInterval(timer); + toast.close(); + if (typeof opts.onComplete === 'function') { + try { + opts.onComplete(); + } + catch (e) { + console.error('countdown onComplete error:', e); + } + } + return; + } + toast.update({ + message: message.replace(/\{seconds\}/g, String(remaining)), + }); + }; + timer = setInterval(tick, 1000); + return { + id: toast.id, + cancel() { if (timer !== null) + clearInterval(timer); toast.close(); }, + pause() { if (timer !== null) + clearInterval(timer); }, + resume() { if (timer !== null) + clearInterval(timer); timer = setInterval(tick, 1000); }, + }; + }, + action(messageOrOpts, actions = [], opts = {}) { + const normalized = normalizeArgs([messageOrOpts, opts], 'info'); + normalized.duration = opts.duration ?? 0; + normalized.closeButton = opts.closeButton ?? true; + const toast = this._emit({ + ...normalized, + html: (normalized.html || '') + actionHTML(actions), + }); + if (Array.isArray(actions)) { + setTimeout(() => { + actions.forEach((a, i) => { + const btn = toast.el?.querySelector(`.met-action-btn-${i}`); + if (btn && typeof a.onClick === 'function') { + btn.addEventListener('click', () => { + try { + a.onClick(toast); + } + catch (e) { + console.error('Action onClick error:', e); + } + if (a.close !== false) + toast.close(); + }); + } + }); + }, 0); + } + return { id: toast.id, toast, dismiss: () => toast.close() }; + }, + queue(messages, opts = {}) { + if (!Array.isArray(messages)) { + console.error('MeToast.queue: messages must be an array'); + const p = Promise.resolve(); + return { then: (fn) => p.then(fn), catch: (rj) => p.catch(rj), cancel: () => { } }; + } + let cancelled = false; + const promise = new Promise((resolve) => { + let index = 0; + const delay = opts.delay || 1000; + const userOnClose = opts.onClose; + const showNext = () => { + if (cancelled || index >= messages.length) { + resolve(); + return; + } + const message = messages[index]; + index++; + const msg = typeof message === 'string' ? message : (message?.message || ''); + const msgObj = (typeof message === 'object' && message !== null) ? message : {}; + const msgOnClose = msgObj.onClose; + this._emit({ + ...opts, + ...msgObj, + message: msg, + duration: msgObj.duration || opts.duration || 3000, + onClose: (toast) => { + if (typeof msgOnClose === 'function') { + try { + msgOnClose(toast); + } + catch (_e) { /* noop */ } + } + if (typeof userOnClose === 'function') { + try { + userOnClose(toast); + } + catch (_e) { /* noop */ } + } + setTimeout(showNext, delay); + }, + }); + }; + showNext(); + }); + return { + then: (fn, rj) => promise.then(fn, rj), + catch: (rj) => promise.catch(rj), + cancel: () => { cancelled = true; }, + }; + }, + stack(messages, opts = {}) { + if (!Array.isArray(messages)) { + console.error('MeToast.stack: messages must be an array'); + return; + } + messages.forEach((message, index) => { + setTimeout(() => { + const msg = typeof message === 'string' ? message : (message?.message || ''); + this._emit({ + ...opts, + ...((typeof message === 'object' && message !== null) ? message : {}), + message: msg, + }); + }, index * (opts.stagger || 100)); + }); + }, + dismiss(id) { + if (id) { + const t = this._toasts.get(id); + if (t) + t.close(); + return; + } + this._toasts.forEach(t => t.close()); + }, + /** + * 立即移除指定 Toast(不触发离场动画) + */ + removeToast(id) { + if (!id) + return; + const t = this._toasts.get(id); + if (t) + t.remove(); + }, + clear(position) { + this._toasts.forEach(t => { + if (!position || t.config.position === position) + t.close(); + }); + }, + getAll() { + return new Map(this._toasts); + }, + count() { + return this._toasts.size; + }, + group(name) { + const self = this; + const methods = ['show', 'success', 'error', 'warning', 'info', 'loading', 'action']; + const g = { _group: name }; + methods.forEach(m => { + g[m] = (...args) => { + const lastArg = args[args.length - 1]; + const isObj = typeof lastArg === 'object' && lastArg !== null && !Array.isArray(lastArg); + const selfMethods = self; + if (isObj && args.length === 1) { + return selfMethods[m]({ ...lastArg, group: name }); + } + if (isObj) { + args.pop(); + return selfMethods[m](...args, { ...lastArg, group: name }); + } + return selfMethods[m](...args, { group: name }); + }; + }); + g.dismiss = () => self.dismissGroup(name); + g.count = () => self._groupCount(name); + return g; + }, + dismissGroup(name) { + this._toasts.forEach(t => { if (t.group === name) + t.close(); }); + }, + _groupCount(name) { + let c = 0; + this._toasts.forEach(t => { if (t.group === name) + c++; }); + return c; + }, + getToasts() { + return Array.from(this._toasts.values()); + }, + hasToasts() { + return this._toasts.size > 0; + }, + getToast(id) { + if (!id) + return null; + return this._toasts.get(id) || null; + }, + closeAll() { + this._toasts.forEach(t => t.close()); + }, + clearAll() { + this._toasts.forEach(t => t.close()); + }, + pauseAll() { + this._toasts.forEach(t => t._pause()); + }, + resumeAll() { + this._toasts.forEach(t => t._resume()); + }, + updateAll(partial) { + if (partial && typeof partial === 'object') { + this._toasts.forEach(t => t.update(partial)); + } + }, + findToasts(predicate) { + if (typeof predicate !== 'function') + return []; + return Array.from(this._toasts.values()).filter(predicate); + }, + findByType(type) { + return this.findToasts(t => t.type === type); + }, + findByPosition(position) { + return this.findToasts(t => t.config.position === position); + }, + // ====== 以下方法依赖子模块(themes/i18n/plugins/animations),由 index.ts 注入 ====== + init(options = {}) { + if (options.config) { + this.configure(options.config); + } + if (options.theme && this.themes) { + this.themes.switchTheme(options.theme); + } + if (options.locale && this.i18n) { + this.i18n.switchLocale(options.locale); + } + if (options.plugins && Array.isArray(options.plugins)) { + options.plugins.forEach((p) => { + this.use(p); + }); + } + return this; + }, + getStatus() { + return { + version: VERSION$1, + toasts: this._toasts.size, + theme: this.themes?.getCurrentTheme?.() || 'auto', + locale: this.i18n?.getCurrentLocale?.() || 'zh-CN', + plugins: this.plugins?.getNames?.() || [], + animations: this.animations?.getActiveCount?.() || 0, + }; + }, + getConfig() { + return { ...this._config }; + }, + updateConfig(config) { + if (config && typeof config === 'object') { + Object.assign(this._config, config); + } + return this; + }, + resetConfig() { + const keys = Object.keys(this._config); + keys.forEach(k => delete this._config[k]); + Object.assign(this._config, DEFAULTS); + return this; + }, + use(plugin, options = {}) { + if (typeof plugin === 'string') { + const preset = presetPlugins[plugin]; + if (!preset) { + console.warn(`Preset plugin "${plugin}" not found`); + return this; + } + this.plugins.register(plugin, { ...preset, ...options }); + // 连接插件钩子 + if (plugin === 'accessibility') { + Toast.on('afterShow', (toast) => { + const acc = preset; + if (typeof acc.announce === 'function') + acc.announce(toast); + }); + } + if (plugin === 'persistence') { + const saved = typeof preset.install === 'function' + ? preset.install(this.plugins) + : null; + if (saved) + this.configure(saved); + Toast.on('afterClose', () => { + const p = preset; + if (typeof p.save === 'function') + p.save(this.getConfig()); + }); + } + } + else if (plugin && typeof plugin === 'object') { + this.plugins.register(plugin.name || 'custom', { ...plugin, ...options }); + } + return this; + }, + destroy() { + if (this._destroyed) + return; + this._destroyed = true; + this.dismiss(); + // 清理子模块 + if (this.plugins && typeof this.plugins.destroy === 'function') { + this.plugins.destroy(); + } + if (this.themes) { + if (typeof this.themes.clearThemeListeners === 'function') { + this.themes.clearThemeListeners(); + } + if (typeof this.themes.unwatchSystemTheme === 'function') { + this.themes.unwatchSystemTheme(); + } + } + if (this.i18n && typeof this.i18n.clearLocaleListeners === 'function') { + this.i18n.clearLocaleListeners(); + } + if (this.animations && typeof this.animations.cancelAll === 'function') { + this.animations.cancelAll(); + } + // 清理 DOM + if (typeof document !== 'undefined') { + const containers = document.querySelectorAll('.met-container'); + containers.forEach((c) => { if (c.parentNode) + c.parentNode.removeChild(c); }); + const style = document.getElementById('metona-toast-styles'); + if (style && style.parentNode) + style.parentNode.removeChild(style); + } + this._toasts.clear(); + _containerCache.clear(); + }, + // 子模块引用(由 index.ts 注入实际实现) + animations: null, + themes: null, + i18n: null, + plugins: null, + presetPlugins: {}, + }; + // 连接 Toast 静态回调到 meToast 实例 + Toast.setCallbacks({ + onError: (info) => { + const onError = meToast._config.onError; + if (typeof onError === 'function') { + try { + onError(info); + } + catch (_e) { /* noop */ } + } + }, + removeToast: (id) => { + meToast._toasts.delete(id); + }, + }); + + /** + * MetonaToast Animations — 动画管理 + * @module animations + * @version 0.2.1 + */ + // 动画缓存 + const animationMap = new Map(); + // 注册默认动画 + Object.entries(ANIMATIONS).forEach(([name, config]) => { + animationMap.set(name, { + name, + enter: config.enter, + leave: config.leave, + duration: config.duration, + easing: config.easing, + }); + }); + /** + * 动画工具函数 + */ + const animationUtils = { + register(name, config) { + animationMap.set(name, { + name, + enter: config.enter || {}, + leave: config.leave || {}, + duration: config.duration || 300, + easing: config.easing || 'cubic-bezier(0.4, 0, 0.2, 1)', + }); + }, + unregister(name) { + animationMap.delete(name); + }, + get(name) { + return animationMap.get(name) || null; + }, + getAnimationNames() { + return Array.from(animationMap.keys()); + }, + getActiveCount() { + return animationMap.size; + }, + cancelAll() { + // CSS动画由浏览器原生管理,无需手动取消 + }, + reset() { + animationMap.clear(); + Object.entries(ANIMATIONS).forEach(([name, config]) => { + animationMap.set(name, { + name, + enter: config.enter, + leave: config.leave, + duration: config.duration, + easing: config.easing, + }); + }); + }, + destroy() { + animationMap.clear(); + }, + }; + + /** + * MetonaToast — 轻量级Toast通知库 + * @module metona-toast + * @version 0.2.1 + * @author thzxx + * @license MIT + */ + // 版本信息 + const VERSION = '0.2.1'; + /** + * 增强的 MeToast 对象 — 在 meToast 基础上注入子模块 + */ + const enhancedMeToast = { + ...meToast, + version: VERSION, + animations: animationUtils, + themes: themeUtils, + i18n: i18nUtils, + plugins: pluginUtils, + presetPlugins, + }; + // 初始化主题和国际化 + if (typeof themeUtils.initTheme === 'function') { + themeUtils.initTheme(); + } + if (typeof i18nUtils.initI18n === 'function') { + i18nUtils.initI18n(); + } + // 浏览器环境全局注册 + if (typeof window !== 'undefined') { + window.MeToast = enhancedMeToast; + window.Met = enhancedMeToast; + // Notification API — 页面不可见时自动发送系统通知 + const sendNotification = (toast) => { + try { + new Notification(toast.title || toast.type, { body: toast.message }); + } + catch (_e) { /* noop */ } + }; + enhancedMeToast._notify = (toast) => { + if (typeof Notification === 'undefined') + return; + if (Notification.permission === 'denied') + return; + if (!document.hidden) + return; + if (Notification.permission === 'default') { + Notification.requestPermission().then(p => { if (p === 'granted') + sendNotification(toast); }); + return; + } + sendNotification(toast); + }; + Toast.on('afterShow', (toast) => { + const config = toast.config; + if (config.notifyWhenHidden) { + (enhancedMeToast._notify)(toast); + } + }); + } + + exports.MeToast = enhancedMeToast; + exports.Met = enhancedMeToast; + exports.Toast = Toast; + exports.VERSION = VERSION; + exports.default = enhancedMeToast; + exports.meToast = enhancedMeToast; + + Object.defineProperty(exports, '__esModule', { value: true }); + +})); +//# sourceMappingURL=metona-toast.js.map diff --git a/dist/metona-toast.js.map b/dist/metona-toast.js.map new file mode 100644 index 0000000..4b17614 --- /dev/null +++ b/dist/metona-toast.js.map @@ -0,0 +1 @@ +{"version":3,"file":"metona-toast.js","sources":["../src/utils.ts","../src/icons.ts","../src/locales.ts","../src/constants.ts","../src/styles.ts","../src/themes.ts","../src/i18n.ts","../src/toast.ts","../src/templates.ts","../src/plugins.ts","../src/api.ts","../src/animations.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["VERSION"],"mappings":"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"} \ No newline at end of file diff --git a/dist/metona-toast.min.js b/dist/metona-toast.min.js new file mode 100644 index 0000000..64a75a3 --- /dev/null +++ b/dist/metona-toast.min.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).MeToast={})}(this,function(e){"use strict";const t=e=>{if("undefined"==typeof document)return String(null==e?"":e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'");const t=document.createElement("div");return t.textContent=String(null==e?"":e),t.innerHTML},n={success:'\n \n ',error:'\n \n \n \n ',warning:'\n \n \n \n ',info:'\n \n \n \n ',loading:'\n \n ',close:'\n \n \n ',check:'\n \n ',x:'\n \n \n ',alert:'\n \n \n \n ',question:'\n \n \n \n ',star:'\n \n ',heart:'\n \n ',bell:'\n \n \n ',mail:'\n \n \n ',settings:'\n \n \n ',user:'\n \n \n ',home:'\n \n \n ',search:'\n \n \n ',plus:'\n \n \n ',minus:'\n \n ',edit:'\n \n \n ',trash:'\n \n \n \n \n ',download:'\n \n \n \n ',upload:'\n \n \n \n ',share:'\n \n \n \n \n \n ',link:'\n \n \n ',external:'\n \n \n \n ',clock:'\n \n \n ',calendar:'\n \n \n \n \n ',map:'\n \n \n \n ',compass:'\n \n \n ',globe:'\n \n \n \n ',wifi:'\n \n \n \n \n ',cloud:'\n \n ',sun:'\n \n \n \n \n \n \n \n \n \n ',moon:'\n \n ',zap:'\n \n ',activity:'\n \n ',cpu:'\n \n \n \n \n \n \n \n \n \n \n ',database:'\n \n \n \n ',server:'\n \n \n \n \n ',terminal:'\n \n \n ',code:'\n \n \n ',git:'\n \n \n \n \n ',package:'\n \n \n \n \n ',layers:'\n \n \n \n ',grid:'\n \n \n \n \n ',list:'\n \n \n \n \n \n \n ',filter:'\n \n ',sort:'\n \n \n ',refresh:'\n \n \n \n ',sync:'\n \n \n \n ',power:'\n \n \n ',battery:'\n \n \n ',bluetooth:'\n \n ',volume:'\n \n \n ',mic:'\n \n \n \n \n ',camera:'\n \n \n ',image:'\n \n \n \n ',video:'\n \n \n ',music:'\n \n \n \n ',file:'\n \n \n ',folder:'\n \n ',clipboard:'\n \n \n ',save:'\n \n \n \n ',print:'\n \n \n \n ',eye:'\n \n \n ',eyeOff:'\n \n \n ',lock:'\n \n \n ',unlock:'\n \n \n ',shield:'\n \n ',key:'\n \n ',flag:'\n \n \n ',bookmark:'\n \n ',tag:'\n \n \n ',gift:'\n \n \n \n \n \n ',award:'\n \n \n ',target:'\n \n \n \n ',crosshair:'\n \n \n \n \n \n ',move:'\n \n \n \n \n \n \n ',maximize:'\n \n ',minimize:'\n \n ',copy:'\n \n \n ',cut:'\n \n \n \n \n \n ',paste:'\n \n \n ',rotateCw:'\n \n \n ',rotateCcw:'\n \n \n ',zoomIn:'\n \n \n \n \n ',zoomOut:'\n \n \n \n ',crop:'\n \n \n ',sliders:'\n \n \n \n \n \n \n \n \n \n ',toggleLeft:'\n \n \n ',toggleRight:'\n \n \n ',checkCircle:'\n \n \n ',xCircle:'\n \n \n \n ',alertCircle:'\n \n \n \n ',infoCircle:'\n \n \n \n ',helpCircle:'\n \n \n \n ',alertTriangle:'\n \n \n \n ',checkSquare:'\n \n \n ',square:'\n \n ',circle:'\n \n ',triangle:'\n \n ',hexagon:'\n \n ',octagon:'\n \n ',pentagon:'\n \n ',diamond:'\n \n '},o={"zh-CN":{close:"关闭",loading:"加载中...",success:"操作成功",error:"操作失败",warning:"警告",info:"信息",confirm:"确认",cancel:"取消",yes:"是",no:"否",ok:"确定",retry:"重试",undo:"撤销",redo:"重做",save:"保存",delete:"删除",edit:"编辑",add:"添加",remove:"移除",search:"搜索",filter:"筛选",sort:"排序",refresh:"刷新",sync:"同步",upload:"上传",download:"下载",share:"分享",copy:"复制",cut:"剪切",paste:"粘贴",print:"打印",export:"导出",import:"导入",settings:"设置",help:"帮助",about:"关于",version:"版本",language:"语言",theme:"主题",dark:"暗色",light:"亮色",auto:"自动",notifications:"通知",enable:"启用",disable:"禁用",on:"开启",off:"关闭",max:"最大",min:"最小",expand:"展开",collapse:"折叠",fullscreen:"全屏",exitFullscreen:"退出全屏",zoomIn:"放大",zoomOut:"缩小",reset:"重置",apply:"应用",submit:"提交",send:"发送",receive:"接收",connect:"连接",disconnect:"断开",start:"开始",stop:"停止",pause:"暂停",resume:"继续",next:"下一个",previous:"上一个",first:"第一个",last:"最后一个",back:"返回",forward:"前进",home:"首页",menu:"菜单",more:"更多",less:"更少",show:"显示",hide:"隐藏",visible:"可见",hidden:"隐藏",enabled:"已启用",disabled:"已禁用",active:"活跃",inactive:"非活跃",online:"在线",offline:"离线",connected:"已连接",disconnected:"已断开",loaded:"已加载",saving:"保存中",saved:"已保存",deleting:"删除中",deleted:"已删除",uploading:"上传中",uploaded:"已上传",downloading:"下载中",downloaded:"已下载",processing:"处理中",processed:"已处理",syncing:"同步中",synced:"已同步",sending:"发送中",sent:"已发送",receiving:"接收中",received:"已接收",connecting:"连接中",question:"问题",feedback:"反馈",report:"报告",bug:"错误",feature:"功能",improvement:"改进",suggestion:"建议",request:"请求",response:"响应",status:"状态",progress:"进度",complete:"完成",incomplete:"未完成",pending:"待处理",failed:"失败",cancelled:"已取消",timeout:"超时",expired:"已过期",invalid:"无效",valid:"有效",required:"必填",optional:"可选",allowed:"允许",denied:"拒绝",approved:"已批准",rejected:"已拒绝",accepted:"已接受",declined:"已拒绝",confirmed:"已确认",unconfirmed:"未确认",verified:"已验证",unverified:"未验证",authenticated:"已认证",unauthenticated:"未认证",authorized:"已授权",unauthorized:"未授权",public:"公开",private:"私有",protected:"受保护",internal:"内部",external:"外部",local:"本地",remote:"远程",global:"全局",system:"系统",user:"用户",admin:"管理员",moderator:"版主",guest:"访客",member:"成员",owner:"所有者",creator:"创建者",editor:"编辑者",viewer:"查看者",subscriber:"订阅者",follower:"关注者",following:"关注中",friend:"朋友",contact:"联系人",group:"群组",team:"团队",organization:"组织",company:"公司",department:"部门",project:"项目",task:"任务",issue:"问题",ticket:"工单",message:"消息",notification:"通知",alert:"警报",reminder:"提醒",event:"事件",activity:"活动",log:"日志",analytics:"分析",statistics:"统计",metrics:"指标",performance:"性能",security:"安全",privacy:"隐私",compliance:"合规",policy:"政策",terms:"条款",conditions:"条件",agreement:"协议",contract:"合同",license:"许可证",copyright:"版权",trademark:"商标",patent:"专利",tradeSecret:"商业秘密",confidential:"机密",sensitive:"敏感",critical:"关键",important:"重要",urgent:"紧急",high:"高",medium:"中",low:"低",none:"无",all:"全部",any:"任何",some:"一些",each:"每个",every:"每个",both:"两者",neither:"两者都不",either:"任一",other:"其他",another:"另一个",this:"这个",that:"那个",these:"这些",those:"那些",here:"这里",there:"那里",where:"哪里",when:"何时",why:"为什么",how:"如何",what:"什么",who:"谁",which:"哪个",whose:"谁的",whom:"谁"},"en-US":{close:"Close",loading:"Loading...",success:"Success",error:"Error",warning:"Warning",info:"Info",confirm:"Confirm",cancel:"Cancel",yes:"Yes",no:"No",ok:"OK",retry:"Retry",undo:"Undo",redo:"Redo",save:"Save",delete:"Delete",edit:"Edit",add:"Add",remove:"Remove",search:"Search",filter:"Filter",sort:"Sort",refresh:"Refresh",sync:"Sync",upload:"Upload",download:"Download",share:"Share",copy:"Copy",cut:"Cut",paste:"Paste",print:"Print",export:"Export",import:"Import",settings:"Settings",help:"Help",about:"About",version:"Version",language:"Language",theme:"Theme",dark:"Dark",light:"Light",auto:"Auto",notifications:"Notifications",enable:"Enable",disable:"Disable",on:"On",off:"Off",max:"Max",min:"Min",expand:"Expand",collapse:"Collapse",fullscreen:"Fullscreen",exitFullscreen:"Exit Fullscreen",zoomIn:"Zoom In",zoomOut:"Zoom Out",reset:"Reset",apply:"Apply",submit:"Submit",send:"Send",receive:"Receive",connect:"Connect",disconnect:"Disconnect",start:"Start",stop:"Stop",pause:"Pause",resume:"Resume",next:"Next",previous:"Previous",first:"First",last:"Last",back:"Back",forward:"Forward",home:"Home",menu:"Menu",more:"More",less:"Less",show:"Show",hide:"Hide",visible:"Visible",hidden:"Hidden",enabled:"Enabled",disabled:"Disabled",active:"Active",inactive:"Inactive",online:"Online",offline:"Offline",connected:"Connected",disconnected:"Disconnected",loaded:"Loaded",saving:"Saving",saved:"Saved",deleting:"Deleting",deleted:"Deleted",uploading:"Uploading",uploaded:"Uploaded",downloading:"Downloading",downloaded:"Downloaded",processing:"Processing",processed:"Processed",syncing:"Syncing",synced:"Synced",sending:"Sending",sent:"Sent",receiving:"Receiving",received:"Received",connecting:"Connecting",question:"Question",feedback:"Feedback",report:"Report",bug:"Bug",feature:"Feature",improvement:"Improvement",suggestion:"Suggestion",request:"Request",response:"Response",status:"Status",progress:"Progress",complete:"Complete",incomplete:"Incomplete",pending:"Pending",failed:"Failed",cancelled:"Cancelled",timeout:"Timeout",expired:"Expired",invalid:"Invalid",valid:"Valid",required:"Required",optional:"Optional",allowed:"Allowed",denied:"Denied",approved:"Approved",rejected:"Rejected",accepted:"Accepted",declined:"Declined",confirmed:"Confirmed",unconfirmed:"Unconfirmed",verified:"Verified",unverified:"Unverified",authenticated:"Authenticated",unauthenticated:"Unauthenticated",authorized:"Authorized",unauthorized:"Unauthorized",public:"Public",private:"Private",protected:"Protected",internal:"Internal",external:"External",local:"Local",remote:"Remote",global:"Global",system:"System",user:"User",admin:"Admin",moderator:"Moderator",guest:"Guest",member:"Member",owner:"Owner",creator:"Creator",editor:"Editor",viewer:"Viewer",subscriber:"Subscriber",follower:"Follower",following:"Following",friend:"Friend",contact:"Contact",group:"Group",team:"Team",organization:"Organization",company:"Company",department:"Department",project:"Project",task:"Task",issue:"Issue",ticket:"Ticket",message:"Message",notification:"Notification",alert:"Alert",reminder:"Reminder",event:"Event",activity:"Activity",log:"Log",analytics:"Analytics",statistics:"Statistics",metrics:"Metrics",performance:"Performance",security:"Security",privacy:"Privacy",compliance:"Compliance",policy:"Policy",terms:"Terms",conditions:"Conditions",agreement:"Agreement",contract:"Contract",license:"License",copyright:"Copyright",trademark:"Trademark",patent:"Patent",tradeSecret:"Trade Secret",confidential:"Confidential",sensitive:"Sensitive",critical:"Critical",important:"Important",urgent:"Urgent",high:"High",medium:"Medium",low:"Low",none:"None",all:"All",any:"Any",some:"Some",each:"Each",every:"Every",both:"Both",neither:"Neither",either:"Either",other:"Other",another:"Another",this:"This",that:"That",these:"These",those:"Those",here:"Here",there:"There",where:"Where",when:"When",why:"Why",how:"How",what:"What",who:"Who",which:"Which",whose:"Whose",whom:"Whom"}},r=Object.freeze({position:"top-right",duration:4e3,max:6,gap:12,offset:24,pauseOnHover:!0,closeOnClick:!0,draggable:!0,showProgress:!0,progressDirection:"horizontal",icon:!0,closeButton:!0,theme:"auto",animation:"slide",zIndex:9999,width:360,className:"",style:{},onShow:null,onBeforeShow:null,onClose:null,onClick:null,onUpdate:null,resetTimerOnUpdate:!1,notifyWhenHidden:!1,onError:null,locale:"zh-CN",plugins:[]}),i={success:{fg:"#10b981",bg:"rgba(16, 185, 129, 0.1)"},error:{fg:"#ef4444",bg:"rgba(239, 68, 68, 0.1)"},warning:{fg:"#f59e0b",bg:"rgba(245, 158, 11, 0.1)"},info:{fg:"#3b82f6",bg:"rgba(59, 130, 246, 0.1)"},loading:{fg:"#6366f1",bg:"rgba(99, 102, 241, 0.1)"},default:{fg:"#6b7280",bg:"rgba(107, 114, 128, 0.1)"},check:{fg:"#10b981",bg:"rgba(16, 185, 129, 0.1)"},x:{fg:"#ef4444",bg:"rgba(239, 68, 68, 0.1)"},alert:{fg:"#f59e0b",bg:"rgba(245, 158, 11, 0.1)"},question:{fg:"#8b5cf6",bg:"rgba(139, 92, 246, 0.1)"},star:{fg:"#f59e0b",bg:"rgba(245, 158, 11, 0.1)"},heart:{fg:"#ec4899",bg:"rgba(236, 72, 153, 0.1)"},bell:{fg:"#f59e0b",bg:"rgba(245, 158, 11, 0.1)"},mail:{fg:"#3b82f6",bg:"rgba(59, 130, 246, 0.1)"},settings:{fg:"#6b7280",bg:"rgba(107, 114, 128, 0.1)"},user:{fg:"#8b5cf6",bg:"rgba(139, 92, 246, 0.1)"},home:{fg:"#3b82f6",bg:"rgba(59, 130, 246, 0.1)"},search:{fg:"#6b7280",bg:"rgba(107, 114, 128, 0.1)"},plus:{fg:"#10b981",bg:"rgba(16, 185, 129, 0.1)"},minus:{fg:"#ef4444",bg:"rgba(239, 68, 68, 0.1)"},edit:{fg:"#3b82f6",bg:"rgba(59, 130, 246, 0.1)"},trash:{fg:"#ef4444",bg:"rgba(239, 68, 68, 0.1)"},download:{fg:"#3b82f6",bg:"rgba(59, 130, 246, 0.1)"},upload:{fg:"#10b981",bg:"rgba(16, 185, 129, 0.1)"},share:{fg:"#8b5cf6",bg:"rgba(139, 92, 246, 0.1)"},link:{fg:"#3b82f6",bg:"rgba(59, 130, 246, 0.1)"},external:{fg:"#6b7280",bg:"rgba(107, 114, 128, 0.1)"},clock:{fg:"#f59e0b",bg:"rgba(245, 158, 11, 0.1)"},calendar:{fg:"#3b82f6",bg:"rgba(59, 130, 246, 0.1)"},map:{fg:"#10b981",bg:"rgba(16, 185, 129, 0.1)"},compass:{fg:"#f59e0b",bg:"rgba(245, 158, 11, 0.1)"},globe:{fg:"#3b82f6",bg:"rgba(59, 130, 246, 0.1)"},wifi:{fg:"#10b981",bg:"rgba(16, 185, 129, 0.1)"},cloud:{fg:"#3b82f6",bg:"rgba(59, 130, 246, 0.1)"},sun:{fg:"#f59e0b",bg:"rgba(245, 158, 11, 0.1)"},moon:{fg:"#8b5cf6",bg:"rgba(139, 92, 246, 0.1)"},zap:{fg:"#f59e0b",bg:"rgba(245, 158, 11, 0.1)"},activity:{fg:"#ef4444",bg:"rgba(239, 68, 68, 0.1)"},cpu:{fg:"#6b7280",bg:"rgba(107, 114, 128, 0.1)"},database:{fg:"#3b82f6",bg:"rgba(59, 130, 246, 0.1)"},server:{fg:"#6b7280",bg:"rgba(107, 114, 128, 0.1)"},terminal:{fg:"#10b981",bg:"rgba(16, 185, 129, 0.1)"},code:{fg:"#8b5cf6",bg:"rgba(139, 92, 246, 0.1)"},git:{fg:"#ef4444",bg:"rgba(239, 68, 68, 0.1)"},package:{fg:"#f59e0b",bg:"rgba(245, 158, 11, 0.1)"},layers:{fg:"#3b82f6",bg:"rgba(59, 130, 246, 0.1)"},grid:{fg:"#6b7280",bg:"rgba(107, 114, 128, 0.1)"},list:{fg:"#6b7280",bg:"rgba(107, 114, 128, 0.1)"},filter:{fg:"#3b82f6",bg:"rgba(59, 130, 246, 0.1)"},sort:{fg:"#6b7280",bg:"rgba(107, 114, 128, 0.1)"},refresh:{fg:"#3b82f6",bg:"rgba(59, 130, 246, 0.1)"},sync:{fg:"#10b981",bg:"rgba(16, 185, 129, 0.1)"},power:{fg:"#ef4444",bg:"rgba(239, 68, 68, 0.1)"},battery:{fg:"#10b981",bg:"rgba(16, 185, 129, 0.1)"},bluetooth:{fg:"#3b82f6",bg:"rgba(59, 130, 246, 0.1)"},volume:{fg:"#6b7280",bg:"rgba(107, 114, 128, 0.1)"},mic:{fg:"#ef4444",bg:"rgba(239, 68, 68, 0.1)"},camera:{fg:"#6b7280",bg:"rgba(107, 114, 128, 0.1)"},image:{fg:"#8b5cf6",bg:"rgba(139, 92, 246, 0.1)"},video:{fg:"#ef4444",bg:"rgba(239, 68, 68, 0.1)"},music:{fg:"#8b5cf6",bg:"rgba(139, 92, 246, 0.1)"},file:{fg:"#6b7280",bg:"rgba(107, 114, 128, 0.1)"},folder:{fg:"#f59e0b",bg:"rgba(245, 158, 11, 0.1)"},clipboard:{fg:"#6b7280",bg:"rgba(107, 114, 128, 0.1)"},save:{fg:"#10b981",bg:"rgba(16, 185, 129, 0.1)"},print:{fg:"#6b7280",bg:"rgba(107, 114, 128, 0.1)"},eye:{fg:"#3b82f6",bg:"rgba(59, 130, 246, 0.1)"},eyeOff:{fg:"#6b7280",bg:"rgba(107, 114, 128, 0.1)"},lock:{fg:"#f59e0b",bg:"rgba(245, 158, 11, 0.1)"},unlock:{fg:"#10b981",bg:"rgba(16, 185, 129, 0.1)"},shield:{fg:"#3b82f6",bg:"rgba(59, 130, 246, 0.1)"},key:{fg:"#f59e0b",bg:"rgba(245, 158, 11, 0.1)"},flag:{fg:"#ef4444",bg:"rgba(239, 68, 68, 0.1)"},bookmark:{fg:"#3b82f6",bg:"rgba(59, 130, 246, 0.1)"},tag:{fg:"#8b5cf6",bg:"rgba(139, 92, 246, 0.1)"},gift:{fg:"#ec4899",bg:"rgba(236, 72, 153, 0.1)"},award:{fg:"#f59e0b",bg:"rgba(245, 158, 11, 0.1)"},target:{fg:"#ef4444",bg:"rgba(239, 68, 68, 0.1)"},crosshair:{fg:"#6b7280",bg:"rgba(107, 114, 128, 0.1)"},move:{fg:"#6b7280",bg:"rgba(107, 114, 128, 0.1)"},maximize:{fg:"#10b981",bg:"rgba(16, 185, 129, 0.1)"},minimize:{fg:"#ef4444",bg:"rgba(239, 68, 68, 0.1)"},copy:{fg:"#3b82f6",bg:"rgba(59, 130, 246, 0.1)"},cut:{fg:"#ef4444",bg:"rgba(239, 68, 68, 0.1)"},paste:{fg:"#10b981",bg:"rgba(16, 185, 129, 0.1)"},rotateCw:{fg:"#3b82f6",bg:"rgba(59, 130, 246, 0.1)"},rotateCcw:{fg:"#3b82f6",bg:"rgba(59, 130, 246, 0.1)"},zoomIn:{fg:"#10b981",bg:"rgba(16, 185, 129, 0.1)"},zoomOut:{fg:"#ef4444",bg:"rgba(239, 68, 68, 0.1)"},crop:{fg:"#6b7280",bg:"rgba(107, 114, 128, 0.1)"},sliders:{fg:"#6b7280",bg:"rgba(107, 114, 128, 0.1)"},toggleLeft:{fg:"#6b7280",bg:"rgba(107, 114, 128, 0.1)"},toggleRight:{fg:"#10b981",bg:"rgba(16, 185, 129, 0.1)"},checkCircle:{fg:"#10b981",bg:"rgba(16, 185, 129, 0.1)"},xCircle:{fg:"#ef4444",bg:"rgba(239, 68, 68, 0.1)"},alertCircle:{fg:"#f59e0b",bg:"rgba(245, 158, 11, 0.1)"},infoCircle:{fg:"#3b82f6",bg:"rgba(59, 130, 246, 0.1)"},helpCircle:{fg:"#8b5cf6",bg:"rgba(139, 92, 246, 0.1)"},alertTriangle:{fg:"#f59e0b",bg:"rgba(245, 158, 11, 0.1)"},checkSquare:{fg:"#10b981",bg:"rgba(16, 185, 129, 0.1)"},square:{fg:"#6b7280",bg:"rgba(107, 114, 128, 0.1)"},circle:{fg:"#6b7280",bg:"rgba(107, 114, 128, 0.1)"},triangle:{fg:"#f59e0b",bg:"rgba(245, 158, 11, 0.1)"},hexagon:{fg:"#3b82f6",bg:"rgba(59, 130, 246, 0.1)"},octagon:{fg:"#ef4444",bg:"rgba(239, 68, 68, 0.1)"},pentagon:{fg:"#8b5cf6",bg:"rgba(139, 92, 246, 0.1)"},diamond:{fg:"#ec4899",bg:"rgba(236, 72, 153, 0.1)"}},s={slide:{enter:{transform:"translateX(80px)",opacity:"0"},leave:{transform:"translateX(120%)",opacity:"0"},duration:400,easing:"cubic-bezier(0.25, 0.46, 0.45, 0.94)"},fade:{enter:{opacity:"0",filter:"blur(3px)"},leave:{opacity:"0",filter:"blur(3px)"},duration:500,easing:"ease"},scale:{enter:{transform:"scale(0.55)",opacity:"0"},leave:{transform:"scale(0.55)",opacity:"0"},duration:450,easing:"cubic-bezier(0.34, 1.56, 0.64, 1)"},bounce:{enter:{transform:"translateY(-80px)",opacity:"0"},leave:{transform:"translateY(20px)",opacity:"0"},duration:650,easing:"ease"},flip:{enter:{transform:"perspective(500px) rotateX(-90deg)",opacity:"0"},leave:{transform:"perspective(500px) rotateX(90deg)",opacity:"0"},duration:500,easing:"cubic-bezier(0.25, 0.46, 0.45, 0.94)"},rotate:{enter:{transform:"rotate(-25deg) scale(0.6)",opacity:"0"},leave:{transform:"rotate(25deg) scale(0.6)",opacity:"0"},duration:500,easing:"cubic-bezier(0.25, 0.46, 0.45, 0.94)"},zoom:{enter:{transform:"scale(0.1)",opacity:"0"},leave:{transform:"scale(0.1)",opacity:"0"},duration:500,easing:"cubic-bezier(0.34, 1.56, 0.64, 1)"},slideUp:{enter:{transform:"translateY(60px)",opacity:"0"},leave:{transform:"translateY(-120%)",opacity:"0"},duration:400,easing:"cubic-bezier(0.25, 0.46, 0.45, 0.94)"},slideDown:{enter:{transform:"translateY(-60px)",opacity:"0"},leave:{transform:"translateY(120%)",opacity:"0"},duration:400,easing:"cubic-bezier(0.25, 0.46, 0.45, 0.94)"},slideLeft:{enter:{transform:"translateX(-90px)",opacity:"0"},leave:{transform:"translateX(120%)",opacity:"0"},duration:400,easing:"cubic-bezier(0.25, 0.46, 0.45, 0.94)"},slideRight:{enter:{transform:"translateX(90px)",opacity:"0"},leave:{transform:"translateX(-120%)",opacity:"0"},duration:400,easing:"cubic-bezier(0.25, 0.46, 0.45, 0.94)"}},a={light:{bg:"rgba(255, 255, 255, 0.96)",text:"#1f2937",border:"rgba(0, 0, 0, 0.06)",shadow:"0 10px 36px -10px rgba(0, 0, 0, 0.18), 0 4px 14px -4px rgba(0, 0, 0, 0.08)",hoverShadow:"0 14px 48px -10px rgba(0, 0, 0, 0.22), 0 6px 18px -4px rgba(0, 0, 0, 0.10)",progressBg:"rgba(0, 0, 0, 0.06)",closeHoverBg:"rgba(0, 0, 0, 0.06)"},dark:{bg:"rgba(28, 32, 40, 0.94)",text:"#e6e8eb",border:"rgba(255, 255, 255, 0.08)",shadow:"0 10px 36px -10px rgba(0, 0, 0, 0.6), 0 4px 14px -4px rgba(0, 0, 0, 0.4)",hoverShadow:"0 14px 48px -8px rgba(0, 0, 0, 0.6), 0 6px 18px -4px rgba(0, 0, 0, 0.4)",progressBg:"rgba(255, 255, 255, 0.08)",closeHoverBg:"rgba(255, 255, 255, 0.08)"},auto:{bg:"rgba(255, 255, 255, 0.96)",text:"#1f2937",border:"rgba(0, 0, 0, 0.06)",shadow:"0 10px 36px -10px rgba(0, 0, 0, 0.18), 0 4px 14px -4px rgba(0, 0, 0, 0.08)",hoverShadow:"0 14px 48px -10px rgba(0, 0, 0, 0.22), 0 6px 18px -4px rgba(0, 0, 0, 0.10)",progressBg:"rgba(0, 0, 0, 0.06)",closeHoverBg:"rgba(0, 0, 0, 0.06)"},warm:{bg:"rgba(255, 251, 235, 0.96)",text:"#78350f",border:"rgba(245, 158, 11, 0.2)",shadow:"0 10px 36px -10px rgba(245, 158, 11, 0.18), 0 4px 14px -4px rgba(245, 158, 11, 0.08)",hoverShadow:"0 14px 48px -10px rgba(245, 158, 11, 0.22), 0 6px 18px -4px rgba(245, 158, 11, 0.10)",progressBg:"rgba(245, 158, 11, 0.1)",closeHoverBg:"rgba(245, 158, 11, 0.1)"}};let l=null,c="auto";const d=new Set;let h=null,g=null;const p=()=>"undefined"==typeof window?"light":"undefined"!=typeof window&&"function"==typeof window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",u=e=>"auto"===e?p():e,m=e=>{const t=u(e);return a[t]||a.light},f=e=>{c=e;const t=u(e);if("undefined"!=typeof document){document.documentElement.setAttribute("data-met-theme",t),document.documentElement.classList.remove("met-theme-light","met-theme-dark","met-theme-auto"),document.documentElement.classList.add(`met-theme-${t}`);const n=m(e);b(n)}C(e,t)},b=e=>{if("undefined"==typeof document)return;const t=document.documentElement;t.style.setProperty("--met-bg",e.bg),t.style.setProperty("--met-text",e.text),t.style.setProperty("--met-border",e.border),t.style.setProperty("--met-shadow",e.shadow),t.style.setProperty("--met-hover-shadow",e.hoverShadow),t.style.setProperty("--met-progress-bg",e.progressBg),t.style.setProperty("--met-close-hover-bg",e.closeHoverBg),t.style.setProperty("--met-success","#10b981"),t.style.setProperty("--met-error","#ef4444"),t.style.setProperty("--met-warning","#f59e0b"),t.style.setProperty("--met-info","#3b82f6"),t.style.setProperty("--met-loading","#6366f1")},y=()=>u(c),x=e=>{f(e),v(e)},v=e=>{if("undefined"!=typeof localStorage)try{localStorage.setItem("metona-toast-theme",e)}catch(e){}},w=()=>{if("undefined"!=typeof localStorage)try{return localStorage.getItem("metona-toast-theme")||"auto"}catch(e){}return"auto"},k=()=>{"undefined"!=typeof window&&window.matchMedia&&(h&&g&&h.removeEventListener("change",g),h=window.matchMedia("(prefers-color-scheme: dark)"),g=()=>{"auto"===c&&f("auto")},h.addEventListener("change",g))},C=(e,t)=>{d.forEach(n=>{try{n(e,t)}catch(e){}})},B=e=>{const t=m(e);return`\n .met-theme-${u(e)} {\n --met-bg: ${t.bg};\n --met-text: ${t.text};\n --met-border: ${t.border};\n --met-shadow: ${t.shadow};\n --met-hover-shadow: ${t.hoverShadow};\n --met-progress-bg: ${t.progressBg};\n --met-close-hover-bg: ${t.closeHoverBg};\n }\n `},j={getSystemTheme:p,resolveTheme:u,getThemeConfig:m,applyTheme:f,getCurrentTheme:()=>c,getResolvedTheme:y,switchTheme:x,toggleTheme:()=>{const e=y();x("dark"===e?"light":"dark")},resetToAuto:()=>{x("auto")},initTheme:()=>{const e=w();f(e),k()},watchSystemTheme:k,unwatchSystemTheme:()=>{h&&g&&(h.removeEventListener("change",g),h=null,g=null)},addThemeListener:e=>(d.add(e),()=>{d.delete(e)}),removeThemeListener:e=>{d.delete(e)},clearThemeListeners:()=>{d.clear()},registerTheme:(e,t)=>{a[e]={bg:t.bg||a.light.bg,text:t.text||a.light.text,border:t.border||a.light.border,shadow:t.shadow||a.light.shadow,hoverShadow:t.hoverShadow||a.light.hoverShadow,progressBg:t.progressBg||a.light.progressBg,closeHoverBg:t.closeHoverBg||a.light.closeHoverBg}},unregisterTheme:e=>{"light"!==e&&"dark"!==e&&"auto"!==e&&delete a[e]},getAllThemes:()=>({...a}),getThemeNames:()=>Object.keys(a),hasTheme:e=>e in a,getThemePreview:e=>{const t=m(e),n=u(e);return{name:e,resolved:n,colors:{background:t.bg,text:t.text,border:t.border},isDark:"dark"===n,isLight:"light"===n,isAuto:"auto"===e}},generateThemeCSS:B,applyThemeCSS:e=>{if("undefined"==typeof document)return;const t=B(e),n="metona-toast-theme-css",o=document.getElementById(n);o&&o.remove();const r=document.createElement("style");r.id=n,r.textContent=t,document.head.appendChild(r)},removeThemeCSS:()=>{if("undefined"==typeof document)return;const e=document.getElementById("metona-toast-theme-css");e&&e.remove()},saveTheme:v,loadTheme:w};let _="zh-CN";const T=new Set;let S="zh-CN";const M=()=>_,z=e=>{o[e]||(e=S),_=e,R(e),q(e)},L=(e,t={})=>{const n=E(_,e);if(void 0!==n)return A(n,t);if(_!==S){const n=E(S,e);if(void 0!==n)return A(n,t)}return e},E=(e,t)=>{const n=o[e];if(!n)return;const r=t.split(".");let i=n;for(const e of r){if(!i||"object"!=typeof i||!(e in i))return;i=i[e]}return"string"==typeof i?i:void 0},A=(e,t)=>e.replace(/\{(\w+)\}/g,(e,n)=>void 0!==t[n]?String(t[n]):e),$=e=>void 0!==E(_,e)||void 0!==E(S,e),P=(e,t)=>{for(const n in t)t[n]instanceof Object&&n in e&&e[n]instanceof Object?P(e[n],t[n]):e[n]=t[n];return e},I=()=>Object.keys(o),N=e=>e in o,H=e=>({"zh-CN":"简体中文","zh-TW":"繁體中文","en-US":"English (US)","en-GB":"English (UK)",ja:"日本語",ko:"한국어",fr:"Français",de:"Deutsch",es:"Español",pt:"Português",ru:"Русский",ar:"العربية",hi:"हिन्दी",th:"ไทย",vi:"Tiếng Việt",id:"Bahasa Indonesia",ms:"Bahasa Melayu",tr:"Türkçe",it:"Italiano",nl:"Nederlands",pl:"Polski",uk:"Українська",cs:"Čeština",sv:"Svenska",da:"Dansk",fi:"Suomi",nb:"Norsk",el:"Ελληνικά",he:"עברית",hu:"Magyar",ro:"Română",bg:"Български",hr:"Hrvatski",sk:"Slovenčina",sl:"Slovenščina",et:"Eesti",lv:"Latviešu",lt:"Lietuvių",ca:"Català",gl:"Galego",eu:"Euskara",cy:"Cymraeg",ga:"Gaeilge",mt:"Malti",is:"Íslenska",mk:"Македонски",sq:"Shqip",sr:"Српски",bs:"Bosanski",me:"Crnogorski",ka:"ქართული",hy:"Հայերեն",az:"Azərbaycan",uz:"O'zbek",kk:"Қазақ",ky:"Кыргыз",tg:"Тоҷикӣ",tk:"Türkmen",mn:"Монгол",ne:"नेपाली",si:"සිංහල",my:"မြန်မာ",km:"ខ្មែរ",lo:"ລາວ",am:"አማርኛ",sw:"Kiswahili",yo:"Yorùbá",ig:"Igbo",ha:"Hausa",zu:"isiZulu",af:"Afrikaans",xh:"isiXhosa",st:"Sesotho",tn:"Setswana",ts:"Xitsonga",ss:"siSwati",ve:"Tshivenda",nr:"isiNdebele"}[e]||e),D=e=>["ar","he","fa","ur","yi","ps","sd","ug"].includes(e)?"rtl":"ltr",O=e=>({code:e,name:H(e),direction:D(e),isSupported:N(e),isCurrent:e===_,isFallback:e===S}),q=e=>{if("undefined"!=typeof localStorage)try{localStorage.setItem("metona-toast-locale",e)}catch(e){}},F=()=>{if("undefined"!=typeof localStorage)try{return localStorage.getItem("metona-toast-locale")||V()}catch(e){}return V()},V=()=>{if("undefined"!=typeof navigator){const e=navigator.language||navigator.userLanguage;if(e&&N(e))return e;const t=e?.split("-")[0];if(t&&N(t))return t}return S},R=e=>{T.forEach(t=>{try{t(e)}catch(e){}})},U=(e,t={})=>{try{const n=e instanceof Date?e:new Date(e);return new Intl.DateTimeFormat(_,t).format(n)}catch(t){return String(e)}},X=(e,t={})=>{try{return new Intl.PluralRules(_,t).select(e)}catch(t){return 1===e?"one":"other"}},Y={t:L,plural:(e,t,n={})=>{const o=`${e}.${X(t)}`;return $(o)?L(o,{...n,count:t}):$(e)?L(e,{...n,count:t}):e},getCurrentLocale:M,setCurrentLocale:z,switchLocale:e=>{z(e)},getFallbackLocale:()=>S,setFallbackLocale:e=>{o[e]&&(S=e)},hasTranslation:$,getTranslations:e=>o[e]||{},addTranslations:(e,t)=>{o[e]||(o[e]={}),P(o[e],t)},removeTranslation:(e,t)=>{const n=o[e];if(!n)return;const r=t.split(".");let i=n;for(let e=0;e{o[e]&&(o[e]={})},getSupportedLocales:I,isLocaleSupported:N,getLocaleName:H,getLocaleDirection:D,getLocaleInfo:O,getAllLocaleInfo:()=>I().map(O),formatNumber:(e,t={})=>{try{return new Intl.NumberFormat(_,t).format(e)}catch(t){return e.toString()}},formatCurrency:(e,t="USD",n={})=>{try{return new Intl.NumberFormat(_,{style:"currency",currency:t,...n}).format(e)}catch(t){return e.toString()}},formatPercent:(e,t={})=>{try{return new Intl.NumberFormat(_,{style:"percent",minimumFractionDigits:0,maximumFractionDigits:2,...t}).format(e/100)}catch(t){return`${e}%`}},formatDate:U,formatTime:(e,t={})=>U(e,{hour:"numeric",minute:"numeric",second:"numeric",...t}),formatRelativeTime:(e,t={})=>{try{const n=e instanceof Date?e:new Date(e),o=new Date,r=n.getTime()-o.getTime(),i=new Intl.RelativeTimeFormat(_,{numeric:"auto",...t}),s=[{unit:"year",ms:31536e6},{unit:"month",ms:2592e6},{unit:"week",ms:6048e5},{unit:"day",ms:864e5},{unit:"hour",ms:36e5},{unit:"minute",ms:6e4},{unit:"second",ms:1e3}];for(const{unit:e,ms:t}of s)if(Math.abs(r)>=t||"second"===e){const n=Math.round(r/t);return i.format(n,e)}return String(e)}catch(t){return String(e)}},formatList:(e,t={})=>{const n=Intl;if("function"==typeof n.ListFormat)try{return new n.ListFormat(_,{style:"long",type:"conjunction"}).format(e)}catch(e){}return e.join(", ")},formatPlural:X,addLocaleListener:e=>(T.add(e),()=>{T.delete(e)}),removeLocaleListener:e=>{T.delete(e)},clearLocaleListeners:()=>{T.clear()},initI18n:()=>{const e=F();z(e)},saveLocale:q,loadLocale:F,getDefaultLocale:V};o["zh-CN"],o["en-US"];class W{static setCallbacks(e){void 0!==e.onError&&(W._onError=e.onError),void 0!==e.removeToast&&(W._removeToast=e.removeToast)}static on(e,t){return this._hooks.has(e)||this._hooks.set(e,[]),this._hooks.get(e).push(t),()=>this.off(e,t)}static off(e,t){const n=this._hooks.get(e);n&&this._hooks.set(e,n.filter(e=>e!==t))}static trigger(e,t){const n=this._hooks.get(e);if(!n||0===n.length)return!0;let o=!0;return n.forEach(n=>{try{!1===n(t)&&(o=!1)}catch(n){if(W._onError)try{W._onError({hook:e,error:n,toast:t})}catch(e){}}}),o}constructor(e){this.el=null,this.barEl=null,this.rafId=null,this.startedAt=0,this.paused=!1,this.closing=!1,this.group=null,this._cleanups=[],this.id=e.id||"met-"+Date.now().toString(36)+"-"+Math.random().toString(36).slice(2,8),this.type=e.type||"default",this.title=e.title||"",this.message=e.message??e.content??"",this.html=e.html||"",this.iconHTML=e.iconHTML||"",this.config={...r,...e},e.style&&"object"==typeof e.style&&(this.config.style={...e.style}),this.remaining=this.config.duration||0,this.group=e.group||null}_palette(){const e=(e=>u(e))(this.config.theme||"auto"),t=i[this.type]||i.default,n=a[e]||a.light;return{theme:e,c:t,t:{bg:n.bg,border:n.border,shadow:n.shadow}}}create(){if("undefined"==typeof window||"undefined"==typeof document)return this;if(!W.trigger("beforeShow",this))return this;if("function"==typeof this.config.onBeforeShow)try{if(!1===this.config.onBeforeShow(this))return this}catch(e){}(()=>{if("undefined"==typeof document)return;if(l&&document.getElementById("metona-toast-styles"))return;l=document.createElement("style"),l.id="metona-toast-styles",l.textContent='\n .met-container {\n pointer-events: none;\n display: flex;\n flex-direction: column;\n gap: 12px;\n box-sizing: border-box;\n padding: 24px;\n max-width: 100vw;\n position: fixed;\n z-index: 9999;\n }\n\n .met-container.top-left { top: 0; left: 0; align-items: flex-start; }\n .met-container.top-center { top: 0; left: 0; right: 0; align-items: center; }\n .met-container.top-right { top: 0; right: 0; align-items: flex-end; }\n .met-container.bottom-left { bottom: 0; left: 0; align-items: flex-start; }\n .met-container.bottom-center{ bottom: 0; left: 0; right: 0; align-items: center; }\n .met-container.bottom-right { bottom: 0; right: 0; align-items: flex-end; }\n\n .met-toast {\n position: relative;\n display: flex;\n align-items: flex-start;\n gap: 12px;\n padding: 14px 16px;\n border-radius: 12px;\n box-sizing: border-box;\n backdrop-filter: blur(14px) saturate(180%);\n -webkit-backdrop-filter: blur(14px) saturate(180%);\n font: 14px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;\n user-select: none;\n -webkit-user-select: none;\n transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1),\n box-shadow 0.25s ease,\n opacity 0.25s ease;\n will-change: transform, opacity;\n flex-shrink: 0;\n pointer-events: auto;\n min-width: 240px;\n max-width: calc(100vw - 48px);\n width: 360px;\n border: 1px solid var(--met-border, rgba(0,0,0,0.06));\n background: var(--met-bg, rgba(255,255,255,0.96));\n color: var(--met-text, #1f2937);\n box-shadow: var(--met-shadow, 0 10px 36px -10px rgba(0,0,0,0.18), 0 4px 14px -4px rgba(0,0,0,0.08));\n transform: translateZ(0);\n -webkit-transform: translateZ(0);\n backface-visibility: hidden;\n -webkit-backface-visibility: hidden;\n perspective: 1000;\n }\n\n .met-toast:hover {\n box-shadow: var(--met-hover-shadow, 0 14px 48px -10px rgba(0,0,0,0.22), 0 6px 18px -4px rgba(0,0,0,0.10)) !important;\n }\n\n .met-toast.met-clickable {\n cursor: pointer;\n }\n\n .met-icon {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n margin-top: 1px;\n }\n\n .met-content {\n flex: 1;\n min-width: 0;\n word-wrap: break-word;\n overflow-wrap: break-word;\n }\n\n .met-title {\n font-weight: 600;\n font-size: 14px;\n letter-spacing: 0.1px;\n }\n\n .met-message {\n font-size: 13px;\n opacity: 0.85;\n margin-top: 2px;\n }\n\n .met-close {\n flex-shrink: 0;\n background: transparent;\n border: 0;\n padding: 4px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n transition: background 0.2s, color 0.2s;\n line-height: 0;\n color: inherit;\n opacity: 0.5;\n }\n\n .met-close:hover {\n opacity: 1;\n background: var(--met-close-hover-bg, rgba(0,0,0,0.06));\n }\n\n .met-progress {\n position: absolute;\n left: 0; right: 0; bottom: 0;\n height: 3px;\n overflow: hidden;\n background: var(--met-progress-bg, rgba(0,0,0,0.06));\n border-radius: 0 0 12px 12px;\n }\n\n .met-progress-v {\n position: absolute;\n left: 0; top: 0; bottom: 0;\n width: 3px;\n overflow: hidden;\n background: var(--met-progress-bg, rgba(0,0,0,0.06));\n border-radius: 12px 0 0 12px;\n }\n\n .met-bar {\n position: absolute;\n left: 0; top: 0;\n height: 100%; width: 100%;\n transform-origin: left;\n transform: scaleX(1);\n }\n\n .met-bar-v {\n position: absolute;\n left: 0; bottom: 0;\n width: 100%; height: 100%;\n transform-origin: bottom;\n transform: scaleY(1);\n }\n\n .met-side {\n position: absolute;\n left: 0; top: 0; bottom: 0;\n width: 4px;\n border-radius: 12px 0 0 12px;\n }\n\n .met-spin {\n animation: met-rot 1s linear infinite;\n transform-origin: 50% 50%;\n }\n\n .met-toast.met-leaving {\n pointer-events: none;\n z-index: 1;\n }\n\n @keyframes met-rot {\n to { transform: rotate(360deg); }\n }\n\n .met-anim-slide.met-toast,\n .met-anim-fade.met-toast,\n .met-anim-scale.met-toast,\n .met-anim-bounce.met-toast,\n .met-anim-flip.met-toast,\n .met-anim-rotate.met-toast,\n .met-anim-zoom.met-toast,\n .met-anim-slideUp.met-toast,\n .met-anim-slideDown.met-toast,\n .met-anim-slideLeft.met-toast,\n .met-anim-slideRight.met-toast {\n opacity: 0;\n }\n\n @keyframes met-slide-in {\n 0% { transform: translateX(80px); opacity: 0; }\n 65% { transform: translateX(-6px); opacity: 1; }\n 100% { transform: translateX(0); opacity: 1; }\n }\n @keyframes met-fade-in {\n 0% { opacity: 0; filter: blur(3px); }\n 100% { opacity: 1; filter: blur(0); }\n }\n @keyframes met-scale-in {\n 0% { transform: scale(0.55); opacity: 0; }\n 65% { transform: scale(1.07); opacity: 1; }\n 100% { transform: scale(1); opacity: 1; }\n }\n @keyframes met-bounce-in {\n 0% { transform: translateY(-80px); opacity: 0; animation-timing-function: ease-in; }\n 45% { transform: translateY(14px); opacity: 1; animation-timing-function: ease-out; }\n 65% { transform: translateY(-12px); animation-timing-function: ease-in; }\n 82% { transform: translateY(4px); animation-timing-function: ease-out; }\n 100% { transform: translateY(0); opacity: 1; }\n }\n @keyframes met-flip-in {\n 0% { transform: perspective(500px) rotateX(-90deg); opacity: 0; }\n 60% { transform: perspective(500px) rotateX(8deg); opacity: 1; }\n 85% { transform: perspective(500px) rotateX(-2deg); }\n 100% { transform: perspective(500px) rotateX(0); opacity: 1; }\n }\n @keyframes met-rotate-in {\n 0% { transform: rotate(-25deg) scale(0.6); opacity: 0; }\n 60% { transform: rotate(4deg) scale(1.05); opacity: 1; }\n 85% { transform: rotate(-1deg) scale(0.98); }\n 100% { transform: rotate(0) scale(1); opacity: 1; }\n }\n @keyframes met-zoom-in {\n 0% { transform: scale(0.1); opacity: 0; }\n 50% { transform: scale(1.12); opacity: 1; }\n 75% { transform: scale(0.94); }\n 100% { transform: scale(1); opacity: 1; }\n }\n @keyframes met-slideUp-in {\n 0% { transform: translateY(60px); opacity: 0; }\n 70% { transform: translateY(-6px); opacity: 1; }\n 100% { transform: translateY(0); opacity: 1; }\n }\n @keyframes met-slideDown-in {\n 0% { transform: translateY(-60px); opacity: 0; }\n 70% { transform: translateY(6px); opacity: 1; }\n 100% { transform: translateY(0); opacity: 1; }\n }\n @keyframes met-slideLeft-in {\n 0% { transform: translateX(-90px); opacity: 0; }\n 65% { transform: translateX(6px); opacity: 1; }\n 100% { transform: translateX(0); opacity: 1; }\n }\n @keyframes met-slideRight-in {\n 0% { transform: translateX(90px); opacity: 0; }\n 65% { transform: translateX(-6px); opacity: 1; }\n 100% { transform: translateX(0); opacity: 1; }\n }\n\n .met-anim-slide.met-toast.met-show { animation: met-slide-in 0.40s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; }\n .met-anim-fade.met-toast.met-show { animation: met-fade-in 0.50s ease forwards; }\n .met-anim-scale.met-toast.met-show { animation: met-scale-in 0.45s cubic-bezier(0.34, 1.56, 0.64, 1) forwards; }\n .met-anim-bounce.met-toast.met-show { animation: met-bounce-in 0.65s ease forwards; }\n .met-anim-flip.met-toast.met-show { animation: met-flip-in 0.50s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; }\n .met-anim-rotate.met-toast.met-show { animation: met-rotate-in 0.50s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; }\n .met-anim-zoom.met-toast.met-show { animation: met-zoom-in 0.50s cubic-bezier(0.34, 1.56, 0.64, 1) forwards; }\n .met-anim-slideUp.met-toast.met-show { animation: met-slideUp-in 0.40s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; }\n .met-anim-slideDown.met-toast.met-show { animation: met-slideDown-in 0.40s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; }\n .met-anim-slideLeft.met-toast.met-show { animation: met-slideLeft-in 0.40s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; }\n .met-anim-slideRight.met-toast.met-show { animation: met-slideRight-in 0.40s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; }\n\n @media (max-width: 480px) {\n .met-container { padding: 12px !important; }\n .met-toast { width: 100% !important; min-width: 0 !important; }\n }\n\n @media (max-width: 768px) {\n .met-toast { font-size: 13px; }\n .met-title { font-size: 13px; }\n .met-message { font-size: 12px; }\n }\n\n @media (min-width: 1200px) {\n .met-toast { width: 400px; }\n }\n\n @media (min-width: 1920px) {\n .met-toast { width: 440px; }\n }\n\n @media (max-width: 320px) {\n .met-toast { width: 100%; min-width: 0; padding: 12px 14px; }\n .met-container { padding: 8px; }\n }\n\n @media (orientation: landscape) and (max-height: 500px) {\n .met-container { padding: 12px 24px; }\n .met-toast { min-height: 44px; padding: 10px 14px; }\n }\n\n @media (orientation: portrait) and (max-width: 500px) {\n .met-container { padding: 12px; }\n .met-toast { width: 100%; min-width: 0; }\n }\n\n @media (prefers-reduced-motion: reduce) {\n .met-toast { transition: opacity 0.15s !important; }\n .met-toast.met-show { animation: none !important; opacity: 1 !important; }\n .met-spin { animation-duration: 2.5s !important; }\n }\n\n @media (forced-colors: active) {\n .met-toast { border: 2px solid ButtonText; }\n .met-close { border: 1px solid ButtonText; }\n }\n\n @media (prefers-contrast: high) {\n .met-toast { border-width: 3px; border-style: solid; }\n .met-close { border: 2px solid currentColor; border-radius: 4px; }\n }\n\n .met-toast:focus-visible {\n outline: 2px solid #3b82f6;\n outline-offset: 2px;\n }\n .met-close:focus-visible {\n outline: 2px solid #3b82f6;\n outline-offset: 2px;\n }\n\n @media (hover: none) and (pointer: coarse) {\n .met-toast:hover { box-shadow: inherit; }\n .met-toast { min-height: 48px; }\n .met-close { min-width: 48px; min-height: 48px; }\n }\n\n @media print {\n .met-container { display: none !important; }\n .met-toast { display: none !important; }\n }\n\n :fullscreen .met-container,\n :picture-in-picture .met-container {\n z-index: 2147483647;\n }\n\n @supports (padding: max(0px)) {\n .met-container {\n padding: max(24px, env(safe-area-inset-top))\n max(24px, env(safe-area-inset-right))\n max(24px, env(safe-area-inset-bottom))\n max(24px, env(safe-area-inset-left));\n }\n }\n\n .met-toast:active {\n transform: scale(0.98);\n }\n\n .met-toast.met-success { border-left: 4px solid #10b981; }\n .met-toast.met-error { border-left: 4px solid #ef4444; }\n .met-toast.met-warning { border-left: 4px solid #f59e0b; }\n .met-toast.met-info { border-left: 4px solid #3b82f6; }\n .met-toast.met-loading { border-left: 4px solid #6366f1; }\n\n .met-bar, .met-bar-v {\n transition: transform 0.1s linear;\n }\n\n .met-container::-webkit-scrollbar { width: 6px; height: 6px; }\n .met-container::-webkit-scrollbar-track { background: transparent; }\n .met-container::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.2); border-radius: 3px; }\n .met-container::-webkit-scrollbar-thumb:hover { background: rgba(0,0,0,0.3); }\n\n .met-toast.met-theme-dark {\n background: rgba(28, 32, 40, 0.94);\n color: #e6e8eb;\n border-color: rgba(255, 255, 255, 0.08);\n box-shadow: 0 10px 36px -10px rgba(0, 0, 0, 0.6), 0 4px 14px -4px rgba(0, 0, 0, 0.4);\n }\n .met-toast.met-theme-dark:hover {\n box-shadow: 0 14px 48px -8px rgba(0, 0, 0, 0.6), 0 6px 18px -4px rgba(0, 0, 0, 0.4) !important;\n }\n .met-toast.met-theme-dark .met-close:hover {\n background: rgba(255, 255, 255, 0.08);\n }\n .met-toast.met-theme-dark .met-progress,\n .met-toast.met-theme-dark .met-progress-v {\n background: rgba(255, 255, 255, 0.08);\n }\n\n .met-toast.met-theme-light {\n background: rgba(255, 255, 255, 0.96);\n color: #1f2937;\n border-color: rgba(0, 0, 0, 0.06);\n box-shadow: 0 10px 36px -10px rgba(0, 0, 0, 0.18), 0 4px 14px -4px rgba(0, 0, 0, 0.08);\n }\n .met-toast.met-theme-light:hover {\n box-shadow: 0 14px 48px -10px rgba(0, 0, 0, 0.22), 0 6px 18px -4px rgba(0, 0, 0, 0.10) !important;\n }\n .met-toast.met-theme-light .met-close:hover {\n background: rgba(0, 0, 0, 0.06);\n }\n .met-toast.met-theme-light .met-progress,\n .met-toast.met-theme-light .met-progress-v {\n background: rgba(0, 0, 0, 0.06);\n }\n\n .met-toast[data-theme] {\n --met-bg: var(--met-theme-bg);\n --met-text: var(--met-theme-text);\n --met-border: var(--met-theme-border);\n --met-shadow: var(--met-theme-shadow);\n }\n\n @media (prefers-color-scheme: dark) {\n .met-theme-auto .met-toast {\n background: rgba(28, 32, 40, 0.94);\n color: #e6e8eb;\n border-color: rgba(255, 255, 255, 0.08);\n box-shadow: 0 10px 36px -10px rgba(0, 0, 0, 0.6), 0 4px 14px -4px rgba(0, 0, 0, 0.4);\n }\n .met-theme-auto .met-toast:hover {\n box-shadow: 0 14px 48px -8px rgba(0, 0, 0, 0.6), 0 6px 18px -4px rgba(0, 0, 0, 0.4) !important;\n }\n .met-theme-auto .met-close:hover { background: rgba(255, 255, 255, 0.08); }\n .met-theme-auto .met-progress,\n .met-theme-auto .met-progress-v { background: rgba(255, 255, 255, 0.08); }\n }\n\n @media (prefers-color-scheme: light) {\n .met-theme-auto .met-toast {\n background: rgba(255, 255, 255, 0.96);\n color: #1f2937;\n border-color: rgba(0, 0, 0, 0.06);\n box-shadow: 0 10px 36px -10px rgba(0, 0, 0, 0.18), 0 4px 14px -4px rgba(0, 0, 0, 0.08);\n }\n .met-theme-auto .met-toast:hover {\n box-shadow: 0 14px 48px -10px rgba(0, 0, 0, 0.22), 0 6px 18px -4px rgba(0, 0, 0, 0.10) !important;\n }\n .met-theme-auto .met-close:hover { background: rgba(0, 0, 0, 0.06); }\n .met-theme-auto .met-progress,\n .met-theme-auto .met-progress-v { background: rgba(0, 0, 0, 0.06); }\n }\n '.replace(/\s+/g," "),document.head.appendChild(l)})();const e=this._getContainer(),{theme:t,c:n,t:o}=this._palette();this._limitToasts(e);const r=document.createElement("div");if(r.className=this._buildClassName(t),r.setAttribute("role","error"===this.type||"warning"===this.type?"alert":"status"),r.setAttribute("aria-live","error"===this.type?"assertive":"polite"),r.dataset.id=this.id,this._applyStyles(r,t,o),this._buildContent(r,n),this.el=r,(this.config.position||"top-right").startsWith("top")?e.insertBefore(r,e.firstChild):e.appendChild(r),this._bindEvents(r),this._startTimer(),requestAnimationFrame(()=>{requestAnimationFrame(()=>{r.classList.add("met-show")})}),"function"==typeof this.config.onShow)try{this.config.onShow(this)}catch(e){}return W.trigger("afterShow",this),this}_getContainer(){const e=this.config.position||"top-right",t=this.config.zIndex||9999,n="rtl"===D(M())?e.replace("left","__TMP__").replace("right","left").replace("__TMP__","right"):e,o=G.get(document.body);if(o&&o.has(n))return o.get(n);G.has(document.body)||G.set(document.body,new Map);const r=document.createElement("div");return r.className=`met-container ${n}`,r.setAttribute("aria-label","Notifications"),r.setAttribute("role","region"),r.style.cssText=`\n display:flex;\n flex-direction:column;\n gap:${this.config.gap||12}px;\n box-sizing:border-box;\n padding:${this.config.offset||24}px;\n max-width:100vw;\n position:fixed;\n z-index:${t};\n pointer-events:none;\n ${{"top-left":"top:0;left:0;align-items:flex-start","top-center":"top:0;left:0;right:0;align-items:center","top-right":"top:0;right:0;align-items:flex-end","bottom-left":"bottom:0;left:0;align-items:flex-start","bottom-center":"bottom:0;left:0;right:0;align-items:center","bottom-right":"bottom:0;right:0;align-items:flex-end"}[n]||"top:0;right:0;align-items:flex-end"}\n `,document.body.appendChild(r),G.get(document.body).set(n,r),r}_limitToasts(e){const t=this.config.max||6,n=Array.from(e.querySelectorAll(".met-toast"));if(n.length>=t){const e=n[0],t=e?.dataset.id;t&&W._removeToast&&W._removeToast(t)}}_buildClassName(e){const t=["slide","fade","scale","bounce","flip","rotate","zoom","slideUp","slideDown","slideLeft","slideRight"].includes(this.config.animation||"")?this.config.animation:"slide";return["met-toast",`met-${this.type}`,`met-theme-${e}`,`met-anim-${t}`,this.config.closeOnClick||this.config.draggable?"met-clickable":"",this.config.className||""].filter(Boolean).join(" ")}_applyStyles(e,t,n){const o="number"==typeof this.config.width?`${this.config.width}px`:"string"==typeof this.config.width?this.config.width:"360px",r=(t,n)=>e.style.setProperty(t,n,"important");r("position","relative"),r("flex-shrink","0"),r("min-width","240px"),r("max-width","calc(100vw - 48px)"),r("width",o),this.config.style&&Object.keys(this.config.style).length>0&&Object.entries(this.config.style).forEach(([t,n])=>{e.style[t]=n})}_buildContent(e,o){if("function"==typeof this.config.render)return e.innerHTML=this.config.render(this),void(this.barEl=e.querySelector(".met-bar, .met-bar-v"));const r=!1!==this.config.icon&&(this.iconHTML||n[this.type]),i=!1!==this.config.closeButton,s=!1!==this.config.showProgress&&(this.config.duration||0)>0,a=!r&&"default"!==this.type,l=this.title?`
${t(this.title)}
`:"",c=this.html?`
${this.html}
`:this.message?`
${t(this.message)}
`:"",d=r?`
${this.iconHTML||n[this.type]}
`:"",h=i?``:"",g=s?"vertical"===this.config.progressDirection?`
`:`
`:"",p=a?`
`:"";e.innerHTML=`\n ${d}\n ${p}\n
\n ${l}\n ${c}\n
\n ${h}\n ${g}\n `,this.barEl=e.querySelector(".met-bar, .met-bar-v")}_bindEvents(e){const t=e=>{const t=e.target;if(t.closest(".met-close"))return e.stopPropagation(),void this.close();if(!this.config.closeOnClick||t.closest(".met-close"));else{if("function"==typeof this.config.onClick)try{this.config.onClick(this)}catch(e){}this.close()}};if(e.addEventListener("click",t),this._cleanups.push(()=>e.removeEventListener("click",t)),this.config.pauseOnHover&&(this.config.duration||0)>0){const t=()=>this._pause(),n=()=>this._resume();e.addEventListener("mouseenter",t),e.addEventListener("mouseleave",n),this._cleanups.push(()=>{e.removeEventListener("mouseenter",t),e.removeEventListener("mouseleave",n)})}this.config.draggable&&this._bindDrag(e)}_bindDrag(e){let t=0,n=0,o=0,r=0,i=!1;const s=o=>{o.target.closest(".met-close")||(i=!0,t=o.clientX,n=o.clientY,e.setPointerCapture(o.pointerId),e.style.transition="none",this._pause())},a=s=>{i&&(o=s.clientX-t,r=s.clientY-n,e.style.transform=`translate(${o}px, ${r}px) rotate(${.1*o}deg)`,e.style.opacity=String(Math.max(0,1-Math.abs(o)/200)))},l=t=>{i&&(i=!1,e.releasePointerCapture(t.pointerId),e.style.transition="",Math.abs(o)>120?(e.style.transform=`translate(${2*o}px, ${r}px) rotate(${.2*o}deg)`,e.style.opacity="0",setTimeout(()=>this.close(!0),250)):(e.style.transform="",e.style.opacity="",this._resume()),o=r=0)};e.addEventListener("pointerdown",s),e.addEventListener("pointermove",a),e.addEventListener("pointerup",l),e.addEventListener("pointercancel",l),this._cleanups.push(()=>{e.removeEventListener("pointerdown",s),e.removeEventListener("pointermove",a),e.removeEventListener("pointerup",l),e.removeEventListener("pointercancel",l)})}_startTimer(e=!1){if((this.config.duration||0)<=0)return;e||(this.startedAt=Date.now(),this.remaining=this.config.duration||0);const t=()=>{if(!this.paused&&!this.closing){try{const e=Date.now()-this.startedAt;if(this.remaining=Math.max(0,(this.config.duration||0)-e),this.barEl){const e=this.remaining/(this.config.duration||1),t="vertical"===this.config.progressDirection?`scaleY(${e})`:`scaleX(${e})`;this.barEl.style.transform=t}if(this.remaining<=0)return void this.close()}catch(e){if(W._onError)try{W._onError({source:"timer",error:e,toast:this})}catch(e){}}this.rafId=requestAnimationFrame(t)}};this.rafId=requestAnimationFrame(t)}_pause(){this.paused||(this.config.duration||0)<=0||(this.paused=!0,null!==this.rafId&&cancelAnimationFrame(this.rafId),this.remaining=Math.max(0,(this.config.duration||0)-(Date.now()-this.startedAt)))}_resume(){this.paused&&(this.paused=!1,this.startedAt=Date.now()-((this.config.duration||0)-this.remaining),this._startTimer(!0))}update(e){W.trigger("beforeUpdate",this);const n=e.type&&e.type!==this.type;if(e.type&&(this.type=e.type),void 0!==e.title&&(this.title=e.title),void 0!==e.message&&(this.message=e.message),void 0!==e.html&&(this.html=e.html),!this.el)return W.trigger("afterUpdate",this),this;if(n){if(["met-success","met-error","met-warning","met-info","met-loading","met-default"].forEach(e=>this.el.classList.remove(e)),this.el.classList.add(`met-${this.type}`),this.barEl){const e=i[this.type]||i.default;this.barEl.style.background=e.fg}const e=this.el.querySelector(".met-side");if(e){const t=i[this.type]||i.default;e.style.background=t.fg}}const o=this.el.querySelector(".met-content");if(o){const e=this.title?`
${t(this.title)}
`:"",n=this.html?`
${this.html}
`:this.message?`
${t(this.message)}
`:"";o.innerHTML=`${e}${n}`}if(this.config.resetTimerOnUpdate&&(this.config.duration||0)>0&&(null!==this.rafId&&cancelAnimationFrame(this.rafId),this.startedAt=Date.now(),this.remaining=this.config.duration||0,this._startTimer()),"function"==typeof this.config.onUpdate)try{this.config.onUpdate(this)}catch(e){}return W.trigger("afterUpdate",this),this}updatePosition(e){if(!e||!this.el)return this;const t=this.el.parentNode;this.config.position=e;const n=this._getContainer();return t===n||(t&&this.el.parentNode===t&&t.removeChild(this.el),e.startsWith("top")?n.insertBefore(this.el,n.firstChild):n.appendChild(this.el)),this}remove(){null!==this.rafId&&(cancelAnimationFrame(this.rafId),this.rafId=null),this._cleanups.forEach(e=>{try{e()}catch(e){}}),this._cleanups=[],this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el),this.el=null,W._removeToast&&W._removeToast(this.id)}close(e=!1){if(this.closing)return;this.closing=!0,W.trigger("beforeClose",this),null!==this.rafId&&cancelAnimationFrame(this.rafId),this._cleanups.forEach(e=>{try{e()}catch(e){}}),this._cleanups=[];const t=this.el;if(!t)return void(W._removeToast&&W._removeToast(this.id));const n=t.parentNode;if(n&&!e){const e=t.getBoundingClientRect(),o=n.getBoundingClientRect();t.style.position="absolute",t.style.top=e.top-o.top+"px",t.style.left=e.left-o.left+"px",t.style.width=e.width+"px",t.style.margin="0"}t.classList.add("met-leaving"),t.classList.remove("met-show");const o=this.config.position||"top-right",r="rtl"===D(M());let i="scale(.96)";i=o.includes("right")?r?"translateX(-120%)":"translateX(120%)":o.includes("left")?r?"translateX(120%)":"translateX(-120%)":o.startsWith("top")?"translateY(-20px)":"translateY(20px)",t.style.transform=i,t.style.opacity="0",setTimeout(()=>this._destroy(),e?0:300)}_destroy(){if(this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el),this.el=null,"function"==typeof this.config.onClose)try{this.config.onClose(this)}catch(e){}W.trigger("afterClose",this),W._removeToast&&W._removeToast(this.id)}}W._hooks=new Map,W._onError=null,W._removeToast=null;const G=new Map,K=e=>`\n
\n ${e}\n
`,Z=e=>{const n=e.confirmText||L("confirm"),o=e.cancelText||L("cancel"),r=e.confirmColor||"#10b981",i=e.cancelColor||"#6b7280";return K(`\n \n \n `)},J=e=>{const n=e.submitText||L("confirm"),o=e.cancelText||L("cancel"),r=e.submitColor||"#3b82f6",i=e.cancelColor||"#6b7280";return`\n \n ${K(`\n \n \n `)}\n `},Q=e=>`\n
\n
\n
\n
0%
\n `,ee=e=>{if(!Array.isArray(e)||0===e.length)return"";const n=e.map((e,n)=>``).join("");return K(n)};class te{constructor(){this.plugins=new Map,this.initialized=!1}register(e,t){if(this.plugins.has(e))return this;if(!t||"object"!=typeof t||!t.name)return this;const n={...t,installed:!1,enabled:!0};if(n.name||(n.name=e),this.plugins.set(e,n),n.install)try{n.install(this),n.installed=!0}catch(e){}return this}unregister(e){const t=this.plugins.get(e);if(!t)return this;if(t.uninstall)try{t.uninstall(this)}catch(e){}return this.plugins.delete(e),this}get(e){return this.plugins.get(e)||null}has(e){return this.plugins.has(e)}getAll(){return Array.from(this.plugins.values())}getNames(){return Array.from(this.plugins.keys())}enable(e){const t=this.plugins.get(e);return t&&(t.enabled=!0),this}disable(e){const t=this.plugins.get(e);return t&&(t.enabled=!1),this}isEnabled(e){const t=this.plugins.get(e);return!!t&&!!t.enabled}destroy(){this.plugins.forEach(e=>{if(e.destroy)try{e.destroy(this)}catch(e){}}),this.plugins.clear()}}const ne={keyboard:{name:"keyboard",version:"1.0.0",description:"ESC 关闭所有 Toast",_handler:null,install(){if("undefined"==typeof document)return;const e=e=>{"Escape"===e.key&&document.querySelectorAll(".met-toast .met-close").forEach(e=>{try{e.click()}catch(e){}})};this._handler=e,document.addEventListener("keydown",e)},uninstall(){const e=this._handler;e&&"undefined"!=typeof document&&(document.removeEventListener("keydown",e),this._handler=null)}},persistence:{name:"persistence",version:"1.0.0",description:"自动持久化配置到 localStorage",storageKey:"metona-toast-config",install(){if("undefined"!=typeof localStorage)try{const e=this.storageKey,t=localStorage.getItem(e);return t?JSON.parse(t):null}catch(e){return null}return null},save(e){if("undefined"!=typeof localStorage)try{const t=this.storageKey;localStorage.setItem(t,JSON.stringify(e))}catch(e){}},uninstall(){if("undefined"!=typeof localStorage)try{const e=this.storageKey;localStorage.removeItem(e)}catch(e){}}},accessibility:{name:"accessibility",version:"1.0.0",description:"通过屏幕阅读器朗读 Toast 内容",announce(e){if("undefined"==typeof document)return;const t=document.createElement("div");t.setAttribute("aria-live","assertive"),t.setAttribute("aria-atomic","true"),t.style.cssText="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;";const n=L(e.type)||e.type;t.textContent=`${n}: ${e.title||""} ${e.message||""}`,document.body.appendChild(t),setTimeout(()=>{t.parentNode&&t.parentNode.removeChild(t)},3e3)}}},oe={createManager:()=>new te,register:(e,t)=>re.register(e,t),unregister:e=>re.unregister(e),get:e=>re.get(e),has:e=>re.has(e),getAll:()=>re.getAll(),getNames:()=>re.getNames(),enable:e=>re.enable(e),disable:e=>re.disable(e),isEnabled:e=>re.isEnabled(e),getPreset:e=>ne[e]||null,getAllPresets:()=>({...ne}),createPlugin:e=>({name:e.name||"custom",version:e.version||"1.0.0",description:e.description||"",hooks:e.hooks||{},install:e.install||void 0,uninstall:e.uninstall||void 0,...e}),validatePlugin(e){const t=[];return e&&"object"==typeof e||t.push("Plugin must be an object"),e.name||e.version||t.push("Plugin must have a name or version"),{valid:0===t.length,errors:t}}},re=new te,ie=(e,t="default")=>{const[n,o]=e;return"string"==typeof n?{...o||{},type:o?.type||t,message:n}:n&&"object"==typeof n?{...n,type:n.type||t}:{type:t,message:""}},se={_toasts:new Map,_config:{...r},version:"0.2.1",configure(e){return e&&"object"==typeof e?(Object.assign(this._config,e),e.theme&&f(e.theme),e.locale&&z(e.locale),this):this},_emit(e){const t={...this._config,...e};t.content&&!t.message&&(t.message=t.content);const n=new W(t);return n.create(),this._toasts.set(n.id,n),n},_remove(e){this._toasts.delete(e)},find(e){if(e)return this._toasts.get(e)},show(e,t={}){const n=ie([e,t],"default");return this._emit(n)},success(e,t={}){const n=ie([e,t],"success");return this._emit(n)},error(e,t={}){const n=ie([e,t],"error");return this._emit(n)},warning(e,t={}){const n=ie([e,t],"warning");return this._emit(n)},info(e,t={}){const n=ie([e,t],"info");return this._emit(n)},loading(e,t={}){const n=ie([e,t],"loading");n.duration=0,n.closeButton=!1,n.showProgress=!1;const o=this._emit(n);return{id:o.id,success:(e,t={})=>this._resolve(o,"success",e||L("success"),t),error:(e,t={})=>this._resolve(o,"error",e||L("error"),t),info:(e,t={})=>this._resolve(o,"info",e||L("info"),t),warning:(e,t={})=>this._resolve(o,"warning",e||L("warning"),t),update:e=>(o.update(e),this),dismiss:()=>o.close()}},promise(e,t={}){if(!e||"function"!=typeof e.then)return Promise.reject(new Error("Invalid promise"));const n=t.loading||L("loading"),o=t.success||L("success"),r=t.error||L("error"),i=this.loading(n);return Promise.resolve(e).then(e=>(i.success(o),e)).catch(e=>{throw i.error(r),e})},_resolve(e,t,n,o){const r=e.id,i=this._toasts.get(r);if(!i)return null;const s=i.config.position;return i.close(),this._emit({...o,type:t,message:n,position:s})},confirm(e,t={}){return"string"!=typeof e?Promise.resolve(!1):new Promise(n=>{let o=!1;const r=e=>{o||(o=!0,clearTimeout(i),n(e))},i=setTimeout(()=>r(!1),1e4),s=this._emit({...t,type:t.type||"warning",message:e,duration:0,closeButton:!1,closeOnClick:!1,draggable:!1,html:Z(t)});setTimeout(()=>{const e=s.el?.querySelector(".met-confirm-btn"),t=s.el?.querySelector(".met-cancel-btn");e&&e.addEventListener("click",()=>{s.close(),r(!0)}),t&&t.addEventListener("click",()=>{s.close(),r(!1)})},0)})},prompt(e,t={}){return"string"!=typeof e?Promise.resolve(null):new Promise(n=>{let o=!1;const r=e=>{o||(o=!0,clearTimeout(i),n(e))},i=setTimeout(()=>r(null),1e4),s=this._emit({...t,type:t.type||"info",message:e,duration:0,closeButton:!1,closeOnClick:!1,draggable:!1,html:J(t)});setTimeout(()=>{const e=s.el?.querySelector(".met-input"),t=s.el?.querySelector(".met-submit-btn"),n=s.el?.querySelector(".met-cancel-btn");e&&(e.focus(),e.addEventListener("keydown",t=>{"Enter"===t.key&&(s.close(),r(e.value))})),t&&t.addEventListener("click",()=>{s.close(),r(e?.value||null)}),n&&n.addEventListener("click",()=>{s.close(),r(null)})},0)})},progress(e,t={}){const n=ie([e,t],"info");n.duration=0,n.closeButton=!1,n.showProgress=!1;const o=this._emit({...n,html:Q(t)});return{id:o.id,setProgress(e){const t=o.el?.querySelector(".met-progress-fill"),n=o.el?.querySelector(".met-progress-text");t&&(t.style.width=`${Math.min(100,Math.max(0,e))}%`),n&&(n.textContent=`${Math.round(e)}%`)},complete(e){this.setProgress(100),setTimeout(()=>{o.update({type:"success",message:e||L("success"),html:""}),setTimeout(()=>o.close(),1e3)},300)},error(e){o.update({type:"error",message:e||L("error"),html:""}),setTimeout(()=>o.close(),2e3)},dismiss(){o.close()}}},countdown(e,t=10,n={}){if("string"!=typeof e)return{id:"",cancel:()=>{},pause:()=>{},resume:()=>{}};let o=Math.max(1,parseInt(String(t))||10),r=null;const i=this._emit({...n,type:n.type||"warning",message:e.replace(/\{seconds\}/g,String(o)),duration:0,closeButton:!0,showProgress:!1}),s=()=>{if(o--,o<=0){if(null!==r&&clearInterval(r),i.close(),"function"==typeof n.onComplete)try{n.onComplete()}catch(e){}}else i.update({message:e.replace(/\{seconds\}/g,String(o))})};return r=setInterval(s,1e3),{id:i.id,cancel(){null!==r&&clearInterval(r),i.close()},pause(){null!==r&&clearInterval(r)},resume(){null!==r&&clearInterval(r),r=setInterval(s,1e3)}}},action(e,t=[],n={}){const o=ie([e,n],"info");o.duration=n.duration??0,o.closeButton=n.closeButton??!0;const r=this._emit({...o,html:(o.html||"")+ee(t)});return Array.isArray(t)&&setTimeout(()=>{t.forEach((e,t)=>{const n=r.el?.querySelector(`.met-action-btn-${t}`);n&&"function"==typeof e.onClick&&n.addEventListener("click",()=>{try{e.onClick(r)}catch(e){}!1!==e.close&&r.close()})})},0),{id:r.id,toast:r,dismiss:()=>r.close()}},queue(e,t={}){if(!Array.isArray(e)){const e=Promise.resolve();return{then:t=>e.then(t),catch:t=>e.catch(t),cancel:()=>{}}}let n=!1;const o=new Promise(o=>{let r=0;const i=t.delay||1e3,s=t.onClose,a=()=>{if(n||r>=e.length)return void o();const l=e[r];r++;const c="string"==typeof l?l:l?.message||"",d="object"==typeof l&&null!==l?l:{},h=d.onClose;this._emit({...t,...d,message:c,duration:d.duration||t.duration||3e3,onClose:e=>{if("function"==typeof h)try{h(e)}catch(e){}if("function"==typeof s)try{s(e)}catch(e){}setTimeout(a,i)}})};a()});return{then:(e,t)=>o.then(e,t),catch:e=>o.catch(e),cancel:()=>{n=!0}}},stack(e,t={}){Array.isArray(e)&&e.forEach((e,n)=>{setTimeout(()=>{const n="string"==typeof e?e:e?.message||"";this._emit({...t,..."object"==typeof e&&null!==e?e:{},message:n})},n*(t.stagger||100))})},dismiss(e){if(e){const t=this._toasts.get(e);return void(t&&t.close())}this._toasts.forEach(e=>e.close())},removeToast(e){if(!e)return;const t=this._toasts.get(e);t&&t.remove()},clear(e){this._toasts.forEach(t=>{e&&t.config.position!==e||t.close()})},getAll(){return new Map(this._toasts)},count(){return this._toasts.size},group(e){const t=this,n={_group:e};return["show","success","error","warning","info","loading","action"].forEach(o=>{n[o]=(...n)=>{const r=n[n.length-1],i="object"==typeof r&&null!==r&&!Array.isArray(r),s=t;return i&&1===n.length?s[o]({...r,group:e}):i?(n.pop(),s[o](...n,{...r,group:e})):s[o](...n,{group:e})}}),n.dismiss=()=>t.dismissGroup(e),n.count=()=>t._groupCount(e),n},dismissGroup(e){this._toasts.forEach(t=>{t.group===e&&t.close()})},_groupCount(e){let t=0;return this._toasts.forEach(n=>{n.group===e&&t++}),t},getToasts(){return Array.from(this._toasts.values())},hasToasts(){return this._toasts.size>0},getToast(e){return e&&this._toasts.get(e)||null},closeAll(){this._toasts.forEach(e=>e.close())},clearAll(){this._toasts.forEach(e=>e.close())},pauseAll(){this._toasts.forEach(e=>e._pause())},resumeAll(){this._toasts.forEach(e=>e._resume())},updateAll(e){e&&"object"==typeof e&&this._toasts.forEach(t=>t.update(e))},findToasts(e){return"function"!=typeof e?[]:Array.from(this._toasts.values()).filter(e)},findByType(e){return this.findToasts(t=>t.type===e)},findByPosition(e){return this.findToasts(t=>t.config.position===e)},init(e={}){return e.config&&this.configure(e.config),e.theme&&this.themes&&this.themes.switchTheme(e.theme),e.locale&&this.i18n&&this.i18n.switchLocale(e.locale),e.plugins&&Array.isArray(e.plugins)&&e.plugins.forEach(e=>{this.use(e)}),this},getStatus(){return{version:"0.2.1",toasts:this._toasts.size,theme:this.themes?.getCurrentTheme?.()||"auto",locale:this.i18n?.getCurrentLocale?.()||"zh-CN",plugins:this.plugins?.getNames?.()||[],animations:this.animations?.getActiveCount?.()||0}},getConfig(){return{...this._config}},updateConfig(e){return e&&"object"==typeof e&&Object.assign(this._config,e),this},resetConfig(){return Object.keys(this._config).forEach(e=>delete this._config[e]),Object.assign(this._config,r),this},use(e,t={}){if("string"==typeof e){const n=ne[e];if(!n)return this;if(this.plugins.register(e,{...n,...t}),"accessibility"===e&&W.on("afterShow",e=>{const t=n;"function"==typeof t.announce&&t.announce(e)}),"persistence"===e){const e="function"==typeof n.install?n.install(this.plugins):null;e&&this.configure(e),W.on("afterClose",()=>{const e=n;"function"==typeof e.save&&e.save(this.getConfig())})}}else e&&"object"==typeof e&&this.plugins.register(e.name||"custom",{...e,...t});return this},destroy(){if(!this._destroyed){if(this._destroyed=!0,this.dismiss(),this.plugins&&"function"==typeof this.plugins.destroy&&this.plugins.destroy(),this.themes&&("function"==typeof this.themes.clearThemeListeners&&this.themes.clearThemeListeners(),"function"==typeof this.themes.unwatchSystemTheme&&this.themes.unwatchSystemTheme()),this.i18n&&"function"==typeof this.i18n.clearLocaleListeners&&this.i18n.clearLocaleListeners(),this.animations&&"function"==typeof this.animations.cancelAll&&this.animations.cancelAll(),"undefined"!=typeof document){document.querySelectorAll(".met-container").forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)});const e=document.getElementById("metona-toast-styles");e&&e.parentNode&&e.parentNode.removeChild(e)}this._toasts.clear(),G.clear()}},animations:null,themes:null,i18n:null,plugins:null,presetPlugins:{}};W.setCallbacks({onError:e=>{const t=se._config.onError;if("function"==typeof t)try{t(e)}catch(e){}},removeToast:e=>{se._toasts.delete(e)}});const ae=new Map;Object.entries(s).forEach(([e,t])=>{ae.set(e,{name:e,enter:t.enter,leave:t.leave,duration:t.duration,easing:t.easing})});const le={register(e,t){ae.set(e,{name:e,enter:t.enter||{},leave:t.leave||{},duration:t.duration||300,easing:t.easing||"cubic-bezier(0.4, 0, 0.2, 1)"})},unregister(e){ae.delete(e)},get:e=>ae.get(e)||null,getAnimationNames:()=>Array.from(ae.keys()),getActiveCount:()=>ae.size,cancelAll(){},reset(){ae.clear(),Object.entries(s).forEach(([e,t])=>{ae.set(e,{name:e,enter:t.enter,leave:t.leave,duration:t.duration,easing:t.easing})})},destroy(){ae.clear()}},ce="0.2.1",de={...se,version:ce,animations:le,themes:j,i18n:Y,plugins:oe,presetPlugins:ne};if("function"==typeof j.initTheme&&j.initTheme(),"function"==typeof Y.initI18n&&Y.initI18n(),"undefined"!=typeof window){window.MeToast=de,window.Met=de;const e=e=>{try{new Notification(e.title||e.type,{body:e.message})}catch(e){}};de._notify=t=>{"undefined"!=typeof Notification&&"denied"!==Notification.permission&&document.hidden&&("default"!==Notification.permission?e(t):Notification.requestPermission().then(n=>{"granted"===n&&e(t)}))},W.on("afterShow",e=>{e.config.notifyWhenHidden&&de._notify(e)})}e.MeToast=de,e.Met=de,e.Toast=W,e.VERSION=ce,e.default=de,e.meToast=de,Object.defineProperty(e,"__esModule",{value:!0})});