@rojaostudio/ds 2.0.0-next.16 → 2.0.0-next.17

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 (64) hide show
  1. package/dist/components/avatar.d.ts +20 -12
  2. package/dist/components/avatar.js +8 -6
  3. package/dist/components/badge.d.ts +7 -6
  4. package/dist/components/badge.js +2 -1
  5. package/dist/components/breadcrumb.d.ts +4 -4
  6. package/dist/components/breadcrumb.js +1 -1
  7. package/dist/components/bubble.d.ts +26 -11
  8. package/dist/components/bubble.js +3 -3
  9. package/dist/components/button.d.ts +1 -1
  10. package/dist/components/card.d.ts +18 -9
  11. package/dist/components/card.js +4 -2
  12. package/dist/components/color-input.d.ts +1 -1
  13. package/dist/components/context-menu.d.ts +5 -2
  14. package/dist/components/data-table-header.js +1 -1
  15. package/dist/components/date-picker.d.ts +1 -1
  16. package/dist/components/dialog.d.ts +6 -3
  17. package/dist/components/dialog.js +2 -2
  18. package/dist/components/dropdown-menu.d.ts +5 -2
  19. package/dist/components/dropzone.d.ts +2 -2
  20. package/dist/components/dropzone.js +1 -1
  21. package/dist/components/file-input.d.ts +13 -8
  22. package/dist/components/file-input.js +24 -21
  23. package/dist/components/filter-chip.d.ts +11 -5
  24. package/dist/components/filter-chip.js +15 -6
  25. package/dist/components/heading.d.ts +9 -6
  26. package/dist/components/heading.js +1 -1
  27. package/dist/components/icon-button.d.ts +1 -1
  28. package/dist/components/image-upload.d.ts +2 -2
  29. package/dist/components/image-upload.js +1 -1
  30. package/dist/components/index.d.ts +6 -6
  31. package/dist/components/internal/button.d.ts +1 -1
  32. package/dist/components/internal/menu.d.ts +3 -2
  33. package/dist/components/internal/menu.js +1 -1
  34. package/dist/components/internal/toggle.d.ts +1 -1
  35. package/dist/components/item.d.ts +14 -7
  36. package/dist/components/item.js +5 -2
  37. package/dist/components/marker.d.ts +11 -3
  38. package/dist/components/marker.js +4 -3
  39. package/dist/components/progress.d.ts +3 -3
  40. package/dist/components/progress.js +2 -2
  41. package/dist/components/row-actions.d.ts +3 -0
  42. package/dist/components/row-actions.js +8 -4
  43. package/dist/components/sidebar.d.ts +8 -11
  44. package/dist/components/sidebar.js +4 -5
  45. package/dist/components/spinner.d.ts +9 -6
  46. package/dist/components/spinner.js +3 -3
  47. package/dist/components/star-rating.d.ts +3 -3
  48. package/dist/components/star-rating.js +2 -2
  49. package/dist/components/stat.d.ts +18 -6
  50. package/dist/components/stat.js +9 -3
  51. package/dist/components/status.d.ts +4 -4
  52. package/dist/components/status.js +2 -2
  53. package/dist/components/summary-bar.d.ts +3 -2
  54. package/dist/components/summary-bar.js +10 -1
  55. package/dist/components/tile.d.ts +5 -5
  56. package/dist/components/tile.js +2 -2
  57. package/dist/components/time-picker.d.ts +1 -1
  58. package/dist/components/toast.d.ts +1 -1
  59. package/dist/components/toggle.d.ts +1 -1
  60. package/dist/components/typing-indicator.d.ts +2 -2
  61. package/dist/components/typing-indicator.js +1 -1
  62. package/package.json +1 -1
  63. package/styles/rds/components-styles.css +33 -42
  64. 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--default {
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
- /* The brand's highlighter: the one badge that reads as a marker. */
669
- .rds-badge--accent-highlight {
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
- .rds-bubble--muted {
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
- .rds-bubble--tinted {
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. default pads 24, sm pads 16; 24 between the
1753
- * header, the content and the actions (sm: 16). Corners in radius/container.
1754
- * default: card/background, a card/border hairline and elevation/raised.
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
- * tint: the brand's light plate (card/tint/background), no border, no shadow, title in card/tint/title.
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--tint {
1788
+ .rds-card--soft {
1786
1789
  --_title: var(--card-tint-title);
1787
1790
 
1788
1791
  border-color: transparent;
@@ -4340,14 +4343,14 @@ input:focus-visible + .rds-checkbox__box {
4340
4343
  }
4341
4344
 
4342
4345
  @media (hover: hover) {
4343
- .rds-filter-chip:not(.rds-filter-chip--active, [aria-disabled='true']):hover {
4346
+ .rds-filter-chip:not(.rds-filter-chip--pressed, [aria-disabled='true']):hover {
4344
4347
  --_surface: var(--filter-chip-surface-hover);
4345
4348
  --_stroke: var(--filter-chip-stroke-hover);
4346
4349
  --_text: var(--filter-chip-text-hover);
4347
4350
  }
4348
4351
  }
4349
4352
 
4350
- .rds-filter-chip--active {
4353
+ .rds-filter-chip--pressed {
4351
4354
  --_surface: color-mix(in srgb, var(--filter-chip-surface-active) 12%, transparent);
4352
4355
  --_stroke: var(--filter-chip-stroke-active);
4353
4356
  --_text: var(--filter-chip-text-active);
@@ -4395,7 +4398,7 @@ input:focus-visible + .rds-checkbox__box {
4395
4398
  border-color: CanvasText;
4396
4399
  }
4397
4400
 
4398
- .rds-filter-chip--active {
4401
+ .rds-filter-chip--pressed {
4399
4402
  border-color: Highlight;
4400
4403
  outline: var(--border-width) solid Highlight;
4401
4404
  }
@@ -6562,7 +6565,7 @@ body:has(.rds-modal) {
6562
6565
  /* components/item.css */
6563
6566
  /* @tokens item */
6564
6567
  /*
6565
- * Item (Content collection, item/*): one list row, at least 44 tall. default pads 12 16, gap 16; sm pads 8 12,
6568
+ * Item (Content collection, item/*): one list row, at least 44 tall. md pads 12 16, gap 16; sm pads 8 12,
6566
6569
  * gap 12. Corners in radius/container. Title in label (16/24 medium), description in small (14/20); sm one step down.
6567
6570
  */
6568
6571
  .rds-item-group {
@@ -6574,11 +6577,11 @@ body:has(.rds-modal) {
6574
6577
  list-style: none;
6575
6578
  }
6576
6579
 
6577
- .rds-item-group:has(> .rds-item--default) {
6580
+ .rds-item-group:has(> .rds-item--ghost) {
6578
6581
  gap: 0;
6579
6582
  }
6580
6583
 
6581
- .rds-item-group > .rds-item--default + .rds-item--default {
6584
+ .rds-item-group > .rds-item--ghost + .rds-item--ghost {
6582
6585
  border-top: var(--border-width) solid var(--item-border);
6583
6586
  }
6584
6587
 
@@ -6604,7 +6607,7 @@ body:has(.rds-modal) {
6604
6607
  --_gap: var(--space-12);
6605
6608
  }
6606
6609
 
6607
- .rds-item--default {
6610
+ .rds-item--ghost {
6608
6611
  padding: var(--_pad-y) var(--_pad-x);
6609
6612
  border-width: 0;
6610
6613
  border-radius: 0;
@@ -6614,7 +6617,7 @@ body:has(.rds-modal) {
6614
6617
  border-color: var(--item-border);
6615
6618
  }
6616
6619
 
6617
- .rds-item--muted {
6620
+ .rds-item--soft {
6618
6621
  background: var(--item-muted-background);
6619
6622
  }
6620
6623
 
@@ -6660,7 +6663,7 @@ body:has(.rds-modal) {
6660
6663
 
6661
6664
  @media (forced-colors: active) {
6662
6665
  .rds-item--outline,
6663
- .rds-item--muted {
6666
+ .rds-item--soft {
6664
6667
  border-color: CanvasText;
6665
6668
  }
6666
6669
  }
@@ -8849,7 +8852,8 @@ input:focus-visible + .rds-radio__circle {
8849
8852
  * sidebar/item/label/active and a 3 × 20 marker on the left in sidebar/item/indicator, so the current entry does not
8850
8853
  * rest on colour alone.
8851
8854
  * Section labels 11/14 bold, 16 above and 6 below, with a 14 chevron. Foot: who is signed in (12/16) and Sair.
8852
- * dark (deprecated in the Figma) reads sidebar/dark/*; the current entry stays the light pill.
8855
+ * No tone: the Sidebar follows its container's mode. The brand-coloured bar is a `.ds-plate` around it (the brand
8856
+ * mode), the dark one a `.dark`.
8853
8857
  */
8854
8858
  .rds-sidebar {
8855
8859
  --_background: var(--sidebar-background);
@@ -8875,21 +8879,6 @@ input:focus-visible + .rds-radio__circle {
8875
8879
  font-family: var(--type-font-stack);
8876
8880
  }
8877
8881
 
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
8882
  .rds-sidebar--collapsed {
8894
8883
  width: var(--space-64);
8895
8884
  }
@@ -9492,6 +9481,7 @@ input:focus-visible + .rds-radio__circle {
9492
9481
  /*
9493
9482
  * Stat (Content collection, stat/*): 8 between the text and the sparkline. Text: the label 14/20, the row (the
9494
9483
  * value in type/value bold and the Delta, 8 apart, wrapping 4 below) and the caption 12/16, 4 apart.
9484
+ * tone neutral (default), success, danger, warning; muted greys a zero out.
9495
9485
  * framed=true: 16 inside, a 1px border, corners radius/container. framed=false (the SummaryBar cell): 12 16, no border.
9496
9486
  */
9497
9487
  .rds-stat {
@@ -9513,11 +9503,11 @@ input:focus-visible + .rds-radio__circle {
9513
9503
  border-radius: var(--radius-container);
9514
9504
  }
9515
9505
 
9516
- .rds-stat--positive {
9506
+ .rds-stat--success {
9517
9507
  --_value: var(--stat-value-positive);
9518
9508
  }
9519
9509
 
9520
- .rds-stat--negative {
9510
+ .rds-stat--danger {
9521
9511
  --_value: var(--stat-value-negative);
9522
9512
  }
9523
9513
 
@@ -9525,6 +9515,7 @@ input:focus-visible + .rds-radio__circle {
9525
9515
  --_value: var(--stat-value-warning);
9526
9516
  }
9527
9517
 
9518
+ /* muted (zero, nothing to see) wins over the tone: the Figma draws it only on neutral. */
9528
9519
  .rds-stat--muted {
9529
9520
  --_value: var(--stat-value-muted);
9530
9521
  }
@@ -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 */