@explita/daily-toolset-components
Version:
A lightweight and versatile collection of TypeScript utility functions and form components, inspired by ShadCN UI, designed for seamless everyday development. Enhance your Node.js, React, and Next.js projects with a well-structured suite of helpers for st
40 lines (39 loc) • 2.49 kB
JavaScript
"use client";
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Button = Button;
exports.ButtonAdd = ButtonAdd;
const react_1 = __importDefault(require("react"));
const bs_1 = require("react-icons/bs");
const hi_1 = require("react-icons/hi");
const button_1 = require("../ui/button");
const Spinner_1 = require("./Spinner");
const lu_1 = require("react-icons/lu");
function Button({ children, icon, type = "button", variant = "default", size = "default", isDisabled = false, loading = false, ...rest }) {
return (react_1.default.createElement(button_1.Button, { type: type, size: size, disabled: isDisabled, variant: variant, ...rest },
loading && react_1.default.createElement(Spinner_1.Spinner, { color: "blue" }),
icon && react_1.default.createElement("span", null, icon),
children));
}
Button.Add = function Add({ children = "Add New", variant = "green", size = "sm", ...rest }) {
return (react_1.default.createElement(Button, { icon: react_1.default.createElement(bs_1.BsPlusLg, null), size: size, variant: variant, ...rest }, children));
};
Button.Remove = function Remove({ children = "Remove", variant = "destructive", size = "icon", ...rest }) {
return (react_1.default.createElement(Button, { size: size, variant: variant, ...rest },
react_1.default.createElement(lu_1.LuMinus, null)));
};
function ButtonAdd({ ...rest }) {
return react_1.default.createElement(Button.Add, { ...rest });
}
Button.Submit = function Submit({ children = "Submit", isDisabled = false, size = "default", loading, ...rest }) {
return (react_1.default.createElement(Button, { type: "submit", icon: react_1.default.createElement(hi_1.HiOutlineSaveAs, null), isDisabled: loading || isDisabled, loading: loading, variant: "teal", ...rest }, children));
};
Button.Search = function Search({ children = "Search", variant = "secondary", ...rest }) {
return (react_1.default.createElement(Button.Submit, { icon: react_1.default.createElement(bs_1.BsSearch, null), variant: variant, ...rest }, children));
};
Button.Close = function Close({ children = "Close", variant = "destructive", size, ...rest }) {
return (react_1.default.createElement(Button, { type: "button", icon: react_1.default.createElement(bs_1.BsXLg, null), size: size, variant: variant, ...rest }, children));
};