boreal-ui 0.0.883 → 0.0.884
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/dist/core/Card.css +0 -6
- package/dist/next/{Card-B4XAnIBE.js → Card-D2jWnTzN.js} +61 -61
- package/dist/next/{Card-B4XAnIBE.js.map → Card-D2jWnTzN.js.map} +1 -1
- package/dist/next/Card.css +183 -189
- package/dist/next/Card.js +1 -1
- package/dist/next/{Footer-DLnIK3R3.js → Footer-Cz_Sq0zJ.js} +2 -2
- package/dist/next/{Footer-DLnIK3R3.js.map → Footer-Cz_Sq0zJ.js.map} +1 -1
- package/dist/next/Footer.js +1 -1
- package/dist/next/{Select-D4bH7djH.js → Select-8eeLU06R.js} +30 -30
- package/dist/next/{Select-D4bH7djH.js.map → Select-8eeLU06R.js.map} +1 -1
- package/dist/next/Select.css +80 -80
- package/dist/next/Select.js +1 -1
- package/dist/next/index.js +3 -3
- package/package.json +1 -1
package/dist/core/Card.css
CHANGED
|
@@ -901,12 +901,6 @@
|
|
|
901
901
|
}
|
|
902
902
|
}
|
|
903
903
|
|
|
904
|
-
.card :focus-visible {
|
|
905
|
-
outline: 2px solid var(--focus-outline-color, var(--primary-color));
|
|
906
|
-
outline-offset: 2px;
|
|
907
|
-
border-radius: 4px;
|
|
908
|
-
}
|
|
909
|
-
|
|
910
904
|
@media (prefers-reduced-motion: reduce) {
|
|
911
905
|
.card,
|
|
912
906
|
.card * {
|
|
@@ -7,59 +7,59 @@ import React, { useId, useMemo } from "react";
|
|
|
7
7
|
import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
|
|
8
8
|
import { c as capitalize } from "./capitalize-C0TSQSPh.js";
|
|
9
9
|
import { d as getDefaultTheme, e as getDefaultBorder, a as getDefaultRounding, b as getDefaultShadow, c as getDefaultSize } from "./boreal-style-config-DsaRlxmw.js";
|
|
10
|
-
import './Card.css';const card = "
|
|
11
|
-
const outline = "
|
|
12
|
-
const footer = "
|
|
13
|
-
const clickable = "
|
|
14
|
-
const borderNone = "
|
|
15
|
-
const borderXs = "
|
|
16
|
-
const borderSmall = "
|
|
17
|
-
const borderMedium = "
|
|
18
|
-
const borderLarge = "
|
|
19
|
-
const borderXl = "
|
|
20
|
-
const roundNone = "
|
|
21
|
-
const roundSmall = "
|
|
22
|
-
const roundMedium = "
|
|
23
|
-
const roundLarge = "
|
|
24
|
-
const roundFull = "
|
|
25
|
-
const shadowNone = "
|
|
26
|
-
const shadowLight = "
|
|
27
|
-
const shadowMedium = "
|
|
28
|
-
const shadowStrong = "
|
|
29
|
-
const shadowIntense = "
|
|
30
|
-
const loading = "
|
|
31
|
-
const fade_in = "
|
|
32
|
-
const media = "
|
|
33
|
-
const image = "
|
|
34
|
-
const vertical = "
|
|
35
|
-
const content = "
|
|
36
|
-
const horizontal = "
|
|
37
|
-
const body = "
|
|
38
|
-
const disabled = "
|
|
39
|
-
const primary = "
|
|
40
|
-
const icon = "
|
|
41
|
-
const description = "
|
|
42
|
-
const secondary = "
|
|
43
|
-
const tertiary = "
|
|
44
|
-
const quaternary = "
|
|
45
|
-
const clear = "
|
|
46
|
-
const success = "
|
|
47
|
-
const error = "
|
|
48
|
-
const warning = "
|
|
49
|
-
const header = "
|
|
50
|
-
const title = "
|
|
51
|
-
const actions = "
|
|
52
|
-
const xs = "
|
|
53
|
-
const children = "
|
|
54
|
-
const small = "
|
|
55
|
-
const medium = "
|
|
56
|
-
const large = "
|
|
57
|
-
const xl = "
|
|
58
|
-
const left = "
|
|
59
|
-
const center = "
|
|
60
|
-
const right = "
|
|
61
|
-
const spin = "
|
|
62
|
-
const pulse = "
|
|
10
|
+
import './Card.css';const card = "_card_j3vp0_205";
|
|
11
|
+
const outline = "_outline_j3vp0_212";
|
|
12
|
+
const footer = "_footer_j3vp0_215";
|
|
13
|
+
const clickable = "_clickable_j3vp0_218";
|
|
14
|
+
const borderNone = "_borderNone_j3vp0_246";
|
|
15
|
+
const borderXs = "_borderXs_j3vp0_252";
|
|
16
|
+
const borderSmall = "_borderSmall_j3vp0_258";
|
|
17
|
+
const borderMedium = "_borderMedium_j3vp0_264";
|
|
18
|
+
const borderLarge = "_borderLarge_j3vp0_270";
|
|
19
|
+
const borderXl = "_borderXl_j3vp0_276";
|
|
20
|
+
const roundNone = "_roundNone_j3vp0_282";
|
|
21
|
+
const roundSmall = "_roundSmall_j3vp0_286";
|
|
22
|
+
const roundMedium = "_roundMedium_j3vp0_290";
|
|
23
|
+
const roundLarge = "_roundLarge_j3vp0_294";
|
|
24
|
+
const roundFull = "_roundFull_j3vp0_298";
|
|
25
|
+
const shadowNone = "_shadowNone_j3vp0_302";
|
|
26
|
+
const shadowLight = "_shadowLight_j3vp0_306";
|
|
27
|
+
const shadowMedium = "_shadowMedium_j3vp0_310";
|
|
28
|
+
const shadowStrong = "_shadowStrong_j3vp0_314";
|
|
29
|
+
const shadowIntense = "_shadowIntense_j3vp0_318";
|
|
30
|
+
const loading = "_loading_j3vp0_322";
|
|
31
|
+
const fade_in = "_fade_in_j3vp0_343";
|
|
32
|
+
const media = "_media_j3vp0_347";
|
|
33
|
+
const image = "_image_j3vp0_366";
|
|
34
|
+
const vertical = "_vertical_j3vp0_378";
|
|
35
|
+
const content = "_content_j3vp0_381";
|
|
36
|
+
const horizontal = "_horizontal_j3vp0_399";
|
|
37
|
+
const body = "_body_j3vp0_449";
|
|
38
|
+
const disabled = "_disabled_j3vp0_480";
|
|
39
|
+
const primary = "_primary_j3vp0_500";
|
|
40
|
+
const icon = "_icon_j3vp0_504";
|
|
41
|
+
const description = "_description_j3vp0_505";
|
|
42
|
+
const secondary = "_secondary_j3vp0_522";
|
|
43
|
+
const tertiary = "_tertiary_j3vp0_544";
|
|
44
|
+
const quaternary = "_quaternary_j3vp0_566";
|
|
45
|
+
const clear = "_clear_j3vp0_588";
|
|
46
|
+
const success = "_success_j3vp0_610";
|
|
47
|
+
const error = "_error_j3vp0_631";
|
|
48
|
+
const warning = "_warning_j3vp0_652";
|
|
49
|
+
const header = "_header_j3vp0_699";
|
|
50
|
+
const title = "_title_j3vp0_739";
|
|
51
|
+
const actions = "_actions_j3vp0_815";
|
|
52
|
+
const xs = "_xs_j3vp0_834";
|
|
53
|
+
const children = "_children_j3vp0_844";
|
|
54
|
+
const small = "_small_j3vp0_851";
|
|
55
|
+
const medium = "_medium_j3vp0_867";
|
|
56
|
+
const large = "_large_j3vp0_883";
|
|
57
|
+
const xl = "_xl_j3vp0_899";
|
|
58
|
+
const left = "_left_j3vp0_915";
|
|
59
|
+
const center = "_center_j3vp0_927";
|
|
60
|
+
const right = "_right_j3vp0_939";
|
|
61
|
+
const spin = "_spin_j3vp0_1";
|
|
62
|
+
const pulse = "_pulse_j3vp0_1";
|
|
63
63
|
const styles = {
|
|
64
64
|
card,
|
|
65
65
|
outline,
|
|
@@ -83,7 +83,7 @@ const styles = {
|
|
|
83
83
|
shadowIntense,
|
|
84
84
|
loading,
|
|
85
85
|
fade_in,
|
|
86
|
-
"fade-in": "_fade-
|
|
86
|
+
"fade-in": "_fade-in_j3vp0_1",
|
|
87
87
|
media,
|
|
88
88
|
image,
|
|
89
89
|
vertical,
|
|
@@ -113,14 +113,14 @@ const styles = {
|
|
|
113
113
|
left,
|
|
114
114
|
center,
|
|
115
115
|
right,
|
|
116
|
-
"slide-up": "_slide-
|
|
117
|
-
"spin-3d": "_spin-
|
|
116
|
+
"slide-up": "_slide-up_j3vp0_1",
|
|
117
|
+
"spin-3d": "_spin-3d_j3vp0_1",
|
|
118
118
|
spin,
|
|
119
119
|
pulse,
|
|
120
|
-
"fade-in-up": "_fade-in-
|
|
121
|
-
"progress-grow": "_progress-
|
|
122
|
-
"indeterminate-move": "_indeterminate-
|
|
123
|
-
"skeleton-loading": "_skeleton-
|
|
120
|
+
"fade-in-up": "_fade-in-up_j3vp0_1",
|
|
121
|
+
"progress-grow": "_progress-grow_j3vp0_1",
|
|
122
|
+
"indeterminate-move": "_indeterminate-move_j3vp0_1",
|
|
123
|
+
"skeleton-loading": "_skeleton-loading_j3vp0_1"
|
|
124
124
|
};
|
|
125
125
|
const CardBase = ({
|
|
126
126
|
theme = getDefaultTheme(),
|
|
@@ -445,4 +445,4 @@ Card.displayName = "Card";
|
|
|
445
445
|
export {
|
|
446
446
|
Card as C
|
|
447
447
|
};
|
|
448
|
-
//# sourceMappingURL=Card-
|
|
448
|
+
//# sourceMappingURL=Card-D2jWnTzN.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Card-B4XAnIBE.js","sources":["../../src/components/Card/CardBase.tsx","../../src/components/Card/next/Card.tsx"],"sourcesContent":["import React, { useId, useMemo } from \"react\";\r\nimport { CardBaseProps, CardImageSource, StaticCardImage } from \"./Card.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n getDefaultBorder,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst CardBase: React.FC<CardBaseProps> = ({\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n cardIcon,\r\n title = \"\",\r\n border = getDefaultBorder(),\r\n description = \"\",\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n imageUrl,\r\n imageAlt,\r\n imageHeight,\r\n imageWidth,\r\n imageFill,\r\n imageDecorative = false,\r\n className = \"\",\r\n imageClassName = \"\",\r\n headerClassName = \"\",\r\n bodyClassName = \"\",\r\n footerClassName = \"\",\r\n outline = false,\r\n size = getDefaultSize(),\r\n align = \"center\",\r\n renderHeader,\r\n renderContent,\r\n renderFooter,\r\n actionButtons = [],\r\n useIconButtons = false,\r\n layout = \"vertical\",\r\n loading = false,\r\n children,\r\n id,\r\n role,\r\n tabIndex,\r\n selectable = false,\r\n selected = false,\r\n disabled = false,\r\n \"data-testid\": testId = \"card\",\r\n \"aria-labelledby\": ariaLabelledBy,\r\n \"aria-describedby\": ariaDescribedBy,\r\n \"aria-label\": ariaLabel,\r\n \"aria-expanded\": ariaExpanded,\r\n \"aria-controls\": ariaControls,\r\n \"aria-current\": ariaCurrent,\r\n \"aria-live\": ariaLive,\r\n \"aria-atomic\": ariaAtomic,\r\n headerId,\r\n descriptionId,\r\n classMap,\r\n SkeletonComponent,\r\n ImageComponent,\r\n}) => {\r\n const autoId = useId();\r\n const resolvedHeaderId = headerId || ariaLabelledBy || `${autoId}-header`;\r\n const resolvedDescriptionId = descriptionId || `${autoId}-description`;\r\n const hasTitle = Boolean(title);\r\n\r\n const hasDescription = Boolean(description);\r\n\r\n const derivedAriaLabel = ariaLabel || title || description || \"Content card\";\r\n\r\n const resolvedRole =\r\n role ||\r\n (selectable ? \"button\" : hasTitle || ariaLabel ? \"region\" : undefined);\r\n\r\n const FallbackImage = (props: React.ImgHTMLAttributes<HTMLImageElement>) => (\r\n <img {...props} />\r\n );\r\n\r\n function isStaticCardImage(value: unknown): value is StaticCardImage {\r\n return (\r\n typeof value === \"object\" &&\r\n value !== null &&\r\n \"src\" in value &&\r\n typeof (value as { src: unknown }).src === \"string\"\r\n );\r\n }\r\n\r\n function normalizeImageSource(\r\n srcInput: CardImageSource | undefined,\r\n fallbackWidth?: number,\r\n fallbackHeight?: number,\r\n ): { src?: string; width?: number; height?: number } {\r\n if (!srcInput) {\r\n return { src: undefined, width: fallbackWidth, height: fallbackHeight };\r\n }\r\n\r\n if (typeof srcInput === \"string\") {\r\n const trimmed = srcInput.trim();\r\n if (!trimmed) {\r\n return { src: undefined, width: fallbackWidth, height: fallbackHeight };\r\n }\r\n return { src: trimmed, width: fallbackWidth, height: fallbackHeight };\r\n }\r\n\r\n if (isStaticCardImage(srcInput)) {\r\n const trimmed = srcInput.src.trim();\r\n if (!trimmed) {\r\n return { src: undefined, width: fallbackWidth, height: fallbackHeight };\r\n }\r\n\r\n return {\r\n src: trimmed,\r\n width: srcInput.width ?? fallbackWidth,\r\n height: srcInput.height ?? fallbackHeight,\r\n };\r\n }\r\n\r\n return { src: undefined, width: fallbackWidth, height: fallbackHeight };\r\n }\r\n\r\n const {\r\n src: imgSrc,\r\n width: resolvedWidth,\r\n height: resolvedHeight,\r\n } = normalizeImageSource(imageUrl, imageWidth, imageHeight);\r\n\r\n const hasImage = Boolean(imgSrc);\r\n const imgAlt = imageDecorative ? \"\" : imageAlt || `${title || \"Card\"} image`;\r\n\r\n const ImageRenderer = ImageComponent || FallbackImage;\r\n\r\n const cardClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.card,\r\n classMap[layout],\r\n align && classMap[align],\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n border && classMap[`border${capitalize(border)}`],\r\n outline && classMap.outline,\r\n loading && classMap.loading,\r\n disabled && classMap.disabled,\r\n selected && classMap.selected,\r\n selectable && classMap.selectable,\r\n className,\r\n ),\r\n [\r\n classMap,\r\n layout,\r\n align,\r\n theme,\r\n state,\r\n size,\r\n shadow,\r\n rounding,\r\n border,\r\n outline,\r\n loading,\r\n disabled,\r\n selected,\r\n selectable,\r\n className,\r\n ],\r\n );\r\n\r\n return (\r\n <div\r\n id={id}\r\n data-testid={testId}\r\n className={cardClassName}\r\n role={resolvedRole}\r\n tabIndex={disabled ? -1 : tabIndex}\r\n aria-labelledby={\r\n hasTitle && !ariaLabel ? resolvedHeaderId : ariaLabelledBy\r\n }\r\n aria-describedby={\r\n ariaDescribedBy || (hasDescription ? resolvedDescriptionId : undefined)\r\n }\r\n aria-label={!hasTitle || ariaLabel ? derivedAriaLabel : undefined}\r\n aria-busy={loading || undefined}\r\n aria-disabled={disabled || undefined}\r\n aria-pressed={selectable ? selected : undefined}\r\n aria-expanded={ariaExpanded}\r\n aria-controls={ariaControls}\r\n aria-current={ariaCurrent}\r\n aria-live={ariaLive}\r\n aria-atomic={ariaAtomic}\r\n >\r\n {loading ? (\r\n <SkeletonComponent\r\n width=\"250px\"\r\n height=\"250px\"\r\n data-testid={`${testId}-skeleton`}\r\n />\r\n ) : (\r\n <div className={classMap.content}>\r\n {hasImage &&\r\n imgSrc &&\r\n (imageFill ? (\r\n <div className={classMap.media}>\r\n <ImageRenderer\r\n src={imgSrc}\r\n alt={imgAlt}\r\n className={combineClassNames(classMap.image, imageClassName)}\r\n fill\r\n />\r\n </div>\r\n ) : (\r\n <ImageRenderer\r\n src={imgSrc}\r\n alt={imgAlt}\r\n className={combineClassNames(classMap.image, imageClassName)}\r\n width={resolvedWidth ?? 640}\r\n height={resolvedHeight ?? 360}\r\n />\r\n ))}\r\n\r\n <div>\r\n {(renderHeader || hasTitle) && (\r\n <div\r\n className={combineClassNames(classMap.header, headerClassName)}\r\n id={resolvedHeaderId}\r\n >\r\n {renderHeader ? (\r\n renderHeader()\r\n ) : hasTitle ? (\r\n <h2 className={classMap.title}>\r\n {cardIcon && (\r\n <span\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-icon`}\r\n >\r\n {React.createElement(cardIcon)}\r\n </span>\r\n )}\r\n {title}\r\n </h2>\r\n ) : null}\r\n </div>\r\n )}\r\n\r\n <div className={combineClassNames(classMap.body, bodyClassName)}>\r\n {renderContent ? (\r\n renderContent()\r\n ) : (\r\n <>\r\n {hasDescription && (\r\n <p\r\n id={resolvedDescriptionId}\r\n className={classMap.description}\r\n >\r\n {description}\r\n </p>\r\n )}\r\n {children && (\r\n <div className={classMap.children}>{children}</div>\r\n )}\r\n </>\r\n )}\r\n </div>\r\n\r\n {(actionButtons.length > 0 || renderFooter) && (\r\n <div\r\n className={combineClassNames(classMap.footer, footerClassName)}\r\n >\r\n {actionButtons.length > 0 && (\r\n <div className={classMap.actions}>\r\n {actionButtons.map((button, index) =>\r\n useIconButtons && button.icon ? (\r\n <button.iconButtonComponent\r\n key={index}\r\n icon={button.icon}\r\n onClick={button.onClick}\r\n className={classMap.action_button}\r\n theme={button.theme || \"clear\"}\r\n state={button.state || \"\"}\r\n aria-label={button[\"aria-label\"] || button.label}\r\n aria-describedby={button[\"aria-describedby\"]}\r\n aria-labelledby={button[\"aria-labelledby\"]}\r\n aria-pressed={button[\"aria-pressed\"]}\r\n aria-expanded={button[\"aria-expanded\"]}\r\n aria-controls={button[\"aria-controls\"]}\r\n aria-current={button[\"aria-current\"]}\r\n role={button.role}\r\n title={button.title}\r\n size={button.size || size}\r\n href={button.href}\r\n loading={button.loading}\r\n disabled={button.disabled}\r\n />\r\n ) : (\r\n <button.buttonComponent\r\n key={index}\r\n onClick={button.onClick}\r\n className={classMap.action_button}\r\n theme={button.theme || \"secondary\"}\r\n state={button.state || \"\"}\r\n href={button.href}\r\n loading={button.loading}\r\n size={button.size || size}\r\n aria-label={button[\"aria-label\"] || button.label}\r\n aria-describedby={button[\"aria-describedby\"]}\r\n aria-labelledby={button[\"aria-labelledby\"]}\r\n aria-pressed={button[\"aria-pressed\"]}\r\n aria-expanded={button[\"aria-expanded\"]}\r\n aria-controls={button[\"aria-controls\"]}\r\n aria-current={button[\"aria-current\"]}\r\n role={button.role}\r\n title={button.title}\r\n disabled={button.disabled}\r\n >\r\n {button.label}\r\n </button.buttonComponent>\r\n ),\r\n )}\r\n </div>\r\n )}\r\n {renderFooter && renderFooter()}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nCardBase.displayName = \"CardBase\";\r\n\r\nexport default CardBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport Image, { StaticImageData } from \"next/image\";\r\nimport Button from \"../../Button/next/Button\";\r\nimport IconButton from \"../../IconButton/next/IconButton\";\r\nimport Skeleton from \"../../Skeleton/next/Skeleton\";\r\nimport styles from \"./Card.module.scss\";\r\nimport CardBase from \"../CardBase\";\r\nimport { CardImageComponentProps, CardProps } from \"../Card.types\";\r\n\r\nconst NextImageWrapper: React.FC<CardImageComponentProps> = ({\r\n src,\r\n alt,\r\n className,\r\n width,\r\n height,\r\n fill,\r\n}) => {\r\n if (typeof src === \"string\" && src.toLowerCase().endsWith(\".svg\")) {\r\n return (\r\n <img\r\n src={src}\r\n alt={alt}\r\n className={className}\r\n width={width}\r\n height={height}\r\n loading=\"lazy\"\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <Image\r\n src={src as StaticImageData | string}\r\n alt={alt}\r\n className={className}\r\n {...(fill\r\n ? { fill, sizes: \"100vw\" }\r\n : { width: width ?? 640, height: height ?? 360 })}\r\n />\r\n );\r\n};\r\n\r\nconst Card: React.FC<CardProps> = (props) => {\r\n const wrappedButtons = (props.actionButtons ?? []).map((b) => ({\r\n ...b,\r\n buttonComponent: Button,\r\n iconButtonComponent: IconButton,\r\n }));\r\n\r\n return (\r\n <CardBase\r\n {...props}\r\n actionButtons={wrappedButtons}\r\n classMap={styles}\r\n SkeletonComponent={Skeleton}\r\n ImageComponent={NextImageWrapper}\r\n />\r\n );\r\n};\r\nCard.displayName = \"Card\";\r\nexport default Card;\r\n"],"names":["title","description","outline","loading","children","disabled","Skeleton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Card-D2jWnTzN.js","sources":["../../src/components/Card/CardBase.tsx","../../src/components/Card/next/Card.tsx"],"sourcesContent":["import React, { useId, useMemo } from \"react\";\r\nimport { CardBaseProps, CardImageSource, StaticCardImage } from \"./Card.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n getDefaultBorder,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst CardBase: React.FC<CardBaseProps> = ({\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n cardIcon,\r\n title = \"\",\r\n border = getDefaultBorder(),\r\n description = \"\",\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n imageUrl,\r\n imageAlt,\r\n imageHeight,\r\n imageWidth,\r\n imageFill,\r\n imageDecorative = false,\r\n className = \"\",\r\n imageClassName = \"\",\r\n headerClassName = \"\",\r\n bodyClassName = \"\",\r\n footerClassName = \"\",\r\n outline = false,\r\n size = getDefaultSize(),\r\n align = \"center\",\r\n renderHeader,\r\n renderContent,\r\n renderFooter,\r\n actionButtons = [],\r\n useIconButtons = false,\r\n layout = \"vertical\",\r\n loading = false,\r\n children,\r\n id,\r\n role,\r\n tabIndex,\r\n selectable = false,\r\n selected = false,\r\n disabled = false,\r\n \"data-testid\": testId = \"card\",\r\n \"aria-labelledby\": ariaLabelledBy,\r\n \"aria-describedby\": ariaDescribedBy,\r\n \"aria-label\": ariaLabel,\r\n \"aria-expanded\": ariaExpanded,\r\n \"aria-controls\": ariaControls,\r\n \"aria-current\": ariaCurrent,\r\n \"aria-live\": ariaLive,\r\n \"aria-atomic\": ariaAtomic,\r\n headerId,\r\n descriptionId,\r\n classMap,\r\n SkeletonComponent,\r\n ImageComponent,\r\n}) => {\r\n const autoId = useId();\r\n const resolvedHeaderId = headerId || ariaLabelledBy || `${autoId}-header`;\r\n const resolvedDescriptionId = descriptionId || `${autoId}-description`;\r\n const hasTitle = Boolean(title);\r\n\r\n const hasDescription = Boolean(description);\r\n\r\n const derivedAriaLabel = ariaLabel || title || description || \"Content card\";\r\n\r\n const resolvedRole =\r\n role ||\r\n (selectable ? \"button\" : hasTitle || ariaLabel ? \"region\" : undefined);\r\n\r\n const FallbackImage = (props: React.ImgHTMLAttributes<HTMLImageElement>) => (\r\n <img {...props} />\r\n );\r\n\r\n function isStaticCardImage(value: unknown): value is StaticCardImage {\r\n return (\r\n typeof value === \"object\" &&\r\n value !== null &&\r\n \"src\" in value &&\r\n typeof (value as { src: unknown }).src === \"string\"\r\n );\r\n }\r\n\r\n function normalizeImageSource(\r\n srcInput: CardImageSource | undefined,\r\n fallbackWidth?: number,\r\n fallbackHeight?: number,\r\n ): { src?: string; width?: number; height?: number } {\r\n if (!srcInput) {\r\n return { src: undefined, width: fallbackWidth, height: fallbackHeight };\r\n }\r\n\r\n if (typeof srcInput === \"string\") {\r\n const trimmed = srcInput.trim();\r\n if (!trimmed) {\r\n return { src: undefined, width: fallbackWidth, height: fallbackHeight };\r\n }\r\n return { src: trimmed, width: fallbackWidth, height: fallbackHeight };\r\n }\r\n\r\n if (isStaticCardImage(srcInput)) {\r\n const trimmed = srcInput.src.trim();\r\n if (!trimmed) {\r\n return { src: undefined, width: fallbackWidth, height: fallbackHeight };\r\n }\r\n\r\n return {\r\n src: trimmed,\r\n width: srcInput.width ?? fallbackWidth,\r\n height: srcInput.height ?? fallbackHeight,\r\n };\r\n }\r\n\r\n return { src: undefined, width: fallbackWidth, height: fallbackHeight };\r\n }\r\n\r\n const {\r\n src: imgSrc,\r\n width: resolvedWidth,\r\n height: resolvedHeight,\r\n } = normalizeImageSource(imageUrl, imageWidth, imageHeight);\r\n\r\n const hasImage = Boolean(imgSrc);\r\n const imgAlt = imageDecorative ? \"\" : imageAlt || `${title || \"Card\"} image`;\r\n\r\n const ImageRenderer = ImageComponent || FallbackImage;\r\n\r\n const cardClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.card,\r\n classMap[layout],\r\n align && classMap[align],\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n border && classMap[`border${capitalize(border)}`],\r\n outline && classMap.outline,\r\n loading && classMap.loading,\r\n disabled && classMap.disabled,\r\n selected && classMap.selected,\r\n selectable && classMap.selectable,\r\n className,\r\n ),\r\n [\r\n classMap,\r\n layout,\r\n align,\r\n theme,\r\n state,\r\n size,\r\n shadow,\r\n rounding,\r\n border,\r\n outline,\r\n loading,\r\n disabled,\r\n selected,\r\n selectable,\r\n className,\r\n ],\r\n );\r\n\r\n return (\r\n <div\r\n id={id}\r\n data-testid={testId}\r\n className={cardClassName}\r\n role={resolvedRole}\r\n tabIndex={disabled ? -1 : tabIndex}\r\n aria-labelledby={\r\n hasTitle && !ariaLabel ? resolvedHeaderId : ariaLabelledBy\r\n }\r\n aria-describedby={\r\n ariaDescribedBy || (hasDescription ? resolvedDescriptionId : undefined)\r\n }\r\n aria-label={!hasTitle || ariaLabel ? derivedAriaLabel : undefined}\r\n aria-busy={loading || undefined}\r\n aria-disabled={disabled || undefined}\r\n aria-pressed={selectable ? selected : undefined}\r\n aria-expanded={ariaExpanded}\r\n aria-controls={ariaControls}\r\n aria-current={ariaCurrent}\r\n aria-live={ariaLive}\r\n aria-atomic={ariaAtomic}\r\n >\r\n {loading ? (\r\n <SkeletonComponent\r\n width=\"250px\"\r\n height=\"250px\"\r\n data-testid={`${testId}-skeleton`}\r\n />\r\n ) : (\r\n <div className={classMap.content}>\r\n {hasImage &&\r\n imgSrc &&\r\n (imageFill ? (\r\n <div className={classMap.media}>\r\n <ImageRenderer\r\n src={imgSrc}\r\n alt={imgAlt}\r\n className={combineClassNames(classMap.image, imageClassName)}\r\n fill\r\n />\r\n </div>\r\n ) : (\r\n <ImageRenderer\r\n src={imgSrc}\r\n alt={imgAlt}\r\n className={combineClassNames(classMap.image, imageClassName)}\r\n width={resolvedWidth ?? 640}\r\n height={resolvedHeight ?? 360}\r\n />\r\n ))}\r\n\r\n <div>\r\n {(renderHeader || hasTitle) && (\r\n <div\r\n className={combineClassNames(classMap.header, headerClassName)}\r\n id={resolvedHeaderId}\r\n >\r\n {renderHeader ? (\r\n renderHeader()\r\n ) : hasTitle ? (\r\n <h2 className={classMap.title}>\r\n {cardIcon && (\r\n <span\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-icon`}\r\n >\r\n {React.createElement(cardIcon)}\r\n </span>\r\n )}\r\n {title}\r\n </h2>\r\n ) : null}\r\n </div>\r\n )}\r\n\r\n <div className={combineClassNames(classMap.body, bodyClassName)}>\r\n {renderContent ? (\r\n renderContent()\r\n ) : (\r\n <>\r\n {hasDescription && (\r\n <p\r\n id={resolvedDescriptionId}\r\n className={classMap.description}\r\n >\r\n {description}\r\n </p>\r\n )}\r\n {children && (\r\n <div className={classMap.children}>{children}</div>\r\n )}\r\n </>\r\n )}\r\n </div>\r\n\r\n {(actionButtons.length > 0 || renderFooter) && (\r\n <div\r\n className={combineClassNames(classMap.footer, footerClassName)}\r\n >\r\n {actionButtons.length > 0 && (\r\n <div className={classMap.actions}>\r\n {actionButtons.map((button, index) =>\r\n useIconButtons && button.icon ? (\r\n <button.iconButtonComponent\r\n key={index}\r\n icon={button.icon}\r\n onClick={button.onClick}\r\n className={classMap.action_button}\r\n theme={button.theme || \"clear\"}\r\n state={button.state || \"\"}\r\n aria-label={button[\"aria-label\"] || button.label}\r\n aria-describedby={button[\"aria-describedby\"]}\r\n aria-labelledby={button[\"aria-labelledby\"]}\r\n aria-pressed={button[\"aria-pressed\"]}\r\n aria-expanded={button[\"aria-expanded\"]}\r\n aria-controls={button[\"aria-controls\"]}\r\n aria-current={button[\"aria-current\"]}\r\n role={button.role}\r\n title={button.title}\r\n size={button.size || size}\r\n href={button.href}\r\n loading={button.loading}\r\n disabled={button.disabled}\r\n />\r\n ) : (\r\n <button.buttonComponent\r\n key={index}\r\n onClick={button.onClick}\r\n className={classMap.action_button}\r\n theme={button.theme || \"secondary\"}\r\n state={button.state || \"\"}\r\n href={button.href}\r\n loading={button.loading}\r\n size={button.size || size}\r\n aria-label={button[\"aria-label\"] || button.label}\r\n aria-describedby={button[\"aria-describedby\"]}\r\n aria-labelledby={button[\"aria-labelledby\"]}\r\n aria-pressed={button[\"aria-pressed\"]}\r\n aria-expanded={button[\"aria-expanded\"]}\r\n aria-controls={button[\"aria-controls\"]}\r\n aria-current={button[\"aria-current\"]}\r\n role={button.role}\r\n title={button.title}\r\n disabled={button.disabled}\r\n >\r\n {button.label}\r\n </button.buttonComponent>\r\n ),\r\n )}\r\n </div>\r\n )}\r\n {renderFooter && renderFooter()}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nCardBase.displayName = \"CardBase\";\r\n\r\nexport default CardBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport Image, { StaticImageData } from \"next/image\";\r\nimport Button from \"../../Button/next/Button\";\r\nimport IconButton from \"../../IconButton/next/IconButton\";\r\nimport Skeleton from \"../../Skeleton/next/Skeleton\";\r\nimport styles from \"./Card.module.scss\";\r\nimport CardBase from \"../CardBase\";\r\nimport { CardImageComponentProps, CardProps } from \"../Card.types\";\r\n\r\nconst NextImageWrapper: React.FC<CardImageComponentProps> = ({\r\n src,\r\n alt,\r\n className,\r\n width,\r\n height,\r\n fill,\r\n}) => {\r\n if (typeof src === \"string\" && src.toLowerCase().endsWith(\".svg\")) {\r\n return (\r\n <img\r\n src={src}\r\n alt={alt}\r\n className={className}\r\n width={width}\r\n height={height}\r\n loading=\"lazy\"\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <Image\r\n src={src as StaticImageData | string}\r\n alt={alt}\r\n className={className}\r\n {...(fill\r\n ? { fill, sizes: \"100vw\" }\r\n : { width: width ?? 640, height: height ?? 360 })}\r\n />\r\n );\r\n};\r\n\r\nconst Card: React.FC<CardProps> = (props) => {\r\n const wrappedButtons = (props.actionButtons ?? []).map((b) => ({\r\n ...b,\r\n buttonComponent: Button,\r\n iconButtonComponent: IconButton,\r\n }));\r\n\r\n return (\r\n <CardBase\r\n {...props}\r\n actionButtons={wrappedButtons}\r\n classMap={styles}\r\n SkeletonComponent={Skeleton}\r\n ImageComponent={NextImageWrapper}\r\n />\r\n );\r\n};\r\nCard.displayName = \"Card\";\r\nexport default Card;\r\n"],"names":["title","description","outline","loading","children","disabled","Skeleton"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAM,WAAoC,CAAC;AAAA,EACzC,QAAQ,gBAAA;AAAA,EACR,QAAQ;AAAA,EACR;AAAA,EACA,OAAAA,SAAQ;AAAA,EACR,SAAS,iBAAA;AAAA,EACT,aAAAC,eAAc;AAAA,EACd,WAAW,mBAAA;AAAA,EACX,SAAS,iBAAA;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,kBAAkB;AAAA,EAClB,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,SAAAC,WAAU;AAAA,EACV,OAAO,eAAA;AAAA,EACP,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EACA;AAAA,EACA,gBAAgB,CAAA;AAAA,EAChB,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,SAAAC,WAAU;AAAA,EACV,UAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb,WAAW;AAAA,EACX,UAAAC,YAAW;AAAA,EACX,eAAe,SAAS;AAAA,EACxB,mBAAmB;AAAA,EACnB,oBAAoB;AAAA,EACpB,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,eAAe;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,SAAS,MAAA;AACf,QAAM,mBAAmB,YAAY,kBAAkB,GAAG,MAAM;AAChE,QAAM,wBAAwB,iBAAiB,GAAG,MAAM;AACxD,QAAM,WAAW,QAAQL,MAAK;AAE9B,QAAM,iBAAiB,QAAQC,YAAW;AAE1C,QAAM,mBAAmB,aAAaD,UAASC,gBAAe;AAE9D,QAAM,eACJ,SACC,aAAa,WAAW,YAAY,YAAY,WAAW;AAE9D,QAAM,gBAAgB,CAAC,UACrB,oBAAC,OAAA,EAAK,GAAG,OAAO;AAGlB,WAAS,kBAAkB,OAA0C;AACnE,WACE,OAAO,UAAU,YACjB,UAAU,QACV,SAAS,SACT,OAAQ,MAA2B,QAAQ;AAAA,EAE/C;AAEA,WAAS,qBACP,UACA,eACA,gBACmD;AACnD,QAAI,CAAC,UAAU;AACb,aAAO,EAAE,KAAK,QAAW,OAAO,eAAe,QAAQ,eAAA;AAAA,IACzD;AAEA,QAAI,OAAO,aAAa,UAAU;AAChC,YAAM,UAAU,SAAS,KAAA;AACzB,UAAI,CAAC,SAAS;AACZ,eAAO,EAAE,KAAK,QAAW,OAAO,eAAe,QAAQ,eAAA;AAAA,MACzD;AACA,aAAO,EAAE,KAAK,SAAS,OAAO,eAAe,QAAQ,eAAA;AAAA,IACvD;AAEA,QAAI,kBAAkB,QAAQ,GAAG;AAC/B,YAAM,UAAU,SAAS,IAAI,KAAA;AAC7B,UAAI,CAAC,SAAS;AACZ,eAAO,EAAE,KAAK,QAAW,OAAO,eAAe,QAAQ,eAAA;AAAA,MACzD;AAEA,aAAO;AAAA,QACL,KAAK;AAAA,QACL,OAAO,SAAS,SAAS;AAAA,QACzB,QAAQ,SAAS,UAAU;AAAA,MAAA;AAAA,IAE/B;AAEA,WAAO,EAAE,KAAK,QAAW,OAAO,eAAe,QAAQ,eAAA;AAAA,EACzD;AAEA,QAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,EAAA,IACN,qBAAqB,UAAU,YAAY,WAAW;AAE1D,QAAM,WAAW,QAAQ,MAAM;AAC/B,QAAM,SAAS,kBAAkB,KAAK,YAAY,GAAGD,UAAS,MAAM;AAEpE,QAAM,gBAAgB,kBAAkB;AAExC,QAAM,gBAAgB;AAAA,IACpB,MACE;AAAA,MACE,SAAS;AAAA,MACT,SAAS,MAAM;AAAA,MACf,SAAS,SAAS,KAAK;AAAA,MACvB,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,SAAS,IAAI;AAAA,MACb,UAAU,SAAS,SAAS,WAAW,MAAM,CAAC,EAAE;AAAA,MAChD,YAAY,SAAS,QAAQ,WAAW,QAAQ,CAAC,EAAE;AAAA,MACnD,UAAU,SAAS,SAAS,WAAW,MAAM,CAAC,EAAE;AAAA,MAChDE,YAAW,SAAS;AAAA,MACpBC,YAAW,SAAS;AAAA,MACpBE,aAAY,SAAS;AAAA,MACrB,YAAY,SAAS;AAAA,MACrB,cAAc,SAAS;AAAA,MACvB;AAAA,IAAA;AAAA,IAEJ;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACAH;AAAA,MACAC;AAAA,MACAE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EACF;AAGF,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,eAAa;AAAA,MACb,WAAW;AAAA,MACX,MAAM;AAAA,MACN,UAAUA,YAAW,KAAK;AAAA,MAC1B,mBACE,YAAY,CAAC,YAAY,mBAAmB;AAAA,MAE9C,oBACE,oBAAoB,iBAAiB,wBAAwB;AAAA,MAE/D,cAAY,CAAC,YAAY,YAAY,mBAAmB;AAAA,MACxD,aAAWF,YAAW;AAAA,MACtB,iBAAeE,aAAY;AAAA,MAC3B,gBAAc,aAAa,WAAW;AAAA,MACtC,iBAAe;AAAA,MACf,iBAAe;AAAA,MACf,gBAAc;AAAA,MACd,aAAW;AAAA,MACX,eAAa;AAAA,MAEZ,UAAAF,WACC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,eAAa,GAAG,MAAM;AAAA,QAAA;AAAA,MAAA,IAGxB,qBAAC,OAAA,EAAI,WAAW,SAAS,SACtB,UAAA;AAAA,QAAA,YACC,WACC,YACC,oBAAC,OAAA,EAAI,WAAW,SAAS,OACvB,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAK;AAAA,YACL,KAAK;AAAA,YACL,WAAW,kBAAkB,SAAS,OAAO,cAAc;AAAA,YAC3D,MAAI;AAAA,UAAA;AAAA,QAAA,GAER,IAEA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAK;AAAA,YACL,KAAK;AAAA,YACL,WAAW,kBAAkB,SAAS,OAAO,cAAc;AAAA,YAC3D,OAAO,iBAAiB;AAAA,YACxB,QAAQ,kBAAkB;AAAA,UAAA;AAAA,QAAA;AAAA,6BAI/B,OAAA,EACG,UAAA;AAAA,WAAA,gBAAgB,aAChB;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,kBAAkB,SAAS,QAAQ,eAAe;AAAA,cAC7D,IAAI;AAAA,cAEH,UAAA,eACC,iBACE,gCACD,MAAA,EAAG,WAAW,SAAS,OACrB,UAAA;AAAA,gBAAA,YACC;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,WAAW,SAAS;AAAA,oBACpB,eAAY;AAAA,oBACZ,eAAa,GAAG,MAAM;AAAA,oBAErB,UAAA,MAAM,cAAc,QAAQ;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAGhCH;AAAA,cAAA,EAAA,CACH,IACE;AAAA,YAAA;AAAA,UAAA;AAAA,UAIR,oBAAC,OAAA,EAAI,WAAW,kBAAkB,SAAS,MAAM,aAAa,GAC3D,UAAA,gBACC,cAAA,IAEA,qBAAA,UAAA,EACG,UAAA;AAAA,YAAA,kBACC;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,IAAI;AAAA,gBACJ,WAAW,SAAS;AAAA,gBAEnB,UAAAC;AAAA,cAAA;AAAA,YAAA;AAAA,YAGJG,aACC,oBAAC,OAAA,EAAI,WAAW,SAAS,UAAW,UAAAA,UAAA,CAAS;AAAA,UAAA,EAAA,CAEjD,EAAA,CAEJ;AAAA,WAEE,cAAc,SAAS,KAAK,iBAC5B;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,kBAAkB,SAAS,QAAQ,eAAe;AAAA,cAE5D,UAAA;AAAA,gBAAA,cAAc,SAAS,KACtB,oBAAC,SAAI,WAAW,SAAS,SACtB,UAAA,cAAc;AAAA,kBAAI,CAAC,QAAQ,UAC1B,kBAAkB,OAAO,OACvB;AAAA,oBAAC,OAAO;AAAA,oBAAP;AAAA,sBAEC,MAAM,OAAO;AAAA,sBACb,SAAS,OAAO;AAAA,sBAChB,WAAW,SAAS;AAAA,sBACpB,OAAO,OAAO,SAAS;AAAA,sBACvB,OAAO,OAAO,SAAS;AAAA,sBACvB,cAAY,OAAO,YAAY,KAAK,OAAO;AAAA,sBAC3C,oBAAkB,OAAO,kBAAkB;AAAA,sBAC3C,mBAAiB,OAAO,iBAAiB;AAAA,sBACzC,gBAAc,OAAO,cAAc;AAAA,sBACnC,iBAAe,OAAO,eAAe;AAAA,sBACrC,iBAAe,OAAO,eAAe;AAAA,sBACrC,gBAAc,OAAO,cAAc;AAAA,sBACnC,MAAM,OAAO;AAAA,sBACb,OAAO,OAAO;AAAA,sBACd,MAAM,OAAO,QAAQ;AAAA,sBACrB,MAAM,OAAO;AAAA,sBACb,SAAS,OAAO;AAAA,sBAChB,UAAU,OAAO;AAAA,oBAAA;AAAA,oBAlBZ;AAAA,kBAAA,IAqBP;AAAA,oBAAC,OAAO;AAAA,oBAAP;AAAA,sBAEC,SAAS,OAAO;AAAA,sBAChB,WAAW,SAAS;AAAA,sBACpB,OAAO,OAAO,SAAS;AAAA,sBACvB,OAAO,OAAO,SAAS;AAAA,sBACvB,MAAM,OAAO;AAAA,sBACb,SAAS,OAAO;AAAA,sBAChB,MAAM,OAAO,QAAQ;AAAA,sBACrB,cAAY,OAAO,YAAY,KAAK,OAAO;AAAA,sBAC3C,oBAAkB,OAAO,kBAAkB;AAAA,sBAC3C,mBAAiB,OAAO,iBAAiB;AAAA,sBACzC,gBAAc,OAAO,cAAc;AAAA,sBACnC,iBAAe,OAAO,eAAe;AAAA,sBACrC,iBAAe,OAAO,eAAe;AAAA,sBACrC,gBAAc,OAAO,cAAc;AAAA,sBACnC,MAAM,OAAO;AAAA,sBACb,OAAO,OAAO;AAAA,sBACd,UAAU,OAAO;AAAA,sBAEhB,UAAA,OAAO;AAAA,oBAAA;AAAA,oBAnBH;AAAA,kBAAA;AAAA,gBAoBP,GAGN;AAAA,gBAED,gBAAgB,aAAA;AAAA,cAAa;AAAA,YAAA;AAAA,UAAA;AAAA,QAChC,EAAA,CAEJ;AAAA,MAAA,EAAA,CACF;AAAA,IAAA;AAAA,EAAA;AAIR;AAEA,SAAS,cAAc;ACpUvB,MAAM,mBAAsD,CAAC;AAAA,EAC3D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,MAAI,OAAO,QAAQ,YAAY,IAAI,cAAc,SAAS,MAAM,GAAG;AACjE,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAQ;AAAA,MAAA;AAAA,IAAA;AAAA,EAGd;AAEA,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACC,GAAI,OACD,EAAE,MAAM,OAAO,QAAA,IACf,EAAE,OAAO,SAAS,KAAK,QAAQ,UAAU,IAAA;AAAA,IAAI;AAAA,EAAA;AAGvD;AAEA,MAAM,OAA4B,CAAC,UAAU;AAC3C,QAAM,kBAAkB,MAAM,iBAAiB,CAAA,GAAI,IAAI,CAAC,OAAO;AAAA,IAC7D,GAAG;AAAA,IACH,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,EAAA,EACrB;AAEF,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ,eAAe;AAAA,MACf,UAAU;AAAA,MACV,mBAAmBE;AAAAA,MACnB,gBAAgB;AAAA,IAAA;AAAA,EAAA;AAGtB;AACA,KAAK,cAAc;"}
|