@robr0/design-system 0.10.0 → 0.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.
Files changed (125) hide show
  1. package/README.md +9 -8
  2. package/charts.d.ts +1 -0
  3. package/charts.js +2 -0
  4. package/components/AgentPlan/AgentPlan.css +14 -3
  5. package/components/AiButton/AiButton.css +1 -1
  6. package/components/Alert/Alert.css +9 -0
  7. package/components/AlertDialog/AlertDialog.css +3 -1
  8. package/components/AlertDialog/AlertDialog.js +2 -3
  9. package/components/AppLayout/AppLayout.d.ts +7 -1
  10. package/components/AppLayout/AppLayout.js +2 -1
  11. package/components/AppSidebar/AppSidebar.css +113 -40
  12. package/components/AppSidebar/AppSidebar.d.ts +14 -1
  13. package/components/AppSidebar/AppSidebar.js +26 -17
  14. package/components/Badge/Badge.css +4 -5
  15. package/components/Card/Card.css +7 -2
  16. package/components/CardStack/CardStack.css +106 -0
  17. package/components/CardStack/CardStack.d.ts +44 -0
  18. package/components/CardStack/CardStack.js +140 -0
  19. package/components/Carousel/Carousel.css +9 -0
  20. package/components/Carousel/Carousel.js +37 -4
  21. package/components/Chart/AreaChart.d.ts +5 -1
  22. package/components/Chart/AreaChart.js +11 -9
  23. package/components/Chart/BarChart.d.ts +3 -1
  24. package/components/Chart/BarChart.js +3 -3
  25. package/components/Chart/Chart.css +45 -0
  26. package/components/Chart/ComboChart.d.ts +40 -0
  27. package/components/Chart/ComboChart.js +142 -0
  28. package/components/Chart/LineChart.d.ts +3 -1
  29. package/components/Chart/LineChart.js +7 -6
  30. package/components/Chart/PieChart.d.ts +3 -1
  31. package/components/Chart/PieChart.js +5 -18
  32. package/components/Chart/RadarChart.d.ts +3 -1
  33. package/components/Chart/RadarChart.js +8 -7
  34. package/components/Chart/RadialChart.d.ts +7 -1
  35. package/components/Chart/RadialChart.js +53 -58
  36. package/components/Chart/ScatterChart.d.ts +3 -1
  37. package/components/Chart/ScatterChart.js +6 -16
  38. package/components/Chart/StackedBarChart.d.ts +3 -1
  39. package/components/Chart/StackedBarChart.js +5 -18
  40. package/components/Chart/Treemap.d.ts +3 -1
  41. package/components/Chart/Treemap.js +6 -20
  42. package/components/Chart/palette.d.ts +1 -0
  43. package/components/Chart/palette.js +17 -0
  44. package/components/ChatMarker/ChatMarker.css +9 -0
  45. package/components/ChatMessage/ChatMessage.css +16 -0
  46. package/components/ChatThread/ChatThread.js +2 -2
  47. package/components/Chip/Chip.css +9 -0
  48. package/components/CodeBlock/CodeBlock.css +10 -1
  49. package/components/CodeBlock/CodeBlock.js +2 -1
  50. package/components/ColorPicker/ColorPicker.js +10 -0
  51. package/components/Combobox/Combobox.css +9 -0
  52. package/components/CommandPalette/CommandPalette.css +9 -0
  53. package/components/CommandPalette/CommandPalette.js +31 -5
  54. package/components/Composer/Composer.css +118 -0
  55. package/components/Composer/Composer.d.ts +7 -0
  56. package/components/Composer/Composer.js +7 -1
  57. package/components/ContactCard/ContactCard.css +9 -0
  58. package/components/ContextMenu/ContextMenu.js +39 -3
  59. package/components/DatePicker/DatePicker.js +16 -0
  60. package/components/Dialog/Dialog.css +3 -1
  61. package/components/Dialog/Dialog.js +5 -4
  62. package/components/DocumentChip/DocumentChip.css +9 -0
  63. package/components/Dropdown/Dropdown.js +22 -3
  64. package/components/DropdownMenu/DropdownMenu.js +43 -6
  65. package/components/EmptyState/EmptyState.css +9 -0
  66. package/components/FileInput/FileInput.css +9 -0
  67. package/components/FunnelChart/FunnelChart.css +41 -0
  68. package/components/FunnelChart/FunnelChart.d.ts +40 -0
  69. package/components/FunnelChart/FunnelChart.js +48 -0
  70. package/components/Globe/Globe.css +155 -0
  71. package/components/Globe/Globe.d.ts +96 -0
  72. package/components/Globe/Globe.js +415 -0
  73. package/components/InterruptCard/InterruptCard.css +27 -17
  74. package/components/InterruptCard/InterruptCard.d.ts +1 -1
  75. package/components/InterruptCard/InterruptCard.js +1 -1
  76. package/components/LegendTile/LegendTile.css +60 -0
  77. package/components/LegendTile/LegendTile.d.ts +30 -0
  78. package/components/LegendTile/LegendTile.js +21 -0
  79. package/components/MapCallout/MapCallout.css +46 -0
  80. package/components/MapCallout/MapCallout.d.ts +29 -0
  81. package/components/MapCallout/MapCallout.js +17 -0
  82. package/components/MapLegend/MapLegend.css +88 -0
  83. package/components/MapLegend/MapLegend.d.ts +39 -0
  84. package/components/MapLegend/MapLegend.js +68 -0
  85. package/components/MessageActions/MessageActions.css +9 -0
  86. package/components/MessageCard/MessageCard.css +68 -16
  87. package/components/MessageCard/MessageCard.d.ts +1 -1
  88. package/components/MessageCard/MessageCard.js +6 -4
  89. package/components/ModelPicker/ModelPicker.css +4 -1
  90. package/components/ModelPicker/ModelPicker.js +43 -1
  91. package/components/NotificationCenter/NotificationCenter.css +9 -0
  92. package/components/NotificationCenter/NotificationCenter.js +26 -10
  93. package/components/NumberInput/NumberInput.css +9 -0
  94. package/components/Panel/Panel.css +26 -0
  95. package/components/Panel/Panel.d.ts +22 -0
  96. package/components/Panel/Panel.js +19 -0
  97. package/components/Popover/Popover.css +3 -1
  98. package/components/Popover/Popover.js +2 -1
  99. package/components/SourceChip/SourceChip.css +9 -0
  100. package/components/Stat/Stat.css +44 -2
  101. package/components/Stat/Stat.d.ts +3 -1
  102. package/components/Stat/Stat.js +7 -1
  103. package/components/Stepper/Stepper.css +9 -0
  104. package/components/TagInput/TagInput.css +9 -0
  105. package/components/TimePicker/TimePicker.js +4 -1
  106. package/components/Toast/Toast.css +32 -11
  107. package/components/Toast/Toast.js +5 -4
  108. package/components/ToggleGroup/ToggleGroup.css +9 -0
  109. package/components/ToolCall/ToolCall.css +18 -6
  110. package/components/Tooltip/Tooltip.js +20 -16
  111. package/components/registry.json +70 -0
  112. package/components/registry.json.d.ts +70 -0
  113. package/components/registry.json.js +2 -2
  114. package/index.d.ts +7 -0
  115. package/index.js +14 -0
  116. package/package.json +5 -1
  117. package/tokens/motion.d.ts +23 -0
  118. package/tokens/motion.js +14 -0
  119. package/tokens/registry.json +21 -1
  120. package/tokens/registry.json.d.ts +21 -1
  121. package/tokens/registry.json.js +1 -1
  122. package/tokens/tokens-dark.css +14 -0
  123. package/tokens/tokens-light.css +22 -0
  124. package/tokens/tokens-primitives.css +2 -0
  125. package/tokens/tokens-typography.css +32 -5
@@ -28,6 +28,7 @@ declare const _default: {
28
28
  "--color-bg-container-primary-transparent",
29
29
  "--color-bg-container-secondary",
30
30
  "--color-bg-container-tertiary",
31
+ "--color-bg-glass",
31
32
  "--color-bg-page-inverse",
32
33
  "--color-bg-page-primary",
33
34
  "--color-chart-contribution-0",
@@ -35,6 +36,13 @@ declare const _default: {
35
36
  "--color-chart-contribution-2",
36
37
  "--color-chart-contribution-3",
37
38
  "--color-chart-contribution-4",
39
+ "--color-chart-series-1",
40
+ "--color-chart-series-2",
41
+ "--color-chart-series-3",
42
+ "--color-chart-series-4",
43
+ "--color-chart-series-5",
44
+ "--color-chart-series-6",
45
+ "--color-chart-series-7",
38
46
  "--color-chat-bubble-received-bg",
39
47
  "--color-chat-bubble-received-text",
40
48
  "--color-chat-bubble-sent-bg",
@@ -81,9 +89,16 @@ declare const _default: {
81
89
  "--color-text-on-inverse",
82
90
  "--color-text-primary",
83
91
  "--color-text-secondary",
84
- "--color-text-tertiary"
92
+ "--color-text-tertiary",
93
+ "--color-trend-down",
94
+ "--color-trend-up"
85
95
  ],
86
96
  "typography": [
97
+ "--font-caption-family",
98
+ "--font-caption-letter-spacing",
99
+ "--font-caption-line-height",
100
+ "--font-caption-size",
101
+ "--font-caption-weight",
87
102
  "--font-display-1-family",
88
103
  "--font-display-1-letter-spacing",
89
104
  "--font-display-1-line-height",
@@ -121,6 +136,11 @@ declare const _default: {
121
136
  "--font-mega-2-line-height",
122
137
  "--font-mega-2-size",
123
138
  "--font-mega-2-weight",
139
+ "--font-overline-family",
140
+ "--font-overline-letter-spacing",
141
+ "--font-overline-line-height",
142
+ "--font-overline-size",
143
+ "--font-overline-weight",
124
144
  "--font-paragraph-em-family",
125
145
  "--font-paragraph-em-letter-spacing",
126
146
  "--font-paragraph-em-line-height",
@@ -1,4 +1,4 @@
1
- const categories = { "colour": ["--color-action-icon-active", "--color-action-icon-default", "--color-action-passive-bg", "--color-action-passive-bg-active", "--color-action-passive-bg-hover", "--color-action-passive-text", "--color-action-primary-bg", "--color-action-primary-bg-active", "--color-action-primary-bg-hover", "--color-action-primary-border", "--color-action-primary-border-secondary", "--color-action-primary-border-tertiary", "--color-action-primary-text", "--color-action-primary-text-active", "--color-action-primary-text-secondary", "--color-action-primary-text-tertiary", "--color-ai-gradient-end", "--color-ai-gradient-mid", "--color-ai-gradient-start", "--color-bg-container-border", "--color-bg-container-inverse", "--color-bg-container-primary", "--color-bg-container-primary-semi", "--color-bg-container-primary-transparent", "--color-bg-container-secondary", "--color-bg-container-tertiary", "--color-bg-page-inverse", "--color-bg-page-primary", "--color-chart-contribution-0", "--color-chart-contribution-1", "--color-chart-contribution-2", "--color-chart-contribution-3", "--color-chart-contribution-4", "--color-chat-bubble-received-bg", "--color-chat-bubble-received-text", "--color-chat-bubble-sent-bg", "--color-chat-bubble-sent-text", "--color-control-thumb", "--color-core-accent-amber", "--color-core-accent-cobalt", "--color-core-accent-coral", "--color-core-accent-gold", "--color-core-accent-mint", "--color-core-accent-violet", "--color-core-ui-primary", "--color-core-ui-secondary", "--color-divider", "--color-icon-primary", "--color-icon-secondary", "--color-input-bg-disabled", "--color-input-bg-primary", "--color-input-border-disabled", "--color-input-border-hover", "--color-input-border-primary", "--color-input-border-selected", "--color-input-text-disabled", "--color-input-text-inverse", "--color-input-text-placeholder", "--color-input-text-primary", "--color-scrim", "--color-status-error-bg", "--color-status-error-border", "--color-status-error-text", "--color-status-info-bg", "--color-status-info-border", "--color-status-info-text", "--color-status-neutral-bg", "--color-status-neutral-border", "--color-status-neutral-text", "--color-status-positive-bg", "--color-status-positive-border", "--color-status-positive-text", "--color-status-warning-bg", "--color-status-warning-border", "--color-status-warning-text", "--color-text-inverse", "--color-text-on-inverse", "--color-text-primary", "--color-text-secondary", "--color-text-tertiary"], "typography": ["--font-display-1-family", "--font-display-1-letter-spacing", "--font-display-1-line-height", "--font-display-1-size", "--font-display-1-weight", "--font-display-2-family", "--font-display-2-letter-spacing", "--font-display-2-line-height", "--font-display-2-size", "--font-display-2-weight", "--font-family-code", "--font-family-primary", "--font-heading-1-family", "--font-heading-1-letter-spacing", "--font-heading-1-line-height", "--font-heading-1-size", "--font-heading-1-weight", "--font-heading-2-family", "--font-heading-2-letter-spacing", "--font-heading-2-line-height", "--font-heading-2-size", "--font-heading-2-weight", "--font-heading-3-family", "--font-heading-3-letter-spacing", "--font-heading-3-line-height", "--font-heading-3-size", "--font-heading-3-weight", "--font-mega-1-family", "--font-mega-1-letter-spacing", "--font-mega-1-line-height", "--font-mega-1-size", "--font-mega-1-weight", "--font-mega-2-family", "--font-mega-2-letter-spacing", "--font-mega-2-line-height", "--font-mega-2-size", "--font-mega-2-weight", "--font-paragraph-em-family", "--font-paragraph-em-letter-spacing", "--font-paragraph-em-line-height", "--font-paragraph-em-size", "--font-paragraph-em-weight", "--font-paragraph-family", "--font-paragraph-letter-spacing", "--font-paragraph-line-height", "--font-paragraph-size", "--font-paragraph-sm-em-family", "--font-paragraph-sm-em-letter-spacing", "--font-paragraph-sm-em-line-height", "--font-paragraph-sm-em-size", "--font-paragraph-sm-em-weight", "--font-paragraph-sm-family", "--font-paragraph-sm-letter-spacing", "--font-paragraph-sm-line-height", "--font-paragraph-sm-size", "--font-paragraph-sm-weight", "--font-paragraph-weight", "--font-sub-display-family", "--font-sub-display-letter-spacing", "--font-sub-display-line-height", "--font-sub-display-size", "--font-sub-display-weight", "--font-title-body-family", "--font-title-body-letter-spacing", "--font-title-body-line-height", "--font-title-body-size", "--font-title-body-weight"], "spacing": ["--gap-lg", "--gap-md", "--gap-sm", "--gap-sm-md", "--gap-xl", "--gap-xs", "--gap-xxl", "--gap-xxs", "--gap-xxxl", "--gap-xxxxl", "--padding-lg", "--padding-md", "--padding-sm", "--padding-sm-md", "--padding-xl", "--padding-xs", "--padding-xxl", "--padding-xxs", "--padding-xxxs"], "radius": ["--radius-composer", "--radius-full", "--radius-lg", "--radius-md", "--radius-sm", "--radius-xl", "--radius-xs", "--radius-xxl", "--radius-xxs"], "border": ["--border-md", "--border-xs"], "shadow": ["--shadow-floating", "--shadow-modal"], "icons": ["--icon-size-lg", "--icon-size-md", "--icon-size-sm", "--icon-size-xl"], "motion": ["--motion-duration-base", "--motion-duration-deliberate", "--motion-duration-fast", "--motion-duration-instant", "--motion-duration-loop-matrix", "--motion-duration-loop-shimmer", "--motion-duration-loop-spin", "--motion-duration-slow", "--motion-duration-slower", "--motion-ease-emphasized", "--motion-ease-entrance", "--motion-ease-linear", "--motion-ease-spring", "--motion-ease-standard"] };
1
+ const categories = { "colour": ["--color-action-icon-active", "--color-action-icon-default", "--color-action-passive-bg", "--color-action-passive-bg-active", "--color-action-passive-bg-hover", "--color-action-passive-text", "--color-action-primary-bg", "--color-action-primary-bg-active", "--color-action-primary-bg-hover", "--color-action-primary-border", "--color-action-primary-border-secondary", "--color-action-primary-border-tertiary", "--color-action-primary-text", "--color-action-primary-text-active", "--color-action-primary-text-secondary", "--color-action-primary-text-tertiary", "--color-ai-gradient-end", "--color-ai-gradient-mid", "--color-ai-gradient-start", "--color-bg-container-border", "--color-bg-container-inverse", "--color-bg-container-primary", "--color-bg-container-primary-semi", "--color-bg-container-primary-transparent", "--color-bg-container-secondary", "--color-bg-container-tertiary", "--color-bg-glass", "--color-bg-page-inverse", "--color-bg-page-primary", "--color-chart-contribution-0", "--color-chart-contribution-1", "--color-chart-contribution-2", "--color-chart-contribution-3", "--color-chart-contribution-4", "--color-chart-series-1", "--color-chart-series-2", "--color-chart-series-3", "--color-chart-series-4", "--color-chart-series-5", "--color-chart-series-6", "--color-chart-series-7", "--color-chat-bubble-received-bg", "--color-chat-bubble-received-text", "--color-chat-bubble-sent-bg", "--color-chat-bubble-sent-text", "--color-control-thumb", "--color-core-accent-amber", "--color-core-accent-cobalt", "--color-core-accent-coral", "--color-core-accent-gold", "--color-core-accent-mint", "--color-core-accent-violet", "--color-core-ui-primary", "--color-core-ui-secondary", "--color-divider", "--color-icon-primary", "--color-icon-secondary", "--color-input-bg-disabled", "--color-input-bg-primary", "--color-input-border-disabled", "--color-input-border-hover", "--color-input-border-primary", "--color-input-border-selected", "--color-input-text-disabled", "--color-input-text-inverse", "--color-input-text-placeholder", "--color-input-text-primary", "--color-scrim", "--color-status-error-bg", "--color-status-error-border", "--color-status-error-text", "--color-status-info-bg", "--color-status-info-border", "--color-status-info-text", "--color-status-neutral-bg", "--color-status-neutral-border", "--color-status-neutral-text", "--color-status-positive-bg", "--color-status-positive-border", "--color-status-positive-text", "--color-status-warning-bg", "--color-status-warning-border", "--color-status-warning-text", "--color-text-inverse", "--color-text-on-inverse", "--color-text-primary", "--color-text-secondary", "--color-text-tertiary", "--color-trend-down", "--color-trend-up"], "typography": ["--font-caption-family", "--font-caption-letter-spacing", "--font-caption-line-height", "--font-caption-size", "--font-caption-weight", "--font-display-1-family", "--font-display-1-letter-spacing", "--font-display-1-line-height", "--font-display-1-size", "--font-display-1-weight", "--font-display-2-family", "--font-display-2-letter-spacing", "--font-display-2-line-height", "--font-display-2-size", "--font-display-2-weight", "--font-family-code", "--font-family-primary", "--font-heading-1-family", "--font-heading-1-letter-spacing", "--font-heading-1-line-height", "--font-heading-1-size", "--font-heading-1-weight", "--font-heading-2-family", "--font-heading-2-letter-spacing", "--font-heading-2-line-height", "--font-heading-2-size", "--font-heading-2-weight", "--font-heading-3-family", "--font-heading-3-letter-spacing", "--font-heading-3-line-height", "--font-heading-3-size", "--font-heading-3-weight", "--font-mega-1-family", "--font-mega-1-letter-spacing", "--font-mega-1-line-height", "--font-mega-1-size", "--font-mega-1-weight", "--font-mega-2-family", "--font-mega-2-letter-spacing", "--font-mega-2-line-height", "--font-mega-2-size", "--font-mega-2-weight", "--font-overline-family", "--font-overline-letter-spacing", "--font-overline-line-height", "--font-overline-size", "--font-overline-weight", "--font-paragraph-em-family", "--font-paragraph-em-letter-spacing", "--font-paragraph-em-line-height", "--font-paragraph-em-size", "--font-paragraph-em-weight", "--font-paragraph-family", "--font-paragraph-letter-spacing", "--font-paragraph-line-height", "--font-paragraph-size", "--font-paragraph-sm-em-family", "--font-paragraph-sm-em-letter-spacing", "--font-paragraph-sm-em-line-height", "--font-paragraph-sm-em-size", "--font-paragraph-sm-em-weight", "--font-paragraph-sm-family", "--font-paragraph-sm-letter-spacing", "--font-paragraph-sm-line-height", "--font-paragraph-sm-size", "--font-paragraph-sm-weight", "--font-paragraph-weight", "--font-sub-display-family", "--font-sub-display-letter-spacing", "--font-sub-display-line-height", "--font-sub-display-size", "--font-sub-display-weight", "--font-title-body-family", "--font-title-body-letter-spacing", "--font-title-body-line-height", "--font-title-body-size", "--font-title-body-weight"], "spacing": ["--gap-lg", "--gap-md", "--gap-sm", "--gap-sm-md", "--gap-xl", "--gap-xs", "--gap-xxl", "--gap-xxs", "--gap-xxxl", "--gap-xxxxl", "--padding-lg", "--padding-md", "--padding-sm", "--padding-sm-md", "--padding-xl", "--padding-xs", "--padding-xxl", "--padding-xxs", "--padding-xxxs"], "radius": ["--radius-composer", "--radius-full", "--radius-lg", "--radius-md", "--radius-sm", "--radius-xl", "--radius-xs", "--radius-xxl", "--radius-xxs"], "border": ["--border-md", "--border-xs"], "shadow": ["--shadow-floating", "--shadow-modal"], "icons": ["--icon-size-lg", "--icon-size-md", "--icon-size-sm", "--icon-size-xl"], "motion": ["--motion-duration-base", "--motion-duration-deliberate", "--motion-duration-fast", "--motion-duration-instant", "--motion-duration-loop-matrix", "--motion-duration-loop-shimmer", "--motion-duration-loop-spin", "--motion-duration-slow", "--motion-duration-slower", "--motion-ease-emphasized", "--motion-ease-entrance", "--motion-ease-linear", "--motion-ease-spring", "--motion-ease-standard"] };
2
2
  const registry = {
3
3
  categories
4
4
  };
@@ -29,6 +29,7 @@
29
29
  --color-bg-container-tertiary: var(--primitive-neutral-08);
30
30
  --color-bg-container-inverse: var(--primitive-neutral-01);
31
31
  --color-bg-container-border: var(--primitive-neutral-08);
32
+ --color-bg-glass: var(--primitive-neutral-09-glass);
32
33
 
33
34
  /* Divider */
34
35
  --color-divider: var(--primitive-neutral-08-semi);
@@ -112,6 +113,17 @@
112
113
  --color-chart-contribution-3: var(--primitive-green-08);
113
114
  --color-chart-contribution-4: var(--primitive-green-07);
114
115
 
116
+ /* Chart - Ordered series ramp for multi-series charts. Series 1 follows
117
+ the action teal (theme-split with it); 2-7 alias the core accents, so
118
+ re-theming an accent re-themes every chart that uses its slot. */
119
+ --color-chart-series-1: var(--color-action-primary-bg);
120
+ --color-chart-series-2: var(--color-core-accent-mint);
121
+ --color-chart-series-3: var(--color-core-accent-gold);
122
+ --color-chart-series-4: var(--color-core-accent-coral);
123
+ --color-chart-series-5: var(--color-core-accent-violet);
124
+ --color-chart-series-6: var(--color-core-accent-amber);
125
+ --color-chart-series-7: var(--color-core-accent-cobalt);
126
+
115
127
  /* Input */
116
128
  --color-input-text-primary: var(--primitive-neutral-01);
117
129
  --color-input-text-placeholder: var(--primitive-neutral-04);
@@ -133,4 +145,6 @@
133
145
  --color-core-accent-amber: var(--primitive-orange-07);
134
146
  --color-core-accent-gold: var(--primitive-yellow-07);
135
147
  --color-core-accent-mint: var(--primitive-green-07);
148
+ --color-trend-up: var(--primitive-green-07);
149
+ --color-trend-down: var(--primitive-red-07);
136
150
  }
@@ -31,6 +31,11 @@
31
31
  --color-bg-container-inverse: var(--primitive-neutral-09);
32
32
  --color-bg-container-border: var(--primitive-neutral-02);
33
33
 
34
+ /* Glass: the translucent floating-surface fill (chat panel, floating
35
+ sidebar). Deliberately translucent in both themes so the page's
36
+ colours reach the surface; pair it with backdrop-filter: blur(24px). */
37
+ --color-bg-glass: var(--primitive-neutral-01-glass);
38
+
34
39
  /* Divider */
35
40
  --color-divider: var(--primitive-neutral-02-semi);
36
41
 
@@ -86,6 +91,12 @@
86
91
  --color-core-accent-gold: var(--primitive-yellow-07);
87
92
  --color-core-accent-mint: var(--primitive-green-07);
88
93
 
94
+ /* Trend: the "number went up / went down" role (Stat deltas, table
95
+ movers). Theme-split for contrast: deep status inks on light
96
+ surfaces, the mint/coral accents on dark ones. */
97
+ --color-trend-up: var(--primitive-green-10);
98
+ --color-trend-down: var(--primitive-red-10);
99
+
89
100
  /* Status - Positive */
90
101
  --color-status-positive-bg: var(--primitive-green-01);
91
102
  --color-status-positive-border: var(--primitive-green-07);
@@ -126,6 +137,17 @@
126
137
  --color-chart-contribution-3: var(--primitive-green-07);
127
138
  --color-chart-contribution-4: var(--primitive-green-09);
128
139
 
140
+ /* Chart - Ordered series ramp for multi-series charts. Series 1 follows
141
+ the action teal (theme-split with it); 2-7 alias the core accents, so
142
+ re-theming an accent re-themes every chart that uses its slot. */
143
+ --color-chart-series-1: var(--color-action-primary-bg);
144
+ --color-chart-series-2: var(--color-core-accent-mint);
145
+ --color-chart-series-3: var(--color-core-accent-gold);
146
+ --color-chart-series-4: var(--color-core-accent-coral);
147
+ --color-chart-series-5: var(--color-core-accent-violet);
148
+ --color-chart-series-6: var(--color-core-accent-amber);
149
+ --color-chart-series-7: var(--color-core-accent-cobalt);
150
+
129
151
  /* Input */
130
152
  --color-input-text-primary: var(--primitive-neutral-10);
131
153
  --color-input-text-placeholder: var(--primitive-neutral-06);
@@ -14,6 +14,7 @@
14
14
  --primitive-neutral-01: #F1F1F1;
15
15
  --primitive-neutral-01-transparent: rgba(241, 241, 241, 0.01);
16
16
  --primitive-neutral-01-semi: rgba(241, 241, 241, 0.6);
17
+ --primitive-neutral-01-glass: rgba(241, 241, 241, 0.82);
17
18
  --primitive-neutral-02: #D6D6D6;
18
19
  --primitive-neutral-02-semi: rgba(214, 214, 214, 0.8);
19
20
  --primitive-neutral-03: #BCBCBC;
@@ -29,6 +30,7 @@
29
30
  --primitive-neutral-09-transparent: rgba(14, 14, 14, 0.01);
30
31
  --primitive-neutral-09-semi: rgba(14, 14, 14, 0.8);
31
32
  --primitive-neutral-09-semi-transparent: rgba(14, 14, 14, 0.6);
33
+ --primitive-neutral-09-glass: rgba(14, 14, 14, 0.66);
32
34
  --primitive-neutral-10: #050505;
33
35
  --primitive-neutral-10-semi: rgba(5, 5, 5, 0.6);
34
36
  --primitive-neutral-10-subtle: rgba(5, 5, 5, 0.01);
@@ -18,34 +18,41 @@
18
18
 
19
19
  /* ============================================
20
20
  DISPLAY STYLES (Large headlines)
21
+
22
+ Leading is unitless across this tier and loosens as the size drops:
23
+ 0.92 on Mega, 1.05 on Display 1, 1.1 on Display 2. A display line
24
+ set solid reads as a poster on one line and as a stack on two, and
25
+ these headlines wrap — a page title is a sentence, not a word. The
26
+ ratios are the smallest step that opens a wrapped title without
27
+ costing the tier its density.
21
28
  ============================================ */
22
29
 
23
30
  /* Mega 1 - Largest display text */
24
31
  --font-mega-1-family: var(--font-family-primary);
25
32
  --font-mega-1-size: 132px;
26
33
  --font-mega-1-weight: 300;
27
- --font-mega-1-line-height: 0.85;
34
+ --font-mega-1-line-height: 0.92;
28
35
  --font-mega-1-letter-spacing: 0.02em; /* 2% */
29
36
 
30
37
  /* Mega 2 */
31
38
  --font-mega-2-family: var(--font-family-primary);
32
39
  --font-mega-2-size: 116px;
33
40
  --font-mega-2-weight: 300;
34
- --font-mega-2-line-height: 0.85;
41
+ --font-mega-2-line-height: 0.92;
35
42
  --font-mega-2-letter-spacing: 0.02em; /* 2% */
36
43
 
37
44
  /* Display 1 */
38
45
  --font-display-1-family: var(--font-family-primary);
39
46
  --font-display-1-size: 96px;
40
47
  --font-display-1-weight: 300;
41
- --font-display-1-line-height: 1;
48
+ --font-display-1-line-height: 1.05;
42
49
  --font-display-1-letter-spacing: 0.02em; /* 2% */
43
50
 
44
51
  /* Display 2 */
45
52
  --font-display-2-family: var(--font-family-primary);
46
53
  --font-display-2-size: 64px;
47
54
  --font-display-2-weight: 300;
48
- --font-display-2-line-height: 1;
55
+ --font-display-2-line-height: 1.1;
49
56
  --font-display-2-letter-spacing: 0.015em; /* 1.5% */
50
57
 
51
58
  /* Sub Display */
@@ -118,6 +125,26 @@
118
125
  --font-paragraph-sm-em-weight: 500;
119
126
  --font-paragraph-sm-em-line-height: 20px;
120
127
  --font-paragraph-sm-em-letter-spacing: 0;
128
+
129
+ /* Overline — the uppercase label face: an eyebrow over a title, a map
130
+ callout's place name, a code block's language chip. Small and bold with
131
+ open tracking, because capitals at this size need air to stay legible.
132
+ Pair with text-transform: uppercase at the use site — the tokens set the
133
+ metrics, never the casing. */
134
+ --font-overline-family: var(--font-family-primary);
135
+ --font-overline-size: 14px;
136
+ --font-overline-weight: 600;
137
+ --font-overline-line-height: 20px;
138
+ --font-overline-letter-spacing: 0.08em; /* +8% */
139
+
140
+ /* Caption — the floor of the scale. Footnotes and disclaimers: a line the
141
+ reader should be able to find but never has to read to use the screen.
142
+ Never on a control, never for running text. */
143
+ --font-caption-family: var(--font-family-primary);
144
+ --font-caption-size: 12px;
145
+ --font-caption-weight: 400;
146
+ --font-caption-line-height: 16px;
147
+ --font-caption-letter-spacing: 0;
121
148
  }
122
149
 
123
150
  /* ============================================
@@ -133,7 +160,7 @@
133
160
  --font-mega-2-size: 56px;
134
161
  --font-display-1-size: 48px;
135
162
  --font-display-2-size: 40px;
136
- --font-display-2-line-height: 1.05;
163
+ --font-display-2-line-height: 1.15;
137
164
  --font-sub-display-size: 24px;
138
165
  --font-sub-display-line-height: 36px;
139
166
  }