@hh.ru/magritte-ui-card 8.8.1 → 8.9.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.
package/Between.d.ts CHANGED
@@ -1,2 +1,6 @@
1
1
  import { FC, PropsWithChildren } from 'react';
2
- export declare const Between: FC<PropsWithChildren>;
2
+ export type CardBetweenProps = PropsWithChildren<{
3
+ /** Дополнительный CSS-класс */
4
+ className?: string;
5
+ }>;
6
+ export declare const Between: FC<CardBetweenProps>;
package/Between.js CHANGED
@@ -1,14 +1,15 @@
1
1
  import './index.css';
2
2
  import { jsx } from 'react/jsx-runtime';
3
+ import classnames from 'classnames';
3
4
  import { useCardContext } from './cardContext.js';
4
5
  import { Divider } from '@hh.ru/magritte-ui-divider';
5
- import { s as styles } from './card-DOoprNfp.js';
6
+ import { s as styles } from './card-Dm2i-4Go.js';
6
7
  import 'react';
7
8
 
8
- const Between = ({ children }) => {
9
+ const Between = ({ children, className }) => {
9
10
  const { direction, borderStyle } = useCardContext();
10
11
  const content = children ?? /* @__PURE__ */ jsx(Divider, { mode: direction === "row" ? "vertical" : "horizontal", color: borderStyle });
11
- return /* @__PURE__ */ jsx("div", { className: styles.between, children: content });
12
+ return /* @__PURE__ */ jsx("div", { className: classnames(styles.between, className), children: content });
12
13
  };
13
14
 
14
15
  export { Between };
package/Between.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Between.js","sources":["src/Between.tsx"],"sourcesContent":["import { FC, PropsWithChildren } from 'react';\n\nimport { useCardContext } from '@hh.ru/magritte-ui-card/cardContext';\nimport { Divider } from '@hh.ru/magritte-ui-divider';\n\nimport styles from './card.less';\n\nexport const Between: FC<PropsWithChildren> = ({ children }) => {\n const { direction, borderStyle } = useCardContext();\n const content = children ?? <Divider mode={direction === 'row' ? 'vertical' : 'horizontal'} color={borderStyle} />;\n\n return <div className={styles.between}>{content}</div>;\n};\n"],"names":[],"mappings":";;;;;;AAOO,MAAM,OAAiC,GAAA,CAAC,EAAE,QAAA,EAAe,KAAA;AAC5D,EAAA,MAAM,EAAE,SAAA,EAAW,WAAY,EAAA,GAAI,cAAe,EAAA,CAAA;AAClD,EAAM,MAAA,OAAA,GAAU,QAAY,oBAAA,GAAA,CAAC,OAAQ,EAAA,EAAA,IAAA,EAAM,cAAc,KAAQ,GAAA,UAAA,GAAa,YAAc,EAAA,KAAA,EAAO,WAAa,EAAA,CAAA,CAAA;AAEhH,EAAA,uBAAQ,GAAA,CAAA,KAAA,EAAA,EAAI,SAAW,EAAA,MAAA,CAAO,SAAU,QAAQ,EAAA,OAAA,EAAA,CAAA,CAAA;AACpD;;;;"}
1
+ {"version":3,"file":"Between.js","sources":["src/Between.tsx"],"sourcesContent":["import { FC, PropsWithChildren } from 'react';\nimport classnames from 'classnames';\n\nimport { useCardContext } from '@hh.ru/magritte-ui-card/cardContext';\nimport { Divider } from '@hh.ru/magritte-ui-divider';\n\nimport styles from './card.less';\n\nexport type CardBetweenProps = PropsWithChildren<{\n /** Дополнительный CSS-класс */\n className?: string;\n}>;\n\nexport const Between: FC<CardBetweenProps> = ({ children, className }) => {\n const { direction, borderStyle } = useCardContext();\n const content = children ?? <Divider mode={direction === 'row' ? 'vertical' : 'horizontal'} color={borderStyle} />;\n\n return <div className={classnames(styles.between, className)}>{content}</div>;\n};\n"],"names":[],"mappings":";;;;;;;AAaO,MAAM,OAAgC,GAAA,CAAC,EAAE,QAAA,EAAU,WAAgB,KAAA;AACtE,EAAA,MAAM,EAAE,SAAA,EAAW,WAAY,EAAA,GAAI,cAAe,EAAA,CAAA;AAClD,EAAM,MAAA,OAAA,GAAU,QAAY,oBAAA,GAAA,CAAC,OAAQ,EAAA,EAAA,IAAA,EAAM,cAAc,KAAQ,GAAA,UAAA,GAAa,YAAc,EAAA,KAAA,EAAO,WAAa,EAAA,CAAA,CAAA;AAEhH,EAAO,uBAAA,GAAA,CAAC,SAAI,SAAW,EAAA,UAAA,CAAW,OAAO,OAAS,EAAA,SAAS,GAAI,QAAQ,EAAA,OAAA,EAAA,CAAA,CAAA;AAC3E;;;;"}
package/Card.d.ts CHANGED
@@ -1,8 +1,9 @@
1
- import { type FC, type PropsWithChildren } from 'react';
1
+ import { type FC } from 'react';
2
2
  import type { PolymorphicComponentWithRef } from '@hh.ru/magritte-types';
3
+ import { type CardBetweenProps } from './Between';
3
4
  import { type CardSegmentProps } from './CardSegment';
4
5
  import type { CardProps } from './types';
5
6
  export declare const Card: import("@hh.ru/magritte-ui-skeleton").ComponentWithSkeleton<PolymorphicComponentWithRef<CardProps, "div"> & {
6
7
  Segment: PolymorphicComponentWithRef<CardSegmentProps, 'div'>;
7
- Between: FC<PropsWithChildren>;
8
+ Between: FC<CardBetweenProps>;
8
9
  }, CardProps>;
package/Card.js CHANGED
@@ -11,7 +11,7 @@ import { useCardActivation } from './useCardActivation.js';
11
11
  import { IconDynamic } from '@hh.ru/magritte-ui-icon';
12
12
  import { enrichWithSkeleton } from '@hh.ru/magritte-ui-skeleton';
13
13
  import { TextDynamic } from '@hh.ru/magritte-ui-typography';
14
- import { s as styles } from './card-DOoprNfp.js';
14
+ import { s as styles } from './card-Dm2i-4Go.js';
15
15
  import '@hh.ru/magritte-ui-divider';
16
16
  import '@hh.ru/magritte-ui-layout';
17
17
  import '@hh.ru/magritte-common-keyboard';
@@ -68,6 +68,7 @@ const CardForwardRefRenderFunc = ({
68
68
  borderWidth = "none",
69
69
  borderLayer = "above-content",
70
70
  direction,
71
+ className,
71
72
  ...restProps
72
73
  }, ref) => {
73
74
  const forceDisabled = useDisabled();
@@ -116,7 +117,8 @@ const CardForwardRefRenderFunc = ({
116
117
  [styles.cardDisabled]: !!disabled,
117
118
  [styles.borderSelected]: borderWidth === "selected",
118
119
  [styles.borderDefault]: borderWidth === "default"
119
- }
120
+ },
121
+ className
120
122
  ),
121
123
  children: [
122
124
  isBorderBelowContent && borderElement,
package/Card.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Card.js","sources":["src/Card.tsx"],"sourcesContent":["import { type CSSProperties, forwardRef, type FC, type PropsWithChildren } 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 { Between } from '@hh.ru/magritte-ui-card/Between';\nimport { CardSegment, type CardSegmentProps } from '@hh.ru/magritte-ui-card/CardSegment';\nimport { CardSkeleton } from '@hh.ru/magritte-ui-card/Skeleton';\nimport { CardContext } from '@hh.ru/magritte-ui-card/cardContext';\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 borderLayer = 'above-content',\n direction,\n ...restProps\n },\n ref\n) => {\n const forceDisabled = useDisabled();\n const activationProps = useCardActivation({\n onClick,\n disabled,\n hasExplicitRole: 'role' in restProps,\n hasExplicitTabIndex: 'tabIndex' in restProps,\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 // порядок отрисовки рамки задаётся её положением среди детей карточки: последним потомком — поверх всего\n // содержимого, первым — под спозиционированным, чтобы выходящие за карточку абсолютно спозиционированные\n // элементы (например, картинки) перекрывали рамку, а не наоборот\n const isBorderBelowContent = borderLayer === 'below-content';\n const borderElement = <div className={styles.borderElement} />;\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 {isBorderBelowContent && borderElement}\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 <CardContext.Provider value={{ direction: direction ?? 'row', borderStyle }}>\n {children}\n </CardContext.Provider>\n </TextDynamic>\n </div>\n </IconDynamic>\n {!isBorderBelowContent && borderElement}\n </Element>\n </DisabledContext.Provider>\n );\n};\n\nconst CardComponent = forwardRef(CardForwardRefRenderFunc) as unknown as PolymorphicComponentWithRef<\n CardProps,\n 'div'\n> & {\n Segment: PolymorphicComponentWithRef<CardSegmentProps, 'div'>;\n Between: FC<PropsWithChildren>;\n};\n\nCardComponent.Segment = CardSegment;\nCardComponent.Between = Between;\n\nexport const Card = enrichWithSkeleton(CardComponent, CardSkeleton);\n"],"names":["radius"],"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 { Between, type CardBetweenProps } from '@hh.ru/magritte-ui-card/Between';\nimport { CardSegment, type CardSegmentProps } from '@hh.ru/magritte-ui-card/CardSegment';\nimport { CardSkeleton } from '@hh.ru/magritte-ui-card/Skeleton';\nimport { CardContext } from '@hh.ru/magritte-ui-card/cardContext';\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 borderLayer = 'above-content',\n direction,\n className,\n ...restProps\n },\n ref\n) => {\n const forceDisabled = useDisabled();\n const activationProps = useCardActivation({\n onClick,\n disabled,\n hasExplicitRole: 'role' in restProps,\n hasExplicitTabIndex: 'tabIndex' in restProps,\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 // порядок отрисовки рамки задаётся её положением среди детей карточки: последним потомком — поверх всего\n // содержимого, первым — под спозиционированным, чтобы выходящие за карточку абсолютно спозиционированные\n // элементы (например, картинки) перекрывали рамку, а не наоборот\n const isBorderBelowContent = borderLayer === 'below-content';\n const borderElement = <div className={styles.borderElement} />;\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 className\n )}\n >\n {isBorderBelowContent && borderElement}\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 <CardContext.Provider value={{ direction: direction ?? 'row', borderStyle }}>\n {children}\n </CardContext.Provider>\n </TextDynamic>\n </div>\n </IconDynamic>\n {!isBorderBelowContent && borderElement}\n </Element>\n </DisabledContext.Provider>\n );\n};\n\nconst CardComponent = forwardRef(CardForwardRefRenderFunc) as unknown as PolymorphicComponentWithRef<\n CardProps,\n 'div'\n> & {\n Segment: PolymorphicComponentWithRef<CardSegmentProps, 'div'>;\n Between: FC<CardBetweenProps>;\n};\n\nCardComponent.Segment = CardSegment;\nCardComponent.Between = Between;\n\nexport const Card = enrichWithSkeleton(CardComponent, CardSkeleton);\n"],"names":["radius"],"mappings":"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"}
package/CardSegment.js CHANGED
@@ -6,11 +6,11 @@ import { DisabledContext } from '@hh.ru/magritte-common-use-disabled';
6
6
  import { useCardContext, CardContext } from './cardContext.js';
7
7
  import { useCardActivation } from './useCardActivation.js';
8
8
  import { Flex } from '@hh.ru/magritte-ui-layout';
9
- import { s as styles } from './card-DOoprNfp.js';
9
+ import { s as styles } from './card-Dm2i-4Go.js';
10
10
  import '@hh.ru/magritte-common-keyboard';
11
11
  import '@hh.ru/magritte-common-mouse';
12
12
 
13
- const CardSegmentRenderFunc = ({ children, disabled = false, interactive = false, onClick, direction = "column", ...flexProps }, ref) => {
13
+ const CardSegmentRenderFunc = ({ children, disabled = false, interactive = false, onClick, direction = "column", className, ...flexProps }, ref) => {
14
14
  const activationProps = useCardActivation({ onClick, disabled: !!disabled });
15
15
  const { borderStyle } = useCardContext();
16
16
  return (
@@ -21,13 +21,17 @@ const CardSegmentRenderFunc = ({ children, disabled = false, interactive = false
21
21
  ...flexProps,
22
22
  ...ref ? { ref } : {},
23
23
  direction,
24
- className: classnames(styles.cardSegment, {
25
- [styles.interactive]: interactive || !!onClick,
26
- [styles.pressEnabled]: !!onClick,
27
- [styles.layoutHorizontal]: direction !== "column",
28
- [styles.layoutVertical]: direction === "column",
29
- [styles.segmentDisabled]: !!activationProps["aria-disabled"]
30
- }),
24
+ className: classnames(
25
+ styles.cardSegment,
26
+ {
27
+ [styles.interactive]: interactive || !!onClick,
28
+ [styles.pressEnabled]: !!onClick,
29
+ [styles.layoutHorizontal]: direction !== "column",
30
+ [styles.layoutVertical]: direction === "column",
31
+ [styles.segmentDisabled]: !!activationProps["aria-disabled"]
32
+ },
33
+ className
34
+ ),
31
35
  ...activationProps,
32
36
  children: /* @__PURE__ */ jsx(DisabledContext.Provider, { value: !!activationProps["aria-disabled"], children: /* @__PURE__ */ jsx(CardContext.Provider, { value: { direction: direction === "column" ? "column" : "row", borderStyle }, children }) })
33
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CardSegment.js","sources":["src/CardSegment.tsx"],"sourcesContent":["import { forwardRef, type MouseEventHandler, type Ref } from 'react';\nimport classNames from 'classnames';\n\nimport { DisabledContext } from '@hh.ru/magritte-common-use-disabled';\nimport type { PolymorphicForwardRefRenderFunc, PolymorphicComponentWithRef } from '@hh.ru/magritte-types';\nimport { CardContext, useCardContext } from '@hh.ru/magritte-ui-card/cardContext';\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 = FlexProps & {\n /** Включает реакцию сегмента на hover. Реакция на нажатие включается если у карточки задан pressEnabled. Автоматически включается при наличии onClick на сегменте */\n interactive?: boolean;\n disabled?: boolean;\n /** Обработчик клика по сегменту */\n onClick?: MouseEventHandler<HTMLElement>;\n};\n\nconst CardSegmentRenderFunc: PolymorphicForwardRefRenderFunc<CardSegmentProps, 'div'> = (\n { children, disabled = false, interactive = false, onClick, direction = 'column', ...flexProps },\n ref\n) => {\n const activationProps = useCardActivation({ onClick, disabled: !!disabled });\n const { borderStyle } = useCardContext();\n\n return (\n // @ts-expect-error — generic polymorphic props forwarding between nested polymorphic components\n <Flex\n {...flexProps}\n {...(ref ? { ref: ref as Ref<never> } : {})}\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 [styles.segmentDisabled]: !!activationProps['aria-disabled'],\n })}\n {...activationProps}\n >\n <DisabledContext.Provider value={!!activationProps['aria-disabled']}>\n <CardContext.Provider value={{ direction: direction === 'column' ? 'column' : 'row', borderStyle }}>\n {children}\n </CardContext.Provider>\n </DisabledContext.Provider>\n </Flex>\n );\n};\n\nexport const CardSegment = forwardRef(CardSegmentRenderFunc) as PolymorphicComponentWithRef<CardSegmentProps, 'div'>;\n"],"names":["classNames"],"mappings":";;;;;;;;;;;AAmBA,MAAM,qBAAkF,GAAA,CACpF,EAAE,QAAA,EAAU,WAAW,KAAO,EAAA,WAAA,GAAc,KAAO,EAAA,OAAA,EAAS,SAAY,GAAA,QAAA,EAAU,GAAG,SAAA,IACrF,GACC,KAAA;AACD,EAAM,MAAA,eAAA,GAAkB,kBAAkB,EAAE,OAAA,EAAS,UAAU,CAAC,CAAC,UAAU,CAAA,CAAA;AAC3E,EAAM,MAAA,EAAE,WAAY,EAAA,GAAI,cAAe,EAAA,CAAA;AAEvC,EAAA;AAAA;AAAA,oBAEI,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACI,GAAG,SAAA;AAAA,QACH,GAAI,GAAA,GAAM,EAAE,GAAA,KAA2B,EAAC;AAAA,QACzC,SAAA;AAAA,QACA,SAAA,EAAWA,UAAW,CAAA,MAAA,CAAO,WAAa,EAAA;AAAA,UACtC,CAAC,MAAO,CAAA,WAAW,GAAG,WAAA,IAAe,CAAC,CAAC,OAAA;AAAA,UACvC,CAAC,MAAA,CAAO,YAAY,GAAG,CAAC,CAAC,OAAA;AAAA,UACzB,CAAC,MAAA,CAAO,gBAAgB,GAAG,SAAc,KAAA,QAAA;AAAA,UACzC,CAAC,MAAA,CAAO,cAAc,GAAG,SAAc,KAAA,QAAA;AAAA,UACvC,CAAC,MAAO,CAAA,eAAe,GAAG,CAAC,CAAC,gBAAgB,eAAe,CAAA;AAAA,SAC9D,CAAA;AAAA,QACA,GAAG,eAAA;AAAA,QAEJ,QAAA,kBAAA,GAAA,CAAC,eAAgB,CAAA,QAAA,EAAhB,EAAyB,KAAA,EAAO,CAAC,CAAC,eAAA,CAAgB,eAAe,CAAA,EAC9D,QAAC,kBAAA,GAAA,CAAA,WAAA,CAAY,UAAZ,EAAqB,KAAA,EAAO,EAAE,SAAA,EAAW,SAAc,KAAA,QAAA,GAAW,WAAW,KAAO,EAAA,WAAA,EAChF,EAAA,QAAA,EACL,CACJ,EAAA,CAAA;AAAA,OAAA;AAAA,KACJ;AAAA,IAAA;AAER,CAAA,CAAA;AAEa,MAAA,WAAA,GAAc,WAAW,qBAAqB;;;;"}
1
+ {"version":3,"file":"CardSegment.js","sources":["src/CardSegment.tsx"],"sourcesContent":["import { forwardRef, type MouseEventHandler, type Ref } from 'react';\nimport classNames from 'classnames';\n\nimport { DisabledContext } from '@hh.ru/magritte-common-use-disabled';\nimport type { PolymorphicForwardRefRenderFunc, PolymorphicComponentWithRef } from '@hh.ru/magritte-types';\nimport { CardContext, useCardContext } from '@hh.ru/magritte-ui-card/cardContext';\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 = FlexProps & {\n /** Включает реакцию сегмента на hover. Реакция на нажатие включается если у карточки задан pressEnabled. Автоматически включается при наличии onClick на сегменте */\n interactive?: boolean;\n disabled?: boolean;\n /** Обработчик клика по сегменту */\n onClick?: MouseEventHandler<HTMLElement>;\n};\n\nconst CardSegmentRenderFunc: PolymorphicForwardRefRenderFunc<CardSegmentProps, 'div'> = (\n { children, disabled = false, interactive = false, onClick, direction = 'column', className, ...flexProps },\n ref\n) => {\n const activationProps = useCardActivation({ onClick, disabled: !!disabled });\n const { borderStyle } = useCardContext();\n\n return (\n // @ts-expect-error — generic polymorphic props forwarding between nested polymorphic components\n <Flex\n {...flexProps}\n {...(ref ? { ref: ref as Ref<never> } : {})}\n direction={direction}\n className={classNames(\n styles.cardSegment,\n {\n [styles.interactive]: interactive || !!onClick,\n [styles.pressEnabled]: !!onClick,\n [styles.layoutHorizontal]: direction !== 'column',\n [styles.layoutVertical]: direction === 'column',\n [styles.segmentDisabled]: !!activationProps['aria-disabled'],\n },\n className\n )}\n {...activationProps}\n >\n <DisabledContext.Provider value={!!activationProps['aria-disabled']}>\n <CardContext.Provider value={{ direction: direction === 'column' ? 'column' : 'row', borderStyle }}>\n {children}\n </CardContext.Provider>\n </DisabledContext.Provider>\n </Flex>\n );\n};\n\nexport const CardSegment = forwardRef(CardSegmentRenderFunc) as PolymorphicComponentWithRef<CardSegmentProps, 'div'>;\n"],"names":["classNames"],"mappings":";;;;;;;;;;;AAmBA,MAAM,qBAAkF,GAAA,CACpF,EAAE,QAAA,EAAU,WAAW,KAAO,EAAA,WAAA,GAAc,KAAO,EAAA,OAAA,EAAS,YAAY,QAAU,EAAA,SAAA,EAAW,GAAG,SAAA,IAChG,GACC,KAAA;AACD,EAAM,MAAA,eAAA,GAAkB,kBAAkB,EAAE,OAAA,EAAS,UAAU,CAAC,CAAC,UAAU,CAAA,CAAA;AAC3E,EAAM,MAAA,EAAE,WAAY,EAAA,GAAI,cAAe,EAAA,CAAA;AAEvC,EAAA;AAAA;AAAA,oBAEI,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACI,GAAG,SAAA;AAAA,QACH,GAAI,GAAA,GAAM,EAAE,GAAA,KAA2B,EAAC;AAAA,QACzC,SAAA;AAAA,QACA,SAAW,EAAAA,UAAA;AAAA,UACP,MAAO,CAAA,WAAA;AAAA,UACP;AAAA,YACI,CAAC,MAAO,CAAA,WAAW,GAAG,WAAA,IAAe,CAAC,CAAC,OAAA;AAAA,YACvC,CAAC,MAAA,CAAO,YAAY,GAAG,CAAC,CAAC,OAAA;AAAA,YACzB,CAAC,MAAA,CAAO,gBAAgB,GAAG,SAAc,KAAA,QAAA;AAAA,YACzC,CAAC,MAAA,CAAO,cAAc,GAAG,SAAc,KAAA,QAAA;AAAA,YACvC,CAAC,MAAO,CAAA,eAAe,GAAG,CAAC,CAAC,gBAAgB,eAAe,CAAA;AAAA,WAC/D;AAAA,UACA,SAAA;AAAA,SACJ;AAAA,QACC,GAAG,eAAA;AAAA,QAEJ,QAAA,kBAAA,GAAA,CAAC,eAAgB,CAAA,QAAA,EAAhB,EAAyB,KAAA,EAAO,CAAC,CAAC,eAAA,CAAgB,eAAe,CAAA,EAC9D,QAAC,kBAAA,GAAA,CAAA,WAAA,CAAY,UAAZ,EAAqB,KAAA,EAAO,EAAE,SAAA,EAAW,SAAc,KAAA,QAAA,GAAW,WAAW,KAAO,EAAA,WAAA,EAChF,EAAA,QAAA,EACL,CACJ,EAAA,CAAA;AAAA,OAAA;AAAA,KACJ;AAAA,IAAA;AAER,CAAA,CAAA;AAEa,MAAA,WAAA,GAAc,WAAW,qBAAqB;;;;"}
@@ -0,0 +1,5 @@
1
+ import './index.css';
2
+ var styles = {"card":"magritte-card___bhGKz_8-9-1","card-segment":"magritte-card-segment___7LjJe_8-9-1","cardSegment":"magritte-card-segment___7LjJe_8-9-1","layout-vertical":"magritte-layout-vertical___9V-h-_8-9-1","layoutVertical":"magritte-layout-vertical___9V-h-_8-9-1","layout-horizontal":"magritte-layout-horizontal___HUAK3_8-9-1","layoutHorizontal":"magritte-layout-horizontal___HUAK3_8-9-1","border-element":"magritte-border-element___x7sZL_8-9-1","borderElement":"magritte-border-element___x7sZL_8-9-1","card-press-enabled":"magritte-card-press-enabled___kXfCl_8-9-1","cardPressEnabled":"magritte-card-press-enabled___kXfCl_8-9-1","interactive":"magritte-interactive___rmhl9_8-9-1","press-enabled":"magritte-press-enabled___dc53v_8-9-1","pressEnabled":"magritte-press-enabled___dc53v_8-9-1","card-disabled":"magritte-card-disabled___SMFnB_8-9-1","cardDisabled":"magritte-card-disabled___SMFnB_8-9-1","segment-disabled":"magritte-segment-disabled___FlWSu_8-9-1","segmentDisabled":"magritte-segment-disabled___FlWSu_8-9-1","card-stretched":"magritte-card-stretched___0Uc0J_8-9-1","cardStretched":"magritte-card-stretched___0Uc0J_8-9-1","card-vertical-stretched":"magritte-card-vertical-stretched___Lrxmc_8-9-1","cardVerticalStretched":"magritte-card-vertical-stretched___Lrxmc_8-9-1","border-selected":"magritte-border-selected___bGxVg_8-9-1","borderSelected":"magritte-border-selected___bGxVg_8-9-1","border-default":"magritte-border-default___eT8Lg_8-9-1","borderDefault":"magritte-border-default___eT8Lg_8-9-1","card-hover-enabled":"magritte-card-hover-enabled___-wolU_8-9-1","cardHoverEnabled":"magritte-card-hover-enabled___-wolU_8-9-1","card-shadow-level-3":"magritte-card-shadow-level-3___R34TB_8-9-1","cardShadowLevel3":"magritte-card-shadow-level-3___R34TB_8-9-1","card-shadow-level-2":"magritte-card-shadow-level-2___BgHDx_8-9-1","cardShadowLevel2":"magritte-card-shadow-level-2___BgHDx_8-9-1","card-shadow-level-1":"magritte-card-shadow-level-1___8-39e_8-9-1","cardShadowLevel1":"magritte-card-shadow-level-1___8-39e_8-9-1","card-shadow-level-0":"magritte-card-shadow-level-0___RNbQK_8-9-1","cardShadowLevel0":"magritte-card-shadow-level-0___RNbQK_8-9-1","increase-shadow":"magritte-increase-shadow___Lvfmm_8-9-1","increaseShadow":"magritte-increase-shadow___Lvfmm_8-9-1","card-style-primary":"magritte-card-style-primary___eZ6aX_8-9-1","cardStylePrimary":"magritte-card-style-primary___eZ6aX_8-9-1","card-style-secondary":"magritte-card-style-secondary___VmTqm_8-9-1","cardStyleSecondary":"magritte-card-style-secondary___VmTqm_8-9-1","card-style-tertiary":"magritte-card-style-tertiary___fE-jW_8-9-1","cardStyleTertiary":"magritte-card-style-tertiary___fE-jW_8-9-1","card-style-accent-secondary":"magritte-card-style-accent-secondary___Ra0PD_8-9-1","cardStyleAccentSecondary":"magritte-card-style-accent-secondary___Ra0PD_8-9-1","card-style-accent":"magritte-card-style-accent___Gd2T5_8-9-1","cardStyleAccent":"magritte-card-style-accent___Gd2T5_8-9-1","card-style-positive-secondary":"magritte-card-style-positive-secondary___BsXFI_8-9-1","cardStylePositiveSecondary":"magritte-card-style-positive-secondary___BsXFI_8-9-1","card-style-positive":"magritte-card-style-positive___4sgFq_8-9-1","cardStylePositive":"magritte-card-style-positive___4sgFq_8-9-1","card-style-negative-secondary":"magritte-card-style-negative-secondary___lN7i3_8-9-1","cardStyleNegativeSecondary":"magritte-card-style-negative-secondary___lN7i3_8-9-1","card-style-negative":"magritte-card-style-negative___Fk6xX_8-9-1","cardStyleNegative":"magritte-card-style-negative___Fk6xX_8-9-1","card-style-warning-secondary":"magritte-card-style-warning-secondary___m2Hpa_8-9-1","cardStyleWarningSecondary":"magritte-card-style-warning-secondary___m2Hpa_8-9-1","card-style-warning":"magritte-card-style-warning___NIuCV_8-9-1","cardStyleWarning":"magritte-card-style-warning___NIuCV_8-9-1","card-style-special-secondary":"magritte-card-style-special-secondary___oVULE_8-9-1","cardStyleSpecialSecondary":"magritte-card-style-special-secondary___oVULE_8-9-1","card-style-special":"magritte-card-style-special___GOdvY_8-9-1","cardStyleSpecial":"magritte-card-style-special___GOdvY_8-9-1","card-style-dreamy-secondary":"magritte-card-style-dreamy-secondary___8Wu4Z_8-9-1","cardStyleDreamySecondary":"magritte-card-style-dreamy-secondary___8Wu4Z_8-9-1","card-style-dreamy":"magritte-card-style-dreamy___-Az0l_8-9-1","cardStyleDreamy":"magritte-card-style-dreamy___-Az0l_8-9-1","card-style-lovely-secondary":"magritte-card-style-lovely-secondary___feuo0_8-9-1","cardStyleLovelySecondary":"magritte-card-style-lovely-secondary___feuo0_8-9-1","card-style-lovely":"magritte-card-style-lovely___fPKUi_8-9-1","cardStyleLovely":"magritte-card-style-lovely___fPKUi_8-9-1","card-style-vivid-secondary":"magritte-card-style-vivid-secondary___yqwVy_8-9-1","cardStyleVividSecondary":"magritte-card-style-vivid-secondary___yqwVy_8-9-1","card-style-vivid":"magritte-card-style-vivid___pmSCz_8-9-1","cardStyleVivid":"magritte-card-style-vivid___pmSCz_8-9-1","card-style-body":"magritte-card-style-body___TNxld_8-9-1","cardStyleBody":"magritte-card-style-body___TNxld_8-9-1","card-style-overlay":"magritte-card-style-overlay___urh3T_8-9-1","cardStyleOverlay":"magritte-card-style-overlay___urh3T_8-9-1","card-style-overlay-action":"magritte-card-style-overlay-action___-jVWT_8-9-1","cardStyleOverlayAction":"magritte-card-style-overlay-action___-jVWT_8-9-1","card-style-overlay-modal-action":"magritte-card-style-overlay-modal-action___z3trK_8-9-1","cardStyleOverlayModalAction":"magritte-card-style-overlay-modal-action___z3trK_8-9-1","card-style-overlay-bottom-sheet-action":"magritte-card-style-overlay-bottom-sheet-action___0PnSE_8-9-1","cardStyleOverlayBottomSheetAction":"magritte-card-style-overlay-bottom-sheet-action___0PnSE_8-9-1","card-style-overlay-viewer":"magritte-card-style-overlay-viewer___TdHGx_8-9-1","cardStyleOverlayViewer":"magritte-card-style-overlay-viewer___TdHGx_8-9-1","card-style-overlay-toolbar":"magritte-card-style-overlay-toolbar___KWyFM_8-9-1","cardStyleOverlayToolbar":"magritte-card-style-overlay-toolbar___KWyFM_8-9-1","card-style-transparent":"magritte-card-style-transparent___1h3h6_8-9-1","cardStyleTransparent":"magritte-card-style-transparent___1h3h6_8-9-1","card-style-constant":"magritte-card-style-constant___UluNp_8-9-1","cardStyleConstant":"magritte-card-style-constant___UluNp_8-9-1","card-style-constant-secondary":"magritte-card-style-constant-secondary___5HctC_8-9-1","cardStyleConstantSecondary":"magritte-card-style-constant-secondary___5HctC_8-9-1","card-style-inverse":"magritte-card-style-inverse___HWOHp_8-9-1","cardStyleInverse":"magritte-card-style-inverse___HWOHp_8-9-1","card-style-inverse-secondary":"magritte-card-style-inverse-secondary___3EIdn_8-9-1","cardStyleInverseSecondary":"magritte-card-style-inverse-secondary___3EIdn_8-9-1","card-hover-style-primary":"magritte-card-hover-style-primary___VgPLn_8-9-1","cardHoverStylePrimary":"magritte-card-hover-style-primary___VgPLn_8-9-1","card-hover-style-secondary":"magritte-card-hover-style-secondary___NQCxT_8-9-1","cardHoverStyleSecondary":"magritte-card-hover-style-secondary___NQCxT_8-9-1","card-hover-style-tertiary":"magritte-card-hover-style-tertiary___Hrgqb_8-9-1","cardHoverStyleTertiary":"magritte-card-hover-style-tertiary___Hrgqb_8-9-1","card-hover-style-accent-secondary":"magritte-card-hover-style-accent-secondary___o5URO_8-9-1","cardHoverStyleAccentSecondary":"magritte-card-hover-style-accent-secondary___o5URO_8-9-1","card-hover-style-accent":"magritte-card-hover-style-accent___n8Lb4_8-9-1","cardHoverStyleAccent":"magritte-card-hover-style-accent___n8Lb4_8-9-1","card-hover-style-positive-secondary":"magritte-card-hover-style-positive-secondary___Aw634_8-9-1","cardHoverStylePositiveSecondary":"magritte-card-hover-style-positive-secondary___Aw634_8-9-1","card-hover-style-positive":"magritte-card-hover-style-positive___zQ7MM_8-9-1","cardHoverStylePositive":"magritte-card-hover-style-positive___zQ7MM_8-9-1","card-hover-style-negative-secondary":"magritte-card-hover-style-negative-secondary___V7gmt_8-9-1","cardHoverStyleNegativeSecondary":"magritte-card-hover-style-negative-secondary___V7gmt_8-9-1","card-hover-style-negative":"magritte-card-hover-style-negative___1cL78_8-9-1","cardHoverStyleNegative":"magritte-card-hover-style-negative___1cL78_8-9-1","card-hover-style-warning-secondary":"magritte-card-hover-style-warning-secondary___4knLA_8-9-1","cardHoverStyleWarningSecondary":"magritte-card-hover-style-warning-secondary___4knLA_8-9-1","card-hover-style-warning":"magritte-card-hover-style-warning___Fw34b_8-9-1","cardHoverStyleWarning":"magritte-card-hover-style-warning___Fw34b_8-9-1","card-hover-style-special-secondary":"magritte-card-hover-style-special-secondary___ImyvT_8-9-1","cardHoverStyleSpecialSecondary":"magritte-card-hover-style-special-secondary___ImyvT_8-9-1","card-hover-style-special":"magritte-card-hover-style-special___og9oA_8-9-1","cardHoverStyleSpecial":"magritte-card-hover-style-special___og9oA_8-9-1","card-hover-style-dreamy-secondary":"magritte-card-hover-style-dreamy-secondary___8SOfV_8-9-1","cardHoverStyleDreamySecondary":"magritte-card-hover-style-dreamy-secondary___8SOfV_8-9-1","card-hover-style-dreamy":"magritte-card-hover-style-dreamy___9sxP7_8-9-1","cardHoverStyleDreamy":"magritte-card-hover-style-dreamy___9sxP7_8-9-1","card-hover-style-lovely-secondary":"magritte-card-hover-style-lovely-secondary___n2BrG_8-9-1","cardHoverStyleLovelySecondary":"magritte-card-hover-style-lovely-secondary___n2BrG_8-9-1","card-hover-style-lovely":"magritte-card-hover-style-lovely___Ml-R2_8-9-1","cardHoverStyleLovely":"magritte-card-hover-style-lovely___Ml-R2_8-9-1","card-hover-style-vivid-secondary":"magritte-card-hover-style-vivid-secondary___s4GVf_8-9-1","cardHoverStyleVividSecondary":"magritte-card-hover-style-vivid-secondary___s4GVf_8-9-1","card-hover-style-vivid":"magritte-card-hover-style-vivid___qyl-R_8-9-1","cardHoverStyleVivid":"magritte-card-hover-style-vivid___qyl-R_8-9-1","card-hover-style-body":"magritte-card-hover-style-body___pimB3_8-9-1","cardHoverStyleBody":"magritte-card-hover-style-body___pimB3_8-9-1","card-hover-style-overlay":"magritte-card-hover-style-overlay___rAPpl_8-9-1","cardHoverStyleOverlay":"magritte-card-hover-style-overlay___rAPpl_8-9-1","card-hover-style-overlay-action":"magritte-card-hover-style-overlay-action___6BpQw_8-9-1","cardHoverStyleOverlayAction":"magritte-card-hover-style-overlay-action___6BpQw_8-9-1","card-hover-style-overlay-modal-action":"magritte-card-hover-style-overlay-modal-action___dcC77_8-9-1","cardHoverStyleOverlayModalAction":"magritte-card-hover-style-overlay-modal-action___dcC77_8-9-1","card-hover-style-overlay-bottom-sheet-action":"magritte-card-hover-style-overlay-bottom-sheet-action___KCUtT_8-9-1","cardHoverStyleOverlayBottomSheetAction":"magritte-card-hover-style-overlay-bottom-sheet-action___KCUtT_8-9-1","card-hover-style-overlay-viewer":"magritte-card-hover-style-overlay-viewer___f5IDi_8-9-1","cardHoverStyleOverlayViewer":"magritte-card-hover-style-overlay-viewer___f5IDi_8-9-1","card-hover-style-overlay-toolbar":"magritte-card-hover-style-overlay-toolbar___wkaI6_8-9-1","cardHoverStyleOverlayToolbar":"magritte-card-hover-style-overlay-toolbar___wkaI6_8-9-1","card-hover-style-transparent":"magritte-card-hover-style-transparent___zXQGl_8-9-1","cardHoverStyleTransparent":"magritte-card-hover-style-transparent___zXQGl_8-9-1","card-hover-style-constant":"magritte-card-hover-style-constant___uH6-E_8-9-1","cardHoverStyleConstant":"magritte-card-hover-style-constant___uH6-E_8-9-1","card-hover-style-constant-secondary":"magritte-card-hover-style-constant-secondary___0vxDi_8-9-1","cardHoverStyleConstantSecondary":"magritte-card-hover-style-constant-secondary___0vxDi_8-9-1","card-hover-style-inverse":"magritte-card-hover-style-inverse___Db1kM_8-9-1","cardHoverStyleInverse":"magritte-card-hover-style-inverse___Db1kM_8-9-1","card-hover-style-inverse-secondary":"magritte-card-hover-style-inverse-secondary___BT8I-_8-9-1","cardHoverStyleInverseSecondary":"magritte-card-hover-style-inverse-secondary___BT8I-_8-9-1","flex-container":"magritte-flex-container___CVFEY_8-9-1","flexContainer":"magritte-flex-container___CVFEY_8-9-1","card-border-style-neutral":"magritte-card-border-style-neutral___611b0_8-9-1","cardBorderStyleNeutral":"magritte-card-border-style-neutral___611b0_8-9-1","card-border-style-phantom":"magritte-card-border-style-phantom___ezFSC_8-9-1","cardBorderStylePhantom":"magritte-card-border-style-phantom___ezFSC_8-9-1","card-border-style-phantom-alt":"magritte-card-border-style-phantom-alt___2IkKz_8-9-1","cardBorderStylePhantomAlt":"magritte-card-border-style-phantom-alt___2IkKz_8-9-1","card-border-style-overlay":"magritte-card-border-style-overlay___yOj6r_8-9-1","cardBorderStyleOverlay":"magritte-card-border-style-overlay___yOj6r_8-9-1","card-border-style-accent":"magritte-card-border-style-accent___D-2Wb_8-9-1","cardBorderStyleAccent":"magritte-card-border-style-accent___D-2Wb_8-9-1","card-border-style-positive":"magritte-card-border-style-positive___to7aa_8-9-1","cardBorderStylePositive":"magritte-card-border-style-positive___to7aa_8-9-1","card-border-style-negative":"magritte-card-border-style-negative___IenCT_8-9-1","cardBorderStyleNegative":"magritte-card-border-style-negative___IenCT_8-9-1","card-border-style-warning":"magritte-card-border-style-warning___Fax0h_8-9-1","cardBorderStyleWarning":"magritte-card-border-style-warning___Fax0h_8-9-1","card-border-style-special":"magritte-card-border-style-special___mgV7r_8-9-1","cardBorderStyleSpecial":"magritte-card-border-style-special___mgV7r_8-9-1","card-border-style-dreamy":"magritte-card-border-style-dreamy___vYIow_8-9-1","cardBorderStyleDreamy":"magritte-card-border-style-dreamy___vYIow_8-9-1","card-border-style-lovely":"magritte-card-border-style-lovely___d1dyh_8-9-1","cardBorderStyleLovely":"magritte-card-border-style-lovely___d1dyh_8-9-1","card-border-style-vivid":"magritte-card-border-style-vivid___UYrn3_8-9-1","cardBorderStyleVivid":"magritte-card-border-style-vivid___UYrn3_8-9-1","card-border-style-neutral-heavy":"magritte-card-border-style-neutral-heavy___VR1s4_8-9-1","cardBorderStyleNeutralHeavy":"magritte-card-border-style-neutral-heavy___VR1s4_8-9-1","card-border-style-constant":"magritte-card-border-style-constant___4DDKM_8-9-1","cardBorderStyleConstant":"magritte-card-border-style-constant___4DDKM_8-9-1","card-border-style-constant-alt":"magritte-card-border-style-constant-alt___wfnBK_8-9-1","cardBorderStyleConstantAlt":"magritte-card-border-style-constant-alt___wfnBK_8-9-1","between":"magritte-between___kuRsE_8-9-1"};
3
+
4
+ export { styles as s };
5
+ //# sourceMappingURL=card-Dm2i-4Go.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card-Dm2i-4Go.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}