import * as vue from 'vue';
import { ExtractPropTypes, defineComponent, h, ComputedGetter, toRef, computed, createElementBlock, openBlock, normalizeStyle, Fragment, renderList, createElementVNode, useCssVars, unref, Plugin } from 'vue';
import range from 'just-range';

declare const spinnerProps: {
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
};
declare function useSpinner(props: ExtractPropTypes<typeof spinnerProps>): {
    cSize: vue.ComputedRef<string | number>;
    classes: vue.ComputedRef<string>;
    style: vue.ComputedRef<{
        color: string | undefined;
    }>;
};

var _sfc_main$k = defineComponent({
  name: "VueSpinner",
  props: {
    ...spinnerProps,
    thickness: {
      type: Number,
      default: 5
    }
  },
  setup(props) {
    const { cSize, classes, style } = useSpinner(props);
    return () => h(
      "svg",
      {
        style: style.value,
        class: classes.value + " vue-spinner-mat",
        width: cSize.value,
        height: cSize.value,
        viewBox: "25 25 50 50"
      },
      [
        h("circle", {
          class: "path",
          cx: "50",
          cy: "50",
          r: "20",
          fill: "none",
          stroke: "currentColor",
          "stroke-width": props.thickness,
          "stroke-miterlimit": "10"
        })
      ]
    );
  }
});

var _export_sfc = (sfc, props) => {
  const target = sfc.__vccOpts || sfc;
  for (const [key, val] of props) {
    target[key] = val;
  }
  return target;
};

var vueSpinner = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__file", "/Users/leonsilicon/Developer/github/leonsilicon/vue3-spinners/packages/vue3-spinners/src/spinners/vue-spinner.vue"]]);

declare const _default$l: vue.DefineComponent<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>> & Readonly<{}>, {
    size: string | number;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

declare const _default$k: vue.DefineComponent<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>> & Readonly<{}>, {
    size: string | number;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

interface UseSpinnerPropsProps {
    margin?: string;
    size?: string | number;
    height?: string | number;
    width?: string | number;
    radius?: string | number;
}
declare function useSpinnerProps<T extends UseSpinnerPropsProps>(props: T): {
    color: {
        type: StringConstructor;
        default: string;
    };
} & { [K in "size" | "margin" | "height" | "width" | "radius" as T[K] extends NonNullable<UseSpinnerPropsProps[K]> ? K : never]: {
    size: {
        type: (StringConstructor | NumberConstructor)[];
        default: string | number | undefined;
    };
    margin: {
        type: StringConstructor;
        default: string | undefined;
    };
    height: {
        type: (StringConstructor | NumberConstructor)[];
        default: string | number | undefined;
    };
    width: {
        type: (StringConstructor | NumberConstructor)[];
        default: string | number | undefined;
    };
    radius: {
        type: (StringConstructor | NumberConstructor)[];
        default: string | number | undefined;
    };
}[K]; };

declare const calculateRgba: (input: string, opacity: number) => string;

declare function useSize(sizeGetter: ComputedGetter<string | number>): vue.ComputedRef<{
    value: number;
    unit: string;
    string: string;
}>;

const __default__$i = { name: "VueSpinnerBar" };
var _sfc_main$j = /* @__PURE__ */ defineComponent({
  ...__default__$i,
  props: useSpinnerProps({ height: 4, width: 100 }),
  setup(__props, { expose: __expose }) {
    __expose();
    const heightProp = toRef(__props, "height");
    const widthProp = toRef(__props, "width");
    const width = useSize(() => __props.width);
    const height = useSize(() => __props.height);
    const wrapperStyle = computed(
      () => ({
        position: "relative",
        width: width.value.string,
        height: height.value.string,
        overflow: "hidden",
        backgroundColor: calculateRgba(__props.color),
        backgroundClip: "padding-box"
      })
    );
    const getBarStyle = (version) => ({
      position: "absolute",
      height: height.value.string,
      overflow: "hidden",
      backgroundColor: __props.color,
      backgroundClip: "padding-box",
      display: "block",
      borderRadius: "2px",
      willChange: "left, right",
      animationFillMode: "forwards",
      animation: ` ${version === 1 ? "vue-spinner-long" : "vue-spinner-short"} 2.1s ${version === 2 ? `1.15s` : ``} ${version === 1 ? `cubic-bezier(0.65, 0.815, 0.735, 0.395)` : `cubic-bezier(0.165, 0.84, 0.44, 1)`} infinite`
    });
    const __returned__ = { heightProp, widthProp, width, height, wrapperStyle, getBarStyle };
    Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
    return __returned__;
  }
});

function _sfc_render$j(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock(
    "div",
    {
      style: normalizeStyle($setup.wrapperStyle)
    },
    [
      (openBlock(), createElementBlock(
        Fragment,
        null,
        renderList(2, (n) => {
          return createElementVNode(
            "div",
            {
              key: n,
              style: normalizeStyle($setup.getBarStyle(n))
            },
            null,
            4
            /* STYLE */
          );
        }),
        64
        /* STABLE_FRAGMENT */
      ))
    ],
    4
    /* STYLE */
  );
}
var vueSpinnerBar = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["render", _sfc_render$j], ["__file", "/Users/leonsilicon/Developer/github/leonsilicon/vue3-spinners/packages/vue3-spinners/src/spinners/vue-spinner-bar.vue"]]);

declare namespace __spinners_vue_spinner_bar_vue {
  export {
    vueSpinnerBar as default,
  };
}

declare const _default$j: vue.DefineComponent<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>> & Readonly<{}>, {
    size: string | number;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

var _sfc_main$i = /* @__PURE__ */ defineComponent({
  __name: "vue-spinner-beat",
  props: useSpinnerProps({ size: 15, margin: "2px" }),
  setup(__props, { expose: __expose }) {
    __expose();
    const marginProp = toRef(__props, "margin");
    const sizeProp = toRef(__props, "size");
    const size = useSize(() => __props.size);
    const margin = useSize(() => __props.margin);
    const getCircleStyle = (version) => ({
      animation: `vue-spinner-beat 0.7s ${version % 2 ? `0s` : `0.35s`} infinite linear`,
      display: "inline-block",
      backgroundColor: __props.color,
      width: size.value.string,
      height: size.value.string,
      margin: margin.value.string,
      borderRadius: "100%",
      animationFillMode: "both"
    });
    const __returned__ = { marginProp, sizeProp, size, margin, getCircleStyle };
    Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
    return __returned__;
  }
});

function _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock("div", null, [
    (openBlock(), createElementBlock(
      Fragment,
      null,
      renderList(3, (n) => {
        return createElementVNode(
          "div",
          {
            key: n,
            style: normalizeStyle($setup.getCircleStyle(n))
          },
          null,
          4
          /* STYLE */
        );
      }),
      64
      /* STABLE_FRAGMENT */
    ))
  ]);
}
var vueSpinnerBeat = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["render", _sfc_render$i], ["__file", "/Users/leonsilicon/Developer/github/leonsilicon/vue3-spinners/packages/vue3-spinners/src/spinners/vue-spinner-beat.vue"]]);

declare namespace __spinners_vue_spinner_beat_vue {
  export {
    vueSpinnerBeat as default,
  };
}

const __default__$h = { name: "VueSpinnerBeat" };
var _sfc_main$h = /* @__PURE__ */ defineComponent({
  ...__default__$h,
  props: useSpinnerProps({ size: 60 }),
  setup(__props, { expose: __expose }) {
    __expose();
    const sizeProp = toRef(__props, "size");
    const size = useSize(() => __props.size);
    const getCircleStyle = (version) => ({
      position: "absolute",
      width: size.value.string,
      height: size.value.string,
      backgroundColor: __props.color,
      borderRadius: "100%",
      opacity: 0.6,
      top: 0,
      left: 0,
      animationFillMode: "both",
      animation: `vue-spinner-bounce 2.1s ${version === 1 ? `1s` : `0s`} infinite ease-in-out`
    });
    const wrapperStyle = computed(
      () => ({
        position: "relative",
        width: size.value.string,
        height: size.value.string
      })
    );
    const __returned__ = { sizeProp, size, getCircleStyle, wrapperStyle };
    Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
    return __returned__;
  }
});

function _sfc_render$h(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock(
    "div",
    {
      style: normalizeStyle($setup.wrapperStyle)
    },
    [
      (openBlock(), createElementBlock(
        Fragment,
        null,
        renderList(2, (n) => {
          return createElementVNode(
            "div",
            {
              key: n,
              style: normalizeStyle($setup.getCircleStyle(n))
            },
            null,
            4
            /* STYLE */
          );
        }),
        64
        /* STABLE_FRAGMENT */
      ))
    ],
    4
    /* STYLE */
  );
}
var vueSpinnerBounce = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["render", _sfc_render$h], ["__file", "/Users/leonsilicon/Developer/github/leonsilicon/vue3-spinners/packages/vue3-spinners/src/spinners/vue-spinner-bounce.vue"]]);

declare const _default$i: vue.DefineComponent<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>> & Readonly<{}>, {
    size: string | number;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

const __default__$g = { name: "VueSpinnerCircle" };
var _sfc_main$g = /* @__PURE__ */ defineComponent({
  ...__default__$g,
  props: useSpinnerProps({ size: 50 }),
  setup(__props, { expose: __expose }) {
    __expose();
    const sizeProp = toRef(__props, "size");
    const size = useSize(() => __props.size);
    const getRingStyle = (version) => ({
      position: "absolute",
      border: `1px solid ${__props.color}`,
      borderRadius: "100%",
      transition: "2s",
      borderBottom: "none",
      borderRight: "none",
      animationFillMode: "",
      height: `${size.value.value * (1 - version / 10)}${size.value.unit}`,
      width: `${size.value.value * (1 - version / 10)}${size.value.unit}`,
      top: `${version * 0.7 * 2.5}%`,
      left: `${version * 0.35 * 2.5}%`,
      animation: `vue-spinner-circle 1s ${version * 0.2}s infinite linear`
    });
    const wrapperStyle = computed(
      () => ({
        position: "relative",
        width: size.value.string,
        height: size.value.string
      })
    );
    const __returned__ = { sizeProp, size, getRingStyle, wrapperStyle };
    Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
    return __returned__;
  }
});

function _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock(
    "div",
    {
      style: normalizeStyle($setup.wrapperStyle)
    },
    [
      (openBlock(), createElementBlock(
        Fragment,
        null,
        renderList(5, (i) => {
          return createElementVNode(
            "div",
            {
              key: i,
              style: normalizeStyle($setup.getRingStyle(i))
            },
            null,
            4
            /* STYLE */
          );
        }),
        64
        /* STABLE_FRAGMENT */
      ))
    ],
    4
    /* STYLE */
  );
}
var vueSpinnerCircle = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["render", _sfc_render$g], ["__file", "/Users/leonsilicon/Developer/github/leonsilicon/vue3-spinners/packages/vue3-spinners/src/spinners/vue-spinner-circle.vue"]]);

declare namespace __spinners_vue_spinner_circle_vue {
  export {
    vueSpinnerCircle as default,
  };
}

const __default__$f = { name: "VueSpinnerClimbingBox" };
var _sfc_main$f = /* @__PURE__ */ defineComponent({
  ...__default__$f,
  props: useSpinnerProps({ size: 15 }),
  setup(__props, { expose: __expose }) {
    __expose();
    const sizeProp = toRef(__props, "size");
    const size = useSize(() => __props.size);
    const containerStyle = computed(
      () => ({
        position: "relative",
        width: "7.1em",
        height: "7.1em"
      })
    );
    const wrapperStyle = computed(
      () => ({
        position: "absolute",
        top: "50%",
        left: "50%",
        marginTop: "-2.7em",
        marginLeft: "-2.7em",
        width: "5.4em",
        height: "5.4em",
        fontSize: size.value.string
      })
    );
    const boxStyle = computed(
      () => ({
        position: "absolute",
        left: "0",
        bottom: "-0.1em",
        height: "1em",
        width: "1em",
        backgroundColor: "transparent",
        borderRadius: "15%",
        border: `0.25em solid ${__props.color}`,
        transform: "translate(0, -1em) rotate(-45deg)",
        animationFillMode: "both",
        animation: "vue-spinner-climbing-box 2.5s infinite cubic-bezier(0.79, 0, 0.47, 0.97)"
      })
    );
    const hillStyle = computed(
      () => ({
        position: "absolute",
        width: "7.1em",
        height: "7.1em",
        top: "1.7em",
        left: "1.7em",
        borderLeft: `0.25em solid ${__props.color}`,
        transform: "rotate(45deg)"
      })
    );
    const __returned__ = { sizeProp, size, containerStyle, wrapperStyle, boxStyle, hillStyle };
    Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
    return __returned__;
  }
});

function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock(
    "div",
    {
      style: normalizeStyle($setup.containerStyle)
    },
    [
      createElementVNode(
        "div",
        {
          style: normalizeStyle($setup.wrapperStyle)
        },
        [
          createElementVNode(
            "div",
            {
              style: normalizeStyle($setup.boxStyle)
            },
            null,
            4
            /* STYLE */
          ),
          createElementVNode(
            "div",
            {
              style: normalizeStyle($setup.hillStyle)
            },
            null,
            4
            /* STYLE */
          )
        ],
        4
        /* STYLE */
      )
    ],
    4
    /* STYLE */
  );
}
var vueSpinnerClimbingBox = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["render", _sfc_render$f], ["__file", "/Users/leonsilicon/Developer/github/leonsilicon/vue3-spinners/packages/vue3-spinners/src/spinners/vue-spinner-climbing-box.vue"]]);

declare namespace __spinners_vue_spinner_climbing_box_vue {
  export {
    vueSpinnerClimbingBox as default,
  };
}

const __default__$e = { name: "VueSpinnerClip" };
var _sfc_main$e = /* @__PURE__ */ defineComponent({
  ...__default__$e,
  props: useSpinnerProps({ size: 35 }),
  setup(__props, { expose: __expose }) {
    __expose();
    const sizeProp = toRef(__props, "size");
    const size = useSize(() => __props.size);
    const ringStyle = computed(() => ({
      background: "transparent !important",
      width: size.value.string,
      height: size.value.string,
      borderRadius: "100%",
      border: `2px solid ${__props.color}`,
      borderBottomColor: "transparent",
      display: "inline-block",
      animation: "vue-spinner-clip 0.75s 0s infinite linear",
      animationFillMode: "both"
    }));
    const __returned__ = { sizeProp, size, ringStyle };
    Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
    return __returned__;
  }
});

function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock(
    "div",
    {
      style: normalizeStyle($setup.ringStyle)
    },
    null,
    4
    /* STYLE */
  );
}
var vueSpinnerClip = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["render", _sfc_render$e], ["__file", "/Users/leonsilicon/Developer/github/leonsilicon/vue3-spinners/packages/vue3-spinners/src/spinners/vue-spinner-clip.vue"]]);

declare namespace __spinners_vue_spinner_clip_vue {
  export {
    vueSpinnerClip as default,
  };
}

declare const _default$h: vue.DefineComponent<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>> & Readonly<{}>, {
    size: string | number;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

declare const _default$g: vue.DefineComponent<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>> & Readonly<{}>, {
    size: string | number;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

declare const _default$f: vue.DefineComponent<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>> & Readonly<{}>, {
    size: string | number;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

const __default__$d = { name: "VueSpinnerDot" };
var _sfc_main$d = /* @__PURE__ */ defineComponent({
  ...__default__$d,
  props: useSpinnerProps({ size: 60 }),
  setup(__props, { expose: __expose }) {
    __expose();
    const sizeProp = toRef(__props, "size");
    const size = useSize(() => __props.size);
    const getCircleStyle = (version) => ({
      position: "absolute",
      height: `${size.value.value / 2}${size.value.unit}`,
      width: `${size.value.value / 2}${size.value.unit}`,
      backgroundColor: __props.color,
      borderRadius: "100%",
      animationFillMode: "forwards",
      top: version % 2 ? "0" : "auto",
      bottom: version % 2 ? `auto` : `0`,
      animation: `vue-spinner-bounce 2s ${version === 2 ? `-1s` : `0s`} infinite linear`
    });
    const wrapperStyle = computed(
      () => ({
        position: "relative",
        width: size.value.string,
        height: size.value.string,
        animationFillMode: "forwards",
        animation: "vue-spinner-rotate 2s 0s infinite linear"
      })
    );
    const __returned__ = { sizeProp, size, getCircleStyle, wrapperStyle };
    Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
    return __returned__;
  }
});

function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock(
    "div",
    {
      style: normalizeStyle($setup.wrapperStyle)
    },
    [
      (openBlock(), createElementBlock(
        Fragment,
        null,
        renderList(2, (n) => {
          return createElementVNode(
            "div",
            {
              key: n,
              style: normalizeStyle($setup.getCircleStyle(n))
            },
            null,
            4
            /* STYLE */
          );
        }),
        64
        /* STABLE_FRAGMENT */
      ))
    ],
    4
    /* STYLE */
  );
}
var vueSpinnerDot = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$d], ["__file", "/Users/leonsilicon/Developer/github/leonsilicon/vue3-spinners/packages/vue3-spinners/src/spinners/vue-spinner-dot.vue"]]);

declare namespace __spinners_vue_spinner_dot_vue {
  export {
    vueSpinnerDot as default,
  };
}

declare const _default$e: vue.DefineComponent<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>> & Readonly<{}>, {
    size: string | number;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

declare const _default$d: vue.DefineComponent<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>> & Readonly<{}>, {
    size: string | number;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

const __default__$c = { name: "VueSpinnerFade" };
const rad = 20;
var _sfc_main$c = /* @__PURE__ */ defineComponent({
  ...__default__$c,
  props: useSpinnerProps({
    color: "#000000",
    height: "15px",
    width: "5px",
    margin: "2px",
    radius: "2px"
  }),
  setup(__props, { expose: __expose }) {
    __expose();
    const radiusProp = toRef(__props, "radius");
    const marginProp = toRef(__props, "margin");
    const widthProp = toRef(__props, "width");
    const heightProp = toRef(__props, "height");
    const height = useSize(() => __props.height);
    const width = useSize(() => __props.width);
    const margin = useSize(() => __props.margin);
    const radius = useSize(() => __props.radius);
    const quarter = rad / 2 + rad / 5.5;
    const wrapperStyle = {
      top: `${rad}px`,
      left: `${rad}px`,
      width: `${rad * 3}px`,
      height: `${rad * 3}px`,
      position: "relative",
      fontSize: 0
    };
    const styles = {
      a: {
        top: `${rad}px`,
        left: 0
      },
      b: {
        top: `${quarter}px`,
        left: `${quarter}px`,
        transform: "rotate(-45deg)"
      },
      c: {
        top: 0,
        left: `${rad}px`,
        transform: "rotate(90deg)"
      },
      d: {
        top: `${ -13.636363636363637}px`,
        left: `${quarter}px`,
        transform: "rotate(45deg)"
      },
      e: {
        top: `${ -20}px`,
        left: 0
      },
      f: {
        top: `${ -13.636363636363637}px`,
        left: `${ -13.636363636363637}px`,
        transform: "rotate(-45deg)"
      },
      g: {
        top: 0,
        left: `${ -20}px`,
        transform: "rotate(90deg)"
      },
      h: {
        top: `${quarter}px`,
        left: `${ -13.636363636363637}px`,
        transform: "rotate(45deg)"
      }
    };
    const getBarStyle = (variation, version) => ({
      position: "absolute",
      width: width.value.string,
      height: height.value.string,
      margin: margin.value.string,
      backgroundColor: __props.color,
      borderRadius: radius.value.string,
      transition: "2s",
      animationFillMode: "both",
      animation: `vue-spinner-fade 1.2s ${version * 0.12}s infinite ease-in-out`,
      ...styles[variation]
    });
    const __returned__ = { rad, radiusProp, marginProp, widthProp, heightProp, height, width, margin, radius, quarter, wrapperStyle, styles, getBarStyle };
    Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
    return __returned__;
  }
});

function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock("div", { style: $setup.wrapperStyle }, [
    (openBlock(true), createElementBlock(
      Fragment,
      null,
      renderList(Object.keys($setup.styles), (letter, i) => {
        return openBlock(), createElementBlock(
          "div",
          {
            key: i,
            style: normalizeStyle($setup.getBarStyle(letter, i))
          },
          null,
          4
          /* STYLE */
        );
      }),
      128
      /* KEYED_FRAGMENT */
    ))
  ]);
}
var vueSpinnerFade = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$c], ["__file", "/Users/leonsilicon/Developer/github/leonsilicon/vue3-spinners/packages/vue3-spinners/src/spinners/vue-spinner-fade.vue"]]);

declare namespace __spinners_vue_spinner_fade_vue {
  export {
    vueSpinnerFade as default,
  };
}

declare const _default$c: vue.DefineComponent<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>> & Readonly<{}>, {
    size: string | number;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

declare const _default$b: vue.DefineComponent<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>> & Readonly<{}>, {
    size: string | number;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

const __default__$b = { name: "VueSpinnerGridPop" };
var _sfc_main$b = /* @__PURE__ */ defineComponent({
  ...__default__$b,
  props: useSpinnerProps({ size: 15, margin: "2px" }),
  setup(__props, { expose: __expose }) {
    __expose();
    const marginProp = toRef(__props, "margin");
    const sizeProp = toRef(__props, "size");
    const random = (top) => Math.random() * top;
    const size = useSize(() => __props.size);
    const margin = useSize(() => __props.margin);
    const wrapperWidth = computed(() => size.value.value * 3 + margin.value.value * 6);
    const getCircleStyle = (rand) => ({
      display: "inline-block",
      backgroundColor: __props.color,
      width: size.value.string,
      height: size.value.string,
      margin: margin.value.string,
      borderRadius: "100%",
      animationFillMode: "both",
      animation: `vue-spinner-grid ${rand / 100 + 0.6}s ${rand / 100 - 0.2}s infinite ease`
    });
    const wrapperStyle = computed(() => ({
      width: `${wrapperWidth.value}px`,
      fontSize: 0
    }));
    const __returned__ = { marginProp, sizeProp, random, size, margin, wrapperWidth, getCircleStyle, wrapperStyle };
    Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
    return __returned__;
  }
});

function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock(
    "div",
    {
      style: normalizeStyle($setup.wrapperStyle)
    },
    [
      (openBlock(), createElementBlock(
        Fragment,
        null,
        renderList(9, (n) => {
          return createElementVNode(
            "div",
            {
              key: n,
              style: normalizeStyle($setup.getCircleStyle($setup.random(100)))
            },
            null,
            4
            /* STYLE */
          );
        }),
        64
        /* STABLE_FRAGMENT */
      ))
    ],
    4
    /* STYLE */
  );
}
var vueSpinnerGridPop = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$b], ["__file", "/Users/leonsilicon/Developer/github/leonsilicon/vue3-spinners/packages/vue3-spinners/src/spinners/vue-spinner-grid-pop.vue"]]);

declare namespace __spinners_vue_spinner_grid_pop_vue {
  export {
    vueSpinnerGridPop as default,
  };
}

declare const _default$a: vue.DefineComponent<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>> & Readonly<{}>, {
    size: string | number;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

declare const _default$9: vue.DefineComponent<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>> & Readonly<{}>, {
    size: string | number;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

declare const _default$8: vue.DefineComponent<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>> & Readonly<{}>, {
    size: string | number;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

declare const _default$7: vue.DefineComponent<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>> & Readonly<{}>, {
    size: string | number;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

const __default__$a = { name: "VueSpinnerMoon" };
var _sfc_main$a = /* @__PURE__ */ defineComponent({
  ...__default__$a,
  props: useSpinnerProps({ size: 60 }),
  setup(__props, { expose: __expose }) {
    __expose();
    const sizeProp = toRef(__props, "size");
    const size = useSize(() => __props.size);
    const moonSize = (size2) => size2 / 7;
    const wrapperStyle = computed(
      () => ({
        position: "relative",
        width: `${size.value.value + moonSize(size.value.value) * 2}${size.value.unit}`,
        height: `${size.value.value + moonSize(size.value.value) * 2}${size.value.unit}`,
        animation: "vue-spinner-moon 0.6s linear 0s infinite normal forwards running",
        boxSizing: "content-box"
      })
    );
    const moonStyle = computed(
      () => ({
        position: "absolute",
        top: `${size.value.value / 2 - moonSize(size.value.value)}${size.value.unit}`,
        backgroundColor: __props.color,
        opacity: "0.8",
        animation: "vue-spinner-moon 0.6s linear 0s infinite normal forwards running",
        boxSizing: "content-box",
        width: `${moonSize(size.value.value)}${size.value.unit}`,
        height: `${moonSize(size.value.value)}${size.value.unit}`,
        borderRadius: "100%"
      })
    );
    const ringStyle = computed(
      () => ({
        borderWidth: `${moonSize(size.value.value)}${size.value.unit}`,
        borderStyle: "solid",
        borderColor: __props.color,
        borderImage: "initial",
        opacity: "0.1",
        boxSizing: "content-box",
        width: size.value.string,
        height: size.value.string,
        borderRadius: "100%"
      })
    );
    const __returned__ = { sizeProp, size, moonSize, wrapperStyle, moonStyle, ringStyle };
    Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
    return __returned__;
  }
});

function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock(
    "div",
    {
      style: normalizeStyle($setup.wrapperStyle)
    },
    [
      createElementVNode(
        "div",
        {
          style: normalizeStyle($setup.moonStyle)
        },
        null,
        4
        /* STYLE */
      ),
      createElementVNode(
        "div",
        {
          style: normalizeStyle($setup.ringStyle)
        },
        null,
        4
        /* STYLE */
      )
    ],
    4
    /* STYLE */
  );
}
var vueSpinnerMoon = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$a], ["__file", "/Users/leonsilicon/Developer/github/leonsilicon/vue3-spinners/packages/vue3-spinners/src/spinners/vue-spinner-moon.vue"]]);

declare namespace __spinners_vue_spinner_moon_vue {
  export {
    vueSpinnerMoon as default,
  };
}

declare const _default$6: vue.DefineComponent<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>> & Readonly<{}>, {
    size: string | number;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

declare const _default$5: vue.DefineComponent<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>> & Readonly<{}>, {
    size: string | number;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

const __default__$9 = { name: "VueSpinnerPacman" };
var _sfc_main$9 = /* @__PURE__ */ defineComponent({
  ...__default__$9,
  props: useSpinnerProps({ size: "25px", margin: "2px" }),
  setup(__props, { expose: __expose }) {
    __expose();
    useCssVars((_ctx) => ({
      "c8cb0e22-`${-4 * size.value}${size.unit}`": `${ -4 * unref(size).value}${unref(size).unit}`,
      "c8cb0e22-`${-size.value / 4}${size.unit}`": `${-unref(size).value / 4}${unref(size).unit}`
    }));
    const marginProp = toRef(__props, "margin");
    const sizeProp = toRef(__props, "size");
    const size = useSize(() => __props.size);
    const margin = useSize(() => __props.margin);
    const s1 = (sizeString) => `${sizeString} solid transparent`;
    const s2 = (sizeString, color) => `${sizeString} solid ${color}`;
    const getPacmanStyle = (version) => ({
      position: "absolute",
      width: 0,
      height: 0,
      borderTop: version === 0 ? s1(size.value.string) : s2(size.value.string, __props.color),
      borderLeft: s2(size.value.string, __props.color),
      borderBottom: version === 0 ? s2(size.value.string, __props.color) : s1(size.value.string),
      borderRight: s1(size.value.string),
      borderRadius: size.value.string,
      animation: `vue-spinner-pacman${version} ease-in-out 0.8s infinite normal both running`
    });
    const getBallStyle = (version) => ({
      position: "absolute",
      top: size.value.string,
      left: `${size.value.value * 4}${size.value.unit}`,
      width: `${size.value.value / 2.5}${size.value.unit}`,
      height: `${size.value.value / 2.5}${size.value.unit}`,
      margin: margin.value.string,
      borderRadius: "100%",
      backgroundColor: __props.color,
      transform: `translate(0, ${-size.value.value / 4}${size.value.unit})`,
      animation: `vue-spinner-pacman-ball-animation 1s linear ${version * 0.25}s infinite normal both running`
    });
    const wrapperStyle = computed(
      () => ({
        position: "relative",
        width: size.value.string,
        height: size.value.string,
        fontSize: 0
      })
    );
    const __returned__ = { marginProp, sizeProp, size, margin, s1, s2, getPacmanStyle, getBallStyle, wrapperStyle, get range() {
      return range;
    } };
    Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
    return __returned__;
  }
});

function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock(
    "div",
    {
      style: normalizeStyle($setup.wrapperStyle)
    },
    [
      createElementVNode(
        "div",
        {
          style: normalizeStyle($setup.getPacmanStyle(0))
        },
        null,
        4
        /* STYLE */
      ),
      createElementVNode(
        "div",
        {
          style: normalizeStyle($setup.getPacmanStyle(1))
        },
        null,
        4
        /* STYLE */
      ),
      (openBlock(true), createElementBlock(
        Fragment,
        null,
        renderList($setup.range(2, 7), (n) => {
          return openBlock(), createElementBlock(
            "div",
            {
              key: n,
              style: normalizeStyle($setup.getBallStyle(n))
            },
            null,
            4
            /* STYLE */
          );
        }),
        128
        /* KEYED_FRAGMENT */
      ))
    ],
    4
    /* STYLE */
  );
}
var vueSpinnerPacman = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render$9], ["__file", "/Users/leonsilicon/Developer/github/leonsilicon/vue3-spinners/packages/vue3-spinners/src/spinners/vue-spinner-pacman.vue"]]);

declare namespace __spinners_vue_spinner_pacman_vue {
  export {
    vueSpinnerPacman as default,
  };
}

declare const _default$4: vue.DefineComponent<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>> & Readonly<{}>, {
    size: string | number;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

const __default__$8 = { name: "VueSpinnerPropagate" };
var _sfc_main$8 = /* @__PURE__ */ defineComponent({
  ...__default__$8,
  props: useSpinnerProps({
    size: "15px"
  }),
  setup(__props, { expose: __expose }) {
    __expose();
    useCssVars((_ctx) => ({
      '5639d928-getDistance(0, "left")': getDistance(0, "left"),
      '5639d928-getDistance(1, "left")': getDistance(1, "left"),
      '5639d928-getDistance(2, "left")': getDistance(2, "left"),
      '5639d928-getDistance(0, "right")': getDistance(0, "right"),
      '5639d928-getDistance(1, "right")': getDistance(1, "right"),
      '5639d928-getDistance(2, "right")': getDistance(2, "right")
    }));
    const sizeProp = toRef(__props, "size");
    const size = useSize(() => __props.size);
    const distance = [1, 3, 5];
    const getCircleStyle = (version) => ({
      position: "absolute",
      width: size.value.string,
      height: size.value.string,
      borderRadius: "50%",
      background: __props.color,
      fontSize: `${size.value.value / 3}${size.value.unit}`,
      animationFillMode: "forwards",
      animation: `vue-spinner-propagate${version} 1.5s infinite`
    });
    const getDistance = (index, direction) => `${distance[index] * (direction === "left" ? -1 : 1)}rem`;
    const wrapperStyle = computed(
      () => ({
        position: "relative"
      })
    );
    const __returned__ = { sizeProp, size, distance, getCircleStyle, getDistance, wrapperStyle, get range() {
      return range;
    } };
    Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
    return __returned__;
  }
});

function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock(
    "div",
    {
      style: normalizeStyle($setup.wrapperStyle)
    },
    [
      (openBlock(true), createElementBlock(
        Fragment,
        null,
        renderList($setup.range(0, 6), (n) => {
          return openBlock(), createElementBlock(
            "div",
            {
              key: n,
              style: normalizeStyle($setup.getCircleStyle(n))
            },
            null,
            4
            /* STYLE */
          );
        }),
        128
        /* KEYED_FRAGMENT */
      ))
    ],
    4
    /* STYLE */
  );
}
var vueSpinnerPropagate = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render$8], ["__file", "/Users/leonsilicon/Developer/github/leonsilicon/vue3-spinners/packages/vue3-spinners/src/spinners/vue-spinner-propagate.vue"]]);

declare namespace __spinners_vue_spinner_propagate_vue {
  export {
    vueSpinnerPropagate as default,
  };
}

declare const _default$3: vue.DefineComponent<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>> & Readonly<{}>, {
    size: string | number;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

const __default__$7 = { name: "VueSpinnerPulse" };
var _sfc_main$7 = /* @__PURE__ */ defineComponent({
  ...__default__$7,
  props: useSpinnerProps({ size: "15px", margin: "2px" }),
  setup(__props, { expose: __expose }) {
    __expose();
    const marginProp = toRef(__props, "margin");
    const sizeProp = toRef(__props, "size");
    const size = useSize(() => __props.size);
    const margin = useSize(() => __props.margin);
    const getCircleStyle = (version) => ({
      display: "inline-block",
      width: size.value.string,
      height: size.value.string,
      margin: margin.value.string,
      borderRadius: "100%",
      backgroundColor: __props.color,
      animationFillMode: "both",
      animation: `vue-spinner-pulse 0.75s ${version * 0.12}s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08)`
    });
    const __returned__ = { marginProp, sizeProp, size, margin, getCircleStyle };
    Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
    return __returned__;
  }
});

function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock("div", null, [
    (openBlock(), createElementBlock(
      Fragment,
      null,
      renderList(3, (n) => {
        return createElementVNode(
          "div",
          {
            key: n,
            class: "circle",
            style: normalizeStyle($setup.getCircleStyle(n + 1))
          },
          null,
          4
          /* STYLE */
        );
      }),
      64
      /* STABLE_FRAGMENT */
    ))
  ]);
}
var vueSpinnerPulse = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$7], ["__file", "/Users/leonsilicon/Developer/github/leonsilicon/vue3-spinners/packages/vue3-spinners/src/spinners/vue-spinner-pulse.vue"]]);

declare namespace __spinners_vue_spinner_pulse_vue {
  export {
    vueSpinnerPulse as default,
  };
}

declare const _default$2: vue.DefineComponent<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>> & Readonly<{}>, {
    size: string | number;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

const __default__$6 = { name: "VueSpinnerRing" };
var _sfc_main$6 = /* @__PURE__ */ defineComponent({
  ...__default__$6,
  props: useSpinnerProps({ size: "60px" }),
  setup(__props, { expose: __expose }) {
    __expose();
    const sizeProp = toRef(__props, "size");
    const size = useSize(() => __props.size);
    const getRingStyle = (version) => ({
      position: "absolute",
      top: "0",
      left: "0",
      width: size.value.string,
      height: size.value.string,
      border: `${size.value.value / 10}${size.value.unit} solid ${__props.color}`,
      borderRadius: "100%",
      opacity: "0.4",
      animationFillMode: "forwards",
      perspective: "800px",
      animation: `${version === 1 ? "vue-spinner-right" : "vue-spinner-left"} 2s 0s infinite linear`
    });
    const wrapperStyle = computed(
      () => ({
        position: "relative",
        width: size.value.string,
        height: size.value.string
      })
    );
    const __returned__ = { sizeProp, size, getRingStyle, wrapperStyle };
    Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
    return __returned__;
  }
});

function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock(
    "div",
    {
      style: normalizeStyle($setup.wrapperStyle)
    },
    [
      (openBlock(), createElementBlock(
        Fragment,
        null,
        renderList(2, (n) => {
          return createElementVNode(
            "div",
            {
              key: n,
              style: normalizeStyle($setup.getRingStyle(n))
            },
            null,
            4
            /* STYLE */
          );
        }),
        64
        /* STABLE_FRAGMENT */
      ))
    ],
    4
    /* STYLE */
  );
}
var vueSpinnerRing = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$6], ["__file", "/Users/leonsilicon/Developer/github/leonsilicon/vue3-spinners/packages/vue3-spinners/src/spinners/vue-spinner-ring.vue"]]);

declare namespace __spinners_vue_spinner_ring_vue {
  export {
    vueSpinnerRing as default,
  };
}

declare const _default$1: vue.DefineComponent<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>> & Readonly<{}>, {
    size: string | number;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

const __default__$5 = { name: "VueSpinnerRise" };
const riseAmount = 30;
var _sfc_main$5 = /* @__PURE__ */ defineComponent({
  ...__default__$5,
  props: useSpinnerProps({ size: "15px", margin: "2px" }),
  setup(__props, { expose: __expose }) {
    __expose();
    useCssVars((_ctx) => ({
      '53d645d0--riseAmount + "px"': -30 + "px",
      '53d645d0-riseAmount + "px"': riseAmount + "px"
    }));
    const marginProp = toRef(__props, "margin");
    const sizeProp = toRef(__props, "size");
    const size = useSize(() => __props.size);
    const margin = useSize(() => __props.margin);
    const getCircleStyle = (version) => ({
      display: "inline-block",
      width: size.value.string,
      height: size.value.string,
      margin: margin.value.string,
      borderRadius: "100%",
      backgroundColor: __props.color,
      animationFillMode: "both",
      animation: `${version % 2 === 0 ? "vue-spinner-even" : "vue-spinner-odd"} 1s 0s infinite cubic-bezier(0.15, 0.46, 0.9, 0.6)`
    });
    const __returned__ = { riseAmount, marginProp, sizeProp, size, margin, getCircleStyle, get range() {
      return range;
    } };
    Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
    return __returned__;
  }
});

function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock("div", null, [
    (openBlock(true), createElementBlock(
      Fragment,
      null,
      renderList($setup.range(1, 6), (n) => {
        return openBlock(), createElementBlock(
          "div",
          {
            key: n,
            style: normalizeStyle($setup.getCircleStyle(n))
          },
          null,
          4
          /* STYLE */
        );
      }),
      128
      /* KEYED_FRAGMENT */
    ))
  ]);
}
var vueSpinnerRise = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$5], ["__file", "/Users/leonsilicon/Developer/github/leonsilicon/vue3-spinners/packages/vue3-spinners/src/spinners/vue-spinner-rise.vue"]]);

declare namespace __spinners_vue_spinner_rise_vue {
  export {
    vueSpinnerRise as default,
  };
}

const __default__$4 = { name: "VueSpinnerRotate" };
var _sfc_main$4 = /* @__PURE__ */ defineComponent({
  ...__default__$4,
  props: useSpinnerProps({ size: "15px", margin: "2px" }),
  setup(__props, { expose: __expose }) {
    __expose();
    const marginProp = toRef(__props, "margin");
    const sizeProp = toRef(__props, "size");
    const size = useSize(() => __props.size);
    const margin = useSize(() => __props.margin);
    const wrapperStyle = computed(
      () => ({
        position: "relative",
        display: "inline-block",
        animation: "vue-spinner-rotate 1s 0s infinite cubic-bezier(0.7, -0.13, 0.22, 0.86)",
        animationFillMode: "both",
        width: size.value.string,
        height: size.value.string,
        margin: margin.value.string,
        borderRadius: "100%",
        backgroundColor: __props.color
      })
    );
    const getCircleStyle = (side) => ({
      position: "absolute",
      top: "0",
      opacity: "0.8",
      width: size.value.string,
      height: size.value.string,
      margin: margin.value.string,
      borderRadius: "100%",
      backgroundColor: __props.color,
      left: `${side === 1 ? -28 : 25}px`
    });
    const __returned__ = { marginProp, sizeProp, size, margin, wrapperStyle, getCircleStyle, get range() {
      return range;
    } };
    Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
    return __returned__;
  }
});

function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock(
    "div",
    {
      style: normalizeStyle($setup.wrapperStyle)
    },
    [
      (openBlock(true), createElementBlock(
        Fragment,
        null,
        renderList($setup.range(0, 2), (n) => {
          return openBlock(), createElementBlock(
            "div",
            {
              key: n,
              style: normalizeStyle($setup.getCircleStyle(n))
            },
            null,
            4
            /* STYLE */
          );
        }),
        128
        /* KEYED_FRAGMENT */
      ))
    ],
    4
    /* STYLE */
  );
}
var vueSpinnerRotate = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$4], ["__scopeId", "data-v-88e38763"], ["__file", "/Users/leonsilicon/Developer/github/leonsilicon/vue3-spinners/packages/vue3-spinners/src/spinners/vue-spinner-rotate.vue"]]);

declare namespace __spinners_vue_spinner_rotate_vue {
  export {
    vueSpinnerRotate as default,
  };
}

const __default__$3 = { name: "VueSpinnerScale" };
var _sfc_main$3 = /* @__PURE__ */ defineComponent({
  ...__default__$3,
  props: useSpinnerProps({
    height: "35px",
    width: "4px",
    radius: "2px",
    margin: "2px"
  }),
  setup(__props, { expose: __expose }) {
    __expose();
    const marginProp = toRef(__props, "margin");
    const radiusProp = toRef(__props, "radius");
    const widthProp = toRef(__props, "width");
    const heightProp = toRef(__props, "height");
    const width = useSize(() => __props.width);
    const height = useSize(() => __props.height);
    const radius = useSize(() => __props.radius);
    const margin = useSize(() => __props.margin);
    const getBarStyle = (version) => ({
      display: "inline-block",
      width: width.value.string,
      height: height.value.string,
      margin: margin.value.string,
      borderRadius: radius.value.string,
      backgroundColor: __props.color,
      animation: `vue-spinner-scale 1s cubic-bezier(0.2, 0.68, 0.18, 1.08) ${version * 0.1}s infinite normal both running`
    });
    const __returned__ = { marginProp, radiusProp, widthProp, heightProp, width, height, radius, margin, getBarStyle };
    Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
    return __returned__;
  }
});

function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock("div", null, [
    (openBlock(), createElementBlock(
      Fragment,
      null,
      renderList(5, (n) => {
        return createElementVNode(
          "div",
          {
            key: n,
            style: normalizeStyle($setup.getBarStyle(n + 1))
          },
          null,
          4
          /* STYLE */
        );
      }),
      64
      /* STABLE_FRAGMENT */
    ))
  ]);
}
var vueSpinnerScale = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$3], ["__file", "/Users/leonsilicon/Developer/github/leonsilicon/vue3-spinners/packages/vue3-spinners/src/spinners/vue-spinner-scale.vue"]]);

declare namespace __spinners_vue_spinner_scale_vue {
  export {
    vueSpinnerScale as default,
  };
}

const __default__$2 = { name: "VueSpinnerSkew" };
var _sfc_main$2 = /* @__PURE__ */ defineComponent({
  ...__default__$2,
  props: useSpinnerProps({ size: "20px" }),
  setup(__props, { expose: __expose }) {
    __expose();
    const sizeProp = toRef(__props, "size");
    const size = useSize(() => __props.size);
    const triangleStyle = computed(() => ({
      display: "inline-block",
      width: 0,
      height: 0,
      borderLeft: `${size.value.string} solid transparent`,
      borderRight: `${size.value.string} solid transparent`,
      borderBottom: `${size.value.string} solid ${__props.color}`,
      animation: `vue-spinner-skew 3s 0s infinite cubic-bezier(0.09, 0.57, 0.49, 0.9)`,
      animationFillMode: "both"
    }));
    const __returned__ = { sizeProp, size, triangleStyle };
    Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
    return __returned__;
  }
});

function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock(
    "div",
    {
      style: normalizeStyle($setup.triangleStyle)
    },
    null,
    4
    /* STYLE */
  );
}
var vueSpinnerSkew = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$2], ["__file", "/Users/leonsilicon/Developer/github/leonsilicon/vue3-spinners/packages/vue3-spinners/src/spinners/vue-spinner-skew.vue"]]);

declare namespace __spinners_vue_spinner_skew_vue {
  export {
    vueSpinnerSkew as default,
  };
}

const __default__$1 = { name: "VueSpinnerSquare" };
var _sfc_main$1 = /* @__PURE__ */ defineComponent({
  ...__default__$1,
  props: useSpinnerProps({ size: "50px" }),
  setup(__props, { expose: __expose }) {
    __expose();
    const sizeProp = toRef(__props, "size");
    const size = useSize(() => __props.size);
    const squareStyle = computed(() => ({
      display: "inline-block",
      width: size.value.string,
      height: size.value.string,
      backgroundColor: __props.color,
      animation: "vue-spinner-square 3s 0s infinite cubic-bezier(0.09, 0.57, 0.49, 0.9)",
      animationFillMode: "both"
    }));
    const __returned__ = { sizeProp, size, squareStyle };
    Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
    return __returned__;
  }
});

function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock(
    "div",
    {
      style: normalizeStyle($setup.squareStyle)
    },
    null,
    4
    /* STYLE */
  );
}
var vueSpinnerSquare = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__file", "/Users/leonsilicon/Developer/github/leonsilicon/vue3-spinners/packages/vue3-spinners/src/spinners/vue-spinner-square.vue"]]);

declare namespace __spinners_vue_spinner_square_vue {
  export {
    vueSpinnerSquare as default,
  };
}

const __default__ = { name: "VueSpinnerBounce" };
var _sfc_main = /* @__PURE__ */ defineComponent({
  ...__default__,
  props: useSpinnerProps({ size: "15px", margin: "2px" }),
  setup(__props, { expose: __expose }) {
    __expose();
    const marginProp = toRef(__props, "margin");
    const sizeProp = toRef(__props, "size");
    const size = useSize(() => __props.size);
    const margin = useSize(() => __props.margin);
    const getCircleStyle = (version) => ({
      display: "inline-block",
      width: size.value.string,
      height: size.value.string,
      margin: margin.value.string,
      borderRadius: "100%",
      backgroundColor: __props.color,
      boxSizing: "content-box",
      animation: `vue-spinner-sync 0.6s ease-in-out ${version * 0.07}s infinite normal both running`
    });
    const __returned__ = { marginProp, sizeProp, size, margin, getCircleStyle };
    Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
    return __returned__;
  }
});

function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock("div", null, [
    (openBlock(), createElementBlock(
      Fragment,
      null,
      renderList(3, (n) => {
        return createElementVNode(
          "div",
          {
            key: n,
            class: "circle",
            style: normalizeStyle($setup.getCircleStyle(n + 1))
          },
          null,
          4
          /* STYLE */
        );
      }),
      64
      /* STABLE_FRAGMENT */
    ))
  ]);
}
var vueSpinnerSync = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "/Users/leonsilicon/Developer/github/leonsilicon/vue3-spinners/packages/vue3-spinners/src/spinners/vue-spinner-sync.vue"]]);

declare namespace __spinners_vue_spinner_sync_vue {
  export {
    vueSpinnerSync as default,
  };
}

declare const _default: vue.DefineComponent<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
    size: {
        type: (NumberConstructor | StringConstructor)[];
        default: string;
    };
    color: StringConstructor;
}>> & Readonly<{}>, {
    size: string | number;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

declare const VueSpinnersPlugin: Plugin;

declare module '@vue/runtime-core' {
    interface GlobalComponents {
        VueSpinner: DefineComponent<typeof spinnerProps>;
        VueSpinnerAudio: DefineComponent<typeof spinnerProps>;
        VueSpinnerBall: DefineComponent<typeof spinnerProps>;
        VueSpinnerBar: typeof __spinners_vue_spinner_bar_vue;
        VueSpinnerBars: DefineComponent<typeof spinnerProps>;
        VueSpinnerBeat: typeof __spinners_vue_spinner_beat_vue;
        VueSpinnerBox: DefineComponent<typeof spinnerProps>;
        VueSpinnerCircle: typeof __spinners_vue_spinner_circle_vue;
        VueSpinnerClimbingBox: typeof __spinners_vue_spinner_climbing_box_vue;
        VueSpinnerClip: typeof __spinners_vue_spinner_clip_vue;
        VueSpinnerClock: DefineComponent<typeof spinnerProps>;
        VueSpinnerComment: DefineComponent<typeof spinnerProps>;
        VueSpinnerCore: DefineComponent<typeof spinnerProps>;
        VueSpinnerDot: typeof __spinners_vue_spinner_dot_vue;
        VueSpinnerDots: DefineComponent<typeof spinnerProps>;
        VueSpinnerFade: typeof __spinners_vue_spinner_fade_vue;
        VueSpinnerFacebook: DefineComponent<typeof spinnerProps>;
        VueSpinnerGears: DefineComponent<typeof spinnerProps>;
        VueSpinnerGrid: DefineComponent<typeof spinnerProps>;
        VueSpinnerGridPop: typeof __spinners_vue_spinner_grid_pop_vue;
        VueSpinnerHearts: DefineComponent<typeof spinnerProps>;
        VueSpinnerHourglass: DefineComponent<typeof spinnerProps>;
        VueSpinnerInfinity: DefineComponent<typeof spinnerProps>;
        VueSpinnerIos: DefineComponent<typeof spinnerProps>;
        VueSpinnerMoon: typeof __spinners_vue_spinner_moon_vue;
        VueSpinnerOrbit: DefineComponent<typeof spinnerProps>;
        VueSpinnerOval: DefineComponent<typeof spinnerProps>;
        VueSpinnerPacman: typeof __spinners_vue_spinner_pacman_vue;
        VueSpinnerPie: DefineComponent<typeof spinnerProps>;
        VueSpinnerPropagate: typeof __spinners_vue_spinner_propagate_vue;
        VueSpinnerPuff: DefineComponent<typeof spinnerProps>;
        VueSpinnerPulse: typeof __spinners_vue_spinner_pulse_vue;
        VueSpinnerRadio: DefineComponent<typeof spinnerProps>;
        VueSpinnerRing: typeof __spinners_vue_spinner_ring_vue;
        VueSpinnerRings: DefineComponent<typeof spinnerProps>;
        VueSpinnerRise: typeof __spinners_vue_spinner_rise_vue;
        VueSpinnerRotate: typeof __spinners_vue_spinner_rotate_vue;
        VueSpinnerScale: typeof __spinners_vue_spinner_scale_vue;
        VueSpinnerSkew: typeof __spinners_vue_spinner_skew_vue;
        VueSpinnerSquare: typeof __spinners_vue_spinner_square_vue;
        VueSpinnerSync: typeof __spinners_vue_spinner_sync_vue;
        VueSpinnerTail: DefineComponent<typeof spinnerProps>;
    }
}

export { vueSpinner as VueSpinner, _default$l as VueSpinnerAudio, _default$k as VueSpinnerBall, vueSpinnerBar as VueSpinnerBar, _default$j as VueSpinnerBars, vueSpinnerBeat as VueSpinnerBeat, vueSpinnerBounce as VueSpinnerBounce, _default$i as VueSpinnerBox, vueSpinnerCircle as VueSpinnerCircle, vueSpinnerClimbingBox as VueSpinnerClimbingBox, vueSpinnerClip as VueSpinnerClip, _default$h as VueSpinnerClock, _default$g as VueSpinnerComment, _default$f as VueSpinnerCore, vueSpinnerDot as VueSpinnerDot, _default$e as VueSpinnerDots, _default$d as VueSpinnerFacebook, vueSpinnerFade as VueSpinnerFade, _default$c as VueSpinnerGears, _default$b as VueSpinnerGrid, vueSpinnerGridPop as VueSpinnerGridPop, _default$a as VueSpinnerHearts, _default$9 as VueSpinnerHourglass, _default$8 as VueSpinnerInfinity, _default$7 as VueSpinnerIos, vueSpinnerMoon as VueSpinnerMoon, _default$6 as VueSpinnerOrbit, _default$5 as VueSpinnerOval, vueSpinnerPacman as VueSpinnerPacman, _default$4 as VueSpinnerPie, vueSpinnerPropagate as VueSpinnerPropagate, _default$3 as VueSpinnerPuff, vueSpinnerPulse as VueSpinnerPulse, _default$2 as VueSpinnerRadio, vueSpinnerRing as VueSpinnerRing, _default$1 as VueSpinnerRings, vueSpinnerRise as VueSpinnerRise, vueSpinnerRotate as VueSpinnerRotate, vueSpinnerScale as VueSpinnerScale, vueSpinnerSkew as VueSpinnerSkew, vueSpinnerSquare as VueSpinnerSquare, vueSpinnerSync as VueSpinnerSync, _default as VueSpinnerTail, VueSpinnersPlugin };
