@artsy/palette 24.1.1 → 24.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/dist/elements/BorderedRadio/BorderedRadio.d.ts +1 -1
- package/dist/elements/Radio/Radio.d.ts +3 -0
- package/dist/elements/Radio/Radio.js +14 -8
- package/dist/elements/Radio/Radio.js.map +1 -1
- package/dist/elements/Radio/Radio.story.js +13 -9
- package/dist/elements/Radio/Radio.story.js.map +1 -1
- package/dist/elements/Radio/RadioDot.js +1 -1
- package/dist/elements/Radio/RadioDot.js.map +1 -1
- package/dist/elements/Radio/tokens.d.ts +9 -0
- package/dist/elements/Radio/tokens.js +19 -1
- package/dist/elements/Radio/tokens.js.map +1 -1
- package/dist/elements/RadioGroup/RadioGroup.d.ts +1 -1
- package/dist/elements/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/elements/RadioGroup/RadioGroup.story.js +12 -4
- package/dist/elements/RadioGroup/RadioGroup.story.js.map +1 -1
- package/dist/elements/Select/Select.d.ts +4 -2
- package/dist/elements/Select/Select.js +4 -6
- package/dist/elements/Select/Select.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,29 @@
|
|
|
1
|
+
# v24.2.0 (Fri Sep 09 2022)
|
|
2
|
+
|
|
3
|
+
#### 🚀 Enhancement
|
|
4
|
+
|
|
5
|
+
- feat(TX-649): create radio size variants [#1205](https://github.com/artsy/palette/pull/1205) ([@rquartararo](https://github.com/rquartararo))
|
|
6
|
+
|
|
7
|
+
#### Authors: 1
|
|
8
|
+
|
|
9
|
+
- Rachel Quartararo ([@rquartararo](https://github.com/rquartararo))
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# v24.1.2 (Fri Sep 02 2022)
|
|
14
|
+
|
|
15
|
+
#### 🐛 Bug Fix
|
|
16
|
+
|
|
17
|
+
- refactor(Select): add useForwardRef [#1204](https://github.com/artsy/palette/pull/1204) ([@laurabeth](https://github.com/laurabeth))
|
|
18
|
+
- cleanup ([@laurabeth](https://github.com/laurabeth))
|
|
19
|
+
- refactor Select into ForwardRef component ([@laurabeth](https://github.com/laurabeth))
|
|
20
|
+
|
|
21
|
+
#### Authors: 1
|
|
22
|
+
|
|
23
|
+
- Laura Bhayani ([@laurabeth](https://github.com/laurabeth))
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
1
27
|
# v24.1.1 (Tue Aug 30 2022)
|
|
2
28
|
|
|
3
29
|
#### 🐛 Bug Fix
|
|
@@ -65,7 +65,7 @@ export declare const BorderedRadio: import("styled-components").StyledComponentC
|
|
|
65
65
|
maxHeight?: import("styled-system").ResponsiveValue<import("csstype").MaxHeightProperty<import("styled-system").TLengthStyledSystem>, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
|
|
66
66
|
display?: import("styled-system").ResponsiveValue<string, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
|
|
67
67
|
verticalAlign?: import("styled-system").ResponsiveValue<import("csstype").VerticalAlignProperty<import("styled-system").TLengthStyledSystem>, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
|
|
68
|
-
size?:
|
|
68
|
+
size?: string | undefined;
|
|
69
69
|
overflow?: import("styled-system").ResponsiveValue<string, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
|
|
70
70
|
overflowX?: import("styled-system").ResponsiveValue<import("csstype").OverflowXProperty, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
|
|
71
71
|
overflowY?: import("styled-system").ResponsiveValue<import("csstype").OverflowYProperty, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { FlexProps } from "../../elements/Flex";
|
|
3
|
+
import { RADIO_SIZES } from "./tokens";
|
|
3
4
|
export interface RadioProps extends FlexProps, Omit<React.HTMLAttributes<HTMLDivElement>, "onSelect"> {
|
|
4
5
|
/** Disable interactions */
|
|
5
6
|
disabled?: boolean;
|
|
@@ -17,6 +18,8 @@ export interface RadioProps extends FlexProps, Omit<React.HTMLAttributes<HTMLDiv
|
|
|
17
18
|
name?: string;
|
|
18
19
|
/** The label content, if not specified the children will be used */
|
|
19
20
|
label?: React.ReactNode;
|
|
21
|
+
/** The radio size, if not specified, "sm" will be used */
|
|
22
|
+
size?: keyof typeof RADIO_SIZES;
|
|
20
23
|
/** Callback when selected */
|
|
21
24
|
onSelect?: (selected: {
|
|
22
25
|
selected: boolean;
|
|
@@ -21,7 +21,7 @@ var _RadioDot = require("./RadioDot");
|
|
|
21
21
|
|
|
22
22
|
var _tokens = require("./tokens");
|
|
23
23
|
|
|
24
|
-
var _excluded = ["children", "disabled", "hover", "focus", "error", "label", "selected", "value", "onSelect"];
|
|
24
|
+
var _excluded = ["children", "disabled", "hover", "focus", "error", "label", "selected", "value", "size", "onSelect"];
|
|
25
25
|
|
|
26
26
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
27
27
|
|
|
@@ -45,6 +45,8 @@ var Radio = function Radio(_ref) {
|
|
|
45
45
|
label = _ref.label,
|
|
46
46
|
selected = _ref.selected,
|
|
47
47
|
value = _ref.value,
|
|
48
|
+
_ref$size = _ref.size,
|
|
49
|
+
size = _ref$size === void 0 ? "sm" : _ref$size,
|
|
48
50
|
onSelect = _ref.onSelect,
|
|
49
51
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
50
52
|
|
|
@@ -81,24 +83,28 @@ var Radio = function Radio(_ref) {
|
|
|
81
83
|
focus: focus,
|
|
82
84
|
selected: selected,
|
|
83
85
|
error: error
|
|
84
|
-
}, rest), /*#__PURE__*/_react.default.createElement(
|
|
86
|
+
}, rest), /*#__PURE__*/_react.default.createElement(_Flex.Flex, {
|
|
87
|
+
height: _tokens.RADIO_SIZES[size].dotSize,
|
|
88
|
+
width: _tokens.RADIO_SIZES[size].dotSize,
|
|
89
|
+
alignSelf: "start",
|
|
90
|
+
mr: 1
|
|
91
|
+
}, /*#__PURE__*/_react.default.createElement(_RadioDot.RadioDot, {
|
|
85
92
|
disabled: disabled,
|
|
86
93
|
hover: hover,
|
|
87
94
|
focus: focus,
|
|
88
95
|
selected: selected,
|
|
89
|
-
error: error
|
|
90
|
-
|
|
91
|
-
}), /*#__PURE__*/_react.default.createElement(_Flex.Flex, {
|
|
96
|
+
error: error
|
|
97
|
+
})), /*#__PURE__*/_react.default.createElement(_Flex.Flex, {
|
|
92
98
|
flexDirection: "column",
|
|
93
99
|
flex: 1
|
|
94
100
|
}, /*#__PURE__*/_react.default.createElement(_Flex.Flex, {
|
|
95
101
|
alignItems: "center",
|
|
96
102
|
flex: 1
|
|
97
103
|
}, (0, _isText.isText)(title) ? /*#__PURE__*/_react.default.createElement(_Text.Text, {
|
|
98
|
-
variant:
|
|
104
|
+
variant: _tokens.RADIO_SIZES[size].labelFontSize,
|
|
99
105
|
lineHeight: description ? undefined : 1
|
|
100
106
|
}, title) : title), (0, _isText.isText)(description) ? /*#__PURE__*/_react.default.createElement(_Text.Text, {
|
|
101
|
-
variant:
|
|
107
|
+
variant: _tokens.RADIO_SIZES[size].descriptionFontSize,
|
|
102
108
|
color: "black60"
|
|
103
109
|
}, description) : description));
|
|
104
110
|
};
|
|
@@ -109,6 +115,6 @@ var Container = (0, _styledComponents.default)(_Flex.Flex).withConfig({
|
|
|
109
115
|
displayName: "Radio__Container",
|
|
110
116
|
componentId: "dpre3w-0"
|
|
111
117
|
})(["", ""], function (props) {
|
|
112
|
-
return (0, _styledComponents.css)(["", " ", " ", " ", " ", " &:hover{", "}&:focus{", " >
|
|
118
|
+
return (0, _styledComponents.css)(["", " ", " ", " ", " ", " &:hover{", "}&:focus{", " > ", "{", "}}&:disabled{pointer-events:none;", "}"], props.selected ? _tokens.RADIO_STATES.selected : _tokens.RADIO_STATES.default, props.focus && _tokens.RADIO_STATES.focus, props.hover && _tokens.RADIO_STATES.hover, props.disabled && _tokens.RADIO_STATES.disabled, props.error && _tokens.RADIO_STATES.error, !props.error && !props.disabled && (0, _styledComponents.css)(["", " > ", "{", "}"], _tokens.RADIO_STATES.hover, _RadioDot.RadioDot, props.selected ? _tokens.RADIO_DOT_STATES.hover.selected : _tokens.RADIO_DOT_STATES.hover.resting), _tokens.RADIO_STATES.focus, _RadioDot.RadioDot, props.selected ? _tokens.RADIO_DOT_STATES.focus.selected : _tokens.RADIO_DOT_STATES.focus.resting, _tokens.RADIO_STATES.disabled);
|
|
113
119
|
});
|
|
114
120
|
//# sourceMappingURL=Radio.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/Radio/Radio.tsx"],"names":["Radio","children","disabled","hover","focus","error","label","selected","value","onSelect","rest","handleClick","handleKeyPress","event","key","preventDefault","title","description","undefined","Container","Flex","props","css","RADIO_STATES","default","RADIO_DOT_STATES","resting"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/Radio/Radio.tsx"],"names":["Radio","children","disabled","hover","focus","error","label","selected","value","size","onSelect","rest","handleClick","handleKeyPress","event","key","preventDefault","title","description","RADIO_SIZES","dotSize","labelFontSize","undefined","descriptionFontSize","Container","Flex","props","css","RADIO_STATES","default","RadioDot","RADIO_DOT_STATES","resting"],"mappings":"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","sourcesContent":["import React from \"react\"\nimport styled, { css } from \"styled-components\"\nimport { Flex, FlexProps } from \"../../elements/Flex\"\nimport { isText } from \"../../helpers/isText\"\nimport { Text } from \"../Text\"\nimport { RadioDot } from \"./RadioDot\"\nimport { RADIO_DOT_STATES, RADIO_STATES, RADIO_SIZES } from \"./tokens\"\n\nexport interface RadioProps\n extends FlexProps,\n Omit<React.HTMLAttributes<HTMLDivElement>, \"onSelect\"> {\n /** Disable interactions */\n disabled?: boolean\n /** Select the button on render. If the Radio is inside a RadioGroup, use RadioGroup.defaultValue instead. */\n selected?: boolean\n /** Show an error indicator */\n error?: boolean\n /** Show hover state on render */\n hover?: boolean\n /** Forces focus state */\n focus?: boolean\n /** Value of radio button */\n value?: string\n /** Name of the radio button */\n name?: string\n /** The label content, if not specified the children will be used */\n label?: React.ReactNode\n /** The radio size, if not specified, \"sm\" will be used */\n size?: keyof typeof RADIO_SIZES\n /** Callback when selected */\n onSelect?: (selected: { selected: boolean; value: string }) => void\n}\n\n/** A Radio button */\nexport const Radio: React.FC<RadioProps> = ({\n children,\n disabled,\n hover,\n focus,\n error,\n label,\n selected,\n value,\n size = \"sm\",\n onSelect,\n ...rest\n}) => {\n const handleClick = () => {\n onSelect && onSelect({ selected: !selected, value: value! })\n }\n\n const handleKeyPress = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \" \") {\n event.preventDefault()\n onSelect && onSelect({ selected: !selected, value: value! })\n }\n }\n\n // TODO: Re-name props to match <Input />\n const title = label ? label : children\n const description = label ? children : null\n\n return (\n <Container\n as=\"label\"\n alignItems=\"center\"\n role=\"radio\"\n aria-checked={selected}\n onClick={handleClick}\n tabIndex={disabled ? -1 : 0}\n onKeyPress={handleKeyPress}\n disabled={disabled}\n hover={hover}\n focus={focus}\n selected={selected}\n error={error}\n {...rest}\n >\n <Flex\n height={RADIO_SIZES[size].dotSize}\n width={RADIO_SIZES[size].dotSize}\n alignSelf=\"start\"\n mr={1}\n >\n <RadioDot\n disabled={disabled}\n hover={hover}\n focus={focus}\n selected={selected}\n error={error}\n />\n </Flex>\n\n <Flex flexDirection=\"column\" flex={1}>\n <Flex alignItems=\"center\" flex={1}>\n {isText(title) ? (\n <Text\n variant={RADIO_SIZES[size].labelFontSize}\n lineHeight={description ? undefined : 1}\n >\n {title}\n </Text>\n ) : (\n title\n )}\n </Flex>\n\n {isText(description) ? (\n <Text variant={RADIO_SIZES[size].descriptionFontSize} color=\"black60\">\n {description}\n </Text>\n ) : (\n description\n )}\n </Flex>\n </Container>\n )\n}\n\nconst Container = styled(Flex)<{\n disabled?: boolean\n error?: boolean\n hover?: boolean\n focus?: boolean\n selected?: boolean\n}>`\n ${(props) => {\n return css`\n ${props.selected ? RADIO_STATES.selected : RADIO_STATES.default}\n ${props.focus && RADIO_STATES.focus}\n ${props.hover && RADIO_STATES.hover}\n ${props.disabled && RADIO_STATES.disabled}\n ${props.error && RADIO_STATES.error}\n\n &:hover {\n ${!props.error &&\n !props.disabled &&\n css`\n ${RADIO_STATES.hover}\n\n // Radio\n > ${RadioDot} {\n ${props.selected\n ? RADIO_DOT_STATES.hover.selected\n : RADIO_DOT_STATES.hover.resting}\n }\n `}\n }\n\n &:focus {\n ${RADIO_STATES.focus}\n\n // Radio\n > ${RadioDot} {\n ${props.selected\n ? RADIO_DOT_STATES.focus.selected\n : RADIO_DOT_STATES.focus.resting}\n }\n }\n\n &:disabled {\n pointer-events: none;\n ${RADIO_STATES.disabled}\n }\n `\n }}\n`\n"],"file":"Radio.js"}
|
|
@@ -47,17 +47,21 @@ var Default = function Default() {
|
|
|
47
47
|
error: true,
|
|
48
48
|
selected: true
|
|
49
49
|
}, {
|
|
50
|
-
label: "A label",
|
|
50
|
+
label: "A label that takes up multiple lines",
|
|
51
|
+
width: "200px",
|
|
51
52
|
children: "This is my description"
|
|
52
53
|
}, {
|
|
53
|
-
label:
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
label: "A small sized radio",
|
|
55
|
+
size: "sm",
|
|
56
|
+
children: "This is my description"
|
|
57
|
+
}, {
|
|
58
|
+
label: "A medium sized radio",
|
|
59
|
+
size: "md",
|
|
60
|
+
children: "This is my description"
|
|
57
61
|
}, {
|
|
58
|
-
label:
|
|
59
|
-
|
|
60
|
-
|
|
62
|
+
label: "A large sized radio",
|
|
63
|
+
size: "lg",
|
|
64
|
+
children: "This is my description"
|
|
61
65
|
}]
|
|
62
66
|
}, /*#__PURE__*/_react.default.createElement(_Radio.Radio, null, "A label"));
|
|
63
67
|
};
|
|
@@ -70,7 +74,7 @@ var SplitLabel = function SplitLabel() {
|
|
|
70
74
|
justifyContent: "space-between",
|
|
71
75
|
flex: 1
|
|
72
76
|
}, /*#__PURE__*/_react.default.createElement(_Text.Text, {
|
|
73
|
-
variant: "
|
|
77
|
+
variant: "sm-display"
|
|
74
78
|
}, "Label"), /*#__PURE__*/_react.default.createElement(_Text.Text, {
|
|
75
79
|
variant: "xs",
|
|
76
80
|
color: "black60"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/Radio/Radio.story.tsx"],"names":["title","Default","selected","focus","hover","disabled","error","label","children","SplitLabel"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;eAEe;AACbA,EAAAA,KAAK,EAAE;AADM,C;;;AAIR,IAAMC,OAAO,GAAG,SAAVA,OAAU,GAAM;AAC3B,sBACE,6BAAC,uBAAD;AACE,IAAA,MAAM,EAAE,CACN,EADM,EAEN;AAAEC,MAAAA,QAAQ,EAAE;AAAZ,KAFM,EAGN;AAAEC,MAAAA,KAAK,EAAE;AAAT,KAHM,EAIN;AAAEA,MAAAA,KAAK,EAAE,IAAT;AAAeD,MAAAA,QAAQ,EAAE;AAAzB,KAJM,EAKN;AAAEE,MAAAA,KAAK,EAAE;AAAT,KALM,EAMN;AAAEA,MAAAA,KAAK,EAAE,IAAT;AAAeF,MAAAA,QAAQ,EAAE;AAAzB,KANM,EAON;AAAEG,MAAAA,QAAQ,EAAE;AAAZ,KAPM,EAQN;AAAEA,MAAAA,QAAQ,EAAE,IAAZ;AAAkBH,MAAAA,QAAQ,EAAE;AAA5B,KARM,EASN;AAAEI,MAAAA,KAAK,EAAE;AAAT,KATM,EAUN;AAAEA,MAAAA,KAAK,EAAE,IAAT;AAAeJ,MAAAA,QAAQ,EAAE;AAAzB,KAVM,EAWN;
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/Radio/Radio.story.tsx"],"names":["title","Default","selected","focus","hover","disabled","error","label","width","children","size","SplitLabel"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;eAEe;AACbA,EAAAA,KAAK,EAAE;AADM,C;;;AAIR,IAAMC,OAAO,GAAG,SAAVA,OAAU,GAAM;AAC3B,sBACE,6BAAC,uBAAD;AACE,IAAA,MAAM,EAAE,CACN,EADM,EAEN;AAAEC,MAAAA,QAAQ,EAAE;AAAZ,KAFM,EAGN;AAAEC,MAAAA,KAAK,EAAE;AAAT,KAHM,EAIN;AAAEA,MAAAA,KAAK,EAAE,IAAT;AAAeD,MAAAA,QAAQ,EAAE;AAAzB,KAJM,EAKN;AAAEE,MAAAA,KAAK,EAAE;AAAT,KALM,EAMN;AAAEA,MAAAA,KAAK,EAAE,IAAT;AAAeF,MAAAA,QAAQ,EAAE;AAAzB,KANM,EAON;AAAEG,MAAAA,QAAQ,EAAE;AAAZ,KAPM,EAQN;AAAEA,MAAAA,QAAQ,EAAE,IAAZ;AAAkBH,MAAAA,QAAQ,EAAE;AAA5B,KARM,EASN;AAAEI,MAAAA,KAAK,EAAE;AAAT,KATM,EAUN;AAAEA,MAAAA,KAAK,EAAE,IAAT;AAAeJ,MAAAA,QAAQ,EAAE;AAAzB,KAVM,EAWN;AACEK,MAAAA,KAAK,EAAE,sCADT;AAEEC,MAAAA,KAAK,EAAE,OAFT;AAGEC,MAAAA,QAAQ,EAAE;AAHZ,KAXM,EAgBN;AACEF,MAAAA,KAAK,EAAE,qBADT;AAEEG,MAAAA,IAAI,EAAE,IAFR;AAGED,MAAAA,QAAQ,EAAE;AAHZ,KAhBM,EAqBN;AACEF,MAAAA,KAAK,EAAE,sBADT;AAEEG,MAAAA,IAAI,EAAE,IAFR;AAGED,MAAAA,QAAQ,EAAE;AAHZ,KArBM,EA0BN;AACEF,MAAAA,KAAK,EAAE,qBADT;AAEEG,MAAAA,IAAI,EAAE,IAFR;AAGED,MAAAA,QAAQ,EAAE;AAHZ,KA1BM;AADV,kBAkCE,6BAAC,YAAD,kBAlCF,CADF;AAsCD,CAvCM;;;AAAMR,O;;AAyCN,IAAMU,UAAU,GAAG,SAAbA,UAAa,GAAM;AAC9B,sBACE,6BAAC,YAAD,qBACE,6BAAC,UAAD;AAAM,IAAA,cAAc,EAAC,eAArB;AAAqC,IAAA,IAAI,EAAE;AAA3C,kBACE,6BAAC,UAAD;AAAM,IAAA,OAAO,EAAC;AAAd,aADF,eAGE,6BAAC,UAAD;AAAM,IAAA,OAAO,EAAC,IAAd;AAAmB,IAAA,KAAK,EAAC;AAAzB,gBAHF,CADF,CADF;AAWD,CAZM;;;AAAMA,U","sourcesContent":["import React from \"react\"\nimport { States } from \"storybook-states\"\nimport { Flex } from \"../Flex\"\nimport { Text } from \"../Text\"\nimport { Radio, RadioProps } from \"./Radio\"\n\nexport default {\n title: \"Components/Radio\",\n}\n\nexport const Default = () => {\n return (\n <States<RadioProps>\n states={[\n {},\n { selected: true },\n { focus: true },\n { focus: true, selected: true },\n { hover: true },\n { hover: true, selected: true },\n { disabled: true },\n { disabled: true, selected: true },\n { error: true },\n { error: true, selected: true },\n {\n label: \"A label that takes up multiple lines\",\n width: \"200px\",\n children: \"This is my description\",\n },\n {\n label: \"A small sized radio\",\n size: \"sm\",\n children: \"This is my description\",\n },\n {\n label: \"A medium sized radio\",\n size: \"md\",\n children: \"This is my description\",\n },\n {\n label: \"A large sized radio\",\n size: \"lg\",\n children: \"This is my description\",\n },\n ]}\n >\n <Radio>A label</Radio>\n </States>\n )\n}\n\nexport const SplitLabel = () => {\n return (\n <Radio>\n <Flex justifyContent=\"space-between\" flex={1}>\n <Text variant=\"sm-display\">Label</Text>\n\n <Text variant=\"xs\" color=\"black60\">\n Subtitle\n </Text>\n </Flex>\n </Radio>\n )\n}\n"],"file":"Radio.story.js"}
|
|
@@ -16,7 +16,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
16
16
|
var RadioDot = (0, _styledComponents.default)(_Box.Box).withConfig({
|
|
17
17
|
displayName: "RadioDot",
|
|
18
18
|
componentId: "sc-1m6kyb-0"
|
|
19
|
-
})(["width:
|
|
19
|
+
})(["width:100%;height:100%;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background-color 0.25s,border-color 0.25s,color 0.25s;", ";&::after{content:\"\";display:block;width:12px;height:12px;border-radius:50%;transition:background-color 0.25s;background-color:currentColor;}"], function (props) {
|
|
20
20
|
var mode = function () {
|
|
21
21
|
switch (true) {
|
|
22
22
|
case props.disabled:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/Radio/RadioDot.tsx"],"names":["RadioDot","Box","props","mode","disabled","RADIO_DOT_STATES","hover","focus","error","default","selected","resting"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;AAUO,IAAMA,QAAQ,GAAG,+BAAOC,QAAP,CAAH;AAAA;AAAA;AAAA,2UAUjB,UAACC,KAAD,EAAW;AACX,MAAMC,IAAI,GAAI,YAAM;AAClB,YAAQ,IAAR;AACE,WAAKD,KAAK,CAACE,QAAX;AACE,eAAOC,yBAAiBD,QAAxB;;AACF,WAAKF,KAAK,CAACI,KAAX;AACE,eAAOD,yBAAiBC,KAAxB;;AACF,WAAKJ,KAAK,CAACK,KAAX;AACE,eAAOF,yBAAiBE,KAAxB;;AACF,WAAKL,KAAK,CAACM,KAAX;AACE,eAAOH,yBAAiBG,KAAxB;;AACF;AACE,eAAOH,yBAAiBI,OAAxB;AAVJ;AAYD,GAbY,EAAb;;AAeA,SAAOP,KAAK,CAACQ,QAAN,GAAiBP,IAAI,CAACO,QAAtB,GAAiCP,IAAI,CAACQ,OAA7C;AACD,CA3BkB,CAAd","sourcesContent":["import styled from \"styled-components\"\nimport { Box } from \"../Box\"\nimport { RADIO_DOT_STATES } from \"./tokens\"\n\nexport interface CheckProps {\n disabled?: boolean\n error?: boolean\n hover?: boolean\n focus?: boolean\n selected?: boolean\n}\n\nexport const RadioDot = styled(Box)<CheckProps>`\n width:
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/Radio/RadioDot.tsx"],"names":["RadioDot","Box","props","mode","disabled","RADIO_DOT_STATES","hover","focus","error","default","selected","resting"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;AAUO,IAAMA,QAAQ,GAAG,+BAAOC,QAAP,CAAH;AAAA;AAAA;AAAA,2UAUjB,UAACC,KAAD,EAAW;AACX,MAAMC,IAAI,GAAI,YAAM;AAClB,YAAQ,IAAR;AACE,WAAKD,KAAK,CAACE,QAAX;AACE,eAAOC,yBAAiBD,QAAxB;;AACF,WAAKF,KAAK,CAACI,KAAX;AACE,eAAOD,yBAAiBC,KAAxB;;AACF,WAAKJ,KAAK,CAACK,KAAX;AACE,eAAOF,yBAAiBE,KAAxB;;AACF,WAAKL,KAAK,CAACM,KAAX;AACE,eAAOH,yBAAiBG,KAAxB;;AACF;AACE,eAAOH,yBAAiBI,OAAxB;AAVJ;AAYD,GAbY,EAAb;;AAeA,SAAOP,KAAK,CAACQ,QAAN,GAAiBP,IAAI,CAACO,QAAtB,GAAiCP,IAAI,CAACQ,OAA7C;AACD,CA3BkB,CAAd","sourcesContent":["import styled from \"styled-components\"\nimport { Box } from \"../Box\"\nimport { RADIO_DOT_STATES } from \"./tokens\"\n\nexport interface CheckProps {\n disabled?: boolean\n error?: boolean\n hover?: boolean\n focus?: boolean\n selected?: boolean\n}\n\nexport const RadioDot = styled(Box)<CheckProps>`\n width: 100%;\n height: 100%;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n transition: background-color 0.25s, border-color 0.25s, color 0.25s;\n\n ${(props) => {\n const mode = (() => {\n switch (true) {\n case props.disabled:\n return RADIO_DOT_STATES.disabled\n case props.hover:\n return RADIO_DOT_STATES.hover\n case props.focus:\n return RADIO_DOT_STATES.focus\n case props.error:\n return RADIO_DOT_STATES.error\n default:\n return RADIO_DOT_STATES.default\n }\n })()\n\n return props.selected ? mode.selected : mode.resting\n }};\n\n /* Dot */\n &::after {\n content: \"\";\n display: block;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n transition: background-color 0.25s;\n background-color: currentColor;\n }\n`\n"],"file":"RadioDot.js"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { ResponsiveValue } from "styled-system";
|
|
2
|
+
import { TextVariant } from "../../Theme";
|
|
1
3
|
export declare const RADIO_DOT_STATES: {
|
|
2
4
|
default: {
|
|
3
5
|
resting: import("styled-components").FlattenInterpolation<any>[];
|
|
@@ -28,3 +30,10 @@ export declare const RADIO_STATES: {
|
|
|
28
30
|
readonly disabled: import("styled-components").FlattenInterpolation<any>[];
|
|
29
31
|
readonly error: import("styled-components").FlattenInterpolation<any>[];
|
|
30
32
|
};
|
|
33
|
+
interface SizeVariant {
|
|
34
|
+
labelFontSize: ResponsiveValue<TextVariant>;
|
|
35
|
+
descriptionFontSize: ResponsiveValue<TextVariant>;
|
|
36
|
+
dotSize: string;
|
|
37
|
+
}
|
|
38
|
+
export declare const RADIO_SIZES: Record<string, SizeVariant>;
|
|
39
|
+
export {};
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.RADIO_STATES = exports.RADIO_DOT_STATES = void 0;
|
|
6
|
+
exports.RADIO_STATES = exports.RADIO_SIZES = exports.RADIO_DOT_STATES = void 0;
|
|
7
7
|
|
|
8
8
|
var _themeGet = require("@styled-system/theme-get");
|
|
9
9
|
|
|
@@ -41,4 +41,22 @@ var RADIO_STATES = {
|
|
|
41
41
|
error: (0, _styledComponents.css)(["color:", ";"], (0, _themeGet.themeGet)("colors.red100"))
|
|
42
42
|
};
|
|
43
43
|
exports.RADIO_STATES = RADIO_STATES;
|
|
44
|
+
var RADIO_SIZES = {
|
|
45
|
+
sm: {
|
|
46
|
+
labelFontSize: "sm-display",
|
|
47
|
+
descriptionFontSize: "xs",
|
|
48
|
+
dotSize: "20px"
|
|
49
|
+
},
|
|
50
|
+
md: {
|
|
51
|
+
labelFontSize: "md",
|
|
52
|
+
descriptionFontSize: "sm",
|
|
53
|
+
dotSize: "25px"
|
|
54
|
+
},
|
|
55
|
+
lg: {
|
|
56
|
+
labelFontSize: "lg-display",
|
|
57
|
+
descriptionFontSize: "md",
|
|
58
|
+
dotSize: "32px"
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
exports.RADIO_SIZES = RADIO_SIZES;
|
|
44
62
|
//# sourceMappingURL=tokens.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/Radio/tokens.ts"],"names":["RADIO_DOT_STATES","default","resting","css","selected","focus","disabled","error","hover","RADIO_STATES"],"mappings":";;;;;;;AAAA;;AACA;;
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/Radio/tokens.ts"],"names":["RADIO_DOT_STATES","default","resting","css","selected","focus","disabled","error","hover","RADIO_STATES","RADIO_SIZES","sm","labelFontSize","descriptionFontSize","dotSize","md","lg"],"mappings":";;;;;;;AAAA;;AACA;;AAIO,IAAMA,gBAAgB,GAAG;AAC9BC,EAAAA,OAAO,EAAE;AACPC,IAAAA,OAAO,MAAEC,qBAAF,sDAEI,wBAAS,iBAAT,CAFJ,EAGW,wBAAS,gBAAT,CAHX,CADA;AAMPC,IAAAA,QAAQ,MAAED,qBAAF,4EAEG,wBAAS,iBAAT,CAFH,EAGU,wBAAS,iBAAT,CAHV,EAIc,wBAAS,iBAAT,CAJd;AAND,GADqB;AAc9BE,EAAAA,KAAK,EAAE;AACLH,IAAAA,OAAO,MAAEC,qBAAF,sDAEI,wBAAS,iBAAT,CAFJ,EAGW,wBAAS,iBAAT,CAHX,CADF;AAMLC,IAAAA,QAAQ,MAAED,qBAAF,4EAEG,wBAAS,iBAAT,CAFH,EAGU,wBAAS,iBAAT,CAHV,EAIc,wBAAS,iBAAT,CAJd;AANH,GAduB;AA2B9BG,EAAAA,QAAQ,EAAE;AACRJ,IAAAA,OAAO,MAAEC,qBAAF,sDAEI,wBAAS,iBAAT,CAFJ,EAGW,wBAAS,gBAAT,CAHX,CADC;AAMRC,IAAAA,QAAQ,MAAED,qBAAF,4EAEG,wBAAS,iBAAT,CAFH,EAGU,wBAAS,gBAAT,CAHV,EAIc,wBAAS,gBAAT,CAJd;AANA,GA3BoB;AAwC9BI,EAAAA,KAAK,EAAE;AACLL,IAAAA,OAAO,MAAEC,qBAAF,sDAEI,wBAAS,iBAAT,CAFJ,EAGW,wBAAS,eAAT,CAHX,CADF;AAMLC,IAAAA,QAAQ,MAAED,qBAAF,4EAEG,wBAAS,iBAAT,CAFH,EAGU,wBAAS,eAAT,CAHV,EAIc,wBAAS,eAAT,CAJd;AANH,GAxCuB;AAqD9BK,EAAAA,KAAK,EAAE;AACLN,IAAAA,OAAO,MAAEC,qBAAF,mFAGW,wBAAS,gBAAT,CAHX,EAIe,wBAAS,iBAAT,CAJf,CADF;AAOLC,IAAAA,QAAQ,MAAED,qBAAF,4EAEG,wBAAS,iBAAT,CAFH,EAGU,wBAAS,gBAAT,CAHV,EAIc,wBAAS,gBAAT,CAJd;AAPH;AArDuB,CAAzB;;AAqEA,IAAMM,YAAY,GAAG;AAC1BR,EAAAA,OAAO,MAAEE,qBAAF,mBACI,wBAAS,gBAAT,CADJ,CADmB;AAI1BE,EAAAA,KAAK,MAAEF,qBAAF,wEACM,wBAAS,iBAAT,CADN,CAJqB;AAY1BC,EAAAA,QAAQ,MAAED,qBAAF,mBACG,wBAAS,iBAAT,CADH,CAZkB;AAe1BK,EAAAA,KAAK,MAAEL,qBAAF,wEACM,wBAAS,gBAAT,CADN,CAfqB;AAuB1BG,EAAAA,QAAQ,MAAEH,qBAAF,uCAEG,wBAAS,gBAAT,CAFH,CAvBkB;AA2B1BI,EAAAA,KAAK,MAAEJ,qBAAF,mBACM,wBAAS,eAAT,CADN;AA3BqB,CAArB;;AAsCA,IAAMO,WAAwC,GAAG;AACtDC,EAAAA,EAAE,EAAE;AACFC,IAAAA,aAAa,EAAE,YADb;AAEFC,IAAAA,mBAAmB,EAAE,IAFnB;AAGFC,IAAAA,OAAO,EAAE;AAHP,GADkD;AAMtDC,EAAAA,EAAE,EAAE;AACFH,IAAAA,aAAa,EAAE,IADb;AAEFC,IAAAA,mBAAmB,EAAE,IAFnB;AAGFC,IAAAA,OAAO,EAAE;AAHP,GANkD;AAWtDE,EAAAA,EAAE,EAAE;AACFJ,IAAAA,aAAa,EAAE,YADb;AAEFC,IAAAA,mBAAmB,EAAE,IAFnB;AAGFC,IAAAA,OAAO,EAAE;AAHP;AAXkD,CAAjD","sourcesContent":["import { themeGet } from \"@styled-system/theme-get\"\nimport { css } from \"styled-components\"\nimport { ResponsiveValue } from \"styled-system\"\nimport { TextVariant } from \"../../Theme\"\n\nexport const RADIO_DOT_STATES = {\n default: {\n resting: css`\n border: 1px solid;\n color: ${themeGet(\"colors.white100\")};\n border-color: ${themeGet(\"colors.black30\")};\n `,\n selected: css`\n border: 1px solid;\n color: ${themeGet(\"colors.white100\")};\n border-color: ${themeGet(\"colors.black100\")};\n background-color: ${themeGet(\"colors.black100\")};\n `,\n },\n focus: {\n resting: css`\n border: 1px solid;\n color: ${themeGet(\"colors.white100\")};\n border-color: ${themeGet(\"colors.black100\")};\n `,\n selected: css`\n border: 1px solid;\n color: ${themeGet(\"colors.white100\")};\n border-color: ${themeGet(\"colors.black100\")};\n background-color: ${themeGet(\"colors.black100\")};\n `,\n },\n disabled: {\n resting: css`\n border: 1px solid;\n color: ${themeGet(\"colors.white100\")};\n border-color: ${themeGet(\"colors.black30\")};\n `,\n selected: css`\n border: 1px solid;\n color: ${themeGet(\"colors.white100\")};\n border-color: ${themeGet(\"colors.black30\")};\n background-color: ${themeGet(\"colors.black30\")};\n `,\n },\n error: {\n resting: css`\n border: 1px solid;\n color: ${themeGet(\"colors.white100\")};\n border-color: ${themeGet(\"colors.red100\")};\n `,\n selected: css`\n border: 1px solid;\n color: ${themeGet(\"colors.white100\")};\n border-color: ${themeGet(\"colors.red100\")};\n background-color: ${themeGet(\"colors.red100\")};\n `,\n },\n hover: {\n resting: css`\n border: 1px solid;\n color: transparent;\n border-color: ${themeGet(\"colors.blue100\")};\n background-color: ${themeGet(\"colors.white100\")};\n `,\n selected: css`\n border: 1px solid;\n color: ${themeGet(\"colors.white100\")};\n border-color: ${themeGet(\"colors.blue100\")};\n background-color: ${themeGet(\"colors.blue100\")};\n `,\n },\n}\n\nexport const RADIO_STATES = {\n default: css`\n color: ${themeGet(\"colors.black60\")};\n `,\n focus: css`\n color: ${themeGet(\"colors.black100\")};\n\n /* Label */\n > div > div:first-of-type {\n text-decoration: underline;\n }\n `,\n selected: css`\n color: ${themeGet(\"colors.black100\")};\n `,\n hover: css`\n color: ${themeGet(\"colors.blue100\")};\n\n /* Label */\n > div > div:first-of-type {\n text-decoration: underline;\n }\n `,\n disabled: css`\n pointer-events: none;\n color: ${themeGet(\"colors.black30\")};\n `,\n error: css`\n color: ${themeGet(\"colors.red100\")};\n `,\n} as const\n\ninterface SizeVariant {\n labelFontSize: ResponsiveValue<TextVariant>\n descriptionFontSize: ResponsiveValue<TextVariant>\n dotSize: string\n}\n\nexport const RADIO_SIZES: Record<string, SizeVariant> = {\n sm: {\n labelFontSize: \"sm-display\",\n descriptionFontSize: \"xs\",\n dotSize: \"20px\",\n },\n md: {\n labelFontSize: \"md\",\n descriptionFontSize: \"sm\",\n dotSize: \"25px\",\n },\n lg: {\n labelFontSize: \"lg-display\",\n descriptionFontSize: \"md\",\n dotSize: \"32px\",\n },\n}\n"],"file":"tokens.js"}
|
|
@@ -16,7 +16,7 @@ export interface RadioGroupProps extends FlexProps {
|
|
|
16
16
|
/** Default value of radio button */
|
|
17
17
|
defaultValue?: string;
|
|
18
18
|
/** Child <Radio /> elements */
|
|
19
|
-
children: Array<React.ReactElement<RadioProps
|
|
19
|
+
children: Array<React.ReactElement<RadioProps>> | React.ReactElement<RadioProps>;
|
|
20
20
|
}
|
|
21
21
|
interface RadioGroupState {
|
|
22
22
|
selectedOption: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/RadioGroup/RadioGroup.tsx"],"names":["RadioGroup","state","selectedOption","props","defaultValue","onSelect","value","update","deselectable","setState","prevProps","React","Children","map","children","child","cloneElement","disabled","undefined","selected","disabledText","others","renderRadioButtons","Component"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/RadioGroup/RadioGroup.tsx"],"names":["RadioGroup","state","selectedOption","props","defaultValue","onSelect","value","update","deselectable","setState","prevProps","React","Children","map","children","child","cloneElement","disabled","undefined","selected","disabledText","others","renderRadioButtons","Component"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA;AACA;AACA;AACA;AACA;IACaA,U;;;;;;;;;;;;;;;UAIXC,K,GAAQ;AACNC,MAAAA,cAAc,EAAE,MAAKC,KAAL,CAAWC,YAAX,IAA2B;AADrC,K;;UAYRC,Q,GAAW,gBAAe;AAAA,UAAZC,KAAY,QAAZA,KAAY;;AACxB;AACA,UAAMC,MAAM,GAAG,SAATA,MAAS,GAAM;AACnB,YAAI,MAAKJ,KAAL,CAAWE,QAAf,EAAyB;AACvB,gBAAKF,KAAL,CAAWE,QAAX,CAAoB,MAAKJ,KAAL,CAAWC,cAA/B;AACD;AACF,OAJD;;AAMA,UAAI,MAAKC,KAAL,CAAWK,YAAf,EAA6B;AAC3B,YAAI,MAAKP,KAAL,CAAWC,cAAX,KAA8BI,KAAlC,EAAyC;AACvC,gBAAKG,QAAL,CACE;AACEP,YAAAA,cAAc,EAAE;AADlB,WADF,EAIEK,MAJF;;AAMA;AACD;AACF;;AAED,YAAKE,QAAL,CAAc;AAAEP,QAAAA,cAAc,EAAEI;AAAlB,OAAd,EAAyCC,MAAzC;AACD,K;;;;;;;WA7BD,4BAAmBG,SAAnB,EAA8B;AAC5B,UAAIA,SAAS,CAACN,YAAV,KAA2B,KAAKD,KAAL,CAAWC,YAA1C,EAAwD;AACtD,aAAKK,QAAL,CAAc;AACZP,UAAAA,cAAc,EAAE,KAAKC,KAAL,CAAWC;AADf,SAAd;AAGD;AACF;;;WAyBD,8BAAqB;AAAA;;AACnB,aAAOO,eAAMC,QAAN,CAAeC,GAAf,CACL,KAAKV,KAAL,CAAWW,QADN,EAEL,UAACC,KAAD,EAA2C;AACzC,4BAAOJ,eAAMK,YAAN,CAAmBD,KAAnB,EAA0B;AAC/BE,UAAAA,QAAQ,EACNF,KAAK,CAACZ,KAAN,CAAYc,QAAZ,KAAyBC,SAAzB,GACIH,KAAK,CAACZ,KAAN,CAAYc,QADhB,GAEI,MAAI,CAACd,KAAL,CAAWc,QAJc;AAK/BZ,UAAAA,QAAQ,EAAEU,KAAK,CAACZ,KAAN,CAAYE,QAAZ,GACN,UAACc,QAAD,EAAc;AAAA;;AACZ,YAAA,MAAI,CAACd,QAAL,CAAcc,QAAd;;AACA,qDAAAJ,KAAK,CAACZ,KAAN,EAAYE,QAAZ,mGAAuBc,QAAvB;AACD,WAJK,GAKN,MAAI,CAACd,QAVsB;AAW/B;AACAc,UAAAA,QAAQ,EAAE,MAAI,CAAClB,KAAL,CAAWC,cAAX,KAA8Ba,KAAK,CAACZ,KAAN,CAAYG;AAZrB,SAA1B,CAAP;AAcD,OAjBI,CAAP;AAmBD;;;WAED,kBAAS;AACP,wBAOI,KAAKH,KAPT;AAAA,UACEc,QADF,eACEA,QADF;AAAA,UAEEG,YAFF,eAEEA,YAFF;AAAA,UAGEf,QAHF,eAGEA,QAHF;AAAA,UAIED,YAJF,eAIEA,YAJF;AAAA,UAKEU,QALF,eAKEA,QALF;AAAA,UAMKO,MANL;;AAQA,0BACE,6BAAC,UAAD;AAAM,QAAA,aAAa,EAAC;AAApB,SAAiCA,MAAjC,GACGJ,QAAQ,IAAIG,YAAZ,iBACC,6BAAC,gBAAD;AAAM,QAAA,IAAI,EAAC,GAAX;AAAe,QAAA,EAAE,EAAE,GAAnB;AAAwB,QAAA,KAAK,EAAC;AAA9B,SACGA,YADH,CAFJ,EAMG,KAAKE,kBAAL,EANH,CADF;AAUD;;;;EAhF6BX,eAAMY,S;;;AAAzBvB,U","sourcesContent":["import React from \"react\"\nimport { Flex, FlexProps } from \"../Flex\"\nimport { RadioProps } from \"../Radio\"\nimport { Sans } from \"../Typography\"\n\n/**\n * Spec: zpl.io/bAvnwlB\n */\n\nexport interface RadioGroupProps extends FlexProps {\n /** Ability to deselect the selection */\n deselectable?: boolean\n /** Disable interactions */\n disabled?: boolean\n /** Text to display when disabled */\n disabledText?: string\n /** Callback when selected */\n onSelect?: (selectedOption: string) => void\n /** Default value of radio button */\n defaultValue?: string\n /** Child <Radio /> elements */\n children:\n | Array<React.ReactElement<RadioProps>>\n | React.ReactElement<RadioProps>\n}\n\ninterface RadioGroupState {\n selectedOption: string | null\n}\n\n/**\n * A stateful collection of Radio buttons\n *\n * Spec: zpl.io/bAvnwlB\n */\nexport class RadioGroup extends React.Component<\n RadioGroupProps,\n RadioGroupState\n> {\n state = {\n selectedOption: this.props.defaultValue || null,\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.defaultValue !== this.props.defaultValue) {\n this.setState({\n selectedOption: this.props.defaultValue!,\n })\n }\n }\n\n onSelect = ({ value }) => {\n // After state update, call back up the tree with the latest state\n const update = () => {\n if (this.props.onSelect) {\n this.props.onSelect(this.state.selectedOption!)\n }\n }\n\n if (this.props.deselectable) {\n if (this.state.selectedOption === value) {\n this.setState(\n {\n selectedOption: null,\n },\n update\n )\n return\n }\n }\n\n this.setState({ selectedOption: value }, update)\n }\n\n renderRadioButtons() {\n return React.Children.map(\n this.props.children,\n (child: React.ReactElement<RadioProps>) => {\n return React.cloneElement(child, {\n disabled:\n child.props.disabled !== undefined\n ? child.props.disabled\n : this.props.disabled,\n onSelect: child.props.onSelect\n ? (selected) => {\n this.onSelect(selected)\n child.props.onSelect?.(selected)\n }\n : this.onSelect,\n // FIXME: Throw an error `child.props.selected' is set once we enable the dev code elimination.\n selected: this.state.selectedOption === child.props.value,\n })\n }\n )\n }\n\n render() {\n const {\n disabled,\n disabledText,\n onSelect,\n defaultValue,\n children,\n ...others\n } = this.props\n return (\n <Flex flexDirection=\"column\" {...others}>\n {disabled && disabledText && (\n <Sans size=\"2\" my={0.3} color=\"black60\">\n {disabledText}\n </Sans>\n )}\n {this.renderRadioButtons()}\n </Flex>\n )\n }\n}\n"],"file":"RadioGroup.js"}
|
|
@@ -13,14 +13,16 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
13
13
|
|
|
14
14
|
var _storybookStates = require("storybook-states");
|
|
15
15
|
|
|
16
|
+
var _Spacer = require("../Spacer");
|
|
17
|
+
|
|
16
18
|
var _Button = require("../Button");
|
|
17
19
|
|
|
18
20
|
var _Radio = require("../Radio/Radio");
|
|
19
21
|
|
|
20
|
-
var _Text = require("../Text");
|
|
21
|
-
|
|
22
22
|
var _RadioGroup = require("./RadioGroup");
|
|
23
23
|
|
|
24
|
+
var _Join = require("../Join");
|
|
25
|
+
|
|
24
26
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
25
27
|
|
|
26
28
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -56,13 +58,17 @@ var Default = function Default() {
|
|
|
56
58
|
}]
|
|
57
59
|
}, /*#__PURE__*/_react.default.createElement(_RadioGroup.RadioGroup, {
|
|
58
60
|
onSelect: (0, _addonActions.action)("onSelect")
|
|
61
|
+
}, /*#__PURE__*/_react.default.createElement(_Join.Join, {
|
|
62
|
+
separator: /*#__PURE__*/_react.default.createElement(_Spacer.Spacer, {
|
|
63
|
+
mb: 0.5
|
|
64
|
+
})
|
|
59
65
|
}, ["Visual", "Linguistic", "Spatial", "Aural", "Gestural"].map(function (value) {
|
|
60
66
|
return /*#__PURE__*/_react.default.createElement(_Radio.Radio, {
|
|
61
67
|
key: value,
|
|
62
68
|
value: value,
|
|
63
|
-
label:
|
|
69
|
+
label: value
|
|
64
70
|
});
|
|
65
|
-
})));
|
|
71
|
+
}))));
|
|
66
72
|
};
|
|
67
73
|
|
|
68
74
|
exports.Default = Default;
|
|
@@ -85,6 +91,8 @@ var WithDefaultValue = function WithDefaultValue() {
|
|
|
85
91
|
}, /*#__PURE__*/_react.default.createElement(_Radio.Radio, {
|
|
86
92
|
value: "SHIP",
|
|
87
93
|
label: "Provide shipping address"
|
|
94
|
+
}), /*#__PURE__*/_react.default.createElement(_Spacer.Spacer, {
|
|
95
|
+
mb: 0.5
|
|
88
96
|
}), /*#__PURE__*/_react.default.createElement(_Radio.Radio, {
|
|
89
97
|
value: "PICKUP",
|
|
90
98
|
label: "Arrange for pickup"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/RadioGroup/RadioGroup.story.tsx"],"names":["title","Default","defaultValue","deselectable","disabled","disabledText","map","value","WithDefaultValue","setValue","story","name"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;eAEe;AACbA,EAAAA,KAAK,EAAE;AADM,C;;;AAIR,IAAMC,OAAO,GAAG,SAAVA,OAAU,GAAM;AAC3B,sBACE,6BAAC,uBAAD;AACE,IAAA,MAAM,EAAE,CACN,EADM,EAEN;AAAEC,MAAAA,YAAY,EAAE;AAAhB,KAFM,EAGN;AAAEC,MAAAA,YAAY,EAAE;AAAhB,KAHM,EAIN;AAAEC,MAAAA,QAAQ,EAAE;AAAZ,KAJM,EAKN;AAAEA,MAAAA,QAAQ,EAAE,IAAZ;AAAkBC,MAAAA,YAAY,EAAE;AAAhC,KALM;AADV,kBASE,6BAAC,sBAAD;AAAY,IAAA,QAAQ,EAAE,0BAAO,UAAP;AAAtB,KACG,CAAC,QAAD,EAAW,YAAX,EAAyB,SAAzB,EAAoC,OAApC,EAA6C,UAA7C,EAAyDC,GAAzD,CACC,UAACC,KAAD,EAAW;AACT,
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/RadioGroup/RadioGroup.story.tsx"],"names":["title","Default","defaultValue","deselectable","disabled","disabledText","map","value","WithDefaultValue","setValue","story","name"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;eAEe;AACbA,EAAAA,KAAK,EAAE;AADM,C;;;AAIR,IAAMC,OAAO,GAAG,SAAVA,OAAU,GAAM;AAC3B,sBACE,6BAAC,uBAAD;AACE,IAAA,MAAM,EAAE,CACN,EADM,EAEN;AAAEC,MAAAA,YAAY,EAAE;AAAhB,KAFM,EAGN;AAAEC,MAAAA,YAAY,EAAE;AAAhB,KAHM,EAIN;AAAEC,MAAAA,QAAQ,EAAE;AAAZ,KAJM,EAKN;AAAEA,MAAAA,QAAQ,EAAE,IAAZ;AAAkBC,MAAAA,YAAY,EAAE;AAAhC,KALM;AADV,kBASE,6BAAC,sBAAD;AAAY,IAAA,QAAQ,EAAE,0BAAO,UAAP;AAAtB,kBACE,6BAAC,UAAD;AAAM,IAAA,SAAS,eAAE,6BAAC,cAAD;AAAQ,MAAA,EAAE,EAAE;AAAZ;AAAjB,KACG,CAAC,QAAD,EAAW,YAAX,EAAyB,SAAzB,EAAoC,OAApC,EAA6C,UAA7C,EAAyDC,GAAzD,CACC,UAACC,KAAD,EAAW;AACT,wBAAO,6BAAC,YAAD;AAAO,MAAA,GAAG,EAAEA,KAAZ;AAAmB,MAAA,KAAK,EAAEA,KAA1B;AAAiC,MAAA,KAAK,EAAEA;AAAxC,MAAP;AACD,GAHF,CADH,CADF,CATF,CADF;AAqBD,CAtBM;;;AAAMN,O;;AAwBN,IAAMO,gBAAgB,GAAG,SAAnBA,gBAAmB,GAAM;AACpC,kBAAiC,qBAAS,QAAT,CAAjC;AAAA;AAAA,MAAON,YAAP;AAAA,MAAqBO,QAArB;;AAEA,sBACE,yEACE,6BAAC,cAAD;AACE,IAAA,EAAE,EAAE,CADN;AAEE,IAAA,OAAO,EAAE,mBAAM;AACbA,MAAAA,QAAQ,CAACP,YAAY,KAAK,QAAjB,GAA4B,MAA5B,GAAqC,QAAtC,CAAR;AACD;AAJH,+BAMyBA,YANzB,CADF,eAUE,6BAAC,sBAAD;AAAY,IAAA,YAAY,EAAEA,YAA1B;AAAwC,IAAA,QAAQ,EAAE,0BAAO,UAAP;AAAlD,kBACE,6BAAC,YAAD;AAAO,IAAA,KAAK,EAAC,MAAb;AAAoB,IAAA,KAAK,EAAC;AAA1B,IADF,eAEE,6BAAC,cAAD;AAAQ,IAAA,EAAE,EAAE;AAAZ,IAFF,eAGE,6BAAC,YAAD;AAAO,IAAA,KAAK,EAAC,QAAb;AAAsB,IAAA,KAAK,EAAC;AAA5B,IAHF,CAVF,CADF;AAkBD,CArBM;;;AAuBPM,gBAAgB,CAACE,KAAjB,GAAyB;AACvBC,EAAAA,IAAI,EAAE;AADiB,CAAzB","sourcesContent":["import { action } from \"@storybook/addon-actions\"\nimport React, { useState } from \"react\"\nimport { States } from \"storybook-states\"\nimport { Spacer } from \"../Spacer\"\nimport { Button } from \"../Button\"\nimport { Radio } from \"../Radio/Radio\"\nimport { RadioGroup, RadioGroupProps } from \"./RadioGroup\"\nimport { Join } from \"../Join\"\n\nexport default {\n title: \"Components/RadioGroup\",\n}\n\nexport const Default = () => {\n return (\n <States<Partial<RadioGroupProps>>\n states={[\n {},\n { defaultValue: \"Aural\" },\n { deselectable: true },\n { disabled: true },\n { disabled: true, disabledText: \"Reason for disabled\" },\n ]}\n >\n <RadioGroup onSelect={action(\"onSelect\")}>\n <Join separator={<Spacer mb={0.5} />}>\n {[\"Visual\", \"Linguistic\", \"Spatial\", \"Aural\", \"Gestural\"].map(\n (value) => {\n return <Radio key={value} value={value} label={value} />\n }\n )}\n </Join>\n </RadioGroup>\n </States>\n )\n}\n\nexport const WithDefaultValue = () => {\n const [defaultValue, setValue] = useState(\"PICKUP\")\n\n return (\n <>\n <Button\n mb={2}\n onClick={() => {\n setValue(defaultValue === \"PICKUP\" ? \"SHIP\" : \"PICKUP\")\n }}\n >\n Toggle default value: {defaultValue}\n </Button>\n\n <RadioGroup defaultValue={defaultValue} onSelect={action(\"onSelect\")}>\n <Radio value=\"SHIP\" label=\"Provide shipping address\" />\n <Spacer mb={0.5} />\n <Radio value=\"PICKUP\" label=\"Arrange for pickup\" />\n </RadioGroup>\n </>\n )\n}\n\nWithDefaultValue.story = {\n name: \"With default value\",\n}\n"],"file":"RadioGroup.story.js"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from "react";
|
|
1
|
+
import React, { ForwardRefExoticComponent, Ref } from "react";
|
|
2
2
|
import { BoxProps } from "../Box";
|
|
3
3
|
import { Variant } from "./types";
|
|
4
4
|
export interface Option {
|
|
@@ -20,6 +20,8 @@ export interface SelectProps extends BoxProps, Omit<React.HTMLAttributes<HTMLSel
|
|
|
20
20
|
onSelect?: (value: string) => void;
|
|
21
21
|
}
|
|
22
22
|
/** A drop-down select menu */
|
|
23
|
-
export declare const Select:
|
|
23
|
+
export declare const Select: ForwardRefExoticComponent<SelectProps & {
|
|
24
|
+
ref?: Ref<HTMLElement>;
|
|
25
|
+
}>;
|
|
24
26
|
/** Creates a small caret */
|
|
25
27
|
export declare const caretMixin: import("styled-components").FlattenInterpolation<any>[];
|
|
@@ -9,7 +9,7 @@ exports.caretMixin = exports.Select = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _themeGet = require("@styled-system/theme-get");
|
|
11
11
|
|
|
12
|
-
var _react =
|
|
12
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
13
13
|
|
|
14
14
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
15
15
|
|
|
@@ -27,8 +27,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
27
27
|
|
|
28
28
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
29
29
|
|
|
30
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
31
|
-
|
|
32
30
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
33
31
|
|
|
34
32
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
@@ -48,7 +46,7 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
|
|
|
48
46
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
49
47
|
|
|
50
48
|
/** A drop-down select menu */
|
|
51
|
-
var Select = function
|
|
49
|
+
var Select = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
52
50
|
var description = _ref.description,
|
|
53
51
|
disabled = _ref.disabled,
|
|
54
52
|
error = _ref.error,
|
|
@@ -99,6 +97,7 @@ var Select = function Select(_ref) {
|
|
|
99
97
|
focus: !!focus,
|
|
100
98
|
mt: variant !== "inline" && (title || description) ? 0.5 : 0
|
|
101
99
|
}, /*#__PURE__*/_react.default.createElement("select", _extends({
|
|
100
|
+
ref: ref,
|
|
102
101
|
id: id,
|
|
103
102
|
disabled: disabled,
|
|
104
103
|
name: name,
|
|
@@ -118,8 +117,7 @@ var Select = function Select(_ref) {
|
|
|
118
117
|
mt: 0.5,
|
|
119
118
|
color: "red100"
|
|
120
119
|
}, error));
|
|
121
|
-
};
|
|
122
|
-
|
|
120
|
+
});
|
|
123
121
|
exports.Select = Select;
|
|
124
122
|
Select.displayName = "Select";
|
|
125
123
|
var resetMixin = (0, _styledComponents.css)(["appearance:none;background:none;border:none;outline:0;text-indent:0.01px;text-overflow:\"\";border-radius:0;&:-moz-focusring{color:transparent;text-shadow:0 0 0 black;}option:not(:checked){color:black;}"]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/Select/Select.tsx"],"names":["Select","description","disabled","error","focus","hover","id","name","options","required","selected","title","variant","onSelect","rest","boxProps","selectProps","flexDirection","alignItems","for","undefined","event","target","value","map","text","resetMixin","css","caretMixin","Container","Box","props","SELECT_STATES","default"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/Select/Select.tsx"],"names":["Select","ref","description","disabled","error","focus","hover","id","name","options","required","selected","title","variant","onSelect","rest","boxProps","selectProps","flexDirection","alignItems","for","undefined","event","target","value","map","text","displayName","resetMixin","css","caretMixin","Container","Box","props","SELECT_STATES","default"],"mappings":"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","sourcesContent":["import { themeGet } from \"@styled-system/theme-get\"\nimport React, { forwardRef, ForwardRefExoticComponent, Ref } from \"react\"\nimport styled, { css } from \"styled-components\"\nimport { Box, BoxProps, splitBoxProps } from \"../Box\"\nimport { Flex } from \"../Flex\"\nimport { Text } from \"../Text\"\nimport { Variant } from \"./types\"\nimport { SELECT_STATES } from \"./tokens\"\n\nexport interface Option {\n value: string\n text: string\n}\n\nexport interface SelectProps\n extends BoxProps,\n Omit<React.HTMLAttributes<HTMLSelectElement>, \"onSelect\"> {\n description?: string\n disabled?: boolean\n error?: string | boolean\n focus?: boolean\n hover?: boolean\n name?: string\n options: Option[]\n required?: boolean\n selected?: string\n title?: string\n variant?: Variant\n onSelect?: (value: string) => void\n}\n\n/** A drop-down select menu */\nexport const Select: ForwardRefExoticComponent<\n SelectProps & { ref?: Ref<HTMLElement> }\n> = forwardRef(\n (\n {\n description,\n disabled,\n error,\n focus,\n hover,\n id,\n name,\n options,\n required,\n selected,\n title,\n variant = \"default\",\n onSelect,\n ...rest\n },\n ref\n ) => {\n const [boxProps, selectProps] = splitBoxProps(rest)\n\n return (\n <Box width=\"100%\" {...boxProps}>\n <Flex\n as=\"label\"\n {...(variant === \"inline\"\n ? {\n flexDirection: \"row\",\n alignItems: \"center\",\n }\n : {\n flexDirection: \"column\",\n alignItems: \"flex-start\",\n })}\n {...(id ? { for: id } : {})}\n >\n <div>\n {title && (\n <Text\n variant=\"xs\"\n lineHeight={\n variant === \"inline\" && description === undefined\n ? 1\n : undefined\n }\n >\n {title}\n {required && (\n <Box as=\"span\" color=\"brand\">\n *\n </Box>\n )}\n </Text>\n )}\n\n {description && (\n <Text variant=\"xs\" color=\"black60\">\n {description}\n </Text>\n )}\n </div>\n\n <Container\n variant={variant}\n disabled={!!disabled}\n hover={!!hover}\n error={error!}\n focus={!!focus}\n mt={variant !== \"inline\" && (title || description) ? 0.5 : 0}\n >\n <select\n ref={ref as any}\n id={id}\n disabled={disabled}\n name={name}\n value={selected}\n onChange={(event) => {\n onSelect && onSelect(event.target.value)\n }}\n {...selectProps}\n >\n {options.map(({ value, text }) => {\n return (\n <option value={value} key={value}>\n {text}\n </option>\n )\n })}\n </select>\n </Container>\n </Flex>\n\n {error && typeof error === \"string\" && (\n <Text variant=\"xs\" mt={0.5} color=\"red100\">\n {error}\n </Text>\n )}\n </Box>\n )\n }\n)\n\nSelect.displayName = \"Select\"\n\nconst resetMixin = css`\n appearance: none;\n background: none;\n border: none;\n outline: 0;\n text-indent: 0.01px;\n text-overflow: \"\";\n border-radius: 0;\n\n &:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 black;\n }\n\n option:not(:checked) {\n color: black; /* prevent <option>s from becoming transparent as well */\n }\n`\n\n/** Creates a small caret */\nexport const caretMixin = css`\n &::after {\n content: \"\";\n cursor: inherit;\n width: 0;\n height: 0;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n right: ${themeGet(\"space.1\")};\n pointer-events: none;\n border-left: 4px solid transparent;\n border-right: 4px solid transparent;\n border-top: 4px solid\n ${({ disabled }) => {\n return disabled\n ? themeGet(\"colors.black10\")\n : themeGet(\"colors.black100\")\n }};\n }\n`\n\ntype ContainerProps = Required<\n Pick<SelectProps, \"variant\" | \"disabled\" | \"error\" | \"hover\" | \"focus\">\n>\n\nconst Container = styled(Box)<ContainerProps>`\n position: relative;\n width: 100%;\n\n > select {\n ${resetMixin};\n width: 100%;\n /* 24px = space.1 + 4px-wide caret + space.1 */\n padding: 0 24px 0 ${themeGet(\"space.1\")};\n font-family: ${themeGet(\"fonts.sans\")};\n border: 0;\n border-bottom: 1px solid;\n cursor: pointer;\n line-height: 1;\n transition: color 0.25s, background-color 0.25s, border-color 0.25s;\n\n ${(props) => {\n return css`\n ${SELECT_STATES.default}\n\n ${props.hover && SELECT_STATES.hover}\n ${props.focus && SELECT_STATES.focus}\n ${props.disabled && SELECT_STATES.disabled}\n ${props.error && SELECT_STATES.error}\n\n &:hover {\n ${SELECT_STATES.hover}\n }\n\n &:focus {\n ${SELECT_STATES.focus}\n }\n\n &:disabled {\n cursor: default;\n ${SELECT_STATES.disabled}\n }\n `\n }};\n }\n\n ${caretMixin}\n`\n"],"file":"Select.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@artsy/palette",
|
|
3
|
-
"version": "24.
|
|
3
|
+
"version": "24.2.0",
|
|
4
4
|
"description": "Design system library for react components",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"publishConfig": {
|
|
@@ -176,5 +176,5 @@
|
|
|
176
176
|
"<rootDir>/www/"
|
|
177
177
|
]
|
|
178
178
|
},
|
|
179
|
-
"gitHead": "
|
|
179
|
+
"gitHead": "315c874858183346ba9e3d3d2f5cdd403251aee7"
|
|
180
180
|
}
|