@fluentui/react-radio 0.0.0-nightly-20220302-0405.1
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 +305 -0
- package/CHANGELOG.md +106 -0
- package/LICENSE +15 -0
- package/README.md +5 -0
- package/Spec.md +292 -0
- package/dist/react-radio.d.ts +183 -0
- package/lib/Radio.d.ts +1 -0
- package/lib/Radio.js +2 -0
- package/lib/Radio.js.map +1 -0
- package/lib/RadioGroup.d.ts +1 -0
- package/lib/RadioGroup.js +2 -0
- package/lib/RadioGroup.js.map +1 -0
- package/lib/components/Radio/Radio.d.ts +6 -0
- package/lib/components/Radio/Radio.js +15 -0
- package/lib/components/Radio/Radio.js.map +1 -0
- package/lib/components/Radio/Radio.types.d.ts +52 -0
- package/lib/components/Radio/Radio.types.js +2 -0
- package/lib/components/Radio/Radio.types.js.map +1 -0
- package/lib/components/Radio/index.d.ts +5 -0
- package/lib/components/Radio/index.js +6 -0
- package/lib/components/Radio/index.js.map +1 -0
- package/lib/components/Radio/renderRadio.d.ts +5 -0
- package/lib/components/Radio/renderRadio.js +18 -0
- package/lib/components/Radio/renderRadio.js.map +1 -0
- package/lib/components/Radio/useRadio.d.ts +12 -0
- package/lib/components/Radio/useRadio.js +76 -0
- package/lib/components/Radio/useRadio.js.map +1 -0
- package/lib/components/Radio/useRadioStyles.d.ts +6 -0
- package/lib/components/Radio/useRadioStyles.js +174 -0
- package/lib/components/Radio/useRadioStyles.js.map +1 -0
- package/lib/components/RadioGroup/RadioGroup.d.ts +6 -0
- package/lib/components/RadioGroup/RadioGroup.js +15 -0
- package/lib/components/RadioGroup/RadioGroup.js.map +1 -0
- package/lib/components/RadioGroup/RadioGroup.types.d.ts +58 -0
- package/lib/components/RadioGroup/RadioGroup.types.js +2 -0
- package/lib/components/RadioGroup/RadioGroup.types.js.map +1 -0
- package/lib/components/RadioGroup/index.d.ts +5 -0
- package/lib/components/RadioGroup/index.js +6 -0
- package/lib/components/RadioGroup/index.js.map +1 -0
- package/lib/components/RadioGroup/renderRadioGroup.d.ts +5 -0
- package/lib/components/RadioGroup/renderRadioGroup.js +18 -0
- package/lib/components/RadioGroup/renderRadioGroup.js.map +1 -0
- package/lib/components/RadioGroup/useRadioGroup.d.ts +12 -0
- package/lib/components/RadioGroup/useRadioGroup.js +51 -0
- package/lib/components/RadioGroup/useRadioGroup.js.map +1 -0
- package/lib/components/RadioGroup/useRadioGroupStyles.d.ts +6 -0
- package/lib/components/RadioGroup/useRadioGroupStyles.js +24 -0
- package/lib/components/RadioGroup/useRadioGroupStyles.js.map +1 -0
- package/lib/contexts/RadioGroupContext.d.ts +7 -0
- package/lib/contexts/RadioGroupContext.js +7 -0
- package/lib/contexts/RadioGroupContext.js.map +1 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +4 -0
- package/lib/index.js.map +1 -0
- package/lib/tsdoc-metadata.json +11 -0
- package/lib-commonjs/Radio.d.ts +1 -0
- package/lib-commonjs/Radio.js +10 -0
- package/lib-commonjs/Radio.js.map +1 -0
- package/lib-commonjs/RadioGroup.d.ts +1 -0
- package/lib-commonjs/RadioGroup.js +10 -0
- package/lib-commonjs/RadioGroup.js.map +1 -0
- package/lib-commonjs/components/Radio/Radio.d.ts +6 -0
- package/lib-commonjs/components/Radio/Radio.js +26 -0
- package/lib-commonjs/components/Radio/Radio.js.map +1 -0
- package/lib-commonjs/components/Radio/Radio.types.d.ts +52 -0
- package/lib-commonjs/components/Radio/Radio.types.js +6 -0
- package/lib-commonjs/components/Radio/Radio.types.js.map +1 -0
- package/lib-commonjs/components/Radio/index.d.ts +5 -0
- package/lib-commonjs/components/Radio/index.js +18 -0
- package/lib-commonjs/components/Radio/index.js.map +1 -0
- package/lib-commonjs/components/Radio/renderRadio.d.ts +5 -0
- package/lib-commonjs/components/Radio/renderRadio.js +29 -0
- package/lib-commonjs/components/Radio/renderRadio.js.map +1 -0
- package/lib-commonjs/components/Radio/useRadio.d.ts +12 -0
- package/lib-commonjs/components/Radio/useRadio.js +90 -0
- package/lib-commonjs/components/Radio/useRadio.js.map +1 -0
- package/lib-commonjs/components/Radio/useRadioStyles.d.ts +6 -0
- package/lib-commonjs/components/Radio/useRadioStyles.js +186 -0
- package/lib-commonjs/components/Radio/useRadioStyles.js.map +1 -0
- package/lib-commonjs/components/RadioGroup/RadioGroup.d.ts +6 -0
- package/lib-commonjs/components/RadioGroup/RadioGroup.js +26 -0
- package/lib-commonjs/components/RadioGroup/RadioGroup.js.map +1 -0
- package/lib-commonjs/components/RadioGroup/RadioGroup.types.d.ts +58 -0
- package/lib-commonjs/components/RadioGroup/RadioGroup.types.js +6 -0
- package/lib-commonjs/components/RadioGroup/RadioGroup.types.js.map +1 -0
- package/lib-commonjs/components/RadioGroup/index.d.ts +5 -0
- package/lib-commonjs/components/RadioGroup/index.js +18 -0
- package/lib-commonjs/components/RadioGroup/index.js.map +1 -0
- package/lib-commonjs/components/RadioGroup/renderRadioGroup.d.ts +5 -0
- package/lib-commonjs/components/RadioGroup/renderRadioGroup.js +30 -0
- package/lib-commonjs/components/RadioGroup/renderRadioGroup.js.map +1 -0
- package/lib-commonjs/components/RadioGroup/useRadioGroup.d.ts +12 -0
- package/lib-commonjs/components/RadioGroup/useRadioGroup.js +62 -0
- package/lib-commonjs/components/RadioGroup/useRadioGroup.js.map +1 -0
- package/lib-commonjs/components/RadioGroup/useRadioGroupStyles.d.ts +6 -0
- package/lib-commonjs/components/RadioGroup/useRadioGroupStyles.js +34 -0
- package/lib-commonjs/components/RadioGroup/useRadioGroupStyles.js.map +1 -0
- package/lib-commonjs/contexts/RadioGroupContext.d.ts +7 -0
- package/lib-commonjs/contexts/RadioGroupContext.js +15 -0
- package/lib-commonjs/contexts/RadioGroupContext.js.map +1 -0
- package/lib-commonjs/index.d.ts +3 -0
- package/lib-commonjs/index.js +14 -0
- package/lib-commonjs/index.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './components/RadioGroup/index';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["RadioGroup.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,+BAAA,CAAA,EAAA,OAAA","sourcesContent":["export * from './components/RadioGroup/index';\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Radio = void 0;
|
|
7
|
+
|
|
8
|
+
const React = /*#__PURE__*/require("react");
|
|
9
|
+
|
|
10
|
+
const renderRadio_1 = /*#__PURE__*/require("./renderRadio");
|
|
11
|
+
|
|
12
|
+
const useRadio_1 = /*#__PURE__*/require("./useRadio");
|
|
13
|
+
|
|
14
|
+
const useRadioStyles_1 = /*#__PURE__*/require("./useRadioStyles");
|
|
15
|
+
/**
|
|
16
|
+
* Radio component is a wrapper for a radio button with a label.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
exports.Radio = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
21
|
+
const state = useRadio_1.useRadio_unstable(props, ref);
|
|
22
|
+
useRadioStyles_1.useRadioStyles_unstable(state);
|
|
23
|
+
return renderRadio_1.renderRadio_unstable(state);
|
|
24
|
+
});
|
|
25
|
+
exports.Radio.displayName = 'Radio';
|
|
26
|
+
//# sourceMappingURL=Radio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/Radio/Radio.tsx"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AAGA,MAAA,aAAA,gBAAA,OAAA,CAAA,eAAA,CAAA;;AACA,MAAA,UAAA,gBAAA,OAAA,CAAA,YAAA,CAAA;;AACA,MAAA,gBAAA,gBAAA,OAAA,CAAA,kBAAA,CAAA;AAEA;;AAEG;;;AACU,OAAA,CAAA,KAAA,gBAAyC,KAAK,CAAC,UAAN,CAAiB,CAAC,KAAD,EAAQ,GAAR,KAAe;AACpF,QAAM,KAAK,GAAG,UAAA,CAAA,iBAAA,CAAkB,KAAlB,EAAyB,GAAzB,CAAd;AAEA,EAAA,gBAAA,CAAA,uBAAA,CAAwB,KAAxB;AACA,SAAO,aAAA,CAAA,oBAAA,CAAqB,KAArB,CAAP;AACD,CALqD,CAAzC;AAOb,OAAA,CAAA,KAAA,CAAM,WAAN,GAAoB,OAApB","sourcesContent":["import * as React from 'react';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport type { RadioProps } from './Radio.types';\nimport { renderRadio_unstable } from './renderRadio';\nimport { useRadio_unstable } from './useRadio';\nimport { useRadioStyles_unstable } from './useRadioStyles';\n\n/**\n * Radio component is a wrapper for a radio button with a label.\n */\nexport const Radio: ForwardRefComponent<RadioProps> = React.forwardRef((props, ref) => {\n const state = useRadio_unstable(props, ref);\n\n useRadioStyles_unstable(state);\n return renderRadio_unstable(state);\n});\n\nRadio.displayName = 'Radio';\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Label } from '@fluentui/react-label';
|
|
2
|
+
import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';
|
|
3
|
+
export declare type RadioSlots = {
|
|
4
|
+
/**
|
|
5
|
+
* The root element of the Radio.
|
|
6
|
+
*
|
|
7
|
+
* The root slot receives the `className` and `style` specified directly on the `<Radio>`.
|
|
8
|
+
* All other native props will be applied to the primary slot: `input`
|
|
9
|
+
*/
|
|
10
|
+
root: NonNullable<Slot<'span'>>;
|
|
11
|
+
/**
|
|
12
|
+
* The Radio's label.
|
|
13
|
+
*/
|
|
14
|
+
label: Slot<typeof Label>;
|
|
15
|
+
/**
|
|
16
|
+
* Hidden input that handles the radio's functionality.
|
|
17
|
+
*
|
|
18
|
+
* This is the PRIMARY slot: all native properties specified directly on `<Radio>` will be applied to this slot,
|
|
19
|
+
* except `className` and `style`, which remain on the root slot.
|
|
20
|
+
*/
|
|
21
|
+
input: NonNullable<Slot<'input'>>;
|
|
22
|
+
/**
|
|
23
|
+
* A circle outline, with a filled circle icon inside when the Radio is checked.
|
|
24
|
+
*/
|
|
25
|
+
indicator: NonNullable<Slot<'div'>>;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Radio Props
|
|
29
|
+
*/
|
|
30
|
+
export declare type RadioProps = Omit<ComponentProps<Partial<RadioSlots>, 'input'>, 'size'> & {
|
|
31
|
+
/**
|
|
32
|
+
* The value of the RadioGroup when this Radio item is selected.
|
|
33
|
+
*/
|
|
34
|
+
value?: string;
|
|
35
|
+
/**
|
|
36
|
+
* The position of the label relative to the radio indicator.
|
|
37
|
+
*
|
|
38
|
+
* This defaults to `after` unless the Radio is inside a RadioGroup with `layout="horizontalStacked"`,
|
|
39
|
+
* in which case it defaults to `below`.
|
|
40
|
+
*
|
|
41
|
+
* @defaultvalue after
|
|
42
|
+
*/
|
|
43
|
+
labelPosition?: 'after' | 'below';
|
|
44
|
+
/**
|
|
45
|
+
* Disable this Radio item.
|
|
46
|
+
*/
|
|
47
|
+
disabled?: boolean;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* State used in rendering Radio
|
|
51
|
+
*/
|
|
52
|
+
export declare type RadioState = ComponentState<RadioSlots> & Required<Pick<RadioProps, 'labelPosition'>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":"../src/"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
const tslib_1 = /*#__PURE__*/require("tslib");
|
|
8
|
+
|
|
9
|
+
tslib_1.__exportStar(require("./Radio"), exports);
|
|
10
|
+
|
|
11
|
+
tslib_1.__exportStar(require("./Radio.types"), exports);
|
|
12
|
+
|
|
13
|
+
tslib_1.__exportStar(require("./renderRadio"), exports);
|
|
14
|
+
|
|
15
|
+
tslib_1.__exportStar(require("./useRadio"), exports);
|
|
16
|
+
|
|
17
|
+
tslib_1.__exportStar(require("./useRadioStyles"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/Radio/index.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,SAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,eAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,eAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,YAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,kBAAA,CAAA,EAAA,OAAA","sourcesContent":["export * from './Radio';\nexport * from './Radio.types';\nexport * from './renderRadio';\nexport * from './useRadio';\nexport * from './useRadioStyles';\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.renderRadio_unstable = void 0;
|
|
7
|
+
|
|
8
|
+
const React = /*#__PURE__*/require("react");
|
|
9
|
+
|
|
10
|
+
const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
|
|
11
|
+
/**
|
|
12
|
+
* Render the final JSX of Radio
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
const renderRadio_unstable = state => {
|
|
17
|
+
const {
|
|
18
|
+
slots,
|
|
19
|
+
slotProps
|
|
20
|
+
} = react_utilities_1.getSlots(state);
|
|
21
|
+
return React.createElement(slots.root, { ...slotProps.root
|
|
22
|
+
}, React.createElement(slots.input, { ...slotProps.input
|
|
23
|
+
}), React.createElement(slots.indicator, { ...slotProps.indicator
|
|
24
|
+
}), slots.label && React.createElement(slots.label, { ...slotProps.label
|
|
25
|
+
}));
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
exports.renderRadio_unstable = renderRadio_unstable;
|
|
29
|
+
//# sourceMappingURL=renderRadio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/Radio/renderRadio.tsx"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AACA,MAAA,iBAAA,gBAAA,OAAA,CAAA,2BAAA,CAAA;AAGA;;AAEG;;;AACI,MAAM,oBAAoB,GAAI,KAAD,IAAsB;AACxD,QAAM;AAAE,IAAA,KAAF;AAAS,IAAA;AAAT,MAAuB,iBAAA,CAAA,QAAA,CAAqB,KAArB,CAA7B;AAEA,SACE,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,IAAP,EAAW,EAAA,GAAK,SAAS,CAAC;AAAf,GAAX,EACE,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,KAAP,EAAY,EAAA,GAAK,SAAS,CAAC;AAAf,GAAZ,CADF,EAEE,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,SAAP,EAAgB,EAAA,GAAK,SAAS,CAAC;AAAf,GAAhB,CAFF,EAGG,KAAK,CAAC,KAAN,IAAe,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,KAAP,EAAY,EAAA,GAAK,SAAS,CAAC;AAAf,GAAZ,CAHlB,CADF;AAOD,CAVM;;AAAM,OAAA,CAAA,oBAAA,GAAoB,oBAApB","sourcesContent":["import * as React from 'react';\nimport { getSlots } from '@fluentui/react-utilities';\nimport type { RadioSlots, RadioState } from './Radio.types';\n\n/**\n * Render the final JSX of Radio\n */\nexport const renderRadio_unstable = (state: RadioState) => {\n const { slots, slotProps } = getSlots<RadioSlots>(state);\n\n return (\n <slots.root {...slotProps.root}>\n <slots.input {...slotProps.input} />\n <slots.indicator {...slotProps.indicator} />\n {slots.label && <slots.label {...slotProps.label} />}\n </slots.root>\n );\n};\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { RadioProps, RadioState } from './Radio.types';
|
|
3
|
+
/**
|
|
4
|
+
* Create the state required to render Radio.
|
|
5
|
+
*
|
|
6
|
+
* The returned state can be modified with hooks such as useRadioStyles_unstable,
|
|
7
|
+
* before being passed to renderRadio_unstable.
|
|
8
|
+
*
|
|
9
|
+
* @param props - props from this instance of Radio
|
|
10
|
+
* @param ref - reference to `<input>` element of Radio
|
|
11
|
+
*/
|
|
12
|
+
export declare const useRadio_unstable: (props: RadioProps, ref: React.Ref<HTMLInputElement>) => RadioState;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useRadio_unstable = void 0;
|
|
7
|
+
|
|
8
|
+
const React = /*#__PURE__*/require("react");
|
|
9
|
+
|
|
10
|
+
const react_icons_1 = /*#__PURE__*/require("@fluentui/react-icons");
|
|
11
|
+
|
|
12
|
+
const react_label_1 = /*#__PURE__*/require("@fluentui/react-label");
|
|
13
|
+
|
|
14
|
+
const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
|
|
15
|
+
|
|
16
|
+
const RadioGroupContext_1 = /*#__PURE__*/require("../../contexts/RadioGroupContext");
|
|
17
|
+
/**
|
|
18
|
+
* Create the state required to render Radio.
|
|
19
|
+
*
|
|
20
|
+
* The returned state can be modified with hooks such as useRadioStyles_unstable,
|
|
21
|
+
* before being passed to renderRadio_unstable.
|
|
22
|
+
*
|
|
23
|
+
* @param props - props from this instance of Radio
|
|
24
|
+
* @param ref - reference to `<input>` element of Radio
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
const useRadio_unstable = (props, ref) => {
|
|
29
|
+
const group = React.useContext(RadioGroupContext_1.RadioGroupContext);
|
|
30
|
+
const {
|
|
31
|
+
name = group.name,
|
|
32
|
+
checked = group.value !== undefined ? group.value === props.value : undefined,
|
|
33
|
+
defaultChecked = group.defaultValue !== undefined ? group.defaultValue === props.value : undefined,
|
|
34
|
+
labelPosition = group.layout === 'horizontalStacked' ? 'below' : 'after',
|
|
35
|
+
disabled = group.disabled,
|
|
36
|
+
required
|
|
37
|
+
} = props;
|
|
38
|
+
const nativeProps = react_utilities_1.getPartitionedNativeProps({
|
|
39
|
+
props,
|
|
40
|
+
primarySlotTagName: 'input',
|
|
41
|
+
excludedPropNames: ['checked', 'defaultChecked']
|
|
42
|
+
});
|
|
43
|
+
const root = react_utilities_1.resolveShorthand(props.root, {
|
|
44
|
+
required: true,
|
|
45
|
+
defaultProps: nativeProps.root
|
|
46
|
+
});
|
|
47
|
+
const input = react_utilities_1.resolveShorthand(props.input, {
|
|
48
|
+
required: true,
|
|
49
|
+
defaultProps: {
|
|
50
|
+
ref,
|
|
51
|
+
type: 'radio',
|
|
52
|
+
id: react_utilities_1.useId('radio-', nativeProps.primary.id),
|
|
53
|
+
name,
|
|
54
|
+
checked,
|
|
55
|
+
defaultChecked,
|
|
56
|
+
disabled,
|
|
57
|
+
...nativeProps.primary
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
const label = react_utilities_1.resolveShorthand(props.label, {
|
|
61
|
+
defaultProps: {
|
|
62
|
+
htmlFor: input.id,
|
|
63
|
+
disabled,
|
|
64
|
+
required
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
const indicator = react_utilities_1.resolveShorthand(props.indicator, {
|
|
68
|
+
required: true,
|
|
69
|
+
defaultProps: {
|
|
70
|
+
'aria-hidden': true,
|
|
71
|
+
children: React.createElement(react_icons_1.CircleFilled, null)
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
return {
|
|
75
|
+
labelPosition,
|
|
76
|
+
components: {
|
|
77
|
+
root: 'span',
|
|
78
|
+
input: 'input',
|
|
79
|
+
label: react_label_1.Label,
|
|
80
|
+
indicator: 'div'
|
|
81
|
+
},
|
|
82
|
+
root,
|
|
83
|
+
input,
|
|
84
|
+
label,
|
|
85
|
+
indicator
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
exports.useRadio_unstable = useRadio_unstable;
|
|
90
|
+
//# sourceMappingURL=useRadio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/Radio/useRadio.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { CircleFilled } from '@fluentui/react-icons';\nimport { Label } from '@fluentui/react-label';\nimport { getPartitionedNativeProps, resolveShorthand, useId } from '@fluentui/react-utilities';\nimport { RadioGroupContext } from '../../contexts/RadioGroupContext';\nimport type { RadioProps, RadioState } from './Radio.types';\n\n/**\n * Create the state required to render Radio.\n *\n * The returned state can be modified with hooks such as useRadioStyles_unstable,\n * before being passed to renderRadio_unstable.\n *\n * @param props - props from this instance of Radio\n * @param ref - reference to `<input>` element of Radio\n */\nexport const useRadio_unstable = (props: RadioProps, ref: React.Ref<HTMLInputElement>): RadioState => {\n const group = React.useContext(RadioGroupContext);\n\n const {\n name = group.name,\n checked = group.value !== undefined ? group.value === props.value : undefined,\n defaultChecked = group.defaultValue !== undefined ? group.defaultValue === props.value : undefined,\n labelPosition = group.layout === 'horizontalStacked' ? 'below' : 'after',\n disabled = group.disabled,\n required,\n } = props;\n\n const nativeProps = getPartitionedNativeProps({\n props,\n primarySlotTagName: 'input',\n excludedPropNames: ['checked', 'defaultChecked'],\n });\n\n const root = resolveShorthand(props.root, {\n required: true,\n defaultProps: nativeProps.root,\n });\n\n const input = resolveShorthand(props.input, {\n required: true,\n defaultProps: {\n ref,\n type: 'radio',\n id: useId('radio-', nativeProps.primary.id),\n name,\n checked,\n defaultChecked,\n disabled,\n ...nativeProps.primary,\n },\n });\n\n const label = resolveShorthand(props.label, {\n defaultProps: {\n htmlFor: input.id,\n disabled,\n required,\n },\n });\n\n const indicator = resolveShorthand(props.indicator, {\n required: true,\n defaultProps: {\n 'aria-hidden': true,\n children: <CircleFilled />,\n },\n });\n\n return {\n labelPosition,\n components: {\n root: 'span',\n input: 'input',\n label: Label,\n indicator: 'div',\n },\n root,\n input,\n label,\n indicator,\n };\n};\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useRadioStyles_unstable = exports.radioClassName = void 0;
|
|
7
|
+
|
|
8
|
+
const react_tabster_1 = /*#__PURE__*/require("@fluentui/react-tabster");
|
|
9
|
+
|
|
10
|
+
const react_theme_1 = /*#__PURE__*/require("@fluentui/react-theme");
|
|
11
|
+
|
|
12
|
+
const react_1 = /*#__PURE__*/require("@griffel/react");
|
|
13
|
+
|
|
14
|
+
exports.radioClassName = 'fui-Radio';
|
|
15
|
+
const indicatorClassName = 'fui-Radio__indicator';
|
|
16
|
+
const labelClassName = 'fui-Radio__label'; // TODO replace these spacing constants with theme values once they're on the theme
|
|
17
|
+
|
|
18
|
+
const spacingHorizontalS = '8px';
|
|
19
|
+
const spacingHorizontalM = '12px'; // The indicator size is used by the indicator and label styles
|
|
20
|
+
|
|
21
|
+
const indicatorSize = '16px';
|
|
22
|
+
/**
|
|
23
|
+
* Styles for the root slot
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
const useRootStyles = /*#__PURE__*/react_1.__styles({
|
|
27
|
+
"base": {
|
|
28
|
+
"mc9l5x": "ftuwxu6",
|
|
29
|
+
"qhf8xq": "f10pi13n",
|
|
30
|
+
"i8kkvl": "f4akndk",
|
|
31
|
+
"z8tnut": "fp9bwmr",
|
|
32
|
+
"z189sj": ["f19lj068", "f177v4lu"],
|
|
33
|
+
"Byoj8tv": "f150uoa4",
|
|
34
|
+
"uwmqm3": ["f177v4lu", "f19lj068"]
|
|
35
|
+
},
|
|
36
|
+
"vertical": {
|
|
37
|
+
"Beiy3e4": "f1vx9l62",
|
|
38
|
+
"Bt984gj": "f122n59",
|
|
39
|
+
"Belr9w4": "fe5j3v"
|
|
40
|
+
},
|
|
41
|
+
"focusIndicator": {
|
|
42
|
+
"B486eqv": "f2hkw1w",
|
|
43
|
+
"c2y4jd": "fsofd9k",
|
|
44
|
+
"B8vm7ur": "f12sql3b",
|
|
45
|
+
"f4hv8x": "f1i4q40k",
|
|
46
|
+
"Gpan81": "fcrbge9",
|
|
47
|
+
"z7afg": "ft464mn",
|
|
48
|
+
"rsjj6t": "fskqmiq",
|
|
49
|
+
"Bqsd8kq": "f2gy8jn",
|
|
50
|
+
"sfhsbh": "f1pke3uf",
|
|
51
|
+
"Bugh3ej": "f18xdlq9",
|
|
52
|
+
"hpanx6": "f1114nks",
|
|
53
|
+
"Bjkpy09": "f1unftzx",
|
|
54
|
+
"Jxg1p8": "f8rjbh6",
|
|
55
|
+
"Bc94xmo": ["fxfgh6q", "f8l10fm"],
|
|
56
|
+
"Bj23z95": ["f8l10fm", "fxfgh6q"]
|
|
57
|
+
}
|
|
58
|
+
}, {
|
|
59
|
+
"d": [".ftuwxu6{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}", ".f10pi13n{position:relative;}", ".f4akndk{-webkit-column-gap:12px;column-gap:12px;}", ".fp9bwmr{padding-top:8px;}", ".f19lj068{padding-right:8px;}", ".f177v4lu{padding-left:8px;}", ".f150uoa4{padding-bottom:8px;}", ".f1vx9l62{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}", ".f122n59{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}", ".fe5j3v{row-gap:12px;}", "[data-keyboard-nav] .fsofd9k:focus-within{border-color:transparent;}", "[data-keyboard-nav] .f12sql3b:focus-within:after{content:\"\";}", "[data-keyboard-nav] .f1i4q40k:focus-within:after{position:absolute;}", "[data-keyboard-nav] .fcrbge9:focus-within:after{pointer-events:none;}", "[data-keyboard-nav] .ft464mn:focus-within:after{box-sizing:outline-box;}", "[data-keyboard-nav] .fskqmiq:focus-within:after{z-index:1;}", "[data-keyboard-nav] .f2gy8jn:focus-within:after{border-style:solid;}", "[data-keyboard-nav] .f1pke3uf:focus-within:after{border-width:2px;}", "[data-keyboard-nav] .f18xdlq9:focus-within:after{border-radius:var(--borderRadiusMedium);}", "[data-keyboard-nav] .f1114nks:focus-within:after{border-color:var(--colorStrokeFocus2);}", "[data-keyboard-nav] .f1unftzx:focus-within:after{top:-2px;}", "[data-keyboard-nav] .f8rjbh6:focus-within:after{bottom:-2px;}", "[data-keyboard-nav] .fxfgh6q:focus-within:after{left:-2px;}", "[data-keyboard-nav] .f8l10fm:focus-within:after{right:-2px;}"],
|
|
60
|
+
"i": [".f2hkw1w:focus-visible{outline-style:none;}"]
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
const useInputStyles = /*#__PURE__*/react_1.__styles({
|
|
64
|
+
"base": {
|
|
65
|
+
"qhf8xq": "f1euv43f",
|
|
66
|
+
"oyh7mz": ["f1vgc2s3", "f1e31b4d"],
|
|
67
|
+
"Bhzewxz": "f15twtuk",
|
|
68
|
+
"a9b677": "fly5x3f",
|
|
69
|
+
"Bqenvij": "f1l02sjl",
|
|
70
|
+
"B7ck84d": "f1ewtqcl",
|
|
71
|
+
"B6of3ja": "f1hu3pq6",
|
|
72
|
+
"t21cq0": ["f11qmguv", "f1tyq0we"],
|
|
73
|
+
"jrapky": "f19f4twv",
|
|
74
|
+
"Frg6f3": ["f1tyq0we", "f11qmguv"],
|
|
75
|
+
"abs64n": "fk73vx1",
|
|
76
|
+
"By9lhj9": "fg45n87",
|
|
77
|
+
"Bojc29n": "fhb1dn5",
|
|
78
|
+
"p8xby4": "fiegpko",
|
|
79
|
+
"Bmzgt9v": "fdi60kf",
|
|
80
|
+
"un08vv": ["fz3jc1r", "f1fwo01y"],
|
|
81
|
+
"Bluxpkm": "f1m2gv5u",
|
|
82
|
+
"upm9ap": ["f1fwo01y", "fz3jc1r"],
|
|
83
|
+
"Bv6ccmg": "ft7ju8s",
|
|
84
|
+
"w6pjei": "f1ofw0le",
|
|
85
|
+
"drfev3": ["fothmfx", "f13qgzgl"],
|
|
86
|
+
"ujr3xk": "fp5vmb3",
|
|
87
|
+
"Bib2mth": ["f13qgzgl", "fothmfx"],
|
|
88
|
+
"za2ojl": "f1snis2b",
|
|
89
|
+
"Bu1fve0": "ff9psms",
|
|
90
|
+
"B42z6en": ["f1fg9ko4", "fqj7xkg"],
|
|
91
|
+
"mosl6v": "f1vebft2",
|
|
92
|
+
"e3wlmb": ["fqj7xkg", "f1fg9ko4"],
|
|
93
|
+
"swj8lc": "f1vtc7ej",
|
|
94
|
+
"kbzjta": "f1fj62aq",
|
|
95
|
+
"Bnazurh": ["fc4i2ph", "f137d5x6"],
|
|
96
|
+
"Enz1qu": "f1v2xs8c",
|
|
97
|
+
"B4rl0r3": ["f137d5x6", "fc4i2ph"],
|
|
98
|
+
"oi7lcb": "f14bpgh5",
|
|
99
|
+
"bwebxt": "f1ariq71",
|
|
100
|
+
"ax4tcq": ["fu58av6", "f1qj5h2v"],
|
|
101
|
+
"z2by79": "fptcwjq",
|
|
102
|
+
"Bpz2hdf": ["f1qj5h2v", "fu58av6"],
|
|
103
|
+
"Btliz3o": "filss48",
|
|
104
|
+
"Bre5bwy": "frtrqgn",
|
|
105
|
+
"Bayw8dt": ["f1v1lrlm", "fapcpph"],
|
|
106
|
+
"lb5vkw": "f49ptgb",
|
|
107
|
+
"yhmu5n": ["fapcpph", "f1v1lrlm"],
|
|
108
|
+
"Blcfbx4": "fgnwcez",
|
|
109
|
+
"yksgid": "f1l3wt4b",
|
|
110
|
+
"B78hamy": "fdubm5j",
|
|
111
|
+
"t61w4e": ["f11to73e", "f9u8p8h"],
|
|
112
|
+
"Dvncu9": "fw62pkm",
|
|
113
|
+
"qbflri": ["f9u8p8h", "f11to73e"],
|
|
114
|
+
"Byzt4r9": "fqaqzd4"
|
|
115
|
+
}
|
|
116
|
+
}, {
|
|
117
|
+
"d": [".f1euv43f{position:absolute;}", ".f1vgc2s3{left:0;}", ".f1e31b4d{right:0;}", ".f15twtuk{top:0;}", ".fly5x3f{width:100%;}", ".f1l02sjl{height:100%;}", ".f1ewtqcl{box-sizing:border-box;}", ".f1hu3pq6{margin-top:0;}", ".f11qmguv{margin-right:0;}", ".f1tyq0we{margin-left:0;}", ".f19f4twv{margin-bottom:0;}", ".fk73vx1{opacity:0;}", ".fg45n87:enabled{cursor:pointer;}", ".fhb1dn5:not(:checked)~.fui-Radio__indicator>*{opacity:0;}", ".fiegpko:enabled:not(:checked)~.fui-Radio__label{color:var(--colorNeutralForeground3);}", ".fdi60kf:enabled:not(:checked)~.fui-Radio__indicator{border-top-color:var(--colorNeutralStrokeAccessible);}", ".fz3jc1r:enabled:not(:checked)~.fui-Radio__indicator{border-right-color:var(--colorNeutralStrokeAccessible);}", ".f1fwo01y:enabled:not(:checked)~.fui-Radio__indicator{border-left-color:var(--colorNeutralStrokeAccessible);}", ".f1m2gv5u:enabled:not(:checked)~.fui-Radio__indicator{border-bottom-color:var(--colorNeutralStrokeAccessible);}", ".ft7ju8s:enabled:not(:checked):hover~.fui-Radio__label{color:var(--colorNeutralForeground2);}", ".f1ofw0le:enabled:not(:checked):hover~.fui-Radio__indicator{border-top-color:var(--colorNeutralStrokeAccessibleHover);}", ".fothmfx:enabled:not(:checked):hover~.fui-Radio__indicator{border-right-color:var(--colorNeutralStrokeAccessibleHover);}", ".f13qgzgl:enabled:not(:checked):hover~.fui-Radio__indicator{border-left-color:var(--colorNeutralStrokeAccessibleHover);}", ".fp5vmb3:enabled:not(:checked):hover~.fui-Radio__indicator{border-bottom-color:var(--colorNeutralStrokeAccessibleHover);}", ".f1snis2b:enabled:not(:checked):hover:active~.fui-Radio__label{color:var(--colorNeutralForeground1);}", ".ff9psms:enabled:not(:checked):hover:active~.fui-Radio__indicator{border-top-color:var(--colorNeutralStrokeAccessiblePressed);}", ".f1fg9ko4:enabled:not(:checked):hover:active~.fui-Radio__indicator{border-right-color:var(--colorNeutralStrokeAccessiblePressed);}", ".fqj7xkg:enabled:not(:checked):hover:active~.fui-Radio__indicator{border-left-color:var(--colorNeutralStrokeAccessiblePressed);}", ".f1vebft2:enabled:not(:checked):hover:active~.fui-Radio__indicator{border-bottom-color:var(--colorNeutralStrokeAccessiblePressed);}", ".f1vtc7ej:enabled:checked~.fui-Radio__label{color:var(--colorNeutralForeground1);}", ".f1fj62aq:enabled:checked~.fui-Radio__indicator{border-top-color:var(--colorCompoundBrandStroke);}", ".fc4i2ph:enabled:checked~.fui-Radio__indicator{border-right-color:var(--colorCompoundBrandStroke);}", ".f137d5x6:enabled:checked~.fui-Radio__indicator{border-left-color:var(--colorCompoundBrandStroke);}", ".f1v2xs8c:enabled:checked~.fui-Radio__indicator{border-bottom-color:var(--colorCompoundBrandStroke);}", ".f14bpgh5:enabled:checked~.fui-Radio__indicator{color:var(--colorCompoundBrandForeground1);}", ".f1ariq71:enabled:checked:hover~.fui-Radio__indicator{border-top-color:var(--colorCompoundBrandStrokeHover);}", ".fu58av6:enabled:checked:hover~.fui-Radio__indicator{border-right-color:var(--colorCompoundBrandStrokeHover);}", ".f1qj5h2v:enabled:checked:hover~.fui-Radio__indicator{border-left-color:var(--colorCompoundBrandStrokeHover);}", ".fptcwjq:enabled:checked:hover~.fui-Radio__indicator{border-bottom-color:var(--colorCompoundBrandStrokeHover);}", ".filss48:enabled:checked:hover~.fui-Radio__indicator{color:var(--colorCompoundBrandForeground1Hover);}", ".frtrqgn:enabled:checked:hover:active~.fui-Radio__indicator{border-top-color:var(--colorCompoundBrandStrokePressed);}", ".f1v1lrlm:enabled:checked:hover:active~.fui-Radio__indicator{border-right-color:var(--colorCompoundBrandStrokePressed);}", ".fapcpph:enabled:checked:hover:active~.fui-Radio__indicator{border-left-color:var(--colorCompoundBrandStrokePressed);}", ".f49ptgb:enabled:checked:hover:active~.fui-Radio__indicator{border-bottom-color:var(--colorCompoundBrandStrokePressed);}", ".fgnwcez:enabled:checked:hover:active~.fui-Radio__indicator{color:var(--colorCompoundBrandForeground1Pressed);}", ".f1l3wt4b:disabled~.fui-Radio__label{color:var(--colorNeutralForegroundDisabled);}", ".fdubm5j:disabled~.fui-Radio__indicator{border-top-color:var(--colorNeutralStrokeDisabled);}", ".f11to73e:disabled~.fui-Radio__indicator{border-right-color:var(--colorNeutralStrokeDisabled);}", ".f9u8p8h:disabled~.fui-Radio__indicator{border-left-color:var(--colorNeutralStrokeDisabled);}", ".fw62pkm:disabled~.fui-Radio__indicator{border-bottom-color:var(--colorNeutralStrokeDisabled);}", ".fqaqzd4:disabled~.fui-Radio__indicator{color:var(--colorNeutralForegroundDisabled);}"]
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
const useIndicatorStyles = /*#__PURE__*/react_1.__styles({
|
|
121
|
+
"base": {
|
|
122
|
+
"a9b677": "fjw5fx7",
|
|
123
|
+
"Bqenvij": "fd461yt",
|
|
124
|
+
"Be2twd7": "f1ugzwwg",
|
|
125
|
+
"B7ck84d": "f1ewtqcl",
|
|
126
|
+
"Bnnss6s": "fi64zpg",
|
|
127
|
+
"mc9l5x": "f22iagw",
|
|
128
|
+
"Bt984gj": "f122n59",
|
|
129
|
+
"Brf1p80": "f4d9j23",
|
|
130
|
+
"B68tc82": "f1p9o1ba",
|
|
131
|
+
"Bmxbyg5": "f1sil6mw",
|
|
132
|
+
"B4j52fo": "f192inf7",
|
|
133
|
+
"Bekrc4i": ["f5tn483", "f1ojsxk5"],
|
|
134
|
+
"Bn0qgzm": "f1vxd6vx",
|
|
135
|
+
"ibv6hh": ["f1ojsxk5", "f5tn483"],
|
|
136
|
+
"icvyot": "fzkkow9",
|
|
137
|
+
"vrafjx": ["fcdblym", "fjik90z"],
|
|
138
|
+
"oivjwe": "fg706s2",
|
|
139
|
+
"wvpqe5": ["fjik90z", "fcdblym"],
|
|
140
|
+
"Bbmb7ep": ["f8fbkgy", "f1nfllo7"],
|
|
141
|
+
"Beyfa6y": ["f1nfllo7", "f8fbkgy"],
|
|
142
|
+
"B7oj6ja": ["f1djnp8u", "f1s8kh49"],
|
|
143
|
+
"Btl43ni": ["f1s8kh49", "f1djnp8u"],
|
|
144
|
+
"Bkfmm31": "f1w9h62z",
|
|
145
|
+
"Bkecrkj": "f1aehjj5"
|
|
146
|
+
}
|
|
147
|
+
}, {
|
|
148
|
+
"d": [".fjw5fx7{width:16px;}", ".fd461yt{height:16px;}", ".f1ugzwwg{font-size:12px;}", ".f1ewtqcl{box-sizing:border-box;}", ".fi64zpg{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}", ".f22iagw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}", ".f122n59{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}", ".f4d9j23{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}", ".f1p9o1ba{overflow-x:hidden;}", ".f1sil6mw{overflow-y:hidden;}", ".f192inf7{border-top-width:var(--strokeWidthThin);}", ".f5tn483{border-right-width:var(--strokeWidthThin);}", ".f1ojsxk5{border-left-width:var(--strokeWidthThin);}", ".f1vxd6vx{border-bottom-width:var(--strokeWidthThin);}", ".fzkkow9{border-top-style:solid;}", ".fcdblym{border-right-style:solid;}", ".fjik90z{border-left-style:solid;}", ".fg706s2{border-bottom-style:solid;}", ".f8fbkgy{border-bottom-right-radius:var(--borderRadiusCircular);}", ".f1nfllo7{border-bottom-left-radius:var(--borderRadiusCircular);}", ".f1djnp8u{border-top-right-radius:var(--borderRadiusCircular);}", ".f1s8kh49{border-top-left-radius:var(--borderRadiusCircular);}", ".f1w9h62z{fill:currentColor;}", ".f1aehjj5{pointer-events:none;}"]
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
const useLabelStyles = /*#__PURE__*/react_1.__styles({
|
|
152
|
+
"base": {
|
|
153
|
+
"qb2dma": "f7nlbp4",
|
|
154
|
+
"famaaq": "f1xqy1su",
|
|
155
|
+
"B6of3ja": "fjzwpt6",
|
|
156
|
+
"t21cq0": ["f11qmguv", "f1tyq0we"],
|
|
157
|
+
"jrapky": "fh6j2fo",
|
|
158
|
+
"Frg6f3": ["f1tyq0we", "f11qmguv"]
|
|
159
|
+
},
|
|
160
|
+
"below": {
|
|
161
|
+
"fsow6f": "f17mccla"
|
|
162
|
+
}
|
|
163
|
+
}, {
|
|
164
|
+
"d": [".f7nlbp4{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;}", ".f1xqy1su{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}", ".fjzwpt6{margin-top:calc((16px - var(--lineHeightBase300)) / 2);}", ".f11qmguv{margin-right:0;}", ".f1tyq0we{margin-left:0;}", ".fh6j2fo{margin-bottom:calc((16px - var(--lineHeightBase300)) / 2);}", ".f17mccla{text-align:center;}"]
|
|
165
|
+
});
|
|
166
|
+
/**
|
|
167
|
+
* Apply styling to the Radio slots based on the state
|
|
168
|
+
*/
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
const useRadioStyles_unstable = state => {
|
|
172
|
+
const rootStyles = useRootStyles();
|
|
173
|
+
state.root.className = react_1.mergeClasses(exports.radioClassName, rootStyles.base, rootStyles.focusIndicator, state.labelPosition === 'below' && rootStyles.vertical, state.root.className);
|
|
174
|
+
const inputStyles = useInputStyles();
|
|
175
|
+
state.input.className = react_1.mergeClasses(inputStyles.base, state.input.className);
|
|
176
|
+
const indicatorStyles = useIndicatorStyles();
|
|
177
|
+
state.indicator.className = react_1.mergeClasses(indicatorClassName, indicatorStyles.base, state.indicator.className);
|
|
178
|
+
const labelStyles = useLabelStyles();
|
|
179
|
+
|
|
180
|
+
if (state.label) {
|
|
181
|
+
state.label.className = react_1.mergeClasses(labelClassName, labelStyles.base, state.labelPosition === 'below' && labelStyles.below, state.label.className);
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
exports.useRadioStyles_unstable = useRadioStyles_unstable;
|
|
186
|
+
//# sourceMappingURL=useRadioStyles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/Radio/useRadioStyles.ts"],"names":[],"mappings":"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","sourcesContent":["import { createFocusOutlineStyle } from '@fluentui/react-tabster';\nimport { tokens } from '@fluentui/react-theme';\nimport { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport type { RadioState } from './Radio.types';\n\nexport const radioClassName = 'fui-Radio';\nconst indicatorClassName = 'fui-Radio__indicator';\nconst labelClassName = 'fui-Radio__label';\n\n// TODO replace these spacing constants with theme values once they're on the theme\nconst spacingHorizontalS = '8px';\nconst spacingHorizontalM = '12px';\n\n// The indicator size is used by the indicator and label styles\nconst indicatorSize = '16px';\n\n/**\n * Styles for the root slot\n */\nconst useRootStyles = makeStyles({\n base: {\n display: 'inline-flex',\n position: 'relative',\n columnGap: spacingHorizontalM,\n ...shorthands.padding(spacingHorizontalS),\n },\n\n vertical: {\n flexDirection: 'column',\n alignItems: 'center',\n rowGap: spacingHorizontalM,\n },\n\n focusIndicator: createFocusOutlineStyle({ style: {}, selector: 'focus-within' }),\n});\n\nconst useInputStyles = makeStyles({\n base: {\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n boxSizing: 'border-box',\n ...shorthands.margin(0),\n opacity: 0,\n\n ':enabled': {\n cursor: 'pointer',\n },\n\n // When unchecked, hide the circle icon (child of the indicator)\n [`:not(:checked) ~ .${indicatorClassName} > *`]: {\n opacity: '0',\n },\n\n // Colors for the unchecked state\n ':enabled:not(:checked)': {\n [`& ~ .${labelClassName}`]: {\n color: tokens.colorNeutralForeground3,\n },\n [`& ~ .${indicatorClassName}`]: {\n ...shorthands.borderColor(tokens.colorNeutralStrokeAccessible),\n },\n\n ':hover': {\n [`& ~ .${labelClassName}`]: {\n color: tokens.colorNeutralForeground2,\n },\n [`& ~ .${indicatorClassName}`]: {\n ...shorthands.borderColor(tokens.colorNeutralStrokeAccessibleHover),\n },\n },\n\n ':hover:active': {\n [`& ~ .${labelClassName}`]: {\n color: tokens.colorNeutralForeground1,\n },\n [`& ~ .${indicatorClassName}`]: {\n ...shorthands.borderColor(tokens.colorNeutralStrokeAccessiblePressed),\n },\n },\n },\n\n // Colors for the checked state\n ':enabled:checked': {\n [`& ~ .${labelClassName}`]: {\n color: tokens.colorNeutralForeground1,\n },\n [`& ~ .${indicatorClassName}`]: {\n ...shorthands.borderColor(tokens.colorCompoundBrandStroke),\n color: tokens.colorCompoundBrandForeground1,\n },\n\n ':hover': {\n [`& ~ .${indicatorClassName}`]: {\n ...shorthands.borderColor(tokens.colorCompoundBrandStrokeHover),\n color: tokens.colorCompoundBrandForeground1Hover,\n },\n },\n\n ':hover:active': {\n [`& ~ .${indicatorClassName}`]: {\n ...shorthands.borderColor(tokens.colorCompoundBrandStrokePressed),\n color: tokens.colorCompoundBrandForeground1Pressed,\n },\n },\n },\n\n // Colors for the disabled state\n ':disabled': {\n [`& ~ .${labelClassName}`]: {\n color: tokens.colorNeutralForegroundDisabled,\n },\n [`& ~ .${indicatorClassName}`]: {\n ...shorthands.borderColor(tokens.colorNeutralStrokeDisabled),\n color: tokens.colorNeutralForegroundDisabled,\n },\n },\n },\n});\n\nconst useIndicatorStyles = makeStyles({\n base: {\n width: indicatorSize,\n height: indicatorSize,\n fontSize: '12px',\n boxSizing: 'border-box',\n flexShrink: 0,\n\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n ...shorthands.overflow('hidden'),\n\n ...shorthands.border(tokens.strokeWidthThin, 'solid'),\n ...shorthands.borderRadius(tokens.borderRadiusCircular),\n fill: 'currentColor',\n pointerEvents: 'none',\n },\n});\n\nconst useLabelStyles = makeStyles({\n base: {\n alignSelf: 'center',\n userSelect: 'none',\n\n // Use a (negative) margin to account for the difference between the indicator's height and the label's line height.\n // This prevents the label from expanding the height of the Radio, but preserves line height if the label wraps.\n ...shorthands.margin(`calc((${indicatorSize} - ${tokens.lineHeightBase300}) / 2)`, 0),\n },\n\n below: {\n textAlign: 'center',\n },\n});\n\n/**\n * Apply styling to the Radio slots based on the state\n */\nexport const useRadioStyles_unstable = (state: RadioState) => {\n const rootStyles = useRootStyles();\n state.root.className = mergeClasses(\n radioClassName,\n rootStyles.base,\n rootStyles.focusIndicator,\n state.labelPosition === 'below' && rootStyles.vertical,\n state.root.className,\n );\n\n const inputStyles = useInputStyles();\n state.input.className = mergeClasses(inputStyles.base, state.input.className);\n\n const indicatorStyles = useIndicatorStyles();\n state.indicator.className = mergeClasses(indicatorClassName, indicatorStyles.base, state.indicator.className);\n\n const labelStyles = useLabelStyles();\n if (state.label) {\n state.label.className = mergeClasses(\n labelClassName,\n labelStyles.base,\n state.labelPosition === 'below' && labelStyles.below,\n state.label.className,\n );\n }\n};\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ForwardRefComponent } from '@fluentui/react-utilities';
|
|
2
|
+
import { RadioGroupProps } from './RadioGroup.types';
|
|
3
|
+
/**
|
|
4
|
+
* A RadioGroup component presents a set of options where only one option can be selected.
|
|
5
|
+
*/
|
|
6
|
+
export declare const RadioGroup: ForwardRefComponent<RadioGroupProps>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.RadioGroup = void 0;
|
|
7
|
+
|
|
8
|
+
const React = /*#__PURE__*/require("react");
|
|
9
|
+
|
|
10
|
+
const renderRadioGroup_1 = /*#__PURE__*/require("./renderRadioGroup");
|
|
11
|
+
|
|
12
|
+
const useRadioGroup_1 = /*#__PURE__*/require("./useRadioGroup");
|
|
13
|
+
|
|
14
|
+
const useRadioGroupStyles_1 = /*#__PURE__*/require("./useRadioGroupStyles");
|
|
15
|
+
/**
|
|
16
|
+
* A RadioGroup component presents a set of options where only one option can be selected.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
exports.RadioGroup = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
21
|
+
const state = useRadioGroup_1.useRadioGroup_unstable(props, ref);
|
|
22
|
+
useRadioGroupStyles_1.useRadioGroupStyles_unstable(state);
|
|
23
|
+
return renderRadioGroup_1.renderRadioGroup_unstable(state);
|
|
24
|
+
});
|
|
25
|
+
exports.RadioGroup.displayName = 'RadioGroup';
|
|
26
|
+
//# sourceMappingURL=RadioGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/RadioGroup/RadioGroup.tsx"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AAGA,MAAA,kBAAA,gBAAA,OAAA,CAAA,oBAAA,CAAA;;AACA,MAAA,eAAA,gBAAA,OAAA,CAAA,iBAAA,CAAA;;AACA,MAAA,qBAAA,gBAAA,OAAA,CAAA,uBAAA,CAAA;AAEA;;AAEG;;;AACU,OAAA,CAAA,UAAA,gBAAmD,KAAK,CAAC,UAAN,CAAiB,CAAC,KAAD,EAAQ,GAAR,KAAe;AAC9F,QAAM,KAAK,GAAG,eAAA,CAAA,sBAAA,CAAuB,KAAvB,EAA8B,GAA9B,CAAd;AAEA,EAAA,qBAAA,CAAA,4BAAA,CAA6B,KAA7B;AACA,SAAO,kBAAA,CAAA,yBAAA,CAA0B,KAA1B,CAAP;AACD,CAL+D,CAAnD;AAOb,OAAA,CAAA,UAAA,CAAW,WAAX,GAAyB,YAAzB","sourcesContent":["import * as React from 'react';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { RadioGroupProps } from './RadioGroup.types';\nimport { renderRadioGroup_unstable } from './renderRadioGroup';\nimport { useRadioGroup_unstable } from './useRadioGroup';\nimport { useRadioGroupStyles_unstable } from './useRadioGroupStyles';\n\n/**\n * A RadioGroup component presents a set of options where only one option can be selected.\n */\nexport const RadioGroup: ForwardRefComponent<RadioGroupProps> = React.forwardRef((props, ref) => {\n const state = useRadioGroup_unstable(props, ref);\n\n useRadioGroupStyles_unstable(state);\n return renderRadioGroup_unstable(state);\n});\n\nRadioGroup.displayName = 'RadioGroup';\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';
|
|
3
|
+
import { RadioGroupContextValue } from '../../contexts/RadioGroupContext';
|
|
4
|
+
export declare type RadioGroupSlots = {
|
|
5
|
+
/**
|
|
6
|
+
* The radio group root.
|
|
7
|
+
*/
|
|
8
|
+
root: Slot<'div'>;
|
|
9
|
+
};
|
|
10
|
+
export declare type RadioGroupProps = Omit<ComponentProps<Partial<RadioGroupSlots>>, 'onChange'> & {
|
|
11
|
+
/**
|
|
12
|
+
* The name of this radio group. This name is applied to all Radio items inside this group.
|
|
13
|
+
*
|
|
14
|
+
* If no name is provided, one will be generated so that all of the Radio items have the same name.
|
|
15
|
+
*/
|
|
16
|
+
name?: string;
|
|
17
|
+
/**
|
|
18
|
+
* The selected Radio item in this group.
|
|
19
|
+
*
|
|
20
|
+
* This should be the `value` prop of one of the Radio items inside this group.
|
|
21
|
+
*/
|
|
22
|
+
value?: string;
|
|
23
|
+
/**
|
|
24
|
+
* The default selected Radio item in this group.
|
|
25
|
+
*
|
|
26
|
+
* This should be the `value` prop of one of the Radio items inside this group.
|
|
27
|
+
*/
|
|
28
|
+
defaultValue?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Callback when the selected Radio item changes.
|
|
31
|
+
*/
|
|
32
|
+
onChange?: (ev: React.FormEvent<HTMLDivElement>, data: RadioGroupOnChangeData) => void;
|
|
33
|
+
/**
|
|
34
|
+
* How the radio items are laid out in the group.
|
|
35
|
+
*
|
|
36
|
+
* @defaultvalue vertical
|
|
37
|
+
*/
|
|
38
|
+
layout?: 'vertical' | 'horizontal' | 'horizontalStacked';
|
|
39
|
+
/**
|
|
40
|
+
* Disable all Radio items in this group.
|
|
41
|
+
*/
|
|
42
|
+
disabled?: boolean;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Data for the onChange event for RadioGroup.
|
|
46
|
+
*/
|
|
47
|
+
export declare type RadioGroupOnChangeData = {
|
|
48
|
+
/**
|
|
49
|
+
* The value of the newly selected Radio item.
|
|
50
|
+
*/
|
|
51
|
+
value: string;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* State used in rendering RadioGroup
|
|
55
|
+
*/
|
|
56
|
+
export declare type RadioGroupState = ComponentState<RadioGroupSlots> & Required<Pick<RadioGroupProps, 'layout'>> & {
|
|
57
|
+
context: RadioGroupContextValue;
|
|
58
|
+
};
|