UNPKG

@helpwave/hightide

Version:

helpwave's component and theming library

147 lines (144 loc) 4.27 kB
// src/components/branding/HelpwaveBadge.tsx import clsx3 from "clsx"; // src/components/layout-and-navigation/Tile.tsx import clsx from "clsx"; import { Check } from "lucide-react"; import { jsx, jsxs } from "react/jsx-runtime"; var Tile = ({ title, titleClassName, description, descriptionClassName, onClick, isSelected = false, disabled = false, prefix, suffix, normalClassName = "hover:bg-primary/40 cursor-pointer", selectedClassName = "bg-primary/20", disabledClassName = "text-disabled-text bg-disabled-background cursor-not-allowed", className }) => { return /* @__PURE__ */ jsxs( "div", { className: clsx( "flex-row-2 w-full items-center", { [normalClassName]: onClick && !disabled, [selectedClassName]: isSelected && !disabled, [disabledClassName]: disabled }, className ), onClick: disabled ? void 0 : onClick, children: [ prefix, /* @__PURE__ */ jsxs("div", { className: "flex-col-0 w-full", children: [ /* @__PURE__ */ jsx("span", { className: clsx(titleClassName ?? "textstyle-title-normal"), children: title }), !!description && /* @__PURE__ */ jsx("span", { className: clsx(descriptionClassName ?? "textstyle-description"), children: description }) ] }), suffix ?? (isSelected ? /* @__PURE__ */ jsx(Check, { size: 24 }) : void 0) ] } ); }; // src/components/icons-and-geometry/Helpwave.tsx import { clsx as clsx2 } from "clsx"; import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime"; var Helpwave = ({ color = "currentColor", animate = "none", size = 64, ...props }) => { const isLoadingAnimation = animate === "loading"; let svgAnimationKey = ""; if (animate === "pulse") { svgAnimationKey = "animate-pulse"; } else if (animate === "bounce") { svgAnimationKey = "animate-bounce"; } if (size < 0) { console.error("size cannot be less than 0"); size = 64; } return /* @__PURE__ */ jsx2( "svg", { width: size, height: size, viewBox: "0 0 888 888", fill: "none", strokeLinecap: "round", strokeWidth: 48, ...props, children: /* @__PURE__ */ jsxs2("g", { className: clsx2(svgAnimationKey), children: [ /* @__PURE__ */ jsx2( "path", { className: clsx2({ "animate-wave-big-left-up": isLoadingAnimation }), d: "M144 543.235C144 423.259 232.164 326 340.92 326", stroke: color, strokeDasharray: "1000" } ), /* @__PURE__ */ jsx2( "path", { className: clsx2({ "animate-wave-big-right-down": isLoadingAnimation }), d: "M537.84 544.104C429.084 544.104 340.92 446.844 340.92 326.869", stroke: color, strokeDasharray: "1000" } ), /* @__PURE__ */ jsx2( "path", { className: clsx2({ "animate-wave-small-left-up": isLoadingAnimation }), d: "M462.223 518.035C462.223 432.133 525.348 362.495 603.217 362.495", stroke: color, strokeDasharray: "1000" } ), /* @__PURE__ */ jsx2( "path", { className: clsx2({ "animate-wave-small-right-down": isLoadingAnimation }), d: "M745.001 519.773C666.696 519.773 603.218 450.136 603.218 364.233", stroke: color, strokeDasharray: "1000" } ) ] }) } ); }; // src/components/branding/HelpwaveBadge.tsx import { jsx as jsx3 } from "react/jsx-runtime"; var HelpwaveBadge = ({ size = "small", title = "helpwave", className = "" }) => { const iconSize = size === "small" ? 24 : 64; return /* @__PURE__ */ jsx3( Tile, { prefix: /* @__PURE__ */ jsx3(Helpwave, { size: iconSize }), title, titleClassName: size === "small" ? "textstyle-title-lg text-base" : "textstyle-title-xl", className: clsx3( { "px-2 py-1 rounded-md": size === "small", "px-4 py-1 rounded-md": size === "large" }, className ) } ); }; export { HelpwaveBadge }; //# sourceMappingURL=HelpwaveBadge.mjs.map