@fluentui/react-accordion 9.3.56 → 9.3.57

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,19 +1,33 @@
1
1
  # Change Log - @fluentui/react-accordion
2
2
 
3
- This log was last generated on Thu, 23 May 2024 07:57:51 GMT and should not be manually modified.
3
+ This log was last generated on Thu, 06 Jun 2024 15:22:11 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## [9.3.57](https://github.com/microsoft/fluentui/tree/@fluentui/react-accordion_v9.3.57)
8
+
9
+ Thu, 06 Jun 2024 15:22:11 GMT
10
+ [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-accordion_v9.3.56..@fluentui/react-accordion_v9.3.57)
11
+
12
+ ### Patches
13
+
14
+ - chore: ensure only state or defaultState is provided on useControllableState hook invocation ([PR #31461](https://github.com/microsoft/fluentui/pull/31461) by bernardo.sunderhus@gmail.com)
15
+ - Bump @fluentui/react-aria to v9.12.0 ([PR #31586](https://github.com/microsoft/fluentui/pull/31586) by beachball)
16
+ - Bump @fluentui/react-context-selector to v9.1.61 ([PR #31586](https://github.com/microsoft/fluentui/pull/31586) by beachball)
17
+ - Bump @fluentui/react-jsx-runtime to v9.0.39 ([PR #31586](https://github.com/microsoft/fluentui/pull/31586) by beachball)
18
+ - Bump @fluentui/react-tabster to v9.21.5 ([PR #31586](https://github.com/microsoft/fluentui/pull/31586) by beachball)
19
+ - Bump @fluentui/react-utilities to v9.18.10 ([PR #31586](https://github.com/microsoft/fluentui/pull/31586) by beachball)
20
+
7
21
  ## [9.3.56](https://github.com/microsoft/fluentui/tree/@fluentui/react-accordion_v9.3.56)
8
22
 
9
- Thu, 23 May 2024 07:57:51 GMT
23
+ Thu, 23 May 2024 08:02:39 GMT
10
24
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-accordion_v9.3.55..@fluentui/react-accordion_v9.3.56)
11
25
 
12
26
  ### Patches
13
27
 
14
28
  - chore: replace usage of .shorthands() in styles ([PR #31449](https://github.com/microsoft/fluentui/pull/31449) by olfedias@microsoft.com)
15
- - Bump @fluentui/react-aria to v9.11.4 ([commit](https://github.com/microsoft/fluentui/commit/10e6758b203de79c53ce31ba264e137f83f50ff4) by beachball)
16
- - Bump @fluentui/react-tabster to v9.21.4 ([commit](https://github.com/microsoft/fluentui/commit/10e6758b203de79c53ce31ba264e137f83f50ff4) by beachball)
29
+ - Bump @fluentui/react-aria to v9.11.4 ([commit](https://github.com/microsoft/fluentui/commit/03599d609e8310b08c57d1f871cffbf717d79207) by beachball)
30
+ - Bump @fluentui/react-tabster to v9.21.4 ([commit](https://github.com/microsoft/fluentui/commit/03599d609e8310b08c57d1f871cffbf717d79207) by beachball)
17
31
 
18
32
  ## [9.3.55](https://github.com/microsoft/fluentui/tree/@fluentui/react-accordion_v9.3.55)
19
33
 
@@ -11,10 +11,10 @@ import { useArrowNavigationGroup } from '@fluentui/react-tabster';
11
11
  state: React.useMemo(()=>normalizeValues(controlledOpenItems), [
12
12
  controlledOpenItems
13
13
  ]),
14
- defaultState: ()=>initializeUncontrolledOpenItems({
14
+ defaultState: defaultOpenItems && (()=>initializeUncontrolledOpenItems({
15
15
  defaultOpenItems,
16
16
  multiple
17
- }),
17
+ })),
18
18
  initialState: []
19
19
  });
20
20
  const arrowNavigationProps = useArrowNavigationGroup({
@@ -1 +1 @@
1
- {"version":3,"sources":["useAccordion.ts"],"sourcesContent":["import * as React from 'react';\nimport { getIntrinsicElementProps, useControllableState, useEventCallback, slot } from '@fluentui/react-utilities';\nimport type { AccordionProps, AccordionState } from './Accordion.types';\nimport type { AccordionItemValue } from '../AccordionItem/AccordionItem.types';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\nimport { AccordionRequestToggleData } from '../../contexts/accordion';\n\n/**\n * Returns the props and state required to render the component\n * @param props - Accordion properties\n * @param ref - reference to root HTMLElement of Accordion\n */\nexport const useAccordion_unstable = <Value = AccordionItemValue>(\n props: AccordionProps<Value>,\n ref: React.Ref<HTMLElement>,\n): AccordionState<Value> => {\n const {\n openItems: controlledOpenItems,\n defaultOpenItems,\n multiple = false,\n collapsible = false,\n onToggle,\n navigation,\n } = props;\n const [openItems, setOpenItems] = useControllableState({\n state: React.useMemo(() => normalizeValues(controlledOpenItems), [controlledOpenItems]),\n defaultState: () => initializeUncontrolledOpenItems({ defaultOpenItems, multiple }),\n initialState: [],\n });\n\n const arrowNavigationProps = useArrowNavigationGroup({\n circular: navigation === 'circular',\n tabbable: true,\n });\n\n const requestToggle = useEventCallback((data: AccordionRequestToggleData<Value>) => {\n const nextOpenItems = updateOpenItems(data.value, openItems, multiple, collapsible);\n onToggle?.(data.event, { value: data.value, openItems: nextOpenItems });\n setOpenItems(nextOpenItems);\n });\n\n return {\n collapsible,\n multiple,\n navigation,\n openItems,\n requestToggle,\n components: {\n root: 'div',\n },\n root: slot.always(\n getIntrinsicElementProps('div', {\n ...props,\n ...(navigation ? arrowNavigationProps : undefined),\n // FIXME:\n // `ref` is wrongly assigned to be `HTMLElement` instead of `HTMLDivElement`\n // but since it would be a breaking change to fix it, we are casting ref to it's proper type\n ref: ref as React.Ref<HTMLDivElement>,\n }),\n { elementType: 'div' },\n ),\n };\n};\n\n/**\n * Initial value for the uncontrolled case of the list of open indexes\n */\nfunction initializeUncontrolledOpenItems<Value = AccordionItemValue>({\n defaultOpenItems,\n multiple,\n}: Pick<AccordionProps<Value>, 'defaultOpenItems' | 'multiple'>): Value[] {\n if (defaultOpenItems !== undefined) {\n if (Array.isArray(defaultOpenItems)) {\n return multiple ? defaultOpenItems : [defaultOpenItems[0]];\n }\n return [defaultOpenItems];\n }\n return [];\n}\n\n/**\n * Updates the list of open indexes based on an index that changes\n * @param value - the index that will change\n * @param previousOpenItems - list of current open indexes\n * @param multiple - if Accordion support multiple Panels opened at the same time\n * @param collapsible - if Accordion support multiple Panels closed at the same time\n */\nfunction updateOpenItems<Value = AccordionItemValue>(\n value: Value,\n previousOpenItems: Value[],\n multiple: boolean,\n collapsible: boolean,\n) {\n if (multiple) {\n if (previousOpenItems.includes(value)) {\n if (previousOpenItems.length > 1 || collapsible) {\n return previousOpenItems.filter(i => i !== value);\n }\n } else {\n return [...previousOpenItems, value].sort();\n }\n } else {\n return previousOpenItems[0] === value && collapsible ? [] : [value];\n }\n return previousOpenItems;\n}\n\n/**\n * Normalizes Accordion index into an array of indexes\n */\nfunction normalizeValues<Value = AccordionItemValue>(index?: Value | Value[]): Value[] | undefined {\n if (index === undefined) {\n return undefined;\n }\n return Array.isArray(index) ? index : [index];\n}\n"],"names":["React","getIntrinsicElementProps","useControllableState","useEventCallback","slot","useArrowNavigationGroup","useAccordion_unstable","props","ref","openItems","controlledOpenItems","defaultOpenItems","multiple","collapsible","onToggle","navigation","setOpenItems","state","useMemo","normalizeValues","defaultState","initializeUncontrolledOpenItems","initialState","arrowNavigationProps","circular","tabbable","requestToggle","data","nextOpenItems","updateOpenItems","value","event","components","root","always","undefined","elementType","Array","isArray","previousOpenItems","includes","length","filter","i","sort","index"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,wBAAwB,EAAEC,oBAAoB,EAAEC,gBAAgB,EAAEC,IAAI,QAAQ,4BAA4B;AAGnH,SAASC,uBAAuB,QAAQ,0BAA0B;AAGlE;;;;CAIC,GACD,OAAO,MAAMC,wBAAwB,CACnCC,OACAC;IAEA,MAAM,EACJC,WAAWC,mBAAmB,EAC9BC,gBAAgB,EAChBC,WAAW,KAAK,EAChBC,cAAc,KAAK,EACnBC,QAAQ,EACRC,UAAU,EACX,GAAGR;IACJ,MAAM,CAACE,WAAWO,aAAa,GAAGd,qBAAqB;QACrDe,OAAOjB,MAAMkB,OAAO,CAAC,IAAMC,gBAAgBT,sBAAsB;YAACA;SAAoB;QACtFU,cAAc,IAAMC,gCAAgC;gBAAEV;gBAAkBC;YAAS;QACjFU,cAAc,EAAE;IAClB;IAEA,MAAMC,uBAAuBlB,wBAAwB;QACnDmB,UAAUT,eAAe;QACzBU,UAAU;IACZ;IAEA,MAAMC,gBAAgBvB,iBAAiB,CAACwB;QACtC,MAAMC,gBAAgBC,gBAAgBF,KAAKG,KAAK,EAAErB,WAAWG,UAAUC;QACvEC,qBAAAA,+BAAAA,SAAWa,KAAKI,KAAK,EAAE;YAAED,OAAOH,KAAKG,KAAK;YAAErB,WAAWmB;QAAc;QACrEZ,aAAaY;IACf;IAEA,OAAO;QACLf;QACAD;QACAG;QACAN;QACAiB;QACAM,YAAY;YACVC,MAAM;QACR;QACAA,MAAM7B,KAAK8B,MAAM,CACfjC,yBAAyB,OAAO;YAC9B,GAAGM,KAAK;YACR,GAAIQ,aAAaQ,uBAAuBY,SAAS;YACjD,SAAS;YACT,4EAA4E;YAC5E,4FAA4F;YAC5F3B,KAAKA;QACP,IACA;YAAE4B,aAAa;QAAM;IAEzB;AACF,EAAE;AAEF;;CAEC,GACD,SAASf,gCAA4D,EACnEV,gBAAgB,EAChBC,QAAQ,EACqD;IAC7D,IAAID,qBAAqBwB,WAAW;QAClC,IAAIE,MAAMC,OAAO,CAAC3B,mBAAmB;YACnC,OAAOC,WAAWD,mBAAmB;gBAACA,gBAAgB,CAAC,EAAE;aAAC;QAC5D;QACA,OAAO;YAACA;SAAiB;IAC3B;IACA,OAAO,EAAE;AACX;AAEA;;;;;;CAMC,GACD,SAASkB,gBACPC,KAAY,EACZS,iBAA0B,EAC1B3B,QAAiB,EACjBC,WAAoB;IAEpB,IAAID,UAAU;QACZ,IAAI2B,kBAAkBC,QAAQ,CAACV,QAAQ;YACrC,IAAIS,kBAAkBE,MAAM,GAAG,KAAK5B,aAAa;gBAC/C,OAAO0B,kBAAkBG,MAAM,CAACC,CAAAA,IAAKA,MAAMb;YAC7C;QACF,OAAO;YACL,OAAO;mBAAIS;gBAAmBT;aAAM,CAACc,IAAI;QAC3C;IACF,OAAO;QACL,OAAOL,iBAAiB,CAAC,EAAE,KAAKT,SAASjB,cAAc,EAAE,GAAG;YAACiB;SAAM;IACrE;IACA,OAAOS;AACT;AAEA;;CAEC,GACD,SAASpB,gBAA4C0B,KAAuB;IAC1E,IAAIA,UAAUV,WAAW;QACvB,OAAOA;IACT;IACA,OAAOE,MAAMC,OAAO,CAACO,SAASA,QAAQ;QAACA;KAAM;AAC/C"}
1
+ {"version":3,"sources":["useAccordion.ts"],"sourcesContent":["import * as React from 'react';\nimport { getIntrinsicElementProps, useControllableState, useEventCallback, slot } from '@fluentui/react-utilities';\nimport type { AccordionProps, AccordionState } from './Accordion.types';\nimport type { AccordionItemValue } from '../AccordionItem/AccordionItem.types';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\nimport { AccordionRequestToggleData } from '../../contexts/accordion';\n\n/**\n * Returns the props and state required to render the component\n * @param props - Accordion properties\n * @param ref - reference to root HTMLElement of Accordion\n */\nexport const useAccordion_unstable = <Value = AccordionItemValue>(\n props: AccordionProps<Value>,\n ref: React.Ref<HTMLElement>,\n): AccordionState<Value> => {\n const {\n openItems: controlledOpenItems,\n defaultOpenItems,\n multiple = false,\n collapsible = false,\n onToggle,\n navigation,\n } = props;\n const [openItems, setOpenItems] = useControllableState({\n state: React.useMemo(() => normalizeValues(controlledOpenItems), [controlledOpenItems]),\n defaultState: defaultOpenItems && (() => initializeUncontrolledOpenItems({ defaultOpenItems, multiple })),\n initialState: [],\n });\n\n const arrowNavigationProps = useArrowNavigationGroup({\n circular: navigation === 'circular',\n tabbable: true,\n });\n\n const requestToggle = useEventCallback((data: AccordionRequestToggleData<Value>) => {\n const nextOpenItems = updateOpenItems(data.value, openItems, multiple, collapsible);\n onToggle?.(data.event, { value: data.value, openItems: nextOpenItems });\n setOpenItems(nextOpenItems);\n });\n\n return {\n collapsible,\n multiple,\n navigation,\n openItems,\n requestToggle,\n components: {\n root: 'div',\n },\n root: slot.always(\n getIntrinsicElementProps('div', {\n ...props,\n ...(navigation ? arrowNavigationProps : undefined),\n // FIXME:\n // `ref` is wrongly assigned to be `HTMLElement` instead of `HTMLDivElement`\n // but since it would be a breaking change to fix it, we are casting ref to it's proper type\n ref: ref as React.Ref<HTMLDivElement>,\n }),\n { elementType: 'div' },\n ),\n };\n};\n\n/**\n * Initial value for the uncontrolled case of the list of open indexes\n */\nfunction initializeUncontrolledOpenItems<Value = AccordionItemValue>({\n defaultOpenItems,\n multiple,\n}: Pick<AccordionProps<Value>, 'defaultOpenItems' | 'multiple'>): Value[] {\n if (defaultOpenItems !== undefined) {\n if (Array.isArray(defaultOpenItems)) {\n return multiple ? defaultOpenItems : [defaultOpenItems[0]];\n }\n return [defaultOpenItems];\n }\n return [];\n}\n\n/**\n * Updates the list of open indexes based on an index that changes\n * @param value - the index that will change\n * @param previousOpenItems - list of current open indexes\n * @param multiple - if Accordion support multiple Panels opened at the same time\n * @param collapsible - if Accordion support multiple Panels closed at the same time\n */\nfunction updateOpenItems<Value = AccordionItemValue>(\n value: Value,\n previousOpenItems: Value[],\n multiple: boolean,\n collapsible: boolean,\n) {\n if (multiple) {\n if (previousOpenItems.includes(value)) {\n if (previousOpenItems.length > 1 || collapsible) {\n return previousOpenItems.filter(i => i !== value);\n }\n } else {\n return [...previousOpenItems, value].sort();\n }\n } else {\n return previousOpenItems[0] === value && collapsible ? [] : [value];\n }\n return previousOpenItems;\n}\n\n/**\n * Normalizes Accordion index into an array of indexes\n */\nfunction normalizeValues<Value = AccordionItemValue>(index?: Value | Value[]): Value[] | undefined {\n if (index === undefined) {\n return undefined;\n }\n return Array.isArray(index) ? index : [index];\n}\n"],"names":["React","getIntrinsicElementProps","useControllableState","useEventCallback","slot","useArrowNavigationGroup","useAccordion_unstable","props","ref","openItems","controlledOpenItems","defaultOpenItems","multiple","collapsible","onToggle","navigation","setOpenItems","state","useMemo","normalizeValues","defaultState","initializeUncontrolledOpenItems","initialState","arrowNavigationProps","circular","tabbable","requestToggle","data","nextOpenItems","updateOpenItems","value","event","components","root","always","undefined","elementType","Array","isArray","previousOpenItems","includes","length","filter","i","sort","index"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,wBAAwB,EAAEC,oBAAoB,EAAEC,gBAAgB,EAAEC,IAAI,QAAQ,4BAA4B;AAGnH,SAASC,uBAAuB,QAAQ,0BAA0B;AAGlE;;;;CAIC,GACD,OAAO,MAAMC,wBAAwB,CACnCC,OACAC;IAEA,MAAM,EACJC,WAAWC,mBAAmB,EAC9BC,gBAAgB,EAChBC,WAAW,KAAK,EAChBC,cAAc,KAAK,EACnBC,QAAQ,EACRC,UAAU,EACX,GAAGR;IACJ,MAAM,CAACE,WAAWO,aAAa,GAAGd,qBAAqB;QACrDe,OAAOjB,MAAMkB,OAAO,CAAC,IAAMC,gBAAgBT,sBAAsB;YAACA;SAAoB;QACtFU,cAAcT,oBAAqB,CAAA,IAAMU,gCAAgC;gBAAEV;gBAAkBC;YAAS,EAAC;QACvGU,cAAc,EAAE;IAClB;IAEA,MAAMC,uBAAuBlB,wBAAwB;QACnDmB,UAAUT,eAAe;QACzBU,UAAU;IACZ;IAEA,MAAMC,gBAAgBvB,iBAAiB,CAACwB;QACtC,MAAMC,gBAAgBC,gBAAgBF,KAAKG,KAAK,EAAErB,WAAWG,UAAUC;QACvEC,qBAAAA,+BAAAA,SAAWa,KAAKI,KAAK,EAAE;YAAED,OAAOH,KAAKG,KAAK;YAAErB,WAAWmB;QAAc;QACrEZ,aAAaY;IACf;IAEA,OAAO;QACLf;QACAD;QACAG;QACAN;QACAiB;QACAM,YAAY;YACVC,MAAM;QACR;QACAA,MAAM7B,KAAK8B,MAAM,CACfjC,yBAAyB,OAAO;YAC9B,GAAGM,KAAK;YACR,GAAIQ,aAAaQ,uBAAuBY,SAAS;YACjD,SAAS;YACT,4EAA4E;YAC5E,4FAA4F;YAC5F3B,KAAKA;QACP,IACA;YAAE4B,aAAa;QAAM;IAEzB;AACF,EAAE;AAEF;;CAEC,GACD,SAASf,gCAA4D,EACnEV,gBAAgB,EAChBC,QAAQ,EACqD;IAC7D,IAAID,qBAAqBwB,WAAW;QAClC,IAAIE,MAAMC,OAAO,CAAC3B,mBAAmB;YACnC,OAAOC,WAAWD,mBAAmB;gBAACA,gBAAgB,CAAC,EAAE;aAAC;QAC5D;QACA,OAAO;YAACA;SAAiB;IAC3B;IACA,OAAO,EAAE;AACX;AAEA;;;;;;CAMC,GACD,SAASkB,gBACPC,KAAY,EACZS,iBAA0B,EAC1B3B,QAAiB,EACjBC,WAAoB;IAEpB,IAAID,UAAU;QACZ,IAAI2B,kBAAkBC,QAAQ,CAACV,QAAQ;YACrC,IAAIS,kBAAkBE,MAAM,GAAG,KAAK5B,aAAa;gBAC/C,OAAO0B,kBAAkBG,MAAM,CAACC,CAAAA,IAAKA,MAAMb;YAC7C;QACF,OAAO;YACL,OAAO;mBAAIS;gBAAmBT;aAAM,CAACc,IAAI;QAC3C;IACF,OAAO;QACL,OAAOL,iBAAiB,CAAC,EAAE,KAAKT,SAASjB,cAAc,EAAE,GAAG;YAACiB;SAAM;IACrE;IACA,OAAOS;AACT;AAEA;;CAEC,GACD,SAASpB,gBAA4C0B,KAAuB;IAC1E,IAAIA,UAAUV,WAAW;QACvB,OAAOA;IACT;IACA,OAAOE,MAAMC,OAAO,CAACO,SAASA,QAAQ;QAACA;KAAM;AAC/C"}
@@ -18,10 +18,10 @@ const useAccordion_unstable = (props, ref)=>{
18
18
  state: _react.useMemo(()=>normalizeValues(controlledOpenItems), [
19
19
  controlledOpenItems
20
20
  ]),
21
- defaultState: ()=>initializeUncontrolledOpenItems({
21
+ defaultState: defaultOpenItems && (()=>initializeUncontrolledOpenItems({
22
22
  defaultOpenItems,
23
23
  multiple
24
- }),
24
+ })),
25
25
  initialState: []
26
26
  });
27
27
  const arrowNavigationProps = (0, _reacttabster.useArrowNavigationGroup)({
@@ -1 +1 @@
1
- {"version":3,"sources":["useAccordion.js"],"sourcesContent":["import * as React from 'react';\nimport { getIntrinsicElementProps, useControllableState, useEventCallback, slot } from '@fluentui/react-utilities';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\n/**\n * Returns the props and state required to render the component\n * @param props - Accordion properties\n * @param ref - reference to root HTMLElement of Accordion\n */ export const useAccordion_unstable = (props, ref)=>{\n const { openItems: controlledOpenItems, defaultOpenItems, multiple = false, collapsible = false, onToggle, navigation } = props;\n const [openItems, setOpenItems] = useControllableState({\n state: React.useMemo(()=>normalizeValues(controlledOpenItems), [\n controlledOpenItems\n ]),\n defaultState: ()=>initializeUncontrolledOpenItems({\n defaultOpenItems,\n multiple\n }),\n initialState: []\n });\n const arrowNavigationProps = useArrowNavigationGroup({\n circular: navigation === 'circular',\n tabbable: true\n });\n const requestToggle = useEventCallback((data)=>{\n const nextOpenItems = updateOpenItems(data.value, openItems, multiple, collapsible);\n onToggle === null || onToggle === void 0 ? void 0 : onToggle(data.event, {\n value: data.value,\n openItems: nextOpenItems\n });\n setOpenItems(nextOpenItems);\n });\n return {\n collapsible,\n multiple,\n navigation,\n openItems,\n requestToggle,\n components: {\n root: 'div'\n },\n root: slot.always(getIntrinsicElementProps('div', {\n ...props,\n ...navigation ? arrowNavigationProps : undefined,\n // FIXME:\n // `ref` is wrongly assigned to be `HTMLElement` instead of `HTMLDivElement`\n // but since it would be a breaking change to fix it, we are casting ref to it's proper type\n ref: ref\n }), {\n elementType: 'div'\n })\n };\n};\n/**\n * Initial value for the uncontrolled case of the list of open indexes\n */ function initializeUncontrolledOpenItems({ defaultOpenItems, multiple }) {\n if (defaultOpenItems !== undefined) {\n if (Array.isArray(defaultOpenItems)) {\n return multiple ? defaultOpenItems : [\n defaultOpenItems[0]\n ];\n }\n return [\n defaultOpenItems\n ];\n }\n return [];\n}\n/**\n * Updates the list of open indexes based on an index that changes\n * @param value - the index that will change\n * @param previousOpenItems - list of current open indexes\n * @param multiple - if Accordion support multiple Panels opened at the same time\n * @param collapsible - if Accordion support multiple Panels closed at the same time\n */ function updateOpenItems(value, previousOpenItems, multiple, collapsible) {\n if (multiple) {\n if (previousOpenItems.includes(value)) {\n if (previousOpenItems.length > 1 || collapsible) {\n return previousOpenItems.filter((i)=>i !== value);\n }\n } else {\n return [\n ...previousOpenItems,\n value\n ].sort();\n }\n } else {\n return previousOpenItems[0] === value && collapsible ? [] : [\n value\n ];\n }\n return previousOpenItems;\n}\n/**\n * Normalizes Accordion index into an array of indexes\n */ function normalizeValues(index) {\n if (index === undefined) {\n return undefined;\n }\n return Array.isArray(index) ? index : [\n index\n ];\n}\n"],"names":["useAccordion_unstable","props","ref","openItems","controlledOpenItems","defaultOpenItems","multiple","collapsible","onToggle","navigation","setOpenItems","useControllableState","state","React","useMemo","normalizeValues","defaultState","initializeUncontrolledOpenItems","initialState","arrowNavigationProps","useArrowNavigationGroup","circular","tabbable","requestToggle","useEventCallback","data","nextOpenItems","updateOpenItems","value","event","components","root","slot","always","getIntrinsicElementProps","undefined","elementType","Array","isArray","previousOpenItems","includes","length","filter","i","sort","index"],"mappings":";;;;+BAOiBA;;;eAAAA;;;;iEAPM;gCACgE;8BAC/C;AAK7B,MAAMA,wBAAwB,CAACC,OAAOC;IAC7C,MAAM,EAAEC,WAAWC,mBAAmB,EAAEC,gBAAgB,EAAEC,WAAW,KAAK,EAAEC,cAAc,KAAK,EAAEC,QAAQ,EAAEC,UAAU,EAAE,GAAGR;IAC1H,MAAM,CAACE,WAAWO,aAAa,GAAGC,IAAAA,oCAAoB,EAAC;QACnDC,OAAOC,OAAMC,OAAO,CAAC,IAAIC,gBAAgBX,sBAAsB;YAC3DA;SACH;QACDY,cAAc,IAAIC,gCAAgC;gBAC1CZ;gBACAC;YACJ;QACJY,cAAc,EAAE;IACpB;IACA,MAAMC,uBAAuBC,IAAAA,qCAAuB,EAAC;QACjDC,UAAUZ,eAAe;QACzBa,UAAU;IACd;IACA,MAAMC,gBAAgBC,IAAAA,gCAAgB,EAAC,CAACC;QACpC,MAAMC,gBAAgBC,gBAAgBF,KAAKG,KAAK,EAAEzB,WAAWG,UAAUC;QACvEC,aAAa,QAAQA,aAAa,KAAK,IAAI,KAAK,IAAIA,SAASiB,KAAKI,KAAK,EAAE;YACrED,OAAOH,KAAKG,KAAK;YACjBzB,WAAWuB;QACf;QACAhB,aAAagB;IACjB;IACA,OAAO;QACHnB;QACAD;QACAG;QACAN;QACAoB;QACAO,YAAY;YACRC,MAAM;QACV;QACAA,MAAMC,oBAAI,CAACC,MAAM,CAACC,IAAAA,wCAAwB,EAAC,OAAO;YAC9C,GAAGjC,KAAK;YACR,GAAGQ,aAAaU,uBAAuBgB,SAAS;YAChD,SAAS;YACT,4EAA4E;YAC5E,4FAA4F;YAC5FjC,KAAKA;QACT,IAAI;YACAkC,aAAa;QACjB;IACJ;AACJ;AACA;;CAEC,GAAG,SAASnB,gCAAgC,EAAEZ,gBAAgB,EAAEC,QAAQ,EAAE;IACvE,IAAID,qBAAqB8B,WAAW;QAChC,IAAIE,MAAMC,OAAO,CAACjC,mBAAmB;YACjC,OAAOC,WAAWD,mBAAmB;gBACjCA,gBAAgB,CAAC,EAAE;aACtB;QACL;QACA,OAAO;YACHA;SACH;IACL;IACA,OAAO,EAAE;AACb;AACA;;;;;;CAMC,GAAG,SAASsB,gBAAgBC,KAAK,EAAEW,iBAAiB,EAAEjC,QAAQ,EAAEC,WAAW;IACxE,IAAID,UAAU;QACV,IAAIiC,kBAAkBC,QAAQ,CAACZ,QAAQ;YACnC,IAAIW,kBAAkBE,MAAM,GAAG,KAAKlC,aAAa;gBAC7C,OAAOgC,kBAAkBG,MAAM,CAAC,CAACC,IAAIA,MAAMf;YAC/C;QACJ,OAAO;YACH,OAAO;mBACAW;gBACHX;aACH,CAACgB,IAAI;QACV;IACJ,OAAO;QACH,OAAOL,iBAAiB,CAAC,EAAE,KAAKX,SAASrB,cAAc,EAAE,GAAG;YACxDqB;SACH;IACL;IACA,OAAOW;AACX;AACA;;CAEC,GAAG,SAASxB,gBAAgB8B,KAAK;IAC9B,IAAIA,UAAUV,WAAW;QACrB,OAAOA;IACX;IACA,OAAOE,MAAMC,OAAO,CAACO,SAASA,QAAQ;QAClCA;KACH;AACL"}
1
+ {"version":3,"sources":["useAccordion.js"],"sourcesContent":["import * as React from 'react';\nimport { getIntrinsicElementProps, useControllableState, useEventCallback, slot } from '@fluentui/react-utilities';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\n/**\n * Returns the props and state required to render the component\n * @param props - Accordion properties\n * @param ref - reference to root HTMLElement of Accordion\n */ export const useAccordion_unstable = (props, ref)=>{\n const { openItems: controlledOpenItems, defaultOpenItems, multiple = false, collapsible = false, onToggle, navigation } = props;\n const [openItems, setOpenItems] = useControllableState({\n state: React.useMemo(()=>normalizeValues(controlledOpenItems), [\n controlledOpenItems\n ]),\n defaultState: defaultOpenItems && (()=>initializeUncontrolledOpenItems({\n defaultOpenItems,\n multiple\n })),\n initialState: []\n });\n const arrowNavigationProps = useArrowNavigationGroup({\n circular: navigation === 'circular',\n tabbable: true\n });\n const requestToggle = useEventCallback((data)=>{\n const nextOpenItems = updateOpenItems(data.value, openItems, multiple, collapsible);\n onToggle === null || onToggle === void 0 ? void 0 : onToggle(data.event, {\n value: data.value,\n openItems: nextOpenItems\n });\n setOpenItems(nextOpenItems);\n });\n return {\n collapsible,\n multiple,\n navigation,\n openItems,\n requestToggle,\n components: {\n root: 'div'\n },\n root: slot.always(getIntrinsicElementProps('div', {\n ...props,\n ...navigation ? arrowNavigationProps : undefined,\n // FIXME:\n // `ref` is wrongly assigned to be `HTMLElement` instead of `HTMLDivElement`\n // but since it would be a breaking change to fix it, we are casting ref to it's proper type\n ref: ref\n }), {\n elementType: 'div'\n })\n };\n};\n/**\n * Initial value for the uncontrolled case of the list of open indexes\n */ function initializeUncontrolledOpenItems({ defaultOpenItems, multiple }) {\n if (defaultOpenItems !== undefined) {\n if (Array.isArray(defaultOpenItems)) {\n return multiple ? defaultOpenItems : [\n defaultOpenItems[0]\n ];\n }\n return [\n defaultOpenItems\n ];\n }\n return [];\n}\n/**\n * Updates the list of open indexes based on an index that changes\n * @param value - the index that will change\n * @param previousOpenItems - list of current open indexes\n * @param multiple - if Accordion support multiple Panels opened at the same time\n * @param collapsible - if Accordion support multiple Panels closed at the same time\n */ function updateOpenItems(value, previousOpenItems, multiple, collapsible) {\n if (multiple) {\n if (previousOpenItems.includes(value)) {\n if (previousOpenItems.length > 1 || collapsible) {\n return previousOpenItems.filter((i)=>i !== value);\n }\n } else {\n return [\n ...previousOpenItems,\n value\n ].sort();\n }\n } else {\n return previousOpenItems[0] === value && collapsible ? [] : [\n value\n ];\n }\n return previousOpenItems;\n}\n/**\n * Normalizes Accordion index into an array of indexes\n */ function normalizeValues(index) {\n if (index === undefined) {\n return undefined;\n }\n return Array.isArray(index) ? index : [\n index\n ];\n}\n"],"names":["useAccordion_unstable","props","ref","openItems","controlledOpenItems","defaultOpenItems","multiple","collapsible","onToggle","navigation","setOpenItems","useControllableState","state","React","useMemo","normalizeValues","defaultState","initializeUncontrolledOpenItems","initialState","arrowNavigationProps","useArrowNavigationGroup","circular","tabbable","requestToggle","useEventCallback","data","nextOpenItems","updateOpenItems","value","event","components","root","slot","always","getIntrinsicElementProps","undefined","elementType","Array","isArray","previousOpenItems","includes","length","filter","i","sort","index"],"mappings":";;;;+BAOiBA;;;eAAAA;;;;iEAPM;gCACgE;8BAC/C;AAK7B,MAAMA,wBAAwB,CAACC,OAAOC;IAC7C,MAAM,EAAEC,WAAWC,mBAAmB,EAAEC,gBAAgB,EAAEC,WAAW,KAAK,EAAEC,cAAc,KAAK,EAAEC,QAAQ,EAAEC,UAAU,EAAE,GAAGR;IAC1H,MAAM,CAACE,WAAWO,aAAa,GAAGC,IAAAA,oCAAoB,EAAC;QACnDC,OAAOC,OAAMC,OAAO,CAAC,IAAIC,gBAAgBX,sBAAsB;YAC3DA;SACH;QACDY,cAAcX,oBAAqB,CAAA,IAAIY,gCAAgC;gBAC/DZ;gBACAC;YACJ,EAAC;QACLY,cAAc,EAAE;IACpB;IACA,MAAMC,uBAAuBC,IAAAA,qCAAuB,EAAC;QACjDC,UAAUZ,eAAe;QACzBa,UAAU;IACd;IACA,MAAMC,gBAAgBC,IAAAA,gCAAgB,EAAC,CAACC;QACpC,MAAMC,gBAAgBC,gBAAgBF,KAAKG,KAAK,EAAEzB,WAAWG,UAAUC;QACvEC,aAAa,QAAQA,aAAa,KAAK,IAAI,KAAK,IAAIA,SAASiB,KAAKI,KAAK,EAAE;YACrED,OAAOH,KAAKG,KAAK;YACjBzB,WAAWuB;QACf;QACAhB,aAAagB;IACjB;IACA,OAAO;QACHnB;QACAD;QACAG;QACAN;QACAoB;QACAO,YAAY;YACRC,MAAM;QACV;QACAA,MAAMC,oBAAI,CAACC,MAAM,CAACC,IAAAA,wCAAwB,EAAC,OAAO;YAC9C,GAAGjC,KAAK;YACR,GAAGQ,aAAaU,uBAAuBgB,SAAS;YAChD,SAAS;YACT,4EAA4E;YAC5E,4FAA4F;YAC5FjC,KAAKA;QACT,IAAI;YACAkC,aAAa;QACjB;IACJ;AACJ;AACA;;CAEC,GAAG,SAASnB,gCAAgC,EAAEZ,gBAAgB,EAAEC,QAAQ,EAAE;IACvE,IAAID,qBAAqB8B,WAAW;QAChC,IAAIE,MAAMC,OAAO,CAACjC,mBAAmB;YACjC,OAAOC,WAAWD,mBAAmB;gBACjCA,gBAAgB,CAAC,EAAE;aACtB;QACL;QACA,OAAO;YACHA;SACH;IACL;IACA,OAAO,EAAE;AACb;AACA;;;;;;CAMC,GAAG,SAASsB,gBAAgBC,KAAK,EAAEW,iBAAiB,EAAEjC,QAAQ,EAAEC,WAAW;IACxE,IAAID,UAAU;QACV,IAAIiC,kBAAkBC,QAAQ,CAACZ,QAAQ;YACnC,IAAIW,kBAAkBE,MAAM,GAAG,KAAKlC,aAAa;gBAC7C,OAAOgC,kBAAkBG,MAAM,CAAC,CAACC,IAAIA,MAAMf;YAC/C;QACJ,OAAO;YACH,OAAO;mBACAW;gBACHX;aACH,CAACgB,IAAI;QACV;IACJ,OAAO;QACH,OAAOL,iBAAiB,CAAC,EAAE,KAAKX,SAASrB,cAAc,EAAE,GAAG;YACxDqB;SACH;IACL;IACA,OAAOW;AACX;AACA;;CAEC,GAAG,SAASxB,gBAAgB8B,KAAK;IAC9B,IAAIA,UAAUV,WAAW;QACrB,OAAOA;IACX;IACA,OAAOE,MAAMC,OAAO,CAACO,SAASA,QAAQ;QAClCA;KACH;AACL"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluentui/react-accordion",
3
- "version": "9.3.56",
3
+ "version": "9.3.57",
4
4
  "description": "Fluent UI accordion component",
5
5
  "main": "lib-commonjs/index.js",
6
6
  "module": "lib/index.js",
@@ -33,14 +33,14 @@
33
33
  "@fluentui/scripts-tasks": "*"
34
34
  },
35
35
  "dependencies": {
36
- "@fluentui/react-aria": "^9.11.4",
37
- "@fluentui/react-context-selector": "^9.1.60",
36
+ "@fluentui/react-aria": "^9.12.0",
37
+ "@fluentui/react-context-selector": "^9.1.61",
38
38
  "@fluentui/react-icons": "^2.0.239",
39
- "@fluentui/react-jsx-runtime": "^9.0.38",
39
+ "@fluentui/react-jsx-runtime": "^9.0.39",
40
40
  "@fluentui/react-shared-contexts": "^9.19.0",
41
- "@fluentui/react-tabster": "^9.21.4",
41
+ "@fluentui/react-tabster": "^9.21.5",
42
42
  "@fluentui/react-theme": "^9.1.19",
43
- "@fluentui/react-utilities": "^9.18.9",
43
+ "@fluentui/react-utilities": "^9.18.10",
44
44
  "@griffel/react": "^1.5.22",
45
45
  "@swc/helpers": "^0.5.1"
46
46
  },