@ponti-studios/ui 1.7.0 → 2.0.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 (51) hide show
  1. package/README.md +54 -20
  2. package/dist/styles.css +3 -0
  3. package/package.json +28 -9
  4. package/scripts/create-project.mjs +82 -0
  5. package/src/components/forms/checkbox.stories.tsx +35 -0
  6. package/src/components/forms/checkbox.tsx +38 -0
  7. package/src/components/forms/index.ts +2 -0
  8. package/src/components/forms/label.stories.tsx +16 -0
  9. package/src/components/forms/label.tsx +25 -0
  10. package/src/components/forms/select.tsx +3 -1
  11. package/src/components/overlays/bottom-sheet.stories.tsx +52 -0
  12. package/src/components/overlays/bottom-sheet.tsx +179 -0
  13. package/src/components/overlays/command.tsx +1 -1
  14. package/src/components/overlays/dropdown-menu.tsx +6 -2
  15. package/src/components/overlays/index.ts +2 -0
  16. package/src/components/overlays/popover.tsx +12 -3
  17. package/src/components/overlays/tooltip.stories.tsx +29 -0
  18. package/src/components/overlays/tooltip.tsx +41 -0
  19. package/src/components/primitives/index.ts +2 -0
  20. package/src/components/primitives/segmented-control.stories.tsx +54 -0
  21. package/src/components/primitives/segmented-control.tsx +73 -0
  22. package/src/components/primitives/separator.stories.tsx +34 -0
  23. package/src/components/primitives/separator.tsx +27 -0
  24. package/src/index.ts +2 -0
  25. package/src/native/components.tsx +198 -0
  26. package/src/native/index.ts +2 -0
  27. package/src/native/theme.tsx +69 -0
  28. package/src/styles/build.ts +1 -0
  29. package/src/styles/index.css +102 -8
  30. package/src/styles/package.css +3 -0
  31. package/src/styles/tokens/color-systems.stories.tsx +173 -25
  32. package/src/styles/tokens/generated/dark-class.css +39 -0
  33. package/src/styles/tokens/generated/dark.colors.generated.ts +31 -26
  34. package/src/styles/tokens/generated/dark.css +31 -26
  35. package/src/styles/tokens/generated/foundations.css +2 -2
  36. package/src/styles/tokens/generated/foundations.generated.ts +2 -0
  37. package/src/styles/tokens/generated/light.colors.generated.ts +30 -25
  38. package/src/styles/tokens/generated/light.css +30 -25
  39. package/src/styles/tokens/index.ts +6 -6
  40. package/src/styles/tokens/scripts/check-source.mjs +10 -0
  41. package/src/styles/tokens/source/dark.tokens.json +48 -27
  42. package/src/styles/tokens/source/foundations.tokens.json +2 -0
  43. package/src/styles/tokens/source/light.tokens.json +47 -26
  44. package/src/styles/tokens/style-dictionary.dark-class.json +16 -0
  45. package/templates/web-vite/index.html +13 -0
  46. package/templates/web-vite/package.json +27 -0
  47. package/templates/web-vite/src/App.tsx +31 -0
  48. package/templates/web-vite/src/main.tsx +12 -0
  49. package/templates/web-vite/src/styles.css +110 -0
  50. package/templates/web-vite/tsconfig.json +21 -0
  51. package/templates/web-vite/vite.config.ts +6 -0
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Do not edit directly, this file was auto-generated.
3
+ */
4
+
5
+ :root.dark {
6
+ --background: #0a0a0a;
7
+ --card: #111111;
8
+ --secondary: #1a1a1a;
9
+ --popover: #111111;
10
+ --muted: #141414;
11
+ --text-primary: #fafafa;
12
+ --text-secondary: #a3a3a3;
13
+ --tertiary: #a3a3a3;
14
+ --primary: #ededed;
15
+ --accent: #1e293b;
16
+ --destructive: #dc2626;
17
+ --success: #22c55e;
18
+ --warning: #f59e0b;
19
+ --text-success: #4ade80;
20
+ --text-warning: #fcd34d;
21
+ --success-foreground: #0a0a0a;
22
+ --warning-foreground: #0a0a0a;
23
+ --primary-foreground: #0a0a0a;
24
+ --accent-foreground: #93c5fd;
25
+ --destructive-foreground: #ffffff;
26
+ --text-destructive: #fca5a5;
27
+ --text-accent: #60a5fa;
28
+ --border-default: #262626;
29
+ --focus-ring: #3b82f6;
30
+ --chart-1: #3b82f6;
31
+ --chart-2: #ededed;
32
+ --chart-3: #737373;
33
+ --chart-4: #93c5fd;
34
+ --chart-5: #3f3f46;
35
+ --chart-positive: #22c55e;
36
+ --chart-negative: #ef4444;
37
+ --chart-neutral: #a3a3a3;
38
+ --overlay-scrim: #000000;
39
+ }
@@ -3,32 +3,37 @@
3
3
  */
4
4
 
5
5
  export default {
6
- background: "#171714",
7
- card: "#1d1d19",
8
- popover: "#22221e",
9
- muted: "#1d1d19",
10
- "text-primary": "#ffffff",
11
- "text-secondary": "#aaa79f",
12
- tertiary: "#d0ccc2",
13
- primary: "#178277",
14
- destructive: "#ce2c31",
15
- success: "#30a46c",
16
- warning: "#ffc53d",
17
- "success-foreground": "#15110f",
18
- "warning-foreground": "#15110f",
19
- "primary-foreground": "#ffffff",
6
+ background: "#0a0a0a",
7
+ card: "#111111",
8
+ secondary: "#1a1a1a",
9
+ popover: "#111111",
10
+ muted: "#141414",
11
+ "text-primary": "#fafafa",
12
+ "text-secondary": "#a3a3a3",
13
+ tertiary: "#a3a3a3",
14
+ primary: "#ededed",
15
+ accent: "#1e293b",
16
+ destructive: "#dc2626",
17
+ success: "#22c55e",
18
+ warning: "#f59e0b",
19
+ "text-success": "#4ade80",
20
+ "text-warning": "#fcd34d",
21
+ "success-foreground": "#0a0a0a",
22
+ "warning-foreground": "#0a0a0a",
23
+ "primary-foreground": "#0a0a0a",
24
+ "accent-foreground": "#93c5fd",
20
25
  "destructive-foreground": "#ffffff",
21
- "text-destructive": "#ff9592",
22
- "text-accent": "#1b988b",
23
- "border-default": "#6b6b66",
24
- "focus-ring": "#1b988b",
25
- "chart-1": "#3e63dd",
26
- "chart-2": "#6e56cf",
27
- "chart-3": "#c73178",
28
- "chart-4": "#f76b15",
29
- "chart-5": "#696e77",
30
- "chart-positive": "#30a46c",
31
- "chart-negative": "#e5484d",
32
- "chart-neutral": "#878d94",
26
+ "text-destructive": "#fca5a5",
27
+ "text-accent": "#60a5fa",
28
+ "border-default": "#262626",
29
+ "focus-ring": "#3b82f6",
30
+ "chart-1": "#3b82f6",
31
+ "chart-2": "#ededed",
32
+ "chart-3": "#737373",
33
+ "chart-4": "#93c5fd",
34
+ "chart-5": "#3f3f46",
35
+ "chart-positive": "#22c55e",
36
+ "chart-negative": "#ef4444",
37
+ "chart-neutral": "#a3a3a3",
33
38
  "overlay-scrim": "#000000",
34
39
  };
@@ -3,32 +3,37 @@
3
3
  */
4
4
 
5
5
  :root {
6
- --background: #171714;
7
- --card: #1d1d19;
8
- --popover: #22221e;
9
- --muted: #1d1d19;
10
- --text-primary: #ffffff;
11
- --text-secondary: #aaa79f;
12
- --tertiary: #d0ccc2;
13
- --primary: #178277;
14
- --destructive: #ce2c31;
15
- --success: #30a46c;
16
- --warning: #ffc53d;
17
- --success-foreground: #15110f;
18
- --warning-foreground: #15110f;
19
- --primary-foreground: #ffffff;
6
+ --background: #0a0a0a;
7
+ --card: #111111;
8
+ --secondary: #1a1a1a;
9
+ --popover: #111111;
10
+ --muted: #141414;
11
+ --text-primary: #fafafa;
12
+ --text-secondary: #a3a3a3;
13
+ --tertiary: #a3a3a3;
14
+ --primary: #ededed;
15
+ --accent: #1e293b;
16
+ --destructive: #dc2626;
17
+ --success: #22c55e;
18
+ --warning: #f59e0b;
19
+ --text-success: #4ade80;
20
+ --text-warning: #fcd34d;
21
+ --success-foreground: #0a0a0a;
22
+ --warning-foreground: #0a0a0a;
23
+ --primary-foreground: #0a0a0a;
24
+ --accent-foreground: #93c5fd;
20
25
  --destructive-foreground: #ffffff;
21
- --text-destructive: #ff9592;
22
- --text-accent: #1b988b;
23
- --border-default: #6b6b66;
24
- --focus-ring: #1b988b;
25
- --chart-1: #3e63dd;
26
- --chart-2: #6e56cf;
27
- --chart-3: #c73178;
28
- --chart-4: #f76b15;
29
- --chart-5: #696e77;
30
- --chart-positive: #30a46c;
31
- --chart-negative: #e5484d;
32
- --chart-neutral: #878d94;
26
+ --text-destructive: #fca5a5;
27
+ --text-accent: #60a5fa;
28
+ --border-default: #262626;
29
+ --focus-ring: #3b82f6;
30
+ --chart-1: #3b82f6;
31
+ --chart-2: #ededed;
32
+ --chart-3: #737373;
33
+ --chart-4: #93c5fd;
34
+ --chart-5: #3f3f46;
35
+ --chart-positive: #22c55e;
36
+ --chart-negative: #ef4444;
37
+ --chart-neutral: #a3a3a3;
33
38
  --overlay-scrim: #000000;
34
39
  }
@@ -39,9 +39,9 @@
39
39
  --spacing-scale-1-5: 0.375rem;
40
40
  --spacing-scale-2-5: 0.625rem;
41
41
  --spacing-scale-3-5: 0.875rem;
42
- --font-sans: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', 'Noto Sans', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
42
+ --font-sans: Geist, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', 'Noto Sans', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
43
43
  --font-serif: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', 'Noto Sans', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
44
- --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
44
+ --font-mono: 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
45
45
  --text-xs: 0.75rem;
46
46
  --text-sm: 0.875rem;
47
47
  --text-base: 1rem;
@@ -43,6 +43,7 @@ export default {
43
43
  },
44
44
  font: {
45
45
  sans: [
46
+ "Geist",
46
47
  "system-ui",
47
48
  "-apple-system",
48
49
  "BlinkMacSystemFont",
@@ -73,6 +74,7 @@ export default {
73
74
  "Noto Color Emoji",
74
75
  ],
75
76
  mono: [
77
+ "Geist Mono",
76
78
  "ui-monospace",
77
79
  "SFMono-Regular",
78
80
  "Menlo",
@@ -3,32 +3,37 @@
3
3
  */
4
4
 
5
5
  export default {
6
- background: "#f4f0e8",
7
- card: "#fbf8f2",
8
- popover: "#f6f2ea",
9
- muted: "#efe9dc",
10
- "text-primary": "#11110f",
11
- "text-secondary": "#6a6352",
12
- tertiary: "#6d6659",
13
- primary: "#107066",
14
- destructive: "#ce2c31",
15
- success: "#30a46c",
16
- warning: "#ffc53d",
17
- "success-foreground": "#15110f",
18
- "warning-foreground": "#15110f",
6
+ background: "#ffffff",
7
+ card: "#ffffff",
8
+ secondary: "#f5f5f5",
9
+ popover: "#ffffff",
10
+ muted: "#fafafa",
11
+ "text-primary": "#111111",
12
+ "text-secondary": "#6b6b6b",
13
+ tertiary: "#6b6b6b",
14
+ primary: "#171717",
15
+ accent: "#eff6ff",
16
+ destructive: "#dc2626",
17
+ success: "#16a34a",
18
+ warning: "#d97706",
19
+ "text-success": "#15803d",
20
+ "text-warning": "#92400e",
21
+ "success-foreground": "#0a0a0a",
22
+ "warning-foreground": "#0a0a0a",
19
23
  "primary-foreground": "#ffffff",
24
+ "accent-foreground": "#1d4ed8",
20
25
  "destructive-foreground": "#ffffff",
21
- "text-destructive": "#c82c31",
22
- "text-accent": "#107066",
23
- "border-default": "#8f8576",
24
- "focus-ring": "#107066",
25
- "chart-1": "#3e63dd",
26
- "chart-2": "#6e56cf",
27
- "chart-3": "#c73178",
28
- "chart-4": "#f76b15",
29
- "chart-5": "#8b8d98",
30
- "chart-positive": "#1f7a50",
31
- "chart-negative": "#be2e33",
32
- "chart-neutral": "#626a73",
26
+ "text-destructive": "#b91c1c",
27
+ "text-accent": "#2563eb",
28
+ "border-default": "#e5e5e5",
29
+ "focus-ring": "#2563eb",
30
+ "chart-1": "#2563eb",
31
+ "chart-2": "#111111",
32
+ "chart-3": "#737373",
33
+ "chart-4": "#93c5fd",
34
+ "chart-5": "#d4d4d8",
35
+ "chart-positive": "#15803d",
36
+ "chart-negative": "#dc2626",
37
+ "chart-neutral": "#737373",
33
38
  "overlay-scrim": "#000000",
34
39
  };
@@ -3,32 +3,37 @@
3
3
  */
4
4
 
5
5
  :root {
6
- --background: #f4f0e8;
7
- --card: #fbf8f2;
8
- --popover: #f6f2ea;
9
- --muted: #efe9dc;
10
- --text-primary: #11110f;
11
- --text-secondary: #6a6352;
12
- --tertiary: #6d6659;
13
- --primary: #107066;
14
- --destructive: #ce2c31;
15
- --success: #30a46c;
16
- --warning: #ffc53d;
17
- --success-foreground: #15110f;
18
- --warning-foreground: #15110f;
6
+ --background: #ffffff;
7
+ --card: #ffffff;
8
+ --secondary: #f5f5f5;
9
+ --popover: #ffffff;
10
+ --muted: #fafafa;
11
+ --text-primary: #111111;
12
+ --text-secondary: #6b6b6b;
13
+ --tertiary: #6b6b6b;
14
+ --primary: #171717;
15
+ --accent: #eff6ff;
16
+ --destructive: #dc2626;
17
+ --success: #16a34a;
18
+ --warning: #d97706;
19
+ --text-success: #15803d;
20
+ --text-warning: #92400e;
21
+ --success-foreground: #0a0a0a;
22
+ --warning-foreground: #0a0a0a;
19
23
  --primary-foreground: #ffffff;
24
+ --accent-foreground: #1d4ed8;
20
25
  --destructive-foreground: #ffffff;
21
- --text-destructive: #c82c31;
22
- --text-accent: #107066;
23
- --border-default: #8f8576;
24
- --focus-ring: #107066;
25
- --chart-1: #3e63dd;
26
- --chart-2: #6e56cf;
27
- --chart-3: #c73178;
28
- --chart-4: #f76b15;
29
- --chart-5: #8b8d98;
30
- --chart-positive: #1f7a50;
31
- --chart-negative: #be2e33;
32
- --chart-neutral: #626a73;
26
+ --text-destructive: #b91c1c;
27
+ --text-accent: #2563eb;
28
+ --border-default: #e5e5e5;
29
+ --focus-ring: #2563eb;
30
+ --chart-1: #2563eb;
31
+ --chart-2: #111111;
32
+ --chart-3: #737373;
33
+ --chart-4: #93c5fd;
34
+ --chart-5: #d4d4d8;
35
+ --chart-positive: #15803d;
36
+ --chart-negative: #dc2626;
37
+ --chart-neutral: #737373;
33
38
  --overlay-scrim: #000000;
34
39
  }
@@ -10,12 +10,12 @@ const toPixels = (value: string) => {
10
10
 
11
11
  const toMilliseconds = (value: string) => Number.parseFloat(value);
12
12
  const toBezier = (value: number[]) => `cubic-bezier(${value.join(", ")})`;
13
- type NormalizedSpacingKey<Key extends string> = Key extends `${infer Whole}-${infer Fraction}`
14
- ? `${Whole}.${Fraction}`
15
- : Key;
16
- export type SpacingToken = NormalizedSpacingKey<
17
- keyof (typeof foundations)["spacing-scale"] & string
18
- >;
13
+ type NormalizedSpacingKey<Key> = Key extends number
14
+ ? `${Key}`
15
+ : Key extends `${infer Whole}-${infer Fraction}`
16
+ ? `${Whole}.${Fraction}`
17
+ : Key;
18
+ export type SpacingToken = NormalizedSpacingKey<keyof (typeof foundations)["spacing-scale"]>;
19
19
 
20
20
  export const colorTokenNames = Object.keys(lightTokens) as Array<keyof typeof lightTokens>;
21
21
  export type ColorToken = keyof typeof lightTokens;
@@ -30,6 +30,16 @@ for (const file of sourceFiles) {
30
30
  const source = readFileSync(file, "utf8");
31
31
  for (const check of checks) {
32
32
  if (check.name === "legacy semantic utility classes" && file.endsWith(".css")) continue;
33
+ // Native styles address semantic color tokens through bracket notation;
34
+ // these are token lookups, not the deprecated utility classes.
35
+ if (check.name === "legacy semantic utility classes") {
36
+ let tokenSource = source.replace(/\[\s*["'](?:bg-canvas|border-default)["']\s*\]/g, "__semantic_token_access__");
37
+ if (file.endsWith("color-systems.stories.tsx")) {
38
+ tokenSource = tokenSource.replace(/token:\s*"(?:bg-canvas|border-default)"/g, 'token: "__token-name__"');
39
+ }
40
+ if (check.pattern.test(tokenSource)) failures.push(`${check.name}: ${relative(sourceDirectory, file)}`);
41
+ continue;
42
+ }
33
43
  if (check.pattern.test(source))
34
44
  failures.push(`${check.name}: ${relative(sourceDirectory, file)}`);
35
45
  }
@@ -1,62 +1,83 @@
1
1
  {
2
2
  "$extensions": {
3
- "org.ponti.license": "MIT"
3
+ "org.ponti.license": "MIT",
4
+ "org.ponti.identity": "mono"
4
5
  },
5
6
  "background": {
6
7
  "$type": "color",
7
- "$value": "rgb(23, 23, 20)"
8
+ "$value": "rgb(10, 10, 10)"
8
9
  },
9
10
  "card": {
10
11
  "$type": "color",
11
- "$value": "rgb(29, 29, 25)"
12
+ "$value": "rgb(17, 17, 17)"
13
+ },
14
+ "secondary": {
15
+ "$type": "color",
16
+ "$value": "rgb(26, 26, 26)"
12
17
  },
13
18
  "popover": {
14
19
  "$type": "color",
15
- "$value": "rgb(34, 34, 30)"
20
+ "$value": "rgb(17, 17, 17)"
16
21
  },
17
22
  "muted": {
18
23
  "$type": "color",
19
- "$value": "rgb(29, 29, 25)"
24
+ "$value": "rgb(20, 20, 20)"
20
25
  },
21
26
  "text-primary": {
22
27
  "$type": "color",
23
- "$value": "rgb(255, 255, 255)"
28
+ "$value": "rgb(250, 250, 250)"
24
29
  },
25
30
  "text-secondary": {
26
31
  "$type": "color",
27
- "$value": "rgb(170, 167, 159)"
32
+ "$value": "rgb(163, 163, 163)"
28
33
  },
29
34
  "tertiary": {
30
35
  "$type": "color",
31
- "$value": "rgb(208, 204, 194)"
36
+ "$value": "{text-secondary}"
32
37
  },
33
38
  "primary": {
34
39
  "$type": "color",
35
- "$value": "rgb(23, 130, 119)"
40
+ "$value": "rgb(237, 237, 237)"
41
+ },
42
+ "accent": {
43
+ "$type": "color",
44
+ "$value": "rgb(30, 41, 59)"
36
45
  },
37
46
  "destructive": {
38
47
  "$type": "color",
39
- "$value": "rgb(206, 44, 49)"
48
+ "$value": "rgb(220, 38, 38)"
40
49
  },
41
50
  "success": {
42
51
  "$type": "color",
43
- "$value": "rgb(48, 164, 108)"
52
+ "$value": "rgb(34, 197, 94)"
44
53
  },
45
54
  "warning": {
46
55
  "$type": "color",
47
- "$value": "rgb(255, 197, 61)"
56
+ "$value": "rgb(245, 158, 11)"
57
+ },
58
+ "text-success": {
59
+ "$type": "color",
60
+ "$value": "rgb(74, 222, 128)"
61
+ },
62
+ "text-warning": {
63
+ "$type": "color",
64
+ "$value": "rgb(252, 211, 77)"
48
65
  },
49
66
  "success-foreground": {
50
67
  "$type": "color",
51
- "$value": "rgb(21, 17, 15)"
68
+ "$value": "rgb(10, 10, 10)"
52
69
  },
53
70
  "warning-foreground": {
54
71
  "$type": "color",
55
- "$value": "rgb(21, 17, 15)"
72
+ "$value": "rgb(10, 10, 10)"
56
73
  },
57
74
  "primary-foreground": {
58
75
  "$type": "color",
59
- "$value": "rgb(255, 255, 255)"
76
+ "$value": "rgb(10, 10, 10)"
77
+ },
78
+ "accent-foreground": {
79
+ "$type": "color",
80
+ "$value": "rgb(147, 197, 253)"
60
81
  },
61
82
  "destructive-foreground": {
62
83
  "$type": "color",
@@ -64,51 +85,51 @@
64
85
  },
65
86
  "text-destructive": {
66
87
  "$type": "color",
67
- "$value": "rgb(255, 149, 146)"
88
+ "$value": "rgb(252, 165, 165)"
68
89
  },
69
90
  "text-accent": {
70
91
  "$type": "color",
71
- "$value": "rgb(27, 152, 139)"
92
+ "$value": "rgb(96, 165, 250)"
72
93
  },
73
94
  "border-default": {
74
95
  "$type": "color",
75
- "$value": "rgb(107, 107, 102)"
96
+ "$value": "rgb(38, 38, 38)"
76
97
  },
77
98
  "focus-ring": {
78
99
  "$type": "color",
79
- "$value": "rgb(27, 152, 139)"
100
+ "$value": "rgb(59, 130, 246)"
80
101
  },
81
102
  "chart-1": {
82
103
  "$type": "color",
83
- "$value": "rgb(62, 99, 221)"
104
+ "$value": "rgb(59, 130, 246)"
84
105
  },
85
106
  "chart-2": {
86
107
  "$type": "color",
87
- "$value": "rgb(110, 86, 207)"
108
+ "$value": "rgb(237, 237, 237)"
88
109
  },
89
110
  "chart-3": {
90
111
  "$type": "color",
91
- "$value": "rgb(199, 49, 120)"
112
+ "$value": "rgb(115, 115, 115)"
92
113
  },
93
114
  "chart-4": {
94
115
  "$type": "color",
95
- "$value": "rgb(247, 107, 21)"
116
+ "$value": "rgb(147, 197, 253)"
96
117
  },
97
118
  "chart-5": {
98
119
  "$type": "color",
99
- "$value": "rgb(105, 110, 119)"
120
+ "$value": "rgb(63, 63, 70)"
100
121
  },
101
122
  "chart-positive": {
102
123
  "$type": "color",
103
- "$value": "rgb(48, 164, 108)"
124
+ "$value": "rgb(34, 197, 94)"
104
125
  },
105
126
  "chart-negative": {
106
127
  "$type": "color",
107
- "$value": "rgb(229, 72, 77)"
128
+ "$value": "rgb(239, 68, 68)"
108
129
  },
109
130
  "chart-neutral": {
110
131
  "$type": "color",
111
- "$value": "rgb(135, 141, 148)"
132
+ "$value": "rgb(163, 163, 163)"
112
133
  },
113
134
  "overlay-scrim": {
114
135
  "$type": "color",
@@ -43,6 +43,7 @@
43
43
  "$type": "fontFamily",
44
44
  "sans": {
45
45
  "$value": [
46
+ "Geist",
46
47
  "system-ui",
47
48
  "-apple-system",
48
49
  "BlinkMacSystemFont",
@@ -77,6 +78,7 @@
77
78
  },
78
79
  "mono": {
79
80
  "$value": [
81
+ "Geist Mono",
80
82
  "ui-monospace",
81
83
  "SFMono-Regular",
82
84
  "Menlo",