@hh.ru/magritte-ui-card 8.3.23 → 8.4.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/Card.d.ts +5 -1
- package/Card.js +18 -50
- package/Card.js.map +1 -1
- package/CardSegment-B8AT6F5t.js +20 -0
- package/CardSegment-B8AT6F5t.js.map +1 -0
- package/CardSegment.d.ts +9 -0
- package/CardSegment.js +11 -0
- package/CardSegment.js.map +1 -0
- package/index.css +409 -954
- package/index.d.ts +1 -0
- package/index.js +4 -1
- package/index.js.map +1 -1
- package/package.json +4 -3
- package/types.d.ts +5 -2
- package/useCardActivation.d.ts +17 -0
- package/useCardActivation.js +53 -0
- package/useCardActivation.js.map +1 -0
package/Card.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import { type FC } from 'react';
|
|
1
2
|
import type { PolymorphicComponentWithRef } from '@hh.ru/magritte-types';
|
|
3
|
+
import { type CardSegmentProps } from '@hh.ru/magritte-ui-card/CardSegment';
|
|
2
4
|
import type { CardProps } from '@hh.ru/magritte-ui-card/types';
|
|
3
|
-
export declare const Card: import("@hh.ru/magritte-ui-skeleton").ComponentWithSkeleton<PolymorphicComponentWithRef<CardProps, "div"
|
|
5
|
+
export declare const Card: import("@hh.ru/magritte-ui-skeleton").ComponentWithSkeleton<PolymorphicComponentWithRef<CardProps, "div"> & {
|
|
6
|
+
Segment: FC<CardSegmentProps>;
|
|
7
|
+
}, CardProps>;
|
package/Card.js
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import './index.css';
|
|
2
2
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
3
|
-
import { forwardRef
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
4
|
import classnames from 'classnames';
|
|
5
|
-
import { keyboardMatches, keyboardKeys } from '@hh.ru/magritte-common-keyboard';
|
|
6
|
-
import { isEventFromInteractiveComponent } from '@hh.ru/magritte-common-mouse';
|
|
7
5
|
import { useDisabled, DisabledContext } from '@hh.ru/magritte-common-use-disabled';
|
|
6
|
+
import { C as CardSegment, s as styles } from './CardSegment-B8AT6F5t.js';
|
|
8
7
|
import { CardSkeleton } from './Skeleton.js';
|
|
8
|
+
import { useCardActivation } from './useCardActivation.js';
|
|
9
9
|
import { IconDynamic } from '@hh.ru/magritte-ui-icon';
|
|
10
10
|
import { enrichWithSkeleton } from '@hh.ru/magritte-ui-skeleton';
|
|
11
11
|
import { TextDynamic } from '@hh.ru/magritte-ui-typography';
|
|
12
|
-
|
|
13
|
-
var styles = {"card":"magritte-card___bhGKz_8-3-23","border-element":"magritte-border-element___x7sZL_8-3-23","borderElement":"magritte-border-element___x7sZL_8-3-23","card-press-enabled":"magritte-card-press-enabled___kXfCl_8-3-23","cardPressEnabled":"magritte-card-press-enabled___kXfCl_8-3-23","card-disabled":"magritte-card-disabled___SMFnB_8-3-23","cardDisabled":"magritte-card-disabled___SMFnB_8-3-23","card-stretched":"magritte-card-stretched___0Uc0J_8-3-23","cardStretched":"magritte-card-stretched___0Uc0J_8-3-23","card-vertical-stretched":"magritte-card-vertical-stretched___Lrxmc_8-3-23","cardVerticalStretched":"magritte-card-vertical-stretched___Lrxmc_8-3-23","border-selected":"magritte-border-selected___bGxVg_8-3-23","borderSelected":"magritte-border-selected___bGxVg_8-3-23","border-default":"magritte-border-default___eT8Lg_8-3-23","borderDefault":"magritte-border-default___eT8Lg_8-3-23","card-hover-enabled":"magritte-card-hover-enabled___-wolU_8-3-23","cardHoverEnabled":"magritte-card-hover-enabled___-wolU_8-3-23","card-shadow-level-3":"magritte-card-shadow-level-3___R34TB_8-3-23","cardShadowLevel3":"magritte-card-shadow-level-3___R34TB_8-3-23","card-shadow-level-2":"magritte-card-shadow-level-2___BgHDx_8-3-23","cardShadowLevel2":"magritte-card-shadow-level-2___BgHDx_8-3-23","card-shadow-level-1":"magritte-card-shadow-level-1___8-39e_8-3-23","cardShadowLevel1":"magritte-card-shadow-level-1___8-39e_8-3-23","card-shadow-level-0":"magritte-card-shadow-level-0___RNbQK_8-3-23","cardShadowLevel0":"magritte-card-shadow-level-0___RNbQK_8-3-23","increase-shadow":"magritte-increase-shadow___Lvfmm_8-3-23","increaseShadow":"magritte-increase-shadow___Lvfmm_8-3-23","flex-container":"magritte-flex-container___CVFEY_8-3-23","flexContainer":"magritte-flex-container___CVFEY_8-3-23","card-style-primary":"magritte-card-style-primary___eZ6aX_8-3-23","cardStylePrimary":"magritte-card-style-primary___eZ6aX_8-3-23","card-hover-style-primary":"magritte-card-hover-style-primary___VgPLn_8-3-23","cardHoverStylePrimary":"magritte-card-hover-style-primary___VgPLn_8-3-23","card-style-secondary":"magritte-card-style-secondary___VmTqm_8-3-23","cardStyleSecondary":"magritte-card-style-secondary___VmTqm_8-3-23","card-hover-style-secondary":"magritte-card-hover-style-secondary___NQCxT_8-3-23","cardHoverStyleSecondary":"magritte-card-hover-style-secondary___NQCxT_8-3-23","card-style-tertiary":"magritte-card-style-tertiary___fE-jW_8-3-23","cardStyleTertiary":"magritte-card-style-tertiary___fE-jW_8-3-23","card-hover-style-tertiary":"magritte-card-hover-style-tertiary___Hrgqb_8-3-23","cardHoverStyleTertiary":"magritte-card-hover-style-tertiary___Hrgqb_8-3-23","card-style-accent-secondary":"magritte-card-style-accent-secondary___Ra0PD_8-3-23","cardStyleAccentSecondary":"magritte-card-style-accent-secondary___Ra0PD_8-3-23","card-hover-style-accent-secondary":"magritte-card-hover-style-accent-secondary___o5URO_8-3-23","cardHoverStyleAccentSecondary":"magritte-card-hover-style-accent-secondary___o5URO_8-3-23","card-style-accent":"magritte-card-style-accent___Gd2T5_8-3-23","cardStyleAccent":"magritte-card-style-accent___Gd2T5_8-3-23","card-hover-style-accent":"magritte-card-hover-style-accent___n8Lb4_8-3-23","cardHoverStyleAccent":"magritte-card-hover-style-accent___n8Lb4_8-3-23","card-style-positive-secondary":"magritte-card-style-positive-secondary___BsXFI_8-3-23","cardStylePositiveSecondary":"magritte-card-style-positive-secondary___BsXFI_8-3-23","card-hover-style-positive-secondary":"magritte-card-hover-style-positive-secondary___Aw634_8-3-23","cardHoverStylePositiveSecondary":"magritte-card-hover-style-positive-secondary___Aw634_8-3-23","card-style-positive":"magritte-card-style-positive___4sgFq_8-3-23","cardStylePositive":"magritte-card-style-positive___4sgFq_8-3-23","card-hover-style-positive":"magritte-card-hover-style-positive___zQ7MM_8-3-23","cardHoverStylePositive":"magritte-card-hover-style-positive___zQ7MM_8-3-23","card-style-negative-secondary":"magritte-card-style-negative-secondary___lN7i3_8-3-23","cardStyleNegativeSecondary":"magritte-card-style-negative-secondary___lN7i3_8-3-23","card-hover-style-negative-secondary":"magritte-card-hover-style-negative-secondary___V7gmt_8-3-23","cardHoverStyleNegativeSecondary":"magritte-card-hover-style-negative-secondary___V7gmt_8-3-23","card-style-negative":"magritte-card-style-negative___Fk6xX_8-3-23","cardStyleNegative":"magritte-card-style-negative___Fk6xX_8-3-23","card-hover-style-negative":"magritte-card-hover-style-negative___1cL78_8-3-23","cardHoverStyleNegative":"magritte-card-hover-style-negative___1cL78_8-3-23","card-style-warning-secondary":"magritte-card-style-warning-secondary___m2Hpa_8-3-23","cardStyleWarningSecondary":"magritte-card-style-warning-secondary___m2Hpa_8-3-23","card-hover-style-warning-secondary":"magritte-card-hover-style-warning-secondary___4knLA_8-3-23","cardHoverStyleWarningSecondary":"magritte-card-hover-style-warning-secondary___4knLA_8-3-23","card-style-warning":"magritte-card-style-warning___NIuCV_8-3-23","cardStyleWarning":"magritte-card-style-warning___NIuCV_8-3-23","card-hover-style-warning":"magritte-card-hover-style-warning___Fw34b_8-3-23","cardHoverStyleWarning":"magritte-card-hover-style-warning___Fw34b_8-3-23","card-style-special-secondary":"magritte-card-style-special-secondary___oVULE_8-3-23","cardStyleSpecialSecondary":"magritte-card-style-special-secondary___oVULE_8-3-23","card-hover-style-special-secondary":"magritte-card-hover-style-special-secondary___ImyvT_8-3-23","cardHoverStyleSpecialSecondary":"magritte-card-hover-style-special-secondary___ImyvT_8-3-23","card-style-special":"magritte-card-style-special___GOdvY_8-3-23","cardStyleSpecial":"magritte-card-style-special___GOdvY_8-3-23","card-hover-style-special":"magritte-card-hover-style-special___og9oA_8-3-23","cardHoverStyleSpecial":"magritte-card-hover-style-special___og9oA_8-3-23","card-style-dreamy-secondary":"magritte-card-style-dreamy-secondary___8Wu4Z_8-3-23","cardStyleDreamySecondary":"magritte-card-style-dreamy-secondary___8Wu4Z_8-3-23","card-hover-style-dreamy-secondary":"magritte-card-hover-style-dreamy-secondary___8SOfV_8-3-23","cardHoverStyleDreamySecondary":"magritte-card-hover-style-dreamy-secondary___8SOfV_8-3-23","card-style-dreamy":"magritte-card-style-dreamy___-Az0l_8-3-23","cardStyleDreamy":"magritte-card-style-dreamy___-Az0l_8-3-23","card-hover-style-dreamy":"magritte-card-hover-style-dreamy___9sxP7_8-3-23","cardHoverStyleDreamy":"magritte-card-hover-style-dreamy___9sxP7_8-3-23","card-style-lovely-secondary":"magritte-card-style-lovely-secondary___feuo0_8-3-23","cardStyleLovelySecondary":"magritte-card-style-lovely-secondary___feuo0_8-3-23","card-hover-style-lovely-secondary":"magritte-card-hover-style-lovely-secondary___n2BrG_8-3-23","cardHoverStyleLovelySecondary":"magritte-card-hover-style-lovely-secondary___n2BrG_8-3-23","card-style-lovely":"magritte-card-style-lovely___fPKUi_8-3-23","cardStyleLovely":"magritte-card-style-lovely___fPKUi_8-3-23","card-hover-style-lovely":"magritte-card-hover-style-lovely___Ml-R2_8-3-23","cardHoverStyleLovely":"magritte-card-hover-style-lovely___Ml-R2_8-3-23","card-style-vivid-secondary":"magritte-card-style-vivid-secondary___yqwVy_8-3-23","cardStyleVividSecondary":"magritte-card-style-vivid-secondary___yqwVy_8-3-23","card-hover-style-vivid-secondary":"magritte-card-hover-style-vivid-secondary___s4GVf_8-3-23","cardHoverStyleVividSecondary":"magritte-card-hover-style-vivid-secondary___s4GVf_8-3-23","card-style-vivid":"magritte-card-style-vivid___pmSCz_8-3-23","cardStyleVivid":"magritte-card-style-vivid___pmSCz_8-3-23","card-hover-style-vivid":"magritte-card-hover-style-vivid___qyl-R_8-3-23","cardHoverStyleVivid":"magritte-card-hover-style-vivid___qyl-R_8-3-23","card-style-body":"magritte-card-style-body___TNxld_8-3-23","cardStyleBody":"magritte-card-style-body___TNxld_8-3-23","card-hover-style-body":"magritte-card-hover-style-body___pimB3_8-3-23","cardHoverStyleBody":"magritte-card-hover-style-body___pimB3_8-3-23","card-style-overlay":"magritte-card-style-overlay___urh3T_8-3-23","cardStyleOverlay":"magritte-card-style-overlay___urh3T_8-3-23","card-hover-style-overlay":"magritte-card-hover-style-overlay___rAPpl_8-3-23","cardHoverStyleOverlay":"magritte-card-hover-style-overlay___rAPpl_8-3-23","card-style-overlay-action":"magritte-card-style-overlay-action___-jVWT_8-3-23","cardStyleOverlayAction":"magritte-card-style-overlay-action___-jVWT_8-3-23","card-hover-style-overlay-action":"magritte-card-hover-style-overlay-action___6BpQw_8-3-23","cardHoverStyleOverlayAction":"magritte-card-hover-style-overlay-action___6BpQw_8-3-23","card-style-overlay-viewer":"magritte-card-style-overlay-viewer___TdHGx_8-3-23","cardStyleOverlayViewer":"magritte-card-style-overlay-viewer___TdHGx_8-3-23","card-hover-style-overlay-viewer":"magritte-card-hover-style-overlay-viewer___f5IDi_8-3-23","cardHoverStyleOverlayViewer":"magritte-card-hover-style-overlay-viewer___f5IDi_8-3-23","card-style-overlay-toolbar":"magritte-card-style-overlay-toolbar___KWyFM_8-3-23","cardStyleOverlayToolbar":"magritte-card-style-overlay-toolbar___KWyFM_8-3-23","card-hover-style-overlay-toolbar":"magritte-card-hover-style-overlay-toolbar___wkaI6_8-3-23","cardHoverStyleOverlayToolbar":"magritte-card-hover-style-overlay-toolbar___wkaI6_8-3-23","card-style-transparent":"magritte-card-style-transparent___1h3h6_8-3-23","cardStyleTransparent":"magritte-card-style-transparent___1h3h6_8-3-23","card-hover-style-transparent":"magritte-card-hover-style-transparent___zXQGl_8-3-23","cardHoverStyleTransparent":"magritte-card-hover-style-transparent___zXQGl_8-3-23","card-style-constant":"magritte-card-style-constant___UluNp_8-3-23","cardStyleConstant":"magritte-card-style-constant___UluNp_8-3-23","card-hover-style-constant":"magritte-card-hover-style-constant___uH6-E_8-3-23","cardHoverStyleConstant":"magritte-card-hover-style-constant___uH6-E_8-3-23","card-style-constant-secondary":"magritte-card-style-constant-secondary___5HctC_8-3-23","cardStyleConstantSecondary":"magritte-card-style-constant-secondary___5HctC_8-3-23","card-hover-style-constant-secondary":"magritte-card-hover-style-constant-secondary___0vxDi_8-3-23","cardHoverStyleConstantSecondary":"magritte-card-hover-style-constant-secondary___0vxDi_8-3-23","card-style-inverse":"magritte-card-style-inverse___HWOHp_8-3-23","cardStyleInverse":"magritte-card-style-inverse___HWOHp_8-3-23","card-hover-style-inverse":"magritte-card-hover-style-inverse___Db1kM_8-3-23","cardHoverStyleInverse":"magritte-card-hover-style-inverse___Db1kM_8-3-23","card-style-inverse-secondary":"magritte-card-style-inverse-secondary___3EIdn_8-3-23","cardStyleInverseSecondary":"magritte-card-style-inverse-secondary___3EIdn_8-3-23","card-hover-style-inverse-secondary":"magritte-card-hover-style-inverse-secondary___BT8I-_8-3-23","cardHoverStyleInverseSecondary":"magritte-card-hover-style-inverse-secondary___BT8I-_8-3-23","card-border-style-neutral":"magritte-card-border-style-neutral___611b0_8-3-23","cardBorderStyleNeutral":"magritte-card-border-style-neutral___611b0_8-3-23","card-border-style-phantom":"magritte-card-border-style-phantom___ezFSC_8-3-23","cardBorderStylePhantom":"magritte-card-border-style-phantom___ezFSC_8-3-23","card-border-style-overlay":"magritte-card-border-style-overlay___yOj6r_8-3-23","cardBorderStyleOverlay":"magritte-card-border-style-overlay___yOj6r_8-3-23","card-border-style-accent":"magritte-card-border-style-accent___D-2Wb_8-3-23","cardBorderStyleAccent":"magritte-card-border-style-accent___D-2Wb_8-3-23","card-border-style-positive":"magritte-card-border-style-positive___to7aa_8-3-23","cardBorderStylePositive":"magritte-card-border-style-positive___to7aa_8-3-23","card-border-style-negative":"magritte-card-border-style-negative___IenCT_8-3-23","cardBorderStyleNegative":"magritte-card-border-style-negative___IenCT_8-3-23","card-border-style-warning":"magritte-card-border-style-warning___Fax0h_8-3-23","cardBorderStyleWarning":"magritte-card-border-style-warning___Fax0h_8-3-23","card-border-style-special":"magritte-card-border-style-special___mgV7r_8-3-23","cardBorderStyleSpecial":"magritte-card-border-style-special___mgV7r_8-3-23","card-border-style-dreamy":"magritte-card-border-style-dreamy___vYIow_8-3-23","cardBorderStyleDreamy":"magritte-card-border-style-dreamy___vYIow_8-3-23","card-border-style-lovely":"magritte-card-border-style-lovely___d1dyh_8-3-23","cardBorderStyleLovely":"magritte-card-border-style-lovely___d1dyh_8-3-23","card-border-style-vivid":"magritte-card-border-style-vivid___UYrn3_8-3-23","cardBorderStyleVivid":"magritte-card-border-style-vivid___UYrn3_8-3-23","card-border-style-neutral-heavy":"magritte-card-border-style-neutral-heavy___VR1s4_8-3-23","cardBorderStyleNeutralHeavy":"magritte-card-border-style-neutral-heavy___VR1s4_8-3-23","card-border-style-constant":"magritte-card-border-style-constant___4DDKM_8-3-23","cardBorderStyleConstant":"magritte-card-border-style-constant___4DDKM_8-3-23","card-border-style-constant-alt":"magritte-card-border-style-constant-alt___wfnBK_8-3-23","cardBorderStyleConstantAlt":"magritte-card-border-style-constant-alt___wfnBK_8-3-23"};
|
|
12
|
+
import '@hh.ru/magritte-ui-layout';
|
|
13
|
+
import '@hh.ru/magritte-common-keyboard';
|
|
14
|
+
import '@hh.ru/magritte-common-mouse';
|
|
14
15
|
|
|
15
16
|
const borderSides = ['top-left', 'top-right', 'bottom-right', 'bottom-left'];
|
|
16
17
|
const genBorderRadiusProp = (radiusProps) => {
|
|
@@ -20,48 +21,21 @@ const genBorderRadiusProp = (radiusProps) => {
|
|
|
20
21
|
.map((radius) => (isHalfHeight ? [radius[0], undefined] : radius))
|
|
21
22
|
.filter((radius) => radius[1] !== undefined));
|
|
22
23
|
const radius = [borderTopLeftRadius, borderTopRightRadius, borderBottomRightRadius, borderBottomLeftRadius];
|
|
23
|
-
const
|
|
24
|
+
const radiusVariables = radius.reduce((acc, val, index) => val === undefined
|
|
24
25
|
? acc
|
|
25
26
|
: {
|
|
26
27
|
...acc,
|
|
27
|
-
[`--magritte-
|
|
28
|
+
[`--magritte-card-border-radius-${borderSides[index]}`]: `${val}px`,
|
|
28
29
|
}, {});
|
|
29
30
|
return {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
...tableVariables,
|
|
31
|
+
'--magritte-card-border-radius': `${borderRadius}px`,
|
|
32
|
+
...radiusVariables,
|
|
33
33
|
};
|
|
34
34
|
};
|
|
35
35
|
const genPaddingProps = (paddingProps) => Object.entries(paddingProps).reduce((acc, [key, value]) => (value !== undefined ? { ...acc, [`padding${key}`]: value } : acc), {});
|
|
36
|
-
const CardForwardRefRenderFunc = ({ Element = 'div', stretched = false, verticalStretched = false, hoverEnabled = false, pressEnabled = false, shadow = 'level-0', increaseShadow = false, onClick, style = 'primary', hoverStyle, disabled = false, padding = 0, paddingLeft, paddingRight, paddingTop, paddingBottom, borderRadius = 0, borderTopLeftRadius, borderTopRightRadius, borderBottomLeftRadius, borderBottomRightRadius, children, borderStyle, borderWidth = 'none', ...restProps }, ref) => {
|
|
36
|
+
const CardForwardRefRenderFunc = ({ Element = 'div', stretched = false, verticalStretched = false, hoverEnabled = false, pressEnabled = false, shadow = 'level-0', increaseShadow = false, onClick, style = 'primary', hoverStyle, disabled = false, padding = 0, paddingLeft, paddingRight, paddingTop, paddingBottom, borderRadius = 0, borderTopLeftRadius, borderTopRightRadius, borderBottomLeftRadius, borderBottomRightRadius, children, borderStyle, borderWidth = 'none', direction, ...restProps }, ref) => {
|
|
37
37
|
const forceDisabled = useDisabled();
|
|
38
|
-
const
|
|
39
|
-
const focusCallback = () => {
|
|
40
|
-
hasFocusRef.current = true;
|
|
41
|
-
};
|
|
42
|
-
const blurCallback = () => {
|
|
43
|
-
hasFocusRef.current = false;
|
|
44
|
-
};
|
|
45
|
-
const activationHandler = useCallback((event) => {
|
|
46
|
-
if (disabled || forceDisabled || !onClick) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
if ((event.type === 'click' ||
|
|
50
|
-
(event.type === 'keydown' &&
|
|
51
|
-
keyboardMatches(event.nativeEvent, [
|
|
52
|
-
keyboardKeys.Enter,
|
|
53
|
-
keyboardKeys.Space,
|
|
54
|
-
]) &&
|
|
55
|
-
hasFocusRef.current)) &&
|
|
56
|
-
!isEventFromInteractiveComponent(event)) {
|
|
57
|
-
// card может использоваться с SPALink который проверяет defaultPrevented
|
|
58
|
-
// поэтому preventDefault делаем только на Space
|
|
59
|
-
event.type === 'keydown' &&
|
|
60
|
-
keyboardMatches(event.nativeEvent, [keyboardKeys.Space]) &&
|
|
61
|
-
event.preventDefault();
|
|
62
|
-
onClick(event);
|
|
63
|
-
}
|
|
64
|
-
}, [onClick, disabled, forceDisabled]);
|
|
38
|
+
const activationProps = useCardActivation({ onClick, disabled, hasExplicitRole: 'role' in restProps });
|
|
65
39
|
const isPressEnabled = pressEnabled || !!onClick;
|
|
66
40
|
const isHoverEnabled = hoverEnabled || isPressEnabled;
|
|
67
41
|
const paddingProps = genPaddingProps({
|
|
@@ -77,17 +51,7 @@ const CardForwardRefRenderFunc = ({ Element = 'div', stretched = false, vertical
|
|
|
77
51
|
borderTopLeftRadius,
|
|
78
52
|
borderTopRightRadius,
|
|
79
53
|
});
|
|
80
|
-
|
|
81
|
-
if (isPressEnabled && !forceDisabled && !disabled) {
|
|
82
|
-
additionalProps.tabIndex = 0;
|
|
83
|
-
}
|
|
84
|
-
if (ref) {
|
|
85
|
-
additionalProps.ref = ref;
|
|
86
|
-
}
|
|
87
|
-
if (!('role' in restProps) && typeof onClick === 'function') {
|
|
88
|
-
additionalProps.role = 'button';
|
|
89
|
-
}
|
|
90
|
-
return (jsx(DisabledContext.Provider, { value: forceDisabled || !!disabled, children: jsxs(Element, { ...restProps, ...additionalProps, onFocus: focusCallback, onBlur: blurCallback, onClick: activationHandler, onKeyDown: activationHandler, style: { ...paddingProps, ...radiusProps }, className: classnames(styles.card, styles[`card-style-${style}`], !!hoverStyle && styles[`card-hover-style-${hoverStyle}`], !!borderStyle && styles[`card-border-style-${borderStyle}`], styles[`card-shadow-${shadow}`], {
|
|
54
|
+
return (jsx(DisabledContext.Provider, { value: forceDisabled || !!disabled, children: jsxs(Element, { ...restProps, ...(ref ? { ref } : {}), ...activationProps, style: { ...paddingProps, ...radiusProps }, className: classnames(styles.card, styles[`card-style-${style}`], !!hoverStyle && styles[`card-hover-style-${hoverStyle}`], !!borderStyle && styles[`card-border-style-${borderStyle}`], styles[`card-shadow-${shadow}`], {
|
|
91
55
|
[styles.cardStretched]: stretched,
|
|
92
56
|
[styles.cardVerticalStretched]: verticalStretched,
|
|
93
57
|
[styles.cardPressEnabled]: isPressEnabled,
|
|
@@ -96,9 +60,13 @@ const CardForwardRefRenderFunc = ({ Element = 'div', stretched = false, vertical
|
|
|
96
60
|
[styles.cardDisabled]: !!disabled,
|
|
97
61
|
[styles.borderSelected]: borderWidth === 'selected',
|
|
98
62
|
[styles.borderDefault]: borderWidth === 'default',
|
|
99
|
-
}),
|
|
63
|
+
}), children: [jsx(IconDynamic, { stretched: true, hoverEnabled: isHoverEnabled, pressEnabled: isPressEnabled, children: jsx("div", { className: styles.flexContainer, children: jsx(TextDynamic, { stretched: true, className: classnames({
|
|
64
|
+
[styles.layoutVertical]: direction === 'column',
|
|
65
|
+
[styles.layoutHorizontal]: direction === 'row',
|
|
66
|
+
}), children: children }) }) }), jsx("div", { className: styles.borderElement, style: radiusProps })] }) }));
|
|
100
67
|
};
|
|
101
68
|
const CardComponent = forwardRef(CardForwardRefRenderFunc);
|
|
69
|
+
CardComponent.Segment = CardSegment;
|
|
102
70
|
const Card = enrichWithSkeleton(CardComponent, CardSkeleton);
|
|
103
71
|
|
|
104
72
|
export { Card };
|
package/Card.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Card.js","sources":["src/Card.tsx"],"sourcesContent":["import { forwardRef, useCallback, useRef } from 'react';\nimport classnames from 'classnames';\n\nimport { keyboardMatches, keyboardKeys } from '@hh.ru/magritte-common-keyboard';\nimport { isEventFromInteractiveComponent } from '@hh.ru/magritte-common-mouse';\nimport { DisabledContext, useDisabled } from '@hh.ru/magritte-common-use-disabled';\nimport type { PolymorphicForwardRefRenderFunc, PolymorphicComponentWithRef } from '@hh.ru/magritte-types';\nimport { CardSkeleton } from '@hh.ru/magritte-ui-card/Skeleton';\nimport type { CardBorderRadius, CardPadding, CardProps } from '@hh.ru/magritte-ui-card/types';\nimport { IconDynamic } from '@hh.ru/magritte-ui-icon';\nimport { enrichWithSkeleton } from '@hh.ru/magritte-ui-skeleton';\nimport { TextDynamic } from '@hh.ru/magritte-ui-typography';\n\nimport styles from './card.less';\n\nconst borderSides = ['top-left', 'top-right', 'bottom-right', 'bottom-left'];\nconst genBorderRadiusProp = (radiusProps: {\n borderRadius: CardBorderRadius;\n borderTopLeftRadius?: CardBorderRadius;\n borderTopRightRadius?: CardBorderRadius;\n borderBottomLeftRadius?: CardBorderRadius;\n borderBottomRightRadius?: CardBorderRadius;\n}) => {\n const isHalfHeight = Object.values(radiusProps).includes('halfHeight');\n const borderRadius = isHalfHeight ? 99999 : radiusProps.borderRadius;\n const { borderTopLeftRadius, borderTopRightRadius, borderBottomLeftRadius, borderBottomRightRadius } =\n Object.fromEntries(\n Object.entries(radiusProps)\n .map((radius) => (isHalfHeight ? [radius[0], undefined] : radius))\n .filter((radius) => radius[1] !== undefined)\n ) as typeof radiusProps;\n\n const radius = [borderTopLeftRadius, borderTopRightRadius, borderBottomRightRadius, borderBottomLeftRadius];\n\n const tableVariables = radius.reduce(\n (acc, val, index) =>\n val === undefined\n ? acc\n : {\n ...acc,\n [`--magritte-ui-table-border-radius-${borderSides[index]}`]: `${val}px`,\n },\n {}\n );\n\n return {\n borderRadius: `${radius.map((radius) => radius ?? borderRadius).join('px ')}px`,\n '--magritte-ui-table-border-radius': `${borderRadius}px`,\n ...tableVariables,\n };\n};\n\nconst genPaddingProps = (paddingProps: {\n Left?: CardPadding;\n Right?: CardPadding;\n Top?: CardPadding;\n Bottom?: CardPadding;\n}) =>\n Object.entries(paddingProps).reduce<Record<string, number>>(\n (acc, [key, value]) => (value !== undefined ? { ...acc, [`padding${key}`]: value } : acc),\n {}\n );\n\nconst CardForwardRefRenderFunc: PolymorphicForwardRefRenderFunc<CardProps, 'div'> = (\n {\n Element = 'div',\n stretched = false,\n verticalStretched = false,\n hoverEnabled = false,\n pressEnabled = false,\n shadow = 'level-0',\n increaseShadow = false,\n onClick,\n style = 'primary',\n hoverStyle,\n disabled = false,\n padding = 0,\n paddingLeft,\n paddingRight,\n paddingTop,\n paddingBottom,\n borderRadius = 0,\n borderTopLeftRadius,\n borderTopRightRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius,\n children,\n borderStyle,\n borderWidth = 'none',\n ...restProps\n },\n ref\n) => {\n const forceDisabled = useDisabled();\n const hasFocusRef = useRef(false);\n const focusCallback = () => {\n hasFocusRef.current = true;\n };\n const blurCallback = () => {\n hasFocusRef.current = false;\n };\n const activationHandler = useCallback(\n (event: React.KeyboardEvent<HTMLElement> | React.MouseEvent<HTMLElement>) => {\n if (disabled || forceDisabled || !onClick) {\n return;\n }\n\n if (\n (event.type === 'click' ||\n (event.type === 'keydown' &&\n keyboardMatches((event as React.KeyboardEvent<HTMLElement>).nativeEvent, [\n keyboardKeys.Enter,\n keyboardKeys.Space,\n ]) &&\n hasFocusRef.current)) &&\n !isEventFromInteractiveComponent(event)\n ) {\n // card может использоваться с SPALink который проверяет defaultPrevented\n // поэтому preventDefault делаем только на Space\n event.type === 'keydown' &&\n keyboardMatches((event as React.KeyboardEvent<HTMLElement>).nativeEvent, [keyboardKeys.Space]) &&\n event.preventDefault();\n onClick(event);\n }\n },\n [onClick, disabled, forceDisabled]\n );\n const isPressEnabled = pressEnabled || !!onClick;\n const isHoverEnabled = hoverEnabled || isPressEnabled;\n\n const paddingProps = genPaddingProps({\n Left: paddingLeft ?? padding,\n Right: paddingRight ?? padding,\n Top: paddingTop ?? padding,\n Bottom: paddingBottom ?? padding,\n });\n const radiusProps = genBorderRadiusProp({\n borderRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius,\n borderTopLeftRadius,\n borderTopRightRadius,\n });\n const additionalProps: Record<string, unknown> = {};\n if (isPressEnabled && !forceDisabled && !disabled) {\n additionalProps.tabIndex = 0;\n }\n\n if (ref) {\n additionalProps.ref = ref;\n }\n\n if (!('role' in restProps) && typeof onClick === 'function') {\n additionalProps.role = 'button';\n }\n\n return (\n <DisabledContext.Provider value={forceDisabled || !!disabled}>\n <Element\n {...restProps}\n {...additionalProps}\n onFocus={focusCallback}\n onBlur={blurCallback}\n onClick={activationHandler}\n onKeyDown={activationHandler}\n style={{ ...paddingProps, ...radiusProps }}\n className={classnames(\n styles.card,\n styles[`card-style-${style}`],\n !!hoverStyle && styles[`card-hover-style-${hoverStyle}`],\n !!borderStyle && styles[`card-border-style-${borderStyle}`],\n styles[`card-shadow-${shadow}`],\n {\n [styles.cardStretched]: stretched,\n [styles.cardVerticalStretched]: verticalStretched,\n [styles.cardPressEnabled]: isPressEnabled,\n [styles.cardHoverEnabled]: isHoverEnabled,\n [styles.increaseShadow]: increaseShadow,\n [styles.cardDisabled]: !!disabled,\n [styles.borderSelected]: borderWidth === 'selected',\n [styles.borderDefault]: borderWidth === 'default',\n }\n )}\n aria-disabled={forceDisabled || !!disabled}\n >\n <IconDynamic stretched hoverEnabled={isHoverEnabled} pressEnabled={isPressEnabled}>\n <div className={styles.flexContainer}>\n <TextDynamic stretched>{children}</TextDynamic>\n </div>\n </IconDynamic>\n <div className={styles.borderElement} style={radiusProps} />\n </Element>\n </DisabledContext.Provider>\n );\n};\n\nconst CardComponent = forwardRef(CardForwardRefRenderFunc) as PolymorphicComponentWithRef<CardProps, 'div'>;\n\nexport const Card = enrichWithSkeleton(CardComponent, CardSkeleton);\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Card.js","sources":["src/Card.tsx"],"sourcesContent":["import { type CSSProperties, forwardRef, type FC } from 'react';\nimport classnames from 'classnames';\n\nimport { DisabledContext, useDisabled } from '@hh.ru/magritte-common-use-disabled';\nimport type { PolymorphicForwardRefRenderFunc, PolymorphicComponentWithRef } from '@hh.ru/magritte-types';\nimport { CardSegment, type CardSegmentProps } from '@hh.ru/magritte-ui-card/CardSegment';\nimport { CardSkeleton } from '@hh.ru/magritte-ui-card/Skeleton';\nimport type { CardBorderRadius, CardPadding, CardProps } from '@hh.ru/magritte-ui-card/types';\nimport { useCardActivation } from '@hh.ru/magritte-ui-card/useCardActivation';\nimport { IconDynamic } from '@hh.ru/magritte-ui-icon';\nimport { enrichWithSkeleton } from '@hh.ru/magritte-ui-skeleton';\nimport { TextDynamic } from '@hh.ru/magritte-ui-typography';\n\nimport styles from './card.less';\n\nconst borderSides = ['top-left', 'top-right', 'bottom-right', 'bottom-left'] as const;\n\nconst genBorderRadiusProp = (radiusProps: {\n borderRadius: CardBorderRadius;\n borderTopLeftRadius?: CardBorderRadius;\n borderTopRightRadius?: CardBorderRadius;\n borderBottomLeftRadius?: CardBorderRadius;\n borderBottomRightRadius?: CardBorderRadius;\n}): CSSProperties => {\n const isHalfHeight = Object.values(radiusProps).includes('halfHeight');\n const borderRadius = isHalfHeight ? 99999 : radiusProps.borderRadius;\n const { borderTopLeftRadius, borderTopRightRadius, borderBottomLeftRadius, borderBottomRightRadius } =\n Object.fromEntries(\n Object.entries(radiusProps)\n .map((radius) => (isHalfHeight ? [radius[0], undefined] : radius))\n .filter((radius) => radius[1] !== undefined)\n ) as typeof radiusProps;\n\n const radius = [borderTopLeftRadius, borderTopRightRadius, borderBottomRightRadius, borderBottomLeftRadius];\n\n const radiusVariables = radius.reduce(\n (acc, val, index) =>\n val === undefined\n ? acc\n : {\n ...acc,\n [`--magritte-card-border-radius-${borderSides[index]}`]: `${val}px`,\n },\n {}\n );\n\n return {\n '--magritte-card-border-radius': `${borderRadius}px`,\n ...radiusVariables,\n } as CSSProperties;\n};\n\nconst genPaddingProps = (paddingProps: {\n Left?: CardPadding;\n Right?: CardPadding;\n Top?: CardPadding;\n Bottom?: CardPadding;\n}) =>\n Object.entries(paddingProps).reduce<Record<string, number>>(\n (acc, [key, value]) => (value !== undefined ? { ...acc, [`padding${key}`]: value } : acc),\n {}\n );\n\nconst CardForwardRefRenderFunc: PolymorphicForwardRefRenderFunc<CardProps, 'div'> = (\n {\n Element = 'div',\n stretched = false,\n verticalStretched = false,\n hoverEnabled = false,\n pressEnabled = false,\n shadow = 'level-0',\n increaseShadow = false,\n onClick,\n style = 'primary',\n hoverStyle,\n disabled = false,\n padding = 0,\n paddingLeft,\n paddingRight,\n paddingTop,\n paddingBottom,\n borderRadius = 0,\n borderTopLeftRadius,\n borderTopRightRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius,\n children,\n borderStyle,\n borderWidth = 'none',\n direction,\n ...restProps\n },\n ref\n) => {\n const forceDisabled = useDisabled();\n const activationProps = useCardActivation({ onClick, disabled, hasExplicitRole: 'role' in restProps });\n const isPressEnabled = pressEnabled || !!onClick;\n const isHoverEnabled = hoverEnabled || isPressEnabled;\n\n const paddingProps = genPaddingProps({\n Left: paddingLeft ?? padding,\n Right: paddingRight ?? padding,\n Top: paddingTop ?? padding,\n Bottom: paddingBottom ?? padding,\n });\n const radiusProps = genBorderRadiusProp({\n borderRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius,\n borderTopLeftRadius,\n borderTopRightRadius,\n });\n\n return (\n <DisabledContext.Provider value={forceDisabled || !!disabled}>\n <Element\n {...restProps}\n {...(ref ? { ref } : {})}\n {...activationProps}\n style={{ ...paddingProps, ...radiusProps }}\n className={classnames(\n styles.card,\n styles[`card-style-${style}`],\n !!hoverStyle && styles[`card-hover-style-${hoverStyle}`],\n !!borderStyle && styles[`card-border-style-${borderStyle}`],\n styles[`card-shadow-${shadow}`],\n {\n [styles.cardStretched]: stretched,\n [styles.cardVerticalStretched]: verticalStretched,\n [styles.cardPressEnabled]: isPressEnabled,\n [styles.cardHoverEnabled]: isHoverEnabled,\n [styles.increaseShadow]: increaseShadow,\n [styles.cardDisabled]: !!disabled,\n [styles.borderSelected]: borderWidth === 'selected',\n [styles.borderDefault]: borderWidth === 'default',\n }\n )}\n >\n <IconDynamic stretched hoverEnabled={isHoverEnabled} pressEnabled={isPressEnabled}>\n <div className={styles.flexContainer}>\n <TextDynamic\n stretched\n className={classnames({\n [styles.layoutVertical]: direction === 'column',\n [styles.layoutHorizontal]: direction === 'row',\n })}\n >\n {children}\n </TextDynamic>\n </div>\n </IconDynamic>\n <div className={styles.borderElement} style={radiusProps} />\n </Element>\n </DisabledContext.Provider>\n );\n};\n\nconst CardComponent = forwardRef(CardForwardRefRenderFunc) as unknown as PolymorphicComponentWithRef<\n CardProps,\n 'div'\n> & {\n Segment: FC<CardSegmentProps>;\n};\n\nCardComponent.Segment = CardSegment;\n\nexport const Card = enrichWithSkeleton(CardComponent, CardSkeleton);\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import './index.css';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import classnames from 'classnames';
|
|
4
|
+
import { useCardActivation } from './useCardActivation.js';
|
|
5
|
+
import { Flex } from '@hh.ru/magritte-ui-layout';
|
|
6
|
+
|
|
7
|
+
var styles = {"card":"magritte-card___bhGKz_8-4-0","card-segment":"magritte-card-segment___7LjJe_8-4-0","cardSegment":"magritte-card-segment___7LjJe_8-4-0","layout-vertical":"magritte-layout-vertical___9V-h-_8-4-0","layoutVertical":"magritte-layout-vertical___9V-h-_8-4-0","layout-horizontal":"magritte-layout-horizontal___HUAK3_8-4-0","layoutHorizontal":"magritte-layout-horizontal___HUAK3_8-4-0","border-element":"magritte-border-element___x7sZL_8-4-0","borderElement":"magritte-border-element___x7sZL_8-4-0","card-press-enabled":"magritte-card-press-enabled___kXfCl_8-4-0","cardPressEnabled":"magritte-card-press-enabled___kXfCl_8-4-0","interactive":"magritte-interactive___rmhl9_8-4-0","card-disabled":"magritte-card-disabled___SMFnB_8-4-0","cardDisabled":"magritte-card-disabled___SMFnB_8-4-0","card-stretched":"magritte-card-stretched___0Uc0J_8-4-0","cardStretched":"magritte-card-stretched___0Uc0J_8-4-0","card-vertical-stretched":"magritte-card-vertical-stretched___Lrxmc_8-4-0","cardVerticalStretched":"magritte-card-vertical-stretched___Lrxmc_8-4-0","border-selected":"magritte-border-selected___bGxVg_8-4-0","borderSelected":"magritte-border-selected___bGxVg_8-4-0","border-default":"magritte-border-default___eT8Lg_8-4-0","borderDefault":"magritte-border-default___eT8Lg_8-4-0","card-hover-enabled":"magritte-card-hover-enabled___-wolU_8-4-0","cardHoverEnabled":"magritte-card-hover-enabled___-wolU_8-4-0","card-shadow-level-3":"magritte-card-shadow-level-3___R34TB_8-4-0","cardShadowLevel3":"magritte-card-shadow-level-3___R34TB_8-4-0","card-shadow-level-2":"magritte-card-shadow-level-2___BgHDx_8-4-0","cardShadowLevel2":"magritte-card-shadow-level-2___BgHDx_8-4-0","card-shadow-level-1":"magritte-card-shadow-level-1___8-39e_8-4-0","cardShadowLevel1":"magritte-card-shadow-level-1___8-39e_8-4-0","card-shadow-level-0":"magritte-card-shadow-level-0___RNbQK_8-4-0","cardShadowLevel0":"magritte-card-shadow-level-0___RNbQK_8-4-0","increase-shadow":"magritte-increase-shadow___Lvfmm_8-4-0","increaseShadow":"magritte-increase-shadow___Lvfmm_8-4-0","card-style-primary":"magritte-card-style-primary___eZ6aX_8-4-0","cardStylePrimary":"magritte-card-style-primary___eZ6aX_8-4-0","card-style-secondary":"magritte-card-style-secondary___VmTqm_8-4-0","cardStyleSecondary":"magritte-card-style-secondary___VmTqm_8-4-0","card-style-tertiary":"magritte-card-style-tertiary___fE-jW_8-4-0","cardStyleTertiary":"magritte-card-style-tertiary___fE-jW_8-4-0","card-style-accent-secondary":"magritte-card-style-accent-secondary___Ra0PD_8-4-0","cardStyleAccentSecondary":"magritte-card-style-accent-secondary___Ra0PD_8-4-0","card-style-accent":"magritte-card-style-accent___Gd2T5_8-4-0","cardStyleAccent":"magritte-card-style-accent___Gd2T5_8-4-0","card-style-positive-secondary":"magritte-card-style-positive-secondary___BsXFI_8-4-0","cardStylePositiveSecondary":"magritte-card-style-positive-secondary___BsXFI_8-4-0","card-style-positive":"magritte-card-style-positive___4sgFq_8-4-0","cardStylePositive":"magritte-card-style-positive___4sgFq_8-4-0","card-style-negative-secondary":"magritte-card-style-negative-secondary___lN7i3_8-4-0","cardStyleNegativeSecondary":"magritte-card-style-negative-secondary___lN7i3_8-4-0","card-style-negative":"magritte-card-style-negative___Fk6xX_8-4-0","cardStyleNegative":"magritte-card-style-negative___Fk6xX_8-4-0","card-style-warning-secondary":"magritte-card-style-warning-secondary___m2Hpa_8-4-0","cardStyleWarningSecondary":"magritte-card-style-warning-secondary___m2Hpa_8-4-0","card-style-warning":"magritte-card-style-warning___NIuCV_8-4-0","cardStyleWarning":"magritte-card-style-warning___NIuCV_8-4-0","card-style-special-secondary":"magritte-card-style-special-secondary___oVULE_8-4-0","cardStyleSpecialSecondary":"magritte-card-style-special-secondary___oVULE_8-4-0","card-style-special":"magritte-card-style-special___GOdvY_8-4-0","cardStyleSpecial":"magritte-card-style-special___GOdvY_8-4-0","card-style-dreamy-secondary":"magritte-card-style-dreamy-secondary___8Wu4Z_8-4-0","cardStyleDreamySecondary":"magritte-card-style-dreamy-secondary___8Wu4Z_8-4-0","card-style-dreamy":"magritte-card-style-dreamy___-Az0l_8-4-0","cardStyleDreamy":"magritte-card-style-dreamy___-Az0l_8-4-0","card-style-lovely-secondary":"magritte-card-style-lovely-secondary___feuo0_8-4-0","cardStyleLovelySecondary":"magritte-card-style-lovely-secondary___feuo0_8-4-0","card-style-lovely":"magritte-card-style-lovely___fPKUi_8-4-0","cardStyleLovely":"magritte-card-style-lovely___fPKUi_8-4-0","card-style-vivid-secondary":"magritte-card-style-vivid-secondary___yqwVy_8-4-0","cardStyleVividSecondary":"magritte-card-style-vivid-secondary___yqwVy_8-4-0","card-style-vivid":"magritte-card-style-vivid___pmSCz_8-4-0","cardStyleVivid":"magritte-card-style-vivid___pmSCz_8-4-0","card-style-body":"magritte-card-style-body___TNxld_8-4-0","cardStyleBody":"magritte-card-style-body___TNxld_8-4-0","card-style-overlay":"magritte-card-style-overlay___urh3T_8-4-0","cardStyleOverlay":"magritte-card-style-overlay___urh3T_8-4-0","card-style-overlay-action":"magritte-card-style-overlay-action___-jVWT_8-4-0","cardStyleOverlayAction":"magritte-card-style-overlay-action___-jVWT_8-4-0","card-style-overlay-viewer":"magritte-card-style-overlay-viewer___TdHGx_8-4-0","cardStyleOverlayViewer":"magritte-card-style-overlay-viewer___TdHGx_8-4-0","card-style-overlay-toolbar":"magritte-card-style-overlay-toolbar___KWyFM_8-4-0","cardStyleOverlayToolbar":"magritte-card-style-overlay-toolbar___KWyFM_8-4-0","card-style-transparent":"magritte-card-style-transparent___1h3h6_8-4-0","cardStyleTransparent":"magritte-card-style-transparent___1h3h6_8-4-0","card-style-constant":"magritte-card-style-constant___UluNp_8-4-0","cardStyleConstant":"magritte-card-style-constant___UluNp_8-4-0","card-style-constant-secondary":"magritte-card-style-constant-secondary___5HctC_8-4-0","cardStyleConstantSecondary":"magritte-card-style-constant-secondary___5HctC_8-4-0","card-style-inverse":"magritte-card-style-inverse___HWOHp_8-4-0","cardStyleInverse":"magritte-card-style-inverse___HWOHp_8-4-0","card-style-inverse-secondary":"magritte-card-style-inverse-secondary___3EIdn_8-4-0","cardStyleInverseSecondary":"magritte-card-style-inverse-secondary___3EIdn_8-4-0","card-hover-style-primary":"magritte-card-hover-style-primary___VgPLn_8-4-0","cardHoverStylePrimary":"magritte-card-hover-style-primary___VgPLn_8-4-0","card-hover-style-secondary":"magritte-card-hover-style-secondary___NQCxT_8-4-0","cardHoverStyleSecondary":"magritte-card-hover-style-secondary___NQCxT_8-4-0","card-hover-style-tertiary":"magritte-card-hover-style-tertiary___Hrgqb_8-4-0","cardHoverStyleTertiary":"magritte-card-hover-style-tertiary___Hrgqb_8-4-0","card-hover-style-accent-secondary":"magritte-card-hover-style-accent-secondary___o5URO_8-4-0","cardHoverStyleAccentSecondary":"magritte-card-hover-style-accent-secondary___o5URO_8-4-0","card-hover-style-accent":"magritte-card-hover-style-accent___n8Lb4_8-4-0","cardHoverStyleAccent":"magritte-card-hover-style-accent___n8Lb4_8-4-0","card-hover-style-positive-secondary":"magritte-card-hover-style-positive-secondary___Aw634_8-4-0","cardHoverStylePositiveSecondary":"magritte-card-hover-style-positive-secondary___Aw634_8-4-0","card-hover-style-positive":"magritte-card-hover-style-positive___zQ7MM_8-4-0","cardHoverStylePositive":"magritte-card-hover-style-positive___zQ7MM_8-4-0","card-hover-style-negative-secondary":"magritte-card-hover-style-negative-secondary___V7gmt_8-4-0","cardHoverStyleNegativeSecondary":"magritte-card-hover-style-negative-secondary___V7gmt_8-4-0","card-hover-style-negative":"magritte-card-hover-style-negative___1cL78_8-4-0","cardHoverStyleNegative":"magritte-card-hover-style-negative___1cL78_8-4-0","card-hover-style-warning-secondary":"magritte-card-hover-style-warning-secondary___4knLA_8-4-0","cardHoverStyleWarningSecondary":"magritte-card-hover-style-warning-secondary___4knLA_8-4-0","card-hover-style-warning":"magritte-card-hover-style-warning___Fw34b_8-4-0","cardHoverStyleWarning":"magritte-card-hover-style-warning___Fw34b_8-4-0","card-hover-style-special-secondary":"magritte-card-hover-style-special-secondary___ImyvT_8-4-0","cardHoverStyleSpecialSecondary":"magritte-card-hover-style-special-secondary___ImyvT_8-4-0","card-hover-style-special":"magritte-card-hover-style-special___og9oA_8-4-0","cardHoverStyleSpecial":"magritte-card-hover-style-special___og9oA_8-4-0","card-hover-style-dreamy-secondary":"magritte-card-hover-style-dreamy-secondary___8SOfV_8-4-0","cardHoverStyleDreamySecondary":"magritte-card-hover-style-dreamy-secondary___8SOfV_8-4-0","card-hover-style-dreamy":"magritte-card-hover-style-dreamy___9sxP7_8-4-0","cardHoverStyleDreamy":"magritte-card-hover-style-dreamy___9sxP7_8-4-0","card-hover-style-lovely-secondary":"magritte-card-hover-style-lovely-secondary___n2BrG_8-4-0","cardHoverStyleLovelySecondary":"magritte-card-hover-style-lovely-secondary___n2BrG_8-4-0","card-hover-style-lovely":"magritte-card-hover-style-lovely___Ml-R2_8-4-0","cardHoverStyleLovely":"magritte-card-hover-style-lovely___Ml-R2_8-4-0","card-hover-style-vivid-secondary":"magritte-card-hover-style-vivid-secondary___s4GVf_8-4-0","cardHoverStyleVividSecondary":"magritte-card-hover-style-vivid-secondary___s4GVf_8-4-0","card-hover-style-vivid":"magritte-card-hover-style-vivid___qyl-R_8-4-0","cardHoverStyleVivid":"magritte-card-hover-style-vivid___qyl-R_8-4-0","card-hover-style-body":"magritte-card-hover-style-body___pimB3_8-4-0","cardHoverStyleBody":"magritte-card-hover-style-body___pimB3_8-4-0","card-hover-style-overlay":"magritte-card-hover-style-overlay___rAPpl_8-4-0","cardHoverStyleOverlay":"magritte-card-hover-style-overlay___rAPpl_8-4-0","card-hover-style-overlay-action":"magritte-card-hover-style-overlay-action___6BpQw_8-4-0","cardHoverStyleOverlayAction":"magritte-card-hover-style-overlay-action___6BpQw_8-4-0","card-hover-style-overlay-viewer":"magritte-card-hover-style-overlay-viewer___f5IDi_8-4-0","cardHoverStyleOverlayViewer":"magritte-card-hover-style-overlay-viewer___f5IDi_8-4-0","card-hover-style-overlay-toolbar":"magritte-card-hover-style-overlay-toolbar___wkaI6_8-4-0","cardHoverStyleOverlayToolbar":"magritte-card-hover-style-overlay-toolbar___wkaI6_8-4-0","card-hover-style-transparent":"magritte-card-hover-style-transparent___zXQGl_8-4-0","cardHoverStyleTransparent":"magritte-card-hover-style-transparent___zXQGl_8-4-0","card-hover-style-constant":"magritte-card-hover-style-constant___uH6-E_8-4-0","cardHoverStyleConstant":"magritte-card-hover-style-constant___uH6-E_8-4-0","card-hover-style-constant-secondary":"magritte-card-hover-style-constant-secondary___0vxDi_8-4-0","cardHoverStyleConstantSecondary":"magritte-card-hover-style-constant-secondary___0vxDi_8-4-0","card-hover-style-inverse":"magritte-card-hover-style-inverse___Db1kM_8-4-0","cardHoverStyleInverse":"magritte-card-hover-style-inverse___Db1kM_8-4-0","card-hover-style-inverse-secondary":"magritte-card-hover-style-inverse-secondary___BT8I-_8-4-0","cardHoverStyleInverseSecondary":"magritte-card-hover-style-inverse-secondary___BT8I-_8-4-0","press-enabled":"magritte-press-enabled___dc53v_8-4-0","pressEnabled":"magritte-press-enabled___dc53v_8-4-0","flex-container":"magritte-flex-container___CVFEY_8-4-0","flexContainer":"magritte-flex-container___CVFEY_8-4-0","card-border-style-neutral":"magritte-card-border-style-neutral___611b0_8-4-0","cardBorderStyleNeutral":"magritte-card-border-style-neutral___611b0_8-4-0","card-border-style-phantom":"magritte-card-border-style-phantom___ezFSC_8-4-0","cardBorderStylePhantom":"magritte-card-border-style-phantom___ezFSC_8-4-0","card-border-style-overlay":"magritte-card-border-style-overlay___yOj6r_8-4-0","cardBorderStyleOverlay":"magritte-card-border-style-overlay___yOj6r_8-4-0","card-border-style-accent":"magritte-card-border-style-accent___D-2Wb_8-4-0","cardBorderStyleAccent":"magritte-card-border-style-accent___D-2Wb_8-4-0","card-border-style-positive":"magritte-card-border-style-positive___to7aa_8-4-0","cardBorderStylePositive":"magritte-card-border-style-positive___to7aa_8-4-0","card-border-style-negative":"magritte-card-border-style-negative___IenCT_8-4-0","cardBorderStyleNegative":"magritte-card-border-style-negative___IenCT_8-4-0","card-border-style-warning":"magritte-card-border-style-warning___Fax0h_8-4-0","cardBorderStyleWarning":"magritte-card-border-style-warning___Fax0h_8-4-0","card-border-style-special":"magritte-card-border-style-special___mgV7r_8-4-0","cardBorderStyleSpecial":"magritte-card-border-style-special___mgV7r_8-4-0","card-border-style-dreamy":"magritte-card-border-style-dreamy___vYIow_8-4-0","cardBorderStyleDreamy":"magritte-card-border-style-dreamy___vYIow_8-4-0","card-border-style-lovely":"magritte-card-border-style-lovely___d1dyh_8-4-0","cardBorderStyleLovely":"magritte-card-border-style-lovely___d1dyh_8-4-0","card-border-style-vivid":"magritte-card-border-style-vivid___UYrn3_8-4-0","cardBorderStyleVivid":"magritte-card-border-style-vivid___UYrn3_8-4-0","card-border-style-neutral-heavy":"magritte-card-border-style-neutral-heavy___VR1s4_8-4-0","cardBorderStyleNeutralHeavy":"magritte-card-border-style-neutral-heavy___VR1s4_8-4-0","card-border-style-constant":"magritte-card-border-style-constant___4DDKM_8-4-0","cardBorderStyleConstant":"magritte-card-border-style-constant___4DDKM_8-4-0","card-border-style-constant-alt":"magritte-card-border-style-constant-alt___wfnBK_8-4-0","cardBorderStyleConstantAlt":"magritte-card-border-style-constant-alt___wfnBK_8-4-0"};
|
|
8
|
+
|
|
9
|
+
const CardSegment = ({ children, interactive = false, onClick, direction = 'column', ...flexProps }) => {
|
|
10
|
+
const activationProps = useCardActivation({ onClick });
|
|
11
|
+
return (jsx(Flex, { ...flexProps, Element: "div", direction: direction, className: classnames(styles.cardSegment, {
|
|
12
|
+
[styles.interactive]: interactive || !!onClick,
|
|
13
|
+
[styles.pressEnabled]: !!onClick,
|
|
14
|
+
[styles.layoutHorizontal]: direction !== 'column',
|
|
15
|
+
[styles.layoutVertical]: direction === 'column',
|
|
16
|
+
}), ...activationProps, children: children }));
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export { CardSegment as C, styles as s };
|
|
20
|
+
//# sourceMappingURL=CardSegment-B8AT6F5t.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardSegment-B8AT6F5t.js","sources":["src/CardSegment.tsx"],"sourcesContent":["import type { FC, MouseEventHandler, PropsWithChildren } from 'react';\nimport classNames from 'classnames';\n\nimport { useCardActivation } from '@hh.ru/magritte-ui-card/useCardActivation';\nimport { type FlexProps, Flex } from '@hh.ru/magritte-ui-layout';\n\nimport styles from './card.less';\n\nexport type CardSegmentProps = PropsWithChildren<\n FlexProps & {\n /** Включает реакцию сегмента на hover. Реакция на нажатие включается если у карточки задан pressEnabled. Автоматически включается при наличии onClick на сегменте */\n interactive?: boolean;\n /** Обработчик клика по сегменту. Тип совместим с Card.onClick */\n onClick?: MouseEventHandler<HTMLElement>;\n }\n>;\n\nexport const CardSegment: FC<CardSegmentProps> = ({\n children,\n interactive = false,\n onClick,\n direction = 'column',\n ...flexProps\n}) => {\n const activationProps = useCardActivation({ onClick });\n\n return (\n <Flex\n {...flexProps}\n Element=\"div\"\n direction={direction}\n className={classNames(styles.cardSegment, {\n [styles.interactive]: interactive || !!onClick,\n [styles.pressEnabled]: !!onClick,\n [styles.layoutHorizontal]: direction !== 'column',\n [styles.layoutVertical]: direction === 'column',\n })}\n {...activationProps}\n >\n {children}\n </Flex>\n );\n};\n"],"names":["_jsx","classNames"],"mappings":";;;;;;;MAiBa,WAAW,GAAyB,CAAC,EAC9C,QAAQ,EACR,WAAW,GAAG,KAAK,EACnB,OAAO,EACP,SAAS,GAAG,QAAQ,EACpB,GAAG,SAAS,EACf,KAAI;IACD,MAAM,eAAe,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAEvD,QACIA,IAAC,IAAI,EAAA,EAAA,GACG,SAAS,EACb,OAAO,EAAC,KAAK,EACb,SAAS,EAAE,SAAS,EACpB,SAAS,EAAEC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE;YACtC,CAAC,MAAM,CAAC,WAAW,GAAG,WAAW,IAAI,CAAC,CAAC,OAAO;AAC9C,YAAA,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,OAAO;AAChC,YAAA,CAAC,MAAM,CAAC,gBAAgB,GAAG,SAAS,KAAK,QAAQ;AACjD,YAAA,CAAC,MAAM,CAAC,cAAc,GAAG,SAAS,KAAK,QAAQ;AAClD,SAAA,CAAC,KACE,eAAe,EAAA,QAAA,EAElB,QAAQ,EAAA,CACN,EACT;AACN;;;;"}
|
package/CardSegment.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { FC, MouseEventHandler, PropsWithChildren } from 'react';
|
|
2
|
+
import { type FlexProps } from '@hh.ru/magritte-ui-layout';
|
|
3
|
+
export type CardSegmentProps = PropsWithChildren<FlexProps & {
|
|
4
|
+
/** Включает реакцию сегмента на hover. Реакция на нажатие включается если у карточки задан pressEnabled. Автоматически включается при наличии onClick на сегменте */
|
|
5
|
+
interactive?: boolean;
|
|
6
|
+
/** Обработчик клика по сегменту. Тип совместим с Card.onClick */
|
|
7
|
+
onClick?: MouseEventHandler<HTMLElement>;
|
|
8
|
+
}>;
|
|
9
|
+
export declare const CardSegment: FC<CardSegmentProps>;
|
package/CardSegment.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import './index.css';
|
|
2
|
+
import 'react/jsx-runtime';
|
|
3
|
+
import 'classnames';
|
|
4
|
+
import './useCardActivation.js';
|
|
5
|
+
import '@hh.ru/magritte-ui-layout';
|
|
6
|
+
export { C as CardSegment } from './CardSegment-B8AT6F5t.js';
|
|
7
|
+
import 'react';
|
|
8
|
+
import '@hh.ru/magritte-common-keyboard';
|
|
9
|
+
import '@hh.ru/magritte-common-mouse';
|
|
10
|
+
import '@hh.ru/magritte-common-use-disabled';
|
|
11
|
+
//# sourceMappingURL=CardSegment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardSegment.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|