@capra/core 1.11.1 → 1.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/index.cjs +55 -91
- package/dist/index.d.cts +20 -16
- package/dist/index.d.mts +20 -16
- package/dist/index.mjs +55 -91
- package/dist/style.css +196 -218
- package/docs/core-menu--usage.md +1 -1
- package/docs/core-tabnav--design.md +2 -0
- package/docs/core-tabnav--usage.md +21 -3
- package/docs/history-changelogs-capra-core--docs.md +16 -0
- package/package.json +3 -3
package/dist/style.css
CHANGED
|
@@ -3444,7 +3444,7 @@ input:disabled + .capra-Radio-module-ZI7rzq-inner:after {
|
|
|
3444
3444
|
.capra-Toast-module-p7lQQG-toast[data-type="error"] {
|
|
3445
3445
|
--_cds-toast-icon-color: var(--cds2-color-foreground-danger-default);
|
|
3446
3446
|
}
|
|
3447
|
-
.capra-Menu-module-
|
|
3447
|
+
.capra-Menu-module-HIhAFW-menu, .capra-Menu-module-HIhAFW-list {
|
|
3448
3448
|
gap: var(--cds2-spacing-xs);
|
|
3449
3449
|
box-sizing: border-box;
|
|
3450
3450
|
min-width: 152px;
|
|
@@ -3454,29 +3454,29 @@ input:disabled + .capra-Radio-module-ZI7rzq-inner:after {
|
|
|
3454
3454
|
flex-direction: column;
|
|
3455
3455
|
display: flex;
|
|
3456
3456
|
overflow: auto;
|
|
3457
|
-
}
|
|
3458
3457
|
|
|
3459
|
-
|
|
3460
|
-
|
|
3461
|
-
}
|
|
3458
|
+
& > :not(:last-child):not(.capra-Menu-module-HIhAFW-divider):not(:has( + .capra-Menu-module-HIhAFW-divider)) {
|
|
3459
|
+
margin-block-end: var(--cds2-spacing-xs);
|
|
3460
|
+
}
|
|
3462
3461
|
|
|
3463
|
-
|
|
3464
|
-
|
|
3462
|
+
&:focus-visible {
|
|
3463
|
+
outline: none;
|
|
3464
|
+
}
|
|
3465
3465
|
}
|
|
3466
3466
|
|
|
3467
|
-
.capra-Menu-module-
|
|
3468
|
-
|
|
3469
|
-
}
|
|
3467
|
+
.capra-Menu-module-HIhAFW-menu {
|
|
3468
|
+
padding: 5px;
|
|
3470
3469
|
|
|
3471
|
-
|
|
3472
|
-
|
|
3470
|
+
&[data-panel-padding="none"] {
|
|
3471
|
+
padding: var(--cds2-spacing-sm);
|
|
3472
|
+
}
|
|
3473
3473
|
}
|
|
3474
3474
|
|
|
3475
|
-
.capra-Menu-module-
|
|
3476
|
-
|
|
3475
|
+
.capra-Menu-module-HIhAFW-menuTriggerSlot {
|
|
3476
|
+
display: inline-block;
|
|
3477
3477
|
}
|
|
3478
3478
|
|
|
3479
|
-
.capra-Menu-module-
|
|
3479
|
+
.capra-Menu-module-HIhAFW-menuItem {
|
|
3480
3480
|
appearance: none;
|
|
3481
3481
|
border-radius: var(--cds-radius-sm);
|
|
3482
3482
|
color: var(--cds2-color-foreground-default);
|
|
@@ -3491,257 +3491,239 @@ input:disabled + .capra-Radio-module-ZI7rzq-inner:after {
|
|
|
3491
3491
|
min-width: 152px;
|
|
3492
3492
|
max-width: 256px;
|
|
3493
3493
|
text-decoration: none;
|
|
3494
|
-
}
|
|
3495
3494
|
|
|
3496
|
-
|
|
3497
|
-
|
|
3498
|
-
}
|
|
3499
|
-
|
|
3500
|
-
.capra-Menu-module-3G4VeG-menuItemTrailingGutter {
|
|
3501
|
-
margin-inline-start: var(--cds2-spacing-md);
|
|
3502
|
-
}
|
|
3503
|
-
|
|
3504
|
-
.capra-Menu-module-3G4VeG-menuItem:hover:not(:disabled, [aria-disabled="true"]) {
|
|
3505
|
-
background-color: var(--cds2-color-background-neutral-hover);
|
|
3506
|
-
}
|
|
3495
|
+
&:hover:not(:disabled, [aria-disabled="true"]) {
|
|
3496
|
+
background-color: var(--cds2-color-background-neutral-hover);
|
|
3497
|
+
}
|
|
3507
3498
|
|
|
3508
|
-
|
|
3509
|
-
|
|
3510
|
-
}
|
|
3499
|
+
&:focus {
|
|
3500
|
+
outline: none;
|
|
3501
|
+
}
|
|
3511
3502
|
|
|
3512
|
-
|
|
3513
|
-
|
|
3514
|
-
|
|
3515
|
-
}
|
|
3503
|
+
&[data-focus-visible="true"] {
|
|
3504
|
+
outline: var(--cds2-border-focus);
|
|
3505
|
+
outline-offset: var(--cds2-spacing-xs);
|
|
3506
|
+
}
|
|
3516
3507
|
|
|
3517
|
-
|
|
3518
|
-
|
|
3519
|
-
|
|
3520
|
-
}
|
|
3508
|
+
&:is(:disabled, [aria-disabled="true"]) {
|
|
3509
|
+
color: var(--cds2-color-foreground-disabled);
|
|
3510
|
+
cursor: not-allowed;
|
|
3521
3511
|
|
|
3522
|
-
.capra-Menu-module-
|
|
3523
|
-
|
|
3524
|
-
}
|
|
3512
|
+
& .capra-Menu-module-HIhAFW-menuItemListItemShell, & .capra-Menu-module-HIhAFW-menuItemLabel, & .capra-Menu-module-HIhAFW-menuItemDescription, & .capra-Menu-module-HIhAFW-menuItemShortcut {
|
|
3513
|
+
color: var(--cds2-color-foreground-disabled);
|
|
3514
|
+
}
|
|
3525
3515
|
|
|
3526
|
-
|
|
3527
|
-
|
|
3528
|
-
|
|
3529
|
-
|
|
3530
|
-
}
|
|
3516
|
+
& .capra-Menu-module-HIhAFW-menuItemShortcut {
|
|
3517
|
+
background-color: var(--cds-color-background-secondary);
|
|
3518
|
+
border: var(--cds2-border-default);
|
|
3519
|
+
}
|
|
3520
|
+
}
|
|
3531
3521
|
|
|
3532
|
-
|
|
3533
|
-
|
|
3534
|
-
|
|
3522
|
+
&[data-active="true"] {
|
|
3523
|
+
background-color: var(--cds2-color-background-accent-selected);
|
|
3524
|
+
color: var(--cds2-color-foreground-default);
|
|
3535
3525
|
|
|
3536
|
-
|
|
3537
|
-
|
|
3538
|
-
|
|
3539
|
-
}
|
|
3526
|
+
& .capra-Menu-module-HIhAFW-menuItemLabel {
|
|
3527
|
+
color: inherit;
|
|
3528
|
+
}
|
|
3529
|
+
}
|
|
3540
3530
|
|
|
3541
|
-
|
|
3542
|
-
|
|
3543
|
-
|
|
3531
|
+
&[data-has-submenu][data-open]:not(:disabled, [aria-disabled="true"]) {
|
|
3532
|
+
background-color: var(--cds2-color-background-neutral-hover);
|
|
3533
|
+
color: var(--cds2-color-foreground-default);
|
|
3544
3534
|
|
|
3545
|
-
|
|
3546
|
-
|
|
3547
|
-
|
|
3548
|
-
|
|
3549
|
-
}
|
|
3535
|
+
& .capra-Menu-module-HIhAFW-menuItemLabel {
|
|
3536
|
+
color: inherit;
|
|
3537
|
+
}
|
|
3538
|
+
}
|
|
3550
3539
|
|
|
3551
|
-
|
|
3552
|
-
|
|
3553
|
-
font: var(--cds2-typography-body-md-normal);
|
|
3554
|
-
}
|
|
3540
|
+
&[data-variant="danger"] {
|
|
3541
|
+
color: var(--cds2-color-foreground-danger-default);
|
|
3555
3542
|
|
|
3556
|
-
.capra-Menu-module-
|
|
3557
|
-
|
|
3558
|
-
|
|
3559
|
-
}
|
|
3543
|
+
& .capra-Menu-module-HIhAFW-menuItemLabel {
|
|
3544
|
+
color: inherit;
|
|
3545
|
+
}
|
|
3560
3546
|
|
|
3561
|
-
|
|
3562
|
-
|
|
3563
|
-
|
|
3547
|
+
&:not(:disabled, [aria-disabled="true"]) .capra-Menu-module-HIhAFW-menuItemShortcut {
|
|
3548
|
+
border: var(--cds2-border-default);
|
|
3549
|
+
color: var(--cds2-color-foreground-danger-default);
|
|
3550
|
+
}
|
|
3564
3551
|
|
|
3565
|
-
|
|
3566
|
-
|
|
3567
|
-
|
|
3568
|
-
}
|
|
3552
|
+
&:hover:not(:disabled, [aria-disabled="true"]) {
|
|
3553
|
+
background-color: var(--cds2-color-background-danger-subtle);
|
|
3554
|
+
color: var(--cds2-color-foreground-danger-default);
|
|
3555
|
+
}
|
|
3569
3556
|
|
|
3570
|
-
|
|
3571
|
-
|
|
3572
|
-
|
|
3557
|
+
&[data-active="true"] {
|
|
3558
|
+
background-color: var(--cds2-color-background-danger-hover);
|
|
3559
|
+
color: var(--cds2-color-foreground-danger-default);
|
|
3573
3560
|
|
|
3574
|
-
|
|
3575
|
-
|
|
3576
|
-
}
|
|
3561
|
+
&:hover:not(:disabled, [aria-disabled="true"]) {
|
|
3562
|
+
background-color: var(--cds2-color-background-danger-subtle);
|
|
3563
|
+
}
|
|
3564
|
+
}
|
|
3565
|
+
}
|
|
3577
3566
|
|
|
3578
|
-
|
|
3579
|
-
|
|
3580
|
-
|
|
3581
|
-
}
|
|
3567
|
+
&[data-indent="true"] {
|
|
3568
|
+
padding-inline-start: var(--cds2-spacing-xl);
|
|
3569
|
+
}
|
|
3582
3570
|
|
|
3583
|
-
|
|
3584
|
-
|
|
3585
|
-
|
|
3586
|
-
|
|
3571
|
+
&[data-has-description="true"] {
|
|
3572
|
+
& .capra-Menu-module-HIhAFW-menuItemTrailingGutter {
|
|
3573
|
+
align-self: center;
|
|
3574
|
+
height: auto !important;
|
|
3575
|
+
}
|
|
3587
3576
|
|
|
3588
|
-
|
|
3589
|
-
|
|
3590
|
-
}
|
|
3577
|
+
& .capra-Menu-module-HIhAFW-menuItemListItemShell {
|
|
3578
|
+
align-items: start;
|
|
3579
|
+
}
|
|
3580
|
+
}
|
|
3591
3581
|
|
|
3592
|
-
.capra-Menu-module-
|
|
3593
|
-
|
|
3594
|
-
|
|
3582
|
+
& .capra-Menu-module-HIhAFW-menuItemListItemShell {
|
|
3583
|
+
width: 100%;
|
|
3584
|
+
color: inherit;
|
|
3585
|
+
align-items: center;
|
|
3586
|
+
}
|
|
3595
3587
|
}
|
|
3596
3588
|
|
|
3597
|
-
.capra-Menu-module-
|
|
3598
|
-
|
|
3599
|
-
}
|
|
3589
|
+
.capra-Menu-module-HIhAFW-menuItemLeadingGutter {
|
|
3590
|
+
margin-inline-end: var(--cds2-spacing-md);
|
|
3600
3591
|
|
|
3601
|
-
.capra-Menu-module-
|
|
3602
|
-
|
|
3603
|
-
|
|
3592
|
+
& .capra-Menu-module-HIhAFW-slot {
|
|
3593
|
+
line-height: 0;
|
|
3594
|
+
}
|
|
3604
3595
|
}
|
|
3605
3596
|
|
|
3606
|
-
.capra-Menu-module-
|
|
3607
|
-
|
|
3597
|
+
.capra-Menu-module-HIhAFW-menuItemTrailingGutter {
|
|
3598
|
+
margin-inline-start: var(--cds2-spacing-md);
|
|
3608
3599
|
}
|
|
3609
3600
|
|
|
3610
|
-
.capra-Menu-module-
|
|
3611
|
-
|
|
3612
|
-
|
|
3601
|
+
.capra-Menu-module-HIhAFW-menuItemTrailingGroup {
|
|
3602
|
+
align-items: center;
|
|
3603
|
+
gap: var(--cds2-spacing-md);
|
|
3604
|
+
display: inline-flex;
|
|
3613
3605
|
}
|
|
3614
3606
|
|
|
3615
|
-
.capra-Menu-module-
|
|
3616
|
-
color:
|
|
3607
|
+
.capra-Menu-module-HIhAFW-menuItemLabel {
|
|
3608
|
+
color: inherit;
|
|
3617
3609
|
font: var(--cds2-typography-body-md-normal);
|
|
3618
3610
|
}
|
|
3619
3611
|
|
|
3620
|
-
.capra-Menu-module-
|
|
3621
|
-
|
|
3622
|
-
|
|
3623
|
-
color: var(--cds2-color-foreground-danger-default);
|
|
3624
|
-
}
|
|
3625
|
-
|
|
3626
|
-
.capra-Menu-module-3G4VeG-menu[data-item-hover-appearance="accent"] .capra-Menu-module-3G4VeG-menuItem[data-variant="danger"].capra-Menu-module-3G4VeG-menuItem[data-active="true"] .capra-Menu-module-3G4VeG-menuItemLabel {
|
|
3627
|
-
color: var(--cds2-color-foreground-danger-default);
|
|
3628
|
-
font: var(--cds2-typography-body-md-semibold);
|
|
3629
|
-
}
|
|
3630
|
-
|
|
3631
|
-
.capra-Menu-module-3G4VeG-menu[data-item-hover-appearance="accent"] .capra-Menu-module-3G4VeG-menuItem[data-variant="danger"].capra-Menu-module-3G4VeG-menuItem[data-active="true"]:hover:not(:disabled, [aria-disabled="true"]) {
|
|
3632
|
-
background-color: var(--cds2-color-background-danger-subtle);
|
|
3633
|
-
color: var(--cds2-color-foreground-danger-default);
|
|
3634
|
-
}
|
|
3635
|
-
|
|
3636
|
-
.capra-Menu-module-3G4VeG-menu[data-item-hover-appearance="accent"] .capra-Menu-module-3G4VeG-menuItem[data-variant="danger"].capra-Menu-module-3G4VeG-menuItem[data-active="true"]:hover:not(:disabled, [aria-disabled="true"]) .capra-Menu-module-3G4VeG-menuItemLabel {
|
|
3637
|
-
color: var(--cds2-color-foreground-danger-default);
|
|
3638
|
-
font: var(--cds2-typography-body-md-semibold);
|
|
3639
|
-
}
|
|
3640
|
-
|
|
3641
|
-
.capra-Menu-module-3G4VeG-menu[data-item-hover-appearance="accent"] .capra-Menu-module-3G4VeG-menuItem:hover:not(:disabled, [aria-disabled="true"]) {
|
|
3642
|
-
background-color: var(--cds2-color-background-neutral-hover);
|
|
3612
|
+
.capra-Menu-module-HIhAFW-menuItemDescription {
|
|
3613
|
+
color: var(--cds2-color-foreground-default);
|
|
3614
|
+
font: var(--cds2-typography-body-sm-normal);
|
|
3643
3615
|
}
|
|
3644
3616
|
|
|
3645
|
-
.capra-Menu-module-
|
|
3617
|
+
.capra-Menu-module-HIhAFW-menuItemShortcut {
|
|
3618
|
+
background-color: var(--cds2-color-neutral-surface);
|
|
3619
|
+
border: var(--cds2-border-default);
|
|
3620
|
+
border-color: var(--cds2-color-border-neutral-subtle);
|
|
3621
|
+
border-radius: var(--cds2-radius-md);
|
|
3646
3622
|
color: var(--cds2-color-foreground-subtle);
|
|
3623
|
+
font: var(--cds2-typography-body-sm-normal);
|
|
3624
|
+
padding: 0 var(--cds2-spacing-sm);
|
|
3625
|
+
white-space: nowrap;
|
|
3626
|
+
justify-content: center;
|
|
3627
|
+
align-items: center;
|
|
3628
|
+
display: inline-flex;
|
|
3647
3629
|
}
|
|
3648
3630
|
|
|
3649
|
-
.capra-Menu-module-
|
|
3650
|
-
|
|
3651
|
-
|
|
3652
|
-
|
|
3653
|
-
}
|
|
3654
|
-
|
|
3655
|
-
.capra-Menu-module-3G4VeG-menu[data-item-hover-appearance="accent"][data-item-active-accent-bar="false"] .capra-Menu-module-3G4VeG-menuItem[data-active="true"], .capra-Menu-module-3G4VeG-menu[data-item-hover-appearance="accent"][data-item-active-accent-bar="false"] .capra-Menu-module-3G4VeG-menuItem[data-variant="danger"].capra-Menu-module-3G4VeG-menuItem[data-active="true"] {
|
|
3656
|
-
border-inline-end: none;
|
|
3657
|
-
}
|
|
3658
|
-
|
|
3659
|
-
.capra-Menu-module-3G4VeG-menu[data-item-hover-appearance="accent"][data-item-active-label-semibold="false"] .capra-Menu-module-3G4VeG-menuItem[data-active="true"] .capra-Menu-module-3G4VeG-menuItemLabel, .capra-Menu-module-3G4VeG-menu[data-item-hover-appearance="accent"][data-item-active-label-semibold="false"] .capra-Menu-module-3G4VeG-menuItem[data-active="true"]:hover:not(:disabled, [aria-disabled="true"]) .capra-Menu-module-3G4VeG-menuItemLabel, .capra-Menu-module-3G4VeG-menu[data-item-hover-appearance="accent"][data-item-active-label-semibold="false"] .capra-Menu-module-3G4VeG-menuItem[data-variant="danger"].capra-Menu-module-3G4VeG-menuItem[data-active="true"] .capra-Menu-module-3G4VeG-menuItemLabel, .capra-Menu-module-3G4VeG-menu[data-item-hover-appearance="accent"][data-item-active-label-semibold="false"] .capra-Menu-module-3G4VeG-menuItem[data-variant="danger"].capra-Menu-module-3G4VeG-menuItem[data-active="true"]:hover:not(:disabled, [aria-disabled="true"]) .capra-Menu-module-3G4VeG-menuItemLabel {
|
|
3660
|
-
font: var(--cds2-typography-body-md-normal);
|
|
3661
|
-
}
|
|
3662
|
-
|
|
3663
|
-
.capra-Menu-module-3G4VeG-menu[data-item-hover-appearance="accent"] .capra-Menu-module-3G4VeG-menuItem[data-active="true"] .capra-Menu-module-3G4VeG-menuItemLabel {
|
|
3664
|
-
color: var(--cds2-color-foreground-accent-default);
|
|
3665
|
-
font: var(--cds2-typography-body-md-semibold);
|
|
3666
|
-
}
|
|
3667
|
-
|
|
3668
|
-
.capra-Menu-module-3G4VeG-menu[data-item-hover-appearance="accent"] .capra-Menu-module-3G4VeG-menuItem[data-active="true"]:hover:not(:disabled, [aria-disabled="true"]) {
|
|
3669
|
-
background-color: var(--cds2-color-background-accent-selected);
|
|
3670
|
-
color: var(--cds2-color-foreground-accent-default);
|
|
3671
|
-
}
|
|
3631
|
+
.capra-Menu-module-HIhAFW-menu[data-item-hover-appearance="accent"] {
|
|
3632
|
+
& .capra-Menu-module-HIhAFW-menuItem {
|
|
3633
|
+
&:hover:not(:disabled, [aria-disabled="true"]) .capra-Menu-module-HIhAFW-menuItemShortcut {
|
|
3634
|
+
color: var(--cds2-color-foreground-subtle);
|
|
3635
|
+
}
|
|
3672
3636
|
|
|
3673
|
-
|
|
3674
|
-
|
|
3675
|
-
|
|
3676
|
-
color: var(--cds2-color-foreground-accent-default);
|
|
3677
|
-
}
|
|
3637
|
+
&:is(:disabled, [aria-disabled="true"]) {
|
|
3638
|
+
color: var(--cds2-color-foreground-disabled);
|
|
3639
|
+
background-color: #0000;
|
|
3678
3640
|
|
|
3679
|
-
|
|
3680
|
-
|
|
3681
|
-
|
|
3682
|
-
}
|
|
3641
|
+
&[data-active="true"] {
|
|
3642
|
+
background-color: #0000;
|
|
3643
|
+
border-inline-end: none;
|
|
3644
|
+
}
|
|
3683
3645
|
|
|
3684
|
-
|
|
3685
|
-
|
|
3686
|
-
|
|
3687
|
-
}
|
|
3646
|
+
&[data-active="true"] .capra-Menu-module-HIhAFW-menuItemLabel {
|
|
3647
|
+
font: var(--cds2-typography-body-md-normal);
|
|
3648
|
+
}
|
|
3649
|
+
}
|
|
3688
3650
|
|
|
3689
|
-
|
|
3690
|
-
|
|
3691
|
-
|
|
3651
|
+
&[data-active="true"] {
|
|
3652
|
+
background-color: var(--cds2-color-background-accent-selected);
|
|
3653
|
+
border-inline-end: 2px solid var(--cds2-color-border-accent-default);
|
|
3654
|
+
color: var(--cds2-color-foreground-accent-default);
|
|
3692
3655
|
|
|
3693
|
-
|
|
3694
|
-
|
|
3695
|
-
|
|
3656
|
+
& .capra-Menu-module-HIhAFW-menuItemLabel {
|
|
3657
|
+
color: var(--cds2-color-foreground-accent-default);
|
|
3658
|
+
font: var(--cds2-typography-body-md-semibold);
|
|
3659
|
+
}
|
|
3696
3660
|
|
|
3697
|
-
|
|
3698
|
-
|
|
3699
|
-
|
|
3661
|
+
&:hover:not(:disabled, [aria-disabled="true"]) {
|
|
3662
|
+
background-color: var(--cds2-color-background-accent-selected);
|
|
3663
|
+
color: var(--cds2-color-foreground-accent-default);
|
|
3664
|
+
}
|
|
3665
|
+
}
|
|
3700
3666
|
|
|
3701
|
-
|
|
3702
|
-
|
|
3703
|
-
|
|
3667
|
+
&[data-has-submenu][data-open]:not(:disabled, [aria-disabled="true"]) {
|
|
3668
|
+
background-color: var(--cds2-color-border-focus);
|
|
3669
|
+
border-inline-end: 2px solid var(--cds2-color-border-accent-default);
|
|
3670
|
+
color: var(--cds2-color-foreground-accent-default);
|
|
3704
3671
|
|
|
3705
|
-
.capra-Menu-module-
|
|
3706
|
-
|
|
3707
|
-
|
|
3672
|
+
& .capra-Menu-module-HIhAFW-menuItemLabel {
|
|
3673
|
+
color: var(--cds2-color-foreground-accent-default);
|
|
3674
|
+
font: var(--cds2-typography-body-md-semibold);
|
|
3675
|
+
}
|
|
3708
3676
|
|
|
3709
|
-
|
|
3710
|
-
|
|
3711
|
-
|
|
3712
|
-
}
|
|
3677
|
+
&:hover {
|
|
3678
|
+
background-color: var(--cds2-color-background-accent-selected);
|
|
3679
|
+
}
|
|
3680
|
+
}
|
|
3713
3681
|
|
|
3714
|
-
|
|
3715
|
-
|
|
3716
|
-
|
|
3717
|
-
|
|
3682
|
+
&[data-variant="danger"] {
|
|
3683
|
+
&:hover:not(:disabled, [aria-disabled="true"]) {
|
|
3684
|
+
background-color: var(--cds2-color-background-danger-subtle);
|
|
3685
|
+
color: var(--cds2-color-foreground-danger-default);
|
|
3686
|
+
|
|
3687
|
+
& .capra-Menu-module-HIhAFW-menuItemLabel {
|
|
3688
|
+
font: var(--cds2-typography-body-md-normal);
|
|
3689
|
+
}
|
|
3690
|
+
}
|
|
3691
|
+
|
|
3692
|
+
&[data-active="true"] {
|
|
3693
|
+
background-color: var(--cds2-color-border-danger-focus);
|
|
3694
|
+
border-inline-end: 2px solid var(--cds2-color-border-accent-default);
|
|
3695
|
+
color: var(--cds2-color-foreground-danger-default);
|
|
3696
|
+
|
|
3697
|
+
& .capra-Menu-module-HIhAFW-menuItemLabel {
|
|
3698
|
+
color: var(--cds2-color-foreground-danger-default);
|
|
3699
|
+
font: var(--cds2-typography-body-md-semibold);
|
|
3700
|
+
}
|
|
3701
|
+
|
|
3702
|
+
&:hover:not(:disabled, [aria-disabled="true"]) {
|
|
3703
|
+
background-color: var(--cds2-color-background-danger-subtle);
|
|
3704
|
+
}
|
|
3705
|
+
}
|
|
3706
|
+
}
|
|
3707
|
+
}
|
|
3718
3708
|
|
|
3719
|
-
|
|
3720
|
-
|
|
3721
|
-
|
|
3722
|
-
}
|
|
3709
|
+
&[data-item-active-accent-bar="false"] {
|
|
3710
|
+
& .capra-Menu-module-HIhAFW-menuItem[data-active="true"], & .capra-Menu-module-HIhAFW-menuItem[data-has-submenu][data-open] {
|
|
3711
|
+
border-inline-end: none;
|
|
3712
|
+
}
|
|
3713
|
+
}
|
|
3723
3714
|
|
|
3724
|
-
|
|
3725
|
-
|
|
3726
|
-
|
|
3727
|
-
|
|
3715
|
+
&[data-item-active-label-semibold="false"] {
|
|
3716
|
+
& .capra-Menu-module-HIhAFW-menuItem[data-active="true"] .capra-Menu-module-HIhAFW-menuItemLabel, & .capra-Menu-module-HIhAFW-menuItem[data-has-submenu][data-open] .capra-Menu-module-HIhAFW-menuItemLabel {
|
|
3717
|
+
font: var(--cds2-typography-body-md-normal);
|
|
3718
|
+
}
|
|
3719
|
+
}
|
|
3728
3720
|
}
|
|
3729
3721
|
|
|
3730
|
-
.capra-Menu-module-
|
|
3731
|
-
|
|
3732
|
-
border: var(--cds2-border-default);
|
|
3733
|
-
border-color: var(--cds2-color-border-neutral-subtle);
|
|
3734
|
-
border-radius: var(--cds2-radius-md);
|
|
3735
|
-
color: var(--cds2-color-foreground-subtle);
|
|
3736
|
-
font: var(--cds2-typography-body-sm-normal);
|
|
3737
|
-
padding: 0 var(--cds2-spacing-sm);
|
|
3738
|
-
white-space: nowrap;
|
|
3739
|
-
justify-content: center;
|
|
3740
|
-
align-items: center;
|
|
3741
|
-
display: inline-flex;
|
|
3722
|
+
.capra-Menu-module-HIhAFW-section {
|
|
3723
|
+
display: contents;
|
|
3742
3724
|
}
|
|
3743
3725
|
|
|
3744
|
-
.capra-Menu-module-
|
|
3726
|
+
.capra-Menu-module-HIhAFW-header {
|
|
3745
3727
|
box-sizing: border-box;
|
|
3746
3728
|
color: var(--cds2-color-foreground-default);
|
|
3747
3729
|
font: var(--cds2-typography-body-md-semibold);
|
|
@@ -3752,7 +3734,7 @@ input:disabled + .capra-Radio-module-ZI7rzq-inner:after {
|
|
|
3752
3734
|
display: flex;
|
|
3753
3735
|
}
|
|
3754
3736
|
|
|
3755
|
-
.capra-Menu-module-
|
|
3737
|
+
.capra-Menu-module-HIhAFW-divider {
|
|
3756
3738
|
border: none;
|
|
3757
3739
|
border-block-start: var(--cds2-border-default);
|
|
3758
3740
|
border-color: var(--cds2-color-border-neutral-subtle);
|
|
@@ -3762,10 +3744,6 @@ input:disabled + .capra-Radio-module-ZI7rzq-inner:after {
|
|
|
3762
3744
|
width: 100%;
|
|
3763
3745
|
padding: 0;
|
|
3764
3746
|
}
|
|
3765
|
-
|
|
3766
|
-
.capra-Menu-module-3G4VeG-menuItemListItemShell {
|
|
3767
|
-
width: 100%;
|
|
3768
|
-
}
|
|
3769
3747
|
.capra-TabNav-module-pLDWhG-root {
|
|
3770
3748
|
flex-direction: column;
|
|
3771
3749
|
width: 100%;
|
package/docs/core-menu--usage.md
CHANGED
|
@@ -14,5 +14,5 @@
|
|
|
14
14
|
| `itemActiveAccentBar` | `boolean` | No | true | When `itemHoverAppearance` is `accent`, whether the active/selected row shows the inline-end accent bar (vertical TabNav indicator). Set to `false` for horizontal TabNav flyout menus where selection should not show that bar.<br>@default true |
|
|
15
15
|
| `itemActiveLabelSemibold` | `boolean` | No | true | When `itemHoverAppearance` is `accent`, whether the active/selected row uses a semibold label. Set to `false` for TabNav horizontal submenus where the active item should match normal menu weight.<br>@default true |
|
|
16
16
|
| `panelPadding` | `'default' \| 'none'` | No | 'default' | Inset of the menu panel (`role="menu"`). `none` uses a minimal inset so focus rings are not clipped under scroll/overflow; use for flyouts that should sit close to the popover edge (e.g. TabNav submenu).<br>@default 'default' |
|
|
17
|
-
| `popoverOffset` | `number` | No |
|
|
17
|
+
| `popoverOffset` | `number` | No | 2 | Gap along the main axis between the trigger and the menu panel (React Aria `Popover` `offset`).<br>Defaults to 2px to match `spacing.xs`; `Popover` positioning takes a number, so the token cannot be applied via CSS.<br>Use a smaller value (e.g. 1) when the panel should clear a trigger underline/border (e.g. horizontal TabNav).<br>@default 2 |
|
|
18
18
|
| `trapFocus` | `boolean` | No | false | When `true`, focus is contained in the menu panel while it is open (Tab cycles within the panel; focus restores on close).<br>The popover stays non-modal so outside pointer dismiss still works. Use for patterns that must not move focus to sibling controls until the menu closes (e.g. horizontal TabNav flyouts).<br>@default false |
|
|
@@ -71,6 +71,8 @@ TabNav uses link-based navigation. The following apply:
|
|
|
71
71
|
* Active nav links have `aria-current="page"` set.
|
|
72
72
|
* Tabs that contain a dropdown use a button with `aria-haspopup="menu"` and `aria-expanded` set.
|
|
73
73
|
* Dropdown menu items use the Menu component with appropriate roles.
|
|
74
|
+
* The tab bar does not add outer spacing for surrounding layout. Handle page-level spacing where `TabNav` is composed.
|
|
75
|
+
* Interactive tabs and sub-items keep the `.tab` styles on the focusable element so hover, active, and focus treatments match the hit target.
|
|
74
76
|
|
|
75
77
|
### Orientation
|
|
76
78
|
|
|
@@ -8,7 +8,8 @@ TabNav provides a horizontal or vertical navigation styled as tabs. Tab items ar
|
|
|
8
8
|
| `style` | `never` | No | `--` | Inline styles are not supported; use component props or `FORCE__className`. |
|
|
9
9
|
| `FORCE__className` | `string` | No | `--` | 🚨 This prop is meant to be an escape hatch. 🚨<br><br>If the desired style cannot be achieved using component props, use this as a last resort. The inner workings of Capra components are implementation details and this escape hatch gives one access to those implementation details. We cannot make any guarantees that styles will applied correctly across version updates. Please use it responsibly.<br><br>Add a CSS class to the component. |
|
|
10
10
|
| `activeKey` | `string` | No | `--` | Key of the currently active tab (for visual styling). Typically derived from the current URL. |
|
|
11
|
-
| `
|
|
11
|
+
| `onTabPress` | `(key: string) => void` | No | `--` | Callback when a tab link is pressed (before navigation). |
|
|
12
|
+
| `onTabClick` | `(key: string, event: React.MouseEvent) => void` | No | `--` | Callback when a tab link is clicked (before navigation).<br>@deprecated Use `onTabPress` instead. |
|
|
12
13
|
| `items` | `TabNavItemType[]` | Yes | `--` | Tab items configuration. |
|
|
13
14
|
| `tabPlacement` | `(typeof tabNavPlacements)[number]` | No | 'horizontal' | Orientation of the tab bar: horizontal (bottom) or vertical (left).<br>@default 'horizontal' |
|
|
14
15
|
| `centered` | `boolean` | No | false | Whether to center the tabs.<br>@default false |
|
|
@@ -19,7 +20,7 @@ TabNav provides a horizontal or vertical navigation styled as tabs. Tab items ar
|
|
|
19
20
|
## Usage
|
|
20
21
|
|
|
21
22
|
```tsx
|
|
22
|
-
import { TabNav } from '@capra/core';
|
|
23
|
+
import { RouterProvider, TabNav } from '@capra/core';
|
|
23
24
|
|
|
24
25
|
// Basic usage - tab items are links that redirect to URLs
|
|
25
26
|
<TabNav
|
|
@@ -62,4 +63,21 @@ import { TabNav } from '@capra/core';
|
|
|
62
63
|
{ key: 'settings', name: 'Settings', href: '/settings' },
|
|
63
64
|
]}
|
|
64
65
|
/>
|
|
65
|
-
|
|
66
|
+
|
|
67
|
+
// With client-side routing
|
|
68
|
+
<RouterProvider navigate={navigate}>
|
|
69
|
+
<TabNav
|
|
70
|
+
activeKey={currentPath}
|
|
71
|
+
items={[
|
|
72
|
+
{ key: 'overview', name: 'Overview', href: '/overview' },
|
|
73
|
+
{
|
|
74
|
+
key: 'settings',
|
|
75
|
+
name: 'Settings',
|
|
76
|
+
subItems: [{ key: 'profile', name: 'Profile', href: '/settings/profile' }],
|
|
77
|
+
},
|
|
78
|
+
]}
|
|
79
|
+
/>
|
|
80
|
+
</RouterProvider>
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
When the app provides `RouterProvider`, `TabNav` passes `href` and the rest of `RoutedLinkProps` through to navigable tabs and sub-items so routing stays client-side.
|
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# History/Changelogs/@capra-core
|
|
2
2
|
|
|
3
|
+
### 1.12.0
|
|
4
|
+
|
|
5
|
+
#### Minor Changes
|
|
6
|
+
|
|
7
|
+
* [1fdb8d2](https://bitbucket.org/cribl/capra-ui/commits/1fdb8d2): Add `TabNav` `onTabPress` for sub-item client-side routing support.
|
|
8
|
+
|
|
9
|
+
#### Patch Changes
|
|
10
|
+
|
|
11
|
+
* [9550263](https://bitbucket.org/cribl/capra-ui/commits/9550263): Fix Menu submenu viewport clipping by enabling popover flip when nested panels would overflow the screen edge.
|
|
12
|
+
* [9550263](https://bitbucket.org/cribl/capra-ui/commits/9550263): Fix Menu leading icon vertical alignment with item labels.
|
|
13
|
+
* [b4285e0](https://bitbucket.org/cribl/capra-ui/commits/b4285e0): Fix menu description text color when disabled.
|
|
14
|
+
* [9550263](https://bitbucket.org/cribl/capra-ui/commits/9550263): Fix Menu danger item icons so leading icons inherit the same semantic foreground color as the label.
|
|
15
|
+
* Updated dependencies [928c9a8](https://bitbucket.org/cribl/capra-ui/commits/928c9a8) — added new icons: AddressBook, AlignCenter, AlignJustify, AlignLeft, AlignRight, ArrowDownLeftAndArrowUpRightToCenter, ArrowTurnDownLeft, ArrowUpRightAndArrowDownLeftFromCenter, ArrowsMaximize, ArrowsMinimize, At, Backward, BackwardStep, BadgeCheck, BagShopping, Ban, Barcode, Bold, Bolt, Book, BookOpen, BoxArchive, BracketsCurly, BriefcaseMedical, Bug, Bullhorn, Bullseye, Car, CaretDownSolid, CaretLeftSolid, CaretRightSolid, CaretUpSolid, CartShopping, ChartEvents, ChartFunnel, ChartMap, ChartScatter, ChartSingle, Check, CircleCheck, CircleCheckSolid, CircleExclamation, CircleInfo, CircleInfoSolid, CirclePlusSolid, CircleQuestion, CircleR, CircleStopSolid, CircleUpFilled, CircleXmarkSolid, Code, CodeBlock, CodeBranch, CodeFork, CodeMerge, CodePullRequest, Compass, Copyright, CriblOutlined, Crown, CupTogo, Database, DiagramSankey, EmptySet, FaceFrown, FaceMeh, FaceSmile, File, FileLines, FilePlusMinus, Fire, Flask, Forward, ForwardStep, GaugeSimple, Gift, GitAlt, Grid2Plus, GripDotsVertical, HardDrive, Headphones, Heart, HeartSolid, HibernatingCloud, Highlighter, Hourglass, IdCard, Image, Italic, Keyboard, Lightbulb, LinkSlash, ListOrdered, ListTree, Lock, Mars, Message, Messages, Microphone, Mobile, MugHot, Notebook, Outbound, Palette, Paperclip, Pause, Play, Print, Qrcode, Robot, RocketLaunch, Scissors, Share, Shirt, SlashForward, Sliders, SlidersUp, SortAlphaAscending, SortAlphaDescending, SortDown, SortDownSolid, SortNumericAscending, SortNumericDescending, SortOutlined, SortUp, SortUpSolid, SpinnerThird, SquareExclamation, SquareExclamationSolid, Star, StarSolid, Store, Strikethrough, Tablet, Tag, ThumbsDown, ThumbsDownSolid, ThumbsUp, ThumbtackAngleFilled, ThumbtackAngleOutlined, Token, Trash, TriangleExclamation, TriangleExclamationSolid, Trophy, Underline, Venus, Video, Volume
|
|
16
|
+
* Updated dependencies [3572a4f](https://bitbucket.org/cribl/capra-ui/commits/3572a4f) — Updated fill color for HibernatingCloud icon
|
|
17
|
+
* @capra/icons\@1.10.0
|
|
18
|
+
|
|
3
19
|
### 1.11.1
|
|
4
20
|
|
|
5
21
|
#### Patch Changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@capra/core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.12.0",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Core React components for the Capra design system",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"react-aria": "^3.48.0",
|
|
37
37
|
"react-aria-components": "^1.17.0",
|
|
38
|
-
"@capra/icons": "^1.
|
|
38
|
+
"@capra/icons": "^1.10.0"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"clsx": "^2.1.1",
|
|
@@ -43,9 +43,9 @@
|
|
|
43
43
|
"antd": "4.24.16",
|
|
44
44
|
"storybook": "^10.4.6",
|
|
45
45
|
"tsdown": "^0.22.7",
|
|
46
|
+
"@private/linting": "^0.0.1",
|
|
46
47
|
"@private/building": "^0.1.0",
|
|
47
48
|
"@capra/theme": "^1.4.0",
|
|
48
|
-
"@private/linting": "^0.0.1",
|
|
49
49
|
"@private/stories": "^0.0.0",
|
|
50
50
|
"@private/testing": "^0.0.7"
|
|
51
51
|
},
|