@reach/accordion
Advanced tools
Comparing version 0.10.2 to 0.10.3
@@ -71,5 +71,5 @@ 'use strict'; | ||
var _useDescendants = descendants.useDescendants(), | ||
descendants$1 = _useDescendants[0], | ||
setDescendants = _useDescendants[1]; | ||
var _useDescendantsInit = descendants.useDescendantsInit(), | ||
descendants$1 = _useDescendantsInit[0], | ||
setDescendants = _useDescendantsInit[1]; | ||
@@ -245,6 +245,5 @@ var id = autoId.useId(props.id); // Define our default starting index | ||
var index = descendants.useDescendant({ | ||
context: AccordionDescendantContext, | ||
element: buttonRef.current, | ||
disabled: disabled | ||
}); // We need unique IDs for the panel and button to point to one another | ||
}, AccordionDescendantContext); // We need unique IDs for the panel and button to point to one another | ||
@@ -251,0 +250,0 @@ var itemId = utils.makeId(accordionId, index); |
@@ -1,2 +0,2 @@ | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,n=require("react"),t=(e=n)&&"object"==typeof e&&"default"in e?e.default:e,r=require("@reach/utils"),o=require("@reach/descendants"),a=require("@reach/auto-id");function d(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n.indexOf(t=a[r])>=0||(o[t]=e[t]);return o}require("prop-types");var c,i=o.createDescendantContext("AccordionDescendantContext"),s=r.createNamedContext("AccordionContext",{}),u=r.createNamedContext("AccordionItemContext",{});(c=exports.AccordionStates||(exports.AccordionStates={})).Open="OPEN",c.Collapsed="COLLAPSED";var l=n.forwardRef((function(e,c){var u=e.children,l=e.defaultIndex,f=e.index,p=e.onChange,x=e.readOnly,v=void 0!==x&&x,b=e.collapsible,A=void 0!==b&&b,h=e.multiple,m=void 0!==h&&h,I=d(e,["children","defaultIndex","index","onChange","readOnly","collapsible","multiple"]),C=n.useRef(void 0!==f).current,y=o.useDescendants(),O=y[0],D=y[1],P=a.useId(I.id),S=n.useState((function(){switch(!0){case C:return f;case null!=l:return m?Array.isArray(l)?l:[l]:Array.isArray(l)?null!==(e=l[0])&&void 0!==e?e:0:l;var e;case A:return m?[]:-1;default:return m?[0]:0}})),w=S[0],E=S[1],k=n.useCallback((function(e){p&&p(e),C||E((function(n){return e=e,m?(n=n).includes(e)?n.length>1||A?n.filter((function(n){return n!==e})):n:[].concat(n,[e]).sort():(n=n)===e&&A?-1:e}))}),[A,C,m,p]),g=n.useMemo((function(){return{accordionId:P,openPanels:C?f:w,onSelectPanel:v?r.noop:k,readOnly:v}}),[w,f,P,C,k,v]);return n.useEffect((function(){return r.checkStyles("accordion")}),[]),t.createElement(o.DescendantProvider,{context:i,items:O,set:D},t.createElement(s.Provider,{value:g},t.createElement("div",Object.assign({},I,{ref:c,"data-reach-accordion":""}),u)))})),f=r.forwardRefWithAs((function(e,a){var c=e.as,l=void 0===c?"div":c,f=e.children,p=e.disabled,x=void 0!==p&&p,b=d(e,["as","children","disabled"]),A=n.useContext(s),h=A.accordionId,m=A.openPanels,I=A.readOnly,C=n.useRef(null),y=o.useDescendant({context:i,element:C.current,disabled:x}),O=r.makeId(h,y),D=r.makeId("panel",O),P=r.makeId("button",O),S=(Array.isArray(m)?m.includes(y)&&exports.AccordionStates.Open:m===y&&exports.AccordionStates.Open)||exports.AccordionStates.Collapsed;return t.createElement(u.Provider,{value:{disabled:x,buttonId:P,index:y,itemId:O,buttonRef:C,panelId:D,state:S}},t.createElement(l,Object.assign({},b,{ref:a,"data-reach-accordion-item":"","data-state":v(S),"data-disabled":x?"":void 0,"data-read-only":I?"":void 0}),f))})),p=r.forwardRefWithAs((function(e,a){var c=e.as,l=void 0===c?"button":c,f=e.children,p=e.onClick,x=e.onKeyDown,v=e.tabIndex,b=d(e,["as","children","onClick","onKeyDown","onMouseDown","onPointerDown","tabIndex"]),A=n.useContext(s).onSelectPanel,h=n.useContext(u),m=h.disabled,I=h.buttonId,C=h.buttonRef,y=h.index,O=h.panelId,D=h.state,P=r.useForkedRef(a,C),S=o.useDescendantKeyDown(i,{currentIndex:y,orientation:"vertical",key:"element",rotate:!0,callback:function(e){e&&e.focus()},filter:function(e){return!e.disabled}});return t.createElement(l,Object.assign({"aria-controls":O,"aria-expanded":D===exports.AccordionStates.Open,tabIndex:m?-1:v},b,{ref:P,"data-reach-accordion-button":"",disabled:m||void 0,id:I,onClick:r.wrapEvent(p,(function(e){e.preventDefault(),m||(C.current.focus(),A(y))})),onKeyDown:r.wrapEvent(x,S)}),f)})),x=r.forwardRefWithAs((function(e,r){var o=e.as,a=void 0===o?"div":o,c=e.children,i=d(e,["as","children"]),s=n.useContext(u),l=s.panelId,f=s.state;return t.createElement(a,Object.assign({hidden:f!==exports.AccordionStates.Open,role:"region","aria-labelledby":s.buttonId},i,{ref:r,"data-reach-accordion-panel":"","data-disabled":s.disabled||void 0,"data-state":v(f),id:l,tabIndex:-1}),c)}));function v(e){return e===exports.AccordionStates.Open?"open":"collapsed"}exports.Accordion=l,exports.AccordionButton=p,exports.AccordionItem=f,exports.AccordionPanel=x,exports.useAccordionContext=function(){var e=n.useContext(s),t=e.openPanels,r=e.accordionId;return n.useMemo((function(){return{id:r,openPanels:[].concat(t).filter((function(e){return e<0}))}}),[r,t])},exports.useAccordionItemContext=function(){var e=n.useContext(u),t=e.index,r=e.state;return n.useMemo((function(){return{index:t,isExpanded:r===exports.AccordionStates.Open}}),[t,r])}; | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,n=require("react"),t=(e=n)&&"object"==typeof e&&"default"in e?e.default:e,r=require("@reach/utils"),o=require("@reach/descendants"),a=require("@reach/auto-id");function d(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n.indexOf(t=a[r])>=0||(o[t]=e[t]);return o}require("prop-types");var c,i=o.createDescendantContext("AccordionDescendantContext"),s=r.createNamedContext("AccordionContext",{}),u=r.createNamedContext("AccordionItemContext",{});(c=exports.AccordionStates||(exports.AccordionStates={})).Open="OPEN",c.Collapsed="COLLAPSED";var l=n.forwardRef((function(e,c){var u=e.children,l=e.defaultIndex,f=e.index,p=e.onChange,x=e.readOnly,v=void 0!==x&&x,b=e.collapsible,A=void 0!==b&&b,h=e.multiple,m=void 0!==h&&h,I=d(e,["children","defaultIndex","index","onChange","readOnly","collapsible","multiple"]),C=n.useRef(void 0!==f).current,y=o.useDescendantsInit(),O=y[0],D=y[1],P=a.useId(I.id),S=n.useState((function(){switch(!0){case C:return f;case null!=l:return m?Array.isArray(l)?l:[l]:Array.isArray(l)?null!==(e=l[0])&&void 0!==e?e:0:l;var e;case A:return m?[]:-1;default:return m?[0]:0}})),w=S[0],E=S[1],k=n.useCallback((function(e){p&&p(e),C||E((function(n){return e=e,m?(n=n).includes(e)?n.length>1||A?n.filter((function(n){return n!==e})):n:[].concat(n,[e]).sort():(n=n)===e&&A?-1:e}))}),[A,C,m,p]),g=n.useMemo((function(){return{accordionId:P,openPanels:C?f:w,onSelectPanel:v?r.noop:k,readOnly:v}}),[w,f,P,C,k,v]);return n.useEffect((function(){return r.checkStyles("accordion")}),[]),t.createElement(o.DescendantProvider,{context:i,items:O,set:D},t.createElement(s.Provider,{value:g},t.createElement("div",Object.assign({},I,{ref:c,"data-reach-accordion":""}),u)))})),f=r.forwardRefWithAs((function(e,a){var c=e.as,l=void 0===c?"div":c,f=e.children,p=e.disabled,x=void 0!==p&&p,b=d(e,["as","children","disabled"]),A=n.useContext(s),h=A.accordionId,m=A.openPanels,I=A.readOnly,C=n.useRef(null),y=o.useDescendant({element:C.current,disabled:x},i),O=r.makeId(h,y),D=r.makeId("panel",O),P=r.makeId("button",O),S=(Array.isArray(m)?m.includes(y)&&exports.AccordionStates.Open:m===y&&exports.AccordionStates.Open)||exports.AccordionStates.Collapsed;return t.createElement(u.Provider,{value:{disabled:x,buttonId:P,index:y,itemId:O,buttonRef:C,panelId:D,state:S}},t.createElement(l,Object.assign({},b,{ref:a,"data-reach-accordion-item":"","data-state":v(S),"data-disabled":x?"":void 0,"data-read-only":I?"":void 0}),f))})),p=r.forwardRefWithAs((function(e,a){var c=e.as,l=void 0===c?"button":c,f=e.children,p=e.onClick,x=e.onKeyDown,v=e.tabIndex,b=d(e,["as","children","onClick","onKeyDown","onMouseDown","onPointerDown","tabIndex"]),A=n.useContext(s).onSelectPanel,h=n.useContext(u),m=h.disabled,I=h.buttonId,C=h.buttonRef,y=h.index,O=h.panelId,D=h.state,P=r.useForkedRef(a,C),S=o.useDescendantKeyDown(i,{currentIndex:y,orientation:"vertical",key:"element",rotate:!0,callback:function(e){e&&e.focus()},filter:function(e){return!e.disabled}});return t.createElement(l,Object.assign({"aria-controls":O,"aria-expanded":D===exports.AccordionStates.Open,tabIndex:m?-1:v},b,{ref:P,"data-reach-accordion-button":"",disabled:m||void 0,id:I,onClick:r.wrapEvent(p,(function(e){e.preventDefault(),m||(C.current.focus(),A(y))})),onKeyDown:r.wrapEvent(x,S)}),f)})),x=r.forwardRefWithAs((function(e,r){var o=e.as,a=void 0===o?"div":o,c=e.children,i=d(e,["as","children"]),s=n.useContext(u),l=s.panelId,f=s.state;return t.createElement(a,Object.assign({hidden:f!==exports.AccordionStates.Open,role:"region","aria-labelledby":s.buttonId},i,{ref:r,"data-reach-accordion-panel":"","data-disabled":s.disabled||void 0,"data-state":v(f),id:l,tabIndex:-1}),c)}));function v(e){return e===exports.AccordionStates.Open?"open":"collapsed"}exports.Accordion=l,exports.AccordionButton=p,exports.AccordionItem=f,exports.AccordionPanel=x,exports.useAccordionContext=function(){var e=n.useContext(s),t=e.openPanels,r=e.accordionId;return n.useMemo((function(){return{id:r,openPanels:[].concat(t).filter((function(e){return e<0}))}}),[r,t])},exports.useAccordionItemContext=function(){var e=n.useContext(u),t=e.index,r=e.state;return n.useMemo((function(){return{index:t,isExpanded:r===exports.AccordionStates.Open}}),[t,r])}; | ||
//# sourceMappingURL=accordion.cjs.production.min.js.map |
import React, { forwardRef, useRef, useState, useCallback, useMemo, useEffect, useContext } from 'react'; | ||
import { warning, noop, checkStyles, isNumber, isBoolean, forwardRefWithAs, makeId, useForkedRef, wrapEvent, createNamedContext } from '@reach/utils'; | ||
import { useDescendants, DescendantProvider, useDescendant, useDescendantKeyDown, createDescendantContext } from '@reach/descendants'; | ||
import { useDescendantsInit, DescendantProvider, useDescendant, useDescendantKeyDown, createDescendantContext } from '@reach/descendants'; | ||
import { useId } from '@reach/auto-id'; | ||
@@ -66,5 +66,5 @@ import PropTypes from 'prop-types'; | ||
var _useDescendants = useDescendants(), | ||
descendants = _useDescendants[0], | ||
setDescendants = _useDescendants[1]; | ||
var _useDescendantsInit = useDescendantsInit(), | ||
descendants = _useDescendantsInit[0], | ||
setDescendants = _useDescendantsInit[1]; | ||
@@ -240,6 +240,5 @@ var id = useId(props.id); // Define our default starting index | ||
var index = useDescendant({ | ||
context: AccordionDescendantContext, | ||
element: buttonRef.current, | ||
disabled: disabled | ||
}); // We need unique IDs for the panel and button to point to one another | ||
}, AccordionDescendantContext); // We need unique IDs for the panel and button to point to one another | ||
@@ -246,0 +245,0 @@ var itemId = makeId(accordionId, index); |
{ | ||
"name": "@reach/accordion", | ||
"version": "0.10.2", | ||
"version": "0.10.3", | ||
"description": "Accessible React accordion component", | ||
@@ -16,5 +16,5 @@ "author": "React Training <hello@reacttraining.com>", | ||
"dependencies": { | ||
"@reach/auto-id": "^0.10.2", | ||
"@reach/descendants": "^0.10.2", | ||
"@reach/utils": "^0.10.2", | ||
"@reach/auto-id": "^0.10.3", | ||
"@reach/descendants": "^0.10.3", | ||
"@reach/utils": "^0.10.3", | ||
"tslib": "^1.11.2" | ||
@@ -34,3 +34,3 @@ }, | ||
], | ||
"gitHead": "9e4b9adab7fd3085b1fb4b54882a2231308b7416" | ||
"gitHead": "fd32b2b31a3e50265b0c274654a5e4105847d18e" | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
158124
1100
Updated@reach/auto-id@^0.10.3
Updated@reach/descendants@^0.10.3
Updated@reach/utils@^0.10.3