ivt
Version:
Ivt Components Library
74 lines (69 loc) • 2.05 kB
JavaScript
import * as React from 'react';
import React__default from 'react';
import 'react-dom';
import { createSlot } from '@radix-ui/react-slot';
import { jsx } from 'react/jsx-runtime';
import { c as cn } from './utils-BDcRwQMd.mjs';
// src/primitive.tsx
var NODES = [
"a",
"button",
"div",
"form",
"h2",
"h3",
"img",
"input",
"label",
"li",
"nav",
"ol",
"p",
"select",
"span",
"svg",
"ul"
];
var Primitive = NODES.reduce((primitive, node)=>{
const Slot = createSlot(`Primitive.${node}`);
const Node = React.forwardRef((props, forwardedRef)=>{
const { asChild, ...primitiveProps } = props;
const Comp = asChild ? Slot : node;
if (typeof window !== "undefined") {
window[Symbol.for("radix-ui")] = true;
}
return /* @__PURE__ */ jsx(Comp, {
...primitiveProps,
ref: forwardedRef
});
});
Node.displayName = `Primitive.${node}`;
return {
...primitive,
[node]: Node
};
}, {});
var NAME = "Label";
var Label$1 = React.forwardRef((props, forwardedRef)=>{
return /* @__PURE__ */ jsx(Primitive.label, {
...props,
ref: forwardedRef,
onMouseDown: (event)=>{
const target = event.target;
if (target.closest("button, input, select, textarea")) return;
props.onMouseDown?.(event);
if (!event.defaultPrevented && event.detail > 1) event.preventDefault();
}
});
});
Label$1.displayName = NAME;
var Root = Label$1;
function Label({ className, ...props }) {
return /*#__PURE__*/ React__default.createElement(Root, {
"data-slot": "label",
className: cn("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50", className),
...props
});
}
export { Label as L };
//# sourceMappingURL=label-D0iRy8Wj.mjs.map