@fluentui/react-tree 9.6.0 → 9.7.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.
package/CHANGELOG.md CHANGED
@@ -1,12 +1,21 @@
1
1
  # Change Log - @fluentui/react-tree
2
2
 
3
- This log was last generated on Thu, 06 Jun 2024 15:22:24 GMT and should not be manually modified.
3
+ This log was last generated on Wed, 12 Jun 2024 13:16:15 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## [9.7.0](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.7.0)
8
+
9
+ Wed, 12 Jun 2024 13:16:15 GMT
10
+ [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.6.0..@fluentui/react-tree_v9.7.0)
11
+
12
+ ### Minor changes
13
+
14
+ - feature: onVisibilityChange method to TreeItemLayout action slot ([PR #31598](https://github.com/microsoft/fluentui/pull/31598) by bernardo.sunderhus@gmail.com)
15
+
7
16
  ## [9.6.0](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.6.0)
8
17
 
9
- Thu, 06 Jun 2024 15:22:24 GMT
18
+ Thu, 06 Jun 2024 15:26:42 GMT
10
19
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.5.1..@fluentui/react-tree_v9.6.0)
11
20
 
12
21
  ### Minor changes
@@ -29,7 +38,7 @@ Thu, 06 Jun 2024 15:22:24 GMT
29
38
 
30
39
  ## [9.5.1](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.5.1)
31
40
 
32
- Thu, 23 May 2024 08:02:52 GMT
41
+ Thu, 23 May 2024 08:02:52 GMT
33
42
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.5.0..@fluentui/react-tree_v9.5.1)
34
43
 
35
44
  ### Patches
@@ -44,7 +53,7 @@ Thu, 23 May 2024 08:02:52 GMT
44
53
 
45
54
  ## [9.5.0](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.5.0)
46
55
 
47
- Mon, 20 May 2024 12:45:08 GMT
56
+ Mon, 20 May 2024 12:45:08 GMT
48
57
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.43..@fluentui/react-tree_v9.5.0)
49
58
 
50
59
  ### Minor changes
@@ -67,12 +76,12 @@ Mon, 20 May 2024 12:45:08 GMT
67
76
 
68
77
  ## [9.4.43](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.43)
69
78
 
70
- Thu, 16 May 2024 09:25:20 GMT
79
+ Thu, 16 May 2024 09:25:20 GMT
71
80
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.42..@fluentui/react-tree_v9.4.43)
72
81
 
73
82
  ### Patches
74
83
 
75
- - chore: Upgrade react-icons version to 2.0.239 to pick up provider export map fix. ([PR #31287](https://github.com/microsoft/fluentui/pull/31287) by ololubek@microsoft.com)
84
+ - chore: Upgrade react-icons version to 2.0.239 to pick up provider export map fix. ([PR #31287](https://github.com/microsoft/fluentui/pull/31287) by ololubek@microsoft.com)
76
85
  - Bump @fluentui/react-avatar to v9.6.26 ([PR #31390](https://github.com/microsoft/fluentui/pull/31390) by beachball)
77
86
  - Bump @fluentui/react-button to v9.3.80 ([PR #31390](https://github.com/microsoft/fluentui/pull/31390) by beachball)
78
87
  - Bump @fluentui/react-checkbox to v9.2.25 ([PR #31390](https://github.com/microsoft/fluentui/pull/31390) by beachball)
@@ -80,7 +89,7 @@ Thu, 16 May 2024 09:25:20 GMT
80
89
 
81
90
  ## [9.4.42](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.42)
82
91
 
83
- Thu, 09 May 2024 19:35:12 GMT
92
+ Thu, 09 May 2024 19:35:12 GMT
84
93
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.41..@fluentui/react-tree_v9.4.42)
85
94
 
86
95
  ### Patches
@@ -94,7 +103,7 @@ Thu, 09 May 2024 19:35:12 GMT
94
103
 
95
104
  ## [9.4.41](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.41)
96
105
 
97
- Mon, 06 May 2024 12:55:02 GMT
106
+ Mon, 06 May 2024 12:55:02 GMT
98
107
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.40..@fluentui/react-tree_v9.4.41)
99
108
 
100
109
  ### Patches
@@ -112,14 +121,14 @@ Mon, 06 May 2024 12:55:02 GMT
112
121
 
113
122
  ## [9.4.40](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.40)
114
123
 
115
- Thu, 02 May 2024 11:36:43 GMT
124
+ Thu, 02 May 2024 11:36:43 GMT
116
125
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.39..@fluentui/react-tree_v9.4.40)
117
126
 
118
127
  ### Patches
119
128
 
120
129
  - chore: updates roving tab indexes to ensure Tree is focusable ([PR #31231](https://github.com/microsoft/fluentui/pull/31231) by bernardo.sunderhus@gmail.com)
121
130
  - fix: Apply aria-selected prop to aria-selected instead of aria-expanded. ([PR #31117](https://github.com/microsoft/fluentui/pull/31117) by estebanmu@microsoft.com)
122
- - chore: upgrade @fluentui/react-icons to 2.0.237. ([PR #31139](https://github.com/microsoft/fluentui/pull/31139) by ololubek@microsoft.com)
131
+ - chore: upgrade @fluentui/react-icons to 2.0.237. ([PR #31139](https://github.com/microsoft/fluentui/pull/31139) by ololubek@microsoft.com)
123
132
  - Bump @fluentui/react-aria to v9.11.0 ([PR #31231](https://github.com/microsoft/fluentui/pull/31231) by beachball)
124
133
  - Bump @fluentui/react-avatar to v9.6.23 ([PR #31231](https://github.com/microsoft/fluentui/pull/31231) by beachball)
125
134
  - Bump @fluentui/react-button to v9.3.77 ([PR #31231](https://github.com/microsoft/fluentui/pull/31231) by beachball)
@@ -129,7 +138,7 @@ Thu, 02 May 2024 11:36:43 GMT
129
138
 
130
139
  ## [9.4.39](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.39)
131
140
 
132
- Tue, 23 Apr 2024 08:17:49 GMT
141
+ Tue, 23 Apr 2024 08:17:49 GMT
133
142
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.38..@fluentui/react-tree_v9.4.39)
134
143
 
135
144
  ### Patches
@@ -147,14 +156,14 @@ Tue, 23 Apr 2024 08:17:49 GMT
147
156
 
148
157
  ## [9.4.38](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.38)
149
158
 
150
- Wed, 17 Apr 2024 21:54:05 GMT
159
+ Wed, 17 Apr 2024 21:54:05 GMT
151
160
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.37..@fluentui/react-tree_v9.4.38)
152
161
 
153
162
  ### Patches
154
163
 
155
164
  - fix: Allow overriding aria-selected through props. ([PR #31020](https://github.com/microsoft/fluentui/pull/31020) by estebanmu@microsoft.com)
156
165
  - chore: Update react-icons to 2.0.235 ([PR #31011](https://github.com/microsoft/fluentui/pull/31011) by ololubek@microsoft.com)
157
- - chore: refactor styles defined in makeResetStyles() to avoid shorthands.*() ([PR #30996](https://github.com/microsoft/fluentui/pull/30996) by olfedias@microsoft.com)
166
+ - chore: refactor styles defined in makeResetStyles() to avoid shorthands.\*() ([PR #30996](https://github.com/microsoft/fluentui/pull/30996) by olfedias@microsoft.com)
158
167
  - Bump @fluentui/react-aria to v9.10.4 ([PR #31100](https://github.com/microsoft/fluentui/pull/31100) by beachball)
159
168
  - Bump @fluentui/react-avatar to v9.6.21 ([PR #31100](https://github.com/microsoft/fluentui/pull/31100) by beachball)
160
169
  - Bump @fluentui/react-button to v9.3.75 ([PR #31100](https://github.com/microsoft/fluentui/pull/31100) by beachball)
@@ -164,7 +173,7 @@ Wed, 17 Apr 2024 21:54:05 GMT
164
173
 
165
174
  ## [9.4.37](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.37)
166
175
 
167
- Tue, 02 Apr 2024 09:48:01 GMT
176
+ Tue, 02 Apr 2024 09:48:01 GMT
168
177
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.36..@fluentui/react-tree_v9.4.37)
169
178
 
170
179
  ### Patches
@@ -182,7 +191,7 @@ Tue, 02 Apr 2024 09:48:01 GMT
182
191
 
183
192
  ## [9.4.36](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.36)
184
193
 
185
- Mon, 25 Mar 2024 11:12:15 GMT
194
+ Mon, 25 Mar 2024 11:12:15 GMT
186
195
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.35..@fluentui/react-tree_v9.4.36)
187
196
 
188
197
  ### Patches
@@ -192,7 +201,7 @@ Mon, 25 Mar 2024 11:12:15 GMT
192
201
 
193
202
  ## [9.4.35](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.35)
194
203
 
195
- Mon, 18 Mar 2024 19:50:46 GMT
204
+ Mon, 18 Mar 2024 19:50:46 GMT
196
205
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.34..@fluentui/react-tree_v9.4.35)
197
206
 
198
207
  ### Patches
@@ -211,7 +220,7 @@ Mon, 18 Mar 2024 19:50:46 GMT
211
220
 
212
221
  ## [9.4.34](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.34)
213
222
 
214
- Fri, 15 Mar 2024 21:43:49 GMT
223
+ Fri, 15 Mar 2024 21:43:49 GMT
215
224
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.33..@fluentui/react-tree_v9.4.34)
216
225
 
217
226
  ### Patches
@@ -230,7 +239,7 @@ Fri, 15 Mar 2024 21:43:49 GMT
230
239
 
231
240
  ## [9.4.33](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.33)
232
241
 
233
- Thu, 07 Mar 2024 19:33:27 GMT
242
+ Thu, 07 Mar 2024 19:33:27 GMT
234
243
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.32..@fluentui/react-tree_v9.4.33)
235
244
 
236
245
  ### Patches
@@ -250,7 +259,7 @@ Thu, 07 Mar 2024 19:33:27 GMT
250
259
 
251
260
  ## [9.4.32](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.32)
252
261
 
253
- Wed, 28 Feb 2024 02:34:19 GMT
262
+ Wed, 28 Feb 2024 02:34:19 GMT
254
263
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.31..@fluentui/react-tree_v9.4.32)
255
264
 
256
265
  ### Patches
@@ -268,7 +277,7 @@ Wed, 28 Feb 2024 02:34:19 GMT
268
277
 
269
278
  ## [9.4.31](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.31)
270
279
 
271
- Tue, 20 Feb 2024 14:22:29 GMT
280
+ Tue, 20 Feb 2024 14:22:29 GMT
272
281
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.30..@fluentui/react-tree_v9.4.31)
273
282
 
274
283
  ### Patches
@@ -285,7 +294,7 @@ Tue, 20 Feb 2024 14:22:29 GMT
285
294
 
286
295
  ## [9.4.30](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.30)
287
296
 
288
- Tue, 06 Feb 2024 17:55:20 GMT
297
+ Tue, 06 Feb 2024 17:55:20 GMT
289
298
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.29..@fluentui/react-tree_v9.4.30)
290
299
 
291
300
  ### Patches
@@ -301,7 +310,7 @@ Tue, 06 Feb 2024 17:55:20 GMT
301
310
 
302
311
  ## [9.4.29](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.29)
303
312
 
304
- Tue, 30 Jan 2024 23:16:54 GMT
313
+ Tue, 30 Jan 2024 23:16:54 GMT
305
314
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.28..@fluentui/react-tree_v9.4.29)
306
315
 
307
316
  ### Patches
@@ -318,7 +327,7 @@ Tue, 30 Jan 2024 23:16:54 GMT
318
327
 
319
328
  ## [9.4.28](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.28)
320
329
 
321
- Mon, 29 Jan 2024 13:56:06 GMT
330
+ Mon, 29 Jan 2024 13:56:06 GMT
322
331
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.27..@fluentui/react-tree_v9.4.28)
323
332
 
324
333
  ### Patches
@@ -329,7 +338,7 @@ Mon, 29 Jan 2024 13:56:06 GMT
329
338
 
330
339
  ## [9.4.27](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.27)
331
340
 
332
- Fri, 26 Jan 2024 10:40:22 GMT
341
+ Fri, 26 Jan 2024 10:40:22 GMT
333
342
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.26..@fluentui/react-tree_v9.4.27)
334
343
 
335
344
  ### Patches
@@ -338,7 +347,7 @@ Fri, 26 Jan 2024 10:40:22 GMT
338
347
 
339
348
  ## [9.4.26](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.26)
340
349
 
341
- Tue, 23 Jan 2024 15:10:59 GMT
350
+ Tue, 23 Jan 2024 15:10:59 GMT
342
351
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.25..@fluentui/react-tree_v9.4.26)
343
352
 
344
353
  ### Patches
@@ -356,7 +365,7 @@ Tue, 23 Jan 2024 15:10:59 GMT
356
365
 
357
366
  ## [9.4.25](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.25)
358
367
 
359
- Thu, 18 Jan 2024 14:25:03 GMT
368
+ Thu, 18 Jan 2024 14:25:03 GMT
360
369
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.24..@fluentui/react-tree_v9.4.25)
361
370
 
362
371
  ### Patches
@@ -374,7 +383,7 @@ Thu, 18 Jan 2024 14:25:03 GMT
374
383
 
375
384
  ## [9.4.24](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.24)
376
385
 
377
- Wed, 17 Jan 2024 16:18:50 GMT
386
+ Wed, 17 Jan 2024 16:18:50 GMT
378
387
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.23..@fluentui/react-tree_v9.4.24)
379
388
 
380
389
  ### Patches
@@ -391,7 +400,7 @@ Wed, 17 Jan 2024 16:18:50 GMT
391
400
 
392
401
  ## [9.4.23](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.23)
393
402
 
394
- Tue, 16 Jan 2024 13:14:13 GMT
403
+ Tue, 16 Jan 2024 13:14:13 GMT
395
404
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.22..@fluentui/react-tree_v9.4.23)
396
405
 
397
406
  ### Patches
@@ -408,7 +417,7 @@ Tue, 16 Jan 2024 13:14:13 GMT
408
417
 
409
418
  ## [9.4.22](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.22)
410
419
 
411
- Thu, 11 Jan 2024 09:04:29 GMT
420
+ Thu, 11 Jan 2024 09:04:29 GMT
412
421
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.21..@fluentui/react-tree_v9.4.22)
413
422
 
414
423
  ### Patches
@@ -419,7 +428,7 @@ Thu, 11 Jan 2024 09:04:29 GMT
419
428
 
420
429
  ## [9.4.21](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.21)
421
430
 
422
- Tue, 09 Jan 2024 10:21:34 GMT
431
+ Tue, 09 Jan 2024 10:21:34 GMT
423
432
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.20..@fluentui/react-tree_v9.4.21)
424
433
 
425
434
  ### Patches
@@ -428,7 +437,7 @@ Tue, 09 Jan 2024 10:21:34 GMT
428
437
 
429
438
  ## [9.4.20](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.20)
430
439
 
431
- Mon, 08 Jan 2024 16:24:27 GMT
440
+ Mon, 08 Jan 2024 16:24:27 GMT
432
441
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.19..@fluentui/react-tree_v9.4.20)
433
442
 
434
443
  ### Patches
@@ -446,7 +455,7 @@ Mon, 08 Jan 2024 16:24:27 GMT
446
455
 
447
456
  ## [9.4.19](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.19)
448
457
 
449
- Wed, 03 Jan 2024 09:26:44 GMT
458
+ Wed, 03 Jan 2024 09:26:44 GMT
450
459
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.18..@fluentui/react-tree_v9.4.19)
451
460
 
452
461
  ### Patches
@@ -463,7 +472,7 @@ Wed, 03 Jan 2024 09:26:44 GMT
463
472
 
464
473
  ## [9.4.18](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.18)
465
474
 
466
- Mon, 18 Dec 2023 17:48:16 GMT
475
+ Mon, 18 Dec 2023 17:48:16 GMT
467
476
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.17..@fluentui/react-tree_v9.4.18)
468
477
 
469
478
  ### Patches
@@ -472,7 +481,7 @@ Mon, 18 Dec 2023 17:48:16 GMT
472
481
 
473
482
  ## [9.4.17](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.17)
474
483
 
475
- Mon, 18 Dec 2023 14:40:46 GMT
484
+ Mon, 18 Dec 2023 14:40:46 GMT
476
485
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.16..@fluentui/react-tree_v9.4.17)
477
486
 
478
487
  ### Patches
@@ -490,7 +499,7 @@ Mon, 18 Dec 2023 14:40:46 GMT
490
499
 
491
500
  ## [9.4.16](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.16)
492
501
 
493
- Thu, 14 Dec 2023 09:58:46 GMT
502
+ Thu, 14 Dec 2023 09:58:46 GMT
494
503
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.15..@fluentui/react-tree_v9.4.16)
495
504
 
496
505
  ### Patches
@@ -508,7 +517,7 @@ Thu, 14 Dec 2023 09:58:46 GMT
508
517
 
509
518
  ## [9.4.15](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.15)
510
519
 
511
- Thu, 30 Nov 2023 13:42:08 GMT
520
+ Thu, 30 Nov 2023 13:42:08 GMT
512
521
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.14..@fluentui/react-tree_v9.4.15)
513
522
 
514
523
  ### Patches
@@ -523,7 +532,7 @@ Thu, 30 Nov 2023 13:42:08 GMT
523
532
 
524
533
  ## [9.4.14](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.14)
525
534
 
526
- Mon, 20 Nov 2023 09:55:10 GMT
535
+ Mon, 20 Nov 2023 09:55:10 GMT
527
536
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.13..@fluentui/react-tree_v9.4.14)
528
537
 
529
538
  ### Patches
@@ -537,7 +546,7 @@ Mon, 20 Nov 2023 09:55:10 GMT
537
546
 
538
547
  ## [9.4.13](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.13)
539
548
 
540
- Tue, 14 Nov 2023 17:51:27 GMT
549
+ Tue, 14 Nov 2023 17:51:27 GMT
541
550
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.12..@fluentui/react-tree_v9.4.13)
542
551
 
543
552
  ### Patches
@@ -551,7 +560,7 @@ Tue, 14 Nov 2023 17:51:27 GMT
551
560
 
552
561
  ## [9.4.12](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.12)
553
562
 
554
- Thu, 09 Nov 2023 17:29:47 GMT
563
+ Thu, 09 Nov 2023 17:29:47 GMT
555
564
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.11..@fluentui/react-tree_v9.4.12)
556
565
 
557
566
  ### Patches
@@ -572,7 +581,7 @@ Thu, 09 Nov 2023 17:29:47 GMT
572
581
 
573
582
  ## [9.4.11](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.11)
574
583
 
575
- Thu, 02 Nov 2023 17:38:46 GMT
584
+ Thu, 02 Nov 2023 17:38:46 GMT
576
585
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.10..@fluentui/react-tree_v9.4.11)
577
586
 
578
587
  ### Patches
@@ -581,7 +590,7 @@ Thu, 02 Nov 2023 17:38:46 GMT
581
590
 
582
591
  ## [9.4.10](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.10)
583
592
 
584
- Wed, 01 Nov 2023 19:15:55 GMT
593
+ Wed, 01 Nov 2023 19:15:55 GMT
585
594
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.9..@fluentui/react-tree_v9.4.10)
586
595
 
587
596
  ### Patches
@@ -590,7 +599,7 @@ Wed, 01 Nov 2023 19:15:55 GMT
590
599
 
591
600
  ## [9.4.9](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.9)
592
601
 
593
- Wed, 01 Nov 2023 12:55:59 GMT
602
+ Wed, 01 Nov 2023 12:55:59 GMT
594
603
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.8..@fluentui/react-tree_v9.4.9)
595
604
 
596
605
  ### Patches
@@ -605,7 +614,7 @@ Wed, 01 Nov 2023 12:55:59 GMT
605
614
 
606
615
  ## [9.4.8](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.8)
607
616
 
608
- Sat, 28 Oct 2023 23:35:59 GMT
617
+ Sat, 28 Oct 2023 23:35:59 GMT
609
618
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.7..@fluentui/react-tree_v9.4.8)
610
619
 
611
620
  ### Patches
@@ -619,7 +628,7 @@ Sat, 28 Oct 2023 23:35:59 GMT
619
628
 
620
629
  ## [9.4.7](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.7)
621
630
 
622
- Mon, 23 Oct 2023 09:51:57 GMT
631
+ Mon, 23 Oct 2023 09:51:57 GMT
623
632
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.6..@fluentui/react-tree_v9.4.7)
624
633
 
625
634
  ### Patches
@@ -632,7 +641,7 @@ Mon, 23 Oct 2023 09:51:57 GMT
632
641
 
633
642
  ## [9.4.6](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.6)
634
643
 
635
- Wed, 18 Oct 2023 17:54:07 GMT
644
+ Wed, 18 Oct 2023 17:54:07 GMT
636
645
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.5..@fluentui/react-tree_v9.4.6)
637
646
 
638
647
  ### Patches
@@ -651,7 +660,7 @@ Wed, 18 Oct 2023 17:54:07 GMT
651
660
 
652
661
  ## [9.4.5](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.5)
653
662
 
654
- Thu, 12 Oct 2023 14:55:44 GMT
663
+ Thu, 12 Oct 2023 14:55:44 GMT
655
664
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.4..@fluentui/react-tree_v9.4.5)
656
665
 
657
666
  ### Patches
@@ -664,7 +673,7 @@ Thu, 12 Oct 2023 14:55:44 GMT
664
673
 
665
674
  ## [9.4.4](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.4)
666
675
 
667
- Wed, 11 Oct 2023 13:54:25 GMT
676
+ Wed, 11 Oct 2023 13:54:25 GMT
668
677
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.3..@fluentui/react-tree_v9.4.4)
669
678
 
670
679
  ### Patches
@@ -684,7 +693,7 @@ Wed, 11 Oct 2023 13:54:25 GMT
684
693
 
685
694
  ## [9.4.3](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.3)
686
695
 
687
- Mon, 09 Oct 2023 20:45:44 GMT
696
+ Mon, 09 Oct 2023 20:45:44 GMT
688
697
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.2..@fluentui/react-tree_v9.4.3)
689
698
 
690
699
  ### Patches
@@ -703,7 +712,7 @@ Mon, 09 Oct 2023 20:45:44 GMT
703
712
 
704
713
  ## [9.4.2](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.2)
705
714
 
706
- Thu, 05 Oct 2023 15:25:34 GMT
715
+ Thu, 05 Oct 2023 15:25:34 GMT
707
716
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.1..@fluentui/react-tree_v9.4.2)
708
717
 
709
718
  ### Patches
@@ -723,7 +732,7 @@ Thu, 05 Oct 2023 15:25:34 GMT
723
732
 
724
733
  ## [9.4.1](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.1)
725
734
 
726
- Wed, 04 Oct 2023 08:45:47 GMT
735
+ Wed, 04 Oct 2023 08:45:47 GMT
727
736
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.4.0..@fluentui/react-tree_v9.4.1)
728
737
 
729
738
  ### Patches
@@ -743,7 +752,7 @@ Wed, 04 Oct 2023 08:45:47 GMT
743
752
 
744
753
  ## [9.4.0](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.4.0)
745
754
 
746
- Mon, 02 Oct 2023 08:56:05 GMT
755
+ Mon, 02 Oct 2023 08:56:05 GMT
747
756
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.3.1..@fluentui/react-tree_v9.4.0)
748
757
 
749
758
  ### Minor changes
@@ -759,7 +768,7 @@ Mon, 02 Oct 2023 08:56:05 GMT
759
768
 
760
769
  ## [9.3.1](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.3.1)
761
770
 
762
- Tue, 26 Sep 2023 17:49:14 GMT
771
+ Tue, 26 Sep 2023 17:49:14 GMT
763
772
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.3.0..@fluentui/react-tree_v9.3.1)
764
773
 
765
774
  ### Patches
@@ -781,7 +790,7 @@ Tue, 26 Sep 2023 17:49:14 GMT
781
790
 
782
791
  ## [9.3.0](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.3.0)
783
792
 
784
- Tue, 26 Sep 2023 15:31:41 GMT
793
+ Tue, 26 Sep 2023 15:31:41 GMT
785
794
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.2.1..@fluentui/react-tree_v9.3.0)
786
795
 
787
796
  ### Minor changes
@@ -808,7 +817,7 @@ Tue, 26 Sep 2023 15:31:41 GMT
808
817
 
809
818
  ## [9.2.1](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.2.1)
810
819
 
811
- Wed, 20 Sep 2023 17:47:45 GMT
820
+ Wed, 20 Sep 2023 17:47:45 GMT
812
821
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.2.0..@fluentui/react-tree_v9.2.1)
813
822
 
814
823
  ### Patches
@@ -825,7 +834,7 @@ Wed, 20 Sep 2023 17:47:45 GMT
825
834
 
826
835
  ## [9.2.0](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.2.0)
827
836
 
828
- Wed, 20 Sep 2023 14:59:51 GMT
837
+ Wed, 20 Sep 2023 14:59:51 GMT
829
838
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.1.1..@fluentui/react-tree_v9.2.0)
830
839
 
831
840
  ### Minor changes
@@ -847,7 +856,7 @@ Wed, 20 Sep 2023 14:59:51 GMT
847
856
 
848
857
  ## [9.1.1](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.1.1)
849
858
 
850
- Thu, 14 Sep 2023 16:44:47 GMT
859
+ Thu, 14 Sep 2023 16:44:47 GMT
851
860
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.1.0..@fluentui/react-tree_v9.1.1)
852
861
 
853
862
  ### Patches
@@ -860,7 +869,7 @@ Thu, 14 Sep 2023 16:44:47 GMT
860
869
 
861
870
  ## [9.1.0](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.1.0)
862
871
 
863
- Tue, 12 Sep 2023 08:51:34 GMT
872
+ Tue, 12 Sep 2023 08:51:34 GMT
864
873
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.8..@fluentui/react-tree_v9.1.0)
865
874
 
866
875
  ### Minor changes
@@ -876,7 +885,7 @@ Tue, 12 Sep 2023 08:51:34 GMT
876
885
 
877
886
  ## [9.0.8](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.8)
878
887
 
879
- Wed, 06 Sep 2023 13:31:31 GMT
888
+ Wed, 06 Sep 2023 13:31:31 GMT
880
889
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.7..@fluentui/react-tree_v9.0.8)
881
890
 
882
891
  ### Patches
@@ -894,7 +903,7 @@ Wed, 06 Sep 2023 13:31:31 GMT
894
903
 
895
904
  ## [9.0.7](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.7)
896
905
 
897
- Tue, 05 Sep 2023 15:39:04 GMT
906
+ Tue, 05 Sep 2023 15:39:04 GMT
898
907
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.6..@fluentui/react-tree_v9.0.7)
899
908
 
900
909
  ### Patches
@@ -912,7 +921,7 @@ Tue, 05 Sep 2023 15:39:04 GMT
912
921
 
913
922
  ## [9.0.6](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.6)
914
923
 
915
- Tue, 05 Sep 2023 13:29:11 GMT
924
+ Tue, 05 Sep 2023 13:29:11 GMT
916
925
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.5..@fluentui/react-tree_v9.0.6)
917
926
 
918
927
  ### Patches
@@ -936,7 +945,7 @@ Tue, 05 Sep 2023 13:29:11 GMT
936
945
 
937
946
  ## [9.0.5](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.5)
938
947
 
939
- Tue, 29 Aug 2023 12:57:36 GMT
948
+ Tue, 29 Aug 2023 12:57:36 GMT
940
949
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.4..@fluentui/react-tree_v9.0.5)
941
950
 
942
951
  ### Patches
@@ -954,7 +963,7 @@ Tue, 29 Aug 2023 12:57:36 GMT
954
963
 
955
964
  ## [9.0.4](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.4)
956
965
 
957
- Thu, 24 Aug 2023 10:26:35 GMT
966
+ Thu, 24 Aug 2023 10:26:35 GMT
958
967
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.3..@fluentui/react-tree_v9.0.4)
959
968
 
960
969
  ### Patches
@@ -972,7 +981,7 @@ Thu, 24 Aug 2023 10:26:35 GMT
972
981
 
973
982
  ## [9.0.3](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.3)
974
983
 
975
- Wed, 23 Aug 2023 12:01:49 GMT
984
+ Wed, 23 Aug 2023 12:01:49 GMT
976
985
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.2..@fluentui/react-tree_v9.0.3)
977
986
 
978
987
  ### Patches
@@ -990,7 +999,7 @@ Wed, 23 Aug 2023 12:01:49 GMT
990
999
 
991
1000
  ## [9.0.2](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.2)
992
1001
 
993
- Mon, 21 Aug 2023 11:38:02 GMT
1002
+ Mon, 21 Aug 2023 11:38:02 GMT
994
1003
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.1..@fluentui/react-tree_v9.0.2)
995
1004
 
996
1005
  ### Patches
@@ -1001,7 +1010,7 @@ Mon, 21 Aug 2023 11:38:02 GMT
1001
1010
 
1002
1011
  ## [9.0.1](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.1)
1003
1012
 
1004
- Thu, 17 Aug 2023 13:49:56 GMT
1013
+ Thu, 17 Aug 2023 13:49:56 GMT
1005
1014
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0..@fluentui/react-tree_v9.0.1)
1006
1015
 
1007
1016
  ### Patches
@@ -1010,7 +1019,7 @@ Thu, 17 Aug 2023 13:49:56 GMT
1010
1019
 
1011
1020
  ## [9.0.0](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0)
1012
1021
 
1013
- Wed, 16 Aug 2023 17:41:08 GMT
1022
+ Wed, 16 Aug 2023 17:41:08 GMT
1014
1023
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.33..@fluentui/react-tree_v9.0.0)
1015
1024
 
1016
1025
  ### Patches
@@ -1024,7 +1033,7 @@ Wed, 16 Aug 2023 17:41:08 GMT
1024
1033
 
1025
1034
  ## [9.0.0-beta.33](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.33)
1026
1035
 
1027
- Wed, 16 Aug 2023 11:38:33 GMT
1036
+ Wed, 16 Aug 2023 11:38:33 GMT
1028
1037
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.32..@fluentui/react-tree_v9.0.0-beta.33)
1029
1038
 
1030
1039
  ### Changes
@@ -1037,7 +1046,7 @@ Wed, 16 Aug 2023 11:38:33 GMT
1037
1046
 
1038
1047
  ## [9.0.0-beta.32](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.32)
1039
1048
 
1040
- Fri, 11 Aug 2023 12:14:26 GMT
1049
+ Fri, 11 Aug 2023 12:14:26 GMT
1041
1050
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.31..@fluentui/react-tree_v9.0.0-beta.32)
1042
1051
 
1043
1052
  ### Changes
@@ -1055,7 +1064,7 @@ Fri, 11 Aug 2023 12:14:26 GMT
1055
1064
 
1056
1065
  ## [9.0.0-beta.31](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.31)
1057
1066
 
1058
- Wed, 09 Aug 2023 13:17:09 GMT
1067
+ Wed, 09 Aug 2023 13:17:09 GMT
1059
1068
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.30..@fluentui/react-tree_v9.0.0-beta.31)
1060
1069
 
1061
1070
  ### Changes
@@ -1078,7 +1087,7 @@ Wed, 09 Aug 2023 13:17:09 GMT
1078
1087
 
1079
1088
  ## [9.0.0-beta.30](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.30)
1080
1089
 
1081
- Fri, 04 Aug 2023 08:52:57 GMT
1090
+ Fri, 04 Aug 2023 08:52:57 GMT
1082
1091
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.29..@fluentui/react-tree_v9.0.0-beta.30)
1083
1092
 
1084
1093
  ### Changes
@@ -1100,7 +1109,7 @@ Fri, 04 Aug 2023 08:52:57 GMT
1100
1109
 
1101
1110
  ## [9.0.0-beta.29](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.29)
1102
1111
 
1103
- Tue, 01 Aug 2023 10:17:20 GMT
1112
+ Tue, 01 Aug 2023 10:17:20 GMT
1104
1113
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.28..@fluentui/react-tree_v9.0.0-beta.29)
1105
1114
 
1106
1115
  ### Changes
@@ -1118,7 +1127,7 @@ Tue, 01 Aug 2023 10:17:20 GMT
1118
1127
 
1119
1128
  ## [9.0.0-beta.28](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.28)
1120
1129
 
1121
- Thu, 27 Jul 2023 10:34:14 GMT
1130
+ Thu, 27 Jul 2023 10:34:14 GMT
1122
1131
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.27..@fluentui/react-tree_v9.0.0-beta.28)
1123
1132
 
1124
1133
  ### Changes
@@ -1128,7 +1137,7 @@ Thu, 27 Jul 2023 10:34:14 GMT
1128
1137
 
1129
1138
  ## [9.0.0-beta.27](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.27)
1130
1139
 
1131
- Tue, 25 Jul 2023 13:29:23 GMT
1140
+ Tue, 25 Jul 2023 13:29:23 GMT
1132
1141
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.26..@fluentui/react-tree_v9.0.0-beta.27)
1133
1142
 
1134
1143
  ### Changes
@@ -1145,7 +1154,7 @@ Tue, 25 Jul 2023 13:29:23 GMT
1145
1154
 
1146
1155
  ## [9.0.0-beta.26](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.26)
1147
1156
 
1148
- Thu, 20 Jul 2023 18:27:36 GMT
1157
+ Thu, 20 Jul 2023 18:27:36 GMT
1149
1158
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.25..@fluentui/react-tree_v9.0.0-beta.26)
1150
1159
 
1151
1160
  ### Changes
@@ -1161,7 +1170,7 @@ Thu, 20 Jul 2023 18:27:36 GMT
1161
1170
 
1162
1171
  ## [9.0.0-beta.25](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.25)
1163
1172
 
1164
- Tue, 11 Jul 2023 18:46:36 GMT
1173
+ Tue, 11 Jul 2023 18:46:36 GMT
1165
1174
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.24..@fluentui/react-tree_v9.0.0-beta.25)
1166
1175
 
1167
1176
  ### Changes
@@ -1175,7 +1184,7 @@ Tue, 11 Jul 2023 18:46:36 GMT
1175
1184
 
1176
1185
  ## [9.0.0-beta.24](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.24)
1177
1186
 
1178
- Mon, 03 Jul 2023 13:34:28 GMT
1187
+ Mon, 03 Jul 2023 13:34:28 GMT
1179
1188
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.23..@fluentui/react-tree_v9.0.0-beta.24)
1180
1189
 
1181
1190
  ### Changes
@@ -1187,7 +1196,7 @@ Mon, 03 Jul 2023 13:34:28 GMT
1187
1196
 
1188
1197
  ## [9.0.0-beta.23](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.23)
1189
1198
 
1190
- Mon, 03 Jul 2023 11:57:14 GMT
1199
+ Mon, 03 Jul 2023 11:57:14 GMT
1191
1200
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.22..@fluentui/react-tree_v9.0.0-beta.23)
1192
1201
 
1193
1202
  ### Changes
@@ -1204,7 +1213,7 @@ Mon, 03 Jul 2023 11:57:14 GMT
1204
1213
 
1205
1214
  ## [9.0.0-beta.22](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.22)
1206
1215
 
1207
- Wed, 28 Jun 2023 11:12:35 GMT
1216
+ Wed, 28 Jun 2023 11:12:35 GMT
1208
1217
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.21..@fluentui/react-tree_v9.0.0-beta.22)
1209
1218
 
1210
1219
  ### Changes
@@ -1221,7 +1230,7 @@ Wed, 28 Jun 2023 11:12:35 GMT
1221
1230
 
1222
1231
  ## [9.0.0-beta.21](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.21)
1223
1232
 
1224
- Tue, 27 Jun 2023 11:21:23 GMT
1233
+ Tue, 27 Jun 2023 11:21:23 GMT
1225
1234
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.20..@fluentui/react-tree_v9.0.0-beta.21)
1226
1235
 
1227
1236
  ### Changes
@@ -1235,7 +1244,7 @@ Tue, 27 Jun 2023 11:21:23 GMT
1235
1244
 
1236
1245
  ## [9.0.0-beta.20](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.20)
1237
1246
 
1238
- Mon, 26 Jun 2023 09:53:55 GMT
1247
+ Mon, 26 Jun 2023 09:53:55 GMT
1239
1248
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.19..@fluentui/react-tree_v9.0.0-beta.20)
1240
1249
 
1241
1250
  ### Changes
@@ -1251,7 +1260,7 @@ Mon, 26 Jun 2023 09:53:55 GMT
1251
1260
 
1252
1261
  ## [9.0.0-beta.19](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.19)
1253
1262
 
1254
- Tue, 20 Jun 2023 12:39:06 GMT
1263
+ Tue, 20 Jun 2023 12:39:06 GMT
1255
1264
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.18..@fluentui/react-tree_v9.0.0-beta.19)
1256
1265
 
1257
1266
  ### Changes
@@ -1271,7 +1280,7 @@ Tue, 20 Jun 2023 12:39:06 GMT
1271
1280
 
1272
1281
  ## [9.0.0-beta.18](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.18)
1273
1282
 
1274
- Wed, 31 May 2023 06:46:22 GMT
1283
+ Wed, 31 May 2023 06:46:22 GMT
1275
1284
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.17..@fluentui/react-tree_v9.0.0-beta.18)
1276
1285
 
1277
1286
  ### Changes
@@ -1289,7 +1298,7 @@ Wed, 31 May 2023 06:46:22 GMT
1289
1298
 
1290
1299
  ## [9.0.0-beta.17](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.17)
1291
1300
 
1292
- Thu, 25 May 2023 10:00:48 GMT
1301
+ Thu, 25 May 2023 10:00:48 GMT
1293
1302
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.16..@fluentui/react-tree_v9.0.0-beta.17)
1294
1303
 
1295
1304
  ### Changes
@@ -1305,7 +1314,7 @@ Thu, 25 May 2023 10:00:48 GMT
1305
1314
 
1306
1315
  ## [9.0.0-beta.16](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.16)
1307
1316
 
1308
- Wed, 24 May 2023 20:45:37 GMT
1317
+ Wed, 24 May 2023 20:45:37 GMT
1309
1318
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.15..@fluentui/react-tree_v9.0.0-beta.16)
1310
1319
 
1311
1320
  ### Changes
@@ -1318,7 +1327,7 @@ Wed, 24 May 2023 20:45:37 GMT
1318
1327
 
1319
1328
  ## [9.0.0-beta.15](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.15)
1320
1329
 
1321
- Thu, 18 May 2023 13:11:08 GMT
1330
+ Thu, 18 May 2023 13:11:08 GMT
1322
1331
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.14..@fluentui/react-tree_v9.0.0-beta.15)
1323
1332
 
1324
1333
  ### Changes
@@ -1330,7 +1339,7 @@ Thu, 18 May 2023 13:11:08 GMT
1330
1339
 
1331
1340
  ## [9.0.0-beta.14](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.14)
1332
1341
 
1333
- Thu, 18 May 2023 00:39:20 GMT
1342
+ Thu, 18 May 2023 00:39:20 GMT
1334
1343
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.13..@fluentui/react-tree_v9.0.0-beta.14)
1335
1344
 
1336
1345
  ### Changes
@@ -1346,7 +1355,7 @@ Thu, 18 May 2023 00:39:20 GMT
1346
1355
 
1347
1356
  ## [9.0.0-beta.13](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.13)
1348
1357
 
1349
- Fri, 12 May 2023 20:28:01 GMT
1358
+ Fri, 12 May 2023 20:28:01 GMT
1350
1359
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.12..@fluentui/react-tree_v9.0.0-beta.13)
1351
1360
 
1352
1361
  ### Changes
@@ -1375,7 +1384,7 @@ Fri, 12 May 2023 20:28:01 GMT
1375
1384
 
1376
1385
  ## [9.0.0-beta.12](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.12)
1377
1386
 
1378
- Mon, 24 Apr 2023 08:12:44 GMT
1387
+ Mon, 24 Apr 2023 08:12:44 GMT
1379
1388
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.11..@fluentui/react-tree_v9.0.0-beta.12)
1380
1389
 
1381
1390
  ### Changes
@@ -1390,7 +1399,7 @@ Mon, 24 Apr 2023 08:12:44 GMT
1390
1399
 
1391
1400
  ## [9.0.0-beta.11](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.11)
1392
1401
 
1393
- Mon, 17 Apr 2023 17:54:01 GMT
1402
+ Mon, 17 Apr 2023 17:54:01 GMT
1394
1403
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.10..@fluentui/react-tree_v9.0.0-beta.11)
1395
1404
 
1396
1405
  ### Changes
@@ -1407,7 +1416,7 @@ Mon, 17 Apr 2023 17:54:01 GMT
1407
1416
 
1408
1417
  ## [9.0.0-beta.10](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.10)
1409
1418
 
1410
- Wed, 12 Apr 2023 09:31:45 GMT
1419
+ Wed, 12 Apr 2023 09:31:45 GMT
1411
1420
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.9..@fluentui/react-tree_v9.0.0-beta.10)
1412
1421
 
1413
1422
  ### Changes
@@ -1422,7 +1431,7 @@ Wed, 12 Apr 2023 09:31:45 GMT
1422
1431
 
1423
1432
  ## [9.0.0-beta.9](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.9)
1424
1433
 
1425
- Tue, 04 Apr 2023 18:44:49 GMT
1434
+ Tue, 04 Apr 2023 18:44:49 GMT
1426
1435
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.8..@fluentui/react-tree_v9.0.0-beta.9)
1427
1436
 
1428
1437
  ### Changes
@@ -1438,7 +1447,7 @@ Tue, 04 Apr 2023 18:44:49 GMT
1438
1447
 
1439
1448
  ## [9.0.0-beta.8](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.8)
1440
1449
 
1441
- Fri, 24 Mar 2023 10:15:27 GMT
1450
+ Fri, 24 Mar 2023 10:15:27 GMT
1442
1451
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.6..@fluentui/react-tree_v9.0.0-beta.8)
1443
1452
 
1444
1453
  ### Changes
@@ -1447,7 +1456,7 @@ Fri, 24 Mar 2023 10:15:27 GMT
1447
1456
 
1448
1457
  ## [9.0.0-beta.6](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.6)
1449
1458
 
1450
- Tue, 21 Mar 2023 21:23:13 GMT
1459
+ Tue, 21 Mar 2023 21:23:13 GMT
1451
1460
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.5..@fluentui/react-tree_v9.0.0-beta.6)
1452
1461
 
1453
1462
  ### Changes
@@ -1470,7 +1479,7 @@ Tue, 21 Mar 2023 21:23:13 GMT
1470
1479
 
1471
1480
  ## [9.0.0-beta.5](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.5)
1472
1481
 
1473
- Thu, 16 Mar 2023 14:36:59 GMT
1482
+ Thu, 16 Mar 2023 14:36:59 GMT
1474
1483
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.4..@fluentui/react-tree_v9.0.0-beta.5)
1475
1484
 
1476
1485
  ### Changes
@@ -1485,7 +1494,7 @@ Thu, 16 Mar 2023 14:36:59 GMT
1485
1494
 
1486
1495
  ## [9.0.0-beta.4](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.4)
1487
1496
 
1488
- Wed, 15 Mar 2023 10:19:53 GMT
1497
+ Wed, 15 Mar 2023 10:19:53 GMT
1489
1498
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.3..@fluentui/react-tree_v9.0.0-beta.4)
1490
1499
 
1491
1500
  ### Changes
@@ -1499,7 +1508,7 @@ Wed, 15 Mar 2023 10:19:53 GMT
1499
1508
 
1500
1509
  ## [9.0.0-beta.3](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.3)
1501
1510
 
1502
- Mon, 13 Mar 2023 08:58:26 GMT
1511
+ Mon, 13 Mar 2023 08:58:26 GMT
1503
1512
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.2..@fluentui/react-tree_v9.0.0-beta.3)
1504
1513
 
1505
1514
  ### Changes
@@ -1514,7 +1523,7 @@ Mon, 13 Mar 2023 08:58:26 GMT
1514
1523
 
1515
1524
  ## [9.0.0-beta.2](https://github.com/microsoft/fluentui/tree/@fluentui/react-tree_v9.0.0-beta.2)
1516
1525
 
1517
- Fri, 10 Mar 2023 13:28:40 GMT
1526
+ Fri, 10 Mar 2023 13:28:40 GMT
1518
1527
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tree_v9.0.0-beta.1..@fluentui/react-tree_v9.0.0-beta.2)
1519
1528
 
1520
1529
  ### Changes
package/dist/index.d.ts CHANGED
@@ -15,6 +15,8 @@ import { ContextSelector } from '@fluentui/react-context-selector';
15
15
  import type { DistributiveOmit } from '@fluentui/react-utilities';
16
16
  import type { End } from '@fluentui/keyboard-keys';
17
17
  import type { Enter } from '@fluentui/keyboard-keys';
18
+ import type { EventData } from '@fluentui/react-utilities';
19
+ import type { EventHandler } from '@fluentui/react-utilities';
18
20
  import type { ExtractSlotProps } from '@fluentui/react-utilities';
19
21
  import { ForwardRefComponent } from '@fluentui/react-utilities';
20
22
  import type { Home } from '@fluentui/keyboard-keys';
@@ -497,6 +499,18 @@ declare type TreeItemCSSProperties = React_2.CSSProperties & {
497
499
  */
498
500
  export declare const TreeItemLayout: ForwardRefComponent<TreeItemLayoutProps>;
499
501
 
502
+ declare type TreeItemLayoutActionSlotProps = ExtractSlotProps<Slot<'div'> & {
503
+ /**
504
+ * Forces visibility of the aside/action content
505
+ */
506
+ visible?: boolean;
507
+ onVisibilityChange?: EventHandler<TreeItemLayoutActionVisibilityChangeData>;
508
+ }>;
509
+
510
+ declare type TreeItemLayoutActionVisibilityChangeData = (EventData<'mouseover' | 'mouseout', MouseEvent> | EventData<'focus' | 'blur', FocusEvent> | EventData<'blur', React_2.FocusEvent>) & {
511
+ visible: boolean;
512
+ };
513
+
500
514
  export declare const treeItemLayoutClassNames: SlotClassNames<TreeItemLayoutSlots>;
501
515
 
502
516
  /**
@@ -538,12 +552,7 @@ export declare type TreeItemLayoutSlots = {
538
552
  *
539
553
  * `actions` slot supports a `visible` prop to force visibility of the actions.
540
554
  */
541
- actions?: Slot<ExtractSlotProps<Slot<'div'> & {
542
- /**
543
- * Forces visibility of the aside/action content
544
- */
545
- visible?: boolean;
546
- }>>;
555
+ actions?: Slot<TreeItemLayoutActionSlotProps>;
547
556
  selector?: Slot<typeof Checkbox> | Slot<typeof Radio>;
548
557
  };
549
558
 
@@ -1 +1 @@
1
- {"version":3,"sources":["TreeItemLayout.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState, ExtractSlotProps, Slot } from '@fluentui/react-utilities';\nimport { ButtonContextValue } from '@fluentui/react-button';\nimport { Checkbox } from '@fluentui/react-checkbox';\nimport { Radio } from '@fluentui/react-radio';\n\nexport type TreeItemLayoutSlots = {\n root: Slot<'div'>;\n /**\n * Content. Children of the root slot are automatically rendered here\n */\n main: NonNullable<Slot<'div'>>;\n /**\n * Icon slot that renders right before main content\n */\n iconBefore?: Slot<'div'>;\n /**\n * Icon slot that renders right after main content\n */\n iconAfter?: Slot<'div'>;\n /**\n * Expand icon slot,\n * by default renders a chevron icon to indicate opening and closing\n */\n expandIcon?: Slot<'div'>;\n /**\n * Aside content is normally used to render a badge or other non-actionable content\n * It is aria-hidden by default and is only meant to be used as visual aid.\n */\n aside?: Slot<'div'>;\n /**\n * Actionable elements are normally buttons, menus, or other focusable elements.\n * Those elements are only visibly available if the given tree item is currently active.\n *\n * `actions` and `aside` slots are positioned on the exact same spot,\n * so they won't be visible at the same time.\n * `aside` slot is visible by default meanwhile `actions` slot are only visible when the tree item is active.\n *\n * `actions` slot supports a `visible` prop to force visibility of the actions.\n */\n actions?: Slot<\n ExtractSlotProps<\n Slot<'div'> & {\n /**\n * Forces visibility of the aside/action content\n */\n visible?: boolean;\n }\n >\n >;\n selector?: Slot<typeof Checkbox> | Slot<typeof Radio>;\n};\n\n/**\n * TreeItemLayout Props\n */\nexport type TreeItemLayoutProps = ComponentProps<Partial<TreeItemLayoutSlots>>;\n\n/**\n * State used in rendering TreeItemLayout\n */\nexport type TreeItemLayoutState = ComponentState<TreeItemLayoutSlots> & {\n buttonContextValue: ButtonContextValue;\n};\n"],"names":[],"mappings":"AAAA,WA8DE"}
1
+ {"version":3,"sources":["TreeItemLayout.types.ts"],"sourcesContent":["import type * as React from 'react';\nimport type {\n Slot,\n ComponentProps,\n ComponentState,\n ExtractSlotProps,\n EventData,\n EventHandler,\n} from '@fluentui/react-utilities';\nimport { ButtonContextValue } from '@fluentui/react-button';\nimport { Checkbox } from '@fluentui/react-checkbox';\nimport { Radio } from '@fluentui/react-radio';\n\nexport type TreeItemLayoutActionVisibilityChangeData = (\n | EventData<'mouseover' | 'mouseout', MouseEvent>\n | EventData<'focus' | 'blur', FocusEvent>\n | EventData<'blur', React.FocusEvent>\n) & { visible: boolean };\n\nexport type TreeItemLayoutActionSlotProps = ExtractSlotProps<\n Slot<'div'> & {\n /**\n * Forces visibility of the aside/action content\n */\n visible?: boolean;\n onVisibilityChange?: EventHandler<TreeItemLayoutActionVisibilityChangeData>;\n }\n>;\n\nexport type TreeItemLayoutSlots = {\n root: Slot<'div'>;\n /**\n * Content. Children of the root slot are automatically rendered here\n */\n main: NonNullable<Slot<'div'>>;\n /**\n * Icon slot that renders right before main content\n */\n iconBefore?: Slot<'div'>;\n /**\n * Icon slot that renders right after main content\n */\n iconAfter?: Slot<'div'>;\n /**\n * Expand icon slot,\n * by default renders a chevron icon to indicate opening and closing\n */\n expandIcon?: Slot<'div'>;\n /**\n * Aside content is normally used to render a badge or other non-actionable content\n * It is aria-hidden by default and is only meant to be used as visual aid.\n */\n aside?: Slot<'div'>;\n /**\n * Actionable elements are normally buttons, menus, or other focusable elements.\n * Those elements are only visibly available if the given tree item is currently active.\n *\n * `actions` and `aside` slots are positioned on the exact same spot,\n * so they won't be visible at the same time.\n * `aside` slot is visible by default meanwhile `actions` slot are only visible when the tree item is active.\n *\n * `actions` slot supports a `visible` prop to force visibility of the actions.\n */\n actions?: Slot<TreeItemLayoutActionSlotProps>;\n selector?: Slot<typeof Checkbox> | Slot<typeof Radio>;\n};\n\n/**\n * TreeItemLayout Props\n */\nexport type TreeItemLayoutProps = ComponentProps<Partial<TreeItemLayoutSlots>>;\n\n/**\n * State used in rendering TreeItemLayout\n */\nexport type TreeItemLayoutState = ComponentState<TreeItemLayoutSlots> & {\n buttonContextValue: ButtonContextValue;\n};\n"],"names":[],"mappings":"AAAA,WA6EE"}
@@ -17,15 +17,12 @@ import { useArrowNavigationGroup } from '@fluentui/react-tabster';
17
17
  const { main, iconAfter, iconBefore } = props;
18
18
  const layoutRef = useTreeItemContext_unstable((ctx)=>ctx.layoutRef);
19
19
  const selectionMode = useTreeContext_unstable((ctx)=>ctx.selectionMode);
20
- const [isActionsVisibleFromProps, actionsShorthand] = isResolvedShorthand(props.actions) ? [
20
+ const [isActionsVisibleFromProps, onActionVisibilityChange] = isResolvedShorthand(props.actions) ? [
21
21
  props.actions.visible,
22
- {
23
- ...props.actions,
24
- visible: undefined
25
- }
22
+ props.actions.onVisibilityChange
26
23
  ] : [
27
24
  undefined,
28
- props.actions
25
+ undefined
29
26
  ];
30
27
  const [isActionsVisible, setIsActionsVisible] = useControllableState({
31
28
  state: isActionsVisibleFromProps,
@@ -46,26 +43,43 @@ import { useArrowNavigationGroup } from '@fluentui/react-tabster';
46
43
  const setActionsVisibleIfNotFromSubtree = React.useCallback((event)=>{
47
44
  const isTargetFromSubtree = Boolean(subtreeRef.current && elementContains(subtreeRef.current, event.target));
48
45
  if (!isTargetFromSubtree) {
46
+ onActionVisibilityChange === null || onActionVisibilityChange === void 0 ? void 0 : onActionVisibilityChange(event, {
47
+ visible: true,
48
+ event,
49
+ type: event.type
50
+ });
49
51
  setIsActionsVisible(true);
50
52
  }
51
53
  }, [
52
54
  subtreeRef,
53
- setIsActionsVisible
55
+ setIsActionsVisible,
56
+ onActionVisibilityChange
54
57
  ]);
55
58
  const setActionsInvisibleIfNotFromSubtree = React.useCallback((event)=>{
56
59
  const isRelatedTargetFromActions = Boolean(actionsRefInternal.current && elementContains(actionsRefInternal.current, event.relatedTarget));
57
60
  if (isRelatedTargetFromActions) {
61
+ onActionVisibilityChange === null || onActionVisibilityChange === void 0 ? void 0 : onActionVisibilityChange(event, {
62
+ visible: true,
63
+ event,
64
+ type: event.type
65
+ });
58
66
  setIsActionsVisible(true);
59
67
  return;
60
68
  }
61
69
  const isTargetFromSubtree = Boolean(subtreeRef.current && elementContains(subtreeRef.current, event.target));
62
70
  if (!isTargetFromSubtree) {
71
+ onActionVisibilityChange === null || onActionVisibilityChange === void 0 ? void 0 : onActionVisibilityChange(event, {
72
+ visible: false,
73
+ event,
74
+ type: event.type
75
+ });
63
76
  setIsActionsVisible(false);
64
77
  return;
65
78
  }
66
79
  }, [
67
80
  subtreeRef,
68
- setIsActionsVisible
81
+ setIsActionsVisible,
82
+ onActionVisibilityChange
69
83
  ]);
70
84
  const expandIcon = slot.optional(props.expandIcon, {
71
85
  renderByDefault: isBranch,
@@ -83,27 +97,34 @@ import { useArrowNavigationGroup } from '@fluentui/react-tabster';
83
97
  circular: true,
84
98
  axis: 'horizontal'
85
99
  });
86
- const actions = isActionsVisible ? slot.optional(actionsShorthand, {
100
+ const actions = isActionsVisible ? slot.optional(props.actions, {
87
101
  defaultProps: {
88
102
  ...arrowNavigationProps,
89
103
  role: 'toolbar'
90
104
  },
91
105
  elementType: 'div'
92
106
  }) : undefined;
107
+ actions === null || actions === void 0 ? true : delete actions.visible;
108
+ actions === null || actions === void 0 ? true : delete actions.onVisibilityChange;
93
109
  const actionsRefs = useMergedRefs(actions === null || actions === void 0 ? void 0 : actions.ref, actionsRef, actionsRefInternal);
94
110
  const handleActionsBlur = useEventCallback((event)=>{
95
- if (isResolvedShorthand(actionsShorthand)) {
96
- var _actionsShorthand_onBlur;
97
- (_actionsShorthand_onBlur = actionsShorthand.onBlur) === null || _actionsShorthand_onBlur === void 0 ? void 0 : _actionsShorthand_onBlur.call(actionsShorthand, event);
111
+ if (isResolvedShorthand(props.actions)) {
112
+ var _props_actions_onBlur, _props_actions;
113
+ (_props_actions_onBlur = (_props_actions = props.actions).onBlur) === null || _props_actions_onBlur === void 0 ? void 0 : _props_actions_onBlur.call(_props_actions, event);
98
114
  }
99
115
  const isRelatedTargetFromActions = Boolean(elementContains(event.currentTarget, event.relatedTarget));
116
+ onActionVisibilityChange === null || onActionVisibilityChange === void 0 ? void 0 : onActionVisibilityChange(event, {
117
+ visible: isRelatedTargetFromActions,
118
+ event,
119
+ type: event.type
120
+ });
100
121
  setIsActionsVisible(isRelatedTargetFromActions);
101
122
  });
102
123
  if (actions) {
103
124
  actions.ref = actionsRefs;
104
125
  actions.onBlur = handleActionsBlur;
105
126
  }
106
- const hasActions = Boolean(actionsShorthand);
127
+ const hasActions = Boolean(props.actions);
107
128
  React.useEffect(()=>{
108
129
  if (treeItemRef.current && hasActions && isActionsVisibleFromProps === undefined) {
109
130
  const treeItemElement = treeItemRef.current;
@@ -1 +1 @@
1
- {"version":3,"sources":["useTreeItemLayout.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n getIntrinsicElementProps,\n isResolvedShorthand,\n useMergedRefs,\n slot,\n useEventCallback,\n elementContains,\n useControllableState,\n} from '@fluentui/react-utilities';\nimport { useTreeItemContext_unstable, useTreeContext_unstable } from '../../contexts';\nimport type { TreeItemLayoutProps, TreeItemLayoutSlots, TreeItemLayoutState } from './TreeItemLayout.types';\nimport { Checkbox, CheckboxProps } from '@fluentui/react-checkbox';\nimport { Radio, RadioProps } from '@fluentui/react-radio';\nimport { TreeItemChevron } from '../TreeItemChevron';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\n\n/**\n * Create the state required to render TreeItemLayout.\n *\n * The returned state can be modified with hooks such as useTreeItemLayoutStyles_unstable,\n * before being passed to renderTreeItemLayout_unstable.\n *\n * @param props - props from this instance of TreeItemLayout\n * @param ref - reference to root HTMLElement of TreeItemLayout\n */\nexport const useTreeItemLayout_unstable = (\n props: TreeItemLayoutProps,\n ref: React.Ref<HTMLElement>,\n): TreeItemLayoutState => {\n const { main, iconAfter, iconBefore } = props;\n\n const layoutRef = useTreeItemContext_unstable(ctx => ctx.layoutRef);\n const selectionMode = useTreeContext_unstable(ctx => ctx.selectionMode);\n\n const [isActionsVisibleFromProps, actionsShorthand]: [boolean | undefined, TreeItemLayoutSlots['actions']] =\n isResolvedShorthand(props.actions)\n ? // .visible prop should not be propagated to the DOM\n [props.actions.visible, { ...props.actions, visible: undefined }]\n : [undefined, props.actions];\n\n const [isActionsVisible, setIsActionsVisible] = useControllableState({\n state: isActionsVisibleFromProps,\n initialState: false,\n });\n\n const selectionRef = useTreeItemContext_unstable(ctx => ctx.selectionRef);\n const expandIconRef = useTreeItemContext_unstable(ctx => ctx.expandIconRef);\n const actionsRef = useTreeItemContext_unstable(ctx => ctx.actionsRef);\n const actionsRefInternal = React.useRef<HTMLDivElement>(null);\n const treeItemRef = useTreeItemContext_unstable(ctx => ctx.treeItemRef);\n const subtreeRef = useTreeItemContext_unstable(ctx => ctx.subtreeRef);\n const checked = useTreeItemContext_unstable(ctx => ctx.checked);\n const isBranch = useTreeItemContext_unstable(ctx => ctx.itemType === 'branch');\n\n // FIXME: Asserting is required here, as converting this to RefObject on context type would be a breaking change\n assertIsRefObject(treeItemRef);\n // FIXME: Asserting is required here, as converting this to RefObject on context type would be a breaking change\n assertIsRefObject(subtreeRef);\n\n const setActionsVisibleIfNotFromSubtree = React.useCallback(\n (event: MouseEvent | FocusEvent) => {\n const isTargetFromSubtree = Boolean(\n subtreeRef.current && elementContains(subtreeRef.current, event.target as Node),\n );\n if (!isTargetFromSubtree) {\n setIsActionsVisible(true);\n }\n },\n [subtreeRef, setIsActionsVisible],\n );\n\n const setActionsInvisibleIfNotFromSubtree = React.useCallback(\n (event: FocusEvent | MouseEvent) => {\n const isRelatedTargetFromActions = Boolean(\n actionsRefInternal.current && elementContains(actionsRefInternal.current, event.relatedTarget as Node),\n );\n if (isRelatedTargetFromActions) {\n setIsActionsVisible(true);\n return;\n }\n const isTargetFromSubtree = Boolean(\n subtreeRef.current && elementContains(subtreeRef.current, event.target as Node),\n );\n if (!isTargetFromSubtree) {\n setIsActionsVisible(false);\n return;\n }\n },\n [subtreeRef, setIsActionsVisible],\n );\n\n const expandIcon = slot.optional(props.expandIcon, {\n renderByDefault: isBranch,\n defaultProps: {\n children: <TreeItemChevron />,\n 'aria-hidden': true,\n },\n elementType: 'div',\n });\n const expandIconRefs = useMergedRefs(expandIcon?.ref, expandIconRef);\n if (expandIcon) {\n expandIcon.ref = expandIconRefs;\n }\n const arrowNavigationProps = useArrowNavigationGroup({ circular: true, axis: 'horizontal' });\n const actions = isActionsVisible\n ? slot.optional(actionsShorthand, {\n defaultProps: { ...arrowNavigationProps, role: 'toolbar' },\n elementType: 'div',\n })\n : undefined;\n const actionsRefs = useMergedRefs(actions?.ref, actionsRef, actionsRefInternal);\n const handleActionsBlur = useEventCallback((event: React.FocusEvent<HTMLDivElement>) => {\n if (isResolvedShorthand(actionsShorthand)) {\n actionsShorthand.onBlur?.(event);\n }\n const isRelatedTargetFromActions = Boolean(elementContains(event.currentTarget, event.relatedTarget as Node));\n setIsActionsVisible(isRelatedTargetFromActions);\n });\n if (actions) {\n actions.ref = actionsRefs;\n actions.onBlur = handleActionsBlur;\n }\n\n const hasActions = Boolean(actionsShorthand);\n\n React.useEffect(() => {\n if (treeItemRef.current && hasActions && isActionsVisibleFromProps === undefined) {\n const treeItemElement = treeItemRef.current;\n\n const handleMouseOver = setActionsVisibleIfNotFromSubtree;\n const handleMouseOut = setActionsInvisibleIfNotFromSubtree;\n const handleFocus = setActionsVisibleIfNotFromSubtree;\n const handleBlur = setActionsInvisibleIfNotFromSubtree;\n\n treeItemElement.addEventListener('mouseover', handleMouseOver);\n treeItemElement.addEventListener('mouseout', handleMouseOut);\n treeItemElement.addEventListener('focus', handleFocus);\n treeItemElement.addEventListener('blur', handleBlur);\n\n return () => {\n treeItemElement.removeEventListener('mouseover', handleMouseOver);\n treeItemElement.removeEventListener('mouseout', handleMouseOut);\n treeItemElement.removeEventListener('focus', handleFocus);\n treeItemElement.removeEventListener('blur', handleBlur);\n };\n }\n }, [\n hasActions,\n treeItemRef,\n isActionsVisibleFromProps,\n setActionsVisibleIfNotFromSubtree,\n setActionsInvisibleIfNotFromSubtree,\n ]);\n\n return {\n components: {\n root: 'div',\n expandIcon: 'div',\n iconBefore: 'div',\n main: 'div',\n iconAfter: 'div',\n actions: 'div',\n aside: 'div',\n // Casting here to a union between checkbox and radio\n selector: (selectionMode === 'multiselect' ? Checkbox : Radio) as React.ElementType<CheckboxProps | RadioProps>,\n },\n buttonContextValue: { size: 'small' },\n root: slot.always(\n getIntrinsicElementProps('div', {\n ...props,\n // FIXME:\n // `ref` is wrongly assigned to be `HTMLElement` instead of `HTMLDivElement`\n // but since it would be a breaking change to fix it, we are casting ref to it's proper type\n ref: useMergedRefs(ref, layoutRef) as React.Ref<HTMLDivElement>,\n }),\n {\n elementType: 'div',\n },\n ),\n iconBefore: slot.optional(iconBefore, { defaultProps: { 'aria-hidden': true }, elementType: 'div' }),\n main: slot.always(main, { elementType: 'div' }),\n iconAfter: slot.optional(iconAfter, { defaultProps: { 'aria-hidden': true }, elementType: 'div' }),\n aside: !isActionsVisible\n ? slot.optional(props.aside, { defaultProps: { 'aria-hidden': true }, elementType: 'div' })\n : undefined,\n actions,\n expandIcon,\n selector: slot.optional(props.selector, {\n renderByDefault: selectionMode !== 'none',\n defaultProps: {\n checked,\n tabIndex: -1,\n 'aria-hidden': true,\n ref: selectionRef,\n // casting here to a union between checkbox and radio\n // since ref is not present on the selector signature\n // FIXME: look into Slot type to see if we can make this work\n } as CheckboxProps | RadioProps,\n elementType: (selectionMode === 'multiselect' ? Checkbox : Radio) as React.ElementType<\n CheckboxProps | RadioProps\n >,\n }),\n };\n};\n\nfunction assertIsRefObject<Value>(ref?: React.Ref<Value>): asserts ref is React.RefObject<Value> {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof ref !== 'object' || ref === null || !('current' in ref)) {\n throw new Error(`\n @fluentui/react-tree [${useTreeItemLayout_unstable.name}]:\n Internal Error: contextual ref is not a RefObject! Please report this bug immediately, as contextual refs should be RefObjects.\n `);\n }\n }\n}\n"],"names":["React","getIntrinsicElementProps","isResolvedShorthand","useMergedRefs","slot","useEventCallback","elementContains","useControllableState","useTreeItemContext_unstable","useTreeContext_unstable","Checkbox","Radio","TreeItemChevron","useArrowNavigationGroup","useTreeItemLayout_unstable","props","ref","main","iconAfter","iconBefore","layoutRef","ctx","selectionMode","isActionsVisibleFromProps","actionsShorthand","actions","visible","undefined","isActionsVisible","setIsActionsVisible","state","initialState","selectionRef","expandIconRef","actionsRef","actionsRefInternal","useRef","treeItemRef","subtreeRef","checked","isBranch","itemType","assertIsRefObject","setActionsVisibleIfNotFromSubtree","useCallback","event","isTargetFromSubtree","Boolean","current","target","setActionsInvisibleIfNotFromSubtree","isRelatedTargetFromActions","relatedTarget","expandIcon","optional","renderByDefault","defaultProps","children","elementType","expandIconRefs","arrowNavigationProps","circular","axis","role","actionsRefs","handleActionsBlur","onBlur","currentTarget","hasActions","useEffect","treeItemElement","handleMouseOver","handleMouseOut","handleFocus","handleBlur","addEventListener","removeEventListener","components","root","aside","selector","buttonContextValue","size","always","tabIndex","process","env","NODE_ENV","Error","name"],"mappings":"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"}
1
+ {"version":3,"sources":["useTreeItemLayout.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n getIntrinsicElementProps,\n isResolvedShorthand,\n useMergedRefs,\n slot,\n useEventCallback,\n elementContains,\n useControllableState,\n} from '@fluentui/react-utilities';\nimport { useTreeItemContext_unstable, useTreeContext_unstable } from '../../contexts';\nimport type {\n TreeItemLayoutActionSlotProps,\n TreeItemLayoutActionVisibilityChangeData,\n TreeItemLayoutProps,\n TreeItemLayoutState,\n} from './TreeItemLayout.types';\nimport { Checkbox, CheckboxProps } from '@fluentui/react-checkbox';\nimport { Radio, RadioProps } from '@fluentui/react-radio';\nimport { TreeItemChevron } from '../TreeItemChevron';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\n\n/**\n * Create the state required to render TreeItemLayout.\n *\n * The returned state can be modified with hooks such as useTreeItemLayoutStyles_unstable,\n * before being passed to renderTreeItemLayout_unstable.\n *\n * @param props - props from this instance of TreeItemLayout\n * @param ref - reference to root HTMLElement of TreeItemLayout\n */\nexport const useTreeItemLayout_unstable = (\n props: TreeItemLayoutProps,\n ref: React.Ref<HTMLElement>,\n): TreeItemLayoutState => {\n const { main, iconAfter, iconBefore } = props;\n\n const layoutRef = useTreeItemContext_unstable(ctx => ctx.layoutRef);\n const selectionMode = useTreeContext_unstable(ctx => ctx.selectionMode);\n\n const [isActionsVisibleFromProps, onActionVisibilityChange]: [\n TreeItemLayoutActionSlotProps['visible'],\n TreeItemLayoutActionSlotProps['onVisibilityChange'],\n ] = isResolvedShorthand(props.actions)\n ? // .visible .onVisibilityChange prop should not be propagated to the DOM\n [props.actions.visible, props.actions.onVisibilityChange]\n : [undefined, undefined];\n\n const [isActionsVisible, setIsActionsVisible] = useControllableState({\n state: isActionsVisibleFromProps,\n initialState: false,\n });\n const selectionRef = useTreeItemContext_unstable(ctx => ctx.selectionRef);\n const expandIconRef = useTreeItemContext_unstable(ctx => ctx.expandIconRef);\n const actionsRef = useTreeItemContext_unstable(ctx => ctx.actionsRef);\n const actionsRefInternal = React.useRef<HTMLDivElement>(null);\n const treeItemRef = useTreeItemContext_unstable(ctx => ctx.treeItemRef);\n const subtreeRef = useTreeItemContext_unstable(ctx => ctx.subtreeRef);\n const checked = useTreeItemContext_unstable(ctx => ctx.checked);\n const isBranch = useTreeItemContext_unstable(ctx => ctx.itemType === 'branch');\n\n // FIXME: Asserting is required here, as converting this to RefObject on context type would be a breaking change\n assertIsRefObject(treeItemRef);\n // FIXME: Asserting is required here, as converting this to RefObject on context type would be a breaking change\n assertIsRefObject(subtreeRef);\n\n const setActionsVisibleIfNotFromSubtree = React.useCallback(\n (event: MouseEvent | FocusEvent) => {\n const isTargetFromSubtree = Boolean(\n subtreeRef.current && elementContains(subtreeRef.current, event.target as Node),\n );\n if (!isTargetFromSubtree) {\n onActionVisibilityChange?.(event, {\n visible: true,\n event,\n type: event.type,\n } as Extract<TreeItemLayoutActionVisibilityChangeData, { event: typeof event }>);\n setIsActionsVisible(true);\n }\n },\n [subtreeRef, setIsActionsVisible, onActionVisibilityChange],\n );\n\n const setActionsInvisibleIfNotFromSubtree = React.useCallback(\n (event: FocusEvent | MouseEvent) => {\n const isRelatedTargetFromActions = Boolean(\n actionsRefInternal.current && elementContains(actionsRefInternal.current, event.relatedTarget as Node),\n );\n if (isRelatedTargetFromActions) {\n onActionVisibilityChange?.(event, {\n visible: true,\n event,\n type: event.type,\n } as Extract<TreeItemLayoutActionVisibilityChangeData, { event: typeof event }>);\n setIsActionsVisible(true);\n return;\n }\n const isTargetFromSubtree = Boolean(\n subtreeRef.current && elementContains(subtreeRef.current, event.target as Node),\n );\n if (!isTargetFromSubtree) {\n onActionVisibilityChange?.(event, {\n visible: false,\n event,\n type: event.type,\n } as Extract<TreeItemLayoutActionVisibilityChangeData, { event: typeof event }>);\n setIsActionsVisible(false);\n return;\n }\n },\n [subtreeRef, setIsActionsVisible, onActionVisibilityChange],\n );\n\n const expandIcon = slot.optional(props.expandIcon, {\n renderByDefault: isBranch,\n defaultProps: {\n children: <TreeItemChevron />,\n 'aria-hidden': true,\n },\n elementType: 'div',\n });\n const expandIconRefs = useMergedRefs(expandIcon?.ref, expandIconRef);\n if (expandIcon) {\n expandIcon.ref = expandIconRefs;\n }\n const arrowNavigationProps = useArrowNavigationGroup({ circular: true, axis: 'horizontal' });\n const actions = isActionsVisible\n ? slot.optional(props.actions, {\n defaultProps: { ...arrowNavigationProps, role: 'toolbar' },\n elementType: 'div',\n })\n : undefined;\n delete actions?.visible;\n delete actions?.onVisibilityChange;\n const actionsRefs = useMergedRefs(actions?.ref, actionsRef, actionsRefInternal);\n const handleActionsBlur = useEventCallback((event: React.FocusEvent<HTMLDivElement>) => {\n if (isResolvedShorthand(props.actions)) {\n props.actions.onBlur?.(event);\n }\n const isRelatedTargetFromActions = Boolean(elementContains(event.currentTarget, event.relatedTarget as Node));\n onActionVisibilityChange?.(event, {\n visible: isRelatedTargetFromActions,\n event,\n type: event.type,\n } as Extract<TreeItemLayoutActionVisibilityChangeData, { event: typeof event }>);\n setIsActionsVisible(isRelatedTargetFromActions);\n });\n if (actions) {\n actions.ref = actionsRefs;\n actions.onBlur = handleActionsBlur;\n }\n\n const hasActions = Boolean(props.actions);\n\n React.useEffect(() => {\n if (treeItemRef.current && hasActions && isActionsVisibleFromProps === undefined) {\n const treeItemElement = treeItemRef.current;\n\n const handleMouseOver = setActionsVisibleIfNotFromSubtree;\n const handleMouseOut = setActionsInvisibleIfNotFromSubtree;\n const handleFocus = setActionsVisibleIfNotFromSubtree;\n const handleBlur = setActionsInvisibleIfNotFromSubtree;\n\n treeItemElement.addEventListener('mouseover', handleMouseOver);\n treeItemElement.addEventListener('mouseout', handleMouseOut);\n treeItemElement.addEventListener('focus', handleFocus);\n treeItemElement.addEventListener('blur', handleBlur);\n\n return () => {\n treeItemElement.removeEventListener('mouseover', handleMouseOver);\n treeItemElement.removeEventListener('mouseout', handleMouseOut);\n treeItemElement.removeEventListener('focus', handleFocus);\n treeItemElement.removeEventListener('blur', handleBlur);\n };\n }\n }, [\n hasActions,\n treeItemRef,\n isActionsVisibleFromProps,\n setActionsVisibleIfNotFromSubtree,\n setActionsInvisibleIfNotFromSubtree,\n ]);\n\n return {\n components: {\n root: 'div',\n expandIcon: 'div',\n iconBefore: 'div',\n main: 'div',\n iconAfter: 'div',\n actions: 'div',\n aside: 'div',\n // Casting here to a union between checkbox and radio\n selector: (selectionMode === 'multiselect' ? Checkbox : Radio) as React.ElementType<CheckboxProps | RadioProps>,\n },\n buttonContextValue: { size: 'small' },\n root: slot.always(\n getIntrinsicElementProps('div', {\n ...props,\n // FIXME:\n // `ref` is wrongly assigned to be `HTMLElement` instead of `HTMLDivElement`\n // but since it would be a breaking change to fix it, we are casting ref to it's proper type\n ref: useMergedRefs(ref, layoutRef) as React.Ref<HTMLDivElement>,\n }),\n {\n elementType: 'div',\n },\n ),\n iconBefore: slot.optional(iconBefore, { defaultProps: { 'aria-hidden': true }, elementType: 'div' }),\n main: slot.always(main, { elementType: 'div' }),\n iconAfter: slot.optional(iconAfter, { defaultProps: { 'aria-hidden': true }, elementType: 'div' }),\n aside: !isActionsVisible\n ? slot.optional(props.aside, { defaultProps: { 'aria-hidden': true }, elementType: 'div' })\n : undefined,\n actions,\n expandIcon,\n selector: slot.optional(props.selector, {\n renderByDefault: selectionMode !== 'none',\n defaultProps: {\n checked,\n tabIndex: -1,\n 'aria-hidden': true,\n ref: selectionRef,\n // casting here to a union between checkbox and radio\n // since ref is not present on the selector signature\n // FIXME: look into Slot type to see if we can make this work\n } as CheckboxProps | RadioProps,\n elementType: (selectionMode === 'multiselect' ? Checkbox : Radio) as React.ElementType<\n CheckboxProps | RadioProps\n >,\n }),\n };\n};\n\nfunction assertIsRefObject<Value>(ref?: React.Ref<Value>): asserts ref is React.RefObject<Value> {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof ref !== 'object' || ref === null || !('current' in ref)) {\n throw new Error(`\n @fluentui/react-tree [${useTreeItemLayout_unstable.name}]:\n Internal Error: contextual ref is not a RefObject! Please report this bug immediately, as contextual refs should be RefObjects.\n `);\n }\n }\n}\n"],"names":["React","getIntrinsicElementProps","isResolvedShorthand","useMergedRefs","slot","useEventCallback","elementContains","useControllableState","useTreeItemContext_unstable","useTreeContext_unstable","Checkbox","Radio","TreeItemChevron","useArrowNavigationGroup","useTreeItemLayout_unstable","props","ref","main","iconAfter","iconBefore","layoutRef","ctx","selectionMode","isActionsVisibleFromProps","onActionVisibilityChange","actions","visible","onVisibilityChange","undefined","isActionsVisible","setIsActionsVisible","state","initialState","selectionRef","expandIconRef","actionsRef","actionsRefInternal","useRef","treeItemRef","subtreeRef","checked","isBranch","itemType","assertIsRefObject","setActionsVisibleIfNotFromSubtree","useCallback","event","isTargetFromSubtree","Boolean","current","target","type","setActionsInvisibleIfNotFromSubtree","isRelatedTargetFromActions","relatedTarget","expandIcon","optional","renderByDefault","defaultProps","children","elementType","expandIconRefs","arrowNavigationProps","circular","axis","role","actionsRefs","handleActionsBlur","onBlur","currentTarget","hasActions","useEffect","treeItemElement","handleMouseOver","handleMouseOut","handleFocus","handleBlur","addEventListener","removeEventListener","components","root","aside","selector","buttonContextValue","size","always","tabIndex","process","env","NODE_ENV","Error","name"],"mappings":"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"}
@@ -20,15 +20,12 @@ const useTreeItemLayout_unstable = (props, ref)=>{
20
20
  const { main, iconAfter, iconBefore } = props;
21
21
  const layoutRef = (0, _contexts.useTreeItemContext_unstable)((ctx)=>ctx.layoutRef);
22
22
  const selectionMode = (0, _contexts.useTreeContext_unstable)((ctx)=>ctx.selectionMode);
23
- const [isActionsVisibleFromProps, actionsShorthand] = (0, _reactutilities.isResolvedShorthand)(props.actions) ? [
23
+ const [isActionsVisibleFromProps, onActionVisibilityChange] = (0, _reactutilities.isResolvedShorthand)(props.actions) ? [
24
24
  props.actions.visible,
25
- {
26
- ...props.actions,
27
- visible: undefined
28
- }
25
+ props.actions.onVisibilityChange
29
26
  ] : [
30
27
  undefined,
31
- props.actions
28
+ undefined
32
29
  ];
33
30
  const [isActionsVisible, setIsActionsVisible] = (0, _reactutilities.useControllableState)({
34
31
  state: isActionsVisibleFromProps,
@@ -49,26 +46,43 @@ const useTreeItemLayout_unstable = (props, ref)=>{
49
46
  const setActionsVisibleIfNotFromSubtree = _react.useCallback((event)=>{
50
47
  const isTargetFromSubtree = Boolean(subtreeRef.current && (0, _reactutilities.elementContains)(subtreeRef.current, event.target));
51
48
  if (!isTargetFromSubtree) {
49
+ onActionVisibilityChange === null || onActionVisibilityChange === void 0 ? void 0 : onActionVisibilityChange(event, {
50
+ visible: true,
51
+ event,
52
+ type: event.type
53
+ });
52
54
  setIsActionsVisible(true);
53
55
  }
54
56
  }, [
55
57
  subtreeRef,
56
- setIsActionsVisible
58
+ setIsActionsVisible,
59
+ onActionVisibilityChange
57
60
  ]);
58
61
  const setActionsInvisibleIfNotFromSubtree = _react.useCallback((event)=>{
59
62
  const isRelatedTargetFromActions = Boolean(actionsRefInternal.current && (0, _reactutilities.elementContains)(actionsRefInternal.current, event.relatedTarget));
60
63
  if (isRelatedTargetFromActions) {
64
+ onActionVisibilityChange === null || onActionVisibilityChange === void 0 ? void 0 : onActionVisibilityChange(event, {
65
+ visible: true,
66
+ event,
67
+ type: event.type
68
+ });
61
69
  setIsActionsVisible(true);
62
70
  return;
63
71
  }
64
72
  const isTargetFromSubtree = Boolean(subtreeRef.current && (0, _reactutilities.elementContains)(subtreeRef.current, event.target));
65
73
  if (!isTargetFromSubtree) {
74
+ onActionVisibilityChange === null || onActionVisibilityChange === void 0 ? void 0 : onActionVisibilityChange(event, {
75
+ visible: false,
76
+ event,
77
+ type: event.type
78
+ });
66
79
  setIsActionsVisible(false);
67
80
  return;
68
81
  }
69
82
  }, [
70
83
  subtreeRef,
71
- setIsActionsVisible
84
+ setIsActionsVisible,
85
+ onActionVisibilityChange
72
86
  ]);
73
87
  const expandIcon = _reactutilities.slot.optional(props.expandIcon, {
74
88
  renderByDefault: isBranch,
@@ -86,27 +100,34 @@ const useTreeItemLayout_unstable = (props, ref)=>{
86
100
  circular: true,
87
101
  axis: 'horizontal'
88
102
  });
89
- const actions = isActionsVisible ? _reactutilities.slot.optional(actionsShorthand, {
103
+ const actions = isActionsVisible ? _reactutilities.slot.optional(props.actions, {
90
104
  defaultProps: {
91
105
  ...arrowNavigationProps,
92
106
  role: 'toolbar'
93
107
  },
94
108
  elementType: 'div'
95
109
  }) : undefined;
110
+ actions === null || actions === void 0 ? true : delete actions.visible;
111
+ actions === null || actions === void 0 ? true : delete actions.onVisibilityChange;
96
112
  const actionsRefs = (0, _reactutilities.useMergedRefs)(actions === null || actions === void 0 ? void 0 : actions.ref, actionsRef, actionsRefInternal);
97
113
  const handleActionsBlur = (0, _reactutilities.useEventCallback)((event)=>{
98
- if ((0, _reactutilities.isResolvedShorthand)(actionsShorthand)) {
99
- var _actionsShorthand_onBlur;
100
- (_actionsShorthand_onBlur = actionsShorthand.onBlur) === null || _actionsShorthand_onBlur === void 0 ? void 0 : _actionsShorthand_onBlur.call(actionsShorthand, event);
114
+ if ((0, _reactutilities.isResolvedShorthand)(props.actions)) {
115
+ var _props_actions_onBlur, _props_actions;
116
+ (_props_actions_onBlur = (_props_actions = props.actions).onBlur) === null || _props_actions_onBlur === void 0 ? void 0 : _props_actions_onBlur.call(_props_actions, event);
101
117
  }
102
118
  const isRelatedTargetFromActions = Boolean((0, _reactutilities.elementContains)(event.currentTarget, event.relatedTarget));
119
+ onActionVisibilityChange === null || onActionVisibilityChange === void 0 ? void 0 : onActionVisibilityChange(event, {
120
+ visible: isRelatedTargetFromActions,
121
+ event,
122
+ type: event.type
123
+ });
103
124
  setIsActionsVisible(isRelatedTargetFromActions);
104
125
  });
105
126
  if (actions) {
106
127
  actions.ref = actionsRefs;
107
128
  actions.onBlur = handleActionsBlur;
108
129
  }
109
- const hasActions = Boolean(actionsShorthand);
130
+ const hasActions = Boolean(props.actions);
110
131
  _react.useEffect(()=>{
111
132
  if (treeItemRef.current && hasActions && isActionsVisibleFromProps === undefined) {
112
133
  const treeItemElement = treeItemRef.current;
@@ -1 +1 @@
1
- {"version":3,"sources":["useTreeItemLayout.js"],"sourcesContent":["import * as React from 'react';\nimport { getIntrinsicElementProps, isResolvedShorthand, useMergedRefs, slot, useEventCallback, elementContains, useControllableState } from '@fluentui/react-utilities';\nimport { useTreeItemContext_unstable, useTreeContext_unstable } from '../../contexts';\nimport { Checkbox } from '@fluentui/react-checkbox';\nimport { Radio } from '@fluentui/react-radio';\nimport { TreeItemChevron } from '../TreeItemChevron';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\n/**\n * Create the state required to render TreeItemLayout.\n *\n * The returned state can be modified with hooks such as useTreeItemLayoutStyles_unstable,\n * before being passed to renderTreeItemLayout_unstable.\n *\n * @param props - props from this instance of TreeItemLayout\n * @param ref - reference to root HTMLElement of TreeItemLayout\n */ export const useTreeItemLayout_unstable = (props, ref)=>{\n const { main, iconAfter, iconBefore } = props;\n const layoutRef = useTreeItemContext_unstable((ctx)=>ctx.layoutRef);\n const selectionMode = useTreeContext_unstable((ctx)=>ctx.selectionMode);\n const [isActionsVisibleFromProps, actionsShorthand] = isResolvedShorthand(props.actions) ? [\n props.actions.visible,\n {\n ...props.actions,\n visible: undefined\n }\n ] : [\n undefined,\n props.actions\n ];\n const [isActionsVisible, setIsActionsVisible] = useControllableState({\n state: isActionsVisibleFromProps,\n initialState: false\n });\n const selectionRef = useTreeItemContext_unstable((ctx)=>ctx.selectionRef);\n const expandIconRef = useTreeItemContext_unstable((ctx)=>ctx.expandIconRef);\n const actionsRef = useTreeItemContext_unstable((ctx)=>ctx.actionsRef);\n const actionsRefInternal = React.useRef(null);\n const treeItemRef = useTreeItemContext_unstable((ctx)=>ctx.treeItemRef);\n const subtreeRef = useTreeItemContext_unstable((ctx)=>ctx.subtreeRef);\n const checked = useTreeItemContext_unstable((ctx)=>ctx.checked);\n const isBranch = useTreeItemContext_unstable((ctx)=>ctx.itemType === 'branch');\n // FIXME: Asserting is required here, as converting this to RefObject on context type would be a breaking change\n assertIsRefObject(treeItemRef);\n // FIXME: Asserting is required here, as converting this to RefObject on context type would be a breaking change\n assertIsRefObject(subtreeRef);\n const setActionsVisibleIfNotFromSubtree = React.useCallback((event)=>{\n const isTargetFromSubtree = Boolean(subtreeRef.current && elementContains(subtreeRef.current, event.target));\n if (!isTargetFromSubtree) {\n setIsActionsVisible(true);\n }\n }, [\n subtreeRef,\n setIsActionsVisible\n ]);\n const setActionsInvisibleIfNotFromSubtree = React.useCallback((event)=>{\n const isRelatedTargetFromActions = Boolean(actionsRefInternal.current && elementContains(actionsRefInternal.current, event.relatedTarget));\n if (isRelatedTargetFromActions) {\n setIsActionsVisible(true);\n return;\n }\n const isTargetFromSubtree = Boolean(subtreeRef.current && elementContains(subtreeRef.current, event.target));\n if (!isTargetFromSubtree) {\n setIsActionsVisible(false);\n return;\n }\n }, [\n subtreeRef,\n setIsActionsVisible\n ]);\n const expandIcon = slot.optional(props.expandIcon, {\n renderByDefault: isBranch,\n defaultProps: {\n children: /*#__PURE__*/ React.createElement(TreeItemChevron, null),\n 'aria-hidden': true\n },\n elementType: 'div'\n });\n const expandIconRefs = useMergedRefs(expandIcon === null || expandIcon === void 0 ? void 0 : expandIcon.ref, expandIconRef);\n if (expandIcon) {\n expandIcon.ref = expandIconRefs;\n }\n const arrowNavigationProps = useArrowNavigationGroup({\n circular: true,\n axis: 'horizontal'\n });\n const actions = isActionsVisible ? slot.optional(actionsShorthand, {\n defaultProps: {\n ...arrowNavigationProps,\n role: 'toolbar'\n },\n elementType: 'div'\n }) : undefined;\n const actionsRefs = useMergedRefs(actions === null || actions === void 0 ? void 0 : actions.ref, actionsRef, actionsRefInternal);\n const handleActionsBlur = useEventCallback((event)=>{\n if (isResolvedShorthand(actionsShorthand)) {\n var _actionsShorthand_onBlur;\n (_actionsShorthand_onBlur = actionsShorthand.onBlur) === null || _actionsShorthand_onBlur === void 0 ? void 0 : _actionsShorthand_onBlur.call(actionsShorthand, event);\n }\n const isRelatedTargetFromActions = Boolean(elementContains(event.currentTarget, event.relatedTarget));\n setIsActionsVisible(isRelatedTargetFromActions);\n });\n if (actions) {\n actions.ref = actionsRefs;\n actions.onBlur = handleActionsBlur;\n }\n const hasActions = Boolean(actionsShorthand);\n React.useEffect(()=>{\n if (treeItemRef.current && hasActions && isActionsVisibleFromProps === undefined) {\n const treeItemElement = treeItemRef.current;\n const handleMouseOver = setActionsVisibleIfNotFromSubtree;\n const handleMouseOut = setActionsInvisibleIfNotFromSubtree;\n const handleFocus = setActionsVisibleIfNotFromSubtree;\n const handleBlur = setActionsInvisibleIfNotFromSubtree;\n treeItemElement.addEventListener('mouseover', handleMouseOver);\n treeItemElement.addEventListener('mouseout', handleMouseOut);\n treeItemElement.addEventListener('focus', handleFocus);\n treeItemElement.addEventListener('blur', handleBlur);\n return ()=>{\n treeItemElement.removeEventListener('mouseover', handleMouseOver);\n treeItemElement.removeEventListener('mouseout', handleMouseOut);\n treeItemElement.removeEventListener('focus', handleFocus);\n treeItemElement.removeEventListener('blur', handleBlur);\n };\n }\n }, [\n hasActions,\n treeItemRef,\n isActionsVisibleFromProps,\n setActionsVisibleIfNotFromSubtree,\n setActionsInvisibleIfNotFromSubtree\n ]);\n return {\n components: {\n root: 'div',\n expandIcon: 'div',\n iconBefore: 'div',\n main: 'div',\n iconAfter: 'div',\n actions: 'div',\n aside: 'div',\n // Casting here to a union between checkbox and radio\n selector: selectionMode === 'multiselect' ? Checkbox : Radio\n },\n buttonContextValue: {\n size: 'small'\n },\n root: slot.always(getIntrinsicElementProps('div', {\n ...props,\n // FIXME:\n // `ref` is wrongly assigned to be `HTMLElement` instead of `HTMLDivElement`\n // but since it would be a breaking change to fix it, we are casting ref to it's proper type\n ref: useMergedRefs(ref, layoutRef)\n }), {\n elementType: 'div'\n }),\n iconBefore: slot.optional(iconBefore, {\n defaultProps: {\n 'aria-hidden': true\n },\n elementType: 'div'\n }),\n main: slot.always(main, {\n elementType: 'div'\n }),\n iconAfter: slot.optional(iconAfter, {\n defaultProps: {\n 'aria-hidden': true\n },\n elementType: 'div'\n }),\n aside: !isActionsVisible ? slot.optional(props.aside, {\n defaultProps: {\n 'aria-hidden': true\n },\n elementType: 'div'\n }) : undefined,\n actions,\n expandIcon,\n selector: slot.optional(props.selector, {\n renderByDefault: selectionMode !== 'none',\n defaultProps: {\n checked,\n tabIndex: -1,\n 'aria-hidden': true,\n ref: selectionRef\n },\n elementType: selectionMode === 'multiselect' ? Checkbox : Radio\n })\n };\n};\nfunction assertIsRefObject(ref) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof ref !== 'object' || ref === null || !('current' in ref)) {\n throw new Error(`\n @fluentui/react-tree [${useTreeItemLayout_unstable.name}]:\n Internal Error: contextual ref is not a RefObject! Please report this bug immediately, as contextual refs should be RefObjects.\n `);\n }\n }\n}\n"],"names":["useTreeItemLayout_unstable","props","ref","main","iconAfter","iconBefore","layoutRef","useTreeItemContext_unstable","ctx","selectionMode","useTreeContext_unstable","isActionsVisibleFromProps","actionsShorthand","isResolvedShorthand","actions","visible","undefined","isActionsVisible","setIsActionsVisible","useControllableState","state","initialState","selectionRef","expandIconRef","actionsRef","actionsRefInternal","React","useRef","treeItemRef","subtreeRef","checked","isBranch","itemType","assertIsRefObject","setActionsVisibleIfNotFromSubtree","useCallback","event","isTargetFromSubtree","Boolean","current","elementContains","target","setActionsInvisibleIfNotFromSubtree","isRelatedTargetFromActions","relatedTarget","expandIcon","slot","optional","renderByDefault","defaultProps","children","createElement","TreeItemChevron","elementType","expandIconRefs","useMergedRefs","arrowNavigationProps","useArrowNavigationGroup","circular","axis","role","actionsRefs","handleActionsBlur","useEventCallback","_actionsShorthand_onBlur","onBlur","call","currentTarget","hasActions","useEffect","treeItemElement","handleMouseOver","handleMouseOut","handleFocus","handleBlur","addEventListener","removeEventListener","components","root","aside","selector","Checkbox","Radio","buttonContextValue","size","always","getIntrinsicElementProps","tabIndex","process","env","NODE_ENV","Error","name"],"mappings":"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"}
1
+ {"version":3,"sources":["useTreeItemLayout.js"],"sourcesContent":["import * as React from 'react';\nimport { getIntrinsicElementProps, isResolvedShorthand, useMergedRefs, slot, useEventCallback, elementContains, useControllableState } from '@fluentui/react-utilities';\nimport { useTreeItemContext_unstable, useTreeContext_unstable } from '../../contexts';\nimport { Checkbox } from '@fluentui/react-checkbox';\nimport { Radio } from '@fluentui/react-radio';\nimport { TreeItemChevron } from '../TreeItemChevron';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\n/**\n * Create the state required to render TreeItemLayout.\n *\n * The returned state can be modified with hooks such as useTreeItemLayoutStyles_unstable,\n * before being passed to renderTreeItemLayout_unstable.\n *\n * @param props - props from this instance of TreeItemLayout\n * @param ref - reference to root HTMLElement of TreeItemLayout\n */ export const useTreeItemLayout_unstable = (props, ref)=>{\n const { main, iconAfter, iconBefore } = props;\n const layoutRef = useTreeItemContext_unstable((ctx)=>ctx.layoutRef);\n const selectionMode = useTreeContext_unstable((ctx)=>ctx.selectionMode);\n const [isActionsVisibleFromProps, onActionVisibilityChange] = isResolvedShorthand(props.actions) ? [\n props.actions.visible,\n props.actions.onVisibilityChange\n ] : [\n undefined,\n undefined\n ];\n const [isActionsVisible, setIsActionsVisible] = useControllableState({\n state: isActionsVisibleFromProps,\n initialState: false\n });\n const selectionRef = useTreeItemContext_unstable((ctx)=>ctx.selectionRef);\n const expandIconRef = useTreeItemContext_unstable((ctx)=>ctx.expandIconRef);\n const actionsRef = useTreeItemContext_unstable((ctx)=>ctx.actionsRef);\n const actionsRefInternal = React.useRef(null);\n const treeItemRef = useTreeItemContext_unstable((ctx)=>ctx.treeItemRef);\n const subtreeRef = useTreeItemContext_unstable((ctx)=>ctx.subtreeRef);\n const checked = useTreeItemContext_unstable((ctx)=>ctx.checked);\n const isBranch = useTreeItemContext_unstable((ctx)=>ctx.itemType === 'branch');\n // FIXME: Asserting is required here, as converting this to RefObject on context type would be a breaking change\n assertIsRefObject(treeItemRef);\n // FIXME: Asserting is required here, as converting this to RefObject on context type would be a breaking change\n assertIsRefObject(subtreeRef);\n const setActionsVisibleIfNotFromSubtree = React.useCallback((event)=>{\n const isTargetFromSubtree = Boolean(subtreeRef.current && elementContains(subtreeRef.current, event.target));\n if (!isTargetFromSubtree) {\n onActionVisibilityChange === null || onActionVisibilityChange === void 0 ? void 0 : onActionVisibilityChange(event, {\n visible: true,\n event,\n type: event.type\n });\n setIsActionsVisible(true);\n }\n }, [\n subtreeRef,\n setIsActionsVisible,\n onActionVisibilityChange\n ]);\n const setActionsInvisibleIfNotFromSubtree = React.useCallback((event)=>{\n const isRelatedTargetFromActions = Boolean(actionsRefInternal.current && elementContains(actionsRefInternal.current, event.relatedTarget));\n if (isRelatedTargetFromActions) {\n onActionVisibilityChange === null || onActionVisibilityChange === void 0 ? void 0 : onActionVisibilityChange(event, {\n visible: true,\n event,\n type: event.type\n });\n setIsActionsVisible(true);\n return;\n }\n const isTargetFromSubtree = Boolean(subtreeRef.current && elementContains(subtreeRef.current, event.target));\n if (!isTargetFromSubtree) {\n onActionVisibilityChange === null || onActionVisibilityChange === void 0 ? void 0 : onActionVisibilityChange(event, {\n visible: false,\n event,\n type: event.type\n });\n setIsActionsVisible(false);\n return;\n }\n }, [\n subtreeRef,\n setIsActionsVisible,\n onActionVisibilityChange\n ]);\n const expandIcon = slot.optional(props.expandIcon, {\n renderByDefault: isBranch,\n defaultProps: {\n children: /*#__PURE__*/ React.createElement(TreeItemChevron, null),\n 'aria-hidden': true\n },\n elementType: 'div'\n });\n const expandIconRefs = useMergedRefs(expandIcon === null || expandIcon === void 0 ? void 0 : expandIcon.ref, expandIconRef);\n if (expandIcon) {\n expandIcon.ref = expandIconRefs;\n }\n const arrowNavigationProps = useArrowNavigationGroup({\n circular: true,\n axis: 'horizontal'\n });\n const actions = isActionsVisible ? slot.optional(props.actions, {\n defaultProps: {\n ...arrowNavigationProps,\n role: 'toolbar'\n },\n elementType: 'div'\n }) : undefined;\n actions === null || actions === void 0 ? true : delete actions.visible;\n actions === null || actions === void 0 ? true : delete actions.onVisibilityChange;\n const actionsRefs = useMergedRefs(actions === null || actions === void 0 ? void 0 : actions.ref, actionsRef, actionsRefInternal);\n const handleActionsBlur = useEventCallback((event)=>{\n if (isResolvedShorthand(props.actions)) {\n var _props_actions_onBlur, _props_actions;\n (_props_actions_onBlur = (_props_actions = props.actions).onBlur) === null || _props_actions_onBlur === void 0 ? void 0 : _props_actions_onBlur.call(_props_actions, event);\n }\n const isRelatedTargetFromActions = Boolean(elementContains(event.currentTarget, event.relatedTarget));\n onActionVisibilityChange === null || onActionVisibilityChange === void 0 ? void 0 : onActionVisibilityChange(event, {\n visible: isRelatedTargetFromActions,\n event,\n type: event.type\n });\n setIsActionsVisible(isRelatedTargetFromActions);\n });\n if (actions) {\n actions.ref = actionsRefs;\n actions.onBlur = handleActionsBlur;\n }\n const hasActions = Boolean(props.actions);\n React.useEffect(()=>{\n if (treeItemRef.current && hasActions && isActionsVisibleFromProps === undefined) {\n const treeItemElement = treeItemRef.current;\n const handleMouseOver = setActionsVisibleIfNotFromSubtree;\n const handleMouseOut = setActionsInvisibleIfNotFromSubtree;\n const handleFocus = setActionsVisibleIfNotFromSubtree;\n const handleBlur = setActionsInvisibleIfNotFromSubtree;\n treeItemElement.addEventListener('mouseover', handleMouseOver);\n treeItemElement.addEventListener('mouseout', handleMouseOut);\n treeItemElement.addEventListener('focus', handleFocus);\n treeItemElement.addEventListener('blur', handleBlur);\n return ()=>{\n treeItemElement.removeEventListener('mouseover', handleMouseOver);\n treeItemElement.removeEventListener('mouseout', handleMouseOut);\n treeItemElement.removeEventListener('focus', handleFocus);\n treeItemElement.removeEventListener('blur', handleBlur);\n };\n }\n }, [\n hasActions,\n treeItemRef,\n isActionsVisibleFromProps,\n setActionsVisibleIfNotFromSubtree,\n setActionsInvisibleIfNotFromSubtree\n ]);\n return {\n components: {\n root: 'div',\n expandIcon: 'div',\n iconBefore: 'div',\n main: 'div',\n iconAfter: 'div',\n actions: 'div',\n aside: 'div',\n // Casting here to a union between checkbox and radio\n selector: selectionMode === 'multiselect' ? Checkbox : Radio\n },\n buttonContextValue: {\n size: 'small'\n },\n root: slot.always(getIntrinsicElementProps('div', {\n ...props,\n // FIXME:\n // `ref` is wrongly assigned to be `HTMLElement` instead of `HTMLDivElement`\n // but since it would be a breaking change to fix it, we are casting ref to it's proper type\n ref: useMergedRefs(ref, layoutRef)\n }), {\n elementType: 'div'\n }),\n iconBefore: slot.optional(iconBefore, {\n defaultProps: {\n 'aria-hidden': true\n },\n elementType: 'div'\n }),\n main: slot.always(main, {\n elementType: 'div'\n }),\n iconAfter: slot.optional(iconAfter, {\n defaultProps: {\n 'aria-hidden': true\n },\n elementType: 'div'\n }),\n aside: !isActionsVisible ? slot.optional(props.aside, {\n defaultProps: {\n 'aria-hidden': true\n },\n elementType: 'div'\n }) : undefined,\n actions,\n expandIcon,\n selector: slot.optional(props.selector, {\n renderByDefault: selectionMode !== 'none',\n defaultProps: {\n checked,\n tabIndex: -1,\n 'aria-hidden': true,\n ref: selectionRef\n },\n elementType: selectionMode === 'multiselect' ? Checkbox : Radio\n })\n };\n};\nfunction assertIsRefObject(ref) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof ref !== 'object' || ref === null || !('current' in ref)) {\n throw new Error(`\n @fluentui/react-tree [${useTreeItemLayout_unstable.name}]:\n Internal Error: contextual ref is not a RefObject! Please report this bug immediately, as contextual refs should be RefObjects.\n `);\n }\n }\n}\n"],"names":["useTreeItemLayout_unstable","props","ref","main","iconAfter","iconBefore","layoutRef","useTreeItemContext_unstable","ctx","selectionMode","useTreeContext_unstable","isActionsVisibleFromProps","onActionVisibilityChange","isResolvedShorthand","actions","visible","onVisibilityChange","undefined","isActionsVisible","setIsActionsVisible","useControllableState","state","initialState","selectionRef","expandIconRef","actionsRef","actionsRefInternal","React","useRef","treeItemRef","subtreeRef","checked","isBranch","itemType","assertIsRefObject","setActionsVisibleIfNotFromSubtree","useCallback","event","isTargetFromSubtree","Boolean","current","elementContains","target","type","setActionsInvisibleIfNotFromSubtree","isRelatedTargetFromActions","relatedTarget","expandIcon","slot","optional","renderByDefault","defaultProps","children","createElement","TreeItemChevron","elementType","expandIconRefs","useMergedRefs","arrowNavigationProps","useArrowNavigationGroup","circular","axis","role","actionsRefs","handleActionsBlur","useEventCallback","_props_actions_onBlur","_props_actions","onBlur","call","currentTarget","hasActions","useEffect","treeItemElement","handleMouseOver","handleMouseOut","handleFocus","handleBlur","addEventListener","removeEventListener","components","root","aside","selector","Checkbox","Radio","buttonContextValue","size","always","getIntrinsicElementProps","tabIndex","process","env","NODE_ENV","Error","name"],"mappings":";;;;+BAeiBA;;;eAAAA;;;;iEAfM;gCACqH;0BACvE;+BAC5C;4BACH;iCACU;8BACQ;AAS7B,MAAMA,6BAA6B,CAACC,OAAOC;IAClD,MAAM,EAAEC,IAAI,EAAEC,SAAS,EAAEC,UAAU,EAAE,GAAGJ;IACxC,MAAMK,YAAYC,IAAAA,qCAA2B,EAAC,CAACC,MAAMA,IAAIF,SAAS;IAClE,MAAMG,gBAAgBC,IAAAA,iCAAuB,EAAC,CAACF,MAAMA,IAAIC,aAAa;IACtE,MAAM,CAACE,2BAA2BC,yBAAyB,GAAGC,IAAAA,mCAAmB,EAACZ,MAAMa,OAAO,IAAI;QAC/Fb,MAAMa,OAAO,CAACC,OAAO;QACrBd,MAAMa,OAAO,CAACE,kBAAkB;KACnC,GAAG;QACAC;QACAA;KACH;IACD,MAAM,CAACC,kBAAkBC,oBAAoB,GAAGC,IAAAA,oCAAoB,EAAC;QACjEC,OAAOV;QACPW,cAAc;IAClB;IACA,MAAMC,eAAehB,IAAAA,qCAA2B,EAAC,CAACC,MAAMA,IAAIe,YAAY;IACxE,MAAMC,gBAAgBjB,IAAAA,qCAA2B,EAAC,CAACC,MAAMA,IAAIgB,aAAa;IAC1E,MAAMC,aAAalB,IAAAA,qCAA2B,EAAC,CAACC,MAAMA,IAAIiB,UAAU;IACpE,MAAMC,qBAAqBC,OAAMC,MAAM,CAAC;IACxC,MAAMC,cAActB,IAAAA,qCAA2B,EAAC,CAACC,MAAMA,IAAIqB,WAAW;IACtE,MAAMC,aAAavB,IAAAA,qCAA2B,EAAC,CAACC,MAAMA,IAAIsB,UAAU;IACpE,MAAMC,UAAUxB,IAAAA,qCAA2B,EAAC,CAACC,MAAMA,IAAIuB,OAAO;IAC9D,MAAMC,WAAWzB,IAAAA,qCAA2B,EAAC,CAACC,MAAMA,IAAIyB,QAAQ,KAAK;IACrE,gHAAgH;IAChHC,kBAAkBL;IAClB,gHAAgH;IAChHK,kBAAkBJ;IAClB,MAAMK,oCAAoCR,OAAMS,WAAW,CAAC,CAACC;QACzD,MAAMC,sBAAsBC,QAAQT,WAAWU,OAAO,IAAIC,IAAAA,+BAAe,EAACX,WAAWU,OAAO,EAAEH,MAAMK,MAAM;QAC1G,IAAI,CAACJ,qBAAqB;YACtB1B,6BAA6B,QAAQA,6BAA6B,KAAK,IAAI,KAAK,IAAIA,yBAAyByB,OAAO;gBAChHtB,SAAS;gBACTsB;gBACAM,MAAMN,MAAMM,IAAI;YACpB;YACAxB,oBAAoB;QACxB;IACJ,GAAG;QACCW;QACAX;QACAP;KACH;IACD,MAAMgC,sCAAsCjB,OAAMS,WAAW,CAAC,CAACC;QAC3D,MAAMQ,6BAA6BN,QAAQb,mBAAmBc,OAAO,IAAIC,IAAAA,+BAAe,EAACf,mBAAmBc,OAAO,EAAEH,MAAMS,aAAa;QACxI,IAAID,4BAA4B;YAC5BjC,6BAA6B,QAAQA,6BAA6B,KAAK,IAAI,KAAK,IAAIA,yBAAyByB,OAAO;gBAChHtB,SAAS;gBACTsB;gBACAM,MAAMN,MAAMM,IAAI;YACpB;YACAxB,oBAAoB;YACpB;QACJ;QACA,MAAMmB,sBAAsBC,QAAQT,WAAWU,OAAO,IAAIC,IAAAA,+BAAe,EAACX,WAAWU,OAAO,EAAEH,MAAMK,MAAM;QAC1G,IAAI,CAACJ,qBAAqB;YACtB1B,6BAA6B,QAAQA,6BAA6B,KAAK,IAAI,KAAK,IAAIA,yBAAyByB,OAAO;gBAChHtB,SAAS;gBACTsB;gBACAM,MAAMN,MAAMM,IAAI;YACpB;YACAxB,oBAAoB;YACpB;QACJ;IACJ,GAAG;QACCW;QACAX;QACAP;KACH;IACD,MAAMmC,aAAaC,oBAAI,CAACC,QAAQ,CAAChD,MAAM8C,UAAU,EAAE;QAC/CG,iBAAiBlB;QACjBmB,cAAc;YACVC,UAAU,WAAW,GAAGzB,OAAM0B,aAAa,CAACC,gCAAe,EAAE;YAC7D,eAAe;QACnB;QACAC,aAAa;IACjB;IACA,MAAMC,iBAAiBC,IAAAA,6BAAa,EAACV,eAAe,QAAQA,eAAe,KAAK,IAAI,KAAK,IAAIA,WAAW7C,GAAG,EAAEsB;IAC7G,IAAIuB,YAAY;QACZA,WAAW7C,GAAG,GAAGsD;IACrB;IACA,MAAME,uBAAuBC,IAAAA,qCAAuB,EAAC;QACjDC,UAAU;QACVC,MAAM;IACV;IACA,MAAM/C,UAAUI,mBAAmB8B,oBAAI,CAACC,QAAQ,CAAChD,MAAMa,OAAO,EAAE;QAC5DqC,cAAc;YACV,GAAGO,oBAAoB;YACvBI,MAAM;QACV;QACAP,aAAa;IACjB,KAAKtC;IACLH,YAAY,QAAQA,YAAY,KAAK,IAAI,OAAO,OAAOA,QAAQC,OAAO;IACtED,YAAY,QAAQA,YAAY,KAAK,IAAI,OAAO,OAAOA,QAAQE,kBAAkB;IACjF,MAAM+C,cAAcN,IAAAA,6BAAa,EAAC3C,YAAY,QAAQA,YAAY,KAAK,IAAI,KAAK,IAAIA,QAAQZ,GAAG,EAAEuB,YAAYC;IAC7G,MAAMsC,oBAAoBC,IAAAA,gCAAgB,EAAC,CAAC5B;QACxC,IAAIxB,IAAAA,mCAAmB,EAACZ,MAAMa,OAAO,GAAG;YACpC,IAAIoD,uBAAuBC;YAC1BD,CAAAA,wBAAwB,AAACC,CAAAA,iBAAiBlE,MAAMa,OAAO,AAAD,EAAGsD,MAAM,AAAD,MAAO,QAAQF,0BAA0B,KAAK,IAAI,KAAK,IAAIA,sBAAsBG,IAAI,CAACF,gBAAgB9B;QACzK;QACA,MAAMQ,6BAA6BN,QAAQE,IAAAA,+BAAe,EAACJ,MAAMiC,aAAa,EAAEjC,MAAMS,aAAa;QACnGlC,6BAA6B,QAAQA,6BAA6B,KAAK,IAAI,KAAK,IAAIA,yBAAyByB,OAAO;YAChHtB,SAAS8B;YACTR;YACAM,MAAMN,MAAMM,IAAI;QACpB;QACAxB,oBAAoB0B;IACxB;IACA,IAAI/B,SAAS;QACTA,QAAQZ,GAAG,GAAG6D;QACdjD,QAAQsD,MAAM,GAAGJ;IACrB;IACA,MAAMO,aAAahC,QAAQtC,MAAMa,OAAO;IACxCa,OAAM6C,SAAS,CAAC;QACZ,IAAI3C,YAAYW,OAAO,IAAI+B,cAAc5D,8BAA8BM,WAAW;YAC9E,MAAMwD,kBAAkB5C,YAAYW,OAAO;YAC3C,MAAMkC,kBAAkBvC;YACxB,MAAMwC,iBAAiB/B;YACvB,MAAMgC,cAAczC;YACpB,MAAM0C,aAAajC;YACnB6B,gBAAgBK,gBAAgB,CAAC,aAAaJ;YAC9CD,gBAAgBK,gBAAgB,CAAC,YAAYH;YAC7CF,gBAAgBK,gBAAgB,CAAC,SAASF;YAC1CH,gBAAgBK,gBAAgB,CAAC,QAAQD;YACzC,OAAO;gBACHJ,gBAAgBM,mBAAmB,CAAC,aAAaL;gBACjDD,gBAAgBM,mBAAmB,CAAC,YAAYJ;gBAChDF,gBAAgBM,mBAAmB,CAAC,SAASH;gBAC7CH,gBAAgBM,mBAAmB,CAAC,QAAQF;YAChD;QACJ;IACJ,GAAG;QACCN;QACA1C;QACAlB;QACAwB;QACAS;KACH;IACD,OAAO;QACHoC,YAAY;YACRC,MAAM;YACNlC,YAAY;YACZ1C,YAAY;YACZF,MAAM;YACNC,WAAW;YACXU,SAAS;YACToE,OAAO;YACP,qDAAqD;YACrDC,UAAU1E,kBAAkB,gBAAgB2E,uBAAQ,GAAGC,iBAAK;QAChE;QACAC,oBAAoB;YAChBC,MAAM;QACV;QACAN,MAAMjC,oBAAI,CAACwC,MAAM,CAACC,IAAAA,wCAAwB,EAAC,OAAO;YAC9C,GAAGxF,KAAK;YACR,SAAS;YACT,4EAA4E;YAC5E,4FAA4F;YAC5FC,KAAKuD,IAAAA,6BAAa,EAACvD,KAAKI;QAC5B,IAAI;YACAiD,aAAa;QACjB;QACAlD,YAAY2C,oBAAI,CAACC,QAAQ,CAAC5C,YAAY;YAClC8C,cAAc;gBACV,eAAe;YACnB;YACAI,aAAa;QACjB;QACApD,MAAM6C,oBAAI,CAACwC,MAAM,CAACrF,MAAM;YACpBoD,aAAa;QACjB;QACAnD,WAAW4C,oBAAI,CAACC,QAAQ,CAAC7C,WAAW;YAChC+C,cAAc;gBACV,eAAe;YACnB;YACAI,aAAa;QACjB;QACA2B,OAAO,CAAChE,mBAAmB8B,oBAAI,CAACC,QAAQ,CAAChD,MAAMiF,KAAK,EAAE;YAClD/B,cAAc;gBACV,eAAe;YACnB;YACAI,aAAa;QACjB,KAAKtC;QACLH;QACAiC;QACAoC,UAAUnC,oBAAI,CAACC,QAAQ,CAAChD,MAAMkF,QAAQ,EAAE;YACpCjC,iBAAiBzC,kBAAkB;YACnC0C,cAAc;gBACVpB;gBACA2D,UAAU,CAAC;gBACX,eAAe;gBACfxF,KAAKqB;YACT;YACAgC,aAAa9C,kBAAkB,gBAAgB2E,uBAAQ,GAAGC,iBAAK;QACnE;IACJ;AACJ;AACA,SAASnD,kBAAkBhC,GAAG;IAC1B,IAAIyF,QAAQC,GAAG,CAACC,QAAQ,KAAK,cAAc;QACvC,IAAI,OAAO3F,QAAQ,YAAYA,QAAQ,QAAQ,CAAE,CAAA,aAAaA,GAAE,GAAI;YAChE,MAAM,IAAI4F,MAAM,CAAC;8BACC,EAAE9F,2BAA2B+F,IAAI,CAAC;;MAE1D,CAAC;QACC;IACJ;AACJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluentui/react-tree",
3
- "version": "9.6.0",
3
+ "version": "9.7.0",
4
4
  "description": "Tree component for Fluent UI React",
5
5
  "main": "lib-commonjs/index.js",
6
6
  "module": "lib/index.js",
@@ -17,17 +17,14 @@
17
17
  "generate-api": "just-scripts generate-api",
18
18
  "lint": "just-scripts lint",
19
19
  "start": "yarn storybook",
20
- "storybook": "start-storybook",
20
+ "storybook": "yarn --cwd ../stories storybook",
21
21
  "test": "jest --passWithNoTests",
22
- "test-ssr": "test-ssr \"./stories/**/*.stories.tsx\"",
23
- "type-check": "tsc -b tsconfig.json",
22
+ "type-check": "just-scripts type-check",
24
23
  "e2e": "cypress run --component",
25
24
  "e2e:local": "cypress open --component"
26
25
  },
27
26
  "devDependencies": {
28
- "@dnd-kit/core": "^6.0.8",
29
- "@dnd-kit/sortable": "^7.0.2",
30
- "@dnd-kit/utilities": "^3.2.1",
27
+ "@fluentui/react-provider": "*",
31
28
  "@fluentui/eslint-plugin": "*",
32
29
  "@fluentui/react-conformance": "*",
33
30
  "@fluentui/react-conformance-griffel": "*",