@fluentui/react-button 9.0.0-nightly.f81b28ceb3.1 → 9.0.0-rc.11
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.json +914 -24
- package/CHANGELOG.md +388 -180
- package/README.md +80 -18
- package/dist/{react-button.d.ts → index.d.ts} +72 -59
- package/{lib → dist}/tsdoc-metadata.json +0 -0
- package/lib/Button.js.map +1 -1
- package/lib/CompoundButton.js.map +1 -1
- package/lib/MenuButton.js.map +1 -1
- package/lib/SplitButton.js.map +1 -1
- package/lib/ToggleButton.js.map +1 -1
- package/lib/components/Button/Button.js +7 -7
- package/lib/components/Button/Button.js.map +1 -1
- package/lib/components/Button/Button.types.js.map +1 -1
- package/lib/components/Button/index.js +1 -2
- package/lib/components/Button/index.js.map +1 -1
- package/lib/components/Button/renderButton.js +13 -9
- package/lib/components/Button/renderButton.js.map +1 -1
- package/lib/components/Button/useButton.js +20 -25
- package/lib/components/Button/useButton.js.map +1 -1
- package/lib/components/Button/useButtonStyles.js +240 -165
- package/lib/components/Button/useButtonStyles.js.map +1 -1
- package/lib/components/CompoundButton/CompoundButton.js +7 -7
- package/lib/components/CompoundButton/CompoundButton.js.map +1 -1
- package/lib/components/CompoundButton/CompoundButton.types.js.map +1 -1
- package/lib/components/CompoundButton/index.js +1 -1
- package/lib/components/CompoundButton/index.js.map +1 -1
- package/lib/components/CompoundButton/renderCompoundButton.js +15 -9
- package/lib/components/CompoundButton/renderCompoundButton.js.map +1 -1
- package/lib/components/CompoundButton/useCompoundButton.js +13 -8
- package/lib/components/CompoundButton/useCompoundButton.js.map +1 -1
- package/lib/components/CompoundButton/useCompoundButtonStyles.js +96 -75
- package/lib/components/CompoundButton/useCompoundButtonStyles.js.map +1 -1
- package/lib/components/MenuButton/MenuButton.js +9 -8
- package/lib/components/MenuButton/MenuButton.js.map +1 -1
- package/lib/components/MenuButton/MenuButton.types.js.map +1 -1
- package/lib/components/MenuButton/index.js +1 -1
- package/lib/components/MenuButton/index.js.map +1 -1
- package/lib/components/MenuButton/renderMenuButton.js +13 -9
- package/lib/components/MenuButton/renderMenuButton.js.map +1 -1
- package/lib/components/MenuButton/useMenuButton.js +11 -11
- package/lib/components/MenuButton/useMenuButton.js.map +1 -1
- package/lib/components/MenuButton/useMenuButtonStyles.js +39 -17
- package/lib/components/MenuButton/useMenuButtonStyles.js.map +1 -1
- package/lib/components/SplitButton/SplitButton.js +8 -8
- package/lib/components/SplitButton/SplitButton.js.map +1 -1
- package/lib/components/SplitButton/SplitButton.types.js.map +1 -1
- package/lib/components/SplitButton/index.js +1 -1
- package/lib/components/SplitButton/index.js.map +1 -1
- package/lib/components/SplitButton/renderSplitButton.js +9 -7
- package/lib/components/SplitButton/renderSplitButton.js.map +1 -1
- package/lib/components/SplitButton/useSplitButton.js +54 -49
- package/lib/components/SplitButton/useSplitButton.js.map +1 -1
- package/lib/components/SplitButton/useSplitButtonStyles.js +46 -39
- package/lib/components/SplitButton/useSplitButtonStyles.js.map +1 -1
- package/lib/components/ToggleButton/ToggleButton.js +7 -7
- package/lib/components/ToggleButton/ToggleButton.js.map +1 -1
- package/lib/components/ToggleButton/ToggleButton.types.js.map +1 -1
- package/lib/components/ToggleButton/index.js +1 -1
- package/lib/components/ToggleButton/index.js.map +1 -1
- package/lib/components/ToggleButton/renderToggleButton.js +1 -1
- package/lib/components/ToggleButton/renderToggleButton.js.map +1 -1
- package/lib/components/ToggleButton/useToggleButton.js +5 -41
- package/lib/components/ToggleButton/useToggleButton.js.map +1 -1
- package/lib/components/ToggleButton/useToggleButtonStyles.js +110 -86
- package/lib/components/ToggleButton/useToggleButtonStyles.js.map +1 -1
- package/lib/index.js +6 -5
- package/lib/index.js.map +1 -1
- package/lib/utils/index.js +2 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/useToggleState.js +37 -0
- package/lib/utils/useToggleState.js.map +1 -0
- package/lib-commonjs/Button.js +1 -1
- package/lib-commonjs/Button.js.map +1 -1
- package/lib-commonjs/CompoundButton.js +1 -1
- package/lib-commonjs/CompoundButton.js.map +1 -1
- package/lib-commonjs/MenuButton.js +1 -1
- package/lib-commonjs/MenuButton.js.map +1 -1
- package/lib-commonjs/SplitButton.js +1 -1
- package/lib-commonjs/SplitButton.js.map +1 -1
- package/lib-commonjs/ToggleButton.js +1 -1
- package/lib-commonjs/ToggleButton.js.map +1 -1
- package/lib-commonjs/components/Button/Button.js +8 -8
- package/lib-commonjs/components/Button/Button.js.map +1 -1
- package/lib-commonjs/components/Button/Button.types.js.map +1 -1
- package/lib-commonjs/components/Button/index.js +10 -6
- package/lib-commonjs/components/Button/index.js.map +1 -1
- package/lib-commonjs/components/Button/renderButton.js +17 -14
- package/lib-commonjs/components/Button/renderButton.js.map +1 -1
- package/lib-commonjs/components/Button/useButton.js +24 -29
- package/lib-commonjs/components/Button/useButton.js.map +1 -1
- package/lib-commonjs/components/Button/useButtonStyles.js +243 -166
- package/lib-commonjs/components/Button/useButtonStyles.js.map +1 -1
- package/lib-commonjs/components/CompoundButton/CompoundButton.js +8 -8
- package/lib-commonjs/components/CompoundButton/CompoundButton.js.map +1 -1
- package/lib-commonjs/components/CompoundButton/CompoundButton.types.js.map +1 -1
- package/lib-commonjs/components/CompoundButton/index.js +10 -4
- package/lib-commonjs/components/CompoundButton/index.js.map +1 -1
- package/lib-commonjs/components/CompoundButton/renderCompoundButton.js +19 -14
- package/lib-commonjs/components/CompoundButton/renderCompoundButton.js.map +1 -1
- package/lib-commonjs/components/CompoundButton/useCompoundButton.js +16 -12
- package/lib-commonjs/components/CompoundButton/useCompoundButton.js.map +1 -1
- package/lib-commonjs/components/CompoundButton/useCompoundButtonStyles.js +99 -77
- package/lib-commonjs/components/CompoundButton/useCompoundButtonStyles.js.map +1 -1
- package/lib-commonjs/components/MenuButton/MenuButton.js +10 -9
- package/lib-commonjs/components/MenuButton/MenuButton.js.map +1 -1
- package/lib-commonjs/components/MenuButton/MenuButton.types.js.map +1 -1
- package/lib-commonjs/components/MenuButton/index.js +10 -4
- package/lib-commonjs/components/MenuButton/index.js.map +1 -1
- package/lib-commonjs/components/MenuButton/renderMenuButton.js +17 -14
- package/lib-commonjs/components/MenuButton/renderMenuButton.js.map +1 -1
- package/lib-commonjs/components/MenuButton/useMenuButton.js +15 -16
- package/lib-commonjs/components/MenuButton/useMenuButton.js.map +1 -1
- package/lib-commonjs/components/MenuButton/useMenuButtonStyles.js +43 -19
- package/lib-commonjs/components/MenuButton/useMenuButtonStyles.js.map +1 -1
- package/lib-commonjs/components/SplitButton/SplitButton.js +9 -9
- package/lib-commonjs/components/SplitButton/SplitButton.js.map +1 -1
- package/lib-commonjs/components/SplitButton/SplitButton.types.js.map +1 -1
- package/lib-commonjs/components/SplitButton/index.js +10 -4
- package/lib-commonjs/components/SplitButton/index.js.map +1 -1
- package/lib-commonjs/components/SplitButton/renderSplitButton.js +13 -12
- package/lib-commonjs/components/SplitButton/renderSplitButton.js.map +1 -1
- package/lib-commonjs/components/SplitButton/useSplitButton.js +58 -54
- package/lib-commonjs/components/SplitButton/useSplitButton.js.map +1 -1
- package/lib-commonjs/components/SplitButton/useSplitButtonStyles.js +50 -42
- package/lib-commonjs/components/SplitButton/useSplitButtonStyles.js.map +1 -1
- package/lib-commonjs/components/ToggleButton/ToggleButton.js +8 -8
- package/lib-commonjs/components/ToggleButton/ToggleButton.js.map +1 -1
- package/lib-commonjs/components/ToggleButton/ToggleButton.types.js.map +1 -1
- package/lib-commonjs/components/ToggleButton/index.js +10 -4
- package/lib-commonjs/components/ToggleButton/index.js.map +1 -1
- package/lib-commonjs/components/ToggleButton/renderToggleButton.js +3 -3
- package/lib-commonjs/components/ToggleButton/renderToggleButton.js.map +1 -1
- package/lib-commonjs/components/ToggleButton/useToggleButton.js +7 -45
- package/lib-commonjs/components/ToggleButton/useToggleButton.js.map +1 -1
- package/lib-commonjs/components/ToggleButton/useToggleButtonStyles.js +114 -86
- package/lib-commonjs/components/ToggleButton/useToggleButtonStyles.js.map +1 -1
- package/lib-commonjs/index.js +169 -6
- package/lib-commonjs/index.js.map +1 -1
- package/lib-commonjs/utils/index.js +10 -0
- package/lib-commonjs/utils/index.js.map +1 -0
- package/lib-commonjs/utils/useToggleState.js +48 -0
- package/lib-commonjs/utils/useToggleState.js.map +1 -0
- package/package.json +22 -27
- package/dist/demo/index.html +0 -71
- package/dist/demo/react-dom.development.js +0 -21413
- package/dist/demo/react.development.js +0 -3155
- package/lib/Button.d.ts +0 -1
- package/lib/CompoundButton.d.ts +0 -1
- package/lib/MenuButton.d.ts +0 -1
- package/lib/SplitButton.d.ts +0 -1
- package/lib/ToggleButton.d.ts +0 -1
- package/lib/common/isConformant.d.ts +0 -4
- package/lib/common/isConformant.js +0 -13
- package/lib/common/isConformant.js.map +0 -1
- package/lib/components/Button/Button.d.ts +0 -6
- package/lib/components/Button/Button.types.d.ts +0 -62
- package/lib/components/Button/index.d.ts +0 -5
- package/lib/components/Button/renderButton.d.ts +0 -5
- package/lib/components/Button/useButton.d.ts +0 -8
- package/lib/components/Button/useButtonStyles.d.ts +0 -10
- package/lib/components/CompoundButton/CompoundButton.d.ts +0 -6
- package/lib/components/CompoundButton/CompoundButton.types.d.ts +0 -14
- package/lib/components/CompoundButton/index.d.ts +0 -5
- package/lib/components/CompoundButton/renderCompoundButton.d.ts +0 -5
- package/lib/components/CompoundButton/useCompoundButton.d.ts +0 -8
- package/lib/components/CompoundButton/useCompoundButtonStyles.d.ts +0 -2
- package/lib/components/MenuButton/MenuButton.d.ts +0 -6
- package/lib/components/MenuButton/MenuButton.types.d.ts +0 -11
- package/lib/components/MenuButton/index.d.ts +0 -5
- package/lib/components/MenuButton/renderMenuButton.d.ts +0 -5
- package/lib/components/MenuButton/useMenuButton.d.ts +0 -6
- package/lib/components/MenuButton/useMenuButtonStyles.d.ts +0 -2
- package/lib/components/SplitButton/SplitButton.d.ts +0 -7
- package/lib/components/SplitButton/SplitButton.types.d.ts +0 -19
- package/lib/components/SplitButton/index.d.ts +0 -5
- package/lib/components/SplitButton/renderSplitButton.d.ts +0 -5
- package/lib/components/SplitButton/useSplitButton.d.ts +0 -8
- package/lib/components/SplitButton/useSplitButtonStyles.d.ts +0 -2
- package/lib/components/ToggleButton/ToggleButton.d.ts +0 -6
- package/lib/components/ToggleButton/ToggleButton.types.d.ts +0 -19
- package/lib/components/ToggleButton/index.d.ts +0 -5
- package/lib/components/ToggleButton/renderToggleButton.d.ts +0 -1
- package/lib/components/ToggleButton/useToggleButton.d.ts +0 -9
- package/lib/components/ToggleButton/useToggleButtonStyles.d.ts +0 -2
- package/lib/index.d.ts +0 -5
- package/lib-commonjs/Button.d.ts +0 -1
- package/lib-commonjs/CompoundButton.d.ts +0 -1
- package/lib-commonjs/MenuButton.d.ts +0 -1
- package/lib-commonjs/SplitButton.d.ts +0 -1
- package/lib-commonjs/ToggleButton.d.ts +0 -1
- package/lib-commonjs/common/isConformant.d.ts +0 -4
- package/lib-commonjs/common/isConformant.js +0 -24
- package/lib-commonjs/common/isConformant.js.map +0 -1
- package/lib-commonjs/components/Button/Button.d.ts +0 -6
- package/lib-commonjs/components/Button/Button.types.d.ts +0 -62
- package/lib-commonjs/components/Button/index.d.ts +0 -5
- package/lib-commonjs/components/Button/renderButton.d.ts +0 -5
- package/lib-commonjs/components/Button/useButton.d.ts +0 -8
- package/lib-commonjs/components/Button/useButtonStyles.d.ts +0 -10
- package/lib-commonjs/components/CompoundButton/CompoundButton.d.ts +0 -6
- package/lib-commonjs/components/CompoundButton/CompoundButton.types.d.ts +0 -14
- package/lib-commonjs/components/CompoundButton/index.d.ts +0 -5
- package/lib-commonjs/components/CompoundButton/renderCompoundButton.d.ts +0 -5
- package/lib-commonjs/components/CompoundButton/useCompoundButton.d.ts +0 -8
- package/lib-commonjs/components/CompoundButton/useCompoundButtonStyles.d.ts +0 -2
- package/lib-commonjs/components/MenuButton/MenuButton.d.ts +0 -6
- package/lib-commonjs/components/MenuButton/MenuButton.types.d.ts +0 -11
- package/lib-commonjs/components/MenuButton/index.d.ts +0 -5
- package/lib-commonjs/components/MenuButton/renderMenuButton.d.ts +0 -5
- package/lib-commonjs/components/MenuButton/useMenuButton.d.ts +0 -6
- package/lib-commonjs/components/MenuButton/useMenuButtonStyles.d.ts +0 -2
- package/lib-commonjs/components/SplitButton/SplitButton.d.ts +0 -7
- package/lib-commonjs/components/SplitButton/SplitButton.types.d.ts +0 -19
- package/lib-commonjs/components/SplitButton/index.d.ts +0 -5
- package/lib-commonjs/components/SplitButton/renderSplitButton.d.ts +0 -5
- package/lib-commonjs/components/SplitButton/useSplitButton.d.ts +0 -8
- package/lib-commonjs/components/SplitButton/useSplitButtonStyles.d.ts +0 -2
- package/lib-commonjs/components/ToggleButton/ToggleButton.d.ts +0 -6
- package/lib-commonjs/components/ToggleButton/ToggleButton.types.d.ts +0 -19
- package/lib-commonjs/components/ToggleButton/index.d.ts +0 -5
- package/lib-commonjs/components/ToggleButton/renderToggleButton.d.ts +0 -1
- package/lib-commonjs/components/ToggleButton/useToggleButton.d.ts +0 -9
- package/lib-commonjs/components/ToggleButton/useToggleButtonStyles.d.ts +0 -2
- package/lib-commonjs/index.d.ts +0 -5
package/README.md
CHANGED
@@ -2,35 +2,97 @@
|
|
2
2
|
|
3
3
|
**Button components for [Fluent UI React](https://developer.microsoft.com/en-us/fluentui)**
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
5
|
+
- Buttons enable users to trigger an action or event, such as submitting a form, opening a dialog, canceling an action, or performing a delete operation.
|
6
|
+
- CompoundButtons are buttons that can have secondary content that adds extra information to the user.
|
7
|
+
- MenuButtons are buttons that have a chevron icon after the button contents and are usually clicked to open/close menus.
|
8
|
+
- SplitButtons are a grouping of two interactive surfaces where interacting with the first one triggers a primary action, while interacting with the second one opens a menu with secondary actions.
|
9
|
+
- ToggleButtons are buttons that toggle between two defined states when triggered.
|
10
10
|
|
11
11
|
## Usage
|
12
12
|
|
13
13
|
To import Button:
|
14
14
|
|
15
15
|
```js
|
16
|
-
import { Button } from '@fluentui/react-
|
16
|
+
import { Button, CompoundButton, MenuButton, SplitButton, ToggleButton } from '@fluentui/react-components';
|
17
17
|
```
|
18
18
|
|
19
|
-
|
19
|
+
### Examples
|
20
20
|
|
21
|
-
|
22
|
-
|
21
|
+
### Button
|
22
|
+
|
23
|
+
```jsx
|
24
|
+
<Button>Submit</Button>
|
25
|
+
<Button icon={<SVGIcon />} />
|
26
|
+
<Button icon={<SVGIcon />}>Submit</Button>
|
27
|
+
<Button icon={<SVGIcon />} iconPosition="after">Submit</Button>
|
28
|
+
<Button appearance="primary">Submit</Button>
|
29
|
+
<Button disabled>Submit</Button>
|
30
|
+
<Button size="small">Submit</Button>
|
31
|
+
<Button size="large">Submit</Button>
|
23
32
|
```
|
24
33
|
|
25
|
-
###
|
34
|
+
### CompoundButton
|
26
35
|
|
27
36
|
```jsx
|
28
|
-
<
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
37
|
+
<CompoundButton icon={<CalendarMonth />} secondaryContent="Secondary content" {...props}>
|
38
|
+
Example
|
39
|
+
</CompoundButton>
|
40
|
+
```
|
41
|
+
|
42
|
+
### MenuButton
|
43
|
+
|
44
|
+
```jsx
|
45
|
+
<Menu>
|
46
|
+
<MenuTrigger>
|
47
|
+
<MenuButton>Example</MenuButton>
|
48
|
+
</MenuTrigger>
|
49
|
+
|
50
|
+
<MenuPopover>
|
51
|
+
<MenuList>
|
52
|
+
<MenuItem>Item a</MenuItem>
|
53
|
+
<MenuItem>Item b</MenuItem>
|
54
|
+
</MenuList>
|
55
|
+
</MenuPopover>
|
56
|
+
</Menu>
|
57
|
+
```
|
58
|
+
|
59
|
+
### SplitButton
|
60
|
+
|
61
|
+
```jsx
|
62
|
+
<Menu positioning="below-end">
|
63
|
+
<MenuTrigger>
|
64
|
+
{(triggerProps: MenuButtonProps) => <SplitButton menuButton={triggerProps}>Example</SplitButton>}
|
65
|
+
</MenuTrigger>
|
66
|
+
|
67
|
+
<MenuPopover>
|
68
|
+
<MenuList>
|
69
|
+
<MenuItem>Item a</MenuItem>
|
70
|
+
<MenuItem>Item b</MenuItem>
|
71
|
+
</MenuList>
|
72
|
+
</MenuPopover>
|
73
|
+
</Menu>
|
74
|
+
```
|
75
|
+
|
76
|
+
### ToggleButton
|
77
|
+
|
78
|
+
```jsx
|
79
|
+
<ToggleButton>Toggle volume</ToggleButton>
|
80
|
+
<ToggleButton defaultChecked={true}>Toggle volume</ToggleButton>
|
81
|
+
<ToggleButton checked={true}>Toggle volume</ToggleButton>
|
82
|
+
<ToggleButton checked={false}>Toggle volume</ToggleButton>
|
36
83
|
```
|
84
|
+
|
85
|
+
See [Fluent UI Storybook](https://aka.ms/fluentui-storybook) for more detailed usage examples.
|
86
|
+
|
87
|
+
Alternatively, run Storybook locally with:
|
88
|
+
|
89
|
+
1. `yarn start`
|
90
|
+
2. Select `react-button` from the list.
|
91
|
+
|
92
|
+
### Specification
|
93
|
+
|
94
|
+
See [SPEC.md](./src/components/Button/SPEC.md).
|
95
|
+
|
96
|
+
### Migration Guide
|
97
|
+
|
98
|
+
If you're upgrading to Fluent UI v9 see [MIGRATION.md](./src/components/Button/MIGRATION.md) for guidance on updating to the latest component implementations.
|
@@ -1,76 +1,79 @@
|
|
1
|
-
import {
|
1
|
+
import type { ARIAButtonSlotProps } from '@fluentui/react-aria';
|
2
2
|
import type { ComponentProps } from '@fluentui/react-utilities';
|
3
3
|
import type { ComponentState } from '@fluentui/react-utilities';
|
4
4
|
import { ForwardRefComponent } from '@fluentui/react-utilities';
|
5
|
-
import type { IntrinsicShorthandProps } from '@fluentui/react-utilities';
|
6
|
-
import type { MenuTriggerChildProps } from '@fluentui/react-menu';
|
7
|
-
import type { ObjectShorthandProps } from '@fluentui/react-utilities';
|
8
5
|
import * as React_2 from 'react';
|
6
|
+
import type { Slot } from '@fluentui/react-utilities';
|
7
|
+
import type { SlotClassNames } from '@fluentui/react-utilities';
|
9
8
|
|
10
9
|
/**
|
11
10
|
* Buttons give people a way to trigger an action.
|
12
11
|
*/
|
13
12
|
export declare const Button: ForwardRefComponent<ButtonProps>;
|
14
13
|
|
15
|
-
export declare
|
14
|
+
export declare const buttonClassNames: SlotClassNames<ButtonSlots>;
|
15
|
+
|
16
|
+
export declare type ButtonProps = ComponentProps<ButtonSlots> & {
|
16
17
|
/**
|
17
18
|
* A button can have its content and borders styled for greater emphasis or to be subtle.
|
19
|
+
* - 'secondary' (default): Gives emphasis to the button in such a way that it indicates a secondary action.
|
18
20
|
* - 'primary': Emphasizes the button as a primary action.
|
19
21
|
* - 'outline': Removes background styling.
|
20
22
|
* - 'subtle': Minimizes emphasis to blend into the background until hovered or focused.
|
21
23
|
* - 'transparent': Removes background and border styling.
|
24
|
+
*
|
25
|
+
* @default 'secondary'
|
22
26
|
*/
|
23
|
-
appearance?: 'primary' | 'outline' | 'subtle' | 'transparent';
|
24
|
-
/**
|
25
|
-
* A button can fill the width of its container.
|
26
|
-
* @default false
|
27
|
-
*/
|
28
|
-
block: boolean;
|
27
|
+
appearance?: 'secondary' | 'primary' | 'outline' | 'subtle' | 'transparent';
|
29
28
|
/**
|
30
29
|
* When set, allows the button to be focusable even when it has been disabled. This is used in scenarios where it
|
31
30
|
* is important to keep a consistent tab order for screen reader and keyboard users. The primary example of this
|
32
31
|
* pattern is when the disabled button is in a menu or a commandbar and is seldom used for standalone buttons.
|
32
|
+
*
|
33
33
|
* @default false
|
34
34
|
*/
|
35
|
-
disabledFocusable
|
35
|
+
disabledFocusable?: boolean;
|
36
36
|
/**
|
37
37
|
* A button can show that it cannot be interacted with.
|
38
|
+
*
|
38
39
|
* @default false
|
39
40
|
*/
|
40
|
-
disabled
|
41
|
+
disabled?: boolean;
|
41
42
|
/**
|
42
43
|
* A button can format its icon to appear before or after its content.
|
44
|
+
*
|
43
45
|
* @default 'before'
|
44
46
|
*/
|
45
|
-
iconPosition
|
47
|
+
iconPosition?: 'before' | 'after';
|
46
48
|
/**
|
47
49
|
* A button can be rounded, circular, or square.
|
50
|
+
*
|
48
51
|
* @default 'rounded'
|
49
52
|
*/
|
50
|
-
shape
|
53
|
+
shape?: 'rounded' | 'circular' | 'square';
|
51
54
|
/**
|
52
55
|
* A button supports different sizes.
|
56
|
+
*
|
53
57
|
* @default 'medium'
|
54
58
|
*/
|
55
|
-
size
|
59
|
+
size?: 'small' | 'medium' | 'large';
|
56
60
|
};
|
57
61
|
|
58
|
-
export declare type ButtonProps = ComponentProps<ButtonSlots> & Partial<ButtonCommons>;
|
59
|
-
|
60
62
|
export declare type ButtonSlots = {
|
61
63
|
/**
|
62
|
-
* Root of the component that renders as either a
|
64
|
+
* Root of the component that renders as either a `<button>` tag or an `<a>` tag.
|
63
65
|
*/
|
64
|
-
root:
|
66
|
+
root: NonNullable<Slot<ARIAButtonSlotProps>>;
|
65
67
|
/**
|
66
68
|
* Icon that renders either before or after the `children` as specified by the `iconPosition` prop.
|
67
69
|
*/
|
68
|
-
icon?:
|
70
|
+
icon?: Slot<'span'>;
|
69
71
|
};
|
70
72
|
|
71
|
-
export declare type ButtonState = ComponentState<ButtonSlots> &
|
73
|
+
export declare type ButtonState = ComponentState<ButtonSlots> & Required<Pick<ButtonProps, 'appearance' | 'disabledFocusable' | 'disabled' | 'iconPosition' | 'shape' | 'size'>> & {
|
72
74
|
/**
|
73
75
|
* A button can contain only an icon.
|
76
|
+
*
|
74
77
|
* @default false
|
75
78
|
*/
|
76
79
|
iconOnly: boolean;
|
@@ -81,33 +84,38 @@ export declare type ButtonState = ComponentState<ButtonSlots> & ButtonCommons &
|
|
81
84
|
*/
|
82
85
|
export declare const CompoundButton: ForwardRefComponent<CompoundButtonProps>;
|
83
86
|
|
84
|
-
export declare
|
87
|
+
export declare const compoundButtonClassNames: SlotClassNames<CompoundButtonSlots>;
|
88
|
+
|
89
|
+
export declare type CompoundButtonProps = ComponentProps<Partial<CompoundButtonSlots>> & Pick<ButtonProps, 'appearance' | 'disabledFocusable' | 'disabled' | 'iconPosition' | 'shape' | 'size'>;
|
85
90
|
|
86
91
|
export declare type CompoundButtonSlots = ButtonSlots & {
|
87
92
|
/**
|
88
93
|
* Second line of text that describes the action this button takes.
|
89
94
|
*/
|
90
|
-
secondaryContent?:
|
95
|
+
secondaryContent?: Slot<'span'>;
|
91
96
|
/**
|
92
97
|
* Container that wraps the children and the secondaryContent slot.
|
93
98
|
*/
|
94
|
-
contentContainer:
|
99
|
+
contentContainer: NonNullable<Slot<'span'>>;
|
95
100
|
};
|
96
101
|
|
97
102
|
export declare type CompoundButtonState = ComponentState<CompoundButtonSlots> & Omit<ButtonState, keyof ButtonSlots | 'components'>;
|
98
103
|
|
99
104
|
/**
|
100
|
-
* MenuButtons are buttons that
|
105
|
+
* MenuButtons are buttons that have a chevron icon after the button contents and are usually clicked to open/close
|
106
|
+
* menus.
|
101
107
|
*/
|
102
108
|
export declare const MenuButton: ForwardRefComponent<MenuButtonProps>;
|
103
109
|
|
104
|
-
export declare
|
110
|
+
export declare const menuButtonClassNames: SlotClassNames<MenuButtonSlots>;
|
111
|
+
|
112
|
+
export declare type MenuButtonProps = ComponentProps<MenuButtonSlots> & Pick<ButtonProps, 'appearance' | 'disabledFocusable' | 'disabled' | 'shape' | 'size'>;
|
105
113
|
|
106
114
|
export declare type MenuButtonSlots = ButtonSlots & {
|
107
115
|
/**
|
108
116
|
* Menu icon that indicates that this button has a menu that can be expanded.
|
109
117
|
*/
|
110
|
-
menuIcon?:
|
118
|
+
menuIcon?: Slot<'span'>;
|
111
119
|
};
|
112
120
|
|
113
121
|
export declare type MenuButtonState = ComponentState<MenuButtonSlots> & Omit<ButtonState, keyof ButtonSlots | 'components' | 'iconPosition'>;
|
@@ -115,46 +123,48 @@ export declare type MenuButtonState = ComponentState<MenuButtonSlots> & Omit<But
|
|
115
123
|
/**
|
116
124
|
* Renders a Button component by passing the state defined props to the appropriate slots.
|
117
125
|
*/
|
118
|
-
declare const
|
119
|
-
export {
|
120
|
-
export {
|
126
|
+
declare const renderButton_unstable: (state: ButtonState) => JSX.Element;
|
127
|
+
export { renderButton_unstable }
|
128
|
+
export { renderButton_unstable as renderToggleButton_unstable }
|
121
129
|
|
122
130
|
/**
|
123
131
|
* Renders a CompoundButton component by passing the state defined props to the appropriate slots.
|
124
132
|
*/
|
125
|
-
export declare const
|
133
|
+
export declare const renderCompoundButton_unstable: (state: CompoundButtonState) => JSX.Element;
|
126
134
|
|
127
135
|
/**
|
128
136
|
* Renders a MenuButton component by passing the state defined props to the appropriate slots.
|
129
137
|
*/
|
130
|
-
export declare const
|
138
|
+
export declare const renderMenuButton_unstable: (state: MenuButtonState) => JSX.Element;
|
131
139
|
|
132
140
|
/**
|
133
141
|
* Renders a SplitButton component by passing the state defined props to the appropriate slots.
|
134
142
|
*/
|
135
|
-
export declare const
|
143
|
+
export declare const renderSplitButton_unstable: (state: SplitButtonState) => JSX.Element;
|
136
144
|
|
137
145
|
/**
|
138
|
-
* SplitButtons are a grouping of two interactive surfaces where
|
146
|
+
* SplitButtons are a grouping of two interactive surfaces where interacting with the first one triggers a primary
|
139
147
|
* action, while interacting with the second one opens a menu with secondary actions.
|
140
148
|
*/
|
141
149
|
export declare const SplitButton: ForwardRefComponent<SplitButtonProps>;
|
142
150
|
|
151
|
+
export declare const splitButtonClassNames: SlotClassNames<SplitButtonSlots>;
|
152
|
+
|
143
153
|
export declare type SplitButtonProps = ComponentProps<SplitButtonSlots> & Omit<ButtonProps, 'root'> & Omit<MenuButtonProps, 'root'>;
|
144
154
|
|
145
155
|
export declare type SplitButtonSlots = {
|
146
156
|
/**
|
147
157
|
* Root of the component that wraps the primary action button and menu button.
|
148
158
|
*/
|
149
|
-
root:
|
159
|
+
root: NonNullable<Slot<'div'>>;
|
150
160
|
/**
|
151
161
|
* Button that opens menu with secondary actions in SplitButton.
|
152
162
|
*/
|
153
|
-
menuButton?:
|
163
|
+
menuButton?: Slot<typeof MenuButton>;
|
154
164
|
/**
|
155
165
|
* Button to perform primary action in SplitButton.
|
156
166
|
*/
|
157
|
-
primaryActionButton?:
|
167
|
+
primaryActionButton?: Slot<typeof Button>;
|
158
168
|
};
|
159
169
|
|
160
170
|
export declare type SplitButtonState = ComponentState<SplitButtonSlots> & Omit<ButtonState, 'components' | 'iconOnly' | 'root'> & Omit<MenuButtonState, 'components' | 'iconOnly' | 'root'>;
|
@@ -164,60 +174,61 @@ export declare type SplitButtonState = ComponentState<SplitButtonSlots> & Omit<B
|
|
164
174
|
*/
|
165
175
|
export declare const ToggleButton: ForwardRefComponent<ToggleButtonProps>;
|
166
176
|
|
167
|
-
export declare
|
177
|
+
export declare const toggleButtonClassNames: SlotClassNames<ButtonSlots>;
|
178
|
+
|
179
|
+
export declare type ToggleButtonProps = ButtonProps & {
|
180
|
+
/**
|
181
|
+
* Defines whether the `ToggleButton` is initially in a checked state or not when rendered.
|
182
|
+
*
|
183
|
+
* @default false
|
184
|
+
*/
|
185
|
+
defaultChecked?: boolean;
|
168
186
|
/**
|
169
187
|
* Defines the controlled checked state of the `ToggleButton`.
|
170
188
|
* If passed, `ToggleButton` ignores the `defaultChecked` property.
|
171
189
|
* This should only be used if the checked state is to be controlled at a higher level and there is a plan to pass the
|
172
190
|
* correct value based on handling `onClick` events and re-rendering.
|
191
|
+
*
|
173
192
|
* @default false
|
174
193
|
*/
|
175
|
-
checked
|
194
|
+
checked?: boolean;
|
176
195
|
};
|
177
196
|
|
178
|
-
export declare type
|
179
|
-
/**
|
180
|
-
* Defines whether the `ToggleButton` is initially in a checked state or not when rendered.
|
181
|
-
* @default false
|
182
|
-
*/
|
183
|
-
defaultChecked?: boolean;
|
184
|
-
};
|
185
|
-
|
186
|
-
export declare type ToggleButtonState = ButtonState & ToggleButtonCommons;
|
197
|
+
export declare type ToggleButtonState = ButtonState & Required<Pick<ToggleButtonProps, 'checked'>>;
|
187
198
|
|
188
199
|
/**
|
189
200
|
* Given user props, defines default props for the Button, calls useButtonState, and returns processed state.
|
190
201
|
* @param props - User provided props to the Button component.
|
191
202
|
* @param ref - User provided ref to be passed to the Button component.
|
192
203
|
*/
|
193
|
-
export declare const
|
204
|
+
export declare const useButton_unstable: (props: ButtonProps, ref: React_2.Ref<HTMLButtonElement | HTMLAnchorElement>) => ButtonState;
|
194
205
|
|
195
|
-
export declare const
|
206
|
+
export declare const useButtonStyles_unstable: (state: ButtonState) => ButtonState;
|
196
207
|
|
197
208
|
/**
|
198
209
|
* Given user props, defines default props for the CompoundButton, calls useButtonState, and returns processed state.
|
199
210
|
* @param props - User provided props to the CompoundButton component.
|
200
211
|
* @param ref - User provided ref to be passed to the CompoundButton component.
|
201
212
|
*/
|
202
|
-
export declare const
|
213
|
+
export declare const useCompoundButton_unstable: ({ contentContainer, secondaryContent, ...props }: CompoundButtonProps, ref: React_2.Ref<HTMLButtonElement | HTMLAnchorElement>) => CompoundButtonState;
|
203
214
|
|
204
|
-
export declare const
|
215
|
+
export declare const useCompoundButtonStyles_unstable: (state: CompoundButtonState) => CompoundButtonState;
|
205
216
|
|
206
217
|
/**
|
207
218
|
* Given user props, returns the final state for a MenuButton.
|
208
219
|
*/
|
209
|
-
export declare const
|
220
|
+
export declare const useMenuButton_unstable: ({ menuIcon, ...props }: MenuButtonProps, ref: React_2.Ref<HTMLButtonElement | HTMLAnchorElement>) => MenuButtonState;
|
210
221
|
|
211
|
-
export declare const
|
222
|
+
export declare const useMenuButtonStyles_unstable: (state: MenuButtonState) => MenuButtonState;
|
212
223
|
|
213
224
|
/**
|
214
225
|
* Given user props, defines default props for the SplitButton and returns processed state.
|
215
226
|
* @param props - User provided props to the SplitButton component.
|
216
227
|
* @param ref - User provided ref to be passed to the SplitButton component.
|
217
228
|
*/
|
218
|
-
export declare const
|
229
|
+
export declare const useSplitButton_unstable: (props: SplitButtonProps, ref: React_2.Ref<HTMLButtonElement | HTMLAnchorElement>) => SplitButtonState;
|
219
230
|
|
220
|
-
export declare const
|
231
|
+
export declare const useSplitButtonStyles_unstable: (state: SplitButtonState) => SplitButtonState;
|
221
232
|
|
222
233
|
/**
|
223
234
|
* Given user props, defines default props for the ToggleButton, calls useButtonState and useChecked, and returns
|
@@ -225,8 +236,10 @@ export declare const useSplitButtonStyles: (state: SplitButtonState) => SplitBut
|
|
225
236
|
* @param props - User provided props to the ToggleButton component.
|
226
237
|
* @param ref - User provided ref to be passed to the ToggleButton component.
|
227
238
|
*/
|
228
|
-
export declare const
|
239
|
+
export declare const useToggleButton_unstable: (props: ToggleButtonProps, ref: React_2.Ref<HTMLButtonElement | HTMLAnchorElement>) => ToggleButtonState;
|
240
|
+
|
241
|
+
export declare const useToggleButtonStyles_unstable: (state: ToggleButtonState) => ToggleButtonState;
|
229
242
|
|
230
|
-
export declare
|
243
|
+
export declare function useToggleState<TToggleButtonProps extends Pick<ToggleButtonProps, 'checked' | 'defaultChecked' | 'disabled' | 'disabledFocusable'>, TButtonState extends Pick<ButtonState, 'root'>, TToggleButtonState extends Pick<ToggleButtonState, 'checked' | 'root'>>(props: TToggleButtonProps, state: TButtonState): TToggleButtonState;
|
231
244
|
|
232
245
|
export { }
|
File without changes
|
package/lib/Button.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Button.js","sourceRoot":"","sources":["
|
1
|
+
{"version":3,"file":"Button.js","sourceRoot":"../src/","sources":["Button.tsx"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC","sourcesContent":["export * from './components/Button/index';\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CompoundButton.js","sourceRoot":"","sources":["
|
1
|
+
{"version":3,"file":"CompoundButton.js","sourceRoot":"../src/","sources":["CompoundButton.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC","sourcesContent":["export * from './components/CompoundButton/index';\n"]}
|
package/lib/MenuButton.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"MenuButton.js","sourceRoot":"","sources":["
|
1
|
+
{"version":3,"file":"MenuButton.js","sourceRoot":"../src/","sources":["MenuButton.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC","sourcesContent":["export * from './components/MenuButton/index';\n"]}
|
package/lib/SplitButton.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SplitButton.js","sourceRoot":"","sources":["
|
1
|
+
{"version":3,"file":"SplitButton.js","sourceRoot":"../src/","sources":["SplitButton.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC","sourcesContent":["export * from './components/SplitButton/index';\n"]}
|
package/lib/ToggleButton.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ToggleButton.js","sourceRoot":"","sources":["
|
1
|
+
{"version":3,"file":"ToggleButton.js","sourceRoot":"../src/","sources":["ToggleButton.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC","sourcesContent":["export * from './components/ToggleButton/index';\n"]}
|
@@ -1,15 +1,15 @@
|
|
1
1
|
import * as React from 'react';
|
2
|
-
import {
|
3
|
-
import {
|
4
|
-
import {
|
2
|
+
import { renderButton_unstable } from './renderButton';
|
3
|
+
import { useButton_unstable } from './useButton';
|
4
|
+
import { useButtonStyles_unstable } from './useButtonStyles';
|
5
5
|
/**
|
6
6
|
* Buttons give people a way to trigger an action.
|
7
7
|
*/
|
8
8
|
|
9
|
-
export
|
10
|
-
|
11
|
-
|
12
|
-
return
|
9
|
+
export const Button = /*#__PURE__*/React.forwardRef((props, ref) => {
|
10
|
+
const state = useButton_unstable(props, ref);
|
11
|
+
useButtonStyles_unstable(state);
|
12
|
+
return renderButton_unstable(state); // Casting is required due to lack of distributive union to support unions on @types/react
|
13
13
|
});
|
14
14
|
Button.displayName = 'Button';
|
15
15
|
//# sourceMappingURL=Button.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["
|
1
|
+
{"version":3,"sources":["components/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,qBAAT,QAAsC,gBAAtC;AACA,SAAS,kBAAT,QAAmC,aAAnC;AACA,SAAS,wBAAT,QAAyC,mBAAzC;AAIA;;AAEG;;AACH,OAAO,MAAM,MAAM,gBAAqC,KAAK,CAAC,UAAN,CAAiB,CAAC,KAAD,EAAQ,GAAR,KAAe;AACtF,QAAM,KAAK,GAAG,kBAAkB,CAAC,KAAD,EAAQ,GAAR,CAAhC;AAEA,EAAA,wBAAwB,CAAC,KAAD,CAAxB;AAEA,SAAO,qBAAqB,CAAC,KAAD,CAA5B,CALsF,CAMtF;AACD,CAPuD,CAAjD;AASP,MAAM,CAAC,WAAP,GAAqB,QAArB","sourcesContent":["import * as React from 'react';\nimport { renderButton_unstable } from './renderButton';\nimport { useButton_unstable } from './useButton';\nimport { useButtonStyles_unstable } from './useButtonStyles';\nimport type { ButtonProps } from './Button.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\n\n/**\n * Buttons give people a way to trigger an action.\n */\nexport const Button: ForwardRefComponent<ButtonProps> = React.forwardRef((props, ref) => {\n const state = useButton_unstable(props, ref);\n\n useButtonStyles_unstable(state);\n\n return renderButton_unstable(state);\n // Casting is required due to lack of distributive union to support unions on @types/react\n}) as ForwardRefComponent<ButtonProps>;\n\nButton.displayName = 'Button';\n"],"sourceRoot":"../src/"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Button.types.js","sourceRoot":"","sources":["
|
1
|
+
{"version":3,"file":"Button.types.js","sourceRoot":"../src/","sources":["components/Button/Button.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ARIAButtonSlotProps } from '@fluentui/react-aria';\nimport type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\n\nexport type ButtonSlots = {\n /**\n * Root of the component that renders as either a `<button>` tag or an `<a>` tag.\n */\n root: NonNullable<Slot<ARIAButtonSlotProps>>;\n\n /**\n * Icon that renders either before or after the `children` as specified by the `iconPosition` prop.\n */\n icon?: Slot<'span'>;\n};\n\nexport type ButtonProps = ComponentProps<ButtonSlots> & {\n /**\n * A button can have its content and borders styled for greater emphasis or to be subtle.\n * - 'secondary' (default): Gives emphasis to the button in such a way that it indicates a secondary action.\n * - 'primary': Emphasizes the button as a primary action.\n * - 'outline': Removes background styling.\n * - 'subtle': Minimizes emphasis to blend into the background until hovered or focused.\n * - 'transparent': Removes background and border styling.\n *\n * @default 'secondary'\n */\n appearance?: 'secondary' | 'primary' | 'outline' | 'subtle' | 'transparent';\n\n /**\n * When set, allows the button to be focusable even when it has been disabled. This is used in scenarios where it\n * is important to keep a consistent tab order for screen reader and keyboard users. The primary example of this\n * pattern is when the disabled button is in a menu or a commandbar and is seldom used for standalone buttons.\n *\n * @default false\n */\n disabledFocusable?: boolean;\n\n /**\n * A button can show that it cannot be interacted with.\n *\n * @default false\n */\n disabled?: boolean;\n\n /**\n * A button can format its icon to appear before or after its content.\n *\n * @default 'before'\n */\n iconPosition?: 'before' | 'after';\n\n /**\n * A button can be rounded, circular, or square.\n *\n * @default 'rounded'\n */\n shape?: 'rounded' | 'circular' | 'square';\n\n /**\n * A button supports different sizes.\n *\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n};\n\nexport type ButtonState = ComponentState<ButtonSlots> &\n Required<Pick<ButtonProps, 'appearance' | 'disabledFocusable' | 'disabled' | 'iconPosition' | 'shape' | 'size'>> & {\n /**\n * A button can contain only an icon.\n *\n * @default false\n */\n iconOnly: boolean;\n };\n"]}
|
@@ -1,6 +1,5 @@
|
|
1
1
|
export * from './Button';
|
2
|
-
export * from './Button.types';
|
3
2
|
export * from './renderButton';
|
4
3
|
export * from './useButton';
|
5
|
-
export {
|
4
|
+
export { buttonClassNames, useButtonStyles_unstable } from './useButtonStyles';
|
6
5
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"../src/","sources":["components/Button/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AAGzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC","sourcesContent":["export * from './Button';\n// Explicit exports to omit ButtonCommons\nexport type { ButtonProps, ButtonSlots, ButtonState } from './Button.types';\nexport * from './renderButton';\nexport * from './useButton';\nexport { buttonClassNames, useButtonStyles_unstable } from './useButtonStyles';\n"]}
|
@@ -1,17 +1,21 @@
|
|
1
|
-
import { __assign } from "tslib";
|
2
1
|
import * as React from 'react';
|
3
2
|
import { getSlots } from '@fluentui/react-utilities';
|
4
3
|
/**
|
5
4
|
* Renders a Button component by passing the state defined props to the appropriate slots.
|
6
5
|
*/
|
7
6
|
|
8
|
-
export
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
7
|
+
export const renderButton_unstable = state => {
|
8
|
+
const {
|
9
|
+
slots,
|
10
|
+
slotProps
|
11
|
+
} = getSlots(state);
|
12
|
+
const {
|
13
|
+
iconOnly,
|
14
|
+
iconPosition
|
15
|
+
} = state;
|
16
|
+
return /*#__PURE__*/React.createElement(slots.root, { ...slotProps.root
|
17
|
+
}, iconPosition !== 'after' && slots.icon && /*#__PURE__*/React.createElement(slots.icon, { ...slotProps.icon
|
18
|
+
}), !iconOnly && state.root.children, iconPosition === 'after' && slots.icon && /*#__PURE__*/React.createElement(slots.icon, { ...slotProps.icon
|
19
|
+
}));
|
16
20
|
};
|
17
21
|
//# sourceMappingURL=renderButton.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["
|
1
|
+
{"version":3,"sources":["components/Button/renderButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,QAAT,QAAyB,2BAAzB;AAGA;;AAEG;;AACH,OAAO,MAAM,qBAAqB,GAAI,KAAD,IAAuB;AAC1D,QAAM;AAAE,IAAA,KAAF;AAAS,IAAA;AAAT,MAAuB,QAAQ,CAAc,KAAd,CAArC;AACA,QAAM;AAAE,IAAA,QAAF;AAAY,IAAA;AAAZ,MAA6B,KAAnC;AAEA,sBACE,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,IAAP,EAAW,EAAA,GAAK,SAAS,CAAC;AAAf,GAAX,EACG,YAAY,KAAK,OAAjB,IAA4B,KAAK,CAAC,IAAlC,iBAA0C,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,IAAP,EAAW,EAAA,GAAK,SAAS,CAAC;AAAf,GAAX,CAD7C,EAEG,CAAC,QAAD,IAAa,KAAK,CAAC,IAAN,CAAW,QAF3B,EAGG,YAAY,KAAK,OAAjB,IAA4B,KAAK,CAAC,IAAlC,iBAA0C,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,IAAP,EAAW,EAAA,GAAK,SAAS,CAAC;AAAf,GAAX,CAH7C,CADF;AAOD,CAXM","sourcesContent":["import * as React from 'react';\nimport { getSlots } from '@fluentui/react-utilities';\nimport type { ButtonSlots, ButtonState } from './Button.types';\n\n/**\n * Renders a Button component by passing the state defined props to the appropriate slots.\n */\nexport const renderButton_unstable = (state: ButtonState) => {\n const { slots, slotProps } = getSlots<ButtonSlots>(state);\n const { iconOnly, iconPosition } = state;\n\n return (\n <slots.root {...slotProps.root}>\n {iconPosition !== 'after' && slots.icon && <slots.icon {...slotProps.icon} />}\n {!iconOnly && state.root.children}\n {iconPosition === 'after' && slots.icon && <slots.icon {...slotProps.icon} />}\n </slots.root>\n );\n};\n"],"sourceRoot":"../src/"}
|
@@ -6,32 +6,26 @@ import { getNativeElementProps, resolveShorthand } from '@fluentui/react-utiliti
|
|
6
6
|
* @param ref - User provided ref to be passed to the Button component.
|
7
7
|
*/
|
8
8
|
|
9
|
-
export
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
_e = props.shape,
|
22
|
-
shape = _e === void 0 ? 'rounded' : _e,
|
23
|
-
_f = props.size,
|
24
|
-
size = _f === void 0 ? 'medium' : _f;
|
25
|
-
var iconShorthand = resolveShorthand(icon);
|
9
|
+
export const useButton_unstable = (props, ref) => {
|
10
|
+
const {
|
11
|
+
appearance = 'secondary',
|
12
|
+
as,
|
13
|
+
disabled = false,
|
14
|
+
disabledFocusable = false,
|
15
|
+
icon,
|
16
|
+
iconPosition = 'before',
|
17
|
+
shape = 'rounded',
|
18
|
+
size = 'medium'
|
19
|
+
} = props;
|
20
|
+
const iconShorthand = resolveShorthand(icon);
|
26
21
|
return {
|
27
22
|
// Props passed at the top-level
|
28
|
-
appearance
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
size: size,
|
23
|
+
appearance,
|
24
|
+
disabled,
|
25
|
+
disabledFocusable,
|
26
|
+
iconPosition,
|
27
|
+
shape,
|
28
|
+
size,
|
35
29
|
// State calculated from a set of props
|
36
30
|
iconOnly: Boolean((iconShorthand === null || iconShorthand === void 0 ? void 0 : iconShorthand.children) && !props.children),
|
37
31
|
// Slots definition
|
@@ -44,7 +38,8 @@ export var useButton = function (props, ref) {
|
|
44
38
|
defaultProps: {
|
45
39
|
// useARIAButton isn't working with React.Ref<HTMLButtonElement | HTMLAnchorElement>
|
46
40
|
ref: ref,
|
47
|
-
type: 'button'
|
41
|
+
type: 'button' // This is added because the default for type is 'submit'
|
42
|
+
|
48
43
|
}
|
49
44
|
})),
|
50
45
|
icon: iconShorthand
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["
|
1
|
+
{"version":3,"sources":["components/Button/useButton.ts"],"names":[],"mappings":"AACA,SAAS,aAAT,QAA8B,sBAA9B;AACA,SAAS,qBAAT,EAAgC,gBAAhC,QAAwD,2BAAxD;AAIA;;;;AAIG;;AACH,OAAO,MAAM,kBAAkB,GAAG,CAChC,KADgC,EAEhC,GAFgC,KAGjB;AACf,QAAM;AACJ,IAAA,UAAU,GAAG,WADT;AAEJ,IAAA,EAFI;AAGJ,IAAA,QAAQ,GAAG,KAHP;AAIJ,IAAA,iBAAiB,GAAG,KAJhB;AAKJ,IAAA,IALI;AAMJ,IAAA,YAAY,GAAG,QANX;AAOJ,IAAA,KAAK,GAAG,SAPJ;AAQJ,IAAA,IAAI,GAAG;AARH,MASF,KATJ;AAUA,QAAM,aAAa,GAAG,gBAAgB,CAAC,IAAD,CAAtC;AAEA,SAAO;AACL;AACA,IAAA,UAFK;AAGL,IAAA,QAHK;AAIL,IAAA,iBAJK;AAKL,IAAA,YALK;AAML,IAAA,KANK;AAOL,IAAA,IAPK;AASL;AACA,IAAA,QAAQ,EAAE,OAAO,CAAC,CAAA,aAAa,KAAA,IAAb,IAAA,aAAa,KAAA,KAAA,CAAb,GAAa,KAAA,CAAb,GAAA,aAAa,CAAE,QAAf,KAA2B,CAAC,KAAK,CAAC,QAAnC,CAVZ;AAYL;AACA,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE,QADI;AAEV,MAAA,IAAI,EAAE;AAFI,KAbP;AAkBL,IAAA,IAAI,EAAE,qBAAqB,CACzB,EAAE,IAAI,QADmB,EAEzB,aAAa,CAAsB,KAAtB,EAA6B;AACxC,MAAA,QAAQ,EAAE,IAD8B;AAExC,MAAA,YAAY,EAAE;AACZ;AACA,QAAA,GAAG,EAAE,GAFO;AAGZ,QAAA,IAAI,EAAE,QAHM,CAGI;;AAHJ;AAF0B,KAA7B,CAFY,CAlBtB;AA6BL,IAAA,IAAI,EAAE;AA7BD,GAAP;AA+BD,CA/CM","sourcesContent":["import * as React from 'react';\nimport { useARIAButton } from '@fluentui/react-aria';\nimport { getNativeElementProps, resolveShorthand } from '@fluentui/react-utilities';\nimport type { ARIAButtonSlotProps } from '@fluentui/react-aria';\nimport type { ButtonProps, ButtonState } from './Button.types';\n\n/**\n * Given user props, defines default props for the Button, calls useButtonState, and returns processed state.\n * @param props - User provided props to the Button component.\n * @param ref - User provided ref to be passed to the Button component.\n */\nexport const useButton_unstable = (\n props: ButtonProps,\n ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>,\n): ButtonState => {\n const {\n appearance = 'secondary',\n as,\n disabled = false,\n disabledFocusable = false,\n icon,\n iconPosition = 'before',\n shape = 'rounded',\n size = 'medium',\n } = props;\n const iconShorthand = resolveShorthand(icon);\n\n return {\n // Props passed at the top-level\n appearance,\n disabled,\n disabledFocusable,\n iconPosition,\n shape,\n size,\n\n // State calculated from a set of props\n iconOnly: Boolean(iconShorthand?.children && !props.children),\n\n // Slots definition\n components: {\n root: 'button',\n icon: 'span',\n },\n\n root: getNativeElementProps(\n as || 'button',\n useARIAButton<ARIAButtonSlotProps>(props, {\n required: true,\n defaultProps: {\n // useARIAButton isn't working with React.Ref<HTMLButtonElement | HTMLAnchorElement>\n ref: ref as React.Ref<HTMLButtonElement>,\n type: 'button', // This is added because the default for type is 'submit'\n },\n }),\n ),\n icon: iconShorthand,\n };\n};\n"],"sourceRoot":"../src/"}
|