boreal-ui 0.0.884 → 0.0.885
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-BTrF1W-e.js → Card-BGx1_N5A.js} +125 -72
- package/dist/core/Card-BGx1_N5A.js.map +1 -0
- package/dist/core/{Card-Ha3HknHh.cjs → Card-D9dQ1jar.cjs} +125 -72
- package/dist/core/Card-D9dQ1jar.cjs.map +1 -0
- package/dist/core/Card.cjs.js +1 -1
- package/dist/core/Card.js +1 -1
- package/dist/core/DataTable-BB7nx-un.js +357 -0
- package/dist/core/DataTable-BB7nx-un.js.map +1 -0
- package/dist/core/DataTable-Blz-v6wp.cjs +356 -0
- package/dist/core/DataTable-Blz-v6wp.cjs.map +1 -0
- package/dist/core/DataTable.cjs.js +1 -1
- package/dist/core/DataTable.css +101 -56
- package/dist/core/DataTable.js +1 -1
- package/dist/core/index.cjs.js +2 -2
- package/dist/core/index.js +2 -2
- package/dist/next/{Card-D2jWnTzN.js → Card-BmAdA56_.js} +125 -72
- package/dist/next/Card-BmAdA56_.js.map +1 -0
- package/dist/next/Card.js +1 -1
- package/dist/next/DataTable-l98woAcr.js +387 -0
- package/dist/next/DataTable-l98woAcr.js.map +1 -0
- package/dist/next/DataTable.css +133 -88
- package/dist/next/DataTable.js +1 -1
- package/dist/next/index.js +2 -2
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/components/Card/Card.types.d.ts +22 -6
- package/dist/types/components/Card/Card.types.d.ts.map +1 -1
- package/dist/types/components/Card/CardBase.d.ts.map +1 -1
- package/dist/types/components/DataTable/DataTable.types.d.ts +61 -0
- package/dist/types/components/DataTable/DataTable.types.d.ts.map +1 -1
- package/dist/types/components/DataTable/DataTableBase.d.ts +1 -1
- package/dist/types/components/DataTable/DataTableBase.d.ts.map +1 -1
- package/dist/types/components/DataTable/core/DataTable.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/core/Card-BTrF1W-e.js.map +0 -1
- package/dist/core/Card-Ha3HknHh.cjs.map +0 -1
- package/dist/core/DataTable-6f7j0ahI.cjs +0 -313
- package/dist/core/DataTable-6f7j0ahI.cjs.map +0 -1
- package/dist/core/DataTable-BC8BOwEL.js +0 -314
- package/dist/core/DataTable-BC8BOwEL.js.map +0 -1
- package/dist/next/Card-D2jWnTzN.js.map +0 -1
- package/dist/next/DataTable-F9mtABNi.js +0 -339
- package/dist/next/DataTable-F9mtABNi.js.map +0 -1
|
@@ -22,10 +22,18 @@ import './Card.css';const CardBase = ({
|
|
|
22
22
|
imageFill,
|
|
23
23
|
imageDecorative = false,
|
|
24
24
|
className = "",
|
|
25
|
+
contentClassName = "",
|
|
26
|
+
mediaClassName = "",
|
|
25
27
|
imageClassName = "",
|
|
26
28
|
headerClassName = "",
|
|
29
|
+
titleClassName = "",
|
|
30
|
+
iconClassName = "",
|
|
27
31
|
bodyClassName = "",
|
|
32
|
+
descriptionClassName = "",
|
|
33
|
+
childrenClassName = "",
|
|
28
34
|
footerClassName = "",
|
|
35
|
+
actionsClassName = "",
|
|
36
|
+
actionButtonClassName = "",
|
|
29
37
|
outline = false,
|
|
30
38
|
size = getDefaultSize(),
|
|
31
39
|
align = "center",
|
|
@@ -163,16 +171,22 @@ import './Card.css';const CardBase = ({
|
|
|
163
171
|
height: "250px",
|
|
164
172
|
"data-testid": `${testId}-skeleton`
|
|
165
173
|
}
|
|
166
|
-
) : /* @__PURE__ */ jsxs("div", { className: classMap.content, children: [
|
|
167
|
-
hasImage && imgSrc && (imageFill ? /* @__PURE__ */ jsx(
|
|
168
|
-
|
|
174
|
+
) : /* @__PURE__ */ jsxs("div", { className: combineClassNames(classMap.content, contentClassName), children: [
|
|
175
|
+
hasImage && imgSrc && (imageFill ? /* @__PURE__ */ jsx(
|
|
176
|
+
"div",
|
|
169
177
|
{
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
178
|
+
className: combineClassNames(classMap.media, mediaClassName),
|
|
179
|
+
children: /* @__PURE__ */ jsx(
|
|
180
|
+
ImageRenderer,
|
|
181
|
+
{
|
|
182
|
+
src: imgSrc,
|
|
183
|
+
alt: imgAlt,
|
|
184
|
+
className: combineClassNames(classMap.image, imageClassName),
|
|
185
|
+
fill: true
|
|
186
|
+
}
|
|
187
|
+
)
|
|
174
188
|
}
|
|
175
|
-
)
|
|
189
|
+
) : /* @__PURE__ */ jsx(
|
|
176
190
|
ImageRenderer,
|
|
177
191
|
{
|
|
178
192
|
src: imgSrc,
|
|
@@ -188,18 +202,30 @@ import './Card.css';const CardBase = ({
|
|
|
188
202
|
{
|
|
189
203
|
className: combineClassNames(classMap.header, headerClassName),
|
|
190
204
|
id: resolvedHeaderId,
|
|
191
|
-
children: renderHeader ? renderHeader() : hasTitle ? /* @__PURE__ */ jsxs(
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
205
|
+
children: renderHeader ? renderHeader() : hasTitle ? /* @__PURE__ */ jsxs(
|
|
206
|
+
"h2",
|
|
207
|
+
{
|
|
208
|
+
className: combineClassNames(
|
|
209
|
+
classMap.title,
|
|
210
|
+
titleClassName
|
|
211
|
+
),
|
|
212
|
+
children: [
|
|
213
|
+
cardIcon && /* @__PURE__ */ jsx(
|
|
214
|
+
"span",
|
|
215
|
+
{
|
|
216
|
+
className: combineClassNames(
|
|
217
|
+
classMap.icon,
|
|
218
|
+
iconClassName
|
|
219
|
+
),
|
|
220
|
+
"aria-hidden": "true",
|
|
221
|
+
"data-testid": `${testId}-icon`,
|
|
222
|
+
children: React.createElement(cardIcon)
|
|
223
|
+
}
|
|
224
|
+
),
|
|
225
|
+
title
|
|
226
|
+
]
|
|
227
|
+
}
|
|
228
|
+
) : null
|
|
203
229
|
}
|
|
204
230
|
),
|
|
205
231
|
/* @__PURE__ */ jsx("div", { className: combineClassNames(classMap.body, bodyClassName), children: renderContent ? renderContent() : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -207,66 +233,93 @@ import './Card.css';const CardBase = ({
|
|
|
207
233
|
"p",
|
|
208
234
|
{
|
|
209
235
|
id: resolvedDescriptionId,
|
|
210
|
-
className:
|
|
236
|
+
className: combineClassNames(
|
|
237
|
+
classMap.description,
|
|
238
|
+
descriptionClassName
|
|
239
|
+
),
|
|
211
240
|
children: description
|
|
212
241
|
}
|
|
213
242
|
),
|
|
214
|
-
children && /* @__PURE__ */ jsx(
|
|
243
|
+
children && /* @__PURE__ */ jsx(
|
|
244
|
+
"div",
|
|
245
|
+
{
|
|
246
|
+
className: combineClassNames(
|
|
247
|
+
classMap.children,
|
|
248
|
+
childrenClassName
|
|
249
|
+
),
|
|
250
|
+
children
|
|
251
|
+
}
|
|
252
|
+
)
|
|
215
253
|
] }) }),
|
|
216
254
|
(actionButtons.length > 0 || renderFooter) && /* @__PURE__ */ jsxs(
|
|
217
255
|
"div",
|
|
218
256
|
{
|
|
219
257
|
className: combineClassNames(classMap.footer, footerClassName),
|
|
220
258
|
children: [
|
|
221
|
-
actionButtons.length > 0 && /* @__PURE__ */ jsx(
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
259
|
+
actionButtons.length > 0 && /* @__PURE__ */ jsx(
|
|
260
|
+
"div",
|
|
261
|
+
{
|
|
262
|
+
className: combineClassNames(
|
|
263
|
+
classMap.actions,
|
|
264
|
+
actionsClassName
|
|
265
|
+
),
|
|
266
|
+
children: actionButtons.map(
|
|
267
|
+
(button, index) => useIconButtons && button.icon ? /* @__PURE__ */ jsx(
|
|
268
|
+
button.iconButtonComponent,
|
|
269
|
+
{
|
|
270
|
+
icon: button.icon,
|
|
271
|
+
onClick: button.onClick,
|
|
272
|
+
className: combineClassNames(
|
|
273
|
+
classMap.action_button,
|
|
274
|
+
actionButtonClassName
|
|
275
|
+
),
|
|
276
|
+
theme: button.theme || "clear",
|
|
277
|
+
state: button.state || "",
|
|
278
|
+
"aria-label": button["aria-label"] || button.label,
|
|
279
|
+
"aria-describedby": button["aria-describedby"],
|
|
280
|
+
"aria-labelledby": button["aria-labelledby"],
|
|
281
|
+
"aria-pressed": button["aria-pressed"],
|
|
282
|
+
"aria-expanded": button["aria-expanded"],
|
|
283
|
+
"aria-controls": button["aria-controls"],
|
|
284
|
+
"aria-current": button["aria-current"],
|
|
285
|
+
role: button.role,
|
|
286
|
+
title: button.title,
|
|
287
|
+
size: button.size || size,
|
|
288
|
+
href: button.href,
|
|
289
|
+
loading: button.loading,
|
|
290
|
+
disabled: button.disabled
|
|
291
|
+
},
|
|
292
|
+
index
|
|
293
|
+
) : /* @__PURE__ */ jsx(
|
|
294
|
+
button.buttonComponent,
|
|
295
|
+
{
|
|
296
|
+
onClick: button.onClick,
|
|
297
|
+
className: combineClassNames(
|
|
298
|
+
classMap.action_button,
|
|
299
|
+
actionButtonClassName
|
|
300
|
+
),
|
|
301
|
+
theme: button.theme || "secondary",
|
|
302
|
+
state: button.state || "",
|
|
303
|
+
href: button.href,
|
|
304
|
+
loading: button.loading,
|
|
305
|
+
size: button.size || size,
|
|
306
|
+
"aria-label": button["aria-label"] || button.label,
|
|
307
|
+
"aria-describedby": button["aria-describedby"],
|
|
308
|
+
"aria-labelledby": button["aria-labelledby"],
|
|
309
|
+
"aria-pressed": button["aria-pressed"],
|
|
310
|
+
"aria-expanded": button["aria-expanded"],
|
|
311
|
+
"aria-controls": button["aria-controls"],
|
|
312
|
+
"aria-current": button["aria-current"],
|
|
313
|
+
role: button.role,
|
|
314
|
+
title: button.title,
|
|
315
|
+
disabled: button.disabled,
|
|
316
|
+
children: button.label
|
|
317
|
+
},
|
|
318
|
+
index
|
|
319
|
+
)
|
|
320
|
+
)
|
|
321
|
+
}
|
|
322
|
+
),
|
|
270
323
|
renderFooter && renderFooter()
|
|
271
324
|
]
|
|
272
325
|
}
|
|
@@ -346,4 +399,4 @@ Card.displayName = "Card";
|
|
|
346
399
|
export {
|
|
347
400
|
Card as C
|
|
348
401
|
};
|
|
349
|
-
//# sourceMappingURL=Card-
|
|
402
|
+
//# sourceMappingURL=Card-BGx1_N5A.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Card-BGx1_N5A.js","sources":["../../src/components/Card/CardBase.tsx","../../src/components/Card/core/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 contentClassName = \"\",\r\n mediaClassName = \"\",\r\n imageClassName = \"\",\r\n headerClassName = \"\",\r\n titleClassName = \"\",\r\n iconClassName = \"\",\r\n bodyClassName = \"\",\r\n descriptionClassName = \"\",\r\n childrenClassName = \"\",\r\n footerClassName = \"\",\r\n actionsClassName = \"\",\r\n actionButtonClassName = \"\",\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={combineClassNames(classMap.content, contentClassName)}>\r\n {hasImage &&\r\n imgSrc &&\r\n (imageFill ? (\r\n <div\r\n className={combineClassNames(classMap.media, mediaClassName)}\r\n >\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\r\n className={combineClassNames(\r\n classMap.title,\r\n titleClassName,\r\n )}\r\n >\r\n {cardIcon && (\r\n <span\r\n className={combineClassNames(\r\n classMap.icon,\r\n iconClassName,\r\n )}\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={combineClassNames(\r\n classMap.description,\r\n descriptionClassName,\r\n )}\r\n >\r\n {description}\r\n </p>\r\n )}\r\n {children && (\r\n <div\r\n className={combineClassNames(\r\n classMap.children,\r\n childrenClassName,\r\n )}\r\n >\r\n {children}\r\n </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\r\n className={combineClassNames(\r\n classMap.actions,\r\n actionsClassName,\r\n )}\r\n >\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={combineClassNames(\r\n classMap.action_button,\r\n actionButtonClassName,\r\n )}\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={combineClassNames(\r\n classMap.action_button,\r\n actionButtonClassName,\r\n )}\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","import React from \"react\";\r\nimport CardBase from \"../CardBase\";\r\nimport \"./Card.scss\";\r\nimport Button from \"../../Button/core/Button\";\r\nimport IconButton from \"../../IconButton/core/IconButton\";\r\nimport Skeleton from \"../../Skeleton/core/Skeleton\";\r\nimport { CardProps } from \"../Card.types\";\r\n\r\nconst classes = {\r\n card: \"card\",\r\n\r\n left: \"card_left\",\r\n right: \"card_right\",\r\n center: \"card_center\",\r\n\r\n primary: \"card_primary\",\r\n secondary: \"card_secondary\",\r\n tertiary: \"card_tertiary\",\r\n quaternary: \"card_quaternary\",\r\n\r\n success: \"card_success\",\r\n warning: \"card_warning\",\r\n error: \"card_error\",\r\n\r\n clear: \"card_clear\",\r\n\r\n outline: \"card_outline\",\r\n loading: \"card_loading\",\r\n\r\n content: \"card_content\",\r\n\r\n xs: \"card_xs\",\r\n small: \"card_small\",\r\n medium: \"card_medium\",\r\n large: \"card_large\",\r\n xl: \"card_xl\",\r\n\r\n shadowNone: \"card_shadow-None\",\r\n shadowLight: \"card_shadow-Light\",\r\n shadowMedium: \"card_shadow-Medium\",\r\n shadowStrong: \"card_shadow-Strong\",\r\n shadowIntense: \"card_shadow-Intense\",\r\n\r\n roundNone: \"card_round-None\",\r\n roundSmall: \"card_round-Small\",\r\n roundMedium: \"card_round-Medium\",\r\n roundLarge: \"card_round-Large\",\r\n\r\n borderNone: \"card_border-None\",\r\n borderXs: \"card_border-Xs\",\r\n borderSmall: \"card_border-Small\",\r\n borderMedium: \"card_border-Medium\",\r\n borderLarge: \"card_border-Large\",\r\n borderXl: \"card_border-Xl\",\r\n\r\n vertical: \"card_vertical\",\r\n horizontal: \"card_horizontal\",\r\n\r\n image: \"card_image\",\r\n header: \"card_header\",\r\n title: \"card_title\",\r\n icon: \"card_icon\",\r\n body: \"card_body\",\r\n description: \"card_description\",\r\n children: \"card_children\",\r\n footer: \"card_footer\",\r\n actions: \"card_actions\",\r\n action_button: \"card_action_button\",\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={classes}\r\n SkeletonComponent={Skeleton}\r\n />\r\n );\r\n};\r\nCard.displayName = \"Card\";\r\nexport default Card;\r\n"],"names":["Skeleton"],"mappings":"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"}
|
|
@@ -23,10 +23,18 @@ const CardBase = ({
|
|
|
23
23
|
imageFill,
|
|
24
24
|
imageDecorative = false,
|
|
25
25
|
className = "",
|
|
26
|
+
contentClassName = "",
|
|
27
|
+
mediaClassName = "",
|
|
26
28
|
imageClassName = "",
|
|
27
29
|
headerClassName = "",
|
|
30
|
+
titleClassName = "",
|
|
31
|
+
iconClassName = "",
|
|
28
32
|
bodyClassName = "",
|
|
33
|
+
descriptionClassName = "",
|
|
34
|
+
childrenClassName = "",
|
|
29
35
|
footerClassName = "",
|
|
36
|
+
actionsClassName = "",
|
|
37
|
+
actionButtonClassName = "",
|
|
30
38
|
outline = false,
|
|
31
39
|
size = borealStyleConfig.getDefaultSize(),
|
|
32
40
|
align = "center",
|
|
@@ -164,16 +172,22 @@ const CardBase = ({
|
|
|
164
172
|
height: "250px",
|
|
165
173
|
"data-testid": `${testId}-skeleton`
|
|
166
174
|
}
|
|
167
|
-
) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: classMap.content, children: [
|
|
168
|
-
hasImage && imgSrc && (imageFill ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
169
|
-
|
|
175
|
+
) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: classNames.combineClassNames(classMap.content, contentClassName), children: [
|
|
176
|
+
hasImage && imgSrc && (imageFill ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
177
|
+
"div",
|
|
170
178
|
{
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
179
|
+
className: classNames.combineClassNames(classMap.media, mediaClassName),
|
|
180
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
181
|
+
ImageRenderer,
|
|
182
|
+
{
|
|
183
|
+
src: imgSrc,
|
|
184
|
+
alt: imgAlt,
|
|
185
|
+
className: classNames.combineClassNames(classMap.image, imageClassName),
|
|
186
|
+
fill: true
|
|
187
|
+
}
|
|
188
|
+
)
|
|
175
189
|
}
|
|
176
|
-
)
|
|
190
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
177
191
|
ImageRenderer,
|
|
178
192
|
{
|
|
179
193
|
src: imgSrc,
|
|
@@ -189,18 +203,30 @@ const CardBase = ({
|
|
|
189
203
|
{
|
|
190
204
|
className: classNames.combineClassNames(classMap.header, headerClassName),
|
|
191
205
|
id: resolvedHeaderId,
|
|
192
|
-
children: renderHeader ? renderHeader() : hasTitle ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
206
|
+
children: renderHeader ? renderHeader() : hasTitle ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
207
|
+
"h2",
|
|
208
|
+
{
|
|
209
|
+
className: classNames.combineClassNames(
|
|
210
|
+
classMap.title,
|
|
211
|
+
titleClassName
|
|
212
|
+
),
|
|
213
|
+
children: [
|
|
214
|
+
cardIcon && /* @__PURE__ */ jsxRuntime.jsx(
|
|
215
|
+
"span",
|
|
216
|
+
{
|
|
217
|
+
className: classNames.combineClassNames(
|
|
218
|
+
classMap.icon,
|
|
219
|
+
iconClassName
|
|
220
|
+
),
|
|
221
|
+
"aria-hidden": "true",
|
|
222
|
+
"data-testid": `${testId}-icon`,
|
|
223
|
+
children: React.createElement(cardIcon)
|
|
224
|
+
}
|
|
225
|
+
),
|
|
226
|
+
title
|
|
227
|
+
]
|
|
228
|
+
}
|
|
229
|
+
) : null
|
|
204
230
|
}
|
|
205
231
|
),
|
|
206
232
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: classNames.combineClassNames(classMap.body, bodyClassName), children: renderContent ? renderContent() : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
@@ -208,66 +234,93 @@ const CardBase = ({
|
|
|
208
234
|
"p",
|
|
209
235
|
{
|
|
210
236
|
id: resolvedDescriptionId,
|
|
211
|
-
className:
|
|
237
|
+
className: classNames.combineClassNames(
|
|
238
|
+
classMap.description,
|
|
239
|
+
descriptionClassName
|
|
240
|
+
),
|
|
212
241
|
children: description
|
|
213
242
|
}
|
|
214
243
|
),
|
|
215
|
-
children && /* @__PURE__ */ jsxRuntime.jsx(
|
|
244
|
+
children && /* @__PURE__ */ jsxRuntime.jsx(
|
|
245
|
+
"div",
|
|
246
|
+
{
|
|
247
|
+
className: classNames.combineClassNames(
|
|
248
|
+
classMap.children,
|
|
249
|
+
childrenClassName
|
|
250
|
+
),
|
|
251
|
+
children
|
|
252
|
+
}
|
|
253
|
+
)
|
|
216
254
|
] }) }),
|
|
217
255
|
(actionButtons.length > 0 || renderFooter) && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
218
256
|
"div",
|
|
219
257
|
{
|
|
220
258
|
className: classNames.combineClassNames(classMap.footer, footerClassName),
|
|
221
259
|
children: [
|
|
222
|
-
actionButtons.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
260
|
+
actionButtons.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
261
|
+
"div",
|
|
262
|
+
{
|
|
263
|
+
className: classNames.combineClassNames(
|
|
264
|
+
classMap.actions,
|
|
265
|
+
actionsClassName
|
|
266
|
+
),
|
|
267
|
+
children: actionButtons.map(
|
|
268
|
+
(button, index) => useIconButtons && button.icon ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
269
|
+
button.iconButtonComponent,
|
|
270
|
+
{
|
|
271
|
+
icon: button.icon,
|
|
272
|
+
onClick: button.onClick,
|
|
273
|
+
className: classNames.combineClassNames(
|
|
274
|
+
classMap.action_button,
|
|
275
|
+
actionButtonClassName
|
|
276
|
+
),
|
|
277
|
+
theme: button.theme || "clear",
|
|
278
|
+
state: button.state || "",
|
|
279
|
+
"aria-label": button["aria-label"] || button.label,
|
|
280
|
+
"aria-describedby": button["aria-describedby"],
|
|
281
|
+
"aria-labelledby": button["aria-labelledby"],
|
|
282
|
+
"aria-pressed": button["aria-pressed"],
|
|
283
|
+
"aria-expanded": button["aria-expanded"],
|
|
284
|
+
"aria-controls": button["aria-controls"],
|
|
285
|
+
"aria-current": button["aria-current"],
|
|
286
|
+
role: button.role,
|
|
287
|
+
title: button.title,
|
|
288
|
+
size: button.size || size,
|
|
289
|
+
href: button.href,
|
|
290
|
+
loading: button.loading,
|
|
291
|
+
disabled: button.disabled
|
|
292
|
+
},
|
|
293
|
+
index
|
|
294
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
295
|
+
button.buttonComponent,
|
|
296
|
+
{
|
|
297
|
+
onClick: button.onClick,
|
|
298
|
+
className: classNames.combineClassNames(
|
|
299
|
+
classMap.action_button,
|
|
300
|
+
actionButtonClassName
|
|
301
|
+
),
|
|
302
|
+
theme: button.theme || "secondary",
|
|
303
|
+
state: button.state || "",
|
|
304
|
+
href: button.href,
|
|
305
|
+
loading: button.loading,
|
|
306
|
+
size: button.size || size,
|
|
307
|
+
"aria-label": button["aria-label"] || button.label,
|
|
308
|
+
"aria-describedby": button["aria-describedby"],
|
|
309
|
+
"aria-labelledby": button["aria-labelledby"],
|
|
310
|
+
"aria-pressed": button["aria-pressed"],
|
|
311
|
+
"aria-expanded": button["aria-expanded"],
|
|
312
|
+
"aria-controls": button["aria-controls"],
|
|
313
|
+
"aria-current": button["aria-current"],
|
|
314
|
+
role: button.role,
|
|
315
|
+
title: button.title,
|
|
316
|
+
disabled: button.disabled,
|
|
317
|
+
children: button.label
|
|
318
|
+
},
|
|
319
|
+
index
|
|
320
|
+
)
|
|
321
|
+
)
|
|
322
|
+
}
|
|
323
|
+
),
|
|
271
324
|
renderFooter && renderFooter()
|
|
272
325
|
]
|
|
273
326
|
}
|
|
@@ -345,4 +398,4 @@ const Card = (props) => {
|
|
|
345
398
|
};
|
|
346
399
|
Card.displayName = "Card";
|
|
347
400
|
exports.Card = Card;
|
|
348
|
-
//# sourceMappingURL=Card-
|
|
401
|
+
//# sourceMappingURL=Card-D9dQ1jar.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Card-D9dQ1jar.cjs","sources":["../../src/components/Card/CardBase.tsx","../../src/components/Card/core/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 contentClassName = \"\",\r\n mediaClassName = \"\",\r\n imageClassName = \"\",\r\n headerClassName = \"\",\r\n titleClassName = \"\",\r\n iconClassName = \"\",\r\n bodyClassName = \"\",\r\n descriptionClassName = \"\",\r\n childrenClassName = \"\",\r\n footerClassName = \"\",\r\n actionsClassName = \"\",\r\n actionButtonClassName = \"\",\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={combineClassNames(classMap.content, contentClassName)}>\r\n {hasImage &&\r\n imgSrc &&\r\n (imageFill ? (\r\n <div\r\n className={combineClassNames(classMap.media, mediaClassName)}\r\n >\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\r\n className={combineClassNames(\r\n classMap.title,\r\n titleClassName,\r\n )}\r\n >\r\n {cardIcon && (\r\n <span\r\n className={combineClassNames(\r\n classMap.icon,\r\n iconClassName,\r\n )}\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={combineClassNames(\r\n classMap.description,\r\n descriptionClassName,\r\n )}\r\n >\r\n {description}\r\n </p>\r\n )}\r\n {children && (\r\n <div\r\n className={combineClassNames(\r\n classMap.children,\r\n childrenClassName,\r\n )}\r\n >\r\n {children}\r\n </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\r\n className={combineClassNames(\r\n classMap.actions,\r\n actionsClassName,\r\n )}\r\n >\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={combineClassNames(\r\n classMap.action_button,\r\n actionButtonClassName,\r\n )}\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={combineClassNames(\r\n classMap.action_button,\r\n actionButtonClassName,\r\n )}\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","import React from \"react\";\r\nimport CardBase from \"../CardBase\";\r\nimport \"./Card.scss\";\r\nimport Button from \"../../Button/core/Button\";\r\nimport IconButton from \"../../IconButton/core/IconButton\";\r\nimport Skeleton from \"../../Skeleton/core/Skeleton\";\r\nimport { CardProps } from \"../Card.types\";\r\n\r\nconst classes = {\r\n card: \"card\",\r\n\r\n left: \"card_left\",\r\n right: \"card_right\",\r\n center: \"card_center\",\r\n\r\n primary: \"card_primary\",\r\n secondary: \"card_secondary\",\r\n tertiary: \"card_tertiary\",\r\n quaternary: \"card_quaternary\",\r\n\r\n success: \"card_success\",\r\n warning: \"card_warning\",\r\n error: \"card_error\",\r\n\r\n clear: \"card_clear\",\r\n\r\n outline: \"card_outline\",\r\n loading: \"card_loading\",\r\n\r\n content: \"card_content\",\r\n\r\n xs: \"card_xs\",\r\n small: \"card_small\",\r\n medium: \"card_medium\",\r\n large: \"card_large\",\r\n xl: \"card_xl\",\r\n\r\n shadowNone: \"card_shadow-None\",\r\n shadowLight: \"card_shadow-Light\",\r\n shadowMedium: \"card_shadow-Medium\",\r\n shadowStrong: \"card_shadow-Strong\",\r\n shadowIntense: \"card_shadow-Intense\",\r\n\r\n roundNone: \"card_round-None\",\r\n roundSmall: \"card_round-Small\",\r\n roundMedium: \"card_round-Medium\",\r\n roundLarge: \"card_round-Large\",\r\n\r\n borderNone: \"card_border-None\",\r\n borderXs: \"card_border-Xs\",\r\n borderSmall: \"card_border-Small\",\r\n borderMedium: \"card_border-Medium\",\r\n borderLarge: \"card_border-Large\",\r\n borderXl: \"card_border-Xl\",\r\n\r\n vertical: \"card_vertical\",\r\n horizontal: \"card_horizontal\",\r\n\r\n image: \"card_image\",\r\n header: \"card_header\",\r\n title: \"card_title\",\r\n icon: \"card_icon\",\r\n body: \"card_body\",\r\n description: \"card_description\",\r\n children: \"card_children\",\r\n footer: \"card_footer\",\r\n actions: \"card_actions\",\r\n action_button: \"card_action_button\",\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={classes}\r\n SkeletonComponent={Skeleton}\r\n />\r\n );\r\n};\r\nCard.displayName = \"Card\";\r\nexport default Card;\r\n"],"names":["getDefaultTheme","getDefaultBorder","getDefaultRounding","getDefaultShadow","getDefaultSize","useId","jsx","useMemo","combineClassNames","capitalize","jsxs","Fragment","Button","IconButton","Skeleton"],"mappings":"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"}
|
package/dist/core/Card.cjs.js
CHANGED
package/dist/core/Card.js
CHANGED