@conveyorhq/arrow-ds 1.32.0 → 1.33.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/package.json +1 -1
- package/public/components/OptionButton/OptionButton.js +18 -13
- package/public/css/styles.css +18 -0
- package/public/css/styles.min.css +1 -1
- package/public/css/styles.min.css.map +1 -1
- package/src/components/OptionButton/OptionButton.story.mdx +91 -36
- package/src/components/OptionButton/OptionButton.tsx +19 -18
- package/src/components/OptionButton/index.css +13 -0
- package/src/docs/Colors.story.mdx +1 -1
- package/src/docs/Spacing.story.mdx +1 -1
- package/src/docs/Typography.story.mdx +1 -1
package/package.json
CHANGED
|
@@ -16,7 +16,7 @@ const bem_1 = require("../../utilities/bem");
|
|
|
16
16
|
const isUndefined_1 = __importDefault(require("../../utilities/isUndefined"));
|
|
17
17
|
const types_1 = require("../../types");
|
|
18
18
|
const context_1 = require("./context");
|
|
19
|
-
const cn = "OptionButton";
|
|
19
|
+
const cn = bem_1.bemHOF("OptionButton");
|
|
20
20
|
const OptionButtonGroup = (props) => {
|
|
21
21
|
const { name = "", type = "radio", orientation = types_1.ORIENTATION.VERTICAL, ...rest } = props;
|
|
22
22
|
return (react_1.default.createElement(context_1.OptionButtonContext.Provider, { value: {
|
|
@@ -27,7 +27,7 @@ const OptionButtonGroup = (props) => {
|
|
|
27
27
|
};
|
|
28
28
|
exports.OptionButtonGroup = OptionButtonGroup;
|
|
29
29
|
const OptionButtonRoot = ({ children, className, ...rest }) => {
|
|
30
|
-
return (react_1.default.createElement("label", Object.assign({ className: classnames_1.default(
|
|
30
|
+
return (react_1.default.createElement("label", Object.assign({ className: classnames_1.default(cn(), className) }, rest), children));
|
|
31
31
|
};
|
|
32
32
|
exports.OptionButtonRoot = OptionButtonRoot;
|
|
33
33
|
const OptionButtonInput = (props) => {
|
|
@@ -37,33 +37,38 @@ const OptionButtonInput = (props) => {
|
|
|
37
37
|
const id = isUndefined_1.default(idProp) ? fallbackId : idProp;
|
|
38
38
|
const name = isUndefined_1.default(nameFromContext) ? nameProp : nameFromContext;
|
|
39
39
|
const type = isUndefined_1.default(typeFromContext) ? typeProp : typeFromContext;
|
|
40
|
-
return (react_1.default.createElement(Input_1.Input, Object.assign({ id: id, name: name, type: type, checked: checked, className: classnames_1.default([
|
|
40
|
+
return (react_1.default.createElement(Input_1.Input, Object.assign({ id: id, name: name, type: type, checked: checked, className: classnames_1.default([cn({ e: "input" }), className]), defaultValue: defaultValue, "aria-checked": checked ? "true" : "false" }, rest)));
|
|
41
41
|
};
|
|
42
42
|
exports.OptionButtonInput = OptionButtonInput;
|
|
43
|
-
const OptionButtonContent = ({ className, children, ...rest }) => (react_1.default.createElement(Box_1.Box, Object.assign({ className: classnames_1.default([
|
|
43
|
+
const OptionButtonContent = ({ className, children, ...rest }) => (react_1.default.createElement(Box_1.Box, Object.assign({ className: classnames_1.default([cn({ e: "content" }), className]) }, rest), children));
|
|
44
44
|
exports.OptionButtonContent = OptionButtonContent;
|
|
45
|
-
const OptionButtonHeading = ({ className, children, ...rest }) => (react_1.default.createElement(Text_1.Text, Object.assign({ as: "div", className: classnames_1.default([
|
|
45
|
+
const OptionButtonHeading = ({ className, children, ...rest }) => (react_1.default.createElement(Text_1.Text, Object.assign({ as: "div", className: classnames_1.default([cn({ e: "heading" }), className]) }, rest), children));
|
|
46
46
|
exports.OptionButtonHeading = OptionButtonHeading;
|
|
47
|
-
const OptionButtonDescription = ({ className, children, ...rest }) => (react_1.default.createElement(Text_1.Text, Object.assign({ as: "div", className: classnames_1.default([
|
|
47
|
+
const OptionButtonDescription = ({ className, children, ...rest }) => (react_1.default.createElement(Text_1.Text, Object.assign({ as: "div", className: classnames_1.default([cn({ e: "description" }), className]) }, rest), children));
|
|
48
48
|
exports.OptionButtonDescription = OptionButtonDescription;
|
|
49
|
-
const OptionButtonBackdrop = ({ className, ...rest }) => (react_1.default.createElement(Box_1.Box, Object.assign({ className: classnames_1.default([
|
|
49
|
+
const OptionButtonBackdrop = ({ className, ...rest }) => (react_1.default.createElement(Box_1.Box, Object.assign({ className: classnames_1.default([cn({ e: "backdrop" }), className]) }, rest)));
|
|
50
50
|
exports.OptionButtonBackdrop = OptionButtonBackdrop;
|
|
51
|
-
const OptionButtonSelectedIcon = ({ className, ...rest }) => (react_1.default.createElement(Box_1.Box, Object.assign({ className: classnames_1.default([
|
|
52
|
-
react_1.default.createElement(Icon_1.Icon, { className:
|
|
51
|
+
const OptionButtonSelectedIcon = ({ className, ...rest }) => (react_1.default.createElement(Box_1.Box, Object.assign({ className: classnames_1.default([cn({ e: "selected" }), className]) }, rest),
|
|
52
|
+
react_1.default.createElement(Icon_1.Icon, { className: cn({ e: "icon" }), icon: Icon_1.ICON_TYPE.CHECK }),
|
|
53
53
|
"Selected"));
|
|
54
54
|
exports.OptionButtonSelectedIcon = OptionButtonSelectedIcon;
|
|
55
55
|
const OptionButton = (props) => {
|
|
56
56
|
const { name: nameFromContext, type: typeFromContext, } = context_1.useOptionButtonContext();
|
|
57
|
-
const { heading, description, id: idProp, name: nameProp, checked, className, defaultValue, type: typeProp = "radio", ...rest } = props;
|
|
58
|
-
const fallbackId = `OptionButton
|
|
57
|
+
const { heading, description, id: idProp, name: nameProp, checked, className, defaultValue, type: typeProp = "radio", disabled = false, ...rest } = props;
|
|
58
|
+
const fallbackId = `OptionButton-${auto_id_1.useId()}`;
|
|
59
59
|
const id = isUndefined_1.default(idProp) ? fallbackId : idProp;
|
|
60
60
|
const name = isUndefined_1.default(nameFromContext) ? nameProp : nameFromContext;
|
|
61
61
|
const type = isUndefined_1.default(typeFromContext) ? typeProp : typeFromContext;
|
|
62
|
-
|
|
62
|
+
const rootClassName = classnames_1.default([
|
|
63
|
+
cn(),
|
|
64
|
+
disabled && cn({ m: "disabled" }),
|
|
65
|
+
className,
|
|
66
|
+
]);
|
|
67
|
+
return (react_1.default.createElement(exports.OptionButtonRoot, { className: rootClassName },
|
|
63
68
|
react_1.default.createElement(exports.OptionButtonContent, null,
|
|
64
69
|
heading && react_1.default.createElement(exports.OptionButtonHeading, null, heading),
|
|
65
70
|
description && (react_1.default.createElement(exports.OptionButtonDescription, null, description))),
|
|
66
|
-
react_1.default.createElement(exports.OptionButtonInput, Object.assign({ id: id, name: name, type: type, checked: checked, defaultValue: defaultValue, "aria-checked": checked ? "true" : "false" }, rest)),
|
|
71
|
+
react_1.default.createElement(exports.OptionButtonInput, Object.assign({ id: id, name: name, type: type, checked: checked, defaultValue: defaultValue, "aria-checked": checked ? "true" : "false", disabled: disabled }, rest)),
|
|
67
72
|
react_1.default.createElement(exports.OptionButtonBackdrop, null),
|
|
68
73
|
react_1.default.createElement(exports.OptionButtonSelectedIcon, null)));
|
|
69
74
|
};
|
package/public/css/styles.css
CHANGED
|
@@ -4629,6 +4629,10 @@ override built-in Image component classes */
|
|
|
4629
4629
|
flex: 1 1 0;
|
|
4630
4630
|
}
|
|
4631
4631
|
|
|
4632
|
+
.ads-OptionButton--disabled {
|
|
4633
|
+
cursor: not-allowed;
|
|
4634
|
+
}
|
|
4635
|
+
|
|
4632
4636
|
.ads-OptionButton-content {
|
|
4633
4637
|
position: relative;
|
|
4634
4638
|
z-index: 1;
|
|
@@ -4652,6 +4656,11 @@ override built-in Image component classes */
|
|
|
4652
4656
|
color: rgb(71 104 125 / var(--tw-text-opacity));
|
|
4653
4657
|
}
|
|
4654
4658
|
|
|
4659
|
+
.ads-OptionButton--disabled .ads-OptionButton-heading, .ads-OptionButton--disabled .ads-OptionButton-description {
|
|
4660
|
+
--tw-text-opacity: 1;
|
|
4661
|
+
color: rgb(134 163 181 / var(--tw-text-opacity));
|
|
4662
|
+
}
|
|
4663
|
+
|
|
4655
4664
|
.ads-OptionButton-input {
|
|
4656
4665
|
border: 0;
|
|
4657
4666
|
clip: rect(1px, 1px, 1px, 1px);
|
|
@@ -4699,6 +4708,11 @@ override built-in Image component classes */
|
|
|
4699
4708
|
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
|
|
4700
4709
|
}
|
|
4701
4710
|
|
|
4711
|
+
.ads-OptionButton--disabled .ads-OptionButton-backdrop {
|
|
4712
|
+
--tw-bg-opacity: 1;
|
|
4713
|
+
background-color: rgb(237 243 247 / var(--tw-bg-opacity));
|
|
4714
|
+
}
|
|
4715
|
+
|
|
4702
4716
|
.ads-OptionButton-selected {
|
|
4703
4717
|
position: absolute;
|
|
4704
4718
|
left: 0;
|
|
@@ -8673,6 +8687,10 @@ override built-in Image component classes */
|
|
|
8673
8687
|
-moz-osx-font-smoothing: grayscale;
|
|
8674
8688
|
}
|
|
8675
8689
|
|
|
8690
|
+
.opacity-50 {
|
|
8691
|
+
opacity: 0.5;
|
|
8692
|
+
}
|
|
8693
|
+
|
|
8676
8694
|
.opacity-40 {
|
|
8677
8695
|
opacity: 0.4;
|
|
8678
8696
|
}
|