@rojaostudio/ds 2.0.0-next.16 → 2.0.0-next.18
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/components/avatar.d.ts +20 -12
- package/dist/components/avatar.js +8 -6
- package/dist/components/badge.d.ts +7 -6
- package/dist/components/badge.js +2 -1
- package/dist/components/breadcrumb.d.ts +4 -4
- package/dist/components/breadcrumb.js +1 -1
- package/dist/components/bubble.d.ts +26 -11
- package/dist/components/bubble.js +3 -3
- package/dist/components/button.d.ts +1 -1
- package/dist/components/card.d.ts +18 -9
- package/dist/components/card.js +4 -2
- package/dist/components/color-input.d.ts +1 -1
- package/dist/components/context-menu.d.ts +5 -2
- package/dist/components/data-table-header.d.ts +10 -5
- package/dist/components/data-table-header.js +59 -4
- package/dist/components/date-picker.d.ts +1 -1
- package/dist/components/dialog.d.ts +6 -3
- package/dist/components/dialog.js +2 -2
- package/dist/components/dropdown-menu.d.ts +5 -2
- package/dist/components/dropzone.d.ts +2 -2
- package/dist/components/dropzone.js +1 -1
- package/dist/components/file-input.d.ts +13 -8
- package/dist/components/file-input.js +24 -21
- package/dist/components/filter-chip.d.ts +11 -5
- package/dist/components/filter-chip.js +15 -6
- package/dist/components/heading.d.ts +9 -6
- package/dist/components/heading.js +1 -1
- package/dist/components/icon-button.d.ts +1 -1
- package/dist/components/image-upload.d.ts +2 -2
- package/dist/components/image-upload.js +1 -1
- package/dist/components/index.d.ts +6 -6
- package/dist/components/internal/button.d.ts +1 -1
- package/dist/components/internal/menu.d.ts +3 -2
- package/dist/components/internal/menu.js +1 -1
- package/dist/components/internal/toggle.d.ts +1 -1
- package/dist/components/item.d.ts +14 -7
- package/dist/components/item.js +5 -2
- package/dist/components/marker.d.ts +11 -3
- package/dist/components/marker.js +4 -3
- package/dist/components/progress.d.ts +3 -3
- package/dist/components/progress.js +2 -2
- package/dist/components/row-actions.d.ts +3 -0
- package/dist/components/row-actions.js +8 -4
- package/dist/components/sidebar.d.ts +8 -11
- package/dist/components/sidebar.js +4 -5
- package/dist/components/spinner.d.ts +9 -6
- package/dist/components/spinner.js +3 -3
- package/dist/components/star-rating.d.ts +3 -3
- package/dist/components/star-rating.js +2 -2
- package/dist/components/stat.d.ts +18 -6
- package/dist/components/stat.js +9 -3
- package/dist/components/status.d.ts +4 -4
- package/dist/components/status.js +2 -2
- package/dist/components/summary-bar.d.ts +3 -2
- package/dist/components/summary-bar.js +10 -1
- package/dist/components/tile.d.ts +5 -5
- package/dist/components/tile.js +2 -2
- package/dist/components/time-picker.d.ts +1 -1
- package/dist/components/toast.d.ts +1 -1
- package/dist/components/toggle.d.ts +1 -1
- package/dist/components/typing-indicator.d.ts +2 -2
- package/dist/components/typing-indicator.js +1 -1
- package/package.json +1 -1
- package/styles/rds/components-styles.css +84 -48
- package/styles/rds/components.css +0 -9
|
@@ -554,7 +554,7 @@
|
|
|
554
554
|
line-height: var(--type-body-line);
|
|
555
555
|
}
|
|
556
556
|
|
|
557
|
-
.rds-avatar--brand.rds-avatar--
|
|
557
|
+
.rds-avatar--brand.rds-avatar--md {
|
|
558
558
|
font-size: var(--type-body-size);
|
|
559
559
|
line-height: var(--type-body-line);
|
|
560
560
|
}
|
|
@@ -665,8 +665,8 @@
|
|
|
665
665
|
--_background: var(--badge-accent-fill-background);
|
|
666
666
|
--_label: var(--badge-accent-fill-label);
|
|
667
667
|
}
|
|
668
|
-
/*
|
|
669
|
-
.rds-badge--accent-
|
|
668
|
+
/* accent soft: the brand's highlighter, the one badge that reads as a marker (the old `highlight`). */
|
|
669
|
+
.rds-badge--accent-soft {
|
|
670
670
|
--_background: var(--badge-accent-highlight-background);
|
|
671
671
|
--_label: var(--badge-accent-highlight-label);
|
|
672
672
|
}
|
|
@@ -1156,27 +1156,30 @@ button.rds-breadcrumb__link:focus-visible {
|
|
|
1156
1156
|
--_text: var(--bubble-fill-text);
|
|
1157
1157
|
}
|
|
1158
1158
|
|
|
1159
|
-
|
|
1159
|
+
/* soft + neutral (the old `muted`): the one answering. */
|
|
1160
|
+
.rds-bubble--soft {
|
|
1160
1161
|
--_background: var(--bubble-muted-background);
|
|
1161
1162
|
--_text: var(--bubble-muted-text);
|
|
1162
1163
|
}
|
|
1163
1164
|
|
|
1164
|
-
|
|
1165
|
+
/* soft + action (the old `tinted`): the one answering, on the brand tint. */
|
|
1166
|
+
.rds-bubble--soft.rds-bubble--action {
|
|
1165
1167
|
--_background: var(--bubble-tinted-background);
|
|
1166
1168
|
--_text: var(--bubble-tinted-text);
|
|
1167
1169
|
}
|
|
1168
1170
|
|
|
1171
|
+
/* soft + danger (the old `error`): it was not sent. */
|
|
1172
|
+
.rds-bubble--soft.rds-bubble--danger {
|
|
1173
|
+
--_background: var(--bubble-error-background);
|
|
1174
|
+
--_text: var(--bubble-error-text);
|
|
1175
|
+
}
|
|
1176
|
+
|
|
1169
1177
|
.rds-bubble--outline {
|
|
1170
1178
|
--_background: var(--bubble-outline-background);
|
|
1171
1179
|
--_text: var(--bubble-outline-text);
|
|
1172
1180
|
border-color: var(--bubble-outline-border);
|
|
1173
1181
|
}
|
|
1174
1182
|
|
|
1175
|
-
.rds-bubble--error {
|
|
1176
|
-
--_background: var(--bubble-error-background);
|
|
1177
|
-
--_text: var(--bubble-error-text);
|
|
1178
|
-
}
|
|
1179
|
-
|
|
1180
1183
|
.rds-bubble--ghost {
|
|
1181
1184
|
--_background: transparent;
|
|
1182
1185
|
--_text: var(--bubble-ghost-text);
|
|
@@ -1749,12 +1752,12 @@ button.rds-breadcrumb__link:focus-visible {
|
|
|
1749
1752
|
/* components/card.css */
|
|
1750
1753
|
/* @tokens card */
|
|
1751
1754
|
/*
|
|
1752
|
-
* Card (Content collection, card/*): header, content and footer.
|
|
1753
|
-
* header, the content and the actions (sm: 16). Corners in radius/container.
|
|
1754
|
-
*
|
|
1755
|
+
* Card (Content collection, card/*): header, content and footer. md pads 24, sm pads 16; 24 between the
|
|
1756
|
+
* header, the content and the actions (sm: 16). Corners in radius/container. The Figma `variant`:
|
|
1757
|
+
* surface: card/background, a card/border hairline and elevation/raised (the default).
|
|
1755
1758
|
* outline: only the hairline, no fill, no shadow; it takes the surface underneath (cards side by side in a grid,
|
|
1756
1759
|
* inside a panel or a list, where stacked shadows turn into noise).
|
|
1757
|
-
*
|
|
1760
|
+
* soft: the brand's light plate (card/tint/background), no border, no shadow, title in card/tint/title.
|
|
1758
1761
|
* The footer has no band and no rule: the actions sit side by side, the main one last (on the right). The
|
|
1759
1762
|
* card/footer/background tokens are obsolete in Figma (03/10/2026) and not read here.
|
|
1760
1763
|
*/
|
|
@@ -1782,7 +1785,7 @@ button.rds-breadcrumb__link:focus-visible {
|
|
|
1782
1785
|
box-shadow: none;
|
|
1783
1786
|
}
|
|
1784
1787
|
|
|
1785
|
-
.rds-card--
|
|
1788
|
+
.rds-card--soft {
|
|
1786
1789
|
--_title: var(--card-tint-title);
|
|
1787
1790
|
|
|
1788
1791
|
border-color: transparent;
|
|
@@ -3582,10 +3585,17 @@ input:focus-visible + .rds-checkbox__box {
|
|
|
3582
3585
|
* DataTableHeader: no tokens of its own; the Input, FilterChip, Chip, Button, Separator, Checkbox, DropdownMenu,
|
|
3583
3586
|
* Popover and Drawer bring theirs. One row, 8 apart, 12 above the table, packed to the right: the search on the left
|
|
3584
3587
|
* takes the free width, at least 320 (never wider than the bar); the quick filters, the filters, the view control
|
|
3585
|
-
* and the actions follow it on the right, and what does not fit wraps.
|
|
3586
|
-
*
|
|
3588
|
+
* and the actions follow it on the right, and what does not fit wraps.
|
|
3589
|
+
* Two arrangements, by the bar's own width (a size container, as the Figma's viewport mode; the SavingBar's cut):
|
|
3590
|
+
* expanded from 1024 (the __wide parts: Separator, Buttons with labels); compact below it (the __narrow parts: the
|
|
3591
|
+
* filter as an IconButton of 44), where the search accepts 200. On the IconButton, while a filter is on, a dot of 8
|
|
3592
|
+
* (badge neutral fill, 6 in from the top right corner) or a neutral number Badge over the corner (-6 top, -12 right).
|
|
3593
|
+
* In the Popover and the Drawer the filters stack 16 apart, each one a caption-sized label over its chips.
|
|
3587
3594
|
*/
|
|
3588
3595
|
.rds-data-table-header {
|
|
3596
|
+
box-sizing: border-box;
|
|
3597
|
+
container-type: inline-size;
|
|
3598
|
+
width: 100%;
|
|
3589
3599
|
display: flex;
|
|
3590
3600
|
flex-wrap: wrap;
|
|
3591
3601
|
align-items: center;
|
|
@@ -3611,17 +3621,55 @@ input:focus-visible + .rds-checkbox__box {
|
|
|
3611
3621
|
gap: var(--space-8);
|
|
3612
3622
|
}
|
|
3613
3623
|
|
|
3614
|
-
.rds-data-table-
|
|
3624
|
+
.rds-data-table-header__narrow {
|
|
3615
3625
|
display: none;
|
|
3616
3626
|
}
|
|
3617
3627
|
|
|
3618
|
-
@
|
|
3628
|
+
@container (max-width: 1023px) {
|
|
3619
3629
|
.rds-data-table-header__wide {
|
|
3620
|
-
display:
|
|
3630
|
+
display: none;
|
|
3621
3631
|
}
|
|
3622
3632
|
|
|
3623
3633
|
.rds-data-table-header__narrow {
|
|
3624
|
-
display:
|
|
3634
|
+
display: flex;
|
|
3635
|
+
}
|
|
3636
|
+
|
|
3637
|
+
/* Compact: the search accepts 200 (40 × 5), so it sits on one line with the filter and an IconButton at 390. */
|
|
3638
|
+
.rds-data-table-header .rds-data-table-header__search {
|
|
3639
|
+
flex-basis: calc(var(--space-40) * 5);
|
|
3640
|
+
min-width: min(calc(var(--space-40) * 5), 100%);
|
|
3641
|
+
}
|
|
3642
|
+
}
|
|
3643
|
+
|
|
3644
|
+
/* The compact filter: the IconButton with its indicator on the corner. */
|
|
3645
|
+
.rds-data-table-header__trigger {
|
|
3646
|
+
position: relative;
|
|
3647
|
+
display: inline-flex;
|
|
3648
|
+
}
|
|
3649
|
+
|
|
3650
|
+
.rds-data-table-header__dot,
|
|
3651
|
+
.rds-data-table-header__count {
|
|
3652
|
+
position: absolute;
|
|
3653
|
+
pointer-events: none;
|
|
3654
|
+
}
|
|
3655
|
+
|
|
3656
|
+
.rds-data-table-header__dot {
|
|
3657
|
+
top: calc(var(--space-4) * 1.5);
|
|
3658
|
+
right: calc(var(--space-4) * 1.5);
|
|
3659
|
+
width: var(--space-8);
|
|
3660
|
+
height: var(--space-8);
|
|
3661
|
+
border-radius: var(--radius-full);
|
|
3662
|
+
background: var(--badge-neutral-fill-background);
|
|
3663
|
+
}
|
|
3664
|
+
|
|
3665
|
+
.rds-data-table-header__count {
|
|
3666
|
+
top: calc(var(--space-4) * -1.5);
|
|
3667
|
+
right: calc(var(--space-12) * -1);
|
|
3668
|
+
}
|
|
3669
|
+
|
|
3670
|
+
@media (forced-colors: active) {
|
|
3671
|
+
.rds-data-table-header__dot {
|
|
3672
|
+
background: CanvasText;
|
|
3625
3673
|
}
|
|
3626
3674
|
}
|
|
3627
3675
|
|
|
@@ -4340,14 +4388,14 @@ input:focus-visible + .rds-checkbox__box {
|
|
|
4340
4388
|
}
|
|
4341
4389
|
|
|
4342
4390
|
@media (hover: hover) {
|
|
4343
|
-
.rds-filter-chip:not(.rds-filter-chip--
|
|
4391
|
+
.rds-filter-chip:not(.rds-filter-chip--pressed, [aria-disabled='true']):hover {
|
|
4344
4392
|
--_surface: var(--filter-chip-surface-hover);
|
|
4345
4393
|
--_stroke: var(--filter-chip-stroke-hover);
|
|
4346
4394
|
--_text: var(--filter-chip-text-hover);
|
|
4347
4395
|
}
|
|
4348
4396
|
}
|
|
4349
4397
|
|
|
4350
|
-
.rds-filter-chip--
|
|
4398
|
+
.rds-filter-chip--pressed {
|
|
4351
4399
|
--_surface: color-mix(in srgb, var(--filter-chip-surface-active) 12%, transparent);
|
|
4352
4400
|
--_stroke: var(--filter-chip-stroke-active);
|
|
4353
4401
|
--_text: var(--filter-chip-text-active);
|
|
@@ -4395,7 +4443,7 @@ input:focus-visible + .rds-checkbox__box {
|
|
|
4395
4443
|
border-color: CanvasText;
|
|
4396
4444
|
}
|
|
4397
4445
|
|
|
4398
|
-
.rds-filter-chip--
|
|
4446
|
+
.rds-filter-chip--pressed {
|
|
4399
4447
|
border-color: Highlight;
|
|
4400
4448
|
outline: var(--border-width) solid Highlight;
|
|
4401
4449
|
}
|
|
@@ -6562,7 +6610,7 @@ body:has(.rds-modal) {
|
|
|
6562
6610
|
/* components/item.css */
|
|
6563
6611
|
/* @tokens item */
|
|
6564
6612
|
/*
|
|
6565
|
-
* Item (Content collection, item/*): one list row, at least 44 tall.
|
|
6613
|
+
* Item (Content collection, item/*): one list row, at least 44 tall. md pads 12 16, gap 16; sm pads 8 12,
|
|
6566
6614
|
* gap 12. Corners in radius/container. Title in label (16/24 medium), description in small (14/20); sm one step down.
|
|
6567
6615
|
*/
|
|
6568
6616
|
.rds-item-group {
|
|
@@ -6574,11 +6622,11 @@ body:has(.rds-modal) {
|
|
|
6574
6622
|
list-style: none;
|
|
6575
6623
|
}
|
|
6576
6624
|
|
|
6577
|
-
.rds-item-group:has(> .rds-item--
|
|
6625
|
+
.rds-item-group:has(> .rds-item--ghost) {
|
|
6578
6626
|
gap: 0;
|
|
6579
6627
|
}
|
|
6580
6628
|
|
|
6581
|
-
.rds-item-group > .rds-item--
|
|
6629
|
+
.rds-item-group > .rds-item--ghost + .rds-item--ghost {
|
|
6582
6630
|
border-top: var(--border-width) solid var(--item-border);
|
|
6583
6631
|
}
|
|
6584
6632
|
|
|
@@ -6604,7 +6652,7 @@ body:has(.rds-modal) {
|
|
|
6604
6652
|
--_gap: var(--space-12);
|
|
6605
6653
|
}
|
|
6606
6654
|
|
|
6607
|
-
.rds-item--
|
|
6655
|
+
.rds-item--ghost {
|
|
6608
6656
|
padding: var(--_pad-y) var(--_pad-x);
|
|
6609
6657
|
border-width: 0;
|
|
6610
6658
|
border-radius: 0;
|
|
@@ -6614,7 +6662,7 @@ body:has(.rds-modal) {
|
|
|
6614
6662
|
border-color: var(--item-border);
|
|
6615
6663
|
}
|
|
6616
6664
|
|
|
6617
|
-
.rds-item--
|
|
6665
|
+
.rds-item--soft {
|
|
6618
6666
|
background: var(--item-muted-background);
|
|
6619
6667
|
}
|
|
6620
6668
|
|
|
@@ -6660,7 +6708,7 @@ body:has(.rds-modal) {
|
|
|
6660
6708
|
|
|
6661
6709
|
@media (forced-colors: active) {
|
|
6662
6710
|
.rds-item--outline,
|
|
6663
|
-
.rds-item--
|
|
6711
|
+
.rds-item--soft {
|
|
6664
6712
|
border-color: CanvasText;
|
|
6665
6713
|
}
|
|
6666
6714
|
}
|
|
@@ -8849,7 +8897,8 @@ input:focus-visible + .rds-radio__circle {
|
|
|
8849
8897
|
* sidebar/item/label/active and a 3 × 20 marker on the left in sidebar/item/indicator, so the current entry does not
|
|
8850
8898
|
* rest on colour alone.
|
|
8851
8899
|
* Section labels 11/14 bold, 16 above and 6 below, with a 14 chevron. Foot: who is signed in (12/16) and Sair.
|
|
8852
|
-
*
|
|
8900
|
+
* No tone: the Sidebar follows its container's mode. The brand-coloured bar is a `.ds-plate` around it (the brand
|
|
8901
|
+
* mode), the dark one a `.dark`.
|
|
8853
8902
|
*/
|
|
8854
8903
|
.rds-sidebar {
|
|
8855
8904
|
--_background: var(--sidebar-background);
|
|
@@ -8875,21 +8924,6 @@ input:focus-visible + .rds-radio__circle {
|
|
|
8875
8924
|
font-family: var(--type-font-stack);
|
|
8876
8925
|
}
|
|
8877
8926
|
|
|
8878
|
-
.rds-sidebar--dark {
|
|
8879
|
-
--_background: var(--sidebar-dark-background);
|
|
8880
|
-
--_label: var(--sidebar-dark-item-label-default);
|
|
8881
|
-
--_label-hover: var(--sidebar-dark-item-label-hover);
|
|
8882
|
-
--_hover: var(--sidebar-dark-item-background-hover);
|
|
8883
|
-
--_module: var(--sidebar-dark-module);
|
|
8884
|
-
--_user: var(--sidebar-dark-user);
|
|
8885
|
-
--_section: var(--sidebar-dark-section-label);
|
|
8886
|
-
--_count: var(--sidebar-dark-item-label-default);
|
|
8887
|
-
/* No dark ring token: the strongest text over the brand, which is what the ring needs to show there. */
|
|
8888
|
-
--_ring: var(--sidebar-dark-module);
|
|
8889
|
-
|
|
8890
|
-
border-right-color: transparent;
|
|
8891
|
-
}
|
|
8892
|
-
|
|
8893
8927
|
.rds-sidebar--collapsed {
|
|
8894
8928
|
width: var(--space-64);
|
|
8895
8929
|
}
|
|
@@ -9492,6 +9526,7 @@ input:focus-visible + .rds-radio__circle {
|
|
|
9492
9526
|
/*
|
|
9493
9527
|
* Stat (Content collection, stat/*): 8 between the text and the sparkline. Text: the label 14/20, the row (the
|
|
9494
9528
|
* value in type/value bold and the Delta, 8 apart, wrapping 4 below) and the caption 12/16, 4 apart.
|
|
9529
|
+
* tone neutral (default), success, danger, warning; muted greys a zero out.
|
|
9495
9530
|
* framed=true: 16 inside, a 1px border, corners radius/container. framed=false (the SummaryBar cell): 12 16, no border.
|
|
9496
9531
|
*/
|
|
9497
9532
|
.rds-stat {
|
|
@@ -9513,11 +9548,11 @@ input:focus-visible + .rds-radio__circle {
|
|
|
9513
9548
|
border-radius: var(--radius-container);
|
|
9514
9549
|
}
|
|
9515
9550
|
|
|
9516
|
-
.rds-stat--
|
|
9551
|
+
.rds-stat--success {
|
|
9517
9552
|
--_value: var(--stat-value-positive);
|
|
9518
9553
|
}
|
|
9519
9554
|
|
|
9520
|
-
.rds-stat--
|
|
9555
|
+
.rds-stat--danger {
|
|
9521
9556
|
--_value: var(--stat-value-negative);
|
|
9522
9557
|
}
|
|
9523
9558
|
|
|
@@ -9525,6 +9560,7 @@ input:focus-visible + .rds-radio__circle {
|
|
|
9525
9560
|
--_value: var(--stat-value-warning);
|
|
9526
9561
|
}
|
|
9527
9562
|
|
|
9563
|
+
/* muted (zero, nothing to see) wins over the tone: the Figma draws it only on neutral. */
|
|
9528
9564
|
.rds-stat--muted {
|
|
9529
9565
|
--_value: var(--stat-value-muted);
|
|
9530
9566
|
}
|
|
@@ -255,11 +255,9 @@
|
|
|
255
255
|
--tile-danger-soft-icon: var(--text-error);
|
|
256
256
|
--card-background: var(--surface-card);
|
|
257
257
|
--card-border: var(--border-default);
|
|
258
|
-
--card-footer-background: var(--surface-panel);
|
|
259
258
|
--card-title: var(--text-heading);
|
|
260
259
|
--card-description: var(--text-muted);
|
|
261
260
|
--card-tint-background: var(--surface-tint-default);
|
|
262
|
-
--card-tint-footer-background: var(--surface-tint-strong);
|
|
263
261
|
--kbd-background: var(--surface-muted);
|
|
264
262
|
--kbd-border: var(--border-default);
|
|
265
263
|
--kbd-label: var(--text-body);
|
|
@@ -951,12 +949,6 @@
|
|
|
951
949
|
--pagination-item-label-disabled: var(--text-disabled);
|
|
952
950
|
--pagination-summary: var(--text-muted);
|
|
953
951
|
--sidebar-item-count: var(--text-muted);
|
|
954
|
-
--sidebar-dark-background: var(--colors-primary-default);
|
|
955
|
-
--sidebar-dark-item-background-hover: var(--colors-primary-light);
|
|
956
|
-
--sidebar-dark-item-label-default: var(--text-on-primary);
|
|
957
|
-
--sidebar-dark-item-label-hover: var(--text-on-primary-strong);
|
|
958
|
-
--sidebar-dark-module: var(--text-on-primary-strong);
|
|
959
|
-
--sidebar-dark-user: var(--text-on-primary);
|
|
960
952
|
--breadcrumb-inverse-label-default: var(--text-on-primary);
|
|
961
953
|
--breadcrumb-inverse-label-hover: var(--text-on-primary-strong);
|
|
962
954
|
--breadcrumb-inverse-label-current: var(--text-on-primary-strong);
|
|
@@ -977,7 +969,6 @@
|
|
|
977
969
|
--tabs-dot-background: var(--colors-state-success);
|
|
978
970
|
--tabs-dot-indicator: var(--colors-state-success);
|
|
979
971
|
--sidebar-section-label: var(--text-subtle);
|
|
980
|
-
--sidebar-dark-section-label: var(--text-on-primary);
|
|
981
972
|
--sidebar-item-indicator: var(--colors-primary-default);
|
|
982
973
|
|
|
983
974
|
/* overlays */
|