@fluentui/react-tree 9.1.1 → 9.3.1

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 (79) hide show
  1. package/CHANGELOG.json +341 -1
  2. package/CHANGELOG.md +90 -2
  3. package/dist/index.d.ts +30 -3
  4. package/lib/FlatTreeItem.js +1 -0
  5. package/lib/FlatTreeItem.js.map +1 -0
  6. package/lib/components/FlatTree/useFlatTree.js +61 -1
  7. package/lib/components/FlatTree/useFlatTree.js.map +1 -1
  8. package/lib/components/FlatTree/useFlatTreeNavigation.js +28 -14
  9. package/lib/components/FlatTree/useFlatTreeNavigation.js.map +1 -1
  10. package/lib/components/FlatTree/useHeadlessFlatTree.js +22 -19
  11. package/lib/components/FlatTree/useHeadlessFlatTree.js.map +1 -1
  12. package/lib/components/FlatTreeItem/FlatTreeItem.js +4 -0
  13. package/lib/components/FlatTreeItem/FlatTreeItem.js.map +1 -0
  14. package/lib/components/FlatTreeItem/FlatTreeItem.types.js +1 -0
  15. package/lib/components/FlatTreeItem/FlatTreeItem.types.js.map +1 -0
  16. package/lib/components/FlatTreeItem/index.js +2 -0
  17. package/lib/components/FlatTreeItem/index.js.map +1 -0
  18. package/lib/components/Tree/Tree.types.js.map +1 -1
  19. package/lib/components/Tree/useTree.js +28 -19
  20. package/lib/components/Tree/useTree.js.map +1 -1
  21. package/lib/components/Tree/useTreeContextValues.js +2 -1
  22. package/lib/components/Tree/useTreeContextValues.js.map +1 -1
  23. package/lib/components/TreeItem/TreeItem.types.js.map +1 -1
  24. package/lib/components/TreeItem/useTreeItem.js +65 -22
  25. package/lib/components/TreeItem/useTreeItem.js.map +1 -1
  26. package/lib/components/TreeItemLayout/useTreeItemLayout.js +2 -3
  27. package/lib/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
  28. package/lib/contexts/treeContext.js +1 -0
  29. package/lib/contexts/treeContext.js.map +1 -1
  30. package/lib/hooks/useRootTree.js +24 -78
  31. package/lib/hooks/useRootTree.js.map +1 -1
  32. package/lib/hooks/useSubtree.js.map +1 -1
  33. package/lib/index.js +4 -2
  34. package/lib/index.js.map +1 -1
  35. package/lib/utils/createHTMLElementWalker.js +4 -5
  36. package/lib/utils/createHTMLElementWalker.js.map +1 -1
  37. package/lib/utils/createHeadlessTree.js +5 -3
  38. package/lib/utils/createHeadlessTree.js.map +1 -1
  39. package/lib/utils/flattenTree.js +1 -2
  40. package/lib/utils/flattenTree.js.map +1 -1
  41. package/lib/utils/normalizeOpenItems.js +1 -2
  42. package/lib/utils/normalizeOpenItems.js.map +1 -1
  43. package/lib-commonjs/FlatTreeItem.js +6 -0
  44. package/lib-commonjs/FlatTreeItem.js.map +1 -0
  45. package/lib-commonjs/components/FlatTree/useFlatTree.js +61 -1
  46. package/lib-commonjs/components/FlatTree/useFlatTree.js.map +1 -1
  47. package/lib-commonjs/components/FlatTree/useFlatTreeNavigation.js +27 -13
  48. package/lib-commonjs/components/FlatTree/useFlatTreeNavigation.js.map +1 -1
  49. package/lib-commonjs/components/FlatTree/useHeadlessFlatTree.js +22 -19
  50. package/lib-commonjs/components/FlatTree/useHeadlessFlatTree.js.map +1 -1
  51. package/lib-commonjs/components/FlatTreeItem/FlatTreeItem.js +12 -0
  52. package/lib-commonjs/components/FlatTreeItem/FlatTreeItem.js.map +1 -0
  53. package/lib-commonjs/components/FlatTreeItem/FlatTreeItem.types.js +4 -0
  54. package/lib-commonjs/components/FlatTreeItem/FlatTreeItem.types.js.map +1 -0
  55. package/lib-commonjs/components/FlatTreeItem/index.js +7 -0
  56. package/lib-commonjs/components/FlatTreeItem/index.js.map +1 -0
  57. package/lib-commonjs/components/Tree/useTree.js +28 -19
  58. package/lib-commonjs/components/Tree/useTree.js.map +1 -1
  59. package/lib-commonjs/components/Tree/useTreeContextValues.js +2 -1
  60. package/lib-commonjs/components/Tree/useTreeContextValues.js.map +1 -1
  61. package/lib-commonjs/components/TreeItem/useTreeItem.js +64 -21
  62. package/lib-commonjs/components/TreeItem/useTreeItem.js.map +1 -1
  63. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js +2 -3
  64. package/lib-commonjs/components/TreeItemLayout/useTreeItemLayout.js.map +1 -1
  65. package/lib-commonjs/contexts/treeContext.js +1 -0
  66. package/lib-commonjs/contexts/treeContext.js.map +1 -1
  67. package/lib-commonjs/hooks/useRootTree.js +24 -78
  68. package/lib-commonjs/hooks/useRootTree.js.map +1 -1
  69. package/lib-commonjs/index.js +11 -6
  70. package/lib-commonjs/index.js.map +1 -1
  71. package/lib-commonjs/utils/createHTMLElementWalker.js +4 -5
  72. package/lib-commonjs/utils/createHTMLElementWalker.js.map +1 -1
  73. package/lib-commonjs/utils/createHeadlessTree.js +5 -3
  74. package/lib-commonjs/utils/createHeadlessTree.js.map +1 -1
  75. package/lib-commonjs/utils/flattenTree.js +1 -2
  76. package/lib-commonjs/utils/flattenTree.js.map +1 -1
  77. package/lib-commonjs/utils/normalizeOpenItems.js +1 -2
  78. package/lib-commonjs/utils/normalizeOpenItems.js.map +1 -1
  79. package/package.json +15 -15
@@ -11,10 +11,10 @@ Object.defineProperty(exports, "useRootTree", {
11
11
  const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
12
12
  const _reactutilities = require("@fluentui/react-utilities");
13
13
  const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
14
- const _reactdom = /*#__PURE__*/ _interop_require_wildcard._(require("react-dom"));
15
14
  const _createOpenItems = require("../utils/createOpenItems");
16
15
  const _createCheckedItems = require("../utils/createCheckedItems");
17
16
  const _tokens = require("../utils/tokens");
17
+ const _useControllableOpenItems = require("./useControllableOpenItems");
18
18
  function useRootTree(props, ref) {
19
19
  warnIfNoProperPropsRootTree(props);
20
20
  const { appearance = 'subtle', size = 'medium', selectionMode = 'none' } = props;
@@ -25,16 +25,20 @@ function useRootTree(props, ref) {
25
25
  props.checkedItems
26
26
  ]);
27
27
  const requestOpenChange = (data)=>{
28
- var _props_onOpenChange, _props;
29
- return (_props_onOpenChange = (_props = props).onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(_props, data.event, data);
28
+ var _props_onOpenChange;
29
+ const nextOpenItems = (0, _useControllableOpenItems.createNextOpenItems)(data, openItems);
30
+ (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, data.event, {
31
+ ...data,
32
+ openItems: nextOpenItems.dangerouslyGetInternalSet_unstable()
33
+ });
30
34
  };
31
35
  const requestCheckedChange = (data)=>{
32
- var _props_onCheckedChange, _props;
33
- return (_props_onCheckedChange = (_props = props).onCheckedChange) === null || _props_onCheckedChange === void 0 ? void 0 : _props_onCheckedChange.call(_props, data.event, data);
36
+ var _props_onCheckedChange;
37
+ return (_props_onCheckedChange = props.onCheckedChange) === null || _props_onCheckedChange === void 0 ? void 0 : _props_onCheckedChange.call(props, data.event, data);
34
38
  };
35
39
  const requestNavigation = (data)=>{
36
- var _props_onNavigation, _props;
37
- (_props_onNavigation = (_props = props).onNavigation) === null || _props_onNavigation === void 0 ? void 0 : _props_onNavigation.call(_props, data.event, data);
40
+ var _props_onNavigation;
41
+ (_props_onNavigation = props.onNavigation) === null || _props_onNavigation === void 0 ? void 0 : _props_onNavigation.call(props, data.event, data);
38
42
  switch(data.type){
39
43
  case _tokens.treeDataTypes.ArrowDown:
40
44
  case _tokens.treeDataTypes.ArrowUp:
@@ -46,79 +50,21 @@ function useRootTree(props, ref) {
46
50
  }
47
51
  };
48
52
  const requestTreeResponse = (0, _reactutilities.useEventCallback)((request)=>{
49
- switch(request.type){
50
- case _tokens.treeDataTypes.Click:
51
- case _tokens.treeDataTypes.ExpandIconClick:
52
- {
53
- return _reactdom.unstable_batchedUpdates(()=>{
54
- requestOpenChange({
55
- ...request,
56
- open: request.itemType === 'branch' && !openItems.has(request.value),
57
- openItems: openItems.dangerouslyGetInternalSet_unstable()
58
- });
59
- requestNavigation({
60
- ...request,
61
- type: _tokens.treeDataTypes.Click
62
- });
63
- });
64
- }
65
- case _tokens.treeDataTypes.ArrowRight:
66
- {
67
- if (request.itemType === 'leaf') {
68
- return;
69
- }
70
- const open = openItems.has(request.value);
71
- if (!open) {
72
- return requestOpenChange({
73
- ...request,
74
- open: true,
75
- openItems: openItems.dangerouslyGetInternalSet_unstable()
76
- });
77
- }
78
- return requestNavigation(request);
79
- }
80
- case _tokens.treeDataTypes.Enter:
81
- {
82
- const open = openItems.has(request.value);
83
- return requestOpenChange({
84
- ...request,
85
- open: request.itemType === 'branch' && !open,
86
- openItems: openItems.dangerouslyGetInternalSet_unstable()
87
- });
88
- }
89
- case _tokens.treeDataTypes.ArrowLeft:
90
- {
91
- const open = openItems.has(request.value);
92
- if (open && request.itemType === 'branch') {
93
- return requestOpenChange({
94
- ...request,
95
- open: false,
96
- type: _tokens.treeDataTypes.ArrowLeft,
97
- openItems: openItems.dangerouslyGetInternalSet_unstable()
98
- });
99
- }
100
- return requestNavigation({
101
- ...request,
102
- type: _tokens.treeDataTypes.ArrowLeft
103
- });
104
- }
105
- case _tokens.treeDataTypes.End:
106
- case _tokens.treeDataTypes.Home:
107
- case _tokens.treeDataTypes.ArrowUp:
108
- case _tokens.treeDataTypes.ArrowDown:
109
- case _tokens.treeDataTypes.TypeAhead:
110
- return requestNavigation({
53
+ switch(request.requestType){
54
+ case 'navigate':
55
+ return requestNavigation(request);
56
+ case 'open':
57
+ return requestOpenChange({
58
+ ...request,
59
+ open: request.itemType === 'branch' && !openItems.has(request.value),
60
+ openItems: openItems.dangerouslyGetInternalSet_unstable()
61
+ });
62
+ case 'selection':
63
+ return requestCheckedChange({
111
64
  ...request,
112
- target: request.event.currentTarget
65
+ selectionMode: selectionMode,
66
+ checkedItems: checkedItems.dangerouslyGetInternalMap_unstable()
113
67
  });
114
- case _tokens.treeDataTypes.Change:
115
- {
116
- return requestCheckedChange({
117
- ...request,
118
- selectionMode: selectionMode,
119
- checkedItems: checkedItems.dangerouslyGetInternalMap_unstable()
120
- });
121
- }
122
68
  }
123
69
  });
124
70
  return {
@@ -1 +1 @@
1
- {"version":3,"sources":["useRootTree.js"],"sourcesContent":["import { getNativeElementProps, useEventCallback, slot } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createOpenItems } from '../utils/createOpenItems';\nimport { createCheckedItems } from '../utils/createCheckedItems';\nimport { treeDataTypes } from '../utils/tokens';\n/**\n * Create the state required to render the root level tree.\n *\n * @param props - props from this instance of tree\n * @param ref - reference to root HTMLElement of tree\n */ export function useRootTree(props, ref) {\n warnIfNoProperPropsRootTree(props);\n const { appearance = 'subtle', size = 'medium', selectionMode = 'none' } = props;\n const openItems = React.useMemo(()=>createOpenItems(props.openItems), [\n props.openItems\n ]);\n const checkedItems = React.useMemo(()=>createCheckedItems(props.checkedItems), [\n props.checkedItems\n ]);\n const requestOpenChange = (data)=>{\n var _props_onOpenChange, _props;\n return (_props_onOpenChange = (_props = props).onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(_props, data.event, data);\n };\n const requestCheckedChange = (data)=>{\n var _props_onCheckedChange, _props;\n return (_props_onCheckedChange = (_props = props).onCheckedChange) === null || _props_onCheckedChange === void 0 ? void 0 : _props_onCheckedChange.call(_props, data.event, data);\n };\n const requestNavigation = (data)=>{\n var _props_onNavigation, _props;\n (_props_onNavigation = (_props = props).onNavigation) === null || _props_onNavigation === void 0 ? void 0 : _props_onNavigation.call(_props, data.event, data);\n switch(data.type){\n case treeDataTypes.ArrowDown:\n case treeDataTypes.ArrowUp:\n case treeDataTypes.Home:\n case treeDataTypes.End:\n // stop the default behavior of the event\n // which is to scroll the page\n data.event.preventDefault();\n }\n };\n const requestTreeResponse = useEventCallback((request)=>{\n switch(request.type){\n case treeDataTypes.Click:\n case treeDataTypes.ExpandIconClick:\n {\n return ReactDOM.unstable_batchedUpdates(()=>{\n requestOpenChange({\n ...request,\n open: request.itemType === 'branch' && !openItems.has(request.value),\n openItems: openItems.dangerouslyGetInternalSet_unstable()\n });\n requestNavigation({\n ...request,\n type: treeDataTypes.Click\n });\n });\n }\n case treeDataTypes.ArrowRight:\n {\n if (request.itemType === 'leaf') {\n return;\n }\n const open = openItems.has(request.value);\n if (!open) {\n return requestOpenChange({\n ...request,\n open: true,\n openItems: openItems.dangerouslyGetInternalSet_unstable()\n });\n }\n return requestNavigation(request);\n }\n case treeDataTypes.Enter:\n {\n const open = openItems.has(request.value);\n return requestOpenChange({\n ...request,\n open: request.itemType === 'branch' && !open,\n openItems: openItems.dangerouslyGetInternalSet_unstable()\n });\n }\n case treeDataTypes.ArrowLeft:\n {\n const open = openItems.has(request.value);\n if (open && request.itemType === 'branch') {\n return requestOpenChange({\n ...request,\n open: false,\n type: treeDataTypes.ArrowLeft,\n openItems: openItems.dangerouslyGetInternalSet_unstable()\n });\n }\n return requestNavigation({\n ...request,\n type: treeDataTypes.ArrowLeft\n });\n }\n case treeDataTypes.End:\n case treeDataTypes.Home:\n case treeDataTypes.ArrowUp:\n case treeDataTypes.ArrowDown:\n case treeDataTypes.TypeAhead:\n return requestNavigation({\n ...request,\n target: request.event.currentTarget\n });\n case treeDataTypes.Change:\n {\n return requestCheckedChange({\n ...request,\n selectionMode: selectionMode,\n checkedItems: checkedItems.dangerouslyGetInternalMap_unstable()\n });\n }\n }\n });\n return {\n components: {\n root: 'div'\n },\n selectionMode,\n open: true,\n appearance,\n size,\n level: 1,\n openItems,\n checkedItems,\n requestTreeResponse,\n root: slot.always(getNativeElementProps('div', {\n ref,\n role: 'tree',\n 'aria-multiselectable': selectionMode === 'multiselect' ? true : undefined,\n ...props\n }), {\n elementType: 'div'\n })\n };\n}\nfunction warnIfNoProperPropsRootTree(props) {\n if (process.env.NODE_ENV === 'development') {\n if (!props['aria-label'] && !props['aria-labelledby']) {\n // eslint-disable-next-line no-console\n console.warn(`@fluentui/react-tree [useRootTree]:\nTree must have either a \\`aria-label\\` or \\`aria-labelledby\\` property defined`);\n }\n }\n}\n"],"names":["useRootTree","props","ref","warnIfNoProperPropsRootTree","appearance","size","selectionMode","openItems","React","useMemo","createOpenItems","checkedItems","createCheckedItems","requestOpenChange","data","_props_onOpenChange","_props","onOpenChange","call","event","requestCheckedChange","_props_onCheckedChange","onCheckedChange","requestNavigation","_props_onNavigation","onNavigation","type","treeDataTypes","ArrowDown","ArrowUp","Home","End","preventDefault","requestTreeResponse","useEventCallback","request","Click","ExpandIconClick","ReactDOM","unstable_batchedUpdates","open","itemType","has","value","dangerouslyGetInternalSet_unstable","ArrowRight","Enter","ArrowLeft","TypeAhead","target","currentTarget","Change","dangerouslyGetInternalMap_unstable","components","root","level","slot","always","getNativeElementProps","role","undefined","elementType","process","env","NODE_ENV","console","warn"],"mappings":";;;;+BAWoBA;;;eAAAA;;;;gCAX0C;iEACvC;oEACG;iCACM;oCACG;wBACL;AAMnB,SAASA,YAAYC,KAAK,EAAEC,GAAG;IACtCC,4BAA4BF;IAC5B,MAAM,EAAEG,aAAa,QAAQ,EAAEC,OAAO,QAAQ,EAAEC,gBAAgB,MAAM,EAAE,GAAGL;IAC3E,MAAMM,YAAYC,OAAMC,OAAO,CAAC,IAAIC,IAAAA,gCAAe,EAACT,MAAMM,SAAS,GAAG;QAClEN,MAAMM,SAAS;KAClB;IACD,MAAMI,eAAeH,OAAMC,OAAO,CAAC,IAAIG,IAAAA,sCAAkB,EAACX,MAAMU,YAAY,GAAG;QAC3EV,MAAMU,YAAY;KACrB;IACD,MAAME,oBAAoB,CAACC;QACvB,IAAIC,qBAAqBC;QACzB,OAAO,AAACD,CAAAA,sBAAsB,AAACC,CAAAA,SAASf,KAAI,EAAGgB,YAAY,AAAD,MAAO,QAAQF,wBAAwB,KAAK,IAAI,KAAK,IAAIA,oBAAoBG,IAAI,CAACF,QAAQF,KAAKK,KAAK,EAAEL;IACpK;IACA,MAAMM,uBAAuB,CAACN;QAC1B,IAAIO,wBAAwBL;QAC5B,OAAO,AAACK,CAAAA,yBAAyB,AAACL,CAAAA,SAASf,KAAI,EAAGqB,eAAe,AAAD,MAAO,QAAQD,2BAA2B,KAAK,IAAI,KAAK,IAAIA,uBAAuBH,IAAI,CAACF,QAAQF,KAAKK,KAAK,EAAEL;IAChL;IACA,MAAMS,oBAAoB,CAACT;QACvB,IAAIU,qBAAqBR;QACxBQ,CAAAA,sBAAsB,AAACR,CAAAA,SAASf,KAAI,EAAGwB,YAAY,AAAD,MAAO,QAAQD,wBAAwB,KAAK,IAAI,KAAK,IAAIA,oBAAoBN,IAAI,CAACF,QAAQF,KAAKK,KAAK,EAAEL;QACzJ,OAAOA,KAAKY,IAAI;YACZ,KAAKC,qBAAa,CAACC,SAAS;YAC5B,KAAKD,qBAAa,CAACE,OAAO;YAC1B,KAAKF,qBAAa,CAACG,IAAI;YACvB,KAAKH,qBAAa,CAACI,GAAG;gBAClB,yCAAyC;gBACzC,8BAA8B;gBAC9BjB,KAAKK,KAAK,CAACa,cAAc;QACjC;IACJ;IACA,MAAMC,sBAAsBC,IAAAA,gCAAgB,EAAC,CAACC;QAC1C,OAAOA,QAAQT,IAAI;YACf,KAAKC,qBAAa,CAACS,KAAK;YACxB,KAAKT,qBAAa,CAACU,eAAe;gBAC9B;oBACI,OAAOC,UAASC,uBAAuB,CAAC;wBACpC1B,kBAAkB;4BACd,GAAGsB,OAAO;4BACVK,MAAML,QAAQM,QAAQ,KAAK,YAAY,CAAClC,UAAUmC,GAAG,CAACP,QAAQQ,KAAK;4BACnEpC,WAAWA,UAAUqC,kCAAkC;wBAC3D;wBACArB,kBAAkB;4BACd,GAAGY,OAAO;4BACVT,MAAMC,qBAAa,CAACS,KAAK;wBAC7B;oBACJ;gBACJ;YACJ,KAAKT,qBAAa,CAACkB,UAAU;gBACzB;oBACI,IAAIV,QAAQM,QAAQ,KAAK,QAAQ;wBAC7B;oBACJ;oBACA,MAAMD,OAAOjC,UAAUmC,GAAG,CAACP,QAAQQ,KAAK;oBACxC,IAAI,CAACH,MAAM;wBACP,OAAO3B,kBAAkB;4BACrB,GAAGsB,OAAO;4BACVK,MAAM;4BACNjC,WAAWA,UAAUqC,kCAAkC;wBAC3D;oBACJ;oBACA,OAAOrB,kBAAkBY;gBAC7B;YACJ,KAAKR,qBAAa,CAACmB,KAAK;gBACpB;oBACI,MAAMN,OAAOjC,UAAUmC,GAAG,CAACP,QAAQQ,KAAK;oBACxC,OAAO9B,kBAAkB;wBACrB,GAAGsB,OAAO;wBACVK,MAAML,QAAQM,QAAQ,KAAK,YAAY,CAACD;wBACxCjC,WAAWA,UAAUqC,kCAAkC;oBAC3D;gBACJ;YACJ,KAAKjB,qBAAa,CAACoB,SAAS;gBACxB;oBACI,MAAMP,OAAOjC,UAAUmC,GAAG,CAACP,QAAQQ,KAAK;oBACxC,IAAIH,QAAQL,QAAQM,QAAQ,KAAK,UAAU;wBACvC,OAAO5B,kBAAkB;4BACrB,GAAGsB,OAAO;4BACVK,MAAM;4BACNd,MAAMC,qBAAa,CAACoB,SAAS;4BAC7BxC,WAAWA,UAAUqC,kCAAkC;wBAC3D;oBACJ;oBACA,OAAOrB,kBAAkB;wBACrB,GAAGY,OAAO;wBACVT,MAAMC,qBAAa,CAACoB,SAAS;oBACjC;gBACJ;YACJ,KAAKpB,qBAAa,CAACI,GAAG;YACtB,KAAKJ,qBAAa,CAACG,IAAI;YACvB,KAAKH,qBAAa,CAACE,OAAO;YAC1B,KAAKF,qBAAa,CAACC,SAAS;YAC5B,KAAKD,qBAAa,CAACqB,SAAS;gBACxB,OAAOzB,kBAAkB;oBACrB,GAAGY,OAAO;oBACVc,QAAQd,QAAQhB,KAAK,CAAC+B,aAAa;gBACvC;YACJ,KAAKvB,qBAAa,CAACwB,MAAM;gBACrB;oBACI,OAAO/B,qBAAqB;wBACxB,GAAGe,OAAO;wBACV7B,eAAeA;wBACfK,cAAcA,aAAayC,kCAAkC;oBACjE;gBACJ;QACR;IACJ;IACA,OAAO;QACHC,YAAY;YACRC,MAAM;QACV;QACAhD;QACAkC,MAAM;QACNpC;QACAC;QACAkD,OAAO;QACPhD;QACAI;QACAsB;QACAqB,MAAME,oBAAI,CAACC,MAAM,CAACC,IAAAA,qCAAqB,EAAC,OAAO;YAC3CxD;YACAyD,MAAM;YACN,wBAAwBrD,kBAAkB,gBAAgB,OAAOsD;YACjE,GAAG3D,KAAK;QACZ,IAAI;YACA4D,aAAa;QACjB;IACJ;AACJ;AACA,SAAS1D,4BAA4BF,KAAK;IACtC,IAAI6D,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QACxC,IAAI,CAAC/D,KAAK,CAAC,aAAa,IAAI,CAACA,KAAK,CAAC,kBAAkB,EAAE;YACnD,sCAAsC;YACtCgE,QAAQC,IAAI,CAAC,CAAC;8EACoD,CAAC;QACvE;IACJ;AACJ"}
1
+ {"version":3,"sources":["useRootTree.js"],"sourcesContent":["import { getNativeElementProps, useEventCallback, slot } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { createOpenItems } from '../utils/createOpenItems';\nimport { createCheckedItems } from '../utils/createCheckedItems';\nimport { treeDataTypes } from '../utils/tokens';\nimport { createNextOpenItems } from './useControllableOpenItems';\n/**\n * Create the state required to render the root level tree.\n *\n * @param props - props from this instance of tree\n * @param ref - reference to root HTMLElement of tree\n */ export function useRootTree(props, ref) {\n warnIfNoProperPropsRootTree(props);\n const { appearance = 'subtle', size = 'medium', selectionMode = 'none' } = props;\n const openItems = React.useMemo(()=>createOpenItems(props.openItems), [\n props.openItems\n ]);\n const checkedItems = React.useMemo(()=>createCheckedItems(props.checkedItems), [\n props.checkedItems\n ]);\n const requestOpenChange = (data)=>{\n var _props_onOpenChange;\n const nextOpenItems = createNextOpenItems(data, openItems);\n (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, data.event, {\n ...data,\n openItems: nextOpenItems.dangerouslyGetInternalSet_unstable()\n });\n };\n const requestCheckedChange = (data)=>{\n var _props_onCheckedChange;\n return (_props_onCheckedChange = props.onCheckedChange) === null || _props_onCheckedChange === void 0 ? void 0 : _props_onCheckedChange.call(props, data.event, data);\n };\n const requestNavigation = (data)=>{\n var _props_onNavigation;\n (_props_onNavigation = props.onNavigation) === null || _props_onNavigation === void 0 ? void 0 : _props_onNavigation.call(props, data.event, data);\n switch(data.type){\n case treeDataTypes.ArrowDown:\n case treeDataTypes.ArrowUp:\n case treeDataTypes.Home:\n case treeDataTypes.End:\n // stop the default behavior of the event\n // which is to scroll the page\n data.event.preventDefault();\n }\n };\n const requestTreeResponse = useEventCallback((request)=>{\n switch(request.requestType){\n case 'navigate':\n return requestNavigation(request);\n case 'open':\n return requestOpenChange({\n ...request,\n open: request.itemType === 'branch' && !openItems.has(request.value),\n openItems: openItems.dangerouslyGetInternalSet_unstable()\n });\n case 'selection':\n return requestCheckedChange({\n ...request,\n selectionMode: selectionMode,\n checkedItems: checkedItems.dangerouslyGetInternalMap_unstable()\n });\n }\n });\n return {\n components: {\n root: 'div'\n },\n selectionMode,\n open: true,\n appearance,\n size,\n level: 1,\n openItems,\n checkedItems,\n requestTreeResponse,\n root: slot.always(getNativeElementProps('div', {\n ref,\n role: 'tree',\n 'aria-multiselectable': selectionMode === 'multiselect' ? true : undefined,\n ...props\n }), {\n elementType: 'div'\n })\n };\n}\nfunction warnIfNoProperPropsRootTree(props) {\n if (process.env.NODE_ENV === 'development') {\n if (!props['aria-label'] && !props['aria-labelledby']) {\n // eslint-disable-next-line no-console\n console.warn(`@fluentui/react-tree [useRootTree]:\nTree must have either a \\`aria-label\\` or \\`aria-labelledby\\` property defined`);\n }\n }\n}\n"],"names":["useRootTree","props","ref","warnIfNoProperPropsRootTree","appearance","size","selectionMode","openItems","React","useMemo","createOpenItems","checkedItems","createCheckedItems","requestOpenChange","data","_props_onOpenChange","nextOpenItems","createNextOpenItems","onOpenChange","call","event","dangerouslyGetInternalSet_unstable","requestCheckedChange","_props_onCheckedChange","onCheckedChange","requestNavigation","_props_onNavigation","onNavigation","type","treeDataTypes","ArrowDown","ArrowUp","Home","End","preventDefault","requestTreeResponse","useEventCallback","request","requestType","open","itemType","has","value","dangerouslyGetInternalMap_unstable","components","root","level","slot","always","getNativeElementProps","role","undefined","elementType","process","env","NODE_ENV","console","warn"],"mappings":";;;;+BAWoBA;;;eAAAA;;;;gCAX0C;iEACvC;iCACS;oCACG;wBACL;0CACM;AAMzB,SAASA,YAAYC,KAAK,EAAEC,GAAG;IACtCC,4BAA4BF;IAC5B,MAAM,EAAEG,aAAa,QAAQ,EAAEC,OAAO,QAAQ,EAAEC,gBAAgB,MAAM,EAAE,GAAGL;IAC3E,MAAMM,YAAYC,OAAMC,OAAO,CAAC,IAAIC,IAAAA,gCAAe,EAACT,MAAMM,SAAS,GAAG;QAClEN,MAAMM,SAAS;KAClB;IACD,MAAMI,eAAeH,OAAMC,OAAO,CAAC,IAAIG,IAAAA,sCAAkB,EAACX,MAAMU,YAAY,GAAG;QAC3EV,MAAMU,YAAY;KACrB;IACD,MAAME,oBAAoB,CAACC;QACvB,IAAIC;QACJ,MAAMC,gBAAgBC,IAAAA,6CAAmB,EAACH,MAAMP;QAC/CQ,CAAAA,sBAAsBd,MAAMiB,YAAY,AAAD,MAAO,QAAQH,wBAAwB,KAAK,IAAI,KAAK,IAAIA,oBAAoBI,IAAI,CAAClB,OAAOa,KAAKM,KAAK,EAAE;YACzI,GAAGN,IAAI;YACPP,WAAWS,cAAcK,kCAAkC;QAC/D;IACJ;IACA,MAAMC,uBAAuB,CAACR;QAC1B,IAAIS;QACJ,OAAO,AAACA,CAAAA,yBAAyBtB,MAAMuB,eAAe,AAAD,MAAO,QAAQD,2BAA2B,KAAK,IAAI,KAAK,IAAIA,uBAAuBJ,IAAI,CAAClB,OAAOa,KAAKM,KAAK,EAAEN;IACpK;IACA,MAAMW,oBAAoB,CAACX;QACvB,IAAIY;QACHA,CAAAA,sBAAsBzB,MAAM0B,YAAY,AAAD,MAAO,QAAQD,wBAAwB,KAAK,IAAI,KAAK,IAAIA,oBAAoBP,IAAI,CAAClB,OAAOa,KAAKM,KAAK,EAAEN;QAC7I,OAAOA,KAAKc,IAAI;YACZ,KAAKC,qBAAa,CAACC,SAAS;YAC5B,KAAKD,qBAAa,CAACE,OAAO;YAC1B,KAAKF,qBAAa,CAACG,IAAI;YACvB,KAAKH,qBAAa,CAACI,GAAG;gBAClB,yCAAyC;gBACzC,8BAA8B;gBAC9BnB,KAAKM,KAAK,CAACc,cAAc;QACjC;IACJ;IACA,MAAMC,sBAAsBC,IAAAA,gCAAgB,EAAC,CAACC;QAC1C,OAAOA,QAAQC,WAAW;YACtB,KAAK;gBACD,OAAOb,kBAAkBY;YAC7B,KAAK;gBACD,OAAOxB,kBAAkB;oBACrB,GAAGwB,OAAO;oBACVE,MAAMF,QAAQG,QAAQ,KAAK,YAAY,CAACjC,UAAUkC,GAAG,CAACJ,QAAQK,KAAK;oBACnEnC,WAAWA,UAAUc,kCAAkC;gBAC3D;YACJ,KAAK;gBACD,OAAOC,qBAAqB;oBACxB,GAAGe,OAAO;oBACV/B,eAAeA;oBACfK,cAAcA,aAAagC,kCAAkC;gBACjE;QACR;IACJ;IACA,OAAO;QACHC,YAAY;YACRC,MAAM;QACV;QACAvC;QACAiC,MAAM;QACNnC;QACAC;QACAyC,OAAO;QACPvC;QACAI;QACAwB;QACAU,MAAME,oBAAI,CAACC,MAAM,CAACC,IAAAA,qCAAqB,EAAC,OAAO;YAC3C/C;YACAgD,MAAM;YACN,wBAAwB5C,kBAAkB,gBAAgB,OAAO6C;YACjE,GAAGlD,KAAK;QACZ,IAAI;YACAmD,aAAa;QACjB;IACJ;AACJ;AACA,SAASjD,4BAA4BF,KAAK;IACtC,IAAIoD,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QACxC,IAAI,CAACtD,KAAK,CAAC,aAAa,IAAI,CAACA,KAAK,CAAC,kBAAkB,EAAE;YACnD,sCAAsC;YACtCuD,QAAQC,IAAI,CAAC,CAAC;8EACoD,CAAC;QACvE;IACJ;AACJ"}
@@ -45,12 +45,6 @@ _export(exports, {
45
45
  renderFlatTree_unstable: function() {
46
46
  return _FlatTree.renderFlatTree_unstable;
47
47
  },
48
- useHeadlessFlatTree_unstable: function() {
49
- return _FlatTree.useHeadlessFlatTree_unstable;
50
- },
51
- TreeProvider: function() {
52
- return _contexts.TreeProvider;
53
- },
54
48
  useTreeContext_unstable: function() {
55
49
  return _contexts.useTreeContext_unstable;
56
50
  },
@@ -60,9 +54,15 @@ _export(exports, {
60
54
  TreeItemProvider: function() {
61
55
  return _contexts.TreeItemProvider;
62
56
  },
57
+ TreeProvider: function() {
58
+ return _contexts.TreeProvider;
59
+ },
63
60
  treeItemLevelToken: function() {
64
61
  return _tokens.treeItemLevelToken;
65
62
  },
63
+ useHeadlessFlatTree_unstable: function() {
64
+ return _useHeadlessFlatTree.useHeadlessFlatTree_unstable;
65
+ },
66
66
  TreeItem: function() {
67
67
  return _TreeItem.TreeItem;
68
68
  },
@@ -81,6 +81,9 @@ _export(exports, {
81
81
  useTreeItem_unstable: function() {
82
82
  return _TreeItem.useTreeItem_unstable;
83
83
  },
84
+ FlatTreeItem: function() {
85
+ return _FlatTreeItem.FlatTreeItem;
86
+ },
84
87
  TreeItemLayout: function() {
85
88
  return _TreeItemLayout.TreeItemLayout;
86
89
  },
@@ -119,7 +122,9 @@ const _Tree = require("./Tree");
119
122
  const _FlatTree = require("./FlatTree");
120
123
  const _contexts = require("./contexts");
121
124
  const _tokens = require("./utils/tokens");
125
+ const _useHeadlessFlatTree = require("./components/FlatTree/useHeadlessFlatTree");
122
126
  const _TreeItem = require("./TreeItem");
127
+ const _FlatTreeItem = require("./FlatTreeItem");
123
128
  const _TreeItemLayout = require("./TreeItemLayout");
124
129
  const _TreeItemPersonaLayout = require("./TreeItemPersonaLayout");
125
130
  const _flattenTree = require("./utils/flattenTree");
@@ -1 +1 @@
1
- {"version":3,"sources":["index.js"],"sourcesContent":["export { Tree, treeClassNames, useTree_unstable, useTreeStyles_unstable, useTreeContextValues_unstable, renderTree_unstable } from './Tree';\nexport { FlatTree, flatTreeClassNames, useFlatTree_unstable, useFlatTreeStyles_unstable, useFlatTreeContextValues_unstable, renderFlatTree_unstable, useHeadlessFlatTree_unstable } from './FlatTree';\nexport { TreeProvider, useTreeContext_unstable, useTreeItemContext_unstable, TreeItemProvider } from './contexts';\nexport { treeItemLevelToken } from './utils/tokens';\nexport { TreeItem, treeItemClassNames, renderTreeItem_unstable, useTreeItemStyles_unstable, useTreeItemContextValues_unstable, useTreeItem_unstable } from './TreeItem';\nexport { TreeItemLayout, treeItemLayoutClassNames, renderTreeItemLayout_unstable, useTreeItemLayoutStyles_unstable, useTreeItemLayout_unstable } from './TreeItemLayout';\nexport { TreeItemPersonaLayout, treeItemPersonaLayoutClassNames, renderTreeItemPersonaLayout_unstable, useTreeItemPersonaLayoutStyles_unstable, useTreeItemPersonaLayout_unstable } from './TreeItemPersonaLayout';\nexport { flattenTree_unstable } from './utils/flattenTree';\n"],"names":["Tree","treeClassNames","useTree_unstable","useTreeStyles_unstable","useTreeContextValues_unstable","renderTree_unstable","FlatTree","flatTreeClassNames","useFlatTree_unstable","useFlatTreeStyles_unstable","useFlatTreeContextValues_unstable","renderFlatTree_unstable","useHeadlessFlatTree_unstable","TreeProvider","useTreeContext_unstable","useTreeItemContext_unstable","TreeItemProvider","treeItemLevelToken","TreeItem","treeItemClassNames","renderTreeItem_unstable","useTreeItemStyles_unstable","useTreeItemContextValues_unstable","useTreeItem_unstable","TreeItemLayout","treeItemLayoutClassNames","renderTreeItemLayout_unstable","useTreeItemLayoutStyles_unstable","useTreeItemLayout_unstable","TreeItemPersonaLayout","treeItemPersonaLayoutClassNames","renderTreeItemPersonaLayout_unstable","useTreeItemPersonaLayoutStyles_unstable","useTreeItemPersonaLayout_unstable","flattenTree_unstable"],"mappings":";;;;;;;;;;;IAASA,IAAI;eAAJA,UAAI;;IAAEC,cAAc;eAAdA,oBAAc;;IAAEC,gBAAgB;eAAhBA,sBAAgB;;IAAEC,sBAAsB;eAAtBA,4BAAsB;;IAAEC,6BAA6B;eAA7BA,mCAA6B;;IAAEC,mBAAmB;eAAnBA,yBAAmB;;IAClHC,QAAQ;eAARA,kBAAQ;;IAAEC,kBAAkB;eAAlBA,4BAAkB;;IAAEC,oBAAoB;eAApBA,8BAAoB;;IAAEC,0BAA0B;eAA1BA,oCAA0B;;IAAEC,iCAAiC;eAAjCA,2CAAiC;;IAAEC,uBAAuB;eAAvBA,iCAAuB;;IAAEC,4BAA4B;eAA5BA,sCAA4B;;IACxKC,YAAY;eAAZA,sBAAY;;IAAEC,uBAAuB;eAAvBA,iCAAuB;;IAAEC,2BAA2B;eAA3BA,qCAA2B;;IAAEC,gBAAgB;eAAhBA,0BAAgB;;IACpFC,kBAAkB;eAAlBA,0BAAkB;;IAClBC,QAAQ;eAARA,kBAAQ;;IAAEC,kBAAkB;eAAlBA,4BAAkB;;IAAEC,uBAAuB;eAAvBA,iCAAuB;;IAAEC,0BAA0B;eAA1BA,oCAA0B;;IAAEC,iCAAiC;eAAjCA,2CAAiC;;IAAEC,oBAAoB;eAApBA,8BAAoB;;IAC1IC,cAAc;eAAdA,8BAAc;;IAAEC,wBAAwB;eAAxBA,wCAAwB;;IAAEC,6BAA6B;eAA7BA,6CAA6B;;IAAEC,gCAAgC;eAAhCA,gDAAgC;;IAAEC,0BAA0B;eAA1BA,0CAA0B;;IACrIC,qBAAqB;eAArBA,4CAAqB;;IAAEC,+BAA+B;eAA/BA,sDAA+B;;IAAEC,oCAAoC;eAApCA,2DAAoC;;IAAEC,uCAAuC;eAAvCA,8DAAuC;;IAAEC,iCAAiC;eAAjCA,wDAAiC;;IACxKC,oBAAoB;eAApBA,iCAAoB;;;sBAPsG;0BACsD;0BACpF;wBAClE;0BACwH;gCACL;uCACmC;6BACpJ"}
1
+ {"version":3,"sources":["index.js"],"sourcesContent":["export { Tree, treeClassNames, useTree_unstable, useTreeStyles_unstable, useTreeContextValues_unstable, renderTree_unstable } from './Tree';\nexport { FlatTree, flatTreeClassNames, useFlatTree_unstable, useFlatTreeStyles_unstable, useFlatTreeContextValues_unstable, renderFlatTree_unstable } from './FlatTree';\nexport { useTreeContext_unstable, useTreeItemContext_unstable, TreeItemProvider, TreeProvider } from './contexts';\nexport { treeItemLevelToken } from './utils/tokens';\nexport { useHeadlessFlatTree_unstable } from './components/FlatTree/useHeadlessFlatTree';\nexport { TreeItem, treeItemClassNames, renderTreeItem_unstable, useTreeItemStyles_unstable, useTreeItemContextValues_unstable, useTreeItem_unstable } from './TreeItem';\nexport { FlatTreeItem } from './FlatTreeItem';\nexport { TreeItemLayout, treeItemLayoutClassNames, renderTreeItemLayout_unstable, useTreeItemLayoutStyles_unstable, useTreeItemLayout_unstable } from './TreeItemLayout';\nexport { TreeItemPersonaLayout, treeItemPersonaLayoutClassNames, renderTreeItemPersonaLayout_unstable, useTreeItemPersonaLayoutStyles_unstable, useTreeItemPersonaLayout_unstable } from './TreeItemPersonaLayout';\nexport { flattenTree_unstable } from './utils/flattenTree';\n"],"names":["Tree","treeClassNames","useTree_unstable","useTreeStyles_unstable","useTreeContextValues_unstable","renderTree_unstable","FlatTree","flatTreeClassNames","useFlatTree_unstable","useFlatTreeStyles_unstable","useFlatTreeContextValues_unstable","renderFlatTree_unstable","useTreeContext_unstable","useTreeItemContext_unstable","TreeItemProvider","TreeProvider","treeItemLevelToken","useHeadlessFlatTree_unstable","TreeItem","treeItemClassNames","renderTreeItem_unstable","useTreeItemStyles_unstable","useTreeItemContextValues_unstable","useTreeItem_unstable","FlatTreeItem","TreeItemLayout","treeItemLayoutClassNames","renderTreeItemLayout_unstable","useTreeItemLayoutStyles_unstable","useTreeItemLayout_unstable","TreeItemPersonaLayout","treeItemPersonaLayoutClassNames","renderTreeItemPersonaLayout_unstable","useTreeItemPersonaLayoutStyles_unstable","useTreeItemPersonaLayout_unstable","flattenTree_unstable"],"mappings":";;;;;;;;;;;IAASA,IAAI;eAAJA,UAAI;;IAAEC,cAAc;eAAdA,oBAAc;;IAAEC,gBAAgB;eAAhBA,sBAAgB;;IAAEC,sBAAsB;eAAtBA,4BAAsB;;IAAEC,6BAA6B;eAA7BA,mCAA6B;;IAAEC,mBAAmB;eAAnBA,yBAAmB;;IAClHC,QAAQ;eAARA,kBAAQ;;IAAEC,kBAAkB;eAAlBA,4BAAkB;;IAAEC,oBAAoB;eAApBA,8BAAoB;;IAAEC,0BAA0B;eAA1BA,oCAA0B;;IAAEC,iCAAiC;eAAjCA,2CAAiC;;IAAEC,uBAAuB;eAAvBA,iCAAuB;;IAC1IC,uBAAuB;eAAvBA,iCAAuB;;IAAEC,2BAA2B;eAA3BA,qCAA2B;;IAAEC,gBAAgB;eAAhBA,0BAAgB;;IAAEC,YAAY;eAAZA,sBAAY;;IACpFC,kBAAkB;eAAlBA,0BAAkB;;IAClBC,4BAA4B;eAA5BA,iDAA4B;;IAC5BC,QAAQ;eAARA,kBAAQ;;IAAEC,kBAAkB;eAAlBA,4BAAkB;;IAAEC,uBAAuB;eAAvBA,iCAAuB;;IAAEC,0BAA0B;eAA1BA,oCAA0B;;IAAEC,iCAAiC;eAAjCA,2CAAiC;;IAAEC,oBAAoB;eAApBA,8BAAoB;;IAC1IC,YAAY;eAAZA,0BAAY;;IACZC,cAAc;eAAdA,8BAAc;;IAAEC,wBAAwB;eAAxBA,wCAAwB;;IAAEC,6BAA6B;eAA7BA,6CAA6B;;IAAEC,gCAAgC;eAAhCA,gDAAgC;;IAAEC,0BAA0B;eAA1BA,0CAA0B;;IACrIC,qBAAqB;eAArBA,4CAAqB;;IAAEC,+BAA+B;eAA/BA,sDAA+B;;IAAEC,oCAAoC;eAApCA,2DAAoC;;IAAEC,uCAAuC;eAAvCA,8DAAuC;;IAAEC,iCAAiC;eAAjCA,wDAAiC;;IACxKC,oBAAoB;eAApBA,iCAAoB;;;sBATsG;0BACwB;0BACtD;wBAClE;qCACU;0BAC8G;8BAC9H;gCACyH;uCACmC;6BACpJ"}
@@ -9,17 +9,16 @@ Object.defineProperty(exports, "createHTMLElementWalker", {
9
9
  }
10
10
  });
11
11
  const _reactutilities = require("@fluentui/react-utilities");
12
- function createHTMLElementWalker(root, filter = ()=>NodeFilter.FILTER_ACCEPT) {
12
+ function createHTMLElementWalker(root, targetDocument, filter = ()=>NodeFilter.FILTER_ACCEPT) {
13
13
  let temporaryFilter;
14
- const treeWalker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {
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, filter = ()=>NodeFilter.FILTER_ACCEPT) {\n let temporaryFilter;\n const treeWalker = document.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","filter","NodeFilter","FILTER_ACCEPT","temporaryFilter","treeWalker","document","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,SAAS,IAAIC,WAAWC,aAAa;IAC/E,IAAIC;IACJ,MAAMC,aAAaC,SAASC,gBAAgB,CAACP,MAAME,WAAWM,YAAY,EAAE;QACxEC,YAAYC,IAAI;YACZ,IAAIC;YACJ,IAAI,CAACC,IAAAA,6BAAa,EAACF,OAAO;gBACtB,OAAOR,WAAWW,aAAa;YACnC;YACA,MAAMC,eAAeb,OAAOS;YAC5B,IAAIK;YACJ,OAAOD,iBAAiBZ,WAAWC,aAAa,GAAG,AAACY,CAAAA,oBAAoB,AAACJ,CAAAA,mBAAmBP,eAAc,MAAO,QAAQO,qBAAqB,KAAK,IAAI,KAAK,IAAIA,iBAAiBD,KAAI,MAAO,QAAQK,sBAAsB,KAAK,IAAIA,oBAAoBD,eAAeA;QAC1Q;IACJ;IACA,OAAO;QACH,IAAId,QAAQ;YACR,OAAOK,WAAWL,IAAI;QAC1B;QACA,IAAIgB,kBAAkB;YAClB,OAAOX,WAAWY,WAAW;QACjC;QACA,IAAID,gBAAgBE,QAAQ;YACxBb,WAAWY,WAAW,GAAGC;QAC7B;QACAC,YAAY,CAACC;YACThB,kBAAkBgB;YAClB,MAAMC,SAAShB,WAAWc,UAAU;YACpCf,kBAAkBkB;YAClB,OAAOD;QACX;QACAE,WAAW,CAACH;YACRhB,kBAAkBgB;YAClB,MAAMC,SAAShB,WAAWkB,SAAS;YACnCnB,kBAAkBkB;YAClB,OAAOD;QACX;QACAG,aAAa,CAACJ;YACVhB,kBAAkBgB;YAClB,MAAMC,SAAShB,WAAWoB,QAAQ;YAClCrB,kBAAkBkB;YAClB,OAAOD;QACX;QACAK,aAAa,CAACN;YACVhB,kBAAkBgB;YAClB,MAAMC,SAAShB,WAAWqB,WAAW;YACrCtB,kBAAkBkB;YAClB,OAAOD;QACX;QACAM,eAAe,CAACP;YACZhB,kBAAkBgB;YAClB,MAAMC,SAAShB,WAAWuB,UAAU;YACpCxB,kBAAkBkB;YAClB,OAAOD;QACX;QACAQ,iBAAiB,CAACT;YACdhB,kBAAkBgB;YAClB,MAAMC,SAAShB,WAAWyB,YAAY;YACtC1B,kBAAkBkB;YAClB,OAAOD;QACX;QACAU,iBAAiB,CAACX;YACdhB,kBAAkBgB;YAClB,MAAMC,SAAShB,WAAW0B,eAAe;YACzC3B,kBAAkBkB;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":"AAAA;;;CAGC;;;;;;;;;;;IAAmBA,kBAAkB;eAAlBA;;IAmFPC,kBAAkB;eAAlBA;;;AAnFF,SAASD,mBAAmBE,eAAe,EAAE;IACpD,MAAMC,OAAOC;IACb,MAAMC,gBAAgB,IAAIC,IAAI;QAC1B;YACIH,KAAKI,KAAK;YACVJ;SACH;KACJ;IACD,MAAMK,eAAe;QACjBL;QACA,IAAIM,QAAQ;YACR,OAAOJ,cAAcI,IAAI;QAC7B;QACAC,WAAW,CAACC;YACR,IAAIC;YACJ,IAAIC,gCAAgCC;YACpC,OAAO,AAACA,CAAAA,sBAAsBT,cAAcU,GAAG,CAAC,AAACF,CAAAA,iCAAiC,AAACD,CAAAA,qBAAqBP,cAAcU,GAAG,CAACJ,IAAG,MAAO,QAAQC,uBAAuB,KAAK,IAAI,KAAK,IAAIA,mBAAmBI,WAAW,AAAD,MAAO,QAAQH,mCAAmC,KAAK,IAAIA,iCAAiCV,KAAKI,KAAK,CAAA,MAAO,QAAQO,wBAAwB,KAAK,IAAIA,sBAAsBX;QAClY;QACAY,KAAK,CAACJ,MAAMN,cAAcU,GAAG,CAACJ;QAC9BM,KAAK,CAACN,MAAMN,cAAcY,GAAG,CAACN;QAC9BO,KAAKC,KAAK;YACN,MAAM,EAAEH,cAAcf,kBAAkB,EAAE,GAAGmB,yBAAyB,GAAGD;YACzE,MAAME,aAAahB,cAAcU,GAAG,CAACC;YACrC,IAAI,CAACK,YAAY;gBACb,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;oBACxC,sCAAsC;oBACtCC,QAAQC,KAAK,CAAC,CAAC;UACzB,EAAEP,MAAMZ,KAAK,CAAC,kJAAkJ,CAAC;gBAC3J;gBACA;YACJ;YACAc,WAAWM,QAAQ,GAAG;YACtB,IAAIC;YACJ,MAAMC,OAAO;gBACTtB,OAAOY,MAAMZ,KAAK;gBAClBuB,kBAAkB,IAAK,CAAA;wBACf,GAAGV,uBAAuB;wBAC1BJ;wBACA,cAAca,KAAKE,KAAK;wBACxB,iBAAiBF,KAAKG,QAAQ;wBAC9B,gBAAgBX,WAAWY,cAAc,CAACC,MAAM;wBAChDP,UAAUE,KAAKF,QAAQ;oBAC3B,CAAA;gBACJA,UAAU,AAACC,CAAAA,oCAAoCR,wBAAwBO,QAAQ,AAAD,MAAO,QAAQC,sCAAsC,KAAK,IAAIA,oCAAoC;gBAChLG,OAAOV,WAAWU,KAAK,GAAG;gBAC1Bf;gBACAiB,gBAAgB,EAAE;gBAClBE,OAAO,CAAC;gBACRH,UAAUX,WAAWY,cAAc,CAACG,IAAI,CAACjB,MAAMZ,KAAK;YACxD;YACAF,cAAcgC,GAAG,CAACR,KAAKtB,KAAK,EAAEsB;QAClC;QACA,wFAAwF;QACxF,yCAAyC;QACzC,kBAAkB;QAClB,sDAAsD;QACtD,4BAA4B;QAC5B,cAAc;QACd,MAAM;QACN,sDAAsD;QACtD,mEAAmE;QACnE,iCAAiC;QACjC,kDAAkD;QAClD,oCAAoC;QACpC,MAAM;QACN,oGAAoG;QACpG,yEAAyE;QACzE,mBAAmB;QACnB,oCAAoC;QACpC,QAAQ;QACR,MAAM;QACN,kFAAkF;QAClF,8CAA8C;QAC9C,MAAM;QACN,KAAK;QACLS,SAAS,CAAC3B,MAAM4B,6BAA6B5B,KAAKH;QAClDgC,UAAU,CAAC7B,MAAM8B,8BAA8B9B,KAAKH;QACpDkC,WAAW,CAAC/B,MAAMgC,+BAA+BhC,KAAKH;QACtDoC,cAAc,CAACC,YAAYC,kCAAkCD,WAAWrC;IAC5E;IACAN,aAAa6C,OAAO,CAACvC,aAAaU,GAAG;IACrC,OAAOV;AACX;AACO,MAAMP,qBAAqB;AAClC,SAASG;IACL,OAAO;QACHY,aAAagC;QACbzC,OAAON;QACP0B,UAAU;QACVG,kBAAkB;YACd,IAAIR,QAAQC,GAAG,CAACC,QAAQ,KAAK,cAAc;gBACvC,sCAAsC;gBACtCC,QAAQC,KAAK,CAAC,CAAC;yEAC0C,CAAC;YAC9D;YACA,OAAO;gBACHuB,IAAIhD;gBACJe,aAAagC;gBACbzC,OAAON;gBACP,gBAAgB,CAAC;gBACjB,cAAc,CAAC;gBACf,iBAAiB,CAAC;gBAClB0B,UAAU;YACd;QACJ;QACAM,gBAAgB,EAAE;QAClB,IAAIE,SAAS;YACT,IAAIb,QAAQC,GAAG,CAACC,QAAQ,KAAK,cAAc;gBACvC,sCAAsC;gBACtCC,QAAQC,KAAK,CAAC,CAAC;yEAC0C,CAAC;YAC9D;YACA,OAAO,CAAC;QACZ;QACA,IAAIM,YAAY;YACZ,IAAIV,QAAQC,GAAG,CAACC,QAAQ,KAAK,cAAc;gBACvC,sCAAsC;gBACtCC,QAAQC,KAAK,CAAC,CAAC;yEAC0C,CAAC;YAC9D;YACA,OAAO,CAAC;QACZ;QACAK,OAAO;IACX;AACJ;AACA;;;CAGC,GAAG,gEAAgE;AACpE,UAAUQ,6BAA6B5B,GAAG,EAAEuC,gBAAgB;IACxD,MAAMrB,OAAOqB,iBAAiBnC,GAAG,CAACJ;IAClC,IAAI,CAACkB,QAAQA,KAAKI,cAAc,CAACC,MAAM,KAAK,GAAG;QAC3C;IACJ;IACA,KAAK,MAAMiB,cAActB,KAAKI,cAAc,CAAC;QACzC,MAAMiB,iBAAiBnC,GAAG,CAACoC;QAC3B,OAAOZ,6BAA6BY,YAAYD;IACpD;AACJ;AACA;;;CAGC,GAAG,gEAAgE;AACpE,UAAUT,8BAA8B9B,GAAG,EAAEuC,gBAAgB;IACzD,MAAMrB,OAAOqB,iBAAiBnC,GAAG,CAACJ;IAClC,IAAI,CAACkB,QAAQA,KAAKI,cAAc,CAACC,MAAM,KAAK,GAAG;QAC3C;IACJ;IACA,KAAK,MAAMiB,cAActB,KAAKI,cAAc,CAAC;QACzC,MAAMiB,iBAAiBnC,GAAG,CAACoC;IAC/B;AACJ;AACA;;;CAGC,GAAG,gEAAgE;AACpE,UAAUR,+BAA+BhC,GAAG,EAAEuC,gBAAgB;IAC1D,IAAIE,SAASF,iBAAiBxC,SAAS,CAACC;IACxC,MAAMyC,WAAWF,iBAAiB/C,IAAI,CAAC;QACnC,MAAMiD;QACNA,SAASF,iBAAiBxC,SAAS,CAAC0C,OAAO7C,KAAK;IACpD;AACJ;AACA;;;CAGC,GAAG,gEAAgE;AACpE,UAAUuC,kCAAkCD,SAAS,EAAEK,gBAAgB;IACnE,IAAIf,QAAQ;IACZ,KAAK,MAAMN,QAAQU,6BAA6BW,iBAAiB/C,IAAI,CAACI,KAAK,EAAE2C,kBAAkB;QAC3F,IAAIG,cAAcxB,MAAMgB,WAAWK,mBAAmB;YAClDrB,KAAKM,KAAK,GAAGA;YACb,MAAMN;QACV;IACJ;AACJ;AACA,SAASwB,cAAcxB,IAAI,EAAEgB,SAAS,EAAEK,gBAAgB;IACpD,IAAIrB,KAAKE,KAAK,KAAK,GAAG;QAClB,OAAO;IACX;IACA,MAAMF,KAAKb,WAAW,IAAIa,KAAKb,WAAW,KAAKkC,iBAAiB/C,IAAI,CAACI,KAAK,CAAC;QACvE,IAAI,CAACsC,UAAU5B,GAAG,CAACY,KAAKb,WAAW,GAAG;YAClC,OAAO;QACX;QACA,MAAMoC,SAASF,iBAAiBnC,GAAG,CAACc,KAAKb,WAAW;QACpD,IAAI,CAACoC,QAAQ;YACT,OAAO;QACX;QACAvB,OAAOuB;IACX;IACA,OAAO;AACX"}
@@ -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.1.1",
3
+ "version": "9.3.1",
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.30",
42
- "@fluentui/react-button": "^9.3.39",
43
- "@fluentui/react-checkbox": "^9.1.40",
44
- "@fluentui/react-context-selector": "^9.1.34",
45
- "@fluentui/react-icons": "^2.0.207",
46
- "@fluentui/react-portal": "^9.3.14",
47
- "@fluentui/react-radio": "^9.1.40",
48
- "@fluentui/react-shared-contexts": "^9.7.3",
49
- "@fluentui/react-tabster": "^9.12.9",
50
- "@fluentui/react-theme": "^9.1.12",
51
- "@fluentui/react-utilities": "^9.13.3",
52
- "@fluentui/react-jsx-runtime": "^9.0.8",
39
+ "@fluentui/keyboard-keys": "^9.0.6",
40
+ "@fluentui/react-aria": "^9.3.38",
41
+ "@fluentui/react-avatar": "^9.5.34",
42
+ "@fluentui/react-button": "^9.3.43",
43
+ "@fluentui/react-checkbox": "^9.1.44",
44
+ "@fluentui/react-context-selector": "^9.1.36",
45
+ "@fluentui/react-icons": "^2.0.217",
46
+ "@fluentui/react-portal": "^9.3.18",
47
+ "@fluentui/react-radio": "^9.1.44",
48
+ "@fluentui/react-shared-contexts": "^9.9.1",
49
+ "@fluentui/react-tabster": "^9.13.1",
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
  },