@fluentui/react-context-selector 9.2.16 → 9.2.17

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,18 +1,27 @@
1
1
  # Change Log - @fluentui/react-context-selector
2
2
 
3
- This log was last generated on Thu, 23 Apr 2026 11:59:42 GMT and should not be manually modified.
3
+ This log was last generated on Tue, 26 May 2026 09:34:16 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## [9.2.17](https://github.com/microsoft/fluentui/tree/@fluentui/react-context-selector_v9.2.17)
8
+
9
+ Tue, 26 May 2026 09:34:16 GMT
10
+ [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-context-selector_v9.2.16..@fluentui/react-context-selector_v9.2.17)
11
+
12
+ ### Patches
13
+
14
+ - Bump @fluentui/react-utilities to v9.26.4 ([PR #36246](https://github.com/microsoft/fluentui/pull/36246) by beachball)
15
+
7
16
  ## [9.2.16](https://github.com/microsoft/fluentui/tree/@fluentui/react-context-selector_v9.2.16)
8
17
 
9
- Thu, 23 Apr 2026 11:59:42 GMT
18
+ Thu, 23 Apr 2026 14:21:04 GMT
10
19
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-context-selector_v9.2.15..@fluentui/react-context-selector_v9.2.16)
11
20
 
12
21
  ### Patches
13
22
 
14
23
  - fix: rewrite useContextSelector to avoid React's eager-bailout pitfall on memoized consumers ([PR #36002](https://github.com/microsoft/fluentui/pull/36002) by olfedias@microsoft.com)
15
- - Bump @fluentui/react-utilities to v9.26.3 ([PR #35996](https://github.com/microsoft/fluentui/pull/35996) by beachball)
24
+ - Bump @fluentui/react-utilities to v9.26.3 ([PR #36035](https://github.com/microsoft/fluentui/pull/36035) by beachball)
16
25
 
17
26
  ## [9.2.15](https://github.com/microsoft/fluentui/tree/@fluentui/react-context-selector_v9.2.15)
18
27
 
@@ -13,6 +13,7 @@ import * as React from 'react';
13
13
  // Read valueRef during render and return selector(value) directly. This is analogous to `useSyncExternalStore`'s
14
14
  // `getSnapshot` and is the only way to select a slice from a shared ref-based store without re-rendering every
15
15
  // consumer on every provider update.
16
+ // eslint-disable-next-line react-hooks/refs
16
17
  const valueAtRender = selectorFn(valueRef.current);
17
18
  const [, forceUpdate] = React.useReducer((x)=>x + 1, 0);
18
19
  // Refs holding the current selector and the most-recently-returned slice.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/useContextSelector.ts"],"sourcesContent":["'use client';\n\nimport { useIsomorphicLayoutEffect } from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nimport type { Context, ContextSelector, ContextValue } from './types';\n\n/**\n * This hook returns context selected value by selector.\n * It will only accept context created by `createContext`.\n * It will trigger re-render if only the selected value is referentially changed.\n *\n * @internal\n */\nexport const useContextSelector = <Value, SelectedValue>(\n context: Context<Value>,\n selectorFn: ContextSelector<Value, SelectedValue>,\n): SelectedValue => {\n const contextValue = React.useContext(context as unknown as Context<ContextValue<Value>>);\n const { value: valueRef, listeners } = contextValue;\n\n // Read valueRef during render and return selector(value) directly. This is analogous to `useSyncExternalStore`'s\n // `getSnapshot` and is the only way to select a slice from a shared ref-based store without re-rendering every\n // consumer on every provider update.\n const valueAtRender = selectorFn(valueRef.current);\n const [, forceUpdate] = React.useReducer((x: number) => x + 1, 0);\n\n // Refs holding the current selector and the most-recently-returned slice.\n // Updated in a layout effect (ordering: children first, then provider) so\n // they are current by the time the provider's listener loop fires.\n const selectorFnRef = React.useRef<ContextSelector<Value, SelectedValue>>(selectorFn);\n const lastValueAtRender = React.useRef<SelectedValue>(valueAtRender);\n\n useIsomorphicLayoutEffect(() => {\n selectorFnRef.current = selectorFn;\n lastValueAtRender.current = valueAtRender;\n });\n\n useIsomorphicLayoutEffect(() => {\n const listener = (payload: Value) => {\n // Selectors can throw on transiently-inconsistent inputs (stale props vs. newer context value). Swallow so a\n // single consumer's throw doesn't abort the provider's `listeners.forEach`.\n try {\n const nextSelectedValue = selectorFnRef.current(payload);\n\n if (!Object.is(lastValueAtRender.current, nextSelectedValue)) {\n forceUpdate();\n }\n } catch {\n // ignored (stale props or similar — heals on the next parent-driven render)\n }\n };\n\n listeners.push(listener);\n\n // Effect-fixup: catch updates that occurred between render and effect run (Relay's useFragmentInternal pattern).\n listener(valueRef.current);\n\n return () => {\n const index = listeners.indexOf(listener);\n\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n };\n }, [listeners, valueRef]);\n\n return valueAtRender;\n};\n"],"names":["useIsomorphicLayoutEffect","React","useContextSelector","context","selectorFn","contextValue","useContext","value","valueRef","listeners","valueAtRender","current","forceUpdate","useReducer","x","selectorFnRef","useRef","lastValueAtRender","listener","payload","nextSelectedValue","Object","is","push","index","indexOf","splice"],"mappings":"AAAA;AAEA,SAASA,yBAAyB,QAAQ,4BAA4B;AACtE,YAAYC,WAAW,QAAQ;AAI/B;;;;;;CAMC,GACD,OAAO,MAAMC,qBAAqB,CAChCC,SACAC;IAEA,MAAMC,eAAeJ,MAAMK,UAAU,CAACH;IACtC,MAAM,EAAEI,OAAOC,QAAQ,EAAEC,SAAS,EAAE,GAAGJ;IAEvC,iHAAiH;IACjH,+GAA+G;IAC/G,qCAAqC;IACrC,MAAMK,gBAAgBN,WAAWI,SAASG,OAAO;IACjD,MAAM,GAAGC,YAAY,GAAGX,MAAMY,UAAU,CAAC,CAACC,IAAcA,IAAI,GAAG;IAE/D,0EAA0E;IAC1E,0EAA0E;IAC1E,mEAAmE;IACnE,MAAMC,gBAAgBd,MAAMe,MAAM,CAAwCZ;IAC1E,MAAMa,oBAAoBhB,MAAMe,MAAM,CAAgBN;IAEtDV,0BAA0B;QACxBe,cAAcJ,OAAO,GAAGP;QACxBa,kBAAkBN,OAAO,GAAGD;IAC9B;IAEAV,0BAA0B;QACxB,MAAMkB,WAAW,CAACC;YAChB,6GAA6G;YAC7G,4EAA4E;YAC5E,IAAI;gBACF,MAAMC,oBAAoBL,cAAcJ,OAAO,CAACQ;gBAEhD,IAAI,CAACE,OAAOC,EAAE,CAACL,kBAAkBN,OAAO,EAAES,oBAAoB;oBAC5DR;gBACF;YACF,EAAE,OAAM;YACN,4EAA4E;YAC9E;QACF;QAEAH,UAAUc,IAAI,CAACL;QAEf,iHAAiH;QACjHA,SAASV,SAASG,OAAO;QAEzB,OAAO;YACL,MAAMa,QAAQf,UAAUgB,OAAO,CAACP;YAEhC,IAAIM,UAAU,CAAC,GAAG;gBAChBf,UAAUiB,MAAM,CAACF,OAAO;YAC1B;QACF;IACF,GAAG;QAACf;QAAWD;KAAS;IAExB,OAAOE;AACT,EAAE"}
1
+ {"version":3,"sources":["../src/useContextSelector.ts"],"sourcesContent":["'use client';\n\nimport { useIsomorphicLayoutEffect } from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nimport type { Context, ContextSelector, ContextValue } from './types';\n\n/**\n * This hook returns context selected value by selector.\n * It will only accept context created by `createContext`.\n * It will trigger re-render if only the selected value is referentially changed.\n *\n * @internal\n */\nexport const useContextSelector = <Value, SelectedValue>(\n context: Context<Value>,\n selectorFn: ContextSelector<Value, SelectedValue>,\n): SelectedValue => {\n const contextValue = React.useContext(context as unknown as Context<ContextValue<Value>>);\n const { value: valueRef, listeners } = contextValue;\n\n // Read valueRef during render and return selector(value) directly. This is analogous to `useSyncExternalStore`'s\n // `getSnapshot` and is the only way to select a slice from a shared ref-based store without re-rendering every\n // consumer on every provider update.\n // eslint-disable-next-line react-hooks/refs\n const valueAtRender = selectorFn(valueRef.current);\n const [, forceUpdate] = React.useReducer((x: number) => x + 1, 0);\n\n // Refs holding the current selector and the most-recently-returned slice.\n // Updated in a layout effect (ordering: children first, then provider) so\n // they are current by the time the provider's listener loop fires.\n const selectorFnRef = React.useRef<ContextSelector<Value, SelectedValue>>(selectorFn);\n const lastValueAtRender = React.useRef<SelectedValue>(valueAtRender);\n\n useIsomorphicLayoutEffect(() => {\n selectorFnRef.current = selectorFn;\n lastValueAtRender.current = valueAtRender;\n });\n\n useIsomorphicLayoutEffect(() => {\n const listener = (payload: Value) => {\n // Selectors can throw on transiently-inconsistent inputs (stale props vs. newer context value). Swallow so a\n // single consumer's throw doesn't abort the provider's `listeners.forEach`.\n try {\n const nextSelectedValue = selectorFnRef.current(payload);\n\n if (!Object.is(lastValueAtRender.current, nextSelectedValue)) {\n forceUpdate();\n }\n } catch {\n // ignored (stale props or similar — heals on the next parent-driven render)\n }\n };\n\n listeners.push(listener);\n\n // Effect-fixup: catch updates that occurred between render and effect run (Relay's useFragmentInternal pattern).\n listener(valueRef.current);\n\n return () => {\n const index = listeners.indexOf(listener);\n\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n };\n }, [listeners, valueRef]);\n\n return valueAtRender;\n};\n"],"names":["useIsomorphicLayoutEffect","React","useContextSelector","context","selectorFn","contextValue","useContext","value","valueRef","listeners","valueAtRender","current","forceUpdate","useReducer","x","selectorFnRef","useRef","lastValueAtRender","listener","payload","nextSelectedValue","Object","is","push","index","indexOf","splice"],"mappings":"AAAA;AAEA,SAASA,yBAAyB,QAAQ,4BAA4B;AACtE,YAAYC,WAAW,QAAQ;AAI/B;;;;;;CAMC,GACD,OAAO,MAAMC,qBAAqB,CAChCC,SACAC;IAEA,MAAMC,eAAeJ,MAAMK,UAAU,CAACH;IACtC,MAAM,EAAEI,OAAOC,QAAQ,EAAEC,SAAS,EAAE,GAAGJ;IAEvC,iHAAiH;IACjH,+GAA+G;IAC/G,qCAAqC;IACrC,4CAA4C;IAC5C,MAAMK,gBAAgBN,WAAWI,SAASG,OAAO;IACjD,MAAM,GAAGC,YAAY,GAAGX,MAAMY,UAAU,CAAC,CAACC,IAAcA,IAAI,GAAG;IAE/D,0EAA0E;IAC1E,0EAA0E;IAC1E,mEAAmE;IACnE,MAAMC,gBAAgBd,MAAMe,MAAM,CAAwCZ;IAC1E,MAAMa,oBAAoBhB,MAAMe,MAAM,CAAgBN;IAEtDV,0BAA0B;QACxBe,cAAcJ,OAAO,GAAGP;QACxBa,kBAAkBN,OAAO,GAAGD;IAC9B;IAEAV,0BAA0B;QACxB,MAAMkB,WAAW,CAACC;YAChB,6GAA6G;YAC7G,4EAA4E;YAC5E,IAAI;gBACF,MAAMC,oBAAoBL,cAAcJ,OAAO,CAACQ;gBAEhD,IAAI,CAACE,OAAOC,EAAE,CAACL,kBAAkBN,OAAO,EAAES,oBAAoB;oBAC5DR;gBACF;YACF,EAAE,OAAM;YACN,4EAA4E;YAC9E;QACF;QAEAH,UAAUc,IAAI,CAACL;QAEf,iHAAiH;QACjHA,SAASV,SAASG,OAAO;QAEzB,OAAO;YACL,MAAMa,QAAQf,UAAUgB,OAAO,CAACP;YAEhC,IAAIM,UAAU,CAAC,GAAG;gBAChBf,UAAUiB,MAAM,CAACF,OAAO;YAC1B;QACF;IACF,GAAG;QAACf;QAAWD;KAAS;IAExB,OAAOE;AACT,EAAE"}
@@ -18,6 +18,7 @@ const useContextSelector = (context, selectorFn)=>{
18
18
  // Read valueRef during render and return selector(value) directly. This is analogous to `useSyncExternalStore`'s
19
19
  // `getSnapshot` and is the only way to select a slice from a shared ref-based store without re-rendering every
20
20
  // consumer on every provider update.
21
+ // eslint-disable-next-line react-hooks/refs
21
22
  const valueAtRender = selectorFn(valueRef.current);
22
23
  const [, forceUpdate] = _react.useReducer((x)=>x + 1, 0);
23
24
  // Refs holding the current selector and the most-recently-returned slice.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/useContextSelector.ts"],"sourcesContent":["'use client';\n\nimport { useIsomorphicLayoutEffect } from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nimport type { Context, ContextSelector, ContextValue } from './types';\n\n/**\n * This hook returns context selected value by selector.\n * It will only accept context created by `createContext`.\n * It will trigger re-render if only the selected value is referentially changed.\n *\n * @internal\n */\nexport const useContextSelector = <Value, SelectedValue>(\n context: Context<Value>,\n selectorFn: ContextSelector<Value, SelectedValue>,\n): SelectedValue => {\n const contextValue = React.useContext(context as unknown as Context<ContextValue<Value>>);\n const { value: valueRef, listeners } = contextValue;\n\n // Read valueRef during render and return selector(value) directly. This is analogous to `useSyncExternalStore`'s\n // `getSnapshot` and is the only way to select a slice from a shared ref-based store without re-rendering every\n // consumer on every provider update.\n const valueAtRender = selectorFn(valueRef.current);\n const [, forceUpdate] = React.useReducer((x: number) => x + 1, 0);\n\n // Refs holding the current selector and the most-recently-returned slice.\n // Updated in a layout effect (ordering: children first, then provider) so\n // they are current by the time the provider's listener loop fires.\n const selectorFnRef = React.useRef<ContextSelector<Value, SelectedValue>>(selectorFn);\n const lastValueAtRender = React.useRef<SelectedValue>(valueAtRender);\n\n useIsomorphicLayoutEffect(() => {\n selectorFnRef.current = selectorFn;\n lastValueAtRender.current = valueAtRender;\n });\n\n useIsomorphicLayoutEffect(() => {\n const listener = (payload: Value) => {\n // Selectors can throw on transiently-inconsistent inputs (stale props vs. newer context value). Swallow so a\n // single consumer's throw doesn't abort the provider's `listeners.forEach`.\n try {\n const nextSelectedValue = selectorFnRef.current(payload);\n\n if (!Object.is(lastValueAtRender.current, nextSelectedValue)) {\n forceUpdate();\n }\n } catch {\n // ignored (stale props or similar — heals on the next parent-driven render)\n }\n };\n\n listeners.push(listener);\n\n // Effect-fixup: catch updates that occurred between render and effect run (Relay's useFragmentInternal pattern).\n listener(valueRef.current);\n\n return () => {\n const index = listeners.indexOf(listener);\n\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n };\n }, [listeners, valueRef]);\n\n return valueAtRender;\n};\n"],"names":["useContextSelector","context","selectorFn","contextValue","React","useContext","value","valueRef","listeners","valueAtRender","current","forceUpdate","useReducer","x","selectorFnRef","useRef","lastValueAtRender","useIsomorphicLayoutEffect","listener","payload","nextSelectedValue","Object","is","push","index","indexOf","splice"],"mappings":"AAAA;;;;;+BAcaA;;;eAAAA;;;;gCAZ6B;iEACnB;AAWhB,MAAMA,qBAAqB,CAChCC,SACAC;IAEA,MAAMC,eAAeC,OAAMC,UAAU,CAACJ;IACtC,MAAM,EAAEK,OAAOC,QAAQ,EAAEC,SAAS,EAAE,GAAGL;IAEvC,iHAAiH;IACjH,+GAA+G;IAC/G,qCAAqC;IACrC,MAAMM,gBAAgBP,WAAWK,SAASG,OAAO;IACjD,MAAM,GAAGC,YAAY,GAAGP,OAAMQ,UAAU,CAAC,CAACC,IAAcA,IAAI,GAAG;IAE/D,0EAA0E;IAC1E,0EAA0E;IAC1E,mEAAmE;IACnE,MAAMC,gBAAgBV,OAAMW,MAAM,CAAwCb;IAC1E,MAAMc,oBAAoBZ,OAAMW,MAAM,CAAgBN;IAEtDQ,IAAAA,yCAAyB,EAAC;QACxBH,cAAcJ,OAAO,GAAGR;QACxBc,kBAAkBN,OAAO,GAAGD;IAC9B;IAEAQ,IAAAA,yCAAyB,EAAC;QACxB,MAAMC,WAAW,CAACC;YAChB,6GAA6G;YAC7G,4EAA4E;YAC5E,IAAI;gBACF,MAAMC,oBAAoBN,cAAcJ,OAAO,CAACS;gBAEhD,IAAI,CAACE,OAAOC,EAAE,CAACN,kBAAkBN,OAAO,EAAEU,oBAAoB;oBAC5DT;gBACF;YACF,EAAE,OAAM;YACN,4EAA4E;YAC9E;QACF;QAEAH,UAAUe,IAAI,CAACL;QAEf,iHAAiH;QACjHA,SAASX,SAASG,OAAO;QAEzB,OAAO;YACL,MAAMc,QAAQhB,UAAUiB,OAAO,CAACP;YAEhC,IAAIM,UAAU,CAAC,GAAG;gBAChBhB,UAAUkB,MAAM,CAACF,OAAO;YAC1B;QACF;IACF,GAAG;QAAChB;QAAWD;KAAS;IAExB,OAAOE;AACT"}
1
+ {"version":3,"sources":["../src/useContextSelector.ts"],"sourcesContent":["'use client';\n\nimport { useIsomorphicLayoutEffect } from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nimport type { Context, ContextSelector, ContextValue } from './types';\n\n/**\n * This hook returns context selected value by selector.\n * It will only accept context created by `createContext`.\n * It will trigger re-render if only the selected value is referentially changed.\n *\n * @internal\n */\nexport const useContextSelector = <Value, SelectedValue>(\n context: Context<Value>,\n selectorFn: ContextSelector<Value, SelectedValue>,\n): SelectedValue => {\n const contextValue = React.useContext(context as unknown as Context<ContextValue<Value>>);\n const { value: valueRef, listeners } = contextValue;\n\n // Read valueRef during render and return selector(value) directly. This is analogous to `useSyncExternalStore`'s\n // `getSnapshot` and is the only way to select a slice from a shared ref-based store without re-rendering every\n // consumer on every provider update.\n // eslint-disable-next-line react-hooks/refs\n const valueAtRender = selectorFn(valueRef.current);\n const [, forceUpdate] = React.useReducer((x: number) => x + 1, 0);\n\n // Refs holding the current selector and the most-recently-returned slice.\n // Updated in a layout effect (ordering: children first, then provider) so\n // they are current by the time the provider's listener loop fires.\n const selectorFnRef = React.useRef<ContextSelector<Value, SelectedValue>>(selectorFn);\n const lastValueAtRender = React.useRef<SelectedValue>(valueAtRender);\n\n useIsomorphicLayoutEffect(() => {\n selectorFnRef.current = selectorFn;\n lastValueAtRender.current = valueAtRender;\n });\n\n useIsomorphicLayoutEffect(() => {\n const listener = (payload: Value) => {\n // Selectors can throw on transiently-inconsistent inputs (stale props vs. newer context value). Swallow so a\n // single consumer's throw doesn't abort the provider's `listeners.forEach`.\n try {\n const nextSelectedValue = selectorFnRef.current(payload);\n\n if (!Object.is(lastValueAtRender.current, nextSelectedValue)) {\n forceUpdate();\n }\n } catch {\n // ignored (stale props or similar — heals on the next parent-driven render)\n }\n };\n\n listeners.push(listener);\n\n // Effect-fixup: catch updates that occurred between render and effect run (Relay's useFragmentInternal pattern).\n listener(valueRef.current);\n\n return () => {\n const index = listeners.indexOf(listener);\n\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n };\n }, [listeners, valueRef]);\n\n return valueAtRender;\n};\n"],"names":["useContextSelector","context","selectorFn","contextValue","React","useContext","value","valueRef","listeners","valueAtRender","current","forceUpdate","useReducer","x","selectorFnRef","useRef","lastValueAtRender","useIsomorphicLayoutEffect","listener","payload","nextSelectedValue","Object","is","push","index","indexOf","splice"],"mappings":"AAAA;;;;;+BAcaA;;;eAAAA;;;;gCAZ6B;iEACnB;AAWhB,MAAMA,qBAAqB,CAChCC,SACAC;IAEA,MAAMC,eAAeC,OAAMC,UAAU,CAACJ;IACtC,MAAM,EAAEK,OAAOC,QAAQ,EAAEC,SAAS,EAAE,GAAGL;IAEvC,iHAAiH;IACjH,+GAA+G;IAC/G,qCAAqC;IACrC,4CAA4C;IAC5C,MAAMM,gBAAgBP,WAAWK,SAASG,OAAO;IACjD,MAAM,GAAGC,YAAY,GAAGP,OAAMQ,UAAU,CAAC,CAACC,IAAcA,IAAI,GAAG;IAE/D,0EAA0E;IAC1E,0EAA0E;IAC1E,mEAAmE;IACnE,MAAMC,gBAAgBV,OAAMW,MAAM,CAAwCb;IAC1E,MAAMc,oBAAoBZ,OAAMW,MAAM,CAAgBN;IAEtDQ,IAAAA,yCAAyB,EAAC;QACxBH,cAAcJ,OAAO,GAAGR;QACxBc,kBAAkBN,OAAO,GAAGD;IAC9B;IAEAQ,IAAAA,yCAAyB,EAAC;QACxB,MAAMC,WAAW,CAACC;YAChB,6GAA6G;YAC7G,4EAA4E;YAC5E,IAAI;gBACF,MAAMC,oBAAoBN,cAAcJ,OAAO,CAACS;gBAEhD,IAAI,CAACE,OAAOC,EAAE,CAACN,kBAAkBN,OAAO,EAAEU,oBAAoB;oBAC5DT;gBACF;YACF,EAAE,OAAM;YACN,4EAA4E;YAC9E;QACF;QAEAH,UAAUe,IAAI,CAACL;QAEf,iHAAiH;QACjHA,SAASX,SAASG,OAAO;QAEzB,OAAO;YACL,MAAMc,QAAQhB,UAAUiB,OAAO,CAACP;YAEhC,IAAIM,UAAU,CAAC,GAAG;gBAChBhB,UAAUkB,MAAM,CAACF,OAAO;YAC1B;QACF;IACF,GAAG;QAAChB;QAAWD;KAAS;IAExB,OAAOE;AACT"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluentui/react-context-selector",
3
- "version": "9.2.16",
3
+ "version": "9.2.17",
4
4
  "description": "React useContextSelector hook in userland",
5
5
  "main": "lib-commonjs/index.js",
6
6
  "module": "lib/index.js",
@@ -12,9 +12,12 @@
12
12
  },
13
13
  "license": "MIT",
14
14
  "dependencies": {
15
- "@fluentui/react-utilities": "^9.26.3",
15
+ "@fluentui/react-utilities": "^9.26.4",
16
16
  "@swc/helpers": "^0.5.1"
17
17
  },
18
+ "devDependencies": {
19
+ "@fluentui/scripts-cypress": "*"
20
+ },
18
21
  "peerDependencies": {
19
22
  "@types/react": ">=16.14.0 <20.0.0",
20
23
  "@types/react-dom": ">=16.9.0 <20.0.0",