@fluentui/react-infobutton 9.0.0-beta.5 → 9.0.0-beta.51
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 +1525 -1
- package/CHANGELOG.md +538 -2
- package/dist/index.d.ts +68 -4
- package/lib/InfoButton.js +0 -1
- package/lib/InfoButton.js.map +1 -1
- package/lib/InfoLabel.js +1 -0
- package/lib/InfoLabel.js.map +1 -0
- package/lib/components/InfoButton/DefaultInfoButtonIcons.js +3 -4
- package/lib/components/InfoButton/DefaultInfoButtonIcons.js.map +1 -1
- package/lib/components/InfoButton/InfoButton.js +5 -7
- package/lib/components/InfoButton/InfoButton.js.map +1 -1
- package/lib/components/InfoButton/InfoButton.types.js +1 -2
- package/lib/components/InfoButton/InfoButton.types.js.map +1 -1
- package/lib/components/InfoButton/index.js +1 -2
- package/lib/components/InfoButton/index.js.map +1 -1
- package/lib/components/InfoButton/renderInfoButton.js +5 -16
- package/lib/components/InfoButton/renderInfoButton.js.map +1 -1
- package/lib/components/InfoButton/useInfoButton.js +49 -51
- package/lib/components/InfoButton/useInfoButton.js.map +1 -1
- package/lib/components/InfoButton/useInfoButtonStyles.styles.js +153 -0
- package/lib/components/InfoButton/useInfoButtonStyles.styles.js.map +1 -0
- package/lib/components/InfoLabel/InfoLabel.js +12 -0
- package/lib/components/InfoLabel/InfoLabel.js.map +1 -0
- package/lib/components/InfoLabel/InfoLabel.types.js +1 -0
- package/lib/components/InfoLabel/InfoLabel.types.js.map +1 -0
- package/lib/components/InfoLabel/index.js +5 -0
- package/lib/components/InfoLabel/index.js.map +1 -0
- package/lib/components/InfoLabel/renderInfoLabel.js +8 -0
- package/lib/components/InfoLabel/renderInfoLabel.js.map +1 -0
- package/lib/components/InfoLabel/useInfoLabel.js +77 -0
- package/lib/components/InfoLabel/useInfoLabel.js.map +1 -0
- package/lib/components/InfoLabel/useInfoLabelStyles.styles.js +43 -0
- package/lib/components/InfoLabel/useInfoLabelStyles.styles.js.map +1 -0
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib-commonjs/InfoButton.js +3 -5
- package/lib-commonjs/InfoButton.js.map +1 -1
- package/lib-commonjs/InfoLabel.js +6 -0
- package/lib-commonjs/InfoLabel.js.map +1 -0
- package/lib-commonjs/components/InfoButton/DefaultInfoButtonIcons.js +16 -8
- package/lib-commonjs/components/InfoButton/DefaultInfoButtonIcons.js.map +1 -1
- package/lib-commonjs/components/InfoButton/InfoButton.js +15 -16
- package/lib-commonjs/components/InfoButton/InfoButton.js.map +1 -1
- package/lib-commonjs/components/InfoButton/InfoButton.types.js +1 -3
- package/lib-commonjs/components/InfoButton/InfoButton.types.js.map +1 -1
- package/lib-commonjs/components/InfoButton/index.js +7 -9
- package/lib-commonjs/components/InfoButton/index.js.map +1 -1
- package/lib-commonjs/components/InfoButton/renderInfoButton.js +12 -24
- package/lib-commonjs/components/InfoButton/renderInfoButton.js.map +1 -1
- package/lib-commonjs/components/InfoButton/useInfoButton.js +58 -66
- package/lib-commonjs/components/InfoButton/useInfoButton.js.map +1 -1
- package/lib-commonjs/components/InfoButton/useInfoButtonStyles.styles.js +340 -0
- package/lib-commonjs/components/InfoButton/useInfoButtonStyles.styles.js.map +1 -0
- package/lib-commonjs/components/InfoLabel/InfoLabel.js +19 -0
- package/lib-commonjs/components/InfoLabel/InfoLabel.js.map +1 -0
- package/lib-commonjs/components/InfoLabel/InfoLabel.types.js +4 -0
- package/lib-commonjs/components/InfoLabel/InfoLabel.types.js.map +1 -0
- package/lib-commonjs/components/InfoLabel/index.js +10 -0
- package/lib-commonjs/components/InfoLabel/index.js.map +1 -0
- package/lib-commonjs/components/InfoLabel/renderInfoLabel.js +14 -0
- package/lib-commonjs/components/InfoLabel/renderInfoLabel.js.map +1 -0
- package/lib-commonjs/components/InfoLabel/useInfoLabel.js +78 -0
- package/lib-commonjs/components/InfoLabel/useInfoLabel.js.map +1 -0
- package/lib-commonjs/components/InfoLabel/useInfoLabelStyles.styles.js +62 -0
- package/lib-commonjs/components/InfoLabel/useInfoLabelStyles.styles.js.map +1 -0
- package/lib-commonjs/index.js +20 -34
- package/lib-commonjs/index.js.map +1 -1
- package/package.json +18 -13
- package/lib/components/InfoButton/useInfoButtonStyles.js +0 -183
- package/lib/components/InfoButton/useInfoButtonStyles.js.map +0 -1
- package/lib-commonjs/components/InfoButton/useInfoButtonStyles.js +0 -190
- package/lib-commonjs/components/InfoButton/useInfoButtonStyles.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import type { ComponentProps } from '@fluentui/react-utilities';
|
|
4
4
|
import type { ComponentState } from '@fluentui/react-utilities';
|
|
5
5
|
import { ForwardRefComponent } from '@fluentui/react-utilities';
|
|
6
|
+
import { Label } from '@fluentui/react-label';
|
|
6
7
|
import type { PopoverProps } from '@fluentui/react-popover';
|
|
7
8
|
import type { PopoverSurface } from '@fluentui/react-popover';
|
|
8
9
|
import * as React_2 from 'react';
|
|
@@ -31,13 +32,13 @@ export declare type InfoButtonProps = Omit<ComponentProps<Partial<InfoButtonSlot
|
|
|
31
32
|
export declare type InfoButtonSlots = {
|
|
32
33
|
root: NonNullable<Slot<'button'>>;
|
|
33
34
|
/**
|
|
34
|
-
* The Popover element that wraps the
|
|
35
|
+
* The Popover element that wraps the info and root slots. Use this slot to pass props to the Popover.
|
|
35
36
|
*/
|
|
36
|
-
popover: NonNullable<Slot<PopoverProps
|
|
37
|
+
popover: NonNullable<Slot<Partial<PopoverProps>>>;
|
|
37
38
|
/**
|
|
38
|
-
* The
|
|
39
|
+
* The information to be displayed in the PopoverSurface when the button is pressed.
|
|
39
40
|
*/
|
|
40
|
-
|
|
41
|
+
info: NonNullable<Slot<typeof PopoverSurface>>;
|
|
41
42
|
};
|
|
42
43
|
|
|
43
44
|
/**
|
|
@@ -45,11 +46,58 @@ export declare type InfoButtonSlots = {
|
|
|
45
46
|
*/
|
|
46
47
|
export declare type InfoButtonState = ComponentState<InfoButtonSlots> & Required<Pick<InfoButtonProps, 'size'>>;
|
|
47
48
|
|
|
49
|
+
/**
|
|
50
|
+
* InfoLabel component
|
|
51
|
+
*/
|
|
52
|
+
export declare const InfoLabel: ForwardRefComponent<InfoLabelProps>;
|
|
53
|
+
|
|
54
|
+
export declare const infoLabelClassNames: SlotClassNames<InfoLabelSlots>;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* InfoLabel Props
|
|
58
|
+
*/
|
|
59
|
+
export declare type InfoLabelProps = ComponentProps<Partial<InfoLabelSlots>, 'label'> & {
|
|
60
|
+
/**
|
|
61
|
+
* The content of the InfoButton's popover.
|
|
62
|
+
*/
|
|
63
|
+
info?: InfoButtonProps['info'];
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
export declare type InfoLabelSlots = {
|
|
67
|
+
root: NonNullable<Slot<'span'>>;
|
|
68
|
+
/**
|
|
69
|
+
* The Label component.
|
|
70
|
+
*
|
|
71
|
+
* It is not typically necessary to use this prop. The label text is the child of the `<InfoLabel>`, and other props
|
|
72
|
+
* such as `size` and `required` should be set directly on the `InfoLabel`.
|
|
73
|
+
*
|
|
74
|
+
* This is the PRIMARY slot: all native properties specified directly on `<InfoLabel>` will be applied to this slot,
|
|
75
|
+
* except `className` and `style`, which remain on the root slot.
|
|
76
|
+
*/
|
|
77
|
+
label: NonNullable<Slot<typeof Label>>;
|
|
78
|
+
/**
|
|
79
|
+
* The InfoButton component.
|
|
80
|
+
*
|
|
81
|
+
* It is not typically necessary to use this prop. The content can be set using the `info` prop of the InfoLabel.
|
|
82
|
+
*/
|
|
83
|
+
infoButton: Slot<typeof InfoButton>;
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* State used in rendering InfoLabel
|
|
88
|
+
*/
|
|
89
|
+
export declare type InfoLabelState = ComponentState<InfoLabelSlots> & Pick<InfoLabelProps, 'size'>;
|
|
90
|
+
|
|
48
91
|
/**
|
|
49
92
|
* Render the final JSX of InfoButton
|
|
50
93
|
*/
|
|
51
94
|
export declare const renderInfoButton_unstable: (state: InfoButtonState) => JSX.Element;
|
|
52
95
|
|
|
96
|
+
/**
|
|
97
|
+
* Render the final JSX of InfoLabel
|
|
98
|
+
*/
|
|
99
|
+
export declare const renderInfoLabel_unstable: (state: InfoLabelState) => JSX.Element;
|
|
100
|
+
|
|
53
101
|
/**
|
|
54
102
|
* Create the state required to render InfoButton.
|
|
55
103
|
*
|
|
@@ -66,4 +114,20 @@ export declare const useInfoButton_unstable: (props: InfoButtonProps, ref: React
|
|
|
66
114
|
*/
|
|
67
115
|
export declare const useInfoButtonStyles_unstable: (state: InfoButtonState) => InfoButtonState;
|
|
68
116
|
|
|
117
|
+
/**
|
|
118
|
+
* Create the state required to render InfoLabel.
|
|
119
|
+
*
|
|
120
|
+
* The returned state can be modified with hooks such as useInfoLabelStyles_unstable,
|
|
121
|
+
* before being passed to renderInfoLabel_unstable.
|
|
122
|
+
*
|
|
123
|
+
* @param props - props from this instance of InfoLabel
|
|
124
|
+
* @param ref - reference to label element of InfoLabel
|
|
125
|
+
*/
|
|
126
|
+
export declare const useInfoLabel_unstable: (props: InfoLabelProps, ref: React_2.Ref<HTMLLabelElement>) => InfoLabelState;
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Apply styling to the InfoLabel slots based on the state
|
|
130
|
+
*/
|
|
131
|
+
export declare const useInfoLabelStyles_unstable: (state: InfoLabelState) => InfoLabelState;
|
|
132
|
+
|
|
69
133
|
export { }
|
package/lib/InfoButton.js
CHANGED
package/lib/InfoButton.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["InfoButton.ts"],"sourcesContent":["export * from './components/InfoButton/index';\n"],"names":[],"mappings":"AAAA,cAAc,gCAAgC"}
|
package/lib/InfoLabel.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './components/InfoLabel/index';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["InfoLabel.ts"],"sourcesContent":["export * from './components/InfoLabel/index';\n"],"names":[],"mappings":"AAAA,cAAc,+BAA+B"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Info12Regular, Info12Filled, Info16Regular, Info16Filled, Info20Regular, Info20Filled, bundleIcon } from '@fluentui/react-icons';
|
|
2
|
-
export const DefaultInfoButtonIcon12 =
|
|
3
|
-
export const DefaultInfoButtonIcon16 =
|
|
4
|
-
export const DefaultInfoButtonIcon20 =
|
|
5
|
-
//# sourceMappingURL=DefaultInfoButtonIcons.js.map
|
|
2
|
+
export const DefaultInfoButtonIcon12 = bundleIcon(Info12Filled, Info12Regular);
|
|
3
|
+
export const DefaultInfoButtonIcon16 = bundleIcon(Info16Filled, Info16Regular);
|
|
4
|
+
export const DefaultInfoButtonIcon20 = bundleIcon(Info20Filled, Info20Regular);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["DefaultInfoButtonIcons.tsx"],"sourcesContent":["import {\n Info12Regular,\n Info12Filled,\n Info16Regular,\n Info16Filled,\n Info20Regular,\n Info20Filled,\n bundleIcon,\n} from '@fluentui/react-icons';\n\nexport const DefaultInfoButtonIcon12 = bundleIcon(Info12Filled, Info12Regular);\nexport const DefaultInfoButtonIcon16 = bundleIcon(Info16Filled, Info16Regular);\nexport const DefaultInfoButtonIcon20 = bundleIcon(Info20Filled, Info20Regular);\n"],"names":["Info12Regular","Info12Filled","Info16Regular","Info16Filled","Info20Regular","Info20Filled","bundleIcon","DefaultInfoButtonIcon12","DefaultInfoButtonIcon16","DefaultInfoButtonIcon20"],"mappings":"AAAA,SACEA,aAAa,EACbC,YAAY,EACZC,aAAa,EACbC,YAAY,EACZC,aAAa,EACbC,YAAY,EACZC,UAAU,QACL,wBAAwB;AAE/B,OAAO,MAAMC,0BAA0BD,WAAWL,cAAcD,eAAe;AAC/E,OAAO,MAAMQ,0BAA0BF,WAAWH,cAAcD,eAAe;AAC/E,OAAO,MAAMO,0BAA0BH,WAAWD,cAAcD,eAAe"}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { renderInfoButton_unstable } from './renderInfoButton';
|
|
3
3
|
import { useInfoButton_unstable } from './useInfoButton';
|
|
4
|
-
import { useInfoButtonStyles_unstable } from './useInfoButtonStyles';
|
|
4
|
+
import { useInfoButtonStyles_unstable } from './useInfoButtonStyles.styles';
|
|
5
5
|
/**
|
|
6
6
|
* InfoButtons provide a way to display additional information about a form field or an area in the UI.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
return renderInfoButton_unstable(state);
|
|
7
|
+
*/ export const InfoButton = /*#__PURE__*/ React.forwardRef((props, ref)=>{
|
|
8
|
+
const state = useInfoButton_unstable(props, ref);
|
|
9
|
+
useInfoButtonStyles_unstable(state);
|
|
10
|
+
return renderInfoButton_unstable(state);
|
|
12
11
|
});
|
|
13
12
|
InfoButton.displayName = 'InfoButton';
|
|
14
|
-
//# sourceMappingURL=InfoButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["InfoButton.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { renderInfoButton_unstable } from './renderInfoButton';\nimport { useInfoButton_unstable } from './useInfoButton';\nimport { useInfoButtonStyles_unstable } from './useInfoButtonStyles.styles';\nimport type { InfoButtonProps } from './InfoButton.types';\n\n/**\n * InfoButtons provide a way to display additional information about a form field or an area in the UI.\n */\nexport const InfoButton: ForwardRefComponent<InfoButtonProps> = React.forwardRef((props, ref) => {\n const state = useInfoButton_unstable(props, ref);\n\n useInfoButtonStyles_unstable(state);\n return renderInfoButton_unstable(state);\n});\n\nInfoButton.displayName = 'InfoButton';\n"],"names":["React","renderInfoButton_unstable","useInfoButton_unstable","useInfoButtonStyles_unstable","InfoButton","forwardRef","props","ref","state","displayName"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAE/B,SAASC,yBAAyB,QAAQ,qBAAqB;AAC/D,SAASC,sBAAsB,QAAQ,kBAAkB;AACzD,SAASC,4BAA4B,QAAQ,+BAA+B;AAG5E;;CAEC,GACD,OAAO,MAAMC,2BAAmDJ,MAAMK,UAAU,CAAC,CAACC,OAAOC,MAAQ;IAC/F,MAAMC,QAAQN,uBAAuBI,OAAOC;IAE5CJ,6BAA6BK;IAC7B,OAAOP,0BAA0BO;AACnC,GAAG;AAEHJ,WAAWK,WAAW,GAAG"}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=InfoButton.types.js.map
|
|
1
|
+
export { };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["InfoButton.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\nimport type { PopoverProps, PopoverSurface } from '@fluentui/react-popover';\n\nexport type InfoButtonSlots = {\n root: NonNullable<Slot<'button'>>;\n\n /**\n * The Popover element that wraps the info and root slots. Use this slot to pass props to the Popover.\n */\n popover: NonNullable<Slot<Partial<PopoverProps>>>;\n\n /**\n * The information to be displayed in the PopoverSurface when the button is pressed.\n */\n info: NonNullable<Slot<typeof PopoverSurface>>;\n};\n\n/**\n * InfoButton Props\n */\nexport type InfoButtonProps = Omit<ComponentProps<Partial<InfoButtonSlots>>, 'disabled'> & {\n /**\n * Size of the InfoButton.\n *\n * @default medium\n */\n size?: 'small' | 'medium' | 'large';\n};\n\n/**\n * State used in rendering InfoButton\n */\nexport type InfoButtonState = ComponentState<InfoButtonSlots> & Required<Pick<InfoButtonProps, 'size'>>;\n"],"names":[],"mappings":"AAAA,WAgCwG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["index.ts"],"sourcesContent":["export * from './InfoButton';\nexport * from './InfoButton.types';\nexport * from './renderInfoButton';\nexport * from './useInfoButton';\nexport * from './useInfoButtonStyles.styles';\n"],"names":[],"mappings":"AAAA,cAAc,eAAe;AAC7B,cAAc,qBAAqB;AACnC,cAAc,qBAAqB;AACnC,cAAc,kBAAkB;AAChC,cAAc,+BAA+B"}
|
|
@@ -1,20 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
/** @jsxRuntime classic */ /** @jsx createElement */ import { createElement } from '@fluentui/react-jsx-runtime';
|
|
2
|
+
import { assertSlots } from '@fluentui/react-utilities';
|
|
3
3
|
import { PopoverTrigger } from '@fluentui/react-popover';
|
|
4
4
|
/**
|
|
5
5
|
* Render the final JSX of InfoButton
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
slots,
|
|
10
|
-
slotProps
|
|
11
|
-
} = getSlots(state);
|
|
12
|
-
return /*#__PURE__*/React.createElement(slots.popover, {
|
|
13
|
-
...slotProps.popover
|
|
14
|
-
}, /*#__PURE__*/React.createElement(PopoverTrigger, null, /*#__PURE__*/React.createElement(slots.root, {
|
|
15
|
-
...slotProps.root
|
|
16
|
-
})), /*#__PURE__*/React.createElement(slots.content, {
|
|
17
|
-
...slotProps.content
|
|
18
|
-
}));
|
|
6
|
+
*/ export const renderInfoButton_unstable = (state)=>{
|
|
7
|
+
assertSlots(state);
|
|
8
|
+
return /*#__PURE__*/ createElement(state.popover, null, /*#__PURE__*/ createElement(PopoverTrigger, null, /*#__PURE__*/ createElement(state.root, null)), /*#__PURE__*/ createElement(state.info, null));
|
|
19
9
|
};
|
|
20
|
-
//# sourceMappingURL=renderInfoButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["renderInfoButton.tsx"],"sourcesContent":["/** @jsxRuntime classic */\n/** @jsx createElement */\n\nimport { createElement } from '@fluentui/react-jsx-runtime';\n\nimport { assertSlots } from '@fluentui/react-utilities';\nimport { PopoverTrigger } from '@fluentui/react-popover';\nimport type { InfoButtonState, InfoButtonSlots } from './InfoButton.types';\n\n/**\n * Render the final JSX of InfoButton\n */\nexport const renderInfoButton_unstable = (state: InfoButtonState) => {\n assertSlots<InfoButtonSlots>(state);\n\n return (\n <state.popover>\n <PopoverTrigger>\n <state.root />\n </PopoverTrigger>\n <state.info />\n </state.popover>\n );\n};\n"],"names":["createElement","assertSlots","PopoverTrigger","renderInfoButton_unstable","state","popover","root","info"],"mappings":"AAAA,wBAAwB,GACxB,uBAAuB,GAEvB,SAASA,aAAa,QAAQ,8BAA8B;AAE5D,SAASC,WAAW,QAAQ,4BAA4B;AACxD,SAASC,cAAc,QAAQ,0BAA0B;AAGzD;;CAEC,GACD,OAAO,MAAMC,4BAA4B,CAACC,QAA2B;IACnEH,YAA6BG;IAE7B,qBACE,AAfJ,cAeKA,MAAMC,OAAO,sBACZ,AAhBN,cAgBOH,oCACC,AAjBR,cAiBSE,MAAME,IAAI,wBAEb,AAnBN,cAmBOF,MAAMG,IAAI;AAGjB,EAAE"}
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { DefaultInfoButtonIcon12, DefaultInfoButtonIcon16, DefaultInfoButtonIcon20 } from './DefaultInfoButtonIcons';
|
|
3
|
-
import { getNativeElementProps, mergeCallbacks,
|
|
3
|
+
import { getNativeElementProps, mergeCallbacks, useControllableState, slot } from '@fluentui/react-utilities';
|
|
4
4
|
import { Popover, PopoverSurface } from '@fluentui/react-popover';
|
|
5
|
-
import { useControllableState } from '@fluentui/react-utilities';
|
|
6
5
|
const infoButtonIconMap = {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
small: /*#__PURE__*/ React.createElement(DefaultInfoButtonIcon12, null),
|
|
7
|
+
medium: /*#__PURE__*/ React.createElement(DefaultInfoButtonIcon16, null),
|
|
8
|
+
large: /*#__PURE__*/ React.createElement(DefaultInfoButtonIcon20, null)
|
|
10
9
|
};
|
|
11
10
|
const popoverSizeMap = {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
small: 'small',
|
|
12
|
+
medium: 'small',
|
|
13
|
+
large: 'medium'
|
|
15
14
|
};
|
|
16
15
|
/**
|
|
17
16
|
* Create the state required to render InfoButton.
|
|
@@ -21,47 +20,46 @@ const popoverSizeMap = {
|
|
|
21
20
|
*
|
|
22
21
|
* @param props - props from this instance of InfoButton
|
|
23
22
|
* @param ref - reference to root HTMLElement of InfoButton
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
23
|
+
*/ export const useInfoButton_unstable = (props, ref)=>{
|
|
24
|
+
const { size ='medium' } = props;
|
|
25
|
+
const state = {
|
|
26
|
+
size,
|
|
27
|
+
components: {
|
|
28
|
+
root: 'button',
|
|
29
|
+
popover: Popover,
|
|
30
|
+
info: PopoverSurface
|
|
31
|
+
},
|
|
32
|
+
root: slot.always(getNativeElementProps('button', {
|
|
33
|
+
children: infoButtonIconMap[size],
|
|
34
|
+
type: 'button',
|
|
35
|
+
'aria-label': 'information',
|
|
36
|
+
...props,
|
|
37
|
+
ref
|
|
38
|
+
}), {
|
|
39
|
+
elementType: 'button'
|
|
40
|
+
}),
|
|
41
|
+
popover: slot.always(props.popover, {
|
|
42
|
+
defaultProps: {
|
|
43
|
+
positioning: 'above-start',
|
|
44
|
+
size: popoverSizeMap[size],
|
|
45
|
+
withArrow: true
|
|
46
|
+
},
|
|
47
|
+
elementType: Popover
|
|
48
|
+
}),
|
|
49
|
+
info: slot.always(props.info, {
|
|
50
|
+
defaultProps: {
|
|
51
|
+
role: 'note',
|
|
52
|
+
tabIndex: -1
|
|
53
|
+
},
|
|
54
|
+
elementType: PopoverSurface
|
|
55
|
+
})
|
|
56
|
+
};
|
|
57
|
+
const [popoverOpen, setPopoverOpen] = useControllableState({
|
|
58
|
+
state: state.popover.open,
|
|
59
|
+
defaultState: state.popover.defaultOpen,
|
|
60
|
+
initialState: false
|
|
61
|
+
});
|
|
62
|
+
state.popover.open = popoverOpen;
|
|
63
|
+
state.popover.onOpenChange = mergeCallbacks(state.popover.onOpenChange, (e, data)=>setPopoverOpen(data.open));
|
|
64
|
+
return state;
|
|
66
65
|
};
|
|
67
|
-
//# sourceMappingURL=useInfoButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["useInfoButton.tsx"],"sourcesContent":["import * as React from 'react';\nimport { DefaultInfoButtonIcon12, DefaultInfoButtonIcon16, DefaultInfoButtonIcon20 } from './DefaultInfoButtonIcons';\nimport { getNativeElementProps, mergeCallbacks, useControllableState, slot } from '@fluentui/react-utilities';\nimport { Popover, PopoverSurface } from '@fluentui/react-popover';\nimport type { InfoButtonProps, InfoButtonState } from './InfoButton.types';\nimport type { PopoverProps } from '@fluentui/react-popover';\n\nconst infoButtonIconMap = {\n small: <DefaultInfoButtonIcon12 />,\n medium: <DefaultInfoButtonIcon16 />,\n large: <DefaultInfoButtonIcon20 />,\n} as const;\n\nconst popoverSizeMap = {\n small: 'small',\n medium: 'small',\n large: 'medium',\n} as const;\n\n/**\n * Create the state required to render InfoButton.\n *\n * The returned state can be modified with hooks such as useInfoButtonStyles_unstable,\n * before being passed to renderInfoButton_unstable.\n *\n * @param props - props from this instance of InfoButton\n * @param ref - reference to root HTMLElement of InfoButton\n */\nexport const useInfoButton_unstable = (props: InfoButtonProps, ref: React.Ref<HTMLElement>): InfoButtonState => {\n const { size = 'medium' } = props;\n\n const state: InfoButtonState = {\n size,\n\n components: {\n root: 'button',\n popover: Popover as React.FC<Partial<PopoverProps>>,\n info: PopoverSurface,\n },\n\n root: slot.always(\n getNativeElementProps('button', {\n children: infoButtonIconMap[size],\n type: 'button',\n 'aria-label': 'information',\n ...props,\n ref,\n }),\n { elementType: 'button' },\n ),\n popover: slot.always(props.popover, {\n defaultProps: {\n positioning: 'above-start',\n size: popoverSizeMap[size],\n withArrow: true,\n },\n elementType: Popover as React.FC<Partial<PopoverProps>>,\n }),\n info: slot.always(props.info, {\n defaultProps: {\n role: 'note',\n tabIndex: -1,\n },\n elementType: PopoverSurface,\n }),\n };\n\n const [popoverOpen, setPopoverOpen] = useControllableState({\n state: state.popover.open,\n defaultState: state.popover.defaultOpen,\n initialState: false,\n });\n\n state.popover.open = popoverOpen;\n state.popover.onOpenChange = mergeCallbacks(state.popover.onOpenChange, (e, data) => setPopoverOpen(data.open));\n\n return state;\n};\n"],"names":["React","DefaultInfoButtonIcon12","DefaultInfoButtonIcon16","DefaultInfoButtonIcon20","getNativeElementProps","mergeCallbacks","useControllableState","slot","Popover","PopoverSurface","infoButtonIconMap","small","medium","large","popoverSizeMap","useInfoButton_unstable","props","ref","size","state","components","root","popover","info","always","children","type","elementType","defaultProps","positioning","withArrow","role","tabIndex","popoverOpen","setPopoverOpen","open","defaultState","defaultOpen","initialState","onOpenChange","e","data"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,uBAAuB,EAAEC,uBAAuB,EAAEC,uBAAuB,QAAQ,2BAA2B;AACrH,SAASC,qBAAqB,EAAEC,cAAc,EAAEC,oBAAoB,EAAEC,IAAI,QAAQ,4BAA4B;AAC9G,SAASC,OAAO,EAAEC,cAAc,QAAQ,0BAA0B;AAIlE,MAAMC,oBAAoB;IACxBC,qBAAO,oBAACV;IACRW,sBAAQ,oBAACV;IACTW,qBAAO,oBAACV;AACV;AAEA,MAAMW,iBAAiB;IACrBH,OAAO;IACPC,QAAQ;IACRC,OAAO;AACT;AAEA;;;;;;;;CAQC,GACD,OAAO,MAAME,yBAAyB,CAACC,OAAwBC,MAAiD;IAC9G,MAAM,EAAEC,MAAO,SAAQ,EAAE,GAAGF;IAE5B,MAAMG,QAAyB;QAC7BD;QAEAE,YAAY;YACVC,MAAM;YACNC,SAASd;YACTe,MAAMd;QACR;QAEAY,MAAMd,KAAKiB,MAAM,CACfpB,sBAAsB,UAAU;YAC9BqB,UAAUf,iBAAiB,CAACQ,KAAK;YACjCQ,MAAM;YACN,cAAc;YACd,GAAGV,KAAK;YACRC;QACF,IACA;YAAEU,aAAa;QAAS;QAE1BL,SAASf,KAAKiB,MAAM,CAACR,MAAMM,OAAO,EAAE;YAClCM,cAAc;gBACZC,aAAa;gBACbX,MAAMJ,cAAc,CAACI,KAAK;gBAC1BY,WAAW,IAAI;YACjB;YACAH,aAAanB;QACf;QACAe,MAAMhB,KAAKiB,MAAM,CAACR,MAAMO,IAAI,EAAE;YAC5BK,cAAc;gBACZG,MAAM;gBACNC,UAAU,CAAC;YACb;YACAL,aAAalB;QACf;IACF;IAEA,MAAM,CAACwB,aAAaC,eAAe,GAAG5B,qBAAqB;QACzDa,OAAOA,MAAMG,OAAO,CAACa,IAAI;QACzBC,cAAcjB,MAAMG,OAAO,CAACe,WAAW;QACvCC,cAAc,KAAK;IACrB;IAEAnB,MAAMG,OAAO,CAACa,IAAI,GAAGF;IACrBd,MAAMG,OAAO,CAACiB,YAAY,GAAGlC,eAAec,MAAMG,OAAO,CAACiB,YAAY,EAAE,CAACC,GAAGC,OAASP,eAAeO,KAAKN,IAAI;IAE7G,OAAOhB;AACT,EAAE"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { createFocusOutlineStyle } from '@fluentui/react-tabster';
|
|
2
|
+
import { iconFilledClassName, iconRegularClassName } from '@fluentui/react-icons';
|
|
3
|
+
import { __styles, mergeClasses, shorthands } from '@griffel/react';
|
|
4
|
+
import { tokens, typographyStyles } from '@fluentui/react-theme';
|
|
5
|
+
export const infoButtonClassNames = {
|
|
6
|
+
root: 'fui-InfoButton',
|
|
7
|
+
// this className won't be used, but it's needed to satisfy the type checker
|
|
8
|
+
popover: 'fui-InfoButton__popover',
|
|
9
|
+
info: 'fui-InfoButton__info'
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Styles for the root slot
|
|
13
|
+
*/
|
|
14
|
+
const useButtonStyles = /*#__PURE__*/__styles({
|
|
15
|
+
base: {
|
|
16
|
+
Bt984gj: "f122n59",
|
|
17
|
+
B7ck84d: "f1ewtqcl",
|
|
18
|
+
mc9l5x: "ftuwxu6",
|
|
19
|
+
Brf1p80: "f4d9j23",
|
|
20
|
+
w71qe1: "f1iuv45f",
|
|
21
|
+
ha4doy: "fmrv4ls",
|
|
22
|
+
qhf8xq: "f10pi13n",
|
|
23
|
+
De3pzq: "f1c21dwh",
|
|
24
|
+
sj55zd: "fkfq4zb",
|
|
25
|
+
icvyot: "f1ern45e",
|
|
26
|
+
vrafjx: ["f1n71otn", "f1deefiw"],
|
|
27
|
+
oivjwe: "f1h8hb77",
|
|
28
|
+
wvpqe5: ["f1deefiw", "f1n71otn"],
|
|
29
|
+
Bbmb7ep: ["f1aa9q02", "f16jpd5f"],
|
|
30
|
+
Beyfa6y: ["f16jpd5f", "f1aa9q02"],
|
|
31
|
+
B7oj6ja: ["f1jar5jt", "fyu767a"],
|
|
32
|
+
Btl43ni: ["fyu767a", "f1jar5jt"],
|
|
33
|
+
B6of3ja: "f1hu3pq6",
|
|
34
|
+
t21cq0: ["f11qmguv", "f1tyq0we"],
|
|
35
|
+
jrapky: "f19f4twv",
|
|
36
|
+
Frg6f3: ["f1tyq0we", "f11qmguv"],
|
|
37
|
+
z8tnut: "f1ywm7hm",
|
|
38
|
+
z189sj: ["f7x41pl", "fruq291"],
|
|
39
|
+
Byoj8tv: "f14wxoun",
|
|
40
|
+
uwmqm3: ["fruq291", "f7x41pl"],
|
|
41
|
+
D0sxk3: "f16u1re",
|
|
42
|
+
t6yez3: "f1rw4040",
|
|
43
|
+
Jwef8y: "fjxutwb",
|
|
44
|
+
Bi91k9c: "f139oj5f",
|
|
45
|
+
Bk3fhr4: "f1jpd6y0",
|
|
46
|
+
Bmfj8id: "fuxngvv",
|
|
47
|
+
iro3zm: "fwiml72",
|
|
48
|
+
B2d53fq: "f1fg1p5m"
|
|
49
|
+
},
|
|
50
|
+
selected: {
|
|
51
|
+
De3pzq: "f1q9pm1r",
|
|
52
|
+
sj55zd: "f1qj7y59",
|
|
53
|
+
D0sxk3: "fgzdkf0",
|
|
54
|
+
t6yez3: "f15q0o9g",
|
|
55
|
+
Bsw6fvg: "f1rirnrt",
|
|
56
|
+
Bbusuzp: "f1cg6951"
|
|
57
|
+
},
|
|
58
|
+
highContrast: {
|
|
59
|
+
Bbusuzp: "fn0tkbb",
|
|
60
|
+
Bs6v0vm: "f1rp3av6",
|
|
61
|
+
B46dtvo: "f1u7gwqv",
|
|
62
|
+
gh1jta: "fl6kagl"
|
|
63
|
+
},
|
|
64
|
+
focusIndicator: {
|
|
65
|
+
Brovlpu: "ftqa4ok",
|
|
66
|
+
B486eqv: "f2hkw1w",
|
|
67
|
+
B8q5s1w: "f8hki3x",
|
|
68
|
+
Bci5o5g: ["f1d2448m", "ffh67wi"],
|
|
69
|
+
n8qw10: "f1bjia2o",
|
|
70
|
+
Bdrgwmp: ["ffh67wi", "f1d2448m"],
|
|
71
|
+
Bm4h7ae: "f15bsgw9",
|
|
72
|
+
B7ys5i9: "f14e48fq",
|
|
73
|
+
Busjfv9: "f18yb2kv",
|
|
74
|
+
Bhk32uz: "fd6o370",
|
|
75
|
+
Bf4ptjt: "fh1cnn4",
|
|
76
|
+
kclons: ["fy7oxxb", "f184ne2d"],
|
|
77
|
+
Bhdgwq3: "fpukqih",
|
|
78
|
+
Blkhhs4: ["f184ne2d", "fy7oxxb"],
|
|
79
|
+
Bqtpl0w: "frrh606",
|
|
80
|
+
clg4pj: ["f1v5zibi", "fo2hd23"],
|
|
81
|
+
hgwjuy: "ful5kiu",
|
|
82
|
+
Bonggc9: ["fo2hd23", "f1v5zibi"],
|
|
83
|
+
B1tsrr9: ["f1jqcqds", "ftffrms"],
|
|
84
|
+
Dah5zi: ["ftffrms", "f1jqcqds"],
|
|
85
|
+
Bkh64rk: ["f2e7qr6", "fsr1zz6"],
|
|
86
|
+
qqdqy8: ["fsr1zz6", "f2e7qr6"],
|
|
87
|
+
B6dhp37: "f1dvezut",
|
|
88
|
+
i03rao: ["fd0oaoj", "f1cwg4i8"],
|
|
89
|
+
Boxcth7: "fjvm52t",
|
|
90
|
+
Bsom6fd: ["f1cwg4i8", "fd0oaoj"],
|
|
91
|
+
J0r882: "f57olzd",
|
|
92
|
+
Bule8hv: ["f4stah7", "fs1por5"],
|
|
93
|
+
Bjwuhne: "f480a47",
|
|
94
|
+
Ghsupd: ["fs1por5", "f4stah7"]
|
|
95
|
+
},
|
|
96
|
+
large: {
|
|
97
|
+
z8tnut: "fclwglc",
|
|
98
|
+
z189sj: ["f1w3695s", "f1b0r8ql"],
|
|
99
|
+
Byoj8tv: "fywfov9",
|
|
100
|
+
uwmqm3: ["f1b0r8ql", "f1w3695s"]
|
|
101
|
+
}
|
|
102
|
+
}, {
|
|
103
|
+
d: [".f122n59{align-items:center;}", ".f1ewtqcl{box-sizing:border-box;}", ".ftuwxu6{display:inline-flex;}", ".f4d9j23{justify-content:center;}", ".f1iuv45f{text-decoration-line:none;}", ".fmrv4ls{vertical-align:middle;}", ".f10pi13n{position:relative;}", ".f1c21dwh{background-color:var(--colorTransparentBackground);}", ".fkfq4zb{color:var(--colorNeutralForeground2);}", ".f1ern45e{border-top-style:none;}", ".f1n71otn{border-right-style:none;}", ".f1deefiw{border-left-style:none;}", ".f1h8hb77{border-bottom-style:none;}", ".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}", ".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}", ".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}", ".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}", ".f1hu3pq6{margin-top:0;}", ".f11qmguv{margin-right:0;}", ".f1tyq0we{margin-left:0;}", ".f19f4twv{margin-bottom:0;}", ".f1ywm7hm{padding-top:var(--spacingVerticalXS);}", ".f7x41pl{padding-right:var(--spacingHorizontalXS);}", ".fruq291{padding-left:var(--spacingHorizontalXS);}", ".f14wxoun{padding-bottom:var(--spacingVerticalXS);}", ".f16u1re .fui-Icon-filled{display:none;}", ".f1rw4040 .fui-Icon-regular{display:inline-flex;}", ".f1q9pm1r{background-color:var(--colorTransparentBackgroundSelected);}", ".f1qj7y59{color:var(--colorNeutralForeground2BrandSelected);}", ".fgzdkf0 .fui-Icon-filled{display:inline-flex;}", ".f15q0o9g .fui-Icon-regular{display:none;}", ".f8hki3x[data-fui-focus-visible]{border-top-color:transparent;}", ".f1d2448m[data-fui-focus-visible]{border-right-color:transparent;}", ".ffh67wi[data-fui-focus-visible]{border-left-color:transparent;}", ".f1bjia2o[data-fui-focus-visible]{border-bottom-color:transparent;}", ".f15bsgw9[data-fui-focus-visible]::after{content:\"\";}", ".f14e48fq[data-fui-focus-visible]::after{position:absolute;}", ".f18yb2kv[data-fui-focus-visible]::after{pointer-events:none;}", ".fd6o370[data-fui-focus-visible]::after{z-index:1;}", ".fh1cnn4[data-fui-focus-visible]::after{border-top-style:solid;}", ".fy7oxxb[data-fui-focus-visible]::after{border-right-style:solid;}", ".f184ne2d[data-fui-focus-visible]::after{border-left-style:solid;}", ".fpukqih[data-fui-focus-visible]::after{border-bottom-style:solid;}", ".frrh606[data-fui-focus-visible]::after{border-top-width:2px;}", ".f1v5zibi[data-fui-focus-visible]::after{border-right-width:2px;}", ".fo2hd23[data-fui-focus-visible]::after{border-left-width:2px;}", ".ful5kiu[data-fui-focus-visible]::after{border-bottom-width:2px;}", ".f1jqcqds[data-fui-focus-visible]::after{border-bottom-right-radius:var(--borderRadiusMedium);}", ".ftffrms[data-fui-focus-visible]::after{border-bottom-left-radius:var(--borderRadiusMedium);}", ".f2e7qr6[data-fui-focus-visible]::after{border-top-right-radius:var(--borderRadiusMedium);}", ".fsr1zz6[data-fui-focus-visible]::after{border-top-left-radius:var(--borderRadiusMedium);}", ".f1dvezut[data-fui-focus-visible]::after{border-top-color:var(--colorStrokeFocus2);}", ".fd0oaoj[data-fui-focus-visible]::after{border-right-color:var(--colorStrokeFocus2);}", ".f1cwg4i8[data-fui-focus-visible]::after{border-left-color:var(--colorStrokeFocus2);}", ".fjvm52t[data-fui-focus-visible]::after{border-bottom-color:var(--colorStrokeFocus2);}", ".f57olzd[data-fui-focus-visible]::after{top:calc(2px * -1);}", ".f4stah7[data-fui-focus-visible]::after{right:calc(2px * -1);}", ".fs1por5[data-fui-focus-visible]::after{left:calc(2px * -1);}", ".f480a47[data-fui-focus-visible]::after{bottom:calc(2px * -1);}", ".fclwglc{padding-top:var(--spacingVerticalXXS);}", ".f1w3695s{padding-right:var(--spacingVerticalXXS);}", ".f1b0r8ql{padding-left:var(--spacingVerticalXXS);}", ".fywfov9{padding-bottom:var(--spacingVerticalXXS);}"],
|
|
104
|
+
h: [".fjxutwb:hover{background-color:var(--colorTransparentBackgroundHover);}", ".f139oj5f:hover{color:var(--colorNeutralForeground2BrandHover);}", ".f1jpd6y0:hover .fui-Icon-filled{display:inline-flex;}", ".fuxngvv:hover .fui-Icon-regular{display:none;}", ".fwiml72:hover:active{background-color:var(--colorTransparentBackgroundPressed);}", ".f1fg1p5m:hover:active{color:var(--colorNeutralForeground2BrandPressed);}"],
|
|
105
|
+
m: [["@media (forced-colors: active){.f1rirnrt{background-color:Highlight;}}", {
|
|
106
|
+
m: "(forced-colors: active)"
|
|
107
|
+
}], ["@media (forced-colors: active){.f1cg6951{color:Canvas;}}", {
|
|
108
|
+
m: "(forced-colors: active)"
|
|
109
|
+
}], ["@media (forced-colors: active){.fn0tkbb{color:CanvasText;}}", {
|
|
110
|
+
m: "(forced-colors: active)"
|
|
111
|
+
}], ["@media (forced-colors: active){.f1rp3av6:hover,.f1rp3av6:hover:active{forced-color-adjust:none;}}", {
|
|
112
|
+
m: "(forced-colors: active)"
|
|
113
|
+
}], ["@media (forced-colors: active){.f1u7gwqv:hover,.f1u7gwqv:hover:active{background-color:Highlight;}}", {
|
|
114
|
+
m: "(forced-colors: active)"
|
|
115
|
+
}], ["@media (forced-colors: active){.fl6kagl:hover,.fl6kagl:hover:active{color:Canvas;}}", {
|
|
116
|
+
m: "(forced-colors: active)"
|
|
117
|
+
}]],
|
|
118
|
+
f: [".ftqa4ok:focus{outline-style:none;}"],
|
|
119
|
+
i: [".f2hkw1w:focus-visible{outline-style:none;}"]
|
|
120
|
+
});
|
|
121
|
+
const usePopoverSurfaceStyles = /*#__PURE__*/__styles({
|
|
122
|
+
smallMedium: {
|
|
123
|
+
Bahqtrf: "fk6fouc",
|
|
124
|
+
Be2twd7: "fy9rknc",
|
|
125
|
+
Bhrd7zp: "figsok6",
|
|
126
|
+
Bg96gwp: "fwrc4pm"
|
|
127
|
+
},
|
|
128
|
+
large: {
|
|
129
|
+
Bahqtrf: "fk6fouc",
|
|
130
|
+
Be2twd7: "fkhj508",
|
|
131
|
+
Bhrd7zp: "figsok6",
|
|
132
|
+
Bg96gwp: "f1i3iumi"
|
|
133
|
+
}
|
|
134
|
+
}, {
|
|
135
|
+
d: [".fk6fouc{font-family:var(--fontFamilyBase);}", ".fy9rknc{font-size:var(--fontSizeBase200);}", ".figsok6{font-weight:var(--fontWeightRegular);}", ".fwrc4pm{line-height:var(--lineHeightBase200);}", ".fkhj508{font-size:var(--fontSizeBase300);}", ".f1i3iumi{line-height:var(--lineHeightBase300);}"]
|
|
136
|
+
});
|
|
137
|
+
/**
|
|
138
|
+
* Apply styling to the InfoButton slots based on the state
|
|
139
|
+
*/
|
|
140
|
+
export const useInfoButtonStyles_unstable = state => {
|
|
141
|
+
const {
|
|
142
|
+
size
|
|
143
|
+
} = state;
|
|
144
|
+
const {
|
|
145
|
+
open
|
|
146
|
+
} = state.popover;
|
|
147
|
+
const buttonStyles = useButtonStyles();
|
|
148
|
+
const popoverSurfaceStyles = usePopoverSurfaceStyles();
|
|
149
|
+
state.info.className = mergeClasses(infoButtonClassNames.info, size === 'large' && popoverSurfaceStyles.large, state.info.className);
|
|
150
|
+
state.root.className = mergeClasses(infoButtonClassNames.root, buttonStyles.base, buttonStyles.highContrast, buttonStyles.focusIndicator, open && buttonStyles.selected, size === 'large' && buttonStyles.large, state.root.className);
|
|
151
|
+
return state;
|
|
152
|
+
};
|
|
153
|
+
//# sourceMappingURL=useInfoButtonStyles.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createFocusOutlineStyle","iconFilledClassName","iconRegularClassName","__styles","mergeClasses","shorthands","tokens","typographyStyles","infoButtonClassNames","root","popover","info","useButtonStyles","base","Bt984gj","B7ck84d","mc9l5x","Brf1p80","w71qe1","ha4doy","qhf8xq","De3pzq","sj55zd","icvyot","vrafjx","oivjwe","wvpqe5","Bbmb7ep","Beyfa6y","B7oj6ja","Btl43ni","B6of3ja","t21cq0","jrapky","Frg6f3","z8tnut","z189sj","Byoj8tv","uwmqm3","D0sxk3","t6yez3","Jwef8y","Bi91k9c","Bk3fhr4","Bmfj8id","iro3zm","B2d53fq","selected","Bsw6fvg","Bbusuzp","highContrast","Bs6v0vm","B46dtvo","gh1jta","focusIndicator","Brovlpu","B486eqv","B8q5s1w","Bci5o5g","n8qw10","Bdrgwmp","Bm4h7ae","B7ys5i9","Busjfv9","Bhk32uz","Bf4ptjt","kclons","Bhdgwq3","Blkhhs4","Bqtpl0w","clg4pj","hgwjuy","Bonggc9","B1tsrr9","Dah5zi","Bkh64rk","qqdqy8","B6dhp37","i03rao","Boxcth7","Bsom6fd","J0r882","Bule8hv","Bjwuhne","Ghsupd","large","d","h","m","f","i","usePopoverSurfaceStyles","smallMedium","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","useInfoButtonStyles_unstable","state","size","open","buttonStyles","popoverSurfaceStyles","className"],"sources":["useInfoButtonStyles.styles.js"],"sourcesContent":["import { createFocusOutlineStyle } from '@fluentui/react-tabster';\nimport { iconFilledClassName, iconRegularClassName } from '@fluentui/react-icons';\nimport { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nexport const infoButtonClassNames = {\n root: 'fui-InfoButton',\n // this className won't be used, but it's needed to satisfy the type checker\n popover: 'fui-InfoButton__popover',\n info: 'fui-InfoButton__info'\n};\n/**\n * Styles for the root slot\n */ const useButtonStyles = makeStyles({\n base: {\n alignItems: 'center',\n boxSizing: 'border-box',\n display: 'inline-flex',\n justifyContent: 'center',\n textDecorationLine: 'none',\n verticalAlign: 'middle',\n position: 'relative',\n backgroundColor: tokens.colorTransparentBackground,\n color: tokens.colorNeutralForeground2,\n ...shorthands.borderStyle('none'),\n ...shorthands.borderRadius(tokens.borderRadiusMedium),\n ...shorthands.margin(0),\n ...shorthands.padding(tokens.spacingVerticalXS, tokens.spacingHorizontalXS),\n [`& .${iconFilledClassName}`]: {\n display: 'none'\n },\n [`& .${iconRegularClassName}`]: {\n display: 'inline-flex'\n },\n ':hover': {\n backgroundColor: tokens.colorTransparentBackgroundHover,\n color: tokens.colorNeutralForeground2BrandHover,\n [`& .${iconFilledClassName}`]: {\n display: 'inline-flex'\n },\n [`& .${iconRegularClassName}`]: {\n display: 'none'\n }\n },\n ':hover:active': {\n backgroundColor: tokens.colorTransparentBackgroundPressed,\n color: tokens.colorNeutralForeground2BrandPressed\n }\n },\n selected: {\n backgroundColor: tokens.colorTransparentBackgroundSelected,\n color: tokens.colorNeutralForeground2BrandSelected,\n [`& .${iconFilledClassName}`]: {\n display: 'inline-flex'\n },\n [`& .${iconRegularClassName}`]: {\n display: 'none'\n },\n '@media (forced-colors: active)': {\n backgroundColor: 'Highlight',\n color: 'Canvas'\n }\n },\n highContrast: {\n '@media (forced-colors: active)': {\n color: 'CanvasText',\n ':hover,:hover:active': {\n forcedColorAdjust: 'none',\n backgroundColor: 'Highlight',\n color: 'Canvas'\n }\n }\n },\n focusIndicator: createFocusOutlineStyle(),\n large: {\n ...shorthands.padding(tokens.spacingVerticalXXS, tokens.spacingVerticalXXS)\n }\n});\nconst usePopoverSurfaceStyles = makeStyles({\n smallMedium: typographyStyles.caption1,\n large: typographyStyles.body1\n});\n/**\n * Apply styling to the InfoButton slots based on the state\n */ export const useInfoButtonStyles_unstable = (state)=>{\n const { size } = state;\n const { open } = state.popover;\n const buttonStyles = useButtonStyles();\n const popoverSurfaceStyles = usePopoverSurfaceStyles();\n state.info.className = mergeClasses(infoButtonClassNames.info, size === 'large' && popoverSurfaceStyles.large, state.info.className);\n state.root.className = mergeClasses(infoButtonClassNames.root, buttonStyles.base, buttonStyles.highContrast, buttonStyles.focusIndicator, open && buttonStyles.selected, size === 'large' && buttonStyles.large, state.root.className);\n return state;\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { renderInfoLabel_unstable } from './renderInfoLabel';
|
|
3
|
+
import { useInfoLabel_unstable } from './useInfoLabel';
|
|
4
|
+
import { useInfoLabelStyles_unstable } from './useInfoLabelStyles.styles';
|
|
5
|
+
/**
|
|
6
|
+
* InfoLabel component
|
|
7
|
+
*/ export const InfoLabel = /*#__PURE__*/ React.forwardRef((props, ref)=>{
|
|
8
|
+
const state = useInfoLabel_unstable(props, ref);
|
|
9
|
+
useInfoLabelStyles_unstable(state);
|
|
10
|
+
return renderInfoLabel_unstable(state);
|
|
11
|
+
});
|
|
12
|
+
InfoLabel.displayName = 'InfoLabel';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["InfoLabel.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport type { InfoLabelProps } from './InfoLabel.types';\nimport { renderInfoLabel_unstable } from './renderInfoLabel';\nimport { useInfoLabel_unstable } from './useInfoLabel';\nimport { useInfoLabelStyles_unstable } from './useInfoLabelStyles.styles';\n\n/**\n * InfoLabel component\n */\nexport const InfoLabel: ForwardRefComponent<InfoLabelProps> = React.forwardRef((props, ref) => {\n const state = useInfoLabel_unstable(props, ref);\n\n useInfoLabelStyles_unstable(state);\n return renderInfoLabel_unstable(state);\n});\n\nInfoLabel.displayName = 'InfoLabel';\n"],"names":["React","renderInfoLabel_unstable","useInfoLabel_unstable","useInfoLabelStyles_unstable","InfoLabel","forwardRef","props","ref","state","displayName"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAI/B,SAASC,wBAAwB,QAAQ,oBAAoB;AAC7D,SAASC,qBAAqB,QAAQ,iBAAiB;AACvD,SAASC,2BAA2B,QAAQ,8BAA8B;AAE1E;;CAEC,GACD,OAAO,MAAMC,0BAAiDJ,MAAMK,UAAU,CAAC,CAACC,OAAOC,MAAQ;IAC7F,MAAMC,QAAQN,sBAAsBI,OAAOC;IAE3CJ,4BAA4BK;IAC5B,OAAOP,yBAAyBO;AAClC,GAAG;AAEHJ,UAAUK,WAAW,GAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["InfoLabel.types.ts"],"sourcesContent":["import { Label } from '@fluentui/react-label';\nimport type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\nimport { InfoButton } from '../InfoButton';\nimport type { InfoButtonProps } from '../InfoButton';\n\nexport type InfoLabelSlots = {\n root: NonNullable<Slot<'span'>>;\n\n /**\n * The Label component.\n *\n * It is not typically necessary to use this prop. The label text is the child of the `<InfoLabel>`, and other props\n * such as `size` and `required` should be set directly on the `InfoLabel`.\n *\n * This is the PRIMARY slot: all native properties specified directly on `<InfoLabel>` will be applied to this slot,\n * except `className` and `style`, which remain on the root slot.\n */\n label: NonNullable<Slot<typeof Label>>;\n\n /**\n * The InfoButton component.\n *\n * It is not typically necessary to use this prop. The content can be set using the `info` prop of the InfoLabel.\n */\n infoButton: Slot<typeof InfoButton>;\n};\n\n/**\n * InfoLabel Props\n */\nexport type InfoLabelProps = ComponentProps<Partial<InfoLabelSlots>, 'label'> & {\n /**\n * The content of the InfoButton's popover.\n */\n info?: InfoButtonProps['info'];\n};\n\n/**\n * State used in rendering InfoLabel\n */\nexport type InfoLabelState = ComponentState<InfoLabelSlots> & Pick<InfoLabelProps, 'size'>;\n"],"names":[],"mappings":"AAAA,WAwC2F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.ts"],"sourcesContent":["export * from './InfoLabel';\nexport * from './InfoLabel.types';\nexport * from './renderInfoLabel';\nexport * from './useInfoLabel';\nexport * from './useInfoLabelStyles.styles';\n"],"names":[],"mappings":"AAAA,cAAc,cAAc;AAC5B,cAAc,oBAAoB;AAClC,cAAc,oBAAoB;AAClC,cAAc,iBAAiB;AAC/B,cAAc,8BAA8B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** @jsxRuntime classic */ /** @jsx createElement */ import { createElement } from '@fluentui/react-jsx-runtime';
|
|
2
|
+
import { assertSlots } from '@fluentui/react-utilities';
|
|
3
|
+
/**
|
|
4
|
+
* Render the final JSX of InfoLabel
|
|
5
|
+
*/ export const renderInfoLabel_unstable = (state)=>{
|
|
6
|
+
assertSlots(state);
|
|
7
|
+
return /*#__PURE__*/ createElement(state.root, null, /*#__PURE__*/ createElement(state.label, null), state.infoButton && /*#__PURE__*/ createElement(state.infoButton, null));
|
|
8
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["renderInfoLabel.tsx"],"sourcesContent":["/** @jsxRuntime classic */\n/** @jsx createElement */\n\nimport { createElement } from '@fluentui/react-jsx-runtime';\n\nimport { assertSlots } from '@fluentui/react-utilities';\nimport type { InfoLabelSlots, InfoLabelState } from './InfoLabel.types';\n\n/**\n * Render the final JSX of InfoLabel\n */\nexport const renderInfoLabel_unstable = (state: InfoLabelState) => {\n assertSlots<InfoLabelSlots>(state);\n\n return (\n <state.root>\n <state.label />\n {state.infoButton && <state.infoButton />}\n </state.root>\n );\n};\n"],"names":["createElement","assertSlots","renderInfoLabel_unstable","state","root","label","infoButton"],"mappings":"AAAA,wBAAwB,GACxB,uBAAuB,GAEvB,SAASA,aAAa,QAAQ,8BAA8B;AAE5D,SAASC,WAAW,QAAQ,4BAA4B;AAGxD;;CAEC,GACD,OAAO,MAAMC,2BAA2B,CAACC,QAA0B;IACjEF,YAA4BE;IAE5B,qBACE,AAdJ,cAcKA,MAAMC,IAAI,sBACT,AAfN,cAeOD,MAAME,KAAK,SACXF,MAAMG,UAAU,kBAAI,AAhB3B,cAgB4BH,MAAMG,UAAU;AAG5C,EAAE"}
|