@ikatec/nebula-react 1.5.1-beta.1 → 1.6.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -515,6 +515,8 @@ interface LinkProps extends React__default.AnchorHTMLAttributes<HTMLAnchorElemen
515
515
  size?: 'md' | 'sm';
516
516
  asChild?: boolean;
517
517
  children: ReactNode;
518
+ variant?: 'default' | 'external';
519
+ disabled?: boolean;
518
520
  }
519
521
  declare const Link: React__default.ForwardRefExoticComponent<LinkProps & React__default.RefAttributes<HTMLAnchorElement>>;
520
522
 
package/dist/index.d.ts CHANGED
@@ -515,6 +515,8 @@ interface LinkProps extends React__default.AnchorHTMLAttributes<HTMLAnchorElemen
515
515
  size?: 'md' | 'sm';
516
516
  asChild?: boolean;
517
517
  children: ReactNode;
518
+ variant?: 'default' | 'external';
519
+ disabled?: boolean;
518
520
  }
519
521
  declare const Link: React__default.ForwardRefExoticComponent<LinkProps & React__default.RefAttributes<HTMLAnchorElement>>;
520
522
 
package/dist/index.js CHANGED
@@ -3458,19 +3458,89 @@ var Caption = React31.forwardRef(
3458
3458
  }
3459
3459
  );
3460
3460
  Caption.displayName = "Caption";
3461
+ var linkVariantsConfig = classVarianceAuthority.cva(
3462
+ `
3463
+ cursor-pointer
3464
+ inline-flex
3465
+ items-center
3466
+ transition-colors
3467
+ focus-visible:outline-none
3468
+ focus-visible:underline
3469
+ hover:underline
3470
+ `,
3471
+ {
3472
+ variants: {
3473
+ variant: {
3474
+ default: `
3475
+ text-typography-link-default-color
3476
+ hover:text-typography-link-default-hover
3477
+ active:text-typography-link-default-active
3478
+ aria-disabled:text-typography-link-default-disabled
3479
+ `,
3480
+ external: `
3481
+ text-typography-link-external-color
3482
+ hover:text-typography-link-external-hover
3483
+ active:text-typography-link-external-active
3484
+ aria-disabled:text-typography-link-external-disabled
3485
+ `
3486
+ },
3487
+ size: {
3488
+ md: `
3489
+ text-link-md
3490
+ tracking-link-md
3491
+ font-link-md
3492
+ leading-link-md
3493
+ `,
3494
+ sm: `
3495
+ text-link-sm
3496
+ tracking-link-sm
3497
+ font-link-sm
3498
+ leading-link-sm
3499
+ `
3500
+ }
3501
+ },
3502
+ defaultVariants: {
3503
+ variant: "default",
3504
+ size: "md"
3505
+ }
3506
+ }
3507
+ );
3461
3508
  var Link = React31.forwardRef(
3462
- ({ className, size: size4 = "md", asChild = false, ...rest }, ref) => {
3509
+ ({
3510
+ className,
3511
+ size: size4 = "md",
3512
+ asChild = false,
3513
+ variant: variant3 = "default",
3514
+ disabled = false,
3515
+ ...rest
3516
+ }, ref) => {
3517
+ const Comp = asChild ? reactSlot.Slot : "a";
3463
3518
  const classNames = cn(
3464
- "cursor-pointer",
3465
- {
3466
- "text-typography-link-md text-link-md tracking-link-md font-link-md leading-link-md underline": size4 === "md",
3467
- "text-typography-link-sm text-link-sm tracking-link-sm font-link-sm leading-link-sm underline": size4 === "sm"
3468
- },
3469
- "hover:text-typography-link-hover",
3519
+ linkVariantsConfig({
3520
+ size: size4,
3521
+ variant: variant3
3522
+ }),
3470
3523
  className
3471
3524
  );
3472
- if (!asChild) return /* @__PURE__ */ jsxRuntime.jsx("a", { ...rest, className: classNames, ref });
3473
- return /* @__PURE__ */ jsxRuntime.jsx(reactSlot.Slot, { ...rest, className: classNames, ref });
3525
+ const linkContent = /* @__PURE__ */ jsxRuntime.jsx(
3526
+ Comp,
3527
+ {
3528
+ ...rest,
3529
+ ref,
3530
+ className: cn(
3531
+ linkVariantsConfig({
3532
+ size: size4,
3533
+ variant: variant3
3534
+ }),
3535
+ className
3536
+ )
3537
+ }
3538
+ );
3539
+ if (!disabled) return linkContent;
3540
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "nebula-ds cursor-not-allowed", children: React31__namespace.default.cloneElement(linkContent, {
3541
+ className: cn(classNames, "pointer-events-none"),
3542
+ "aria-disabled": true
3543
+ }) });
3474
3544
  }
3475
3545
  );
3476
3546
  Link.displayName = "Link";
package/dist/index.mjs CHANGED
@@ -3415,19 +3415,89 @@ var Caption = forwardRef(
3415
3415
  }
3416
3416
  );
3417
3417
  Caption.displayName = "Caption";
3418
+ var linkVariantsConfig = cva(
3419
+ `
3420
+ cursor-pointer
3421
+ inline-flex
3422
+ items-center
3423
+ transition-colors
3424
+ focus-visible:outline-none
3425
+ focus-visible:underline
3426
+ hover:underline
3427
+ `,
3428
+ {
3429
+ variants: {
3430
+ variant: {
3431
+ default: `
3432
+ text-typography-link-default-color
3433
+ hover:text-typography-link-default-hover
3434
+ active:text-typography-link-default-active
3435
+ aria-disabled:text-typography-link-default-disabled
3436
+ `,
3437
+ external: `
3438
+ text-typography-link-external-color
3439
+ hover:text-typography-link-external-hover
3440
+ active:text-typography-link-external-active
3441
+ aria-disabled:text-typography-link-external-disabled
3442
+ `
3443
+ },
3444
+ size: {
3445
+ md: `
3446
+ text-link-md
3447
+ tracking-link-md
3448
+ font-link-md
3449
+ leading-link-md
3450
+ `,
3451
+ sm: `
3452
+ text-link-sm
3453
+ tracking-link-sm
3454
+ font-link-sm
3455
+ leading-link-sm
3456
+ `
3457
+ }
3458
+ },
3459
+ defaultVariants: {
3460
+ variant: "default",
3461
+ size: "md"
3462
+ }
3463
+ }
3464
+ );
3418
3465
  var Link = forwardRef(
3419
- ({ className, size: size4 = "md", asChild = false, ...rest }, ref) => {
3466
+ ({
3467
+ className,
3468
+ size: size4 = "md",
3469
+ asChild = false,
3470
+ variant: variant3 = "default",
3471
+ disabled = false,
3472
+ ...rest
3473
+ }, ref) => {
3474
+ const Comp = asChild ? Slot : "a";
3420
3475
  const classNames = cn(
3421
- "cursor-pointer",
3422
- {
3423
- "text-typography-link-md text-link-md tracking-link-md font-link-md leading-link-md underline": size4 === "md",
3424
- "text-typography-link-sm text-link-sm tracking-link-sm font-link-sm leading-link-sm underline": size4 === "sm"
3425
- },
3426
- "hover:text-typography-link-hover",
3476
+ linkVariantsConfig({
3477
+ size: size4,
3478
+ variant: variant3
3479
+ }),
3427
3480
  className
3428
3481
  );
3429
- if (!asChild) return /* @__PURE__ */ jsx("a", { ...rest, className: classNames, ref });
3430
- return /* @__PURE__ */ jsx(Slot, { ...rest, className: classNames, ref });
3482
+ const linkContent = /* @__PURE__ */ jsx(
3483
+ Comp,
3484
+ {
3485
+ ...rest,
3486
+ ref,
3487
+ className: cn(
3488
+ linkVariantsConfig({
3489
+ size: size4,
3490
+ variant: variant3
3491
+ }),
3492
+ className
3493
+ )
3494
+ }
3495
+ );
3496
+ if (!disabled) return linkContent;
3497
+ return /* @__PURE__ */ jsx("span", { className: "nebula-ds cursor-not-allowed", children: React31__default.cloneElement(linkContent, {
3498
+ className: cn(classNames, "pointer-events-none"),
3499
+ "aria-disabled": true
3500
+ }) });
3431
3501
  }
3432
3502
  );
3433
3503
  Link.displayName = "Link";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ikatec/nebula-react",
3
- "version": "1.5.1-beta.1",
3
+ "version": "1.6.0-beta.1",
4
4
  "description": "React components for Nebula Design System",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -30,7 +30,7 @@
30
30
  "@babel/preset-react": "^7.26.3",
31
31
  "@babel/preset-typescript": "^7.27.0",
32
32
  "@ikatec/eslint-config": "*",
33
- "@ikatec/nebula-tokens": "1.4.0",
33
+ "@ikatec/nebula-tokens": "1.5.0-beta.1",
34
34
  "@ikatec/typescript-config": "*",
35
35
  "ts-node": "^10.9.2",
36
36
  "tsup": "^8.3.5",