UNPKG

@fxshelf/button-kit

Version:

Animated button shelf for React and Vue — switch styles by variant string. Zero animation-lib deps. Copy-as-source friendly.

82 lines (77 loc) • 2.42 kB
"use strict"; var ButtonKit = (() => { var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/index.ts var src_exports = {}; __export(src_exports, { BUTTON_VARIANTS: () => BUTTON_VARIANTS, Button: () => Button }); // src/browser/react.ts var globalReact = globalThis.React; if (!globalReact) { throw new Error( '[button-kit] browser build: global "React" not found. Load a UMD build of React (react@18.3.x) before button-kit.' ); } var Fragment = globalReact.Fragment; var createElement = globalReact.createElement; // 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)}`; } // src/browser/jsx-runtime.ts function jsx(type, props, key) { const create = createElement; return key === void 0 ? create(type, props) : create(type, { ...props, key }); } // src/react/Button.tsx 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 }); } return __toCommonJS(src_exports); })(); //# sourceMappingURL=button-kit.iife.js.map