@fluentui/react-aria 9.0.0-rc.7 → 9.0.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.json CHANGED
@@ -2,7 +2,119 @@
2
2
  "name": "@fluentui/react-aria",
3
3
  "entries": [
4
4
  {
5
- "date": "Wed, 04 May 2022 13:24:05 GMT",
5
+ "date": "Tue, 28 Jun 2022 15:09:25 GMT",
6
+ "tag": "@fluentui/react-aria_v9.0.0",
7
+ "version": "9.0.0",
8
+ "comments": {
9
+ "prerelease": [
10
+ {
11
+ "author": "lingfangao@hotmail.com",
12
+ "package": "@fluentui/react-aria",
13
+ "commit": "e0aabd850b15adf9c151ebd4e332f7c50ad6cfdf",
14
+ "comment": "Update 9.0.0-rc dependencies to use caret range"
15
+ },
16
+ {
17
+ "author": "lingfangao@hotmail.com",
18
+ "package": "@fluentui/react-aria",
19
+ "commit": "2da4428ae7d6e464c538b7ed10e425ce0e531144",
20
+ "comment": "chore: Mark internal APIs with @internal"
21
+ }
22
+ ],
23
+ "none": [
24
+ {
25
+ "author": "tristan.watanabe@gmail.com",
26
+ "package": "@fluentui/react-aria",
27
+ "commit": "319c07f0ef9ffdda6106b60d9f5f75018445fcf8",
28
+ "comment": "chore: Update Aria storybook config to index.stories.tsx entrypoint."
29
+ }
30
+ ],
31
+ "patch": [
32
+ {
33
+ "author": "lingfangao@hotmail.com",
34
+ "package": "@fluentui/react-aria",
35
+ "commit": "c7b1348bdad7aa883c29bfbc96ef2a32e6ebc7dd",
36
+ "comment": "feat: Initial 9.0.0 release"
37
+ },
38
+ {
39
+ "author": "beachball",
40
+ "package": "@fluentui/react-aria",
41
+ "comment": "Bump @fluentui/keyboard-keys to v9.0.0",
42
+ "commit": "ba6c5d651559b91c815429c9a9357c4d5a390f3e"
43
+ },
44
+ {
45
+ "author": "beachball",
46
+ "package": "@fluentui/react-aria",
47
+ "comment": "Bump @fluentui/react-utilities to v9.0.0",
48
+ "commit": "ba6c5d651559b91c815429c9a9357c4d5a390f3e"
49
+ }
50
+ ]
51
+ }
52
+ },
53
+ {
54
+ "date": "Tue, 31 May 2022 21:28:50 GMT",
55
+ "tag": "@fluentui/react-aria_v9.0.0-rc.10",
56
+ "version": "9.0.0-rc.10",
57
+ "comments": {
58
+ "prerelease": [
59
+ {
60
+ "author": "beachball",
61
+ "package": "@fluentui/react-aria",
62
+ "comment": "Bump @fluentui/react-utilities to v9.0.0-rc.10",
63
+ "commit": "335ebfcfd47005003901b5e319782bfe9ccd89fd"
64
+ }
65
+ ]
66
+ }
67
+ },
68
+ {
69
+ "date": "Mon, 23 May 2022 12:14:24 GMT",
70
+ "tag": "@fluentui/react-aria_v9.0.0-rc.9",
71
+ "version": "9.0.0-rc.9",
72
+ "comments": {
73
+ "prerelease": [
74
+ {
75
+ "author": "beachball",
76
+ "package": "@fluentui/react-aria",
77
+ "comment": "Bump @fluentui/react-utilities to v9.0.0-rc.9",
78
+ "commit": "8d58f08997acf595e3eb7f628123e7fa7830c394"
79
+ }
80
+ ]
81
+ }
82
+ },
83
+ {
84
+ "date": "Thu, 05 May 2022 18:26:28 GMT",
85
+ "tag": "@fluentui/react-aria_v9.0.0-rc.8",
86
+ "version": "9.0.0-rc.8",
87
+ "comments": {
88
+ "prerelease": [
89
+ {
90
+ "author": "humberto_makoto@hotmail.com",
91
+ "package": "@fluentui/react-aria",
92
+ "commit": "44e0945655df57a0986376ac8732e605f0378f22",
93
+ "comment": "Removing star exports."
94
+ },
95
+ {
96
+ "author": "martinhochel@microsoft.com",
97
+ "package": "@fluentui/react-aria",
98
+ "commit": "e465622ca241f3dd0534da50823a51e7311fd9ef",
99
+ "comment": "feat: ship rolluped only dts"
100
+ },
101
+ {
102
+ "author": "beachball",
103
+ "package": "@fluentui/react-aria",
104
+ "comment": "Bump @fluentui/keyboard-keys to v9.0.0-rc.6",
105
+ "commit": "c5abb9c480ac94d12aa644d68d30773d77f2a159"
106
+ },
107
+ {
108
+ "author": "beachball",
109
+ "package": "@fluentui/react-aria",
110
+ "comment": "Bump @fluentui/react-utilities to v9.0.0-rc.8",
111
+ "commit": "c5abb9c480ac94d12aa644d68d30773d77f2a159"
112
+ }
113
+ ]
114
+ }
115
+ },
116
+ {
117
+ "date": "Wed, 04 May 2022 13:26:37 GMT",
6
118
  "tag": "@fluentui/react-aria_v9.0.0-rc.7",
7
119
  "version": "9.0.0-rc.7",
8
120
  "comments": {
package/CHANGELOG.md CHANGED
@@ -1,12 +1,58 @@
1
1
  # Change Log - @fluentui/react-aria
2
2
 
3
- This log was last generated on Wed, 04 May 2022 13:24:05 GMT and should not be manually modified.
3
+ This log was last generated on Tue, 28 Jun 2022 15:09:25 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## [9.0.0](https://github.com/microsoft/fluentui/tree/@fluentui/react-aria_v9.0.0)
8
+
9
+ Tue, 28 Jun 2022 15:09:25 GMT
10
+ [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-aria_v9.0.0-rc.10..@fluentui/react-aria_v9.0.0)
11
+
12
+ ### Patches
13
+
14
+ - feat: Initial 9.0.0 release ([PR #23733](https://github.com/microsoft/fluentui/pull/23733) by lingfangao@hotmail.com)
15
+ - Bump @fluentui/keyboard-keys to v9.0.0 ([commit](https://github.com/microsoft/fluentui/commit/ba6c5d651559b91c815429c9a9357c4d5a390f3e) by beachball)
16
+ - Bump @fluentui/react-utilities to v9.0.0 ([commit](https://github.com/microsoft/fluentui/commit/ba6c5d651559b91c815429c9a9357c4d5a390f3e) by beachball)
17
+
18
+ ### Changes
19
+
20
+ - Update 9.0.0-rc dependencies to use caret range ([PR #23732](https://github.com/microsoft/fluentui/pull/23732) by lingfangao@hotmail.com)
21
+ - chore: Mark internal APIs with @internal ([PR #23689](https://github.com/microsoft/fluentui/pull/23689) by lingfangao@hotmail.com)
22
+
23
+ ## [9.0.0-rc.10](https://github.com/microsoft/fluentui/tree/@fluentui/react-aria_v9.0.0-rc.10)
24
+
25
+ Tue, 31 May 2022 21:28:50 GMT
26
+ [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-aria_v9.0.0-rc.9..@fluentui/react-aria_v9.0.0-rc.10)
27
+
28
+ ### Changes
29
+
30
+ - Bump @fluentui/react-utilities to v9.0.0-rc.10 ([PR #23325](https://github.com/microsoft/fluentui/pull/23325) by beachball)
31
+
32
+ ## [9.0.0-rc.9](https://github.com/microsoft/fluentui/tree/@fluentui/react-aria_v9.0.0-rc.9)
33
+
34
+ Mon, 23 May 2022 12:14:24 GMT
35
+ [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-aria_v9.0.0-rc.8..@fluentui/react-aria_v9.0.0-rc.9)
36
+
37
+ ### Changes
38
+
39
+ - Bump @fluentui/react-utilities to v9.0.0-rc.9 ([PR #23030](https://github.com/microsoft/fluentui/pull/23030) by beachball)
40
+
41
+ ## [9.0.0-rc.8](https://github.com/microsoft/fluentui/tree/@fluentui/react-aria_v9.0.0-rc.8)
42
+
43
+ Thu, 05 May 2022 18:26:28 GMT
44
+ [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-aria_v9.0.0-rc.7..@fluentui/react-aria_v9.0.0-rc.8)
45
+
46
+ ### Changes
47
+
48
+ - Removing star exports. ([PR #22798](https://github.com/microsoft/fluentui/pull/22798) by humberto_makoto@hotmail.com)
49
+ - feat: ship rolluped only dts ([PR #22823](https://github.com/microsoft/fluentui/pull/22823) by martinhochel@microsoft.com)
50
+ - Bump @fluentui/keyboard-keys to v9.0.0-rc.6 ([PR #22857](https://github.com/microsoft/fluentui/pull/22857) by beachball)
51
+ - Bump @fluentui/react-utilities to v9.0.0-rc.8 ([PR #22857](https://github.com/microsoft/fluentui/pull/22857) by beachball)
52
+
7
53
  ## [9.0.0-rc.7](https://github.com/microsoft/fluentui/tree/@fluentui/react-aria_v9.0.0-rc.7)
8
54
 
9
- Wed, 04 May 2022 13:24:05 GMT
55
+ Wed, 04 May 2022 13:26:37 GMT
10
56
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-aria_v9.0.0-rc.6..@fluentui/react-aria_v9.0.0-rc.7)
11
57
 
12
58
  ### Changes
package/dist/index.d.ts CHANGED
@@ -8,6 +8,7 @@ export declare type ARIAButtonSlotProps = ExtractSlotProps<Slot<'button', 'a'>>
8
8
  };
9
9
 
10
10
  /**
11
+ * @internal
11
12
  * Merges disabled declaration with `aria-disabled`
12
13
  */
13
14
  export declare function mergeARIADisabled(shorthand: {
File without changes
@@ -1 +1 @@
1
- {"version":3,"sources":["hooks/useARIAButton.ts"],"names":[],"mappings":"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","sourcesContent":["import { Enter, Space } from '@fluentui/keyboard-keys';\nimport { resolveShorthand, useEventCallback } from '@fluentui/react-utilities';\nimport type { ExtractSlotProps, ResolveShorthandFunction, Slot } from '@fluentui/react-utilities';\n\nexport type ARIAButtonSlotProps = ExtractSlotProps<Slot<'button', 'a'>> & {\n disabled?: boolean;\n disabledFocusable?: boolean;\n};\n\n/**\n * Button keyboard handling, role, disabled and tabIndex implementation that ensures ARIA spec\n * for multiple scenarios of shorthand properties. Ensuring 1st rule of ARIA for cases\n * where no attribute addition is required.\n */\nexport const useARIAButton: ResolveShorthandFunction<ARIAButtonSlotProps> = (shorthand, options) => {\n const shorthandProps = resolveShorthand(shorthand, options);\n\n const { disabled, disabledFocusable, onClick, onKeyDown, onKeyUp, tabIndex } = (shorthandProps ||\n {}) as ARIAButtonSlotProps;\n\n const onClickHandler: ARIAButtonSlotProps['onClick'] = useEventCallback(ev => {\n if (disabled || disabledFocusable) {\n ev.preventDefault();\n ev.stopPropagation();\n } else {\n onClick?.(ev);\n }\n });\n\n const onKeyDownHandler: ARIAButtonSlotProps['onKeyDown'] = useEventCallback(ev => {\n onKeyDown?.(ev);\n\n if (ev.isDefaultPrevented()) {\n return;\n }\n\n const key = ev.key;\n\n if ((disabled || disabledFocusable) && (key === Enter || key === Space)) {\n ev.preventDefault();\n ev.stopPropagation();\n return;\n }\n\n if (key === Space) {\n ev.preventDefault();\n return;\n }\n\n // If enter is pressed, activate the button\n else if (key === Enter) {\n ev.preventDefault();\n ev.currentTarget.click();\n }\n });\n\n const onKeyupHandler: ARIAButtonSlotProps['onKeyUp'] = useEventCallback(ev => {\n onKeyUp?.(ev);\n\n if (ev.isDefaultPrevented()) {\n return;\n }\n\n const key = ev.key;\n\n if ((disabled || disabledFocusable) && (key === Enter || key === Space)) {\n ev.preventDefault();\n ev.stopPropagation();\n return;\n }\n\n if (key === Space) {\n ev.preventDefault();\n ev.currentTarget.click();\n }\n });\n\n if (shorthandProps) {\n // If a <button> tag is to be rendered we just need to set disabled and aria-disabled correctly\n if (shorthandProps.as === 'button' || shorthandProps.as === undefined) {\n shorthandProps.disabled = disabled && !disabledFocusable;\n shorthandProps['aria-disabled'] = disabledFocusable ? true : undefined;\n\n // Undefine events if disabledFocusable is passed in\n if (disabledFocusable) {\n shorthandProps.onClick = undefined;\n shorthandProps.onKeyDown = undefined;\n shorthandProps.onKeyUp = undefined;\n }\n }\n\n // If an <a> tag is to be rendered we have to remove disabled and type, and set aria-disabled, role and tabIndex.\n else {\n delete shorthandProps.disabled;\n shorthandProps['aria-disabled'] = disabled || disabledFocusable;\n (shorthandProps as JSX.IntrinsicElements['a']).href = disabled\n ? undefined\n : (shorthandProps as JSX.IntrinsicElements['a']).href;\n shorthandProps.onClick = onClickHandler;\n shorthandProps.onKeyDown = onKeyDownHandler;\n shorthandProps.onKeyUp = onKeyupHandler;\n shorthandProps.role = shorthandProps.role ?? 'button';\n shorthandProps.tabIndex = disabled && !disabledFocusable ? undefined : tabIndex ?? 0;\n }\n\n // Remove non-DOM disabledFocusable prop\n delete shorthandProps.disabledFocusable;\n }\n\n return shorthandProps;\n};\n"],"sourceRoot":"../src/"}
1
+ {"version":3,"sources":["hooks/useARIAButton.ts"],"names":[],"mappings":"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","sourcesContent":["import { Enter, Space } from '@fluentui/keyboard-keys';\nimport { resolveShorthand, useEventCallback } from '@fluentui/react-utilities';\nimport type { ExtractSlotProps, ResolveShorthandFunction, Slot } from '@fluentui/react-utilities';\n\nexport type ARIAButtonSlotProps = ExtractSlotProps<Slot<'button', 'a'>> & {\n disabled?: boolean;\n disabledFocusable?: boolean;\n};\n\n/**\n * Button keyboard handling, role, disabled and tabIndex implementation that ensures ARIA spec\n * for multiple scenarios of shorthand properties. Ensuring 1st rule of ARIA for cases\n * where no attribute addition is required.\n */\nexport const useARIAButton: ResolveShorthandFunction<ARIAButtonSlotProps> = (shorthand, options) => {\n const shorthandProps = resolveShorthand(shorthand, options);\n\n const { disabled, disabledFocusable, onClick, onKeyDown, onKeyUp, tabIndex } = (shorthandProps ||\n {}) as ARIAButtonSlotProps;\n\n const onClickHandler: ARIAButtonSlotProps['onClick'] = useEventCallback(ev => {\n if (disabled || disabledFocusable) {\n ev.preventDefault();\n ev.stopPropagation();\n } else {\n onClick?.(ev);\n }\n });\n\n const onKeyDownHandler: ARIAButtonSlotProps['onKeyDown'] = useEventCallback(ev => {\n onKeyDown?.(ev);\n\n if (ev.isDefaultPrevented()) {\n return;\n }\n\n const key = ev.key;\n\n if ((disabled || disabledFocusable) && (key === Enter || key === Space)) {\n ev.preventDefault();\n ev.stopPropagation();\n return;\n }\n\n if (key === Space) {\n ev.preventDefault();\n return;\n }\n\n // If enter is pressed, activate the button\n else if (key === Enter) {\n ev.preventDefault();\n ev.currentTarget.click();\n }\n });\n\n const onKeyupHandler: ARIAButtonSlotProps['onKeyUp'] = useEventCallback(ev => {\n onKeyUp?.(ev);\n\n if (ev.isDefaultPrevented()) {\n return;\n }\n\n const key = ev.key;\n\n if ((disabled || disabledFocusable) && (key === Enter || key === Space)) {\n ev.preventDefault();\n ev.stopPropagation();\n return;\n }\n\n if (key === Space) {\n ev.preventDefault();\n ev.currentTarget.click();\n }\n });\n\n if (shorthandProps) {\n // If a <button> tag is to be rendered we just need to set disabled and aria-disabled correctly\n if (shorthandProps.as === 'button' || shorthandProps.as === undefined) {\n shorthandProps.disabled = disabled && !disabledFocusable;\n shorthandProps['aria-disabled'] = disabledFocusable ? true : undefined;\n\n // Undefine events if disabledFocusable is passed in\n if (disabledFocusable) {\n shorthandProps.onClick = undefined;\n shorthandProps.onKeyDown = undefined;\n shorthandProps.onKeyUp = undefined;\n }\n }\n\n // If an <a> tag is to be rendered we have to remove disabled and type, and set aria-disabled, role and tabIndex.\n else {\n delete shorthandProps.disabled;\n shorthandProps['aria-disabled'] = disabled || disabledFocusable;\n (shorthandProps as JSX.IntrinsicElements['a']).href = disabled\n ? undefined\n : (shorthandProps as JSX.IntrinsicElements['a']).href;\n shorthandProps.onClick = onClickHandler;\n shorthandProps.onKeyDown = onKeyDownHandler;\n shorthandProps.onKeyUp = onKeyupHandler;\n shorthandProps.role = shorthandProps.role ?? 'button';\n shorthandProps.tabIndex = disabled && !disabledFocusable ? undefined : tabIndex ?? 0;\n }\n\n // Remove non-DOM disabledFocusable prop\n delete shorthandProps.disabledFocusable;\n }\n\n return shorthandProps;\n};\n"],"sourceRoot":"../src/"}
package/lib/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export * from './hooks/index';
2
- export * from './utils/index';
1
+ export { useARIAButton } from './hooks/index';
2
+ export { mergeARIADisabled } from './utils/index';
3
3
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../src/","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC","sourcesContent":["export * from './hooks/index';\nexport * from './utils/index';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"../src/","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC","sourcesContent":["export { useARIAButton } from './hooks/index';\nexport type { ARIAButtonSlotProps } from './hooks/index';\nexport { mergeARIADisabled } from './utils/index';\n"]}
@@ -1,4 +1,5 @@
1
1
  /**
2
+ * @internal
2
3
  * Merges disabled declaration with `aria-disabled`
3
4
  */
4
5
  export function mergeARIADisabled(shorthand) {
@@ -1 +1 @@
1
- {"version":3,"sources":["utils/mergeARIADisabled.ts"],"names":[],"mappings":"AAAA;;AAEG;AACH,OAAM,SAAU,iBAAV,CAA4B,SAA5B,EAAiG;;;AACrG,QAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,SAAS,CAAC,QAAV,MAAkB,IAAlB,IAAkB,EAAA,KAAA,KAAA,CAAlB,GAAkB,EAAlB,GAAsB,SAAS,CAAC,eAAD,CAAhD;;AACA,MAAI,OAAO,QAAP,KAAoB,QAAxB,EAAkC;AAChC,WAAO,QAAQ,KAAK,OAAb,GAAuB,KAAvB,GAA+B,IAAtC;AACD;;AACD,SAAO,QAAQ,KAAA,IAAR,IAAA,QAAQ,KAAA,KAAA,CAAR,GAAA,QAAA,GAAY,KAAnB;AACD","sourcesContent":["/**\n * Merges disabled declaration with `aria-disabled`\n */\nexport function mergeARIADisabled(shorthand: { 'aria-disabled'?: string | boolean; disabled?: boolean }) {\n const disabled = shorthand.disabled ?? shorthand['aria-disabled'];\n if (typeof disabled === 'string') {\n return disabled === 'false' ? false : true;\n }\n return disabled ?? false;\n}\n"],"sourceRoot":"../src/"}
1
+ {"version":3,"sources":["utils/mergeARIADisabled.ts"],"names":[],"mappings":"AAAA;;;AAGG;AACH,OAAM,SAAU,iBAAV,CAA4B,SAA5B,EAAiG;;;EACrG,MAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,SAAS,CAAC,QAAV,MAAkB,IAAlB,IAAkB,EAAA,KAAA,KAAA,CAAlB,GAAkB,EAAlB,GAAsB,SAAS,CAAC,eAAD,CAAhD;;EACA,IAAI,OAAO,QAAP,KAAoB,QAAxB,EAAkC;IAChC,OAAO,QAAQ,KAAK,OAAb,GAAuB,KAAvB,GAA+B,IAAtC;EACD;;EACD,OAAO,QAAQ,KAAA,IAAR,IAAA,QAAQ,KAAA,KAAA,CAAR,GAAA,QAAA,GAAY,KAAnB;AACD","sourcesContent":["/**\n * @internal\n * Merges disabled declaration with `aria-disabled`\n */\nexport function mergeARIADisabled(shorthand: { 'aria-disabled'?: string | boolean; disabled?: boolean }) {\n const disabled = shorthand.disabled ?? shorthand['aria-disabled'];\n if (typeof disabled === 'string') {\n return disabled === 'false' ? false : true;\n }\n return disabled ?? false;\n}\n"],"sourceRoot":"../src/"}
@@ -1 +1 @@
1
- {"version":3,"sources":["hooks/useARIAButton.ts"],"names":[],"mappings":"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","sourcesContent":["import { Enter, Space } from '@fluentui/keyboard-keys';\nimport { resolveShorthand, useEventCallback } from '@fluentui/react-utilities';\nimport type { ExtractSlotProps, ResolveShorthandFunction, Slot } from '@fluentui/react-utilities';\n\nexport type ARIAButtonSlotProps = ExtractSlotProps<Slot<'button', 'a'>> & {\n disabled?: boolean;\n disabledFocusable?: boolean;\n};\n\n/**\n * Button keyboard handling, role, disabled and tabIndex implementation that ensures ARIA spec\n * for multiple scenarios of shorthand properties. Ensuring 1st rule of ARIA for cases\n * where no attribute addition is required.\n */\nexport const useARIAButton: ResolveShorthandFunction<ARIAButtonSlotProps> = (shorthand, options) => {\n const shorthandProps = resolveShorthand(shorthand, options);\n\n const { disabled, disabledFocusable, onClick, onKeyDown, onKeyUp, tabIndex } = (shorthandProps ||\n {}) as ARIAButtonSlotProps;\n\n const onClickHandler: ARIAButtonSlotProps['onClick'] = useEventCallback(ev => {\n if (disabled || disabledFocusable) {\n ev.preventDefault();\n ev.stopPropagation();\n } else {\n onClick?.(ev);\n }\n });\n\n const onKeyDownHandler: ARIAButtonSlotProps['onKeyDown'] = useEventCallback(ev => {\n onKeyDown?.(ev);\n\n if (ev.isDefaultPrevented()) {\n return;\n }\n\n const key = ev.key;\n\n if ((disabled || disabledFocusable) && (key === Enter || key === Space)) {\n ev.preventDefault();\n ev.stopPropagation();\n return;\n }\n\n if (key === Space) {\n ev.preventDefault();\n return;\n }\n\n // If enter is pressed, activate the button\n else if (key === Enter) {\n ev.preventDefault();\n ev.currentTarget.click();\n }\n });\n\n const onKeyupHandler: ARIAButtonSlotProps['onKeyUp'] = useEventCallback(ev => {\n onKeyUp?.(ev);\n\n if (ev.isDefaultPrevented()) {\n return;\n }\n\n const key = ev.key;\n\n if ((disabled || disabledFocusable) && (key === Enter || key === Space)) {\n ev.preventDefault();\n ev.stopPropagation();\n return;\n }\n\n if (key === Space) {\n ev.preventDefault();\n ev.currentTarget.click();\n }\n });\n\n if (shorthandProps) {\n // If a <button> tag is to be rendered we just need to set disabled and aria-disabled correctly\n if (shorthandProps.as === 'button' || shorthandProps.as === undefined) {\n shorthandProps.disabled = disabled && !disabledFocusable;\n shorthandProps['aria-disabled'] = disabledFocusable ? true : undefined;\n\n // Undefine events if disabledFocusable is passed in\n if (disabledFocusable) {\n shorthandProps.onClick = undefined;\n shorthandProps.onKeyDown = undefined;\n shorthandProps.onKeyUp = undefined;\n }\n }\n\n // If an <a> tag is to be rendered we have to remove disabled and type, and set aria-disabled, role and tabIndex.\n else {\n delete shorthandProps.disabled;\n shorthandProps['aria-disabled'] = disabled || disabledFocusable;\n (shorthandProps as JSX.IntrinsicElements['a']).href = disabled\n ? undefined\n : (shorthandProps as JSX.IntrinsicElements['a']).href;\n shorthandProps.onClick = onClickHandler;\n shorthandProps.onKeyDown = onKeyDownHandler;\n shorthandProps.onKeyUp = onKeyupHandler;\n shorthandProps.role = shorthandProps.role ?? 'button';\n shorthandProps.tabIndex = disabled && !disabledFocusable ? undefined : tabIndex ?? 0;\n }\n\n // Remove non-DOM disabledFocusable prop\n delete shorthandProps.disabledFocusable;\n }\n\n return shorthandProps;\n};\n"],"sourceRoot":"../src/"}
1
+ {"version":3,"sources":["hooks/useARIAButton.ts"],"names":[],"mappings":"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","sourcesContent":["import { Enter, Space } from '@fluentui/keyboard-keys';\nimport { resolveShorthand, useEventCallback } from '@fluentui/react-utilities';\nimport type { ExtractSlotProps, ResolveShorthandFunction, Slot } from '@fluentui/react-utilities';\n\nexport type ARIAButtonSlotProps = ExtractSlotProps<Slot<'button', 'a'>> & {\n disabled?: boolean;\n disabledFocusable?: boolean;\n};\n\n/**\n * Button keyboard handling, role, disabled and tabIndex implementation that ensures ARIA spec\n * for multiple scenarios of shorthand properties. Ensuring 1st rule of ARIA for cases\n * where no attribute addition is required.\n */\nexport const useARIAButton: ResolveShorthandFunction<ARIAButtonSlotProps> = (shorthand, options) => {\n const shorthandProps = resolveShorthand(shorthand, options);\n\n const { disabled, disabledFocusable, onClick, onKeyDown, onKeyUp, tabIndex } = (shorthandProps ||\n {}) as ARIAButtonSlotProps;\n\n const onClickHandler: ARIAButtonSlotProps['onClick'] = useEventCallback(ev => {\n if (disabled || disabledFocusable) {\n ev.preventDefault();\n ev.stopPropagation();\n } else {\n onClick?.(ev);\n }\n });\n\n const onKeyDownHandler: ARIAButtonSlotProps['onKeyDown'] = useEventCallback(ev => {\n onKeyDown?.(ev);\n\n if (ev.isDefaultPrevented()) {\n return;\n }\n\n const key = ev.key;\n\n if ((disabled || disabledFocusable) && (key === Enter || key === Space)) {\n ev.preventDefault();\n ev.stopPropagation();\n return;\n }\n\n if (key === Space) {\n ev.preventDefault();\n return;\n }\n\n // If enter is pressed, activate the button\n else if (key === Enter) {\n ev.preventDefault();\n ev.currentTarget.click();\n }\n });\n\n const onKeyupHandler: ARIAButtonSlotProps['onKeyUp'] = useEventCallback(ev => {\n onKeyUp?.(ev);\n\n if (ev.isDefaultPrevented()) {\n return;\n }\n\n const key = ev.key;\n\n if ((disabled || disabledFocusable) && (key === Enter || key === Space)) {\n ev.preventDefault();\n ev.stopPropagation();\n return;\n }\n\n if (key === Space) {\n ev.preventDefault();\n ev.currentTarget.click();\n }\n });\n\n if (shorthandProps) {\n // If a <button> tag is to be rendered we just need to set disabled and aria-disabled correctly\n if (shorthandProps.as === 'button' || shorthandProps.as === undefined) {\n shorthandProps.disabled = disabled && !disabledFocusable;\n shorthandProps['aria-disabled'] = disabledFocusable ? true : undefined;\n\n // Undefine events if disabledFocusable is passed in\n if (disabledFocusable) {\n shorthandProps.onClick = undefined;\n shorthandProps.onKeyDown = undefined;\n shorthandProps.onKeyUp = undefined;\n }\n }\n\n // If an <a> tag is to be rendered we have to remove disabled and type, and set aria-disabled, role and tabIndex.\n else {\n delete shorthandProps.disabled;\n shorthandProps['aria-disabled'] = disabled || disabledFocusable;\n (shorthandProps as JSX.IntrinsicElements['a']).href = disabled\n ? undefined\n : (shorthandProps as JSX.IntrinsicElements['a']).href;\n shorthandProps.onClick = onClickHandler;\n shorthandProps.onKeyDown = onKeyDownHandler;\n shorthandProps.onKeyUp = onKeyupHandler;\n shorthandProps.role = shorthandProps.role ?? 'button';\n shorthandProps.tabIndex = disabled && !disabledFocusable ? undefined : tabIndex ?? 0;\n }\n\n // Remove non-DOM disabledFocusable prop\n delete shorthandProps.disabledFocusable;\n }\n\n return shorthandProps;\n};\n"],"sourceRoot":"../src/"}
@@ -3,10 +3,23 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.mergeARIADisabled = exports.useARIAButton = void 0;
6
7
 
7
- const tslib_1 = /*#__PURE__*/require("tslib");
8
+ var index_1 = /*#__PURE__*/require("./hooks/index");
8
9
 
9
- tslib_1.__exportStar(require("./hooks/index"), exports);
10
+ Object.defineProperty(exports, "useARIAButton", {
11
+ enumerable: true,
12
+ get: function () {
13
+ return index_1.useARIAButton;
14
+ }
15
+ });
16
+
17
+ var index_2 = /*#__PURE__*/require("./utils/index");
10
18
 
11
- tslib_1.__exportStar(require("./utils/index"), exports);
19
+ Object.defineProperty(exports, "mergeARIADisabled", {
20
+ enumerable: true,
21
+ get: function () {
22
+ return index_2.mergeARIADisabled;
23
+ }
24
+ });
12
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,eAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,eAAA,CAAA,EAAA,OAAA","sourcesContent":["export * from './hooks/index';\nexport * from './utils/index';\n"],"sourceRoot":"../src/"}
1
+ {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;AAAA,IAAA,OAAA,gBAAA,OAAA,CAAA,eAAA,CAAA;;AAAS,MAAA,CAAA,cAAA,CAAA,OAAA,EAAA,eAAA,EAAA;EAAA,UAAA,EAAA,IAAA;EAAA,GAAA,EAAA,YAAA;IAAA,OAAA,OAAA,CAAA,aAAA;EAAa;AAAb,CAAA;;AAET,IAAA,OAAA,gBAAA,OAAA,CAAA,eAAA,CAAA;;AAAS,MAAA,CAAA,cAAA,CAAA,OAAA,EAAA,mBAAA,EAAA;EAAA,UAAA,EAAA,IAAA;EAAA,GAAA,EAAA,YAAA;IAAA,OAAA,OAAA,CAAA,iBAAA;EAAiB;AAAjB,CAAA","sourcesContent":["export { useARIAButton } from './hooks/index';\nexport type { ARIAButtonSlotProps } from './hooks/index';\nexport { mergeARIADisabled } from './utils/index';\n"],"sourceRoot":"../src/"}
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.mergeARIADisabled = void 0;
7
7
  /**
8
+ * @internal
8
9
  * Merges disabled declaration with `aria-disabled`
9
10
  */
10
11
 
@@ -1 +1 @@
1
- {"version":3,"sources":["utils/mergeARIADisabled.ts"],"names":[],"mappings":";;;;;;AAAA;;AAEG;;AACH,SAAgB,iBAAhB,CAAkC,SAAlC,EAAuG;;;AACrG,QAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,SAAS,CAAC,QAAV,MAAkB,IAAlB,IAAkB,EAAA,KAAA,KAAA,CAAlB,GAAkB,EAAlB,GAAsB,SAAS,CAAC,eAAD,CAAhD;;AACA,MAAI,OAAO,QAAP,KAAoB,QAAxB,EAAkC;AAChC,WAAO,QAAQ,KAAK,OAAb,GAAuB,KAAvB,GAA+B,IAAtC;AACD;;AACD,SAAO,QAAQ,KAAA,IAAR,IAAA,QAAQ,KAAA,KAAA,CAAR,GAAA,QAAA,GAAY,KAAnB;AACD;;AAND,OAAA,CAAA,iBAAA,GAAA,iBAAA","sourcesContent":["/**\n * Merges disabled declaration with `aria-disabled`\n */\nexport function mergeARIADisabled(shorthand: { 'aria-disabled'?: string | boolean; disabled?: boolean }) {\n const disabled = shorthand.disabled ?? shorthand['aria-disabled'];\n if (typeof disabled === 'string') {\n return disabled === 'false' ? false : true;\n }\n return disabled ?? false;\n}\n"],"sourceRoot":"../src/"}
1
+ {"version":3,"sources":["utils/mergeARIADisabled.ts"],"names":[],"mappings":";;;;;;AAAA;;;AAGG;;AACH,SAAgB,iBAAhB,CAAkC,SAAlC,EAAuG;;;EACrG,MAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,SAAS,CAAC,QAAV,MAAkB,IAAlB,IAAkB,EAAA,KAAA,KAAA,CAAlB,GAAkB,EAAlB,GAAsB,SAAS,CAAC,eAAD,CAAhD;;EACA,IAAI,OAAO,QAAP,KAAoB,QAAxB,EAAkC;IAChC,OAAO,QAAQ,KAAK,OAAb,GAAuB,KAAvB,GAA+B,IAAtC;EACD;;EACD,OAAO,QAAQ,KAAA,IAAR,IAAA,QAAQ,KAAA,KAAA,CAAR,GAAA,QAAA,GAAY,KAAnB;AACD;;AAND,OAAA,CAAA,iBAAA,GAAA,iBAAA","sourcesContent":["/**\n * @internal\n * Merges disabled declaration with `aria-disabled`\n */\nexport function mergeARIADisabled(shorthand: { 'aria-disabled'?: string | boolean; disabled?: boolean }) {\n const disabled = shorthand.disabled ?? shorthand['aria-disabled'];\n if (typeof disabled === 'string') {\n return disabled === 'false' ? false : true;\n }\n return disabled ?? false;\n}\n"],"sourceRoot":"../src/"}
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@fluentui/react-aria",
3
- "version": "9.0.0-rc.7",
3
+ "version": "9.0.0",
4
4
  "description": "React helper to ensure ARIA",
5
5
  "main": "lib-commonjs/index.js",
6
6
  "module": "lib/index.js",
7
- "typings": "lib/index.d.ts",
7
+ "typings": "dist/index.d.ts",
8
8
  "sideEffects": false,
9
9
  "repository": {
10
10
  "type": "git",
@@ -30,8 +30,8 @@
30
30
  "@fluentui/scripts": "^1.0.0"
31
31
  },
32
32
  "dependencies": {
33
- "@fluentui/keyboard-keys": "9.0.0-rc.5",
34
- "@fluentui/react-utilities": "9.0.0-rc.7",
33
+ "@fluentui/keyboard-keys": "^9.0.0",
34
+ "@fluentui/react-utilities": "^9.0.0",
35
35
  "tslib": "^2.1.0"
36
36
  },
37
37
  "peerDependencies": {
@@ -42,9 +42,7 @@
42
42
  },
43
43
  "beachball": {
44
44
  "disallowedChangeTypes": [
45
- "major",
46
- "minor",
47
- "patch"
45
+ "major"
48
46
  ]
49
47
  },
50
48
  "exports": {
@@ -1 +0,0 @@
1
- export * from './useARIAButton';
@@ -1,11 +0,0 @@
1
- import type { ExtractSlotProps, ResolveShorthandFunction, Slot } from '@fluentui/react-utilities';
2
- export declare type ARIAButtonSlotProps = ExtractSlotProps<Slot<'button', 'a'>> & {
3
- disabled?: boolean;
4
- disabledFocusable?: boolean;
5
- };
6
- /**
7
- * Button keyboard handling, role, disabled and tabIndex implementation that ensures ARIA spec
8
- * for multiple scenarios of shorthand properties. Ensuring 1st rule of ARIA for cases
9
- * where no attribute addition is required.
10
- */
11
- export declare const useARIAButton: ResolveShorthandFunction<ARIAButtonSlotProps>;
package/lib/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from './hooks/index';
2
- export * from './utils/index';
@@ -1 +0,0 @@
1
- export * from './mergeARIADisabled';
@@ -1,7 +0,0 @@
1
- /**
2
- * Merges disabled declaration with `aria-disabled`
3
- */
4
- export declare function mergeARIADisabled(shorthand: {
5
- 'aria-disabled'?: string | boolean;
6
- disabled?: boolean;
7
- }): boolean;
@@ -1 +0,0 @@
1
- export * from './useARIAButton';
@@ -1,11 +0,0 @@
1
- import type { ExtractSlotProps, ResolveShorthandFunction, Slot } from '@fluentui/react-utilities';
2
- export declare type ARIAButtonSlotProps = ExtractSlotProps<Slot<'button', 'a'>> & {
3
- disabled?: boolean;
4
- disabledFocusable?: boolean;
5
- };
6
- /**
7
- * Button keyboard handling, role, disabled and tabIndex implementation that ensures ARIA spec
8
- * for multiple scenarios of shorthand properties. Ensuring 1st rule of ARIA for cases
9
- * where no attribute addition is required.
10
- */
11
- export declare const useARIAButton: ResolveShorthandFunction<ARIAButtonSlotProps>;
@@ -1,2 +0,0 @@
1
- export * from './hooks/index';
2
- export * from './utils/index';
@@ -1 +0,0 @@
1
- export * from './mergeARIADisabled';
@@ -1,7 +0,0 @@
1
- /**
2
- * Merges disabled declaration with `aria-disabled`
3
- */
4
- export declare function mergeARIADisabled(shorthand: {
5
- 'aria-disabled'?: string | boolean;
6
- disabled?: boolean;
7
- }): boolean;