UNPKG

@konstructio/ui

Version:

A set of reusable and customizable React components built for konstruct.io

192 lines (191 loc) 5.79 kB
import { o as W } from "./chunk-cI0lbGMq.js"; import { t as M } from "./prop-types-CE0Kfmwk.js"; import { t as j } from "./dist-EV-1XXQr.js"; import { t as f } from "./utils-COaoD3PI.js"; import { Typography as T } from "./components/Typography/Typography.js"; import { buttonVariants as N, counterVariants as V, labelVariants as C } from "./components/Counter/Counter.variants.js"; import m, { forwardRef as g, useCallback as k, useId as R } from "react"; import { jsx as u, jsxs as p } from "react/jsx-runtime"; var a = /* @__PURE__ */ W(M()); function h() { return h = Object.assign || function(e) { for (var o = 1; o < arguments.length; o++) { var r = arguments[o]; for (var t in r) Object.prototype.hasOwnProperty.call(r, t) && (e[t] = r[t]); } return e; }, h.apply(this, arguments); } function S(e, o) { if (e == null) return {}; var r = B(e, o), t, n; if (Object.getOwnPropertySymbols) { var i = Object.getOwnPropertySymbols(e); for (n = 0; n < i.length; n++) t = i[n], !(o.indexOf(t) >= 0) && Object.prototype.propertyIsEnumerable.call(e, t) && (r[t] = e[t]); } return r; } function B(e, o) { if (e == null) return {}; var r = {}, t = Object.keys(e), n, i; for (i = 0; i < t.length; i++) n = t[i], !(o.indexOf(n) >= 0) && (r[n] = e[n]); return r; } var O = g(function(e, o) { var r = e.color, t = r === void 0 ? "currentColor" : r, n = e.size, i = n === void 0 ? 24 : n, l = S(e, ["color", "size"]); return /* @__PURE__ */ m.createElement("svg", h({ ref: o, xmlns: "http://www.w3.org/2000/svg", width: i, height: i, viewBox: "0 0 24 24", fill: "none", stroke: t, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, l), /* @__PURE__ */ m.createElement("line", { x1: "5", y1: "12", x2: "19", y2: "12" })); }); O.propTypes = { color: a.default.string, size: a.default.oneOfType([a.default.string, a.default.number]) }; O.displayName = "Minus"; function b() { return b = Object.assign || function(e) { for (var o = 1; o < arguments.length; o++) { var r = arguments[o]; for (var t in r) Object.prototype.hasOwnProperty.call(r, t) && (e[t] = r[t]); } return e; }, b.apply(this, arguments); } function D(e, o) { if (e == null) return {}; var r = q(e, o), t, n; if (Object.getOwnPropertySymbols) { var i = Object.getOwnPropertySymbols(e); for (n = 0; n < i.length; n++) t = i[n], !(o.indexOf(t) >= 0) && Object.prototype.propertyIsEnumerable.call(e, t) && (r[t] = e[t]); } return r; } function q(e, o) { if (e == null) return {}; var r = {}, t = Object.keys(e), n, i; for (i = 0; i < t.length; i++) n = t[i], !(o.indexOf(n) >= 0) && (r[n] = e[n]); return r; } var w = g(function(e, o) { var r = e.color, t = r === void 0 ? "currentColor" : r, n = e.size, i = n === void 0 ? 24 : n, l = D(e, ["color", "size"]); return /* @__PURE__ */ m.createElement("svg", b({ ref: o, xmlns: "http://www.w3.org/2000/svg", width: i, height: i, viewBox: "0 0 24 24", fill: "none", stroke: t, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, l), /* @__PURE__ */ m.createElement("line", { x1: "12", y1: "5", x2: "12", y2: "19" }), /* @__PURE__ */ m.createElement("line", { x1: "5", y1: "12", x2: "19", y2: "12" })); }); w.propTypes = { color: a.default.string, size: a.default.oneOfType([a.default.string, a.default.number]) }; w.displayName = "Plus"; var X = g(({ canDecrement: e = !0, canIncrement: o = !0, className: r, decrementButtonClassName: t, incrementButtonClassName: n, isRequired: i, label: l, labelWrapperClassName: P, max: y = -1 / 0, min: v = 1 / 0, name: x, theme: _, value: z, onChange: d }, I) => { const E = R(), s = z ?? 0, L = k(() => { let c = 0; v === 1 / 0 ? c = s - 1 : c = Math.max(v, s - 1), d?.({ target: { value: c } }); }, [ s, v, d ]), $ = k(() => { let c = 0; y === -1 / 0 ? c = s + 1 : c = Math.min(y, s + 1), d?.({ target: { value: c } }); }, [ s, y, d ]); return /* @__PURE__ */ p("div", { className: "flex flex-col gap-2", "data-theme": _, children: [l ? /* @__PURE__ */ u("div", { className: f(P), children: /* @__PURE__ */ p(T, { component: "label", htmlFor: x ?? E, variant: "labelLarge", className: f(C()), children: [ "Number of nodes", " ", i && /* @__PURE__ */ u("span", { className: "text-red-600 dark:text-red-500", children: "*" }) ] }) }) : null, /* @__PURE__ */ p("div", { className: "flex items-center", role: "presentation", children: [ /* @__PURE__ */ p("button", { type: "button", onClick: L, className: f(N({ button: "rigth", className: t })), disabled: !e, children: [/* @__PURE__ */ u(O, { className: "w-4 h-4" }), /* @__PURE__ */ u(j, { children: "Decrement" })] }), /* @__PURE__ */ u("input", { ref: I, type: "number", value: s, name: x, className: f(V({ className: r })), readOnly: !0, "aria-label": typeof l == "string" ? l : "number input" }), /* @__PURE__ */ p("button", { type: "button", onClick: $, className: f(N({ button: "left", className: n })), disabled: !o, children: [/* @__PURE__ */ u(w, { className: "w-4 h-4" }), /* @__PURE__ */ u(j, { children: "Increment" })] }) ] })] }); }); export { X as t };