"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Spinner = void 0;
const react_1 = __importDefault(require("react"));
const css_utilities_1 = require("@shopify/css-utilities");
const media_query_1 = require("../../utilities/media-query");
const Icon_1 = require("../Icon");
const Spinner_css_1 = __importDefault(require("./Spinner.css"));
function Spinner({ size, color, children, }) {
    const prefersReducedMotion = media_query_1.usePrefersReducedMotion();
    const showAccessibleContent = Boolean(children && prefersReducedMotion);
    const className = showAccessibleContent
        ? undefined
        : css_utilities_1.classNames(Spinner_css_1.default.Spinner, size && Spinner_css_1.default[css_utilities_1.variationName('size', size)]);
    return (<div className={className}>
      {showAccessibleContent ? (children) : (<Icon_1.Icon source={size === 'small' ? 'spinnerSmall' : 'spinner'} appearance={color ? undefined : 'accent'}/>)}
    </div>);
}
exports.Spinner = Spinner;
