UNPKG

@trail-ui/react

Version:
44 lines (41 loc) 1 kB
import { Ring } from "./chunk-ZRD6UURY.mjs"; import { Spin } from "./chunk-2MFMRIOO.mjs"; import { Bars } from "./chunk-TYIRKX5D.mjs"; import { Dots } from "./chunk-QRPONS6X.mjs"; // src/spinner/spinner.tsx import { spinner } from "@trail-ui/theme"; import { forwardRef, useMemo } from "react"; import { jsx } from "react/jsx-runtime"; var SPINNERS = { bars: Bars, dots: Dots, ring: Ring, spin: Spin }; var DEFAULT_SPINNER = "spin"; function Spinner(props, ref) { const { className, variant = DEFAULT_SPINNER, color, size, ...spinnerProps } = props; const defaultSpinner = variant in SPINNERS ? variant : DEFAULT_SPINNER; const SpinnerComponent = SPINNERS[defaultSpinner]; const styles = useMemo( () => spinner({ color, size, className }), [className, color, size] ); return /* @__PURE__ */ jsx(SpinnerComponent, { "aria-hidden": true, className: styles, ref, ...spinnerProps }); } var _Spinner = forwardRef(Spinner); export { _Spinner };