@styleless-ui/react
Version:
Completely unstyled, headless and accessible React UI components.
1 lines • 1.66 kB
JavaScript
;var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e},__assign.apply(this,arguments)},__rest=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});var jsx_runtime_1=require("react/jsx-runtime"),utils_1=require("../utils"),context_1=__importDefault(require("./context")),slots_1=require("./slots"),ExpandableBase=function(e,t){var n=e.onExpandChange,r=e.expanded,a=e.defaultExpanded,s=e.children,o=e.className,i=__rest(e,["onExpandChange","expanded","defaultExpanded","children","className"]),l=(0,utils_1.useControlledProp)(r,a,!1),d=l[0],u=l[1],p="function"==typeof o?o({expanded:d}):o,_="function"==typeof s?s({expanded:d}):s;return(0,jsx_runtime_1.jsx)("div",__assign({},i,{role:"heading",ref:t,className:p,"data-slot":slots_1.Root,"data-expanded":d?"":void 0},{children:(0,jsx_runtime_1.jsx)(context_1.default.Provider,__assign({value:{isExpanded:d,setIsExpanded:u,handleExpandChange:function(e){u(e),null==n||n(e)}}},{children:_}))}))},Expandable=(0,utils_1.componentWithForwardedRef)(ExpandableBase);exports.default=Expandable;