@aortl/admin-react 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Card.d.ts CHANGED
@@ -1,6 +1,9 @@
1
1
  import { ComponentProps, ReactNode } from 'react';
2
2
  import { IconProp } from './icon';
3
+ export type CardVariant = "default" | "muted" | "primary" | "info" | "success" | "warning" | "danger";
3
4
  export interface CardContainerProps extends ComponentProps<"div"> {
5
+ /** Tinted surface + matching border. Defaults to the neutral surface. */
6
+ variant?: CardVariant;
4
7
  bordered?: boolean;
5
8
  compact?: boolean;
6
9
  }
@@ -8,8 +11,10 @@ export interface CardContainerProps extends ComponentProps<"div"> {
8
11
  * The bare `.card` container — no body, no title. Use this when you need to
9
12
  * compose the internals yourself (e.g. a media block above the body).
10
13
  */
11
- declare function CardContainer({ bordered, compact, className, ...rest }: CardContainerProps): import("react/jsx-runtime").JSX.Element;
14
+ declare function CardContainer({ variant, bordered, compact, className, ...rest }: CardContainerProps): import("react/jsx-runtime").JSX.Element;
12
15
  export interface CardProps extends Omit<ComponentProps<"div">, "title"> {
16
+ /** Tinted surface + matching border. Defaults to the neutral surface. */
17
+ variant?: CardVariant;
13
18
  bordered?: boolean;
14
19
  compact?: boolean;
15
20
  /** Leading icon for the title row. */
@@ -28,7 +33,7 @@ export interface CardProps extends Omit<ComponentProps<"div">, "title"> {
28
33
  * an optional title (with icon), description, children, and actions. For
29
34
  * anything outside that shape, use `<Card.Container>` and compose by hand.
30
35
  */
31
- declare function CardRoot({ bordered, compact, icon, title, description, toolbar, actions, className, children, ...rest }: CardProps): import("react/jsx-runtime").JSX.Element;
36
+ declare function CardRoot({ variant, bordered, compact, icon, title, description, toolbar, actions, className, children, ...rest }: CardProps): import("react/jsx-runtime").JSX.Element;
32
37
  export type CardBodyProps = ComponentProps<"div">;
33
38
  declare function CardBody({ className, ...rest }: CardBodyProps): import("react/jsx-runtime").JSX.Element;
34
39
  export type CardHeaderProps = ComponentProps<"div">;
@@ -1 +1 @@
1
- {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../src/Card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEnD,MAAM,WAAW,kBAAmB,SAAQ,cAAc,CAAC,KAAK,CAAC;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,iBAAS,aAAa,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,kBAAkB,2CAOnF;AAED,MAAM,WAAW,SAAU,SAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sCAAsC;IACtC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,iCAAiC;IACjC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,uCAAuC;IACvC,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,mCAAmC;IACnC,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAED;;;;GAIG;AACH,iBAAS,QAAQ,CAAC,EAChB,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,KAAK,EACL,WAAW,EACX,OAAO,EACP,OAAO,EACP,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,SAAS,2CAoBX;AAED,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAClD,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,aAAa,2CAEtD;AAED,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AACpD,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,eAAe,2CAE1D;AAED,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AACrD,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,gBAAgB,2CAE5D;AAED,MAAM,WAAW,cAAe,SAAQ,cAAc,CAAC,IAAI,CAAC;IAC1D,oBAAoB;IACpB,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AACD,iBAAS,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,2CAOxE;AAED,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;AACvD,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,oBAAoB,2CAEpE;AAED,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AACrD,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,gBAAgB,2CAE5D;AAED,eAAO,MAAM,IAAI;;;;;;;;CAQf,CAAC"}
1
+ {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../src/Card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEnD,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,OAAO,GACP,SAAS,GACT,MAAM,GACN,SAAS,GACT,SAAS,GACT,QAAQ,CAAC;AAEb,MAAM,WAAW,kBAAmB,SAAQ,cAAc,CAAC,KAAK,CAAC;IAC/D,yEAAyE;IACzE,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,iBAAS,aAAa,CAAC,EACrB,OAAmB,EACnB,QAAQ,EACR,OAAO,EACP,SAAS,EACT,GAAG,IAAI,EACR,EAAE,kBAAkB,2CAepB;AAED,MAAM,WAAW,SAAU,SAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACrE,yEAAyE;IACzE,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sCAAsC;IACtC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,iCAAiC;IACjC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,uCAAuC;IACvC,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,mCAAmC;IACnC,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAED;;;;GAIG;AACH,iBAAS,QAAQ,CAAC,EAChB,OAAO,EACP,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,KAAK,EACL,WAAW,EACX,OAAO,EACP,OAAO,EACP,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,SAAS,2CA0BX;AAED,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAClD,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,aAAa,2CAEtD;AAED,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AACpD,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,eAAe,2CAE1D;AAED,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AACrD,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,gBAAgB,2CAE5D;AAED,MAAM,WAAW,cAAe,SAAQ,cAAc,CAAC,IAAI,CAAC;IAC1D,oBAAoB;IACpB,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AACD,iBAAS,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,2CAOxE;AAED,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;AACvD,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,oBAAoB,2CAEpE;AAED,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AACrD,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,gBAAgB,2CAE5D;AAED,eAAO,MAAM,IAAI;;;;;;;;CAQf,CAAC"}
@@ -1,6 +1,9 @@
1
1
  import { ComponentProps, ReactNode } from 'react';
2
+ import { CardVariant } from './Card';
2
3
  import { IconProp } from './icon';
3
4
  export interface StatCardProps extends Omit<ComponentProps<"div">, "label"> {
5
+ /** Tinted surface + matching border, shared with `<Card>`. The value picks up the accent (except `warning`). Defaults to the neutral surface. */
6
+ variant?: CardVariant;
4
7
  /** Small annotation above the value (e.g. "Total Generations"). */
5
8
  label?: ReactNode;
6
9
  /** The headline metric. Rendered with `tabular-nums` so digits don't shift between values. */
@@ -13,10 +16,12 @@ export interface StatCardProps extends Omit<ComponentProps<"div">, "label"> {
13
16
  bordered?: boolean;
14
17
  }
15
18
  /**
16
- * Compact KPI tile — `label / value / detail`. Outer chrome matches `<Card>`
17
- * (border, radius, shadow) but the inner shape inverts the visual hierarchy:
18
- * value dominates, label is the small annotation. For free-form tiles, use
19
- * `<Card>`; for label/value tables, use `<PropertyList>`.
19
+ * Compact KPI tile — `label / value / detail`. Renders a `.card` shell (so it
20
+ * shares the surface, border, radius, shadow, and every card modifier) with an
21
+ * inverted inner hierarchy: the value dominates, the label is a small
22
+ * annotation. `compact`/`bordered` map to the shared `.card-compact`/
23
+ * `.card-bordered` modifiers. For free-form tiles, use `<Card>`; for
24
+ * label/value tables, use `<PropertyList>`.
20
25
  */
21
- export declare function StatCard({ label, value, detail, icon, compact, bordered, className, children, ...rest }: StatCardProps): import("react/jsx-runtime").JSX.Element;
26
+ export declare function StatCard({ variant, label, value, detail, icon, compact, bordered, className, children, ...rest }: StatCardProps): import("react/jsx-runtime").JSX.Element;
22
27
  //# sourceMappingURL=StatCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatCard.d.ts","sourceRoot":"","sources":["../src/StatCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEnD,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzE,mEAAmE;IACnE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,8FAA8F;IAC9F,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,qCAAqC;IACrC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,KAAK,EACL,MAAM,EACN,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,aAAa,2CAqBf"}
1
+ {"version":3,"file":"StatCard.d.ts","sourceRoot":"","sources":["../src/StatCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE1C,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEnD,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzE,iJAAiJ;IACjJ,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,mEAAmE;IACnE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,8FAA8F;IAC9F,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,qCAAqC;IACrC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,EACvB,OAAmB,EACnB,KAAK,EACL,KAAK,EACL,MAAM,EACN,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,aAAa,2CA2Bf"}
@@ -2291,7 +2291,7 @@
2291
2291
  border-style: var(--tw-border-style);
2292
2292
  border-width: 1px;
2293
2293
  border-color: var(--color-border);
2294
- background-color: var(--color-surface);
2294
+ background-color: var(--color-surface-strong);
2295
2295
  color: var(--color-text);
2296
2296
  --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));
2297
2297
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
@@ -2347,19 +2347,44 @@
2347
2347
  --tw-shadow: 0 0 #0000;
2348
2348
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2349
2349
  }
2350
+ :scope._ao-card-muted, :scope ._ao-card-muted {
2351
+ background-color: var(--color-surface);
2352
+ }
2353
+ :scope._ao-card-primary, :scope ._ao-card-primary {
2354
+ border-color: var(--color-primary-muted);
2355
+ background-color: var(--color-primary-muted);
2356
+ }
2357
+ :scope._ao-card-info, :scope ._ao-card-info {
2358
+ border-color: var(--color-info-muted);
2359
+ background-color: var(--color-info-muted);
2360
+ }
2361
+ :scope._ao-card-success, :scope ._ao-card-success {
2362
+ border-color: var(--color-success-muted);
2363
+ background-color: var(--color-success-muted);
2364
+ }
2365
+ :scope._ao-card-warning, :scope ._ao-card-warning {
2366
+ border-color: var(--color-warning-muted);
2367
+ background-color: var(--color-warning-muted);
2368
+ }
2369
+ :scope._ao-card-danger, :scope ._ao-card-danger {
2370
+ border-color: var(--color-danger-muted);
2371
+ background-color: var(--color-danger-muted);
2372
+ }
2373
+ :scope._ao-card-primary ._ao-card-title, :scope ._ao-card-primary ._ao-card-title {
2374
+ color: var(--color-primary);
2375
+ }
2376
+ :scope._ao-card-info ._ao-card-title, :scope ._ao-card-info ._ao-card-title {
2377
+ color: var(--color-info);
2378
+ }
2379
+ :scope._ao-card-success ._ao-card-title, :scope ._ao-card-success ._ao-card-title {
2380
+ color: var(--color-success);
2381
+ }
2382
+ :scope._ao-card-danger ._ao-card-title, :scope ._ao-card-danger ._ao-card-title {
2383
+ color: var(--color-danger);
2384
+ }
2350
2385
  :scope._ao-stat-card, :scope ._ao-stat-card {
2351
- display: flex;
2352
- flex-direction: column;
2353
2386
  gap: calc(var(--spacing) * 1);
2354
- border-radius: var(--radius-xl);
2355
- border-style: var(--tw-border-style);
2356
- border-width: 1px;
2357
- border-color: var(--color-border);
2358
- background-color: var(--color-surface);
2359
2387
  padding: calc(var(--spacing) * 4);
2360
- color: var(--color-text);
2361
- --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));
2362
- box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2363
2388
  }
2364
2389
  :scope._ao-stat-card-label, :scope ._ao-stat-card-label {
2365
2390
  display: flex;
@@ -2386,14 +2411,21 @@
2386
2411
  line-height: var(--tw-leading, var(--text-sm--line-height));
2387
2412
  color: var(--color-text-muted);
2388
2413
  }
2389
- :scope._ao-stat-card-compact, :scope ._ao-stat-card-compact {
2414
+ :scope._ao-card-compact._ao-stat-card, :scope ._ao-card-compact._ao-stat-card {
2390
2415
  gap: calc(var(--spacing) * 0.5);
2391
2416
  padding: calc(var(--spacing) * 3);
2392
2417
  }
2393
- :scope._ao-stat-card-bordered, :scope ._ao-stat-card-bordered {
2394
- border-color: var(--color-border-strong);
2395
- --tw-shadow: 0 0 #0000;
2396
- box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2418
+ :scope._ao-card-primary ._ao-stat-card-value, :scope ._ao-card-primary ._ao-stat-card-value {
2419
+ color: var(--color-primary);
2420
+ }
2421
+ :scope._ao-card-info ._ao-stat-card-value, :scope ._ao-card-info ._ao-stat-card-value {
2422
+ color: var(--color-info);
2423
+ }
2424
+ :scope._ao-card-success ._ao-stat-card-value, :scope ._ao-card-success ._ao-stat-card-value {
2425
+ color: var(--color-success);
2426
+ }
2427
+ :scope._ao-card-danger ._ao-stat-card-value, :scope ._ao-card-danger ._ao-stat-card-value {
2428
+ color: var(--color-danger);
2397
2429
  }
2398
2430
  :scope._ao-dialog, :scope ._ao-dialog {
2399
2431
  margin: auto;
package/dist/index.cjs CHANGED
@@ -998,10 +998,11 @@ function Container({ size = "md", compact, className, ...rest }) {
998
998
  * The bare `.card` container — no body, no title. Use this when you need to
999
999
  * compose the internals yourself (e.g. a media block above the body).
1000
1000
  */
1001
- function CardContainer({ bordered, compact, className, ...rest }) {
1001
+ function CardContainer({ variant = "default", bordered, compact, className, ...rest }) {
1002
1002
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1003
1003
  className: cn([
1004
1004
  "card",
1005
+ variant !== "default" && `card-${variant}`,
1005
1006
  bordered && "card-bordered",
1006
1007
  compact && "card-compact"
1007
1008
  ], className),
@@ -1013,12 +1014,13 @@ function CardContainer({ bordered, compact, className, ...rest }) {
1013
1014
  * an optional title (with icon), description, children, and actions. For
1014
1015
  * anything outside that shape, use `<Card.Container>` and compose by hand.
1015
1016
  */
1016
- function CardRoot({ bordered, compact, icon, title, description, toolbar, actions, className, children, ...rest }) {
1017
+ function CardRoot({ variant, bordered, compact, icon, title, description, toolbar, actions, className, children, ...rest }) {
1017
1018
  const titleEl = icon !== void 0 || title !== void 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CardTitle, {
1018
1019
  icon,
1019
1020
  children: title
1020
1021
  }) : null;
1021
1022
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CardContainer, {
1023
+ variant,
1022
1024
  bordered,
1023
1025
  compact,
1024
1026
  className,
@@ -1080,18 +1082,22 @@ var Card = Object.assign(CardRoot, {
1080
1082
  //#endregion
1081
1083
  //#region src/StatCard.tsx
1082
1084
  /**
1083
- * Compact KPI tile — `label / value / detail`. Outer chrome matches `<Card>`
1084
- * (border, radius, shadow) but the inner shape inverts the visual hierarchy:
1085
- * value dominates, label is the small annotation. For free-form tiles, use
1086
- * `<Card>`; for label/value tables, use `<PropertyList>`.
1085
+ * Compact KPI tile — `label / value / detail`. Renders a `.card` shell (so it
1086
+ * shares the surface, border, radius, shadow, and every card modifier) with an
1087
+ * inverted inner hierarchy: the value dominates, the label is a small
1088
+ * annotation. `compact`/`bordered` map to the shared `.card-compact`/
1089
+ * `.card-bordered` modifiers. For free-form tiles, use `<Card>`; for
1090
+ * label/value tables, use `<PropertyList>`.
1087
1091
  */
1088
- function StatCard({ label, value, detail, icon, compact, bordered, className, children, ...rest }) {
1092
+ function StatCard({ variant = "default", label, value, detail, icon, compact, bordered, className, children, ...rest }) {
1089
1093
  const hasLabel = icon !== void 0 || label !== void 0;
1090
1094
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1091
1095
  className: cn([
1096
+ "card",
1092
1097
  "stat-card",
1093
- compact && "stat-card-compact",
1094
- bordered && "stat-card-bordered"
1098
+ variant !== "default" && `card-${variant}`,
1099
+ compact && "card-compact",
1100
+ bordered && "card-bordered"
1095
1101
  ], className),
1096
1102
  ...rest,
1097
1103
  children: [