import { defineComponent as y, computed as r, ref as z, useSlots as B, createElementBlock as i, openBlock as n, mergeProps as k, createCommentVNode as d, renderSlot as o, unref as l, createBlock as u } from "vue";
/* empty css                  */
import f from "../PlIcon24/PlIcon24.vue.js";
import { useRipple as b } from "../../composition/useRipple.js";
const v = { key: 0 }, $ = {
  name: "PlBtnGhost"
}, p = /* @__PURE__ */ y({
  ...$,
  props: {
    loading: { type: Boolean },
    size: { default: void 0 },
    round: { type: Boolean },
    icon: { default: void 0 },
    reverse: { type: Boolean },
    justifyCenter: { type: Boolean, default: !1 }
  },
  setup(e) {
    const a = e, m = r(() => a.size === "small"), c = r(() => a.size === "large"), s = z(), g = B();
    return b(s), (t, C) => (n(), i("button", k({
      ref_key: "btnRef",
      ref: s,
      tabindex: "0",
      class: ["pl-btn-ghost", { loading: e.loading, small: m.value, large: c.value, round: e.round, reverse: e.reverse, justifyCenter: e.justifyCenter, [t.$attrs.class + ""]: !0 }]
    }, { ...t.$attrs, disabled: !!t.$attrs.disabled || e.loading }), [
      l(g).default && !e.round ? (n(), i("span", v, [
        o(t.$slots, "default")
      ])) : d("", !0),
      o(t.$slots, "icon", {}, () => [
        e.loading ? (n(), u(l(f), {
          key: 0,
          name: "loading",
          size: e.size
        }, null, 8, ["size"])) : e.icon ? (n(), u(l(f), {
          key: 1,
          name: e.icon,
          size: e.size
        }, null, 8, ["name", "size"])) : d("", !0)
      ]),
      o(t.$slots, "append")
    ], 16));
  }
});
export {
  p as default
};
//# sourceMappingURL=PlBtnGhost.vue.js.map
