@nulogy/components 15.1.4 → 15.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -6
- package/dist/main.js +76 -91
- package/dist/main.module.js +76 -91
- 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 +33 -6
- package/dist/src/Toggle/Toggle.js +39 -30
- 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
|
|
|
@@ -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,123 +55068,108 @@
|
|
|
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",
|
|
55084
|
+
disabled: disabled
|
|
55094
55085
|
}, props)), /*#__PURE__*/React__default["default"].createElement(Slider, {
|
|
55095
55086
|
disabled: disabled
|
|
55096
55087
|
}));
|
|
55097
55088
|
});
|
|
55098
55089
|
|
|
55099
|
-
var
|
|
55100
|
-
var
|
|
55101
|
-
|
|
55102
|
-
|
|
55103
|
-
offText = _a.offText,
|
|
55090
|
+
var Toggle = /*#__PURE__*/React__default["default"].forwardRef(function (_a, ref) {
|
|
55091
|
+
var _b;
|
|
55092
|
+
var checked = _a.checked,
|
|
55093
|
+
variant = _a.variant,
|
|
55104
55094
|
className = _a.className,
|
|
55105
|
-
required = _a.required,
|
|
55106
|
-
error = _a.error,
|
|
55107
|
-
id = _a.id,
|
|
55108
55095
|
labelText = _a.labelText,
|
|
55109
55096
|
requirementText = _a.requirementText,
|
|
55110
55097
|
helpText = _a.helpText,
|
|
55111
55098
|
hint = _a.hint,
|
|
55099
|
+
disabled = _a.disabled,
|
|
55112
55100
|
toggled = _a.toggled,
|
|
55113
|
-
|
|
55114
|
-
|
|
55115
|
-
|
|
55101
|
+
onChange = _a.onChange,
|
|
55102
|
+
onText = _a.onText,
|
|
55103
|
+
offText = _a.offText,
|
|
55104
|
+
required = _a.required,
|
|
55105
|
+
error = _a.error,
|
|
55106
|
+
id = _a.id,
|
|
55107
|
+
defaultToggled = _a.defaultToggled,
|
|
55108
|
+
onClick = _a.onClick,
|
|
55116
55109
|
dataTestId = _a["data-testid"],
|
|
55117
|
-
props = __rest(_a, ["
|
|
55118
|
-
var handleClick = function handleClick(e) {
|
|
55119
|
-
onClick(e);
|
|
55120
|
-
};
|
|
55110
|
+
props = __rest(_a, ["checked", "variant", "className", "labelText", "requirementText", "helpText", "hint", "disabled", "toggled", "onChange", "onText", "offText", "required", "error", "id", "defaultToggled", "onClick", "data-testid"]);
|
|
55121
55111
|
var componentVariant = useComponentVariant(variant);
|
|
55122
55112
|
var spaceProps = getSubset(props, propTypes$1.space);
|
|
55123
55113
|
var restProps = omitSubset(props, propTypes$1.space);
|
|
55114
|
+
React.useEffect(function () {
|
|
55115
|
+
if (defaultToggled) {
|
|
55116
|
+
console.warn("defaultToggled is deprecated. Use checked instead.");
|
|
55117
|
+
}
|
|
55118
|
+
if (checked) {
|
|
55119
|
+
console.warn("checked is deprecated. Use checked instead.");
|
|
55120
|
+
}
|
|
55121
|
+
if (onClick) {
|
|
55122
|
+
console.warn("onClick is deprecated. Use onChange instead.");
|
|
55123
|
+
}
|
|
55124
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
55125
|
+
}, []);
|
|
55126
|
+
var _checked = (_b = checked !== null && checked !== void 0 ? checked : defaultToggled) !== null && _b !== void 0 ? _b : toggled;
|
|
55127
|
+
var _onChange = React.useCallback(function (e) {
|
|
55128
|
+
if (onClick) {
|
|
55129
|
+
onClick(e);
|
|
55130
|
+
}
|
|
55131
|
+
if (onChange) {
|
|
55132
|
+
onChange(e);
|
|
55133
|
+
}
|
|
55134
|
+
}, [onClick, onChange]);
|
|
55135
|
+
React.useEffect(function () {
|
|
55136
|
+
if (_checked !== undefined && !(onChange || onClick)) {
|
|
55137
|
+
console.warn("onChange or onClick is required when checked is set.");
|
|
55138
|
+
}
|
|
55139
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
55140
|
+
}, []);
|
|
55124
55141
|
return /*#__PURE__*/React__default["default"].createElement(Field, Object.assign({
|
|
55125
55142
|
className: className,
|
|
55126
55143
|
alignItems: "flex-start",
|
|
55127
55144
|
py: "half"
|
|
55128
|
-
}, spaceProps), /*#__PURE__*/React__default["default"].createElement(
|
|
55145
|
+
}, spaceProps), /*#__PURE__*/React__default["default"].createElement(FieldLabel, {
|
|
55146
|
+
htmlFor: id,
|
|
55129
55147
|
labelText: labelText,
|
|
55130
55148
|
requirementText: requirementText,
|
|
55131
55149
|
helpText: helpText,
|
|
55132
|
-
hint: hint
|
|
55133
|
-
}, /*#__PURE__*/React__default["default"].createElement(ClickInputLabel, {
|
|
55134
|
-
variant: componentVariant,
|
|
55135
|
-
as: "div",
|
|
55136
|
-
onClick: onClick,
|
|
55150
|
+
hint: hint,
|
|
55137
55151
|
disabled: disabled,
|
|
55152
|
+
variant: componentVariant,
|
|
55138
55153
|
"data-testid": dataTestId
|
|
55154
|
+
}, /*#__PURE__*/React__default["default"].createElement(Flex, {
|
|
55155
|
+
flexDirection: "row",
|
|
55156
|
+
alignItems: "center"
|
|
55139
55157
|
}, /*#__PURE__*/React__default["default"].createElement(ToggleButton, Object.assign({
|
|
55140
55158
|
id: id,
|
|
55141
|
-
checked:
|
|
55142
|
-
onChange:
|
|
55159
|
+
checked: _checked,
|
|
55160
|
+
onChange: _onChange,
|
|
55143
55161
|
disabled: disabled,
|
|
55144
55162
|
required: required,
|
|
55145
55163
|
"aria-required": required,
|
|
55146
|
-
"aria-invalid": error
|
|
55147
|
-
"aria-labelledby": labelText && labelText + "-label",
|
|
55148
|
-
onClick: handleClick,
|
|
55149
|
-
toggled: toggled
|
|
55164
|
+
"aria-invalid": error
|
|
55150
55165
|
}, restProps, {
|
|
55151
|
-
ref:
|
|
55166
|
+
ref: ref
|
|
55152
55167
|
})), (onText || offText) && (/*#__PURE__*/React__default["default"].createElement(Text, {
|
|
55153
55168
|
disabled: disabled,
|
|
55154
55169
|
mb: "none",
|
|
55155
|
-
ml: "x1"
|
|
55156
|
-
|
|
55157
|
-
|
|
55158
|
-
var StatefulToggle = function StatefulToggle(_a) {
|
|
55159
|
-
var defaultToggled = _a.defaultToggled,
|
|
55160
|
-
_a$onClick2 = _a.onClick,
|
|
55161
|
-
onClick = _a$onClick2 === void 0 ? noop$2 : _a$onClick2,
|
|
55162
|
-
disabled = _a.disabled,
|
|
55163
|
-
props = __rest(_a, ["defaultToggled", "onClick", "disabled"]);
|
|
55164
|
-
var _useState = React.useState(defaultToggled),
|
|
55165
|
-
toggled = _useState[0],
|
|
55166
|
-
setToggled = _useState[1];
|
|
55167
|
-
var handleClick = function handleClick(e) {
|
|
55168
|
-
if (!disabled) setToggled(!toggled);
|
|
55169
|
-
onClick(e);
|
|
55170
|
-
};
|
|
55171
|
-
return /*#__PURE__*/React__default["default"].createElement(BaseToggle, Object.assign({
|
|
55172
|
-
toggled: toggled,
|
|
55173
|
-
onClick: handleClick,
|
|
55174
|
-
disabled: disabled
|
|
55175
|
-
}, props));
|
|
55176
|
-
};
|
|
55177
|
-
var Toggle = function Toggle(_a) {
|
|
55178
|
-
var toggled = _a.toggled,
|
|
55179
|
-
props = __rest(_a, ["toggled"]);
|
|
55180
|
-
return toggled === undefined ? /*#__PURE__*/React__default["default"].createElement(StatefulToggle, Object.assign({}, props)) : /*#__PURE__*/React__default["default"].createElement(BaseToggle, Object.assign({
|
|
55181
|
-
toggled: toggled
|
|
55182
|
-
}, props));
|
|
55183
|
-
};
|
|
55184
|
-
var ToggleComponent = /*#__PURE__*/React__default["default"].forwardRef(function (props, ref) {
|
|
55185
|
-
return /*#__PURE__*/React__default["default"].createElement(Toggle, Object.assign({
|
|
55186
|
-
innerRef: ref
|
|
55187
|
-
}, props));
|
|
55170
|
+
ml: "x1",
|
|
55171
|
+
"aria-hidden": true
|
|
55172
|
+
}, _checked ? onText : offText)))));
|
|
55188
55173
|
});
|
|
55189
55174
|
|
|
55190
55175
|
var TOPBAR = {
|
|
@@ -55781,7 +55766,7 @@
|
|
|
55781
55766
|
exports.TimeRange = TimeRange;
|
|
55782
55767
|
exports.Toast = Toast;
|
|
55783
55768
|
exports.ToastContainer = ToastContainer;
|
|
55784
|
-
exports.Toggle =
|
|
55769
|
+
exports.Toggle = Toggle;
|
|
55785
55770
|
exports.Tooltip = Tooltip;
|
|
55786
55771
|
exports.TopBar = TopBar;
|
|
55787
55772
|
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
|
|
|
@@ -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,123 +55051,108 @@ 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",
|
|
55067
|
+
disabled: disabled
|
|
55077
55068
|
}, props)), /*#__PURE__*/React__default.createElement(Slider, {
|
|
55078
55069
|
disabled: disabled
|
|
55079
55070
|
}));
|
|
55080
55071
|
});
|
|
55081
55072
|
|
|
55082
|
-
var
|
|
55083
|
-
var
|
|
55084
|
-
|
|
55085
|
-
|
|
55086
|
-
offText = _a.offText,
|
|
55073
|
+
var Toggle = /*#__PURE__*/React__default.forwardRef(function (_a, ref) {
|
|
55074
|
+
var _b;
|
|
55075
|
+
var checked = _a.checked,
|
|
55076
|
+
variant = _a.variant,
|
|
55087
55077
|
className = _a.className,
|
|
55088
|
-
required = _a.required,
|
|
55089
|
-
error = _a.error,
|
|
55090
|
-
id = _a.id,
|
|
55091
55078
|
labelText = _a.labelText,
|
|
55092
55079
|
requirementText = _a.requirementText,
|
|
55093
55080
|
helpText = _a.helpText,
|
|
55094
55081
|
hint = _a.hint,
|
|
55082
|
+
disabled = _a.disabled,
|
|
55095
55083
|
toggled = _a.toggled,
|
|
55096
|
-
|
|
55097
|
-
|
|
55098
|
-
|
|
55084
|
+
onChange = _a.onChange,
|
|
55085
|
+
onText = _a.onText,
|
|
55086
|
+
offText = _a.offText,
|
|
55087
|
+
required = _a.required,
|
|
55088
|
+
error = _a.error,
|
|
55089
|
+
id = _a.id,
|
|
55090
|
+
defaultToggled = _a.defaultToggled,
|
|
55091
|
+
onClick = _a.onClick,
|
|
55099
55092
|
dataTestId = _a["data-testid"],
|
|
55100
|
-
props = __rest(_a, ["
|
|
55101
|
-
var handleClick = function handleClick(e) {
|
|
55102
|
-
onClick(e);
|
|
55103
|
-
};
|
|
55093
|
+
props = __rest(_a, ["checked", "variant", "className", "labelText", "requirementText", "helpText", "hint", "disabled", "toggled", "onChange", "onText", "offText", "required", "error", "id", "defaultToggled", "onClick", "data-testid"]);
|
|
55104
55094
|
var componentVariant = useComponentVariant(variant);
|
|
55105
55095
|
var spaceProps = getSubset(props, propTypes$1.space);
|
|
55106
55096
|
var restProps = omitSubset(props, propTypes$1.space);
|
|
55097
|
+
useEffect(function () {
|
|
55098
|
+
if (defaultToggled) {
|
|
55099
|
+
console.warn("defaultToggled is deprecated. Use checked instead.");
|
|
55100
|
+
}
|
|
55101
|
+
if (checked) {
|
|
55102
|
+
console.warn("checked is deprecated. Use checked instead.");
|
|
55103
|
+
}
|
|
55104
|
+
if (onClick) {
|
|
55105
|
+
console.warn("onClick is deprecated. Use onChange instead.");
|
|
55106
|
+
}
|
|
55107
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
55108
|
+
}, []);
|
|
55109
|
+
var _checked = (_b = checked !== null && checked !== void 0 ? checked : defaultToggled) !== null && _b !== void 0 ? _b : toggled;
|
|
55110
|
+
var _onChange = useCallback(function (e) {
|
|
55111
|
+
if (onClick) {
|
|
55112
|
+
onClick(e);
|
|
55113
|
+
}
|
|
55114
|
+
if (onChange) {
|
|
55115
|
+
onChange(e);
|
|
55116
|
+
}
|
|
55117
|
+
}, [onClick, onChange]);
|
|
55118
|
+
useEffect(function () {
|
|
55119
|
+
if (_checked !== undefined && !(onChange || onClick)) {
|
|
55120
|
+
console.warn("onChange or onClick is required when checked is set.");
|
|
55121
|
+
}
|
|
55122
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
55123
|
+
}, []);
|
|
55107
55124
|
return /*#__PURE__*/React__default.createElement(Field, Object.assign({
|
|
55108
55125
|
className: className,
|
|
55109
55126
|
alignItems: "flex-start",
|
|
55110
55127
|
py: "half"
|
|
55111
|
-
}, spaceProps), /*#__PURE__*/React__default.createElement(
|
|
55128
|
+
}, spaceProps), /*#__PURE__*/React__default.createElement(FieldLabel, {
|
|
55129
|
+
htmlFor: id,
|
|
55112
55130
|
labelText: labelText,
|
|
55113
55131
|
requirementText: requirementText,
|
|
55114
55132
|
helpText: helpText,
|
|
55115
|
-
hint: hint
|
|
55116
|
-
}, /*#__PURE__*/React__default.createElement(ClickInputLabel, {
|
|
55117
|
-
variant: componentVariant,
|
|
55118
|
-
as: "div",
|
|
55119
|
-
onClick: onClick,
|
|
55133
|
+
hint: hint,
|
|
55120
55134
|
disabled: disabled,
|
|
55135
|
+
variant: componentVariant,
|
|
55121
55136
|
"data-testid": dataTestId
|
|
55137
|
+
}, /*#__PURE__*/React__default.createElement(Flex, {
|
|
55138
|
+
flexDirection: "row",
|
|
55139
|
+
alignItems: "center"
|
|
55122
55140
|
}, /*#__PURE__*/React__default.createElement(ToggleButton, Object.assign({
|
|
55123
55141
|
id: id,
|
|
55124
|
-
checked:
|
|
55125
|
-
onChange:
|
|
55142
|
+
checked: _checked,
|
|
55143
|
+
onChange: _onChange,
|
|
55126
55144
|
disabled: disabled,
|
|
55127
55145
|
required: required,
|
|
55128
55146
|
"aria-required": required,
|
|
55129
|
-
"aria-invalid": error
|
|
55130
|
-
"aria-labelledby": labelText && labelText + "-label",
|
|
55131
|
-
onClick: handleClick,
|
|
55132
|
-
toggled: toggled
|
|
55147
|
+
"aria-invalid": error
|
|
55133
55148
|
}, restProps, {
|
|
55134
|
-
ref:
|
|
55149
|
+
ref: ref
|
|
55135
55150
|
})), (onText || offText) && (/*#__PURE__*/React__default.createElement(Text, {
|
|
55136
55151
|
disabled: disabled,
|
|
55137
55152
|
mb: "none",
|
|
55138
|
-
ml: "x1"
|
|
55139
|
-
|
|
55140
|
-
};
|
|
55141
|
-
var StatefulToggle = function StatefulToggle(_a) {
|
|
55142
|
-
var defaultToggled = _a.defaultToggled,
|
|
55143
|
-
_a$onClick2 = _a.onClick,
|
|
55144
|
-
onClick = _a$onClick2 === void 0 ? noop$2 : _a$onClick2,
|
|
55145
|
-
disabled = _a.disabled,
|
|
55146
|
-
props = __rest(_a, ["defaultToggled", "onClick", "disabled"]);
|
|
55147
|
-
var _useState = useState(defaultToggled),
|
|
55148
|
-
toggled = _useState[0],
|
|
55149
|
-
setToggled = _useState[1];
|
|
55150
|
-
var handleClick = function handleClick(e) {
|
|
55151
|
-
if (!disabled) setToggled(!toggled);
|
|
55152
|
-
onClick(e);
|
|
55153
|
-
};
|
|
55154
|
-
return /*#__PURE__*/React__default.createElement(BaseToggle, Object.assign({
|
|
55155
|
-
toggled: toggled,
|
|
55156
|
-
onClick: handleClick,
|
|
55157
|
-
disabled: disabled
|
|
55158
|
-
}, props));
|
|
55159
|
-
};
|
|
55160
|
-
var Toggle = function Toggle(_a) {
|
|
55161
|
-
var toggled = _a.toggled,
|
|
55162
|
-
props = __rest(_a, ["toggled"]);
|
|
55163
|
-
return toggled === undefined ? /*#__PURE__*/React__default.createElement(StatefulToggle, Object.assign({}, props)) : /*#__PURE__*/React__default.createElement(BaseToggle, Object.assign({
|
|
55164
|
-
toggled: toggled
|
|
55165
|
-
}, props));
|
|
55166
|
-
};
|
|
55167
|
-
var ToggleComponent = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
|
|
55168
|
-
return /*#__PURE__*/React__default.createElement(Toggle, Object.assign({
|
|
55169
|
-
innerRef: ref
|
|
55170
|
-
}, props));
|
|
55153
|
+
ml: "x1",
|
|
55154
|
+
"aria-hidden": true
|
|
55155
|
+
}, _checked ? onText : offText)))));
|
|
55171
55156
|
});
|
|
55172
55157
|
|
|
55173
55158
|
var TOPBAR = {
|
|
@@ -55659,4 +55644,4 @@ var TruncatedText = function TruncatedText(_a) {
|
|
|
55659
55644
|
return fullWidth ? (/*#__PURE__*/React__default.createElement(TruncatedTextFillWidth, Object.assign({}, props), children)) : (/*#__PURE__*/React__default.createElement(TruncatedTextMaxCharacters, Object.assign({}, props), children));
|
|
55660
55645
|
};
|
|
55661
55646
|
|
|
55662
|
-
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,
|
|
55647
|
+
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,10 +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
|
+
*/
|
|
6
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
|
+
*/
|
|
7
14
|
onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
|
|
8
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
|
+
*/
|
|
9
24
|
toggled?: boolean;
|
|
10
25
|
disabled?: boolean;
|
|
11
26
|
onText?: string;
|
|
@@ -13,16 +28,28 @@ declare const ToggleComponent: React.ForwardRefExoticComponent<SpaceProps<Requir
|
|
|
13
28
|
id?: string;
|
|
14
29
|
className?: string;
|
|
15
30
|
required?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* @see FieldLabel
|
|
33
|
+
*/
|
|
16
34
|
helpText?: string;
|
|
35
|
+
/**
|
|
36
|
+
* @see FieldLabel
|
|
37
|
+
*/
|
|
17
38
|
labelText?: string;
|
|
18
39
|
requirementText?: string;
|
|
19
40
|
error?: boolean;
|
|
20
|
-
|
|
21
|
-
innerRef?: React.Ref<HTMLInputElement>;
|
|
41
|
+
ref?: React.Ref<HTMLInputElement>;
|
|
22
42
|
name?: string;
|
|
23
43
|
theme?: DefaultNDSThemeType;
|
|
24
44
|
"data-testid"?: string;
|
|
25
|
-
|
|
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
|
+
*/
|
|
26
52
|
defaultToggled?: boolean;
|
|
27
|
-
}
|
|
28
|
-
|
|
53
|
+
}
|
|
54
|
+
declare const Toggle: React.ForwardRefExoticComponent<Omit<ToggleProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
|
55
|
+
export default Toggle;
|
|
@@ -9,43 +9,52 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
9
9
|
}
|
|
10
10
|
return t;
|
|
11
11
|
};
|
|
12
|
-
import React, {
|
|
12
|
+
import React, { useCallback, useEffect } from "react";
|
|
13
13
|
import propTypes from "@styled-system/prop-types";
|
|
14
|
-
import {
|
|
14
|
+
import { FieldLabel } from "../FieldLabel";
|
|
15
15
|
import { Field } from "../Form";
|
|
16
16
|
import { Text } from "../Type";
|
|
17
17
|
import { useComponentVariant } from "../NDSProvider/ComponentVariantContext";
|
|
18
|
-
import { ClickInputLabel } from "../utils";
|
|
19
18
|
import { getSubset, omitSubset } from "../utils/subset";
|
|
20
|
-
import {
|
|
19
|
+
import { Flex } from "../Flex";
|
|
21
20
|
import ToggleButton from "./ToggleButton";
|
|
22
|
-
const
|
|
23
|
-
var
|
|
24
|
-
|
|
25
|
-
onClick(e);
|
|
26
|
-
};
|
|
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"]);
|
|
27
24
|
const componentVariant = useComponentVariant(variant);
|
|
28
25
|
const spaceProps = getSubset(props, propTypes.space);
|
|
29
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
|
+
}, []);
|
|
30
54
|
return (React.createElement(Field, Object.assign({ className: className, alignItems: "flex-start", py: "half" }, spaceProps),
|
|
31
|
-
React.createElement(
|
|
32
|
-
React.createElement(
|
|
33
|
-
React.createElement(ToggleButton, Object.assign({ id: id, checked:
|
|
34
|
-
(onText || offText) && (React.createElement(Text, { disabled: disabled, mb: "none", ml: "x1" },
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
var { defaultToggled, onClick = noop, disabled } = _a, props = __rest(_a, ["defaultToggled", "onClick", "disabled"]);
|
|
38
|
-
const [toggled, setToggled] = useState(defaultToggled);
|
|
39
|
-
const handleClick = (e) => {
|
|
40
|
-
if (!disabled)
|
|
41
|
-
setToggled(!toggled);
|
|
42
|
-
onClick(e);
|
|
43
|
-
};
|
|
44
|
-
return React.createElement(BaseToggle, Object.assign({ toggled: toggled, onClick: handleClick, disabled: disabled }, props));
|
|
45
|
-
};
|
|
46
|
-
const Toggle = (_a) => {
|
|
47
|
-
var { toggled } = _a, props = __rest(_a, ["toggled"]);
|
|
48
|
-
return toggled === undefined ? React.createElement(StatefulToggle, Object.assign({}, props)) : React.createElement(BaseToggle, Object.assign({ toggled: toggled }, props));
|
|
49
|
-
};
|
|
50
|
-
const ToggleComponent = React.forwardRef((props, ref) => (React.createElement(Toggle, Object.assign({ innerRef: ref }, props))));
|
|
51
|
-
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", disabled: disabled }, props)),
|
|
65
68
|
React.createElement(Slider, { disabled: disabled })));
|
|
66
69
|
});
|
|
67
70
|
export default ToggleButton;
|