import { useForwardExpose } from "../shared/useForwardExpose.js"; import { injectFieldRootContext } from "./FieldRoot.js"; import { Label_default } from "../Label/Label.js"; import { createBlock, defineComponent, mergeProps, onBeforeUnmount, onMounted, openBlock, renderSlot, unref, withCtx } from "vue"; //#region src/Field/FieldLabel.vue?vue&type=script&setup=true&lang.ts var FieldLabel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({ __name: "FieldLabel", props: { nativeLabel: { type: Boolean, required: false, default: true }, for: { type: String, required: false }, asChild: { type: Boolean, required: false }, as: { type: null, required: false } }, setup(__props) { const props = __props; useForwardExpose(); const fieldContext = injectFieldRootContext(); let unregister; onMounted(() => { unregister = fieldContext.registerLabel(); }); onBeforeUnmount(() => unregister?.()); function handleClick(event) { if (props.nativeLabel) return; if (event.target?.closest("button,input,select,textarea")) return; fieldContext.focusControl(); } return (_ctx, _cache) => { return openBlock(), createBlock(unref(Label_default), mergeProps(unref(fieldContext).dataAttributes.value, { id: unref(fieldContext).labelId.value ?? void 0, as: __props.as, "as-child": __props.asChild, for: __props.nativeLabel ? props.for ?? unref(fieldContext).getControlId() : void 0, onClick: handleClick, onPointerdown: _cache[0] || (_cache[0] = (event) => { if (!__props.nativeLabel) event.preventDefault(); }) }), { default: withCtx(() => [renderSlot(_ctx.$slots, "default")]), _: 3 }, 16, [ "id", "as", "as-child", "for" ]); }; } }); //#endregion //#region src/Field/FieldLabel.vue var FieldLabel_default = FieldLabel_vue_vue_type_script_setup_true_lang_default; //#endregion export { FieldLabel_default }; //# sourceMappingURL=FieldLabel.js.map