<file_sep>import { nextTick, unref, watch } from 'vue-demi'
import { MotionInstance, MotionVariants } from '../types'

export function registerLifeCycleHooks<T extends MotionVariants>({
  target,
  variants,
  variant,
}: MotionInstance<T>) {
  const _variants = unref(variants)

  const stop = watch(
    () => target,
    () => {
      // Lifecycle hooks bindings
      if (_variants && _variants.enter) {
        // Set initial before the element is mounted
        if (_variants.initial) variant.value = 'initial'

        // Set enter animation, once the element is mounted
        nextTick(() => (variant.value = 'enter'))
      }
    },
    {
      immediate: true,
      flush: 'pre',
    },
  )

  return { stop }
}
<file_sep>/*!
 * @vueuse/motion v1.6.0
 * (c) 2021
 * @license MIT
 */
import * as vue_demi from 'vue-demi'
import {
  CSSProperties,
  SVGAttributes,
  Ref,
  UnwrapRef,
  Directive,
  Plugin,
} from 'vue-demi'
import { VueInstance, MaybeRef, Fn } from '@vueuse/core'
import * as csstype from 'csstype'
import { MaybeRef as MaybeRef$1 } from '@vueuse/shared'

declare type GenericHandler = (...args: any) => void
/**
 * A generic subscription manager.
 */
declare class SubscriptionManager<Handler extends GenericHandler> {
  private subscriptions
  add(handler: Handler): () => undefined
  notify(
    /**
     * Using ...args would be preferable but it's array creation and this
     * might be fired every frame.
     */
    a?: Parameters<Handler>[0],
    b?: Parameters<Handler>[1],
    c?: Parameters<Handler>[2],
  ): void
  clear(): void
}

/**
 * `MotionValue` is used to track the state and velocity of motion values.
 */
declare class MotionValue<V = any> {
  /**
   * The current state of the `MotionValue`.
   */
  private current
  /**
   * The previous state of the `MotionValue`.
   */
  private prev
  /**
   * Duration, in milliseconds, since last updating frame.
   */
  private timeDelta
  /**
   * Timestamp of the last time this `MotionValue` was updated.
   */
  private lastUpdated
  /**
   * Functions to notify when the `MotionValue` updates.
   */
  updateSubscribers: SubscriptionManager<Subscriber<V>>
  /**
   * A reference to the currently-controlling Popmotion animation
   */
  private stopAnimation?
  /**
   * Tracks whether this value can output a velocity.
   */
  private canTrackVelocity
  /**
   * @param init - The initiating value
   * @param config - Optional configuration options
   */
  constructor(init: V)
  /**
   * Adds a function that will be notified when the `MotionValue` is updated.
   *
   * It returns a function that, when called, will cancel the subscription.
   */
  onChange(subscription: Subscriber<V>): () => void
  clearListeners(): void
  /**
   * Sets the state of the `MotionValue`.
   *
   * @param v
   * @param render
   */
  set(v: V): void
  /**
   * Update and notify `MotionValue` subscribers.
   *
   * @param v
   * @param render
   */
  updateAndNotify: (v: V) => void
  /**
   * Returns the latest state of `MotionValue`
   *
   * @returns - The latest state of `MotionValue`
   */
  get(): V
  /**
   * Get previous value.
   *
   * @returns - The previous latest state of `MotionValue`
   */
  getPrevious(): V
  /**
   * Returns the latest velocity of `MotionValue`
   *
   * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.
   */
  getVelocity(): number
  /**
   * Schedule a velocity check for the next frame.
   */
  private scheduleVelocityCheck
  /**
   * Updates `prev` with `current` if the value hasn't been updated this frame.
   * This ensures velocity calculations return `0`.
   */
  private velocityCheck
  /**
   * Registers a new animation to control this `MotionValue`. Only one
   * animation can drive a `MotionValue` at one time.
   */
  start(animation: StartAnimation): Promise<void>
  /**
   * Stop the currently active animation.
   */
  stop(): void
  /**
   * Returns `true` if this value is currently animating.
   */
  isAnimating(): boolean
  /**
   * Clear the current animation reference.
   */
  private clearAnimation
  /**
   * Destroy and clean up subscribers to this `MotionValue`.
   */
  destroy(): void
}

declare type ResolvedKeyframesTarget =
  | [null, ...number[]]
  | number[]
  | [null, ...string[]]
  | string[]
declare type KeyframesTarget =
  | ResolvedKeyframesTarget
  | [null, ...CustomValueType[]]
  | CustomValueType[]
declare type ResolvedSingleTarget = string | number
declare type SingleTarget = ResolvedSingleTarget | CustomValueType
declare type ResolvedValueTarget =
  | ResolvedSingleTarget
  | ResolvedKeyframesTarget
declare type ValueTarget = SingleTarget | KeyframesTarget
declare type Props = {
  [key: string]: any
}
declare type EasingFunction = (v: number) => number
declare type Easing =
  | [number, number, number, number]
  | 'linear'
  | 'easeIn'
  | 'easeOut'
  | 'easeInOut'
  | 'circIn'
  | 'circOut'
  | 'circInOut'
  | 'backIn'
  | 'backOut'
  | 'backInOut'
  | 'anticipate'
  | EasingFunction
interface Orchestration {
  /**
   * Delay the animation by this duration (in seconds). Defaults to `0`.
   */
  delay?: number
  /**
   * Callback triggered on animation complete.
   */
  onComplete?: () => void
  /**
   * Should the value be set imediately
   */
  immediate?: boolean
}
interface Repeat {
  /**
   * The number of times to repeat the transition. Set to `Infinity` for perpetual repeating.
   *
   * Without setting `repeatType`, this will loop the animation.
   */
  repeat?: number
  /**
   * How to repeat the animation. This can be either:
   *
   * "loop": Repeats the animation from the start
   *
   * "reverse": Alternates between forward and backwards playback
   *
   * "mirror": Switchs `from` and `to` alternately
   */
  repeatType?: 'loop' | 'reverse' | 'mirror'
  /**
   * When repeating an animation, `repeatDelay` will set the
   * duration of the time to wait, in seconds, between each repetition.
   */
  repeatDelay?: number
}
/**
 * An animation that animates between two or more values over a specific duration of time.
 * This is the default animation for non-physical values like `color` and `opacity`.
 */
interface Tween extends Repeat {
  /**
   * Set `type` to `"tween"` to use a duration-based tween animation.
   * If any non-orchestration `transition` values are set without a `type` property,
   * this is used as the default animation.
   */
  type?: 'tween'
  /**
   * The duration of the tween animation. Set to `0.3` by default, 0r `0.8` if animating a series of keyframes.
   */
  duration?: number
  /**
   * The easing function to use. Set as one of the below.
   *
   * - The name of an existing easing function.
   * - An array of four numbers to define a cubic bezier curve.
   * - An easing function, that accepts and returns a value `0-1`.
   *
   * If the animating value is set as an array of multiple values for a keyframes
   * animation, `ease` can be set as an array of easing functions to set different easings between
   * each of those values.
   */
  ease?: Easing | Easing[]
  /**
   * The duration of time already elapsed in the animation. Set to `0` by
   * default.
   */
  elapsed?: number
  /**
   * When animating keyframes, `times` can be used to determine where in the animation each keyframe is reached.
   * Each value in `times` is a value between `0` and `1`, representing `duration`.
   *
   * There must be the same number of `times` as there are keyframes.
   * Defaults to an array of evenly-spread durations.
   */
  times?: number[]
  /**
   * When animating keyframes, `easings` can be used to define easing functions between each keyframe. This array should be one item fewer than the number of keyframes, as these easings apply to the transitions between the keyframes.
   */
  easings?: Easing[]
  /**
   * The value to animate from.
   * By default, this is the current state of the animating value.
   */
  from?: number | string
  to?: number | string | ValueTarget
  velocity?: number
  delay?: number
}
/**
 * An animation that simulates spring physics for realistic motion.
 * This is the default animation for physical values like `x`, `y`, `scale` and `rotate`.
 */
interface Spring extends Repeat {
  /**
   * Set `type` to `"spring"` to animate using spring physics for natural
   * movement. Type is set to `"spring"` by default.
   */
  type: 'spring'
  /**
   * Stiffness of the spring. Higher values will create more sudden movement.
   * Set to `100` by default.
   */
  stiffness?: number
  /**
   * Strength of opposing force. If set to 0, spring will oscillate
   * indefinitely. Set to `10` by default.
   */
  damping?: number
  /**
   * Mass of the moving object. Higher values will result in more lethargic
   * movement. Set to `1` by default.
   */
  mass?: number
  /**
   * The duration of the animation, defined in seconds. Spring animations can be a maximum of 10 seconds.
   *
   * If `bounce` is set, this defaults to `0.8`.
   *
   * Note: `duration` and `bounce` will be overridden if `stiffness`, `damping` or `mass` are set.
   */
  duration?: number
  /**
   * `bounce` determines the "bounciness" of a spring animation.
   *
   * `0` is no bounce, and `1` is extremely bouncy.
   *
   * If `duration` is set, this defaults to `0.25`.
   *
   * Note: `bounce` and `duration` will be overridden if `stiffness`, `damping` or `mass` are set.
   */
  bounce?: number
  /**
   * End animation if absolute speed (in units per second) drops below this
   * value and delta is smaller than `restDelta`. Set to `0.01` by default.
   */
  restSpeed?: number
  /**
   * End animation if distance is below this value and speed is below
   * `restSpeed`. When animation ends, spring gets “snapped” to. Set to
   * `0.01` by default.
   */
  restDelta?: number
  /**
   * The value to animate from.
   * By default, this is the initial state of the animating value.
   */
  from?: number | string
  to?: number | string | ValueTarget
  /**
   * The initial velocity of the spring. By default this is the current velocity of the component.
   */
  velocity?: number
  delay?: number
}
/**
 * An animation that decelerates a value based on its initial velocity,
 * usually used to implement inertial scrolling.
 *
 * Optionally, `min` and `max` boundaries can be defined, and inertia
 * will snap to these with a spring animation.
 *
 * This animation will automatically precalculate a target value,
 * which can be modified with the `modifyTarget` property.
 *
 * This allows you to add snap-to-grid or similar functionality.
 *
 * Inertia is also the animation used for `dragTransition`, and can be configured via that prop.
 */
interface Inertia {
  /**
   * Set `type` to animate using the inertia animation. Set to `"tween"` by
   * default. This can be used for natural deceleration, like momentum scrolling.
   */
  type: 'inertia'
  /**
   * A function that receives the automatically-calculated target and returns a new one. Useful for snapping the target to a grid.
   */
  modifyTarget?(v: number): number
  /**
   * If `min` or `max` is set, this affects the stiffness of the bounce
   * spring. Higher values will create more sudden movement. Set to `500` by
   * default.
   */
  bounceStiffness?: number
  /**
   * If `min` or `max` is set, this affects the damping of the bounce spring.
   * If set to `0`, spring will oscillate indefinitely. Set to `10` by
   * default.
   */
  bounceDamping?: number
  /**
   * A higher power value equals a further target. Set to `0.8` by default.
   */
  power?: number
  /**
   * Adjusting the time constant will change the duration of the
   * deceleration, thereby affecting its feel. Set to `700` by default.
   */
  timeConstant?: number
  /**
   * End the animation if the distance to the animation target is below this value, and the absolute speed is below `restSpeed`.
   * When the animation ends, the value gets snapped to the animation target. Set to `0.01` by default.
   * Generally the default values provide smooth animation endings, only in rare cases should you need to customize these.
   */
  restDelta?: number
  /**
   * Minimum constraint. If set, the value will "bump" against this value (or immediately spring to it if the animation starts as less than this value).
   */
  min?: number
  /**
   * Maximum constraint. If set, the value will "bump" against this value (or immediately snap to it, if the initial animation value exceeds this value).
   */
  max?: number
  /**
   * The value to animate from. By default, this is the current state of the animating value.
   */
  from?: number | string
  /**
   * The initial velocity of the animation.
   * By default this is the current velocity of the component.
   */
  velocity?: number
  delay?: number
}
/**
 * Keyframes tweens between multiple `values`.
 *
 * These tweens can be arranged using the `duration`, `easings`, and `times` properties.
 */
interface Keyframes {
  /**
   * Set `type` to `"keyframes"` to animate using the keyframes animation.
   * Set to `"tween"` by default. This can be used to animate between a series of values.
   */
  type: 'keyframes'
  /**
   * An array of values to animate between.
   */
  values: KeyframesTarget
  /**
   * An array of numbers between 0 and 1, where `1` represents the `total` duration.
   *
   * Each value represents at which point during the animation each item in the animation target should be hit, so the array should be the same length as `values`.
   *
   * Defaults to an array of evenly-spread durations.
   */
  times?: number[]
  /**
   * An array of easing functions for each generated tween, or a single easing function applied to all tweens.
   *
   * This array should be one item less than `values`, as these easings apply to the transitions *between* the `values`.
   */
  ease?: Easing | Easing[]
  /**
   * Popmotion's easing prop to define individual easings. `ease` will be mapped to this prop in keyframes animations.
   */
  easings?: Easing | Easing[]
  elapsed?: number
  /**
   * The total duration of the animation. Set to `0.3` by default.
   */
  duration?: number
  repeatDelay?: number
  from?: number | string
  to?: number | string | ValueTarget
  velocity?: number
  delay?: number
}
declare type PopmotionTransitionProps = Tween | Spring | Keyframes | Inertia
declare type PermissiveTransitionDefinition = {
  [key: string]: any
}
declare type TransitionDefinition =
  | Tween
  | Spring
  | Keyframes
  | Inertia
  | PermissiveTransitionDefinition
declare type TransitionMap = Orchestration & {
  [key: string]: TransitionDefinition
}
/**
 * Transition props
 */
declare type Transition =
  | (Orchestration & Repeat & TransitionDefinition)
  | (Orchestration & Repeat & TransitionMap)
declare type MakeCustomValueType<T> = {
  [K in keyof T]: T[K] | CustomValueType
}
declare type Target = MakeCustomValueType<MotionProperties>
declare type MakeKeyframes<T> = {
  [K in keyof T]: T[K] | T[K][] | [null, ...T[K][]]
}
declare type TargetWithKeyframes = MakeKeyframes<Target>
/**
 * An object that specifies values to animate to. Each value may be set either as
 * a single value, or an array of values.
 */
declare type TargetAndTransition = TargetWithKeyframes & {
  transition?: Transition
  transitionEnd?: Target
}
declare type TargetResolver = (
  custom: any,
  current: Target,
  velocity: Target,
) => TargetAndTransition
interface CustomValueType {
  mix: (from: any, to: any) => (p: number) => number | string
  toValue: () => number | string
}
declare type MotionValuesMap = {
  [key in keyof PermissiveMotionProperties]: MotionValue
}
interface MotionTransitions {
  /**
   * Stop ongoing transitions for the current element.
   */
  stop: (keys?: string | string[]) => void
  /**
   * Start a transition, push it to the `transitions` array.
   *
   * @param transition
   * @param values
   */
  push: (
    key: string,
    value: ResolvedValueTarget,
    target: MotionProperties,
    transition: Transition,
    onComplete?: () => void,
  ) => void
  /**
   * @internal Local transitions reference
   */
  motionValues: MotionValuesMap
}

/**
 * Permissive properties keys
 */
declare type PropertiesKeys = {
  [key: string]: string | number | undefined | any
}
/**
 * SVG Supported properties
 */
declare type SVGPathProperties = {
  pathLength?: number
  pathOffset?: number
  pathSpacing?: number
}
/**
 * Transform properties
 */
declare type TransformProperties = {
  x?: string | number
  y?: string | number
  z?: string | number
  translateX?: string | number
  translateY?: string | number
  translateZ?: string | number
  rotate?: string | number
  rotateX?: string | number
  rotateY?: string | number
  rotateZ?: string | number
  scale?: string | number
  scaleX?: string | number
  scaleY?: string | number
  scaleZ?: string | number
  skew?: string | number
  skewX?: string | number
  skewY?: string | number
  originX?: string | number
  originY?: string | number
  originZ?: string | number
  perspective?: string | number
  transformPerspective?: string | number
}
/**
 * Relevant styling properties
 */
declare type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>
declare type StyleProperties = Omit<
  CSSProperties,
  | 'transition'
  | 'rotate'
  | 'scale'
  | 'perspective'
  | 'transform'
  | 'transformBox'
  | 'transformOrigin'
  | 'transformStyle'
>
/**
 * Available properties for useMotion variants
 */
declare type MotionProperties =
  | StyleProperties
  | SVGAttributes
  | TransformProperties
  | SVGPathProperties
/**
 * Permissive properties for useSpring
 */
declare type PermissiveMotionProperties = MotionProperties & {
  [key: string]: ResolvedSingleTarget
}
/**
 * Variant
 */
declare type Variant = {
  transition?: Transition
} & MotionProperties
/**
 * Motion variants object
 */
declare type MotionVariants = {
  initial?: Variant
  enter?: Variant
  leave?: Variant
  visible?: Variant
  hovered?: Variant
  tapped?: Variant
  focused?: Variant
  [key: string]: Variant | undefined
}

declare type PermissiveTarget = VueInstance | MotionTarget
declare type MotionTarget = HTMLElement | SVGElement | null | undefined
interface MotionInstance<T = MotionVariants> extends MotionControls {
  target: MaybeRef<PermissiveTarget>
  variants: MaybeRef<T>
  variant: Ref<keyof T>
  state: Ref<Variant | undefined>
  motionProperties: UnwrapRef<MotionProperties>
}
declare type UseMotionOptions = {
  syncVariants?: boolean
  lifeCycleHooks?: boolean
  visibilityHooks?: boolean
  eventListeners?: boolean
}
declare type MotionControls = {
  /**
   * Apply a variant declaration and execute the resolved transitions.
   *
   * @param variant
   * @returns Promise<void[]>
   */
  apply: (variant: Variant | string) => Promise<void[]> | undefined
  /**
   * Apply a variant declaration without transitions.
   *
   * @param variant
   */
  set: (variant: Variant | string) => void
  /**
   * Stop all the ongoing transitions for the current element.
   */
  stopTransitions: Fn
  /**
   * Helper to be passed to <transition> leave event.
   *
   * @param done
   */
  leave: (done: () => void) => void
}
declare type SpringControls = {
  /**
   * Apply new values with transitions.
   *
   * @param variant
   */
  set: (properties: MotionProperties) => void
  /**
   * Stop all transitions.
   *
   * @param variant
   */
  stop: (key?: string | string[]) => void
  /**
   * Object containing all the current values of the spring.
   *
   * @param
   */
  values: MotionProperties
}
declare type MotionInstanceBindings<T = MotionVariants> = {
  [key: string]: MotionInstance<T>
}
declare module '@vue/runtime-core' {
  interface ComponentCustomProperties {
    $motions?: MotionInstanceBindings
  }
}
declare module '@vue/runtime-dom' {
  interface HTMLAttributes {
    variants?: MotionVariants
    initial?: Variant
    enter?: Variant
    leave?: Variant
    visible?: Variant
    hovered?: Variant
    tapped?: Variant
    focused?: Variant
  }
}

interface MotionPluginOptions {
  directives?: {
    [key: string]: MotionVariants
  }
  excludePresets?: boolean
}

declare type StopAnimation = {
  stop: () => void
}
declare type Transformer<T> = (v: T) => T
declare type Subscriber<T> = (v: T) => void
declare type PassiveEffect<T> = (v: T, safeSetter: (v: T) => void) => void
declare type StartAnimation = (complete?: () => void) => StopAnimation

declare const directive: (
  variants?: MotionVariants | undefined,
) => Directive<HTMLElement | SVGElement>

declare const MotionPlugin: Plugin

declare const fade: MotionVariants
declare const fadeVisible: MotionVariants

declare const pop: MotionVariants
declare const popVisible: MotionVariants

declare const rollLeft: MotionVariants
declare const rollVisibleLeft: MotionVariants
declare const rollRight: MotionVariants
declare const rollVisibleRight: MotionVariants
declare const rollTop: MotionVariants
declare const rollVisibleTop: MotionVariants
declare const rollBottom: MotionVariants
declare const rollVisibleBottom: MotionVariants

declare const slideLeft: MotionVariants
declare const slideVisibleLeft: MotionVariants
declare const slideRight: MotionVariants
declare const slideVisibleRight: MotionVariants
declare const slideTop: MotionVariants
declare const slideVisibleTop: MotionVariants
declare const slideBottom: MotionVariants
declare const slideVisibleBottom: MotionVariants

/**
 * Reactive style object implementing all native CSS properties.
 *
 * @param props
 */
declare function reactiveStyle(props?: StyleProperties): {
  state: {
    alignContent?: string | undefined
    alignItems?: string | undefined
    alignSelf?: string | undefined
    alignTracks?: string | undefined
    animationDelay?: string | undefined
    animationDirection?: string | undefined
    animationDuration?: string | undefined
    animationFillMode?: string | undefined
    animationIterationCount?:
      | csstype.AnimationIterationCountProperty
      | undefined
    animationName?: string | undefined
    animationPlayState?: string | undefined
    animationTimingFunction?: string | undefined
    appearance?: csstype.AppearanceProperty | undefined
    aspectRatio?: string | undefined
    backdropFilter?: string | undefined
    backfaceVisibility?: csstype.BackfaceVisibilityProperty | undefined
    backgroundAttachment?: string | undefined
    backgroundBlendMode?: string | undefined
    backgroundClip?: string | undefined
    backgroundColor?: string | undefined
    backgroundImage?: string | undefined
    backgroundOrigin?: string | undefined
    backgroundPositionX?:
      | csstype.BackgroundPositionXProperty<string | number>
      | undefined
    backgroundPositionY?:
      | csstype.BackgroundPositionYProperty<string | number>
      | undefined
    backgroundRepeat?: string | undefined
    backgroundSize?: csstype.BackgroundSizeProperty<string | number> | undefined
    blockOverflow?: string | undefined
    blockSize?: csstype.BlockSizeProperty<string | number> | undefined
    borderBlockColor?: string | undefined
    borderBlockEndColor?: string | undefined
    borderBlockEndStyle?: csstype.BorderBlockEndStyleProperty | undefined
    borderBlockEndWidth?:
      | csstype.BorderBlockEndWidthProperty<string | number>
      | undefined
    borderBlockStartColor?: string | undefined
    borderBlockStartStyle?: csstype.BorderBlockStartStyleProperty | undefined
    borderBlockStartWidth?:
      | csstype.BorderBlockStartWidthProperty<string | number>
      | undefined
    borderBlockStyle?: csstype.BorderBlockStyleProperty | undefined
    borderBlockWidth?:
      | csstype.BorderBlockWidthProperty<string | number>
      | undefined
    borderBottomColor?: string | undefined
    borderBottomLeftRadius?:
      | csstype.BorderBottomLeftRadiusProperty<string | number>
      | undefined
    borderBottomRightRadius?:
      | csstype.BorderBottomRightRadiusProperty<string | number>
      | undefined
    borderBottomStyle?: csstype.BorderBottomStyleProperty | undefined
    borderBottomWidth?:
      | csstype.BorderBottomWidthProperty<string | number>
      | undefined
    borderCollapse?: csstype.BorderCollapseProperty | undefined
    borderEndEndRadius?:
      | csstype.BorderEndEndRadiusProperty<string | number>
      | undefined
    borderEndStartRadius?:
      | csstype.BorderEndStartRadiusProperty<string | number>
      | undefined
    borderImageOutset?:
      | csstype.BorderImageOutsetProperty<string | number>
      | undefined
    borderImageRepeat?: string | undefined
    borderImageSlice?: csstype.BorderImageSliceProperty | undefined
    borderImageSource?: string | undefined
    borderImageWidth?:
      | csstype.BorderImageWidthProperty<string | number>
      | undefined
    borderInlineColor?: string | undefined
    borderInlineEndColor?: string | undefined
    borderInlineEndStyle?: csstype.BorderInlineEndStyleProperty | undefined
    borderInlineEndWidth?:
      | csstype.BorderInlineEndWidthProperty<string | number>
      | undefined
    borderInlineStartColor?: string | undefined
    borderInlineStartStyle?: csstype.BorderInlineStartStyleProperty | undefined
    borderInlineStartWidth?:
      | csstype.BorderInlineStartWidthProperty<string | number>
      | undefined
    borderInlineStyle?: csstype.BorderInlineStyleProperty | undefined
    borderInlineWidth?:
      | csstype.BorderInlineWidthProperty<string | number>
      | undefined
    borderLeftColor?: string | undefined
    borderLeftStyle?: csstype.BorderLeftStyleProperty | undefined
    borderLeftWidth?:
      | csstype.BorderLeftWidthProperty<string | number>
      | undefined
    borderRightColor?: string | undefined
    borderRightStyle?: csstype.BorderRightStyleProperty | undefined
    borderRightWidth?:
      | csstype.BorderRightWidthProperty<string | number>
      | undefined
    borderSpacing?: csstype.BorderSpacingProperty<string | number> | undefined
    borderStartEndRadius?:
      | csstype.BorderStartEndRadiusProperty<string | number>
      | undefined
    borderStartStartRadius?:
      | csstype.BorderStartStartRadiusProperty<string | number>
      | undefined
    borderTopColor?: string | undefined
    borderTopLeftRadius?:
      | csstype.BorderTopLeftRadiusProperty<string | number>
      | undefined
    borderTopRightRadius?:
      | csstype.BorderTopRightRadiusProperty<string | number>
      | undefined
    borderTopStyle?: csstype.BorderTopStyleProperty | undefined
    borderTopWidth?: csstype.BorderTopWidthProperty<string | number> | undefined
    bottom?: csstype.BottomProperty<string | number> | undefined
    boxDecorationBreak?: csstype.BoxDecorationBreakProperty | undefined
    boxShadow?: string | undefined
    boxSizing?: csstype.BoxSizingProperty | undefined
    breakAfter?: csstype.BreakAfterProperty | undefined
    breakBefore?: csstype.BreakBeforeProperty | undefined
    breakInside?: csstype.BreakInsideProperty | undefined
    captionSide?: csstype.CaptionSideProperty | undefined
    caretColor?: string | undefined
    clear?: csstype.ClearProperty | undefined
    clipPath?: string | undefined
    color?: string | undefined
    colorAdjust?: csstype.ColorAdjustProperty | undefined
    colorScheme?: string | undefined
    columnCount?: csstype.ColumnCountProperty | undefined
    columnFill?: csstype.ColumnFillProperty | undefined
    columnGap?: csstype.ColumnGapProperty<string | number> | undefined
    columnRuleColor?: string | undefined
    columnRuleStyle?: string | undefined
    columnRuleWidth?:
      | csstype.ColumnRuleWidthProperty<string | number>
      | undefined
    columnSpan?: csstype.ColumnSpanProperty | undefined
    columnWidth?: csstype.ColumnWidthProperty<string | number> | undefined
    contain?: string | undefined
    content?: string | undefined
    contentVisibility?: csstype.ContentVisibilityProperty | undefined
    counterIncrement?: string | undefined
    counterReset?: string | undefined
    counterSet?: string | undefined
    cursor?: string | undefined
    direction?: csstype.DirectionProperty | undefined
    display?: string | undefined
    emptyCells?: csstype.EmptyCellsProperty | undefined
    filter?: string | undefined
    flexBasis?: csstype.FlexBasisProperty<string | number> | undefined
    flexDirection?: csstype.FlexDirectionProperty | undefined
    flexGrow?: csstype.GlobalsNumber | undefined
    flexShrink?: csstype.GlobalsNumber | undefined
    flexWrap?: csstype.FlexWrapProperty | undefined
    float?: csstype.FloatProperty | undefined
    fontFamily?: string | undefined
    fontFeatureSettings?: string | undefined
    fontKerning?: csstype.FontKerningProperty | undefined
    fontLanguageOverride?: string | undefined
    fontOpticalSizing?: csstype.FontOpticalSizingProperty | undefined
    fontSize?: csstype.FontSizeProperty<string | number> | undefined
    fontSizeAdjust?: csstype.FontSizeAdjustProperty | undefined
    fontSmooth?: csstype.FontSmoothProperty<string | number> | undefined
    fontStretch?: string | undefined
    fontStyle?: string | undefined
    fontSynthesis?: string | undefined
    fontVariant?: string | undefined
    fontVariantCaps?: csstype.FontVariantCapsProperty | undefined
    fontVariantEastAsian?: string | undefined
    fontVariantLigatures?: string | undefined
    fontVariantNumeric?: string | undefined
    fontVariantPosition?: csstype.FontVariantPositionProperty | undefined
    fontVariationSettings?: string | undefined
    fontWeight?: csstype.FontWeightProperty | undefined
    forcedColorAdjust?: csstype.ForcedColorAdjustProperty | undefined
    gridAutoColumns?:
      | csstype.GridAutoColumnsProperty<string | number>
      | undefined
    gridAutoFlow?: string | undefined
    gridAutoRows?: csstype.GridAutoRowsProperty<string | number> | undefined
    gridColumnEnd?: csstype.GridColumnEndProperty | undefined
    gridColumnStart?: csstype.GridColumnStartProperty | undefined
    gridRowEnd?: csstype.GridRowEndProperty | undefined
    gridRowStart?: csstype.GridRowStartProperty | undefined
    gridTemplateAreas?: string | undefined
    gridTemplateColumns?:
      | csstype.GridTemplateColumnsProperty<string | number>
      | undefined
    gridTemplateRows?:
      | csstype.GridTemplateRowsProperty<string | number>
      | undefined
    hangingPunctuation?: string | undefined
    height?: csstype.HeightProperty<string | number> | undefined
    hyphens?: csstype.HyphensProperty | undefined
    imageOrientation?: string | undefined
    imageRendering?: csstype.ImageRenderingProperty | undefined
    imageResolution?: string | undefined
    initialLetter?: csstype.InitialLetterProperty | undefined
    inlineSize?: csstype.InlineSizeProperty<string | number> | undefined
    inset?: csstype.InsetProperty<string | number> | undefined
    insetBlock?: csstype.InsetBlockProperty<string | number> | undefined
    insetBlockEnd?: csstype.InsetBlockEndProperty<string | number> | undefined
    insetBlockStart?:
      | csstype.InsetBlockStartProperty<string | number>
      | undefined
    insetInline?: csstype.InsetInlineProperty<string | number> | undefined
    insetInlineEnd?: csstype.InsetInlineEndProperty<string | number> | undefined
    insetInlineStart?:
      | csstype.InsetInlineStartProperty<string | number>
      | undefined
    isolation?: csstype.IsolationProperty | undefined
    justifyContent?: string | undefined
    justifyItems?: string | undefined
    justifySelf?: string | undefined
    justifyTracks?: string | undefined
    left?: csstype.LeftProperty<string | number> | undefined
    letterSpacing?: csstype.LetterSpacingProperty<string | number> | undefined
    lineBreak?: csstype.LineBreakProperty | undefined
    lineHeight?: csstype.LineHeightProperty<string | number> | undefined
    lineHeightStep?: csstype.LineHeightStepProperty<string | number> | undefined
    listStyleImage?: string | undefined
    listStylePosition?: csstype.ListStylePositionProperty | undefined
    listStyleType?: string | undefined
    marginBlock?: csstype.MarginBlockProperty<string | number> | undefined
    marginBlockEnd?: csstype.MarginBlockEndProperty<string | number> | undefined
    marginBlockStart?:
      | csstype.MarginBlockStartProperty<string | number>
      | undefined
    marginBottom?: csstype.MarginBottomProperty<string | number> | undefined
    marginInline?: csstype.MarginInlineProperty<string | number> | undefined
    marginInlineEnd?:
      | csstype.MarginInlineEndProperty<string | number>
      | undefined
    marginInlineStart?:
      | csstype.MarginInlineStartProperty<string | number>
      | undefined
    marginLeft?: csstype.MarginLeftProperty<string | number> | undefined
    marginRight?: csstype.MarginRightProperty<string | number> | undefined
    marginTop?: csstype.MarginTopProperty<string | number> | undefined
    maskBorderMode?: csstype.MaskBorderModeProperty | undefined
    maskBorderOutset?:
      | csstype.MaskBorderOutsetProperty<string | number>
      | undefined
    maskBorderRepeat?: string | undefined
    maskBorderSlice?: csstype.MaskBorderSliceProperty | undefined
    maskBorderSource?: string | undefined
    maskBorderWidth?:
      | csstype.MaskBorderWidthProperty<string | number>
      | undefined
    maskClip?: string | undefined
    maskComposite?: string | undefined
    maskImage?: string | undefined
    maskMode?: string | undefined
    maskOrigin?: string | undefined
    maskPosition?: csstype.MaskPositionProperty<string | number> | undefined
    maskRepeat?: string | undefined
    maskSize?: csstype.MaskSizeProperty<string | number> | undefined
    maskType?: csstype.MaskTypeProperty | undefined
    mathStyle?: csstype.MathStyleProperty | undefined
    maxBlockSize?: csstype.MaxBlockSizeProperty<string | number> | undefined
    maxHeight?: csstype.MaxHeightProperty<string | number> | undefined
    maxInlineSize?: csstype.MaxInlineSizeProperty<string | number> | undefined
    maxLines?: csstype.MaxLinesProperty | undefined
    maxWidth?: csstype.MaxWidthProperty<string | number> | undefined
    minBlockSize?: csstype.MinBlockSizeProperty<string | number> | undefined
    minHeight?: csstype.MinHeightProperty<string | number> | undefined
    minInlineSize?: csstype.MinInlineSizeProperty<string | number> | undefined
    minWidth?: csstype.MinWidthProperty<string | number> | undefined
    mixBlendMode?: csstype.MixBlendModeProperty | undefined
    motionDistance?: csstype.OffsetDistanceProperty<string | number> | undefined
    motionPath?: string | undefined
    motionRotation?: string | undefined
    objectFit?: csstype.ObjectFitProperty | undefined
    objectPosition?: csstype.ObjectPositionProperty<string | number> | undefined
    offsetAnchor?: csstype.OffsetAnchorProperty<string | number> | undefined
    offsetDistance?: csstype.OffsetDistanceProperty<string | number> | undefined
    offsetPath?: string | undefined
    offsetRotate?: string | undefined
    offsetRotation?: string | undefined
    opacity?: csstype.OpacityProperty | undefined
    order?: csstype.GlobalsNumber | undefined
    orphans?: csstype.GlobalsNumber | undefined
    outlineColor?: string | undefined
    outlineOffset?: csstype.OutlineOffsetProperty<string | number> | undefined
    outlineStyle?: string | undefined
    outlineWidth?: csstype.OutlineWidthProperty<string | number> | undefined
    overflowAnchor?: csstype.OverflowAnchorProperty | undefined
    overflowBlock?: csstype.OverflowBlockProperty | undefined
    overflowClipBox?: csstype.OverflowClipBoxProperty | undefined
    overflowClipMargin?:
      | csstype.OverflowClipMarginProperty<string | number>
      | undefined
    overflowInline?: csstype.OverflowInlineProperty | undefined
    overflowWrap?: csstype.OverflowWrapProperty | undefined
    overflowX?: csstype.OverflowXProperty | undefined
    overflowY?: csstype.OverflowYProperty | undefined
    overscrollBehaviorBlock?:
      | csstype.OverscrollBehaviorBlockProperty
      | undefined
    overscrollBehaviorInline?:
      | csstype.OverscrollBehaviorInlineProperty
      | undefined
    overscrollBehaviorX?: csstype.OverscrollBehaviorXProperty | undefined
    overscrollBehaviorY?: csstype.OverscrollBehaviorYProperty | undefined
    paddingBlock?: csstype.PaddingBlockProperty<string | number> | undefined
    paddingBlockEnd?:
      | csstype.PaddingBlockEndProperty<string | number>
      | undefined
    paddingBlockStart?:
      | csstype.PaddingBlockStartProperty<string | number>
      | undefined
    paddingBottom?: csstype.PaddingBottomProperty<string | number> | undefined
    paddingInline?: csstype.PaddingInlineProperty<string | number> | undefined
    paddingInlineEnd?:
      | csstype.PaddingInlineEndProperty<string | number>
      | undefined
    paddingInlineStart?:
      | csstype.PaddingInlineStartProperty<string | number>
      | undefined
    paddingLeft?: csstype.PaddingLeftProperty<string | number> | undefined
    paddingRight?: csstype.PaddingRightProperty<string | number> | undefined
    paddingTop?: csstype.PaddingTopProperty<string | number> | undefined
    pageBreakAfter?: csstype.PageBreakAfterProperty | undefined
    pageBreakBefore?: csstype.PageBreakBeforeProperty | undefined
    pageBreakInside?: csstype.PageBreakInsideProperty | undefined
    paintOrder?: string | undefined
    perspectiveOrigin?:
      | csstype.PerspectiveOriginProperty<string | number>
      | undefined
    placeContent?: string | undefined
    pointerEvents?: csstype.PointerEventsProperty | undefined
    position?: csstype.PositionProperty | undefined
    quotes?: string | undefined
    resize?: csstype.ResizeProperty | undefined
    right?: csstype.RightProperty<string | number> | undefined
    rowGap?: csstype.RowGapProperty<string | number> | undefined
    rubyAlign?: csstype.RubyAlignProperty | undefined
    rubyMerge?: csstype.RubyMergeProperty | undefined
    rubyPosition?: string | undefined
    scrollBehavior?: csstype.ScrollBehaviorProperty | undefined
    scrollMargin?: csstype.ScrollMarginProperty<string | number> | undefined
    scrollMarginBlock?:
      | csstype.ScrollMarginBlockProperty<string | number>
      | undefined
    scrollMarginBlockEnd?:
      | csstype.ScrollMarginBlockEndProperty<string | number>
      | undefined
    scrollMarginBlockStart?:
      | csstype.ScrollMarginBlockStartProperty<string | number>
      | undefined
    scrollMarginBottom?:
      | csstype.ScrollMarginBottomProperty<string | number>
      | undefined
    scrollMarginInline?:
      | csstype.ScrollMarginInlineProperty<string | number>
      | undefined
    scrollMarginInlineEnd?:
      | csstype.ScrollMarginInlineEndProperty<string | number>
      | undefined
    scrollMarginInlineStart?:
      | csstype.ScrollMarginInlineStartProperty<string | number>
      | undefined
    scrollMarginLeft?:
      | csstype.ScrollMarginLeftProperty<string | number>
      | undefined
    scrollMarginRight?:
      | csstype.ScrollMarginRightProperty<string | number>
      | undefined
    scrollMarginTop?:
      | csstype.ScrollMarginTopProperty<string | number>
      | undefined
    scrollPadding?: csstype.ScrollPaddingProperty<string | number> | undefined
    scrollPaddingBlock?:
      | csstype.ScrollPaddingBlockProperty<string | number>
      | undefined
    scrollPaddingBlockEnd?:
      | csstype.ScrollPaddingBlockEndProperty<string | number>
      | undefined
    scrollPaddingBlockStart?:
      | csstype.ScrollPaddingBlockStartProperty<string | number>
      | undefined
    scrollPaddingBottom?:
      | csstype.ScrollPaddingBottomProperty<string | number>
      | undefined
    scrollPaddingInline?:
      | csstype.ScrollPaddingInlineProperty<string | number>
      | undefined
    scrollPaddingInlineEnd?:
      | csstype.ScrollPaddingInlineEndProperty<string | number>
      | undefined
    scrollPaddingInlineStart?:
      | csstype.ScrollPaddingInlineStartProperty<string | number>
      | undefined
    scrollPaddingLeft?:
      | csstype.ScrollPaddingLeftProperty<string | number>
      | undefined
    scrollPaddingRight?:
      | csstype.ScrollPaddingRightProperty<string | number>
      | undefined
    scrollPaddingTop?:
      | csstype.ScrollPaddingTopProperty<string | number>
      | undefined
    scrollSnapAlign?: string | undefined
    scrollSnapMargin?: csstype.ScrollMarginProperty<string | number> | undefined
    scrollSnapMarginBottom?:
      | csstype.ScrollMarginBottomProperty<string | number>
      | undefined
    scrollSnapMarginLeft?:
      | csstype.ScrollMarginLeftProperty<string | number>
      | undefined
    scrollSnapMarginRight?:
      | csstype.ScrollMarginRightProperty<string | number>
      | undefined
    scrollSnapMarginTop?:
      | csstype.ScrollMarginTopProperty<string | number>
      | undefined
    scrollSnapStop?: csstype.ScrollSnapStopProperty | undefined
    scrollSnapType?: string | undefined
    scrollbarColor?: string | undefined
    scrollbarGutter?: string | undefined
    scrollbarWidth?: csstype.ScrollbarWidthProperty | undefined
    shapeImageThreshold?: csstype.ShapeImageThresholdProperty | undefined
    shapeMargin?: csstype.ShapeMarginProperty<string | number> | undefined
    shapeOutside?: string | undefined
    tabSize?: csstype.TabSizeProperty<string | number> | undefined
    tableLayout?: csstype.TableLayoutProperty | undefined
    textAlign?: csstype.TextAlignProperty | undefined
    textAlignLast?: csstype.TextAlignLastProperty | undefined
    textCombineUpright?: string | undefined
    textDecorationColor?: string | undefined
    textDecorationLine?: string | undefined
    textDecorationSkip?: string | undefined
    textDecorationSkipInk?: csstype.TextDecorationSkipInkProperty | undefined
    textDecorationStyle?: csstype.TextDecorationStyleProperty | undefined
    textDecorationThickness?:
      | csstype.TextDecorationThicknessProperty<string | number>
      | undefined
    textDecorationWidth?:
      | csstype.TextDecorationThicknessProperty<string | number>
      | undefined
    textEmphasisColor?: string | undefined
    textEmphasisPosition?: string | undefined
    textEmphasisStyle?: string | undefined
    textIndent?: csstype.TextIndentProperty<string | number> | undefined
    textJustify?: csstype.TextJustifyProperty | undefined
    textOrientation?: csstype.TextOrientationProperty | undefined
    textOverflow?: string | undefined
    textRendering?: csstype.TextRenderingProperty | undefined
    textShadow?: string | undefined
    textSizeAdjust?: string | undefined
    textTransform?: csstype.TextTransformProperty | undefined
    textUnderlineOffset?:
      | csstype.TextUnderlineOffsetProperty<string | number>
      | undefined
    textUnderlinePosition?: string | undefined
    top?: csstype.TopProperty<string | number> | undefined
    touchAction?: string | undefined
    transitionDelay?: string | undefined
    transitionDuration?: string | undefined
    transitionProperty?: string | undefined
    transitionTimingFunction?: string | undefined
    translate?: csstype.TranslateProperty<string | number> | undefined
    unicodeBidi?: csstype.UnicodeBidiProperty | undefined
    userSelect?: csstype.UserSelectProperty | undefined
    verticalAlign?: csstype.VerticalAlignProperty<string | number> | undefined
    visibility?: csstype.VisibilityProperty | undefined
    whiteSpace?: csstype.WhiteSpaceProperty | undefined
    widows?: csstype.GlobalsNumber | undefined
    width?: csstype.WidthProperty<string | number> | undefined
    willChange?: string | undefined
    wordBreak?: csstype.WordBreakProperty | undefined
    wordSpacing?: csstype.WordSpacingProperty<string | number> | undefined
    wordWrap?: csstype.WordWrapProperty | undefined
    writingMode?: csstype.WritingModeProperty | undefined
    zIndex?: csstype.ZIndexProperty | undefined
    zoom?: csstype.ZoomProperty | undefined
    all?: csstype.Globals | undefined
    animation?: csstype.AnimationProperty | undefined
    background?: csstype.BackgroundProperty<string | number> | undefined
    backgroundPosition?:
      | csstype.BackgroundPositionProperty<string | number>
      | undefined
    border?: csstype.BorderProperty<string | number> | undefined
    borderBlock?: csstype.BorderBlockProperty<string | number> | undefined
    borderBlockEnd?: csstype.BorderBlockEndProperty<string | number> | undefined
    borderBlockStart?:
      | csstype.BorderBlockStartProperty<string | number>
      | undefined
    borderBottom?: csstype.BorderBottomProperty<string | number> | undefined
    borderColor?: string | undefined
    borderImage?: csstype.BorderImageProperty | undefined
    borderInline?: csstype.BorderInlineProperty<string | number> | undefined
    borderInlineEnd?:
      | csstype.BorderInlineEndProperty<string | number>
      | undefined
    borderInlineStart?:
      | csstype.BorderInlineStartProperty<string | number>
      | undefined
    borderLeft?: csstype.BorderLeftProperty<string | number> | undefined
    borderRadius?: csstype.BorderRadiusProperty<string | number> | undefined
    borderRight?: csstype.BorderRightProperty<string | number> | undefined
    borderStyle?: string | undefined
    borderTop?: csstype.BorderTopProperty<string | number> | undefined
    borderWidth?: csstype.BorderWidthProperty<string | number> | undefined
    columnRule?: csstype.ColumnRuleProperty<string | number> | undefined
    columns?: csstype.ColumnsProperty<string | number> | undefined
    flex?: csstype.FlexProperty<string | number> | undefined
    flexFlow?: string | undefined
    font?: string | undefined
    gap?: csstype.GapProperty<string | number> | undefined
    grid?: string | undefined
    gridArea?: csstype.GridAreaProperty | undefined
    gridColumn?: csstype.GridColumnProperty | undefined
    gridRow?: csstype.GridRowProperty | undefined
    gridTemplate?: string | undefined
    lineClamp?: csstype.LineClampProperty | undefined
    listStyle?: string | undefined
    margin?: csstype.MarginProperty<string | number> | undefined
    mask?: csstype.MaskProperty<string | number> | undefined
    maskBorder?: csstype.MaskBorderProperty | undefined
    motion?: csstype.OffsetProperty<string | number> | undefined
    offset?: csstype.OffsetProperty<string | number> | undefined
    outline?: csstype.OutlineProperty<string | number> | undefined
    overflow?: string | undefined
    overscrollBehavior?: string | undefined
    padding?: csstype.PaddingProperty<string | number> | undefined
    placeItems?: string | undefined
    placeSelf?: string | undefined
    textDecoration?: csstype.TextDecorationProperty<string | number> | undefined
    textEmphasis?: string | undefined
    MozAnimationDelay?: string | undefined
    MozAnimationDirection?: string | undefined
    MozAnimationDuration?: string | undefined
    MozAnimationFillMode?: string | undefined
    MozAnimationIterationCount?:
      | csstype.AnimationIterationCountProperty
      | undefined
    MozAnimationName?: string | undefined
    MozAnimationPlayState?: string | undefined
    MozAnimationTimingFunction?: string | undefined
    MozAppearance?: csstype.MozAppearanceProperty | undefined
    MozBackfaceVisibility?: csstype.BackfaceVisibilityProperty | undefined
    MozBorderBottomColors?: string | undefined
    MozBorderEndColor?: string | undefined
    MozBorderEndStyle?: csstype.BorderInlineEndStyleProperty | undefined
    MozBorderEndWidth?:
      | csstype.BorderInlineEndWidthProperty<string | number>
      | undefined
    MozBorderLeftColors?: string | undefined
    MozBorderRightColors?: string | undefined
    MozBorderStartColor?: string | undefined
    MozBorderStartStyle?: csstype.BorderInlineStartStyleProperty | undefined
    MozBorderTopColors?: string | undefined
    MozBoxSizing?: csstype.BoxSizingProperty | undefined
    MozColumnCount?: csstype.ColumnCountProperty | undefined
    MozColumnFill?: csstype.ColumnFillProperty | undefined
    MozColumnGap?: csstype.ColumnGapProperty<string | number> | undefined
    MozColumnRuleColor?: string | undefined
    MozColumnRuleStyle?: string | undefined
    MozColumnRuleWidth?:
      | csstype.ColumnRuleWidthProperty<string | number>
      | undefined
    MozColumnWidth?: csstype.ColumnWidthProperty<string | number> | undefined
    MozContextProperties?: string | undefined
    MozFontFeatureSettings?: string | undefined
    MozFontLanguageOverride?: string | undefined
    MozHyphens?: csstype.HyphensProperty | undefined
    MozImageRegion?: string | undefined
    MozMarginEnd?: csstype.MarginInlineEndProperty<string | number> | undefined
    MozMarginStart?:
      | csstype.MarginInlineStartProperty<string | number>
      | undefined
    MozOrient?: csstype.MozOrientProperty | undefined
    MozOsxFontSmoothing?:
      | csstype.FontSmoothProperty<string | number>
      | undefined
    MozPaddingEnd?:
      | csstype.PaddingInlineEndProperty<string | number>
      | undefined
    MozPaddingStart?:
      | csstype.PaddingInlineStartProperty<string | number>
      | undefined
    MozPerspective?: csstype.PerspectiveProperty<string | number> | undefined
    MozPerspectiveOrigin?:
      | csstype.PerspectiveOriginProperty<string | number>
      | undefined
    MozStackSizing?: csstype.MozStackSizingProperty | undefined
    MozTabSize?: csstype.TabSizeProperty<string | number> | undefined
    MozTextBlink?: csstype.MozTextBlinkProperty | undefined
    MozTextSizeAdjust?: string | undefined
    MozTransformOrigin?:
      | csstype.TransformOriginProperty<string | number>
      | undefined
    MozTransformStyle?: csstype.TransformStyleProperty | undefined
    MozTransitionDelay?: string | undefined
    MozTransitionDuration?: string | undefined
    MozTransitionProperty?: string | undefined
    MozTransitionTimingFunction?: string | undefined
    MozUserFocus?: csstype.MozUserFocusProperty | undefined
    MozUserModify?: csstype.MozUserModifyProperty | undefined
    MozUserSelect?: csstype.UserSelectProperty | undefined
    MozWindowDragging?: csstype.MozWindowDraggingProperty | undefined
    MozWindowShadow?: csstype.MozWindowShadowProperty | undefined
    msAccelerator?: csstype.MsAcceleratorProperty | undefined
    msAlignSelf?: string | undefined
    msBlockProgression?: csstype.MsBlockProgressionProperty | undefined
    msContentZoomChaining?: csstype.MsContentZoomChainingProperty | undefined
    msContentZoomLimitMax?: string | undefined
    msContentZoomLimitMin?: string | undefined
    msContentZoomSnapPoints?: string | undefined
    msContentZoomSnapType?: csstype.MsContentZoomSnapTypeProperty | undefined
    msContentZooming?: csstype.MsContentZoomingProperty | undefined
    msFilter?: string | undefined
    msFlexDirection?: csstype.FlexDirectionProperty | undefined
    msFlexPositive?: csstype.GlobalsNumber | undefined
    msFlowFrom?: string | undefined
    msFlowInto?: string | undefined
    msGridColumns?: csstype.MsGridColumnsProperty<string | number> | undefined
    msGridRows?: csstype.MsGridRowsProperty<string | number> | undefined
    msHighContrastAdjust?: csstype.MsHighContrastAdjustProperty | undefined
    msHyphenateLimitChars?: csstype.MsHyphenateLimitCharsProperty | undefined
    msHyphenateLimitLines?: csstype.MsHyphenateLimitLinesProperty | undefined
    msHyphenateLimitZone?:
      | csstype.MsHyphenateLimitZoneProperty<string | number>
      | undefined
    msHyphens?: csstype.HyphensProperty | undefined
    msImeAlign?: csstype.MsImeAlignProperty | undefined
    msJustifySelf?: string | undefined
    msLineBreak?: csstype.LineBreakProperty | undefined
    msOrder?: csstype.GlobalsNumber | undefined
    msOverflowStyle?: csstype.MsOverflowStyleProperty | undefined
    msOverflowX?: csstype.OverflowXProperty | undefined
    msOverflowY?: csstype.OverflowYProperty | undefined
    msScrollChaining?: csstype.MsScrollChainingProperty | undefined
    msScrollLimitXMax?:
      | csstype.MsScrollLimitXMaxProperty<string | number>
      | undefined
    msScrollLimitXMin?:
      | csstype.MsScrollLimitXMinProperty<string | number>
      | undefined
    msScrollLimitYMax?:
      | csstype.MsScrollLimitYMaxProperty<string | number>
      | undefined
    msScrollLimitYMin?:
      | csstype.MsScrollLimitYMinProperty<string | number>
      | undefined
    msScrollRails?: csstype.MsScrollRailsProperty | undefined
    msScrollSnapPointsX?: string | undefined
    msScrollSnapPointsY?: string | undefined
    msScrollSnapType?: csstype.MsScrollSnapTypeProperty | undefined
    msScrollTranslation?: csstype.MsScrollTranslationProperty | undefined
    msScrollbar3dlightColor?: string | undefined
    msScrollbarArrowColor?: string | undefined
    msScrollbarBaseColor?: string | undefined
    msScrollbarDarkshadowColor?: string | undefined
    msScrollbarFaceColor?: string | undefined
    msScrollbarHighlightColor?: string | undefined
    msScrollbarShadowColor?: string | undefined
    msTextAutospace?: csstype.MsTextAutospaceProperty | undefined
    msTextCombineHorizontal?: string | undefined
    msTextOverflow?: string | undefined
    msTouchAction?: string | undefined
    msTouchSelect?: csstype.MsTouchSelectProperty | undefined
    msTransform?: string | undefined
    msTransformOrigin?:
      | csstype.TransformOriginProperty<string | number>
      | undefined
    msTransitionDelay?: string | undefined
    msTransitionDuration?: string | undefined
    msTransitionProperty?: string | undefined
    msTransitionTimingFunction?: string | undefined
    msUserSelect?: csstype.MsUserSelectProperty | undefined
    msWordBreak?: csstype.WordBreakProperty | undefined
    msWrapFlow?: csstype.MsWrapFlowProperty | undefined
    msWrapMargin?: csstype.MsWrapMarginProperty<string | number> | undefined
    msWrapThrough?: csstype.MsWrapThroughProperty | undefined
    msWritingMode?: csstype.WritingModeProperty | undefined
    WebkitAlignContent?: string | undefined
    WebkitAlignItems?: string | undefined
    WebkitAlignSelf?: string | undefined
    WebkitAnimationDelay?: string | undefined
    WebkitAnimationDirection?: string | undefined
    WebkitAnimationDuration?: string | undefined
    WebkitAnimationFillMode?: string | undefined
    WebkitAnimationIterationCount?:
      | csstype.AnimationIterationCountProperty
      | undefined
    WebkitAnimationName?: string | undefined
    WebkitAnimationPlayState?: string | undefined
    WebkitAnimationTimingFunction?: string | undefined
    WebkitAppearance?: csstype.WebkitAppearanceProperty | undefined
    WebkitBackdropFilter?: string | undefined
    WebkitBackfaceVisibility?: csstype.BackfaceVisibilityProperty | undefined
    WebkitBackgroundClip?: string | undefined
    WebkitBackgroundOrigin?: string | undefined
    WebkitBackgroundSize?:
      | csstype.BackgroundSizeProperty<string | number>
      | undefined
    WebkitBorderBeforeColor?: string | undefined
    WebkitBorderBeforeStyle?: string | undefined
    WebkitBorderBeforeWidth?:
      | csstype.WebkitBorderBeforeWidthProperty<string | number>
      | undefined
    WebkitBorderBottomLeftRadius?:
      | csstype.BorderBottomLeftRadiusProperty<string | number>
      | undefined
    WebkitBorderBottomRightRadius?:
      | csstype.BorderBottomRightRadiusProperty<string | number>
      | undefined
    WebkitBorderImageSlice?: csstype.BorderImageSliceProperty | undefined
    WebkitBorderTopLeftRadius?:
      | csstype.BorderTopLeftRadiusProperty<string | number>
      | undefined
    WebkitBorderTopRightRadius?:
      | csstype.BorderTopRightRadiusProperty<string | number>
      | undefined
    WebkitBoxDecorationBreak?: csstype.BoxDecorationBreakProperty | undefined
    WebkitBoxReflect?:
      | csstype.WebkitBoxReflectProperty<string | number>
      | undefined
    WebkitBoxShadow?: string | undefined
    WebkitBoxSizing?: csstype.BoxSizingProperty | undefined
    WebkitClipPath?: string | undefined
    WebkitColumnCount?: csstype.ColumnCountProperty | undefined
    WebkitColumnFill?: csstype.ColumnFillProperty | undefined
    WebkitColumnGap?: csstype.ColumnGapProperty<string | number> | undefined
    WebkitColumnRuleColor?: string | undefined
    WebkitColumnRuleStyle?: string | undefined
    WebkitColumnRuleWidth?:
      | csstype.ColumnRuleWidthProperty<string | number>
      | undefined
    WebkitColumnSpan?: csstype.ColumnSpanProperty | undefined
    WebkitColumnWidth?: csstype.ColumnWidthProperty<string | number> | undefined
    WebkitFilter?: string | undefined
    WebkitFlexBasis?: csstype.FlexBasisProperty<string | number> | undefined
    WebkitFlexDirection?: csstype.FlexDirectionProperty | undefined
    WebkitFlexGrow?: csstype.GlobalsNumber | undefined
    WebkitFlexShrink?: csstype.GlobalsNumber | undefined
    WebkitFlexWrap?: csstype.FlexWrapProperty | undefined
    WebkitFontFeatureSettings?: string | undefined
    WebkitFontKerning?: csstype.FontKerningProperty | undefined
    WebkitFontSmoothing?:
      | csstype.FontSmoothProperty<string | number>
      | undefined
    WebkitFontVariantLigatures?: string | undefined
    WebkitHyphens?: csstype.HyphensProperty | undefined
    WebkitJustifyContent?: string | undefined
    WebkitLineBreak?: csstype.LineBreakProperty | undefined
    WebkitLineClamp?: csstype.WebkitLineClampProperty | undefined
    WebkitMarginEnd?:
      | csstype.MarginInlineEndProperty<string | number>
      | undefined
    WebkitMarginStart?:
      | csstype.MarginInlineStartProperty<string | number>
      | undefined
    WebkitMaskAttachment?: string | undefined
    WebkitMaskBoxImageOutset?:
      | csstype.MaskBorderOutsetProperty<string | number>
      | undefined
    WebkitMaskBoxImageRepeat?: string | undefined
    WebkitMaskBoxImageSlice?: csstype.MaskBorderSliceProperty | undefined
    WebkitMaskBoxImageSource?: string | undefined
    WebkitMaskBoxImageWidth?:
      | csstype.MaskBorderWidthProperty<string | number>
      | undefined
    WebkitMaskClip?: string | undefined
    WebkitMaskComposite?: string | undefined
    WebkitMaskImage?: string | undefined
    WebkitMaskOrigin?: string | undefined
    WebkitMaskPosition?:
      | csstype.WebkitMaskPositionProperty<string | number>
      | undefined
    WebkitMaskPositionX?:
      | csstype.WebkitMaskPositionXProperty<string | number>
      | undefined
    WebkitMaskPositionY?:
      | csstype.WebkitMaskPositionYProperty<string | number>
      | undefined
    WebkitMaskRepeat?: string | undefined
    WebkitMaskRepeatX?: csstype.WebkitMaskRepeatXProperty | undefined
    WebkitMaskRepeatY?: csstype.WebkitMaskRepeatYProperty | undefined
    WebkitMaskSize?: csstype.WebkitMaskSizeProperty<string | number> | undefined
    WebkitMaxInlineSize?:
      | csstype.MaxInlineSizeProperty<string | number>
      | undefined
    WebkitOrder?: csstype.GlobalsNumber | undefined
    WebkitOverflowScrolling?:
      | csstype.WebkitOverflowScrollingProperty
      | undefined
    WebkitPaddingEnd?:
      | csstype.PaddingInlineEndProperty<string | number>
      | undefined
    WebkitPaddingStart?:
      | csstype.PaddingInlineStartProperty<string | number>
      | undefined
    WebkitPerspective?: csstype.PerspectiveProperty<string | number> | undefined
    WebkitPerspectiveOrigin?:
      | csstype.PerspectiveOriginProperty<string | number>
      | undefined
    WebkitPrintColorAdjust?: csstype.ColorAdjustProperty | undefined
    WebkitRubyPosition?: string | undefined
    WebkitScrollSnapType?: string | undefined
    WebkitShapeMargin?: csstype.ShapeMarginProperty<string | number> | undefined
    WebkitTapHighlightColor?: string | undefined
    WebkitTextCombine?: string | undefined
    WebkitTextDecorationColor?: string | undefined
    WebkitTextDecorationLine?: string | undefined
    WebkitTextDecorationSkip?: string | undefined
    WebkitTextDecorationStyle?: csstype.TextDecorationStyleProperty | undefined
    WebkitTextEmphasisColor?: string | undefined
    WebkitTextEmphasisPosition?: string | undefined
    WebkitTextEmphasisStyle?: string | undefined
    WebkitTextFillColor?: string | undefined
    WebkitTextOrientation?: csstype.TextOrientationProperty | undefined
    WebkitTextSizeAdjust?: string | undefined
    WebkitTextStrokeColor?: string | undefined
    WebkitTextStrokeWidth?:
      | csstype.WebkitTextStrokeWidthProperty<string | number>
      | undefined
    WebkitTextUnderlinePosition?: string | undefined
    WebkitTouchCallout?: csstype.WebkitTouchCalloutProperty | undefined
    WebkitTransform?: string | undefined
    WebkitTransformOrigin?:
      | csstype.TransformOriginProperty<string | number>
      | undefined
    WebkitTransformStyle?: csstype.TransformStyleProperty | undefined
    WebkitTransitionDelay?: string | undefined
    WebkitTransitionDuration?: string | undefined
    WebkitTransitionProperty?: string | undefined
    WebkitTransitionTimingFunction?: string | undefined
    WebkitUserModify?: csstype.WebkitUserModifyProperty | undefined
    WebkitUserSelect?: csstype.UserSelectProperty | undefined
    WebkitWritingMode?: csstype.WritingModeProperty | undefined
    MozAnimation?: csstype.AnimationProperty | undefined
    MozBorderImage?: csstype.BorderImageProperty | undefined
    MozColumnRule?: csstype.ColumnRuleProperty<string | number> | undefined
    MozColumns?: csstype.ColumnsProperty<string | number> | undefined
    MozTransition?: string | undefined
    msContentZoomLimit?: string | undefined
    msContentZoomSnap?: string | undefined
    msFlex?: csstype.FlexProperty<string | number> | undefined
    msScrollLimit?: string | undefined
    msScrollSnapX?: string | undefined
    msScrollSnapY?: string | undefined
    msTransition?: string | undefined
    WebkitAnimation?: csstype.AnimationProperty | undefined
    WebkitBorderBefore?:
      | csstype.WebkitBorderBeforeProperty<string | number>
      | undefined
    WebkitBorderImage?: csstype.BorderImageProperty | undefined
    WebkitBorderRadius?:
      | csstype.BorderRadiusProperty<string | number>
      | undefined
    WebkitColumnRule?: csstype.ColumnRuleProperty<string | number> | undefined
    WebkitColumns?: csstype.ColumnsProperty<string | number> | undefined
    WebkitFlex?: csstype.FlexProperty<string | number> | undefined
    WebkitFlexFlow?: string | undefined
    WebkitMask?: csstype.WebkitMaskProperty<string | number> | undefined
    WebkitMaskBoxImage?: csstype.MaskBorderProperty | undefined
    WebkitTextEmphasis?: string | undefined
    WebkitTextStroke?:
      | csstype.WebkitTextStrokeProperty<string | number>
      | undefined
    WebkitTransition?: string | undefined
    azimuth?: string | undefined
    boxAlign?: csstype.BoxAlignProperty | undefined
    boxDirection?: csstype.BoxDirectionProperty | undefined
    boxFlex?: csstype.GlobalsNumber | undefined
    boxFlexGroup?: csstype.GlobalsNumber | undefined
    boxLines?: csstype.BoxLinesProperty | undefined
    boxOrdinalGroup?: csstype.GlobalsNumber | undefined
    boxOrient?: csstype.BoxOrientProperty | undefined
    boxPack?: csstype.BoxPackProperty | undefined
    clip?: string | undefined
    fontVariantAlternates?: string | undefined
    gridColumnGap?: csstype.GridColumnGapProperty<string | number> | undefined
    gridGap?: csstype.GridGapProperty<string | number> | undefined
    gridRowGap?: csstype.GridRowGapProperty<string | number> | undefined
    imeMode?: csstype.ImeModeProperty | undefined
    offsetBlock?: csstype.InsetBlockProperty<string | number> | undefined
    offsetBlockEnd?: csstype.InsetBlockEndProperty<string | number> | undefined
    offsetBlockStart?:
      | csstype.InsetBlockStartProperty<string | number>
      | undefined
    offsetInline?: csstype.InsetInlineProperty<string | number> | undefined
    offsetInlineEnd?:
      | csstype.InsetInlineEndProperty<string | number>
      | undefined
    offsetInlineStart?:
      | csstype.InsetInlineStartProperty<string | number>
      | undefined
    scrollSnapCoordinate?:
      | csstype.ScrollSnapCoordinateProperty<string | number>
      | undefined
    scrollSnapDestination?:
      | csstype.ScrollSnapDestinationProperty<string | number>
      | undefined
    scrollSnapPointsX?: string | undefined
    scrollSnapPointsY?: string | undefined
    scrollSnapTypeX?: csstype.ScrollSnapTypeXProperty | undefined
    scrollSnapTypeY?: csstype.ScrollSnapTypeYProperty | undefined
    scrollbarTrackColor?: string | undefined
    KhtmlBoxAlign?: csstype.BoxAlignProperty | undefined
    KhtmlBoxDirection?: csstype.BoxDirectionProperty | undefined
    KhtmlBoxFlex?: csstype.GlobalsNumber | undefined
    KhtmlBoxFlexGroup?: csstype.GlobalsNumber | undefined
    KhtmlBoxLines?: csstype.BoxLinesProperty | undefined
    KhtmlBoxOrdinalGroup?: csstype.GlobalsNumber | undefined
    KhtmlBoxOrient?: csstype.BoxOrientProperty | undefined
    KhtmlBoxPack?: csstype.BoxPackProperty | undefined
    KhtmlLineBreak?: csstype.LineBreakProperty | undefined
    KhtmlOpacity?: csstype.OpacityProperty | undefined
    KhtmlUserSelect?: csstype.UserSelectProperty | undefined
    MozBackgroundClip?: string | undefined
    MozBackgroundInlinePolicy?: csstype.BoxDecorationBreakProperty | undefined
    MozBackgroundOrigin?: string | undefined
    MozBackgroundSize?:
      | csstype.BackgroundSizeProperty<string | number>
      | undefined
    MozBinding?: string | undefined
    MozBorderRadius?: csstype.BorderRadiusProperty<string | number> | undefined
    MozBorderRadiusBottomleft?:
      | csstype.BorderBottomLeftRadiusProperty<string | number>
      | undefined
    MozBorderRadiusBottomright?:
      | csstype.BorderBottomRightRadiusProperty<string | number>
      | undefined
    MozBorderRadiusTopleft?:
      | csstype.BorderTopLeftRadiusProperty<string | number>
      | undefined
    MozBorderRadiusTopright?:
      | csstype.BorderTopRightRadiusProperty<string | number>
      | undefined
    MozBoxAlign?: csstype.BoxAlignProperty | undefined
    MozBoxDirection?: csstype.BoxDirectionProperty | undefined
    MozBoxFlex?: csstype.GlobalsNumber | undefined
    MozBoxOrdinalGroup?: csstype.GlobalsNumber | undefined
    MozBoxOrient?: csstype.BoxOrientProperty | undefined
    MozBoxPack?: csstype.BoxPackProperty | undefined
    MozBoxShadow?: string | undefined
    MozFloatEdge?: csstype.MozFloatEdgeProperty | undefined
    MozForceBrokenImageIcon?: csstype.GlobalsNumber | undefined
    MozOpacity?: csstype.OpacityProperty | undefined
    MozOutline?: csstype.OutlineProperty<string | number> | undefined
    MozOutlineColor?: string | undefined
    MozOutlineRadius?:
      | csstype.MozOutlineRadiusProperty<string | number>
      | undefined
    MozOutlineRadiusBottomleft?:
      | csstype.MozOutlineRadiusBottomleftProperty<string | number>
      | undefined
    MozOutlineRadiusBottomright?:
      | csstype.MozOutlineRadiusBottomrightProperty<string | number>
      | undefined
    MozOutlineRadiusTopleft?:
      | csstype.MozOutlineRadiusTopleftProperty<string | number>
      | undefined
    MozOutlineRadiusTopright?:
      | csstype.MozOutlineRadiusToprightProperty<string | number>
      | undefined
    MozOutlineStyle?: string | undefined
    MozOutlineWidth?: csstype.OutlineWidthProperty<string | number> | undefined
    MozTextAlignLast?: csstype.TextAlignLastProperty | undefined
    MozTextDecorationColor?: string | undefined
    MozTextDecorationLine?: string | undefined
    MozTextDecorationStyle?: csstype.TextDecorationStyleProperty | undefined
    MozUserInput?: csstype.MozUserInputProperty | undefined
    msImeMode?: csstype.ImeModeProperty | undefined
    msScrollbarTrackColor?: string | undefined
    OAnimation?: csstype.AnimationProperty | undefined
    OAnimationDelay?: string | undefined
    OAnimationDirection?: string | undefined
    OAnimationDuration?: string | undefined
    OAnimationFillMode?: string | undefined
    OAnimationIterationCount?:
      | csstype.AnimationIterationCountProperty
      | undefined
    OAnimationName?: string | undefined
    OAnimationPlayState?: string | undefined
    OAnimationTimingFunction?: string | undefined
    OBackgroundSize?:
      | csstype.BackgroundSizeProperty<string | number>
      | undefined
    OBorderImage?: csstype.BorderImageProperty | undefined
    OObjectFit?: csstype.ObjectFitProperty | undefined
    OObjectPosition?:
      | csstype.ObjectPositionProperty<string | number>
      | undefined
    OTabSize?: csstype.TabSizeProperty<string | number> | undefined
    OTextOverflow?: string | undefined
    OTransform?: string | undefined
    OTransformOrigin?:
      | csstype.TransformOriginProperty<string | number>
      | undefined
    OTransition?: string | undefined
    OTransitionDelay?: string | undefined
    OTransitionDuration?: string | undefined
    OTransitionProperty?: string | undefined
    OTransitionTimingFunction?: string | undefined
    WebkitBoxAlign?: csstype.BoxAlignProperty | undefined
    WebkitBoxDirection?: csstype.BoxDirectionProperty | undefined
    WebkitBoxFlex?: csstype.GlobalsNumber | undefined
    WebkitBoxFlexGroup?: csstype.GlobalsNumber | undefined
    WebkitBoxLines?: csstype.BoxLinesProperty | undefined
    WebkitBoxOrdinalGroup?: csstype.GlobalsNumber | undefined
    WebkitBoxOrient?: csstype.BoxOrientProperty | undefined
    WebkitBoxPack?: csstype.BoxPackProperty | undefined
    WebkitScrollSnapPointsX?: string | undefined
    WebkitScrollSnapPointsY?: string | undefined
    alignmentBaseline?: csstype.AlignmentBaselineProperty | undefined
    baselineShift?: csstype.BaselineShiftProperty<string | number> | undefined
    clipRule?: csstype.ClipRuleProperty | undefined
    colorInterpolation?: csstype.ColorInterpolationProperty | undefined
    colorRendering?: csstype.ColorRenderingProperty | undefined
    dominantBaseline?: csstype.DominantBaselineProperty | undefined
    fill?: string | undefined
    fillOpacity?: csstype.GlobalsNumber | undefined
    fillRule?: csstype.FillRuleProperty | undefined
    floodColor?: string | undefined
    floodOpacity?: csstype.GlobalsNumber | undefined
    glyphOrientationVertical?:
      | csstype.GlyphOrientationVerticalProperty
      | undefined
    lightingColor?: string | undefined
    marker?: string | undefined
    markerEnd?: string | undefined
    markerMid?: string | undefined
    markerStart?: string | undefined
    shapeRendering?: csstype.ShapeRenderingProperty | undefined
    stopColor?: string | undefined
    stopOpacity?: csstype.GlobalsNumber | undefined
    stroke?: string | undefined
    strokeDasharray?:
      | csstype.StrokeDasharrayProperty<string | number>
      | undefined
    strokeDashoffset?:
      | csstype.StrokeDashoffsetProperty<string | number>
      | undefined
    strokeLinecap?: csstype.StrokeLinecapProperty | undefined
    strokeLinejoin?: csstype.StrokeLinejoinProperty | undefined
    strokeMiterlimit?: csstype.GlobalsNumber | undefined
    strokeOpacity?: csstype.GlobalsNumber | undefined
    strokeWidth?: csstype.StrokeWidthProperty<string | number> | undefined
    textAnchor?: csstype.TextAnchorProperty | undefined
    vectorEffect?: csstype.VectorEffectProperty | undefined
  }
  style: Ref<StyleProperties>
}

/**
 * Reactive transform string implementing all native CSS transform properties.
 *
 * @param props
 * @param enableHardwareAcceleration
 */
declare function reactiveTransform(
  props?: TransformProperties,
  enableHardwareAcceleration?: boolean,
): {
  state: {
    x?: string | number | undefined
    y?: string | number | undefined
    z?: string | number | undefined
    translateX?: string | number | undefined
    translateY?: string | number | undefined
    translateZ?: string | number | undefined
    rotate?: string | number | undefined
    rotateX?: string | number | undefined
    rotateY?: string | number | undefined
    rotateZ?: string | number | undefined
    scale?: string | number | undefined
    scaleX?: string | number | undefined
    scaleY?: string | number | undefined
    scaleZ?: string | number | undefined
    skew?: string | number | undefined
    skewX?: string | number | undefined
    skewY?: string | number | undefined
    originX?: string | number | undefined
    originY?: string | number | undefined
    originZ?: string | number | undefined
    perspective?: string | number | undefined
    transformPerspective?: string | number | undefined
  }
  transform: vue_demi.Ref<string>
}

/**
 * A Composable giving access to a StyleProperties object, and binding the generated style object to a target.
 *
 * @param target
 */
declare function useElementStyle(
  target: MaybeRef<PermissiveTarget>,
  onInit?: (initData: Partial<StyleProperties>) => void,
): {
  style: {
    alignContent?: string | undefined
    alignItems?: string | undefined
    alignSelf?: string | undefined
    alignTracks?: string | undefined
    animationDelay?: string | undefined
    animationDirection?: string | undefined
    animationDuration?: string | undefined
    animationFillMode?: string | undefined
    animationIterationCount?:
      | csstype.AnimationIterationCountProperty
      | undefined
    animationName?: string | undefined
    animationPlayState?: string | undefined
    animationTimingFunction?: string | undefined
    appearance?: csstype.AppearanceProperty | undefined
    aspectRatio?: string | undefined
    backdropFilter?: string | undefined
    backfaceVisibility?: csstype.BackfaceVisibilityProperty | undefined
    backgroundAttachment?: string | undefined
    backgroundBlendMode?: string | undefined
    backgroundClip?: string | undefined
    backgroundColor?: string | undefined
    backgroundImage?: string | undefined
    backgroundOrigin?: string | undefined
    backgroundPositionX?:
      | csstype.BackgroundPositionXProperty<string | number>
      | undefined
    backgroundPositionY?:
      | csstype.BackgroundPositionYProperty<string | number>
      | undefined
    backgroundRepeat?: string | undefined
    backgroundSize?: csstype.BackgroundSizeProperty<string | number> | undefined
    blockOverflow?: string | undefined
    blockSize?: csstype.BlockSizeProperty<string | number> | undefined
    borderBlockColor?: string | undefined
    borderBlockEndColor?: string | undefined
    borderBlockEndStyle?: csstype.BorderBlockEndStyleProperty | undefined
    borderBlockEndWidth?:
      | csstype.BorderBlockEndWidthProperty<string | number>
      | undefined
    borderBlockStartColor?: string | undefined
    borderBlockStartStyle?: csstype.BorderBlockStartStyleProperty | undefined
    borderBlockStartWidth?:
      | csstype.BorderBlockStartWidthProperty<string | number>
      | undefined
    borderBlockStyle?: csstype.BorderBlockStyleProperty | undefined
    borderBlockWidth?:
      | csstype.BorderBlockWidthProperty<string | number>
      | undefined
    borderBottomColor?: string | undefined
    borderBottomLeftRadius?:
      | csstype.BorderBottomLeftRadiusProperty<string | number>
      | undefined
    borderBottomRightRadius?:
      | csstype.BorderBottomRightRadiusProperty<string | number>
      | undefined
    borderBottomStyle?: csstype.BorderBottomStyleProperty | undefined
    borderBottomWidth?:
      | csstype.BorderBottomWidthProperty<string | number>
      | undefined
    borderCollapse?: csstype.BorderCollapseProperty | undefined
    borderEndEndRadius?:
      | csstype.BorderEndEndRadiusProperty<string | number>
      | undefined
    borderEndStartRadius?:
      | csstype.BorderEndStartRadiusProperty<string | number>
      | undefined
    borderImageOutset?:
      | csstype.BorderImageOutsetProperty<string | number>
      | undefined
    borderImageRepeat?: string | undefined
    borderImageSlice?: csstype.BorderImageSliceProperty | undefined
    borderImageSource?: string | undefined
    borderImageWidth?:
      | csstype.BorderImageWidthProperty<string | number>
      | undefined
    borderInlineColor?: string | undefined
    borderInlineEndColor?: string | undefined
    borderInlineEndStyle?: csstype.BorderInlineEndStyleProperty | undefined
    borderInlineEndWidth?:
      | csstype.BorderInlineEndWidthProperty<string | number>
      | undefined
    borderInlineStartColor?: string | undefined
    borderInlineStartStyle?: csstype.BorderInlineStartStyleProperty | undefined
    borderInlineStartWidth?:
      | csstype.BorderInlineStartWidthProperty<string | number>
      | undefined
    borderInlineStyle?: csstype.BorderInlineStyleProperty | undefined
    borderInlineWidth?:
      | csstype.BorderInlineWidthProperty<string | number>
      | undefined
    borderLeftColor?: string | undefined
    borderLeftStyle?: csstype.BorderLeftStyleProperty | undefined
    borderLeftWidth?:
      | csstype.BorderLeftWidthProperty<string | number>
      | undefined
    borderRightColor?: string | undefined
    borderRightStyle?: csstype.BorderRightStyleProperty | undefined
    borderRightWidth?:
      | csstype.BorderRightWidthProperty<string | number>
      | undefined
    borderSpacing?: csstype.BorderSpacingProperty<string | number> | undefined
    borderStartEndRadius?:
      | csstype.BorderStartEndRadiusProperty<string | number>
      | undefined
    borderStartStartRadius?:
      | csstype.BorderStartStartRadiusProperty<string | number>
      | undefined
    borderTopColor?: string | undefined
    borderTopLeftRadius?:
      | csstype.BorderTopLeftRadiusProperty<string | number>
      | undefined
    borderTopRightRadius?:
      | csstype.BorderTopRightRadiusProperty<string | number>
      | undefined
    borderTopStyle?: csstype.BorderTopStyleProperty | undefined
    borderTopWidth?: csstype.BorderTopWidthProperty<string | number> | undefined
    bottom?: csstype.BottomProperty<string | number> | undefined
    boxDecorationBreak?: csstype.BoxDecorationBreakProperty | undefined
    boxShadow?: string | undefined
    boxSizing?: csstype.BoxSizingProperty | undefined
    breakAfter?: csstype.BreakAfterProperty | undefined
    breakBefore?: csstype.BreakBeforeProperty | undefined
    breakInside?: csstype.BreakInsideProperty | undefined
    captionSide?: csstype.CaptionSideProperty | undefined
    caretColor?: string | undefined
    clear?: csstype.ClearProperty | undefined
    clipPath?: string | undefined
    color?: string | undefined
    colorAdjust?: csstype.ColorAdjustProperty | undefined
    colorScheme?: string | undefined
    columnCount?: csstype.ColumnCountProperty | undefined
    columnFill?: csstype.ColumnFillProperty | undefined
    columnGap?: csstype.ColumnGapProperty<string | number> | undefined
    columnRuleColor?: string | undefined
    columnRuleStyle?: string | undefined
    columnRuleWidth?:
      | csstype.ColumnRuleWidthProperty<string | number>
      | undefined
    columnSpan?: csstype.ColumnSpanProperty | undefined
    columnWidth?: csstype.ColumnWidthProperty<string | number> | undefined
    contain?: string | undefined
    content?: string | undefined
    contentVisibility?: csstype.ContentVisibilityProperty | undefined
    counterIncrement?: string | undefined
    counterReset?: string | undefined
    counterSet?: string | undefined
    cursor?: string | undefined
    direction?: csstype.DirectionProperty | undefined
    display?: string | undefined
    emptyCells?: csstype.EmptyCellsProperty | undefined
    filter?: string | undefined
    flexBasis?: csstype.FlexBasisProperty<string | number> | undefined
    flexDirection?: csstype.FlexDirectionProperty | undefined
    flexGrow?: csstype.GlobalsNumber | undefined
    flexShrink?: csstype.GlobalsNumber | undefined
    flexWrap?: csstype.FlexWrapProperty | undefined
    float?: csstype.FloatProperty | undefined
    fontFamily?: string | undefined
    fontFeatureSettings?: string | undefined
    fontKerning?: csstype.FontKerningProperty | undefined
    fontLanguageOverride?: string | undefined
    fontOpticalSizing?: csstype.FontOpticalSizingProperty | undefined
    fontSize?: csstype.FontSizeProperty<string | number> | undefined
    fontSizeAdjust?: csstype.FontSizeAdjustProperty | undefined
    fontSmooth?: csstype.FontSmoothProperty<string | number> | undefined
    fontStretch?: string | undefined
    fontStyle?: string | undefined
    fontSynthesis?: string | undefined
    fontVariant?: string | undefined
    fontVariantCaps?: csstype.FontVariantCapsProperty | undefined
    fontVariantEastAsian?: string | undefined
    fontVariantLigatures?: string | undefined
    fontVariantNumeric?: string | undefined
    fontVariantPosition?: csstype.FontVariantPositionProperty | undefined
    fontVariationSettings?: string | undefined
    fontWeight?: csstype.FontWeightProperty | undefined
    forcedColorAdjust?: csstype.ForcedColorAdjustProperty | undefined
    gridAutoColumns?:
      | csstype.GridAutoColumnsProperty<string | number>
      | undefined
    gridAutoFlow?: string | undefined
    gridAutoRows?: csstype.GridAutoRowsProperty<string | number> | undefined
    gridColumnEnd?: csstype.GridColumnEndProperty | undefined
    gridColumnStart?: csstype.GridColumnStartProperty | undefined
    gridRowEnd?: csstype.GridRowEndProperty | undefined
    gridRowStart?: csstype.GridRowStartProperty | undefined
    gridTemplateAreas?: string | undefined
    gridTemplateColumns?:
      | csstype.GridTemplateColumnsProperty<string | number>
      | undefined
    gridTemplateRows?:
      | csstype.GridTemplateRowsProperty<string | number>
      | undefined
    hangingPunctuation?: string | undefined
    height?: csstype.HeightProperty<string | number> | undefined
    hyphens?: csstype.HyphensProperty | undefined
    imageOrientation?: string | undefined
    imageRendering?: csstype.ImageRenderingProperty | undefined
    imageResolution?: string | undefined
    initialLetter?: csstype.InitialLetterProperty | undefined
    inlineSize?: csstype.InlineSizeProperty<string | number> | undefined
    inset?: csstype.InsetProperty<string | number> | undefined
    insetBlock?: csstype.InsetBlockProperty<string | number> | undefined
    insetBlockEnd?: csstype.InsetBlockEndProperty<string | number> | undefined
    insetBlockStart?:
      | csstype.InsetBlockStartProperty<string | number>
      | undefined
    insetInline?: csstype.InsetInlineProperty<string | number> | undefined
    insetInlineEnd?: csstype.InsetInlineEndProperty<string | number> | undefined
    insetInlineStart?:
      | csstype.InsetInlineStartProperty<string | number>
      | undefined
    isolation?: csstype.IsolationProperty | undefined
    justifyContent?: string | undefined
    justifyItems?: string | undefined
    justifySelf?: string | undefined
    justifyTracks?: string | undefined
    left?: csstype.LeftProperty<string | number> | undefined
    letterSpacing?: csstype.LetterSpacingProperty<string | number> | undefined
    lineBreak?: csstype.LineBreakProperty | undefined
    lineHeight?: csstype.LineHeightProperty<string | number> | undefined
    lineHeightStep?: csstype.LineHeightStepProperty<string | number> | undefined
    listStyleImage?: string | undefined
    listStylePosition?: csstype.ListStylePositionProperty | undefined
    listStyleType?: string | undefined
    marginBlock?: csstype.MarginBlockProperty<string | number> | undefined
    marginBlockEnd?: csstype.MarginBlockEndProperty<string | number> | undefined
    marginBlockStart?:
      | csstype.MarginBlockStartProperty<string | number>
      | undefined
    marginBottom?: csstype.MarginBottomProperty<string | number> | undefined
    marginInline?: csstype.MarginInlineProperty<string | number> | undefined
    marginInlineEnd?:
      | csstype.MarginInlineEndProperty<string | number>
      | undefined
    marginInlineStart?:
      | csstype.MarginInlineStartProperty<string | number>
      | undefined
    marginLeft?: csstype.MarginLeftProperty<string | number> | undefined
    marginRight?: csstype.MarginRightProperty<string | number> | undefined
    marginTop?: csstype.MarginTopProperty<string | number> | undefined
    maskBorderMode?: csstype.MaskBorderModeProperty | undefined
    maskBorderOutset?:
      | csstype.MaskBorderOutsetProperty<string | number>
      | undefined
    maskBorderRepeat?: string | undefined
    maskBorderSlice?: csstype.MaskBorderSliceProperty | undefined
    maskBorderSource?: string | undefined
    maskBorderWidth?:
      | csstype.MaskBorderWidthProperty<string | number>
      | undefined
    maskClip?: string | undefined
    maskComposite?: string | undefined
    maskImage?: string | undefined
    maskMode?: string | undefined
    maskOrigin?: string | undefined
    maskPosition?: csstype.MaskPositionProperty<string | number> | undefined
    maskRepeat?: string | undefined
    maskSize?: csstype.MaskSizeProperty<string | number> | undefined
    maskType?: csstype.MaskTypeProperty | undefined
    mathStyle?: csstype.MathStyleProperty | undefined
    maxBlockSize?: csstype.MaxBlockSizeProperty<string | number> | undefined
    maxHeight?: csstype.MaxHeightProperty<string | number> | undefined
    maxInlineSize?: csstype.MaxInlineSizeProperty<string | number> | undefined
    maxLines?: csstype.MaxLinesProperty | undefined
    maxWidth?: csstype.MaxWidthProperty<string | number> | undefined
    minBlockSize?: csstype.MinBlockSizeProperty<string | number> | undefined
    minHeight?: csstype.MinHeightProperty<string | number> | undefined
    minInlineSize?: csstype.MinInlineSizeProperty<string | number> | undefined
    minWidth?: csstype.MinWidthProperty<string | number> | undefined
    mixBlendMode?: csstype.MixBlendModeProperty | undefined
    motionDistance?: csstype.OffsetDistanceProperty<string | number> | undefined
    motionPath?: string | undefined
    motionRotation?: string | undefined
    objectFit?: csstype.ObjectFitProperty | undefined
    objectPosition?: csstype.ObjectPositionProperty<string | number> | undefined
    offsetAnchor?: csstype.OffsetAnchorProperty<string | number> | undefined
    offsetDistance?: csstype.OffsetDistanceProperty<string | number> | undefined
    offsetPath?: string | undefined
    offsetRotate?: string | undefined
    offsetRotation?: string | undefined
    opacity?: csstype.OpacityProperty | undefined
    order?: csstype.GlobalsNumber | undefined
    orphans?: csstype.GlobalsNumber | undefined
    outlineColor?: string | undefined
    outlineOffset?: csstype.OutlineOffsetProperty<string | number> | undefined
    outlineStyle?: string | undefined
    outlineWidth?: csstype.OutlineWidthProperty<string | number> | undefined
    overflowAnchor?: csstype.OverflowAnchorProperty | undefined
    overflowBlock?: csstype.OverflowBlockProperty | undefined
    overflowClipBox?: csstype.OverflowClipBoxProperty | undefined
    overflowClipMargin?:
      | csstype.OverflowClipMarginProperty<string | number>
      | undefined
    overflowInline?: csstype.OverflowInlineProperty | undefined
    overflowWrap?: csstype.OverflowWrapProperty | undefined
    overflowX?: csstype.OverflowXProperty | undefined
    overflowY?: csstype.OverflowYProperty | undefined
    overscrollBehaviorBlock?:
      | csstype.OverscrollBehaviorBlockProperty
      | undefined
    overscrollBehaviorInline?:
      | csstype.OverscrollBehaviorInlineProperty
      | undefined
    overscrollBehaviorX?: csstype.OverscrollBehaviorXProperty | undefined
    overscrollBehaviorY?: csstype.OverscrollBehaviorYProperty | undefined
    paddingBlock?: csstype.PaddingBlockProperty<string | number> | undefined
    paddingBlockEnd?:
      | csstype.PaddingBlockEndProperty<string | number>
      | undefined
    paddingBlockStart?:
      | csstype.PaddingBlockStartProperty<string | number>
      | undefined
    paddingBottom?: csstype.PaddingBottomProperty<string | number> | undefined
    paddingInline?: csstype.PaddingInlineProperty<string | number> | undefined
    paddingInlineEnd?:
      | csstype.PaddingInlineEndProperty<string | number>
      | undefined
    paddingInlineStart?:
      | csstype.PaddingInlineStartProperty<string | number>
      | undefined
    paddingLeft?: csstype.PaddingLeftProperty<string | number> | undefined
    paddingRight?: csstype.PaddingRightProperty<string | number> | undefined
    paddingTop?: csstype.PaddingTopProperty<string | number> | undefined
    pageBreakAfter?: csstype.PageBreakAfterProperty | undefined
    pageBreakBefore?: csstype.PageBreakBeforeProperty | undefined
    pageBreakInside?: csstype.PageBreakInsideProperty | undefined
    paintOrder?: string | undefined
    perspectiveOrigin?:
      | csstype.PerspectiveOriginProperty<string | number>
      | undefined
    placeContent?: string | undefined
    pointerEvents?: csstype.PointerEventsProperty | undefined
    position?: csstype.PositionProperty | undefined
    quotes?: string | undefined
    resize?: csstype.ResizeProperty | undefined
    right?: csstype.RightProperty<string | number> | undefined
    rowGap?: csstype.RowGapProperty<string | number> | undefined
    rubyAlign?: csstype.RubyAlignProperty | undefined
    rubyMerge?: csstype.RubyMergeProperty | undefined
    rubyPosition?: string | undefined
    scrollBehavior?: csstype.ScrollBehaviorProperty | undefined
    scrollMargin?: csstype.ScrollMarginProperty<string | number> | undefined
    scrollMarginBlock?:
      | csstype.ScrollMarginBlockProperty<string | number>
      | undefined
    scrollMarginBlockEnd?:
      | csstype.ScrollMarginBlockEndProperty<string | number>
      | undefined
    scrollMarginBlockStart?:
      | csstype.ScrollMarginBlockStartProperty<string | number>
      | undefined
    scrollMarginBottom?:
      | csstype.ScrollMarginBottomProperty<string | number>
      | undefined
    scrollMarginInline?:
      | csstype.ScrollMarginInlineProperty<string | number>
      | undefined
    scrollMarginInlineEnd?:
      | csstype.ScrollMarginInlineEndProperty<string | number>
      | undefined
    scrollMarginInlineStart?:
      | csstype.ScrollMarginInlineStartProperty<string | number>
      | undefined
    scrollMarginLeft?:
      | csstype.ScrollMarginLeftProperty<string | number>
      | undefined
    scrollMarginRight?:
      | csstype.ScrollMarginRightProperty<string | number>
      | undefined
    scrollMarginTop?:
      | csstype.ScrollMarginTopProperty<string | number>
      | undefined
    scrollPadding?: csstype.ScrollPaddingProperty<string | number> | undefined
    scrollPaddingBlock?:
      | csstype.ScrollPaddingBlockProperty<string | number>
      | undefined
    scrollPaddingBlockEnd?:
      | csstype.ScrollPaddingBlockEndProperty<string | number>
      | undefined
    scrollPaddingBlockStart?:
      | csstype.ScrollPaddingBlockStartProperty<string | number>
      | undefined
    scrollPaddingBottom?:
      | csstype.ScrollPaddingBottomProperty<string | number>
      | undefined
    scrollPaddingInline?:
      | csstype.ScrollPaddingInlineProperty<string | number>
      | undefined
    scrollPaddingInlineEnd?:
      | csstype.ScrollPaddingInlineEndProperty<string | number>
      | undefined
    scrollPaddingInlineStart?:
      | csstype.ScrollPaddingInlineStartProperty<string | number>
      | undefined
    scrollPaddingLeft?:
      | csstype.ScrollPaddingLeftProperty<string | number>
      | undefined
    scrollPaddingRight?:
      | csstype.ScrollPaddingRightProperty<string | number>
      | undefined
    scrollPaddingTop?:
      | csstype.ScrollPaddingTopProperty<string | number>
      | undefined
    scrollSnapAlign?: string | undefined
    scrollSnapMargin?: csstype.ScrollMarginProperty<string | number> | undefined
    scrollSnapMarginBottom?:
      | csstype.ScrollMarginBottomProperty<string | number>
      | undefined
    scrollSnapMarginLeft?:
      | csstype.ScrollMarginLeftProperty<string | number>
      | undefined
    scrollSnapMarginRight?:
      | csstype.ScrollMarginRightProperty<string | number>
      | undefined
    scrollSnapMarginTop?:
      | csstype.ScrollMarginTopProperty<string | number>
      | undefined
    scrollSnapStop?: csstype.ScrollSnapStopProperty | undefined
    scrollSnapType?: string | undefined
    scrollbarColor?: string | undefined
    scrollbarGutter?: string | undefined
    scrollbarWidth?: csstype.ScrollbarWidthProperty | undefined
    shapeImageThreshold?: csstype.ShapeImageThresholdProperty | undefined
    shapeMargin?: csstype.ShapeMarginProperty<string | number> | undefined
    shapeOutside?: string | undefined
    tabSize?: csstype.TabSizeProperty<string | number> | undefined
    tableLayout?: csstype.TableLayoutProperty | undefined
    textAlign?: csstype.TextAlignProperty | undefined
    textAlignLast?: csstype.TextAlignLastProperty | undefined
    textCombineUpright?: string | undefined
    textDecorationColor?: string | undefined
    textDecorationLine?: string | undefined
    textDecorationSkip?: string | undefined
    textDecorationSkipInk?: csstype.TextDecorationSkipInkProperty | undefined
    textDecorationStyle?: csstype.TextDecorationStyleProperty | undefined
    textDecorationThickness?:
      | csstype.TextDecorationThicknessProperty<string | number>
      | undefined
    textDecorationWidth?:
      | csstype.TextDecorationThicknessProperty<string | number>
      | undefined
    textEmphasisColor?: string | undefined
    textEmphasisPosition?: string | undefined
    textEmphasisStyle?: string | undefined
    textIndent?: csstype.TextIndentProperty<string | number> | undefined
    textJustify?: csstype.TextJustifyProperty | undefined
    textOrientation?: csstype.TextOrientationProperty | undefined
    textOverflow?: string | undefined
    textRendering?: csstype.TextRenderingProperty | undefined
    textShadow?: string | undefined
    textSizeAdjust?: string | undefined
    textTransform?: csstype.TextTransformProperty | undefined
    textUnderlineOffset?:
      | csstype.TextUnderlineOffsetProperty<string | number>
      | undefined
    textUnderlinePosition?: string | undefined
    top?: csstype.TopProperty<string | number> | undefined
    touchAction?: string | undefined
    transitionDelay?: string | undefined
    transitionDuration?: string | undefined
    transitionProperty?: string | undefined
    transitionTimingFunction?: string | undefined
    translate?: csstype.TranslateProperty<string | number> | undefined
    unicodeBidi?: csstype.UnicodeBidiProperty | undefined
    userSelect?: csstype.UserSelectProperty | undefined
    verticalAlign?: csstype.VerticalAlignProperty<string | number> | undefined
    visibility?: csstype.VisibilityProperty | undefined
    whiteSpace?: csstype.WhiteSpaceProperty | undefined
    widows?: csstype.GlobalsNumber | undefined
    width?: csstype.WidthProperty<string | number> | undefined
    willChange?: string | undefined
    wordBreak?: csstype.WordBreakProperty | undefined
    wordSpacing?: csstype.WordSpacingProperty<string | number> | undefined
    wordWrap?: csstype.WordWrapProperty | undefined
    writingMode?: csstype.WritingModeProperty | undefined
    zIndex?: csstype.ZIndexProperty | undefined
    zoom?: csstype.ZoomProperty | undefined
    all?: csstype.Globals | undefined
    animation?: csstype.AnimationProperty | undefined
    background?: csstype.BackgroundProperty<string | number> | undefined
    backgroundPosition?:
      | csstype.BackgroundPositionProperty<string | number>
      | undefined
    border?: csstype.BorderProperty<string | number> | undefined
    borderBlock?: csstype.BorderBlockProperty<string | number> | undefined
    borderBlockEnd?: csstype.BorderBlockEndProperty<string | number> | undefined
    borderBlockStart?:
      | csstype.BorderBlockStartProperty<string | number>
      | undefined
    borderBottom?: csstype.BorderBottomProperty<string | number> | undefined
    borderColor?: string | undefined
    borderImage?: csstype.BorderImageProperty | undefined
    borderInline?: csstype.BorderInlineProperty<string | number> | undefined
    borderInlineEnd?:
      | csstype.BorderInlineEndProperty<string | number>
      | undefined
    borderInlineStart?:
      | csstype.BorderInlineStartProperty<string | number>
      | undefined
    borderLeft?: csstype.BorderLeftProperty<string | number> | undefined
    borderRadius?: csstype.BorderRadiusProperty<string | number> | undefined
    borderRight?: csstype.BorderRightProperty<string | number> | undefined
    borderStyle?: string | undefined
    borderTop?: csstype.BorderTopProperty<string | number> | undefined
    borderWidth?: csstype.BorderWidthProperty<string | number> | undefined
    columnRule?: csstype.ColumnRuleProperty<string | number> | undefined
    columns?: csstype.ColumnsProperty<string | number> | undefined
    flex?: csstype.FlexProperty<string | number> | undefined
    flexFlow?: string | undefined
    font?: string | undefined
    gap?: csstype.GapProperty<string | number> | undefined
    grid?: string | undefined
    gridArea?: csstype.GridAreaProperty | undefined
    gridColumn?: csstype.GridColumnProperty | undefined
    gridRow?: csstype.GridRowProperty | undefined
    gridTemplate?: string | undefined
    lineClamp?: csstype.LineClampProperty | undefined
    listStyle?: string | undefined
    margin?: csstype.MarginProperty<string | number> | undefined
    mask?: csstype.MaskProperty<string | number> | undefined
    maskBorder?: csstype.MaskBorderProperty | undefined
    motion?: csstype.OffsetProperty<string | number> | undefined
    offset?: csstype.OffsetProperty<string | number> | undefined
    outline?: csstype.OutlineProperty<string | number> | undefined
    overflow?: string | undefined
    overscrollBehavior?: string | undefined
    padding?: csstype.PaddingProperty<string | number> | undefined
    placeItems?: string | undefined
    placeSelf?: string | undefined
    textDecoration?: csstype.TextDecorationProperty<string | number> | undefined
    textEmphasis?: string | undefined
    MozAnimationDelay?: string | undefined
    MozAnimationDirection?: string | undefined
    MozAnimationDuration?: string | undefined
    MozAnimationFillMode?: string | undefined
    MozAnimationIterationCount?:
      | csstype.AnimationIterationCountProperty
      | undefined
    MozAnimationName?: string | undefined
    MozAnimationPlayState?: string | undefined
    MozAnimationTimingFunction?: string | undefined
    MozAppearance?: csstype.MozAppearanceProperty | undefined
    MozBackfaceVisibility?: csstype.BackfaceVisibilityProperty | undefined
    MozBorderBottomColors?: string | undefined
    MozBorderEndColor?: string | undefined
    MozBorderEndStyle?: csstype.BorderInlineEndStyleProperty | undefined
    MozBorderEndWidth?:
      | csstype.BorderInlineEndWidthProperty<string | number>
      | undefined
    MozBorderLeftColors?: string | undefined
    MozBorderRightColors?: string | undefined
    MozBorderStartColor?: string | undefined
    MozBorderStartStyle?: csstype.BorderInlineStartStyleProperty | undefined
    MozBorderTopColors?: string | undefined
    MozBoxSizing?: csstype.BoxSizingProperty | undefined
    MozColumnCount?: csstype.ColumnCountProperty | undefined
    MozColumnFill?: csstype.ColumnFillProperty | undefined
    MozColumnGap?: csstype.ColumnGapProperty<string | number> | undefined
    MozColumnRuleColor?: string | undefined
    MozColumnRuleStyle?: string | undefined
    MozColumnRuleWidth?:
      | csstype.ColumnRuleWidthProperty<string | number>
      | undefined
    MozColumnWidth?: csstype.ColumnWidthProperty<string | number> | undefined
    MozContextProperties?: string | undefined
    MozFontFeatureSettings?: string | undefined
    MozFontLanguageOverride?: string | undefined
    MozHyphens?: csstype.HyphensProperty | undefined
    MozImageRegion?: string | undefined
    MozMarginEnd?: csstype.MarginInlineEndProperty<string | number> | undefined
    MozMarginStart?:
      | csstype.MarginInlineStartProperty<string | number>
      | undefined
    MozOrient?: csstype.MozOrientProperty | undefined
    MozOsxFontSmoothing?:
      | csstype.FontSmoothProperty<string | number>
      | undefined
    MozPaddingEnd?:
      | csstype.PaddingInlineEndProperty<string | number>
      | undefined
    MozPaddingStart?:
      | csstype.PaddingInlineStartProperty<string | number>
      | undefined
    MozPerspective?: csstype.PerspectiveProperty<string | number> | undefined
    MozPerspectiveOrigin?:
      | csstype.PerspectiveOriginProperty<string | number>
      | undefined
    MozStackSizing?: csstype.MozStackSizingProperty | undefined
    MozTabSize?: csstype.TabSizeProperty<string | number> | undefined
    MozTextBlink?: csstype.MozTextBlinkProperty | undefined
    MozTextSizeAdjust?: string | undefined
    MozTransformOrigin?:
      | csstype.TransformOriginProperty<string | number>
      | undefined
    MozTransformStyle?: csstype.TransformStyleProperty | undefined
    MozTransitionDelay?: string | undefined
    MozTransitionDuration?: string | undefined
    MozTransitionProperty?: string | undefined
    MozTransitionTimingFunction?: string | undefined
    MozUserFocus?: csstype.MozUserFocusProperty | undefined
    MozUserModify?: csstype.MozUserModifyProperty | undefined
    MozUserSelect?: csstype.UserSelectProperty | undefined
    MozWindowDragging?: csstype.MozWindowDraggingProperty | undefined
    MozWindowShadow?: csstype.MozWindowShadowProperty | undefined
    msAccelerator?: csstype.MsAcceleratorProperty | undefined
    msAlignSelf?: string | undefined
    msBlockProgression?: csstype.MsBlockProgressionProperty | undefined
    msContentZoomChaining?: csstype.MsContentZoomChainingProperty | undefined
    msContentZoomLimitMax?: string | undefined
    msContentZoomLimitMin?: string | undefined
    msContentZoomSnapPoints?: string | undefined
    msContentZoomSnapType?: csstype.MsContentZoomSnapTypeProperty | undefined
    msContentZooming?: csstype.MsContentZoomingProperty | undefined
    msFilter?: string | undefined
    msFlexDirection?: csstype.FlexDirectionProperty | undefined
    msFlexPositive?: csstype.GlobalsNumber | undefined
    msFlowFrom?: string | undefined
    msFlowInto?: string | undefined
    msGridColumns?: csstype.MsGridColumnsProperty<string | number> | undefined
    msGridRows?: csstype.MsGridRowsProperty<string | number> | undefined
    msHighContrastAdjust?: csstype.MsHighContrastAdjustProperty | undefined
    msHyphenateLimitChars?: csstype.MsHyphenateLimitCharsProperty | undefined
    msHyphenateLimitLines?: csstype.MsHyphenateLimitLinesProperty | undefined
    msHyphenateLimitZone?:
      | csstype.MsHyphenateLimitZoneProperty<string | number>
      | undefined
    msHyphens?: csstype.HyphensProperty | undefined
    msImeAlign?: csstype.MsImeAlignProperty | undefined
    msJustifySelf?: string | undefined
    msLineBreak?: csstype.LineBreakProperty | undefined
    msOrder?: csstype.GlobalsNumber | undefined
    msOverflowStyle?: csstype.MsOverflowStyleProperty | undefined
    msOverflowX?: csstype.OverflowXProperty | undefined
    msOverflowY?: csstype.OverflowYProperty | undefined
    msScrollChaining?: csstype.MsScrollChainingProperty | undefined
    msScrollLimitXMax?:
      | csstype.MsScrollLimitXMaxProperty<string | number>
      | undefined
    msScrollLimitXMin?:
      | csstype.MsScrollLimitXMinProperty<string | number>
      | undefined
    msScrollLimitYMax?:
      | csstype.MsScrollLimitYMaxProperty<string | number>
      | undefined
    msScrollLimitYMin?:
      | csstype.MsScrollLimitYMinProperty<string | number>
      | undefined
    msScrollRails?: csstype.MsScrollRailsProperty | undefined
    msScrollSnapPointsX?: string | undefined
    msScrollSnapPointsY?: string | undefined
    msScrollSnapType?: csstype.MsScrollSnapTypeProperty | undefined
    msScrollTranslation?: csstype.MsScrollTranslationProperty | undefined
    msScrollbar3dlightColor?: string | undefined
    msScrollbarArrowColor?: string | undefined
    msScrollbarBaseColor?: string | undefined
    msScrollbarDarkshadowColor?: string | undefined
    msScrollbarFaceColor?: string | undefined
    msScrollbarHighlightColor?: string | undefined
    msScrollbarShadowColor?: string | undefined
    msTextAutospace?: csstype.MsTextAutospaceProperty | undefined
    msTextCombineHorizontal?: string | undefined
    msTextOverflow?: string | undefined
    msTouchAction?: string | undefined
    msTouchSelect?: csstype.MsTouchSelectProperty | undefined
    msTransform?: string | undefined
    msTransformOrigin?:
      | csstype.TransformOriginProperty<string | number>
      | undefined
    msTransitionDelay?: string | undefined
    msTransitionDuration?: string | undefined
    msTransitionProperty?: string | undefined
    msTransitionTimingFunction?: string | undefined
    msUserSelect?: csstype.MsUserSelectProperty | undefined
    msWordBreak?: csstype.WordBreakProperty | undefined
    msWrapFlow?: csstype.MsWrapFlowProperty | undefined
    msWrapMargin?: csstype.MsWrapMarginProperty<string | number> | undefined
    msWrapThrough?: csstype.MsWrapThroughProperty | undefined
    msWritingMode?: csstype.WritingModeProperty | undefined
    WebkitAlignContent?: string | undefined
    WebkitAlignItems?: string | undefined
    WebkitAlignSelf?: string | undefined
    WebkitAnimationDelay?: string | undefined
    WebkitAnimationDirection?: string | undefined
    WebkitAnimationDuration?: string | undefined
    WebkitAnimationFillMode?: string | undefined
    WebkitAnimationIterationCount?:
      | csstype.AnimationIterationCountProperty
      | undefined
    WebkitAnimationName?: string | undefined
    WebkitAnimationPlayState?: string | undefined
    WebkitAnimationTimingFunction?: string | undefined
    WebkitAppearance?: csstype.WebkitAppearanceProperty | undefined
    WebkitBackdropFilter?: string | undefined
    WebkitBackfaceVisibility?: csstype.BackfaceVisibilityProperty | undefined
    WebkitBackgroundClip?: string | undefined
    WebkitBackgroundOrigin?: string | undefined
    WebkitBackgroundSize?:
      | csstype.BackgroundSizeProperty<string | number>
      | undefined
    WebkitBorderBeforeColor?: string | undefined
    WebkitBorderBeforeStyle?: string | undefined
    WebkitBorderBeforeWidth?:
      | csstype.WebkitBorderBeforeWidthProperty<string | number>
      | undefined
    WebkitBorderBottomLeftRadius?:
      | csstype.BorderBottomLeftRadiusProperty<string | number>
      | undefined
    WebkitBorderBottomRightRadius?:
      | csstype.BorderBottomRightRadiusProperty<string | number>
      | undefined
    WebkitBorderImageSlice?: csstype.BorderImageSliceProperty | undefined
    WebkitBorderTopLeftRadius?:
      | csstype.BorderTopLeftRadiusProperty<string | number>
      | undefined
    WebkitBorderTopRightRadius?:
      | csstype.BorderTopRightRadiusProperty<string | number>
      | undefined
    WebkitBoxDecorationBreak?: csstype.BoxDecorationBreakProperty | undefined
    WebkitBoxReflect?:
      | csstype.WebkitBoxReflectProperty<string | number>
      | undefined
    WebkitBoxShadow?: string | undefined
    WebkitBoxSizing?: csstype.BoxSizingProperty | undefined
    WebkitClipPath?: string | undefined
    WebkitColumnCount?: csstype.ColumnCountProperty | undefined
    WebkitColumnFill?: csstype.ColumnFillProperty | undefined
    WebkitColumnGap?: csstype.ColumnGapProperty<string | number> | undefined
    WebkitColumnRuleColor?: string | undefined
    WebkitColumnRuleStyle?: string | undefined
    WebkitColumnRuleWidth?:
      | csstype.ColumnRuleWidthProperty<string | number>
      | undefined
    WebkitColumnSpan?: csstype.ColumnSpanProperty | undefined
    WebkitColumnWidth?: csstype.ColumnWidthProperty<string | number> | undefined
    WebkitFilter?: string | undefined
    WebkitFlexBasis?: csstype.FlexBasisProperty<string | number> | undefined
    WebkitFlexDirection?: csstype.FlexDirectionProperty | undefined
    WebkitFlexGrow?: csstype.GlobalsNumber | undefined
    WebkitFlexShrink?: csstype.GlobalsNumber | undefined
    WebkitFlexWrap?: csstype.FlexWrapProperty | undefined
    WebkitFontFeatureSettings?: string | undefined
    WebkitFontKerning?: csstype.FontKerningProperty | undefined
    WebkitFontSmoothing?:
      | csstype.FontSmoothProperty<string | number>
      | undefined
    WebkitFontVariantLigatures?: string | undefined
    WebkitHyphens?: csstype.HyphensProperty | undefined
    WebkitJustifyContent?: string | undefined
    WebkitLineBreak?: csstype.LineBreakProperty | undefined
    WebkitLineClamp?: csstype.WebkitLineClampProperty | undefined
    WebkitMarginEnd?:
      | csstype.MarginInlineEndProperty<string | number>
      | undefined
    WebkitMarginStart?:
      | csstype.MarginInlineStartProperty<string | number>
      | undefined
    WebkitMaskAttachment?: string | undefined
    WebkitMaskBoxImageOutset?:
      | csstype.MaskBorderOutsetProperty<string | number>
      | undefined
    WebkitMaskBoxImageRepeat?: string | undefined
    WebkitMaskBoxImageSlice?: csstype.MaskBorderSliceProperty | undefined
    WebkitMaskBoxImageSource?: string | undefined
    WebkitMaskBoxImageWidth?:
      | csstype.MaskBorderWidthProperty<string | number>
      | undefined
    WebkitMaskClip?: string | undefined
    WebkitMaskComposite?: string | undefined
    WebkitMaskImage?: string | undefined
    WebkitMaskOrigin?: string | undefined
    WebkitMaskPosition?:
      | csstype.WebkitMaskPositionProperty<string | number>
      | undefined
    WebkitMaskPositionX?:
      | csstype.WebkitMaskPositionXProperty<string | number>
      | undefined
    WebkitMaskPositionY?:
      | csstype.WebkitMaskPositionYProperty<string | number>
      | undefined
    WebkitMaskRepeat?: string | undefined
    WebkitMaskRepeatX?: csstype.WebkitMaskRepeatXProperty | undefined
    WebkitMaskRepeatY?: csstype.WebkitMaskRepeatYProperty | undefined
    WebkitMaskSize?: csstype.WebkitMaskSizeProperty<string | number> | undefined
    WebkitMaxInlineSize?:
      | csstype.MaxInlineSizeProperty<string | number>
      | undefined
    WebkitOrder?: csstype.GlobalsNumber | undefined
    WebkitOverflowScrolling?:
      | csstype.WebkitOverflowScrollingProperty
      | undefined
    WebkitPaddingEnd?:
      | csstype.PaddingInlineEndProperty<string | number>
      | undefined
    WebkitPaddingStart?:
      | csstype.PaddingInlineStartProperty<string | number>
      | undefined
    WebkitPerspective?: csstype.PerspectiveProperty<string | number> | undefined
    WebkitPerspectiveOrigin?:
      | csstype.PerspectiveOriginProperty<string | number>
      | undefined
    WebkitPrintColorAdjust?: csstype.ColorAdjustProperty | undefined
    WebkitRubyPosition?: string | undefined
    WebkitScrollSnapType?: string | undefined
    WebkitShapeMargin?: csstype.ShapeMarginProperty<string | number> | undefined
    WebkitTapHighlightColor?: string | undefined
    WebkitTextCombine?: string | undefined
    WebkitTextDecorationColor?: string | undefined
    WebkitTextDecorationLine?: string | undefined
    WebkitTextDecorationSkip?: string | undefined
    WebkitTextDecorationStyle?: csstype.TextDecorationStyleProperty | undefined
    WebkitTextEmphasisColor?: string | undefined
    WebkitTextEmphasisPosition?: string | undefined
    WebkitTextEmphasisStyle?: string | undefined
    WebkitTextFillColor?: string | undefined
    WebkitTextOrientation?: csstype.TextOrientationProperty | undefined
    WebkitTextSizeAdjust?: string | undefined
    WebkitTextStrokeColor?: string | undefined
    WebkitTextStrokeWidth?:
      | csstype.WebkitTextStrokeWidthProperty<string | number>
      | undefined
    WebkitTextUnderlinePosition?: string | undefined
    WebkitTouchCallout?: csstype.WebkitTouchCalloutProperty | undefined
    WebkitTransform?: string | undefined
    WebkitTransformOrigin?:
      | csstype.TransformOriginProperty<string | number>
      | undefined
    WebkitTransformStyle?: csstype.TransformStyleProperty | undefined
    WebkitTransitionDelay?: string | undefined
    WebkitTransitionDuration?: string | undefined
    WebkitTransitionProperty?: string | undefined
    WebkitTransitionTimingFunction?: string | undefined
    WebkitUserModify?: csstype.WebkitUserModifyProperty | undefined
    WebkitUserSelect?: csstype.UserSelectProperty | undefined
    WebkitWritingMode?: csstype.WritingModeProperty | undefined
    MozAnimation?: csstype.AnimationProperty | undefined
    MozBorderImage?: csstype.BorderImageProperty | undefined
    MozColumnRule?: csstype.ColumnRuleProperty<string | number> | undefined
    MozColumns?: csstype.ColumnsProperty<string | number> | undefined
    MozTransition?: string | undefined
    msContentZoomLimit?: string | undefined
    msContentZoomSnap?: string | undefined
    msFlex?: csstype.FlexProperty<string | number> | undefined
    msScrollLimit?: string | undefined
    msScrollSnapX?: string | undefined
    msScrollSnapY?: string | undefined
    msTransition?: string | undefined
    WebkitAnimation?: csstype.AnimationProperty | undefined
    WebkitBorderBefore?:
      | csstype.WebkitBorderBeforeProperty<string | number>
      | undefined
    WebkitBorderImage?: csstype.BorderImageProperty | undefined
    WebkitBorderRadius?:
      | csstype.BorderRadiusProperty<string | number>
      | undefined
    WebkitColumnRule?: csstype.ColumnRuleProperty<string | number> | undefined
    WebkitColumns?: csstype.ColumnsProperty<string | number> | undefined
    WebkitFlex?: csstype.FlexProperty<string | number> | undefined
    WebkitFlexFlow?: string | undefined
    WebkitMask?: csstype.WebkitMaskProperty<string | number> | undefined
    WebkitMaskBoxImage?: csstype.MaskBorderProperty | undefined
    WebkitTextEmphasis?: string | undefined
    WebkitTextStroke?:
      | csstype.WebkitTextStrokeProperty<string | number>
      | undefined
    WebkitTransition?: string | undefined
    azimuth?: string | undefined
    boxAlign?: csstype.BoxAlignProperty | undefined
    boxDirection?: csstype.BoxDirectionProperty | undefined
    boxFlex?: csstype.GlobalsNumber | undefined
    boxFlexGroup?: csstype.GlobalsNumber | undefined
    boxLines?: csstype.BoxLinesProperty | undefined
    boxOrdinalGroup?: csstype.GlobalsNumber | undefined
    boxOrient?: csstype.BoxOrientProperty | undefined
    boxPack?: csstype.BoxPackProperty | undefined
    clip?: string | undefined
    fontVariantAlternates?: string | undefined
    gridColumnGap?: csstype.GridColumnGapProperty<string | number> | undefined
    gridGap?: csstype.GridGapProperty<string | number> | undefined
    gridRowGap?: csstype.GridRowGapProperty<string | number> | undefined
    imeMode?: csstype.ImeModeProperty | undefined
    offsetBlock?: csstype.InsetBlockProperty<string | number> | undefined
    offsetBlockEnd?: csstype.InsetBlockEndProperty<string | number> | undefined
    offsetBlockStart?:
      | csstype.InsetBlockStartProperty<string | number>
      | undefined
    offsetInline?: csstype.InsetInlineProperty<string | number> | undefined
    offsetInlineEnd?:
      | csstype.InsetInlineEndProperty<string | number>
      | undefined
    offsetInlineStart?:
      | csstype.InsetInlineStartProperty<string | number>
      | undefined
    scrollSnapCoordinate?:
      | csstype.ScrollSnapCoordinateProperty<string | number>
      | undefined
    scrollSnapDestination?:
      | csstype.ScrollSnapDestinationProperty<string | number>
      | undefined
    scrollSnapPointsX?: string | undefined
    scrollSnapPointsY?: string | undefined
    scrollSnapTypeX?: csstype.ScrollSnapTypeXProperty | undefined
    scrollSnapTypeY?: csstype.ScrollSnapTypeYProperty | undefined
    scrollbarTrackColor?: string | undefined
    KhtmlBoxAlign?: csstype.BoxAlignProperty | undefined
    KhtmlBoxDirection?: csstype.BoxDirectionProperty | undefined
    KhtmlBoxFlex?: csstype.GlobalsNumber | undefined
    KhtmlBoxFlexGroup?: csstype.GlobalsNumber | undefined
    KhtmlBoxLines?: csstype.BoxLinesProperty | undefined
    KhtmlBoxOrdinalGroup?: csstype.GlobalsNumber | undefined
    KhtmlBoxOrient?: csstype.BoxOrientProperty | undefined
    KhtmlBoxPack?: csstype.BoxPackProperty | undefined
    KhtmlLineBreak?: csstype.LineBreakProperty | undefined
    KhtmlOpacity?: csstype.OpacityProperty | undefined
    KhtmlUserSelect?: csstype.UserSelectProperty | undefined
    MozBackgroundClip?: string | undefined
    MozBackgroundInlinePolicy?: csstype.BoxDecorationBreakProperty | undefined
    MozBackgroundOrigin?: string | undefined
    MozBackgroundSize?:
      | csstype.BackgroundSizeProperty<string | number>
      | undefined
    MozBinding?: string | undefined
    MozBorderRadius?: csstype.BorderRadiusProperty<string | number> | undefined
    MozBorderRadiusBottomleft?:
      | csstype.BorderBottomLeftRadiusProperty<string | number>
      | undefined
    MozBorderRadiusBottomright?:
      | csstype.BorderBottomRightRadiusProperty<string | number>
      | undefined
    MozBorderRadiusTopleft?:
      | csstype.BorderTopLeftRadiusProperty<string | number>
      | undefined
    MozBorderRadiusTopright?:
      | csstype.BorderTopRightRadiusProperty<string | number>
      | undefined
    MozBoxAlign?: csstype.BoxAlignProperty | undefined
    MozBoxDirection?: csstype.BoxDirectionProperty | undefined
    MozBoxFlex?: csstype.GlobalsNumber | undefined
    MozBoxOrdinalGroup?: csstype.GlobalsNumber | undefined
    MozBoxOrient?: csstype.BoxOrientProperty | undefined
    MozBoxPack?: csstype.BoxPackProperty | undefined
    MozBoxShadow?: string | undefined
    MozFloatEdge?: csstype.MozFloatEdgeProperty | undefined
    MozForceBrokenImageIcon?: csstype.GlobalsNumber | undefined
    MozOpacity?: csstype.OpacityProperty | undefined
    MozOutline?: csstype.OutlineProperty<string | number> | undefined
    MozOutlineColor?: string | undefined
    MozOutlineRadius?:
      | csstype.MozOutlineRadiusProperty<string | number>
      | undefined
    MozOutlineRadiusBottomleft?:
      | csstype.MozOutlineRadiusBottomleftProperty<string | number>
      | undefined
    MozOutlineRadiusBottomright?:
      | csstype.MozOutlineRadiusBottomrightProperty<string | number>
      | undefined
    MozOutlineRadiusTopleft?:
      | csstype.MozOutlineRadiusTopleftProperty<string | number>
      | undefined
    MozOutlineRadiusTopright?:
      | csstype.MozOutlineRadiusToprightProperty<string | number>
      | undefined
    MozOutlineStyle?: string | undefined
    MozOutlineWidth?: csstype.OutlineWidthProperty<string | number> | undefined
    MozTextAlignLast?: csstype.TextAlignLastProperty | undefined
    MozTextDecorationColor?: string | undefined
    MozTextDecorationLine?: string | undefined
    MozTextDecorationStyle?: csstype.TextDecorationStyleProperty | undefined
    MozUserInput?: csstype.MozUserInputProperty | undefined
    msImeMode?: csstype.ImeModeProperty | undefined
    msScrollbarTrackColor?: string | undefined
    OAnimation?: csstype.AnimationProperty | undefined
    OAnimationDelay?: string | undefined
    OAnimationDirection?: string | undefined
    OAnimationDuration?: string | undefined
    OAnimationFillMode?: string | undefined
    OAnimationIterationCount?:
      | csstype.AnimationIterationCountProperty
      | undefined
    OAnimationName?: string | undefined
    OAnimationPlayState?: string | undefined
    OAnimationTimingFunction?: string | undefined
    OBackgroundSize?:
      | csstype.BackgroundSizeProperty<string | number>
      | undefined
    OBorderImage?: csstype.BorderImageProperty | undefined
    OObjectFit?: csstype.ObjectFitProperty | undefined
    OObjectPosition?:
      | csstype.ObjectPositionProperty<string | number>
      | undefined
    OTabSize?: csstype.TabSizeProperty<string | number> | undefined
    OTextOverflow?: string | undefined
    OTransform?: string | undefined
    OTransformOrigin?:
      | csstype.TransformOriginProperty<string | number>
      | undefined
    OTransition?: string | undefined
    OTransitionDelay?: string | undefined
    OTransitionDuration?: string | undefined
    OTransitionProperty?: string | undefined
    OTransitionTimingFunction?: string | undefined
    WebkitBoxAlign?: csstype.BoxAlignProperty | undefined
    WebkitBoxDirection?: csstype.BoxDirectionProperty | undefined
    WebkitBoxFlex?: csstype.GlobalsNumber | undefined
    WebkitBoxFlexGroup?: csstype.GlobalsNumber | undefined
    WebkitBoxLines?: csstype.BoxLinesProperty | undefined
    WebkitBoxOrdinalGroup?: csstype.GlobalsNumber | undefined
    WebkitBoxOrient?: csstype.BoxOrientProperty | undefined
    WebkitBoxPack?: csstype.BoxPackProperty | undefined
    WebkitScrollSnapPointsX?: string | undefined
    WebkitScrollSnapPointsY?: string | undefined
    alignmentBaseline?: csstype.AlignmentBaselineProperty | undefined
    baselineShift?: csstype.BaselineShiftProperty<string | number> | undefined
    clipRule?: csstype.ClipRuleProperty | undefined
    colorInterpolation?: csstype.ColorInterpolationProperty | undefined
    colorRendering?: csstype.ColorRenderingProperty | undefined
    dominantBaseline?: csstype.DominantBaselineProperty | undefined
    fill?: string | undefined
    fillOpacity?: csstype.GlobalsNumber | undefined
    fillRule?: csstype.FillRuleProperty | undefined
    floodColor?: string | undefined
    floodOpacity?: csstype.GlobalsNumber | undefined
    glyphOrientationVertical?:
      | csstype.GlyphOrientationVerticalProperty
      | undefined
    lightingColor?: string | undefined
    marker?: string | undefined
    markerEnd?: string | undefined
    markerMid?: string | undefined
    markerStart?: string | undefined
    shapeRendering?: csstype.ShapeRenderingProperty | undefined
    stopColor?: string | undefined
    stopOpacity?: csstype.GlobalsNumber | undefined
    stroke?: string | undefined
    strokeDasharray?:
      | csstype.StrokeDasharrayProperty<string | number>
      | undefined
    strokeDashoffset?:
      | csstype.StrokeDashoffsetProperty<string | number>
      | undefined
    strokeLinecap?: csstype.StrokeLinecapProperty | undefined
    strokeLinejoin?: csstype.StrokeLinejoinProperty | undefined
    strokeMiterlimit?: csstype.GlobalsNumber | undefined
    strokeOpacity?: csstype.GlobalsNumber | undefined
    strokeWidth?: csstype.StrokeWidthProperty<string | number> | undefined
    textAnchor?: csstype.TextAnchorProperty | undefined
    vectorEffect?: csstype.VectorEffectProperty | undefined
  }
  stop: () => void
}

/**
 * A Composable giving access to a TransformProperties object, and binding the generated transform string to a target.
 *
 * @param target
 */
declare function useElementTransform(
  target: MaybeRef<PermissiveTarget>,
  onInit?: (initData: Partial<TransformProperties>) => void,
): {
  transform: {
    x?: string | number | undefined
    y?: string | number | undefined
    z?: string | number | undefined
    translateX?: string | number | undefined
    translateY?: string | number | undefined
    translateZ?: string | number | undefined
    rotate?: string | number | undefined
    rotateX?: string | number | undefined
    rotateY?: string | number | undefined
    rotateZ?: string | number | undefined
    scale?: string | number | undefined
    scaleX?: string | number | undefined
    scaleY?: string | number | undefined
    scaleZ?: string | number | undefined
    skew?: string | number | undefined
    skewX?: string | number | undefined
    skewY?: string | number | undefined
    originX?: string | number | undefined
    originY?: string | number | undefined
    originZ?: string | number | undefined
    perspective?: string | number | undefined
    transformPerspective?: string | number | undefined
  }
  stop: () => void
}

/**
 * A Vue Composable that put your components in motion.
 *
 * @docs https://motion.vueuse.js.org
 *
 * @param target
 * @param variants
 * @param options
 */
declare function useMotion<T extends MotionVariants>(
  target: MaybeRef<PermissiveTarget>,
  variants?: MaybeRef<T>,
  options?: UseMotionOptions,
): MotionInstance<T>

/**
 * A Composable handling motion controls, pushing resolved variant to useMotionTransitions manager.
 *
 * @param transform
 * @param style
 * @param currentVariant
 */
declare function useMotionControls<T extends MotionVariants>(
  motionProperties: MotionProperties,
  variants?: MaybeRef<T>,
  { push, stop }?: MotionTransitions,
): MotionControls

/**
 * A Composable giving access to both `transform` and `style`objects for a single element.
 *
 * @param target
 */
declare function useMotionProperties(
  target: MaybeRef<PermissiveTarget>,
  defaultValues?: Partial<MotionProperties>,
): {
  motionProperties:
    | {
        alignContent?: string | undefined
        alignItems?: string | undefined
        alignSelf?: string | undefined
        alignTracks?: string | undefined
        animationDelay?: string | undefined
        animationDirection?: string | undefined
        animationDuration?: string | undefined
        animationFillMode?: string | undefined
        animationIterationCount?:
          | csstype.AnimationIterationCountProperty
          | undefined
        animationName?: string | undefined
        animationPlayState?: string | undefined
        animationTimingFunction?: string | undefined
        appearance?: csstype.AppearanceProperty | undefined
        aspectRatio?: string | undefined
        backdropFilter?: string | undefined
        backfaceVisibility?: csstype.BackfaceVisibilityProperty | undefined
        backgroundAttachment?: string | undefined
        backgroundBlendMode?: string | undefined
        backgroundClip?: string | undefined
        backgroundColor?: string | undefined
        backgroundImage?: string | undefined
        backgroundOrigin?: string | undefined
        backgroundPositionX?:
          | csstype.BackgroundPositionXProperty<string | number>
          | undefined
        backgroundPositionY?:
          | csstype.BackgroundPositionYProperty<string | number>
          | undefined
        backgroundRepeat?: string | undefined
        backgroundSize?:
          | csstype.BackgroundSizeProperty<string | number>
          | undefined
        blockOverflow?: string | undefined
        blockSize?: csstype.BlockSizeProperty<string | number> | undefined
        borderBlockColor?: string | undefined
        borderBlockEndColor?: string | undefined
        borderBlockEndStyle?: csstype.BorderBlockEndStyleProperty | undefined
        borderBlockEndWidth?:
          | csstype.BorderBlockEndWidthProperty<string | number>
          | undefined
        borderBlockStartColor?: string | undefined
        borderBlockStartStyle?:
          | csstype.BorderBlockStartStyleProperty
          | undefined
        borderBlockStartWidth?:
          | csstype.BorderBlockStartWidthProperty<string | number>
          | undefined
        borderBlockStyle?: csstype.BorderBlockStyleProperty | undefined
        borderBlockWidth?:
          | csstype.BorderBlockWidthProperty<string | number>
          | undefined
        borderBottomColor?: string | undefined
        borderBottomLeftRadius?:
          | csstype.BorderBottomLeftRadiusProperty<string | number>
          | undefined
        borderBottomRightRadius?:
          | csstype.BorderBottomRightRadiusProperty<string | number>
          | undefined
        borderBottomStyle?: csstype.BorderBottomStyleProperty | undefined
        borderBottomWidth?:
          | csstype.BorderBottomWidthProperty<string | number>
          | undefined
        borderCollapse?: csstype.BorderCollapseProperty | undefined
        borderEndEndRadius?:
          | csstype.BorderEndEndRadiusProperty<string | number>
          | undefined
        borderEndStartRadius?:
          | csstype.BorderEndStartRadiusProperty<string | number>
          | undefined
        borderImageOutset?:
          | csstype.BorderImageOutsetProperty<string | number>
          | undefined
        borderImageRepeat?: string | undefined
        borderImageSlice?: csstype.BorderImageSliceProperty | undefined
        borderImageSource?: string | undefined
        borderImageWidth?:
          | csstype.BorderImageWidthProperty<string | number>
          | undefined
        borderInlineColor?: string | undefined
        borderInlineEndColor?: string | undefined
        borderInlineEndStyle?: csstype.BorderInlineEndStyleProperty | undefined
        borderInlineEndWidth?:
          | csstype.BorderInlineEndWidthProperty<string | number>
          | undefined
        borderInlineStartColor?: string | undefined
        borderInlineStartStyle?:
          | csstype.BorderInlineStartStyleProperty
          | undefined
        borderInlineStartWidth?:
          | csstype.BorderInlineStartWidthProperty<string | number>
          | undefined
        borderInlineStyle?: csstype.BorderInlineStyleProperty | undefined
        borderInlineWidth?:
          | csstype.BorderInlineWidthProperty<string | number>
          | undefined
        borderLeftColor?: string | undefined
        borderLeftStyle?: csstype.BorderLeftStyleProperty | undefined
        borderLeftWidth?:
          | csstype.BorderLeftWidthProperty<string | number>
          | undefined
        borderRightColor?: string | undefined
        borderRightStyle?: csstype.BorderRightStyleProperty | undefined
        borderRightWidth?:
          | csstype.BorderRightWidthProperty<string | number>
          | undefined
        borderSpacing?:
          | csstype.BorderSpacingProperty<string | number>
          | undefined
        borderStartEndRadius?:
          | csstype.BorderStartEndRadiusProperty<string | number>
          | undefined
        borderStartStartRadius?:
          | csstype.BorderStartStartRadiusProperty<string | number>
          | undefined
        borderTopColor?: string | undefined
        borderTopLeftRadius?:
          | csstype.BorderTopLeftRadiusProperty<string | number>
          | undefined
        borderTopRightRadius?:
          | csstype.BorderTopRightRadiusProperty<string | number>
          | undefined
        borderTopStyle?: csstype.BorderTopStyleProperty | undefined
        borderTopWidth?:
          | csstype.BorderTopWidthProperty<string | number>
          | undefined
        bottom?: csstype.BottomProperty<string | number> | undefined
        boxDecorationBreak?: csstype.BoxDecorationBreakProperty | undefined
        boxShadow?: string | undefined
        boxSizing?: csstype.BoxSizingProperty | undefined
        breakAfter?: csstype.BreakAfterProperty | undefined
        breakBefore?: csstype.BreakBeforeProperty | undefined
        breakInside?: csstype.BreakInsideProperty | undefined
        captionSide?: csstype.CaptionSideProperty | undefined
        caretColor?: string | undefined
        clear?: csstype.ClearProperty | undefined
        clipPath?: string | undefined
        color?: string | undefined
        colorAdjust?: csstype.ColorAdjustProperty | undefined
        colorScheme?: string | undefined
        columnCount?: csstype.ColumnCountProperty | undefined
        columnFill?: csstype.ColumnFillProperty | undefined
        columnGap?: csstype.ColumnGapProperty<string | number> | undefined
        columnRuleColor?: string | undefined
        columnRuleStyle?: string | undefined
        columnRuleWidth?:
          | csstype.ColumnRuleWidthProperty<string | number>
          | undefined
        columnSpan?: csstype.ColumnSpanProperty | undefined
        columnWidth?: csstype.ColumnWidthProperty<string | number> | undefined
        contain?: string | undefined
        content?: string | undefined
        contentVisibility?: csstype.ContentVisibilityProperty | undefined
        counterIncrement?: string | undefined
        counterReset?: string | undefined
        counterSet?: string | undefined
        cursor?: string | undefined
        direction?: csstype.DirectionProperty | undefined
        display?: string | undefined
        emptyCells?: csstype.EmptyCellsProperty | undefined
        filter?: string | undefined
        flexBasis?: csstype.FlexBasisProperty<string | number> | undefined
        flexDirection?: csstype.FlexDirectionProperty | undefined
        flexGrow?: csstype.GlobalsNumber | undefined
        flexShrink?: csstype.GlobalsNumber | undefined
        flexWrap?: csstype.FlexWrapProperty | undefined
        float?: csstype.FloatProperty | undefined
        fontFamily?: string | undefined
        fontFeatureSettings?: string | undefined
        fontKerning?: csstype.FontKerningProperty | undefined
        fontLanguageOverride?: string | undefined
        fontOpticalSizing?: csstype.FontOpticalSizingProperty | undefined
        fontSize?: csstype.FontSizeProperty<string | number> | undefined
        fontSizeAdjust?: csstype.FontSizeAdjustProperty | undefined
        fontSmooth?: csstype.FontSmoothProperty<string | number> | undefined
        fontStretch?: string | undefined
        fontStyle?: string | undefined
        fontSynthesis?: string | undefined
        fontVariant?: string | undefined
        fontVariantCaps?: csstype.FontVariantCapsProperty | undefined
        fontVariantEastAsian?: string | undefined
        fontVariantLigatures?: string | undefined
        fontVariantNumeric?: string | undefined
        fontVariantPosition?: csstype.FontVariantPositionProperty | undefined
        fontVariationSettings?: string | undefined
        fontWeight?: csstype.FontWeightProperty | undefined
        forcedColorAdjust?: csstype.ForcedColorAdjustProperty | undefined
        gridAutoColumns?:
          | csstype.GridAutoColumnsProperty<string | number>
          | undefined
        gridAutoFlow?: string | undefined
        gridAutoRows?: csstype.GridAutoRowsProperty<string | number> | undefined
        gridColumnEnd?: csstype.GridColumnEndProperty | undefined
        gridColumnStart?: csstype.GridColumnStartProperty | undefined
        gridRowEnd?: csstype.GridRowEndProperty | undefined
        gridRowStart?: csstype.GridRowStartProperty | undefined
        gridTemplateAreas?: string | undefined
        gridTemplateColumns?:
          | csstype.GridTemplateColumnsProperty<string | number>
          | undefined
        gridTemplateRows?:
          | csstype.GridTemplateRowsProperty<string | number>
          | undefined
        hangingPunctuation?: string | undefined
        height?: csstype.HeightProperty<string | number> | undefined
        hyphens?: csstype.HyphensProperty | undefined
        imageOrientation?: string | undefined
        imageRendering?: csstype.ImageRenderingProperty | undefined
        imageResolution?: string | undefined
        initialLetter?: csstype.InitialLetterProperty | undefined
        inlineSize?: csstype.InlineSizeProperty<string | number> | undefined
        inset?: csstype.InsetProperty<string | number> | undefined
        insetBlock?: csstype.InsetBlockProperty<string | number> | undefined
        insetBlockEnd?:
          | csstype.InsetBlockEndProperty<string | number>
          | undefined
        insetBlockStart?:
          | csstype.InsetBlockStartProperty<string | number>
          | undefined
        insetInline?: csstype.InsetInlineProperty<string | number> | undefined
        insetInlineEnd?:
          | csstype.InsetInlineEndProperty<string | number>
          | undefined
        insetInlineStart?:
          | csstype.InsetInlineStartProperty<string | number>
          | undefined
        isolation?: csstype.IsolationProperty | undefined
        justifyContent?: string | undefined
        justifyItems?: string | undefined
        justifySelf?: string | undefined
        justifyTracks?: string | undefined
        left?: csstype.LeftProperty<string | number> | undefined
        letterSpacing?:
          | csstype.LetterSpacingProperty<string | number>
          | undefined
        lineBreak?: csstype.LineBreakProperty | undefined
        lineHeight?: csstype.LineHeightProperty<string | number> | undefined
        lineHeightStep?:
          | csstype.LineHeightStepProperty<string | number>
          | undefined
        listStyleImage?: string | undefined
        listStylePosition?: csstype.ListStylePositionProperty | undefined
        listStyleType?: string | undefined
        marginBlock?: csstype.MarginBlockProperty<string | number> | undefined
        marginBlockEnd?:
          | csstype.MarginBlockEndProperty<string | number>
          | undefined
        marginBlockStart?:
          | csstype.MarginBlockStartProperty<string | number>
          | undefined
        marginBottom?: csstype.MarginBottomProperty<string | number> | undefined
        marginInline?: csstype.MarginInlineProperty<string | number> | undefined
        marginInlineEnd?:
          | csstype.MarginInlineEndProperty<string | number>
          | undefined
        marginInlineStart?:
          | csstype.MarginInlineStartProperty<string | number>
          | undefined
        marginLeft?: csstype.MarginLeftProperty<string | number> | undefined
        marginRight?: csstype.MarginRightProperty<string | number> | undefined
        marginTop?: csstype.MarginTopProperty<string | number> | undefined
        maskBorderMode?: csstype.MaskBorderModeProperty | undefined
        maskBorderOutset?:
          | csstype.MaskBorderOutsetProperty<string | number>
          | undefined
        maskBorderRepeat?: string | undefined
        maskBorderSlice?: csstype.MaskBorderSliceProperty | undefined
        maskBorderSource?: string | undefined
        maskBorderWidth?:
          | csstype.MaskBorderWidthProperty<string | number>
          | undefined
        maskClip?: string | undefined
        maskComposite?: string | undefined
        maskImage?: string | undefined
        maskMode?: string | undefined
        maskOrigin?: string | undefined
        maskPosition?: csstype.MaskPositionProperty<string | number> | undefined
        maskRepeat?: string | undefined
        maskSize?: csstype.MaskSizeProperty<string | number> | undefined
        maskType?: csstype.MaskTypeProperty | undefined
        mathStyle?: csstype.MathStyleProperty | undefined
        maxBlockSize?: csstype.MaxBlockSizeProperty<string | number> | undefined
        maxHeight?: csstype.MaxHeightProperty<string | number> | undefined
        maxInlineSize?:
          | csstype.MaxInlineSizeProperty<string | number>
          | undefined
        maxLines?: csstype.MaxLinesProperty | undefined
        maxWidth?: csstype.MaxWidthProperty<string | number> | undefined
        minBlockSize?: csstype.MinBlockSizeProperty<string | number> | undefined
        minHeight?: csstype.MinHeightProperty<string | number> | undefined
        minInlineSize?:
          | csstype.MinInlineSizeProperty<string | number>
          | undefined
        minWidth?: csstype.MinWidthProperty<string | number> | undefined
        mixBlendMode?: csstype.MixBlendModeProperty | undefined
        motionDistance?:
          | csstype.OffsetDistanceProperty<string | number>
          | undefined
        motionPath?: string | undefined
        motionRotation?: string | undefined
        objectFit?: csstype.ObjectFitProperty | undefined
        objectPosition?:
          | csstype.ObjectPositionProperty<string | number>
          | undefined
        offsetAnchor?: csstype.OffsetAnchorProperty<string | number> | undefined
        offsetDistance?:
          | csstype.OffsetDistanceProperty<string | number>
          | undefined
        offsetPath?: string | undefined
        offsetRotate?: string | undefined
        offsetRotation?: string | undefined
        opacity?: csstype.OpacityProperty | undefined
        order?: csstype.GlobalsNumber | undefined
        orphans?: csstype.GlobalsNumber | undefined
        outlineColor?: string | undefined
        outlineOffset?:
          | csstype.OutlineOffsetProperty<string | number>
          | undefined
        outlineStyle?: string | undefined
        outlineWidth?: csstype.OutlineWidthProperty<string | number> | undefined
        overflowAnchor?: csstype.OverflowAnchorProperty | undefined
        overflowBlock?: csstype.OverflowBlockProperty | undefined
        overflowClipBox?: csstype.OverflowClipBoxProperty | undefined
        overflowClipMargin?:
          | csstype.OverflowClipMarginProperty<string | number>
          | undefined
        overflowInline?: csstype.OverflowInlineProperty | undefined
        overflowWrap?: csstype.OverflowWrapProperty | undefined
        overflowX?: csstype.OverflowXProperty | undefined
        overflowY?: csstype.OverflowYProperty | undefined
        overscrollBehaviorBlock?:
          | csstype.OverscrollBehaviorBlockProperty
          | undefined
        overscrollBehaviorInline?:
          | csstype.OverscrollBehaviorInlineProperty
          | undefined
        overscrollBehaviorX?: csstype.OverscrollBehaviorXProperty | undefined
        overscrollBehaviorY?: csstype.OverscrollBehaviorYProperty | undefined
        paddingBlock?: csstype.PaddingBlockProperty<string | number> | undefined
        paddingBlockEnd?:
          | csstype.PaddingBlockEndProperty<string | number>
          | undefined
        paddingBlockStart?:
          | csstype.PaddingBlockStartProperty<string | number>
          | undefined
        paddingBottom?:
          | csstype.PaddingBottomProperty<string | number>
          | undefined
        paddingInline?:
          | csstype.PaddingInlineProperty<string | number>
          | undefined
        paddingInlineEnd?:
          | csstype.PaddingInlineEndProperty<string | number>
          | undefined
        paddingInlineStart?:
          | csstype.PaddingInlineStartProperty<string | number>
          | undefined
        paddingLeft?: csstype.PaddingLeftProperty<string | number> | undefined
        paddingRight?: csstype.PaddingRightProperty<string | number> | undefined
        paddingTop?: csstype.PaddingTopProperty<string | number> | undefined
        pageBreakAfter?: csstype.PageBreakAfterProperty | undefined
        pageBreakBefore?: csstype.PageBreakBeforeProperty | undefined
        pageBreakInside?: csstype.PageBreakInsideProperty | undefined
        paintOrder?: string | undefined
        perspectiveOrigin?:
          | csstype.PerspectiveOriginProperty<string | number>
          | undefined
        placeContent?: string | undefined
        pointerEvents?: csstype.PointerEventsProperty | undefined
        position?: csstype.PositionProperty | undefined
        quotes?: string | undefined
        resize?: csstype.ResizeProperty | undefined
        right?: csstype.RightProperty<string | number> | undefined
        rowGap?: csstype.RowGapProperty<string | number> | undefined
        rubyAlign?: csstype.RubyAlignProperty | undefined
        rubyMerge?: csstype.RubyMergeProperty | undefined
        rubyPosition?: string | undefined
        scrollBehavior?: csstype.ScrollBehaviorProperty | undefined
        scrollMargin?: csstype.ScrollMarginProperty<string | number> | undefined
        scrollMarginBlock?:
          | csstype.ScrollMarginBlockProperty<string | number>
          | undefined
        scrollMarginBlockEnd?:
          | csstype.ScrollMarginBlockEndProperty<string | number>
          | undefined
        scrollMarginBlockStart?:
          | csstype.ScrollMarginBlockStartProperty<string | number>
          | undefined
        scrollMarginBottom?:
          | csstype.ScrollMarginBottomProperty<string | number>
          | undefined
        scrollMarginInline?:
          | csstype.ScrollMarginInlineProperty<string | number>
          | undefined
        scrollMarginInlineEnd?:
          | csstype.ScrollMarginInlineEndProperty<string | number>
          | undefined
        scrollMarginInlineStart?:
          | csstype.ScrollMarginInlineStartProperty<string | number>
          | undefined
        scrollMarginLeft?:
          | csstype.ScrollMarginLeftProperty<string | number>
          | undefined
        scrollMarginRight?:
          | csstype.ScrollMarginRightProperty<string | number>
          | undefined
        scrollMarginTop?:
          | csstype.ScrollMarginTopProperty<string | number>
          | undefined
        scrollPadding?:
          | csstype.ScrollPaddingProperty<string | number>
          | undefined
        scrollPaddingBlock?:
          | csstype.ScrollPaddingBlockProperty<string | number>
          | undefined
        scrollPaddingBlockEnd?:
          | csstype.ScrollPaddingBlockEndProperty<string | number>
          | undefined
        scrollPaddingBlockStart?:
          | csstype.ScrollPaddingBlockStartProperty<string | number>
          | undefined
        scrollPaddingBottom?:
          | csstype.ScrollPaddingBottomProperty<string | number>
          | undefined
        scrollPaddingInline?:
          | csstype.ScrollPaddingInlineProperty<string | number>
          | undefined
        scrollPaddingInlineEnd?:
          | csstype.ScrollPaddingInlineEndProperty<string | number>
          | undefined
        scrollPaddingInlineStart?:
          | csstype.ScrollPaddingInlineStartProperty<string | number>
          | undefined
        scrollPaddingLeft?:
          | csstype.ScrollPaddingLeftProperty<string | number>
          | undefined
        scrollPaddingRight?:
          | csstype.ScrollPaddingRightProperty<string | number>
          | undefined
        scrollPaddingTop?:
          | csstype.ScrollPaddingTopProperty<string | number>
          | undefined
        scrollSnapAlign?: string | undefined
        scrollSnapMargin?:
          | csstype.ScrollMarginProperty<string | number>
          | undefined
        scrollSnapMarginBottom?:
          | csstype.ScrollMarginBottomProperty<string | number>
          | undefined
        scrollSnapMarginLeft?:
          | csstype.ScrollMarginLeftProperty<string | number>
          | undefined
        scrollSnapMarginRight?:
          | csstype.ScrollMarginRightProperty<string | number>
          | undefined
        scrollSnapMarginTop?:
          | csstype.ScrollMarginTopProperty<string | number>
          | undefined
        scrollSnapStop?: csstype.ScrollSnapStopProperty | undefined
        scrollSnapType?: string | undefined
        scrollbarColor?: string | undefined
        scrollbarGutter?: string | undefined
        scrollbarWidth?: csstype.ScrollbarWidthProperty | undefined
        shapeImageThreshold?: csstype.ShapeImageThresholdProperty | undefined
        shapeMargin?: csstype.ShapeMarginProperty<string | number> | undefined
        shapeOutside?: string | undefined
        tabSize?: csstype.TabSizeProperty<string | number> | undefined
        tableLayout?: csstype.TableLayoutProperty | undefined
        textAlign?: csstype.TextAlignProperty | undefined
        textAlignLast?: csstype.TextAlignLastProperty | undefined
        textCombineUpright?: string | undefined
        textDecorationColor?: string | undefined
        textDecorationLine?: string | undefined
        textDecorationSkip?: string | undefined
        textDecorationSkipInk?:
          | csstype.TextDecorationSkipInkProperty
          | undefined
        textDecorationStyle?: csstype.TextDecorationStyleProperty | undefined
        textDecorationThickness?:
          | csstype.TextDecorationThicknessProperty<string | number>
          | undefined
        textDecorationWidth?:
          | csstype.TextDecorationThicknessProperty<string | number>
          | undefined
        textEmphasisColor?: string | undefined
        textEmphasisPosition?: string | undefined
        textEmphasisStyle?: string | undefined
        textIndent?: csstype.TextIndentProperty<string | number> | undefined
        textJustify?: csstype.TextJustifyProperty | undefined
        textOrientation?: csstype.TextOrientationProperty | undefined
        textOverflow?: string | undefined
        textRendering?: csstype.TextRenderingProperty | undefined
        textShadow?: string | undefined
        textSizeAdjust?: string | undefined
        textTransform?: csstype.TextTransformProperty | undefined
        textUnderlineOffset?:
          | csstype.TextUnderlineOffsetProperty<string | number>
          | undefined
        textUnderlinePosition?: string | undefined
        top?: csstype.TopProperty<string | number> | undefined
        touchAction?: string | undefined
        transitionDelay?: string | undefined
        transitionDuration?: string | undefined
        transitionProperty?: string | undefined
        transitionTimingFunction?: string | undefined
        translate?: csstype.TranslateProperty<string | number> | undefined
        unicodeBidi?: csstype.UnicodeBidiProperty | undefined
        userSelect?: csstype.UserSelectProperty | undefined
        verticalAlign?:
          | csstype.VerticalAlignProperty<string | number>
          | undefined
        visibility?: csstype.VisibilityProperty | undefined
        whiteSpace?: csstype.WhiteSpaceProperty | undefined
        widows?: csstype.GlobalsNumber | undefined
        width?: csstype.WidthProperty<string | number> | undefined
        willChange?: string | undefined
        wordBreak?: csstype.WordBreakProperty | undefined
        wordSpacing?: csstype.WordSpacingProperty<string | number> | undefined
        wordWrap?: csstype.WordWrapProperty | undefined
        writingMode?: csstype.WritingModeProperty | undefined
        zIndex?: csstype.ZIndexProperty | undefined
        zoom?: csstype.ZoomProperty | undefined
        all?: csstype.Globals | undefined
        animation?: csstype.AnimationProperty | undefined
        background?: csstype.BackgroundProperty<string | number> | undefined
        backgroundPosition?:
          | csstype.BackgroundPositionProperty<string | number>
          | undefined
        border?: csstype.BorderProperty<string | number> | undefined
        borderBlock?: csstype.BorderBlockProperty<string | number> | undefined
        borderBlockEnd?:
          | csstype.BorderBlockEndProperty<string | number>
          | undefined
        borderBlockStart?:
          | csstype.BorderBlockStartProperty<string | number>
          | undefined
        borderBottom?: csstype.BorderBottomProperty<string | number> | undefined
        borderColor?: string | undefined
        borderImage?: csstype.BorderImageProperty | undefined
        borderInline?: csstype.BorderInlineProperty<string | number> | undefined
        borderInlineEnd?:
          | csstype.BorderInlineEndProperty<string | number>
          | undefined
        borderInlineStart?:
          | csstype.BorderInlineStartProperty<string | number>
          | undefined
        borderLeft?: csstype.BorderLeftProperty<string | number> | undefined
        borderRadius?: csstype.BorderRadiusProperty<string | number> | undefined
        borderRight?: csstype.BorderRightProperty<string | number> | undefined
        borderStyle?: string | undefined
        borderTop?: csstype.BorderTopProperty<string | number> | undefined
        borderWidth?: csstype.BorderWidthProperty<string | number> | undefined
        columnRule?: csstype.ColumnRuleProperty<string | number> | undefined
        columns?: csstype.ColumnsProperty<string | number> | undefined
        flex?: csstype.FlexProperty<string | number> | undefined
        flexFlow?: string | undefined
        font?: string | undefined
        gap?: csstype.GapProperty<string | number> | undefined
        grid?: string | undefined
        gridArea?: csstype.GridAreaProperty | undefined
        gridColumn?: csstype.GridColumnProperty | undefined
        gridRow?: csstype.GridRowProperty | undefined
        gridTemplate?: string | undefined
        lineClamp?: csstype.LineClampProperty | undefined
        listStyle?: string | undefined
        margin?: csstype.MarginProperty<string | number> | undefined
        mask?: csstype.MaskProperty<string | number> | undefined
        maskBorder?: csstype.MaskBorderProperty | undefined
        motion?: csstype.OffsetProperty<string | number> | undefined
        offset?: csstype.OffsetProperty<string | number> | undefined
        outline?: csstype.OutlineProperty<string | number> | undefined
        overflow?: string | undefined
        overscrollBehavior?: string | undefined
        padding?: csstype.PaddingProperty<string | number> | undefined
        placeItems?: string | undefined
        placeSelf?: string | undefined
        textDecoration?:
          | csstype.TextDecorationProperty<string | number>
          | undefined
        textEmphasis?: string | undefined
        MozAnimationDelay?: string | undefined
        MozAnimationDirection?: string | undefined
        MozAnimationDuration?: string | undefined
        MozAnimationFillMode?: string | undefined
        MozAnimationIterationCount?:
          | csstype.AnimationIterationCountProperty
          | undefined
        MozAnimationName?: string | undefined
        MozAnimationPlayState?: string | undefined
        MozAnimationTimingFunction?: string | undefined
        MozAppearance?: csstype.MozAppearanceProperty | undefined
        MozBackfaceVisibility?: csstype.BackfaceVisibilityProperty | undefined
        MozBorderBottomColors?: string | undefined
        MozBorderEndColor?: string | undefined
        MozBorderEndStyle?: csstype.BorderInlineEndStyleProperty | undefined
        MozBorderEndWidth?:
          | csstype.BorderInlineEndWidthProperty<string | number>
          | undefined
        MozBorderLeftColors?: string | undefined
        MozBorderRightColors?: string | undefined
        MozBorderStartColor?: string | undefined
        MozBorderStartStyle?: csstype.BorderInlineStartStyleProperty | undefined
        MozBorderTopColors?: string | undefined
        MozBoxSizing?: csstype.BoxSizingProperty | undefined
        MozColumnCount?: csstype.ColumnCountProperty | undefined
        MozColumnFill?: csstype.ColumnFillProperty | undefined
        MozColumnGap?: csstype.ColumnGapProperty<string | number> | undefined
        MozColumnRuleColor?: string | undefined
        MozColumnRuleStyle?: string | undefined
        MozColumnRuleWidth?:
          | csstype.ColumnRuleWidthProperty<string | number>
          | undefined
        MozColumnWidth?:
          | csstype.ColumnWidthProperty<string | number>
          | undefined
        MozContextProperties?: string | undefined
        MozFontFeatureSettings?: string | undefined
        MozFontLanguageOverride?: string | undefined
        MozHyphens?: csstype.HyphensProperty | undefined
        MozImageRegion?: string | undefined
        MozMarginEnd?:
          | csstype.MarginInlineEndProperty<string | number>
          | undefined
        MozMarginStart?:
          | csstype.MarginInlineStartProperty<string | number>
          | undefined
        MozOrient?: csstype.MozOrientProperty | undefined
        MozOsxFontSmoothing?:
          | csstype.FontSmoothProperty<string | number>
          | undefined
        MozPaddingEnd?:
          | csstype.PaddingInlineEndProperty<string | number>
          | undefined
        MozPaddingStart?:
          | csstype.PaddingInlineStartProperty<string | number>
          | undefined
        MozPerspective?:
          | csstype.PerspectiveProperty<string | number>
          | undefined
        MozPerspectiveOrigin?:
          | csstype.PerspectiveOriginProperty<string | number>
          | undefined
        MozStackSizing?: csstype.MozStackSizingProperty | undefined
        MozTabSize?: csstype.TabSizeProperty<string | number> | undefined
        MozTextBlink?: csstype.MozTextBlinkProperty | undefined
        MozTextSizeAdjust?: string | undefined
        MozTransformOrigin?:
          | csstype.TransformOriginProperty<string | number>
          | undefined
        MozTransformStyle?: csstype.TransformStyleProperty | undefined
        MozTransitionDelay?: string | undefined
        MozTransitionDuration?: string | undefined
        MozTransitionProperty?: string | undefined
        MozTransitionTimingFunction?: string | undefined
        MozUserFocus?: csstype.MozUserFocusProperty | undefined
        MozUserModify?: csstype.MozUserModifyProperty | undefined
        MozUserSelect?: csstype.UserSelectProperty | undefined
        MozWindowDragging?: csstype.MozWindowDraggingProperty | undefined
        MozWindowShadow?: csstype.MozWindowShadowProperty | undefined
        msAccelerator?: csstype.MsAcceleratorProperty | undefined
        msAlignSelf?: string | undefined
        msBlockProgression?: csstype.MsBlockProgressionProperty | undefined
        msContentZoomChaining?:
          | csstype.MsContentZoomChainingProperty
          | undefined
        msContentZoomLimitMax?: string | undefined
        msContentZoomLimitMin?: string | undefined
        msContentZoomSnapPoints?: string | undefined
        msContentZoomSnapType?:
          | csstype.MsContentZoomSnapTypeProperty
          | undefined
        msContentZooming?: csstype.MsContentZoomingProperty | undefined
        msFilter?: string | undefined
        msFlexDirection?: csstype.FlexDirectionProperty | undefined
        msFlexPositive?: csstype.GlobalsNumber | undefined
        msFlowFrom?: string | undefined
        msFlowInto?: string | undefined
        msGridColumns?:
          | csstype.MsGridColumnsProperty<string | number>
          | undefined
        msGridRows?: csstype.MsGridRowsProperty<string | number> | undefined
        msHighContrastAdjust?: csstype.MsHighContrastAdjustProperty | undefined
        msHyphenateLimitChars?:
          | csstype.MsHyphenateLimitCharsProperty
          | undefined
        msHyphenateLimitLines?:
          | csstype.MsHyphenateLimitLinesProperty
          | undefined
        msHyphenateLimitZone?:
          | csstype.MsHyphenateLimitZoneProperty<string | number>
          | undefined
        msHyphens?: csstype.HyphensProperty | undefined
        msImeAlign?: csstype.MsImeAlignProperty | undefined
        msJustifySelf?: string | undefined
        msLineBreak?: csstype.LineBreakProperty | undefined
        msOrder?: csstype.GlobalsNumber | undefined
        msOverflowStyle?: csstype.MsOverflowStyleProperty | undefined
        msOverflowX?: csstype.OverflowXProperty | undefined
        msOverflowY?: csstype.OverflowYProperty | undefined
        msScrollChaining?: csstype.MsScrollChainingProperty | undefined
        msScrollLimitXMax?:
          | csstype.MsScrollLimitXMaxProperty<string | number>
          | undefined
        msScrollLimitXMin?:
          | csstype.MsScrollLimitXMinProperty<string | number>
          | undefined
        msScrollLimitYMax?:
          | csstype.MsScrollLimitYMaxProperty<string | number>
          | undefined
        msScrollLimitYMin?:
          | csstype.MsScrollLimitYMinProperty<string | number>
          | undefined
        msScrollRails?: csstype.MsScrollRailsProperty | undefined
        msScrollSnapPointsX?: string | undefined
        msScrollSnapPointsY?: string | undefined
        msScrollSnapType?: csstype.MsScrollSnapTypeProperty | undefined
        msScrollTranslation?: csstype.MsScrollTranslationProperty | undefined
        msScrollbar3dlightColor?: string | undefined
        msScrollbarArrowColor?: string | undefined
        msScrollbarBaseColor?: string | undefined
        msScrollbarDarkshadowColor?: string | undefined
        msScrollbarFaceColor?: string | undefined
        msScrollbarHighlightColor?: string | undefined
        msScrollbarShadowColor?: string | undefined
        msTextAutospace?: csstype.MsTextAutospaceProperty | undefined
        msTextCombineHorizontal?: string | undefined
        msTextOverflow?: string | undefined
        msTouchAction?: string | undefined
        msTouchSelect?: csstype.MsTouchSelectProperty | undefined
        msTransform?: string | undefined
        msTransformOrigin?:
          | csstype.TransformOriginProperty<string | number>
          | undefined
        msTransitionDelay?: string | undefined
        msTransitionDuration?: string | undefined
        msTransitionProperty?: string | undefined
        msTransitionTimingFunction?: string | undefined
        msUserSelect?: csstype.MsUserSelectProperty | undefined
        msWordBreak?: csstype.WordBreakProperty | undefined
        msWrapFlow?: csstype.MsWrapFlowProperty | undefined
        msWrapMargin?: csstype.MsWrapMarginProperty<string | number> | undefined
        msWrapThrough?: csstype.MsWrapThroughProperty | undefined
        msWritingMode?: csstype.WritingModeProperty | undefined
        WebkitAlignContent?: string | undefined
        WebkitAlignItems?: string | undefined
        WebkitAlignSelf?: string | undefined
        WebkitAnimationDelay?: string | undefined
        WebkitAnimationDirection?: string | undefined
        WebkitAnimationDuration?: string | undefined
        WebkitAnimationFillMode?: string | undefined
        WebkitAnimationIterationCount?:
          | csstype.AnimationIterationCountProperty
          | undefined
        WebkitAnimationName?: string | undefined
        WebkitAnimationPlayState?: string | undefined
        WebkitAnimationTimingFunction?: string | undefined
        WebkitAppearance?: csstype.WebkitAppearanceProperty | undefined
        WebkitBackdropFilter?: string | undefined
        WebkitBackfaceVisibility?:
          | csstype.BackfaceVisibilityProperty
          | undefined
        WebkitBackgroundClip?: string | undefined
        WebkitBackgroundOrigin?: string | undefined
        WebkitBackgroundSize?:
          | csstype.BackgroundSizeProperty<string | number>
          | undefined
        WebkitBorderBeforeColor?: string | undefined
        WebkitBorderBeforeStyle?: string | undefined
        WebkitBorderBeforeWidth?:
          | csstype.WebkitBorderBeforeWidthProperty<string | number>
          | undefined
        WebkitBorderBottomLeftRadius?:
          | csstype.BorderBottomLeftRadiusProperty<string | number>
          | undefined
        WebkitBorderBottomRightRadius?:
          | csstype.BorderBottomRightRadiusProperty<string | number>
          | undefined
        WebkitBorderImageSlice?: csstype.BorderImageSliceProperty | undefined
        WebkitBorderTopLeftRadius?:
          | csstype.BorderTopLeftRadiusProperty<string | number>
          | undefined
        WebkitBorderTopRightRadius?:
          | csstype.BorderTopRightRadiusProperty<string | number>
          | undefined
        WebkitBoxDecorationBreak?:
          | csstype.BoxDecorationBreakProperty
          | undefined
        WebkitBoxReflect?:
          | csstype.WebkitBoxReflectProperty<string | number>
          | undefined
        WebkitBoxShadow?: string | undefined
        WebkitBoxSizing?: csstype.BoxSizingProperty | undefined
        WebkitClipPath?: string | undefined
        WebkitColumnCount?: csstype.ColumnCountProperty | undefined
        WebkitColumnFill?: csstype.ColumnFillProperty | undefined
        WebkitColumnGap?: csstype.ColumnGapProperty<string | number> | undefined
        WebkitColumnRuleColor?: string | undefined
        WebkitColumnRuleStyle?: string | undefined
        WebkitColumnRuleWidth?:
          | csstype.ColumnRuleWidthProperty<string | number>
          | undefined
        WebkitColumnSpan?: csstype.ColumnSpanProperty | undefined
        WebkitColumnWidth?:
          | csstype.ColumnWidthProperty<string | number>
          | undefined
        WebkitFilter?: string | undefined
        WebkitFlexBasis?: csstype.FlexBasisProperty<string | number> | undefined
        WebkitFlexDirection?: csstype.FlexDirectionProperty | undefined
        WebkitFlexGrow?: csstype.GlobalsNumber | undefined
        WebkitFlexShrink?: csstype.GlobalsNumber | undefined
        WebkitFlexWrap?: csstype.FlexWrapProperty | undefined
        WebkitFontFeatureSettings?: string | undefined
        WebkitFontKerning?: csstype.FontKerningProperty | undefined
        WebkitFontSmoothing?:
          | csstype.FontSmoothProperty<string | number>
          | undefined
        WebkitFontVariantLigatures?: string | undefined
        WebkitHyphens?: csstype.HyphensProperty | undefined
        WebkitJustifyContent?: string | undefined
        WebkitLineBreak?: csstype.LineBreakProperty | undefined
        WebkitLineClamp?: csstype.WebkitLineClampProperty | undefined
        WebkitMarginEnd?:
          | csstype.MarginInlineEndProperty<string | number>
          | undefined
        WebkitMarginStart?:
          | csstype.MarginInlineStartProperty<string | number>
          | undefined
        WebkitMaskAttachment?: string | undefined
        WebkitMaskBoxImageOutset?:
          | csstype.MaskBorderOutsetProperty<string | number>
          | undefined
        WebkitMaskBoxImageRepeat?: string | undefined
        WebkitMaskBoxImageSlice?: csstype.MaskBorderSliceProperty | undefined
        WebkitMaskBoxImageSource?: string | undefined
        WebkitMaskBoxImageWidth?:
          | csstype.MaskBorderWidthProperty<string | number>
          | undefined
        WebkitMaskClip?: string | undefined
        WebkitMaskComposite?: string | undefined
        WebkitMaskImage?: string | undefined
        WebkitMaskOrigin?: string | undefined
        WebkitMaskPosition?:
          | csstype.WebkitMaskPositionProperty<string | number>
          | undefined
        WebkitMaskPositionX?:
          | csstype.WebkitMaskPositionXProperty<string | number>
          | undefined
        WebkitMaskPositionY?:
          | csstype.WebkitMaskPositionYProperty<string | number>
          | undefined
        WebkitMaskRepeat?: string | undefined
        WebkitMaskRepeatX?: csstype.WebkitMaskRepeatXProperty | undefined
        WebkitMaskRepeatY?: csstype.WebkitMaskRepeatYProperty | undefined
        WebkitMaskSize?:
          | csstype.WebkitMaskSizeProperty<string | number>
          | undefined
        WebkitMaxInlineSize?:
          | csstype.MaxInlineSizeProperty<string | number>
          | undefined
        WebkitOrder?: csstype.GlobalsNumber | undefined
        WebkitOverflowScrolling?:
          | csstype.WebkitOverflowScrollingProperty
          | undefined
        WebkitPaddingEnd?:
          | csstype.PaddingInlineEndProperty<string | number>
          | undefined
        WebkitPaddingStart?:
          | csstype.PaddingInlineStartProperty<string | number>
          | undefined
        WebkitPerspective?:
          | csstype.PerspectiveProperty<string | number>
          | undefined
        WebkitPerspectiveOrigin?:
          | csstype.PerspectiveOriginProperty<string | number>
          | undefined
        WebkitPrintColorAdjust?: csstype.ColorAdjustProperty | undefined
        WebkitRubyPosition?: string | undefined
        WebkitScrollSnapType?: string | undefined
        WebkitShapeMargin?:
          | csstype.ShapeMarginProperty<string | number>
          | undefined
        WebkitTapHighlightColor?: string | undefined
        WebkitTextCombine?: string | undefined
        WebkitTextDecorationColor?: string | undefined
        WebkitTextDecorationLine?: string | undefined
        WebkitTextDecorationSkip?: string | undefined
        WebkitTextDecorationStyle?:
          | csstype.TextDecorationStyleProperty
          | undefined
        WebkitTextEmphasisColor?: string | undefined
        WebkitTextEmphasisPosition?: string | undefined
        WebkitTextEmphasisStyle?: string | undefined
        WebkitTextFillColor?: string | undefined
        WebkitTextOrientation?: csstype.TextOrientationProperty | undefined
        WebkitTextSizeAdjust?: string | undefined
        WebkitTextStrokeColor?: string | undefined
        WebkitTextStrokeWidth?:
          | csstype.WebkitTextStrokeWidthProperty<string | number>
          | undefined
        WebkitTextUnderlinePosition?: string | undefined
        WebkitTouchCallout?: csstype.WebkitTouchCalloutProperty | undefined
        WebkitTransform?: string | undefined
        WebkitTransformOrigin?:
          | csstype.TransformOriginProperty<string | number>
          | undefined
        WebkitTransformStyle?: csstype.TransformStyleProperty | undefined
        WebkitTransitionDelay?: string | undefined
        WebkitTransitionDuration?: string | undefined
        WebkitTransitionProperty?: string | undefined
        WebkitTransitionTimingFunction?: string | undefined
        WebkitUserModify?: csstype.WebkitUserModifyProperty | undefined
        WebkitUserSelect?: csstype.UserSelectProperty | undefined
        WebkitWritingMode?: csstype.WritingModeProperty | undefined
        MozAnimation?: csstype.AnimationProperty | undefined
        MozBorderImage?: csstype.BorderImageProperty | undefined
        MozColumnRule?: csstype.ColumnRuleProperty<string | number> | undefined
        MozColumns?: csstype.ColumnsProperty<string | number> | undefined
        MozTransition?: string | undefined
        msContentZoomLimit?: string | undefined
        msContentZoomSnap?: string | undefined
        msFlex?: csstype.FlexProperty<string | number> | undefined
        msScrollLimit?: string | undefined
        msScrollSnapX?: string | undefined
        msScrollSnapY?: string | undefined
        msTransition?: string | undefined
        WebkitAnimation?: csstype.AnimationProperty | undefined
        WebkitBorderBefore?:
          | csstype.WebkitBorderBeforeProperty<string | number>
          | undefined
        WebkitBorderImage?: csstype.BorderImageProperty | undefined
        WebkitBorderRadius?:
          | csstype.BorderRadiusProperty<string | number>
          | undefined
        WebkitColumnRule?:
          | csstype.ColumnRuleProperty<string | number>
          | undefined
        WebkitColumns?: csstype.ColumnsProperty<string | number> | undefined
        WebkitFlex?: csstype.FlexProperty<string | number> | undefined
        WebkitFlexFlow?: string | undefined
        WebkitMask?: csstype.WebkitMaskProperty<string | number> | undefined
        WebkitMaskBoxImage?: csstype.MaskBorderProperty | undefined
        WebkitTextEmphasis?: string | undefined
        WebkitTextStroke?:
          | csstype.WebkitTextStrokeProperty<string | number>
          | undefined
        WebkitTransition?: string | undefined
        azimuth?: string | undefined
        boxAlign?: csstype.BoxAlignProperty | undefined
        boxDirection?: csstype.BoxDirectionProperty | undefined
        boxFlex?: csstype.GlobalsNumber | undefined
        boxFlexGroup?: csstype.GlobalsNumber | undefined
        boxLines?: csstype.BoxLinesProperty | undefined
        boxOrdinalGroup?: csstype.GlobalsNumber | undefined
        boxOrient?: csstype.BoxOrientProperty | undefined
        boxPack?: csstype.BoxPackProperty | undefined
        clip?: string | undefined
        fontVariantAlternates?: string | undefined
        gridColumnGap?:
          | csstype.GridColumnGapProperty<string | number>
          | undefined
        gridGap?: csstype.GridGapProperty<string | number> | undefined
        gridRowGap?: csstype.GridRowGapProperty<string | number> | undefined
        imeMode?: csstype.ImeModeProperty | undefined
        offsetBlock?: csstype.InsetBlockProperty<string | number> | undefined
        offsetBlockEnd?:
          | csstype.InsetBlockEndProperty<string | number>
          | undefined
        offsetBlockStart?:
          | csstype.InsetBlockStartProperty<string | number>
          | undefined
        offsetInline?: csstype.InsetInlineProperty<string | number> | undefined
        offsetInlineEnd?:
          | csstype.InsetInlineEndProperty<string | number>
          | undefined
        offsetInlineStart?:
          | csstype.InsetInlineStartProperty<string | number>
          | undefined
        scrollSnapCoordinate?:
          | csstype.ScrollSnapCoordinateProperty<string | number>
          | undefined
        scrollSnapDestination?:
          | csstype.ScrollSnapDestinationProperty<string | number>
          | undefined
        scrollSnapPointsX?: string | undefined
        scrollSnapPointsY?: string | undefined
        scrollSnapTypeX?: csstype.ScrollSnapTypeXProperty | undefined
        scrollSnapTypeY?: csstype.ScrollSnapTypeYProperty | undefined
        scrollbarTrackColor?: string | undefined
        KhtmlBoxAlign?: csstype.BoxAlignProperty | undefined
        KhtmlBoxDirection?: csstype.BoxDirectionProperty | undefined
        KhtmlBoxFlex?: csstype.GlobalsNumber | undefined
        KhtmlBoxFlexGroup?: csstype.GlobalsNumber | undefined
        KhtmlBoxLines?: csstype.BoxLinesProperty | undefined
        KhtmlBoxOrdinalGroup?: csstype.GlobalsNumber | undefined
        KhtmlBoxOrient?: csstype.BoxOrientProperty | undefined
        KhtmlBoxPack?: csstype.BoxPackProperty | undefined
        KhtmlLineBreak?: csstype.LineBreakProperty | undefined
        KhtmlOpacity?: csstype.OpacityProperty | undefined
        KhtmlUserSelect?: csstype.UserSelectProperty | undefined
        MozBackgroundClip?: string | undefined
        MozBackgroundInlinePolicy?:
          | csstype.BoxDecorationBreakProperty
          | undefined
        MozBackgroundOrigin?: string | undefined
        MozBackgroundSize?:
          | csstype.BackgroundSizeProperty<string | number>
          | undefined
        MozBinding?: string | undefined
        MozBorderRadius?:
          | csstype.BorderRadiusProperty<string | number>
          | undefined
        MozBorderRadiusBottomleft?:
          | csstype.BorderBottomLeftRadiusProperty<string | number>
          | undefined
        MozBorderRadiusBottomright?:
          | csstype.BorderBottomRightRadiusProperty<string | number>
          | undefined
        MozBorderRadiusTopleft?:
          | csstype.BorderTopLeftRadiusProperty<string | number>
          | undefined
        MozBorderRadiusTopright?:
          | csstype.BorderTopRightRadiusProperty<string | number>
          | undefined
        MozBoxAlign?: csstype.BoxAlignProperty | undefined
        MozBoxDirection?: csstype.BoxDirectionProperty | undefined
        MozBoxFlex?: csstype.GlobalsNumber | undefined
        MozBoxOrdinalGroup?: csstype.GlobalsNumber | undefined
        MozBoxOrient?: csstype.BoxOrientProperty | undefined
        MozBoxPack?: csstype.BoxPackProperty | undefined
        MozBoxShadow?: string | undefined
        MozFloatEdge?: csstype.MozFloatEdgeProperty | undefined
        MozForceBrokenImageIcon?: csstype.GlobalsNumber | undefined
        MozOpacity?: csstype.OpacityProperty | undefined
        MozOutline?: csstype.OutlineProperty<string | number> | undefined
        MozOutlineColor?: string | undefined
        MozOutlineRadius?:
          | csstype.MozOutlineRadiusProperty<string | number>
          | undefined
        MozOutlineRadiusBottomleft?:
          | csstype.MozOutlineRadiusBottomleftProperty<string | number>
          | undefined
        MozOutlineRadiusBottomright?:
          | csstype.MozOutlineRadiusBottomrightProperty<string | number>
          | undefined
        MozOutlineRadiusTopleft?:
          | csstype.MozOutlineRadiusTopleftProperty<string | number>
          | undefined
        MozOutlineRadiusTopright?:
          | csstype.MozOutlineRadiusToprightProperty<string | number>
          | undefined
        MozOutlineStyle?: string | undefined
        MozOutlineWidth?:
          | csstype.OutlineWidthProperty<string | number>
          | undefined
        MozTextAlignLast?: csstype.TextAlignLastProperty | undefined
        MozTextDecorationColor?: string | undefined
        MozTextDecorationLine?: string | undefined
        MozTextDecorationStyle?: csstype.TextDecorationStyleProperty | undefined
        MozUserInput?: csstype.MozUserInputProperty | undefined
        msImeMode?: csstype.ImeModeProperty | undefined
        msScrollbarTrackColor?: string | undefined
        OAnimation?: csstype.AnimationProperty | undefined
        OAnimationDelay?: string | undefined
        OAnimationDirection?: string | undefined
        OAnimationDuration?: string | undefined
        OAnimationFillMode?: string | undefined
        OAnimationIterationCount?:
          | csstype.AnimationIterationCountProperty
          | undefined
        OAnimationName?: string | undefined
        OAnimationPlayState?: string | undefined
        OAnimationTimingFunction?: string | undefined
        OBackgroundSize?:
          | csstype.BackgroundSizeProperty<string | number>
          | undefined
        OBorderImage?: csstype.BorderImageProperty | undefined
        OObjectFit?: csstype.ObjectFitProperty | undefined
        OObjectPosition?:
          | csstype.ObjectPositionProperty<string | number>
          | undefined
        OTabSize?: csstype.TabSizeProperty<string | number> | undefined
        OTextOverflow?: string | undefined
        OTransform?: string | undefined
        OTransformOrigin?:
          | csstype.TransformOriginProperty<string | number>
          | undefined
        OTransition?: string | undefined
        OTransitionDelay?: string | undefined
        OTransitionDuration?: string | undefined
        OTransitionProperty?: string | undefined
        OTransitionTimingFunction?: string | undefined
        WebkitBoxAlign?: csstype.BoxAlignProperty | undefined
        WebkitBoxDirection?: csstype.BoxDirectionProperty | undefined
        WebkitBoxFlex?: csstype.GlobalsNumber | undefined
        WebkitBoxFlexGroup?: csstype.GlobalsNumber | undefined
        WebkitBoxLines?: csstype.BoxLinesProperty | undefined
        WebkitBoxOrdinalGroup?: csstype.GlobalsNumber | undefined
        WebkitBoxOrient?: csstype.BoxOrientProperty | undefined
        WebkitBoxPack?: csstype.BoxPackProperty | undefined
        WebkitScrollSnapPointsX?: string | undefined
        WebkitScrollSnapPointsY?: string | undefined
        alignmentBaseline?: csstype.AlignmentBaselineProperty | undefined
        baselineShift?:
          | csstype.BaselineShiftProperty<string | number>
          | undefined
        clipRule?: csstype.ClipRuleProperty | undefined
        colorInterpolation?: csstype.ColorInterpolationProperty | undefined
        colorRendering?: csstype.ColorRenderingProperty | undefined
        dominantBaseline?: csstype.DominantBaselineProperty | undefined
        fill?: string | undefined
        fillOpacity?: csstype.GlobalsNumber | undefined
        fillRule?: csstype.FillRuleProperty | undefined
        floodColor?: string | undefined
        floodOpacity?: csstype.GlobalsNumber | undefined
        glyphOrientationVertical?:
          | csstype.GlyphOrientationVerticalProperty
          | undefined
        lightingColor?: string | undefined
        marker?: string | undefined
        markerEnd?: string | undefined
        markerMid?: string | undefined
        markerStart?: string | undefined
        shapeRendering?: csstype.ShapeRenderingProperty | undefined
        stopColor?: string | undefined
        stopOpacity?: csstype.GlobalsNumber | undefined
        stroke?: string | undefined
        strokeDasharray?:
          | csstype.StrokeDasharrayProperty<string | number>
          | undefined
        strokeDashoffset?:
          | csstype.StrokeDashoffsetProperty<string | number>
          | undefined
        strokeLinecap?: csstype.StrokeLinecapProperty | undefined
        strokeLinejoin?: csstype.StrokeLinejoinProperty | undefined
        strokeMiterlimit?: csstype.GlobalsNumber | undefined
        strokeOpacity?: csstype.GlobalsNumber | undefined
        strokeWidth?: csstype.StrokeWidthProperty<string | number> | undefined
        textAnchor?: csstype.TextAnchorProperty | undefined
        vectorEffect?: csstype.VectorEffectProperty | undefined
      }
    | {
        innerHTML?: string | undefined
        class?: any
        style?:
          | string
          | {
              alignContent?: string | undefined
              alignItems?: string | undefined
              alignSelf?: string | undefined
              alignTracks?: string | undefined
              animationDelay?: string | undefined
              animationDirection?: string | undefined
              animationDuration?: string | undefined
              animationFillMode?: string | undefined
              animationIterationCount?:
                | csstype.AnimationIterationCountProperty
                | undefined
              animationName?: string | undefined
              animationPlayState?: string | undefined
              animationTimingFunction?: string | undefined
              appearance?: csstype.AppearanceProperty | undefined
              aspectRatio?: string | undefined
              backdropFilter?: string | undefined
              backfaceVisibility?:
                | csstype.BackfaceVisibilityProperty
                | undefined
              backgroundAttachment?: string | undefined
              backgroundBlendMode?: string | undefined
              backgroundClip?: string | undefined
              backgroundColor?: string | undefined
              backgroundImage?: string | undefined
              backgroundOrigin?: string | undefined
              backgroundPositionX?:
                | csstype.BackgroundPositionXProperty<string | number>
                | undefined
              backgroundPositionY?:
                | csstype.BackgroundPositionYProperty<string | number>
                | undefined
              backgroundRepeat?: string | undefined
              backgroundSize?:
                | csstype.BackgroundSizeProperty<string | number>
                | undefined
              blockOverflow?: string | undefined
              blockSize?: csstype.BlockSizeProperty<string | number> | undefined
              borderBlockColor?: string | undefined
              borderBlockEndColor?: string | undefined
              borderBlockEndStyle?:
                | csstype.BorderBlockEndStyleProperty
                | undefined
              borderBlockEndWidth?:
                | csstype.BorderBlockEndWidthProperty<string | number>
                | undefined
              borderBlockStartColor?: string | undefined
              borderBlockStartStyle?:
                | csstype.BorderBlockStartStyleProperty
                | undefined
              borderBlockStartWidth?:
                | csstype.BorderBlockStartWidthProperty<string | number>
                | undefined
              borderBlockStyle?: csstype.BorderBlockStyleProperty | undefined
              borderBlockWidth?:
                | csstype.BorderBlockWidthProperty<string | number>
                | undefined
              borderBottomColor?: string | undefined
              borderBottomLeftRadius?:
                | csstype.BorderBottomLeftRadiusProperty<string | number>
                | undefined
              borderBottomRightRadius?:
                | csstype.BorderBottomRightRadiusProperty<string | number>
                | undefined
              borderBottomStyle?: csstype.BorderBottomStyleProperty | undefined
              borderBottomWidth?:
                | csstype.BorderBottomWidthProperty<string | number>
                | undefined
              borderCollapse?: csstype.BorderCollapseProperty | undefined
              borderEndEndRadius?:
                | csstype.BorderEndEndRadiusProperty<string | number>
                | undefined
              borderEndStartRadius?:
                | csstype.BorderEndStartRadiusProperty<string | number>
                | undefined
              borderImageOutset?:
                | csstype.BorderImageOutsetProperty<string | number>
                | undefined
              borderImageRepeat?: string | undefined
              borderImageSlice?: csstype.BorderImageSliceProperty | undefined
              borderImageSource?: string | undefined
              borderImageWidth?:
                | csstype.BorderImageWidthProperty<string | number>
                | undefined
              borderInlineColor?: string | undefined
              borderInlineEndColor?: string | undefined
              borderInlineEndStyle?:
                | csstype.BorderInlineEndStyleProperty
                | undefined
              borderInlineEndWidth?:
                | csstype.BorderInlineEndWidthProperty<string | number>
                | undefined
              borderInlineStartColor?: string | undefined
              borderInlineStartStyle?:
                | csstype.BorderInlineStartStyleProperty
                | undefined
              borderInlineStartWidth?:
                | csstype.BorderInlineStartWidthProperty<string | number>
                | undefined
              borderInlineStyle?: csstype.BorderInlineStyleProperty | undefined
              borderInlineWidth?:
                | csstype.BorderInlineWidthProperty<string | number>
                | undefined
              borderLeftColor?: string | undefined
              borderLeftStyle?: csstype.BorderLeftStyleProperty | undefined
              borderLeftWidth?:
                | csstype.BorderLeftWidthProperty<string | number>
                | undefined
              borderRightColor?: string | undefined
              borderRightStyle?: csstype.BorderRightStyleProperty | undefined
              borderRightWidth?:
                | csstype.BorderRightWidthProperty<string | number>
                | undefined
              borderSpacing?:
                | csstype.BorderSpacingProperty<string | number>
                | undefined
              borderStartEndRadius?:
                | csstype.BorderStartEndRadiusProperty<string | number>
                | undefined
              borderStartStartRadius?:
                | csstype.BorderStartStartRadiusProperty<string | number>
                | undefined
              borderTopColor?: string | undefined
              borderTopLeftRadius?:
                | csstype.BorderTopLeftRadiusProperty<string | number>
                | undefined
              borderTopRightRadius?:
                | csstype.BorderTopRightRadiusProperty<string | number>
                | undefined
              borderTopStyle?: csstype.BorderTopStyleProperty | undefined
              borderTopWidth?:
                | csstype.BorderTopWidthProperty<string | number>
                | undefined
              bottom?: csstype.BottomProperty<string | number> | undefined
              boxDecorationBreak?:
                | csstype.BoxDecorationBreakProperty
                | undefined
              boxShadow?: string | undefined
              boxSizing?: csstype.BoxSizingProperty | undefined
              breakAfter?: csstype.BreakAfterProperty | undefined
              breakBefore?: csstype.BreakBeforeProperty | undefined
              breakInside?: csstype.BreakInsideProperty | undefined
              captionSide?: csstype.CaptionSideProperty | undefined
              caretColor?: string | undefined
              clear?: csstype.ClearProperty | undefined
              clipPath?: string | undefined
              color?: string | undefined
              colorAdjust?: csstype.ColorAdjustProperty | undefined
              colorScheme?: string | undefined
              columnCount?: csstype.ColumnCountProperty | undefined
              columnFill?: csstype.ColumnFillProperty | undefined
              columnGap?: csstype.ColumnGapProperty<string | number> | undefined
              columnRuleColor?: string | undefined
              columnRuleStyle?: string | undefined
              columnRuleWidth?:
                | csstype.ColumnRuleWidthProperty<string | number>
                | undefined
              columnSpan?: csstype.ColumnSpanProperty | undefined
              columnWidth?:
                | csstype.ColumnWidthProperty<string | number>
                | undefined
              contain?: string | undefined
              content?: string | undefined
              contentVisibility?: csstype.ContentVisibilityProperty | undefined
              counterIncrement?: string | undefined
              counterReset?: string | undefined
              counterSet?: string | undefined
              cursor?: string | undefined
              direction?: csstype.DirectionProperty | undefined
              display?: string | undefined
              emptyCells?: csstype.EmptyCellsProperty | undefined
              filter?: string | undefined
              flexBasis?: csstype.FlexBasisProperty<string | number> | undefined
              flexDirection?: csstype.FlexDirectionProperty | undefined
              flexGrow?: csstype.GlobalsNumber | undefined
              flexShrink?: csstype.GlobalsNumber | undefined
              flexWrap?: csstype.FlexWrapProperty | undefined
              float?: csstype.FloatProperty | undefined
              fontFamily?: string | undefined
              fontFeatureSettings?: string | undefined
              fontKerning?: csstype.FontKerningProperty | undefined
              fontLanguageOverride?: string | undefined
              fontOpticalSizing?: csstype.FontOpticalSizingProperty | undefined
              fontSize?: csstype.FontSizeProperty<string | number> | undefined
              fontSizeAdjust?: csstype.FontSizeAdjustProperty | undefined
              fontSmooth?:
                | csstype.FontSmoothProperty<string | number>
                | undefined
              fontStretch?: string | undefined
              fontStyle?: string | undefined
              fontSynthesis?: string | undefined
              fontVariant?: string | undefined
              fontVariantCaps?: csstype.FontVariantCapsProperty | undefined
              fontVariantEastAsian?: string | undefined
              fontVariantLigatures?: string | undefined
              fontVariantNumeric?: string | undefined
              fontVariantPosition?:
                | csstype.FontVariantPositionProperty
                | undefined
              fontVariationSettings?: string | undefined
              fontWeight?: csstype.FontWeightProperty | undefined
              forcedColorAdjust?: csstype.ForcedColorAdjustProperty | undefined
              gridAutoColumns?:
                | csstype.GridAutoColumnsProperty<string | number>
                | undefined
              gridAutoFlow?: string | undefined
              gridAutoRows?:
                | csstype.GridAutoRowsProperty<string | number>
                | undefined
              gridColumnEnd?: csstype.GridColumnEndProperty | undefined
              gridColumnStart?: csstype.GridColumnStartProperty | undefined
              gridRowEnd?: csstype.GridRowEndProperty | undefined
              gridRowStart?: csstype.GridRowStartProperty | undefined
              gridTemplateAreas?: string | undefined
              gridTemplateColumns?:
                | csstype.GridTemplateColumnsProperty<string | number>
                | undefined
              gridTemplateRows?:
                | csstype.GridTemplateRowsProperty<string | number>
                | undefined
              hangingPunctuation?: string | undefined
              height?: csstype.HeightProperty<string | number> | undefined
              hyphens?: csstype.HyphensProperty | undefined
              imageOrientation?: string | undefined
              imageRendering?: csstype.ImageRenderingProperty | undefined
              imageResolution?: string | undefined
              initialLetter?: csstype.InitialLetterProperty | undefined
              inlineSize?:
                | csstype.InlineSizeProperty<string | number>
                | undefined
              inset?: csstype.InsetProperty<string | number> | undefined
              insetBlock?:
                | csstype.InsetBlockProperty<string | number>
                | undefined
              insetBlockEnd?:
                | csstype.InsetBlockEndProperty<string | number>
                | undefined
              insetBlockStart?:
                | csstype.InsetBlockStartProperty<string | number>
                | undefined
              insetInline?:
                | csstype.InsetInlineProperty<string | number>
                | undefined
              insetInlineEnd?:
                | csstype.InsetInlineEndProperty<string | number>
                | undefined
              insetInlineStart?:
                | csstype.InsetInlineStartProperty<string | number>
                | undefined
              isolation?: csstype.IsolationProperty | undefined
              justifyContent?: string | undefined
              justifyItems?: string | undefined
              justifySelf?: string | undefined
              justifyTracks?: string | undefined
              left?: csstype.LeftProperty<string | number> | undefined
              letterSpacing?:
                | csstype.LetterSpacingProperty<string | number>
                | undefined
              lineBreak?: csstype.LineBreakProperty | undefined
              lineHeight?:
                | csstype.LineHeightProperty<string | number>
                | undefined
              lineHeightStep?:
                | csstype.LineHeightStepProperty<string | number>
                | undefined
              listStyleImage?: string | undefined
              listStylePosition?: csstype.ListStylePositionProperty | undefined
              listStyleType?: string | undefined
              marginBlock?:
                | csstype.MarginBlockProperty<string | number>
                | undefined
              marginBlockEnd?:
                | csstype.MarginBlockEndProperty<string | number>
                | undefined
              marginBlockStart?:
                | csstype.MarginBlockStartProperty<string | number>
                | undefined
              marginBottom?:
                | csstype.MarginBottomProperty<string | number>
                | undefined
              marginInline?:
                | csstype.MarginInlineProperty<string | number>
                | undefined
              marginInlineEnd?:
                | csstype.MarginInlineEndProperty<string | number>
                | undefined
              marginInlineStart?:
                | csstype.MarginInlineStartProperty<string | number>
                | undefined
              marginLeft?:
                | csstype.MarginLeftProperty<string | number>
                | undefined
              marginRight?:
                | csstype.MarginRightProperty<string | number>
                | undefined
              marginTop?: csstype.MarginTopProperty<string | number> | undefined
              maskBorderMode?: csstype.MaskBorderModeProperty | undefined
              maskBorderOutset?:
                | csstype.MaskBorderOutsetProperty<string | number>
                | undefined
              maskBorderRepeat?: string | undefined
              maskBorderSlice?: csstype.MaskBorderSliceProperty | undefined
              maskBorderSource?: string | undefined
              maskBorderWidth?:
                | csstype.MaskBorderWidthProperty<string | number>
                | undefined
              maskClip?: string | undefined
              maskComposite?: string | undefined
              maskImage?: string | undefined
              maskMode?: string | undefined
              maskOrigin?: string | undefined
              maskPosition?:
                | csstype.MaskPositionProperty<string | number>
                | undefined
              maskRepeat?: string | undefined
              maskSize?: csstype.MaskSizeProperty<string | number> | undefined
              maskType?: csstype.MaskTypeProperty | undefined
              mathStyle?: csstype.MathStyleProperty | undefined
              maxBlockSize?:
                | csstype.MaxBlockSizeProperty<string | number>
                | undefined
              maxHeight?: csstype.MaxHeightProperty<string | number> | undefined
              maxInlineSize?:
                | csstype.MaxInlineSizeProperty<string | number>
                | undefined
              maxLines?: csstype.MaxLinesProperty | undefined
              maxWidth?: csstype.MaxWidthProperty<string | number> | undefined
              minBlockSize?:
                | csstype.MinBlockSizeProperty<string | number>
                | undefined
              minHeight?: csstype.MinHeightProperty<string | number> | undefined
              minInlineSize?:
                | csstype.MinInlineSizeProperty<string | number>
                | undefined
              minWidth?: csstype.MinWidthProperty<string | number> | undefined
              mixBlendMode?: csstype.MixBlendModeProperty | undefined
              motionDistance?:
                | csstype.OffsetDistanceProperty<string | number>
                | undefined
              motionPath?: string | undefined
              motionRotation?: string | undefined
              objectFit?: csstype.ObjectFitProperty | undefined
              objectPosition?:
                | csstype.ObjectPositionProperty<string | number>
                | undefined
              offsetAnchor?:
                | csstype.OffsetAnchorProperty<string | number>
                | undefined
              offsetDistance?:
                | csstype.OffsetDistanceProperty<string | number>
                | undefined
              offsetPath?: string | undefined
              offsetRotate?: string | undefined
              offsetRotation?: string | undefined
              opacity?: csstype.OpacityProperty | undefined
              order?: csstype.GlobalsNumber | undefined
              orphans?: csstype.GlobalsNumber | undefined
              outlineColor?: string | undefined
              outlineOffset?:
                | csstype.OutlineOffsetProperty<string | number>
                | undefined
              outlineStyle?: string | undefined
              outlineWidth?:
                | csstype.OutlineWidthProperty<string | number>
                | undefined
              overflowAnchor?: csstype.OverflowAnchorProperty | undefined
              overflowBlock?: csstype.OverflowBlockProperty | undefined
              overflowClipBox?: csstype.OverflowClipBoxProperty | undefined
              overflowClipMargin?:
                | csstype.OverflowClipMarginProperty<string | number>
                | undefined
              overflowInline?: csstype.OverflowInlineProperty | undefined
              overflowWrap?: csstype.OverflowWrapProperty | undefined
              overflowX?: csstype.OverflowXProperty | undefined
              overflowY?: csstype.OverflowYProperty | undefined
              overscrollBehaviorBlock?:
                | csstype.OverscrollBehaviorBlockProperty
                | undefined
              overscrollBehaviorInline?:
                | csstype.OverscrollBehaviorInlineProperty
                | undefined
              overscrollBehaviorX?:
                | csstype.OverscrollBehaviorXProperty
                | undefined
              overscrollBehaviorY?:
                | csstype.OverscrollBehaviorYProperty
                | undefined
              paddingBlock?:
                | csstype.PaddingBlockProperty<string | number>
                | undefined
              paddingBlockEnd?:
                | csstype.PaddingBlockEndProperty<string | number>
                | undefined
              paddingBlockStart?:
                | csstype.PaddingBlockStartProperty<string | number>
                | undefined
              paddingBottom?:
                | csstype.PaddingBottomProperty<string | number>
                | undefined
              paddingInline?:
                | csstype.PaddingInlineProperty<string | number>
                | undefined
              paddingInlineEnd?:
                | csstype.PaddingInlineEndProperty<string | number>
                | undefined
              paddingInlineStart?:
                | csstype.PaddingInlineStartProperty<string | number>
                | undefined
              paddingLeft?:
                | csstype.PaddingLeftProperty<string | number>
                | undefined
              paddingRight?:
                | csstype.PaddingRightProperty<string | number>
                | undefined
              paddingTop?:
                | csstype.PaddingTopProperty<string | number>
                | undefined
              pageBreakAfter?: csstype.PageBreakAfterProperty | undefined
              pageBreakBefore?: csstype.PageBreakBeforeProperty | undefined
              pageBreakInside?: csstype.PageBreakInsideProperty | undefined
              paintOrder?: string | undefined
              perspective?:
                | csstype.PerspectiveProperty<string | number>
                | undefined
              perspectiveOrigin?:
                | csstype.PerspectiveOriginProperty<string | number>
                | undefined
              placeContent?: string | undefined
              pointerEvents?: csstype.PointerEventsProperty | undefined
              position?: csstype.PositionProperty | undefined
              quotes?: string | undefined
              resize?: csstype.ResizeProperty | undefined
              right?: csstype.RightProperty<string | number> | undefined
              rotate?: string | undefined
              rowGap?: csstype.RowGapProperty<string | number> | undefined
              rubyAlign?: csstype.RubyAlignProperty | undefined
              rubyMerge?: csstype.RubyMergeProperty | undefined
              rubyPosition?: string | undefined
              scale?: csstype.ScaleProperty | undefined
              scrollBehavior?: csstype.ScrollBehaviorProperty | undefined
              scrollMargin?:
                | csstype.ScrollMarginProperty<string | number>
                | undefined
              scrollMarginBlock?:
                | csstype.ScrollMarginBlockProperty<string | number>
                | undefined
              scrollMarginBlockEnd?:
                | csstype.ScrollMarginBlockEndProperty<string | number>
                | undefined
              scrollMarginBlockStart?:
                | csstype.ScrollMarginBlockStartProperty<string | number>
                | undefined
              scrollMarginBottom?:
                | csstype.ScrollMarginBottomProperty<string | number>
                | undefined
              scrollMarginInline?:
                | csstype.ScrollMarginInlineProperty<string | number>
                | undefined
              scrollMarginInlineEnd?:
                | csstype.ScrollMarginInlineEndProperty<string | number>
                | undefined
              scrollMarginInlineStart?:
                | csstype.ScrollMarginInlineStartProperty<string | number>
                | undefined
              scrollMarginLeft?:
                | csstype.ScrollMarginLeftProperty<string | number>
                | undefined
              scrollMarginRight?:
                | csstype.ScrollMarginRightProperty<string | number>
                | undefined
              scrollMarginTop?:
                | csstype.ScrollMarginTopProperty<string | number>
                | undefined
              scrollPadding?:
                | csstype.ScrollPaddingProperty<string | number>
                | undefined
              scrollPaddingBlock?:
                | csstype.ScrollPaddingBlockProperty<string | number>
                | undefined
              scrollPaddingBlockEnd?:
                | csstype.ScrollPaddingBlockEndProperty<string | number>
                | undefined
              scrollPaddingBlockStart?:
                | csstype.ScrollPaddingBlockStartProperty<string | number>
                | undefined
              scrollPaddingBottom?:
                | csstype.ScrollPaddingBottomProperty<string | number>
                | undefined
              scrollPaddingInline?:
                | csstype.ScrollPaddingInlineProperty<string | number>
                | undefined
              scrollPaddingInlineEnd?:
                | csstype.ScrollPaddingInlineEndProperty<string | number>
                | undefined
              scrollPaddingInlineStart?:
                | csstype.ScrollPaddingInlineStartProperty<string | number>
                | undefined
              scrollPaddingLeft?:
                | csstype.ScrollPaddingLeftProperty<string | number>
                | undefined
              scrollPaddingRight?:
                | csstype.ScrollPaddingRightProperty<string | number>
                | undefined
              scrollPaddingTop?:
                | csstype.ScrollPaddingTopProperty<string | number>
                | undefined
              scrollSnapAlign?: string | undefined
              scrollSnapMargin?:
                | csstype.ScrollMarginProperty<string | number>
                | undefined
              scrollSnapMarginBottom?:
                | csstype.ScrollMarginBottomProperty<string | number>
                | undefined
              scrollSnapMarginLeft?:
                | csstype.ScrollMarginLeftProperty<string | number>
                | undefined
              scrollSnapMarginRight?:
                | csstype.ScrollMarginRightProperty<string | number>
                | undefined
              scrollSnapMarginTop?:
                | csstype.ScrollMarginTopProperty<string | number>
                | undefined
              scrollSnapStop?: csstype.ScrollSnapStopProperty | undefined
              scrollSnapType?: string | undefined
              scrollbarColor?: string | undefined
              scrollbarGutter?: string | undefined
              scrollbarWidth?: csstype.ScrollbarWidthProperty | undefined
              shapeImageThreshold?:
                | csstype.ShapeImageThresholdProperty
                | undefined
              shapeMargin?:
                | csstype.ShapeMarginProperty<string | number>
                | undefined
              shapeOutside?: string | undefined
              tabSize?: csstype.TabSizeProperty<string | number> | undefined
              tableLayout?: csstype.TableLayoutProperty | undefined
              textAlign?: csstype.TextAlignProperty | undefined
              textAlignLast?: csstype.TextAlignLastProperty | undefined
              textCombineUpright?: string | undefined
              textDecorationColor?: string | undefined
              textDecorationLine?: string | undefined
              textDecorationSkip?: string | undefined
              textDecorationSkipInk?:
                | csstype.TextDecorationSkipInkProperty
                | undefined
              textDecorationStyle?:
                | csstype.TextDecorationStyleProperty
                | undefined
              textDecorationThickness?:
                | csstype.TextDecorationThicknessProperty<string | number>
                | undefined
              textDecorationWidth?:
                | csstype.TextDecorationThicknessProperty<string | number>
                | undefined
              textEmphasisColor?: string | undefined
              textEmphasisPosition?: string | undefined
              textEmphasisStyle?: string | undefined
              textIndent?:
                | csstype.TextIndentProperty<string | number>
                | undefined
              textJustify?: csstype.TextJustifyProperty | undefined
              textOrientation?: csstype.TextOrientationProperty | undefined
              textOverflow?: string | undefined
              textRendering?: csstype.TextRenderingProperty | undefined
              textShadow?: string | undefined
              textSizeAdjust?: string | undefined
              textTransform?: csstype.TextTransformProperty | undefined
              textUnderlineOffset?:
                | csstype.TextUnderlineOffsetProperty<string | number>
                | undefined
              textUnderlinePosition?: string | undefined
              top?: csstype.TopProperty<string | number> | undefined
              touchAction?: string | undefined
              transform?: string | undefined
              transformBox?: csstype.TransformBoxProperty | undefined
              transformOrigin?:
                | csstype.TransformOriginProperty<string | number>
                | undefined
              transformStyle?: csstype.TransformStyleProperty | undefined
              transitionDelay?: string | undefined
              transitionDuration?: string | undefined
              transitionProperty?: string | undefined
              transitionTimingFunction?: string | undefined
              translate?: csstype.TranslateProperty<string | number> | undefined
              unicodeBidi?: csstype.UnicodeBidiProperty | undefined
              userSelect?: csstype.UserSelectProperty | undefined
              verticalAlign?:
                | csstype.VerticalAlignProperty<string | number>
                | undefined
              visibility?: csstype.VisibilityProperty | undefined
              whiteSpace?: csstype.WhiteSpaceProperty | undefined
              widows?: csstype.GlobalsNumber | undefined
              width?: csstype.WidthProperty<string | number> | undefined
              willChange?: string | undefined
              wordBreak?: csstype.WordBreakProperty | undefined
              wordSpacing?:
                | csstype.WordSpacingProperty<string | number>
                | undefined
              wordWrap?: csstype.WordWrapProperty | undefined
              writingMode?: csstype.WritingModeProperty | undefined
              zIndex?: csstype.ZIndexProperty | undefined
              zoom?: csstype.ZoomProperty | undefined
              all?: csstype.Globals | undefined
              animation?: csstype.AnimationProperty | undefined
              background?:
                | csstype.BackgroundProperty<string | number>
                | undefined
              backgroundPosition?:
                | csstype.BackgroundPositionProperty<string | number>
                | undefined
              border?: csstype.BorderProperty<string | number> | undefined
              borderBlock?:
                | csstype.BorderBlockProperty<string | number>
                | undefined
              borderBlockEnd?:
                | csstype.BorderBlockEndProperty<string | number>
                | undefined
              borderBlockStart?:
                | csstype.BorderBlockStartProperty<string | number>
                | undefined
              borderBottom?:
                | csstype.BorderBottomProperty<string | number>
                | undefined
              borderColor?: string | undefined
              borderImage?: csstype.BorderImageProperty | undefined
              borderInline?:
                | csstype.BorderInlineProperty<string | number>
                | undefined
              borderInlineEnd?:
                | csstype.BorderInlineEndProperty<string | number>
                | undefined
              borderInlineStart?:
                | csstype.BorderInlineStartProperty<string | number>
                | undefined
              borderLeft?:
                | csstype.BorderLeftProperty<string | number>
                | undefined
              borderRadius?:
                | csstype.BorderRadiusProperty<string | number>
                | undefined
              borderRight?:
                | csstype.BorderRightProperty<string | number>
                | undefined
              borderStyle?: string | undefined
              borderTop?: csstype.BorderTopProperty<string | number> | undefined
              borderWidth?:
                | csstype.BorderWidthProperty<string | number>
                | undefined
              columnRule?:
                | csstype.ColumnRuleProperty<string | number>
                | undefined
              columns?: csstype.ColumnsProperty<string | number> | undefined
              flex?: csstype.FlexProperty<string | number> | undefined
              flexFlow?: string | undefined
              font?: string | undefined
              gap?: csstype.GapProperty<string | number> | undefined
              grid?: string | undefined
              gridArea?: csstype.GridAreaProperty | undefined
              gridColumn?: csstype.GridColumnProperty | undefined
              gridRow?: csstype.GridRowProperty | undefined
              gridTemplate?: string | undefined
              lineClamp?: csstype.LineClampProperty | undefined
              listStyle?: string | undefined
              margin?: csstype.MarginProperty<string | number> | undefined
              mask?: csstype.MaskProperty<string | number> | undefined
              maskBorder?: csstype.MaskBorderProperty | undefined
              motion?: csstype.OffsetProperty<string | number> | undefined
              offset?: csstype.OffsetProperty<string | number> | undefined
              outline?: csstype.OutlineProperty<string | number> | undefined
              overflow?: string | undefined
              overscrollBehavior?: string | undefined
              padding?: csstype.PaddingProperty<string | number> | undefined
              placeItems?: string | undefined
              placeSelf?: string | undefined
              textDecoration?:
                | csstype.TextDecorationProperty<string | number>
                | undefined
              textEmphasis?: string | undefined
              transition?: string | undefined
              MozAnimationDelay?: string | undefined
              MozAnimationDirection?: string | undefined
              MozAnimationDuration?: string | undefined
              MozAnimationFillMode?: string | undefined
              MozAnimationIterationCount?:
                | csstype.AnimationIterationCountProperty
                | undefined
              MozAnimationName?: string | undefined
              MozAnimationPlayState?: string | undefined
              MozAnimationTimingFunction?: string | undefined
              MozAppearance?: csstype.MozAppearanceProperty | undefined
              MozBackfaceVisibility?:
                | csstype.BackfaceVisibilityProperty
                | undefined
              MozBorderBottomColors?: string | undefined
              MozBorderEndColor?: string | undefined
              MozBorderEndStyle?:
                | csstype.BorderInlineEndStyleProperty
                | undefined
              MozBorderEndWidth?:
                | csstype.BorderInlineEndWidthProperty<string | number>
                | undefined
              MozBorderLeftColors?: string | undefined
              MozBorderRightColors?: string | undefined
              MozBorderStartColor?: string | undefined
              MozBorderStartStyle?:
                | csstype.BorderInlineStartStyleProperty
                | undefined
              MozBorderTopColors?: string | undefined
              MozBoxSizing?: csstype.BoxSizingProperty | undefined
              MozColumnCount?: csstype.ColumnCountProperty | undefined
              MozColumnFill?: csstype.ColumnFillProperty | undefined
              MozColumnGap?:
                | csstype.ColumnGapProperty<string | number>
                | undefined
              MozColumnRuleColor?: string | undefined
              MozColumnRuleStyle?: string | undefined
              MozColumnRuleWidth?:
                | csstype.ColumnRuleWidthProperty<string | number>
                | undefined
              MozColumnWidth?:
                | csstype.ColumnWidthProperty<string | number>
                | undefined
              MozContextProperties?: string | undefined
              MozFontFeatureSettings?: string | undefined
              MozFontLanguageOverride?: string | undefined
              MozHyphens?: csstype.HyphensProperty | undefined
              MozImageRegion?: string | undefined
              MozMarginEnd?:
                | csstype.MarginInlineEndProperty<string | number>
                | undefined
              MozMarginStart?:
                | csstype.MarginInlineStartProperty<string | number>
                | undefined
              MozOrient?: csstype.MozOrientProperty | undefined
              MozOsxFontSmoothing?:
                | csstype.FontSmoothProperty<string | number>
                | undefined
              MozPaddingEnd?:
                | csstype.PaddingInlineEndProperty<string | number>
                | undefined
              MozPaddingStart?:
                | csstype.PaddingInlineStartProperty<string | number>
                | undefined
              MozPerspective?:
                | csstype.PerspectiveProperty<string | number>
                | undefined
              MozPerspectiveOrigin?:
                | csstype.PerspectiveOriginProperty<string | number>
                | undefined
              MozStackSizing?: csstype.MozStackSizingProperty | undefined
              MozTabSize?: csstype.TabSizeProperty<string | number> | undefined
              MozTextBlink?: csstype.MozTextBlinkProperty | undefined
              MozTextSizeAdjust?: string | undefined
              MozTransformOrigin?:
                | csstype.TransformOriginProperty<string | number>
                | undefined
              MozTransformStyle?: csstype.TransformStyleProperty | undefined
              MozTransitionDelay?: string | undefined
              MozTransitionDuration?: string | undefined
              MozTransitionProperty?: string | undefined
              MozTransitionTimingFunction?: string | undefined
              MozUserFocus?: csstype.MozUserFocusProperty | undefined
              MozUserModify?: csstype.MozUserModifyProperty | undefined
              MozUserSelect?: csstype.UserSelectProperty | undefined
              MozWindowDragging?: csstype.MozWindowDraggingProperty | undefined
              MozWindowShadow?: csstype.MozWindowShadowProperty | undefined
              msAccelerator?: csstype.MsAcceleratorProperty | undefined
              msAlignSelf?: string | undefined
              msBlockProgression?:
                | csstype.MsBlockProgressionProperty
                | undefined
              msContentZoomChaining?:
                | csstype.MsContentZoomChainingProperty
                | undefined
              msContentZoomLimitMax?: string | undefined
              msContentZoomLimitMin?: string | undefined
              msContentZoomSnapPoints?: string | undefined
              msContentZoomSnapType?:
                | csstype.MsContentZoomSnapTypeProperty
                | undefined
              msContentZooming?: csstype.MsContentZoomingProperty | undefined
              msFilter?: string | undefined
              msFlexDirection?: csstype.FlexDirectionProperty | undefined
              msFlexPositive?: csstype.GlobalsNumber | undefined
              msFlowFrom?: string | undefined
              msFlowInto?: string | undefined
              msGridColumns?:
                | csstype.MsGridColumnsProperty<string | number>
                | undefined
              msGridRows?:
                | csstype.MsGridRowsProperty<string | number>
                | undefined
              msHighContrastAdjust?:
                | csstype.MsHighContrastAdjustProperty
                | undefined
              msHyphenateLimitChars?:
                | csstype.MsHyphenateLimitCharsProperty
                | undefined
              msHyphenateLimitLines?:
                | csstype.MsHyphenateLimitLinesProperty
                | undefined
              msHyphenateLimitZone?:
                | csstype.MsHyphenateLimitZoneProperty<string | number>
                | undefined
              msHyphens?: csstype.HyphensProperty | undefined
              msImeAlign?: csstype.MsImeAlignProperty | undefined
              msJustifySelf?: string | undefined
              msLineBreak?: csstype.LineBreakProperty | undefined
              msOrder?: csstype.GlobalsNumber | undefined
              msOverflowStyle?: csstype.MsOverflowStyleProperty | undefined
              msOverflowX?: csstype.OverflowXProperty | undefined
              msOverflowY?: csstype.OverflowYProperty | undefined
              msScrollChaining?: csstype.MsScrollChainingProperty | undefined
              msScrollLimitXMax?:
                | csstype.MsScrollLimitXMaxProperty<string | number>
                | undefined
              msScrollLimitXMin?:
                | csstype.MsScrollLimitXMinProperty<string | number>
                | undefined
              msScrollLimitYMax?:
                | csstype.MsScrollLimitYMaxProperty<string | number>
                | undefined
              msScrollLimitYMin?:
                | csstype.MsScrollLimitYMinProperty<string | number>
                | undefined
              msScrollRails?: csstype.MsScrollRailsProperty | undefined
              msScrollSnapPointsX?: string | undefined
              msScrollSnapPointsY?: string | undefined
              msScrollSnapType?: csstype.MsScrollSnapTypeProperty | undefined
              msScrollTranslation?:
                | csstype.MsScrollTranslationProperty
                | undefined
              msScrollbar3dlightColor?: string | undefined
              msScrollbarArrowColor?: string | undefined
              msScrollbarBaseColor?: string | undefined
              msScrollbarDarkshadowColor?: string | undefined
              msScrollbarFaceColor?: string | undefined
              msScrollbarHighlightColor?: string | undefined
              msScrollbarShadowColor?: string | undefined
              msTextAutospace?: csstype.MsTextAutospaceProperty | undefined
              msTextCombineHorizontal?: string | undefined
              msTextOverflow?: string | undefined
              msTouchAction?: string | undefined
              msTouchSelect?: csstype.MsTouchSelectProperty | undefined
              msTransform?: string | undefined
              msTransformOrigin?:
                | csstype.TransformOriginProperty<string | number>
                | undefined
              msTransitionDelay?: string | undefined
              msTransitionDuration?: string | undefined
              msTransitionProperty?: string | undefined
              msTransitionTimingFunction?: string | undefined
              msUserSelect?: csstype.MsUserSelectProperty | undefined
              msWordBreak?: csstype.WordBreakProperty | undefined
              msWrapFlow?: csstype.MsWrapFlowProperty | undefined
              msWrapMargin?:
                | csstype.MsWrapMarginProperty<string | number>
                | undefined
              msWrapThrough?: csstype.MsWrapThroughProperty | undefined
              msWritingMode?: csstype.WritingModeProperty | undefined
              WebkitAlignContent?: string | undefined
              WebkitAlignItems?: string | undefined
              WebkitAlignSelf?: string | undefined
              WebkitAnimationDelay?: string | undefined
              WebkitAnimationDirection?: string | undefined
              WebkitAnimationDuration?: string | undefined
              WebkitAnimationFillMode?: string | undefined
              WebkitAnimationIterationCount?:
                | csstype.AnimationIterationCountProperty
                | undefined
              WebkitAnimationName?: string | undefined
              WebkitAnimationPlayState?: string | undefined
              WebkitAnimationTimingFunction?: string | undefined
              WebkitAppearance?: csstype.WebkitAppearanceProperty | undefined
              WebkitBackdropFilter?: string | undefined
              WebkitBackfaceVisibility?:
                | csstype.BackfaceVisibilityProperty
                | undefined
              WebkitBackgroundClip?: string | undefined
              WebkitBackgroundOrigin?: string | undefined
              WebkitBackgroundSize?:
                | csstype.BackgroundSizeProperty<string | number>
                | undefined
              WebkitBorderBeforeColor?: string | undefined
              WebkitBorderBeforeStyle?: string | undefined
              WebkitBorderBeforeWidth?:
                | csstype.WebkitBorderBeforeWidthProperty<string | number>
                | undefined
              WebkitBorderBottomLeftRadius?:
                | csstype.BorderBottomLeftRadiusProperty<string | number>
                | undefined
              WebkitBorderBottomRightRadius?:
                | csstype.BorderBottomRightRadiusProperty<string | number>
                | undefined
              WebkitBorderImageSlice?:
                | csstype.BorderImageSliceProperty
                | undefined
              WebkitBorderTopLeftRadius?:
                | csstype.BorderTopLeftRadiusProperty<string | number>
                | undefined
              WebkitBorderTopRightRadius?:
                | csstype.BorderTopRightRadiusProperty<string | number>
                | undefined
              WebkitBoxDecorationBreak?:
                | csstype.BoxDecorationBreakProperty
                | undefined
              WebkitBoxReflect?:
                | csstype.WebkitBoxReflectProperty<string | number>
                | undefined
              WebkitBoxShadow?: string | undefined
              WebkitBoxSizing?: csstype.BoxSizingProperty | undefined
              WebkitClipPath?: string | undefined
              WebkitColumnCount?: csstype.ColumnCountProperty | undefined
              WebkitColumnFill?: csstype.ColumnFillProperty | undefined
              WebkitColumnGap?:
                | csstype.ColumnGapProperty<string | number>
                | undefined
              WebkitColumnRuleColor?: string | undefined
              WebkitColumnRuleStyle?: string | undefined
              WebkitColumnRuleWidth?:
                | csstype.ColumnRuleWidthProperty<string | number>
                | undefined
              WebkitColumnSpan?: csstype.ColumnSpanProperty | undefined
              WebkitColumnWidth?:
                | csstype.ColumnWidthProperty<string | number>
                | undefined
              WebkitFilter?: string | undefined
              WebkitFlexBasis?:
                | csstype.FlexBasisProperty<string | number>
                | undefined
              WebkitFlexDirection?: csstype.FlexDirectionProperty | undefined
              WebkitFlexGrow?: csstype.GlobalsNumber | undefined
              WebkitFlexShrink?: csstype.GlobalsNumber | undefined
              WebkitFlexWrap?: csstype.FlexWrapProperty | undefined
              WebkitFontFeatureSettings?: string | undefined
              WebkitFontKerning?: csstype.FontKerningProperty | undefined
              WebkitFontSmoothing?:
                | csstype.FontSmoothProperty<string | number>
                | undefined
              WebkitFontVariantLigatures?: string | undefined
              WebkitHyphens?: csstype.HyphensProperty | undefined
              WebkitJustifyContent?: string | undefined
              WebkitLineBreak?: csstype.LineBreakProperty | undefined
              WebkitLineClamp?: csstype.WebkitLineClampProperty | undefined
              WebkitMarginEnd?:
                | csstype.MarginInlineEndProperty<string | number>
                | undefined
              WebkitMarginStart?:
                | csstype.MarginInlineStartProperty<string | number>
                | undefined
              WebkitMaskAttachment?: string | undefined
              WebkitMaskBoxImageOutset?:
                | csstype.MaskBorderOutsetProperty<string | number>
                | undefined
              WebkitMaskBoxImageRepeat?: string | undefined
              WebkitMaskBoxImageSlice?:
                | csstype.MaskBorderSliceProperty
                | undefined
              WebkitMaskBoxImageSource?: string | undefined
              WebkitMaskBoxImageWidth?:
                | csstype.MaskBorderWidthProperty<string | number>
                | undefined
              WebkitMaskClip?: string | undefined
              WebkitMaskComposite?: string | undefined
              WebkitMaskImage?: string | undefined
              WebkitMaskOrigin?: string | undefined
              WebkitMaskPosition?:
                | csstype.WebkitMaskPositionProperty<string | number>
                | undefined
              WebkitMaskPositionX?:
                | csstype.WebkitMaskPositionXProperty<string | number>
                | undefined
              WebkitMaskPositionY?:
                | csstype.WebkitMaskPositionYProperty<string | number>
                | undefined
              WebkitMaskRepeat?: string | undefined
              WebkitMaskRepeatX?: csstype.WebkitMaskRepeatXProperty | undefined
              WebkitMaskRepeatY?: csstype.WebkitMaskRepeatYProperty | undefined
              WebkitMaskSize?:
                | csstype.WebkitMaskSizeProperty<string | number>
                | undefined
              WebkitMaxInlineSize?:
                | csstype.MaxInlineSizeProperty<string | number>
                | undefined
              WebkitOrder?: csstype.GlobalsNumber | undefined
              WebkitOverflowScrolling?:
                | csstype.WebkitOverflowScrollingProperty
                | undefined
              WebkitPaddingEnd?:
                | csstype.PaddingInlineEndProperty<string | number>
                | undefined
              WebkitPaddingStart?:
                | csstype.PaddingInlineStartProperty<string | number>
                | undefined
              WebkitPerspective?:
                | csstype.PerspectiveProperty<string | number>
                | undefined
              WebkitPerspectiveOrigin?:
                | csstype.PerspectiveOriginProperty<string | number>
                | undefined
              WebkitPrintColorAdjust?: csstype.ColorAdjustProperty | undefined
              WebkitRubyPosition?: string | undefined
              WebkitScrollSnapType?: string | undefined
              WebkitShapeMargin?:
                | csstype.ShapeMarginProperty<string | number>
                | undefined
              WebkitTapHighlightColor?: string | undefined
              WebkitTextCombine?: string | undefined
              WebkitTextDecorationColor?: string | undefined
              WebkitTextDecorationLine?: string | undefined
              WebkitTextDecorationSkip?: string | undefined
              WebkitTextDecorationStyle?:
                | csstype.TextDecorationStyleProperty
                | undefined
              WebkitTextEmphasisColor?: string | undefined
              WebkitTextEmphasisPosition?: string | undefined
              WebkitTextEmphasisStyle?: string | undefined
              WebkitTextFillColor?: string | undefined
              WebkitTextOrientation?:
                | csstype.TextOrientationProperty
                | undefined
              WebkitTextSizeAdjust?: string | undefined
              WebkitTextStrokeColor?: string | undefined
              WebkitTextStrokeWidth?:
                | csstype.WebkitTextStrokeWidthProperty<string | number>
                | undefined
              WebkitTextUnderlinePosition?: string | undefined
              WebkitTouchCallout?:
                | csstype.WebkitTouchCalloutProperty
                | undefined
              WebkitTransform?: string | undefined
              WebkitTransformOrigin?:
                | csstype.TransformOriginProperty<string | number>
                | undefined
              WebkitTransformStyle?: csstype.TransformStyleProperty | undefined
              WebkitTransitionDelay?: string | undefined
              WebkitTransitionDuration?: string | undefined
              WebkitTransitionProperty?: string | undefined
              WebkitTransitionTimingFunction?: string | undefined
              WebkitUserModify?: csstype.WebkitUserModifyProperty | undefined
              WebkitUserSelect?: csstype.UserSelectProperty | undefined
              WebkitWritingMode?: csstype.WritingModeProperty | undefined
              MozAnimation?: csstype.AnimationProperty | undefined
              MozBorderImage?: csstype.BorderImageProperty | undefined
              MozColumnRule?:
                | csstype.ColumnRuleProperty<string | number>
                | undefined
              MozColumns?: csstype.ColumnsProperty<string | number> | undefined
              MozTransition?: string | undefined
              msContentZoomLimit?: string | undefined
              msContentZoomSnap?: string | undefined
              msFlex?: csstype.FlexProperty<string | number> | undefined
              msScrollLimit?: string | undefined
              msScrollSnapX?: string | undefined
              msScrollSnapY?: string | undefined
              msTransition?: string | undefined
              WebkitAnimation?: csstype.AnimationProperty | undefined
              WebkitBorderBefore?:
                | csstype.WebkitBorderBeforeProperty<string | number>
                | undefined
              WebkitBorderImage?: csstype.BorderImageProperty | undefined
              WebkitBorderRadius?:
                | csstype.BorderRadiusProperty<string | number>
                | undefined
              WebkitColumnRule?:
                | csstype.ColumnRuleProperty<string | number>
                | undefined
              WebkitColumns?:
                | csstype.ColumnsProperty<string | number>
                | undefined
              WebkitFlex?: csstype.FlexProperty<string | number> | undefined
              WebkitFlexFlow?: string | undefined
              WebkitMask?:
                | csstype.WebkitMaskProperty<string | number>
                | undefined
              WebkitMaskBoxImage?: csstype.MaskBorderProperty | undefined
              WebkitTextEmphasis?: string | undefined
              WebkitTextStroke?:
                | csstype.WebkitTextStrokeProperty<string | number>
                | undefined
              WebkitTransition?: string | undefined
              azimuth?: string | undefined
              boxAlign?: csstype.BoxAlignProperty | undefined
              boxDirection?: csstype.BoxDirectionProperty | undefined
              boxFlex?: csstype.GlobalsNumber | undefined
              boxFlexGroup?: csstype.GlobalsNumber | undefined
              boxLines?: csstype.BoxLinesProperty | undefined
              boxOrdinalGroup?: csstype.GlobalsNumber | undefined
              boxOrient?: csstype.BoxOrientProperty | undefined
              boxPack?: csstype.BoxPackProperty | undefined
              clip?: string | undefined
              fontVariantAlternates?: string | undefined
              gridColumnGap?:
                | csstype.GridColumnGapProperty<string | number>
                | undefined
              gridGap?: csstype.GridGapProperty<string | number> | undefined
              gridRowGap?:
                | csstype.GridRowGapProperty<string | number>
                | undefined
              imeMode?: csstype.ImeModeProperty | undefined
              offsetBlock?:
                | csstype.InsetBlockProperty<string | number>
                | undefined
              offsetBlockEnd?:
                | csstype.InsetBlockEndProperty<string | number>
                | undefined
              offsetBlockStart?:
                | csstype.InsetBlockStartProperty<string | number>
                | undefined
              offsetInline?:
                | csstype.InsetInlineProperty<string | number>
                | undefined
              offsetInlineEnd?:
                | csstype.InsetInlineEndProperty<string | number>
                | undefined
              offsetInlineStart?:
                | csstype.InsetInlineStartProperty<string | number>
                | undefined
              scrollSnapCoordinate?:
                | csstype.ScrollSnapCoordinateProperty<string | number>
                | undefined
              scrollSnapDestination?:
                | csstype.ScrollSnapDestinationProperty<string | number>
                | undefined
              scrollSnapPointsX?: string | undefined
              scrollSnapPointsY?: string | undefined
              scrollSnapTypeX?: csstype.ScrollSnapTypeXProperty | undefined
              scrollSnapTypeY?: csstype.ScrollSnapTypeYProperty | undefined
              scrollbarTrackColor?: string | undefined
              KhtmlBoxAlign?: csstype.BoxAlignProperty | undefined
              KhtmlBoxDirection?: csstype.BoxDirectionProperty | undefined
              KhtmlBoxFlex?: csstype.GlobalsNumber | undefined
              KhtmlBoxFlexGroup?: csstype.GlobalsNumber | undefined
              KhtmlBoxLines?: csstype.BoxLinesProperty | undefined
              KhtmlBoxOrdinalGroup?: csstype.GlobalsNumber | undefined
              KhtmlBoxOrient?: csstype.BoxOrientProperty | undefined
              KhtmlBoxPack?: csstype.BoxPackProperty | undefined
              KhtmlLineBreak?: csstype.LineBreakProperty | undefined
              KhtmlOpacity?: csstype.OpacityProperty | undefined
              KhtmlUserSelect?: csstype.UserSelectProperty | undefined
              MozBackgroundClip?: string | undefined
              MozBackgroundInlinePolicy?:
                | csstype.BoxDecorationBreakProperty
                | undefined
              MozBackgroundOrigin?: string | undefined
              MozBackgroundSize?:
                | csstype.BackgroundSizeProperty<string | number>
                | undefined
              MozBinding?: string | undefined
              MozBorderRadius?:
                | csstype.BorderRadiusProperty<string | number>
                | undefined
              MozBorderRadiusBottomleft?:
                | csstype.BorderBottomLeftRadiusProperty<string | number>
                | undefined
              MozBorderRadiusBottomright?:
                | csstype.BorderBottomRightRadiusProperty<string | number>
                | undefined
              MozBorderRadiusTopleft?:
                | csstype.BorderTopLeftRadiusProperty<string | number>
                | undefined
              MozBorderRadiusTopright?:
                | csstype.BorderTopRightRadiusProperty<string | number>
                | undefined
              MozBoxAlign?: csstype.BoxAlignProperty | undefined
              MozBoxDirection?: csstype.BoxDirectionProperty | undefined
              MozBoxFlex?: csstype.GlobalsNumber | undefined
              MozBoxOrdinalGroup?: csstype.GlobalsNumber | undefined
              MozBoxOrient?: csstype.BoxOrientProperty | undefined
              MozBoxPack?: csstype.BoxPackProperty | undefined
              MozBoxShadow?: string | undefined
              MozFloatEdge?: csstype.MozFloatEdgeProperty | undefined
              MozForceBrokenImageIcon?: csstype.GlobalsNumber | undefined
              MozOpacity?: csstype.OpacityProperty | undefined
              MozOutline?: csstype.OutlineProperty<string | number> | undefined
              MozOutlineColor?: string | undefined
              MozOutlineRadius?:
                | csstype.MozOutlineRadiusProperty<string | number>
                | undefined
              MozOutlineRadiusBottomleft?:
                | csstype.MozOutlineRadiusBottomleftProperty<string | number>
                | undefined
              MozOutlineRadiusBottomright?:
                | csstype.MozOutlineRadiusBottomrightProperty<string | number>
                | undefined
              MozOutlineRadiusTopleft?:
                | csstype.MozOutlineRadiusTopleftProperty<string | number>
                | undefined
              MozOutlineRadiusTopright?:
                | csstype.MozOutlineRadiusToprightProperty<string | number>
                | undefined
              MozOutlineStyle?: string | undefined
              MozOutlineWidth?:
                | csstype.OutlineWidthProperty<string | number>
                | undefined
              MozTextAlignLast?: csstype.TextAlignLastProperty | undefined
              MozTextDecorationColor?: string | undefined
              MozTextDecorationLine?: string | undefined
              MozTextDecorationStyle?:
                | csstype.TextDecorationStyleProperty
                | undefined
              MozUserInput?: csstype.MozUserInputProperty | undefined
              msImeMode?: csstype.ImeModeProperty | undefined
              msScrollbarTrackColor?: string | undefined
              OAnimation?: csstype.AnimationProperty | undefined
              OAnimationDelay?: string | undefined
              OAnimationDirection?: string | undefined
              OAnimationDuration?: string | undefined
              OAnimationFillMode?: string | undefined
              OAnimationIterationCount?:
                | csstype.AnimationIterationCountProperty
                | undefined
              OAnimationName?: string | undefined
              OAnimationPlayState?: string | undefined
              OAnimationTimingFunction?: string | undefined
              OBackgroundSize?:
                | csstype.BackgroundSizeProperty<string | number>
                | undefined
              OBorderImage?: csstype.BorderImageProperty | undefined
              OObjectFit?: csstype.ObjectFitProperty | undefined
              OObjectPosition?:
                | csstype.ObjectPositionProperty<string | number>
                | undefined
              OTabSize?: csstype.TabSizeProperty<string | number> | undefined
              OTextOverflow?: string | undefined
              OTransform?: string | undefined
              OTransformOrigin?:
                | csstype.TransformOriginProperty<string | number>
                | undefined
              OTransition?: string | undefined
              OTransitionDelay?: string | undefined
              OTransitionDuration?: string | undefined
              OTransitionProperty?: string | undefined
              OTransitionTimingFunction?: string | undefined
              WebkitBoxAlign?: csstype.BoxAlignProperty | undefined
              WebkitBoxDirection?: csstype.BoxDirectionProperty | undefined
              WebkitBoxFlex?: csstype.GlobalsNumber | undefined
              WebkitBoxFlexGroup?: csstype.GlobalsNumber | undefined
              WebkitBoxLines?: csstype.BoxLinesProperty | undefined
              WebkitBoxOrdinalGroup?: csstype.GlobalsNumber | undefined
              WebkitBoxOrient?: csstype.BoxOrientProperty | undefined
              WebkitBoxPack?: csstype.BoxPackProperty | undefined
              WebkitScrollSnapPointsX?: string | undefined
              WebkitScrollSnapPointsY?: string | undefined
              alignmentBaseline?: csstype.AlignmentBaselineProperty | undefined
              baselineShift?:
                | csstype.BaselineShiftProperty<string | number>
                | undefined
              clipRule?: csstype.ClipRuleProperty | undefined
              colorInterpolation?:
                | csstype.ColorInterpolationProperty
                | undefined
              colorRendering?: csstype.ColorRenderingProperty | undefined
              dominantBaseline?: csstype.DominantBaselineProperty | undefined
              fill?: string | undefined
              fillOpacity?: csstype.GlobalsNumber | undefined
              fillRule?: csstype.FillRuleProperty | undefined
              floodColor?: string | undefined
              floodOpacity?: csstype.GlobalsNumber | undefined
              glyphOrientationVertical?:
                | csstype.GlyphOrientationVerticalProperty
                | undefined
              lightingColor?: string | undefined
              marker?: string | undefined
              markerEnd?: string | undefined
              markerMid?: string | undefined
              markerStart?: string | undefined
              shapeRendering?: csstype.ShapeRenderingProperty | undefined
              stopColor?: string | undefined
              stopOpacity?: csstype.GlobalsNumber | undefined
              stroke?: string | undefined
              strokeDasharray?:
                | csstype.StrokeDasharrayProperty<string | number>
                | undefined
              strokeDashoffset?:
                | csstype.StrokeDashoffsetProperty<string | number>
                | undefined
              strokeLinecap?: csstype.StrokeLinecapProperty | undefined
              strokeLinejoin?: csstype.StrokeLinejoinProperty | undefined
              strokeMiterlimit?: csstype.GlobalsNumber | undefined
              strokeOpacity?: csstype.GlobalsNumber | undefined
              strokeWidth?:
                | csstype.StrokeWidthProperty<string | number>
                | undefined
              textAnchor?: csstype.TextAnchorProperty | undefined
              vectorEffect?: csstype.VectorEffectProperty | undefined
            }
          | undefined
        color?: string | undefined
        height?: (string | number) | undefined
        id?: string | undefined
        lang?: string | undefined
        max?: (string | number) | undefined
        media?: string | undefined
        method?: string | undefined
        min?: (string | number) | undefined
        name?: string | undefined
        target?: string | undefined
        type?: string | undefined
        width?: (string | number) | undefined
        role?: string | undefined
        tabindex?: (string | number) | undefined
        'accent-height'?: (string | number) | undefined
        accumulate?: 'none' | 'sum' | undefined
        additive?: 'replace' | 'sum' | undefined
        'alignment-baseline'?:
          | 'alphabetic'
          | 'hanging'
          | 'ideographic'
          | 'mathematical'
          | 'inherit'
          | 'baseline'
          | 'auto'
          | 'middle'
          | 'after-edge'
          | 'before-edge'
          | 'central'
          | 'text-after-edge'
          | 'text-before-edge'
          | undefined
        allowReorder?: 'no' | 'yes' | undefined
        alphabetic?: (string | number) | undefined
        amplitude?: (string | number) | undefined
        'arabic-form'?:
          | 'initial'
          | 'medial'
          | 'terminal'
          | 'isolated'
          | undefined
        ascent?: (string | number) | undefined
        attributeName?: string | undefined
        attributeType?: string | undefined
        autoReverse?: (string | number) | undefined
        azimuth?: (string | number) | undefined
        baseFrequency?: (string | number) | undefined
        'baseline-shift'?: (string | number) | undefined
        baseProfile?: (string | number) | undefined
        bbox?: (string | number) | undefined
        begin?: (string | number) | undefined
        bias?: (string | number) | undefined
        by?: (string | number) | undefined
        calcMode?: (string | number) | undefined
        'cap-height'?: (string | number) | undefined
        clip?: (string | number) | undefined
        'clip-path'?: string | undefined
        clipPathUnits?: (string | number) | undefined
        'clip-rule'?: (string | number) | undefined
        'color-interpolation'?: (string | number) | undefined
        'color-interpolation-filters'?:
          | 'inherit'
          | 'auto'
          | 'linearRGB'
          | 'sRGB'
          | undefined
        'color-profile'?: (string | number) | undefined
        'color-rendering'?: (string | number) | undefined
        contentScriptType?: (string | number) | undefined
        contentStyleType?: (string | number) | undefined
        cursor?: (string | number) | undefined
        cx?: (string | number) | undefined
        cy?: (string | number) | undefined
        d?: string | undefined
        decelerate?: (string | number) | undefined
        descent?: (string | number) | undefined
        diffuseConstant?: (string | number) | undefined
        direction?: (string | number) | undefined
        display?: (string | number) | undefined
        divisor?: (string | number) | undefined
        'dominant-baseline'?: (string | number) | undefined
        dur?: (string | number) | undefined
        dx?: (string | number) | undefined
        dy?: (string | number) | undefined
        edgeMode?: (string | number) | undefined
        elevation?: (string | number) | undefined
        'enable-background'?: (string | number) | undefined
        end?: (string | number) | undefined
        exponent?: (string | number) | undefined
        externalResourcesRequired?: (string | number) | undefined
        fill?: string | undefined
        'fill-opacity'?: (string | number) | undefined
        'fill-rule'?: 'inherit' | 'evenodd' | 'nonzero' | undefined
        filter?: string | undefined
        filterRes?: (string | number) | undefined
        filterUnits?: (string | number) | undefined
        'flood-color'?: (string | number) | undefined
        'flood-opacity'?: (string | number) | undefined
        focusable?: (string | number) | undefined
        'font-family'?: string | undefined
        'font-size'?: (string | number) | undefined
        'font-size-adjust'?: (string | number) | undefined
        'font-stretch'?: (string | number) | undefined
        'font-style'?: (string | number) | undefined
        'font-variant'?: (string | number) | undefined
        'font-weight'?: (string | number) | undefined
        format?: (string | number) | undefined
        from?: (string | number) | undefined
        fx?: (string | number) | undefined
        fy?: (string | number) | undefined
        g1?: (string | number) | undefined
        g2?: (string | number) | undefined
        'glyph-name'?: (string | number) | undefined
        'glyph-orientation-horizontal'?: (string | number) | undefined
        'glyph-orientation-vertical'?: (string | number) | undefined
        glyphRef?: (string | number) | undefined
        gradientTransform?: string | undefined
        gradientUnits?: string | undefined
        hanging?: (string | number) | undefined
        'horiz-adv-x'?: (string | number) | undefined
        'horiz-origin-x'?: (string | number) | undefined
        href?: string | undefined
        ideographic?: (string | number) | undefined
        'image-rendering'?: (string | number) | undefined
        in2?: (string | number) | undefined
        in?: string | undefined
        intercept?: (string | number) | undefined
        k1?: (string | number) | undefined
        k2?: (string | number) | undefined
        k3?: (string | number) | undefined
        k4?: (string | number) | undefined
        k?: (string | number) | undefined
        kernelMatrix?: (string | number) | undefined
        kernelUnitLength?: (string | number) | undefined
        kerning?: (string | number) | undefined
        keyPoints?: (string | number) | undefined
        keySplines?: (string | number) | undefined
        keyTimes?: (string | number) | undefined
        lengthAdjust?: (string | number) | undefined
        'letter-spacing'?: (string | number) | undefined
        'lighting-color'?: (string | number) | undefined
        limitingConeAngle?: (string | number) | undefined
        local?: (string | number) | undefined
        'marker-end'?: string | undefined
        markerHeight?: (string | number) | undefined
        'marker-mid'?: string | undefined
        'marker-start'?: string | undefined
        markerUnits?: (string | number) | undefined
        markerWidth?: (string | number) | undefined
        mask?: string | undefined
        maskContentUnits?: (string | number) | undefined
        maskUnits?: (string | number) | undefined
        mathematical?: (string | number) | undefined
        mode?: (string | number) | undefined
        numOctaves?: (string | number) | undefined
        offset?: (string | number) | undefined
        opacity?: (string | number) | undefined
        operator?: (string | number) | undefined
        order?: (string | number) | undefined
        orient?: (string | number) | undefined
        orientation?: (string | number) | undefined
        origin?: (string | number) | undefined
        overflow?: (string | number) | undefined
        'overline-position'?: (string | number) | undefined
        'overline-thickness'?: (string | number) | undefined
        'paint-order'?: (string | number) | undefined
        'panose-1'?: (string | number) | undefined
        pathLength?: (string | number) | undefined
        patternContentUnits?: string | undefined
        patternTransform?: (string | number) | undefined
        patternUnits?: string | undefined
        'pointer-events'?: (string | number) | undefined
        points?: string | undefined
        pointsAtX?: (string | number) | undefined
        pointsAtY?: (string | number) | undefined
        pointsAtZ?: (string | number) | undefined
        preserveAlpha?: (string | number) | undefined
        preserveAspectRatio?: string | undefined
        primitiveUnits?: (string | number) | undefined
        r?: (string | number) | undefined
        radius?: (string | number) | undefined
        refX?: (string | number) | undefined
        refY?: (string | number) | undefined
        renderingIntent?: (string | number) | undefined
        repeatCount?: (string | number) | undefined
        repeatDur?: (string | number) | undefined
        requiredExtensions?: (string | number) | undefined
        requiredFeatures?: (string | number) | undefined
        restart?: (string | number) | undefined
        result?: string | undefined
        rotate?: (string | number) | undefined
        rx?: (string | number) | undefined
        ry?: (string | number) | undefined
        scale?: (string | number) | undefined
        seed?: (string | number) | undefined
        'shape-rendering'?: (string | number) | undefined
        slope?: (string | number) | undefined
        spacing?: (string | number) | undefined
        specularConstant?: (string | number) | undefined
        specularExponent?: (string | number) | undefined
        speed?: (string | number) | undefined
        spreadMethod?: string | undefined
        startOffset?: (string | number) | undefined
        stdDeviation?: (string | number) | undefined
        stemh?: (string | number) | undefined
        stemv?: (string | number) | undefined
        stitchTiles?: (string | number) | undefined
        'stop-color'?: string | undefined
        'stop-opacity'?: (string | number) | undefined
        'strikethrough-position'?: (string | number) | undefined
        'strikethrough-thickness'?: (string | number) | undefined
        string?: (string | number) | undefined
        stroke?: string | undefined
        'stroke-dasharray'?: (string | number) | undefined
        'stroke-dashoffset'?: (string | number) | undefined
        'stroke-linecap'?: 'inherit' | 'round' | 'butt' | 'square' | undefined
        'stroke-linejoin'?: 'inherit' | 'round' | 'bevel' | 'miter' | undefined
        'stroke-miterlimit'?: (string | number) | undefined
        'stroke-opacity'?: (string | number) | undefined
        'stroke-width'?: (string | number) | undefined
        surfaceScale?: (string | number) | undefined
        systemLanguage?: (string | number) | undefined
        tableValues?: (string | number) | undefined
        targetX?: (string | number) | undefined
        targetY?: (string | number) | undefined
        'text-anchor'?: string | undefined
        'text-decoration'?: (string | number) | undefined
        textLength?: (string | number) | undefined
        'text-rendering'?: (string | number) | undefined
        to?: (string | number) | undefined
        transform?: string | undefined
        u1?: (string | number) | undefined
        u2?: (string | number) | undefined
        'underline-position'?: (string | number) | undefined
        'underline-thickness'?: (string | number) | undefined
        unicode?: (string | number) | undefined
        'unicode-bidi'?: (string | number) | undefined
        'unicode-range'?: (string | number) | undefined
        'unitsPer-em'?: (string | number) | undefined
        'v-alphabetic'?: (string | number) | undefined
        values?: string | undefined
        'vector-effect'?: (string | number) | undefined
        version?: string | undefined
        'vert-adv-y'?: (string | number) | undefined
        'vert-origin-x'?: (string | number) | undefined
        'vert-origin-y'?: (string | number) | undefined
        'v-hanging'?: (string | number) | undefined
        'v-ideographic'?: (string | number) | undefined
        viewBox?: string | undefined
        viewTarget?: (string | number) | undefined
        visibility?: (string | number) | undefined
        'v-mathematical'?: (string | number) | undefined
        widths?: (string | number) | undefined
        'word-spacing'?: (string | number) | undefined
        'writing-mode'?: (string | number) | undefined
        x1?: (string | number) | undefined
        x2?: (string | number) | undefined
        x?: (string | number) | undefined
        xChannelSelector?: string | undefined
        'x-height'?: (string | number) | undefined
        xlinkActuate?: string | undefined
        xlinkArcrole?: string | undefined
        xlinkHref?: string | undefined
        xlinkRole?: string | undefined
        xlinkShow?: string | undefined
        xlinkTitle?: string | undefined
        xlinkType?: string | undefined
        xmlns?: string | undefined
        y1?: (string | number) | undefined
        y2?: (string | number) | undefined
        y?: (string | number) | undefined
        yChannelSelector?: string | undefined
        z?: (string | number) | undefined
        zoomAndPan?: string | undefined
        'aria-activedescendant'?: string | undefined
        'aria-atomic'?: (boolean | 'false' | 'true') | undefined
        'aria-autocomplete'?: 'both' | 'none' | 'inline' | 'list' | undefined
        'aria-busy'?: (boolean | 'false' | 'true') | undefined
        'aria-checked'?: 'mixed' | (boolean | 'false' | 'true') | undefined
        'aria-colcount'?: (string | number) | undefined
        'aria-colindex'?: (string | number) | undefined
        'aria-colspan'?: (string | number) | undefined
        'aria-controls'?: string | undefined
        'aria-current'?:
          | 'page'
          | (boolean | 'false' | 'true')
          | 'step'
          | 'location'
          | 'date'
          | 'time'
          | undefined
        'aria-describedby'?: string | undefined
        'aria-details'?: string | undefined
        'aria-disabled'?: (boolean | 'false' | 'true') | undefined
        'aria-dropeffect'?:
          | 'link'
          | 'none'
          | 'copy'
          | 'move'
          | 'execute'
          | 'popup'
          | undefined
        'aria-errormessage'?: string | undefined
        'aria-expanded'?: (boolean | 'false' | 'true') | undefined
        'aria-flowto'?: string | undefined
        'aria-grabbed'?: (boolean | 'false' | 'true') | undefined
        'aria-haspopup'?:
          | 'grid'
          | 'listbox'
          | 'menu'
          | (boolean | 'false' | 'true')
          | 'tree'
          | 'dialog'
          | undefined
        'aria-hidden'?: (boolean | 'false' | 'true') | undefined
        'aria-invalid'?:
          | (boolean | 'false' | 'true')
          | 'grammar'
          | 'spelling'
          | undefined
        'aria-keyshortcuts'?: string | undefined
        'aria-label'?: string | undefined
        'aria-labelledby'?: string | undefined
        'aria-level'?: (string | number) | undefined
        'aria-live'?: 'off' | 'assertive' | 'polite' | undefined
        'aria-modal'?: (boolean | 'false' | 'true') | undefined
        'aria-multiline'?: (boolean | 'false' | 'true') | undefined
        'aria-multiselectable'?: (boolean | 'false' | 'true') | undefined
        'aria-orientation'?: 'horizontal' | 'vertical' | undefined
        'aria-owns'?: string | undefined
        'aria-placeholder'?: string | undefined
        'aria-posinset'?: (string | number) | undefined
        'aria-pressed'?: 'mixed' | (boolean | 'false' | 'true') | undefined
        'aria-readonly'?: (boolean | 'false' | 'true') | undefined
        'aria-relevant'?:
          | 'all'
          | 'text'
          | 'additions'
          | 'additions text'
          | 'removals'
          | undefined
        'aria-required'?: (boolean | 'false' | 'true') | undefined
        'aria-roledescription'?: string | undefined
        'aria-rowcount'?: (string | number) | undefined
        'aria-rowindex'?: (string | number) | undefined
        'aria-rowspan'?: (string | number) | undefined
        'aria-selected'?: (boolean | 'false' | 'true') | undefined
        'aria-setsize'?: (string | number) | undefined
        'aria-sort'?: 'none' | 'ascending' | 'descending' | 'other' | undefined
        'aria-valuemax'?: (string | number) | undefined
        'aria-valuemin'?: (string | number) | undefined
        'aria-valuenow'?: (string | number) | undefined
        'aria-valuetext'?: string | undefined
        onCopy?: ((payload: ClipboardEvent) => void) | undefined
        onCut?: ((payload: ClipboardEvent) => void) | undefined
        onPaste?: ((payload: ClipboardEvent) => void) | undefined
        onCompositionend?: ((payload: CompositionEvent) => void) | undefined
        onCompositionstart?: ((payload: CompositionEvent) => void) | undefined
        onCompositionupdate?: ((payload: CompositionEvent) => void) | undefined
        onDrag?: ((payload: DragEvent) => void) | undefined
        onDragend?: ((payload: DragEvent) => void) | undefined
        onDragenter?: ((payload: DragEvent) => void) | undefined
        onDragexit?: ((payload: DragEvent) => void) | undefined
        onDragleave?: ((payload: DragEvent) => void) | undefined
        onDragover?: ((payload: DragEvent) => void) | undefined
        onDragstart?: ((payload: DragEvent) => void) | undefined
        onDrop?: ((payload: DragEvent) => void) | undefined
        onFocus?: ((payload: FocusEvent) => void) | undefined
        onFocusin?: ((payload: FocusEvent) => void) | undefined
        onFocusout?: ((payload: FocusEvent) => void) | undefined
        onBlur?: ((payload: FocusEvent) => void) | undefined
        onChange?: ((payload: Event) => void) | undefined
        onBeforeinput?: ((payload: Event) => void) | undefined
        onInput?: ((payload: Event) => void) | undefined
        onReset?: ((payload: Event) => void) | undefined
        onSubmit?: ((payload: Event) => void) | undefined
        onInvalid?: ((payload: Event) => void) | undefined
        onLoad?: ((payload: Event) => void) | undefined
        onError?: ((payload: Event) => void) | undefined
        onKeydown?: ((payload: KeyboardEvent) => void) | undefined
        onKeypress?: ((payload: KeyboardEvent) => void) | undefined
        onKeyup?: ((payload: KeyboardEvent) => void) | undefined
        onAuxclick?: ((payload: MouseEvent) => void) | undefined
        onClick?: ((payload: MouseEvent) => void) | undefined
        onContextmenu?: ((payload: MouseEvent) => void) | undefined
        onDblclick?: ((payload: MouseEvent) => void) | undefined
        onMousedown?: ((payload: MouseEvent) => void) | undefined
        onMouseenter?: ((payload: MouseEvent) => void) | undefined
        onMouseleave?: ((payload: MouseEvent) => void) | undefined
        onMousemove?: ((payload: MouseEvent) => void) | undefined
        onMouseout?: ((payload: MouseEvent) => void) | undefined
        onMouseover?: ((payload: MouseEvent) => void) | undefined
        onMouseup?: ((payload: MouseEvent) => void) | undefined
        onAbort?: ((payload: Event) => void) | undefined
        onCanplay?: ((payload: Event) => void) | undefined
        onCanplaythrough?: ((payload: Event) => void) | undefined
        onDurationchange?: ((payload: Event) => void) | undefined
        onEmptied?: ((payload: Event) => void) | undefined
        onEncrypted?: ((payload: Event) => void) | undefined
        onEnded?: ((payload: Event) => void) | undefined
        onLoadeddata?: ((payload: Event) => void) | undefined
        onLoadedmetadata?: ((payload: Event) => void) | undefined
        onLoadstart?: ((payload: Event) => void) | undefined
        onPause?: ((payload: Event) => void) | undefined
        onPlay?: ((payload: Event) => void) | undefined
        onPlaying?: ((payload: Event) => void) | undefined
        onProgress?: ((payload: Event) => void) | undefined
        onRatechange?: ((payload: Event) => void) | undefined
        onSeeked?: ((payload: Event) => void) | undefined
        onSeeking?: ((payload: Event) => void) | undefined
        onStalled?: ((payload: Event) => void) | undefined
        onSuspend?: ((payload: Event) => void) | undefined
        onTimeupdate?: ((payload: Event) => void) | undefined
        onVolumechange?: ((payload: Event) => void) | undefined
        onWaiting?: ((payload: Event) => void) | undefined
        onSelect?: ((payload: Event) => void) | undefined
        onScroll?: ((payload: UIEvent) => void) | undefined
        onTouchcancel?: ((payload: TouchEvent) => void) | undefined
        onTouchend?: ((payload: TouchEvent) => void) | undefined
        onTouchmove?: ((payload: TouchEvent) => void) | undefined
        onTouchstart?: ((payload: TouchEvent) => void) | undefined
        onPointerdown?: ((payload: PointerEvent) => void) | undefined
        onPointermove?: ((payload: PointerEvent) => void) | undefined
        onPointerup?: ((payload: PointerEvent) => void) | undefined
        onPointercancel?: ((payload: PointerEvent) => void) | undefined
        onPointerenter?: ((payload: PointerEvent) => void) | undefined
        onPointerleave?: ((payload: PointerEvent) => void) | undefined
        onPointerover?: ((payload: PointerEvent) => void) | undefined
        onPointerout?: ((payload: PointerEvent) => void) | undefined
        onWheel?: ((payload: WheelEvent) => void) | undefined
        onAnimationstart?: ((payload: AnimationEvent) => void) | undefined
        onAnimationend?: ((payload: AnimationEvent) => void) | undefined
        onAnimationiteration?: ((payload: AnimationEvent) => void) | undefined
        onTransitionend?: ((payload: TransitionEvent) => void) | undefined
        onTransitionstart?: ((payload: TransitionEvent) => void) | undefined
      }
    | {
        x?: string | number | undefined
        y?: string | number | undefined
        z?: string | number | undefined
        translateX?: string | number | undefined
        translateY?: string | number | undefined
        translateZ?: string | number | undefined
        rotate?: string | number | undefined
        rotateX?: string | number | undefined
        rotateY?: string | number | undefined
        rotateZ?: string | number | undefined
        scale?: string | number | undefined
        scaleX?: string | number | undefined
        scaleY?: string | number | undefined
        scaleZ?: string | number | undefined
        skew?: string | number | undefined
        skewX?: string | number | undefined
        skewY?: string | number | undefined
        originX?: string | number | undefined
        originY?: string | number | undefined
        originZ?: string | number | undefined
        perspective?: string | number | undefined
        transformPerspective?: string | number | undefined
      }
    | {
        pathLength?: number | undefined
        pathOffset?: number | undefined
        pathSpacing?: number | undefined
      }
  style: {
    alignContent?: string | undefined
    alignItems?: string | undefined
    alignSelf?: string | undefined
    alignTracks?: string | undefined
    animationDelay?: string | undefined
    animationDirection?: string | undefined
    animationDuration?: string | undefined
    animationFillMode?: string | undefined
    animationIterationCount?:
      | csstype.AnimationIterationCountProperty
      | undefined
    animationName?: string | undefined
    animationPlayState?: string | undefined
    animationTimingFunction?: string | undefined
    appearance?: csstype.AppearanceProperty | undefined
    aspectRatio?: string | undefined
    backdropFilter?: string | undefined
    backfaceVisibility?: csstype.BackfaceVisibilityProperty | undefined
    backgroundAttachment?: string | undefined
    backgroundBlendMode?: string | undefined
    backgroundClip?: string | undefined
    backgroundColor?: string | undefined
    backgroundImage?: string | undefined
    backgroundOrigin?: string | undefined
    backgroundPositionX?:
      | csstype.BackgroundPositionXProperty<string | number>
      | undefined
    backgroundPositionY?:
      | csstype.BackgroundPositionYProperty<string | number>
      | undefined
    backgroundRepeat?: string | undefined
    backgroundSize?: csstype.BackgroundSizeProperty<string | number> | undefined
    blockOverflow?: string | undefined
    blockSize?: csstype.BlockSizeProperty<string | number> | undefined
    borderBlockColor?: string | undefined
    borderBlockEndColor?: string | undefined
    borderBlockEndStyle?: csstype.BorderBlockEndStyleProperty | undefined
    borderBlockEndWidth?:
      | csstype.BorderBlockEndWidthProperty<string | number>
      | undefined
    borderBlockStartColor?: string | undefined
    borderBlockStartStyle?: csstype.BorderBlockStartStyleProperty | undefined
    borderBlockStartWidth?:
      | csstype.BorderBlockStartWidthProperty<string | number>
      | undefined
    borderBlockStyle?: csstype.BorderBlockStyleProperty | undefined
    borderBlockWidth?:
      | csstype.BorderBlockWidthProperty<string | number>
      | undefined
    borderBottomColor?: string | undefined
    borderBottomLeftRadius?:
      | csstype.BorderBottomLeftRadiusProperty<string | number>
      | undefined
    borderBottomRightRadius?:
      | csstype.BorderBottomRightRadiusProperty<string | number>
      | undefined
    borderBottomStyle?: csstype.BorderBottomStyleProperty | undefined
    borderBottomWidth?:
      | csstype.BorderBottomWidthProperty<string | number>
      | undefined
    borderCollapse?: csstype.BorderCollapseProperty | undefined
    borderEndEndRadius?:
      | csstype.BorderEndEndRadiusProperty<string | number>
      | undefined
    borderEndStartRadius?:
      | csstype.BorderEndStartRadiusProperty<string | number>
      | undefined
    borderImageOutset?:
      | csstype.BorderImageOutsetProperty<string | number>
      | undefined
    borderImageRepeat?: string | undefined
    borderImageSlice?: csstype.BorderImageSliceProperty | undefined
    borderImageSource?: string | undefined
    borderImageWidth?:
      | csstype.BorderImageWidthProperty<string | number>
      | undefined
    borderInlineColor?: string | undefined
    borderInlineEndColor?: string | undefined
    borderInlineEndStyle?: csstype.BorderInlineEndStyleProperty | undefined
    borderInlineEndWidth?:
      | csstype.BorderInlineEndWidthProperty<string | number>
      | undefined
    borderInlineStartColor?: string | undefined
    borderInlineStartStyle?: csstype.BorderInlineStartStyleProperty | undefined
    borderInlineStartWidth?:
      | csstype.BorderInlineStartWidthProperty<string | number>
      | undefined
    borderInlineStyle?: csstype.BorderInlineStyleProperty | undefined
    borderInlineWidth?:
      | csstype.BorderInlineWidthProperty<string | number>
      | undefined
    borderLeftColor?: string | undefined
    borderLeftStyle?: csstype.BorderLeftStyleProperty | undefined
    borderLeftWidth?:
      | csstype.BorderLeftWidthProperty<string | number>
      | undefined
    borderRightColor?: string | undefined
    borderRightStyle?: csstype.BorderRightStyleProperty | undefined
    borderRightWidth?:
      | csstype.BorderRightWidthProperty<string | number>
      | undefined
    borderSpacing?: csstype.BorderSpacingProperty<string | number> | undefined
    borderStartEndRadius?:
      | csstype.BorderStartEndRadiusProperty<string | number>
      | undefined
    borderStartStartRadius?:
      | csstype.BorderStartStartRadiusProperty<string | number>
      | undefined
    borderTopColor?: string | undefined
    borderTopLeftRadius?:
      | csstype.BorderTopLeftRadiusProperty<string | number>
      | undefined
    borderTopRightRadius?:
      | csstype.BorderTopRightRadiusProperty<string | number>
      | undefined
    borderTopStyle?: csstype.BorderTopStyleProperty | undefined
    borderTopWidth?: csstype.BorderTopWidthProperty<string | number> | undefined
    bottom?: csstype.BottomProperty<string | number> | undefined
    boxDecorationBreak?: csstype.BoxDecorationBreakProperty | undefined
    boxShadow?: string | undefined
    boxSizing?: csstype.BoxSizingProperty | undefined
    breakAfter?: csstype.BreakAfterProperty | undefined
    breakBefore?: csstype.BreakBeforeProperty | undefined
    breakInside?: csstype.BreakInsideProperty | undefined
    captionSide?: csstype.CaptionSideProperty | undefined
    caretColor?: string | undefined
    clear?: csstype.ClearProperty | undefined
    clipPath?: string | undefined
    color?: string | undefined
    colorAdjust?: csstype.ColorAdjustProperty | undefined
    colorScheme?: string | undefined
    columnCount?: csstype.ColumnCountProperty | undefined
    columnFill?: csstype.ColumnFillProperty | undefined
    columnGap?: csstype.ColumnGapProperty<string | number> | undefined
    columnRuleColor?: string | undefined
    columnRuleStyle?: string | undefined
    columnRuleWidth?:
      | csstype.ColumnRuleWidthProperty<string | number>
      | undefined
    columnSpan?: csstype.ColumnSpanProperty | undefined
    columnWidth?: csstype.ColumnWidthProperty<string | number> | undefined
    contain?: string | undefined
    content?: string | undefined
    contentVisibility?: csstype.ContentVisibilityProperty | undefined
    counterIncrement?: string | undefined
    counterReset?: string | undefined
    counterSet?: string | undefined
    cursor?: string | undefined
    direction?: csstype.DirectionProperty | undefined
    display?: string | undefined
    emptyCells?: csstype.EmptyCellsProperty | undefined
    filter?: string | undefined
    flexBasis?: csstype.FlexBasisProperty<string | number> | undefined
    flexDirection?: csstype.FlexDirectionProperty | undefined
    flexGrow?: csstype.GlobalsNumber | undefined
    flexShrink?: csstype.GlobalsNumber | undefined
    flexWrap?: csstype.FlexWrapProperty | undefined
    float?: csstype.FloatProperty | undefined
    fontFamily?: string | undefined
    fontFeatureSettings?: string | undefined
    fontKerning?: csstype.FontKerningProperty | undefined
    fontLanguageOverride?: string | undefined
    fontOpticalSizing?: csstype.FontOpticalSizingProperty | undefined
    fontSize?: csstype.FontSizeProperty<string | number> | undefined
    fontSizeAdjust?: csstype.FontSizeAdjustProperty | undefined
    fontSmooth?: csstype.FontSmoothProperty<string | number> | undefined
    fontStretch?: string | undefined
    fontStyle?: string | undefined
    fontSynthesis?: string | undefined
    fontVariant?: string | undefined
    fontVariantCaps?: csstype.FontVariantCapsProperty | undefined
    fontVariantEastAsian?: string | undefined
    fontVariantLigatures?: string | undefined
    fontVariantNumeric?: string | undefined
    fontVariantPosition?: csstype.FontVariantPositionProperty | undefined
    fontVariationSettings?: string | undefined
    fontWeight?: csstype.FontWeightProperty | undefined
    forcedColorAdjust?: csstype.ForcedColorAdjustProperty | undefined
    gridAutoColumns?:
      | csstype.GridAutoColumnsProperty<string | number>
      | undefined
    gridAutoFlow?: string | undefined
    gridAutoRows?: csstype.GridAutoRowsProperty<string | number> | undefined
    gridColumnEnd?: csstype.GridColumnEndProperty | undefined
    gridColumnStart?: csstype.GridColumnStartProperty | undefined
    gridRowEnd?: csstype.GridRowEndProperty | undefined
    gridRowStart?: csstype.GridRowStartProperty | undefined
    gridTemplateAreas?: string | undefined
    gridTemplateColumns?:
      | csstype.GridTemplateColumnsProperty<string | number>
      | undefined
    gridTemplateRows?:
      | csstype.GridTemplateRowsProperty<string | number>
      | undefined
    hangingPunctuation?: string | undefined
    height?: csstype.HeightProperty<string | number> | undefined
    hyphens?: csstype.HyphensProperty | undefined
    imageOrientation?: string | undefined
    imageRendering?: csstype.ImageRenderingProperty | undefined
    imageResolution?: string | undefined
    initialLetter?: csstype.InitialLetterProperty | undefined
    inlineSize?: csstype.InlineSizeProperty<string | number> | undefined
    inset?: csstype.InsetProperty<string | number> | undefined
    insetBlock?: csstype.InsetBlockProperty<string | number> | undefined
    insetBlockEnd?: csstype.InsetBlockEndProperty<string | number> | undefined
    insetBlockStart?:
      | csstype.InsetBlockStartProperty<string | number>
      | undefined
    insetInline?: csstype.InsetInlineProperty<string | number> | undefined
    insetInlineEnd?: csstype.InsetInlineEndProperty<string | number> | undefined
    insetInlineStart?:
      | csstype.InsetInlineStartProperty<string | number>
      | undefined
    isolation?: csstype.IsolationProperty | undefined
    justifyContent?: string | undefined
    justifyItems?: string | undefined
    justifySelf?: string | undefined
    justifyTracks?: string | undefined
    left?: csstype.LeftProperty<string | number> | undefined
    letterSpacing?: csstype.LetterSpacingProperty<string | number> | undefined
    lineBreak?: csstype.LineBreakProperty | undefined
    lineHeight?: csstype.LineHeightProperty<string | number> | undefined
    lineHeightStep?: csstype.LineHeightStepProperty<string | number> | undefined
    listStyleImage?: string | undefined
    listStylePosition?: csstype.ListStylePositionProperty | undefined
    listStyleType?: string | undefined
    marginBlock?: csstype.MarginBlockProperty<string | number> | undefined
    marginBlockEnd?: csstype.MarginBlockEndProperty<string | number> | undefined
    marginBlockStart?:
      | csstype.MarginBlockStartProperty<string | number>
      | undefined
    marginBottom?: csstype.MarginBottomProperty<string | number> | undefined
    marginInline?: csstype.MarginInlineProperty<string | number> | undefined
    marginInlineEnd?:
      | csstype.MarginInlineEndProperty<string | number>
      | undefined
    marginInlineStart?:
      | csstype.MarginInlineStartProperty<string | number>
      | undefined
    marginLeft?: csstype.MarginLeftProperty<string | number> | undefined
    marginRight?: csstype.MarginRightProperty<string | number> | undefined
    marginTop?: csstype.MarginTopProperty<string | number> | undefined
    maskBorderMode?: csstype.MaskBorderModeProperty | undefined
    maskBorderOutset?:
      | csstype.MaskBorderOutsetProperty<string | number>
      | undefined
    maskBorderRepeat?: string | undefined
    maskBorderSlice?: csstype.MaskBorderSliceProperty | undefined
    maskBorderSource?: string | undefined
    maskBorderWidth?:
      | csstype.MaskBorderWidthProperty<string | number>
      | undefined
    maskClip?: string | undefined
    maskComposite?: string | undefined
    maskImage?: string | undefined
    maskMode?: string | undefined
    maskOrigin?: string | undefined
    maskPosition?: csstype.MaskPositionProperty<string | number> | undefined
    maskRepeat?: string | undefined
    maskSize?: csstype.MaskSizeProperty<string | number> | undefined
    maskType?: csstype.MaskTypeProperty | undefined
    mathStyle?: csstype.MathStyleProperty | undefined
    maxBlockSize?: csstype.MaxBlockSizeProperty<string | number> | undefined
    maxHeight?: csstype.MaxHeightProperty<string | number> | undefined
    maxInlineSize?: csstype.MaxInlineSizeProperty<string | number> | undefined
    maxLines?: csstype.MaxLinesProperty | undefined
    maxWidth?: csstype.MaxWidthProperty<string | number> | undefined
    minBlockSize?: csstype.MinBlockSizeProperty<string | number> | undefined
    minHeight?: csstype.MinHeightProperty<string | number> | undefined
    minInlineSize?: csstype.MinInlineSizeProperty<string | number> | undefined
    minWidth?: csstype.MinWidthProperty<string | number> | undefined
    mixBlendMode?: csstype.MixBlendModeProperty | undefined
    motionDistance?: csstype.OffsetDistanceProperty<string | number> | undefined
    motionPath?: string | undefined
    motionRotation?: string | undefined
    objectFit?: csstype.ObjectFitProperty | undefined
    objectPosition?: csstype.ObjectPositionProperty<string | number> | undefined
    offsetAnchor?: csstype.OffsetAnchorProperty<string | number> | undefined
    offsetDistance?: csstype.OffsetDistanceProperty<string | number> | undefined
    offsetPath?: string | undefined
    offsetRotate?: string | undefined
    offsetRotation?: string | undefined
    opacity?: csstype.OpacityProperty | undefined
    order?: csstype.GlobalsNumber | undefined
    orphans?: csstype.GlobalsNumber | undefined
    outlineColor?: string | undefined
    outlineOffset?: csstype.OutlineOffsetProperty<string | number> | undefined
    outlineStyle?: string | undefined
    outlineWidth?: csstype.OutlineWidthProperty<string | number> | undefined
    overflowAnchor?: csstype.OverflowAnchorProperty | undefined
    overflowBlock?: csstype.OverflowBlockProperty | undefined
    overflowClipBox?: csstype.OverflowClipBoxProperty | undefined
    overflowClipMargin?:
      | csstype.OverflowClipMarginProperty<string | number>
      | undefined
    overflowInline?: csstype.OverflowInlineProperty | undefined
    overflowWrap?: csstype.OverflowWrapProperty | undefined
    overflowX?: csstype.OverflowXProperty | undefined
    overflowY?: csstype.OverflowYProperty | undefined
    overscrollBehaviorBlock?:
      | csstype.OverscrollBehaviorBlockProperty
      | undefined
    overscrollBehaviorInline?:
      | csstype.OverscrollBehaviorInlineProperty
      | undefined
    overscrollBehaviorX?: csstype.OverscrollBehaviorXProperty | undefined
    overscrollBehaviorY?: csstype.OverscrollBehaviorYProperty | undefined
    paddingBlock?: csstype.PaddingBlockProperty<string | number> | undefined
    paddingBlockEnd?:
      | csstype.PaddingBlockEndProperty<string | number>
      | undefined
    paddingBlockStart?:
      | csstype.PaddingBlockStartProperty<string | number>
      | undefined
    paddingBottom?: csstype.PaddingBottomProperty<string | number> | undefined
    paddingInline?: csstype.PaddingInlineProperty<string | number> | undefined
    paddingInlineEnd?:
      | csstype.PaddingInlineEndProperty<string | number>
      | undefined
    paddingInlineStart?:
      | csstype.PaddingInlineStartProperty<string | number>
      | undefined
    paddingLeft?: csstype.PaddingLeftProperty<string | number> | undefined
    paddingRight?: csstype.PaddingRightProperty<string | number> | undefined
    paddingTop?: csstype.PaddingTopProperty<string | number> | undefined
    pageBreakAfter?: csstype.PageBreakAfterProperty | undefined
    pageBreakBefore?: csstype.PageBreakBeforeProperty | undefined
    pageBreakInside?: csstype.PageBreakInsideProperty | undefined
    paintOrder?: string | undefined
    perspectiveOrigin?:
      | csstype.PerspectiveOriginProperty<string | number>
      | undefined
    placeContent?: string | undefined
    pointerEvents?: csstype.PointerEventsProperty | undefined
    position?: csstype.PositionProperty | undefined
    quotes?: string | undefined
    resize?: csstype.ResizeProperty | undefined
    right?: csstype.RightProperty<string | number> | undefined
    rowGap?: csstype.RowGapProperty<string | number> | undefined
    rubyAlign?: csstype.RubyAlignProperty | undefined
    rubyMerge?: csstype.RubyMergeProperty | undefined
    rubyPosition?: string | undefined
    scrollBehavior?: csstype.ScrollBehaviorProperty | undefined
    scrollMargin?: csstype.ScrollMarginProperty<string | number> | undefined
    scrollMarginBlock?:
      | csstype.ScrollMarginBlockProperty<string | number>
      | undefined
    scrollMarginBlockEnd?:
      | csstype.ScrollMarginBlockEndProperty<string | number>
      | undefined
    scrollMarginBlockStart?:
      | csstype.ScrollMarginBlockStartProperty<string | number>
      | undefined
    scrollMarginBottom?:
      | csstype.ScrollMarginBottomProperty<string | number>
      | undefined
    scrollMarginInline?:
      | csstype.ScrollMarginInlineProperty<string | number>
      | undefined
    scrollMarginInlineEnd?:
      | csstype.ScrollMarginInlineEndProperty<string | number>
      | undefined
    scrollMarginInlineStart?:
      | csstype.ScrollMarginInlineStartProperty<string | number>
      | undefined
    scrollMarginLeft?:
      | csstype.ScrollMarginLeftProperty<string | number>
      | undefined
    scrollMarginRight?:
      | csstype.ScrollMarginRightProperty<string | number>
      | undefined
    scrollMarginTop?:
      | csstype.ScrollMarginTopProperty<string | number>
      | undefined
    scrollPadding?: csstype.ScrollPaddingProperty<string | number> | undefined
    scrollPaddingBlock?:
      | csstype.ScrollPaddingBlockProperty<string | number>
      | undefined
    scrollPaddingBlockEnd?:
      | csstype.ScrollPaddingBlockEndProperty<string | number>
      | undefined
    scrollPaddingBlockStart?:
      | csstype.ScrollPaddingBlockStartProperty<string | number>
      | undefined
    scrollPaddingBottom?:
      | csstype.ScrollPaddingBottomProperty<string | number>
      | undefined
    scrollPaddingInline?:
      | csstype.ScrollPaddingInlineProperty<string | number>
      | undefined
    scrollPaddingInlineEnd?:
      | csstype.ScrollPaddingInlineEndProperty<string | number>
      | undefined
    scrollPaddingInlineStart?:
      | csstype.ScrollPaddingInlineStartProperty<string | number>
      | undefined
    scrollPaddingLeft?:
      | csstype.ScrollPaddingLeftProperty<string | number>
      | undefined
    scrollPaddingRight?:
      | csstype.ScrollPaddingRightProperty<string | number>
      | undefined
    scrollPaddingTop?:
      | csstype.ScrollPaddingTopProperty<string | number>
      | undefined
    scrollSnapAlign?: string | undefined
    scrollSnapMargin?: csstype.ScrollMarginProperty<string | number> | undefined
    scrollSnapMarginBottom?:
      | csstype.ScrollMarginBottomProperty<string | number>
      | undefined
    scrollSnapMarginLeft?:
      | csstype.ScrollMarginLeftProperty<string | number>
      | undefined
    scrollSnapMarginRight?:
      | csstype.ScrollMarginRightProperty<string | number>
      | undefined
    scrollSnapMarginTop?:
      | csstype.ScrollMarginTopProperty<string | number>
      | undefined
    scrollSnapStop?: csstype.ScrollSnapStopProperty | undefined
    scrollSnapType?: string | undefined
    scrollbarColor?: string | undefined
    scrollbarGutter?: string | undefined
    scrollbarWidth?: csstype.ScrollbarWidthProperty | undefined
    shapeImageThreshold?: csstype.ShapeImageThresholdProperty | undefined
    shapeMargin?: csstype.ShapeMarginProperty<string | number> | undefined
    shapeOutside?: string | undefined
    tabSize?: csstype.TabSizeProperty<string | number> | undefined
    tableLayout?: csstype.TableLayoutProperty | undefined
    textAlign?: csstype.TextAlignProperty | undefined
    textAlignLast?: csstype.TextAlignLastProperty | undefined
    textCombineUpright?: string | undefined
    textDecorationColor?: string | undefined
    textDecorationLine?: string | undefined
    textDecorationSkip?: string | undefined
    textDecorationSkipInk?: csstype.TextDecorationSkipInkProperty | undefined
    textDecorationStyle?: csstype.TextDecorationStyleProperty | undefined
    textDecorationThickness?:
      | csstype.TextDecorationThicknessProperty<string | number>
      | undefined
    textDecorationWidth?:
      | csstype.TextDecorationThicknessProperty<string | number>
      | undefined
    textEmphasisColor?: string | undefined
    textEmphasisPosition?: string | undefined
    textEmphasisStyle?: string | undefined
    textIndent?: csstype.TextIndentProperty<string | number> | undefined
    textJustify?: csstype.TextJustifyProperty | undefined
    textOrientation?: csstype.TextOrientationProperty | undefined
    textOverflow?: string | undefined
    textRendering?: csstype.TextRenderingProperty | undefined
    textShadow?: string | undefined
    textSizeAdjust?: string | undefined
    textTransform?: csstype.TextTransformProperty | undefined
    textUnderlineOffset?:
      | csstype.TextUnderlineOffsetProperty<string | number>
      | undefined
    textUnderlinePosition?: string | undefined
    top?: csstype.TopProperty<string | number> | undefined
    touchAction?: string | undefined
    transitionDelay?: string | undefined
    transitionDuration?: string | undefined
    transitionProperty?: string | undefined
    transitionTimingFunction?: string | undefined
    translate?: csstype.TranslateProperty<string | number> | undefined
    unicodeBidi?: csstype.UnicodeBidiProperty | undefined
    userSelect?: csstype.UserSelectProperty | undefined
    verticalAlign?: csstype.VerticalAlignProperty<string | number> | undefined
    visibility?: csstype.VisibilityProperty | undefined
    whiteSpace?: csstype.WhiteSpaceProperty | undefined
    widows?: csstype.GlobalsNumber | undefined
    width?: csstype.WidthProperty<string | number> | undefined
    willChange?: string | undefined
    wordBreak?: csstype.WordBreakProperty | undefined
    wordSpacing?: csstype.WordSpacingProperty<string | number> | undefined
    wordWrap?: csstype.WordWrapProperty | undefined
    writingMode?: csstype.WritingModeProperty | undefined
    zIndex?: csstype.ZIndexProperty | undefined
    zoom?: csstype.ZoomProperty | undefined
    all?: csstype.Globals | undefined
    animation?: csstype.AnimationProperty | undefined
    background?: csstype.BackgroundProperty<string | number> | undefined
    backgroundPosition?:
      | csstype.BackgroundPositionProperty<string | number>
      | undefined
    border?: csstype.BorderProperty<string | number> | undefined
    borderBlock?: csstype.BorderBlockProperty<string | number> | undefined
    borderBlockEnd?: csstype.BorderBlockEndProperty<string | number> | undefined
    borderBlockStart?:
      | csstype.BorderBlockStartProperty<string | number>
      | undefined
    borderBottom?: csstype.BorderBottomProperty<string | number> | undefined
    borderColor?: string | undefined
    borderImage?: csstype.BorderImageProperty | undefined
    borderInline?: csstype.BorderInlineProperty<string | number> | undefined
    borderInlineEnd?:
      | csstype.BorderInlineEndProperty<string | number>
      | undefined
    borderInlineStart?:
      | csstype.BorderInlineStartProperty<string | number>
      | undefined
    borderLeft?: csstype.BorderLeftProperty<string | number> | undefined
    borderRadius?: csstype.BorderRadiusProperty<string | number> | undefined
    borderRight?: csstype.BorderRightProperty<string | number> | undefined
    borderStyle?: string | undefined
    borderTop?: csstype.BorderTopProperty<string | number> | undefined
    borderWidth?: csstype.BorderWidthProperty<string | number> | undefined
    columnRule?: csstype.ColumnRuleProperty<string | number> | undefined
    columns?: csstype.ColumnsProperty<string | number> | undefined
    flex?: csstype.FlexProperty<string | number> | undefined
    flexFlow?: string | undefined
    font?: string | undefined
    gap?: csstype.GapProperty<string | number> | undefined
    grid?: string | undefined
    gridArea?: csstype.GridAreaProperty | undefined
    gridColumn?: csstype.GridColumnProperty | undefined
    gridRow?: csstype.GridRowProperty | undefined
    gridTemplate?: string | undefined
    lineClamp?: csstype.LineClampProperty | undefined
    listStyle?: string | undefined
    margin?: csstype.MarginProperty<string | number> | undefined
    mask?: csstype.MaskProperty<string | number> | undefined
    maskBorder?: csstype.MaskBorderProperty | undefined
    motion?: csstype.OffsetProperty<string | number> | undefined
    offset?: csstype.OffsetProperty<string | number> | undefined
    outline?: csstype.OutlineProperty<string | number> | undefined
    overflow?: string | undefined
    overscrollBehavior?: string | undefined
    padding?: csstype.PaddingProperty<string | number> | undefined
    placeItems?: string | undefined
    placeSelf?: string | undefined
    textDecoration?: csstype.TextDecorationProperty<string | number> | undefined
    textEmphasis?: string | undefined
    MozAnimationDelay?: string | undefined
    MozAnimationDirection?: string | undefined
    MozAnimationDuration?: string | undefined
    MozAnimationFillMode?: string | undefined
    MozAnimationIterationCount?:
      | csstype.AnimationIterationCountProperty
      | undefined
    MozAnimationName?: string | undefined
    MozAnimationPlayState?: string | undefined
    MozAnimationTimingFunction?: string | undefined
    MozAppearance?: csstype.MozAppearanceProperty | undefined
    MozBackfaceVisibility?: csstype.BackfaceVisibilityProperty | undefined
    MozBorderBottomColors?: string | undefined
    MozBorderEndColor?: string | undefined
    MozBorderEndStyle?: csstype.BorderInlineEndStyleProperty | undefined
    MozBorderEndWidth?:
      | csstype.BorderInlineEndWidthProperty<string | number>
      | undefined
    MozBorderLeftColors?: string | undefined
    MozBorderRightColors?: string | undefined
    MozBorderStartColor?: string | undefined
    MozBorderStartStyle?: csstype.BorderInlineStartStyleProperty | undefined
    MozBorderTopColors?: string | undefined
    MozBoxSizing?: csstype.BoxSizingProperty | undefined
    MozColumnCount?: csstype.ColumnCountProperty | undefined
    MozColumnFill?: csstype.ColumnFillProperty | undefined
    MozColumnGap?: csstype.ColumnGapProperty<string | number> | undefined
    MozColumnRuleColor?: string | undefined
    MozColumnRuleStyle?: string | undefined
    MozColumnRuleWidth?:
      | csstype.ColumnRuleWidthProperty<string | number>
      | undefined
    MozColumnWidth?: csstype.ColumnWidthProperty<string | number> | undefined
    MozContextProperties?: string | undefined
    MozFontFeatureSettings?: string | undefined
    MozFontLanguageOverride?: string | undefined
    MozHyphens?: csstype.HyphensProperty | undefined
    MozImageRegion?: string | undefined
    MozMarginEnd?: csstype.MarginInlineEndProperty<string | number> | undefined
    MozMarginStart?:
      | csstype.MarginInlineStartProperty<string | number>
      | undefined
    MozOrient?: csstype.MozOrientProperty | undefined
    MozOsxFontSmoothing?:
      | csstype.FontSmoothProperty<string | number>
      | undefined
    MozPaddingEnd?:
      | csstype.PaddingInlineEndProperty<string | number>
      | undefined
    MozPaddingStart?:
      | csstype.PaddingInlineStartProperty<string | number>
      | undefined
    MozPerspective?: csstype.PerspectiveProperty<string | number> | undefined
    MozPerspectiveOrigin?:
      | csstype.PerspectiveOriginProperty<string | number>
      | undefined
    MozStackSizing?: csstype.MozStackSizingProperty | undefined
    MozTabSize?: csstype.TabSizeProperty<string | number> | undefined
    MozTextBlink?: csstype.MozTextBlinkProperty | undefined
    MozTextSizeAdjust?: string | undefined
    MozTransformOrigin?:
      | csstype.TransformOriginProperty<string | number>
      | undefined
    MozTransformStyle?: csstype.TransformStyleProperty | undefined
    MozTransitionDelay?: string | undefined
    MozTransitionDuration?: string | undefined
    MozTransitionProperty?: string | undefined
    MozTransitionTimingFunction?: string | undefined
    MozUserFocus?: csstype.MozUserFocusProperty | undefined
    MozUserModify?: csstype.MozUserModifyProperty | undefined
    MozUserSelect?: csstype.UserSelectProperty | undefined
    MozWindowDragging?: csstype.MozWindowDraggingProperty | undefined
    MozWindowShadow?: csstype.MozWindowShadowProperty | undefined
    msAccelerator?: csstype.MsAcceleratorProperty | undefined
    msAlignSelf?: string | undefined
    msBlockProgression?: csstype.MsBlockProgressionProperty | undefined
    msContentZoomChaining?: csstype.MsContentZoomChainingProperty | undefined
    msContentZoomLimitMax?: string | undefined
    msContentZoomLimitMin?: string | undefined
    msContentZoomSnapPoints?: string | undefined
    msContentZoomSnapType?: csstype.MsContentZoomSnapTypeProperty | undefined
    msContentZooming?: csstype.MsContentZoomingProperty | undefined
    msFilter?: string | undefined
    msFlexDirection?: csstype.FlexDirectionProperty | undefined
    msFlexPositive?: csstype.GlobalsNumber | undefined
    msFlowFrom?: string | undefined
    msFlowInto?: string | undefined
    msGridColumns?: csstype.MsGridColumnsProperty<string | number> | undefined
    msGridRows?: csstype.MsGridRowsProperty<string | number> | undefined
    msHighContrastAdjust?: csstype.MsHighContrastAdjustProperty | undefined
    msHyphenateLimitChars?: csstype.MsHyphenateLimitCharsProperty | undefined
    msHyphenateLimitLines?: csstype.MsHyphenateLimitLinesProperty | undefined
    msHyphenateLimitZone?:
      | csstype.MsHyphenateLimitZoneProperty<string | number>
      | undefined
    msHyphens?: csstype.HyphensProperty | undefined
    msImeAlign?: csstype.MsImeAlignProperty | undefined
    msJustifySelf?: string | undefined
    msLineBreak?: csstype.LineBreakProperty | undefined
    msOrder?: csstype.GlobalsNumber | undefined
    msOverflowStyle?: csstype.MsOverflowStyleProperty | undefined
    msOverflowX?: csstype.OverflowXProperty | undefined
    msOverflowY?: csstype.OverflowYProperty | undefined
    msScrollChaining?: csstype.MsScrollChainingProperty | undefined
    msScrollLimitXMax?:
      | csstype.MsScrollLimitXMaxProperty<string | number>
      | undefined
    msScrollLimitXMin?:
      | csstype.MsScrollLimitXMinProperty<string | number>
      | undefined
    msScrollLimitYMax?:
      | csstype.MsScrollLimitYMaxProperty<string | number>
      | undefined
    msScrollLimitYMin?:
      | csstype.MsScrollLimitYMinProperty<string | number>
      | undefined
    msScrollRails?: csstype.MsScrollRailsProperty | undefined
    msScrollSnapPointsX?: string | undefined
    msScrollSnapPointsY?: string | undefined
    msScrollSnapType?: csstype.MsScrollSnapTypeProperty | undefined
    msScrollTranslation?: csstype.MsScrollTranslationProperty | undefined
    msScrollbar3dlightColor?: string | undefined
    msScrollbarArrowColor?: string | undefined
    msScrollbarBaseColor?: string | undefined
    msScrollbarDarkshadowColor?: string | undefined
    msScrollbarFaceColor?: string | undefined
    msScrollbarHighlightColor?: string | undefined
    msScrollbarShadowColor?: string | undefined
    msTextAutospace?: csstype.MsTextAutospaceProperty | undefined
    msTextCombineHorizontal?: string | undefined
    msTextOverflow?: string | undefined
    msTouchAction?: string | undefined
    msTouchSelect?: csstype.MsTouchSelectProperty | undefined
    msTransform?: string | undefined
    msTransformOrigin?:
      | csstype.TransformOriginProperty<string | number>
      | undefined
    msTransitionDelay?: string | undefined
    msTransitionDuration?: string | undefined
    msTransitionProperty?: string | undefined
    msTransitionTimingFunction?: string | undefined
    msUserSelect?: csstype.MsUserSelectProperty | undefined
    msWordBreak?: csstype.WordBreakProperty | undefined
    msWrapFlow?: csstype.MsWrapFlowProperty | undefined
    msWrapMargin?: csstype.MsWrapMarginProperty<string | number> | undefined
    msWrapThrough?: csstype.MsWrapThroughProperty | undefined
    msWritingMode?: csstype.WritingModeProperty | undefined
    WebkitAlignContent?: string | undefined
    WebkitAlignItems?: string | undefined
    WebkitAlignSelf?: string | undefined
    WebkitAnimationDelay?: string | undefined
    WebkitAnimationDirection?: string | undefined
    WebkitAnimationDuration?: string | undefined
    WebkitAnimationFillMode?: string | undefined
    WebkitAnimationIterationCount?:
      | csstype.AnimationIterationCountProperty
      | undefined
    WebkitAnimationName?: string | undefined
    WebkitAnimationPlayState?: string | undefined
    WebkitAnimationTimingFunction?: string | undefined
    WebkitAppearance?: csstype.WebkitAppearanceProperty | undefined
    WebkitBackdropFilter?: string | undefined
    WebkitBackfaceVisibility?: csstype.BackfaceVisibilityProperty | undefined
    WebkitBackgroundClip?: string | undefined
    WebkitBackgroundOrigin?: string | undefined
    WebkitBackgroundSize?:
      | csstype.BackgroundSizeProperty<string | number>
      | undefined
    WebkitBorderBeforeColor?: string | undefined
    WebkitBorderBeforeStyle?: string | undefined
    WebkitBorderBeforeWidth?:
      | csstype.WebkitBorderBeforeWidthProperty<string | number>
      | undefined
    WebkitBorderBottomLeftRadius?:
      | csstype.BorderBottomLeftRadiusProperty<string | number>
      | undefined
    WebkitBorderBottomRightRadius?:
      | csstype.BorderBottomRightRadiusProperty<string | number>
      | undefined
    WebkitBorderImageSlice?: csstype.BorderImageSliceProperty | undefined
    WebkitBorderTopLeftRadius?:
      | csstype.BorderTopLeftRadiusProperty<string | number>
      | undefined
    WebkitBorderTopRightRadius?:
      | csstype.BorderTopRightRadiusProperty<string | number>
      | undefined
    WebkitBoxDecorationBreak?: csstype.BoxDecorationBreakProperty | undefined
    WebkitBoxReflect?:
      | csstype.WebkitBoxReflectProperty<string | number>
      | undefined
    WebkitBoxShadow?: string | undefined
    WebkitBoxSizing?: csstype.BoxSizingProperty | undefined
    WebkitClipPath?: string | undefined
    WebkitColumnCount?: csstype.ColumnCountProperty | undefined
    WebkitColumnFill?: csstype.ColumnFillProperty | undefined
    WebkitColumnGap?: csstype.ColumnGapProperty<string | number> | undefined
    WebkitColumnRuleColor?: string | undefined
    WebkitColumnRuleStyle?: string | undefined
    WebkitColumnRuleWidth?:
      | csstype.ColumnRuleWidthProperty<string | number>
      | undefined
    WebkitColumnSpan?: csstype.ColumnSpanProperty | undefined
    WebkitColumnWidth?: csstype.ColumnWidthProperty<string | number> | undefined
    WebkitFilter?: string | undefined
    WebkitFlexBasis?: csstype.FlexBasisProperty<string | number> | undefined
    WebkitFlexDirection?: csstype.FlexDirectionProperty | undefined
    WebkitFlexGrow?: csstype.GlobalsNumber | undefined
    WebkitFlexShrink?: csstype.GlobalsNumber | undefined
    WebkitFlexWrap?: csstype.FlexWrapProperty | undefined
    WebkitFontFeatureSettings?: string | undefined
    WebkitFontKerning?: csstype.FontKerningProperty | undefined
    WebkitFontSmoothing?:
      | csstype.FontSmoothProperty<string | number>
      | undefined
    WebkitFontVariantLigatures?: string | undefined
    WebkitHyphens?: csstype.HyphensProperty | undefined
    WebkitJustifyContent?: string | undefined
    WebkitLineBreak?: csstype.LineBreakProperty | undefined
    WebkitLineClamp?: csstype.WebkitLineClampProperty | undefined
    WebkitMarginEnd?:
      | csstype.MarginInlineEndProperty<string | number>
      | undefined
    WebkitMarginStart?:
      | csstype.MarginInlineStartProperty<string | number>
      | undefined
    WebkitMaskAttachment?: string | undefined
    WebkitMaskBoxImageOutset?:
      | csstype.MaskBorderOutsetProperty<string | number>
      | undefined
    WebkitMaskBoxImageRepeat?: string | undefined
    WebkitMaskBoxImageSlice?: csstype.MaskBorderSliceProperty | undefined
    WebkitMaskBoxImageSource?: string | undefined
    WebkitMaskBoxImageWidth?:
      | csstype.MaskBorderWidthProperty<string | number>
      | undefined
    WebkitMaskClip?: string | undefined
    WebkitMaskComposite?: string | undefined
    WebkitMaskImage?: string | undefined
    WebkitMaskOrigin?: string | undefined
    WebkitMaskPosition?:
      | csstype.WebkitMaskPositionProperty<string | number>
      | undefined
    WebkitMaskPositionX?:
      | csstype.WebkitMaskPositionXProperty<string | number>
      | undefined
    WebkitMaskPositionY?:
      | csstype.WebkitMaskPositionYProperty<string | number>
      | undefined
    WebkitMaskRepeat?: string | undefined
    WebkitMaskRepeatX?: csstype.WebkitMaskRepeatXProperty | undefined
    WebkitMaskRepeatY?: csstype.WebkitMaskRepeatYProperty | undefined
    WebkitMaskSize?: csstype.WebkitMaskSizeProperty<string | number> | undefined
    WebkitMaxInlineSize?:
      | csstype.MaxInlineSizeProperty<string | number>
      | undefined
    WebkitOrder?: csstype.GlobalsNumber | undefined
    WebkitOverflowScrolling?:
      | csstype.WebkitOverflowScrollingProperty
      | undefined
    WebkitPaddingEnd?:
      | csstype.PaddingInlineEndProperty<string | number>
      | undefined
    WebkitPaddingStart?:
      | csstype.PaddingInlineStartProperty<string | number>
      | undefined
    WebkitPerspective?: csstype.PerspectiveProperty<string | number> | undefined
    WebkitPerspectiveOrigin?:
      | csstype.PerspectiveOriginProperty<string | number>
      | undefined
    WebkitPrintColorAdjust?: csstype.ColorAdjustProperty | undefined
    WebkitRubyPosition?: string | undefined
    WebkitScrollSnapType?: string | undefined
    WebkitShapeMargin?: csstype.ShapeMarginProperty<string | number> | undefined
    WebkitTapHighlightColor?: string | undefined
    WebkitTextCombine?: string | undefined
    WebkitTextDecorationColor?: string | undefined
    WebkitTextDecorationLine?: string | undefined
    WebkitTextDecorationSkip?: string | undefined
    WebkitTextDecorationStyle?: csstype.TextDecorationStyleProperty | undefined
    WebkitTextEmphasisColor?: string | undefined
    WebkitTextEmphasisPosition?: string | undefined
    WebkitTextEmphasisStyle?: string | undefined
    WebkitTextFillColor?: string | undefined
    WebkitTextOrientation?: csstype.TextOrientationProperty | undefined
    WebkitTextSizeAdjust?: string | undefined
    WebkitTextStrokeColor?: string | undefined
    WebkitTextStrokeWidth?:
      | csstype.WebkitTextStrokeWidthProperty<string | number>
      | undefined
    WebkitTextUnderlinePosition?: string | undefined
    WebkitTouchCallout?: csstype.WebkitTouchCalloutProperty | undefined
    WebkitTransform?: string | undefined
    WebkitTransformOrigin?:
      | csstype.TransformOriginProperty<string | number>
      | undefined
    WebkitTransformStyle?: csstype.TransformStyleProperty | undefined
    WebkitTransitionDelay?: string | undefined
    WebkitTransitionDuration?: string | undefined
    WebkitTransitionProperty?: string | undefined
    WebkitTransitionTimingFunction?: string | undefined
    WebkitUserModify?: csstype.WebkitUserModifyProperty | undefined
    WebkitUserSelect?: csstype.UserSelectProperty | undefined
    WebkitWritingMode?: csstype.WritingModeProperty | undefined
    MozAnimation?: csstype.AnimationProperty | undefined
    MozBorderImage?: csstype.BorderImageProperty | undefined
    MozColumnRule?: csstype.ColumnRuleProperty<string | number> | undefined
    MozColumns?: csstype.ColumnsProperty<string | number> | undefined
    MozTransition?: string | undefined
    msContentZoomLimit?: string | undefined
    msContentZoomSnap?: string | undefined
    msFlex?: csstype.FlexProperty<string | number> | undefined
    msScrollLimit?: string | undefined
    msScrollSnapX?: string | undefined
    msScrollSnapY?: string | undefined
    msTransition?: string | undefined
    WebkitAnimation?: csstype.AnimationProperty | undefined
    WebkitBorderBefore?:
      | csstype.WebkitBorderBeforeProperty<string | number>
      | undefined
    WebkitBorderImage?: csstype.BorderImageProperty | undefined
    WebkitBorderRadius?:
      | csstype.BorderRadiusProperty<string | number>
      | undefined
    WebkitColumnRule?: csstype.ColumnRuleProperty<string | number> | undefined
    WebkitColumns?: csstype.ColumnsProperty<string | number> | undefined
    WebkitFlex?: csstype.FlexProperty<string | number> | undefined
    WebkitFlexFlow?: string | undefined
    WebkitMask?: csstype.WebkitMaskProperty<string | number> | undefined
    WebkitMaskBoxImage?: csstype.MaskBorderProperty | undefined
    WebkitTextEmphasis?: string | undefined
    WebkitTextStroke?:
      | csstype.WebkitTextStrokeProperty<string | number>
      | undefined
    WebkitTransition?: string | undefined
    azimuth?: string | undefined
    boxAlign?: csstype.BoxAlignProperty | undefined
    boxDirection?: csstype.BoxDirectionProperty | undefined
    boxFlex?: csstype.GlobalsNumber | undefined
    boxFlexGroup?: csstype.GlobalsNumber | undefined
    boxLines?: csstype.BoxLinesProperty | undefined
    boxOrdinalGroup?: csstype.GlobalsNumber | undefined
    boxOrient?: csstype.BoxOrientProperty | undefined
    boxPack?: csstype.BoxPackProperty | undefined
    clip?: string | undefined
    fontVariantAlternates?: string | undefined
    gridColumnGap?: csstype.GridColumnGapProperty<string | number> | undefined
    gridGap?: csstype.GridGapProperty<string | number> | undefined
    gridRowGap?: csstype.GridRowGapProperty<string | number> | undefined
    imeMode?: csstype.ImeModeProperty | undefined
    offsetBlock?: csstype.InsetBlockProperty<string | number> | undefined
    offsetBlockEnd?: csstype.InsetBlockEndProperty<string | number> | undefined
    offsetBlockStart?:
      | csstype.InsetBlockStartProperty<string | number>
      | undefined
    offsetInline?: csstype.InsetInlineProperty<string | number> | undefined
    offsetInlineEnd?:
      | csstype.InsetInlineEndProperty<string | number>
      | undefined
    offsetInlineStart?:
      | csstype.InsetInlineStartProperty<string | number>
      | undefined
    scrollSnapCoordinate?:
      | csstype.ScrollSnapCoordinateProperty<string | number>
      | undefined
    scrollSnapDestination?:
      | csstype.ScrollSnapDestinationProperty<string | number>
      | undefined
    scrollSnapPointsX?: string | undefined
    scrollSnapPointsY?: string | undefined
    scrollSnapTypeX?: csstype.ScrollSnapTypeXProperty | undefined
    scrollSnapTypeY?: csstype.ScrollSnapTypeYProperty | undefined
    scrollbarTrackColor?: string | undefined
    KhtmlBoxAlign?: csstype.BoxAlignProperty | undefined
    KhtmlBoxDirection?: csstype.BoxDirectionProperty | undefined
    KhtmlBoxFlex?: csstype.GlobalsNumber | undefined
    KhtmlBoxFlexGroup?: csstype.GlobalsNumber | undefined
    KhtmlBoxLines?: csstype.BoxLinesProperty | undefined
    KhtmlBoxOrdinalGroup?: csstype.GlobalsNumber | undefined
    KhtmlBoxOrient?: csstype.BoxOrientProperty | undefined
    KhtmlBoxPack?: csstype.BoxPackProperty | undefined
    KhtmlLineBreak?: csstype.LineBreakProperty | undefined
    KhtmlOpacity?: csstype.OpacityProperty | undefined
    KhtmlUserSelect?: csstype.UserSelectProperty | undefined
    MozBackgroundClip?: string | undefined
    MozBackgroundInlinePolicy?: csstype.BoxDecorationBreakProperty | undefined
    MozBackgroundOrigin?: string | undefined
    MozBackgroundSize?:
      | csstype.BackgroundSizeProperty<string | number>
      | undefined
    MozBinding?: string | undefined
    MozBorderRadius?: csstype.BorderRadiusProperty<string | number> | undefined
    MozBorderRadiusBottomleft?:
      | csstype.BorderBottomLeftRadiusProperty<string | number>
      | undefined
    MozBorderRadiusBottomright?:
      | csstype.BorderBottomRightRadiusProperty<string | number>
      | undefined
    MozBorderRadiusTopleft?:
      | csstype.BorderTopLeftRadiusProperty<string | number>
      | undefined
    MozBorderRadiusTopright?:
      | csstype.BorderTopRightRadiusProperty<string | number>
      | undefined
    MozBoxAlign?: csstype.BoxAlignProperty | undefined
    MozBoxDirection?: csstype.BoxDirectionProperty | undefined
    MozBoxFlex?: csstype.GlobalsNumber | undefined
    MozBoxOrdinalGroup?: csstype.GlobalsNumber | undefined
    MozBoxOrient?: csstype.BoxOrientProperty | undefined
    MozBoxPack?: csstype.BoxPackProperty | undefined
    MozBoxShadow?: string | undefined
    MozFloatEdge?: csstype.MozFloatEdgeProperty | undefined
    MozForceBrokenImageIcon?: csstype.GlobalsNumber | undefined
    MozOpacity?: csstype.OpacityProperty | undefined
    MozOutline?: csstype.OutlineProperty<string | number> | undefined
    MozOutlineColor?: string | undefined
    MozOutlineRadius?:
      | csstype.MozOutlineRadiusProperty<string | number>
      | undefined
    MozOutlineRadiusBottomleft?:
      | csstype.MozOutlineRadiusBottomleftProperty<string | number>
      | undefined
    MozOutlineRadiusBottomright?:
      | csstype.MozOutlineRadiusBottomrightProperty<string | number>
      | undefined
    MozOutlineRadiusTopleft?:
      | csstype.MozOutlineRadiusTopleftProperty<string | number>
      | undefined
    MozOutlineRadiusTopright?:
      | csstype.MozOutlineRadiusToprightProperty<string | number>
      | undefined
    MozOutlineStyle?: string | undefined
    MozOutlineWidth?: csstype.OutlineWidthProperty<string | number> | undefined
    MozTextAlignLast?: csstype.TextAlignLastProperty | undefined
    MozTextDecorationColor?: string | undefined
    MozTextDecorationLine?: string | undefined
    MozTextDecorationStyle?: csstype.TextDecorationStyleProperty | undefined
    MozUserInput?: csstype.MozUserInputProperty | undefined
    msImeMode?: csstype.ImeModeProperty | undefined
    msScrollbarTrackColor?: string | undefined
    OAnimation?: csstype.AnimationProperty | undefined
    OAnimationDelay?: string | undefined
    OAnimationDirection?: string | undefined
    OAnimationDuration?: string | undefined
    OAnimationFillMode?: string | undefined
    OAnimationIterationCount?:
      | csstype.AnimationIterationCountProperty
      | undefined
    OAnimationName?: string | undefined
    OAnimationPlayState?: string | undefined
    OAnimationTimingFunction?: string | undefined
    OBackgroundSize?:
      | csstype.BackgroundSizeProperty<string | number>
      | undefined
    OBorderImage?: csstype.BorderImageProperty | undefined
    OObjectFit?: csstype.ObjectFitProperty | undefined
    OObjectPosition?:
      | csstype.ObjectPositionProperty<string | number>
      | undefined
    OTabSize?: csstype.TabSizeProperty<string | number> | undefined
    OTextOverflow?: string | undefined
    OTransform?: string | undefined
    OTransformOrigin?:
      | csstype.TransformOriginProperty<string | number>
      | undefined
    OTransition?: string | undefined
    OTransitionDelay?: string | undefined
    OTransitionDuration?: string | undefined
    OTransitionProperty?: string | undefined
    OTransitionTimingFunction?: string | undefined
    WebkitBoxAlign?: csstype.BoxAlignProperty | undefined
    WebkitBoxDirection?: csstype.BoxDirectionProperty | undefined
    WebkitBoxFlex?: csstype.GlobalsNumber | undefined
    WebkitBoxFlexGroup?: csstype.GlobalsNumber | undefined
    WebkitBoxLines?: csstype.BoxLinesProperty | undefined
    WebkitBoxOrdinalGroup?: csstype.GlobalsNumber | undefined
    WebkitBoxOrient?: csstype.BoxOrientProperty | undefined
    WebkitBoxPack?: csstype.BoxPackProperty | undefined
    WebkitScrollSnapPointsX?: string | undefined
    WebkitScrollSnapPointsY?: string | undefined
    alignmentBaseline?: csstype.AlignmentBaselineProperty | undefined
    baselineShift?: csstype.BaselineShiftProperty<string | number> | undefined
    clipRule?: csstype.ClipRuleProperty | undefined
    colorInterpolation?: csstype.ColorInterpolationProperty | undefined
    colorRendering?: csstype.ColorRenderingProperty | undefined
    dominantBaseline?: csstype.DominantBaselineProperty | undefined
    fill?: string | undefined
    fillOpacity?: csstype.GlobalsNumber | undefined
    fillRule?: csstype.FillRuleProperty | undefined
    floodColor?: string | undefined
    floodOpacity?: csstype.GlobalsNumber | undefined
    glyphOrientationVertical?:
      | csstype.GlyphOrientationVerticalProperty
      | undefined
    lightingColor?: string | undefined
    marker?: string | undefined
    markerEnd?: string | undefined
    markerMid?: string | undefined
    markerStart?: string | undefined
    shapeRendering?: csstype.ShapeRenderingProperty | undefined
    stopColor?: string | undefined
    stopOpacity?: csstype.GlobalsNumber | undefined
    stroke?: string | undefined
    strokeDasharray?:
      | csstype.StrokeDasharrayProperty<string | number>
      | undefined
    strokeDashoffset?:
      | csstype.StrokeDashoffsetProperty<string | number>
      | undefined
    strokeLinecap?: csstype.StrokeLinecapProperty | undefined
    strokeLinejoin?: csstype.StrokeLinejoinProperty | undefined
    strokeMiterlimit?: csstype.GlobalsNumber | undefined
    strokeOpacity?: csstype.GlobalsNumber | undefined
    strokeWidth?: csstype.StrokeWidthProperty<string | number> | undefined
    textAnchor?: csstype.TextAnchorProperty | undefined
    vectorEffect?: csstype.VectorEffectProperty | undefined
  }
  transform: {
    x?: string | number | undefined
    y?: string | number | undefined
    z?: string | number | undefined
    translateX?: string | number | undefined
    translateY?: string | number | undefined
    translateZ?: string | number | undefined
    rotate?: string | number | undefined
    rotateX?: string | number | undefined
    rotateY?: string | number | undefined
    rotateZ?: string | number | undefined
    scale?: string | number | undefined
    scaleX?: string | number | undefined
    scaleY?: string | number | undefined
    scaleZ?: string | number | undefined
    skew?: string | number | undefined
    skewX?: string | number | undefined
    skewY?: string | number | undefined
    originX?: string | number | undefined
    originY?: string | number | undefined
    originZ?: string | number | undefined
    perspective?: string | number | undefined
    transformPerspective?: string | number | undefined
  }
  stop: () => void
}

declare function useMotions(): MotionInstanceBindings<MotionVariants>

/**
 * A Composable holding all the ongoing transitions in a local reference.
 */
declare function useMotionTransitions(): MotionTransitions

/**
 * A Composable handling variants selection and features.
 *
 * @param variants
 * @param initial
 * @param options
 */
declare function useMotionVariants<T extends MotionVariants>(
  variants?: MaybeRef<T>,
): {
  state: vue_demi.ComputedRef<Variant | undefined>
  variant: Ref<keyof T>
}

declare type UseSpringOptions = Partial<Spring> & {
  target?: MaybeRef$1<PermissiveTarget>
}
declare function useSpring(
  values: Partial<PermissiveMotionProperties>,
  spring?: UseSpringOptions,
): SpringControls

/**
 * Check whether an object is a Motion Instance or not.
 *
 * Can be useful while building packages based on @vueuse/motion.
 *
 * @param obj
 * @returns bool
 */
declare function isMotionInstance(obj: any): obj is MotionInstance

/**
 * Convert a string to a slug.
 *
 * Source: https://gist.github.com/hagemann/382adfc57adbd5af078dc93feef01fe1
 * Credits: @hagemann
 *
 * Edited to transform camel naming to slug with `-`.
 *
 * @param str
 */
declare function slugify(string: string): string

/**
 * Reactive prefers-reduced-motion.
 *
 * @param options
 */
declare function useReducedMotion(options?: { window?: Window }): Ref<boolean>

export {
  CustomValueType,
  Easing,
  EasingFunction,
  Inertia,
  Keyframes,
  KeyframesTarget,
  MakeCustomValueType,
  MakeKeyframes,
  MotionControls,
  directive as MotionDirective,
  MotionInstance,
  MotionInstanceBindings,
  MotionPlugin,
  MotionPluginOptions,
  MotionProperties,
  MotionTarget,
  MotionTransitions,
  MotionValuesMap,
  MotionVariants,
  Omit,
  Orchestration,
  PassiveEffect,
  PermissiveMotionProperties,
  PermissiveTarget,
  PermissiveTransitionDefinition,
  PopmotionTransitionProps,
  PropertiesKeys,
  Props,
  Repeat,
  ResolvedKeyframesTarget,
  ResolvedSingleTarget,
  ResolvedValueTarget,
  SVGPathProperties,
  SingleTarget,
  Spring,
  SpringControls,
  StartAnimation,
  StopAnimation,
  StyleProperties,
  Subscriber,
  Target,
  TargetAndTransition,
  TargetResolver,
  TargetWithKeyframes,
  TransformProperties,
  Transformer,
  Transition,
  TransitionDefinition,
  TransitionMap,
  Tween,
  UseMotionOptions,
  ValueTarget,
  Variant,
  fade,
  fadeVisible,
  isMotionInstance,
  pop,
  popVisible,
  reactiveStyle,
  reactiveTransform,
  rollBottom,
  rollLeft,
  rollRight,
  rollTop,
  rollVisibleBottom,
  rollVisibleLeft,
  rollVisibleRight,
  rollVisibleTop,
  slideBottom,
  slideLeft,
  slideRight,
  slideTop,
  slideVisibleBottom,
  slideVisibleLeft,
  slideVisibleRight,
  slideVisibleTop,
  slugify,
  useElementStyle,
  useElementTransform,
  useMotion,
  useMotionControls,
  useMotionProperties,
  useMotionTransitions,
  useMotionVariants,
  useMotions,
  useReducedMotion,
  useSpring,
}
<file_sep>/*!
 * @vueuse/motion v1.6.0
 * (c) 2021
 * @license MIT
 */
import {
  set,
  del,
  unref,
  ref,
  computed,
  watch,
  nextTick,
  reactive,
  isRef,
} from 'vue-demi'
import {
  isObject,
  unrefElement,
  useEventListener,
  useIntersectionObserver,
  noop,
  isNumber,
  useMediaQuery,
} from '@vueuse/core'
import { tryOnUnmounted, isFunction } from '@vueuse/shared'
import {
  velocityPerSecond,
  inertia,
  animate,
  cubicBezier,
  linear,
  easeIn,
  easeInOut,
  easeOut,
  circIn,
  circInOut,
  circOut,
  backIn,
  backInOut,
  backOut,
  anticipate,
  bounceIn,
  bounceInOut,
  bounceOut,
} from 'popmotion'

const motionState = {}

/*! *****************************************************************************
Copyright (c) Microsoft Corporation.

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */

var __assign = function () {
  __assign =
    Object.assign ||
    function __assign(t) {
      for (var s, i = 1, n = arguments.length; i < n; i++) {
        s = arguments[i]
        for (var p in s)
          if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]
      }
      return t
    }
  return __assign.apply(this, arguments)
}

function __rest(s, e) {
  var t = {}
  for (var p in s)
    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
      t[p] = s[p]
  if (s != null && typeof Object.getOwnPropertySymbols === 'function')
    for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
      if (
        e.indexOf(p[i]) < 0 &&
        Object.prototype.propertyIsEnumerable.call(s, p[i])
      )
        t[p[i]] = s[p[i]]
    }
  return t
}

function __awaiter(thisArg, _arguments, P, generator) {
  function adopt(value) {
    return value instanceof P
      ? value
      : new P(function (resolve) {
          resolve(value)
        })
  }
  return new (P || (P = Promise))(function (resolve, reject) {
    function fulfilled(value) {
      try {
        step(generator.next(value))
      } catch (e) {
        reject(e)
      }
    }
    function rejected(value) {
      try {
        step(generator['throw'](value))
      } catch (e) {
        reject(e)
      }
    }
    function step(result) {
      result.done
        ? resolve(result.value)
        : adopt(result.value).then(fulfilled, rejected)
    }
    step((generator = generator.apply(thisArg, _arguments || [])).next())
  })
}

var defaultTimestep = (1 / 60) * 1000
var getCurrentTime =
  typeof performance !== 'undefined'
    ? function () {
        return performance.now()
      }
    : function () {
        return Date.now()
      }
var onNextFrame =
  typeof window !== 'undefined'
    ? function (callback) {
        return window.requestAnimationFrame(callback)
      }
    : function (callback) {
        return setTimeout(function () {
          return callback(getCurrentTime())
        }, defaultTimestep)
      }

function createRenderStep(runNextFrame) {
  var toRun = []
  var toRunNextFrame = []
  var numToRun = 0
  var isProcessing = false
  var toKeepAlive = new WeakSet()
  var step = {
    schedule: function (callback, keepAlive, immediate) {
      if (keepAlive === void 0) {
        keepAlive = false
      }
      if (immediate === void 0) {
        immediate = false
      }
      var addToCurrentFrame = immediate && isProcessing
      var buffer = addToCurrentFrame ? toRun : toRunNextFrame
      if (keepAlive) toKeepAlive.add(callback)
      if (buffer.indexOf(callback) === -1) {
        buffer.push(callback)
        if (addToCurrentFrame && isProcessing) numToRun = toRun.length
      }
      return callback
    },
    cancel: function (callback) {
      var index = toRunNextFrame.indexOf(callback)
      if (index !== -1) toRunNextFrame.splice(index, 1)
      toKeepAlive.delete(callback)
    },
    process: function (frameData) {
      var _a
      isProcessing = true
      ;(_a = [toRunNextFrame, toRun]), (toRun = _a[0]), (toRunNextFrame = _a[1])
      toRunNextFrame.length = 0
      numToRun = toRun.length
      if (numToRun) {
        for (var i = 0; i < numToRun; i++) {
          var callback = toRun[i]
          callback(frameData)
          if (toKeepAlive.has(callback)) {
            step.schedule(callback)
            runNextFrame()
          }
        }
      }
      isProcessing = false
    },
  }
  return step
}

var maxElapsed = 40
var useDefaultElapsed = true
var runNextFrame = false
var isProcessing = false
var frame = {
  delta: 0,
  timestamp: 0,
}
var stepsOrder = ['read', 'update', 'preRender', 'render', 'postRender']
var steps = /*#__PURE__*/ stepsOrder.reduce(function (acc, key) {
  acc[key] = createRenderStep(function () {
    return (runNextFrame = true)
  })
  return acc
}, {})
var sync = /*#__PURE__*/ stepsOrder.reduce(function (acc, key) {
  var step = steps[key]
  acc[key] = function (process, keepAlive, immediate) {
    if (keepAlive === void 0) {
      keepAlive = false
    }
    if (immediate === void 0) {
      immediate = false
    }
    if (!runNextFrame) startLoop()
    return step.schedule(process, keepAlive, immediate)
  }
  return acc
}, {})
var processStep = function (stepId) {
  return steps[stepId].process(frame)
}
var processFrame = function (timestamp) {
  runNextFrame = false
  frame.delta = useDefaultElapsed
    ? defaultTimestep
    : Math.max(Math.min(timestamp - frame.timestamp, maxElapsed), 1)
  frame.timestamp = timestamp
  isProcessing = true
  stepsOrder.forEach(processStep)
  isProcessing = false
  if (runNextFrame) {
    useDefaultElapsed = false
    onNextFrame(processFrame)
  }
}
var startLoop = function () {
  runNextFrame = true
  useDefaultElapsed = true
  if (!isProcessing) onNextFrame(processFrame)
}
var getFrameData = function () {
  return frame
}

/**
 * A generic subscription manager.
 */
class SubscriptionManager {
  constructor() {
    this.subscriptions = new Set()
  }
  add(handler) {
    this.subscriptions.add(handler)
    return () => void this.subscriptions.delete(handler)
  }
  notify(
    /**
     * Using ...args would be preferable but it's array creation and this
     * might be fired every frame.
     */
    a,
    b,
    c,
  ) {
    if (!this.subscriptions.size) return
    for (const handler of this.subscriptions) {
      handler(a, b, c)
    }
  }
  clear() {
    this.subscriptions.clear()
  }
}

const isFloat = (value) => {
  return !isNaN(parseFloat(value))
}
/**
 * `MotionValue` is used to track the state and velocity of motion values.
 */
class MotionValue {
  /**
   * @param init - The initiating value
   * @param config - Optional configuration options
   */
  constructor(init) {
    /**
     * Duration, in milliseconds, since last updating frame.
     */
    this.timeDelta = 0
    /**
     * Timestamp of the last time this `MotionValue` was updated.
     */
    this.lastUpdated = 0
    /**
     * Functions to notify when the `MotionValue` updates.
     */
    this.updateSubscribers = new SubscriptionManager()
    /**
     * Tracks whether this value can output a velocity.
     */
    this.canTrackVelocity = false
    /**
     * Update and notify `MotionValue` subscribers.
     *
     * @param v
     * @param render
     */
    this.updateAndNotify = (v) => {
      // Update values
      this.prev = this.current
      this.current = v
      // Get frame data
      const { delta, timestamp } = getFrameData()
      // Update timestamp
      if (this.lastUpdated !== timestamp) {
        this.timeDelta = delta
        this.lastUpdated = timestamp
      }
      // Schedule velocity check post frame render
      sync.postRender(this.scheduleVelocityCheck)
      // Update subscribers
      this.updateSubscribers.notify(this.current)
    }
    /**
     * Schedule a velocity check for the next frame.
     */
    this.scheduleVelocityCheck = () => sync.postRender(this.velocityCheck)
    /**
     * Updates `prev` with `current` if the value hasn't been updated this frame.
     * This ensures velocity calculations return `0`.
     */
    this.velocityCheck = ({ timestamp }) => {
      if (!this.canTrackVelocity) this.canTrackVelocity = isFloat(this.current)
      if (timestamp !== this.lastUpdated) {
        this.prev = this.current
      }
    }
    this.prev = this.current = init
    this.canTrackVelocity = isFloat(this.current)
  }
  /**
   * Adds a function that will be notified when the `MotionValue` is updated.
   *
   * It returns a function that, when called, will cancel the subscription.
   */
  onChange(subscription) {
    return this.updateSubscribers.add(subscription)
  }
  clearListeners() {
    this.updateSubscribers.clear()
  }
  /**
   * Sets the state of the `MotionValue`.
   *
   * @param v
   * @param render
   */
  set(v) {
    this.updateAndNotify(v)
  }
  /**
   * Returns the latest state of `MotionValue`
   *
   * @returns - The latest state of `MotionValue`
   */
  get() {
    return this.current
  }
  /**
   * Get previous value.
   *
   * @returns - The previous latest state of `MotionValue`
   */
  getPrevious() {
    return this.prev
  }
  /**
   * Returns the latest velocity of `MotionValue`
   *
   * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.
   */
  getVelocity() {
    // This could be isFloat(this.prev) && isFloat(this.current), but that would be wasteful
    return this.canTrackVelocity
      ? // These casts could be avoided if parseFloat would be typed better
        velocityPerSecond(
          parseFloat(this.current) - parseFloat(this.prev),
          this.timeDelta,
        )
      : 0
  }
  /**
   * Registers a new animation to control this `MotionValue`. Only one
   * animation can drive a `MotionValue` at one time.
   */
  start(animation) {
    this.stop()
    return new Promise((resolve) => {
      const { stop } = animation(resolve)
      this.stopAnimation = stop
    }).then(() => this.clearAnimation())
  }
  /**
   * Stop the currently active animation.
   */
  stop() {
    if (this.stopAnimation) this.stopAnimation()
    this.clearAnimation()
  }
  /**
   * Returns `true` if this value is currently animating.
   */
  isAnimating() {
    return !!this.stopAnimation
  }
  /**
   * Clear the current animation reference.
   */
  clearAnimation() {
    this.stopAnimation = null
  }
  /**
   * Destroy and clean up subscribers to this `MotionValue`.
   */
  destroy() {
    this.updateSubscribers.clear()
    this.stop()
  }
}
function getMotionValue(init) {
  return new MotionValue(init)
}

const { isArray } = Array
function useMotionValues() {
  const motionValues = {}
  const stop = (keys) => {
    // Destroy key closure
    const destroyKey = (key) => {
      if (!motionValues[key]) return
      motionValues[key].stop()
      motionValues[key].destroy()
      del(motionValues, key)
    }
    // Check if keys argument is defined
    if (keys) {
      if (isArray(keys)) {
        // If `keys` are an array, loop on specified keys and destroy them
        keys.forEach(destroyKey)
      } else {
        // If `keys` is a string, destroy the specified one
        destroyKey(keys)
      }
    } else {
      // No keys specified, destroy all animations
      Object.keys(motionValues).forEach(destroyKey)
    }
  }
  const get = (key, from, target) => {
    if (motionValues[key]) return motionValues[key]
    // Create motion value
    const motionValue = getMotionValue(from)
    // Set motion properties mapping
    motionValue.onChange((v) => {
      set(target, key, v)
    })
    // Set instance motion value
    set(motionValues, key, motionValue)
    return motionValue
  }
  // Ensure everything is cleared on unmount
  tryOnUnmounted(stop)
  return {
    motionValues,
    get,
    stop,
  }
}

var clamp = function (min, max) {
  return function (v) {
    return Math.max(Math.min(v, max), min)
  }
}
var sanitize = function (v) {
  return v % 1 ? Number(v.toFixed(5)) : v
}
var floatRegex = /(-)?([\d]*\.?[\d])+/g
var colorRegex =
  /(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))/gi
var singleColorRegex =
  /^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i
function isString(v) {
  return typeof v === 'string'
}

var number = {
  test: function (v) {
    return typeof v === 'number'
  },
  parse: parseFloat,
  transform: function (v) {
    return v
  },
}
var alpha = __assign(__assign({}, number), { transform: clamp(0, 1) })
var scale = __assign(__assign({}, number), { default: 1 })

var createUnitType = function (unit) {
  return {
    test: function (v) {
      return isString(v) && v.endsWith(unit) && v.split(' ').length === 1
    },
    parse: parseFloat,
    transform: function (v) {
      return '' + v + unit
    },
  }
}
var degrees = createUnitType('deg')
var percent = createUnitType('%')
var px = createUnitType('px')
var progressPercentage = __assign(__assign({}, percent), {
  parse: function (v) {
    return percent.parse(v) / 100
  },
  transform: function (v) {
    return percent.transform(v * 100)
  },
})

var isColorString = function (type, testProp) {
  return function (v) {
    return Boolean(
      (isString(v) && singleColorRegex.test(v) && v.startsWith(type)) ||
        (testProp && Object.prototype.hasOwnProperty.call(v, testProp)),
    )
  }
}
var splitColor = function (aName, bName, cName) {
  return function (v) {
    var _a
    if (!isString(v)) return v
    var _b = v.match(floatRegex),
      a = _b[0],
      b = _b[1],
      c = _b[2],
      alpha = _b[3]
    return (
      (_a = {}),
      (_a[aName] = parseFloat(a)),
      (_a[bName] = parseFloat(b)),
      (_a[cName] = parseFloat(c)),
      (_a.alpha = alpha !== undefined ? parseFloat(alpha) : 1),
      _a
    )
  }
}

var hsla = {
  test: isColorString('hsl', 'hue'),
  parse: splitColor('hue', 'saturation', 'lightness'),
  transform: function (_a) {
    var hue = _a.hue,
      saturation = _a.saturation,
      lightness = _a.lightness,
      _b = _a.alpha,
      alpha$1 = _b === void 0 ? 1 : _b
    return (
      'hsla(' +
      Math.round(hue) +
      ', ' +
      percent.transform(sanitize(saturation)) +
      ', ' +
      percent.transform(sanitize(lightness)) +
      ', ' +
      sanitize(alpha.transform(alpha$1)) +
      ')'
    )
  },
}

var clampRgbUnit = clamp(0, 255)
var rgbUnit = __assign(__assign({}, number), {
  transform: function (v) {
    return Math.round(clampRgbUnit(v))
  },
})
var rgba = {
  test: isColorString('rgb', 'red'),
  parse: splitColor('red', 'green', 'blue'),
  transform: function (_a) {
    var red = _a.red,
      green = _a.green,
      blue = _a.blue,
      _b = _a.alpha,
      alpha$1 = _b === void 0 ? 1 : _b
    return (
      'rgba(' +
      rgbUnit.transform(red) +
      ', ' +
      rgbUnit.transform(green) +
      ', ' +
      rgbUnit.transform(blue) +
      ', ' +
      sanitize(alpha.transform(alpha$1)) +
      ')'
    )
  },
}

function parseHex(v) {
  var r = ''
  var g = ''
  var b = ''
  var a = ''
  if (v.length > 5) {
    r = v.substr(1, 2)
    g = v.substr(3, 2)
    b = v.substr(5, 2)
    a = v.substr(7, 2)
  } else {
    r = v.substr(1, 1)
    g = v.substr(2, 1)
    b = v.substr(3, 1)
    a = v.substr(4, 1)
    r += r
    g += g
    b += b
    a += a
  }
  return {
    red: parseInt(r, 16),
    green: parseInt(g, 16),
    blue: parseInt(b, 16),
    alpha: a ? parseInt(a, 16) / 255 : 1,
  }
}
var hex = {
  test: isColorString('#'),
  parse: parseHex,
  transform: rgba.transform,
}

var color = {
  test: function (v) {
    return rgba.test(v) || hex.test(v) || hsla.test(v)
  },
  parse: function (v) {
    if (rgba.test(v)) {
      return rgba.parse(v)
    } else if (hsla.test(v)) {
      return hsla.parse(v)
    } else {
      return hex.parse(v)
    }
  },
  transform: function (v) {
    return isString(v)
      ? v
      : v.hasOwnProperty('red')
      ? rgba.transform(v)
      : hsla.transform(v)
  },
}

var colorToken = '${c}'
var numberToken = '${n}'
function test(v) {
  var _a, _b, _c, _d
  return (
    isNaN(v) &&
    isString(v) &&
    ((_b =
      (_a = v.match(floatRegex)) === null || _a === void 0
        ? void 0
        : _a.length) !== null && _b !== void 0
      ? _b
      : 0) +
      ((_d =
        (_c = v.match(colorRegex)) === null || _c === void 0
          ? void 0
          : _c.length) !== null && _d !== void 0
        ? _d
        : 0) >
      0
  )
}
function analyse(v) {
  var values = []
  var numColors = 0
  var colors = v.match(colorRegex)
  if (colors) {
    numColors = colors.length
    v = v.replace(colorRegex, colorToken)
    values.push.apply(values, colors.map(color.parse))
  }
  var numbers = v.match(floatRegex)
  if (numbers) {
    v = v.replace(floatRegex, numberToken)
    values.push.apply(values, numbers.map(number.parse))
  }
  return { values: values, numColors: numColors, tokenised: v }
}
function parse(v) {
  return analyse(v).values
}
function createTransformer(v) {
  var _a = analyse(v),
    values = _a.values,
    numColors = _a.numColors,
    tokenised = _a.tokenised
  var numValues = values.length
  return function (v) {
    var output = tokenised
    for (var i = 0; i < numValues; i++) {
      output = output.replace(
        i < numColors ? colorToken : numberToken,
        i < numColors ? color.transform(v[i]) : sanitize(v[i]),
      )
    }
    return output
  }
}
var convertNumbersToZero = function (v) {
  return typeof v === 'number' ? 0 : v
}
function getAnimatableNone$1(v) {
  var parsed = parse(v)
  var transformer = createTransformer(v)
  return transformer(parsed.map(convertNumbersToZero))
}
var complex = {
  test: test,
  parse: parse,
  createTransformer: createTransformer,
  getAnimatableNone: getAnimatableNone$1,
}

var maxDefaults = new Set(['brightness', 'contrast', 'saturate', 'opacity'])
function applyDefaultFilter(v) {
  var _a = v.slice(0, -1).split('('),
    name = _a[0],
    value = _a[1]
  if (name === 'drop-shadow') return v
  var number = (value.match(floatRegex) || [])[0]
  if (!number) return v
  var unit = value.replace(number, '')
  var defaultValue = maxDefaults.has(name) ? 1 : 0
  if (number !== value) defaultValue *= 100
  return name + '(' + defaultValue + unit + ')'
}
var functionRegex = /([a-z-]*)\(.*?\)/g
var filter = __assign(__assign({}, complex), {
  getAnimatableNone: function (v) {
    var functions = v.match(functionRegex)
    return functions ? functions.map(applyDefaultFilter).join(' ') : v
  },
})

const isKeyframesTarget = (v) => {
  return Array.isArray(v)
}
const underDampedSpring = () => ({
  type: 'spring',
  stiffness: 500,
  damping: 25,
  restDelta: 0.5,
  restSpeed: 10,
})
const criticallyDampedSpring = (to) => ({
  type: 'spring',
  stiffness: 550,
  damping: to === 0 ? 2 * Math.sqrt(550) : 30,
  restDelta: 0.01,
  restSpeed: 10,
})
const overDampedSpring = (to) => ({
  type: 'spring',
  stiffness: 550,
  damping: to === 0 ? 100 : 30,
  restDelta: 0.01,
  restSpeed: 10,
})
const linearTween = () => ({
  type: 'keyframes',
  ease: 'linear',
  duration: 300,
})
const keyframes = (values) => ({
  type: 'keyframes',
  duration: 800,
  values,
})
const defaultTransitions = {
  default: overDampedSpring,
  x: underDampedSpring,
  y: underDampedSpring,
  z: underDampedSpring,
  rotate: underDampedSpring,
  rotateX: underDampedSpring,
  rotateY: underDampedSpring,
  rotateZ: underDampedSpring,
  scaleX: criticallyDampedSpring,
  scaleY: criticallyDampedSpring,
  scale: criticallyDampedSpring,
  backgroundColor: linearTween,
  color: linearTween,
  opacity: linearTween,
}
const getDefaultTransition = (valueKey, to) => {
  let transitionFactory
  if (isKeyframesTarget(to)) {
    transitionFactory = keyframes
  } else {
    transitionFactory =
      defaultTransitions[valueKey] || defaultTransitions.default
  }
  return Object.assign({ to }, transitionFactory(to))
}

/**
 * ValueType for ints
 */
const int = Object.assign(Object.assign({}, number), { transform: Math.round })
const valueTypes = {
  // Color props
  color,
  backgroundColor: color,
  outlineColor: color,
  fill: color,
  stroke: color,
  // Border props
  borderColor: color,
  borderTopColor: color,
  borderRightColor: color,
  borderBottomColor: color,
  borderLeftColor: color,
  borderWidth: px,
  borderTopWidth: px,
  borderRightWidth: px,
  borderBottomWidth: px,
  borderLeftWidth: px,
  borderRadius: px,
  radius: px,
  borderTopLeftRadius: px,
  borderTopRightRadius: px,
  borderBottomRightRadius: px,
  borderBottomLeftRadius: px,
  // Positioning props
  width: px,
  maxWidth: px,
  height: px,
  maxHeight: px,
  size: px,
  top: px,
  right: px,
  bottom: px,
  left: px,
  // Spacing props
  padding: px,
  paddingTop: px,
  paddingRight: px,
  paddingBottom: px,
  paddingLeft: px,
  margin: px,
  marginTop: px,
  marginRight: px,
  marginBottom: px,
  marginLeft: px,
  // Transform props
  rotate: degrees,
  rotateX: degrees,
  rotateY: degrees,
  rotateZ: degrees,
  scale,
  scaleX: scale,
  scaleY: scale,
  scaleZ: scale,
  skew: degrees,
  skewX: degrees,
  skewY: degrees,
  distance: px,
  translateX: px,
  translateY: px,
  translateZ: px,
  x: px,
  y: px,
  z: px,
  perspective: px,
  transformPerspective: px,
  opacity: alpha,
  originX: progressPercentage,
  originY: progressPercentage,
  originZ: px,
  // Misc
  zIndex: int,
  filter,
  WebkitFilter: filter,
  // SVG
  fillOpacity: alpha,
  strokeOpacity: alpha,
  numOctaves: int,
}
/**
 * Return the value type for a key.
 *
 * @param key
 */
const getValueType = (key) => valueTypes[key]
/**
 * Transform the value using its value type, or return the value.
 *
 * @param value
 * @param type
 */
const getValueAsType = (value, type) => {
  return type && typeof value === 'number' && type.transform
    ? type.transform(value)
    : value
}
/**
 * Get default animatable
 *
 * @param key
 * @param value
 */
function getAnimatableNone(key, value) {
  let defaultValueType = getValueType(key)
  if (defaultValueType !== filter) defaultValueType = complex
  // If value is not recognised as animatable, ie "none", create an animatable version origin based on the target
  return defaultValueType.getAnimatableNone
    ? defaultValueType.getAnimatableNone(value)
    : undefined
}

// Easing map from popmotion
const easingLookup = {
  linear,
  easeIn,
  easeInOut,
  easeOut,
  circIn,
  circInOut,
  circOut,
  backIn,
  backInOut,
  backOut,
  anticipate,
  bounceIn,
  bounceInOut,
  bounceOut,
}
/**
 * Transform easing definition to easing function.
 *
 * @param definition
 */
const easingDefinitionToFunction = (definition) => {
  if (Array.isArray(definition)) {
    const [x1, y1, x2, y2] = definition
    return cubicBezier(x1, y1, x2, y2)
  } else if (typeof definition === 'string') {
    return easingLookup[definition]
  }
  return definition
}
/**
 * Create an easing array
 *
 * @param ease
 */
const isEasingArray = (ease) => {
  return Array.isArray(ease) && typeof ease[0] !== 'number'
}
/**
 * Check if a value is animatable. Examples:
 *
 * ✅: 100, "100px", "#fff"
 * ❌: "block", "url(2.jpg)"
 * @param value
 *
 * @internal
 */
const isAnimatable = (key, value) => {
  // If the list of keys tat might be non-animatable grows, replace with Set
  if (key === 'zIndex') return false
  // If it's a number or a keyframes array, we can animate it. We might at some point
  // need to do a deep isAnimatable check of keyframes, or let Popmotion handle this,
  // but for now lets leave it like this for performance reasons
  if (typeof value === 'number' || Array.isArray(value)) return true
  if (
    typeof value === 'string' && // It's animatable if we have a string
    complex.test(value) && // And it contains numbers and/or colors
    !value.startsWith('url(') // Unless it starts with "url("
  ) {
    return true
  }
  return false
}
/**
 * Hydrate keyframes from transition options.
 *
 * @param options
 */
function hydrateKeyframes(options) {
  if (Array.isArray(options.to) && options.to[0] === null) {
    options.to = [...options.to]
    options.to[0] = options.from
  }
  return options
}
/**
 * Convert Transition type into Popmotion-compatible options.
 */
function convertTransitionToAnimationOptions(_a) {
  var { ease, times, delay } = _a,
    transition = __rest(_a, ['ease', 'times', 'delay'])
  const options = Object.assign({}, transition)
  if (times) options['offset'] = times
  // Map easing names to Popmotion's easing functions
  if (ease) {
    options['ease'] = isEasingArray(ease)
      ? ease.map(easingDefinitionToFunction)
      : easingDefinitionToFunction(ease)
  }
  // Map delay to elapsed from Popmotion
  if (delay) {
    options['elapsed'] = -delay
  }
  return options
}
/**
 * Get PopMotion animation options from Transition definition
 *
 * @param transition
 * @param options
 * @param key
 */
function getPopmotionAnimationOptions(transition, options, key) {
  if (Array.isArray(options.to)) {
    if (!transition.duration) transition.duration = 800
  }
  hydrateKeyframes(options)
  // Get a default transition if none is determined to be defined.
  if (!isTransitionDefined(transition)) {
    transition = Object.assign(
      Object.assign({}, transition),
      getDefaultTransition(key, options.to),
    )
  }
  return Object.assign(
    Object.assign({}, options),
    convertTransitionToAnimationOptions(transition),
  )
}
/**
 * Decide whether a transition is defined on a given Transition.
 * This filters out orchestration options and returns true
 * if any options are left.
 */
function isTransitionDefined(_a) {
  var transition = __rest(_a, [
    'delay',
    'repeat',
    'repeatType',
    'repeatDelay',
    'from',
  ])
  return !!Object.keys(transition).length
}
/**
 * Get the transition definition for the current value.
 *
 * First search for transition nested definition (key or default),
 * then fallback on the main transition definition itself.
 *
 * @param transition
 * @param key
 */
function getValueTransition(transition, key) {
  return transition[key] || transition['default'] || transition
}
/**
 * Get the animation function populated with variant values.
 */
function getAnimation(key, value, target, transition, onComplete) {
  // Get key transition or fallback values
  const valueTransition = getValueTransition(transition, key)
  // Get origin
  let origin =
    valueTransition.from === null || valueTransition.from === undefined
      ? value.get()
      : valueTransition.from
  // Is target animatable
  const isTargetAnimatable = isAnimatable(key, target)
  // If we're trying to animate from "none", try and get an animatable version
  // of the target. This could be improved to work both ways.
  if (origin === 'none' && isTargetAnimatable && typeof target === 'string') {
    origin = getAnimatableNone(key, target)
  }
  // Is origin animatable
  const isOriginAnimatable = isAnimatable(key, origin)
  /**
   * Start the animation.
   */
  function start(complete) {
    const options = {
      from: origin,
      to: target,
      velocity: transition.velocity ? transition.velocity : value.getVelocity(),
      onUpdate: (v) => value.set(v),
    }
    return valueTransition.type === 'inertia' ||
      valueTransition.type === 'decay'
      ? inertia(Object.assign(Object.assign({}, options), valueTransition))
      : animate(
          Object.assign(
            Object.assign(
              {},
              getPopmotionAnimationOptions(valueTransition, options, key),
            ),
            {
              onUpdate: (v) => {
                options.onUpdate(v)
                if (valueTransition.onUpdate) valueTransition.onUpdate(v)
              },
              onComplete: () => {
                if (transition.onComplete) transition.onComplete()
                if (onComplete) onComplete()
                if (complete) complete()
              },
            },
          ),
        )
  }
  /**
   * Set value without transition.
   */
  function set(complete) {
    value.set(target)
    if (transition.onComplete) transition.onComplete()
    if (onComplete) onComplete()
    if (complete) complete()
    return { stop: () => {} }
  }
  return !isOriginAnimatable ||
    !isTargetAnimatable ||
    valueTransition.type === false
    ? set
    : start
}

/**
 * A Composable holding all the ongoing transitions in a local reference.
 */
function useMotionTransitions() {
  const { motionValues, stop, get } = useMotionValues()
  const push = (key, value, target, transition = {}, onComplete) => {
    // Get the `from` key from target
    const from = target[key]
    // Get motion value for the target key
    const motionValue = get(key, from, target)
    // Sets the value immediately if specified
    if (transition && transition.immediate) {
      motionValue.set(value)
      return
    }
    // Create animation
    const animation = getAnimation(
      key,
      motionValue,
      value,
      transition,
      onComplete,
    )
    // Start animation
    motionValue.start(animation)
  }
  return { motionValues, stop, push }
}

/**
 * A Composable handling motion controls, pushing resolved variant to useMotionTransitions manager.
 *
 * @param transform
 * @param style
 * @param currentVariant
 */
function useMotionControls(
  motionProperties,
  variants = {},
  { push, stop } = useMotionTransitions(),
) {
  // Variants as ref
  const _variants = unref(variants)
  const getVariantFromKey = (variant) => {
    if (!_variants || !_variants[variant]) {
      throw new Error(`The variant ${variant} does not exist.`)
    }
    return _variants[variant]
  }
  const apply = (variant) => {
    // If variant is a key, try to resolve it
    if (typeof variant === 'string') {
      variant = getVariantFromKey(variant)
    }
    // Return Promise chain
    return Promise.all(
      Object.entries(variant).map(([key, value]) => {
        // Skip transition key
        if (key === 'transition') return
        return new Promise((resolve) => {
          push(
            key,
            value,
            motionProperties,
            variant.transition || getDefaultTransition(key, variant[key]),
            resolve,
          )
        })
      }),
    )
  }
  const set = (variant) => {
    // Get variant data from parameter
    let variantData = isObject(variant) ? variant : getVariantFromKey(variant)
    // Set in chain
    Object.entries(variantData).forEach(([key, value]) => {
      // Skip transition key
      if (key === 'transition') return
      push(key, value, motionProperties, {
        immediate: true,
      })
    })
  }
  const leave = (done) =>
    __awaiter(this, void 0, void 0, function* () {
      let leaveVariant
      if (_variants) {
        if (_variants.leave) {
          leaveVariant = _variants.leave
        }
        if (!_variants.leave && _variants.initial) {
          leaveVariant = _variants.initial
        }
      }
      if (!leaveVariant) {
        done()
        return
      }
      yield apply(leaveVariant)
      done()
    })
  return {
    apply,
    set,
    stopTransitions: stop,
    leave,
  }
}

const isBrowser = typeof window !== 'undefined'
const supportsPointerEvents = () => isBrowser && window.onpointerdown === null
const supportsTouchEvents = () => isBrowser && window.ontouchstart === null
const supportsMouseEvents = () => isBrowser && window.onmousedown === null

function registerEventListeners({ target, state, variants, apply }) {
  const _variants = unref(variants)
  // State
  const hovered = ref(false)
  const tapped = ref(false)
  const focused = ref(false)
  const mutableKeys = computed(() => {
    let result = []
    if (!_variants) return result
    if (_variants.hovered) {
      result = [...result, ...Object.keys(_variants.hovered)]
    }
    if (_variants.tapped) {
      result = [...result, ...Object.keys(_variants.tapped)]
    }
    if (_variants.focused) {
      result = [...result, ...Object.keys(_variants.focused)]
    }
    return result
  })
  const computedProperties = computed(() => {
    const result = {}
    Object.assign(result, state.value)
    if (hovered.value && _variants.hovered) {
      Object.assign(result, _variants.hovered)
    }
    if (tapped.value && _variants.tapped) {
      Object.assign(result, _variants.tapped)
    }
    if (focused.value && _variants.focused) {
      Object.assign(result, _variants.focused)
    }
    for (const key in result) {
      if (!mutableKeys.value.includes(key)) delete result[key]
    }
    return result
  })
  watch(
    () => unrefElement(target),
    (el) => {
      if (!el || !_variants) return
      // Hovered
      if (_variants.hovered) {
        useEventListener(el, 'mouseenter', () => {
          hovered.value = true
        })
        useEventListener(el, 'mouseleave', () => {
          hovered.value = false
          tapped.value = false
        })
        useEventListener(el, 'mouseout', () => {
          hovered.value = false
          tapped.value = false
        })
      }
      // Tapped
      if (_variants.tapped) {
        // Mouse
        if (supportsMouseEvents()) {
          useEventListener(el, 'mousedown', () => {
            tapped.value = true
          })
          useEventListener(el, 'mouseup', () => {
            tapped.value = false
          })
        }
        // Pointer
        if (supportsPointerEvents()) {
          useEventListener(el, 'pointerdown', () => {
            tapped.value = true
          })
          useEventListener(el, 'pointerup', () => {
            tapped.value = false
          })
        }
        // Touch
        if (supportsTouchEvents()) {
          useEventListener(el, 'touchstart', () => {
            tapped.value = true
          })
          useEventListener(el, 'touchend', () => {
            tapped.value = false
          })
        }
      }
      // Focused
      if (_variants.focused) {
        useEventListener(el, 'focus', () => {
          focused.value = true
        })
        useEventListener(el, 'blur', () => {
          focused.value = false
        })
      }
    },
    {
      immediate: true,
    },
  )
  // Watch local computed variant, apply it dynamically
  watch(computedProperties, (newVal) => {
    apply(newVal)
  })
}

function registerLifeCycleHooks({ target, variants, variant }) {
  const _variants = unref(variants)
  const stop = watch(
    () => target,
    () => {
      // Lifecycle hooks bindings
      if (_variants && _variants.enter) {
        // Set initial before the element is mounted
        if (_variants.initial) variant.value = 'initial'
        // Set enter animation, once the element is mounted
        nextTick(() => (variant.value = 'enter'))
      }
    },
    {
      immediate: true,
      flush: 'pre',
    },
  )
  return { stop }
}

function registerVariantsSync({ state, apply }) {
  // Watch for variant changes and apply the new one
  const stop = watch(
    state,
    (newVal) => {
      if (newVal) apply(newVal)
    },
    {
      immediate: true,
    },
  )
  return { stop }
}

function registerVisibilityHooks({ target, variants, variant }) {
  const _variants = unref(variants)
  let _stopObserver = noop
  const _stopWatcher = watch(
    () => unrefElement(target),
    (el) => {
      if (!el) return
      // Bind intersection observer on target
      _stopObserver = useIntersectionObserver(
        target,
        ([{ isIntersecting }]) => {
          if (_variants && _variants.visible) {
            if (isIntersecting) {
              variant.value = 'visible'
            } else {
              variant.value = 'initial'
            }
          }
        },
      ).stop
    },
    {
      immediate: true,
    },
  )
  /**
   * Stop both the watcher and the intersection observer.
   */
  const stop = () => {
    _stopObserver()
    _stopWatcher()
  }
  return {
    stop,
  }
}

/**
 * A Composable executing resolved variants features from variants declarations.
 *
 * Supports:
 * - lifeCycleHooks: Bind the motion hooks to the component lifecycle hooks.
 *
 * @param variant
 * @param variants
 * @param options
 */
function useMotionFeatures(
  instance,
  options = {
    syncVariants: true,
    lifeCycleHooks: true,
    visibilityHooks: true,
    eventListeners: true,
  },
) {
  // Lifecycle hooks bindings
  if (options.lifeCycleHooks) {
    registerLifeCycleHooks(instance)
  }
  if (options.syncVariants) {
    registerVariantsSync(instance)
  }
  // Visibility hooks
  if (options.visibilityHooks) {
    registerVisibilityHooks(instance)
  }
  // Event listeners
  if (options.eventListeners) {
    registerEventListeners(instance)
  }
}

/**
 * Reactive style object implementing all native CSS properties.
 *
 * @param props
 */
function reactiveStyle(props = {}) {
  // Reactive StyleProperties object
  const state = reactive(Object.assign({}, props))
  const style = ref({})
  // Reactive DOM Element compatible `style` object bound to state
  watch(
    state,
    () => {
      // Init result object
      const result = {}
      for (const [key, value] of Object.entries(state)) {
        // Get value type for key
        const valueType = getValueType(key)
        // Get value as type for key
        const valueAsType = getValueAsType(value, valueType)
        // Append the computed style to result object
        result[key] = valueAsType
      }
      style.value = result
    },
    {
      immediate: true,
      deep: true,
    },
  )
  return {
    state,
    style,
  }
}

/**
 * A list of all transformable axes. We'll use this list to generated a version
 * of each axes for each transform.
 */
const transformAxes = ['', 'X', 'Y', 'Z']
/**
 * An ordered array of each transformable value. By default, transform values
 * will be sorted to this order.
 */
const order = ['perspective', 'translate', 'scale', 'rotate', 'skew']
/**
 * Generate a list of every possible transform key.
 */
const transformProps = ['transformPerspective', 'x', 'y', 'z']
order.forEach((operationKey) => {
  transformAxes.forEach((axesKey) => {
    const key = operationKey + axesKey
    transformProps.push(key)
  })
})
/**
 * A quick lookup for transform props.
 */
const transformPropSet = new Set(transformProps)
function isTransformProp(key) {
  return transformPropSet.has(key)
}
/**
 * A quick lookup for transform origin props
 */
const transformOriginProps = new Set(['originX', 'originY', 'originZ'])
function isTransformOriginProp(key) {
  return transformOriginProps.has(key)
}

/**
 * A Composable giving access to a StyleProperties object, and binding the generated style object to a target.
 *
 * @param target
 */
function useElementStyle(target, onInit) {
  // Transform cache available before the element is mounted
  let _cache
  // Local target cache as we need to resolve the element from PermissiveTarget
  let _target = undefined
  // Create a reactive style object
  const { state, style } = reactiveStyle()
  // Sync existing style from supplied element
  const stopInitWatch = watch(
    () => unrefElement(target),
    (el) => {
      if (!el) return
      _target = el
      // Loop on style keys
      for (const key of Object.keys(valueTypes)) {
        if (
          el.style[key] === null ||
          el.style[key] === '' ||
          isTransformProp(key) ||
          isTransformOriginProp(key)
        )
          continue
        // Append a defined key to the local StyleProperties state object
        set(state, key, el.style[key])
      }
      // If cache is present, init the target with the current cached value
      if (_cache) {
        Object.entries(_cache).forEach(([key, value]) =>
          set(el.style, key, value),
        )
      }
      if (onInit) onInit(state)
    },
    {
      immediate: true,
    },
  )
  // Sync reactive style to element
  const stopSyncWatch = watch(
    style,
    (newVal) => {
      // Add the current value to the cache so it is set on target creation
      if (!_target) {
        _cache = newVal
        return
      }
      // Append the state object to the target style properties
      for (const key in newVal) set(_target.style, key, newVal[key])
    },
    {
      immediate: true,
    },
  )
  // Stop watchers
  const stop = () => {
    stopInitWatch()
    stopSyncWatch()
  }
  return {
    style: state,
    stop,
  }
}

/**
 * Aliases translate key for simpler API integration.
 */
const translateAlias = {
  x: 'translateX',
  y: 'translateY',
  z: 'translateZ',
}
/**
 * Reactive transform string implementing all native CSS transform properties.
 *
 * @param props
 * @param enableHardwareAcceleration
 */
function reactiveTransform(props = {}, enableHardwareAcceleration = true) {
  // Reactive TransformProperties object
  const state = reactive(Object.assign({}, props))
  const transform = ref('')
  watch(
    state,
    (newVal) => {
      // Init result
      let result = ''
      let hasHardwareAcceleration = false
      // Use translate3d by default has a better GPU optimization
      // And corrects scaling discrete behaviors
      if (enableHardwareAcceleration && (newVal.x || newVal.y || newVal.z)) {
        const str = [newVal.x || 0, newVal.y || 0, newVal.z || 0]
          .map(px.transform)
          .join(',')
        result += `translate3d(${str}) `
        hasHardwareAcceleration = true
      }
      // Loop on defined TransformProperties state keys
      for (const [key, value] of Object.entries(newVal)) {
        if (
          enableHardwareAcceleration &&
          (key === 'x' || key === 'y' || key === 'z')
        )
          continue
        // Get value type for key
        const valueType = getValueType(key)
        // Get value as type for key
        const valueAsType = getValueAsType(value, valueType)
        // Append the computed transform key to result string
        result += `${translateAlias[key] || key}(${valueAsType}) `
      }
      if (enableHardwareAcceleration && !hasHardwareAcceleration) {
        result += `translateZ(0px) `
      }
      transform.value = result.trim()
    },
    {
      immediate: true,
      deep: true,
    },
  )
  return {
    state,
    transform,
  }
}

/**
 * Return an object from a transform string.
 *
 * @param str
 */
function parseTransform(transform) {
  // Split transform string.
  const transforms = transform.trim().split(/\) |\)/)
  // Handle "initial", "inherit", "unset".
  if (transforms.length === 1) {
    return {}
  }
  const parseValues = (value) => {
    // If value is ending with px or deg, return it as a number
    if (value.endsWith('px') || value.endsWith('deg')) return parseFloat(value)
    // Return as number
    if (isNaN(Number(value))) return Number(value)
    // Parsing impossible, return as string
    return value
  }
  // Reduce the result to an object and return it
  return transforms.reduce((acc, transform) => {
    if (!transform) return acc
    const [name, transformValue] = transform.split('(')
    const valueArray = transformValue.split(',')
    const values = valueArray.map((val) => {
      return parseValues(val.endsWith(')') ? val.replace(')', '') : val.trim())
    })
    const value = values.length === 1 ? values[0] : values
    return Object.assign(Object.assign({}, acc), { [name]: value })
  }, {})
}
/**
 * Sets the state from a parsed transform string.
 *
 * Used in useElementTransform init to restore element transform string in cases it does exists.
 *
 * @param state
 * @param transform
 */
function stateFromTransform(state, transform) {
  Object.entries(parseTransform(transform)).forEach(([key, value]) => {
    // Get value w/o unit, as unit is applied later on
    value = parseFloat(value)
    // Axes reference for loops
    const axes = ['x', 'y', 'z']
    // Handle translate3d and scale3d
    if (key === 'translate3d') {
      // Loop on parsed scale / translate definition
      value.forEach((axisValue, index) => {
        set(state, axes[index], axisValue)
      })
      return
    }
    // Sync translateX on X
    if (key === 'translateX') {
      set(state, 'x', value)
      return
    }
    // Sync translateY on Y
    if (key === 'translateY') {
      set(state, 'y', value)
      return
    }
    // Sync translateZ on Z
    if (key === 'translateZ') {
      set(state, 'z', value)
      return
    }
    // Set raw value
    set(state, key, value)
  })
}

/**
 * A Composable giving access to a TransformProperties object, and binding the generated transform string to a target.
 *
 * @param target
 */
function useElementTransform(target, onInit) {
  // Transform cache available before the element is mounted
  let _cache
  // Local target cache as we need to resolve the element from PermissiveTarget
  let _target = undefined
  // Create a reactive transform object
  const { state, transform } = reactiveTransform()
  // Cache transform until the element is alive and we can bind to it
  const stopInitWatch = watch(
    () => unrefElement(target),
    (el) => {
      if (!el) return
      _target = el
      // Parse transform properties and applies them to the current state
      if (el.style.transform) stateFromTransform(state, el.style.transform)
      // If cache is present, init the target with the current cached value
      if (_cache) {
        el.style.transform = _cache
      }
      if (onInit) onInit(state)
    },
    {
      immediate: true,
    },
  )
  // Sync reactive transform to element
  const stopSyncWatch = watch(
    transform,
    (newValue) => {
      // Add the current value to the cache so it is set on target creation
      if (!_target) {
        _cache = newValue
        return
      }
      // Set the transform string on the target
      _target.style.transform = newValue
    },
    {
      immediate: true,
    },
  )
  // Stop watchers
  const stop = () => {
    stopInitWatch()
    stopSyncWatch()
  }
  return {
    transform: state,
    stop,
  }
}

/**
 * A Composable giving access to both `transform` and `style`objects for a single element.
 *
 * @param target
 */
function useMotionProperties(target, defaultValues) {
  // Local motion properties
  const motionProperties = reactive({})
  // Local mass setter
  const apply = (values) => {
    Object.entries(values).forEach(([key, value]) => {
      set(motionProperties, key, value)
    })
  }
  // Target element style object
  const { style, stop: stopStyleWatchers } = useElementStyle(target, apply)
  // Target element transform object
  const { transform, stop: stopTransformWatchers } = useElementTransform(
    target,
    apply,
  )
  // Watch local object and apply styling accordingly
  const stopPropertiesWatch = watch(
    motionProperties,
    (newVal) => {
      Object.entries(newVal).forEach(([key, value]) => {
        const target = isTransformProp(key) ? transform : style
        if (target[key] && target[key] === value) return
        set(target, key, value)
      })
    },
    {
      immediate: true,
      deep: true,
    },
  )
  // Apply default values once target is available
  const stopInitWatch = watch(
    () => unrefElement(target),
    (el) => {
      if (!el) return
      if (defaultValues) apply(defaultValues)
    },
    {
      immediate: true,
    },
  )
  // Stop watchers
  const stop = () => {
    stopStyleWatchers()
    stopTransformWatchers()
    stopPropertiesWatch()
    stopInitWatch()
  }
  return {
    motionProperties,
    style,
    transform,
    stop,
  }
}

/**
 * A Composable handling variants selection and features.
 *
 * @param variants
 * @param initial
 * @param options
 */
function useMotionVariants(variants = {}) {
  // Unref variants
  const _variants = unref(variants)
  // Current variant string
  const variant = ref()
  // Current variant state
  const state = computed(() => {
    if (!variant.value) return
    return _variants[variant.value]
  })
  return {
    state,
    variant,
  }
}

/**
 * A Vue Composable that put your components in motion.
 *
 * @docs https://motion.vueuse.js.org
 *
 * @param target
 * @param variants
 * @param options
 */
function useMotion(target, variants = {}, options) {
  // Reactive styling and transform
  const { motionProperties } = useMotionProperties(target)
  // Variants manager
  const { variant, state } = useMotionVariants(variants)
  // Motion controls, synchronized with motion properties and variants
  const controls = useMotionControls(motionProperties, variants)
  // Create motion instance
  const instance = Object.assign(
    { target, variant, variants, state, motionProperties },
    controls,
  )
  // Bind features
  useMotionFeatures(instance, options)
  return instance
}

const directivePropsKeys = [
  'initial',
  'enter',
  'leave',
  'visible',
  'hovered',
  'tapped',
  'focused',
  'delay',
]
const resolveVariants = (node, variantsRef) => {
  // This is done to achieve compat with Vue 2 & 3
  // node.props = Vue 3 element props location
  // node.data.attrs = Vue 2 element props location
  const target = node.props
    ? node.props // @ts-expect-error
    : node.data && node.data.attrs // @ts-expect-error
    ? node.data.attrs
    : {}
  if (target) {
    if (target['variants'] && isObject(target['variants'])) {
      // If variant are passed through a single object reference, initialize with it
      variantsRef.value = Object.assign(
        Object.assign({}, variantsRef.value),
        target['variants'],
      )
    }
    // Loop on directive prop keys, add them to the local variantsRef if defined
    directivePropsKeys.forEach((key) => {
      if (key === 'delay') {
        if (target && target[key] && isNumber(target[key])) {
          const delay = target[key]
          if (variantsRef && variantsRef.value) {
            if (variantsRef.value.enter) {
              if (!variantsRef.value.enter.transition) {
                variantsRef.value.enter.transition = {}
              }
              variantsRef.value.enter.transition = Object.assign(
                Object.assign({}, variantsRef.value.enter.transition),
                { delay },
              )
            }
            if (variantsRef.value.visible) {
              if (!variantsRef.value.visible.transition) {
                variantsRef.value.visible.transition = {}
              }
              variantsRef.value.visible.transition = Object.assign(
                Object.assign({}, variantsRef.value.visible.transition),
                { delay },
              )
            }
          }
        }
        return
      }
      if (target && target[key] && isObject(target[key])) {
        variantsRef.value[key] = target[key]
      }
    })
  }
}

const directive = (variants) => {
  const register = (el, binding, node) => {
    // Initialize variants with argument
    const variantsRef = ref(variants || {})
    // Resolve variants from node props
    resolveVariants(node, variantsRef)
    // Create motion instance
    const motionInstance = useMotion(el, variantsRef)
    // Set the global state reference if the name is set through v-motion="`value`"
    if (binding.value) set(motionState, binding.value, motionInstance)
  }
  const unregister = (_, binding, __) => {
    // Check if motion state has the current element as reference
    if (binding.value && motionState[binding.value])
      del(motionState, binding.value)
  }
  return {
    // Vue 3 Directive Hooks
    created: register,
    unmounted: unregister,
    // Vue 2 Directive Hooks
    // For Nuxt & Vue 2 compatibility
    // @ts-expect-error
    bind: register,
    unbind: unregister,
  }
}

const fade = {
  initial: {
    opacity: 0,
  },
  enter: {
    opacity: 1,
  },
}
const fadeVisible = {
  initial: {
    opacity: 0,
  },
  visible: {
    opacity: 1,
  },
}

const pop = {
  initial: {
    scale: 0,
    opacity: 0,
  },
  enter: {
    scale: 1,
    opacity: 1,
  },
}
const popVisible = {
  initial: {
    scale: 0,
    opacity: 0,
  },
  visible: {
    scale: 1,
    opacity: 1,
  },
}

// Roll from left
const rollLeft = {
  initial: {
    x: -100,
    rotate: 90,
    opacity: 0,
  },
  enter: {
    x: 0,
    rotate: 0,
    opacity: 1,
  },
}
const rollVisibleLeft = {
  initial: {
    x: -100,
    rotate: 90,
    opacity: 0,
  },
  visible: {
    x: 0,
    rotate: 0,
    opacity: 1,
  },
}
// Roll from right
const rollRight = {
  initial: {
    x: 100,
    rotate: -90,
    opacity: 0,
  },
  enter: {
    x: 0,
    rotate: 0,
    opacity: 1,
  },
}
const rollVisibleRight = {
  initial: {
    x: 100,
    rotate: -90,
    opacity: 0,
  },
  visible: {
    x: 0,
    rotate: 0,
    opacity: 1,
  },
}
// Roll from top
const rollTop = {
  initial: {
    y: -100,
    rotate: -90,
    opacity: 0,
  },
  enter: {
    y: 0,
    rotate: 0,
    opacity: 1,
  },
}
const rollVisibleTop = {
  initial: {
    y: -100,
    rotate: -90,
    opacity: 0,
  },
  visible: {
    y: 0,
    rotate: 0,
    opacity: 1,
  },
}
// Roll from bottom
const rollBottom = {
  initial: {
    y: 100,
    rotate: 90,
    opacity: 0,
  },
  enter: {
    y: 0,
    rotate: 0,
    opacity: 1,
  },
}
const rollVisibleBottom = {
  initial: {
    y: 100,
    rotate: 90,
    opacity: 0,
  },
  visible: {
    y: 0,
    rotate: 0,
    opacity: 1,
  },
}

// Slide from left
const slideLeft = {
  initial: {
    x: -100,
    opacity: 0,
  },
  enter: {
    x: 0,
    opacity: 1,
  },
}
const slideVisibleLeft = {
  initial: {
    x: -100,
    opacity: 0,
  },
  visible: {
    x: 0,
    opacity: 1,
  },
}
// Slide from right
const slideRight = {
  initial: {
    x: 100,
    opacity: 0,
  },
  enter: {
    x: 0,
    opacity: 1,
  },
}
const slideVisibleRight = {
  initial: {
    x: 100,
    opacity: 0,
  },
  visible: {
    x: 0,
    opacity: 1,
  },
}
// Slide from top
const slideTop = {
  initial: {
    y: -100,
    opacity: 0,
  },
  enter: {
    y: 0,
    opacity: 1,
  },
}
const slideVisibleTop = {
  initial: {
    y: -100,
    opacity: 0,
  },
  visible: {
    y: 0,
    opacity: 1,
  },
}
// Slide from bottom
const slideBottom = {
  initial: {
    y: 100,
    opacity: 0,
  },
  enter: {
    y: 0,
    opacity: 1,
  },
}
const slideVisibleBottom = {
  initial: {
    y: 100,
    opacity: 0,
  },
  visible: {
    y: 0,
    opacity: 1,
  },
}

var presets = /*#__PURE__*/ Object.freeze({
  __proto__: null,
  fade: fade,
  fadeVisible: fadeVisible,
  pop: pop,
  popVisible: popVisible,
  rollBottom: rollBottom,
  rollLeft: rollLeft,
  rollRight: rollRight,
  rollTop: rollTop,
  rollVisibleBottom: rollVisibleBottom,
  rollVisibleLeft: rollVisibleLeft,
  rollVisibleRight: rollVisibleRight,
  rollVisibleTop: rollVisibleTop,
  slideBottom: slideBottom,
  slideLeft: slideLeft,
  slideRight: slideRight,
  slideTop: slideTop,
  slideVisibleBottom: slideVisibleBottom,
  slideVisibleLeft: slideVisibleLeft,
  slideVisibleRight: slideVisibleRight,
  slideVisibleTop: slideVisibleTop,
})

/**
 * Convert a string to a slug.
 *
 * Source: https://gist.github.com/hagemann/382adfc57adbd5af078dc93feef01fe1
 * Credits: @hagemann
 *
 * Edited to transform camel naming to slug with `-`.
 *
 * @param str
 */
function slugify(string) {
  const a =
    'àáâäæãåāăąçćčđďèéêëēėęěğǵḧîïíīįìłḿñńǹňôöòóœøōõőṕŕřßśšşșťțûüùúūǘůűųẃẍÿýžźż·/_,:;'
  const b =
    'aaaaaaaaaacccddeeeeeeeegghiiiiiilmnnnnoooooooooprrsssssttuuuuuuuuuwxyyzzz------'
  const p = new RegExp(a.split('').join('|'), 'g')
  return string
    .toString()
    .replace(/[A-Z]/g, (s) => '-' + s) // Camel to slug
    .toLowerCase()
    .replace(/\s+/g, '-') // Replace spaces with -
    .replace(p, (c) => b.charAt(a.indexOf(c))) // Replace special characters
    .replace(/&/g, '-and-') // Replace & with 'and'
    .replace(/[^\w\-]+/g, '') // Remove all non-word characters
    .replace(/\-\-+/g, '-') // Replace multiple - with single -
    .replace(/^-+/, '') // Trim - from start of text
    .replace(/-+$/, '') // Trim - from end of text
}

const MotionPlugin = {
  install(app, options) {
    // Register default `v-motion` directive
    app.directive('motion', directive())
    // Register presets
    if (!options || (options && !options.excludePresets)) {
      for (const key in presets) {
        // Get preset variants
        const preset = presets[key]
        // Register the preset `v-motion-${key}` directive
        app.directive(`motion-${slugify(key)}`, directive(preset))
      }
    }
    // Register plugin-wise directives
    if (options && options.directives) {
      // Loop on options, create a custom directive for each definition
      for (const key in options.directives) {
        // Get directive variants
        const variants = options.directives[key]
        // Development warning, showing definitions missing `initial` key
        if (!variants.initial && true) {
          console.warn(
            `Your directive v-motion-${key} is missing initial variant!`,
          )
        }
        // Register the custom `v-motion-${key}` directive
        app.directive(`motion-${key}`, directive(variants))
      }
    }
  },
}

function useMotions() {
  return motionState
}

function useSpring(values, spring) {
  const { stop, get } = useMotionValues()
  return {
    values,
    stop,
    set: (properties) =>
      Promise.all(
        Object.entries(properties).map(([key, value]) => {
          const motionValue = get(key, values[key], values)
          return motionValue.start((onComplete) => {
            const options = Object.assign(
              { type: 'spring' },
              spring || getDefaultTransition(key, value),
            )
            return animate(
              Object.assign(
                {
                  from: motionValue.get(),
                  to: value,
                  velocity: motionValue.getVelocity(),
                  onUpdate: (v) => motionValue.set(v),
                  onComplete,
                },
                options,
              ),
            )
          })
        }),
      ),
  }
}

/**
 * Check whether an object is a Motion Instance or not.
 *
 * Can be useful while building packages based on @vueuse/motion.
 *
 * @param obj
 * @returns bool
 */
function isMotionInstance(obj) {
  const _obj = obj
  return (
    _obj.apply !== undefined &&
    isFunction(_obj.apply) &&
    _obj.set !== undefined &&
    isFunction(_obj.set) &&
    _obj.stopTransitions !== undefined &&
    isFunction(_obj.stopTransitions) &&
    _obj.target !== undefined &&
    isRef(_obj.target)
  )
}

/**
 * Reactive prefers-reduced-motion.
 *
 * @param options
 */
function useReducedMotion(options = {}) {
  return useMediaQuery('(prefers-reduced-motion: reduce)', options)
}

export {
  directive as MotionDirective,
  MotionPlugin,
  fade,
  fadeVisible,
  isMotionInstance,
  pop,
  popVisible,
  reactiveStyle,
  reactiveTransform,
  rollBottom,
  rollLeft,
  rollRight,
  rollTop,
  rollVisibleBottom,
  rollVisibleLeft,
  rollVisibleRight,
  rollVisibleTop,
  slideBottom,
  slideLeft,
  slideRight,
  slideTop,
  slideVisibleBottom,
  slideVisibleLeft,
  slideVisibleRight,
  slideVisibleTop,
  slugify,
  useElementStyle,
  useElementTransform,
  useMotion,
  useMotionControls,
  useMotionProperties,
  useMotionTransitions,
  useMotionVariants,
  useMotions,
  useReducedMotion,
  useSpring,
}
<file_sep>import { noop, unrefElement, useIntersectionObserver } from '@vueuse/core'
import { unref, watch } from 'vue-demi'
import { MotionInstance, MotionVariants } from '../types'

export function registerVisibilityHooks<T extends MotionVariants>({
  target,
  variants,
  variant,
}: MotionInstance<T>) {
  const _variants = unref(variants)
  let _stopObserver: () => void = noop

  const _stopWatcher = watch(
    () => unrefElement(target),
    (el) => {
      if (!el) return

      // Bind intersection observer on target
      _stopObserver = useIntersectionObserver(
        target,
        ([{ isIntersecting }]) => {
          if (_variants && _variants.visible) {
            if (isIntersecting) {
              variant.value = 'visible'
            } else {
              variant.value = 'initial'
            }
          }
        },
      ).stop
    },
    {
      immediate: true,
    },
  )

  /**
   * Stop both the watcher and the intersection observer.
   */
  const stop = () => {
    _stopObserver()
    _stopWatcher()
  }

  return {
    stop,
  }
}
<file_sep>import { MaybeRef } from '@vueuse/core'
import {
  MotionInstance,
  MotionVariants,
  PermissiveTarget,
  UseMotionOptions,
} from './types'
import { useMotionControls } from './useMotionControls'
import { useMotionFeatures } from './useMotionFeatures'
import { useMotionProperties } from './useMotionProperties'
import { useMotionVariants } from './useMotionVariants'

/**
 * A Vue Composable that put your components in motion.
 *
 * @docs https://motion.vueuse.js.org
 *
 * @param target
 * @param variants
 * @param options
 */
export function useMotion<T extends MotionVariants>(
  target: MaybeRef<PermissiveTarget>,
  variants: MaybeRef<T> = {} as MaybeRef<T>,
  options?: UseMotionOptions,
) {
  // Reactive styling and transform
  const { motionProperties } = useMotionProperties(target)

  // Variants manager
  const { variant, state } = useMotionVariants<T>(variants)

  // Motion controls, synchronized with motion properties and variants
  const controls = useMotionControls<T>(motionProperties, variants)

  // Create motion instance
  const instance: MotionInstance<T> = {
    target,
    variant,
    variants,
    state,
    motionProperties,
    ...controls,
  }

  // Bind features
  useMotionFeatures(instance, options)

  return instance
}
<file_sep>import {
  del as __del,
  Directive,
  DirectiveBinding,
  ref,
  set as __set,
  VNode,
} from 'vue-demi'
import { motionState } from '../features/state'
import { MotionVariants } from '../types'
import { useMotion } from '../useMotion'
import { resolveVariants } from '../utils/directive'

export const directive = (
  variants?: MotionVariants,
): Directive<HTMLElement | SVGElement> => {
  const register = (
    el: HTMLElement | SVGElement,
    binding: DirectiveBinding,
    node: VNode<
      any,
      HTMLElement | SVGElement,
      {
        [key: string]: any
      }
    >,
  ) => {
    // Initialize variants with argument
    const variantsRef = ref<MotionVariants>(variants || {})

    // Resolve variants from node props
    resolveVariants(node, variantsRef)

    // Create motion instance
    const motionInstance = useMotion(el, variantsRef)

    // Set the global state reference if the name is set through v-motion="`value`"
    if (binding.value) __set(motionState, binding.value, motionInstance)
  }

  const unregister = (
    _: HTMLElement | SVGElement,
    binding: DirectiveBinding,
    __: VNode<
      any,
      HTMLElement | SVGElement,
      {
        [key: string]: any
      }
    >,
  ) => {
    // Check if motion state has the current element as reference
    if (binding.value && motionState[binding.value])
      __del(motionState, binding.value)
  }

  return {
    // Vue 3 Directive Hooks
    created: register,
    unmounted: unregister,
    // Vue 2 Directive Hooks
    // For Nuxt & Vue 2 compatibility
    // @ts-expect-error
    bind: register,
    unbind: unregister,
  }
}

export default directive
<file_sep>import { unrefElement, useEventListener } from '@vueuse/core'
import { computed, ref, unref, watch } from 'vue-demi'
import { MotionInstance, MotionVariants } from '../types'
import {
  supportsMouseEvents,
  supportsPointerEvents,
  supportsTouchEvents,
} from '../utils/events'

export function registerEventListeners<T extends MotionVariants>({
  target,
  state,
  variants,
  apply,
}: MotionInstance<T>) {
  const _variants = unref(variants)
  // State
  const hovered = ref(false)
  const tapped = ref(false)
  const focused = ref(false)

  const mutableKeys = computed(() => {
    let result: string[] = []

    if (!_variants) return result

    if (_variants.hovered) {
      result = [...result, ...Object.keys(_variants.hovered)]
    }

    if (_variants.tapped) {
      result = [...result, ...Object.keys(_variants.tapped)]
    }

    if (_variants.focused) {
      result = [...result, ...Object.keys(_variants.focused)]
    }

    return result
  })

  const computedProperties = computed(() => {
    const result = {}

    Object.assign(result, state.value)

    if (hovered.value && _variants.hovered) {
      Object.assign(result, _variants.hovered)
    }

    if (tapped.value && _variants.tapped) {
      Object.assign(result, _variants.tapped)
    }

    if (focused.value && _variants.focused) {
      Object.assign(result, _variants.focused)
    }

    for (const key in result) {
      if (!mutableKeys.value.includes(key)) delete result[key]
    }

    return result
  })

  watch(
    () => unrefElement(target),
    (el) => {
      if (!el || !_variants) return

      // Hovered
      if (_variants.hovered) {
        useEventListener(el as EventTarget, 'mouseenter', () => {
          hovered.value = true
        })

        useEventListener(el as EventTarget, 'mouseleave', () => {
          hovered.value = false
          tapped.value = false
        })

        useEventListener(el as EventTarget, 'mouseout', () => {
          hovered.value = false
          tapped.value = false
        })
      }

      // Tapped
      if (_variants.tapped) {
        // Mouse
        if (supportsMouseEvents()) {
          useEventListener(el as EventTarget, 'mousedown', () => {
            tapped.value = true
          })

          useEventListener(el as EventTarget, 'mouseup', () => {
            tapped.value = false
          })
        }

        // Pointer
        if (supportsPointerEvents()) {
          useEventListener(el as EventTarget, 'pointerdown', () => {
            tapped.value = true
          })

          useEventListener(el as EventTarget, 'pointerup', () => {
            tapped.value = false
          })
        }

        // Touch
        if (supportsTouchEvents()) {
          useEventListener(el as EventTarget, 'touchstart', () => {
            tapped.value = true
          })

          useEventListener(el as EventTarget, 'touchend', () => {
            tapped.value = false
          })
        }
      }

      // Focused
      if (_variants.focused) {
        useEventListener(el as EventTarget, 'focus', () => {
          focused.value = true
        })

        useEventListener(el as EventTarget, 'blur', () => {
          focused.value = false
        })
      }
    },
    {
      immediate: true,
    },
  )

  // Watch local computed variant, apply it dynamically
  watch(computedProperties, (newVal) => {
    apply(newVal)
  })
}
<file_sep>import { registerEventListeners } from './features/eventListeners'
import { registerLifeCycleHooks } from './features/lifeCycleHooks'
import { registerVariantsSync } from './features/syncVariants'
import { registerVisibilityHooks } from './features/visibilityHooks'
import { MotionInstance, MotionVariants, UseMotionOptions } from './types'

/**
 * A Composable executing resolved variants features from variants declarations.
 *
 * Supports:
 * - lifeCycleHooks: Bind the motion hooks to the component lifecycle hooks.
 *
 * @param variant
 * @param variants
 * @param options
 */
export function useMotionFeatures<T extends MotionVariants>(
  instance: MotionInstance<T>,
  options: UseMotionOptions = {
    syncVariants: true,
    lifeCycleHooks: true,
    visibilityHooks: true,
    eventListeners: true,
  },
) {
  // Lifecycle hooks bindings
  if (options.lifeCycleHooks) {
    registerLifeCycleHooks(instance)
  }

  if (options.syncVariants) {
    registerVariantsSync(instance)
  }

  // Visibility hooks
  if (options.visibilityHooks) {
    registerVisibilityHooks(instance)
  }

  // Event listeners
  if (options.eventListeners) {
    registerEventListeners(instance)
  }
}
<file_sep>/*!
 * @vueuse/motion v1.6.0
 * (c) 2021
 * @license MIT
 */
var VueuseMotion = (function (t, e, n, r, i) {
  'use strict'
  const s = {}
  /*! *****************************************************************************
    Copyright (c) Microsoft Corporation.

    Permission to use, copy, modify, and/or distribute this software for any
    purpose with or without fee is hereby granted.

    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
    PERFORMANCE OF THIS SOFTWARE.
    ***************************************************************************** */ var o =
    function () {
      return (o =
        Object.assign ||
        function (t) {
          for (var e, n = 1, r = arguments.length; n < r; n++)
            for (var i in (e = arguments[n]))
              Object.prototype.hasOwnProperty.call(e, i) && (t[i] = e[i])
          return t
        }).apply(this, arguments)
    }
  function a(t, e) {
    var n = {}
    for (var r in t)
      Object.prototype.hasOwnProperty.call(t, r) &&
        e.indexOf(r) < 0 &&
        (n[r] = t[r])
    if (null != t && 'function' == typeof Object.getOwnPropertySymbols) {
      var i = 0
      for (r = Object.getOwnPropertySymbols(t); i < r.length; i++)
        e.indexOf(r[i]) < 0 &&
          Object.prototype.propertyIsEnumerable.call(t, r[i]) &&
          (n[r[i]] = t[r[i]])
    }
    return n
  }
  function c(t, e, n, r) {
    return new (n || (n = Promise))(function (i, s) {
      function o(t) {
        try {
          c(r.next(t))
        } catch (t) {
          s(t)
        }
      }
      function a(t) {
        try {
          c(r.throw(t))
        } catch (t) {
          s(t)
        }
      }
      function c(t) {
        var e
        t.done
          ? i(t.value)
          : ((e = t.value),
            e instanceof n
              ? e
              : new n(function (t) {
                  t(e)
                })).then(o, a)
      }
      c((r = r.apply(t, e || [])).next())
    })
  }
  var u = (1 / 60) * 1e3,
    l =
      'undefined' != typeof performance
        ? function () {
            return performance.now()
          }
        : function () {
            return Date.now()
          },
    p =
      'undefined' != typeof window
        ? function (t) {
            return window.requestAnimationFrame(t)
          }
        : function (t) {
            return setTimeout(function () {
              return t(l())
            }, u)
          }
  var f = !0,
    d = !1,
    m = !1,
    v = { delta: 0, timestamp: 0 },
    y = ['read', 'update', 'preRender', 'render', 'postRender'],
    h = y.reduce(function (t, e) {
      return (
        (t[e] = (function (t) {
          var e = [],
            n = [],
            r = 0,
            i = !1,
            s = new WeakSet(),
            o = {
              schedule: function (t, o, a) {
                void 0 === o && (o = !1), void 0 === a && (a = !1)
                var c = a && i,
                  u = c ? e : n
                return (
                  o && s.add(t),
                  -1 === u.indexOf(t) && (u.push(t), c && i && (r = e.length)),
                  t
                )
              },
              cancel: function (t) {
                var e = n.indexOf(t)
                ;-1 !== e && n.splice(e, 1), s.delete(t)
              },
              process: function (a) {
                var c
                if (
                  ((i = !0),
                  (e = (c = [n, e])[0]),
                  ((n = c[1]).length = 0),
                  (r = e.length))
                )
                  for (var u = 0; u < r; u++) {
                    var l = e[u]
                    l(a), s.has(l) && (o.schedule(l), t())
                  }
                i = !1
              },
            }
          return o
        })(function () {
          return (d = !0)
        })),
        t
      )
    }, {}),
    b = y.reduce(function (t, e) {
      var n = h[e]
      return (
        (t[e] = function (t, e, r) {
          return (
            void 0 === e && (e = !1),
            void 0 === r && (r = !1),
            d || w(),
            n.schedule(t, e, r)
          )
        }),
        t
      )
    }, {}),
    g = function (t) {
      return h[t].process(v)
    },
    O = function (t) {
      ;(d = !1),
        (v.delta = f ? u : Math.max(Math.min(t - v.timestamp, 40), 1)),
        (v.timestamp = t),
        (m = !0),
        y.forEach(g),
        (m = !1),
        d && ((f = !1), p(O))
    },
    w = function () {
      ;(d = !0), (f = !0), m || p(O)
    }
  class j {
    constructor() {
      this.subscriptions = new Set()
    }
    add(t) {
      return (
        this.subscriptions.add(t),
        () => {
          this.subscriptions.delete(t)
        }
      )
    }
    notify(t, e, n) {
      if (this.subscriptions.size)
        for (const r of this.subscriptions) r(t, e, n)
    }
    clear() {
      this.subscriptions.clear()
    }
  }
  const x = (t) => !isNaN(parseFloat(t))
  class k {
    constructor(t) {
      ;(this.timeDelta = 0),
        (this.lastUpdated = 0),
        (this.updateSubscribers = new j()),
        (this.canTrackVelocity = !1),
        (this.updateAndNotify = (t) => {
          ;(this.prev = this.current), (this.current = t)
          const { delta: e, timestamp: n } = v
          this.lastUpdated !== n &&
            ((this.timeDelta = e), (this.lastUpdated = n)),
            b.postRender(this.scheduleVelocityCheck),
            this.updateSubscribers.notify(this.current)
        }),
        (this.scheduleVelocityCheck = () => b.postRender(this.velocityCheck)),
        (this.velocityCheck = ({ timestamp: t }) => {
          this.canTrackVelocity || (this.canTrackVelocity = x(this.current)),
            t !== this.lastUpdated && (this.prev = this.current)
        }),
        (this.prev = this.current = t),
        (this.canTrackVelocity = x(this.current))
    }
    onChange(t) {
      return this.updateSubscribers.add(t)
    }
    clearListeners() {
      this.updateSubscribers.clear()
    }
    set(t) {
      this.updateAndNotify(t)
    }
    get() {
      return this.current
    }
    getPrevious() {
      return this.prev
    }
    getVelocity() {
      return this.canTrackVelocity
        ? i.velocityPerSecond(
            parseFloat(this.current) - parseFloat(this.prev),
            this.timeDelta,
          )
        : 0
    }
    start(t) {
      return (
        this.stop(),
        new Promise((e) => {
          const { stop: n } = t(e)
          this.stopAnimation = n
        }).then(() => this.clearAnimation())
      )
    }
    stop() {
      this.stopAnimation && this.stopAnimation(), this.clearAnimation()
    }
    isAnimating() {
      return !!this.stopAnimation
    }
    clearAnimation() {
      this.stopAnimation = null
    }
    destroy() {
      this.updateSubscribers.clear(), this.stop()
    }
  }
  const { isArray: V } = Array
  function E() {
    const t = {},
      n = (n) => {
        const r = (n) => {
          t[n] && (t[n].stop(), t[n].destroy(), e.del(t, n))
        }
        n ? (V(n) ? n.forEach(r) : r(n)) : Object.keys(t).forEach(r)
      }
    return (
      r.tryOnUnmounted(n),
      {
        motionValues: t,
        get: (n, r, i) => {
          if (t[n]) return t[n]
          const s = new k(r)
          return (
            s.onChange((t) => {
              e.set(i, n, t)
            }),
            e.set(t, n, s),
            s
          )
        },
        stop: n,
      }
    )
  }
  var A = function (t, e) {
      return function (n) {
        return Math.max(Math.min(n, e), t)
      }
    },
    T = function (t) {
      return t % 1 ? Number(t.toFixed(5)) : t
    },
    L = /(-)?([\d]*\.?[\d])+/g,
    C =
      /(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))/gi,
    I =
      /^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i
  function R(t) {
    return 'string' == typeof t
  }
  var P = {
      test: function (t) {
        return 'number' == typeof t
      },
      parse: parseFloat,
      transform: function (t) {
        return t
      },
    },
    M = o(o({}, P), { transform: A(0, 1) }),
    S = o(o({}, P), { default: 1 }),
    z = function (t) {
      return {
        test: function (e) {
          return R(e) && e.endsWith(t) && 1 === e.split(' ').length
        },
        parse: parseFloat,
        transform: function (e) {
          return '' + e + t
        },
      }
    },
    F = z('deg'),
    B = z('%'),
    N = z('px'),
    W = o(o({}, B), {
      parse: function (t) {
        return B.parse(t) / 100
      },
      transform: function (t) {
        return B.transform(100 * t)
      },
    }),
    U = function (t, e) {
      return function (n) {
        return Boolean(
          (R(n) && I.test(n) && n.startsWith(t)) ||
            (e && Object.prototype.hasOwnProperty.call(n, e)),
        )
      }
    },
    X = function (t, e, n) {
      return function (r) {
        var i
        if (!R(r)) return r
        var s = r.match(L),
          o = s[1],
          a = s[2],
          c = s[3]
        return (
          ((i = {})[t] = parseFloat(s[0])),
          (i[e] = parseFloat(o)),
          (i[n] = parseFloat(a)),
          (i.alpha = void 0 !== c ? parseFloat(c) : 1),
          i
        )
      }
    },
    Y = {
      test: U('hsl', 'hue'),
      parse: X('hue', 'saturation', 'lightness'),
      transform: function (t) {
        var e = t.saturation,
          n = t.lightness,
          r = t.alpha,
          i = void 0 === r ? 1 : r
        return (
          'hsla(' +
          Math.round(t.hue) +
          ', ' +
          B.transform(T(e)) +
          ', ' +
          B.transform(T(n)) +
          ', ' +
          T(M.transform(i)) +
          ')'
        )
      },
    },
    Z = A(0, 255),
    D = o(o({}, P), {
      transform: function (t) {
        return Math.round(Z(t))
      },
    }),
    $ = {
      test: U('rgb', 'red'),
      parse: X('red', 'green', 'blue'),
      transform: function (t) {
        var e = t.green,
          n = t.blue,
          r = t.alpha,
          i = void 0 === r ? 1 : r
        return (
          'rgba(' +
          D.transform(t.red) +
          ', ' +
          D.transform(e) +
          ', ' +
          D.transform(n) +
          ', ' +
          T(M.transform(i)) +
          ')'
        )
      },
    }
  var _ = {
      test: U('#'),
      parse: function (t) {
        var e = '',
          n = '',
          r = '',
          i = ''
        return (
          t.length > 5
            ? ((e = t.substr(1, 2)),
              (n = t.substr(3, 2)),
              (r = t.substr(5, 2)),
              (i = t.substr(7, 2)))
            : ((e = t.substr(1, 1)),
              (n = t.substr(2, 1)),
              (r = t.substr(3, 1)),
              (i = t.substr(4, 1)),
              (e += e),
              (n += n),
              (r += r),
              (i += i)),
          {
            red: parseInt(e, 16),
            green: parseInt(n, 16),
            blue: parseInt(r, 16),
            alpha: i ? parseInt(i, 16) / 255 : 1,
          }
        )
      },
      transform: $.transform,
    },
    H = {
      test: function (t) {
        return $.test(t) || _.test(t) || Y.test(t)
      },
      parse: function (t) {
        return $.test(t) ? $.parse(t) : Y.test(t) ? Y.parse(t) : _.parse(t)
      },
      transform: function (t) {
        return R(t)
          ? t
          : t.hasOwnProperty('red')
          ? $.transform(t)
          : Y.transform(t)
      },
    },
    q = '${c}',
    Q = '${n}'
  function G(t) {
    var e = [],
      n = 0,
      r = t.match(C)
    r &&
      ((n = r.length), (t = t.replace(C, q)), e.push.apply(e, r.map(H.parse)))
    var i = t.match(L)
    return (
      i && ((t = t.replace(L, Q)), e.push.apply(e, i.map(P.parse))),
      { values: e, numColors: n, tokenised: t }
    )
  }
  function J(t) {
    return G(t).values
  }
  function K(t) {
    var e = G(t),
      n = e.numColors,
      r = e.tokenised,
      i = e.values.length
    return function (t) {
      for (var e = r, s = 0; s < i; s++)
        e = e.replace(s < n ? q : Q, s < n ? H.transform(t[s]) : T(t[s]))
      return e
    }
  }
  var tt = function (t) {
    return 'number' == typeof t ? 0 : t
  }
  var et = {
      test: function (t) {
        var e, n, r, i
        return (
          isNaN(t) &&
          R(t) &&
          (null !==
            (n =
              null === (e = t.match(L)) || void 0 === e ? void 0 : e.length) &&
          void 0 !== n
            ? n
            : 0) +
            (null !==
              (i =
                null === (r = t.match(C)) || void 0 === r
                  ? void 0
                  : r.length) && void 0 !== i
              ? i
              : 0) >
            0
        )
      },
      parse: J,
      createTransformer: K,
      getAnimatableNone: function (t) {
        var e = J(t)
        return K(t)(e.map(tt))
      },
    },
    nt = new Set(['brightness', 'contrast', 'saturate', 'opacity'])
  function rt(t) {
    var e = t.slice(0, -1).split('('),
      n = e[0],
      r = e[1]
    if ('drop-shadow' === n) return t
    var i = (r.match(L) || [])[0]
    if (!i) return t
    var s = r.replace(i, ''),
      o = nt.has(n) ? 1 : 0
    return i !== r && (o *= 100), n + '(' + o + s + ')'
  }
  var it = /([a-z-]*)\(.*?\)/g,
    st = o(o({}, et), {
      getAnimatableNone: function (t) {
        var e = t.match(it)
        return e ? e.map(rt).join(' ') : t
      },
    })
  const ot = () => ({
      type: 'spring',
      stiffness: 500,
      damping: 25,
      restDelta: 0.5,
      restSpeed: 10,
    }),
    at = (t) => ({
      type: 'spring',
      stiffness: 550,
      damping: 0 === t ? 2 * Math.sqrt(550) : 30,
      restDelta: 0.01,
      restSpeed: 10,
    }),
    ct = () => ({ type: 'keyframes', ease: 'linear', duration: 300 }),
    ut = (t) => ({ type: 'keyframes', duration: 800, values: t }),
    lt = {
      default: (t) => ({
        type: 'spring',
        stiffness: 550,
        damping: 0 === t ? 100 : 30,
        restDelta: 0.01,
        restSpeed: 10,
      }),
      x: ot,
      y: ot,
      z: ot,
      rotate: ot,
      rotateX: ot,
      rotateY: ot,
      rotateZ: ot,
      scaleX: at,
      scaleY: at,
      scale: at,
      backgroundColor: ct,
      color: ct,
      opacity: ct,
    },
    pt = (t, e) => {
      let n
      return (
        (n = Array.isArray(e) ? ut : lt[t] || lt.default),
        Object.assign({ to: e }, n(e))
      )
    },
    ft = Object.assign(Object.assign({}, P), { transform: Math.round }),
    dt = {
      color: H,
      backgroundColor: H,
      outlineColor: H,
      fill: H,
      stroke: H,
      borderColor: H,
      borderTopColor: H,
      borderRightColor: H,
      borderBottomColor: H,
      borderLeftColor: H,
      borderWidth: N,
      borderTopWidth: N,
      borderRightWidth: N,
      borderBottomWidth: N,
      borderLeftWidth: N,
      borderRadius: N,
      radius: N,
      borderTopLeftRadius: N,
      borderTopRightRadius: N,
      borderBottomRightRadius: N,
      borderBottomLeftRadius: N,
      width: N,
      maxWidth: N,
      height: N,
      maxHeight: N,
      size: N,
      top: N,
      right: N,
      bottom: N,
      left: N,
      padding: N,
      paddingTop: N,
      paddingRight: N,
      paddingBottom: N,
      paddingLeft: N,
      margin: N,
      marginTop: N,
      marginRight: N,
      marginBottom: N,
      marginLeft: N,
      rotate: F,
      rotateX: F,
      rotateY: F,
      rotateZ: F,
      scale: S,
      scaleX: S,
      scaleY: S,
      scaleZ: S,
      skew: F,
      skewX: F,
      skewY: F,
      distance: N,
      translateX: N,
      translateY: N,
      translateZ: N,
      x: N,
      y: N,
      z: N,
      perspective: N,
      transformPerspective: N,
      opacity: M,
      originX: W,
      originY: W,
      originZ: N,
      zIndex: ft,
      filter: st,
      WebkitFilter: st,
      fillOpacity: M,
      strokeOpacity: M,
      numOctaves: ft,
    },
    mt = (t) => dt[t],
    vt = (t, e) =>
      e && 'number' == typeof t && e.transform ? e.transform(t) : t
  const yt = {
      linear: i.linear,
      easeIn: i.easeIn,
      easeInOut: i.easeInOut,
      easeOut: i.easeOut,
      circIn: i.circIn,
      circInOut: i.circInOut,
      circOut: i.circOut,
      backIn: i.backIn,
      backInOut: i.backInOut,
      backOut: i.backOut,
      anticipate: i.anticipate,
      bounceIn: i.bounceIn,
      bounceInOut: i.bounceInOut,
      bounceOut: i.bounceOut,
    },
    ht = (t) => {
      if (Array.isArray(t)) {
        const [e, n, r, s] = t
        return i.cubicBezier(e, n, r, s)
      }
      return 'string' == typeof t ? yt[t] : t
    },
    bt = (t, e) =>
      'zIndex' !== t &&
      (!('number' != typeof e && !Array.isArray(e)) ||
        !('string' != typeof e || !et.test(e) || e.startsWith('url(')))
  function gt(t) {
    var { ease: e, times: n, delay: r } = t,
      i = a(t, ['ease', 'times', 'delay'])
    const s = Object.assign({}, i)
    return (
      n && (s.offset = n),
      e &&
        (s.ease = ((t) => Array.isArray(t) && 'number' != typeof t[0])(e)
          ? e.map(ht)
          : ht(e)),
      r && (s.elapsed = -r),
      s
    )
  }
  function Ot(t, e, n) {
    return (
      Array.isArray(e.to) && (t.duration || (t.duration = 800)),
      (function (t) {
        Array.isArray(t.to) &&
          null === t.to[0] &&
          ((t.to = [...t.to]), (t.to[0] = t.from))
      })(e),
      (function (t) {
        var e = a(t, ['delay', 'repeat', 'repeatType', 'repeatDelay', 'from'])
        return !!Object.keys(e).length
      })(t) || (t = Object.assign(Object.assign({}, t), pt(n, e.to))),
      Object.assign(Object.assign({}, e), gt(t))
    )
  }
  function wt(t, e, n, r, s) {
    const o = (function (t, e) {
      return t[e] || t.default || t
    })(r, t)
    let a = null == o.from ? e.get() : o.from
    const c = bt(t, n)
    'none' === a &&
      c &&
      'string' == typeof n &&
      (a = (function (t, e) {
        let n = mt(t)
        return (
          n !== st && (n = et),
          n.getAnimatableNone ? n.getAnimatableNone(e) : void 0
        )
      })(t, n))
    return bt(t, a) && c && !1 !== o.type
      ? function (c) {
          const u = {
            from: a,
            to: n,
            velocity: r.velocity ? r.velocity : e.getVelocity(),
            onUpdate: (t) => e.set(t),
          }
          return 'inertia' === o.type || 'decay' === o.type
            ? i.inertia(Object.assign(Object.assign({}, u), o))
            : i.animate(
                Object.assign(Object.assign({}, Ot(o, u, t)), {
                  onUpdate: (t) => {
                    u.onUpdate(t), o.onUpdate && o.onUpdate(t)
                  },
                  onComplete: () => {
                    r.onComplete && r.onComplete(), s && s(), c && c()
                  },
                }),
              )
        }
      : function (t) {
          return (
            e.set(n),
            r.onComplete && r.onComplete(),
            s && s(),
            t && t(),
            { stop: () => {} }
          )
        }
  }
  function jt() {
    const { motionValues: t, stop: e, get: n } = E()
    return {
      motionValues: t,
      stop: e,
      push: (t, e, r, i = {}, s) => {
        const o = n(t, r[t], r)
        if (i && i.immediate) return void o.set(e)
        const a = wt(t, o, e, i, s)
        o.start(a)
      },
    }
  }
  function xt(t, r = {}, { push: i, stop: s } = jt()) {
    const o = e.unref(r),
      a = (t) => {
        if (!o || !o[t]) throw new Error(`The variant ${t} does not exist.`)
        return o[t]
      },
      u = (e) => (
        'string' == typeof e && (e = a(e)),
        Promise.all(
          Object.entries(e).map(([n, r]) => {
            if ('transition' !== n)
              return new Promise((s) => {
                i(n, r, t, e.transition || pt(n, e[n]), s)
              })
          }),
        )
      )
    return {
      apply: u,
      set: (e) => {
        let r = n.isObject(e) ? e : a(e)
        Object.entries(r).forEach(([e, n]) => {
          'transition' !== e && i(e, n, t, { immediate: !0 })
        })
      },
      stopTransitions: s,
      leave: (t) =>
        c(this, void 0, void 0, function* () {
          let e
          o &&
            (o.leave && (e = o.leave),
            !o.leave && o.initial && (e = o.initial)),
            e ? (yield u(e), t()) : t()
        }),
    }
  }
  const kt = 'undefined' != typeof window
  function Vt({ target: t, state: r, variants: i, apply: s }) {
    const o = e.unref(i),
      a = e.ref(!1),
      c = e.ref(!1),
      u = e.ref(!1),
      l = e.computed(() => {
        let t = []
        return o
          ? (o.hovered && (t = [...t, ...Object.keys(o.hovered)]),
            o.tapped && (t = [...t, ...Object.keys(o.tapped)]),
            o.focused && (t = [...t, ...Object.keys(o.focused)]),
            t)
          : t
      }),
      p = e.computed(() => {
        const t = {}
        Object.assign(t, r.value),
          a.value && o.hovered && Object.assign(t, o.hovered),
          c.value && o.tapped && Object.assign(t, o.tapped),
          u.value && o.focused && Object.assign(t, o.focused)
        for (const e in t) l.value.includes(e) || delete t[e]
        return t
      })
    e.watch(
      () => n.unrefElement(t),
      (t) => {
        t &&
          o &&
          (o.hovered &&
            (n.useEventListener(t, 'mouseenter', () => {
              a.value = !0
            }),
            n.useEventListener(t, 'mouseleave', () => {
              ;(a.value = !1), (c.value = !1)
            }),
            n.useEventListener(t, 'mouseout', () => {
              ;(a.value = !1), (c.value = !1)
            })),
          o.tapped &&
            (kt &&
              null === window.onmousedown &&
              (n.useEventListener(t, 'mousedown', () => {
                c.value = !0
              }),
              n.useEventListener(t, 'mouseup', () => {
                c.value = !1
              })),
            kt &&
              null === window.onpointerdown &&
              (n.useEventListener(t, 'pointerdown', () => {
                c.value = !0
              }),
              n.useEventListener(t, 'pointerup', () => {
                c.value = !1
              })),
            kt &&
              null === window.ontouchstart &&
              (n.useEventListener(t, 'touchstart', () => {
                c.value = !0
              }),
              n.useEventListener(t, 'touchend', () => {
                c.value = !1
              }))),
          o.focused &&
            (n.useEventListener(t, 'focus', () => {
              u.value = !0
            }),
            n.useEventListener(t, 'blur', () => {
              u.value = !1
            })))
      },
      { immediate: !0 },
    ),
      e.watch(p, (t) => {
        s(t)
      })
  }
  function Et(
    t,
    r = {
      syncVariants: !0,
      lifeCycleHooks: !0,
      visibilityHooks: !0,
      eventListeners: !0,
    },
  ) {
    r.lifeCycleHooks &&
      (function ({ target: t, variants: n, variant: r }) {
        const i = e.unref(n)
        e.watch(
          () => t,
          () => {
            i &&
              i.enter &&
              (i.initial && (r.value = 'initial'),
              e.nextTick(() => (r.value = 'enter')))
          },
          { immediate: !0, flush: 'pre' },
        )
      })(t),
      r.syncVariants &&
        (function ({ state: t, apply: n }) {
          e.watch(
            t,
            (t) => {
              t && n(t)
            },
            { immediate: !0 },
          )
        })(t),
      r.visibilityHooks &&
        (function ({ target: t, variants: r, variant: i }) {
          const s = e.unref(r)
          let o = n.noop
          const a = e.watch(
            () => n.unrefElement(t),
            (e) => {
              e &&
                (o = n.useIntersectionObserver(t, ([{ isIntersecting: t }]) => {
                  s && s.visible && (i.value = t ? 'visible' : 'initial')
                }).stop)
            },
            { immediate: !0 },
          )
        })(t),
      r.eventListeners && Vt(t)
  }
  function At(t = {}) {
    const n = e.reactive(Object.assign({}, t)),
      r = e.ref({})
    return (
      e.watch(
        n,
        () => {
          const t = {}
          for (const [e, r] of Object.entries(n)) {
            const n = mt(e),
              i = vt(r, n)
            t[e] = i
          }
          r.value = t
        },
        { immediate: !0, deep: !0 },
      ),
      { state: n, style: r }
    )
  }
  const Tt = ['', 'X', 'Y', 'Z'],
    Lt = ['transformPerspective', 'x', 'y', 'z']
  ;['perspective', 'translate', 'scale', 'rotate', 'skew'].forEach((t) => {
    Tt.forEach((e) => {
      Lt.push(t + e)
    })
  })
  const Ct = new Set(Lt)
  function It(t) {
    return Ct.has(t)
  }
  const Rt = new Set(['originX', 'originY', 'originZ'])
  function Pt(t) {
    return Rt.has(t)
  }
  function Mt(t, r) {
    let i, s
    const { state: o, style: a } = At(),
      c = e.watch(
        () => n.unrefElement(t),
        (t) => {
          if (t) {
            s = t
            for (const n of Object.keys(dt))
              null === t.style[n] ||
                '' === t.style[n] ||
                It(n) ||
                Pt(n) ||
                e.set(o, n, t.style[n])
            i && Object.entries(i).forEach(([n, r]) => e.set(t.style, n, r)),
              r && r(o)
          }
        },
        { immediate: !0 },
      ),
      u = e.watch(
        a,
        (t) => {
          if (s) for (const n in t) e.set(s.style, n, t[n])
          else i = t
        },
        { immediate: !0 },
      )
    return {
      style: o,
      stop: () => {
        c(), u()
      },
    }
  }
  const St = { x: 'translateX', y: 'translateY', z: 'translateZ' }
  function zt(t = {}, n = !0) {
    const r = e.reactive(Object.assign({}, t)),
      i = e.ref('')
    return (
      e.watch(
        r,
        (t) => {
          let e = '',
            r = !1
          if (n && (t.x || t.y || t.z)) {
            ;(e += `translate3d(${[t.x || 0, t.y || 0, t.z || 0]
              .map(N.transform)
              .join(',')}) `),
              (r = !0)
          }
          for (const [r, i] of Object.entries(t)) {
            if (n && ('x' === r || 'y' === r || 'z' === r)) continue
            const t = mt(r),
              s = vt(i, t)
            e += `${St[r] || r}(${s}) `
          }
          n && !r && (e += 'translateZ(0px) '), (i.value = e.trim())
        },
        { immediate: !0, deep: !0 },
      ),
      { state: r, transform: i }
    )
  }
  function Ft(t) {
    const e = t.trim().split(/\) |\)/)
    if (1 === e.length) return {}
    return e.reduce((t, e) => {
      if (!e) return t
      const [n, r] = e.split('('),
        i = r
          .split(',')
          .map((t) =>
            ((t) =>
              t.endsWith('px') || t.endsWith('deg')
                ? parseFloat(t)
                : isNaN(Number(t))
                ? Number(t)
                : t)(t.endsWith(')') ? t.replace(')', '') : t.trim()),
          ),
        s = 1 === i.length ? i[0] : i
      return Object.assign(Object.assign({}, t), { [n]: s })
    }, {})
  }
  function Bt(t, r) {
    let i, s
    const { state: o, transform: a } = zt(),
      c = e.watch(
        () => n.unrefElement(t),
        (t) => {
          t &&
            ((s = t),
            t.style.transform &&
              (function (t, n) {
                Object.entries(Ft(n)).forEach(([n, r]) => {
                  r = parseFloat(r)
                  const i = ['x', 'y', 'z']
                  'translate3d' !== n
                    ? e.set(
                        t,
                        'translateX' !== n
                          ? 'translateY' !== n
                            ? 'translateZ' !== n
                              ? n
                              : 'z'
                            : 'y'
                          : 'x',
                        r,
                      )
                    : r.forEach((n, r) => {
                        e.set(t, i[r], n)
                      })
                })
              })(o, t.style.transform),
            i && (t.style.transform = i),
            r && r(o))
        },
        { immediate: !0 },
      ),
      u = e.watch(
        a,
        (t) => {
          s ? (s.style.transform = t) : (i = t)
        },
        { immediate: !0 },
      )
    return {
      transform: o,
      stop: () => {
        c(), u()
      },
    }
  }
  function Nt(t, r) {
    const i = e.reactive({}),
      s = (t) => {
        Object.entries(t).forEach(([t, n]) => {
          e.set(i, t, n)
        })
      },
      { style: o, stop: a } = Mt(t, s),
      { transform: c, stop: u } = Bt(t, s),
      l = e.watch(
        i,
        (t) => {
          Object.entries(t).forEach(([t, n]) => {
            const r = It(t) ? c : o
            ;(r[t] && r[t] === n) || e.set(r, t, n)
          })
        },
        { immediate: !0, deep: !0 },
      ),
      p = e.watch(
        () => n.unrefElement(t),
        (t) => {
          t && r && s(r)
        },
        { immediate: !0 },
      )
    return {
      motionProperties: i,
      style: o,
      transform: c,
      stop: () => {
        a(), u(), l(), p()
      },
    }
  }
  function Wt(t = {}) {
    const n = e.unref(t),
      r = e.ref()
    return {
      state: e.computed(() => {
        if (r.value) return n[r.value]
      }),
      variant: r,
    }
  }
  function Ut(t, e = {}, n) {
    const { motionProperties: r } = Nt(t),
      { variant: i, state: s } = Wt(e),
      o = xt(r, e),
      a = Object.assign(
        { target: t, variant: i, variants: e, state: s, motionProperties: r },
        o,
      )
    return Et(a, n), a
  }
  const Xt = [
      'initial',
      'enter',
      'leave',
      'visible',
      'hovered',
      'tapped',
      'focused',
      'delay',
    ],
    Yt = (t) => {
      const r = (r, i, o) => {
          const a = e.ref(t || {})
          ;((t, e) => {
            const r = t.props
              ? t.props
              : t.data && t.data.attrs
              ? t.data.attrs
              : {}
            r &&
              (r.variants &&
                n.isObject(r.variants) &&
                (e.value = Object.assign(
                  Object.assign({}, e.value),
                  r.variants,
                )),
              Xt.forEach((t) => {
                if ('delay' !== t)
                  r && r[t] && n.isObject(r[t]) && (e.value[t] = r[t])
                else if (r && r[t] && n.isNumber(r[t])) {
                  const n = r[t]
                  e &&
                    e.value &&
                    (e.value.enter &&
                      (e.value.enter.transition ||
                        (e.value.enter.transition = {}),
                      (e.value.enter.transition = Object.assign(
                        Object.assign({}, e.value.enter.transition),
                        { delay: n },
                      ))),
                    e.value.visible &&
                      (e.value.visible.transition ||
                        (e.value.visible.transition = {}),
                      (e.value.visible.transition = Object.assign(
                        Object.assign({}, e.value.visible.transition),
                        { delay: n },
                      ))))
                }
              }))
          })(o, a)
          const c = Ut(r, a)
          i.value && e.set(s, i.value, c)
        },
        i = (t, n, r) => {
          n.value && s[n.value] && e.del(s, n.value)
        }
      return { created: r, unmounted: i, bind: r, unbind: i }
    },
    Zt = { initial: { opacity: 0 }, enter: { opacity: 1 } },
    Dt = { initial: { opacity: 0 }, visible: { opacity: 1 } },
    $t = { initial: { scale: 0, opacity: 0 }, enter: { scale: 1, opacity: 1 } },
    _t = {
      initial: { scale: 0, opacity: 0 },
      visible: { scale: 1, opacity: 1 },
    },
    Ht = {
      initial: { x: -100, rotate: 90, opacity: 0 },
      enter: { x: 0, rotate: 0, opacity: 1 },
    },
    qt = {
      initial: { x: -100, rotate: 90, opacity: 0 },
      visible: { x: 0, rotate: 0, opacity: 1 },
    },
    Qt = {
      initial: { x: 100, rotate: -90, opacity: 0 },
      enter: { x: 0, rotate: 0, opacity: 1 },
    },
    Gt = {
      initial: { x: 100, rotate: -90, opacity: 0 },
      visible: { x: 0, rotate: 0, opacity: 1 },
    },
    Jt = {
      initial: { y: -100, rotate: -90, opacity: 0 },
      enter: { y: 0, rotate: 0, opacity: 1 },
    },
    Kt = {
      initial: { y: -100, rotate: -90, opacity: 0 },
      visible: { y: 0, rotate: 0, opacity: 1 },
    },
    te = {
      initial: { y: 100, rotate: 90, opacity: 0 },
      enter: { y: 0, rotate: 0, opacity: 1 },
    },
    ee = {
      initial: { y: 100, rotate: 90, opacity: 0 },
      visible: { y: 0, rotate: 0, opacity: 1 },
    },
    ne = { initial: { x: -100, opacity: 0 }, enter: { x: 0, opacity: 1 } },
    re = { initial: { x: -100, opacity: 0 }, visible: { x: 0, opacity: 1 } },
    ie = { initial: { x: 100, opacity: 0 }, enter: { x: 0, opacity: 1 } },
    se = { initial: { x: 100, opacity: 0 }, visible: { x: 0, opacity: 1 } },
    oe = { initial: { y: -100, opacity: 0 }, enter: { y: 0, opacity: 1 } },
    ae = { initial: { y: -100, opacity: 0 }, visible: { y: 0, opacity: 1 } },
    ce = { initial: { y: 100, opacity: 0 }, enter: { y: 0, opacity: 1 } },
    ue = { initial: { y: 100, opacity: 0 }, visible: { y: 0, opacity: 1 } }
  var le = Object.freeze({
    __proto__: null,
    fade: Zt,
    fadeVisible: Dt,
    pop: $t,
    popVisible: _t,
    rollBottom: te,
    rollLeft: Ht,
    rollRight: Qt,
    rollTop: Jt,
    rollVisibleBottom: ee,
    rollVisibleLeft: qt,
    rollVisibleRight: Gt,
    rollVisibleTop: Kt,
    slideBottom: ce,
    slideLeft: ne,
    slideRight: ie,
    slideTop: oe,
    slideVisibleBottom: ue,
    slideVisibleLeft: re,
    slideVisibleRight: se,
    slideVisibleTop: ae,
  })
  function pe(t) {
    const e =
        'àáâäæãåāăąçćčđďèéêëēėęěğǵḧîïíīįìłḿñńǹňôöòóœøōõőṕŕřßśšşșťțûüùúūǘůűųẃẍÿýžźż·/_,:;',
      n = new RegExp(e.split('').join('|'), 'g')
    return t
      .toString()
      .replace(/[A-Z]/g, (t) => '-' + t)
      .toLowerCase()
      .replace(/\s+/g, '-')
      .replace(n, (t) =>
        'aaaaaaaaaacccddeeeeeeeegghiiiiiilmnnnnoooooooooprrsssssttuuuuuuuuuwxyyzzz------'.charAt(
          e.indexOf(t),
        ),
      )
      .replace(/&/g, '-and-')
      .replace(/[^\w\-]+/g, '')
      .replace(/\-\-+/g, '-')
      .replace(/^-+/, '')
      .replace(/-+$/, '')
  }
  const fe = {
    install(t, e) {
      if ((t.directive('motion', Yt()), !e || (e && !e.excludePresets)))
        for (const e in le) {
          const n = le[e]
          t.directive(`motion-${pe(e)}`, Yt(n))
        }
      if (e && e.directives)
        for (const n in e.directives) {
          const r = e.directives[n]
          0, t.directive(`motion-${n}`, Yt(r))
        }
    },
  }
  return (
    (t.MotionDirective = Yt),
    (t.MotionPlugin = fe),
    (t.fade = Zt),
    (t.fadeVisible = Dt),
    (t.isMotionInstance = function (t) {
      const n = t
      return (
        void 0 !== n.apply &&
        r.isFunction(n.apply) &&
        void 0 !== n.set &&
        r.isFunction(n.set) &&
        void 0 !== n.stopTransitions &&
        r.isFunction(n.stopTransitions) &&
        void 0 !== n.target &&
        e.isRef(n.target)
      )
    }),
    (t.pop = $t),
    (t.popVisible = _t),
    (t.reactiveStyle = At),
    (t.reactiveTransform = zt),
    (t.rollBottom = te),
    (t.rollLeft = Ht),
    (t.rollRight = Qt),
    (t.rollTop = Jt),
    (t.rollVisibleBottom = ee),
    (t.rollVisibleLeft = qt),
    (t.rollVisibleRight = Gt),
    (t.rollVisibleTop = Kt),
    (t.slideBottom = ce),
    (t.slideLeft = ne),
    (t.slideRight = ie),
    (t.slideTop = oe),
    (t.slideVisibleBottom = ue),
    (t.slideVisibleLeft = re),
    (t.slideVisibleRight = se),
    (t.slideVisibleTop = ae),
    (t.slugify = pe),
    (t.useElementStyle = Mt),
    (t.useElementTransform = Bt),
    (t.useMotion = Ut),
    (t.useMotionControls = xt),
    (t.useMotionProperties = Nt),
    (t.useMotionTransitions = jt),
    (t.useMotionVariants = Wt),
    (t.useMotions = function () {
      return s
    }),
    (t.useReducedMotion = function (t = {}) {
      return n.useMediaQuery('(prefers-reduced-motion: reduce)', t)
    }),
    (t.useSpring = function (t, e) {
      const { stop: n, get: r } = E()
      return {
        values: t,
        stop: n,
        set: (n) =>
          Promise.all(
            Object.entries(n).map(([n, s]) => {
              const o = r(n, t[n], t)
              return o.start((t) => {
                const r = Object.assign({ type: 'spring' }, e || pt(n, s))
                return i.animate(
                  Object.assign(
                    {
                      from: o.get(),
                      to: s,
                      velocity: o.getVelocity(),
                      onUpdate: (t) => o.set(t),
                      onComplete: t,
                    },
                    r,
                  ),
                )
              })
            }),
          ),
      }
    }),
    Object.defineProperty(t, '__esModule', { value: !0 }),
    t
  )
})({}, VueDemi, VueUse, shared, popmotion)
