@nulogy/components 15.1.4 → 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 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
- ```js
43
+ ```jsx
44
44
  import React from "react";
45
45
  import { NDSProvider } from "@nulogy/components";
46
46
 
47
- class App extends React.Component {
48
- render() {
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
- ```js
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(toggled) {
54991
- return toggled ? "darkBlue" : "darkGrey";
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
- toggled = _ref.toggled,
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(toggled),
55015
+ bg: disabled ? "grey" : getSwitchBackground(checked),
55015
55016
  borderRadius: "20px",
55016
55017
  padding: "2px",
55017
55018
  boxShadow: "small",
55018
- animate: toggled ? "toggled" : "initial",
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,107 @@
55068
55068
  boxShadow: disabled ? undefined : theme.shadows.focus
55069
55069
  }, _ref4;
55070
55070
  });
55071
- var ToggleButton = /*#__PURE__*/React__default["default"].forwardRef(function (props, ref) {
55072
- var disabled = props.disabled,
55073
- defaultToggled = props.defaultToggled,
55074
- toggled = props.toggled;
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
- toggled: toggled,
55088
- onClick: handleClick
55077
+ checked: checked
55089
55078
  }, /*#__PURE__*/React__default["default"].createElement(ToggleInput, Object.assign({
55090
- ref: inputRef,
55091
55079
  type: "checkbox",
55092
- defaultChecked: defaultToggled,
55093
- value: toggled ? "on" : "off"
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 BaseToggle = function BaseToggle(_a) {
55100
- var disabled = _a.disabled,
55101
- onChange = _a.onChange,
55102
- onText = _a.onText,
55103
- offText = _a.offText,
55089
+ var Toggle = /*#__PURE__*/React__default["default"].forwardRef(function (_a, ref) {
55090
+ var _b;
55091
+ var checked = _a.checked,
55092
+ variant = _a.variant,
55104
55093
  className = _a.className,
55105
- required = _a.required,
55106
- error = _a.error,
55107
- id = _a.id,
55108
55094
  labelText = _a.labelText,
55109
55095
  requirementText = _a.requirementText,
55110
55096
  helpText = _a.helpText,
55111
55097
  hint = _a.hint,
55098
+ disabled = _a.disabled,
55112
55099
  toggled = _a.toggled,
55113
- _a$onClick = _a.onClick,
55114
- onClick = _a$onClick === void 0 ? noop$2 : _a$onClick,
55115
- variant = _a.variant,
55100
+ onChange = _a.onChange,
55101
+ onText = _a.onText,
55102
+ offText = _a.offText,
55103
+ required = _a.required,
55104
+ error = _a.error,
55105
+ id = _a.id,
55106
+ defaultToggled = _a.defaultToggled,
55107
+ onClick = _a.onClick,
55116
55108
  dataTestId = _a["data-testid"],
55117
- props = __rest(_a, ["disabled", "onChange", "onText", "offText", "className", "required", "error", "id", "labelText", "requirementText", "helpText", "hint", "toggled", "onClick", "variant", "data-testid"]);
55118
- var handleClick = function handleClick(e) {
55119
- onClick(e);
55120
- };
55109
+ props = __rest(_a, ["checked", "variant", "className", "labelText", "requirementText", "helpText", "hint", "disabled", "toggled", "onChange", "onText", "offText", "required", "error", "id", "defaultToggled", "onClick", "data-testid"]);
55121
55110
  var componentVariant = useComponentVariant(variant);
55122
55111
  var spaceProps = getSubset(props, propTypes$1.space);
55123
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
+ }, []);
55124
55140
  return /*#__PURE__*/React__default["default"].createElement(Field, Object.assign({
55125
55141
  className: className,
55126
55142
  alignItems: "flex-start",
55127
55143
  py: "half"
55128
- }, spaceProps), /*#__PURE__*/React__default["default"].createElement(MaybeFieldLabel, {
55144
+ }, spaceProps), /*#__PURE__*/React__default["default"].createElement(FieldLabel, {
55145
+ htmlFor: id,
55129
55146
  labelText: labelText,
55130
55147
  requirementText: requirementText,
55131
55148
  helpText: helpText,
55132
- hint: hint
55133
- }, /*#__PURE__*/React__default["default"].createElement(ClickInputLabel, {
55134
- variant: componentVariant,
55135
- as: "div",
55136
- onClick: onClick,
55149
+ hint: hint,
55137
55150
  disabled: disabled,
55151
+ variant: componentVariant,
55138
55152
  "data-testid": dataTestId
55153
+ }, /*#__PURE__*/React__default["default"].createElement(Flex, {
55154
+ flexDirection: "row",
55155
+ alignItems: "center"
55139
55156
  }, /*#__PURE__*/React__default["default"].createElement(ToggleButton, Object.assign({
55140
55157
  id: id,
55141
- checked: toggled,
55142
- onChange: onChange,
55158
+ checked: _checked,
55159
+ onChange: _onChange,
55143
55160
  disabled: disabled,
55144
55161
  required: required,
55145
55162
  "aria-required": required,
55146
- "aria-invalid": error,
55147
- "aria-labelledby": labelText && labelText + "-label",
55148
- onClick: handleClick,
55149
- toggled: toggled
55163
+ "aria-invalid": error
55150
55164
  }, restProps, {
55151
- ref: props.innerRef
55165
+ ref: ref
55152
55166
  })), (onText || offText) && (/*#__PURE__*/React__default["default"].createElement(Text, {
55153
55167
  disabled: disabled,
55154
55168
  mb: "none",
55155
- ml: "x1"
55156
- }, toggled ? onText : offText)))));
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));
55169
+ ml: "x1",
55170
+ "aria-hidden": true
55171
+ }, _checked ? onText : offText)))));
55188
55172
  });
55189
55173
 
55190
55174
  var TOPBAR = {
@@ -55781,7 +55765,7 @@
55781
55765
  exports.TimeRange = TimeRange;
55782
55766
  exports.Toast = Toast;
55783
55767
  exports.ToastContainer = ToastContainer;
55784
- exports.Toggle = ToggleComponent;
55768
+ exports.Toggle = Toggle;
55785
55769
  exports.Tooltip = Tooltip;
55786
55770
  exports.TopBar = TopBar;
55787
55771
  exports.TruncatedText = TruncatedText;
@@ -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(toggled) {
54974
- return toggled ? "darkBlue" : "darkGrey";
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
- toggled = _ref.toggled,
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(toggled),
54998
+ bg: disabled ? "grey" : getSwitchBackground(checked),
54998
54999
  borderRadius: "20px",
54999
55000
  padding: "2px",
55000
55001
  boxShadow: "small",
55001
- animate: toggled ? "toggled" : "initial",
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,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 (props, ref) {
55055
- var disabled = props.disabled,
55056
- defaultToggled = props.defaultToggled,
55057
- toggled = props.toggled;
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
- toggled: toggled,
55071
- onClick: handleClick
55060
+ checked: checked
55072
55061
  }, /*#__PURE__*/React__default.createElement(ToggleInput, Object.assign({
55073
- ref: inputRef,
55074
55062
  type: "checkbox",
55075
- defaultChecked: defaultToggled,
55076
- value: toggled ? "on" : "off"
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 BaseToggle = function BaseToggle(_a) {
55083
- var disabled = _a.disabled,
55084
- onChange = _a.onChange,
55085
- onText = _a.onText,
55086
- offText = _a.offText,
55072
+ var Toggle = /*#__PURE__*/React__default.forwardRef(function (_a, ref) {
55073
+ var _b;
55074
+ var checked = _a.checked,
55075
+ variant = _a.variant,
55087
55076
  className = _a.className,
55088
- required = _a.required,
55089
- error = _a.error,
55090
- id = _a.id,
55091
55077
  labelText = _a.labelText,
55092
55078
  requirementText = _a.requirementText,
55093
55079
  helpText = _a.helpText,
55094
55080
  hint = _a.hint,
55081
+ disabled = _a.disabled,
55095
55082
  toggled = _a.toggled,
55096
- _a$onClick = _a.onClick,
55097
- onClick = _a$onClick === void 0 ? noop$2 : _a$onClick,
55098
- variant = _a.variant,
55083
+ onChange = _a.onChange,
55084
+ onText = _a.onText,
55085
+ offText = _a.offText,
55086
+ required = _a.required,
55087
+ error = _a.error,
55088
+ id = _a.id,
55089
+ defaultToggled = _a.defaultToggled,
55090
+ onClick = _a.onClick,
55099
55091
  dataTestId = _a["data-testid"],
55100
- props = __rest(_a, ["disabled", "onChange", "onText", "offText", "className", "required", "error", "id", "labelText", "requirementText", "helpText", "hint", "toggled", "onClick", "variant", "data-testid"]);
55101
- var handleClick = function handleClick(e) {
55102
- onClick(e);
55103
- };
55092
+ props = __rest(_a, ["checked", "variant", "className", "labelText", "requirementText", "helpText", "hint", "disabled", "toggled", "onChange", "onText", "offText", "required", "error", "id", "defaultToggled", "onClick", "data-testid"]);
55104
55093
  var componentVariant = useComponentVariant(variant);
55105
55094
  var spaceProps = getSubset(props, propTypes$1.space);
55106
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
+ }, []);
55107
55123
  return /*#__PURE__*/React__default.createElement(Field, Object.assign({
55108
55124
  className: className,
55109
55125
  alignItems: "flex-start",
55110
55126
  py: "half"
55111
- }, spaceProps), /*#__PURE__*/React__default.createElement(MaybeFieldLabel, {
55127
+ }, spaceProps), /*#__PURE__*/React__default.createElement(FieldLabel, {
55128
+ htmlFor: id,
55112
55129
  labelText: labelText,
55113
55130
  requirementText: requirementText,
55114
55131
  helpText: helpText,
55115
- hint: hint
55116
- }, /*#__PURE__*/React__default.createElement(ClickInputLabel, {
55117
- variant: componentVariant,
55118
- as: "div",
55119
- onClick: onClick,
55132
+ hint: hint,
55120
55133
  disabled: disabled,
55134
+ variant: componentVariant,
55121
55135
  "data-testid": dataTestId
55136
+ }, /*#__PURE__*/React__default.createElement(Flex, {
55137
+ flexDirection: "row",
55138
+ alignItems: "center"
55122
55139
  }, /*#__PURE__*/React__default.createElement(ToggleButton, Object.assign({
55123
55140
  id: id,
55124
- checked: toggled,
55125
- onChange: onChange,
55141
+ checked: _checked,
55142
+ onChange: _onChange,
55126
55143
  disabled: disabled,
55127
55144
  required: required,
55128
55145
  "aria-required": required,
55129
- "aria-invalid": error,
55130
- "aria-labelledby": labelText && labelText + "-label",
55131
- onClick: handleClick,
55132
- toggled: toggled
55146
+ "aria-invalid": error
55133
55147
  }, restProps, {
55134
- ref: props.innerRef
55148
+ ref: ref
55135
55149
  })), (onText || offText) && (/*#__PURE__*/React__default.createElement(Text, {
55136
55150
  disabled: disabled,
55137
55151
  mb: "none",
55138
- ml: "x1"
55139
- }, toggled ? onText : offText)))));
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));
55152
+ ml: "x1",
55153
+ "aria-hidden": true
55154
+ }, _checked ? onText : offText)))));
55171
55155
  });
55172
55156
 
55173
55157
  var TOPBAR = {
@@ -55659,4 +55643,4 @@ var TruncatedText = function TruncatedText(_a) {
55659
55643
  return fullWidth ? (/*#__PURE__*/React__default.createElement(TruncatedTextFillWidth, Object.assign({}, props), children)) : (/*#__PURE__*/React__default.createElement(TruncatedTextMaxCharacters, Object.assign({}, props), children));
55660
55644
  };
55661
55645
 
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, ToggleComponent as Toggle, Tooltip, TopBar, TruncatedText, VerticalDivider, WeekPicker, addStyledProps, legacy as desktop, phone, tablet, themes, toast, useMediaQuery, useWindowDimensions };
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", defaultToggled: true })),
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
- declare const ToggleComponent: React.ForwardRefExoticComponent<SpaceProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>, string | number | symbol> & {
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
- onClick?: (e: React.MouseEvent) => void;
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
- } & React.RefAttributes<HTMLInputElement>>;
28
- export default ToggleComponent;
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, { useState } from "react";
12
+ import React, { useCallback, useEffect } from "react";
13
13
  import propTypes from "@styled-system/prop-types";
14
- import { MaybeFieldLabel } from "../FieldLabel";
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 { noop } from "../utils/noop";
19
+ import { Flex } from "../Flex";
21
20
  import ToggleButton from "./ToggleButton";
22
- const BaseToggle = (_a) => {
23
- var { disabled, onChange, onText, offText, className, required, error, id, labelText, requirementText, helpText, hint, toggled, onClick = noop, variant, "data-testid": dataTestId } = _a, props = __rest(_a, ["disabled", "onChange", "onText", "offText", "className", "required", "error", "id", "labelText", "requirementText", "helpText", "hint", "toggled", "onClick", "variant", "data-testid"]);
24
- const handleClick = (e) => {
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(MaybeFieldLabel, { labelText: labelText, requirementText: requirementText, helpText: helpText, hint: hint },
32
- React.createElement(ClickInputLabel, { variant: componentVariant, as: "div", onClick: onClick, disabled: disabled, "data-testid": dataTestId },
33
- React.createElement(ToggleButton, Object.assign({ id: id, checked: toggled, onChange: onChange, disabled: disabled, required: required, "aria-required": required, "aria-invalid": error, "aria-labelledby": labelText && `${labelText}-label`, onClick: handleClick, toggled: toggled }, restProps, { ref: props.innerRef })),
34
- (onText || offText) && (React.createElement(Text, { disabled: disabled, mb: "none", ml: "x1" }, toggled ? onText : offText))))));
35
- };
36
- const StatefulToggle = (_a) => {
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
- story: {
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
- story: {
22
- name: string;
23
- };
13
+ storyName: string;
24
14
  };
25
15
  export declare const WithCustomId: {
26
16
  (): React.JSX.Element;
27
- story: {
28
- name: string;
29
- };
17
+ storyName: string;
30
18
  };
31
19
  export declare const WithText: {
32
20
  (): React.JSX.Element;
33
- story: {
34
- name: string;
35
- };
21
+ storyName: string;
36
22
  };
37
23
  export declare const WithLongText: {
38
24
  (): React.JSX.Element;
39
- story: {
40
- name: string;
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
- story: {
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 = () => React.createElement(Toggle, { "data-testid": "toggle-example", onChange: action("on change") });
11
- export const ToggleWithAllProps = () => (React.createElement(Toggle, { labelText: "Toggle", helpText: "Turns setting on/off", onText: "on", offText: "off", defaultToggled: true, required: true, requirementText: "(Required)", onChange: action("on change") }));
12
- ToggleWithAllProps.story = {
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 ToggleSetToDefaultToggled = () => (React.createElement(Toggle, { labelText: "Toggle", defaultToggled: true, onChange: action("on change") }));
16
- ToggleSetToDefaultToggled.story = {
17
- name: "Toggle set to defaultToggled",
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
- export const ToggleSetToDisabled = () => (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", defaultToggled: true, labelText: "Toggle", onChange: action("on change") })));
22
- ToggleSetToDisabled.story = {
23
- name: "Toggle set to disabled",
24
- };
25
- export const WithCustomId = () => (React.createElement(Toggle, { id: "my-custom-id", labelText: "Toggle", onText: "on", offText: "off", onChange: action("on change") }));
26
- WithCustomId.story = {
27
- name: "With custom id",
28
- };
29
- export const WithText = () => React.createElement(Toggle, { labelText: "Toggle", onText: "on", offText: "off", onChange: action("on change") });
30
- WithText.story = {
31
- name: "With text",
32
- };
33
- export const WithLongText = () => (React.createElement(Toggle, { labelText: "Toggle", defaultToggled: true, onText: "this state has a very long text label to explain it's state", offText: "not this one", onChange: action("on change") }));
34
- WithLongText.story = {
35
- name: "With long text",
36
- };
37
- export const WithContraintWidth = () => (React.createElement(DashedBox, { width: "200px", padding: "x2" },
38
- 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.", defaultToggled: true, onChange: action("on change") })));
39
- export const ControlledToggle = () => (React.createElement(Toggle, { labelText: "Controlled Toggle", toggled: boolean("Toggled", false), onText: "on", offText: "off", onChange: action("on change"), "data-testid": "toggle-example" }));
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: action("on change"), ref: ref }),
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.story = {
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
- type ToggleButtonProps = React.ComponentPropsWithRef<"input"> & {
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
- import React, { useRef, useImperativeHandle } from "react";
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 = (toggled) => (toggled ? "darkBlue" : "darkGrey");
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, toggled, onClick }) {
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(toggled), borderRadius: "20px", padding: "2px", boxShadow: "small", animate: toggled ? "toggled" : "initial", whileHover: "active", whileFocus: "active", onClick: onClick }, children));
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((props, ref) => {
54
- const { disabled, defaultToggled, toggled } = props;
55
- const inputRef = useRef(null);
56
- useImperativeHandle(ref, () => inputRef.current);
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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nulogy/components",
3
- "version": "15.1.4",
3
+ "version": "15.2.0",
4
4
  "description": "Component library for the Nulogy Design System - http://nulogy.design",
5
5
  "private": false,
6
6
  "publishConfig": {