UNPKG

bootstrap-vue-next

Version:

Seamless integration of Vue 3, Bootstrap 5, and TypeScript for modern, type-safe UI development

54 lines (53 loc) 2.09 kB
import { o as isEmptySlot } from "./dom-AhkaSoh8.mjs"; import { t as useDefaults } from "./useDefaults-BKgBaqOV.mjs"; import { t as useColorVariantClasses } from "./useColorVariantClasses-B6Me_Kx6.mjs"; import { computed, createBlock, createCommentVNode, createElementBlock, createTextVNode, defineComponent, normalizeClass, openBlock, renderSlot, resolveDynamicComponent, toDisplayString, unref, useSlots, withCtx } from "vue"; //#region src/components/BSpinner/BSpinner.vue?vue&type=script&setup=true&lang.ts var _hoisted_1 = { key: 0, class: "visually-hidden" }; //#endregion //#region src/components/BSpinner/BSpinner.vue var BSpinner_default = /* @__PURE__ */ defineComponent({ __name: "BSpinner", props: { label: { default: void 0 }, role: { default: "status" }, small: { type: Boolean, default: false }, tag: { default: "span" }, type: { default: "border" }, variant: { default: null } }, setup(__props) { const props = useDefaults(__props, "BSpinner"); const slots = useSlots(); const colorClasses = useColorVariantClasses(computed(() => ({ textVariant: props.variant }))); const computedClasses = computed(() => [ `spinner-${props.type}`, colorClasses.value, { [`spinner-${props.type}-sm`]: props.small } ]); const hasLabelSlot = computed(() => !isEmptySlot(slots.label)); return (_ctx, _cache) => { return openBlock(), createBlock(resolveDynamicComponent(unref(props).tag), { class: normalizeClass(computedClasses.value), role: unref(props).label || hasLabelSlot.value ? unref(props).role : null, "aria-hidden": unref(props).label || hasLabelSlot.value ? null : true }, { default: withCtx(() => [unref(props).label || hasLabelSlot.value ? (openBlock(), createElementBlock("span", _hoisted_1, [renderSlot(_ctx.$slots, "label", {}, () => [createTextVNode(toDisplayString(unref(props).label), 1)])])) : createCommentVNode("", true)]), _: 3 }, 8, [ "class", "role", "aria-hidden" ]); }; } }); //#endregion export { BSpinner_default as t }; //# sourceMappingURL=BSpinner-BpnwONvx.mjs.map