Skip to content
This repository was archived by the owner on Mar 4, 2020. It is now read-only.

Commit 26cd53b

Browse files
committed
Merge branches 'feat/compose' and 'master' of https://github.com/stardust-ui/react into feat/compose
� Conflicts: � packages/react-bindings/src/styles/getStyles.ts
2 parents 7c3272e + 9208c19 commit 26cd53b

30 files changed

+37
-160
lines changed

CHANGELOG.md

+3
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,13 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
2020
### BREAKING CHANGES
2121
- Add `@fluentui/styles` package for all styles' related utilities and TS types @layershifter, @mnajdova ([#2222](https://github.com/microsoft/fluent-ui-react/pull/2222))
2222
- Remove `animation` prop from all components @joschect ([#2239](https://github.com/microsoft/fluent-ui-react/pull/2239))
23+
- `mode` property from `focusZone` configuration in accessibility behaviors is no longer supported - the focus zone will always be in embed mode @layershifter ([#2265](https://github.com/microsoft/fluent-ui-react/pull/2265))
24+
- `FocusZoneMode` and `FOCUSZONE_WRAP_ATTRIBUTE` are no longer exported @layershifter ([#2265](https://github.com/microsoft/fluent-ui-react/pull/2265))
2325

2426
### Fixes
2527
- Fix event listener leak in `FocusZone` @miroslavstastny ([#2227](https://github.com/microsoft/fluent-ui-react/pull/2227))
2628
- Fix styleParam to always be required in the styles functions @layershifter, @mnajdova ([#2235](https://github.com/microsoft/fluent-ui-react/pull/2235))
29+
- Check input and button refs exist before focus in `Dropdown` @silviuavram ([#2248](https://github.com/microsoft/fluent-ui-react/pull/2248))
2730

2831
### Features
2932
- Allow `useRef` hook used for storing debugging data to be defined in any order with other hooks in functional components @layershifter, @mnajdova ([#2236](https://github.com/microsoft/fluent-ui-react/pull/2236))

docs/src/views/AccessibilityBehaviors.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ export default () => (
5757
these navigable components (navigate between Menu and List components by pressing TAB and
5858
use arrow keys to navigate between their items).{' '}
5959
<Link to="focus-zone">Read more about FocusZone.</Link>
60-
<p>Type: {code('{ mode: FocusZoneMode, props?: FocusZoneProps }')}.</p>
60+
<p>Type: {code('{ props?: FocusZoneProps }')}.</p>
6161
</li>
6262
<li>
6363
<b>childBehaviors</b> - {code('{ [childBehaviorSlot: string]: Accessibility }')} are used

packages/accessibility/src/behaviors/Chat/chatBehavior.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import * as keyboardKey from 'keyboard-key'
22

33
import { IS_FOCUSABLE_ATTRIBUTE } from '../../attributes'
44
import { Accessibility } from '../../types'
5-
import { FocusZoneMode, FocusZoneDirection } from '../../focusZone/types'
5+
import { FocusZoneDirection } from '../../focusZone/types'
66

77
const CHAT_FOCUSZONE_ATTRIBUTE = 'chat-focuszone'
88

@@ -11,7 +11,6 @@ const CHAT_FOCUSZONE_ATTRIBUTE = 'chat-focuszone'
1111
* Adds a vertical focus zone navigation with a last message as a default tabbable element, pressing enter key focuses inside a message.
1212
*
1313
* @specification
14-
* Embeds component into FocusZone.
1514
* Provides arrow key navigation in vertical direction.
1615
* Focus is set initially on the specified default tabbable element.
1716
* Focused active element of the component is reset when TAB from the component.
@@ -22,7 +21,6 @@ const ChatBehavior: Accessibility = () => ({
2221
root: {},
2322
},
2423
focusZone: {
25-
mode: FocusZoneMode.Embed,
2624
props: {
2725
shouldEnterInnerZone: event => keyboardKey.getCode(event) === keyboardKey.Enter,
2826
direction: FocusZoneDirection.vertical,

packages/accessibility/src/behaviors/Chat/chatMessageBehavior.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import * as keyboardKey from 'keyboard-key'
22

33
import { IS_FOCUSABLE_ATTRIBUTE } from '../../attributes'
44
import { Accessibility } from '../../types'
5-
import { FocusZoneTabbableElements, FocusZoneDirection, FocusZoneMode } from '../../focusZone/types'
5+
import { FocusZoneTabbableElements, FocusZoneDirection } from '../../focusZone/types'
66

77
/**
88
* @description
@@ -12,7 +12,6 @@ import { FocusZoneTabbableElements, FocusZoneDirection, FocusZoneMode } from '..
1212
* Adds an escape key action which focuses the chat message, i.e., moves key handling from inside a message back to the chat list.
1313
*
1414
* @specification
15-
* Embeds component into FocusZone.
1615
* Provides arrow key navigation in vertical direction.
1716
* Keyboard navigation is circular.
1817
* Focus is moved within the focusable children of the component using TAB key.
@@ -25,7 +24,6 @@ const chatMessageBehavior: Accessibility = () => ({
2524
},
2625
},
2726
focusZone: {
28-
mode: FocusZoneMode.Embed,
2927
props: {
3028
handleTabKey: FocusZoneTabbableElements.all,
3129
isCircularNavigation: true,

packages/accessibility/src/behaviors/Grid/gridBehavior.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11
import { Accessibility } from '../../types'
2-
import { FocusZoneMode, FocusZoneDirection } from '../../focusZone/types'
2+
import { FocusZoneDirection } from '../../focusZone/types'
33

44
/**
55
* @description
66
* Provides navigation between focusable children of Grid component with arrow keys in 4 directions.
77
*
88
* @specification
9-
* Embeds component into FocusZone.
109
* Provides arrow key navigation in bidirectional direction.
1110
*/
1211
const gridBehavior: Accessibility = () => ({
1312
attributes: {},
1413
focusZone: {
15-
mode: FocusZoneMode.Embed,
1614
props: {
1715
direction: FocusZoneDirection.bidirectional,
1816
},

packages/accessibility/src/behaviors/Grid/gridHorizontalBehavior.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,17 @@
11
import { Accessibility } from '../../types'
2-
import { FocusZoneMode, FocusZoneDirection } from '../../focusZone/types'
2+
import { FocusZoneDirection } from '../../focusZone/types'
33

44
/**
55
* @description
66
* Provides navigation between focusable children of Grid component with arrow keys in horizontal direction (based on DOM order).
77
* Right/Down arrow keys move to next item, Up/Left arrow keys to previous item. Right and Left arrow keys are switched in RTL mode.
88
*
99
* @specification
10-
* Embeds component into FocusZone.
1110
* Provides arrow key navigation in bidirectionalDomOrder direction.
1211
*/
1312
const gridHorizontalBehavior: Accessibility = () => ({
1413
attributes: {},
1514
focusZone: {
16-
mode: FocusZoneMode.Embed,
1715
props: {
1816
direction: FocusZoneDirection.bidirectionalDomOrder,
1917
},

packages/accessibility/src/behaviors/HierarchicalTree/hierarchicalTreeBehavior.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
import { Accessibility, AccessibilityAttributes } from '../../types'
2-
import { FocusZoneMode, FocusZoneDirection } from '../../focusZone/types'
2+
import { FocusZoneDirection } from '../../focusZone/types'
33
import hierarchicalSubtreeBehavior from './hierarchicalSubtreeBehavior'
44

55
/**
66
* @specification
77
* Adds role 'tree' to 'root' slot.
88
* Adds attribute 'aria-labelledby' based on the property 'aria-labelledby' to 'root' slot.
9-
* Embeds component into FocusZone.
109
* Provides arrow key navigation in vertical direction.
1110
* Triggers 'expandSiblings' action with '*' on 'root'.
1211
*/
@@ -26,7 +25,6 @@ const hierarchicalTreeBehavior: Accessibility<TreeBehaviorProps> = props => {
2625
},
2726
},
2827
focusZone: {
29-
mode: FocusZoneMode.Embed,
3028
props: {
3129
direction: FocusZoneDirection.vertical,
3230
},

packages/accessibility/src/behaviors/List/navigableListBehavior.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
import { FocusZoneMode, FocusZoneDirection } from '../../focusZone/types'
1+
import { FocusZoneDirection } from '../../focusZone/types'
22
import { Accessibility } from '../../types'
33
import { ListBehaviorProps } from './listBehavior'
44

55
/**
66
* @specification
77
* Adds role='menu'.
8-
* Embeds component into FocusZone.
98
* Provides arrow key navigation in bidirectionalDomOrder direction.
109
*/
1110
const navigableListBehavior: Accessibility<ListBehaviorProps> = props => ({
@@ -15,7 +14,6 @@ const navigableListBehavior: Accessibility<ListBehaviorProps> = props => ({
1514
},
1615
},
1716
focusZone: {
18-
mode: FocusZoneMode.Embed,
1917
props: {
2018
shouldFocusInnerElementWhenReceivedFocus: true,
2119
direction: FocusZoneDirection.bidirectionalDomOrder,

packages/accessibility/src/behaviors/List/selectableListBehavior.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Accessibility } from '../../types'
2-
import { FocusZoneMode, FocusZoneDirection } from '../../focusZone/types'
2+
import { FocusZoneDirection } from '../../focusZone/types'
33
import { ListBehaviorProps } from './listBehavior'
44

55
/**
@@ -10,7 +10,6 @@ import { ListBehaviorProps } from './listBehavior'
1010
* Adds role='listbox'.
1111
* Adds attribute 'tabIndex=-1' to 'root' slot.
1212
* Adds attribute 'aria-orientation=horizontal' to 'root' slot if 'horizontal' property is true. Does not set the attribute otherwise.
13-
* Embeds component into FocusZone.
1413
* Provides arrow key navigation in bidirectionalDomOrder direction.
1514
*/
1615
const selectableListBehavior: Accessibility<ListBehaviorProps> = props => ({
@@ -24,7 +23,6 @@ const selectableListBehavior: Accessibility<ListBehaviorProps> = props => ({
2423
},
2524
},
2625
focusZone: {
27-
mode: FocusZoneMode.Embed,
2826
props: {
2927
shouldFocusInnerElementWhenReceivedFocus: true,
3028
direction: FocusZoneDirection.bidirectionalDomOrder,

packages/accessibility/src/behaviors/Menu/menuBehavior.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Accessibility } from '../../types'
2-
import { FocusZoneMode, FocusZoneDirection } from '../../focusZone/types'
2+
import { FocusZoneDirection } from '../../focusZone/types'
33
import menuItemBehavior from './menuItemBehavior'
44
import menuDividerBehavior from './menuDividerBehavior'
55

@@ -10,7 +10,6 @@ import menuDividerBehavior from './menuDividerBehavior'
1010
*
1111
* @specification
1212
* Adds role='menu'.
13-
* Embeds component into FocusZone.
1413
* Provides arrow key navigation in horizontal direction.
1514
* When 'vertical' prop is used, provides keyboard navigation in vertical direction.
1615
* Keyboard navigation is circular.
@@ -22,7 +21,6 @@ const menuBehavior: Accessibility<MenuBehaviorProps> = props => ({
2221
},
2322
},
2423
focusZone: {
25-
mode: FocusZoneMode.Embed,
2624
props: {
2725
isCircularNavigation: true,
2826
shouldFocusInnerElementWhenReceivedFocus: true,

packages/accessibility/src/behaviors/Menu/submenuBehavior.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Accessibility } from '../../types'
2-
import { FocusZoneMode, FocusZoneDirection } from '../../focusZone/types'
2+
import { FocusZoneDirection } from '../../focusZone/types'
33
import menuItemBehavior from './menuItemBehavior'
44

55
/**
@@ -8,7 +8,6 @@ import menuItemBehavior from './menuItemBehavior'
88
*
99
* @specification
1010
* Adds role='menu'.
11-
* Embeds component into FocusZone.
1211
* Provides arrow key navigation in vertical direction.
1312
* Keyboard navigation is circular.
1413
* Component will get focus when mounted.
@@ -20,7 +19,6 @@ const submenuBehavior: Accessibility = () => ({
2019
},
2120
},
2221
focusZone: {
23-
mode: FocusZoneMode.Embed,
2422
props: {
2523
isCircularNavigation: true,
2624
shouldFocusOnMount: true,

packages/accessibility/src/behaviors/Tab/tabListBehavior.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Accessibility } from '../../types'
2-
import { FocusZoneMode, FocusZoneDirection } from '../../focusZone/types'
2+
import { FocusZoneDirection } from '../../focusZone/types'
33
import tabBehavior from './tabBehavior'
44

55
/**
@@ -8,7 +8,6 @@ import tabBehavior from './tabBehavior'
88
* Child item components need to have tabBehavior assigned.
99
* @specification
1010
* Adds role 'tablist' to 'root' slot.
11-
* Embeds component into FocusZone.
1211
* Provides arrow key navigation in bidirectionalDomOrder direction.
1312
* When component's container element receives focus, focus will be set to the default focusable child element of the component.
1413
*/
@@ -19,7 +18,6 @@ const tabListBehavior: Accessibility = () => ({
1918
},
2019
},
2120
focusZone: {
22-
mode: FocusZoneMode.Embed,
2321
props: {
2422
shouldFocusInnerElementWhenReceivedFocus: true,
2523
direction: FocusZoneDirection.bidirectionalDomOrder,

packages/accessibility/src/behaviors/Table/gridCellMultipleFocusableBehavior.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
import { Accessibility } from '../../types'
22
import { IS_FOCUSABLE_ATTRIBUTE } from '../../attributes'
3-
import { FocusZoneMode, FocusZoneDirection } from '../../focusZone/types'
3+
import { FocusZoneDirection } from '../../focusZone/types'
44
import * as keyboardKey from 'keyboard-key'
55

66
/**
77
* @specification
88
* Adds role='gridcell'.
99
* Adds attribute 'data-is-focusable=true' to 'root' slot.
10-
* Embeds component into FocusZone.
1110
* Provides arrow key navigation in bidirectional direction.
1211
* Triggers 'focusCell' action with 'Escape' on 'root'.
1312
*/
@@ -19,7 +18,6 @@ const gridCellMultipleFocusableBehavior: Accessibility = props => ({
1918
},
2019
},
2120
focusZone: {
22-
mode: FocusZoneMode.Embed,
2321
props: {
2422
direction: FocusZoneDirection.bidirectional,
2523
},

packages/accessibility/src/behaviors/Table/gridHeaderRowBehavior.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
import { Accessibility } from '../../types'
22
import { IS_FOCUSABLE_ATTRIBUTE } from '../../attributes'
3-
import { FocusZoneMode, FocusZoneDirection } from '../../focusZone/types'
3+
import { FocusZoneDirection } from '../../focusZone/types'
44
import * as keyboardKey from 'keyboard-key'
55
import gridHeaderCellBehavior from './gridHeaderCellBehavior'
66

77
/**
88
* @specification
99
* Adds role='row'.
1010
* Adds attribute 'data-is-focusable=true' to 'root' slot.
11-
* Embeds component into FocusZone.
1211
* Provides arrow key navigation in horizontal direction.
1312
* Focused active element of the component is reset when TAB from the component.
1413
* When component's container element receives focus, focus will be set to the default focusable child element of the component.
@@ -23,7 +22,6 @@ const gridHeaderRowBehavior: Accessibility = props => ({
2322
},
2423
},
2524
focusZone: {
26-
mode: FocusZoneMode.Embed,
2725
props: {
2826
direction: FocusZoneDirection.horizontal,
2927
shouldFocusInnerElementWhenReceivedFocus: true,

packages/accessibility/src/behaviors/Table/gridNestedBehavior.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
import { Accessibility } from '../../types'
22
import * as keyboardKey from 'keyboard-key'
3-
import { FocusZoneMode, FocusZoneDirection } from '../../focusZone/types'
3+
import { FocusZoneDirection } from '../../focusZone/types'
44
import gridRowBehavior from './gridRowBehavior'
55

66
/**
77
* @specification
88
* Adds role='grid'.
9-
* Embeds component into FocusZone.
109
* Focus can be moved inside a child component with embeded inner FocusZone by pressing a specified key.
1110
* Provides arrow key navigation in vertical direction.
1211
* Focused active element of the component is reset when TAB from the component.
@@ -21,7 +20,6 @@ const gridNestedBehavior: Accessibility = props => ({
2120
},
2221
},
2322
focusZone: {
24-
mode: FocusZoneMode.Embed,
2523
props: {
2624
shouldEnterInnerZone: event => keyboardKey.getCode(event) === keyboardKey.ArrowRight,
2725
direction: FocusZoneDirection.vertical,

packages/accessibility/src/behaviors/Table/gridRowNestedBehavior.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
import { Accessibility } from '../../types'
22
import { IS_FOCUSABLE_ATTRIBUTE } from '../../attributes'
3-
import { FocusZoneMode, FocusZoneDirection } from '../../focusZone/types'
3+
import { FocusZoneDirection } from '../../focusZone/types'
44
import * as keyboardKey from 'keyboard-key'
55
import gridCellBehavior from './gridCellBehavior'
66

77
/**
88
* @specification
99
* Adds role='row'.
1010
* Adds attribute 'data-is-focusable=true' to 'root' slot.
11-
* Embeds component into FocusZone.
1211
* Focus can be moved inside a child component with embeded inner FocusZone by pressing a specified key.
1312
* Provides arrow key navigation in horizontal direction.
1413
* Triggers 'performClick' action with 'Enter' or 'Spacebar' on 'root'.
@@ -23,7 +22,6 @@ const gridRowNestedBehavior: Accessibility = props => ({
2322
},
2423
},
2524
focusZone: {
26-
mode: FocusZoneMode.Embed,
2725
props: {
2826
shouldEnterInnerZone: event => keyboardKey.getCode(event) === keyboardKey.Enter,
2927
direction: FocusZoneDirection.horizontal,

packages/accessibility/src/behaviors/Toolbar/menuAsToolbarBehavior.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Accessibility } from '../../types'
2-
import { FocusZoneMode, FocusZoneDirection } from '../../focusZone/types'
2+
import { FocusZoneDirection } from '../../focusZone/types'
33
import menuItemAsToolbarButtonBehavior from './menuItemAsToolbarButtonBehavior'
44

55
/**
@@ -8,7 +8,6 @@ import menuItemAsToolbarButtonBehavior from './menuItemAsToolbarButtonBehavior'
88
* Child item components need to have menuItemAsToolbarButtonBehavior assigned.
99
* @specification
1010
* Adds role 'toolbar' to 'root' slot.
11-
* Embeds component into FocusZone.
1211
* Provides arrow key navigation in bidirectionalDomOrder direction.
1312
* When component's container element receives focus, focus will be set to the default focusable child element of the component.
1413
*/
@@ -19,7 +18,6 @@ const menuAsToolbarBehavior: Accessibility = () => ({
1918
},
2019
},
2120
focusZone: {
22-
mode: FocusZoneMode.Embed,
2321
props: {
2422
shouldFocusInnerElementWhenReceivedFocus: true,
2523
direction: FocusZoneDirection.bidirectionalDomOrder,

packages/accessibility/src/behaviors/Toolbar/toolbarBehavior.ts

+2-4
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,22 @@
11
import { Accessibility } from '../../types'
2-
import { FocusZoneMode, FocusZoneDirection } from '../../focusZone/types'
2+
import { FocusZoneDirection } from '../../focusZone/types'
33

44
/**
55
* @description
66
* Implements ARIA Toolbar design pattern.
77
* Child item components need to have toolbarItemBehavior assigned.
88
* @specification
99
* Adds role 'toolbar' to 'root' slot.
10-
* Embeds component into FocusZone.
1110
* Provides arrow key navigation in horizontal direction.
1211
* When component's container element receives focus, focus will be set to the default focusable child element of the component.
1312
*/
14-
const toolbarBehavior: Accessibility = (props: any) => ({
13+
const toolbarBehavior: Accessibility = props => ({
1514
attributes: {
1615
root: {
1716
role: 'toolbar',
1817
},
1918
},
2019
focusZone: {
21-
mode: FocusZoneMode.Embed,
2220
props: {
2321
shouldFocusInnerElementWhenReceivedFocus: true,
2422
direction: FocusZoneDirection.horizontal,

0 commit comments

Comments
 (0)