baseui 16.0.0 → 16.1.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/checkbox-v2/checkbox.d.ts +7 -0
- package/checkbox-v2/checkbox.js +202 -0
- package/checkbox-v2/constants.d.ts +7 -0
- package/checkbox-v2/constants.js +23 -0
- package/checkbox-v2/index.d.ts +6 -0
- package/checkbox-v2/index.js +95 -0
- package/checkbox-v2/stateful-checkbox-container.d.ts +3 -0
- package/checkbox-v2/stateful-checkbox-container.js +102 -0
- package/checkbox-v2/stateful-checkbox.d.ts +7 -0
- package/checkbox-v2/stateful-checkbox.js +26 -0
- package/checkbox-v2/styled-components.d.ts +6 -0
- package/checkbox-v2/styled-components.js +263 -0
- package/checkbox-v2/types.d.ts +163 -0
- package/checkbox-v2/types.js +1 -0
- package/package.json +1 -1
- package/switch/constants.d.ts +11 -0
- package/switch/constants.js +24 -0
- package/switch/index.d.ts +6 -0
- package/switch/index.js +102 -0
- package/switch/stateful-switch-container.d.ts +3 -0
- package/switch/stateful-switch-container.js +97 -0
- package/switch/stateful-switch.d.ts +7 -0
- package/switch/stateful-switch.js +26 -0
- package/switch/styled-components.d.ts +6 -0
- package/switch/styled-components.js +264 -0
- package/switch/switch.d.ts +4 -0
- package/switch/switch.js +199 -0
- package/switch/types.d.ts +145 -0
- package/switch/types.js +1 -0
- package/themes/dark-theme/color-semantic-tokens.js +14 -1
- package/themes/light-theme/color-semantic-tokens.js +14 -1
- package/themes/types.d.ts +12 -0
- package/tokens/color-primitive-tokens.js +23 -1
- package/tokens/types.d.ts +20 -0
- package/utils/get-shared-styles.d.ts +13 -0
- package/utils/get-shared-styles.js +37 -0
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var React = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _overrides = require("../helpers/overrides");
|
|
9
|
+
var _styledComponents = require("./styled-components");
|
|
10
|
+
var _focusVisible = require("../utils/focusVisible");
|
|
11
|
+
var _constants = require("./constants");
|
|
12
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
13
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
14
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); } /*
|
|
15
|
+
Copyright (c) Uber Technologies, Inc.
|
|
16
|
+
|
|
17
|
+
This source code is licensed under the MIT license found in the
|
|
18
|
+
LICENSE file in the root directory of this source tree.
|
|
19
|
+
*/
|
|
20
|
+
const stopPropagation = e => e.stopPropagation();
|
|
21
|
+
const Checkbox = props => {
|
|
22
|
+
const {
|
|
23
|
+
overrides = {},
|
|
24
|
+
checked = false,
|
|
25
|
+
containsInteractiveElement = false,
|
|
26
|
+
disabled = false,
|
|
27
|
+
autoFocus = false,
|
|
28
|
+
isIndeterminate = false,
|
|
29
|
+
error = false,
|
|
30
|
+
labelPlacement = _constants.LABEL_PLACEMENT.right,
|
|
31
|
+
onChange = () => {},
|
|
32
|
+
onMouseEnter = () => {},
|
|
33
|
+
onMouseLeave = () => {},
|
|
34
|
+
onMouseDown = () => {},
|
|
35
|
+
onMouseUp = () => {},
|
|
36
|
+
onFocus = () => {},
|
|
37
|
+
onBlur = () => {},
|
|
38
|
+
onKeyDown,
|
|
39
|
+
// don't add fallback no-op to allow native keydown behavior if not customized.
|
|
40
|
+
onKeyUp,
|
|
41
|
+
// don't add fallback no-op to allow native keyup behavior if not customized.
|
|
42
|
+
value,
|
|
43
|
+
id,
|
|
44
|
+
name,
|
|
45
|
+
children,
|
|
46
|
+
required,
|
|
47
|
+
title,
|
|
48
|
+
inputRef
|
|
49
|
+
} = props;
|
|
50
|
+
const [isFocused, setIsFocused] = React.useState(autoFocus);
|
|
51
|
+
const [isFocusVisible, setIsFocusVisible] = React.useState(false);
|
|
52
|
+
const [isHovered, setIsHovered] = React.useState(false);
|
|
53
|
+
const [isActive, setIsActive] = React.useState(false);
|
|
54
|
+
const fallbackInputRef = React.useRef(null);
|
|
55
|
+
const internalInputRef = inputRef || fallbackInputRef;
|
|
56
|
+
React.useEffect(() => {
|
|
57
|
+
if (autoFocus) {
|
|
58
|
+
internalInputRef.current?.focus();
|
|
59
|
+
}
|
|
60
|
+
}, [autoFocus, internalInputRef]);
|
|
61
|
+
React.useEffect(() => {
|
|
62
|
+
if (internalInputRef.current) {
|
|
63
|
+
// Have to disable eslint for this case since indeterminate can only be set via JS
|
|
64
|
+
// We don't need to explicitly add aria-checked because the checked attribute and this indeterminate property have the same effect
|
|
65
|
+
// eslint-disable-next-line react-compiler/react-compiler
|
|
66
|
+
internalInputRef.current.indeterminate = isIndeterminate;
|
|
67
|
+
}
|
|
68
|
+
}, [isIndeterminate, internalInputRef]);
|
|
69
|
+
const onMouseEnterHandler = React.useCallback(e => {
|
|
70
|
+
setIsHovered(true);
|
|
71
|
+
onMouseEnter(e);
|
|
72
|
+
}, [onMouseEnter]);
|
|
73
|
+
const onMouseLeaveHandler = React.useCallback(e => {
|
|
74
|
+
setIsHovered(false);
|
|
75
|
+
setIsActive(false);
|
|
76
|
+
onMouseLeave(e);
|
|
77
|
+
}, [onMouseLeave]);
|
|
78
|
+
const onMouseDownHandler = React.useCallback(e => {
|
|
79
|
+
setIsActive(true);
|
|
80
|
+
onMouseDown(e);
|
|
81
|
+
}, [onMouseDown]);
|
|
82
|
+
const onMouseUpHandler = React.useCallback(e => {
|
|
83
|
+
setIsActive(false);
|
|
84
|
+
onMouseUp(e);
|
|
85
|
+
}, [onMouseUp]);
|
|
86
|
+
const onFocusHandler = React.useCallback(e => {
|
|
87
|
+
setIsFocused(true);
|
|
88
|
+
onFocus(e);
|
|
89
|
+
if ((0, _focusVisible.isFocusVisible)(e)) {
|
|
90
|
+
setIsFocusVisible(true);
|
|
91
|
+
}
|
|
92
|
+
}, [onFocus]);
|
|
93
|
+
const onBlurHandler = React.useCallback(e => {
|
|
94
|
+
setIsFocused(false);
|
|
95
|
+
onBlur(e);
|
|
96
|
+
if (!(0, _focusVisible.isFocusVisible)(e)) {
|
|
97
|
+
setIsFocusVisible(false);
|
|
98
|
+
}
|
|
99
|
+
}, [onBlur]);
|
|
100
|
+
const onKeyUpHandler = React.useCallback(event => {
|
|
101
|
+
/**
|
|
102
|
+
* Handles 'Enter' key press to toggle the checkbox.
|
|
103
|
+
*/
|
|
104
|
+
|
|
105
|
+
if (event.key === ' ') {
|
|
106
|
+
setIsActive(false);
|
|
107
|
+
}
|
|
108
|
+
if (event.key === 'Enter') {
|
|
109
|
+
setIsActive(false);
|
|
110
|
+
onChange?.({
|
|
111
|
+
...event,
|
|
112
|
+
currentTarget: {
|
|
113
|
+
...event.currentTarget,
|
|
114
|
+
checked: !checked
|
|
115
|
+
},
|
|
116
|
+
target: {
|
|
117
|
+
...event.target,
|
|
118
|
+
checked: !checked
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
onKeyUp?.(event);
|
|
123
|
+
}, [onKeyUp, onChange, checked]);
|
|
124
|
+
const onKeyDownHandler = React.useCallback(event => {
|
|
125
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
126
|
+
setIsActive(true);
|
|
127
|
+
}
|
|
128
|
+
onKeyDown?.(event);
|
|
129
|
+
}, [onKeyDown]);
|
|
130
|
+
const {
|
|
131
|
+
Root: RootOverride,
|
|
132
|
+
Checkmark: CheckmarkOverride,
|
|
133
|
+
Label: LabelOverride,
|
|
134
|
+
Input: InputOverride,
|
|
135
|
+
CheckmarkContainer: CheckmarkContainerOverride
|
|
136
|
+
} = overrides;
|
|
137
|
+
const Root = (0, _overrides.getOverride)(RootOverride) || _styledComponents.Root;
|
|
138
|
+
const CheckmarkContainer = (0, _overrides.getOverride)(CheckmarkContainerOverride) || _styledComponents.CheckmarkContainer;
|
|
139
|
+
const Checkmark = (0, _overrides.getOverride)(CheckmarkOverride) || _styledComponents.Checkmark;
|
|
140
|
+
const Label = (0, _overrides.getOverride)(LabelOverride) || _styledComponents.Label;
|
|
141
|
+
const Input = (0, _overrides.getOverride)(InputOverride) || _styledComponents.Input;
|
|
142
|
+
const inputEvents = {
|
|
143
|
+
onChange,
|
|
144
|
+
onFocus: onFocusHandler,
|
|
145
|
+
onBlur: onBlurHandler,
|
|
146
|
+
onKeyDown: onKeyDownHandler,
|
|
147
|
+
onKeyUp: onKeyUpHandler
|
|
148
|
+
};
|
|
149
|
+
const mouseEvents = {
|
|
150
|
+
onMouseEnter: onMouseEnterHandler,
|
|
151
|
+
onMouseLeave: onMouseLeaveHandler,
|
|
152
|
+
onMouseDown: onMouseDownHandler,
|
|
153
|
+
onMouseUp: onMouseUpHandler
|
|
154
|
+
};
|
|
155
|
+
const sharedProps = {
|
|
156
|
+
$isFocused: isFocused,
|
|
157
|
+
$isFocusVisible: isFocusVisible,
|
|
158
|
+
$isHovered: isHovered,
|
|
159
|
+
$isActive: isActive,
|
|
160
|
+
$error: error,
|
|
161
|
+
$checked: checked,
|
|
162
|
+
$isIndeterminate: isIndeterminate,
|
|
163
|
+
$required: required,
|
|
164
|
+
$disabled: disabled,
|
|
165
|
+
$value: value
|
|
166
|
+
};
|
|
167
|
+
const labelComp = children && /*#__PURE__*/React.createElement(Label, _extends({
|
|
168
|
+
$labelPlacement: labelPlacement
|
|
169
|
+
}, sharedProps, (0, _overrides.getOverrideProps)(LabelOverride)), containsInteractiveElement ?
|
|
170
|
+
/*#__PURE__*/
|
|
171
|
+
// Prevents the event from bubbling up to the label and moving focus to the radio button
|
|
172
|
+
// eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
|
|
173
|
+
React.createElement("div", {
|
|
174
|
+
onClick: e => e.preventDefault()
|
|
175
|
+
}, children) : children);
|
|
176
|
+
return /*#__PURE__*/React.createElement(Root, _extends({
|
|
177
|
+
"data-baseweb": "checkbox-v2",
|
|
178
|
+
title: title || null,
|
|
179
|
+
$labelPlacement: labelPlacement
|
|
180
|
+
}, sharedProps, mouseEvents, (0, _overrides.getOverrideProps)(RootOverride)), labelPlacement === _constants.LABEL_PLACEMENT.left && labelComp, /*#__PURE__*/React.createElement(CheckmarkContainer, _extends({}, sharedProps, (0, _overrides.getOverrideProps)(CheckmarkContainerOverride)), /*#__PURE__*/React.createElement(Checkmark, _extends({}, sharedProps, (0, _overrides.getOverrideProps)(CheckmarkOverride)))), /*#__PURE__*/React.createElement(Input, _extends({
|
|
181
|
+
value: value,
|
|
182
|
+
id: id,
|
|
183
|
+
name: name,
|
|
184
|
+
checked: checked,
|
|
185
|
+
required: required,
|
|
186
|
+
"aria-label": props['aria-label'] || props.ariaLabel,
|
|
187
|
+
"aria-describedby": props['aria-describedby'],
|
|
188
|
+
"aria-errormessage": props['aria-errormessage'],
|
|
189
|
+
"aria-invalid": error || null,
|
|
190
|
+
"aria-required": required || null,
|
|
191
|
+
"aria-controls": props['aria-controls'] || null,
|
|
192
|
+
disabled: disabled,
|
|
193
|
+
type: "checkbox",
|
|
194
|
+
ref: internalInputRef
|
|
195
|
+
// Prevent a second click event from firing when label is clicked.
|
|
196
|
+
// See https://github.com/uber/baseweb/issues/3847
|
|
197
|
+
,
|
|
198
|
+
onClick: stopPropagation
|
|
199
|
+
}, sharedProps, inputEvents, (0, _overrides.getOverrideProps)(InputOverride))), labelPlacement === _constants.LABEL_PLACEMENT.right && labelComp);
|
|
200
|
+
};
|
|
201
|
+
Checkbox.displayName = 'Checkbox';
|
|
202
|
+
var _default = exports.default = Checkbox;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.STATE_TYPE = exports.LABEL_PLACEMENT = void 0;
|
|
7
|
+
/*
|
|
8
|
+
Copyright (c) Uber Technologies, Inc.
|
|
9
|
+
|
|
10
|
+
This source code is licensed under the MIT license found in the
|
|
11
|
+
LICENSE file in the root directory of this source tree.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
const STATE_TYPE = exports.STATE_TYPE = {
|
|
15
|
+
change: 'CHANGE'
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
// Note: top and bottom label placements are deprecated from checkbox v2.
|
|
19
|
+
// Alternatives: Change design to use left or right placement; use checkbox control only and add your own container and label to realize the top/bottom placements
|
|
20
|
+
const LABEL_PLACEMENT = exports.LABEL_PLACEMENT = Object.freeze({
|
|
21
|
+
right: 'right',
|
|
22
|
+
left: 'left'
|
|
23
|
+
});
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { default as StatefulCheckbox } from './stateful-checkbox';
|
|
2
|
+
export { default as StatefulContainer } from './stateful-checkbox-container';
|
|
3
|
+
export { default as Checkbox } from './checkbox';
|
|
4
|
+
export { Root as StyledRoot, Checkmark as StyledCheckmark, CheckmarkContainer as StyledCheckmarkContainer, Label as StyledLabel, Input as StyledInput, } from './styled-components';
|
|
5
|
+
export { STATE_TYPE, LABEL_PLACEMENT } from './constants';
|
|
6
|
+
export * from './types';
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
StatefulCheckbox: true,
|
|
8
|
+
StatefulContainer: true,
|
|
9
|
+
Checkbox: true,
|
|
10
|
+
StyledRoot: true,
|
|
11
|
+
StyledCheckmark: true,
|
|
12
|
+
StyledCheckmarkContainer: true,
|
|
13
|
+
StyledLabel: true,
|
|
14
|
+
StyledInput: true,
|
|
15
|
+
STATE_TYPE: true,
|
|
16
|
+
LABEL_PLACEMENT: true
|
|
17
|
+
};
|
|
18
|
+
Object.defineProperty(exports, "Checkbox", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _checkbox.default;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "LABEL_PLACEMENT", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _constants.LABEL_PLACEMENT;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "STATE_TYPE", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _constants.STATE_TYPE;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "StatefulCheckbox", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _statefulCheckbox.default;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports, "StatefulContainer", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function () {
|
|
45
|
+
return _statefulCheckboxContainer.default;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(exports, "StyledCheckmark", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function () {
|
|
51
|
+
return _styledComponents.Checkmark;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
Object.defineProperty(exports, "StyledCheckmarkContainer", {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function () {
|
|
57
|
+
return _styledComponents.CheckmarkContainer;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
Object.defineProperty(exports, "StyledInput", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
get: function () {
|
|
63
|
+
return _styledComponents.Input;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
Object.defineProperty(exports, "StyledLabel", {
|
|
67
|
+
enumerable: true,
|
|
68
|
+
get: function () {
|
|
69
|
+
return _styledComponents.Label;
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
Object.defineProperty(exports, "StyledRoot", {
|
|
73
|
+
enumerable: true,
|
|
74
|
+
get: function () {
|
|
75
|
+
return _styledComponents.Root;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
var _statefulCheckbox = _interopRequireDefault(require("./stateful-checkbox"));
|
|
79
|
+
var _statefulCheckboxContainer = _interopRequireDefault(require("./stateful-checkbox-container"));
|
|
80
|
+
var _checkbox = _interopRequireDefault(require("./checkbox"));
|
|
81
|
+
var _styledComponents = require("./styled-components");
|
|
82
|
+
var _constants = require("./constants");
|
|
83
|
+
var _types = require("./types");
|
|
84
|
+
Object.keys(_types).forEach(function (key) {
|
|
85
|
+
if (key === "default" || key === "__esModule") return;
|
|
86
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
87
|
+
if (key in exports && exports[key] === _types[key]) return;
|
|
88
|
+
Object.defineProperty(exports, key, {
|
|
89
|
+
enumerable: true,
|
|
90
|
+
get: function () {
|
|
91
|
+
return _types[key];
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var React = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _constants = require("./constants");
|
|
9
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
10
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
11
|
+
/*
|
|
12
|
+
Copyright (c) Uber Technologies, Inc.
|
|
13
|
+
|
|
14
|
+
This source code is licensed under the MIT license found in the
|
|
15
|
+
LICENSE file in the root directory of this source tree.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
const defaultStateReducer = (type, nextState, currentState) => ({
|
|
19
|
+
...currentState,
|
|
20
|
+
...nextState
|
|
21
|
+
});
|
|
22
|
+
const StatefulCheckboxContainer = props => {
|
|
23
|
+
const {
|
|
24
|
+
initialState = {
|
|
25
|
+
checked: false,
|
|
26
|
+
isIndeterminate: false
|
|
27
|
+
},
|
|
28
|
+
stateReducer = defaultStateReducer,
|
|
29
|
+
onChange = () => {},
|
|
30
|
+
onMouseEnter = () => {},
|
|
31
|
+
onMouseLeave = () => {},
|
|
32
|
+
onMouseDown = () => {},
|
|
33
|
+
onMouseUp = () => {},
|
|
34
|
+
onFocus = () => {},
|
|
35
|
+
onBlur = () => {},
|
|
36
|
+
onKeyDown = () => {},
|
|
37
|
+
onKeyUp = () => {},
|
|
38
|
+
children = childProps => null,
|
|
39
|
+
...restProps
|
|
40
|
+
} = props;
|
|
41
|
+
const [checked, setChecked] = React.useState(initialState.checked);
|
|
42
|
+
const [isIndeterminate, setIsIndeterminate] = React.useState(initialState.isIndeterminate);
|
|
43
|
+
const updateState = React.useCallback((type, e) => {
|
|
44
|
+
let nextState = {};
|
|
45
|
+
switch (type) {
|
|
46
|
+
case _constants.STATE_TYPE.change:
|
|
47
|
+
nextState = {
|
|
48
|
+
checked: e.target.checked
|
|
49
|
+
};
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
const newState = stateReducer(type, nextState, {
|
|
53
|
+
checked,
|
|
54
|
+
isIndeterminate
|
|
55
|
+
}, e);
|
|
56
|
+
setChecked(newState.checked);
|
|
57
|
+
setIsIndeterminate(newState.isIndeterminate);
|
|
58
|
+
}, [checked, isIndeterminate, stateReducer]);
|
|
59
|
+
const onChangeHandler = React.useCallback(e => {
|
|
60
|
+
updateState(_constants.STATE_TYPE.change, e);
|
|
61
|
+
onChange && onChange(e);
|
|
62
|
+
}, [updateState, onChange]);
|
|
63
|
+
const onMouseEnterHandler = React.useCallback(e => {
|
|
64
|
+
onMouseEnter && onMouseEnter(e);
|
|
65
|
+
}, [onMouseEnter]);
|
|
66
|
+
const onMouseLeaveHandler = React.useCallback(e => {
|
|
67
|
+
onMouseLeave && onMouseLeave(e);
|
|
68
|
+
}, [onMouseLeave]);
|
|
69
|
+
const onFocusHandler = React.useCallback(e => {
|
|
70
|
+
onFocus && onFocus(e);
|
|
71
|
+
}, [onFocus]);
|
|
72
|
+
const onBlurHandler = React.useCallback(e => {
|
|
73
|
+
onBlur && onBlur(e);
|
|
74
|
+
}, [onBlur]);
|
|
75
|
+
const onMouseDownHandler = React.useCallback(e => {
|
|
76
|
+
onMouseDown && onMouseDown(e);
|
|
77
|
+
}, [onMouseDown]);
|
|
78
|
+
const onMouseUpHandler = React.useCallback(e => {
|
|
79
|
+
onMouseUp && onMouseUp(e);
|
|
80
|
+
}, [onMouseUp]);
|
|
81
|
+
const onKeyDownHandler = React.useCallback(event => {
|
|
82
|
+
onKeyDown && onKeyDown(event);
|
|
83
|
+
}, [onKeyDown]);
|
|
84
|
+
const onKeyUpHandler = React.useCallback(event => {
|
|
85
|
+
onKeyUp && onKeyUp(event);
|
|
86
|
+
}, [onKeyUp]);
|
|
87
|
+
return children({
|
|
88
|
+
...restProps,
|
|
89
|
+
checked,
|
|
90
|
+
isIndeterminate,
|
|
91
|
+
onChange: onChangeHandler,
|
|
92
|
+
onMouseEnter: onMouseEnterHandler,
|
|
93
|
+
onMouseLeave: onMouseLeaveHandler,
|
|
94
|
+
onMouseDown: onMouseDownHandler,
|
|
95
|
+
onMouseUp: onMouseUpHandler,
|
|
96
|
+
onFocus: onFocusHandler,
|
|
97
|
+
onBlur: onBlurHandler,
|
|
98
|
+
onKeyDown: onKeyDownHandler,
|
|
99
|
+
onKeyUp: onKeyUpHandler
|
|
100
|
+
});
|
|
101
|
+
};
|
|
102
|
+
var _default = exports.default = StatefulCheckboxContainer;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var React = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _statefulCheckboxContainer = _interopRequireDefault(require("./stateful-checkbox-container"));
|
|
9
|
+
var _checkbox = _interopRequireDefault(require("./checkbox"));
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
|
+
/*
|
|
14
|
+
Copyright (c) Uber Technologies, Inc.
|
|
15
|
+
|
|
16
|
+
This source code is licensed under the MIT license found in the
|
|
17
|
+
LICENSE file in the root directory of this source tree.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
// Styled elements
|
|
21
|
+
|
|
22
|
+
const StatefulCheckbox = function (props) {
|
|
23
|
+
return /*#__PURE__*/React.createElement(_statefulCheckboxContainer.default, props, childrenProps => /*#__PURE__*/React.createElement(_checkbox.default, childrenProps, props.children));
|
|
24
|
+
};
|
|
25
|
+
StatefulCheckbox.displayName = 'StatefulCheckbox';
|
|
26
|
+
var _default = exports.default = StatefulCheckbox;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { SharedStyleProps } from './types';
|
|
2
|
+
export declare const Root: import("styletron-react").StyletronComponent<"label", SharedStyleProps>;
|
|
3
|
+
export declare const CheckmarkContainer: import("styletron-react").StyletronComponent<"span", SharedStyleProps>;
|
|
4
|
+
export declare const Checkmark: import("styletron-react").StyletronComponent<"span", SharedStyleProps>;
|
|
5
|
+
export declare const Label: import("styletron-react").StyletronComponent<"div", SharedStyleProps>;
|
|
6
|
+
export declare const Input: import("styletron-react").StyletronComponent<"input", {}>;
|