@nulogy/components 15.1.3 → 15.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/README.md +4 -6
- package/dist/main.js +76 -111
- package/dist/main.module.js +76 -111
- package/dist/src/FieldLabel/FieldLabel.story.js +1 -1
- package/dist/src/FieldLabel/Label.d.ts +3 -0
- package/dist/src/FieldLabel/Label.js +2 -1
- package/dist/src/Toggle/Toggle.d.ts +34 -6
- package/dist/src/Toggle/Toggle.js +39 -47
- package/dist/src/Toggle/Toggle.story.d.ts +10 -26
- package/dist/src/Toggle/Toggle.story.js +38 -34
- package/dist/src/Toggle/ToggleButton.d.ts +2 -4
- package/dist/src/Toggle/ToggleButton.js +19 -16
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -40,20 +40,18 @@ Note that loading fonts from Google API is just an example and not the most perf
|
|
|
40
40
|
|
|
41
41
|
Wrap your application in the NDSProvider component to access Nulogy's theme values and add typographic defaults.
|
|
42
42
|
|
|
43
|
-
```
|
|
43
|
+
```jsx
|
|
44
44
|
import React from "react";
|
|
45
45
|
import { NDSProvider } from "@nulogy/components";
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
return <NDSProvider>// your application</NDSProvider>;
|
|
50
|
-
}
|
|
47
|
+
export default function App() {
|
|
48
|
+
return <NDSProvider>// your application</NDSProvider>;
|
|
51
49
|
}
|
|
52
50
|
```
|
|
53
51
|
|
|
54
52
|
### 3. Import desired components
|
|
55
53
|
|
|
56
|
-
```
|
|
54
|
+
```jsx
|
|
57
55
|
import { Button } from "@nulogy/components";
|
|
58
56
|
|
|
59
57
|
const SomeView = () => <Button>Click me</Button>;
|
package/dist/main.js
CHANGED
|
@@ -25973,10 +25973,12 @@
|
|
|
25973
25973
|
componentId: "sc-lf392x-0"
|
|
25974
25974
|
})(function (_ref) {
|
|
25975
25975
|
var _ref$color = _ref.color,
|
|
25976
|
-
color = _ref$color === void 0 ? "black" : _ref$color
|
|
25976
|
+
color = _ref$color === void 0 ? "black" : _ref$color,
|
|
25977
|
+
disabled = _ref.disabled;
|
|
25977
25978
|
return {
|
|
25978
25979
|
color: color,
|
|
25979
|
-
display: "inline-block"
|
|
25980
|
+
display: "inline-block",
|
|
25981
|
+
cursor: disabled ? undefined : "pointer"
|
|
25980
25982
|
};
|
|
25981
25983
|
}, display, space, color);
|
|
25982
25984
|
|
|
@@ -51418,14 +51420,14 @@
|
|
|
51418
51420
|
marginBottom: theme.space.x1
|
|
51419
51421
|
}
|
|
51420
51422
|
}, /*#__PURE__*/React__default["default"].createElement("span", {
|
|
51421
|
-
style: labelTextStyles
|
|
51423
|
+
style: labelTextStyles(theme)
|
|
51422
51424
|
}, labelText), requirementText && /*#__PURE__*/React__default["default"].createElement(RequirementText, null, requirementText)), helpText && /*#__PURE__*/React__default["default"].createElement(HelpText$1, null, helpText), getRadioButtons(otherProps), /*#__PURE__*/React__default["default"].createElement(InlineValidation, {
|
|
51423
51425
|
mt: "x1",
|
|
51424
51426
|
errorMessage: errorMessage,
|
|
51425
51427
|
errorList: errorList
|
|
51426
51428
|
}));
|
|
51427
51429
|
}
|
|
51428
|
-
var labelTextStyles
|
|
51430
|
+
var labelTextStyles = function labelTextStyles(theme) {
|
|
51429
51431
|
return {
|
|
51430
51432
|
fontSize: theme.fontSizes.small,
|
|
51431
51433
|
fontWeight: Number(theme.fontWeights.bold),
|
|
@@ -54987,8 +54989,8 @@
|
|
|
54987
54989
|
}
|
|
54988
54990
|
};
|
|
54989
54991
|
|
|
54990
|
-
var getSwitchBackground = function getSwitchBackground(
|
|
54991
|
-
return
|
|
54992
|
+
var getSwitchBackground = function getSwitchBackground(checked) {
|
|
54993
|
+
return checked ? "darkBlue" : "darkGrey";
|
|
54992
54994
|
};
|
|
54993
54995
|
var animationConfig = {
|
|
54994
54996
|
transition: {
|
|
@@ -55002,8 +55004,7 @@
|
|
|
55002
55004
|
function Switch(_ref) {
|
|
55003
55005
|
var children = _ref.children,
|
|
55004
55006
|
disabled = _ref.disabled,
|
|
55005
|
-
|
|
55006
|
-
onClick = _ref.onClick;
|
|
55007
|
+
checked = _ref.checked;
|
|
55007
55008
|
var componentVariant = useComponentVariant();
|
|
55008
55009
|
return /*#__PURE__*/React__default["default"].createElement(AnimatedBox, {
|
|
55009
55010
|
marginTop: componentVariant === "touch" ? "x0_25" : "none",
|
|
@@ -55011,14 +55012,13 @@
|
|
|
55011
55012
|
flexShrink: 0,
|
|
55012
55013
|
height: "24px",
|
|
55013
55014
|
width: "48px",
|
|
55014
|
-
bg: disabled ? "grey" : getSwitchBackground(
|
|
55015
|
+
bg: disabled ? "grey" : getSwitchBackground(checked),
|
|
55015
55016
|
borderRadius: "20px",
|
|
55016
55017
|
padding: "2px",
|
|
55017
55018
|
boxShadow: "small",
|
|
55018
|
-
animate:
|
|
55019
|
+
animate: checked ? "toggled" : "initial",
|
|
55019
55020
|
whileHover: "active",
|
|
55020
|
-
whileFocus: "active"
|
|
55021
|
-
onClick: onClick
|
|
55021
|
+
whileFocus: "active"
|
|
55022
55022
|
}, children);
|
|
55023
55023
|
}
|
|
55024
55024
|
var Slider = function Slider(_ref2) {
|
|
@@ -55068,142 +55068,107 @@
|
|
|
55068
55068
|
boxShadow: disabled ? undefined : theme.shadows.focus
|
|
55069
55069
|
}, _ref4;
|
|
55070
55070
|
});
|
|
55071
|
-
var ToggleButton = /*#__PURE__*/React__default["default"].forwardRef(function (
|
|
55072
|
-
var disabled =
|
|
55073
|
-
|
|
55074
|
-
|
|
55075
|
-
var inputRef = React.useRef(null);
|
|
55076
|
-
React.useImperativeHandle(ref, function () {
|
|
55077
|
-
return inputRef.current;
|
|
55078
|
-
});
|
|
55079
|
-
var handleClick = function handleClick() {
|
|
55080
|
-
if (inputRef.current) {
|
|
55081
|
-
// triggers the onChange event on a checkbox input
|
|
55082
|
-
inputRef.current.click();
|
|
55083
|
-
}
|
|
55084
|
-
};
|
|
55071
|
+
var ToggleButton = /*#__PURE__*/React__default["default"].forwardRef(function (_a, ref) {
|
|
55072
|
+
var disabled = _a.disabled,
|
|
55073
|
+
checked = _a.checked,
|
|
55074
|
+
props = __rest(_a, ["disabled", "checked"]);
|
|
55085
55075
|
return /*#__PURE__*/React__default["default"].createElement(Switch, {
|
|
55086
55076
|
disabled: disabled,
|
|
55087
|
-
|
|
55088
|
-
onClick: handleClick
|
|
55077
|
+
checked: checked
|
|
55089
55078
|
}, /*#__PURE__*/React__default["default"].createElement(ToggleInput, Object.assign({
|
|
55090
|
-
ref: inputRef,
|
|
55091
55079
|
type: "checkbox",
|
|
55092
|
-
|
|
55093
|
-
|
|
55080
|
+
role: "switch",
|
|
55081
|
+
checked: checked,
|
|
55082
|
+
ref: ref,
|
|
55083
|
+
value: checked ? "on" : "off"
|
|
55094
55084
|
}, props)), /*#__PURE__*/React__default["default"].createElement(Slider, {
|
|
55095
55085
|
disabled: disabled
|
|
55096
55086
|
}));
|
|
55097
55087
|
});
|
|
55098
55088
|
|
|
55099
|
-
var
|
|
55100
|
-
|
|
55101
|
-
|
|
55102
|
-
|
|
55103
|
-
|
|
55104
|
-
|
|
55105
|
-
};
|
|
55106
|
-
function MaybeToggleTitle(_a) {
|
|
55107
|
-
var labelText = _a.labelText,
|
|
55089
|
+
var Toggle = /*#__PURE__*/React__default["default"].forwardRef(function (_a, ref) {
|
|
55090
|
+
var _b;
|
|
55091
|
+
var checked = _a.checked,
|
|
55092
|
+
variant = _a.variant,
|
|
55093
|
+
className = _a.className,
|
|
55094
|
+
labelText = _a.labelText,
|
|
55108
55095
|
requirementText = _a.requirementText,
|
|
55109
55096
|
helpText = _a.helpText,
|
|
55110
|
-
|
|
55111
|
-
|
|
55112
|
-
|
|
55113
|
-
return labelText ? (/*#__PURE__*/React__default["default"].createElement("div", Object.assign({}, props), /*#__PURE__*/React__default["default"].createElement(Box, {
|
|
55114
|
-
mb: children && "x1"
|
|
55115
|
-
}, /*#__PURE__*/React__default["default"].createElement("span", {
|
|
55116
|
-
style: labelTextStyles(themeContext)
|
|
55117
|
-
}, labelText), requirementText && /*#__PURE__*/React__default["default"].createElement(RequirementText, null, requirementText), helpText && /*#__PURE__*/React__default["default"].createElement(HelpText$1, null, helpText)), children)) : (/*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, children));
|
|
55118
|
-
}
|
|
55119
|
-
var BaseToggle = function BaseToggle(_a) {
|
|
55120
|
-
var disabled = _a.disabled,
|
|
55097
|
+
hint = _a.hint,
|
|
55098
|
+
disabled = _a.disabled,
|
|
55099
|
+
toggled = _a.toggled,
|
|
55121
55100
|
onChange = _a.onChange,
|
|
55122
55101
|
onText = _a.onText,
|
|
55123
55102
|
offText = _a.offText,
|
|
55124
|
-
className = _a.className,
|
|
55125
55103
|
required = _a.required,
|
|
55126
55104
|
error = _a.error,
|
|
55127
55105
|
id = _a.id,
|
|
55128
|
-
|
|
55129
|
-
|
|
55130
|
-
helpText = _a.helpText,
|
|
55131
|
-
toggled = _a.toggled,
|
|
55132
|
-
_a$onClick = _a.onClick,
|
|
55133
|
-
onClick = _a$onClick === void 0 ? noop$2 : _a$onClick,
|
|
55134
|
-
variant = _a.variant,
|
|
55106
|
+
defaultToggled = _a.defaultToggled,
|
|
55107
|
+
onClick = _a.onClick,
|
|
55135
55108
|
dataTestId = _a["data-testid"],
|
|
55136
|
-
props = __rest(_a, ["
|
|
55137
|
-
var handleClick = function handleClick(e) {
|
|
55138
|
-
onClick(e);
|
|
55139
|
-
};
|
|
55109
|
+
props = __rest(_a, ["checked", "variant", "className", "labelText", "requirementText", "helpText", "hint", "disabled", "toggled", "onChange", "onText", "offText", "required", "error", "id", "defaultToggled", "onClick", "data-testid"]);
|
|
55140
55110
|
var componentVariant = useComponentVariant(variant);
|
|
55141
55111
|
var spaceProps = getSubset(props, propTypes$1.space);
|
|
55142
55112
|
var restProps = omitSubset(props, propTypes$1.space);
|
|
55113
|
+
React.useEffect(function () {
|
|
55114
|
+
if (defaultToggled) {
|
|
55115
|
+
console.warn("defaultToggled is deprecated. Use checked instead.");
|
|
55116
|
+
}
|
|
55117
|
+
if (checked) {
|
|
55118
|
+
console.warn("checked is deprecated. Use checked instead.");
|
|
55119
|
+
}
|
|
55120
|
+
if (onClick) {
|
|
55121
|
+
console.warn("onClick is deprecated. Use onChange instead.");
|
|
55122
|
+
}
|
|
55123
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
55124
|
+
}, []);
|
|
55125
|
+
var _checked = (_b = checked !== null && checked !== void 0 ? checked : defaultToggled) !== null && _b !== void 0 ? _b : toggled;
|
|
55126
|
+
var _onChange = React.useCallback(function (e) {
|
|
55127
|
+
if (onClick) {
|
|
55128
|
+
onClick(e);
|
|
55129
|
+
}
|
|
55130
|
+
if (onChange) {
|
|
55131
|
+
onChange(e);
|
|
55132
|
+
}
|
|
55133
|
+
}, [onClick, onChange]);
|
|
55134
|
+
React.useEffect(function () {
|
|
55135
|
+
if (_checked !== undefined && !(onChange || onClick)) {
|
|
55136
|
+
console.warn("onChange or onClick is required when checked is set.");
|
|
55137
|
+
}
|
|
55138
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
55139
|
+
}, []);
|
|
55143
55140
|
return /*#__PURE__*/React__default["default"].createElement(Field, Object.assign({
|
|
55144
55141
|
className: className,
|
|
55145
55142
|
alignItems: "flex-start",
|
|
55146
55143
|
py: "half"
|
|
55147
|
-
}, spaceProps), /*#__PURE__*/React__default["default"].createElement(
|
|
55148
|
-
|
|
55144
|
+
}, spaceProps), /*#__PURE__*/React__default["default"].createElement(FieldLabel, {
|
|
55145
|
+
htmlFor: id,
|
|
55149
55146
|
labelText: labelText,
|
|
55150
55147
|
requirementText: requirementText,
|
|
55151
|
-
helpText: helpText
|
|
55152
|
-
|
|
55153
|
-
variant: componentVariant,
|
|
55154
|
-
as: "div",
|
|
55155
|
-
onClick: onClick,
|
|
55148
|
+
helpText: helpText,
|
|
55149
|
+
hint: hint,
|
|
55156
55150
|
disabled: disabled,
|
|
55151
|
+
variant: componentVariant,
|
|
55157
55152
|
"data-testid": dataTestId
|
|
55153
|
+
}, /*#__PURE__*/React__default["default"].createElement(Flex, {
|
|
55154
|
+
flexDirection: "row",
|
|
55155
|
+
alignItems: "center"
|
|
55158
55156
|
}, /*#__PURE__*/React__default["default"].createElement(ToggleButton, Object.assign({
|
|
55159
55157
|
id: id,
|
|
55160
|
-
checked:
|
|
55161
|
-
onChange:
|
|
55158
|
+
checked: _checked,
|
|
55159
|
+
onChange: _onChange,
|
|
55162
55160
|
disabled: disabled,
|
|
55163
55161
|
required: required,
|
|
55164
55162
|
"aria-required": required,
|
|
55165
|
-
"aria-invalid": error
|
|
55166
|
-
"aria-labelledby": labelText && labelText + "-label",
|
|
55167
|
-
onClick: handleClick,
|
|
55168
|
-
toggled: toggled
|
|
55163
|
+
"aria-invalid": error
|
|
55169
55164
|
}, restProps, {
|
|
55170
|
-
ref:
|
|
55165
|
+
ref: ref
|
|
55171
55166
|
})), (onText || offText) && (/*#__PURE__*/React__default["default"].createElement(Text, {
|
|
55172
55167
|
disabled: disabled,
|
|
55173
55168
|
mb: "none",
|
|
55174
|
-
ml: "x1"
|
|
55175
|
-
|
|
55176
|
-
|
|
55177
|
-
var StatefulToggle = function StatefulToggle(_a) {
|
|
55178
|
-
var defaultToggled = _a.defaultToggled,
|
|
55179
|
-
_a$onClick2 = _a.onClick,
|
|
55180
|
-
onClick = _a$onClick2 === void 0 ? noop$2 : _a$onClick2,
|
|
55181
|
-
disabled = _a.disabled,
|
|
55182
|
-
props = __rest(_a, ["defaultToggled", "onClick", "disabled"]);
|
|
55183
|
-
var _useState = React.useState(defaultToggled),
|
|
55184
|
-
toggled = _useState[0],
|
|
55185
|
-
setToggled = _useState[1];
|
|
55186
|
-
var handleClick = function handleClick(e) {
|
|
55187
|
-
if (!disabled) setToggled(!toggled);
|
|
55188
|
-
onClick(e);
|
|
55189
|
-
};
|
|
55190
|
-
return /*#__PURE__*/React__default["default"].createElement(BaseToggle, Object.assign({
|
|
55191
|
-
toggled: toggled,
|
|
55192
|
-
onClick: handleClick,
|
|
55193
|
-
disabled: disabled
|
|
55194
|
-
}, props));
|
|
55195
|
-
};
|
|
55196
|
-
var Toggle = function Toggle(_a) {
|
|
55197
|
-
var toggled = _a.toggled,
|
|
55198
|
-
props = __rest(_a, ["toggled"]);
|
|
55199
|
-
return toggled === undefined ? /*#__PURE__*/React__default["default"].createElement(StatefulToggle, Object.assign({}, props)) : /*#__PURE__*/React__default["default"].createElement(BaseToggle, Object.assign({
|
|
55200
|
-
toggled: toggled
|
|
55201
|
-
}, props));
|
|
55202
|
-
};
|
|
55203
|
-
var ToggleComponent = /*#__PURE__*/React__default["default"].forwardRef(function (props, ref) {
|
|
55204
|
-
return /*#__PURE__*/React__default["default"].createElement(Toggle, Object.assign({
|
|
55205
|
-
innerRef: ref
|
|
55206
|
-
}, props));
|
|
55169
|
+
ml: "x1",
|
|
55170
|
+
"aria-hidden": true
|
|
55171
|
+
}, _checked ? onText : offText)))));
|
|
55207
55172
|
});
|
|
55208
55173
|
|
|
55209
55174
|
var TOPBAR = {
|
|
@@ -55800,7 +55765,7 @@
|
|
|
55800
55765
|
exports.TimeRange = TimeRange;
|
|
55801
55766
|
exports.Toast = Toast;
|
|
55802
55767
|
exports.ToastContainer = ToastContainer;
|
|
55803
|
-
exports.Toggle =
|
|
55768
|
+
exports.Toggle = Toggle;
|
|
55804
55769
|
exports.Tooltip = Tooltip;
|
|
55805
55770
|
exports.TopBar = TopBar;
|
|
55806
55771
|
exports.TruncatedText = TruncatedText;
|
package/dist/main.module.js
CHANGED
|
@@ -25956,10 +25956,12 @@ var Label = styled.label.withConfig({
|
|
|
25956
25956
|
componentId: "sc-lf392x-0"
|
|
25957
25957
|
})(function (_ref) {
|
|
25958
25958
|
var _ref$color = _ref.color,
|
|
25959
|
-
color = _ref$color === void 0 ? "black" : _ref$color
|
|
25959
|
+
color = _ref$color === void 0 ? "black" : _ref$color,
|
|
25960
|
+
disabled = _ref.disabled;
|
|
25960
25961
|
return {
|
|
25961
25962
|
color: color,
|
|
25962
|
-
display: "inline-block"
|
|
25963
|
+
display: "inline-block",
|
|
25964
|
+
cursor: disabled ? undefined : "pointer"
|
|
25963
25965
|
};
|
|
25964
25966
|
}, display, space, color);
|
|
25965
25967
|
|
|
@@ -51401,14 +51403,14 @@ function RadioGroup(_a) {
|
|
|
51401
51403
|
marginBottom: theme.space.x1
|
|
51402
51404
|
}
|
|
51403
51405
|
}, /*#__PURE__*/React__default.createElement("span", {
|
|
51404
|
-
style: labelTextStyles
|
|
51406
|
+
style: labelTextStyles(theme)
|
|
51405
51407
|
}, labelText), requirementText && /*#__PURE__*/React__default.createElement(RequirementText, null, requirementText)), helpText && /*#__PURE__*/React__default.createElement(HelpText$1, null, helpText), getRadioButtons(otherProps), /*#__PURE__*/React__default.createElement(InlineValidation, {
|
|
51406
51408
|
mt: "x1",
|
|
51407
51409
|
errorMessage: errorMessage,
|
|
51408
51410
|
errorList: errorList
|
|
51409
51411
|
}));
|
|
51410
51412
|
}
|
|
51411
|
-
var labelTextStyles
|
|
51413
|
+
var labelTextStyles = function labelTextStyles(theme) {
|
|
51412
51414
|
return {
|
|
51413
51415
|
fontSize: theme.fontSizes.small,
|
|
51414
51416
|
fontWeight: Number(theme.fontWeights.bold),
|
|
@@ -54970,8 +54972,8 @@ var toast = {
|
|
|
54970
54972
|
}
|
|
54971
54973
|
};
|
|
54972
54974
|
|
|
54973
|
-
var getSwitchBackground = function getSwitchBackground(
|
|
54974
|
-
return
|
|
54975
|
+
var getSwitchBackground = function getSwitchBackground(checked) {
|
|
54976
|
+
return checked ? "darkBlue" : "darkGrey";
|
|
54975
54977
|
};
|
|
54976
54978
|
var animationConfig = {
|
|
54977
54979
|
transition: {
|
|
@@ -54985,8 +54987,7 @@ var animationConfig = {
|
|
|
54985
54987
|
function Switch(_ref) {
|
|
54986
54988
|
var children = _ref.children,
|
|
54987
54989
|
disabled = _ref.disabled,
|
|
54988
|
-
|
|
54989
|
-
onClick = _ref.onClick;
|
|
54990
|
+
checked = _ref.checked;
|
|
54990
54991
|
var componentVariant = useComponentVariant();
|
|
54991
54992
|
return /*#__PURE__*/React__default.createElement(AnimatedBox, {
|
|
54992
54993
|
marginTop: componentVariant === "touch" ? "x0_25" : "none",
|
|
@@ -54994,14 +54995,13 @@ function Switch(_ref) {
|
|
|
54994
54995
|
flexShrink: 0,
|
|
54995
54996
|
height: "24px",
|
|
54996
54997
|
width: "48px",
|
|
54997
|
-
bg: disabled ? "grey" : getSwitchBackground(
|
|
54998
|
+
bg: disabled ? "grey" : getSwitchBackground(checked),
|
|
54998
54999
|
borderRadius: "20px",
|
|
54999
55000
|
padding: "2px",
|
|
55000
55001
|
boxShadow: "small",
|
|
55001
|
-
animate:
|
|
55002
|
+
animate: checked ? "toggled" : "initial",
|
|
55002
55003
|
whileHover: "active",
|
|
55003
|
-
whileFocus: "active"
|
|
55004
|
-
onClick: onClick
|
|
55004
|
+
whileFocus: "active"
|
|
55005
55005
|
}, children);
|
|
55006
55006
|
}
|
|
55007
55007
|
var Slider = function Slider(_ref2) {
|
|
@@ -55051,142 +55051,107 @@ var ToggleInput = styled.input.withConfig({
|
|
|
55051
55051
|
boxShadow: disabled ? undefined : theme.shadows.focus
|
|
55052
55052
|
}, _ref4;
|
|
55053
55053
|
});
|
|
55054
|
-
var ToggleButton = /*#__PURE__*/React__default.forwardRef(function (
|
|
55055
|
-
var disabled =
|
|
55056
|
-
|
|
55057
|
-
|
|
55058
|
-
var inputRef = useRef(null);
|
|
55059
|
-
useImperativeHandle(ref, function () {
|
|
55060
|
-
return inputRef.current;
|
|
55061
|
-
});
|
|
55062
|
-
var handleClick = function handleClick() {
|
|
55063
|
-
if (inputRef.current) {
|
|
55064
|
-
// triggers the onChange event on a checkbox input
|
|
55065
|
-
inputRef.current.click();
|
|
55066
|
-
}
|
|
55067
|
-
};
|
|
55054
|
+
var ToggleButton = /*#__PURE__*/React__default.forwardRef(function (_a, ref) {
|
|
55055
|
+
var disabled = _a.disabled,
|
|
55056
|
+
checked = _a.checked,
|
|
55057
|
+
props = __rest(_a, ["disabled", "checked"]);
|
|
55068
55058
|
return /*#__PURE__*/React__default.createElement(Switch, {
|
|
55069
55059
|
disabled: disabled,
|
|
55070
|
-
|
|
55071
|
-
onClick: handleClick
|
|
55060
|
+
checked: checked
|
|
55072
55061
|
}, /*#__PURE__*/React__default.createElement(ToggleInput, Object.assign({
|
|
55073
|
-
ref: inputRef,
|
|
55074
55062
|
type: "checkbox",
|
|
55075
|
-
|
|
55076
|
-
|
|
55063
|
+
role: "switch",
|
|
55064
|
+
checked: checked,
|
|
55065
|
+
ref: ref,
|
|
55066
|
+
value: checked ? "on" : "off"
|
|
55077
55067
|
}, props)), /*#__PURE__*/React__default.createElement(Slider, {
|
|
55078
55068
|
disabled: disabled
|
|
55079
55069
|
}));
|
|
55080
55070
|
});
|
|
55081
55071
|
|
|
55082
|
-
var
|
|
55083
|
-
|
|
55084
|
-
|
|
55085
|
-
|
|
55086
|
-
|
|
55087
|
-
|
|
55088
|
-
};
|
|
55089
|
-
function MaybeToggleTitle(_a) {
|
|
55090
|
-
var labelText = _a.labelText,
|
|
55072
|
+
var Toggle = /*#__PURE__*/React__default.forwardRef(function (_a, ref) {
|
|
55073
|
+
var _b;
|
|
55074
|
+
var checked = _a.checked,
|
|
55075
|
+
variant = _a.variant,
|
|
55076
|
+
className = _a.className,
|
|
55077
|
+
labelText = _a.labelText,
|
|
55091
55078
|
requirementText = _a.requirementText,
|
|
55092
55079
|
helpText = _a.helpText,
|
|
55093
|
-
|
|
55094
|
-
|
|
55095
|
-
|
|
55096
|
-
return labelText ? (/*#__PURE__*/React__default.createElement("div", Object.assign({}, props), /*#__PURE__*/React__default.createElement(Box, {
|
|
55097
|
-
mb: children && "x1"
|
|
55098
|
-
}, /*#__PURE__*/React__default.createElement("span", {
|
|
55099
|
-
style: labelTextStyles(themeContext)
|
|
55100
|
-
}, labelText), requirementText && /*#__PURE__*/React__default.createElement(RequirementText, null, requirementText), helpText && /*#__PURE__*/React__default.createElement(HelpText$1, null, helpText)), children)) : (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, children));
|
|
55101
|
-
}
|
|
55102
|
-
var BaseToggle = function BaseToggle(_a) {
|
|
55103
|
-
var disabled = _a.disabled,
|
|
55080
|
+
hint = _a.hint,
|
|
55081
|
+
disabled = _a.disabled,
|
|
55082
|
+
toggled = _a.toggled,
|
|
55104
55083
|
onChange = _a.onChange,
|
|
55105
55084
|
onText = _a.onText,
|
|
55106
55085
|
offText = _a.offText,
|
|
55107
|
-
className = _a.className,
|
|
55108
55086
|
required = _a.required,
|
|
55109
55087
|
error = _a.error,
|
|
55110
55088
|
id = _a.id,
|
|
55111
|
-
|
|
55112
|
-
|
|
55113
|
-
helpText = _a.helpText,
|
|
55114
|
-
toggled = _a.toggled,
|
|
55115
|
-
_a$onClick = _a.onClick,
|
|
55116
|
-
onClick = _a$onClick === void 0 ? noop$2 : _a$onClick,
|
|
55117
|
-
variant = _a.variant,
|
|
55089
|
+
defaultToggled = _a.defaultToggled,
|
|
55090
|
+
onClick = _a.onClick,
|
|
55118
55091
|
dataTestId = _a["data-testid"],
|
|
55119
|
-
props = __rest(_a, ["
|
|
55120
|
-
var handleClick = function handleClick(e) {
|
|
55121
|
-
onClick(e);
|
|
55122
|
-
};
|
|
55092
|
+
props = __rest(_a, ["checked", "variant", "className", "labelText", "requirementText", "helpText", "hint", "disabled", "toggled", "onChange", "onText", "offText", "required", "error", "id", "defaultToggled", "onClick", "data-testid"]);
|
|
55123
55093
|
var componentVariant = useComponentVariant(variant);
|
|
55124
55094
|
var spaceProps = getSubset(props, propTypes$1.space);
|
|
55125
55095
|
var restProps = omitSubset(props, propTypes$1.space);
|
|
55096
|
+
useEffect(function () {
|
|
55097
|
+
if (defaultToggled) {
|
|
55098
|
+
console.warn("defaultToggled is deprecated. Use checked instead.");
|
|
55099
|
+
}
|
|
55100
|
+
if (checked) {
|
|
55101
|
+
console.warn("checked is deprecated. Use checked instead.");
|
|
55102
|
+
}
|
|
55103
|
+
if (onClick) {
|
|
55104
|
+
console.warn("onClick is deprecated. Use onChange instead.");
|
|
55105
|
+
}
|
|
55106
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
55107
|
+
}, []);
|
|
55108
|
+
var _checked = (_b = checked !== null && checked !== void 0 ? checked : defaultToggled) !== null && _b !== void 0 ? _b : toggled;
|
|
55109
|
+
var _onChange = useCallback(function (e) {
|
|
55110
|
+
if (onClick) {
|
|
55111
|
+
onClick(e);
|
|
55112
|
+
}
|
|
55113
|
+
if (onChange) {
|
|
55114
|
+
onChange(e);
|
|
55115
|
+
}
|
|
55116
|
+
}, [onClick, onChange]);
|
|
55117
|
+
useEffect(function () {
|
|
55118
|
+
if (_checked !== undefined && !(onChange || onClick)) {
|
|
55119
|
+
console.warn("onChange or onClick is required when checked is set.");
|
|
55120
|
+
}
|
|
55121
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
55122
|
+
}, []);
|
|
55126
55123
|
return /*#__PURE__*/React__default.createElement(Field, Object.assign({
|
|
55127
55124
|
className: className,
|
|
55128
55125
|
alignItems: "flex-start",
|
|
55129
55126
|
py: "half"
|
|
55130
|
-
}, spaceProps), /*#__PURE__*/React__default.createElement(
|
|
55131
|
-
|
|
55127
|
+
}, spaceProps), /*#__PURE__*/React__default.createElement(FieldLabel, {
|
|
55128
|
+
htmlFor: id,
|
|
55132
55129
|
labelText: labelText,
|
|
55133
55130
|
requirementText: requirementText,
|
|
55134
|
-
helpText: helpText
|
|
55135
|
-
|
|
55136
|
-
variant: componentVariant,
|
|
55137
|
-
as: "div",
|
|
55138
|
-
onClick: onClick,
|
|
55131
|
+
helpText: helpText,
|
|
55132
|
+
hint: hint,
|
|
55139
55133
|
disabled: disabled,
|
|
55134
|
+
variant: componentVariant,
|
|
55140
55135
|
"data-testid": dataTestId
|
|
55136
|
+
}, /*#__PURE__*/React__default.createElement(Flex, {
|
|
55137
|
+
flexDirection: "row",
|
|
55138
|
+
alignItems: "center"
|
|
55141
55139
|
}, /*#__PURE__*/React__default.createElement(ToggleButton, Object.assign({
|
|
55142
55140
|
id: id,
|
|
55143
|
-
checked:
|
|
55144
|
-
onChange:
|
|
55141
|
+
checked: _checked,
|
|
55142
|
+
onChange: _onChange,
|
|
55145
55143
|
disabled: disabled,
|
|
55146
55144
|
required: required,
|
|
55147
55145
|
"aria-required": required,
|
|
55148
|
-
"aria-invalid": error
|
|
55149
|
-
"aria-labelledby": labelText && labelText + "-label",
|
|
55150
|
-
onClick: handleClick,
|
|
55151
|
-
toggled: toggled
|
|
55146
|
+
"aria-invalid": error
|
|
55152
55147
|
}, restProps, {
|
|
55153
|
-
ref:
|
|
55148
|
+
ref: ref
|
|
55154
55149
|
})), (onText || offText) && (/*#__PURE__*/React__default.createElement(Text, {
|
|
55155
55150
|
disabled: disabled,
|
|
55156
55151
|
mb: "none",
|
|
55157
|
-
ml: "x1"
|
|
55158
|
-
|
|
55159
|
-
};
|
|
55160
|
-
var StatefulToggle = function StatefulToggle(_a) {
|
|
55161
|
-
var defaultToggled = _a.defaultToggled,
|
|
55162
|
-
_a$onClick2 = _a.onClick,
|
|
55163
|
-
onClick = _a$onClick2 === void 0 ? noop$2 : _a$onClick2,
|
|
55164
|
-
disabled = _a.disabled,
|
|
55165
|
-
props = __rest(_a, ["defaultToggled", "onClick", "disabled"]);
|
|
55166
|
-
var _useState = useState(defaultToggled),
|
|
55167
|
-
toggled = _useState[0],
|
|
55168
|
-
setToggled = _useState[1];
|
|
55169
|
-
var handleClick = function handleClick(e) {
|
|
55170
|
-
if (!disabled) setToggled(!toggled);
|
|
55171
|
-
onClick(e);
|
|
55172
|
-
};
|
|
55173
|
-
return /*#__PURE__*/React__default.createElement(BaseToggle, Object.assign({
|
|
55174
|
-
toggled: toggled,
|
|
55175
|
-
onClick: handleClick,
|
|
55176
|
-
disabled: disabled
|
|
55177
|
-
}, props));
|
|
55178
|
-
};
|
|
55179
|
-
var Toggle = function Toggle(_a) {
|
|
55180
|
-
var toggled = _a.toggled,
|
|
55181
|
-
props = __rest(_a, ["toggled"]);
|
|
55182
|
-
return toggled === undefined ? /*#__PURE__*/React__default.createElement(StatefulToggle, Object.assign({}, props)) : /*#__PURE__*/React__default.createElement(BaseToggle, Object.assign({
|
|
55183
|
-
toggled: toggled
|
|
55184
|
-
}, props));
|
|
55185
|
-
};
|
|
55186
|
-
var ToggleComponent = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
|
|
55187
|
-
return /*#__PURE__*/React__default.createElement(Toggle, Object.assign({
|
|
55188
|
-
innerRef: ref
|
|
55189
|
-
}, props));
|
|
55152
|
+
ml: "x1",
|
|
55153
|
+
"aria-hidden": true
|
|
55154
|
+
}, _checked ? onText : offText)))));
|
|
55190
55155
|
});
|
|
55191
55156
|
|
|
55192
55157
|
var TOPBAR = {
|
|
@@ -55678,4 +55643,4 @@ var TruncatedText = function TruncatedText(_a) {
|
|
|
55678
55643
|
return fullWidth ? (/*#__PURE__*/React__default.createElement(TruncatedTextFillWidth, Object.assign({}, props), children)) : (/*#__PURE__*/React__default.createElement(TruncatedTextMaxCharacters, Object.assign({}, props), children));
|
|
55679
55644
|
};
|
|
55680
55645
|
|
|
55681
|
-
export { ALL_NDS_LOCALES, Alert$1 as Alert, AnimatedBox, AppTag, ApplicationFrame, AsyncSelect, Banner, BottomSheet, BottomSheetParts, Box, BrandLogoContainer, NavBar as BrandedNavBar, Branding, Breadcrumbs, Button$1 as Button, ButtonGroup, Card, CardSet, Checkbox, CheckboxGroup, ControlIcon, DangerButton, DatePicker, DateRange, DescriptionDetails, DescriptionGroup, DescriptionList, DescriptionTerm, DesktopMenu, Divider$1 as Divider, DropdownButton, DropdownItem, DropdownLink, DropdownMenu, DropdownText, EnvironmentBanner, Field, FieldLabel, Fieldset, Flex, Form, FormSection, Header$3 as Header, Heading1, Heading2, Heading3, Heading4, HelpText$1 as HelpText, Icon, IconicButton, InlineFlex, InlineIcon, InlineValidation, Input, Link$1 as Link, List$1 as List, ListItem, LoadingAnimation, MenuTrigger, Modal, MonthPicker, NDSProvider, NavBarBackground, Navigation$1 as Navigation, NavigationLogo, NavigationLogoLink, NotificationTypes, NulogyLogo, Overlay$1 as Overlay, Page, Pagination, PrimaryButton, QuietButton, Radio, RadioGroup, RangeContainer, RequirementText, NDSSelect as Select, SelectClearIndicator, SelectContainer, SelectControl, SelectDropdownIndicator, SelectInput, SelectMenu, SelectMultiValue, SelectOption$1 as SelectOption, Sidebar, SmallNavBar, SortingTable, StatusIndicator, StatusIndicatorValues, Summary, SummaryDivider, SummaryItem, Switch$1 as Switch, Switcher, Tab, Table, Tabs, Text, Textarea, TimePicker, TimeRange, Toast, ToastContainer,
|
|
55646
|
+
export { ALL_NDS_LOCALES, Alert$1 as Alert, AnimatedBox, AppTag, ApplicationFrame, AsyncSelect, Banner, BottomSheet, BottomSheetParts, Box, BrandLogoContainer, NavBar as BrandedNavBar, Branding, Breadcrumbs, Button$1 as Button, ButtonGroup, Card, CardSet, Checkbox, CheckboxGroup, ControlIcon, DangerButton, DatePicker, DateRange, DescriptionDetails, DescriptionGroup, DescriptionList, DescriptionTerm, DesktopMenu, Divider$1 as Divider, DropdownButton, DropdownItem, DropdownLink, DropdownMenu, DropdownText, EnvironmentBanner, Field, FieldLabel, Fieldset, Flex, Form, FormSection, Header$3 as Header, Heading1, Heading2, Heading3, Heading4, HelpText$1 as HelpText, Icon, IconicButton, InlineFlex, InlineIcon, InlineValidation, Input, Link$1 as Link, List$1 as List, ListItem, LoadingAnimation, MenuTrigger, Modal, MonthPicker, NDSProvider, NavBarBackground, Navigation$1 as Navigation, NavigationLogo, NavigationLogoLink, NotificationTypes, NulogyLogo, Overlay$1 as Overlay, Page, Pagination, PrimaryButton, QuietButton, Radio, RadioGroup, RangeContainer, RequirementText, NDSSelect as Select, SelectClearIndicator, SelectContainer, SelectControl, SelectDropdownIndicator, SelectInput, SelectMenu, SelectMultiValue, SelectOption$1 as SelectOption, Sidebar, SmallNavBar, SortingTable, StatusIndicator, StatusIndicatorValues, Summary, SummaryDivider, SummaryItem, Switch$1 as Switch, Switcher, Tab, Table, Tabs, Text, Textarea, TimePicker, TimeRange, Toast, ToastContainer, Toggle, Tooltip, TopBar, TruncatedText, VerticalDivider, WeekPicker, addStyledProps, legacy as desktop, phone, tablet, themes, toast, useMediaQuery, useWindowDimensions };
|
|
@@ -32,7 +32,7 @@ export const WithRangeOfInputComponents = () => (React.createElement(Flex, { gap
|
|
|
32
32
|
{ value: 2, label: "This is 2nd option" },
|
|
33
33
|
] })),
|
|
34
34
|
React.createElement(FieldLabel, { labelText: "Label with hint", hint: "This is a hint for the input field", requirementText: "(Required)" },
|
|
35
|
-
React.createElement(Toggle, { onText: "on", offText: "off",
|
|
35
|
+
React.createElement(Toggle, { onText: "on", offText: "off", toggled: true })),
|
|
36
36
|
React.createElement(FieldLabel, { labelText: "Label with hint", hint: "This is a hint for the input field", requirementText: "(Required)" },
|
|
37
37
|
React.createElement(RadioGroup, { name: "settingSelection" },
|
|
38
38
|
React.createElement(Radio, { value: "a", labelText: "Option A" }),
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { DisplayProps } from "styled-system";
|
|
2
2
|
import type { SpaceProps } from "styled-system";
|
|
3
3
|
import type { ComponentPropsWithRef } from "react";
|
|
4
|
+
import { ComponentVariant } from "../NDSProvider/ComponentVariantContext";
|
|
4
5
|
export interface LabelProps extends SpaceProps, DisplayProps, Omit<ComponentPropsWithRef<"label">, "color"> {
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
variant?: ComponentVariant;
|
|
5
8
|
}
|
|
6
9
|
declare const Label: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, LabelProps>> & string;
|
|
7
10
|
export default Label;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import styled from "styled-components";
|
|
2
2
|
import { space, color, display } from "styled-system";
|
|
3
|
-
const Label = styled.label(({ color = "black" }) => ({
|
|
3
|
+
const Label = styled.label(({ color = "black", disabled }) => ({
|
|
4
4
|
color: color,
|
|
5
5
|
display: "inline-block",
|
|
6
|
+
cursor: disabled ? undefined : "pointer",
|
|
6
7
|
}), display, space, color);
|
|
7
8
|
export default Label;
|
|
@@ -2,9 +2,25 @@ import React from "react";
|
|
|
2
2
|
import { SpaceProps } from "styled-system";
|
|
3
3
|
import { ComponentVariant } from "../NDSProvider/ComponentVariantContext";
|
|
4
4
|
import { DefaultNDSThemeType } from "../theme";
|
|
5
|
-
|
|
5
|
+
interface ToggleProps extends SpaceProps {
|
|
6
|
+
/**
|
|
7
|
+
* @see FieldLabel
|
|
8
|
+
*/
|
|
9
|
+
hint?: string;
|
|
10
|
+
/**
|
|
11
|
+
* @note This prop is required when checked is set. It will not be optional in
|
|
12
|
+
* a future version.
|
|
13
|
+
*/
|
|
6
14
|
onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
|
|
7
15
|
variant?: ComponentVariant;
|
|
16
|
+
/**
|
|
17
|
+
* Controls whether the toggle is checked or not.
|
|
18
|
+
* @note This prop will be required in a future version.
|
|
19
|
+
*/
|
|
20
|
+
checked?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* @deprecated use checked instead
|
|
23
|
+
*/
|
|
8
24
|
toggled?: boolean;
|
|
9
25
|
disabled?: boolean;
|
|
10
26
|
onText?: string;
|
|
@@ -12,16 +28,28 @@ declare const ToggleComponent: React.ForwardRefExoticComponent<SpaceProps<Requir
|
|
|
12
28
|
id?: string;
|
|
13
29
|
className?: string;
|
|
14
30
|
required?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* @see FieldLabel
|
|
33
|
+
*/
|
|
15
34
|
helpText?: string;
|
|
35
|
+
/**
|
|
36
|
+
* @see FieldLabel
|
|
37
|
+
*/
|
|
16
38
|
labelText?: string;
|
|
17
39
|
requirementText?: string;
|
|
18
40
|
error?: boolean;
|
|
19
|
-
|
|
20
|
-
innerRef?: React.Ref<HTMLInputElement>;
|
|
41
|
+
ref?: React.Ref<HTMLInputElement>;
|
|
21
42
|
name?: string;
|
|
22
43
|
theme?: DefaultNDSThemeType;
|
|
23
44
|
"data-testid"?: string;
|
|
24
|
-
|
|
45
|
+
/**
|
|
46
|
+
* @deprecated use onChange instead
|
|
47
|
+
*/
|
|
48
|
+
onClick?: (e: React.MouseEvent<HTMLInputElement>) => void;
|
|
49
|
+
/**
|
|
50
|
+
* @deprecated set the default state through the checked prop instead
|
|
51
|
+
*/
|
|
25
52
|
defaultToggled?: boolean;
|
|
26
|
-
}
|
|
27
|
-
|
|
53
|
+
}
|
|
54
|
+
declare const Toggle: React.ForwardRefExoticComponent<Omit<ToggleProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
|
55
|
+
export default Toggle;
|
|
@@ -9,60 +9,52 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
9
9
|
}
|
|
10
10
|
return t;
|
|
11
11
|
};
|
|
12
|
-
import React, {
|
|
13
|
-
import { ThemeContext } from "styled-components";
|
|
12
|
+
import React, { useCallback, useEffect } from "react";
|
|
14
13
|
import propTypes from "@styled-system/prop-types";
|
|
15
|
-
import {
|
|
16
|
-
import { HelpText, RequirementText } from "../FieldLabel";
|
|
14
|
+
import { FieldLabel } from "../FieldLabel";
|
|
17
15
|
import { Field } from "../Form";
|
|
18
16
|
import { Text } from "../Type";
|
|
19
17
|
import { useComponentVariant } from "../NDSProvider/ComponentVariantContext";
|
|
20
|
-
import { ClickInputLabel } from "../utils";
|
|
21
18
|
import { getSubset, omitSubset } from "../utils/subset";
|
|
22
|
-
import {
|
|
19
|
+
import { Flex } from "../Flex";
|
|
23
20
|
import ToggleButton from "./ToggleButton";
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
lineHeight: theme.lineHeights.smallTextBase,
|
|
28
|
-
});
|
|
29
|
-
function MaybeToggleTitle(_a) {
|
|
30
|
-
var { labelText, requirementText, helpText, children } = _a, props = __rest(_a, ["labelText", "requirementText", "helpText", "children"]);
|
|
31
|
-
const themeContext = useContext(ThemeContext);
|
|
32
|
-
return labelText ? (React.createElement("div", Object.assign({}, props),
|
|
33
|
-
React.createElement(Box, { mb: children && "x1" },
|
|
34
|
-
React.createElement("span", { style: labelTextStyles(themeContext) }, labelText),
|
|
35
|
-
requirementText && React.createElement(RequirementText, null, requirementText),
|
|
36
|
-
helpText && React.createElement(HelpText, null, helpText)),
|
|
37
|
-
children)) : (React.createElement(React.Fragment, null, children));
|
|
38
|
-
}
|
|
39
|
-
const BaseToggle = (_a) => {
|
|
40
|
-
var { disabled, onChange, onText, offText, className, required, error, id, labelText, requirementText, helpText, toggled, onClick = noop, variant, "data-testid": dataTestId } = _a, props = __rest(_a, ["disabled", "onChange", "onText", "offText", "className", "required", "error", "id", "labelText", "requirementText", "helpText", "toggled", "onClick", "variant", "data-testid"]);
|
|
41
|
-
const handleClick = (e) => {
|
|
42
|
-
onClick(e);
|
|
43
|
-
};
|
|
21
|
+
const Toggle = React.forwardRef((_a, ref) => {
|
|
22
|
+
var _b;
|
|
23
|
+
var { checked, variant, className, labelText, requirementText, helpText, hint, disabled, toggled, onChange, onText, offText, required, error, id, defaultToggled, onClick, "data-testid": dataTestId } = _a, props = __rest(_a, ["checked", "variant", "className", "labelText", "requirementText", "helpText", "hint", "disabled", "toggled", "onChange", "onText", "offText", "required", "error", "id", "defaultToggled", "onClick", "data-testid"]);
|
|
44
24
|
const componentVariant = useComponentVariant(variant);
|
|
45
25
|
const spaceProps = getSubset(props, propTypes.space);
|
|
46
26
|
const restProps = omitSubset(props, propTypes.space);
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
if (defaultToggled) {
|
|
29
|
+
console.warn("defaultToggled is deprecated. Use checked instead.");
|
|
30
|
+
}
|
|
31
|
+
if (checked) {
|
|
32
|
+
console.warn("checked is deprecated. Use checked instead.");
|
|
33
|
+
}
|
|
34
|
+
if (onClick) {
|
|
35
|
+
console.warn("onClick is deprecated. Use onChange instead.");
|
|
36
|
+
}
|
|
37
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
38
|
+
}, []);
|
|
39
|
+
const _checked = (_b = checked !== null && checked !== void 0 ? checked : defaultToggled) !== null && _b !== void 0 ? _b : toggled;
|
|
40
|
+
const _onChange = useCallback((e) => {
|
|
41
|
+
if (onClick) {
|
|
42
|
+
onClick(e);
|
|
43
|
+
}
|
|
44
|
+
if (onChange) {
|
|
45
|
+
onChange(e);
|
|
46
|
+
}
|
|
47
|
+
}, [onClick, onChange]);
|
|
48
|
+
useEffect(() => {
|
|
49
|
+
if (_checked !== undefined && !(onChange || onClick)) {
|
|
50
|
+
console.warn("onChange or onClick is required when checked is set.");
|
|
51
|
+
}
|
|
52
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
53
|
+
}, []);
|
|
47
54
|
return (React.createElement(Field, Object.assign({ className: className, alignItems: "flex-start", py: "half" }, spaceProps),
|
|
48
|
-
React.createElement(
|
|
49
|
-
React.createElement(
|
|
50
|
-
React.createElement(ToggleButton, Object.assign({ id: id, checked:
|
|
51
|
-
(onText || offText) && (React.createElement(Text, { disabled: disabled, mb: "none", ml: "x1" },
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
var { defaultToggled, onClick = noop, disabled } = _a, props = __rest(_a, ["defaultToggled", "onClick", "disabled"]);
|
|
55
|
-
const [toggled, setToggled] = useState(defaultToggled);
|
|
56
|
-
const handleClick = (e) => {
|
|
57
|
-
if (!disabled)
|
|
58
|
-
setToggled(!toggled);
|
|
59
|
-
onClick(e);
|
|
60
|
-
};
|
|
61
|
-
return React.createElement(BaseToggle, Object.assign({ toggled: toggled, onClick: handleClick, disabled: disabled }, props));
|
|
62
|
-
};
|
|
63
|
-
const Toggle = (_a) => {
|
|
64
|
-
var { toggled } = _a, props = __rest(_a, ["toggled"]);
|
|
65
|
-
return toggled === undefined ? React.createElement(StatefulToggle, Object.assign({}, props)) : React.createElement(BaseToggle, Object.assign({ toggled: toggled }, props));
|
|
66
|
-
};
|
|
67
|
-
const ToggleComponent = React.forwardRef((props, ref) => (React.createElement(Toggle, Object.assign({ innerRef: ref }, props))));
|
|
68
|
-
export default ToggleComponent;
|
|
55
|
+
React.createElement(FieldLabel, { htmlFor: id, labelText: labelText, requirementText: requirementText, helpText: helpText, hint: hint, disabled: disabled, variant: componentVariant, "data-testid": dataTestId },
|
|
56
|
+
React.createElement(Flex, { flexDirection: "row", alignItems: "center" },
|
|
57
|
+
React.createElement(ToggleButton, Object.assign({ id: id, checked: _checked, onChange: _onChange, disabled: disabled, required: required, "aria-required": required, "aria-invalid": error }, restProps, { ref: ref })),
|
|
58
|
+
(onText || offText) && (React.createElement(Text, { disabled: disabled, mb: "none", ml: "x1", "aria-hidden": true }, _checked ? onText : offText))))));
|
|
59
|
+
});
|
|
60
|
+
export default Toggle;
|
|
@@ -6,45 +6,29 @@ export default _default;
|
|
|
6
6
|
export declare const _Toggle: () => React.JSX.Element;
|
|
7
7
|
export declare const ToggleWithAllProps: {
|
|
8
8
|
(): React.JSX.Element;
|
|
9
|
-
|
|
10
|
-
name: string;
|
|
11
|
-
};
|
|
12
|
-
};
|
|
13
|
-
export declare const ToggleSetToDefaultToggled: {
|
|
14
|
-
(): React.JSX.Element;
|
|
15
|
-
story: {
|
|
16
|
-
name: string;
|
|
17
|
-
};
|
|
9
|
+
storyName: string;
|
|
18
10
|
};
|
|
19
11
|
export declare const ToggleSetToDisabled: {
|
|
20
12
|
(): React.JSX.Element;
|
|
21
|
-
|
|
22
|
-
name: string;
|
|
23
|
-
};
|
|
13
|
+
storyName: string;
|
|
24
14
|
};
|
|
25
15
|
export declare const WithCustomId: {
|
|
26
16
|
(): React.JSX.Element;
|
|
27
|
-
|
|
28
|
-
name: string;
|
|
29
|
-
};
|
|
17
|
+
storyName: string;
|
|
30
18
|
};
|
|
31
19
|
export declare const WithText: {
|
|
32
20
|
(): React.JSX.Element;
|
|
33
|
-
|
|
34
|
-
name: string;
|
|
35
|
-
};
|
|
21
|
+
storyName: string;
|
|
36
22
|
};
|
|
37
23
|
export declare const WithLongText: {
|
|
38
24
|
(): React.JSX.Element;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
25
|
+
storyName: string;
|
|
26
|
+
};
|
|
27
|
+
export declare const WithContraintWidth: {
|
|
28
|
+
(): React.JSX.Element;
|
|
29
|
+
storyName: string;
|
|
42
30
|
};
|
|
43
|
-
export declare const WithContraintWidth: () => React.JSX.Element;
|
|
44
|
-
export declare const ControlledToggle: () => React.JSX.Element;
|
|
45
31
|
export declare const UsingRefToControlFocus: {
|
|
46
32
|
(): React.JSX.Element;
|
|
47
|
-
|
|
48
|
-
name: string;
|
|
49
|
-
};
|
|
33
|
+
storyName: string;
|
|
50
34
|
};
|
|
@@ -1,51 +1,55 @@
|
|
|
1
|
-
import React, { useRef } from "react";
|
|
1
|
+
import React, { useRef, useState } from "react";
|
|
2
2
|
import { action } from "@storybook/addon-actions";
|
|
3
|
-
import { boolean } from "@storybook/addon-knobs";
|
|
4
3
|
import { Toggle, Button, Box } from "../index";
|
|
5
4
|
import { dashed } from "../utils/story/dashed";
|
|
6
5
|
const DashedBox = dashed(Box);
|
|
7
6
|
export default {
|
|
8
7
|
title: "Components/Toggle",
|
|
9
8
|
};
|
|
10
|
-
export const _Toggle = () =>
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
name: "Toggle with all props",
|
|
9
|
+
export const _Toggle = () => {
|
|
10
|
+
const [toggled, setToggled] = useState(false);
|
|
11
|
+
return React.createElement(Toggle, { "data-testid": "toggle-example", toggled: toggled, onChange: (e) => setToggled(e.target.checked) });
|
|
14
12
|
};
|
|
15
|
-
export const
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
export const ToggleWithAllProps = () => {
|
|
14
|
+
const [toggled, setToggled] = useState(true);
|
|
15
|
+
return (React.createElement(Toggle, { labelText: "Toggle", helpText: "Turns setting on/off", onText: "on", offText: "off", toggled: toggled, required: true, requirementText: "(Required)", onChange: (e) => setToggled(e.target.checked) }));
|
|
18
16
|
};
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
React.createElement(
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
WithCustomId
|
|
27
|
-
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
React.createElement(Toggle, { labelText: "Toggle", onText: "
|
|
39
|
-
|
|
17
|
+
ToggleWithAllProps.storyName = "Toggle with all props";
|
|
18
|
+
export const ToggleSetToDisabled = () => {
|
|
19
|
+
return (React.createElement(React.Fragment, null,
|
|
20
|
+
React.createElement(Toggle, { labelText: "Toggle", disabled: true, onText: "on", offText: "off", onChange: action("on change"), "data-testid": "toggle-example" }),
|
|
21
|
+
React.createElement(Toggle, { id: "toggle-2", disabled: true, onText: "on", offText: "off", toggled: true, labelText: "Toggle", onChange: action("on change") })));
|
|
22
|
+
};
|
|
23
|
+
ToggleSetToDisabled.storyName = "Toggle set to disabled";
|
|
24
|
+
export const WithCustomId = () => {
|
|
25
|
+
const [toggled, setToggled] = useState(true);
|
|
26
|
+
return (React.createElement(Toggle, { id: "my-custom-id", labelText: "Toggle", onText: "on", offText: "off", toggled: toggled, onChange: (e) => setToggled(e.target.checked) }));
|
|
27
|
+
};
|
|
28
|
+
WithCustomId.storyName = "With custom id";
|
|
29
|
+
export const WithText = () => {
|
|
30
|
+
const [toggled, setToggled] = useState(true);
|
|
31
|
+
return (React.createElement(Toggle, { labelText: "Toggle", onText: "on", offText: "off", toggled: toggled, onChange: (e) => setToggled(e.target.checked) }));
|
|
32
|
+
};
|
|
33
|
+
WithText.storyName = "With text";
|
|
34
|
+
export const WithLongText = () => {
|
|
35
|
+
const [toggled, setToggled] = useState(true);
|
|
36
|
+
return (React.createElement(Toggle, { labelText: "Toggle", toggled: toggled, onText: "this state has a very long text label to explain it's state", offText: "not this one", onChange: (e) => setToggled(e.target.checked) }));
|
|
37
|
+
};
|
|
38
|
+
WithLongText.storyName = "With long text";
|
|
39
|
+
export const WithContraintWidth = () => {
|
|
40
|
+
const [toggled, setToggled] = useState(true);
|
|
41
|
+
return (React.createElement(DashedBox, { width: "200px", padding: "x2" },
|
|
42
|
+
React.createElement(Toggle, { labelText: "Toggle", onText: "This is a long On label for the toggle component.", offText: "This is a long Off label for the toggle component.", toggled: toggled, onChange: (e) => setToggled(e.target.checked) })));
|
|
43
|
+
};
|
|
44
|
+
WithContraintWidth.storyName = "With constraint width";
|
|
40
45
|
export const UsingRefToControlFocus = () => {
|
|
46
|
+
const [toggled, setToggled] = useState(true);
|
|
41
47
|
const ref = useRef(null);
|
|
42
48
|
const handleClick = () => {
|
|
43
49
|
ref.current.focus();
|
|
44
50
|
};
|
|
45
51
|
return (React.createElement(React.Fragment, null,
|
|
46
|
-
React.createElement(Toggle, { id: "my-custom-id", labelText: "Toggle", onText: "on", offText: "off", onChange:
|
|
52
|
+
React.createElement(Toggle, { id: "my-custom-id", labelText: "Toggle", onText: "on", offText: "off", toggled: toggled, onChange: (e) => setToggled(e.target.checked), ref: ref }),
|
|
47
53
|
React.createElement(Button, { onClick: handleClick }, "Focus the Toggle")));
|
|
48
54
|
};
|
|
49
|
-
UsingRefToControlFocus.
|
|
50
|
-
name: "using ref to control focus",
|
|
51
|
-
};
|
|
55
|
+
UsingRefToControlFocus.storyName = "Using ref to control focus";
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { DefaultNDSThemeType } from "../theme";
|
|
3
|
-
|
|
4
|
-
defaultToggled?: boolean;
|
|
5
|
-
toggled?: boolean;
|
|
3
|
+
interface ToggleButtonProps extends React.ComponentPropsWithRef<"input"> {
|
|
6
4
|
disabled?: boolean;
|
|
7
5
|
name?: string;
|
|
8
6
|
theme?: DefaultNDSThemeType;
|
|
9
|
-
}
|
|
7
|
+
}
|
|
10
8
|
declare const ToggleButton: React.ForwardRefExoticComponent<Omit<ToggleButtonProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
|
11
9
|
export default ToggleButton;
|
|
@@ -1,9 +1,20 @@
|
|
|
1
|
-
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
import React from "react";
|
|
2
13
|
import { motion } from "framer-motion";
|
|
3
14
|
import styled, { useTheme } from "styled-components";
|
|
4
15
|
import { AnimatedBox } from "../Box";
|
|
5
16
|
import { useComponentVariant } from "../NDSProvider/ComponentVariantContext";
|
|
6
|
-
const getSwitchBackground = (
|
|
17
|
+
const getSwitchBackground = (checked) => (checked ? "darkBlue" : "darkGrey");
|
|
7
18
|
const animationConfig = {
|
|
8
19
|
transition: {
|
|
9
20
|
type: "spring",
|
|
@@ -13,9 +24,9 @@ const animationConfig = {
|
|
|
13
24
|
},
|
|
14
25
|
scale: 1.08,
|
|
15
26
|
};
|
|
16
|
-
function Switch({ children, disabled,
|
|
27
|
+
function Switch({ children, disabled, checked }) {
|
|
17
28
|
const componentVariant = useComponentVariant();
|
|
18
|
-
return (React.createElement(AnimatedBox, { marginTop: componentVariant === "touch" ? "x0_25" : "none", position: "relative", flexShrink: 0, height: "24px", width: "48px", bg: disabled ? "grey" : getSwitchBackground(
|
|
29
|
+
return (React.createElement(AnimatedBox, { marginTop: componentVariant === "touch" ? "x0_25" : "none", position: "relative", flexShrink: 0, height: "24px", width: "48px", bg: disabled ? "grey" : getSwitchBackground(checked), borderRadius: "20px", padding: "2px", boxShadow: "small", animate: checked ? "toggled" : "initial", whileHover: "active", whileFocus: "active" }, children));
|
|
19
30
|
}
|
|
20
31
|
const Slider = ({ disabled, children }) => {
|
|
21
32
|
const theme = useTheme();
|
|
@@ -50,18 +61,10 @@ const ToggleInput = styled.input(({ disabled, theme }) => ({
|
|
|
50
61
|
boxShadow: disabled ? undefined : theme.shadows.focus,
|
|
51
62
|
},
|
|
52
63
|
}));
|
|
53
|
-
const ToggleButton = React.forwardRef((
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
const handleClick = () => {
|
|
58
|
-
if (inputRef.current) {
|
|
59
|
-
// triggers the onChange event on a checkbox input
|
|
60
|
-
inputRef.current.click();
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
return (React.createElement(Switch, { disabled: disabled, toggled: toggled, onClick: handleClick },
|
|
64
|
-
React.createElement(ToggleInput, Object.assign({ ref: inputRef, type: "checkbox", defaultChecked: defaultToggled, value: toggled ? "on" : "off" }, props)),
|
|
64
|
+
const ToggleButton = React.forwardRef((_a, ref) => {
|
|
65
|
+
var { disabled, checked } = _a, props = __rest(_a, ["disabled", "checked"]);
|
|
66
|
+
return (React.createElement(Switch, { disabled: disabled, checked: checked },
|
|
67
|
+
React.createElement(ToggleInput, Object.assign({ type: "checkbox", role: "switch", checked: checked, ref: ref, value: checked ? "on" : "off" }, props)),
|
|
65
68
|
React.createElement(Slider, { disabled: disabled })));
|
|
66
69
|
});
|
|
67
70
|
export default ToggleButton;
|