UNPKG

@jengaui/utils

Version:

Jenga UI Utils component in React

20 lines (13 loc) 1.81 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var react = require('react'); var g = require('clsx'); var tastycss = require('tastycss'); require('@react-aria/ssr'); var jsxRuntime = require('react/jsx-runtime'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var g__default = /*#__PURE__*/_interopDefaultLegacy(g); function u(...n){return (...e)=>{for(let t of n)typeof t=="function"&&t(...e);}}var c=new Map;function d(n,e){if(n===e)return n;let t=c.get(n);if(t)return t(e),e;let r=c.get(e);return r?(r(n),n):e}function f(...n){let e={};for(let t of n){for(let r in e)/^on[A-Z]/.test(r)&&typeof e[r]=="function"&&t&&typeof t[r]=="function"?e[r]=u(e[r],t[r]):r==="className"&&typeof e.className=="string"&&t&&typeof t.className=="string"?e[r]=g__default["default"](e.className,t.className):(r==="styles"||r.endsWith("Styles"))&&typeof e.styles=="object"&&t&&typeof t.styles=="object"?e[r]=tastycss.mergeStyles(e[r],t[r]):r==="id"&&e.id&&(t==null?void 0:t.id)?e.id=d(e.id,t==null?void 0:t.id):e[r]=t&&t[r]!==void 0?t[r]:e[r];for(let r in t)e[r]===void 0&&(e[r]=t[r]);}return e}var l={},o=react.createContext(l);function w(n,e){let t=n.slot||e,s=(react.useContext(o)??l)[t];return f(s,n)}function A(n){let e=react.useContext(o)??l,{slots:t={},children:r}=n,s=react.useMemo(()=>Object.keys(e).concat(Object.keys(t)).reduce((y,i)=>({...y,[i]:f(e[i]??{},t[i]??{})}),{}),[e,t]);return jsxRuntime.jsx(o.Provider,{value:s,children:r})}function W(n){let{children:e,...t}=n,r=e;return react.Children.toArray(e).length<=1&&typeof e=="function"&&(r=react.cloneElement(react.Children.only(e),t)),jsxRuntime.jsx(o.Provider,{value:l,children:r})} exports.ClearSlots = W; exports.SlotProvider = A; exports.useSlotProps = w;