boreal-ui 0.0.884 → 0.0.886

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.
Files changed (55) hide show
  1. package/dist/core/{Card-BTrF1W-e.js → Card-BGx1_N5A.js} +125 -72
  2. package/dist/core/Card-BGx1_N5A.js.map +1 -0
  3. package/dist/core/{Card-Ha3HknHh.cjs → Card-D9dQ1jar.cjs} +125 -72
  4. package/dist/core/Card-D9dQ1jar.cjs.map +1 -0
  5. package/dist/core/Card.cjs.js +1 -1
  6. package/dist/core/Card.js +1 -1
  7. package/dist/core/DataTable-BB7nx-un.js +357 -0
  8. package/dist/core/DataTable-BB7nx-un.js.map +1 -0
  9. package/dist/core/DataTable-Blz-v6wp.cjs +356 -0
  10. package/dist/core/DataTable-Blz-v6wp.cjs.map +1 -0
  11. package/dist/core/DataTable.cjs.js +1 -1
  12. package/dist/core/DataTable.css +101 -56
  13. package/dist/core/DataTable.js +1 -1
  14. package/dist/core/index.cjs.js +271 -7
  15. package/dist/core/index.cjs.js.map +1 -1
  16. package/dist/core/index.js +271 -7
  17. package/dist/core/index.js.map +1 -1
  18. package/dist/generated-docs/Avatar.props.js +228 -0
  19. package/dist/generated-docs/Button.props.js +268 -0
  20. package/dist/generated-docs/Card.props.js +452 -0
  21. package/dist/generated-docs/Chip.props.js +188 -0
  22. package/dist/generated-docs/DataTable.props.js +300 -0
  23. package/dist/generated-docs/Footer.props.js +380 -0
  24. package/dist/generated-docs/IconButton.props.js +316 -0
  25. package/dist/next/{Card-D2jWnTzN.js → Card-BmAdA56_.js} +125 -72
  26. package/dist/next/Card-BmAdA56_.js.map +1 -0
  27. package/dist/next/Card.js +1 -1
  28. package/dist/next/DataTable-l98woAcr.js +387 -0
  29. package/dist/next/DataTable-l98woAcr.js.map +1 -0
  30. package/dist/next/DataTable.css +133 -88
  31. package/dist/next/DataTable.js +1 -1
  32. package/dist/next/index.js +271 -7
  33. package/dist/next/index.js.map +1 -1
  34. package/dist/tsconfig.build.tsbuildinfo +1 -1
  35. package/dist/types/components/Card/Card.types.d.ts +22 -6
  36. package/dist/types/components/Card/Card.types.d.ts.map +1 -1
  37. package/dist/types/components/Card/CardBase.d.ts.map +1 -1
  38. package/dist/types/components/DataTable/DataTable.types.d.ts +61 -0
  39. package/dist/types/components/DataTable/DataTable.types.d.ts.map +1 -1
  40. package/dist/types/components/DataTable/DataTableBase.d.ts +1 -1
  41. package/dist/types/components/DataTable/DataTableBase.d.ts.map +1 -1
  42. package/dist/types/components/DataTable/core/DataTable.d.ts.map +1 -1
  43. package/dist/types/generated-docs/Card.props.d.ts.map +1 -1
  44. package/dist/types/generated-docs/DataTable.props.d.ts.map +1 -1
  45. package/dist/types/generated-docs/Footer.props.d.ts.map +1 -1
  46. package/package.json +1 -1
  47. package/dist/core/Card-BTrF1W-e.js.map +0 -1
  48. package/dist/core/Card-Ha3HknHh.cjs.map +0 -1
  49. package/dist/core/DataTable-6f7j0ahI.cjs +0 -313
  50. package/dist/core/DataTable-6f7j0ahI.cjs.map +0 -1
  51. package/dist/core/DataTable-BC8BOwEL.js +0 -314
  52. package/dist/core/DataTable-BC8BOwEL.js.map +0 -1
  53. package/dist/next/Card-D2jWnTzN.js.map +0 -1
  54. package/dist/next/DataTable-F9mtABNi.js +0 -339
  55. 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("div", { className: classMap.media, children: /* @__PURE__ */ jsx(
168
- ImageRenderer,
174
+ ) : /* @__PURE__ */ jsxs("div", { className: combineClassNames(classMap.content, contentClassName), children: [
175
+ hasImage && imgSrc && (imageFill ? /* @__PURE__ */ jsx(
176
+ "div",
169
177
  {
170
- src: imgSrc,
171
- alt: imgAlt,
172
- className: combineClassNames(classMap.image, imageClassName),
173
- fill: true
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
- ) }) : /* @__PURE__ */ jsx(
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("h2", { className: classMap.title, children: [
192
- cardIcon && /* @__PURE__ */ jsx(
193
- "span",
194
- {
195
- className: classMap.icon,
196
- "aria-hidden": "true",
197
- "data-testid": `${testId}-icon`,
198
- children: React.createElement(cardIcon)
199
- }
200
- ),
201
- title
202
- ] }) : null
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: classMap.description,
236
+ className: combineClassNames(
237
+ classMap.description,
238
+ descriptionClassName
239
+ ),
211
240
  children: description
212
241
  }
213
242
  ),
214
- children && /* @__PURE__ */ jsx("div", { className: classMap.children, children })
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("div", { className: classMap.actions, children: actionButtons.map(
222
- (button, index) => useIconButtons && button.icon ? /* @__PURE__ */ jsx(
223
- button.iconButtonComponent,
224
- {
225
- icon: button.icon,
226
- onClick: button.onClick,
227
- className: classMap.action_button,
228
- theme: button.theme || "clear",
229
- state: button.state || "",
230
- "aria-label": button["aria-label"] || button.label,
231
- "aria-describedby": button["aria-describedby"],
232
- "aria-labelledby": button["aria-labelledby"],
233
- "aria-pressed": button["aria-pressed"],
234
- "aria-expanded": button["aria-expanded"],
235
- "aria-controls": button["aria-controls"],
236
- "aria-current": button["aria-current"],
237
- role: button.role,
238
- title: button.title,
239
- size: button.size || size,
240
- href: button.href,
241
- loading: button.loading,
242
- disabled: button.disabled
243
- },
244
- index
245
- ) : /* @__PURE__ */ jsx(
246
- button.buttonComponent,
247
- {
248
- onClick: button.onClick,
249
- className: classMap.action_button,
250
- theme: button.theme || "secondary",
251
- state: button.state || "",
252
- href: button.href,
253
- loading: button.loading,
254
- size: button.size || size,
255
- "aria-label": button["aria-label"] || button.label,
256
- "aria-describedby": button["aria-describedby"],
257
- "aria-labelledby": button["aria-labelledby"],
258
- "aria-pressed": button["aria-pressed"],
259
- "aria-expanded": button["aria-expanded"],
260
- "aria-controls": button["aria-controls"],
261
- "aria-current": button["aria-current"],
262
- role: button.role,
263
- title: button.title,
264
- disabled: button.disabled,
265
- children: button.label
266
- },
267
- index
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-BTrF1W-e.js.map
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("div", { className: classMap.media, children: /* @__PURE__ */ jsxRuntime.jsx(
169
- ImageRenderer,
175
+ ) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: classNames.combineClassNames(classMap.content, contentClassName), children: [
176
+ hasImage && imgSrc && (imageFill ? /* @__PURE__ */ jsxRuntime.jsx(
177
+ "div",
170
178
  {
171
- src: imgSrc,
172
- alt: imgAlt,
173
- className: classNames.combineClassNames(classMap.image, imageClassName),
174
- fill: true
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
- ) }) : /* @__PURE__ */ jsxRuntime.jsx(
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("h2", { className: classMap.title, children: [
193
- cardIcon && /* @__PURE__ */ jsxRuntime.jsx(
194
- "span",
195
- {
196
- className: classMap.icon,
197
- "aria-hidden": "true",
198
- "data-testid": `${testId}-icon`,
199
- children: React.createElement(cardIcon)
200
- }
201
- ),
202
- title
203
- ] }) : null
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: classMap.description,
237
+ className: classNames.combineClassNames(
238
+ classMap.description,
239
+ descriptionClassName
240
+ ),
212
241
  children: description
213
242
  }
214
243
  ),
215
- children && /* @__PURE__ */ jsxRuntime.jsx("div", { className: classMap.children, children })
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("div", { className: classMap.actions, children: actionButtons.map(
223
- (button, index) => useIconButtons && button.icon ? /* @__PURE__ */ jsxRuntime.jsx(
224
- button.iconButtonComponent,
225
- {
226
- icon: button.icon,
227
- onClick: button.onClick,
228
- className: classMap.action_button,
229
- theme: button.theme || "clear",
230
- state: button.state || "",
231
- "aria-label": button["aria-label"] || button.label,
232
- "aria-describedby": button["aria-describedby"],
233
- "aria-labelledby": button["aria-labelledby"],
234
- "aria-pressed": button["aria-pressed"],
235
- "aria-expanded": button["aria-expanded"],
236
- "aria-controls": button["aria-controls"],
237
- "aria-current": button["aria-current"],
238
- role: button.role,
239
- title: button.title,
240
- size: button.size || size,
241
- href: button.href,
242
- loading: button.loading,
243
- disabled: button.disabled
244
- },
245
- index
246
- ) : /* @__PURE__ */ jsxRuntime.jsx(
247
- button.buttonComponent,
248
- {
249
- onClick: button.onClick,
250
- className: classMap.action_button,
251
- theme: button.theme || "secondary",
252
- state: button.state || "",
253
- href: button.href,
254
- loading: button.loading,
255
- size: button.size || size,
256
- "aria-label": button["aria-label"] || button.label,
257
- "aria-describedby": button["aria-describedby"],
258
- "aria-labelledby": button["aria-labelledby"],
259
- "aria-pressed": button["aria-pressed"],
260
- "aria-expanded": button["aria-expanded"],
261
- "aria-controls": button["aria-controls"],
262
- "aria-current": button["aria-current"],
263
- role: button.role,
264
- title: button.title,
265
- disabled: button.disabled,
266
- children: button.label
267
- },
268
- index
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-Ha3HknHh.cjs.map
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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"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const Card = require("./Card-Ha3HknHh.cjs");
2
+ const Card = require("./Card-D9dQ1jar.cjs");
3
3
  module.exports = Card.Card;
4
4
  //# sourceMappingURL=Card.cjs.js.map
package/dist/core/Card.js CHANGED
@@ -1,4 +1,4 @@
1
- import { C } from "./Card-BTrF1W-e.js";
1
+ import { C } from "./Card-BGx1_N5A.js";
2
2
  export {
3
3
  C as default
4
4
  };