@redsift/design-system 9.1.0 → 9.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/index.d.ts CHANGED
@@ -9,7 +9,7 @@ type Comp<P, T = HTMLElement> = {
9
9
  ref?: Ref<T>;
10
10
  }): ReactElement | null;
11
11
  /** React component type. */
12
- readonly $$typeof: symbol;
12
+ readonly $$typeof?: symbol;
13
13
  /** Component default props. */
14
14
  defaultProps?: Partial<P>;
15
15
  /** Component name. */
@@ -1516,7 +1516,6 @@ interface CheckboxProps extends Omit<ComponentProps<'label'>, 'onChange'>, Styli
1516
1516
  /**
1517
1517
  * Default select status.
1518
1518
  * Used for uncontrolled version.
1519
- * Shouldn't be used inside a group unless isControlled is force to true.
1520
1519
  */
1521
1520
  defaultSelected?: boolean;
1522
1521
  /** Custom props to pass to the input element. */
@@ -1525,8 +1524,6 @@ interface CheckboxProps extends Omit<ComponentProps<'label'>, 'onChange'>, Styli
1525
1524
  inputRef?: MutableRefObject<HTMLInputElement>;
1526
1525
  /** Whether the component should use the product colors or shades of grey. */
1527
1526
  isColored?: boolean;
1528
- /** Indicates that the component is forced to be controlled. */
1529
- isControlled?: boolean;
1530
1527
  /** Whether the component is disabled or not. */
1531
1528
  isDisabled?: boolean;
1532
1529
  /** Whether the checkbox status is indeterminate or not. */
@@ -1540,7 +1537,6 @@ interface CheckboxProps extends Omit<ComponentProps<'label'>, 'onChange'>, Styli
1540
1537
  /**
1541
1538
  * Whether the component is selected or not.
1542
1539
  * Used for controlled version.
1543
- * Shouldn't be used inside a group unless isControlled is force to true.
1544
1540
  */
1545
1541
  isSelected?: boolean;
1546
1542
  /** Name to pass to the input element. */
package/index.js CHANGED
@@ -1328,17 +1328,19 @@ const StyledButton = styled.button`
1328
1328
  return $fullWidth ? `
1329
1329
  width: 100%;
1330
1330
  flex-grow: 1;
1331
-
1332
- .redsift-icon.left {
1333
- margin-right: unset;
1334
- }
1335
-
1336
- .redsift-icon.right {
1337
- margin-left: unset;
1338
- }
1339
1331
  ` : '';
1340
1332
  }}
1341
1333
 
1334
+ .redsift-icon.left {
1335
+ margin-right: unset;
1336
+ align-items: center;
1337
+ }
1338
+
1339
+ .redsift-icon.right {
1340
+ margin-left: unset;
1341
+ align-items: center;
1342
+ }
1343
+
1342
1344
  ${focusRing}
1343
1345
  `;
1344
1346
 
@@ -4429,10 +4431,6 @@ const StyledCardHeader = styled.div`
4429
4431
  gap: 8px;
4430
4432
  padding: 10px 0px;
4431
4433
  margin: 0px;
4432
-
4433
- .redsift-icon {
4434
- color: var(--redsift-color-neutral-black);
4435
- }
4436
4434
  }
4437
4435
 
4438
4436
  .redsift-card-header__subheader {
@@ -5130,7 +5128,7 @@ const StyledCheckbox = styled.label`
5130
5128
  }
5131
5129
  `;
5132
5130
 
5133
- const _excluded$l = ["aria-label", "aria-labelledby", "autoFocus", "children", "className", "defaultSelected", "inputProps", "inputRef", "isColored", "isControlled", "isDisabled", "isIndeterminate", "isInvalid", "isReadOnly", "isRequired", "isSelected", "name", "onChange", "value"];
5131
+ const _excluded$l = ["aria-label", "aria-labelledby", "autoFocus", "children", "className", "defaultSelected", "inputProps", "inputRef", "isColored", "isDisabled", "isIndeterminate", "isInvalid", "isReadOnly", "isRequired", "isSelected", "name", "onChange", "value"];
5134
5132
  const COMPONENT_NAME$m = 'Checkbox';
5135
5133
  const CLASSNAME$m = 'redsift-checkbox';
5136
5134
  const DEFAULT_PROPS$m = {
@@ -5155,7 +5153,6 @@ const Checkbox = /*#__PURE__*/forwardRef((props, ref) => {
5155
5153
  inputProps,
5156
5154
  inputRef,
5157
5155
  isColored,
5158
- isControlled,
5159
5156
  isDisabled,
5160
5157
  isIndeterminate,
5161
5158
  isInvalid,
@@ -5175,9 +5172,10 @@ const Checkbox = /*#__PURE__*/forwardRef((props, ref) => {
5175
5172
  });
5176
5173
  isDisabled = (_isDisabled = isDisabled) !== null && _isDisabled !== void 0 ? _isDisabled : groupState === null || groupState === void 0 ? void 0 : groupState.isDisabled;
5177
5174
  isReadOnly = (_isReadOnly = isReadOnly) !== null && _isReadOnly !== void 0 ? _isReadOnly : groupState === null || groupState === void 0 ? void 0 : groupState.isReadOnly;
5178
- const [isSelected, setSelected] = useState((_ref = propsIsSelected !== null && propsIsSelected !== void 0 ? propsIsSelected : defaultSelected) !== null && _ref !== void 0 ? _ref : groupState === null || groupState === void 0 ? void 0 : groupState.value.includes(value));
5175
+ const [isSelected, setSelected] = useState(Boolean((_ref = propsIsSelected !== null && propsIsSelected !== void 0 ? propsIsSelected : defaultSelected) !== null && _ref !== void 0 ? _ref : groupState === null || groupState === void 0 ? void 0 : groupState.value.includes(value)));
5176
+ const isControlled = propsIsSelected !== null && propsIsSelected !== undefined;
5179
5177
  useEffect(() => {
5180
- setSelected(propsIsSelected !== null && propsIsSelected !== void 0 ? propsIsSelected : defaultSelected);
5178
+ setSelected(Boolean(propsIsSelected !== null && propsIsSelected !== void 0 ? propsIsSelected : defaultSelected));
5181
5179
  }, [propsIsSelected, defaultSelected]);
5182
5180
  useEffect(() => {
5183
5181
  if (groupState) {
@@ -5185,7 +5183,7 @@ const Checkbox = /*#__PURE__*/forwardRef((props, ref) => {
5185
5183
  }
5186
5184
  }, [groupState === null || groupState === void 0 ? void 0 : groupState.value]);
5187
5185
  warnIfNoAccessibleLabelFound(props, [children]);
5188
- if (groupState && !isControlled) {
5186
+ if (groupState) {
5189
5187
  if (propsIsSelected != null) {
5190
5188
  console.warn('isSelected is unsupported on individual <Checkbox> elements within a <CheckboxGroup> unless the <Checkbox> is controlled. Please apply this prop to the group instead or pass isControlled to the component.');
5191
5189
  }
@@ -5207,18 +5205,20 @@ const Checkbox = /*#__PURE__*/forwardRef((props, ref) => {
5207
5205
  groupState.removeValue(value);
5208
5206
  }
5209
5207
  }
5210
- if (onChange) {
5211
- onChange(!isSelected, value, name, event, groupState);
5208
+ if (isControlled) {
5209
+ onChange === null || onChange === void 0 ? void 0 : onChange(!propsIsSelected, value, name, event, groupState);
5210
+ } else {
5211
+ setSelected(!isSelected);
5212
+ onChange === null || onChange === void 0 ? void 0 : onChange(!isSelected, value, name, event, groupState);
5212
5213
  }
5213
- setSelected(event.target.checked);
5214
- }, [onChange, groupState]);
5214
+ }, [onChange, groupState, isSelected, propsIsSelected]);
5215
5215
  return /*#__PURE__*/React__default.createElement(StyledCheckbox, _extends$1({}, forwardedProps, {
5216
5216
  $isColored: isColored,
5217
5217
  $isDisabled: isDisabled,
5218
5218
  $isFocusVisible: isFocusVisible,
5219
- $isInvalid: isInvalid || isRequired && !isSelected,
5219
+ $isInvalid: isInvalid || isRequired && !(isSelected || isControlled && propsIsSelected),
5220
5220
  $isRequired: isRequired,
5221
- $isSelected: isSelected,
5221
+ $isSelected: isSelected || isControlled && propsIsSelected,
5222
5222
  className: classNames(Checkbox.className, className),
5223
5223
  ref: ref
5224
5224
  }), isSelected || isControlled && propsIsSelected ? /*#__PURE__*/React__default.createElement(Icon, {
@@ -5232,13 +5232,13 @@ const Checkbox = /*#__PURE__*/forwardRef((props, ref) => {
5232
5232
  }, children) : null, /*#__PURE__*/React__default.createElement("input", _extends$1({}, inputProps, focusProps, {
5233
5233
  "aria-checked": isSelected || isControlled && propsIsSelected ? 'true' : isIndeterminate ? 'mixed' : 'false',
5234
5234
  "aria-disabled": isDisabled,
5235
- "aria-invalid": isInvalid || isRequired && !isSelected,
5235
+ "aria-invalid": isInvalid || isRequired && !(isSelected || isControlled && propsIsSelected),
5236
5236
  "aria-label": ariaLabel,
5237
5237
  "aria-labelledby": ariaLabelledby,
5238
5238
  "aria-readonly": isReadOnly,
5239
5239
  "aria-required": isRequired,
5240
5240
  autoFocus: autoFocus,
5241
- checked: isSelected ? true : false,
5241
+ checked: isSelected || isControlled && propsIsSelected ? true : false,
5242
5242
  disabled: isDisabled,
5243
5243
  name: name,
5244
5244
  onChange: handleChange,
@@ -11925,9 +11925,10 @@ const Radio = /*#__PURE__*/forwardRef((props, ref) => {
11925
11925
  });
11926
11926
  isDisabled = (_isDisabled = isDisabled) !== null && _isDisabled !== void 0 ? _isDisabled : groupState === null || groupState === void 0 ? void 0 : groupState.isDisabled;
11927
11927
  isReadOnly = (_isReadOnly = isReadOnly) !== null && _isReadOnly !== void 0 ? _isReadOnly : groupState === null || groupState === void 0 ? void 0 : groupState.isReadOnly;
11928
- const [isSelected, setSelected] = useState((_ref = propsIsSelected !== null && propsIsSelected !== void 0 ? propsIsSelected : defaultSelected) !== null && _ref !== void 0 ? _ref : Boolean((groupState === null || groupState === void 0 ? void 0 : groupState.value) && groupState.value === value));
11928
+ const [isSelected, setSelected] = useState(Boolean((_ref = propsIsSelected !== null && propsIsSelected !== void 0 ? propsIsSelected : defaultSelected) !== null && _ref !== void 0 ? _ref : Boolean((groupState === null || groupState === void 0 ? void 0 : groupState.value) && groupState.value === value)));
11929
+ const isControlled = propsIsSelected !== null && propsIsSelected !== undefined;
11929
11930
  useEffect(() => {
11930
- setSelected(propsIsSelected !== null && propsIsSelected !== void 0 ? propsIsSelected : defaultSelected);
11931
+ setSelected(Boolean(propsIsSelected !== null && propsIsSelected !== void 0 ? propsIsSelected : defaultSelected));
11931
11932
  }, [propsIsSelected, defaultSelected]);
11932
11933
  useEffect(() => {
11933
11934
  if (groupState) {
@@ -11937,10 +11938,10 @@ const Radio = /*#__PURE__*/forwardRef((props, ref) => {
11937
11938
  warnIfNoAccessibleLabelFound(props, [children]);
11938
11939
  if (groupState) {
11939
11940
  if (propsIsSelected != null) {
11940
- console.warn('isSelected is unsupported on individual <Radio> elements within a <RadioGroup> unless the <Radio> is controlled. Please apply this prop to the group instead or pass isControlled to the component.');
11941
+ console.warn('isSelected is unsupported on individual <Radio> elements within a <RadioGroup> unless the <Radio> is controlled. Please apply this prop to the group instead.');
11941
11942
  }
11942
11943
  if (defaultSelected != null) {
11943
- console.warn('defaultSelected is unsupported on individual <Radio> elements within a <RadioGroup> unless the <Radio> is controlled. Please apply this prop to the group instead or pass isControlled to the component.');
11944
+ console.warn('defaultSelected is unsupported on individual <Radio> elements within a <RadioGroup> unless the <Radio> is controlled. Please apply this prop to the group instead.');
11944
11945
  }
11945
11946
  if (props.value == null) {
11946
11947
  console.warn('A <Radio> element within a <RadioGroup> requires a `value` property unless the <Radio> is controlled.');
@@ -11953,36 +11954,38 @@ const Radio = /*#__PURE__*/forwardRef((props, ref) => {
11953
11954
  if (groupState) {
11954
11955
  groupState.setValue(value);
11955
11956
  }
11956
- if (onChange) {
11957
- onChange(!isSelected, value, name, event, groupState);
11957
+ if (isControlled) {
11958
+ onChange === null || onChange === void 0 ? void 0 : onChange(!propsIsSelected, value, name, event, groupState);
11959
+ } else {
11960
+ setSelected(!isSelected);
11961
+ onChange === null || onChange === void 0 ? void 0 : onChange(!isSelected, value, name, event, groupState);
11958
11962
  }
11959
- setSelected(event.target.checked);
11960
- }, [onChange, groupState]);
11963
+ }, [onChange, groupState, isSelected, propsIsSelected]);
11961
11964
  return /*#__PURE__*/React__default.createElement(StyledRadio, _extends$1({}, forwardedProps, {
11962
11965
  $isColored: isColored,
11963
11966
  $isDisabled: isDisabled,
11964
11967
  $isFocusVisible: isFocusVisible,
11965
- $isInvalid: isInvalid || isRequired && !isSelected,
11968
+ $isInvalid: isInvalid || isRequired && !(isSelected || isControlled && propsIsSelected),
11966
11969
  $isRequired: isRequired,
11967
- $isSelected: isSelected,
11970
+ $isSelected: isSelected || isControlled && propsIsSelected,
11968
11971
  className: classNames(Radio.className, className),
11969
11972
  ref: ref
11970
- }), isSelected ? /*#__PURE__*/React__default.createElement(Icon, {
11973
+ }), isSelected || isControlled && propsIsSelected ? /*#__PURE__*/React__default.createElement(Icon, {
11971
11974
  icon: mdiRadioboxMarked
11972
11975
  }) : /*#__PURE__*/React__default.createElement(Icon, {
11973
11976
  icon: mdiRadioboxBlank
11974
11977
  }), children ? /*#__PURE__*/React__default.createElement("span", {
11975
11978
  className: "label"
11976
11979
  }, children) : null, /*#__PURE__*/React__default.createElement("input", _extends$1({}, inputProps, focusProps, {
11977
- "aria-checked": isSelected ? 'true' : 'false',
11980
+ "aria-checked": isSelected || isControlled && propsIsSelected ? 'true' : 'false',
11978
11981
  "aria-disabled": isDisabled,
11979
- "aria-invalid": isInvalid || isRequired && !isSelected,
11982
+ "aria-invalid": isInvalid || isRequired && !(isSelected || isControlled && propsIsSelected),
11980
11983
  "aria-label": ariaLabel,
11981
11984
  "aria-labelledby": ariaLabelledby,
11982
11985
  "aria-readonly": isReadOnly,
11983
11986
  "aria-required": isRequired,
11984
11987
  autoFocus: autoFocus,
11985
- checked: isSelected ? true : false,
11988
+ checked: isSelected || isControlled && propsIsSelected ? true : false,
11986
11989
  disabled: isDisabled,
11987
11990
  name: name,
11988
11991
  onChange: handleChange,
@@ -12209,9 +12212,10 @@ const Switch = /*#__PURE__*/forwardRef((props, ref) => {
12209
12212
  });
12210
12213
  isDisabled = (_isDisabled = isDisabled) !== null && _isDisabled !== void 0 ? _isDisabled : groupState === null || groupState === void 0 ? void 0 : groupState.isDisabled;
12211
12214
  isReadOnly = (_isReadOnly = isReadOnly) !== null && _isReadOnly !== void 0 ? _isReadOnly : groupState === null || groupState === void 0 ? void 0 : groupState.isReadOnly;
12212
- const [isSelected, setSelected] = useState((_ref = propsIsSelected !== null && propsIsSelected !== void 0 ? propsIsSelected : defaultSelected) !== null && _ref !== void 0 ? _ref : groupState === null || groupState === void 0 ? void 0 : groupState.value.includes(value));
12215
+ const [isSelected, setSelected] = useState(Boolean((_ref = propsIsSelected !== null && propsIsSelected !== void 0 ? propsIsSelected : defaultSelected) !== null && _ref !== void 0 ? _ref : groupState === null || groupState === void 0 ? void 0 : groupState.value.includes(value)));
12216
+ const isControlled = propsIsSelected !== null && propsIsSelected !== undefined;
12213
12217
  useEffect(() => {
12214
- setSelected(propsIsSelected !== null && propsIsSelected !== void 0 ? propsIsSelected : defaultSelected);
12218
+ setSelected(Boolean(propsIsSelected !== null && propsIsSelected !== void 0 ? propsIsSelected : defaultSelected));
12215
12219
  }, [propsIsSelected, defaultSelected]);
12216
12220
  useEffect(() => {
12217
12221
  if (groupState) {
@@ -12221,10 +12225,10 @@ const Switch = /*#__PURE__*/forwardRef((props, ref) => {
12221
12225
  warnIfNoAccessibleLabelFound(props, [children]);
12222
12226
  if (groupState) {
12223
12227
  if (propsIsSelected != null) {
12224
- console.warn('isSelected is unsupported on individual <Switch> elements within a <SwitchGroup> unless the <Switch> is controlled. Please apply this prop to the group instead or pass isControlled to the component.');
12228
+ console.warn('isSelected is unsupported on individual <Switch> elements within a <SwitchGroup> unless the <Switch> is controlled. Please apply this prop to the group instead.');
12225
12229
  }
12226
12230
  if (defaultSelected != null) {
12227
- console.warn('defaultSelected is unsupported on individual <Switch> elements within a <SwitchGroup> unless the <Switch> is controlled. Please apply this prop to the group instead or pass isControlled to the component.');
12231
+ console.warn('defaultSelected is unsupported on individual <Switch> elements within a <SwitchGroup> unless the <Switch> is controlled. Please apply this prop to the group instead.');
12228
12232
  }
12229
12233
  if (props.value == null) {
12230
12234
  console.warn('A <Switch> element within a <SwitchGroup> requires a `value` property unless the <Switch> is controlled.');
@@ -12241,18 +12245,20 @@ const Switch = /*#__PURE__*/forwardRef((props, ref) => {
12241
12245
  groupState.removeValue(value);
12242
12246
  }
12243
12247
  }
12244
- if (onChange) {
12245
- onChange(!isSelected, value, name, event, groupState);
12248
+ if (isControlled) {
12249
+ onChange === null || onChange === void 0 ? void 0 : onChange(!propsIsSelected, value, name, event, groupState);
12250
+ } else {
12251
+ setSelected(!isSelected);
12252
+ onChange === null || onChange === void 0 ? void 0 : onChange(!isSelected, value, name, event, groupState);
12246
12253
  }
12247
- setSelected(event.target.checked);
12248
- }, [onChange, groupState]);
12254
+ }, [onChange, groupState, isSelected, propsIsSelected]);
12249
12255
  return /*#__PURE__*/React__default.createElement(StyledSwitch, _extends$1({}, forwardedProps, {
12250
12256
  $isColored: isColored,
12251
12257
  $isDisabled: isDisabled,
12252
12258
  $isFocusVisible: isFocusVisible,
12253
- $isInvalid: isInvalid || isRequired && !isSelected,
12259
+ $isInvalid: isInvalid || isRequired && !(isSelected || isControlled && propsIsSelected),
12254
12260
  $isRequired: isRequired,
12255
- $isSelected: isSelected,
12261
+ $isSelected: isSelected || isControlled && propsIsSelected,
12256
12262
  className: classNames(Switch.className, className),
12257
12263
  ref: ref
12258
12264
  }), /*#__PURE__*/React__default.createElement("div", {
@@ -12268,15 +12274,15 @@ const Switch = /*#__PURE__*/forwardRef((props, ref) => {
12268
12274
  }))), children ? /*#__PURE__*/React__default.createElement("span", {
12269
12275
  className: "label"
12270
12276
  }, children) : null, /*#__PURE__*/React__default.createElement("input", _extends$1({}, inputProps, focusProps, {
12271
- "aria-checked": isSelected ? 'true' : 'false',
12277
+ "aria-checked": isSelected || isControlled && propsIsSelected ? 'true' : 'false',
12272
12278
  "aria-disabled": isDisabled,
12273
- "aria-invalid": isInvalid || isRequired && !isSelected,
12279
+ "aria-invalid": isInvalid || isRequired && !(isSelected || isControlled && propsIsSelected),
12274
12280
  "aria-label": ariaLabel,
12275
12281
  "aria-labelledby": ariaLabelledby,
12276
12282
  "aria-readonly": isReadOnly,
12277
12283
  "aria-required": isRequired,
12278
12284
  autoFocus: autoFocus,
12279
- checked: isSelected ? true : false,
12285
+ checked: isSelected || isControlled && propsIsSelected ? true : false,
12280
12286
  disabled: isDisabled,
12281
12287
  name: name,
12282
12288
  onChange: handleChange,
@@ -12553,6 +12559,7 @@ const StyledTextField = styled.div`
12553
12559
  box-sizing: border-box;
12554
12560
  cursor: text;
12555
12561
  display: inline-flex;
12562
+ height: 42px;
12556
12563
  position: relative;
12557
12564
  }
12558
12565