@broxus/react-uikit 0.13.7 → 0.14.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.
Files changed (39) hide show
  1. package/dist/cjs/components/Button/index.scss +0 -2
  2. package/dist/cjs/components/Card/index.scss +25 -0
  3. package/dist/cjs/components/Control/Checkbox/Checkbox.d.ts +30 -2
  4. package/dist/cjs/components/Control/Checkbox/Checkbox.js +15 -11
  5. package/dist/cjs/components/Control/Checkbox/CheckboxGroupContext.d.ts +7 -21
  6. package/dist/cjs/components/Control/Checkbox/Group.d.ts +29 -9
  7. package/dist/cjs/components/Control/Checkbox/Group.js +15 -18
  8. package/dist/cjs/components/Control/Checkbox/index.d.ts +4 -5
  9. package/dist/cjs/components/Control/Checkbox/index.js +0 -15
  10. package/dist/cjs/components/Control/Radio/Group.js +2 -2
  11. package/dist/cjs/components/Control/Radio/Radio.d.ts +10 -1
  12. package/dist/cjs/components/Control/Radio/Radio.js +8 -3
  13. package/dist/cjs/components/Control/Radio/RadioGroupContext.d.ts +3 -3
  14. package/dist/cjs/components/Control/Select/index.scss +1 -3
  15. package/dist/cjs/styles/mixins.scss +10 -4
  16. package/dist/cjs/styles/variables.scss +1 -0
  17. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  18. package/dist/esm/components/Button/index.scss +0 -2
  19. package/dist/esm/components/Card/index.scss +25 -0
  20. package/dist/esm/components/Control/Checkbox/Checkbox.d.ts +30 -2
  21. package/dist/esm/components/Control/Checkbox/Checkbox.js +15 -11
  22. package/dist/esm/components/Control/Checkbox/CheckboxGroupContext.d.ts +7 -21
  23. package/dist/esm/components/Control/Checkbox/Group.d.ts +29 -9
  24. package/dist/esm/components/Control/Checkbox/Group.js +16 -19
  25. package/dist/esm/components/Control/Checkbox/index.d.ts +4 -5
  26. package/dist/esm/components/Control/Checkbox/index.js +2 -3
  27. package/dist/esm/components/Control/Radio/Group.js +2 -2
  28. package/dist/esm/components/Control/Radio/Radio.d.ts +10 -1
  29. package/dist/esm/components/Control/Radio/Radio.js +8 -3
  30. package/dist/esm/components/Control/Radio/RadioGroupContext.d.ts +3 -3
  31. package/dist/esm/components/Control/Select/index.scss +1 -3
  32. package/dist/esm/styles/mixins.scss +10 -4
  33. package/dist/esm/styles/variables.scss +1 -0
  34. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  35. package/package.json +2 -2
  36. package/dist/cjs/components/Control/Checkbox/types.d.ts +0 -10
  37. package/dist/cjs/components/Control/Checkbox/types.js +0 -2
  38. package/dist/esm/components/Control/Checkbox/types.d.ts +0 -10
  39. package/dist/esm/components/Control/Checkbox/types.js +0 -1
@@ -284,8 +284,6 @@
284
284
  .uk-button-primary:disabled,
285
285
  .uk-button-secondary:disabled,
286
286
  .uk-button-tertiary:disabled,
287
- .uk-button-success:disabled,
288
- .uk-button-warning:disabled,
289
287
  .uk-button-danger:disabled {
290
288
  background-color: var(--button-disabled-background);
291
289
  color: var(--button-disabled-color);
@@ -239,6 +239,31 @@
239
239
  }
240
240
  }
241
241
 
242
+ // Color Mode
243
+ @if $card-default-color-mode == light {
244
+ .uk-card-default.uk-card-body {
245
+ @extend .uk-light !optional;
246
+ }
247
+ }
248
+
249
+ @if $card-default-color-mode == light {
250
+ .uk-card-default > :not([class*='uk-card-media']) {
251
+ @extend .uk-light !optional;
252
+ }
253
+ }
254
+
255
+ @if $card-default-color-mode == dark {
256
+ .uk-card-default.uk-card-body {
257
+ @extend .uk-dark !optional;
258
+ }
259
+ }
260
+
261
+ @if $card-default-color-mode == dark {
262
+ .uk-card-default > :not([class*='uk-card-media']) {
263
+ @extend .uk-dark !optional;
264
+ }
265
+ }
266
+
242
267
  /*
243
268
  * Primary
244
269
  */
@@ -1,6 +1,34 @@
1
1
  import * as React from 'react';
2
- import { type AbstractCheckboxProps } from '../../../components/Control/Checkbox/types';
3
- export interface CheckboxProps extends AbstractCheckboxProps {
2
+ import { type SizeType } from '../../../components/Control';
3
+ export interface AbstractCheckboxProps<T> extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type' | 'onChange' | 'onMouseEnter' | 'onMouseLeave'> {
4
+ autoFocus?: boolean;
5
+ block?: boolean;
6
+ children?: React.ReactNode;
7
+ defaultChecked?: boolean;
8
+ direction?: string;
9
+ name?: string;
10
+ prefixCls?: string;
11
+ required?: boolean;
12
+ rootClassName?: string;
13
+ size?: SizeType;
14
+ skipGroup?: boolean;
15
+ tabIndex?: number;
16
+ title?: string;
17
+ type?: string;
18
+ value?: any;
19
+ id?: string;
20
+ onChange?: (event: T) => void;
21
+ }
22
+ export interface CheckboxChangeEventTarget extends CheckboxProps {
23
+ checked: boolean;
24
+ }
25
+ export interface CheckboxChangeEvent {
26
+ nativeEvent: MouseEvent;
27
+ preventDefault: VoidFunction;
28
+ stopPropagation: VoidFunction;
29
+ target: CheckboxChangeEventTarget;
30
+ }
31
+ export interface CheckboxProps extends AbstractCheckboxProps<CheckboxChangeEvent> {
4
32
  indeterminate?: boolean;
5
33
  onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;
6
34
  onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;
@@ -35,20 +35,27 @@ const CheckboxGroupContext_1 = require("../../../components/Control/Checkbox/Che
35
35
  exports.Checkbox = React.forwardRef((props, ref) => {
36
36
  const config = (0, ConfigProvider_1.useConfig)();
37
37
  const checkboxGroup = (0, CheckboxGroupContext_1.useCheckboxGroup)();
38
- const { block, children, className, direction = config.direction, disabled, id, prefixCls = config.prefixCls, size, skipGroup, style, onMouseEnter, onMouseLeave, ...restProps } = props;
38
+ const { block, children, className, direction = config.direction, disabled, id, prefixCls = config.prefixCls, size, skipGroup, style, type = 'checkbox', onChange: onChangeCallback, onMouseEnter, onMouseLeave, ...restProps } = props;
39
39
  const prevValue = React.useRef(restProps.value);
40
40
  const [internalChecked, setInternalChecked] = React.useState(restProps.checked || restProps.defaultChecked);
41
41
  const onChange = React.useCallback((event) => {
42
42
  setInternalChecked(!internalChecked);
43
- restProps.onChange?.(event);
44
- }, [internalChecked, restProps]);
43
+ onChangeCallback?.({
44
+ nativeEvent: event.nativeEvent,
45
+ preventDefault: event.preventDefault,
46
+ stopPropagation: event.stopPropagation,
47
+ target: { ...props, checked: !internalChecked },
48
+ });
49
+ }, [internalChecked, props, onChangeCallback]);
45
50
  const checkboxProps = React.useMemo(() => ({
46
51
  ...restProps,
47
52
  checked: internalChecked,
48
53
  disabled,
49
54
  id,
55
+ type,
56
+ // eslint-disable-next-line sort-keys
50
57
  onChange,
51
- }), [disabled, id, internalChecked, onChange, restProps]);
58
+ }), [disabled, id, internalChecked, restProps, type, onChange]);
52
59
  if (checkboxGroup && !skipGroup) {
53
60
  checkboxProps.onChange = (...args) => {
54
61
  onChange(...args);
@@ -69,7 +76,7 @@ exports.Checkbox = React.forwardRef((props, ref) => {
69
76
  [`${controlCls}-${size}`]: block && size,
70
77
  [`${rootCls}-wrapper`]: true,
71
78
  [`${rootCls}-rtl`]: direction === 'rtl',
72
- [`${prefixCls || config.prefixCls}-checked`]: internalChecked,
79
+ [`${prefixCls || config.prefixCls}-checked`]: checkboxProps.checked,
73
80
  [`${prefixCls || config.prefixCls}-disabled`]: checkboxProps.disabled,
74
81
  }, className), [
75
82
  controlCls,
@@ -79,15 +86,15 @@ exports.Checkbox = React.forwardRef((props, ref) => {
79
86
  direction,
80
87
  prefixCls,
81
88
  config.prefixCls,
82
- internalChecked,
89
+ checkboxProps.checked,
83
90
  checkboxProps.disabled,
84
91
  className,
85
92
  ]);
86
93
  const checkboxClasses = React.useMemo(() => (0, classnames_1.default)(rootCls, {
87
- [`${rootCls}-checked`]: internalChecked,
94
+ [`${rootCls}-checked`]: checkboxProps.checked,
88
95
  [`${rootCls}-disabled`]: disabled,
89
96
  [`${rootCls}-indeterminate`]: checkboxProps.indeterminate,
90
- }), [rootCls, internalChecked, disabled, checkboxProps.indeterminate]);
97
+ }), [rootCls, checkboxProps.checked, disabled, checkboxProps.indeterminate]);
91
98
  const globalAttributes = React.useMemo(() => (0, js_utils_1.retrieveGlobalAttributes)(restProps), [restProps]);
92
99
  React.useEffect(() => {
93
100
  checkboxGroup?.registerValue(restProps.value);
@@ -105,9 +112,6 @@ exports.Checkbox = React.forwardRef((props, ref) => {
105
112
  return () => checkboxGroup?.cancelValue(restProps.value);
106
113
  // eslint-disable-next-line react-hooks/exhaustive-deps
107
114
  }, [restProps.value, skipGroup]);
108
- React.useEffect(() => {
109
- setInternalChecked(restProps.checked || restProps.defaultChecked);
110
- }, [restProps.checked, restProps.defaultChecked]);
111
115
  return (React.createElement("label", { className: wrapperClasses, htmlFor: id, style: style, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave },
112
116
  React.createElement("span", { className: (0, classnames_1.default)(checkboxClasses) },
113
117
  React.createElement("input", { className: `${rootCls}-input`, ref: ref, ...checkboxProps, id: id, type: "checkbox", ...globalAttributes }),
@@ -1,26 +1,12 @@
1
1
  import * as React from 'react';
2
- import { type SizeType } from '../../../components/Control/types';
3
- export interface AbstractCheckboxGroupProps<T = any> {
4
- block?: boolean;
5
- children?: React.ReactNode;
6
- className?: string;
7
- direction?: string;
8
- disabled?: boolean;
9
- id?: string;
10
- name?: string;
11
- options?: T[];
12
- prefixCls?: string;
13
- size?: SizeType;
14
- stack?: boolean;
15
- style?: React.CSSProperties;
16
- }
17
- export interface CheckboxGroupConsumerProps<T = any> {
2
+ import { type CheckboxOptionType } from '../../../components/Control/Checkbox/Group';
3
+ export interface CheckboxGroupConsumer<T = any> {
4
+ cancelValue: (value: string) => void;
18
5
  disabled?: boolean;
19
6
  name?: string;
20
- value?: any;
21
- cancelValue: (value: string) => void;
22
7
  registerValue: (value: string) => void;
23
- toggleOption?: (option: T) => void;
8
+ toggleOption?: (option: CheckboxOptionType<T>) => void;
9
+ value?: any;
24
10
  }
25
- export declare const CheckboxGroupContext: React.Context<CheckboxGroupConsumerProps<any> | null>;
26
- export declare function useCheckboxGroup<T = any>(): CheckboxGroupConsumerProps<T> | null;
11
+ export declare const CheckboxGroupContext: React.Context<CheckboxGroupConsumer<any> | null>;
12
+ export declare function useCheckboxGroup<T = any>(): CheckboxGroupConsumer<T> | null;
@@ -1,15 +1,35 @@
1
1
  import * as React from 'react';
2
- import { type AbstractCheckboxGroupProps } from '../../../components/Control/Checkbox/CheckboxGroupContext';
3
- export interface CheckboxGroupProps<T = any> extends AbstractCheckboxGroupProps<T> {
4
- defaultValue?: T[];
5
- value?: T[];
6
- onChange?: (values: T[]) => void;
7
- }
2
+ import { type SizeType } from '../../../components/Control';
3
+ import { type CheckboxChangeEvent } from '../../../components/Control/Checkbox/Checkbox';
8
4
  export interface CheckboxOptionType<T = any> {
9
- disabled?: boolean;
10
5
  label: React.ReactNode;
11
6
  value: T;
12
7
  style?: React.CSSProperties;
13
- onChange?: React.ChangeEventHandler<HTMLInputElement>;
8
+ disabled?: boolean;
9
+ title?: string;
10
+ id?: string;
11
+ onChange?: (e: CheckboxChangeEvent) => void;
12
+ required?: boolean;
13
+ }
14
+ export interface AbstractCheckboxGroupProps<T = any> {
15
+ block?: boolean;
16
+ children?: React.ReactNode;
17
+ className?: string;
18
+ direction?: string;
19
+ disabled?: boolean;
20
+ id?: string;
21
+ name?: string;
22
+ options?: (CheckboxOptionType<T> | string | number)[];
23
+ prefixCls?: string;
24
+ size?: SizeType;
25
+ stack?: boolean;
26
+ style?: React.CSSProperties;
27
+ }
28
+ export interface CheckboxGroupProps<T = any> extends AbstractCheckboxGroupProps<T> {
29
+ defaultValue?: T[];
30
+ value?: T[];
31
+ onChange?: (values: T[]) => void;
14
32
  }
15
- export declare const Group: React.ForwardRefExoticComponent<CheckboxGroupProps<any> & React.RefAttributes<HTMLDivElement>>;
33
+ type InternalCheckboxValueType = string | number | boolean;
34
+ export declare const Group: React.ForwardRefExoticComponent<CheckboxGroupProps<InternalCheckboxValueType> & React.RefAttributes<HTMLDivElement>>;
35
+ export {};
@@ -37,22 +37,19 @@ exports.Group = React.forwardRef((props, ref) => {
37
37
  const { block, children, className, defaultValue, direction = config.direction, options = [], prefixCls = config.prefixCls, size, stack, style, onChange, ...restProps } = props;
38
38
  const [value, setValue] = React.useState(restProps.value || defaultValue || []);
39
39
  const [registeredValues, setRegisteredValues] = React.useState([]);
40
- const getOptions = React.useCallback(() => options?.map((option) => {
41
- if (typeof option === 'string') {
42
- return {
43
- label: option,
44
- value: option,
45
- };
40
+ const memoOptions = React.useMemo(() => options.map((option) => {
41
+ if (typeof option === 'string' || typeof option === 'number') {
42
+ return { label: option, value: option };
46
43
  }
47
44
  return option;
48
45
  }), [options]);
49
- const cancelValue = React.useCallback((val) => {
46
+ const cancelValue = val => {
50
47
  setRegisteredValues(prevValues => prevValues.filter(v => v !== val));
51
- }, []);
52
- const registerValue = React.useCallback((val) => {
48
+ };
49
+ const registerValue = val => {
53
50
  setRegisteredValues(prevValues => [...prevValues, val]);
54
- }, []);
55
- const toggleOption = React.useCallback((option) => {
51
+ };
52
+ const toggleOption = option => {
56
53
  const optionIndex = value.indexOf(option.value);
57
54
  const newValue = [...value];
58
55
  if (optionIndex === -1) {
@@ -64,28 +61,28 @@ exports.Group = React.forwardRef((props, ref) => {
64
61
  if (!('value' in restProps)) {
65
62
  setValue(newValue);
66
63
  }
67
- const opts = getOptions();
68
64
  onChange?.(newValue
69
65
  .filter(val => registeredValues.indexOf(val) !== -1)
70
66
  .sort((a, b) => {
71
- const indexA = opts.findIndex(opt => opt.value === a);
72
- const indexB = opts.findIndex(opt => opt.value === b);
67
+ const indexA = memoOptions.findIndex(opt => opt.value === a);
68
+ const indexB = memoOptions.findIndex(opt => opt.value === b);
73
69
  return indexA - indexB;
74
70
  }));
75
- }, [getOptions, onChange, registeredValues, restProps, value]);
71
+ };
76
72
  const rootCls = React.useMemo(() => config.getRootPrefixCls(prefixCls || config.prefixCls, 'checkbox-group'), [config, prefixCls]);
77
73
  const checkboxGroupClasses = React.useMemo(() => (0, classnames_1.default)(rootCls, {
78
74
  [`${rootCls}-rtl`]: direction === 'rtl',
79
75
  [`${rootCls}-stack`]: stack,
80
76
  }, className), [className, direction, rootCls, stack]);
81
- const context = React.useMemo(() => ({
77
+ // eslint-disable-next-line react/jsx-no-constructed-context-values
78
+ const context = {
82
79
  cancelValue,
83
80
  disabled: restProps.disabled,
84
81
  name: restProps.name,
85
82
  registerValue,
86
83
  toggleOption,
87
84
  value,
88
- }), [cancelValue, restProps.disabled, restProps.name, registerValue, toggleOption, value]);
85
+ };
89
86
  React.useEffect(() => {
90
87
  if ('value' in restProps) {
91
88
  setValue(restProps.value || []);
@@ -93,7 +90,7 @@ exports.Group = React.forwardRef((props, ref) => {
93
90
  }, [restProps, restProps.value]);
94
91
  return (React.createElement("div", { className: checkboxGroupClasses, style: style, ...restProps, ref: ref },
95
92
  React.createElement(CheckboxGroupContext_1.CheckboxGroupContext.Provider, { value: context }, options?.length > 0
96
- ? getOptions().map(option => (React.createElement(Checkbox_1.Checkbox, { key: option.value.toString(), block: block, checked: value.indexOf(option.value) > -1, direction: direction, disabled: 'disabled' in option ? option.disabled : restProps.disabled, size: size, value: option.value, className: `${rootCls}-item`, style: option.style, onChange: option.onChange }, option.label)))
93
+ ? memoOptions.map(option => (React.createElement(Checkbox_1.Checkbox, { key: option.value.toString(), block: block, checked: value.indexOf(option.value) > -1, direction: direction, disabled: 'disabled' in option ? option.disabled : restProps.disabled, size: size, value: option.value, className: `${rootCls}-item`, style: option.style, onChange: option.onChange }, option.label)))
97
94
  : children)));
98
95
  });
99
96
  if (process.env.NODE_ENV !== 'production') {
@@ -1,10 +1,9 @@
1
1
  import type * as React from 'react';
2
- import { type CheckboxProps } from '../../../components/Control/Checkbox/Checkbox';
3
- import { type AbstractCheckboxGroupProps, type CheckboxGroupConsumerProps } from '../../../components/Control/Checkbox/CheckboxGroupContext';
4
- import { type CheckboxGroupProps, type CheckboxOptionType, Group } from '../../../components/Control/Checkbox/Group';
2
+ import { type AbstractCheckboxProps, type CheckboxProps } from '../../../components/Control/Checkbox/Checkbox';
3
+ import { type CheckboxGroupConsumer } from '../../../components/Control/Checkbox/CheckboxGroupContext';
4
+ import { type AbstractCheckboxGroupProps, type CheckboxGroupProps, type CheckboxOptionType, Group } from '../../../components/Control/Checkbox/Group';
5
5
  import './index.scss';
6
- export type { AbstractCheckboxGroupProps, CheckboxGroupConsumerProps, CheckboxGroupProps, CheckboxOptionType, CheckboxProps, };
7
- export * from '../../../components/Control/Checkbox/types';
6
+ export type { AbstractCheckboxProps, AbstractCheckboxGroupProps, CheckboxGroupConsumer, CheckboxGroupProps, CheckboxOptionType, CheckboxProps, };
8
7
  export interface Checkbox extends React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLInputElement>> {
9
8
  Group: typeof Group;
10
9
  }
@@ -1,23 +1,8 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
2
  Object.defineProperty(exports, "__esModule", { value: true });
17
3
  exports.Checkbox = void 0;
18
4
  const Checkbox_1 = require("../../../components/Control/Checkbox/Checkbox");
19
5
  const Group_1 = require("../../../components/Control/Checkbox/Group");
20
6
  require("./index.scss");
21
- __exportStar(require("../../../components/Control/Checkbox/types"), exports);
22
7
  exports.Checkbox = Checkbox_1.Checkbox;
23
8
  exports.Checkbox.Group = Group_1.Group;
@@ -60,8 +60,8 @@ exports.Group = React.forwardRef((props, ref) => {
60
60
  const renderGroup = () => {
61
61
  let childrenToRender = children;
62
62
  if (options && options.length > 0) {
63
- childrenToRender = options.map((option) => {
64
- if (typeof option === 'string') {
63
+ childrenToRender = options.map(option => {
64
+ if (typeof option === 'string' || typeof option === 'number') {
65
65
  return (React.createElement(Radio_1.Radio, { key: option, block: block, className: `${rootCls}-item`, checked: value === option, direction: direction, disabled: disabled, size: size, value: option }, option));
66
66
  }
67
67
  return (React.createElement(Radio_1.Radio, { key: `radio-group-value-options-${option.value}`, block: block, checked: value === option.value, className: `${rootCls}-item`, direction: direction, disabled: option.disabled || disabled, size: size, style: option.style, value: option.value }, option.label));
@@ -1,7 +1,16 @@
1
1
  import * as React from 'react';
2
2
  import { type AbstractCheckboxProps } from '../../../components/Control/Checkbox';
3
- export interface RadioProps extends AbstractCheckboxProps {
3
+ export interface RadioProps extends AbstractCheckboxProps<RadioChangeEvent> {
4
4
  onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;
5
5
  onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;
6
6
  }
7
+ export interface RadioChangeEventTarget extends RadioProps {
8
+ checked: boolean;
9
+ }
10
+ export interface RadioChangeEvent {
11
+ target: RadioChangeEventTarget;
12
+ stopPropagation: VoidFunction;
13
+ preventDefault: VoidFunction;
14
+ nativeEvent: MouseEvent;
15
+ }
7
16
  export declare const Radio: React.ForwardRefExoticComponent<RadioProps & React.RefAttributes<HTMLInputElement>>;
@@ -35,15 +35,20 @@ const RadioGroupContext_1 = require("../../../components/Control/Radio/RadioGrou
35
35
  exports.Radio = React.forwardRef((props, ref) => {
36
36
  const config = (0, ConfigProvider_1.useConfig)();
37
37
  const radioGroup = (0, RadioGroupContext_1.useRadioGroup)();
38
- const { block, size, className, children, direction = config.direction, disabled, id, prefixCls = config.prefixCls, skipGroup, style, onMouseEnter, onMouseLeave, ...restProps } = props;
38
+ const { block, size, className, children, direction = config.direction, disabled, id, prefixCls = config.prefixCls, skipGroup, style, onChange: onChangeCallback, onMouseEnter, onMouseLeave, ...restProps } = props;
39
39
  const [internalChecked, setInternalChecked] = React.useState(restProps.checked
40
40
  ?? restProps.defaultChecked
41
41
  ?? ('value' in restProps && restProps.value === radioGroup?.value));
42
42
  const onChange = React.useCallback(event => {
43
43
  setInternalChecked(true);
44
- restProps.onChange?.(event);
44
+ onChangeCallback?.({
45
+ nativeEvent: event.nativeEvent,
46
+ preventDefault: event.preventDefault,
47
+ stopPropagation: event.stopPropagation,
48
+ target: { ...props, checked: !internalChecked },
49
+ });
45
50
  radioGroup?.onChange?.(event);
46
- }, [radioGroup, restProps]);
51
+ }, [internalChecked, props, radioGroup, onChangeCallback]);
47
52
  const radioProps = React.useMemo(() => ({
48
53
  ...restProps,
49
54
  checked: internalChecked,
@@ -1,9 +1,9 @@
1
1
  import * as React from 'react';
2
- export interface RadioGroupConsumerProps<T = any> {
2
+ export interface RadioGroupContextConsumer<T = any> {
3
3
  disabled?: boolean;
4
4
  name?: string;
5
5
  value?: T;
6
6
  onChange: (option: T) => void;
7
7
  }
8
- export declare const RadioGroupContext: React.Context<RadioGroupConsumerProps<any> | null>;
9
- export declare function useRadioGroup(): RadioGroupConsumerProps | null;
8
+ export declare const RadioGroupContext: React.Context<RadioGroupContextConsumer<any> | null>;
9
+ export declare function useRadioGroup(): RadioGroupContextConsumer | null;
@@ -767,9 +767,7 @@
767
767
  // Vars
768
768
  // ========================================================================
769
769
 
770
- :root,
771
- ::after,
772
- ::before {
770
+ :root {
773
771
  --select-border: var(--control-border);
774
772
  --select-border-style: var(--control-border-style);
775
773
  --select-border-width: var(--control-border-width);
@@ -2072,9 +2072,12 @@
2072
2072
  @mixin hook-switch-checked-handle() {}
2073
2073
  @mixin hook-switch-disabled() {}
2074
2074
  @mixin hook-switch-misc() {}
2075
-
2076
- @mixin hook-switcher-misc() {}
2077
- @mixin hook-inverse-component-switcher() {}
2075
+ @mixin hook-inverse-switch() {}
2076
+ @mixin hook-inverse-switch-handle() {}
2077
+ @mixin hook-inverse-switch-checked() {}
2078
+ @mixin hook-inverse-switch-checked-handle() {}
2079
+ @mixin hook-inverse-switch-disabled() {}
2080
+ @mixin hook-inverse-component-switch() {}
2078
2081
 
2079
2082
  @mixin hook-tabs() {}
2080
2083
  @mixin hook-tabs-tab() {}
@@ -2359,6 +2362,7 @@
2359
2362
  }
2360
2363
  }
2361
2364
 
2365
+ @mixin hook-inverse-misc() {}
2362
2366
 
2363
2367
  @mixin hook-inverse() {
2364
2368
  @include hook-inverse-component-base;
@@ -2391,7 +2395,7 @@
2391
2395
  @include hook-inverse-component-breadcrumb;
2392
2396
 
2393
2397
  @include hook-inverse-component-pagination;
2394
- @include hook-inverse-component-switcher;
2398
+ @include hook-inverse-component-switch;
2395
2399
  @include hook-inverse-component-tabs;
2396
2400
  @include hook-inverse-component-table;
2397
2401
 
@@ -2402,4 +2406,6 @@
2402
2406
  @include hook-inverse-component-column;
2403
2407
  @include hook-inverse-component-utility;
2404
2408
  @include hook-inverse-component-marker;
2409
+
2410
+ @include hook-inverse-misc;
2405
2411
  }
@@ -521,6 +521,7 @@ $card-default-background: $global-muted-ba
521
521
  $card-default-color: $global-color !default;
522
522
  $card-default-title-color: $global-emphasis-color !default;
523
523
  $card-default-hover-background: darken($card-default-background, 5%) !default;
524
+ $card-default-color-mode: dark !default;
524
525
  $card-primary-background: $global-primary-background !default;
525
526
  $card-primary-color: $global-inverse-color !default;
526
527
  $card-primary-title-color: $card-primary-color !default;