import { mergeProps, useSSRContext, defineComponent, unref, withCtx, createBlock, createCommentVNode, renderSlot, openBlock } from "vue";
import { ssrRenderAttrs, ssrRenderComponent, ssrRenderSlot } from "vue/server-renderer";
import { a as _export_sfc } from "../server.mjs";
import { Primitive } from "reka-ui";
import { c as cn } from "./utils-H80jjgLf.js";
import { cva } from "class-variance-authority";
const _sfc_main$1 = {};
function _sfc_ssrRender(_ctx, _push, _parent, _attrs) {
  _push(`<svg${ssrRenderAttrs(mergeProps({
    width: "18",
    height: "18",
    viewBox: "0 0 18 18",
    fill: "none",
    xmlns: "http://www.w3.org/2000/svg"
  }, _attrs))}><g clip-path="url(#clip0_436_9596)"><path d="M6.61448 0.14032C5.7012 5.10118 4.96083 5.8415 0 6.75478C4.96087 7.66806 5.7012 8.40839 6.61448 13.3692C7.52776 8.40839 8.26809 7.66806 13.229 6.75478C8.26809 5.8415 7.52772 5.10118 6.61448 0.14032Z" fill="currentColor"></path><path d="M13.7935 9.44659C13.2127 12.6015 12.7418 13.0724 9.58691 13.6531C12.7418 14.2339 13.2127 14.7048 13.7935 17.8597C14.3742 14.7048 14.8451 14.2339 18 13.6531C14.8451 13.0724 14.3743 12.6015 13.7935 9.44659Z" fill="currentColor"></path></g><defs><clipPath id="clip0_436_9596"><rect width="18" height="18" rx="8" fill="currentColor"></rect></clipPath></defs></svg>`);
}
const _sfc_setup$1 = _sfc_main$1.setup;
_sfc_main$1.setup = (props, ctx) => {
  const ssrContext = useSSRContext();
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/svg/StarsIcon.vue");
  return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
};
const __nuxt_component_0 = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["ssrRender", _sfc_ssrRender]]);
const _sfc_main = /* @__PURE__ */ defineComponent({
  __name: "Button",
  __ssrInlineRender: true,
  props: {
    variant: {},
    size: {},
    class: {},
    asChild: { type: Boolean },
    as: { default: "button" }
  },
  setup(__props) {
    const props = __props;
    return (_ctx, _push, _parent, _attrs) => {
      const _component_SvgStarsIcon = __nuxt_component_0;
      _push(ssrRenderComponent(unref(Primitive), mergeProps({
        "data-slot": "button",
        as: _ctx.as,
        "as-child": _ctx.asChild,
        class: unref(cn)(unref(buttonVariants)({ variant: _ctx.variant, size: _ctx.size }), props.class)
      }, _attrs), {
        default: withCtx((_, _push2, _parent2, _scopeId) => {
          if (_push2) {
            if (_ctx.variant === "wsDefault") {
              _push2(ssrRenderComponent(_component_SvgStarsIcon, { class: "size-[18px]" }, null, _parent2, _scopeId));
            } else {
              _push2(`<!---->`);
            }
            ssrRenderSlot(_ctx.$slots, "default", {}, null, _push2, _parent2, _scopeId);
            if (_ctx.variant === "wsDefault") {
              _push2(ssrRenderComponent(_component_SvgStarsIcon, { class: "size-[18px]" }, null, _parent2, _scopeId));
            } else {
              _push2(`<!---->`);
            }
          } else {
            return [
              _ctx.variant === "wsDefault" ? (openBlock(), createBlock(_component_SvgStarsIcon, {
                key: 0,
                class: "size-[18px]"
              })) : createCommentVNode("", true),
              renderSlot(_ctx.$slots, "default"),
              _ctx.variant === "wsDefault" ? (openBlock(), createBlock(_component_SvgStarsIcon, {
                key: 1,
                class: "size-[18px]"
              })) : createCommentVNode("", true)
            ];
          }
        }),
        _: 3
      }, _parent));
    };
  }
});
const _sfc_setup = _sfc_main.setup;
_sfc_main.setup = (props, ctx) => {
  const ssrContext = useSSRContext();
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/ui/button/Button.vue");
  return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
};
const buttonVariants = cva(
  "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
  {
    variants: {
      variant: {
        default: "bg-accent text-light-text shadow-xs hover:bg-accent/90 cursor-pointer",
        destructive: "bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
        outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
        secondary: "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",
        ghost: "hover:bg-gray-100 hover:text-dark-text dark:hover:text-light-text dark:hover:bg-gray-800",
        link: "text-primary underline-offset-4 hover:underline",
        wsDefault: "bg-accent text-light-text shadow-xs text-base lg:text-lg font-semibold hover:bg-accent/90",
        wsIcon: "bg-transparent shadow-xs hover:bg-accent/90 border-surface-border border-1",
        wsGradient: "bg-transparent shadow-xs hover:bg-accent/90 border-surface-border border-1 ws-gradient-border",
        wsPrev: "bg-transparent shadow-xs text-accent border-1 border-accent cursor-pointer"
      },
      size: {
        default: "h-9 px-4 py-2 has-[>svg]:px-3",
        sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
        lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
        icon: "size-9",
        wsDefault: "w-fit h-12 px-4 lg:px-8 has-[>svg]:px-6 lg:w-[100%]",
        wsIcon: "size-10",
        stepBtn: "h-11 px-4 py-2 has-[>svg]:px-3"
      }
    },
    defaultVariants: {
      variant: "default",
      size: "default"
    }
  }
);
export {
  _sfc_main as _,
  buttonVariants as b
};
//# sourceMappingURL=index-m9AqQ9dr.js.map
