@fxshelf/button-kit
Version:
Animated button shelf for React and Vue — switch styles by variant string. Zero animation-lib deps. Copy-as-source friendly.
44 lines (41 loc) • 925 B
JavaScript
"use client";
import 'react';
import { jsx } from 'react/jsx-runtime';
// src/react/Button.tsx
// src/core/variants.ts
var BUTTON_VARIANTS = [
"solid",
"outline",
"soft",
"glow",
"neon",
"shimmer",
"chroma",
"liquid",
"wipe",
"glass"
];
var DEFAULT_VARIANT = "solid";
function resolveVariant(variant) {
if (variant != null && BUTTON_VARIANTS.includes(variant)) {
return variant;
}
return DEFAULT_VARIANT;
}
function variantClassName(variant) {
return `fx-btn fx-btn--${resolveVariant(variant)}`;
}
function Button({
variant = "solid",
children,
className,
style,
type = "button",
...rest
}) {
const classes = [variantClassName(variant), className].filter(Boolean).join(" ");
return /* @__PURE__ */ jsx("button", { type, className: classes, style, ...rest, children });
}
export { BUTTON_VARIANTS, Button };
//# sourceMappingURL=index.js.map
//# sourceMappingURL=index.js.map