// ==========================================================================
// SEMANTIC MOTION
// ==========================================================================
// Meaningful motion tokens for animations and interactions
// Maps base motion values to contextual usage patterns
// ==========================================================================
@use '../../base/motion' as *;

// DURATION TOKENS - Semantic timing values
$semantic-duration-instant: $base-motion-duration-instant !default;        // 50ms - Instant feedback
$semantic-duration-fast: $base-motion-duration-fast !default;              // 150ms - Quick interactions
$semantic-duration-short: $base-motion-duration-normal !default;           // 300ms - Standard transitions
$semantic-duration-medium: $base-motion-duration-slow !default;            // 500ms - Moderate animations
$semantic-duration-long: $base-motion-duration-slower !default;            // 700ms - Slower transitions

// EASING TOKENS - Semantic timing functions
$semantic-easing-standard: $base-motion-easing-ease-in-out !default;       // Standard easing curve
$semantic-easing-decelerate: $base-motion-easing-ease-out !default;        // Deceleration curve
$semantic-easing-accelerate: $base-motion-easing-ease-in !default;         // Acceleration curve
$semantic-easing-spring: $base-motion-easing-spring !default;              // Spring-like easing

// INTERACTION ANIMATIONS - User interface interactions
$semantic-motion-button-hover: (
  duration: $base-motion-duration-fast,
  timing: $base-motion-easing-ease-out,
  property: $base-motion-transition-property-colors,
  transform: $base-motion-hover-transform-scale-sm,
) !default;

$semantic-motion-button-press: (
  duration: $base-motion-duration-instant,
  timing: $base-motion-easing-ease-in,
  property: $base-motion-transition-property-transform,
  transform: scale(0.98),
) !default;

$semantic-motion-link-hover: (
  duration: $base-motion-duration-fast,
  timing: $base-motion-easing-ease-out,
  property: $base-motion-transition-property-colors,
) !default;

// FORM ANIMATIONS - Input and form interactions
$semantic-motion-input-focus: (
  duration: $base-motion-duration-normal,
  timing: $base-motion-easing-ease-out,
  property: border-color box-shadow,
) !default;

$semantic-motion-input-error: (
  duration: $base-motion-duration-fast,
  timing: $base-motion-easing-spring,
  property: border-color,
  transform: translateX(-2px),
) !default;

$semantic-motion-checkbox-check: (
  duration: $base-motion-duration-normal,
  timing: $base-motion-easing-spring,
  property: $base-motion-transition-property-transform,
) !default;

// CARD ANIMATIONS - Card and container interactions
$semantic-motion-card-hover: (
  duration: $base-motion-duration-normal,
  timing: $base-motion-easing-ease-out,
  property: box-shadow transform,
  transform: $base-motion-hover-transform-lift-sm,
) !default;

$semantic-motion-card-press: (
  duration: $base-motion-duration-fast,
  timing: $base-motion-easing-ease-in,
  property: $base-motion-transition-property-transform,
  transform: $base-motion-hover-transform-scale-sm,
) !default;

// NAVIGATION ANIMATIONS - Menu and navigation
$semantic-motion-nav-item-hover: (
  duration: $base-motion-duration-fast,
  timing: $base-motion-easing-ease-out,
  property: $base-motion-transition-property-colors,
) !default;

$semantic-motion-dropdown-enter: (
  duration: $base-motion-duration-normal,
  timing: $base-motion-easing-ease-out,
  property: opacity transform,
  transform: translateY(-8px),
) !default;

$semantic-motion-dropdown-exit: (
  duration: $base-motion-duration-fast,
  timing: $base-motion-easing-ease-in,
  property: opacity transform,
) !default;

// MODAL AND OVERLAY ANIMATIONS
$semantic-motion-modal-enter: (
  duration: $base-motion-duration-normal,
  timing: $base-motion-easing-ease-out,
  property: opacity transform,
  transform: scale(0.95) translateY(-20px),
) !default;

$semantic-motion-modal-exit: (
  duration: $base-motion-duration-fast,
  timing: $base-motion-easing-ease-in,
  property: opacity transform,
) !default;

$semantic-motion-backdrop-enter: (
  duration: $base-motion-duration-normal,
  timing: $base-motion-easing-ease-out,
  property: $base-motion-transition-property-opacity,
) !default;

$semantic-motion-backdrop-exit: (
  duration: $base-motion-duration-fast,
  timing: $base-motion-easing-ease-in,
  property: $base-motion-transition-property-opacity,
) !default;

// TOAST AND NOTIFICATION ANIMATIONS
$semantic-motion-toast-enter: (
  duration: $base-motion-duration-normal,
  timing: $base-motion-easing-spring,
  property: opacity transform,
  transform: translateX(100%),
) !default;

$semantic-motion-toast-exit: (
  duration: $base-motion-duration-normal,
  timing: $base-motion-easing-ease-in,
  property: opacity transform,
  transform: translateX(100%),
) !default;

// LOADING ANIMATIONS
$semantic-motion-spinner: (
  duration: $base-motion-duration-slowest,
  timing: $base-motion-easing-linear,
  property: $base-motion-transition-property-transform,
  iteration-count: infinite,
) !default;

$semantic-motion-pulse: (
  duration: $base-motion-duration-slower,
  timing: $base-motion-easing-ease-in-out,
  property: $base-motion-transition-property-opacity,
  iteration-count: infinite,
  direction: alternate,
) !default;

$semantic-motion-skeleton: (
  duration: 1500ms,
  timing: $base-motion-easing-ease-in-out,
  property: background-position,
  iteration-count: infinite,
) !default;

// PAGE TRANSITIONS
$semantic-motion-page-enter: (
  duration: $base-motion-duration-slow,
  timing: $base-motion-easing-ease-out,
  property: opacity transform,
  transform: translateY(20px),
) !default;

$semantic-motion-page-exit: (
  duration: $base-motion-duration-normal,
  timing: $base-motion-easing-ease-in,
  property: opacity transform,
) !default;

// UTILITY MOTIONS - Common animation patterns
$semantic-motion-fade-in: (
  duration: $base-motion-duration-normal,
  timing: $base-motion-easing-ease-out,
  property: $base-motion-transition-property-opacity,
) !default;

$semantic-motion-fade-out: (
  duration: $base-motion-duration-fast,
  timing: $base-motion-easing-ease-in,
  property: $base-motion-transition-property-opacity,
) !default;

$semantic-motion-slide-up: (
  duration: $base-motion-duration-normal,
  timing: $base-motion-easing-ease-out,
  property: opacity transform,
  transform: translateY(16px),
) !default;

$semantic-motion-slide-down: (
  duration: $base-motion-duration-normal,
  timing: $base-motion-easing-ease-out,
  property: opacity transform,
  transform: translateY(-16px),
) !default;

// ACCESSIBILITY MOTIONS - Respecting user preferences
$semantic-motion-reduced: (
  duration: $base-motion-duration-instant,
  timing: $base-motion-easing-linear,
  property: $base-motion-transition-property-none,
) !default;

$semantic-motion-standard: (
  duration: $base-motion-duration-normal,
  timing: $base-motion-easing-ease-out,
  property: $base-motion-transition-property-all,
) !default;

// INDIVIDUAL SEMANTIC MOTION DURATIONS - Direct access to duration values
$semantic-motion-duration-instant: $base-motion-duration-instant !default;
$semantic-motion-duration-fast: $base-motion-duration-fast !default;
$semantic-motion-duration-normal: $base-motion-duration-normal !default;
$semantic-motion-duration-slow: $base-motion-duration-slow !default;
$semantic-motion-duration-slower: $base-motion-duration-slower !default;
$semantic-motion-duration-slowest: $base-motion-duration-slowest !default;
$semantic-motion-duration-ultra-slow: $base-motion-duration-ultra-slow !default;

// INDIVIDUAL SEMANTIC MOTION EASING - Direct access to easing functions
$semantic-motion-easing-linear: $base-motion-easing-linear !default;
$semantic-motion-easing-ease: $base-motion-easing-ease !default;
$semantic-motion-easing-ease-in: $base-motion-easing-ease-in !default;
$semantic-motion-easing-ease-out: $base-motion-easing-ease-out !default;
$semantic-motion-easing-ease-in-out: $base-motion-easing-ease-in-out !default;
$semantic-motion-easing-spring: $base-motion-easing-spring !default;
$semantic-motion-easing-bounce: $base-motion-easing-bounce !default;
$semantic-motion-easing-sharp: $base-motion-easing-sharp !default;
$semantic-motion-easing-elastic: $base-motion-easing-elastic !default;

// INDIVIDUAL SEMANTIC TRANSITION PROPERTIES - Direct access to transition properties
$semantic-motion-transition-property-none: $base-motion-transition-property-none !default;
$semantic-motion-transition-property-all: $base-motion-transition-property-all !default;
$semantic-motion-transition-property-colors: $base-motion-transition-property-colors !default;
$semantic-motion-transition-property-opacity: $base-motion-transition-property-opacity !default;
$semantic-motion-transition-property-shadow: $base-motion-transition-property-shadow !default;
$semantic-motion-transition-property-transform: $base-motion-transition-property-transform !default;
$semantic-motion-transition-property-spacing: $base-motion-transition-property-spacing !default;
$semantic-motion-transition-property-size: $base-motion-transition-property-size !default;

// INDIVIDUAL SEMANTIC TRANSITION DURATIONS - Direct access to transition duration values
$semantic-motion-transition-duration-0: $base-motion-transition-duration-0 !default;
$semantic-motion-transition-duration-75: $base-motion-transition-duration-75 !default;
$semantic-motion-transition-duration-100: $base-motion-transition-duration-100 !default;
$semantic-motion-transition-duration-150: $base-motion-transition-duration-150 !default;
$semantic-motion-transition-duration-200: $base-motion-transition-duration-200 !default;
$semantic-motion-transition-duration-300: $base-motion-transition-duration-300 !default;
$semantic-motion-transition-duration-500: $base-motion-transition-duration-500 !default;
$semantic-motion-transition-duration-700: $base-motion-transition-duration-700 !default;
$semantic-motion-transition-duration-1000: $base-motion-transition-duration-1000 !default;
$semantic-motion-transition-duration-1500: $base-motion-transition-duration-1500 !default;
$semantic-motion-transition-duration-2000: $base-motion-transition-duration-2000 !default;

// INDIVIDUAL SEMANTIC TRANSITION TIMING FUNCTIONS - Direct access to timing functions
$semantic-motion-transition-timing-linear: $base-motion-transition-timing-linear !default;
$semantic-motion-transition-timing-in: $base-motion-transition-timing-in !default;
$semantic-motion-transition-timing-out: $base-motion-transition-timing-out !default;
$semantic-motion-transition-timing-in-out: $base-motion-transition-timing-in-out !default;
$semantic-motion-transition-timing-spring: $base-motion-transition-timing-spring !default;
$semantic-motion-transition-timing-out-back: $base-motion-transition-timing-out-back !default;

// INDIVIDUAL SEMANTIC TRANSITION DELAYS - Direct access to transition delay values
$semantic-motion-transition-delay-0: $base-motion-transition-delay-0 !default;
$semantic-motion-transition-delay-75: $base-motion-transition-delay-75 !default;
$semantic-motion-transition-delay-100: $base-motion-transition-delay-100 !default;
$semantic-motion-transition-delay-150: $base-motion-transition-delay-150 !default;
$semantic-motion-transition-delay-200: $base-motion-transition-delay-200 !default;
$semantic-motion-transition-delay-300: $base-motion-transition-delay-300 !default;
$semantic-motion-transition-delay-500: $base-motion-transition-delay-500 !default;
$semantic-motion-transition-delay-700: $base-motion-transition-delay-700 !default;
$semantic-motion-transition-delay-1000: $base-motion-transition-delay-1000 !default;

// INDIVIDUAL SEMANTIC HOVER TRANSFORMS - Direct access to hover transform values
$semantic-motion-hover-transform-none: $base-motion-hover-transform-none !default;
$semantic-motion-hover-transform-scale-sm: $base-motion-hover-transform-scale-sm !default;
$semantic-motion-hover-transform-scale-md: $base-motion-hover-transform-scale-md !default;
$semantic-motion-hover-transform-scale-lg: $base-motion-hover-transform-scale-lg !default;
$semantic-motion-hover-transform-lift-sm: $base-motion-hover-transform-lift-sm !default;
$semantic-motion-hover-transform-lift-md: $base-motion-hover-transform-lift-md !default;
$semantic-motion-hover-transform-lift-lg: $base-motion-hover-transform-lift-lg !default;
$semantic-motion-hover-transform-scale-lift-sm: $base-motion-hover-transform-scale-lift-sm !default;
$semantic-motion-hover-transform-scale-lift-md: $base-motion-hover-transform-scale-lift-md !default;