@luanlu/mk-motion 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +120 -0
  2. package/dist/a11y/focus-trap.d.ts +10 -0
  3. package/dist/a11y/keyboard.d.ts +28 -0
  4. package/dist/components/alert/alert.d.ts +18 -0
  5. package/dist/components/avatar/avatar.d.ts +31 -0
  6. package/dist/components/breadcrumb/breadcrumb.d.ts +16 -0
  7. package/dist/components/button/button.d.ts +28 -0
  8. package/dist/components/card/card.d.ts +19 -0
  9. package/dist/components/collapse/collapse.d.ts +23 -0
  10. package/dist/components/dialog/dialog.d.ts +27 -0
  11. package/dist/components/drawer/drawer.d.ts +21 -0
  12. package/dist/components/empty/empty.d.ts +14 -0
  13. package/dist/components/form/checkbox.d.ts +27 -0
  14. package/dist/components/form/radio.d.ts +32 -0
  15. package/dist/components/form/select.d.ts +32 -0
  16. package/dist/components/form/slider.d.ts +31 -0
  17. package/dist/components/input/input.d.ts +31 -0
  18. package/dist/components/layout/divider.d.ts +12 -0
  19. package/dist/components/layout/row.d.ts +14 -0
  20. package/dist/components/layout/space.d.ts +13 -0
  21. package/dist/components/loading/loading.d.ts +8 -0
  22. package/dist/components/menu/menu.d.ts +30 -0
  23. package/dist/components/message/message.d.ts +10 -0
  24. package/dist/components/popover/popover.d.ts +31 -0
  25. package/dist/components/progress/progress.d.ts +25 -0
  26. package/dist/components/steps/steps.d.ts +22 -0
  27. package/dist/components/switch/switch.d.ts +23 -0
  28. package/dist/components/table/table.d.ts +47 -0
  29. package/dist/components/tabs/tabs.d.ts +30 -0
  30. package/dist/components/tag/tag.d.ts +24 -0
  31. package/dist/components/tooltip/tooltip.d.ts +8 -0
  32. package/dist/core/animator.d.ts +29 -0
  33. package/dist/core/timeline.d.ts +14 -0
  34. package/dist/core/utils.d.ts +13 -0
  35. package/dist/effects/glitch.d.ts +14 -0
  36. package/dist/effects/particle.d.ts +17 -0
  37. package/dist/effects/text-split.d.ts +14 -0
  38. package/dist/effects/wave-text.d.ts +17 -0
  39. package/dist/gesture/draggable.d.ts +23 -0
  40. package/dist/gesture/spring.d.ts +24 -0
  41. package/dist/index.d.ts +109 -0
  42. package/dist/interactive/coverflow.d.ts +24 -0
  43. package/dist/interactive/cursor-trail.d.ts +11 -0
  44. package/dist/interactive/flip-card.d.ts +18 -0
  45. package/dist/interactive/magnetic.d.ts +12 -0
  46. package/dist/micro/hover-lift.d.ts +15 -0
  47. package/dist/micro/ripple.d.ts +13 -0
  48. package/dist/mk-motion.js +3194 -0
  49. package/dist/mk-motion.umd.cjs +149 -0
  50. package/dist/motion/component-motion.d.ts +43 -0
  51. package/dist/presets/index.d.ts +20 -0
  52. package/dist/scroll/scroll-trigger.d.ts +20 -0
  53. package/dist/style.css +1 -0
  54. package/dist/text/count-up.d.ts +23 -0
  55. package/dist/text/typewriter.d.ts +21 -0
  56. package/dist/theme/theme.d.ts +28 -0
  57. package/dist/transitions/blur-reveal.d.ts +14 -0
  58. package/dist/transitions/collapse.d.ts +16 -0
  59. package/dist/transitions/lazy-image.d.ts +14 -0
  60. package/dist/transitions/list.d.ts +9 -0
  61. package/dist/transitions/loading.d.ts +13 -0
  62. package/dist/transitions/parallax.d.ts +16 -0
  63. package/dist/transitions/shimmer.d.ts +13 -0
  64. package/dist/transitions/toast.d.ts +25 -0
  65. package/dist/types.d.ts +4 -0
  66. package/package.json +57 -0
package/dist/style.css ADDED
@@ -0,0 +1 @@
1
+ @keyframes mk-slideInUp{0%{opacity:0;transform:translate3d(0,30px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes mk-slideInDown{0%{opacity:0;transform:translate3d(0,-30px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes mk-slideInLeft{0%{opacity:0;transform:translate3d(-30px,0,0)}to{opacity:1;transform:translateZ(0)}}@keyframes mk-slideInRight{0%{opacity:0;transform:translate3d(30px,0,0)}to{opacity:1;transform:translateZ(0)}}@keyframes mk-slideOutUp{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-30px,0)}}@keyframes mk-slideOutDown{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,30px,0)}}@keyframes mk-zoomIn{0%{opacity:0;transform:scale3d(.85,.85,.85)}to{opacity:1;transform:scaleZ(1)}}@keyframes mk-zoomOut{0%{opacity:1;transform:scaleZ(1)}to{opacity:0;transform:scale3d(.85,.85,.85)}}@keyframes mk-bounceIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}20%{transform:scale3d(1.1,1.1,1.1)}40%{transform:scale3d(.9,.9,.9)}60%{opacity:1;transform:scale3d(1.03,1.03,1.03)}80%{transform:scale3d(.97,.97,.97)}to{opacity:1;transform:scaleZ(1)}}@keyframes mk-bounceOut{20%{transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;transform:scale3d(1.1,1.1,1.1)}to{opacity:0;transform:scale3d(.3,.3,.3)}}@keyframes mk-flipInX{0%{opacity:0;transform:perspective(400px) rotateX(90deg)}40%{transform:perspective(400px) rotateX(-20deg)}60%{opacity:1;transform:perspective(400px) rotateX(10deg)}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes mk-flipInY{0%{opacity:0;transform:perspective(400px) rotateY(90deg)}40%{transform:perspective(400px) rotateY(-20deg)}60%{opacity:1;transform:perspective(400px) rotateY(10deg)}80%{transform:perspective(400px) rotateY(-5deg)}to{transform:perspective(400px)}}@keyframes mk-shake{0%,to{transform:translateZ(0)}10%,30%,50%,70%,90%{transform:translate3d(-8px,0,0)}20%,40%,60%,80%{transform:translate3d(8px,0,0)}}@keyframes mk-pulse{0%{transform:scaleZ(1)}50%{transform:scale3d(1.05,1.05,1.05)}to{transform:scaleZ(1)}}@keyframes mk-rotateIn{0%{opacity:0;transform:rotate3d(0,0,1,-200deg)}to{opacity:1;transform:translateZ(0)}}.mk-animated{animation-duration:var(--mk-duration, .5s);animation-timing-function:var(--mk-easing, ease);animation-fill-mode:both}.mk-animated.mk-infinite{animation-iteration-count:infinite}.mk-fadeIn{animation-name:mk-fadeIn}.mk-fadeOut{animation-name:mk-fadeOut}.mk-slideInUp{animation-name:mk-slideInUp}.mk-slideInDown{animation-name:mk-slideInDown}.mk-slideInLeft{animation-name:mk-slideInLeft}.mk-slideInRight{animation-name:mk-slideInRight}.mk-slideOutUp{animation-name:mk-slideOutUp}.mk-slideOutDown{animation-name:mk-slideOutDown}.mk-zoomIn{animation-name:mk-zoomIn}.mk-zoomOut{animation-name:mk-zoomOut}.mk-bounceIn{animation-name:mk-bounceIn}.mk-bounceOut{animation-name:mk-bounceOut}.mk-flipInX{animation-name:mk-flipInX}.mk-flipInY{animation-name:mk-flipInY}.mk-shake{animation-name:mk-shake}.mk-pulse{animation-name:mk-pulse}.mk-rotateIn{animation-name:mk-rotateIn}@keyframes mk-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes mk-fadeOut{0%{opacity:1}to{opacity:0}}@keyframes mk-fadeInLinear{0%{opacity:0}to{opacity:1}}@keyframes mk-fadeOutLinear{0%{opacity:1}to{opacity:0}}@keyframes mk-fadeInUp{0%{opacity:0;transform:translate3d(0,20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes mk-fadeOutUp{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20px,0)}}@keyframes mk-fadeInDown{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes mk-fadeOutDown{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,20px,0)}}@keyframes mk-fadeInLeft{0%{opacity:0;transform:translate3d(20px,0,0)}to{opacity:1;transform:translateZ(0)}}@keyframes mk-fadeOutLeft{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(-20px,0,0)}}@keyframes mk-fadeInRight{0%{opacity:0;transform:translate3d(-20px,0,0)}to{opacity:1;transform:translateZ(0)}}@keyframes mk-fadeOutRight{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(20px,0,0)}}@keyframes mk-zoomInCenter{0%{opacity:0;transform:scale3d(.7,.7,.7)}to{opacity:1;transform:scaleZ(1)}}@keyframes mk-zoomOutCenter{0%{opacity:1;transform:scaleZ(1)}to{opacity:0;transform:scale3d(.7,.7,.7)}}@keyframes mk-zoomInTop{0%{opacity:0;transform:scale3d(.7,.7,.7);transform-origin:center top}to{opacity:1;transform:scaleZ(1);transform-origin:center top}}@keyframes mk-zoomOutTop{0%{opacity:1;transform:scaleZ(1);transform-origin:center top}to{opacity:0;transform:scale3d(.7,.7,.7);transform-origin:center top}}@keyframes mk-zoomInBottom{0%{opacity:0;transform:scale3d(.7,.7,.7);transform-origin:center bottom}to{opacity:1;transform:scaleZ(1);transform-origin:center bottom}}@keyframes mk-zoomOutBottom{0%{opacity:1;transform:scaleZ(1);transform-origin:center bottom}to{opacity:0;transform:scale3d(.7,.7,.7);transform-origin:center bottom}}@keyframes mk-slideInRight{0%{transform:translate3d(100%,0,0)}to{transform:translateZ(0)}}@keyframes mk-slideOutRight{0%{transform:translateZ(0)}to{transform:translate3d(100%,0,0)}}@keyframes mk-slideInLeft{0%{transform:translate3d(-100%,0,0)}to{transform:translateZ(0)}}@keyframes mk-slideOutLeft{0%{transform:translateZ(0)}to{transform:translate3d(-100%,0,0)}}@keyframes mk-slideInTop{0%{transform:translate3d(0,-100%,0)}to{transform:translateZ(0)}}@keyframes mk-slideOutTop{0%{transform:translateZ(0)}to{transform:translate3d(0,-100%,0)}}@keyframes mk-slideInBottom{0%{transform:translate3d(0,100%,0)}to{transform:translateZ(0)}}@keyframes mk-slideOutBottom{0%{transform:translateZ(0)}to{transform:translate3d(0,100%,0)}}@keyframes mk-listItemIn{0%{opacity:0;transform:translate3d(0,16px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes mk-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.mk-transition{animation-duration:var(--mk-duration, .3s);animation-timing-function:var(--mk-easing, ease-in-out);animation-fill-mode:both}.mk-fade-in{animation-name:mk-fadeIn}.mk-fade-out{animation-name:mk-fadeOut}.mk-fade-in-linear{animation-name:mk-fadeInLinear}.mk-fade-out-linear{animation-name:mk-fadeOutLinear}.mk-fade-in-up{animation-name:mk-fadeInUp}.mk-fade-out-up{animation-name:mk-fadeOutUp}.mk-fade-in-down{animation-name:mk-fadeInDown}.mk-fade-out-down{animation-name:mk-fadeOutDown}.mk-fade-in-left{animation-name:mk-fadeInLeft}.mk-fade-out-left{animation-name:mk-fadeOutLeft}.mk-fade-in-right{animation-name:mk-fadeInRight}.mk-fade-out-right{animation-name:mk-fadeOutRight}.mk-zoom-in-center{animation-name:mk-zoomInCenter}.mk-zoom-out-center{animation-name:mk-zoomOutCenter}.mk-zoom-in-top{animation-name:mk-zoomInTop}.mk-zoom-out-top{animation-name:mk-zoomOutTop}.mk-zoom-in-bottom{animation-name:mk-zoomInBottom}.mk-zoom-out-bottom{animation-name:mk-zoomOutBottom}.mk-slide-in-right{animation-name:mk-slideInRight}.mk-slide-out-right{animation-name:mk-slideOutRight}.mk-slide-in-left{animation-name:mk-slideInLeft}.mk-slide-out-left{animation-name:mk-slideOutLeft}.mk-slide-in-top{animation-name:mk-slideInTop}.mk-slide-out-top{animation-name:mk-slideOutTop}.mk-slide-in-bottom{animation-name:mk-slideInBottom}.mk-slide-out-bottom{animation-name:mk-slideOutBottom}.mk-list-item-in{animation-name:mk-listItemIn}.mk-spin{animation:mk-spin 1s linear infinite}:root{--mk-bg: #09090b;--mk-surface: #12121a;--mk-surface-hover: #1a1a25;--mk-border: #1f1f2e;--mk-border-hover: #2e2e42;--mk-primary: #6366f1;--mk-primary-hover: #818cf8;--mk-primary-active: #4f46e5;--mk-success: #22c55e;--mk-warning: #f59e0b;--mk-danger: #ef4444;--mk-text: #f8fafc;--mk-text-secondary: #94a3b8;--mk-text-tertiary: #64748b;--mk-radius: 8px;--mk-radius-lg: 12px;--mk-transition: .15s ease}:root{--mk-indigo-50: #eef2ff;--mk-indigo-100: #e0e7ff;--mk-indigo-200: #c7d2fe;--mk-indigo-300: #a5b4fc;--mk-indigo-400: #818cf8;--mk-indigo-500: #6366f1;--mk-indigo-600: #4f46e5;--mk-indigo-700: #4338ca;--mk-indigo-800: #3730a3;--mk-indigo-900: #312e81;--mk-indigo-950: #1e1b4b;--mk-green-50: #f0fdf4;--mk-green-100: #dcfce7;--mk-green-200: #bbf7d0;--mk-green-300: #86efac;--mk-green-400: #4ade80;--mk-green-500: #22c55e;--mk-green-600: #16a34a;--mk-green-700: #15803d;--mk-green-800: #166534;--mk-green-900: #14532d;--mk-green-950: #052e16;--mk-amber-50: #fffbeb;--mk-amber-100: #fef3c7;--mk-amber-200: #fde68a;--mk-amber-300: #fcd34d;--mk-amber-400: #fbbf24;--mk-amber-500: #f59e0b;--mk-amber-600: #d97706;--mk-amber-700: #b45309;--mk-amber-800: #92400e;--mk-amber-900: #78350f;--mk-amber-950: #451a03;--mk-red-50: #fef2f2;--mk-red-100: #fee2e2;--mk-red-200: #fecaca;--mk-red-300: #fca5a5;--mk-red-400: #f87171;--mk-red-500: #ef4444;--mk-red-600: #dc2626;--mk-red-700: #b91c1c;--mk-red-800: #991b1b;--mk-red-900: #7f1d1d;--mk-red-950: #450a0a;--mk-slate-50: #f8fafc;--mk-slate-100: #f1f5f9;--mk-slate-200: #e2e8f0;--mk-slate-300: #cbd5e1;--mk-slate-400: #94a3b8;--mk-slate-500: #64748b;--mk-slate-600: #475569;--mk-slate-700: #334155;--mk-slate-800: #1e293b;--mk-slate-900: #0f172a;--mk-slate-950: #020617;--mk-sky-50: #f0f9ff;--mk-sky-100: #e0f2fe;--mk-sky-200: #bae6fd;--mk-sky-300: #7dd3fc;--mk-sky-400: #38bdf8;--mk-sky-500: #0ea5e9;--mk-sky-600: #0284c7;--mk-sky-700: #0369a1;--mk-sky-800: #075985;--mk-sky-900: #0c4a6e;--mk-sky-950: #082f49}:root{--mk-bg: #09090b;--mk-bg-elevated: #0c0c14;--mk-surface: #12121a;--mk-surface-hover:#1a1a25;--mk-surface-active:#22222e;--mk-surface-raised:#1e1e2a;--mk-border: #1e1e2e;--mk-border-hover: #27273a;--mk-border-active: #3a3a55;--mk-divider: rgba(255,255,255,.06);--mk-primary: var(--mk-indigo-500);--mk-primary-hover: var(--mk-indigo-400);--mk-primary-active: var(--mk-indigo-600);--mk-primary-soft: rgba(99,102,241,.12);--mk-primary-muted: rgba(99,102,241,.06);--mk-success: var(--mk-green-500);--mk-success-soft: rgba(34,197,94,.12);--mk-warning: var(--mk-amber-500);--mk-warning-soft: rgba(245,158,11,.12);--mk-danger: var(--mk-red-500);--mk-danger-soft: rgba(239,68,68,.12);--mk-info: var(--mk-sky-500);--mk-info-soft: rgba(14,165,233,.12);--mk-text: #f8fafc;--mk-text-primary: #f1f5f9;--mk-text-secondary: #94a3b8;--mk-text-tertiary: #64748b;--mk-text-disabled: #475569;--mk-text-inverse: #0f172a;--mk-font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mk-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Mono", "Segoe UI Mono", monospace;--mk-text-xs: .75rem;--mk-text-sm: .8125rem;--mk-text-base: .875rem;--mk-text-md: 1rem;--mk-text-lg: 1.125rem;--mk-text-xl: 1.25rem;--mk-text-2xl: 1.5rem;--mk-text-3xl: 1.875rem;--mk-text-4xl: 2.25rem;--mk-font-normal: 400;--mk-font-medium: 500;--mk-font-semibold: 600;--mk-font-bold: 700;--mk-leading-none: 1;--mk-leading-tight: 1.25;--mk-leading-snug: 1.375;--mk-leading-normal: 1.5;--mk-leading-relaxed:1.625;--mk-space-0: 0px;--mk-space-1: 4px;--mk-space-2: 8px;--mk-space-3: 12px;--mk-space-4: 16px;--mk-space-5: 20px;--mk-space-6: 24px;--mk-space-8: 32px;--mk-space-10: 40px;--mk-space-12: 48px;--mk-space-16: 64px;--mk-space-20: 80px;--mk-space-24: 96px;--mk-radius-none: 0px;--mk-radius-sm: 4px;--mk-radius: 8px;--mk-radius-md: 10px;--mk-radius-lg: 12px;--mk-radius-xl: 16px;--mk-radius-2xl: 20px;--mk-radius-full: 9999px;--mk-shadow-sm: 0 1px 2px rgba(0,0,0,.3);--mk-shadow: 0 1px 3px rgba(0,0,0,.3), 0 1px 2px rgba(0,0,0,.2);--mk-shadow-md: 0 4px 6px -1px rgba(0,0,0,.3), 0 2px 4px -2px rgba(0,0,0,.2);--mk-shadow-lg: 0 10px 15px -3px rgba(0,0,0,.35), 0 4px 6px -4px rgba(0,0,0,.2);--mk-shadow-xl: 0 20px 25px -5px rgba(0,0,0,.4), 0 8px 10px -6px rgba(0,0,0,.2);--mk-shadow-glow: 0 0 20px rgba(99,102,241,.15);--mk-duration-fast: .15s;--mk-duration-normal: .25s;--mk-duration-slow: .4s;--mk-duration-slower: .6s;--mk-ease-default: cubic-bezier(.4, 0, .2, 1);--mk-ease-in: cubic-bezier(.4, 0, 1, 1);--mk-ease-out: cubic-bezier(0, 0, .2, 1);--mk-ease-out-expo: cubic-bezier(.16, 1, .3, 1);--mk-ease-spring: cubic-bezier(.34, 1.56, .64, 1);--mk-ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--mk-transition-colors: color var(--mk-duration-fast) var(--mk-ease-default), background-color var(--mk-duration-fast) var(--mk-ease-default), border-color var(--mk-duration-fast) var(--mk-ease-default);--mk-transition-transform: transform var(--mk-duration-normal) var(--mk-ease-out-expo);--mk-transition-shadow: box-shadow var(--mk-duration-normal) var(--mk-ease-default);--mk-transition-opacity: opacity var(--mk-duration-fast) var(--mk-ease-default);--mk-transition-all: all var(--mk-duration-fast) var(--mk-ease-default);--mk-z-base: 0;--mk-z-dropdown: 100;--mk-z-sticky: 200;--mk-z-fixed: 300;--mk-z-modal-backdrop: 400;--mk-z-modal: 500;--mk-z-popover: 600;--mk-z-tooltip: 700;--mk-z-toast: 800;--mk-z-top: 9999}[data-mk-theme=light]{--mk-bg: #ffffff;--mk-bg-elevated: #f8fafc;--mk-surface: #f1f5f9;--mk-surface-hover:#e2e8f0;--mk-surface-active:#cbd5e1;--mk-surface-raised:#ffffff;--mk-border: #e2e8f0;--mk-border-hover: #cbd5e1;--mk-border-active: #94a3b8;--mk-divider: rgba(0,0,0,.06);--mk-text: #0f172a;--mk-text-primary: #1e293b;--mk-text-secondary: #475569;--mk-text-tertiary: #94a3b8;--mk-text-disabled: #cbd5e1;--mk-text-inverse: #f8fafc;--mk-shadow-sm: 0 1px 2px rgba(0,0,0,.05);--mk-shadow: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);--mk-shadow-md: 0 4px 6px -1px rgba(0,0,0,.08), 0 2px 4px -2px rgba(0,0,0,.04);--mk-shadow-lg: 0 10px 15px -3px rgba(0,0,0,.08), 0 4px 6px -4px rgba(0,0,0,.03);--mk-shadow-xl: 0 20px 25px -5px rgba(0,0,0,.08), 0 8px 10px -6px rgba(0,0,0,.02);--mk-shadow-glow: 0 0 20px rgba(99,102,241,.12)}.mk-ui *,.mk-ui *:before,.mk-ui *:after{box-sizing:border-box}.mk-ui{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;color:var(--mk-text-muted);line-height:1.6;-webkit-font-smoothing:antialiased}.mk-glass{background:#13131ebf;backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5)}[data-mk-theme=light] .mk-glass{background:#f1f5f9bf}@keyframes mk-gradient-shift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.mk-row{display:flex;flex-wrap:wrap;margin:0 -8px}.mk-row--no-wrap{flex-wrap:nowrap}.mk-row--justify-start{justify-content:flex-start}.mk-row--justify-center{justify-content:center}.mk-row--justify-end{justify-content:flex-end}.mk-row--justify-space-between{justify-content:space-between}.mk-row--justify-space-around{justify-content:space-around}.mk-row--align-top{align-items:flex-start}.mk-row--align-middle{align-items:center}.mk-row--align-bottom{align-items:flex-end}.mk-col{padding:0 8px;flex:0 0 auto}.mk-col--flex{flex:1}.mk-col-1{flex:0 0 4.1667%}.mk-col-2{flex:0 0 8.3333%}.mk-col-3{flex:0 0 12.5%}.mk-col-4{flex:0 0 16.6667%}.mk-col-5{flex:0 0 20.8333%}.mk-col-6{flex:0 0 25%}.mk-col-7{flex:0 0 29.1667%}.mk-col-8{flex:0 0 33.3333%}.mk-col-9{flex:0 0 37.5%}.mk-col-10{flex:0 0 41.6667%}.mk-col-11{flex:0 0 45.8333%}.mk-col-12{flex:0 0 50%}.mk-col-13{flex:0 0 54.1667%}.mk-col-14{flex:0 0 58.3333%}.mk-col-15{flex:0 0 62.5%}.mk-col-16{flex:0 0 66.6667%}.mk-col-17{flex:0 0 70.8333%}.mk-col-18{flex:0 0 75%}.mk-col-19{flex:0 0 79.1667%}.mk-col-20{flex:0 0 83.3333%}.mk-col-21{flex:0 0 87.5%}.mk-col-22{flex:0 0 91.6667%}.mk-col-23{flex:0 0 95.8333%}.mk-col-24{flex:0 0 100%}@media (min-width: 768px){.mk-col-md-6{flex:0 0 25%}.mk-col-md-8{flex:0 0 33.3333%}.mk-col-md-12{flex:0 0 50%}.mk-col-md-24{flex:0 0 100%}}@media (min-width: 1024px){.mk-col-lg-6{flex:0 0 25%}.mk-col-lg-8{flex:0 0 33.3333%}.mk-col-lg-12{flex:0 0 50%}.mk-col-lg-24{flex:0 0 100%}}.mk-space{display:inline-flex;align-items:center;flex-wrap:wrap}.mk-space--vertical{flex-direction:column}.mk-space--small{gap:4px}.mk-space--default{gap:8px}.mk-space--large{gap:16px}.mk-space--wrap{flex-wrap:wrap}.mk-space--nowrap{flex-wrap:nowrap}.mk-divider{display:flex;align-items:center;color:var(--mk-text-tertiary);font-size:13px;margin:16px 0}.mk-divider:before,.mk-divider:after{content:"";flex:1;height:1px;background:var(--mk-border)}.mk-divider--horizontal:before{margin-right:12px}.mk-divider--horizontal:after{margin-left:12px}.mk-divider--vertical{display:inline-block;width:1px;height:1em;background:var(--mk-border);margin:0 8px;vertical-align:middle}.mk-divider--dashed:before,.mk-divider--dashed:after{background:repeating-linear-gradient(90deg,var(--mk-border),var(--mk-border) 4px,transparent 4px,transparent 8px)}.mk-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 16px;height:36px;font-size:13px;font-weight:500;white-space:nowrap;cursor:pointer;background:var(--mk-surface);border:1px solid var(--mk-border);border-radius:var(--mk-radius);color:var(--mk-text);outline:none;transition:var(--mk-transition);-webkit-user-select:none;user-select:none;margin-right:8px;margin-bottom:4px}.mk-button:last-child{margin-right:0}.mk-button:hover{background:var(--mk-surface-hover);border-color:var(--mk-border-hover)}.mk-button:active{transform:translateY(.5px)}.mk-button.is-disabled{opacity:.4;cursor:not-allowed}.mk-button--primary{background:var(--mk-primary);border-color:var(--mk-primary);color:#fff}.mk-button--primary:hover{background:var(--mk-primary-hover);border-color:var(--mk-primary-hover)}.mk-button--primary:active{background:var(--mk-primary-active);border-color:var(--mk-primary-active)}.mk-button--success{background:var(--mk-success);border-color:var(--mk-success);color:#fff}.mk-button--success:hover{opacity:.9}.mk-button--warning{background:var(--mk-warning);border-color:var(--mk-warning);color:#000}.mk-button--warning:hover{opacity:.9}.mk-button--danger{background:var(--mk-danger);border-color:var(--mk-danger);color:#fff}.mk-button--danger:hover{opacity:.9}.mk-button--text{background:transparent;border-color:transparent;color:var(--mk-primary);padding:0 8px}.mk-button--text:hover{background:#6366f114}.mk-button--small{padding:0 12px;height:28px;font-size:12px;border-radius:6px}.mk-button--large{padding:0 20px;height:44px;font-size:14px}.mk-button.is-round{border-radius:var(--mk-radius-full)}.mk-button.is-circle{border-radius:50%;padding:0;width:36px;height:36px}.mk-button--small.is-circle{width:28px;height:28px}.mk-button--large.is-circle{width:44px;height:44px}.mk-button.is-loading{pointer-events:none}.mk-button__spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:mk-spin .6s linear infinite}.mk-button__ripple{position:absolute;border-radius:50%;background:#fff3;pointer-events:none;transform:scale(0);animation:mk-ripple .4s ease-out forwards}@keyframes mk-ripple{to{transform:scale(2.5);opacity:0}}.mk-input-wrapper{position:relative;display:inline-flex;width:100%;max-width:320px;align-items:center}.mk-input{width:100%;height:36px;padding:0 12px;font-size:13px;color:var(--mk-text);background:var(--mk-surface);border:1px solid var(--mk-border);border-radius:var(--mk-radius);outline:none;transition:var(--mk-transition)}.mk-input::placeholder{color:var(--mk-text-tertiary)}.mk-input:hover{border-color:var(--mk-border-hover)}.mk-input:focus{border-color:var(--mk-primary)}.mk-input-wrapper.is-error .mk-input{border-color:var(--mk-danger);animation:mk-input-shake .3s ease}.mk-input-wrapper.is-success .mk-input{border-color:var(--mk-success)}.mk-input__suffix{position:absolute;right:10px;display:flex;align-items:center;gap:6px;color:var(--mk-text-tertiary)}.mk-input__suffix-item{cursor:pointer;font-size:13px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:var(--mk-transition)}.mk-input__suffix-item:hover{color:var(--mk-text);background:var(--mk-surface-hover)}.mk-input__clear{opacity:0;transition:opacity .2s}.mk-input-wrapper:hover .mk-input__clear,.mk-input:focus~.mk-input__suffix .mk-input__clear{opacity:1}.mk-input__errormsg{position:absolute;bottom:-20px;left:0;font-size:12px;color:var(--mk-danger);opacity:0;transform:translateY(-2px);transition:var(--mk-transition)}.mk-input__errormsg.show{opacity:1;transform:translateY(0)}@keyframes mk-input-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.mk-card{background:var(--mk-surface);border:1px solid var(--mk-border);border-radius:var(--mk-radius-lg);overflow:hidden;transition:var(--mk-transition)}.mk-card:hover{border-color:var(--mk-border-hover)}.mk-card__header{padding:16px 20px 12px;display:flex;align-items:center;justify-content:space-between}.mk-card__title{font-size:14px;font-weight:600;color:var(--mk-text)}.mk-card__body{padding:0 20px 16px;color:var(--mk-text-secondary);font-size:13px;line-height:1.6}.mk-card__footer{padding:10px 20px;border-top:1px solid var(--mk-border);color:var(--mk-text-tertiary);font-size:12px}.mk-card__image{width:100%;height:160px;object-fit:cover;display:block;border-bottom:1px solid var(--mk-border)}.mk-card.is-loading .mk-card__body{opacity:.4;pointer-events:none}.mk-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:2000;opacity:0;transition:opacity .2s ease}.mk-dialog-overlay.is-open{opacity:1}.mk-dialog{background:var(--mk-surface);border:1px solid var(--mk-border);border-radius:var(--mk-radius-lg);min-width:400px;max-width:90vw;max-height:85vh;display:flex;flex-direction:column;transform:scale(.95);opacity:0;transition:all .2s ease}.mk-dialog-overlay.is-open .mk-dialog{transform:scale(1);opacity:1}.mk-dialog__header{padding:18px 20px 14px;display:flex;align-items:center;justify-content:space-between}.mk-dialog__title{font-size:15px;font-weight:600;color:var(--mk-text)}.mk-dialog__close{cursor:pointer;color:var(--mk-text-tertiary);font-size:16px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:var(--mk-transition)}.mk-dialog__close:hover{color:var(--mk-text);background:var(--mk-surface-hover)}.mk-dialog__body{padding:6px 20px 18px;overflow-y:auto;flex:1;color:var(--mk-text-secondary);font-size:13px;line-height:1.6}.mk-dialog__footer{padding:12px 20px 16px;display:flex;justify-content:flex-end;gap:8px;border-top:1px solid var(--mk-border)}.mk-dialog.is-center{text-align:center}.mk-dialog.is-center .mk-dialog__footer{justify-content:center}.mk-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:2000;opacity:0;transition:opacity .2s ease}.mk-drawer-overlay.is-open{opacity:1}.mk-drawer{position:fixed;background:var(--mk-surface);border:1px solid var(--mk-border);display:flex;flex-direction:column;transition:transform .25s ease}.mk-drawer--right{top:0;right:0;bottom:0;width:340px;border-left:1px solid var(--mk-border);border-radius:var(--mk-radius-lg) 0 0 var(--mk-radius-lg);transform:translate(100%)}.mk-drawer-overlay.is-open .mk-drawer--right{transform:translate(0)}.mk-drawer--left{top:0;left:0;bottom:0;width:340px;border-right:1px solid var(--mk-border);border-radius:0 var(--mk-radius-lg) var(--mk-radius-lg) 0;transform:translate(-100%)}.mk-drawer-overlay.is-open .mk-drawer--left{transform:translate(0)}.mk-drawer__header{padding:18px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--mk-border)}.mk-drawer__title{font-size:15px;font-weight:600;color:var(--mk-text)}.mk-drawer__close{cursor:pointer;color:var(--mk-text-tertiary);font-size:16px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:var(--mk-transition)}.mk-drawer__close:hover{color:var(--mk-text);background:var(--mk-surface-hover)}.mk-drawer__body{padding:16px 20px;flex:1;overflow-y:auto;color:var(--mk-text-secondary);font-size:13px;line-height:1.6}.mk-message-container{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none}.mk-message{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;border-radius:var(--mk-radius);font-size:13px;background:var(--mk-surface);border:1px solid var(--mk-border);pointer-events:auto;min-width:260px;opacity:0;transform:translateY(-12px);transition:all .2s ease}.mk-message.is-show{opacity:1;transform:translateY(0)}.mk-message__icon{width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;border-radius:50%}.mk-message__content{flex:1;color:var(--mk-text)}.mk-message__close{cursor:pointer;color:var(--mk-text-tertiary);font-size:11px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:var(--mk-transition)}.mk-message__close:hover{color:var(--mk-text);background:var(--mk-surface-hover)}.mk-message--success .mk-message__icon{color:var(--mk-success)}.mk-message--warning .mk-message__icon{color:var(--mk-warning)}.mk-message--error .mk-message__icon{color:var(--mk-danger)}.mk-message--info .mk-message__icon{color:var(--mk-primary)}.mk-switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.mk-switch__core{position:relative;width:40px;height:22px;background:var(--mk-surface-hover);border:1px solid var(--mk-border);border-radius:11px;transition:var(--mk-transition);flex-shrink:0}.mk-switch__core:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:var(--mk-text-secondary);border-radius:50%;transition:var(--mk-transition)}.mk-switch.is-checked .mk-switch__core{background:var(--mk-primary);border-color:var(--mk-primary)}.mk-switch.is-checked .mk-switch__core:after{transform:translate(18px);background:#fff}.mk-switch__label{font-size:13px;color:var(--mk-text-secondary);transition:color .2s}.mk-switch.is-checked .mk-switch__label--active{color:var(--mk-text)}.mk-switch.is-disabled{opacity:.4;cursor:not-allowed}.mk-loading-mask{position:absolute;top:0;right:0;bottom:0;left:0;background:#09090bcc;display:flex;align-items:center;justify-content:center;z-index:100;border-radius:inherit;flex-direction:column;gap:10px}.mk-loading-mask.is-fullscreen{position:fixed;background:#09090bd9;z-index:9999;border-radius:0}.mk-loading__spinner{width:32px;height:32px;border:2px solid var(--mk-border);border-top-color:var(--mk-primary);border-radius:50%;animation:mk-spin .7s linear infinite}.mk-loading__text{font-size:13px;color:var(--mk-text-secondary)}@keyframes mk-spin{to{transform:rotate(360deg)}}.mk-select{position:relative;display:inline-flex;width:100%;max-width:320px}.mk-select__trigger{width:100%;height:36px;padding:0 32px 0 12px;font-size:13px;color:var(--mk-text);background:var(--mk-surface);border:1px solid var(--mk-border);border-radius:var(--mk-radius);cursor:pointer;display:flex;align-items:center;outline:none;transition:var(--mk-transition);-webkit-user-select:none;user-select:none}.mk-select__trigger:hover{border-color:var(--mk-border-hover)}.mk-select__trigger.is-open{border-color:var(--mk-primary)}.mk-select__arrow{position:absolute;right:10px;color:var(--mk-text-tertiary);font-size:10px;transition:transform .2s}.mk-select__trigger.is-open .mk-select__arrow{transform:rotate(180deg)}.mk-select__dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--mk-surface);border:1px solid var(--mk-border);border-radius:var(--mk-radius);z-index:100;max-height:240px;overflow-y:auto;opacity:0;transform:translateY(-4px);pointer-events:none;transition:all .15s ease;box-shadow:var(--mk-shadow-lg)}.mk-select__dropdown.is-open{opacity:1;transform:translateY(0);pointer-events:auto}.mk-select__option{padding:8px 12px;font-size:13px;color:var(--mk-text);cursor:pointer;transition:var(--mk-transition);display:flex;align-items:center;gap:8px}.mk-select__option:hover{background:var(--mk-surface-hover)}.mk-select__option.is-selected{background:#6366f11a;color:var(--mk-primary)}.mk-select__placeholder{color:var(--mk-text-tertiary)}.mk-checkbox{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:13px;color:var(--mk-text)}.mk-checkbox__input{width:16px;height:16px;border:1.5px solid var(--mk-border);border-radius:4px;display:flex;align-items:center;justify-content:center;transition:var(--mk-transition);flex-shrink:0;background:var(--mk-surface)}.mk-checkbox:hover .mk-checkbox__input{border-color:var(--mk-border-hover)}.mk-checkbox.is-checked .mk-checkbox__input{background:var(--mk-primary);border-color:var(--mk-primary)}.mk-checkbox__check{color:#fff;font-size:11px;opacity:0;transform:scale(.5);transition:all .15s ease}.mk-checkbox.is-checked .mk-checkbox__check{opacity:1;transform:scale(1)}.mk-checkbox.is-disabled{opacity:.4;cursor:not-allowed}.mk-checkbox-group{display:flex;flex-wrap:wrap;gap:12px}.mk-radio{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:13px;color:var(--mk-text)}.mk-radio__input{width:16px;height:16px;border:1.5px solid var(--mk-border);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:var(--mk-transition);flex-shrink:0;background:var(--mk-surface)}.mk-radio:hover .mk-radio__input{border-color:var(--mk-border-hover)}.mk-radio.is-checked .mk-radio__input{border-color:var(--mk-primary)}.mk-radio__dot{width:8px;height:8px;border-radius:50%;background:var(--mk-primary);opacity:0;transform:scale(0);transition:all .15s ease}.mk-radio.is-checked .mk-radio__dot{opacity:1;transform:scale(1)}.mk-radio.is-disabled{opacity:.4;cursor:not-allowed}.mk-radio-group{display:flex;flex-wrap:wrap;gap:16px}.mk-slider{display:flex;align-items:center;gap:12px;width:100%;max-width:320px}.mk-slider__track{position:relative;flex:1;height:4px;background:var(--mk-border);border-radius:2px;cursor:pointer}.mk-slider__fill{position:absolute;left:0;top:0;height:100%;background:var(--mk-primary);border-radius:2px;pointer-events:none}.mk-slider__thumb{position:absolute;top:50%;width:16px;height:16px;background:var(--mk-primary);border:2px solid var(--mk-surface);border-radius:50%;transform:translate(-50%,-50%);cursor:grab;transition:transform .15s,box-shadow .15s;box-shadow:var(--mk-shadow-sm)}.mk-slider__thumb:hover{transform:translate(-50%,-50%) scale(1.2)}.mk-slider__thumb:active{cursor:grabbing}.mk-slider__value{font-size:13px;color:var(--mk-text-secondary);min-width:32px;text-align:right;font-variant-numeric:tabular-nums}.mk-table-wrapper{width:100%;border:1px solid var(--mk-border);border-radius:var(--mk-radius);overflow:hidden;background:var(--mk-surface)}.mk-table{width:100%;border-collapse:collapse;font-size:13px}.mk-table thead{background:#ffffff08}.mk-table th{padding:10px 16px;text-align:left;font-weight:500;color:var(--mk-text-secondary);border-bottom:1px solid var(--mk-border);font-size:12px;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;cursor:default;-webkit-user-select:none;user-select:none}.mk-table th.is-sortable{cursor:pointer}.mk-table th.is-sortable:hover{color:var(--mk-text);background:#ffffff08}.mk-table__sort-icon{margin-left:4px;font-size:10px;opacity:.4;display:inline-block;width:12px;text-align:center}.mk-table__sort-icon.is-active{opacity:1;color:var(--mk-primary)}.mk-table td{padding:10px 16px;color:var(--mk-text);border-bottom:1px solid var(--mk-border);vertical-align:middle}.mk-table tbody tr:last-child td{border-bottom:none}.mk-table tbody tr:hover{background:#6366f108}.mk-table tbody tr.is-editing td{background:#6366f10d}.mk-table__edit-input{width:100%;padding:6px 10px;font-size:13px;color:var(--mk-text);background:var(--mk-bg);border:1px solid var(--mk-border);border-radius:6px;outline:none;transition:var(--mk-transition);box-sizing:border-box}.mk-table__edit-input:focus{border-color:var(--mk-primary)}.mk-table__actions{display:flex;gap:8px}.mk-table__action-btn{font-size:12px;color:var(--mk-primary);cursor:pointer;padding:2px 6px;border-radius:4px;transition:var(--mk-transition)}.mk-table__action-btn:hover{background:#6366f11a}.mk-table__action-btn.is-danger{color:var(--mk-danger)}.mk-table__action-btn.is-danger:hover{background:#ef44441a}.mk-table__empty{padding:48px 24px;text-align:center;color:var(--mk-text-tertiary);font-size:14px}.mk-pagination{display:flex;align-items:center;justify-content:center;gap:4px;padding:12px 16px;border-top:1px solid var(--mk-border)}.mk-pagination__btn{min-width:32px;height:32px;padding:0 8px;display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--mk-text-secondary);background:transparent;border:1px solid transparent;border-radius:6px;cursor:pointer;transition:var(--mk-transition)}.mk-pagination__btn:hover:not(:disabled){background:#ffffff0d;color:var(--mk-text)}.mk-pagination__btn.is-active{background:var(--mk-primary);color:#fff;border-color:var(--mk-primary)}.mk-pagination__btn:disabled{opacity:.3;cursor:not-allowed}.mk-pagination__total{font-size:12px;color:var(--mk-text-tertiary);margin-right:auto}.mk-pagination__size{margin-left:auto;font-size:12px;color:var(--mk-text-secondary)}.mk-pagination__size select{margin-left:6px;padding:4px 8px;font-size:12px;color:var(--mk-text);background:var(--mk-bg);border:1px solid var(--mk-border);border-radius:4px;cursor:pointer;outline:none}.mk-tag{display:inline-flex;align-items:center;gap:4px;padding:0 8px;height:24px;font-size:var(--mk-text-xs);font-weight:var(--mk-font-medium);line-height:1;color:var(--mk-text);background:var(--mk-surface-raised);border:1px solid var(--mk-border);border-radius:var(--mk-radius-sm);white-space:nowrap;-webkit-user-select:none;user-select:none;transition:var(--mk-transition-all);vertical-align:middle}.mk-tag.is-round{border-radius:var(--mk-radius-full)}.mk-tag.is-closable{padding-right:4px}.mk-tag--small{padding:0 6px;height:20px;font-size:11px}.mk-tag--small.is-closable{padding-right:2px}.mk-tag--large{padding:0 12px;height:32px;font-size:var(--mk-text-sm)}.mk-tag--large.is-closable{padding-right:6px}.mk-tag--primary{background:var(--mk-primary-soft);border-color:var(--mk-primary);color:var(--mk-primary-hover)}.mk-tag--success{background:var(--mk-success-soft);border-color:var(--mk-success);color:var(--mk-green-400)}.mk-tag--warning{background:var(--mk-warning-soft);border-color:var(--mk-warning);color:var(--mk-amber-400)}.mk-tag--danger{background:var(--mk-danger-soft);border-color:var(--mk-danger);color:var(--mk-red-400)}.mk-tag--info{background:var(--mk-info-soft);border-color:var(--mk-info);color:var(--mk-sky-400)}.mk-tag.is-plain{background:transparent}.mk-tag--primary.is-plain{border-color:var(--mk-primary);color:var(--mk-primary-hover)}.mk-tag--success.is-plain{border-color:var(--mk-success);color:var(--mk-green-400)}.mk-tag--warning.is-plain{border-color:var(--mk-warning);color:var(--mk-amber-400)}.mk-tag--danger.is-plain{border-color:var(--mk-danger);color:var(--mk-red-400)}.mk-tag--info.is-plain{border-color:var(--mk-info);color:var(--mk-sky-400)}.mk-tag__close{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:14px;line-height:1;color:inherit;opacity:.6;cursor:pointer;border-radius:var(--mk-radius-sm);transition:var(--mk-transition-all)}.mk-tag__close:hover{opacity:1;background:#ffffff1a}.mk-tag.is-closing{transform:scale(.85);opacity:0}.mk-tooltip{display:none;pointer-events:none;opacity:0;transform:scale(.96) translateY(2px);transition:opacity var(--mk-duration-fast) var(--mk-ease-default),transform var(--mk-duration-fast) var(--mk-ease-out);filter:drop-shadow(var(--mk-shadow-md));max-width:280px}.mk-tooltip.is-visible{opacity:1;transform:scale(1) translateY(0)}.mk-tooltip__content{padding:6px 10px;font-size:var(--mk-text-xs);font-weight:var(--mk-font-medium);line-height:var(--mk-leading-snug);color:var(--mk-text);background:var(--mk-surface-raised);border:1px solid var(--mk-border-hover);border-radius:var(--mk-radius-md)}.mk-tooltip__arrow{position:absolute;width:8px;height:8px;background:var(--mk-surface-raised);border:1px solid var(--mk-border-hover)}.mk-tooltip__arrow.is-top{top:-4px;left:50%;transform:translate(-50%) rotate(45deg);border-right:none;border-bottom:none}.mk-tooltip__arrow.is-bottom{bottom:-4px;left:50%;transform:translate(-50%) rotate(45deg);border-left:none;border-top:none}.mk-tooltip__arrow.is-left{left:-4px;top:50%;transform:translateY(-50%) rotate(45deg);border-right:none;border-top:none}.mk-tooltip__arrow.is-right{right:-4px;top:50%;transform:translateY(-50%) rotate(45deg);border-left:none;border-bottom:none}.mk-tabs{display:flex;flex-direction:column;gap:var(--mk-space-3)}.mk-tabs__header{position:relative;display:flex;align-items:center;gap:var(--mk-space-1)}.mk-tabs__item{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:0 var(--mk-space-3);height:36px;font-size:var(--mk-text-sm);font-weight:var(--mk-font-medium);color:var(--mk-text-secondary);background:transparent;border:none;border-radius:var(--mk-radius);cursor:pointer;outline:none;white-space:nowrap;transition:var(--mk-transition-colors)}.mk-tabs__item:hover:not(.is-disabled){color:var(--mk-text);background:var(--mk-surface-hover)}.mk-tabs__item.is-active{color:var(--mk-text)}.mk-tabs__item.is-disabled{opacity:.4;cursor:not-allowed}.mk-tabs--line .mk-tabs__header{border-bottom:1px solid var(--mk-border);gap:0}.mk-tabs--line .mk-tabs__item{border-radius:0;margin-bottom:-1px}.mk-tabs--line .mk-tabs__item.is-active{color:var(--mk-primary)}.mk-tabs__indicator{position:absolute;bottom:0;height:2px;background:var(--mk-primary);border-radius:1px;transition:left var(--mk-duration-normal) var(--mk-ease-out-expo),width var(--mk-duration-normal) var(--mk-ease-out-expo)}.mk-tabs--card .mk-tabs__header{gap:0;background:var(--mk-surface);border:1px solid var(--mk-border);border-radius:var(--mk-radius);padding:3px}.mk-tabs--card .mk-tabs__item{flex:1;border-radius:var(--mk-radius-sm)}.mk-tabs--card .mk-tabs__item.is-active{background:var(--mk-surface-raised);box-shadow:var(--mk-shadow-sm)}.mk-tabs--pill .mk-tabs__header{gap:var(--mk-space-1);background:var(--mk-surface);border:1px solid var(--mk-border);border-radius:var(--mk-radius-full);padding:3px}.mk-tabs--pill .mk-tabs__item{border-radius:var(--mk-radius-full)}.mk-tabs--pill .mk-tabs__item.is-active{background:var(--mk-primary);color:#fff}.mk-tabs--pill .mk-tabs__item:hover:not(.is-disabled):not(.is-active){background:var(--mk-surface-hover)}.mk-tabs__content{position:relative;min-height:0}.mk-tabs__panel{display:none;font-size:var(--mk-text-sm);color:var(--mk-text-secondary);line-height:var(--mk-leading-normal);opacity:0;transform:translateY(4px);transition:opacity var(--mk-duration-normal) var(--mk-ease-default),transform var(--mk-duration-normal) var(--mk-ease-out)}.mk-tabs__panel.is-active{opacity:1;transform:translateY(0)}.mk-tabs__panel.is-entering{opacity:0;transform:translateY(4px)}.mk-avatar{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;font-size:var(--mk-text-sm);font-weight:var(--mk-font-medium);color:var(--mk-text);background:var(--mk-surface-raised);border:1px solid var(--mk-border);border-radius:var(--mk-radius-full);overflow:hidden;flex-shrink:0;-webkit-user-select:none;user-select:none}.mk-avatar__image{width:100%;height:100%;object-fit:cover;display:block}.mk-avatar__fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:inherit;font-weight:var(--mk-font-semibold);color:var(--mk-text-secondary);background:var(--mk-surface-hover)}.mk-avatar--small{width:28px;height:28px;font-size:var(--mk-text-xs)}.mk-avatar--large{width:56px;height:56px;font-size:var(--mk-text-md)}.mk-avatar--square{border-radius:var(--mk-radius)}.mk-avatar-group{display:inline-flex;align-items:center}.mk-avatar-group__item{margin-left:-10px;transition:transform var(--mk-duration-fast) var(--mk-ease-default)}.mk-avatar-group__item:first-child{margin-left:0}.mk-avatar-group__item:hover{transform:translateY(-2px);z-index:1}.mk-avatar-group__item .mk-avatar{border:2px solid var(--mk-bg)}.mk-avatar-group__counter{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin-left:-10px;font-size:var(--mk-text-xs);font-weight:var(--mk-font-semibold);color:var(--mk-text-secondary);background:var(--mk-surface-raised);border:2px solid var(--mk-bg);border-radius:var(--mk-radius-full);flex-shrink:0}.mk-avatar-group--small .mk-avatar-group__counter{width:28px;height:28px}.mk-avatar-group--large .mk-avatar-group__counter{width:56px;height:56px;font-size:var(--mk-text-sm)}.mk-avatar-group--small .mk-avatar-group__item{margin-left:-7px}.mk-avatar-group--large .mk-avatar-group__item{margin-left:-14px}.mk-alert{display:flex;align-items:flex-start;gap:var(--mk-space-3);padding:var(--mk-space-3) var(--mk-space-4);font-size:var(--mk-text-sm);line-height:var(--mk-leading-snug);color:var(--mk-text);background:var(--mk-surface);border:1px solid var(--mk-border);border-left-width:4px;border-radius:var(--mk-radius);transition:var(--mk-transition-all);overflow:hidden}.mk-alert__icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;font-size:14px;font-weight:var(--mk-font-bold);margin-top:1px}.mk-alert__content{flex:1;min-width:0}.mk-alert__title{font-weight:var(--mk-font-semibold);margin-bottom:2px}.mk-alert__description{color:var(--mk-text-secondary);font-size:var(--mk-text-sm)}.mk-alert__close{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;margin:0;font-size:18px;line-height:1;color:var(--mk-text-tertiary);background:transparent;border:none;border-radius:var(--mk-radius-sm);cursor:pointer;flex-shrink:0;transition:var(--mk-transition-colors)}.mk-alert__close:hover{color:var(--mk-text);background:#ffffff0f}.mk-alert--info{border-left-color:var(--mk-info);background:var(--mk-info-soft)}.mk-alert--info .mk-alert__icon{color:var(--mk-info)}.mk-alert--success{border-left-color:var(--mk-success);background:var(--mk-success-soft)}.mk-alert--success .mk-alert__icon{color:var(--mk-success)}.mk-alert--warning{border-left-color:var(--mk-warning);background:var(--mk-warning-soft)}.mk-alert--warning .mk-alert__icon{color:var(--mk-warning)}.mk-alert--danger{border-left-color:var(--mk-danger);background:var(--mk-danger-soft)}.mk-alert--danger .mk-alert__icon{color:var(--mk-danger)}.mk-alert.is-closing{transform:scale(.98);opacity:0;max-height:0;padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-width:0}.mk-progress{display:flex;align-items:center;gap:var(--mk-space-3);font-size:var(--mk-text-sm);color:var(--mk-text-secondary)}.mk-progress.is-hide-info{gap:0}.mk-progress--line{width:100%}.mk-progress__track{flex:1;height:8px;background:var(--mk-surface-hover);border-radius:var(--mk-radius-full);overflow:hidden}.mk-progress__bar{height:100%;background:var(--mk-primary);border-radius:var(--mk-radius-full);transition:width var(--mk-duration-slow) var(--mk-ease-out)}.mk-progress__text{min-width:36px;text-align:right;font-size:var(--mk-text-sm);font-weight:var(--mk-font-medium);color:var(--mk-text-secondary);flex-shrink:0}.mk-progress.is-success .mk-progress__bar,.mk-progress.is-success .mk-progress__path-circle{background:var(--mk-success);stroke:var(--mk-success)}.mk-progress.is-exception .mk-progress__bar,.mk-progress.is-exception .mk-progress__path-circle{background:var(--mk-danger);stroke:var(--mk-danger)}.mk-progress.is-active .mk-progress__bar{background:var(--mk-primary);position:relative;overflow:hidden}.mk-progress.is-active .mk-progress__bar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.25) 50%,transparent 100%);animation:mk-progress-active 1.5s ease-in-out infinite}@keyframes mk-progress-active{0%{transform:translate(-100%)}to{transform:translate(100%)}}.mk-progress--circle,.mk-progress--dashboard{position:relative;display:inline-flex;align-items:center;justify-content:center;width:120px;height:120px}.mk-progress__svg{position:absolute;top:0;right:0;bottom:0;left:0}.mk-progress__track-circle{stroke:var(--mk-surface-hover)}.mk-progress__path-circle{stroke:var(--mk-primary);transition:stroke-dashoffset var(--mk-duration-slow) var(--mk-ease-out)}.mk-progress--circle .mk-progress__text,.mk-progress--dashboard .mk-progress__text{position:relative;z-index:1;text-align:center;min-width:auto;font-size:var(--mk-text-md);font-weight:var(--mk-font-semibold);color:var(--mk-text)}.mk-collapse{border:1px solid var(--mk-border);border-radius:var(--mk-radius);background:var(--mk-surface);overflow:hidden}.mk-collapse__item{border-bottom:1px solid var(--mk-border)}.mk-collapse__item:last-child{border-bottom:none}.mk-collapse__header{display:flex;align-items:center;justify-content:space-between;gap:var(--mk-space-3);padding:var(--mk-space-3) var(--mk-space-4);font-size:var(--mk-text-sm);font-weight:var(--mk-font-medium);color:var(--mk-text);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--mk-duration-fast) var(--mk-ease-default);outline:none}.mk-collapse__header:hover{background:var(--mk-surface-hover)}.mk-collapse__header:focus-visible{box-shadow:inset 0 0 0 2px var(--mk-primary-soft)}.mk-collapse__item.is-disabled .mk-collapse__header{color:var(--mk-text-disabled);cursor:not-allowed;background:transparent}.mk-collapse__title{flex:1;min-width:0}.mk-collapse__arrow{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--mk-text-tertiary);transition:transform var(--mk-duration-normal) var(--mk-ease-out);flex-shrink:0}.mk-collapse__arrow.is-expanded{transform:rotate(90deg)}.mk-collapse__content{max-height:0;overflow:hidden;transition:max-height var(--mk-duration-normal) var(--mk-ease-out)}.mk-collapse__inner{padding:0 var(--mk-space-4) var(--mk-space-3);font-size:var(--mk-text-sm);line-height:var(--mk-leading-normal);color:var(--mk-text-secondary)}.mk-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--mk-space-8) var(--mk-space-4);text-align:center;color:var(--mk-text-tertiary)}.mk-empty__image{width:120px;height:120px;margin-bottom:var(--mk-space-4);color:var(--mk-text-tertiary);opacity:.8}.mk-empty__image svg{width:100%;height:100%}.mk-empty__image img{width:100%;height:100%;object-fit:contain}.mk-empty__description{margin:0;font-size:var(--mk-text-sm);font-weight:var(--mk-font-medium);line-height:var(--mk-leading-normal);color:var(--mk-text-secondary)}.mk-popover{display:none;opacity:0;transform:scale(.96) translateY(2px);transition:opacity var(--mk-duration-fast) var(--mk-ease-default),transform var(--mk-duration-fast) var(--mk-ease-out);filter:drop-shadow(var(--mk-shadow-lg));background:var(--mk-surface-raised);border:1px solid var(--mk-border-hover);border-radius:var(--mk-radius-md);max-width:320px;pointer-events:auto}.mk-popover.is-visible{opacity:1;transform:scale(1) translateY(0)}.mk-popover__title{padding:var(--mk-space-3) var(--mk-space-4) 0;font-size:var(--mk-text-sm);font-weight:var(--mk-font-semibold);line-height:var(--mk-leading-tight);color:var(--mk-text)}.mk-popover__content{padding:var(--mk-space-3) var(--mk-space-4);font-size:var(--mk-text-sm);line-height:var(--mk-leading-normal);color:var(--mk-text-secondary)}.mk-popover__arrow{position:absolute;width:8px;height:8px;background:var(--mk-surface-raised);border:1px solid var(--mk-border-hover)}.mk-popover__arrow.is-top{top:-4px;left:50%;transform:translate(-50%) rotate(45deg);border-right:none;border-bottom:none}.mk-popover__arrow.is-bottom{bottom:-4px;left:50%;transform:translate(-50%) rotate(45deg);border-left:none;border-top:none}.mk-popover__arrow.is-left{left:-4px;top:50%;transform:translateY(-50%) rotate(45deg);border-right:none;border-top:none}.mk-popover__arrow.is-right{right:-4px;top:50%;transform:translateY(-50%) rotate(45deg);border-left:none;border-bottom:none}.mk-menu{list-style:none;padding:8px 0;margin:0;font-size:var(--mk-text-sm)}.mk-menu--horizontal{display:flex;padding:0;border-bottom:1px solid var(--mk-border)}.mk-menu-item{position:relative;transition:var(--mk-transition-colors)}.mk-menu-item__title{display:flex;align-items:center;gap:10px;padding:9px 16px;color:var(--mk-text-secondary);transition:var(--mk-transition-colors);border-radius:6px;margin:2px 8px}.mk-menu--horizontal .mk-menu-item__title{margin:0;border-radius:0;padding:12px 16px}.mk-menu-item__title:hover{color:var(--mk-text);background:var(--mk-surface-hover)}.mk-menu-item.is-active>.mk-menu-item__title{color:var(--mk-primary);background:var(--mk-primary-muted)}.mk-menu-item.is-disabled>.mk-menu-item__title{opacity:.4;cursor:not-allowed}.mk-menu-item__icon{width:18px;text-align:center;font-size:14px;flex-shrink:0}.mk-menu-item__text{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mk-menu-item__arrow{font-size:14px;transition:transform .2s;color:var(--mk-text-tertiary)}.mk-menu-item.is-open>.mk-menu-item__title .mk-menu-item__arrow{transform:rotate(90deg)}.mk-menu-submenu{list-style:none;padding:0;margin:0;max-height:0;overflow:hidden;transition:max-height .3s var(--mk-ease-default)}.mk-menu-submenu.is-open{max-height:1000px}.mk-menu--horizontal .mk-menu-submenu{position:absolute;top:100%;left:0;min-width:180px;background:var(--mk-surface);border:1px solid var(--mk-border);border-radius:var(--mk-radius);box-shadow:var(--mk-shadow-lg);z-index:var(--mk-z-dropdown);max-height:none;display:none;padding:4px 0}.mk-menu--horizontal .mk-menu-item.has-children:hover>.mk-menu-submenu{display:block}.mk-menu.is-collapse .mk-menu-item__text,.mk-menu.is-collapse .mk-menu-item__arrow{display:none}.mk-menu.is-collapse .mk-menu-item__title{justify-content:center;padding:12px 0;margin:2px 8px}.mk-menu.is-collapse .mk-menu-submenu{display:none!important}.mk-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;font-size:var(--mk-text-sm);color:var(--mk-text-secondary)}.mk-breadcrumb__item{transition:var(--mk-transition-colors)}.mk-breadcrumb__item.is-link{color:var(--mk-text-secondary);cursor:pointer}.mk-breadcrumb__item.is-link:hover{color:var(--mk-primary)}.mk-breadcrumb__item.is-current{color:var(--mk-text);font-weight:var(--mk-font-medium)}.mk-breadcrumb__separator{margin:0 8px;color:var(--mk-text-tertiary);-webkit-user-select:none;user-select:none}.mk-steps{display:flex;width:100%}.mk-steps--horizontal{flex-direction:row}.mk-steps--vertical{flex-direction:column}.mk-step{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;text-align:center}.mk-steps--vertical .mk-step{flex-direction:row;align-items:flex-start;text-align:left;padding-bottom:16px}.mk-step__head{position:relative;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.mk-step__line{position:absolute;top:50%;left:50%;width:100%;height:1px;background:var(--mk-border);transform:translateY(-50%);z-index:0}.mk-step.is-last .mk-step__line{display:none}.mk-step.is-finish .mk-step__line{background:var(--mk-primary)}.mk-step__icon{position:relative;z-index:1;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;background:var(--mk-surface);border:2px solid var(--mk-border);color:var(--mk-text-tertiary);transition:var(--mk-transition-colors)}.mk-step.is-process .mk-step__icon{background:var(--mk-primary);border-color:var(--mk-primary);color:#fff;box-shadow:0 0 0 4px var(--mk-primary-muted)}.mk-step.is-finish .mk-step__icon{background:var(--mk-primary);border-color:var(--mk-primary);color:#fff}.mk-step.is-error .mk-step__icon{background:var(--mk-danger);border-color:var(--mk-danger);color:#fff}.mk-step__main{margin-top:8px}.mk-steps--vertical .mk-step__main{margin-top:0;margin-left:12px}.mk-step__title{font-size:var(--mk-text-sm);font-weight:var(--mk-font-medium);color:var(--mk-text)}.mk-step.is-wait .mk-step__title{color:var(--mk-text-tertiary)}.mk-step__description{font-size:var(--mk-text-xs);color:var(--mk-text-tertiary);margin-top:4px}.mk-steps--small .mk-step__icon{width:22px;height:22px;font-size:10px}.mk-steps--small .mk-step__title{font-size:var(--mk-text-xs)}
@@ -0,0 +1,23 @@
1
+ export interface CountUpOptions {
2
+ duration?: number;
3
+ easing?: 'linear' | 'easeOut' | 'easeInOut';
4
+ decimals?: number;
5
+ prefix?: string;
6
+ suffix?: string;
7
+ separator?: string;
8
+ onUpdate?: (value: number) => void;
9
+ onComplete?: () => void;
10
+ }
11
+ export declare class CountUp {
12
+ private element;
13
+ private rafId;
14
+ constructor(element: HTMLElement | string);
15
+ animateTo(endValue: number, startValue?: number, options?: CountUpOptions): Promise<void>;
16
+ stop(): void;
17
+ private render;
18
+ private applyEasing;
19
+ }
20
+ /**
21
+ * 快捷方法
22
+ */
23
+ export declare function countUp(element: HTMLElement | string, endValue: number, options?: CountUpOptions): Promise<void>;
@@ -0,0 +1,21 @@
1
+ export interface TypewriterOptions {
2
+ speed?: number;
3
+ cursor?: boolean;
4
+ cursorChar?: string;
5
+ onComplete?: () => void;
6
+ }
7
+ export declare class Typewriter {
8
+ private element;
9
+ private originalText;
10
+ private timer;
11
+ private running;
12
+ constructor(element: HTMLElement | string);
13
+ start(options?: TypewriterOptions): Promise<void>;
14
+ stop(): void;
15
+ reset(): void;
16
+ private startCursorBlink;
17
+ }
18
+ /**
19
+ * 快捷方法
20
+ */
21
+ export declare function typewrite(element: HTMLElement | string, options?: TypewriterOptions): Promise<void>;
@@ -0,0 +1,28 @@
1
+ export interface ThemeConfig {
2
+ bg?: string;
3
+ surface?: string;
4
+ 'surface-hover'?: string;
5
+ border?: string;
6
+ 'border-hover'?: string;
7
+ primary?: string;
8
+ 'primary-hover'?: string;
9
+ 'primary-active'?: string;
10
+ success?: string;
11
+ warning?: string;
12
+ danger?: string;
13
+ text?: string;
14
+ 'text-secondary'?: string;
15
+ 'text-tertiary'?: string;
16
+ }
17
+ export declare class ThemeManager {
18
+ private currentTheme;
19
+ private listeners;
20
+ constructor();
21
+ setTheme(theme: 'light' | 'dark'): void;
22
+ toggle(): void;
23
+ getTheme(): 'light' | 'dark';
24
+ applyCustom(config: ThemeConfig): void;
25
+ resetCustom(): void;
26
+ onChange(fn: (theme: 'light' | 'dark') => void): () => void;
27
+ }
28
+ export declare const theme: ThemeManager;
@@ -0,0 +1,14 @@
1
+ export interface BlurRevealOptions {
2
+ duration?: number;
3
+ blurStart?: number;
4
+ stagger?: number;
5
+ childSelector?: string;
6
+ }
7
+ /**
8
+ * 元素从模糊到清晰的渐入效果
9
+ */
10
+ export declare function blurReveal(element: HTMLElement | string, options?: BlurRevealOptions): Promise<void>;
11
+ /**
12
+ * 子元素依次模糊渐入
13
+ */
14
+ export declare function blurRevealChildren(element: HTMLElement | string, options?: BlurRevealOptions): Promise<void>;
@@ -0,0 +1,16 @@
1
+ export interface CollapseOptions {
2
+ duration?: number;
3
+ easing?: string;
4
+ }
5
+ /**
6
+ * 高度展开动画(模拟 Vue 的 collapse-transition)
7
+ */
8
+ export declare function expand(element: HTMLElement | string, options?: CollapseOptions): Promise<void>;
9
+ /**
10
+ * 高度折叠动画
11
+ */
12
+ export declare function collapse(element: HTMLElement | string, options?: CollapseOptions): Promise<void>;
13
+ /**
14
+ * 切换展开/折叠
15
+ */
16
+ export declare function toggleCollapse(element: HTMLElement | string, options?: CollapseOptions): Promise<boolean>;
@@ -0,0 +1,14 @@
1
+ export interface LazyImageOptions {
2
+ threshold?: number;
3
+ rootMargin?: string;
4
+ blur?: boolean;
5
+ placeholder?: string;
6
+ }
7
+ /**
8
+ * 图片懒加载:进入视口时加载,并带渐入动画
9
+ */
10
+ export declare function lazyImage(imgElement: HTMLImageElement | string, options?: LazyImageOptions): () => void;
11
+ /**
12
+ * 批量处理页面内所有懒加载图片
13
+ */
14
+ export declare function lazyImages(selector?: string): () => void;
@@ -0,0 +1,9 @@
1
+ export interface ListStaggerOptions {
2
+ stagger?: number;
3
+ duration?: number;
4
+ animation?: 'fadeUp' | 'fadeDown' | 'fadeLeft' | 'fadeRight' | 'zoom';
5
+ }
6
+ /**
7
+ * 列表项依次入场动画(类似 Element Plus Table 行入场)
8
+ */
9
+ export declare function listStagger(container: HTMLElement | string, options?: ListStaggerOptions): Promise<void>;
@@ -0,0 +1,13 @@
1
+ export interface LoadingOptions {
2
+ size?: number;
3
+ color?: string;
4
+ thickness?: number;
5
+ }
6
+ /**
7
+ * 在元素上显示 Element Plus 风格的加载旋转器
8
+ */
9
+ export declare function showLoading(element: HTMLElement | string, options?: LoadingOptions): () => void;
10
+ /**
11
+ * 创建全屏加载
12
+ */
13
+ export declare function fullscreenLoading(options?: LoadingOptions): () => void;
@@ -0,0 +1,16 @@
1
+ export interface ParallaxOptions {
2
+ speed?: number;
3
+ direction?: 'vertical' | 'horizontal';
4
+ }
5
+ /**
6
+ * 给元素添加视差滚动效果
7
+ */
8
+ export declare function parallax(element: HTMLElement | string, options?: ParallaxOptions): () => void;
9
+ /**
10
+ * 批量给多个元素添加视差,支持不同速度
11
+ */
12
+ export declare function parallaxGroup(items: Array<{
13
+ selector: string;
14
+ speed?: number;
15
+ direction?: 'vertical' | 'horizontal';
16
+ }>): () => void;
@@ -0,0 +1,13 @@
1
+ export interface ShimmerOptions {
2
+ duration?: number;
3
+ color?: string;
4
+ angle?: number;
5
+ }
6
+ /**
7
+ * 给元素添加骨架屏 shimmer 效果
8
+ */
9
+ export declare function shimmer(element: HTMLElement | string, options?: ShimmerOptions): () => void;
10
+ /**
11
+ * 骨架屏预设:生成若干 shimmer 占位条
12
+ */
13
+ export declare function skeleton(container: HTMLElement | string, lines?: number, options?: ShimmerOptions): () => void;
@@ -0,0 +1,25 @@
1
+ export interface ToastOptions {
2
+ duration?: number;
3
+ type?: 'info' | 'success' | 'warning' | 'error';
4
+ position?: 'top' | 'top-right' | 'top-left' | 'bottom' | 'bottom-right' | 'bottom-left';
5
+ }
6
+ /**
7
+ * 显示一条 Toast 消息(类似 Element Plus Message)
8
+ */
9
+ export declare function toast(message: string, options?: ToastOptions): () => void;
10
+ /**
11
+ * 显示成功消息
12
+ */
13
+ export declare function toastSuccess(message: string, options?: Omit<ToastOptions, 'type'>): () => void;
14
+ /**
15
+ * 显示错误消息
16
+ */
17
+ export declare function toastError(message: string, options?: Omit<ToastOptions, 'type'>): () => void;
18
+ /**
19
+ * 显示警告消息
20
+ */
21
+ export declare function toastWarning(message: string, options?: Omit<ToastOptions, 'type'>): () => void;
22
+ /**
23
+ * 显示通知(类似 Element Plus Notification,带标题)
24
+ */
25
+ export declare function notify(title: string, message: string, options?: ToastOptions): () => void;
@@ -0,0 +1,4 @@
1
+ declare module '*.css' {
2
+ const content: string
3
+ export default content
4
+ }
package/package.json ADDED
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "@luanlu/mk-motion",
3
+ "version": "1.0.0",
4
+ "description": "A lightweight, modern frontend animation library",
5
+ "type": "module",
6
+ "main": "./dist/mk-motion.umd.cjs",
7
+ "module": "./dist/mk-motion.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": {
12
+ "types": "./dist/index.d.ts",
13
+ "default": "./dist/mk-motion.js"
14
+ },
15
+ "require": {
16
+ "types": "./dist/index.d.cts",
17
+ "default": "./dist/mk-motion.umd.cjs"
18
+ }
19
+ },
20
+ "./css": "./dist/style.css"
21
+ },
22
+ "files": [
23
+ "dist"
24
+ ],
25
+ "publishConfig": {
26
+ "access": "public"
27
+ },
28
+ "scripts": {
29
+ "dev": "vite",
30
+ "build": "tsc && vite build",
31
+ "preview": "vite preview",
32
+ "build:docs": "vite build --config docs/vite.config.ts"
33
+ },
34
+ "keywords": [
35
+ "animation",
36
+ "motion",
37
+ "frontend",
38
+ "css",
39
+ "typescript",
40
+ "library"
41
+ ],
42
+ "author": "luanlu",
43
+ "license": "MIT",
44
+ "repository": {
45
+ "type": "git",
46
+ "url": "git+https://github.com/luanluuu/mk-motion.git"
47
+ },
48
+ "bugs": {
49
+ "url": "https://github.com/luanluuu/mk-motion/issues"
50
+ },
51
+ "homepage": "https://github.com/luanluuu/mk-motion#readme",
52
+ "devDependencies": {
53
+ "typescript": "^5.4.0",
54
+ "vite": "^5.2.0",
55
+ "vite-plugin-dts": "^3.8.0"
56
+ }
57
+ }