UNPKG

@infinityfx/fluid

Version:

React UI library, using zero-runtime CSS-in-JS.

4 lines (3 loc) 1.54 kB
"use client"; import{jsx as r,jsxs as e}from"react/jsx-runtime";import{combineClasses as i,classes as o}from"../../../core/utils.js";import{createContext as c,useRef as a,useState as t,Children as n,Fragment as d,use as l}from"react";import{createStyles as s}from"../../../core/style.js";const u=c(null);function m(){const r=l(u);if(!r)throw new Error("Unable to access AccordionRoot context");return r}const f=s("accordion.root",{".accordion, .item":{display:"flex",flexDirection:"column"},".v__default":{backgroundColor:"var(--f-clr-fg-100)",borderRadius:"var(--f-radius-med)",padding:".4em"},".v__default .divider":{marginInline:"var(--f-radius-sml)",backgroundColor:"var(--f-clr-fg-200)",height:"1px"},".v__isolated .divider":{height:"var(--f-spacing-xsm)"},".item":{borderRadius:"calc(var(--f-radius-sml) + .25em)",backgroundColor:"var(--f-clr-fg-100)",padding:".25em"}});function v({children:c,cc:l={},multiple:s=!1,variant:m="default",...v}){const p=i(f,l),g=a([]),[h,x]=t([]),_=n.toArray(c);return r("div",{...v,className:o(p.accordion,p[`v__${m}`],v.className),children:r(u,{value:{variant:m,open:h,toggle:function(r,e){if(s){const i=g.current.indexOf(r);e?i<0&&g.current.push(r):i>=0&&g.current.splice(i,1)}else g.current=e?[r]:[];x(g.current.slice())}},children:_.map(((i,o)=>e(d,{children:["isolated"===m?r("div",{className:p.item,children:i}):i,o<_.length-1&&r("div",{className:p.divider})]},o)))})})}v.displayName="Accordion.Root";export{u as AccordionContext,v as default,m as useAccordion}; //# sourceMappingURL=root.js.map