UNPKG

@accessible/disclosure

Version:

🅰 An accessible and versatile disclosure component for React

3 lines (2 loc) • 2.81 kB
function e(){return c(N)}function o(e){var{id:o,open:s,defaultOpen:l,onChange:n=t,children:r}=e;o=g(o);var[i,a]=b(l,s,n),c=p(()=>({id:o,open:a.on,close:a.off,toggle:a,isOpen:i}),[o,i,a]);return j(N.Provider,{value:c},r)}function s(o,s){void 0===s&&(s={});var{preventScroll:l,closeOnEscape:n=1,openClass:r,closedClass:i,openStyle:a,closedStyle:t}=s,{id:c,isOpen:p,close:d}=e(),u=O(p);return y(o,!u&&p,{includeRoot:1,preventScroll:l}),m(o,{Escape:()=>n&&d()}),{"aria-hidden":!p,id:c,className:p?r:i,style:Object.assign({visibility:p?"visible":"hidden"},p?a:t)}}function l(e){var{closeOnEscape:o=1,portal:l,openClass:n,closedClass:r,openStyle:i,closedStyle:a,preventScroll:t,children:c}=e,p=d(null),f=c.props,v=s(p,{openClass:k(f.className,n)||void 0,closedClass:k(f.className,r)||void 0,openStyle:f.style?Object.assign({},f.style,i):i,closedStyle:f.style?Object.assign({},f.style,a):a,closeOnEscape:o,preventScroll:t});return function(e,o){if(!o)return e;var s={children:e};return"string"==typeof o?s.container=o:Object.assign(s,o),j(h,s)}(u(c,Object.assign(v,{ref:C(p,c.ref)})),l)}function n(o,s){var{onClick:l}=void 0===s?{}:s,{close:n,isOpen:r,id:i}=e();return Object.assign({"aria-controls":i,"aria-expanded":r,"aria-label":"Close"},S(o,e=>{n(),null==l||l(e)}))}function r(e){var{children:o}=e,s=d(null),l=o.props,r=n(s,{onClick:l.onClick});return u(o,Object.assign(r,{onClick:void 0,"aria-label":l.hasOwnProperty("aria-label")?l["aria-label"]:r["aria-label"],ref:C(s,o.ref)}))}function i(o,s){void 0===s&&(s={});var{openClass:l,closedClass:n,openStyle:r,closedStyle:i,onClick:a}=s,{isOpen:t,id:c,toggle:p}=e(),d=O(t);return y(o,d&&!t,{includeRoot:1}),Object.assign({"aria-controls":c,"aria-expanded":t,className:t?l:n,style:t?r:i},S(o,e=>{p(),null==a||a(e)}))}function a(e){var{openClass:o,closedClass:s,openStyle:l,closedStyle:n,children:r}=e,a=d(null),t=r.props,c=i(a,{openClass:k(t.className,o)||void 0,closedClass:k(t.className,s)||void 0,openStyle:t.style?Object.assign({},t.style,l):l,closedStyle:t.style?Object.assign({},t.style,n):n,onClick:t.onClick});return u(r,Object.assign(c,{onClick:void 0,ref:C(a,r.ref)}))}function t(){}import{useContext as c,useMemo as p,useRef as d,cloneElement as u,createElement as f,createContext as v}from"react";import m from"@accessible/use-key";import y from"@accessible/use-conditional-focus";import b from"@react-hook/switch";import C from"@react-hook/merged-ref";import O from"@react-hook/previous";import g from"@accessible/use-id";import{useA11yButton as S}from"@accessible/button";import h from"react-portalize";import k from"clsx";var j=f,N=v({isOpen:0,open:t,close:t,toggle:t});export{r as CloseButton,o as Disclosure,l as Target,a as Trigger,n as useA11yCloseButton,s as useA11yTarget,i as useA11yTrigger,e as useDisclosure}; //# sourceMappingURL=index.mjs.map