@apptane/react-ui-spinner
Version:
Spinner component in Apptane React UI framework
234 lines (222 loc) • 20.4 kB
JavaScript
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
const _excluded = ["appearance", "colorMode", "size", "color", "inline", "margin", "marginTop", "marginRight", "marginBottom", "marginLeft", "m", "mt", "mr", "mb", "ml"];
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
import { resolveTextColor, StyleMargin } from "@apptane/react-ui-core";
import { useColorMode, useTheme } from "@apptane/react-ui-theme";
import { css } from "@emotion/react";
import { memo } from "react";
import { SpinnerPropTypes } from "./Spinner.types.js";
import { jsx as _jsx } from "@emotion/react/jsx-runtime";
import { jsxs as _jsxs } from "@emotion/react/jsx-runtime";
const StyleBase = (size, inline) => /*#__PURE__*/css("display:", inline ? "inline-flex" : "flex", ";height:", size, "px;width:", size, "px;" + (process.env.NODE_ENV === "production" ? "" : ";label:StyleBase;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9TcGlubmVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNeUQiLCJmaWxlIjoiLi4vc3JjL1NwaW5uZXIudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sb3IsIHJlc29sdmVUZXh0Q29sb3IsIFN0eWxlTWFyZ2luIH0gZnJvbSBcIkBhcHB0YW5lL3JlYWN0LXVpLWNvcmVcIjtcbmltcG9ydCB7IHVzZUNvbG9yTW9kZSwgdXNlVGhlbWUgfSBmcm9tIFwiQGFwcHRhbmUvcmVhY3QtdWktdGhlbWVcIjtcbmltcG9ydCB7IGNzcyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdFwiO1xuaW1wb3J0IHsgbWVtbyB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgU3Bpbm5lclByb3BzLCBTcGlubmVyUHJvcFR5cGVzIH0gZnJvbSBcIi4vU3Bpbm5lci50eXBlcy5qc1wiO1xuXG5jb25zdCBTdHlsZUJhc2UgPSAoc2l6ZTogbnVtYmVyLCBpbmxpbmU/OiBib29sZWFuKSA9PiBjc3NgXG4gIGRpc3BsYXk6ICR7aW5saW5lID8gXCJpbmxpbmUtZmxleFwiIDogXCJmbGV4XCJ9O1xuICBoZWlnaHQ6ICR7c2l6ZX1weDtcbiAgd2lkdGg6ICR7c2l6ZX1weDtcbmA7XG5cbnR5cGUgQW5pbWF0ZWRTcGlubmVyUHJvcHMgPSB7XG4gIGNvbG9yOiBDb2xvcjtcbiAgc2l6ZTogbnVtYmVyO1xufTtcblxuY29uc3QgQW5pbWF0ZWRDbGlwU3Bpbm5lciA9ICh7IGNvbG9yLCBzaXplIH06IEFuaW1hdGVkU3Bpbm5lclByb3BzKSA9PiAoXG4gIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPXtzaXplfSBoZWlnaHQ9e3NpemV9IHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8ZyBzdHJva2U9e2NvbG9yfSBzdHJva2VXaWR0aD1cIjJcIiBzdHJva2VMaW5lY2FwPVwicm91bmRcIiBmaWxsPVwibm9uZVwiIGZpbGxSdWxlPVwiZXZlbm9kZFwiPlxuICAgICAgPGNpcmNsZSBzdHJva2VPcGFjaXR5PVwiLjFcIiBjeD1cIjEyXCIgY3k9XCIxMlwiIHI9XCIxMFwiIC8+XG4gICAgICA8cGF0aCBkPVwiTTEyIDIyYzUuNTIzIDAgMTAtNC40NzcgMTAtMTBTMTcuNTIzIDIgMTIgMiAyIDYuNDc3IDIgMTJcIj5cbiAgICAgICAgPGFuaW1hdGVUcmFuc2Zvcm1cbiAgICAgICAgICBhdHRyaWJ1dGVOYW1lPVwidHJhbnNmb3JtXCJcbiAgICAgICAgICB0eXBlPVwicm90YXRlXCJcbiAgICAgICAgICBmcm9tPVwiMCAxMiAxMlwiXG4gICAgICAgICAgdG89XCIzNjAgMTIgMTJcIlxuICAgICAgICAgIGR1cj1cIjFzXCJcbiAgICAgICAgICByZXBlYXRDb3VudD1cImluZGVmaW5pdGVcIlxuICAgICAgICAvPlxuICAgICAgPC9wYXRoPlxuICAgIDwvZz5cbiAgPC9zdmc+XG4pO1xuXG5jb25zdCBBbmltYXRlZFRhaWxTcGlubmVyID0gKHsgY29sb3IsIHNpemUgfTogQW5pbWF0ZWRTcGlubmVyUHJvcHMpID0+IChcbiAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9e3NpemV9IGhlaWdodD17c2l6ZX0gdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxkZWZzPlxuICAgICAgPGxpbmVhckdyYWRpZW50IHgxPVwiOCVcIiB5MT1cIjAlXCIgeDI9XCI2NiVcIiB5Mj1cIjI0JVwiIGlkPVwiLS1hcHB0YW5lLXNwaW5uZXItdGFpbC1hXCI+XG4gICAgICAgIDxzdG9wIHN0b3BDb2xvcj17Y29sb3J9IHN0b3BPcGFjaXR5PVwiMFwiIG9mZnNldD1cIjAlXCIgLz5cbiAgICAgICAgPHN0b3Agc3RvcENvbG9yPXtjb2xvcn0gc3RvcE9wYWNpdHk9XCIuNlwiIG9mZnNldD1cIjYwJVwiIC8+XG4gICAgICAgIDxzdG9wIHN0b3BDb2xvcj17Y29sb3J9IG9mZnNldD1cIjEwMCVcIiAvPlxuICAgICAgPC9saW5lYXJHcmFkaWVudD5cbiAgICA8L2RlZnM+XG4gICAgPGcgc3Ryb2tlV2lkdGg9XCIyXCIgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgZmlsbD1cIm5vbmVcIiBmaWxsUnVsZT1cImV2ZW5vZGRcIj5cbiAgICAgIDxwYXRoIGQ9XCJNMTIgMmM1LjUyMyAwIDEwIDQuNDc3IDEwIDEwXCIgc3Ryb2tlPVwidXJsKCMtLWFwcHRhbmUtc3Bpbm5lci10YWlsLWEpXCI+XG4gICAgICAgIDxhbmltYXRlVHJhbnNmb3JtXG4gICAgICAgICAgYXR0cmlidXRlTmFtZT1cInRyYW5zZm9ybVwiXG4gICAgICAgICAgdHlwZT1cInJvdGF0ZVwiXG4gICAgICAgICAgZnJvbT1cIjAgMTIgMTJcIlxuICAgICAgICAgIHRvPVwiMzYwIDEyIDEyXCJcbiAgICAgICAgICBkdXI9XCIxc1wiXG4gICAgICAgICAgcmVwZWF0Q291bnQ9XCJpbmRlZmluaXRlXCJcbiAgICAgICAgLz5cbiAgICAgIDwvcGF0aD5cbiAgICA8L2c+XG4gIDwvc3ZnPlxuKTtcblxuY29uc3QgQW5pbWF0ZWRQdWxzZVNwaW5uZXIgPSAoeyBjb2xvciwgc2l6ZSB9OiBBbmltYXRlZFNwaW5uZXJQcm9wcykgPT4gKFxuICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBzdHJva2U9e2NvbG9yfSB3aWR0aD17c2l6ZX0gaGVpZ2h0PXtzaXplfSB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPGcgc3Ryb2tlV2lkdGg9XCIyXCIgZmlsbD1cIm5vbmVcIiBmaWxsUnVsZT1cImV2ZW5vZGRcIj5cbiAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiMTJcIiByPVwiMVwiPlxuICAgICAgICA8YW5pbWF0ZVxuICAgICAgICAgIGF0dHJpYnV0ZU5hbWU9XCJyXCJcbiAgICAgICAgICBiZWdpbj1cIjBzXCJcbiAgICAgICAgICBkdXI9XCIxLjhzXCJcbiAgICAgICAgICB2YWx1ZXM9XCIxOyAxMFwiXG4gICAgICAgICAgY2FsY01vZGU9XCJzcGxpbmVcIlxuICAgICAgICAgIGtleVRpbWVzPVwiMDsgMVwiXG4gICAgICAgICAga2V5U3BsaW5lcz1cIjAuMTY1LCAwLjg0LCAwLjQ0LCAxXCJcbiAgICAgICAgICByZXBlYXRDb3VudD1cImluZGVmaW5pdGVcIlxuICAgICAgICAvPlxuICAgICAgICA8YW5pbWF0ZVxuICAgICAgICAgIGF0dHJpYnV0ZU5hbWU9XCJzdHJva2Utb3BhY2l0eVwiXG4gICAgICAgICAgYmVnaW49XCIwc1wiXG4gICAgICAgICAgZHVyPVwiMS44c1wiXG4gICAgICAgICAgdmFsdWVzPVwiMTsgMFwiXG4gICAgICAgICAgY2FsY01vZGU9XCJzcGxpbmVcIlxuICAgICAgICAgIGtleVRpbWVzPVwiMDsgMVwiXG4gICAgICAgICAga2V5U3BsaW5lcz1cIjAuMywgMC42MSwgMC4zNTUsIDFcIlxuICAgICAgICAgIHJlcGVhdENvdW50PVwiaW5kZWZpbml0ZVwiXG4gICAgICAgIC8+XG4gICAgICA8L2NpcmNsZT5cbiAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiMTJcIiByPVwiMVwiPlxuICAgICAgICA8YW5pbWF0ZVxuICAgICAgICAgIGF0dHJpYnV0ZU5hbWU9XCJyXCJcbiAgICAgICAgICBiZWdpbj1cIi0wLjlzXCJcbiAgICAgICAgICBkdXI9XCIxLjhzXCJcbiAgICAgICAgICB2YWx1ZXM9XCIxOyAxMFwiXG4gICAgICAgICAgY2FsY01vZGU9XCJzcGxpbmVcIlxuICAgICAgICAgIGtleVRpbWVzPVwiMDsgMVwiXG4gICAgICAgICAga2V5U3BsaW5lcz1cIjAuMTY1LCAwLjg0LCAwLjQ0LCAxXCJcbiAgICAgICAgICByZXBlYXRDb3VudD1cImluZGVmaW5pdGVcIlxuICAgICAgICAvPlxuICAgICAgICA8YW5pbWF0ZVxuICAgICAgICAgIGF0dHJpYnV0ZU5hbWU9XCJzdHJva2Utb3BhY2l0eVwiXG4gICAgICAgICAgYmVnaW49XCItMC45c1wiXG4gICAgICAgICAgZHVyPVwiMS44c1wiXG4gICAgICAgICAgdmFsdWVzPVwiMTsgMFwiXG4gICAgICAgICAgY2FsY01vZGU9XCJzcGxpbmVcIlxuICAgICAgICAgIGtleVRpbWVzPVwiMDsgMVwiXG4gICAgICAgICAga2V5U3BsaW5lcz1cIjAuMywgMC42MSwgMC4zNTUsIDFcIlxuICAgICAgICAgIHJlcGVhdENvdW50PVwiaW5kZWZpbml0ZVwiXG4gICAgICAgIC8+XG4gICAgICA8L2NpcmNsZT5cbiAgICA8L2c+XG4gIDwvc3ZnPlxuKTtcblxuLyoqXG4gKiBgU3Bpbm5lcmAgY29tcG9uZW50IOKAlCBhbmltYXRlZCBcImJ1c3lcIiBpbmRpY2F0b3IuXG4gKi9cbmZ1bmN0aW9uIFNwaW5uZXIoe1xuICBhcHBlYXJhbmNlID0gXCJjbGlwXCIsXG4gIGNvbG9yTW9kZSxcbiAgc2l6ZSA9IDE2LFxuICBjb2xvciA9IFwiYWNjZW50XCIsXG4gIGlubGluZSxcbiAgbWFyZ2luLFxuICBtYXJnaW5Ub3AsXG4gIG1hcmdpblJpZ2h0LFxuICBtYXJnaW5Cb3R0b20sXG4gIG1hcmdpbkxlZnQsXG4gIG0sXG4gIG10LFxuICBtcixcbiAgbWIsXG4gIG1sLFxuICAuLi5vdGhlclxufTogU3Bpbm5lclByb3BzKSB7XG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcbiAgY29uc3QgYWN0dWFsQ29sb3JNb2RlID0gdXNlQ29sb3JNb2RlKGNvbG9yTW9kZSk7XG4gIGNvbG9yID0gcmVzb2x2ZVRleHRDb2xvcih0aGVtZS5wYWxldHRlW2FjdHVhbENvbG9yTW9kZV0sIGNvbG9yKTtcbiAgY29uc3QgbWFyZ2luUHJvcHMgPSB7IG1hcmdpbiwgbWFyZ2luVG9wLCBtYXJnaW5SaWdodCwgbWFyZ2luQm90dG9tLCBtYXJnaW5MZWZ0LCBtLCBtdCwgbXIsIG1iLCBtbCB9O1xuICByZXR1cm4gKFxuICAgIDxkaXYgey4uLm90aGVyfSByb2xlPVwic3RhdHVzXCIgY3NzPXtbU3R5bGVCYXNlKHNpemUsIGlubGluZSksIFN0eWxlTWFyZ2luKG1hcmdpblByb3BzKV19PlxuICAgICAge2FwcGVhcmFuY2UgPT09IFwiY2xpcFwiICYmIDxBbmltYXRlZENsaXBTcGlubmVyIHNpemU9e3NpemV9IGNvbG9yPXtjb2xvcn0gLz59XG4gICAgICB7YXBwZWFyYW5jZSA9PT0gXCJ0YWlsXCIgJiYgPEFuaW1hdGVkVGFpbFNwaW5uZXIgc2l6ZT17c2l6ZX0gY29sb3I9e2NvbG9yfSAvPn1cbiAgICAgIHthcHBlYXJhbmNlID09PSBcInB1bHNlXCIgJiYgPEFuaW1hdGVkUHVsc2VTcGlubmVyIHNpemU9e3NpemV9IGNvbG9yPXtjb2xvcn0gLz59XG4gICAgPC9kaXY+XG4gICk7XG59XG5cblNwaW5uZXIuZGlzcGxheU5hbWUgPSBcIlNwaW5uZXJcIjtcblNwaW5uZXIucHJvcFR5cGVzID0gU3Bpbm5lclByb3BUeXBlcztcblxuLyoqXG4gKiBgU3Bpbm5lcmAgY29tcG9uZW50IOKAlCBhbmltYXRlZCBcImJ1c3lcIiBpbmRpY2F0b3IuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IG1lbW8oU3Bpbm5lcik7XG4iXX0= */");
const AnimatedClipSpinner = _ref => {
let {
color,
size
} = _ref;
return _jsx("svg", {
xmlns: "http://www.w3.org/2000/svg",
width: size,
height: size,
viewBox: "0 0 24 24",
children: _jsxs("g", {
stroke: color,
strokeWidth: "2",
strokeLinecap: "round",
fill: "none",
fillRule: "evenodd",
children: [_jsx("circle", {
strokeOpacity: ".1",
cx: "12",
cy: "12",
r: "10"
}), _jsx("path", {
d: "M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12",
children: _jsx("animateTransform", {
attributeName: "transform",
type: "rotate",
from: "0 12 12",
to: "360 12 12",
dur: "1s",
repeatCount: "indefinite"
})
})]
})
});
};
const AnimatedTailSpinner = _ref2 => {
let {
color,
size
} = _ref2;
return _jsxs("svg", {
xmlns: "http://www.w3.org/2000/svg",
width: size,
height: size,
viewBox: "0 0 24 24",
children: [_jsx("defs", {
children: _jsxs("linearGradient", {
x1: "8%",
y1: "0%",
x2: "66%",
y2: "24%",
id: "--apptane-spinner-tail-a",
children: [_jsx("stop", {
stopColor: color,
stopOpacity: "0",
offset: "0%"
}), _jsx("stop", {
stopColor: color,
stopOpacity: ".6",
offset: "60%"
}), _jsx("stop", {
stopColor: color,
offset: "100%"
})]
})
}), _jsx("g", {
strokeWidth: "2",
strokeLinecap: "round",
fill: "none",
fillRule: "evenodd",
children: _jsx("path", {
d: "M12 2c5.523 0 10 4.477 10 10",
stroke: "url(#--apptane-spinner-tail-a)",
children: _jsx("animateTransform", {
attributeName: "transform",
type: "rotate",
from: "0 12 12",
to: "360 12 12",
dur: "1s",
repeatCount: "indefinite"
})
})
})]
});
};
const AnimatedPulseSpinner = _ref3 => {
let {
color,
size
} = _ref3;
return _jsx("svg", {
xmlns: "http://www.w3.org/2000/svg",
stroke: color,
width: size,
height: size,
viewBox: "0 0 24 24",
children: _jsxs("g", {
strokeWidth: "2",
fill: "none",
fillRule: "evenodd",
children: [_jsxs("circle", {
cx: "12",
cy: "12",
r: "1",
children: [_jsx("animate", {
attributeName: "r",
begin: "0s",
dur: "1.8s",
values: "1; 10",
calcMode: "spline",
keyTimes: "0; 1",
keySplines: "0.165, 0.84, 0.44, 1",
repeatCount: "indefinite"
}), _jsx("animate", {
attributeName: "stroke-opacity",
begin: "0s",
dur: "1.8s",
values: "1; 0",
calcMode: "spline",
keyTimes: "0; 1",
keySplines: "0.3, 0.61, 0.355, 1",
repeatCount: "indefinite"
})]
}), _jsxs("circle", {
cx: "12",
cy: "12",
r: "1",
children: [_jsx("animate", {
attributeName: "r",
begin: "-0.9s",
dur: "1.8s",
values: "1; 10",
calcMode: "spline",
keyTimes: "0; 1",
keySplines: "0.165, 0.84, 0.44, 1",
repeatCount: "indefinite"
}), _jsx("animate", {
attributeName: "stroke-opacity",
begin: "-0.9s",
dur: "1.8s",
values: "1; 0",
calcMode: "spline",
keyTimes: "0; 1",
keySplines: "0.3, 0.61, 0.355, 1",
repeatCount: "indefinite"
})]
})]
})
});
};
/**
* `Spinner` component — animated "busy" indicator.
*/
function Spinner(_ref4) {
let {
appearance = "clip",
colorMode,
size = 16,
color = "accent",
inline,
margin,
marginTop,
marginRight,
marginBottom,
marginLeft,
m,
mt,
mr,
mb,
ml
} = _ref4,
other = _objectWithoutProperties(_ref4, _excluded);
const theme = useTheme();
const actualColorMode = useColorMode(colorMode);
color = resolveTextColor(theme.palette[actualColorMode], color);
const marginProps = {
margin,
marginTop,
marginRight,
marginBottom,
marginLeft,
m,
mt,
mr,
mb,
ml
};
return _jsxs("div", _objectSpread(_objectSpread({}, other), {}, {
role: "status",
css: [StyleBase(size, inline), StyleMargin(marginProps), process.env.NODE_ENV === "production" ? "" : ";label:Spinner;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9TcGlubmVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3SWtDIiwiZmlsZSI6Ii4uL3NyYy9TcGlubmVyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yLCByZXNvbHZlVGV4dENvbG9yLCBTdHlsZU1hcmdpbiB9IGZyb20gXCJAYXBwdGFuZS9yZWFjdC11aS1jb3JlXCI7XG5pbXBvcnQgeyB1c2VDb2xvck1vZGUsIHVzZVRoZW1lIH0gZnJvbSBcIkBhcHB0YW5lL3JlYWN0LXVpLXRoZW1lXCI7XG5pbXBvcnQgeyBjc3MgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3RcIjtcbmltcG9ydCB7IG1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFNwaW5uZXJQcm9wcywgU3Bpbm5lclByb3BUeXBlcyB9IGZyb20gXCIuL1NwaW5uZXIudHlwZXMuanNcIjtcblxuY29uc3QgU3R5bGVCYXNlID0gKHNpemU6IG51bWJlciwgaW5saW5lPzogYm9vbGVhbikgPT4gY3NzYFxuICBkaXNwbGF5OiAke2lubGluZSA/IFwiaW5saW5lLWZsZXhcIiA6IFwiZmxleFwifTtcbiAgaGVpZ2h0OiAke3NpemV9cHg7XG4gIHdpZHRoOiAke3NpemV9cHg7XG5gO1xuXG50eXBlIEFuaW1hdGVkU3Bpbm5lclByb3BzID0ge1xuICBjb2xvcjogQ29sb3I7XG4gIHNpemU6IG51bWJlcjtcbn07XG5cbmNvbnN0IEFuaW1hdGVkQ2xpcFNwaW5uZXIgPSAoeyBjb2xvciwgc2l6ZSB9OiBBbmltYXRlZFNwaW5uZXJQcm9wcykgPT4gKFxuICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD17c2l6ZX0gaGVpZ2h0PXtzaXplfSB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPGcgc3Ryb2tlPXtjb2xvcn0gc3Ryb2tlV2lkdGg9XCIyXCIgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgZmlsbD1cIm5vbmVcIiBmaWxsUnVsZT1cImV2ZW5vZGRcIj5cbiAgICAgIDxjaXJjbGUgc3Ryb2tlT3BhY2l0eT1cIi4xXCIgY3g9XCIxMlwiIGN5PVwiMTJcIiByPVwiMTBcIiAvPlxuICAgICAgPHBhdGggZD1cIk0xMiAyMmM1LjUyMyAwIDEwLTQuNDc3IDEwLTEwUzE3LjUyMyAyIDEyIDIgMiA2LjQ3NyAyIDEyXCI+XG4gICAgICAgIDxhbmltYXRlVHJhbnNmb3JtXG4gICAgICAgICAgYXR0cmlidXRlTmFtZT1cInRyYW5zZm9ybVwiXG4gICAgICAgICAgdHlwZT1cInJvdGF0ZVwiXG4gICAgICAgICAgZnJvbT1cIjAgMTIgMTJcIlxuICAgICAgICAgIHRvPVwiMzYwIDEyIDEyXCJcbiAgICAgICAgICBkdXI9XCIxc1wiXG4gICAgICAgICAgcmVwZWF0Q291bnQ9XCJpbmRlZmluaXRlXCJcbiAgICAgICAgLz5cbiAgICAgIDwvcGF0aD5cbiAgICA8L2c+XG4gIDwvc3ZnPlxuKTtcblxuY29uc3QgQW5pbWF0ZWRUYWlsU3Bpbm5lciA9ICh7IGNvbG9yLCBzaXplIH06IEFuaW1hdGVkU3Bpbm5lclByb3BzKSA9PiAoXG4gIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPXtzaXplfSBoZWlnaHQ9e3NpemV9IHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8ZGVmcz5cbiAgICAgIDxsaW5lYXJHcmFkaWVudCB4MT1cIjglXCIgeTE9XCIwJVwiIHgyPVwiNjYlXCIgeTI9XCIyNCVcIiBpZD1cIi0tYXBwdGFuZS1zcGlubmVyLXRhaWwtYVwiPlxuICAgICAgICA8c3RvcCBzdG9wQ29sb3I9e2NvbG9yfSBzdG9wT3BhY2l0eT1cIjBcIiBvZmZzZXQ9XCIwJVwiIC8+XG4gICAgICAgIDxzdG9wIHN0b3BDb2xvcj17Y29sb3J9IHN0b3BPcGFjaXR5PVwiLjZcIiBvZmZzZXQ9XCI2MCVcIiAvPlxuICAgICAgICA8c3RvcCBzdG9wQ29sb3I9e2NvbG9yfSBvZmZzZXQ9XCIxMDAlXCIgLz5cbiAgICAgIDwvbGluZWFyR3JhZGllbnQ+XG4gICAgPC9kZWZzPlxuICAgIDxnIHN0cm9rZVdpZHRoPVwiMlwiIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiIGZpbGw9XCJub25lXCIgZmlsbFJ1bGU9XCJldmVub2RkXCI+XG4gICAgICA8cGF0aCBkPVwiTTEyIDJjNS41MjMgMCAxMCA0LjQ3NyAxMCAxMFwiIHN0cm9rZT1cInVybCgjLS1hcHB0YW5lLXNwaW5uZXItdGFpbC1hKVwiPlxuICAgICAgICA8YW5pbWF0ZVRyYW5zZm9ybVxuICAgICAgICAgIGF0dHJpYnV0ZU5hbWU9XCJ0cmFuc2Zvcm1cIlxuICAgICAgICAgIHR5cGU9XCJyb3RhdGVcIlxuICAgICAgICAgIGZyb209XCIwIDEyIDEyXCJcbiAgICAgICAgICB0bz1cIjM2MCAxMiAxMlwiXG4gICAgICAgICAgZHVyPVwiMXNcIlxuICAgICAgICAgIHJlcGVhdENvdW50PVwiaW5kZWZpbml0ZVwiXG4gICAgICAgIC8+XG4gICAgICA8L3BhdGg+XG4gICAgPC9nPlxuICA8L3N2Zz5cbik7XG5cbmNvbnN0IEFuaW1hdGVkUHVsc2VTcGlubmVyID0gKHsgY29sb3IsIHNpemUgfTogQW5pbWF0ZWRTcGlubmVyUHJvcHMpID0+IChcbiAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgc3Ryb2tlPXtjb2xvcn0gd2lkdGg9e3NpemV9IGhlaWdodD17c2l6ZX0gdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxnIHN0cm9rZVdpZHRoPVwiMlwiIGZpbGw9XCJub25lXCIgZmlsbFJ1bGU9XCJldmVub2RkXCI+XG4gICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjEyXCIgcj1cIjFcIj5cbiAgICAgICAgPGFuaW1hdGVcbiAgICAgICAgICBhdHRyaWJ1dGVOYW1lPVwiclwiXG4gICAgICAgICAgYmVnaW49XCIwc1wiXG4gICAgICAgICAgZHVyPVwiMS44c1wiXG4gICAgICAgICAgdmFsdWVzPVwiMTsgMTBcIlxuICAgICAgICAgIGNhbGNNb2RlPVwic3BsaW5lXCJcbiAgICAgICAgICBrZXlUaW1lcz1cIjA7IDFcIlxuICAgICAgICAgIGtleVNwbGluZXM9XCIwLjE2NSwgMC44NCwgMC40NCwgMVwiXG4gICAgICAgICAgcmVwZWF0Q291bnQ9XCJpbmRlZmluaXRlXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGFuaW1hdGVcbiAgICAgICAgICBhdHRyaWJ1dGVOYW1lPVwic3Ryb2tlLW9wYWNpdHlcIlxuICAgICAgICAgIGJlZ2luPVwiMHNcIlxuICAgICAgICAgIGR1cj1cIjEuOHNcIlxuICAgICAgICAgIHZhbHVlcz1cIjE7IDBcIlxuICAgICAgICAgIGNhbGNNb2RlPVwic3BsaW5lXCJcbiAgICAgICAgICBrZXlUaW1lcz1cIjA7IDFcIlxuICAgICAgICAgIGtleVNwbGluZXM9XCIwLjMsIDAuNjEsIDAuMzU1LCAxXCJcbiAgICAgICAgICByZXBlYXRDb3VudD1cImluZGVmaW5pdGVcIlxuICAgICAgICAvPlxuICAgICAgPC9jaXJjbGU+XG4gICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjEyXCIgcj1cIjFcIj5cbiAgICAgICAgPGFuaW1hdGVcbiAgICAgICAgICBhdHRyaWJ1dGVOYW1lPVwiclwiXG4gICAgICAgICAgYmVnaW49XCItMC45c1wiXG4gICAgICAgICAgZHVyPVwiMS44c1wiXG4gICAgICAgICAgdmFsdWVzPVwiMTsgMTBcIlxuICAgICAgICAgIGNhbGNNb2RlPVwic3BsaW5lXCJcbiAgICAgICAgICBrZXlUaW1lcz1cIjA7IDFcIlxuICAgICAgICAgIGtleVNwbGluZXM9XCIwLjE2NSwgMC44NCwgMC40NCwgMVwiXG4gICAgICAgICAgcmVwZWF0Q291bnQ9XCJpbmRlZmluaXRlXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGFuaW1hdGVcbiAgICAgICAgICBhdHRyaWJ1dGVOYW1lPVwic3Ryb2tlLW9wYWNpdHlcIlxuICAgICAgICAgIGJlZ2luPVwiLTAuOXNcIlxuICAgICAgICAgIGR1cj1cIjEuOHNcIlxuICAgICAgICAgIHZhbHVlcz1cIjE7IDBcIlxuICAgICAgICAgIGNhbGNNb2RlPVwic3BsaW5lXCJcbiAgICAgICAgICBrZXlUaW1lcz1cIjA7IDFcIlxuICAgICAgICAgIGtleVNwbGluZXM9XCIwLjMsIDAuNjEsIDAuMzU1LCAxXCJcbiAgICAgICAgICByZXBlYXRDb3VudD1cImluZGVmaW5pdGVcIlxuICAgICAgICAvPlxuICAgICAgPC9jaXJjbGU+XG4gICAgPC9nPlxuICA8L3N2Zz5cbik7XG5cbi8qKlxuICogYFNwaW5uZXJgIGNvbXBvbmVudCDigJQgYW5pbWF0ZWQgXCJidXN5XCIgaW5kaWNhdG9yLlxuICovXG5mdW5jdGlvbiBTcGlubmVyKHtcbiAgYXBwZWFyYW5jZSA9IFwiY2xpcFwiLFxuICBjb2xvck1vZGUsXG4gIHNpemUgPSAxNixcbiAgY29sb3IgPSBcImFjY2VudFwiLFxuICBpbmxpbmUsXG4gIG1hcmdpbixcbiAgbWFyZ2luVG9wLFxuICBtYXJnaW5SaWdodCxcbiAgbWFyZ2luQm90dG9tLFxuICBtYXJnaW5MZWZ0LFxuICBtLFxuICBtdCxcbiAgbXIsXG4gIG1iLFxuICBtbCxcbiAgLi4ub3RoZXJcbn06IFNwaW5uZXJQcm9wcykge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IGFjdHVhbENvbG9yTW9kZSA9IHVzZUNvbG9yTW9kZShjb2xvck1vZGUpO1xuICBjb2xvciA9IHJlc29sdmVUZXh0Q29sb3IodGhlbWUucGFsZXR0ZVthY3R1YWxDb2xvck1vZGVdLCBjb2xvcik7XG4gIGNvbnN0IG1hcmdpblByb3BzID0geyBtYXJnaW4sIG1hcmdpblRvcCwgbWFyZ2luUmlnaHQsIG1hcmdpbkJvdHRvbSwgbWFyZ2luTGVmdCwgbSwgbXQsIG1yLCBtYiwgbWwgfTtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IHsuLi5vdGhlcn0gcm9sZT1cInN0YXR1c1wiIGNzcz17W1N0eWxlQmFzZShzaXplLCBpbmxpbmUpLCBTdHlsZU1hcmdpbihtYXJnaW5Qcm9wcyldfT5cbiAgICAgIHthcHBlYXJhbmNlID09PSBcImNsaXBcIiAmJiA8QW5pbWF0ZWRDbGlwU3Bpbm5lciBzaXplPXtzaXplfSBjb2xvcj17Y29sb3J9IC8+fVxuICAgICAge2FwcGVhcmFuY2UgPT09IFwidGFpbFwiICYmIDxBbmltYXRlZFRhaWxTcGlubmVyIHNpemU9e3NpemV9IGNvbG9yPXtjb2xvcn0gLz59XG4gICAgICB7YXBwZWFyYW5jZSA9PT0gXCJwdWxzZVwiICYmIDxBbmltYXRlZFB1bHNlU3Bpbm5lciBzaXplPXtzaXplfSBjb2xvcj17Y29sb3J9IC8+fVxuICAgIDwvZGl2PlxuICApO1xufVxuXG5TcGlubmVyLmRpc3BsYXlOYW1lID0gXCJTcGlubmVyXCI7XG5TcGlubmVyLnByb3BUeXBlcyA9IFNwaW5uZXJQcm9wVHlwZXM7XG5cbi8qKlxuICogYFNwaW5uZXJgIGNvbXBvbmVudCDigJQgYW5pbWF0ZWQgXCJidXN5XCIgaW5kaWNhdG9yLlxuICovXG5leHBvcnQgZGVmYXVsdCBtZW1vKFNwaW5uZXIpO1xuIl19 */"],
children: [appearance === "clip" && _jsx(AnimatedClipSpinner, {
size: size,
color: color
}), appearance === "tail" && _jsx(AnimatedTailSpinner, {
size: size,
color: color
}), appearance === "pulse" && _jsx(AnimatedPulseSpinner, {
size: size,
color: color
})]
}));
}
Spinner.displayName = "Spinner";
Spinner.propTypes = SpinnerPropTypes;
/**
* `Spinner` component — animated "busy" indicator.
*/
export default /*#__PURE__*/memo(Spinner);
//# sourceMappingURL=Spinner.js.map