UNPKG

@loke/ui

Version:
2 lines (1 loc) 811 B
import{createSlot}from"@loke/ui/slot";import React from"react";import ReactDOM from"react-dom";import{jsx}from"react/jsx-runtime";var NODES=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Primitive=NODES.reduce((primitive,node)=>{let Slot=createSlot(`Primitive.${node}`),Node=React.forwardRef((props,forwardedRef)=>{let{asChild,...primitiveProps}=props,Comp=asChild?Slot:node;if(typeof window<"u")window[Symbol.for("loke-ui")]=!0;return jsx(Comp,{...primitiveProps,ref:forwardedRef})});return Node.displayName=`Primitive.${node}`,{...primitive,[node]:Node}},{});function dispatchDiscreteCustomEvent(target,event){if(target)ReactDOM.flushSync(()=>target.dispatchEvent(event))}var Root=Primitive;export{dispatchDiscreteCustomEvent,Root,Primitive,NODES};