@redseed/redseed-ui-tailwindcss 7.64.0 → 7.66.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.
Files changed (58) hide show
  1. package/components/activity_feed.css +1 -1
  2. package/components/badge.css +4 -4
  3. package/components/badge_group.css +8 -8
  4. package/components/breadcrumbs.css +2 -2
  5. package/components/button_group_item.css +2 -2
  6. package/components/button_slot.css +7 -7
  7. package/components/card_group.css +3 -3
  8. package/components/column_picker.css +3 -3
  9. package/components/comment.css +16 -16
  10. package/components/comments.css +1 -1
  11. package/components/drawer.css +5 -5
  12. package/components/dropdown_menu.css +1 -1
  13. package/components/dropdown_option.css +1 -1
  14. package/components/empty.css +3 -3
  15. package/components/feed_item.css +4 -4
  16. package/components/form_field_checkbox.css +1 -1
  17. package/components/form_field_combobox.css +7 -7
  18. package/components/form_field_date_range.css +9 -9
  19. package/components/form_field_radio_group.css +2 -2
  20. package/components/form_field_select.css +3 -3
  21. package/components/form_field_slot.css +5 -5
  22. package/components/form_field_text.css +2 -2
  23. package/components/form_field_textarea.css +1 -1
  24. package/components/form_field_tree_select.css +9 -9
  25. package/components/form_field_uploader.css +3 -3
  26. package/components/form_fieldset.css +5 -5
  27. package/components/form_slot.css +6 -6
  28. package/components/link_slot.css +1 -1
  29. package/components/linked_list_item.css +1 -1
  30. package/components/list.css +3 -3
  31. package/components/list_control.css +2 -2
  32. package/components/list_item.css +6 -6
  33. package/components/message_box.css +6 -6
  34. package/components/meta_info.css +1 -1
  35. package/components/metric_card.css +213 -2
  36. package/components/modal.css +8 -8
  37. package/components/pagination.css +4 -4
  38. package/components/pagination_item.css +1 -1
  39. package/components/progress_bar.css +1 -1
  40. package/components/progress_tracker.css +3 -3
  41. package/components/progress_tracker_step.css +3 -3
  42. package/components/radio_card.css +3 -3
  43. package/components/read_more.css +1 -1
  44. package/components/record_count.css +1 -1
  45. package/components/section_header.css +1 -1
  46. package/components/section_slider.css +3 -3
  47. package/components/switcher.css +3 -3
  48. package/components/switcher_item.css +2 -2
  49. package/components/tab_slider_item.css +1 -1
  50. package/components/table.css +1 -1
  51. package/components/td.css +1 -1
  52. package/components/td_user.css +1 -1
  53. package/components/th.css +4 -4
  54. package/components/toggle.css +2 -2
  55. package/components/tooltip.css +1 -1
  56. package/components/two_column_layout.css +3 -3
  57. package/package.json +1 -1
  58. package/tokens.css +18 -3
@@ -9,21 +9,21 @@
9
9
  }
10
10
 
11
11
  .rsui-progress-tracker-step--sm {
12
- @apply gap-2;
12
+ @apply gap-space-xs;
13
13
 
14
14
  @apply after:top-3.5;
15
15
  @apply after:-left-4;
16
16
  }
17
17
 
18
18
  .rsui-progress-tracker-step--md {
19
- @apply gap-2;
19
+ @apply gap-space-xs;
20
20
 
21
21
  @apply after:top-3.5 sm:after:top-4.5;
22
22
  @apply after:-left-4;
23
23
  }
24
24
 
25
25
  .rsui-progress-tracker-step--lg {
26
- @apply gap-2 sm:gap-4;
26
+ @apply gap-space-xs sm:gap-space-md;
27
27
 
28
28
  @apply after:top-3.5 sm:after:top-6;
29
29
  @apply after:-left-4 sm:after:-left-8;
@@ -52,7 +52,7 @@
52
52
  }
53
53
 
54
54
  .rsui-radio-card__title-row {
55
- @apply relative text-xl leading-[1.3] font-medium text-text-primary line-clamp-3 min-h-6 pr-8;
55
+ @apply relative text-xl leading-[1.3] font-medium text-text-primary line-clamp-3 min-h-6 pr-space-xl;
56
56
 
57
57
  @apply after:content-[''] after:absolute after:top-0 after:right-0;
58
58
  @apply after:size-6 after:rounded-full after:transition-all;
@@ -60,7 +60,7 @@
60
60
  }
61
61
 
62
62
  .rsui-radio-card__title-row--radio-start {
63
- @apply pl-8 pr-0;
63
+ @apply pl-space-xl pr-0;
64
64
  @apply after:left-0 after:right-auto;
65
65
  }
66
66
 
@@ -88,7 +88,7 @@
88
88
  }
89
89
 
90
90
  .rsui-radio-card__content-row--radio-start {
91
- @apply pl-8 pr-0;
91
+ @apply pl-space-xl pr-0;
92
92
  }
93
93
 
94
94
  .rsui-radio-card__meta-row {
@@ -3,6 +3,6 @@
3
3
  }
4
4
 
5
5
  .rsui-read-more__link {
6
- @apply mt-4;
6
+ @apply mt-space-md;
7
7
  }
8
8
 
@@ -1,4 +1,4 @@
1
1
  .record-count {
2
- @apply my-2 text-sm text-text-secondary;
2
+ @apply my-space-xs text-sm text-text-secondary;
3
3
  }
4
4
 
@@ -47,7 +47,7 @@
47
47
  between two elements. Same category as the control offsets in checkbox_card and
48
48
  card_group, which are also deliberately raw. */
49
49
  .rsui-section-header__text--with-toolbar {
50
- @apply pt-1;
50
+ @apply pt-space-xxs;
51
51
  }
52
52
 
53
53
  .rsui-section-header__title {
@@ -59,7 +59,7 @@
59
59
  * width and still grows if the consumer puts something wider inside.
60
60
  */
61
61
  .rsui-section-slider__view-all {
62
- @apply min-w-64 items-center justify-center gap-3 border-dashed p-space-lg text-center;
62
+ @apply min-w-64 items-center justify-center gap-space-sm border-dashed p-space-lg text-center;
63
63
  @apply font-semibold;
64
64
  @apply hover:cursor-pointer hover:shadow-md;
65
65
  @apply focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-border-primary outline-hidden;
@@ -162,7 +162,7 @@
162
162
  * use it.
163
163
  */
164
164
  .rsui-section-slider__container {
165
- @apply relative flex gap-x-3 lg:gap-x-6 overflow-x-auto lg:overflow-x-hidden focus:outline-hidden scroll-smooth snap-x snap-mandatory scroll-pl-space-lg;
165
+ @apply relative flex gap-x-space-sm lg:gap-x-space-lg overflow-x-auto lg:overflow-x-hidden focus:outline-hidden scroll-smooth snap-x snap-mandatory scroll-pl-space-lg;
166
166
  @apply focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-border-primary;
167
167
  }
168
168
 
@@ -242,7 +242,7 @@
242
242
  * be covering content to duplicate a gesture the user already has.
243
243
  */
244
244
  .rsui-section-slider__actions {
245
- @apply hidden lg:flex absolute inset-0 z-10 items-center justify-between px-3 pointer-events-none;
245
+ @apply hidden lg:flex absolute inset-0 z-10 items-center justify-between px-space-sm pointer-events-none;
246
246
  }
247
247
 
248
248
  /*
@@ -1,6 +1,6 @@
1
1
  .rsui-switcher {
2
- @apply w-fit flex flex-col sm:flex-row sm:items-center overflow-hidden gap-1;
3
- @apply bg-background-disabled p-1 rounded-xl;
2
+ @apply w-fit flex flex-col sm:flex-row sm:items-center overflow-hidden gap-space-xxs;
3
+ @apply bg-background-disabled p-space-xxs rounded-xl;
4
4
  }
5
5
 
6
6
  .rsui-switcher--full {
@@ -89,7 +89,7 @@
89
89
  Every rule below has to out-specify a same-specificity rule above it, so this
90
90
  block must stay last in the file. */
91
91
  .rsui-switcher--chips {
92
- @apply w-full flex-row items-center flex-nowrap gap-2;
92
+ @apply w-full flex-row items-center flex-nowrap gap-space-xs;
93
93
  @apply bg-transparent p-0 rounded-none;
94
94
 
95
95
  /* The default is overflow-hidden; this row is meant to scroll. Scrollbar
@@ -12,8 +12,8 @@
12
12
  color: inherit;
13
13
 
14
14
  @apply h-fit inline-flex shrink-0 items-center justify-center select-none outline-hidden whitespace-nowrap will-change-transform cursor-pointer;
15
- @apply font-semibold gap-2 rounded-lg border border-transparent transition;
16
- @apply text-base px-3 py-2;
15
+ @apply font-semibold gap-space-xs rounded-lg border border-transparent transition;
16
+ @apply text-base px-space-sm py-space-xs;
17
17
 
18
18
  /* The class list above sets outline-hidden, which previously left the item with no focus
19
19
  indicator at all once it became focusable. Drawn inset because .rsui-switcher is
@@ -15,7 +15,7 @@
15
15
  color: inherit;
16
16
 
17
17
  @apply inline-flex shrink-0 items-center justify-center select-none cursor-pointer whitespace-nowrap;
18
- @apply text-base px-4 py-3 gap-2 border-b-2 border-transparent -mb-px;
18
+ @apply text-base px-space-md py-space-sm gap-space-xs border-b-2 border-transparent -mb-px;
19
19
  @apply text-text-secondary;
20
20
 
21
21
  /* Focus is drawn inside the box: .rsui-tab-slider is an overflow-x-auto scroller, so an
@@ -58,5 +58,5 @@
58
58
  }
59
59
 
60
60
  .rsui-table__footer {
61
- @apply w-full border-t border-border-primary overflow-hidden py-3 px-6;
61
+ @apply w-full border-t border-border-primary overflow-hidden py-space-sm px-space-lg;
62
62
  }
package/components/td.css CHANGED
@@ -1,6 +1,6 @@
1
1
  .rsui-td {
2
2
  @apply text-left;
3
- @apply py-3 px-5 text-sm leading-6 text-text-secondary;
3
+ @apply py-space-sm px-5 text-sm leading-6 text-text-secondary;
4
4
  }
5
5
 
6
6
  .rsui-td--center {
@@ -1,5 +1,5 @@
1
1
  .rsui-td-user {
2
- @apply flex items-center gap-3;
2
+ @apply flex items-center gap-space-sm;
3
3
  }
4
4
 
5
5
  .rsui-td-user__avatar {
package/components/th.css CHANGED
@@ -1,6 +1,6 @@
1
1
  .rsui-th {
2
2
  @apply text-left;
3
- @apply py-3 px-5 text-sm leading-6 text-text-secondary;
3
+ @apply py-space-sm px-5 text-sm leading-6 text-text-secondary;
4
4
  }
5
5
 
6
6
  .rsui-th--center {
@@ -55,7 +55,7 @@
55
55
  }
56
56
 
57
57
  .rsui-th__content {
58
- @apply inline-flex gap-1 items-center;
58
+ @apply inline-flex gap-space-xxs items-center;
59
59
  }
60
60
 
61
61
  /* Sortable header trigger — a real <button> reset to match the header text,
@@ -65,8 +65,8 @@
65
65
  valid click target. Focus ring lives here (the th itself is no longer focusable).
66
66
  Default justify-start matches the base left-aligned header. */
67
67
  .rsui-th__button {
68
- @apply flex w-full gap-1 items-center justify-start;
69
- @apply py-3 px-5 cursor-pointer m-0;
68
+ @apply flex w-full gap-space-xxs items-center justify-start;
69
+ @apply py-space-sm px-5 cursor-pointer m-0;
70
70
  @apply focus-visible:outline-2 focus-visible:outline-border-primary;
71
71
  font: inherit;
72
72
  color: inherit;
@@ -1,5 +1,5 @@
1
1
  .rsui-toggle {
2
- @apply flex flex-col gap-y-2 border-0 bg-transparent p-0;
2
+ @apply flex flex-col gap-y-space-xs border-0 bg-transparent p-0;
3
3
  }
4
4
 
5
5
  .rsui-toggle--disabled label {
@@ -21,7 +21,7 @@
21
21
  }
22
22
 
23
23
  .rsui-toggle__control {
24
- @apply justify-between flex items-center gap-x-4;
24
+ @apply justify-between flex items-center gap-x-space-md;
25
25
  }
26
26
 
27
27
  .rsui-toggle__control--label-end {
@@ -55,7 +55,7 @@
55
55
 
56
56
  /* Content panel — positioned via inline styles (fixed, teleported to body) */
57
57
  .rsui-tooltip__content {
58
- @apply relative px-3 py-2 w-max max-w-60;
58
+ @apply relative px-space-sm py-space-xs w-max max-w-60;
59
59
  @apply text-sm text-text-on-color bg-background-primary-contrast rounded-lg shadow-lg;
60
60
  @apply pointer-events-auto;
61
61
  }
@@ -3,7 +3,7 @@
3
3
  }
4
4
 
5
5
  .rsui-two-column-layout__container {
6
- @apply flex flex-col @4xl:flex-row gap-6 @4xl:gap-8;
6
+ @apply flex flex-col @4xl:flex-row gap-space-lg @4xl:gap-space-xl;
7
7
  }
8
8
 
9
9
  .rsui-two-column-layout__container--top-aside {
@@ -15,9 +15,9 @@
15
15
  }
16
16
 
17
17
  .rsui-two-column-layout__main {
18
- @apply flex-1 w-full @4xl:w-(--phi-inverse-percentage) overflow-auto flex flex-col gap-6 @4xl:gap-8;
18
+ @apply flex-1 w-full @4xl:w-(--phi-inverse-percentage) overflow-auto flex flex-col gap-space-lg @4xl:gap-space-xl;
19
19
  }
20
20
 
21
21
  .rsui-two-column-layout__aside {
22
- @apply shrink-0 w-full @4xl:w-(--phi-inverse-squared-percentage) overflow-auto flex flex-col gap-6 @4xl:gap-8;
22
+ @apply shrink-0 w-full @4xl:w-(--phi-inverse-squared-percentage) overflow-auto flex flex-col gap-space-lg @4xl:gap-space-xl;
23
23
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redseed/redseed-ui-tailwindcss",
3
- "version": "7.64.0",
3
+ "version": "7.66.0",
4
4
  "description": "RedSeed UI Tailwindcss",
5
5
  "main": "index.js",
6
6
  "style": "index.css",
package/tokens.css CHANGED
@@ -84,12 +84,27 @@
84
84
  --color-button-separator: var(--Colors-Grey-200);
85
85
  --color-button-disabled: var(--Colors-Grey-200);
86
86
 
87
- /* Spacing */
88
- --spacing-space-xxs: 0.25rem; /* 4px */
87
+ /* Spacing.
88
+
89
+ The brand runs an 8px rhythm with exactly seven values: 8, 16, 24, 32, 48, 64, 96.
90
+ This scale used to stop at 32, so the top three had no token at all and every use
91
+ of 48 or 64 had to be written as a raw utility — which is how they escaped review.
92
+ 2xl and 3xl close that gap.
93
+
94
+ xxs (4px) and sm (12px) are NOT on the brand rhythm. They are kept because they are
95
+ already used widely and two of the three known 4px cases are the deliberate TIGHT
96
+ PAIR exception (see card_header.css), but they are the values to justify in review:
97
+ CardSpacing.test.js treats them as off-scale and requires a marker.
98
+
99
+ 96px has no token yet — nothing in the library uses it. Add 4xl when something does,
100
+ rather than shipping a token with no caller. */
101
+ --spacing-space-xxs: 0.25rem; /* 4px — off the brand rhythm */
89
102
  --spacing-space-xs: 0.5rem; /* 8px */
90
- --spacing-space-sm: 0.75rem; /* 12px */
103
+ --spacing-space-sm: 0.75rem; /* 12px — off the brand rhythm */
91
104
  --spacing-space-md: 1rem; /* 16px */
92
105
  --spacing-space-lg: 1.5rem; /* 24px */
93
106
  --spacing-space-xl: 2rem; /* 32px */
107
+ --spacing-space-2xl: 3rem; /* 48px */
108
+ --spacing-space-3xl: 4rem; /* 64px */
94
109
 
95
110
  }