@hh.ru/magritte-ui-checkbox-radio 4.1.39 → 4.1.40
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/Checkbox.d.ts +1 -1
- package/Checkbox.js +72 -45
- package/Checkbox.js.map +1 -1
- package/CheckboxSkeleton-yIwBQneg.js +27 -0
- package/{CheckboxSkeleton-BtZPDu8l.js.map → CheckboxSkeleton-yIwBQneg.js.map} +1 -1
- package/CheckboxSkeleton.d.ts +1 -1
- package/CheckboxSkeleton.js +1 -1
- package/Radio.d.ts +1 -1
- package/Radio.js +45 -15
- package/Radio.js.map +1 -1
- package/RadioSkeleton-DtHrnT95.js +27 -0
- package/{RadioSkeleton-Ddk06OCE.js.map → RadioSkeleton-DtHrnT95.js.map} +1 -1
- package/RadioSkeleton.d.ts +1 -1
- package/RadioSkeleton.js +1 -1
- package/index.css +269 -269
- package/index.d.ts +3 -3
- package/index.js +2 -2
- package/package.json +5 -5
- package/types.js +2 -2
- package/types.js.map +1 -1
- package/CheckboxSkeleton-BtZPDu8l.js +0 -19
- package/RadioSkeleton-Ddk06OCE.js +0 -19
package/Checkbox.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { FcWithFlag } from '@hh.ru/magritte-types';
|
|
2
|
-
import { CheckboxProps } from '
|
|
2
|
+
import { CheckboxProps } from './types';
|
|
3
3
|
export declare const Checkbox: import("@hh.ru/magritte-ui-skeleton").ComponentWithSkeleton<FcWithFlag<CheckboxProps, "isCheckbox">, CheckboxProps>;
|
package/Checkbox.js
CHANGED
|
@@ -3,55 +3,82 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
3
3
|
import { useRef, useEffect } from 'react';
|
|
4
4
|
import classnames from 'classnames';
|
|
5
5
|
import { useDisabled } from '@hh.ru/magritte-common-use-disabled';
|
|
6
|
-
import { C as CheckboxSkeleton, s as styles } from './CheckboxSkeleton-
|
|
6
|
+
import { C as CheckboxSkeleton, s as styles } from './CheckboxSkeleton-yIwBQneg.js';
|
|
7
7
|
import { CheckboxLineSize24, CheckboxCheckSize24 } from '@hh.ru/magritte-ui-icon/variants/private';
|
|
8
8
|
import { enrichWithSkeleton } from '@hh.ru/magritte-ui-skeleton';
|
|
9
9
|
import '@hh.ru/magritte-common-use-loading-state';
|
|
10
10
|
|
|
11
|
-
const CheckboxComponent = ({
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
11
|
+
const CheckboxComponent = ({
|
|
12
|
+
checked,
|
|
13
|
+
disabled,
|
|
14
|
+
invalid,
|
|
15
|
+
indeterminate = false,
|
|
16
|
+
onChange,
|
|
17
|
+
readOnly,
|
|
18
|
+
"aria-label": ariaLabel,
|
|
19
|
+
"data-qa": dataQaInput,
|
|
20
|
+
dataQaContainer = "checkbox-container",
|
|
21
|
+
dataQaCheckbox = "checkbox",
|
|
22
|
+
...props
|
|
23
|
+
}) => {
|
|
24
|
+
const forceDisabled = useDisabled();
|
|
25
|
+
const checkboxRef = useRef(null);
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
setTimeout(() => {
|
|
28
|
+
checkboxRef.current && (checkboxRef.current.indeterminate = indeterminate);
|
|
29
|
+
}, 0);
|
|
30
|
+
}, [indeterminate]);
|
|
31
|
+
return /* @__PURE__ */ jsxs("span", { className: styles.checkboxContainer, "data-qa": dataQaContainer, children: [
|
|
32
|
+
/* @__PURE__ */ jsx(
|
|
33
|
+
"input",
|
|
34
|
+
{
|
|
35
|
+
...props,
|
|
36
|
+
checked,
|
|
37
|
+
"data-qa": dataQaInput,
|
|
38
|
+
className: classnames(styles.checkboxInput, {
|
|
39
|
+
[styles.checkboxInputChecked]: checked,
|
|
40
|
+
// нужно отличать false от undefined, потому что в случае uncontrolled чекбокса
|
|
41
|
+
// checked равен undefined и значение задается через проп defaultChecked
|
|
42
|
+
[styles.checkboxInputUnchecked]: Object.is(checked, false)
|
|
43
|
+
}),
|
|
44
|
+
ref: checkboxRef,
|
|
45
|
+
readOnly,
|
|
46
|
+
type: "checkbox",
|
|
47
|
+
"aria-label": ariaLabel,
|
|
48
|
+
disabled: forceDisabled || !!disabled,
|
|
49
|
+
onChange
|
|
50
|
+
}
|
|
51
|
+
),
|
|
52
|
+
/* @__PURE__ */ jsx(
|
|
53
|
+
"span",
|
|
54
|
+
{
|
|
55
|
+
className: classnames(styles.checkbox, {
|
|
56
|
+
[styles.invalid]: invalid
|
|
57
|
+
}),
|
|
58
|
+
"data-qa": dataQaCheckbox
|
|
59
|
+
}
|
|
60
|
+
),
|
|
61
|
+
/* @__PURE__ */ jsxs("span", { className: styles.iconWrapper, children: [
|
|
62
|
+
/* @__PURE__ */ jsx(
|
|
63
|
+
"span",
|
|
64
|
+
{
|
|
65
|
+
className: classnames(styles.icon, {
|
|
66
|
+
[styles.iconHidden]: !indeterminate
|
|
67
|
+
}),
|
|
68
|
+
children: /* @__PURE__ */ jsx(CheckboxLineSize24, {})
|
|
69
|
+
}
|
|
70
|
+
),
|
|
71
|
+
/* @__PURE__ */ jsx(
|
|
72
|
+
"span",
|
|
73
|
+
{
|
|
74
|
+
className: classnames(styles.icon, {
|
|
75
|
+
[styles.iconHidden]: indeterminate
|
|
76
|
+
}),
|
|
77
|
+
children: /* @__PURE__ */ jsx(CheckboxCheckSize24, {})
|
|
78
|
+
}
|
|
79
|
+
)
|
|
80
|
+
] })
|
|
81
|
+
] });
|
|
55
82
|
};
|
|
56
83
|
CheckboxComponent.isCheckbox = true;
|
|
57
84
|
const Checkbox = enrichWithSkeleton(CheckboxComponent, CheckboxSkeleton);
|
package/Checkbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.js","sources":["src/Checkbox.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport classnames from 'classnames';\n\nimport { useDisabled } from '@hh.ru/magritte-common-use-disabled';\nimport { FcWithFlag } from '@hh.ru/magritte-types';\nimport { CheckboxSkeleton } from '@hh.ru/magritte-ui-checkbox-radio/CheckboxSkeleton';\nimport { CheckboxProps } from '@hh.ru/magritte-ui-checkbox-radio/types';\nimport { CheckboxCheckSize24, CheckboxLineSize24 } from '@hh.ru/magritte-ui-icon/variants/private';\nimport { enrichWithSkeleton } from '@hh.ru/magritte-ui-skeleton';\n\nimport styles from './checkbox.less';\n\nconst CheckboxComponent: FcWithFlag<CheckboxProps, 'isCheckbox'> = ({\n checked,\n disabled,\n invalid,\n indeterminate = false,\n onChange,\n readOnly,\n 'aria-label': ariaLabel,\n 'data-qa': dataQaInput,\n dataQaContainer = 'checkbox-container',\n dataQaCheckbox = 'checkbox',\n ...props\n}) => {\n const forceDisabled = useDisabled();\n const checkboxRef = useRef<HTMLInputElement>(null);\n useEffect(() => {\n /*\n Без этого ломается использование совместно с CheckableCard. Если при клике на карточку\n checked и indeterminate выставляется в true, то при последующем клике именно по чекбоксу\n у него не сбрасывается indeterminate состояние, хоть в пропсах и приходит false.\n Почему так происходит - загадка. CheckableCard перехватывает клики, поэтому не должно быть разницы\n куда кликать, по чекбоксу или по остальной площади карточки, тем не менее поведение отличается.\n Я пробовал еще перехватывать onMouseDown/Up, это не помогло.\n Другой вариант решения проблемы - отключить pointerEvents у readOnly чекбокса. Оно мне кажется чище,\n но нет гарантий что никто не завязался на onClick на таком чекбоксе, поэтому сделал так.\n Если присваивать без setTimeout и проверить значение indeterminate сразу же после присваивания,\n то оно вернет ожидаемое значение.\n Если проверить его в Promise.resolve().then(() => console.log(checkboxRef.current.indeterminate))\n оно так же вернет ожидаемое значение. Но если проверить его в setTimeout оно вернет значение которое\n было до присваивания.\n Для дебага я также пробовал заменить element.indeterminate на пару геттер/сеттер, в надежде увидеть\n кто же лишний раз вызывает присваивание. Но вызовов не было, кроме ожидаемых, к тому же все начало\n работать - значение перестало переопределяться.\n Воспроизвести баг в других кейсах (кроме совместного использования с CheckableCard) мне так же не удалось.\n В общем это какая то браузерная магия, и установка значения в макротаске делает поведение ожидаемым.\n */\n setTimeout(() => {\n checkboxRef.current && (checkboxRef.current.indeterminate = indeterminate);\n }, 0);\n }, [indeterminate]);\n\n return (\n <span className={styles.checkboxContainer} data-qa={dataQaContainer}>\n <input\n {...props}\n checked={checked}\n data-qa={dataQaInput}\n // Checkable Card вызывает event.preventDefault(),\n // из-за чего браузер не перерисовывает чекбокс при изменении пропа checked,\n // поэтому в controlled чекбоксах полагаемся на CSS-класс, а не на селектор :checked\n className={classnames(styles.checkboxInput, {\n [styles.checkboxInputChecked]: checked,\n // нужно отличать false от undefined, потому что в случае uncontrolled чекбокса\n // checked равен undefined и значение задается через проп defaultChecked\n [styles.checkboxInputUnchecked]: Object.is(checked, false),\n })}\n ref={checkboxRef}\n readOnly={readOnly}\n type=\"checkbox\"\n aria-label={ariaLabel}\n disabled={forceDisabled || !!disabled}\n onChange={onChange}\n />\n <span\n className={classnames(styles.checkbox, {\n [styles.invalid]: invalid,\n })}\n data-qa={dataQaCheckbox}\n />\n <span className={styles.iconWrapper}>\n <span\n className={classnames(styles.icon, {\n [styles.iconHidden]: !indeterminate,\n })}\n >\n <CheckboxLineSize24 />\n </span>\n <span\n className={classnames(styles.icon, {\n [styles.iconHidden]: indeterminate,\n })}\n >\n <CheckboxCheckSize24 />\n </span>\n </span>\n </span>\n );\n};\n\nCheckboxComponent.isCheckbox = true;\n\nexport const Checkbox = enrichWithSkeleton(CheckboxComponent, CheckboxSkeleton);\n"],"names":[
|
|
1
|
+
{"version":3,"file":"Checkbox.js","sources":["src/Checkbox.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport classnames from 'classnames';\n\nimport { useDisabled } from '@hh.ru/magritte-common-use-disabled';\nimport { FcWithFlag } from '@hh.ru/magritte-types';\nimport { CheckboxSkeleton } from '@hh.ru/magritte-ui-checkbox-radio/CheckboxSkeleton';\nimport { CheckboxProps } from '@hh.ru/magritte-ui-checkbox-radio/types';\nimport { CheckboxCheckSize24, CheckboxLineSize24 } from '@hh.ru/magritte-ui-icon/variants/private';\nimport { enrichWithSkeleton } from '@hh.ru/magritte-ui-skeleton';\n\nimport styles from './checkbox.less';\n\nconst CheckboxComponent: FcWithFlag<CheckboxProps, 'isCheckbox'> = ({\n checked,\n disabled,\n invalid,\n indeterminate = false,\n onChange,\n readOnly,\n 'aria-label': ariaLabel,\n 'data-qa': dataQaInput,\n dataQaContainer = 'checkbox-container',\n dataQaCheckbox = 'checkbox',\n ...props\n}) => {\n const forceDisabled = useDisabled();\n const checkboxRef = useRef<HTMLInputElement>(null);\n useEffect(() => {\n /*\n Без этого ломается использование совместно с CheckableCard. Если при клике на карточку\n checked и indeterminate выставляется в true, то при последующем клике именно по чекбоксу\n у него не сбрасывается indeterminate состояние, хоть в пропсах и приходит false.\n Почему так происходит - загадка. CheckableCard перехватывает клики, поэтому не должно быть разницы\n куда кликать, по чекбоксу или по остальной площади карточки, тем не менее поведение отличается.\n Я пробовал еще перехватывать onMouseDown/Up, это не помогло.\n Другой вариант решения проблемы - отключить pointerEvents у readOnly чекбокса. Оно мне кажется чище,\n но нет гарантий что никто не завязался на onClick на таком чекбоксе, поэтому сделал так.\n Если присваивать без setTimeout и проверить значение indeterminate сразу же после присваивания,\n то оно вернет ожидаемое значение.\n Если проверить его в Promise.resolve().then(() => console.log(checkboxRef.current.indeterminate))\n оно так же вернет ожидаемое значение. Но если проверить его в setTimeout оно вернет значение которое\n было до присваивания.\n Для дебага я также пробовал заменить element.indeterminate на пару геттер/сеттер, в надежде увидеть\n кто же лишний раз вызывает присваивание. Но вызовов не было, кроме ожидаемых, к тому же все начало\n работать - значение перестало переопределяться.\n Воспроизвести баг в других кейсах (кроме совместного использования с CheckableCard) мне так же не удалось.\n В общем это какая то браузерная магия, и установка значения в макротаске делает поведение ожидаемым.\n */\n setTimeout(() => {\n checkboxRef.current && (checkboxRef.current.indeterminate = indeterminate);\n }, 0);\n }, [indeterminate]);\n\n return (\n <span className={styles.checkboxContainer} data-qa={dataQaContainer}>\n <input\n {...props}\n checked={checked}\n data-qa={dataQaInput}\n // Checkable Card вызывает event.preventDefault(),\n // из-за чего браузер не перерисовывает чекбокс при изменении пропа checked,\n // поэтому в controlled чекбоксах полагаемся на CSS-класс, а не на селектор :checked\n className={classnames(styles.checkboxInput, {\n [styles.checkboxInputChecked]: checked,\n // нужно отличать false от undefined, потому что в случае uncontrolled чекбокса\n // checked равен undefined и значение задается через проп defaultChecked\n [styles.checkboxInputUnchecked]: Object.is(checked, false),\n })}\n ref={checkboxRef}\n readOnly={readOnly}\n type=\"checkbox\"\n aria-label={ariaLabel}\n disabled={forceDisabled || !!disabled}\n onChange={onChange}\n />\n <span\n className={classnames(styles.checkbox, {\n [styles.invalid]: invalid,\n })}\n data-qa={dataQaCheckbox}\n />\n <span className={styles.iconWrapper}>\n <span\n className={classnames(styles.icon, {\n [styles.iconHidden]: !indeterminate,\n })}\n >\n <CheckboxLineSize24 />\n </span>\n <span\n className={classnames(styles.icon, {\n [styles.iconHidden]: indeterminate,\n })}\n >\n <CheckboxCheckSize24 />\n </span>\n </span>\n </span>\n );\n};\n\nCheckboxComponent.isCheckbox = true;\n\nexport const Checkbox = enrichWithSkeleton(CheckboxComponent, CheckboxSkeleton);\n"],"names":[],"mappings":";;;;;;;;;AAYA,MAAM,oBAA6D,CAAC;AAAA,EAChE,OAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,aAAgB,GAAA,KAAA;AAAA,EAChB,QAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAc,EAAA,SAAA;AAAA,EACd,SAAW,EAAA,WAAA;AAAA,EACX,eAAkB,GAAA,oBAAA;AAAA,EAClB,cAAiB,GAAA,UAAA;AAAA,EACjB,GAAG,KAAA;AACP,CAAM,KAAA;AACF,EAAA,MAAM,gBAAgB,WAAY,EAAA,CAAA;AAClC,EAAM,MAAA,WAAA,GAAc,OAAyB,IAAI,CAAA,CAAA;AACjD,EAAA,SAAA,CAAU,MAAM;AAqBZ,IAAA,UAAA,CAAW,MAAM;AACb,MAAY,WAAA,CAAA,OAAA,KAAY,WAAY,CAAA,OAAA,CAAQ,aAAgB,GAAA,aAAA,CAAA,CAAA;AAAA,OAC7D,CAAC,CAAA,CAAA;AAAA,GACR,EAAG,CAAC,aAAa,CAAC,CAAA,CAAA;AAElB,EAAA,4BACK,MAAK,EAAA,EAAA,SAAA,EAAW,MAAO,CAAA,iBAAA,EAAmB,WAAS,eAChD,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACI,GAAG,KAAA;AAAA,QACJ,OAAA;AAAA,QACA,SAAS,EAAA,WAAA;AAAA,QAIT,SAAA,EAAW,UAAW,CAAA,MAAA,CAAO,aAAe,EAAA;AAAA,UACxC,CAAC,MAAO,CAAA,oBAAoB,GAAG,OAAA;AAAA;AAAA;AAAA,UAG/B,CAAC,MAAO,CAAA,sBAAsB,GAAG,MAAO,CAAA,EAAA,CAAG,SAAS,KAAK,CAAA;AAAA,SAC5D,CAAA;AAAA,QACD,GAAK,EAAA,WAAA;AAAA,QACL,QAAA;AAAA,QACA,IAAK,EAAA,UAAA;AAAA,QACL,YAAY,EAAA,SAAA;AAAA,QACZ,QAAA,EAAU,aAAiB,IAAA,CAAC,CAAC,QAAA;AAAA,QAC7B,QAAA;AAAA,OAAA;AAAA,KACJ;AAAA,oBACA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACG,SAAA,EAAW,UAAW,CAAA,MAAA,CAAO,QAAU,EAAA;AAAA,UACnC,CAAC,MAAO,CAAA,OAAO,GAAG,OAAA;AAAA,SACrB,CAAA;AAAA,QACD,SAAS,EAAA,cAAA;AAAA,OAAA;AAAA,KACb;AAAA,oBACC,IAAA,CAAA,MAAA,EAAA,EAAK,SAAW,EAAA,MAAA,CAAO,WACpB,EAAA,QAAA,EAAA;AAAA,sBAAA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACG,SAAA,EAAW,UAAW,CAAA,MAAA,CAAO,IAAM,EAAA;AAAA,YAC/B,CAAC,MAAA,CAAO,UAAU,GAAG,CAAC,aAAA;AAAA,WACzB,CAAA;AAAA,UAED,8BAAC,kBAAmB,EAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OACxB;AAAA,sBACA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACG,SAAA,EAAW,UAAW,CAAA,MAAA,CAAO,IAAM,EAAA;AAAA,YAC/B,CAAC,MAAO,CAAA,UAAU,GAAG,aAAA;AAAA,WACxB,CAAA;AAAA,UAED,8BAAC,mBAAoB,EAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OACzB;AAAA,KACJ,EAAA,CAAA;AAAA,GACJ,EAAA,CAAA,CAAA;AAER,CAAA,CAAA;AAEA,iBAAA,CAAkB,UAAa,GAAA,IAAA,CAAA;AAElB,MAAA,QAAA,GAAW,kBAAmB,CAAA,iBAAA,EAAmB,gBAAgB;;;;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import './index.css';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { useLoadingState } from '@hh.ru/magritte-common-use-loading-state';
|
|
4
|
+
import { Skeleton } from '@hh.ru/magritte-ui-skeleton';
|
|
5
|
+
|
|
6
|
+
var styles = {"checkbox-container":"magritte-checkbox-container___3QIIQ_4-1-40","checkboxContainer":"magritte-checkbox-container___3QIIQ_4-1-40","checkbox-input":"magritte-checkbox-input___Y41Ta_4-1-40","checkboxInput":"magritte-checkbox-input___Y41Ta_4-1-40","checkbox":"magritte-checkbox___xQHy4_4-1-40","icon-wrapper":"magritte-icon-wrapper___li18-_4-1-40","iconWrapper":"magritte-icon-wrapper___li18-_4-1-40","checkbox-input-unchecked":"magritte-checkbox-input-unchecked___Mupry_4-1-40","checkboxInputUnchecked":"magritte-checkbox-input-unchecked___Mupry_4-1-40","checkbox-input-checked":"magritte-checkbox-input-checked___8CrvA_4-1-40","checkboxInputChecked":"magritte-checkbox-input-checked___8CrvA_4-1-40","invalid":"magritte-invalid___6k7qT_4-1-40","checkbox-skeleton-container":"magritte-checkbox-skeleton-container___4uNYP_4-1-40","checkboxSkeletonContainer":"magritte-checkbox-skeleton-container___4uNYP_4-1-40","checkbox-skeleton":"magritte-checkbox-skeleton___uo6u7_4-1-40","checkboxSkeleton":"magritte-checkbox-skeleton___uo6u7_4-1-40","icon":"magritte-icon___q1TLo_4-1-40","iconHidden":"magritte-iconHidden___Sb3FQ_4-1-40"};
|
|
7
|
+
|
|
8
|
+
const CheckboxSkeleton = ({
|
|
9
|
+
Component: Checkbox,
|
|
10
|
+
// skeleton props
|
|
11
|
+
width,
|
|
12
|
+
height,
|
|
13
|
+
borderRadius,
|
|
14
|
+
inline,
|
|
15
|
+
additionalClass,
|
|
16
|
+
loading,
|
|
17
|
+
...checkboxProps
|
|
18
|
+
}) => {
|
|
19
|
+
const isLoading = useLoadingState() || loading;
|
|
20
|
+
if (isLoading) {
|
|
21
|
+
return /* @__PURE__ */ jsx("div", { className: styles.checkboxSkeletonContainer, children: /* @__PURE__ */ jsx(Skeleton, { loading: true, additionalClass: styles.checkboxSkeleton }) });
|
|
22
|
+
}
|
|
23
|
+
return /* @__PURE__ */ jsx(Checkbox, { ...checkboxProps });
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export { CheckboxSkeleton as C, styles as s };
|
|
27
|
+
//# sourceMappingURL=CheckboxSkeleton-yIwBQneg.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckboxSkeleton-
|
|
1
|
+
{"version":3,"file":"CheckboxSkeleton-yIwBQneg.js","sources":["src/CheckboxSkeleton.tsx"],"sourcesContent":["import { useLoadingState } from '@hh.ru/magritte-common-use-loading-state';\nimport { CheckboxProps } from '@hh.ru/magritte-ui-checkbox-radio/types';\nimport { IncompleteSkeletonComponent, Skeleton } from '@hh.ru/magritte-ui-skeleton';\n\nimport styles from './checkbox.less';\n\nexport const CheckboxSkeleton: IncompleteSkeletonComponent<CheckboxProps> = ({\n Component: Checkbox,\n\n // skeleton props\n width,\n height,\n borderRadius,\n inline,\n additionalClass,\n loading,\n\n ...checkboxProps\n}) => {\n const isLoading = useLoadingState() || loading;\n\n if (isLoading) {\n return (\n <div className={styles.checkboxSkeletonContainer}>\n <Skeleton loading additionalClass={styles.checkboxSkeleton} />\n </div>\n );\n }\n return <Checkbox {...checkboxProps} />;\n};\n"],"names":[],"mappings":";;;;;;AAMO,MAAM,mBAA+D,CAAC;AAAA,EACzE,SAAW,EAAA,QAAA;AAAA;AAAA,EAGX,KAAA;AAAA,EACA,MAAA;AAAA,EACA,YAAA;AAAA,EACA,MAAA;AAAA,EACA,eAAA;AAAA,EACA,OAAA;AAAA,EAEA,GAAG,aAAA;AACP,CAAM,KAAA;AACF,EAAM,MAAA,SAAA,GAAY,iBAAqB,IAAA,OAAA,CAAA;AAEvC,EAAA,IAAI,SAAW,EAAA;AACX,IAAA,uBACK,GAAA,CAAA,KAAA,EAAA,EAAI,SAAW,EAAA,MAAA,CAAO,yBACnB,EAAA,QAAA,kBAAA,GAAA,CAAC,QAAS,EAAA,EAAA,OAAA,EAAO,IAAC,EAAA,eAAA,EAAiB,MAAO,CAAA,gBAAA,EAAkB,CAChE,EAAA,CAAA,CAAA;AAAA,GAER;AACA,EAAO,uBAAA,GAAA,CAAC,QAAU,EAAA,EAAA,GAAG,aAAe,EAAA,CAAA,CAAA;AACxC;;;;"}
|
package/CheckboxSkeleton.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { CheckboxProps } from '
|
|
1
|
+
import { CheckboxProps } from './types';
|
|
2
2
|
import { IncompleteSkeletonComponent } from '@hh.ru/magritte-ui-skeleton';
|
|
3
3
|
export declare const CheckboxSkeleton: IncompleteSkeletonComponent<CheckboxProps>;
|
package/CheckboxSkeleton.js
CHANGED
|
@@ -2,5 +2,5 @@ import './index.css';
|
|
|
2
2
|
import 'react/jsx-runtime';
|
|
3
3
|
import '@hh.ru/magritte-common-use-loading-state';
|
|
4
4
|
import '@hh.ru/magritte-ui-skeleton';
|
|
5
|
-
export { C as CheckboxSkeleton } from './CheckboxSkeleton-
|
|
5
|
+
export { C as CheckboxSkeleton } from './CheckboxSkeleton-yIwBQneg.js';
|
|
6
6
|
//# sourceMappingURL=CheckboxSkeleton.js.map
|
package/Radio.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { FcWithFlag } from '@hh.ru/magritte-types';
|
|
2
|
-
import { RadioProps } from '
|
|
2
|
+
import { RadioProps } from './types';
|
|
3
3
|
export declare const Radio: import("@hh.ru/magritte-ui-skeleton").ComponentWithSkeleton<FcWithFlag<RadioProps, "isRadio">, RadioProps>;
|
package/Radio.js
CHANGED
|
@@ -2,25 +2,55 @@ import './index.css';
|
|
|
2
2
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
3
|
import classnames from 'classnames';
|
|
4
4
|
import { useDisabled } from '@hh.ru/magritte-common-use-disabled';
|
|
5
|
-
import { R as RadioSkeleton, s as styles } from './RadioSkeleton-
|
|
5
|
+
import { R as RadioSkeleton, s as styles } from './RadioSkeleton-DtHrnT95.js';
|
|
6
6
|
import { RadioCircleSize24 } from '@hh.ru/magritte-ui-icon/variants/private';
|
|
7
7
|
import { enrichWithSkeleton } from '@hh.ru/magritte-ui-skeleton';
|
|
8
8
|
import '@hh.ru/magritte-common-use-loading-state';
|
|
9
9
|
|
|
10
|
-
const RadioComponent = ({
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
10
|
+
const RadioComponent = ({
|
|
11
|
+
checked,
|
|
12
|
+
disabled,
|
|
13
|
+
invalid,
|
|
14
|
+
onChange,
|
|
15
|
+
readOnly,
|
|
16
|
+
"aria-label": ariaLabel,
|
|
17
|
+
"data-qa": dataQaInput,
|
|
18
|
+
dataQaContainer = "radio-container",
|
|
19
|
+
dataQaRadio = "radio",
|
|
20
|
+
...props
|
|
21
|
+
}) => {
|
|
22
|
+
const forceDisabled = useDisabled();
|
|
23
|
+
return /* @__PURE__ */ jsxs("span", { className: styles.radioContainer, "data-qa": dataQaContainer, children: [
|
|
24
|
+
/* @__PURE__ */ jsx(
|
|
25
|
+
"input",
|
|
26
|
+
{
|
|
27
|
+
...props,
|
|
28
|
+
checked,
|
|
29
|
+
"data-qa": dataQaInput,
|
|
30
|
+
className: classnames(styles.radioInput, {
|
|
31
|
+
[styles.radioInputChecked]: checked,
|
|
32
|
+
// нужно отличать false от undefined, потому что в случае uncontrolled радиокнопки
|
|
33
|
+
// checked равен undefined и значение задается через проп defaultChecked
|
|
34
|
+
[styles.radioInputUnchecked]: Object.is(checked, false)
|
|
35
|
+
}),
|
|
36
|
+
type: "radio",
|
|
37
|
+
readOnly,
|
|
38
|
+
"aria-label": ariaLabel,
|
|
39
|
+
disabled: forceDisabled || !!disabled,
|
|
40
|
+
onChange
|
|
41
|
+
}
|
|
42
|
+
),
|
|
43
|
+
/* @__PURE__ */ jsx(
|
|
44
|
+
"span",
|
|
45
|
+
{
|
|
46
|
+
className: classnames(styles.radio, {
|
|
47
|
+
[styles.invalid]: invalid
|
|
48
|
+
}),
|
|
49
|
+
"data-qa": dataQaRadio
|
|
50
|
+
}
|
|
51
|
+
),
|
|
52
|
+
/* @__PURE__ */ jsx("span", { className: styles.iconWrapper, children: /* @__PURE__ */ jsx(RadioCircleSize24, {}) })
|
|
53
|
+
] });
|
|
24
54
|
};
|
|
25
55
|
RadioComponent.isRadio = true;
|
|
26
56
|
const Radio = enrichWithSkeleton(RadioComponent, RadioSkeleton);
|
package/Radio.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Radio.js","sources":["src/Radio.tsx"],"sourcesContent":["import classnames from 'classnames';\n\nimport { useDisabled } from '@hh.ru/magritte-common-use-disabled';\nimport { FcWithFlag } from '@hh.ru/magritte-types';\nimport { RadioSkeleton } from '@hh.ru/magritte-ui-checkbox-radio/RadioSkeleton';\nimport { RadioProps } from '@hh.ru/magritte-ui-checkbox-radio/types';\nimport { RadioCircleSize24 } from '@hh.ru/magritte-ui-icon/variants/private';\nimport { enrichWithSkeleton } from '@hh.ru/magritte-ui-skeleton';\n\nimport styles from './radio.less';\n\nconst RadioComponent: FcWithFlag<RadioProps, 'isRadio'> = ({\n checked,\n disabled,\n invalid,\n onChange,\n readOnly,\n 'aria-label': ariaLabel,\n 'data-qa': dataQaInput,\n dataQaContainer = 'radio-container',\n dataQaRadio = 'radio',\n ...props\n}) => {\n const forceDisabled = useDisabled();\n\n return (\n <span className={styles.radioContainer} data-qa={dataQaContainer}>\n <input\n {...props}\n checked={checked}\n data-qa={dataQaInput}\n // Checkable Card вызывает event.preventDefault(),\n // из-за чего браузер не перерисовывает радиокнопку при изменении пропа checked,\n // поэтому в controlled радиокнопках полагаемся на CSS-класс, а не на селектор :checked\n className={classnames(styles.radioInput, {\n [styles.radioInputChecked]: checked,\n // нужно отличать false от undefined, потому что в случае uncontrolled радиокнопки\n // checked равен undefined и значение задается через проп defaultChecked\n [styles.radioInputUnchecked]: Object.is(checked, false),\n })}\n type=\"radio\"\n readOnly={readOnly}\n aria-label={ariaLabel}\n disabled={forceDisabled || !!disabled}\n onChange={onChange}\n />\n <span\n className={classnames(styles.radio, {\n [styles.invalid]: invalid,\n })}\n data-qa={dataQaRadio}\n />\n <span className={styles.iconWrapper}>\n <RadioCircleSize24 />\n </span>\n </span>\n );\n};\n\nRadioComponent.isRadio = true;\n\nexport const Radio = enrichWithSkeleton(RadioComponent, RadioSkeleton);\n"],"names":[
|
|
1
|
+
{"version":3,"file":"Radio.js","sources":["src/Radio.tsx"],"sourcesContent":["import classnames from 'classnames';\n\nimport { useDisabled } from '@hh.ru/magritte-common-use-disabled';\nimport { FcWithFlag } from '@hh.ru/magritte-types';\nimport { RadioSkeleton } from '@hh.ru/magritte-ui-checkbox-radio/RadioSkeleton';\nimport { RadioProps } from '@hh.ru/magritte-ui-checkbox-radio/types';\nimport { RadioCircleSize24 } from '@hh.ru/magritte-ui-icon/variants/private';\nimport { enrichWithSkeleton } from '@hh.ru/magritte-ui-skeleton';\n\nimport styles from './radio.less';\n\nconst RadioComponent: FcWithFlag<RadioProps, 'isRadio'> = ({\n checked,\n disabled,\n invalid,\n onChange,\n readOnly,\n 'aria-label': ariaLabel,\n 'data-qa': dataQaInput,\n dataQaContainer = 'radio-container',\n dataQaRadio = 'radio',\n ...props\n}) => {\n const forceDisabled = useDisabled();\n\n return (\n <span className={styles.radioContainer} data-qa={dataQaContainer}>\n <input\n {...props}\n checked={checked}\n data-qa={dataQaInput}\n // Checkable Card вызывает event.preventDefault(),\n // из-за чего браузер не перерисовывает радиокнопку при изменении пропа checked,\n // поэтому в controlled радиокнопках полагаемся на CSS-класс, а не на селектор :checked\n className={classnames(styles.radioInput, {\n [styles.radioInputChecked]: checked,\n // нужно отличать false от undefined, потому что в случае uncontrolled радиокнопки\n // checked равен undefined и значение задается через проп defaultChecked\n [styles.radioInputUnchecked]: Object.is(checked, false),\n })}\n type=\"radio\"\n readOnly={readOnly}\n aria-label={ariaLabel}\n disabled={forceDisabled || !!disabled}\n onChange={onChange}\n />\n <span\n className={classnames(styles.radio, {\n [styles.invalid]: invalid,\n })}\n data-qa={dataQaRadio}\n />\n <span className={styles.iconWrapper}>\n <RadioCircleSize24 />\n </span>\n </span>\n );\n};\n\nRadioComponent.isRadio = true;\n\nexport const Radio = enrichWithSkeleton(RadioComponent, RadioSkeleton);\n"],"names":[],"mappings":";;;;;;;;AAWA,MAAM,iBAAoD,CAAC;AAAA,EACvD,OAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAc,EAAA,SAAA;AAAA,EACd,SAAW,EAAA,WAAA;AAAA,EACX,eAAkB,GAAA,iBAAA;AAAA,EAClB,WAAc,GAAA,OAAA;AAAA,EACd,GAAG,KAAA;AACP,CAAM,KAAA;AACF,EAAA,MAAM,gBAAgB,WAAY,EAAA,CAAA;AAElC,EAAA,4BACK,MAAK,EAAA,EAAA,SAAA,EAAW,MAAO,CAAA,cAAA,EAAgB,WAAS,eAC7C,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACI,GAAG,KAAA;AAAA,QACJ,OAAA;AAAA,QACA,SAAS,EAAA,WAAA;AAAA,QAIT,SAAA,EAAW,UAAW,CAAA,MAAA,CAAO,UAAY,EAAA;AAAA,UACrC,CAAC,MAAO,CAAA,iBAAiB,GAAG,OAAA;AAAA;AAAA;AAAA,UAG5B,CAAC,MAAO,CAAA,mBAAmB,GAAG,MAAO,CAAA,EAAA,CAAG,SAAS,KAAK,CAAA;AAAA,SACzD,CAAA;AAAA,QACD,IAAK,EAAA,OAAA;AAAA,QACL,QAAA;AAAA,QACA,YAAY,EAAA,SAAA;AAAA,QACZ,QAAA,EAAU,aAAiB,IAAA,CAAC,CAAC,QAAA;AAAA,QAC7B,QAAA;AAAA,OAAA;AAAA,KACJ;AAAA,oBACA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACG,SAAA,EAAW,UAAW,CAAA,MAAA,CAAO,KAAO,EAAA;AAAA,UAChC,CAAC,MAAO,CAAA,OAAO,GAAG,OAAA;AAAA,SACrB,CAAA;AAAA,QACD,SAAS,EAAA,WAAA;AAAA,OAAA;AAAA,KACb;AAAA,wBACC,MAAK,EAAA,EAAA,SAAA,EAAW,OAAO,WACpB,EAAA,QAAA,kBAAA,GAAA,CAAC,qBAAkB,CACvB,EAAA,CAAA;AAAA,GACJ,EAAA,CAAA,CAAA;AAER,CAAA,CAAA;AAEA,cAAA,CAAe,OAAU,GAAA,IAAA,CAAA;AAEZ,MAAA,KAAA,GAAQ,kBAAmB,CAAA,cAAA,EAAgB,aAAa;;;;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import './index.css';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { useLoadingState } from '@hh.ru/magritte-common-use-loading-state';
|
|
4
|
+
import { Skeleton } from '@hh.ru/magritte-ui-skeleton';
|
|
5
|
+
|
|
6
|
+
var styles = {"radio-container":"magritte-radio-container___4uMia_4-1-40","radioContainer":"magritte-radio-container___4uMia_4-1-40","radio-input":"magritte-radio-input___-IM3Y_4-1-40","radioInput":"magritte-radio-input___-IM3Y_4-1-40","radio":"magritte-radio___diMe7_4-1-40","icon-wrapper":"magritte-icon-wrapper___ASC7R_4-1-40","iconWrapper":"magritte-icon-wrapper___ASC7R_4-1-40","radio-input-unchecked":"magritte-radio-input-unchecked___J-rPE_4-1-40","radioInputUnchecked":"magritte-radio-input-unchecked___J-rPE_4-1-40","radio-input-checked":"magritte-radio-input-checked___eYMcP_4-1-40","radioInputChecked":"magritte-radio-input-checked___eYMcP_4-1-40","invalid":"magritte-invalid___1vONj_4-1-40","radio-skeleton-container":"magritte-radio-skeleton-container___GjZez_4-1-40","radioSkeletonContainer":"magritte-radio-skeleton-container___GjZez_4-1-40","radio-skeleton":"magritte-radio-skeleton___9TSLy_4-1-40","radioSkeleton":"magritte-radio-skeleton___9TSLy_4-1-40"};
|
|
7
|
+
|
|
8
|
+
const RadioSkeleton = ({
|
|
9
|
+
Component: Radio,
|
|
10
|
+
// skeleton props
|
|
11
|
+
width,
|
|
12
|
+
height,
|
|
13
|
+
borderRadius,
|
|
14
|
+
inline,
|
|
15
|
+
additionalClass,
|
|
16
|
+
loading,
|
|
17
|
+
...radioProps
|
|
18
|
+
}) => {
|
|
19
|
+
const isLoading = useLoadingState() || loading;
|
|
20
|
+
if (isLoading) {
|
|
21
|
+
return /* @__PURE__ */ jsx("div", { className: styles.radioSkeletonContainer, children: /* @__PURE__ */ jsx(Skeleton, { additionalClass: styles.radioSkeleton, loading: isLoading }) });
|
|
22
|
+
}
|
|
23
|
+
return /* @__PURE__ */ jsx(Radio, { ...radioProps });
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export { RadioSkeleton as R, styles as s };
|
|
27
|
+
//# sourceMappingURL=RadioSkeleton-DtHrnT95.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadioSkeleton-
|
|
1
|
+
{"version":3,"file":"RadioSkeleton-DtHrnT95.js","sources":["src/RadioSkeleton.tsx"],"sourcesContent":["import { useLoadingState } from '@hh.ru/magritte-common-use-loading-state';\nimport { RadioProps } from '@hh.ru/magritte-ui-checkbox-radio/types';\nimport { IncompleteSkeletonComponent, Skeleton } from '@hh.ru/magritte-ui-skeleton';\n\nimport styles from './radio.less';\n\nexport const RadioSkeleton: IncompleteSkeletonComponent<RadioProps> = ({\n Component: Radio,\n\n // skeleton props\n width,\n height,\n borderRadius,\n inline,\n additionalClass,\n loading,\n\n ...radioProps\n}) => {\n const isLoading = useLoadingState() || loading;\n\n if (isLoading) {\n return (\n <div className={styles.radioSkeletonContainer}>\n <Skeleton additionalClass={styles.radioSkeleton} loading={isLoading} />\n </div>\n );\n }\n\n return <Radio {...radioProps} />;\n};\n"],"names":[],"mappings":";;;;;;AAMO,MAAM,gBAAyD,CAAC;AAAA,EACnE,SAAW,EAAA,KAAA;AAAA;AAAA,EAGX,KAAA;AAAA,EACA,MAAA;AAAA,EACA,YAAA;AAAA,EACA,MAAA;AAAA,EACA,eAAA;AAAA,EACA,OAAA;AAAA,EAEA,GAAG,UAAA;AACP,CAAM,KAAA;AACF,EAAM,MAAA,SAAA,GAAY,iBAAqB,IAAA,OAAA,CAAA;AAEvC,EAAA,IAAI,SAAW,EAAA;AACX,IAAA,uBACK,GAAA,CAAA,KAAA,EAAA,EAAI,SAAW,EAAA,MAAA,CAAO,sBACnB,EAAA,QAAA,kBAAA,GAAA,CAAC,QAAS,EAAA,EAAA,eAAA,EAAiB,MAAO,CAAA,aAAA,EAAe,OAAS,EAAA,SAAA,EAAW,CACzE,EAAA,CAAA,CAAA;AAAA,GAER;AAEA,EAAO,uBAAA,GAAA,CAAC,KAAO,EAAA,EAAA,GAAG,UAAY,EAAA,CAAA,CAAA;AAClC;;;;"}
|
package/RadioSkeleton.d.ts
CHANGED
package/RadioSkeleton.js
CHANGED
|
@@ -2,5 +2,5 @@ import './index.css';
|
|
|
2
2
|
import 'react/jsx-runtime';
|
|
3
3
|
import '@hh.ru/magritte-common-use-loading-state';
|
|
4
4
|
import '@hh.ru/magritte-ui-skeleton';
|
|
5
|
-
export { R as RadioSkeleton } from './RadioSkeleton-
|
|
5
|
+
export { R as RadioSkeleton } from './RadioSkeleton-DtHrnT95.js';
|
|
6
6
|
//# sourceMappingURL=RadioSkeleton.js.map
|