@fluentui/react-tree 9.2.1 → 9.4.0

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.
Files changed (88) hide show
  1. package/CHANGELOG.json +258 -1
  2. package/CHANGELOG.md +67 -2
  3. package/dist/index.d.ts +49 -20
  4. package/lib/components/FlatTree/FlatTree.types.js.map +1 -1
  5. package/lib/components/FlatTree/renderFlatTree.js.map +1 -1
  6. package/lib/components/FlatTree/useFlatTree.js +71 -2
  7. package/lib/components/FlatTree/useFlatTree.js.map +1 -1
  8. package/lib/components/FlatTree/useFlatTreeContextValues.js +20 -2
  9. package/lib/components/FlatTree/useFlatTreeContextValues.js.map +1 -1
  10. package/lib/components/FlatTree/useFlatTreeNavigation.js +28 -14
  11. package/lib/components/FlatTree/useFlatTreeNavigation.js.map +1 -1
  12. package/lib/components/FlatTree/useHeadlessFlatTree.js +16 -16
  13. package/lib/components/FlatTree/useHeadlessFlatTree.js.map +1 -1
  14. package/lib/components/Tree/Tree.types.js.map +1 -1
  15. package/lib/components/Tree/renderTree.js +1 -1
  16. package/lib/components/Tree/renderTree.js.map +1 -1
  17. package/lib/components/Tree/useTree.js +11 -14
  18. package/lib/components/Tree/useTree.js.map +1 -1
  19. package/lib/components/Tree/useTreeContextValues.js +29 -15
  20. package/lib/components/Tree/useTreeContextValues.js.map +1 -1
  21. package/lib/components/TreeItem/TreeItem.types.js.map +1 -1
  22. package/lib/components/TreeItem/useTreeItem.js +52 -26
  23. package/lib/components/TreeItem/useTreeItem.js.map +1 -1
  24. package/lib/components/TreeItemLayout/useTreeItemLayout.js +2 -3
  25. package/lib/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
  26. package/lib/components/TreeProvider.js +21 -0
  27. package/lib/components/TreeProvider.js.map +1 -0
  28. package/lib/contexts/index.js +1 -0
  29. package/lib/contexts/index.js.map +1 -1
  30. package/lib/contexts/subtreeContext.js +14 -0
  31. package/lib/contexts/subtreeContext.js.map +1 -0
  32. package/lib/contexts/treeContext.js +9 -5
  33. package/lib/contexts/treeContext.js.map +1 -1
  34. package/lib/hooks/useRootTree.js +25 -78
  35. package/lib/hooks/useRootTree.js.map +1 -1
  36. package/lib/hooks/useSubtree.js +2 -14
  37. package/lib/hooks/useSubtree.js.map +1 -1
  38. package/lib/index.js +2 -1
  39. package/lib/index.js.map +1 -1
  40. package/lib/utils/createHTMLElementWalker.js +2 -3
  41. package/lib/utils/createHTMLElementWalker.js.map +1 -1
  42. package/lib/utils/createHeadlessTree.js +5 -3
  43. package/lib/utils/createHeadlessTree.js.map +1 -1
  44. package/lib/utils/flattenTree.js +1 -2
  45. package/lib/utils/flattenTree.js.map +1 -1
  46. package/lib/utils/normalizeOpenItems.js +1 -2
  47. package/lib/utils/normalizeOpenItems.js.map +1 -1
  48. package/lib-commonjs/components/FlatTree/useFlatTree.js +71 -2
  49. package/lib-commonjs/components/FlatTree/useFlatTree.js.map +1 -1
  50. package/lib-commonjs/components/FlatTree/useFlatTreeContextValues.js +20 -2
  51. package/lib-commonjs/components/FlatTree/useFlatTreeContextValues.js.map +1 -1
  52. package/lib-commonjs/components/FlatTree/useFlatTreeNavigation.js +27 -13
  53. package/lib-commonjs/components/FlatTree/useFlatTreeNavigation.js.map +1 -1
  54. package/lib-commonjs/components/FlatTree/useHeadlessFlatTree.js +16 -16
  55. package/lib-commonjs/components/FlatTree/useHeadlessFlatTree.js.map +1 -1
  56. package/lib-commonjs/components/Tree/renderTree.js +2 -2
  57. package/lib-commonjs/components/Tree/renderTree.js.map +1 -1
  58. package/lib-commonjs/components/Tree/useTree.js +11 -14
  59. package/lib-commonjs/components/Tree/useTree.js.map +1 -1
  60. package/lib-commonjs/components/Tree/useTreeContextValues.js +30 -15
  61. package/lib-commonjs/components/Tree/useTreeContextValues.js.map +1 -1
  62. package/lib-commonjs/components/TreeItem/useTreeItem.js +55 -29
  63. package/lib-commonjs/components/TreeItem/useTreeItem.js.map +1 -1
  64. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js +2 -3
  65. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
  66. package/lib-commonjs/components/TreeProvider.js +32 -0
  67. package/lib-commonjs/components/TreeProvider.js.map +1 -0
  68. package/lib-commonjs/contexts/index.js +1 -0
  69. package/lib-commonjs/contexts/index.js.map +1 -1
  70. package/lib-commonjs/contexts/subtreeContext.js +31 -0
  71. package/lib-commonjs/contexts/subtreeContext.js.map +1 -0
  72. package/lib-commonjs/contexts/treeContext.js +6 -7
  73. package/lib-commonjs/contexts/treeContext.js.map +1 -1
  74. package/lib-commonjs/hooks/useRootTree.js +25 -78
  75. package/lib-commonjs/hooks/useRootTree.js.map +1 -1
  76. package/lib-commonjs/hooks/useSubtree.js +2 -14
  77. package/lib-commonjs/hooks/useSubtree.js.map +1 -1
  78. package/lib-commonjs/index.js +7 -3
  79. package/lib-commonjs/index.js.map +1 -1
  80. package/lib-commonjs/utils/createHTMLElementWalker.js +2 -3
  81. package/lib-commonjs/utils/createHTMLElementWalker.js.map +1 -1
  82. package/lib-commonjs/utils/createHeadlessTree.js +5 -3
  83. package/lib-commonjs/utils/createHeadlessTree.js.map +1 -1
  84. package/lib-commonjs/utils/flattenTree.js +1 -2
  85. package/lib-commonjs/utils/flattenTree.js.map +1 -1
  86. package/lib-commonjs/utils/normalizeOpenItems.js +1 -2
  87. package/lib-commonjs/utils/normalizeOpenItems.js.map +1 -1
  88. package/package.json +15 -15
@@ -13,13 +13,12 @@ function createHTMLElementWalker(root, targetDocument, filter = ()=>NodeFilter.F
13
13
  let temporaryFilter;
14
14
  const treeWalker = targetDocument.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {
15
15
  acceptNode (node) {
16
- var _temporaryFilter;
17
16
  if (!(0, _reactutilities.isHTMLElement)(node)) {
18
17
  return NodeFilter.FILTER_REJECT;
19
18
  }
20
19
  const filterResult = filter(node);
21
- var _temporaryFilter1;
22
- return filterResult === NodeFilter.FILTER_ACCEPT ? (_temporaryFilter1 = (_temporaryFilter = temporaryFilter) === null || _temporaryFilter === void 0 ? void 0 : _temporaryFilter(node)) !== null && _temporaryFilter1 !== void 0 ? _temporaryFilter1 : filterResult : filterResult;
20
+ var _temporaryFilter;
21
+ return filterResult === NodeFilter.FILTER_ACCEPT ? (_temporaryFilter = temporaryFilter === null || temporaryFilter === void 0 ? void 0 : temporaryFilter(node)) !== null && _temporaryFilter !== void 0 ? _temporaryFilter : filterResult : filterResult;
23
22
  }
24
23
  });
25
24
  return {
@@ -1 +1 @@
1
- {"version":3,"sources":["createHTMLElementWalker.js"],"sourcesContent":["import { isHTMLElement } from '@fluentui/react-utilities';\nexport function createHTMLElementWalker(root, targetDocument, filter = ()=>NodeFilter.FILTER_ACCEPT) {\n let temporaryFilter;\n const treeWalker = targetDocument.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {\n acceptNode (node) {\n var _temporaryFilter;\n if (!isHTMLElement(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n const filterResult = filter(node);\n var _temporaryFilter1;\n return filterResult === NodeFilter.FILTER_ACCEPT ? (_temporaryFilter1 = (_temporaryFilter = temporaryFilter) === null || _temporaryFilter === void 0 ? void 0 : _temporaryFilter(node)) !== null && _temporaryFilter1 !== void 0 ? _temporaryFilter1 : filterResult : filterResult;\n }\n });\n return {\n get root () {\n return treeWalker.root;\n },\n get currentElement () {\n return treeWalker.currentNode;\n },\n set currentElement (element){\n treeWalker.currentNode = element;\n },\n firstChild: (localFilter)=>{\n temporaryFilter = localFilter;\n const result = treeWalker.firstChild();\n temporaryFilter = undefined;\n return result;\n },\n lastChild: (localFilter)=>{\n temporaryFilter = localFilter;\n const result = treeWalker.lastChild();\n temporaryFilter = undefined;\n return result;\n },\n nextElement: (localFilter)=>{\n temporaryFilter = localFilter;\n const result = treeWalker.nextNode();\n temporaryFilter = undefined;\n return result;\n },\n nextSibling: (localFilter)=>{\n temporaryFilter = localFilter;\n const result = treeWalker.nextSibling();\n temporaryFilter = undefined;\n return result;\n },\n parentElement: (localFilter)=>{\n temporaryFilter = localFilter;\n const result = treeWalker.parentNode();\n temporaryFilter = undefined;\n return result;\n },\n previousElement: (localFilter)=>{\n temporaryFilter = localFilter;\n const result = treeWalker.previousNode();\n temporaryFilter = undefined;\n return result;\n },\n previousSibling: (localFilter)=>{\n temporaryFilter = localFilter;\n const result = treeWalker.previousSibling();\n temporaryFilter = undefined;\n return result;\n }\n };\n}\n"],"names":["createHTMLElementWalker","root","targetDocument","filter","NodeFilter","FILTER_ACCEPT","temporaryFilter","treeWalker","createTreeWalker","SHOW_ELEMENT","acceptNode","node","_temporaryFilter","isHTMLElement","FILTER_REJECT","filterResult","_temporaryFilter1","currentElement","currentNode","element","firstChild","localFilter","result","undefined","lastChild","nextElement","nextNode","nextSibling","parentElement","parentNode","previousElement","previousNode","previousSibling"],"mappings":";;;;+BACgBA;;;eAAAA;;;gCADc;AACvB,SAASA,wBAAwBC,IAAI,EAAEC,cAAc,EAAEC,SAAS,IAAIC,WAAWC,aAAa;IAC/F,IAAIC;IACJ,MAAMC,aAAaL,eAAeM,gBAAgB,CAACP,MAAMG,WAAWK,YAAY,EAAE;QAC9EC,YAAYC,IAAI;YACZ,IAAIC;YACJ,IAAI,CAACC,IAAAA,6BAAa,EAACF,OAAO;gBACtB,OAAOP,WAAWU,aAAa;YACnC;YACA,MAAMC,eAAeZ,OAAOQ;YAC5B,IAAIK;YACJ,OAAOD,iBAAiBX,WAAWC,aAAa,GAAG,AAACW,CAAAA,oBAAoB,AAACJ,CAAAA,mBAAmBN,eAAc,MAAO,QAAQM,qBAAqB,KAAK,IAAI,KAAK,IAAIA,iBAAiBD,KAAI,MAAO,QAAQK,sBAAsB,KAAK,IAAIA,oBAAoBD,eAAeA;QAC1Q;IACJ;IACA,OAAO;QACH,IAAId,QAAQ;YACR,OAAOM,WAAWN,IAAI;QAC1B;QACA,IAAIgB,kBAAkB;YAClB,OAAOV,WAAWW,WAAW;QACjC;QACA,IAAID,gBAAgBE,QAAQ;YACxBZ,WAAWW,WAAW,GAAGC;QAC7B;QACAC,YAAY,CAACC;YACTf,kBAAkBe;YAClB,MAAMC,SAASf,WAAWa,UAAU;YACpCd,kBAAkBiB;YAClB,OAAOD;QACX;QACAE,WAAW,CAACH;YACRf,kBAAkBe;YAClB,MAAMC,SAASf,WAAWiB,SAAS;YACnClB,kBAAkBiB;YAClB,OAAOD;QACX;QACAG,aAAa,CAACJ;YACVf,kBAAkBe;YAClB,MAAMC,SAASf,WAAWmB,QAAQ;YAClCpB,kBAAkBiB;YAClB,OAAOD;QACX;QACAK,aAAa,CAACN;YACVf,kBAAkBe;YAClB,MAAMC,SAASf,WAAWoB,WAAW;YACrCrB,kBAAkBiB;YAClB,OAAOD;QACX;QACAM,eAAe,CAACP;YACZf,kBAAkBe;YAClB,MAAMC,SAASf,WAAWsB,UAAU;YACpCvB,kBAAkBiB;YAClB,OAAOD;QACX;QACAQ,iBAAiB,CAACT;YACdf,kBAAkBe;YAClB,MAAMC,SAASf,WAAWwB,YAAY;YACtCzB,kBAAkBiB;YAClB,OAAOD;QACX;QACAU,iBAAiB,CAACX;YACdf,kBAAkBe;YAClB,MAAMC,SAASf,WAAWyB,eAAe;YACzC1B,kBAAkBiB;YAClB,OAAOD;QACX;IACJ;AACJ"}
1
+ {"version":3,"sources":["createHTMLElementWalker.js"],"sourcesContent":["import { isHTMLElement } from '@fluentui/react-utilities';\nexport function createHTMLElementWalker(root, targetDocument, filter = ()=>NodeFilter.FILTER_ACCEPT) {\n let temporaryFilter;\n const treeWalker = targetDocument.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {\n acceptNode (node) {\n if (!isHTMLElement(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n const filterResult = filter(node);\n var _temporaryFilter;\n return filterResult === NodeFilter.FILTER_ACCEPT ? (_temporaryFilter = temporaryFilter === null || temporaryFilter === void 0 ? void 0 : temporaryFilter(node)) !== null && _temporaryFilter !== void 0 ? _temporaryFilter : filterResult : filterResult;\n }\n });\n return {\n get root () {\n return treeWalker.root;\n },\n get currentElement () {\n return treeWalker.currentNode;\n },\n set currentElement (element){\n treeWalker.currentNode = element;\n },\n firstChild: (localFilter)=>{\n temporaryFilter = localFilter;\n const result = treeWalker.firstChild();\n temporaryFilter = undefined;\n return result;\n },\n lastChild: (localFilter)=>{\n temporaryFilter = localFilter;\n const result = treeWalker.lastChild();\n temporaryFilter = undefined;\n return result;\n },\n nextElement: (localFilter)=>{\n temporaryFilter = localFilter;\n const result = treeWalker.nextNode();\n temporaryFilter = undefined;\n return result;\n },\n nextSibling: (localFilter)=>{\n temporaryFilter = localFilter;\n const result = treeWalker.nextSibling();\n temporaryFilter = undefined;\n return result;\n },\n parentElement: (localFilter)=>{\n temporaryFilter = localFilter;\n const result = treeWalker.parentNode();\n temporaryFilter = undefined;\n return result;\n },\n previousElement: (localFilter)=>{\n temporaryFilter = localFilter;\n const result = treeWalker.previousNode();\n temporaryFilter = undefined;\n return result;\n },\n previousSibling: (localFilter)=>{\n temporaryFilter = localFilter;\n const result = treeWalker.previousSibling();\n temporaryFilter = undefined;\n return result;\n }\n };\n}\n"],"names":["createHTMLElementWalker","root","targetDocument","filter","NodeFilter","FILTER_ACCEPT","temporaryFilter","treeWalker","createTreeWalker","SHOW_ELEMENT","acceptNode","node","isHTMLElement","FILTER_REJECT","filterResult","_temporaryFilter","currentElement","currentNode","element","firstChild","localFilter","result","undefined","lastChild","nextElement","nextNode","nextSibling","parentElement","parentNode","previousElement","previousNode","previousSibling"],"mappings":";;;;+BACgBA;;;eAAAA;;;gCADc;AACvB,SAASA,wBAAwBC,IAAI,EAAEC,cAAc,EAAEC,SAAS,IAAIC,WAAWC,aAAa;IAC/F,IAAIC;IACJ,MAAMC,aAAaL,eAAeM,gBAAgB,CAACP,MAAMG,WAAWK,YAAY,EAAE;QAC9EC,YAAYC,IAAI;YACZ,IAAI,CAACC,IAAAA,6BAAa,EAACD,OAAO;gBACtB,OAAOP,WAAWS,aAAa;YACnC;YACA,MAAMC,eAAeX,OAAOQ;YAC5B,IAAII;YACJ,OAAOD,iBAAiBV,WAAWC,aAAa,GAAG,AAACU,CAAAA,mBAAmBT,oBAAoB,QAAQA,oBAAoB,KAAK,IAAI,KAAK,IAAIA,gBAAgBK,KAAI,MAAO,QAAQI,qBAAqB,KAAK,IAAIA,mBAAmBD,eAAeA;QAChP;IACJ;IACA,OAAO;QACH,IAAIb,QAAQ;YACR,OAAOM,WAAWN,IAAI;QAC1B;QACA,IAAIe,kBAAkB;YAClB,OAAOT,WAAWU,WAAW;QACjC;QACA,IAAID,gBAAgBE,QAAQ;YACxBX,WAAWU,WAAW,GAAGC;QAC7B;QACAC,YAAY,CAACC;YACTd,kBAAkBc;YAClB,MAAMC,SAASd,WAAWY,UAAU;YACpCb,kBAAkBgB;YAClB,OAAOD;QACX;QACAE,WAAW,CAACH;YACRd,kBAAkBc;YAClB,MAAMC,SAASd,WAAWgB,SAAS;YACnCjB,kBAAkBgB;YAClB,OAAOD;QACX;QACAG,aAAa,CAACJ;YACVd,kBAAkBc;YAClB,MAAMC,SAASd,WAAWkB,QAAQ;YAClCnB,kBAAkBgB;YAClB,OAAOD;QACX;QACAK,aAAa,CAACN;YACVd,kBAAkBc;YAClB,MAAMC,SAASd,WAAWmB,WAAW;YACrCpB,kBAAkBgB;YAClB,OAAOD;QACX;QACAM,eAAe,CAACP;YACZd,kBAAkBc;YAClB,MAAMC,SAASd,WAAWqB,UAAU;YACpCtB,kBAAkBgB;YAClB,OAAOD;QACX;QACAQ,iBAAiB,CAACT;YACdd,kBAAkBc;YAClB,MAAMC,SAASd,WAAWuB,YAAY;YACtCxB,kBAAkBgB;YAClB,OAAOD;QACX;QACAU,iBAAiB,CAACX;YACdd,kBAAkBc;YAClB,MAAMC,SAASd,WAAWwB,eAAe;YACzCzB,kBAAkBgB;YAClB,OAAOD;QACX;IACJ;AACJ"}
@@ -27,15 +27,15 @@ function createHeadlessTree(initialProps = []) {
27
27
  root
28
28
  ]
29
29
  ]);
30
- var _itemsPerValue_get_parentValue, _itemsPerValue_get;
31
30
  const headlessTree = {
32
31
  root,
33
32
  get size () {
34
33
  return itemsPerValue.size;
35
34
  },
36
35
  getParent: (key)=>{
37
- var _itemsPerValue_get1;
38
- return (_itemsPerValue_get = itemsPerValue.get((_itemsPerValue_get_parentValue = (_itemsPerValue_get1 = itemsPerValue.get(key)) === null || _itemsPerValue_get1 === void 0 ? void 0 : _itemsPerValue_get1.parentValue) !== null && _itemsPerValue_get_parentValue !== void 0 ? _itemsPerValue_get_parentValue : root.value)) !== null && _itemsPerValue_get !== void 0 ? _itemsPerValue_get : root;
36
+ var _itemsPerValue_get;
37
+ var _itemsPerValue_get_parentValue, _itemsPerValue_get1;
38
+ return (_itemsPerValue_get1 = itemsPerValue.get((_itemsPerValue_get_parentValue = (_itemsPerValue_get = itemsPerValue.get(key)) === null || _itemsPerValue_get === void 0 ? void 0 : _itemsPerValue_get.parentValue) !== null && _itemsPerValue_get_parentValue !== void 0 ? _itemsPerValue_get_parentValue : root.value)) !== null && _itemsPerValue_get1 !== void 0 ? _itemsPerValue_get1 : root;
39
39
  },
40
40
  get: (key)=>itemsPerValue.get(key),
41
41
  has: (key)=>itemsPerValue.has(key),
@@ -56,6 +56,7 @@ TreeItem "${props.value}" is wrongly positioned, did you properly ordered provid
56
56
  value: props.value,
57
57
  getTreeItemProps: ()=>({
58
58
  ...propsWithoutParentValue,
59
+ parentValue,
59
60
  'aria-level': item.level,
60
61
  'aria-posinset': item.position,
61
62
  'aria-setsize': parentItem.childrenValues.length,
@@ -115,6 +116,7 @@ Internal error, trying to access treeitem props from invalid root element`);
115
116
  }
116
117
  return {
117
118
  id: headlessTreeRootId,
119
+ parentValue: undefined,
118
120
  value: headlessTreeRootId,
119
121
  'aria-setsize': -1,
120
122
  'aria-level': -1,
@@ -1 +1 @@
1
- {"version":3,"sources":["createHeadlessTree.js"],"sourcesContent":["/**\n * creates a list of virtual tree items\n * and provides a map to access each item by id\n */ export function createHeadlessTree(initialProps = []) {\n const root = createHeadlessTreeRootItem();\n const itemsPerValue = new Map([\n [\n root.value,\n root\n ]\n ]);\n var _itemsPerValue_get_parentValue, _itemsPerValue_get;\n const headlessTree = {\n root,\n get size () {\n return itemsPerValue.size;\n },\n getParent: (key)=>{\n var _itemsPerValue_get1;\n return (_itemsPerValue_get = itemsPerValue.get((_itemsPerValue_get_parentValue = (_itemsPerValue_get1 = itemsPerValue.get(key)) === null || _itemsPerValue_get1 === void 0 ? void 0 : _itemsPerValue_get1.parentValue) !== null && _itemsPerValue_get_parentValue !== void 0 ? _itemsPerValue_get_parentValue : root.value)) !== null && _itemsPerValue_get !== void 0 ? _itemsPerValue_get : root;\n },\n get: (key)=>itemsPerValue.get(key),\n has: (key)=>itemsPerValue.has(key),\n add (props) {\n const { parentValue = headlessTreeRootId, ...propsWithoutParentValue } = props;\n const parentItem = itemsPerValue.get(parentValue);\n if (!parentItem) {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.error(`@fluentui/react-tree [createHeadlessTree]:\nTreeItem \"${props.value}\" is wrongly positioned, did you properly ordered provided item props? make sure provided items are organized, parents should come before children`);\n }\n return;\n }\n parentItem.itemType = 'branch';\n var _propsWithoutParentValue_itemType;\n const item = {\n value: props.value,\n getTreeItemProps: ()=>({\n ...propsWithoutParentValue,\n 'aria-level': item.level,\n 'aria-posinset': item.position,\n 'aria-setsize': parentItem.childrenValues.length,\n itemType: item.itemType\n }),\n itemType: (_propsWithoutParentValue_itemType = propsWithoutParentValue.itemType) !== null && _propsWithoutParentValue_itemType !== void 0 ? _propsWithoutParentValue_itemType : 'leaf',\n level: parentItem.level + 1,\n parentValue,\n childrenValues: [],\n index: -1,\n position: parentItem.childrenValues.push(props.value)\n };\n itemsPerValue.set(item.value, item);\n },\n // TODO: eventually it would be nice to have this method exported for the user to modify\n // the internal state of the virtual tree\n // remove(value) {\n // const itemToBeRemoved = itemsPerValue.get(value);\n // if (!itemToBeRemoved) {\n // return;\n // }\n // const parentItem = headlessTree.getParent(value);\n // parentItem.childrenValues.splice(itemToBeRemoved.position, 1);\n // itemsPerValue.delete(value);\n // if (parentItem.childrenValues.length === 0) {\n // parentItem.itemType = 'leaf';\n // }\n // for (let index = itemToBeRemoved.position; index < parentItem.childrenValues.length; index++) {\n // const child = itemsPerValue.get(parentItem.childrenValues[index]);\n // if (child) {\n // child.position = index + 1;\n // }\n // }\n // for (const descendant of HeadlessTreeSubtreeGenerator(value, headlessTree)) {\n // itemsPerValue.delete(descendant.value);\n // }\n // },\n subtree: (key)=>HeadlessTreeSubtreeGenerator(key, headlessTree),\n children: (key)=>HeadlessTreeChildrenGenerator(key, headlessTree),\n ancestors: (key)=>HeadlessTreeAncestorsGenerator(key, headlessTree),\n visibleItems: (openItems)=>HeadlessTreeVisibleItemsGenerator(openItems, headlessTree)\n };\n initialProps.forEach(headlessTree.add);\n return headlessTree;\n}\nexport const headlessTreeRootId = '__fuiHeadlessTreeRoot';\nfunction createHeadlessTreeRootItem() {\n return {\n parentValue: undefined,\n value: headlessTreeRootId,\n itemType: 'branch',\n getTreeItemProps: ()=>{\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error(`@fluentui/react-tree [createHeadlessTree]:\nInternal error, trying to access treeitem props from invalid root element`);\n }\n return {\n id: headlessTreeRootId,\n value: headlessTreeRootId,\n 'aria-setsize': -1,\n 'aria-level': -1,\n 'aria-posinset': -1,\n itemType: 'branch'\n };\n },\n childrenValues: [],\n get index () {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error(`@fluentui/react-tree [createHeadlessTree]:\nInternal error, trying to access treeitem props from invalid root element`);\n }\n return -1;\n },\n get position () {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error(`@fluentui/react-tree [createHeadlessTree]:\nInternal error, trying to access treeitem props from invalid root element`);\n }\n return -1;\n },\n level: 0\n };\n}\n/**\n * Generator that returns all subtree of a given virtual tree item\n * @param key the key of the item to get the subtree from\n */ // eslint-disable-next-line @typescript-eslint/naming-convention\nfunction* HeadlessTreeSubtreeGenerator(key, virtualTreeItems) {\n const item = virtualTreeItems.get(key);\n if (!item || item.childrenValues.length === 0) {\n return;\n }\n for (const childValue of item.childrenValues){\n yield virtualTreeItems.get(childValue);\n yield* HeadlessTreeSubtreeGenerator(childValue, virtualTreeItems);\n }\n}\n/**\n * Generator that returns all children of a given virtual tree item\n * @param key the key of the item to get the children from\n */ // eslint-disable-next-line @typescript-eslint/naming-convention\nfunction* HeadlessTreeChildrenGenerator(key, virtualTreeItems) {\n const item = virtualTreeItems.get(key);\n if (!item || item.childrenValues.length === 0) {\n return;\n }\n for (const childValue of item.childrenValues){\n yield virtualTreeItems.get(childValue);\n }\n}\n/**\n * Generator that returns all ancestors of a given virtual tree item\n * @param key the key of the item to get the children from\n */ // eslint-disable-next-line @typescript-eslint/naming-convention\nfunction* HeadlessTreeAncestorsGenerator(key, virtualTreeItems) {\n let parent = virtualTreeItems.getParent(key);\n while(parent !== virtualTreeItems.root){\n yield parent;\n parent = virtualTreeItems.getParent(parent.value);\n }\n}\n/**\n * Generator that returns all visible items of a given virtual tree\n * @param openItems the open items of the tree\n */ // eslint-disable-next-line @typescript-eslint/naming-convention\nfunction* HeadlessTreeVisibleItemsGenerator(openItems, virtualTreeItems) {\n let index = 0;\n for (const item of HeadlessTreeSubtreeGenerator(virtualTreeItems.root.value, virtualTreeItems)){\n if (isItemVisible(item, openItems, virtualTreeItems)) {\n item.index = index++;\n yield item;\n }\n }\n}\nfunction isItemVisible(item, openItems, virtualTreeItems) {\n if (item.level === 1) {\n return true;\n }\n while(item.parentValue && item.parentValue !== virtualTreeItems.root.value){\n if (!openItems.has(item.parentValue)) {\n return false;\n }\n const parent = virtualTreeItems.get(item.parentValue);\n if (!parent) {\n return false;\n }\n item = parent;\n }\n return true;\n}\n"],"names":["createHeadlessTree","headlessTreeRootId","initialProps","root","createHeadlessTreeRootItem","itemsPerValue","Map","value","_itemsPerValue_get_parentValue","_itemsPerValue_get","headlessTree","size","getParent","key","_itemsPerValue_get1","get","parentValue","has","add","props","propsWithoutParentValue","parentItem","process","env","NODE_ENV","console","error","itemType","_propsWithoutParentValue_itemType","item","getTreeItemProps","level","position","childrenValues","length","index","push","set","subtree","HeadlessTreeSubtreeGenerator","children","HeadlessTreeChildrenGenerator","ancestors","HeadlessTreeAncestorsGenerator","visibleItems","openItems","HeadlessTreeVisibleItemsGenerator","forEach","undefined","id","virtualTreeItems","childValue","parent","isItemVisible"],"mappings":"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"}
1
+ {"version":3,"sources":["createHeadlessTree.js"],"sourcesContent":["/**\n * creates a list of virtual tree items\n * and provides a map to access each item by id\n */ export function createHeadlessTree(initialProps = []) {\n const root = createHeadlessTreeRootItem();\n const itemsPerValue = new Map([\n [\n root.value,\n root\n ]\n ]);\n const headlessTree = {\n root,\n get size () {\n return itemsPerValue.size;\n },\n getParent: (key)=>{\n var _itemsPerValue_get;\n var _itemsPerValue_get_parentValue, _itemsPerValue_get1;\n return (_itemsPerValue_get1 = itemsPerValue.get((_itemsPerValue_get_parentValue = (_itemsPerValue_get = itemsPerValue.get(key)) === null || _itemsPerValue_get === void 0 ? void 0 : _itemsPerValue_get.parentValue) !== null && _itemsPerValue_get_parentValue !== void 0 ? _itemsPerValue_get_parentValue : root.value)) !== null && _itemsPerValue_get1 !== void 0 ? _itemsPerValue_get1 : root;\n },\n get: (key)=>itemsPerValue.get(key),\n has: (key)=>itemsPerValue.has(key),\n add (props) {\n const { parentValue = headlessTreeRootId, ...propsWithoutParentValue } = props;\n const parentItem = itemsPerValue.get(parentValue);\n if (!parentItem) {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.error(`@fluentui/react-tree [createHeadlessTree]:\nTreeItem \"${props.value}\" is wrongly positioned, did you properly ordered provided item props? make sure provided items are organized, parents should come before children`);\n }\n return;\n }\n parentItem.itemType = 'branch';\n var _propsWithoutParentValue_itemType;\n const item = {\n value: props.value,\n getTreeItemProps: ()=>({\n ...propsWithoutParentValue,\n parentValue,\n 'aria-level': item.level,\n 'aria-posinset': item.position,\n 'aria-setsize': parentItem.childrenValues.length,\n itemType: item.itemType\n }),\n itemType: (_propsWithoutParentValue_itemType = propsWithoutParentValue.itemType) !== null && _propsWithoutParentValue_itemType !== void 0 ? _propsWithoutParentValue_itemType : 'leaf',\n level: parentItem.level + 1,\n parentValue,\n childrenValues: [],\n index: -1,\n position: parentItem.childrenValues.push(props.value)\n };\n itemsPerValue.set(item.value, item);\n },\n // TODO: eventually it would be nice to have this method exported for the user to modify\n // the internal state of the virtual tree\n // remove(value) {\n // const itemToBeRemoved = itemsPerValue.get(value);\n // if (!itemToBeRemoved) {\n // return;\n // }\n // const parentItem = headlessTree.getParent(value);\n // parentItem.childrenValues.splice(itemToBeRemoved.position, 1);\n // itemsPerValue.delete(value);\n // if (parentItem.childrenValues.length === 0) {\n // parentItem.itemType = 'leaf';\n // }\n // for (let index = itemToBeRemoved.position; index < parentItem.childrenValues.length; index++) {\n // const child = itemsPerValue.get(parentItem.childrenValues[index]);\n // if (child) {\n // child.position = index + 1;\n // }\n // }\n // for (const descendant of HeadlessTreeSubtreeGenerator(value, headlessTree)) {\n // itemsPerValue.delete(descendant.value);\n // }\n // },\n subtree: (key)=>HeadlessTreeSubtreeGenerator(key, headlessTree),\n children: (key)=>HeadlessTreeChildrenGenerator(key, headlessTree),\n ancestors: (key)=>HeadlessTreeAncestorsGenerator(key, headlessTree),\n visibleItems: (openItems)=>HeadlessTreeVisibleItemsGenerator(openItems, headlessTree)\n };\n initialProps.forEach(headlessTree.add);\n return headlessTree;\n}\nexport const headlessTreeRootId = '__fuiHeadlessTreeRoot';\nfunction createHeadlessTreeRootItem() {\n return {\n parentValue: undefined,\n value: headlessTreeRootId,\n itemType: 'branch',\n getTreeItemProps: ()=>{\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error(`@fluentui/react-tree [createHeadlessTree]:\nInternal error, trying to access treeitem props from invalid root element`);\n }\n return {\n id: headlessTreeRootId,\n parentValue: undefined,\n value: headlessTreeRootId,\n 'aria-setsize': -1,\n 'aria-level': -1,\n 'aria-posinset': -1,\n itemType: 'branch'\n };\n },\n childrenValues: [],\n get index () {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error(`@fluentui/react-tree [createHeadlessTree]:\nInternal error, trying to access treeitem props from invalid root element`);\n }\n return -1;\n },\n get position () {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error(`@fluentui/react-tree [createHeadlessTree]:\nInternal error, trying to access treeitem props from invalid root element`);\n }\n return -1;\n },\n level: 0\n };\n}\n/**\n * Generator that returns all subtree of a given virtual tree item\n * @param key the key of the item to get the subtree from\n */ // eslint-disable-next-line @typescript-eslint/naming-convention\nfunction* HeadlessTreeSubtreeGenerator(key, virtualTreeItems) {\n const item = virtualTreeItems.get(key);\n if (!item || item.childrenValues.length === 0) {\n return;\n }\n for (const childValue of item.childrenValues){\n yield virtualTreeItems.get(childValue);\n yield* HeadlessTreeSubtreeGenerator(childValue, virtualTreeItems);\n }\n}\n/**\n * Generator that returns all children of a given virtual tree item\n * @param key the key of the item to get the children from\n */ // eslint-disable-next-line @typescript-eslint/naming-convention\nfunction* HeadlessTreeChildrenGenerator(key, virtualTreeItems) {\n const item = virtualTreeItems.get(key);\n if (!item || item.childrenValues.length === 0) {\n return;\n }\n for (const childValue of item.childrenValues){\n yield virtualTreeItems.get(childValue);\n }\n}\n/**\n * Generator that returns all ancestors of a given virtual tree item\n * @param key the key of the item to get the children from\n */ // eslint-disable-next-line @typescript-eslint/naming-convention\nfunction* HeadlessTreeAncestorsGenerator(key, virtualTreeItems) {\n let parent = virtualTreeItems.getParent(key);\n while(parent !== virtualTreeItems.root){\n yield parent;\n parent = virtualTreeItems.getParent(parent.value);\n }\n}\n/**\n * Generator that returns all visible items of a given virtual tree\n * @param openItems the open items of the tree\n */ // eslint-disable-next-line @typescript-eslint/naming-convention\nfunction* HeadlessTreeVisibleItemsGenerator(openItems, virtualTreeItems) {\n let index = 0;\n for (const item of HeadlessTreeSubtreeGenerator(virtualTreeItems.root.value, virtualTreeItems)){\n if (isItemVisible(item, openItems, virtualTreeItems)) {\n item.index = index++;\n yield item;\n }\n }\n}\nfunction isItemVisible(item, openItems, virtualTreeItems) {\n if (item.level === 1) {\n return true;\n }\n while(item.parentValue && item.parentValue !== virtualTreeItems.root.value){\n if (!openItems.has(item.parentValue)) {\n return false;\n }\n const parent = virtualTreeItems.get(item.parentValue);\n if (!parent) {\n return false;\n }\n item = parent;\n }\n return true;\n}\n"],"names":["createHeadlessTree","headlessTreeRootId","initialProps","root","createHeadlessTreeRootItem","itemsPerValue","Map","value","headlessTree","size","getParent","key","_itemsPerValue_get","_itemsPerValue_get_parentValue","_itemsPerValue_get1","get","parentValue","has","add","props","propsWithoutParentValue","parentItem","process","env","NODE_ENV","console","error","itemType","_propsWithoutParentValue_itemType","item","getTreeItemProps","level","position","childrenValues","length","index","push","set","subtree","HeadlessTreeSubtreeGenerator","children","HeadlessTreeChildrenGenerator","ancestors","HeadlessTreeAncestorsGenerator","visibleItems","openItems","HeadlessTreeVisibleItemsGenerator","forEach","undefined","id","virtualTreeItems","childValue","parent","isItemVisible"],"mappings":"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"}
@@ -10,12 +10,11 @@ Object.defineProperty(exports, "flattenTree_unstable", {
10
10
  });
11
11
  function flattenTreeRecursive(items, parent, level = 1) {
12
12
  return items.reduce((acc, { subtree, ...item }, index)=>{
13
- var _parent;
14
13
  const flatTreeItem = {
15
14
  'aria-level': level,
16
15
  'aria-posinset': index + 1,
17
16
  'aria-setsize': items.length,
18
- parentValue: (_parent = parent) === null || _parent === void 0 ? void 0 : _parent.value,
17
+ parentValue: parent === null || parent === void 0 ? void 0 : parent.value,
19
18
  ...item
20
19
  };
21
20
  acc.push(flatTreeItem);
@@ -1 +1 @@
1
- {"version":3,"sources":["flattenTree.js"],"sourcesContent":["function flattenTreeRecursive(items, parent, level = 1) {\n return items.reduce((acc, { subtree, ...item }, index)=>{\n var _parent;\n const flatTreeItem = {\n 'aria-level': level,\n 'aria-posinset': index + 1,\n 'aria-setsize': items.length,\n parentValue: (_parent = parent) === null || _parent === void 0 ? void 0 : _parent.value,\n ...item\n };\n acc.push(flatTreeItem);\n if (subtree !== undefined) {\n acc.push(...flattenTreeRecursive(subtree, flatTreeItem, level + 1));\n }\n return acc;\n }, []);\n}\n/**\n * Converts a nested structure to a flat one which can be consumed by `useFlatTreeItems`\n * @example\n * ```tsx\n * const defaultItems = flattenTree_unstable([\n * {\n * children: <TreeItemLayout>level 1, item 1</TreeItemLayout>,\n * subtree: [\n * {\n * children: <TreeItemLayout>level 2, item 1</TreeItemLayout>,\n * },\n * {\n * children: <TreeItemLayout>level 2, item 2</TreeItemLayout>,\n * },\n * {\n * children: <TreeItemLayout>level 2, item 3</TreeItemLayout>,\n * },\n * ],\n * },\n * {\n * children: <TreeItemLayout>level 1, item 2</TreeItemLayout>,\n * subtree: [\n * {\n * children: <TreeItemLayout>level 2, item 1</TreeItemLayout>,\n * subtree: [\n * {\n * children: <TreeItemLayout>level 3, item 1</TreeItemLayout>,\n * subtree: [\n * {\n * children: <TreeItemLayout>level 4, item 1</TreeItemLayout>,\n * },\n * ],\n * },\n * ],\n * },\n * ],\n * },\n * ]);\n * ```\n */ // eslint-disable-next-line @typescript-eslint/naming-convention\nexport const flattenTree_unstable = (items)=>flattenTreeRecursive(items);\n"],"names":["flattenTree_unstable","flattenTreeRecursive","items","parent","level","reduce","acc","subtree","item","index","_parent","flatTreeItem","length","parentValue","value","push","undefined"],"mappings":";;;;+BAyDaA;;;eAAAA;;;AAzDb,SAASC,qBAAqBC,KAAK,EAAEC,MAAM,EAAEC,QAAQ,CAAC;IAClD,OAAOF,MAAMG,MAAM,CAAC,CAACC,KAAK,EAAEC,OAAO,EAAE,GAAGC,MAAM,EAAEC;QAC5C,IAAIC;QACJ,MAAMC,eAAe;YACjB,cAAcP;YACd,iBAAiBK,QAAQ;YACzB,gBAAgBP,MAAMU,MAAM;YAC5BC,aAAa,AAACH,CAAAA,UAAUP,MAAK,MAAO,QAAQO,YAAY,KAAK,IAAI,KAAK,IAAIA,QAAQI,KAAK;YACvF,GAAGN,IAAI;QACX;QACAF,IAAIS,IAAI,CAACJ;QACT,IAAIJ,YAAYS,WAAW;YACvBV,IAAIS,IAAI,IAAId,qBAAqBM,SAASI,cAAcP,QAAQ;QACpE;QACA,OAAOE;IACX,GAAG,EAAE;AACT;AAyCO,MAAMN,uBAAuB,CAACE,QAAQD,qBAAqBC"}
1
+ {"version":3,"sources":["flattenTree.js"],"sourcesContent":["function flattenTreeRecursive(items, parent, level = 1) {\n return items.reduce((acc, { subtree, ...item }, index)=>{\n const flatTreeItem = {\n 'aria-level': level,\n 'aria-posinset': index + 1,\n 'aria-setsize': items.length,\n parentValue: parent === null || parent === void 0 ? void 0 : parent.value,\n ...item\n };\n acc.push(flatTreeItem);\n if (subtree !== undefined) {\n acc.push(...flattenTreeRecursive(subtree, flatTreeItem, level + 1));\n }\n return acc;\n }, []);\n}\n/**\n * Converts a nested structure to a flat one which can be consumed by `useFlatTreeItems`\n * @example\n * ```tsx\n * const defaultItems = flattenTree_unstable([\n * {\n * children: <TreeItemLayout>level 1, item 1</TreeItemLayout>,\n * subtree: [\n * {\n * children: <TreeItemLayout>level 2, item 1</TreeItemLayout>,\n * },\n * {\n * children: <TreeItemLayout>level 2, item 2</TreeItemLayout>,\n * },\n * {\n * children: <TreeItemLayout>level 2, item 3</TreeItemLayout>,\n * },\n * ],\n * },\n * {\n * children: <TreeItemLayout>level 1, item 2</TreeItemLayout>,\n * subtree: [\n * {\n * children: <TreeItemLayout>level 2, item 1</TreeItemLayout>,\n * subtree: [\n * {\n * children: <TreeItemLayout>level 3, item 1</TreeItemLayout>,\n * subtree: [\n * {\n * children: <TreeItemLayout>level 4, item 1</TreeItemLayout>,\n * },\n * ],\n * },\n * ],\n * },\n * ],\n * },\n * ]);\n * ```\n */ // eslint-disable-next-line @typescript-eslint/naming-convention\nexport const flattenTree_unstable = (items)=>flattenTreeRecursive(items);\n"],"names":["flattenTree_unstable","flattenTreeRecursive","items","parent","level","reduce","acc","subtree","item","index","flatTreeItem","length","parentValue","value","push","undefined"],"mappings":";;;;+BAwDaA;;;eAAAA;;;AAxDb,SAASC,qBAAqBC,KAAK,EAAEC,MAAM,EAAEC,QAAQ,CAAC;IAClD,OAAOF,MAAMG,MAAM,CAAC,CAACC,KAAK,EAAEC,OAAO,EAAE,GAAGC,MAAM,EAAEC;QAC5C,MAAMC,eAAe;YACjB,cAAcN;YACd,iBAAiBK,QAAQ;YACzB,gBAAgBP,MAAMS,MAAM;YAC5BC,aAAaT,WAAW,QAAQA,WAAW,KAAK,IAAI,KAAK,IAAIA,OAAOU,KAAK;YACzE,GAAGL,IAAI;QACX;QACAF,IAAIQ,IAAI,CAACJ;QACT,IAAIH,YAAYQ,WAAW;YACvBT,IAAIQ,IAAI,IAAIb,qBAAqBM,SAASG,cAAcN,QAAQ;QACpE;QACA,OAAOE;IACX,GAAG,EAAE;AACT;AAyCO,MAAMN,uBAAuB,CAACE,QAAQD,qBAAqBC"}
@@ -10,8 +10,7 @@ Object.defineProperty(exports, "normalizeOpenItems", {
10
10
  });
11
11
  function normalizeOpenItems(openSubtrees, options) {
12
12
  if (!openSubtrees) {
13
- var _options;
14
- return ((_options = options) === null || _options === void 0 ? void 0 : _options.keepUndefined) ? undefined : [];
13
+ return (options === null || options === void 0 ? void 0 : options.keepUndefined) ? undefined : [];
15
14
  }
16
15
  return Array.isArray(openSubtrees) ? openSubtrees : [
17
16
  openSubtrees
@@ -1 +1 @@
1
- {"version":3,"sources":["normalizeOpenItems.js"],"sourcesContent":["export function normalizeOpenItems(openSubtrees, options) {\n if (!openSubtrees) {\n var _options;\n return ((_options = options) === null || _options === void 0 ? void 0 : _options.keepUndefined) ? undefined : [];\n }\n return Array.isArray(openSubtrees) ? openSubtrees : [\n openSubtrees\n ];\n}\n"],"names":["normalizeOpenItems","openSubtrees","options","_options","keepUndefined","undefined","Array","isArray"],"mappings":";;;;+BAAgBA;;;eAAAA;;;AAAT,SAASA,mBAAmBC,YAAY,EAAEC,OAAO;IACpD,IAAI,CAACD,cAAc;QACf,IAAIE;QACJ,OAAO,AAAC,CAAA,AAACA,CAAAA,WAAWD,OAAM,MAAO,QAAQC,aAAa,KAAK,IAAI,KAAK,IAAIA,SAASC,aAAa,AAAD,IAAKC,YAAY,EAAE;IACpH;IACA,OAAOC,MAAMC,OAAO,CAACN,gBAAgBA,eAAe;QAChDA;KACH;AACL"}
1
+ {"version":3,"sources":["normalizeOpenItems.js"],"sourcesContent":["export function normalizeOpenItems(openSubtrees, options) {\n if (!openSubtrees) {\n return (options === null || options === void 0 ? void 0 : options.keepUndefined) ? undefined : [];\n }\n return Array.isArray(openSubtrees) ? openSubtrees : [\n openSubtrees\n ];\n}\n"],"names":["normalizeOpenItems","openSubtrees","options","keepUndefined","undefined","Array","isArray"],"mappings":";;;;+BAAgBA;;;eAAAA;;;AAAT,SAASA,mBAAmBC,YAAY,EAAEC,OAAO;IACpD,IAAI,CAACD,cAAc;QACf,OAAO,AAACC,CAAAA,YAAY,QAAQA,YAAY,KAAK,IAAI,KAAK,IAAIA,QAAQC,aAAa,AAAD,IAAKC,YAAY,EAAE;IACrG;IACA,OAAOC,MAAMC,OAAO,CAACL,gBAAgBA,eAAe;QAChDA;KACH;AACL"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluentui/react-tree",
3
- "version": "9.2.1",
3
+ "version": "9.4.0",
4
4
  "description": "Tree component for Fluent UI React",
5
5
  "main": "lib-commonjs/index.js",
6
6
  "module": "lib/index.js",
@@ -36,20 +36,20 @@
36
36
  "@fluentui/scripts-cypress": "*"
37
37
  },
38
38
  "dependencies": {
39
- "@fluentui/keyboard-keys": "^9.0.4",
40
- "@fluentui/react-aria": "^9.3.36",
41
- "@fluentui/react-avatar": "^9.5.32",
42
- "@fluentui/react-button": "^9.3.41",
43
- "@fluentui/react-checkbox": "^9.1.42",
44
- "@fluentui/react-context-selector": "^9.1.34",
45
- "@fluentui/react-icons": "^2.0.207",
46
- "@fluentui/react-portal": "^9.3.16",
47
- "@fluentui/react-radio": "^9.1.42",
48
- "@fluentui/react-shared-contexts": "^9.8.1",
49
- "@fluentui/react-tabster": "^9.12.11",
50
- "@fluentui/react-theme": "^9.1.12",
51
- "@fluentui/react-utilities": "^9.13.3",
52
- "@fluentui/react-jsx-runtime": "^9.0.10",
39
+ "@fluentui/keyboard-keys": "^9.0.6",
40
+ "@fluentui/react-aria": "^9.3.38",
41
+ "@fluentui/react-avatar": "^9.5.35",
42
+ "@fluentui/react-button": "^9.3.44",
43
+ "@fluentui/react-checkbox": "^9.1.45",
44
+ "@fluentui/react-context-selector": "^9.1.36",
45
+ "@fluentui/react-icons": "^2.0.217",
46
+ "@fluentui/react-portal": "^9.3.19",
47
+ "@fluentui/react-radio": "^9.1.45",
48
+ "@fluentui/react-shared-contexts": "^9.9.2",
49
+ "@fluentui/react-tabster": "^9.13.2",
50
+ "@fluentui/react-theme": "^9.1.14",
51
+ "@fluentui/react-utilities": "^9.13.5",
52
+ "@fluentui/react-jsx-runtime": "^9.0.12",
53
53
  "@griffel/react": "^1.5.14",
54
54
  "@swc/helpers": "^0.5.1"
55
55
  },