import { c as compute_rest_props } from './lifecycle-Cykl3Eqn.js'; import { c as create_ssr_component, v as validate_component, s as spread, d as escape_attribute_value, f as escape_object, b as add_attribute, a as each } from './ssr-DKhf7yIZ.js'; import { q as buttonVariants, i as is_void } from './index3-BO7d7Sb-.js'; import { clsx } from 'clsx'; import { twMerge } from 'tailwind-merge'; /** * @license lucide-svelte v0.373.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */ const defaultAttributes = { xmlns: "http://www.w3.org/2000/svg", width: 24, height: 24, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": 2, "stroke-linecap": "round", "stroke-linejoin": "round" }; const defaultAttributes$1 = defaultAttributes; const Icon = create_ssr_component(($$result, $$props, $$bindings, slots) => { let $$restProps = compute_rest_props($$props, ["name", "color", "size", "strokeWidth", "absoluteStrokeWidth", "iconNode"]); let { name } = $$props; let { color = "currentColor" } = $$props; let { size = 24 } = $$props; let { strokeWidth = 2 } = $$props; let { absoluteStrokeWidth = false } = $$props; let { iconNode } = $$props; if ($$props.name === void 0 && $$bindings.name && name !== void 0) $$bindings.name(name); if ($$props.color === void 0 && $$bindings.color && color !== void 0) $$bindings.color(color); if ($$props.size === void 0 && $$bindings.size && size !== void 0) $$bindings.size(size); if ($$props.strokeWidth === void 0 && $$bindings.strokeWidth && strokeWidth !== void 0) $$bindings.strokeWidth(strokeWidth); if ($$props.absoluteStrokeWidth === void 0 && $$bindings.absoluteStrokeWidth && absoluteStrokeWidth !== void 0) $$bindings.absoluteStrokeWidth(absoluteStrokeWidth); if ($$props.iconNode === void 0 && $$bindings.iconNode && iconNode !== void 0) $$bindings.iconNode(iconNode); return `${each(iconNode, ([tag, attrs]) => { return `${((tag$1) => { return tag$1 ? `<${tag}${spread([escape_object(attrs)], {})}>${is_void(tag$1) ? "" : ``}${is_void(tag$1) ? "" : ``}` : ""; })(tag)}`; })}${slots.default ? slots.default({}) : ``}`; }); const Icon$1 = Icon; function getAttrs(builders) { const attrs = {}; builders.forEach((builder) => { Object.keys(builder).forEach((key) => { if (key !== "action") { attrs[key] = builder[key]; } }); }); return attrs; } const Button$1 = create_ssr_component(($$result, $$props, $$bindings, slots) => { let $$restProps = compute_rest_props($$props, ["href", "type", "builders", "el"]); let { href = void 0 } = $$props; let { type = void 0 } = $$props; let { builders = [] } = $$props; let { el = void 0 } = $$props; const attrs = { "data-button-root": "" }; if ($$props.href === void 0 && $$bindings.href && href !== void 0) $$bindings.href(href); if ($$props.type === void 0 && $$bindings.type && type !== void 0) $$bindings.type(type); if ($$props.builders === void 0 && $$bindings.builders && builders !== void 0) $$bindings.builders(builders); if ($$props.el === void 0 && $$bindings.el && el !== void 0) $$bindings.el(el); return `${builders && builders.length ? ` ${((tag) => { return tag ? `<${href ? "a" : "button"}${spread( [ { type: escape_attribute_value(href ? void 0 : type) }, { href: escape_attribute_value(href) }, { tabindex: "0" }, escape_object(getAttrs(builders)), escape_object($$restProps), escape_object(attrs) ], {} )}${add_attribute("this", el, 0)}>${is_void(tag) ? "" : `${slots.default ? slots.default({}) : ``}`}${is_void(tag) ? "" : ``}` : ""; })(href ? "a" : "button")}` : ` ${((tag) => { return tag ? `<${href ? "a" : "button"}${spread( [ { type: escape_attribute_value(href ? void 0 : type) }, { href: escape_attribute_value(href) }, { tabindex: "0" }, escape_object($$restProps), escape_object(attrs) ], {} )}${add_attribute("this", el, 0)}>${is_void(tag) ? "" : `${slots.default ? slots.default({}) : ``}`}${is_void(tag) ? "" : ``}` : ""; })(href ? "a" : "button")}`}`; }); function cubicOut(t) { const f = t - 1; return f * f * f + 1; } function cn(...inputs) { return twMerge(clsx(inputs)); } const flyAndScale = (node, params = { y: -8, x: 0, start: 0.95, duration: 150 }) => { const style = getComputedStyle(node); const transform = style.transform === "none" ? "" : style.transform; const scaleConversion = (valueA, scaleA, scaleB) => { const [minA, maxA] = scaleA; const [minB, maxB] = scaleB; const percentage = (valueA - minA) / (maxA - minA); const valueB = percentage * (maxB - minB) + minB; return valueB; }; const styleToString = (style2) => { return Object.keys(style2).reduce((str, key) => { if (style2[key] === void 0) return str; return str + `${key}:${style2[key]};`; }, ""); }; return { duration: params.duration ?? 200, delay: 0, css: (t) => { const y = scaleConversion(t, [0, 1], [params.y ?? 5, 0]); const x = scaleConversion(t, [0, 1], [params.x ?? 0, 0]); const scale = scaleConversion(t, [0, 1], [params.start ?? 0.95, 1]); return styleToString({ transform: `${transform} translate3d(${x}px, ${y}px, 0) scale(${scale})`, opacity: t }); }, easing: cubicOut }; }; const Button = create_ssr_component(($$result, $$props, $$bindings, slots) => { let $$restProps = compute_rest_props($$props, ["class", "variant", "size", "builders"]); let { class: className = void 0 } = $$props; let { variant = "default" } = $$props; let { size = "default" } = $$props; let { builders = [] } = $$props; if ($$props.class === void 0 && $$bindings.class && className !== void 0) $$bindings.class(className); if ($$props.variant === void 0 && $$bindings.variant && variant !== void 0) $$bindings.variant(variant); if ($$props.size === void 0 && $$bindings.size && size !== void 0) $$bindings.size(size); if ($$props.builders === void 0 && $$bindings.builders && builders !== void 0) $$bindings.builders(builders); return `${validate_component(Button$1, "ButtonPrimitive.Root").$$render( $$result, Object.assign( {}, { builders }, { class: cn(buttonVariants({ variant, size, className })) }, { type: "button" }, $$restProps ), {}, { default: () => { return `${slots.default ? slots.default({}) : ``}`; } } )}`; }); export { Button as B, Icon$1 as I, cubicOut as a, cn as c, flyAndScale as f }; //# sourceMappingURL=button-PuTSnXRo.js.map