@forumone/throughline-reference-ds 0.0.2 → 0.2.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 (177) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/LICENSE +21 -0
  3. package/README.md +102 -28
  4. package/dist/components/CTASection/CTASection.contract.d.ts +3 -0
  5. package/dist/components/CTASection/CTASection.contract.d.ts.map +1 -0
  6. package/dist/components/CTASection/CTASection.contract.js +117 -0
  7. package/dist/components/CTASection/CTASection.contract.js.map +1 -0
  8. package/dist/components/CTASection/CTASection.d.ts +17 -0
  9. package/dist/components/CTASection/CTASection.d.ts.map +1 -0
  10. package/dist/components/CTASection/CTASection.js +7 -0
  11. package/dist/components/CTASection/CTASection.js.map +1 -0
  12. package/dist/components/CTASection/index.d.ts +3 -0
  13. package/dist/components/CTASection/index.d.ts.map +1 -0
  14. package/dist/components/CTASection/index.js +3 -0
  15. package/dist/components/CTASection/index.js.map +1 -0
  16. package/dist/components/Card/Card.contract.d.ts +3 -0
  17. package/dist/components/Card/Card.contract.d.ts.map +1 -0
  18. package/dist/components/Card/Card.contract.js +111 -0
  19. package/dist/components/Card/Card.contract.js.map +1 -0
  20. package/dist/components/Card/Card.d.ts +16 -0
  21. package/dist/components/Card/Card.d.ts.map +1 -0
  22. package/dist/components/Card/Card.js +11 -0
  23. package/dist/components/Card/Card.js.map +1 -0
  24. package/dist/components/Card/index.d.ts +3 -0
  25. package/dist/components/Card/index.d.ts.map +1 -0
  26. package/dist/components/Card/index.js +3 -0
  27. package/dist/components/Card/index.js.map +1 -0
  28. package/dist/components/CardGrid/CardGrid.contract.d.ts +3 -0
  29. package/dist/components/CardGrid/CardGrid.contract.d.ts.map +1 -0
  30. package/dist/components/CardGrid/CardGrid.contract.js +67 -0
  31. package/dist/components/CardGrid/CardGrid.contract.js.map +1 -0
  32. package/dist/components/CardGrid/CardGrid.d.ts +9 -0
  33. package/dist/components/CardGrid/CardGrid.d.ts.map +1 -0
  34. package/dist/components/CardGrid/CardGrid.js +7 -0
  35. package/dist/components/CardGrid/CardGrid.js.map +1 -0
  36. package/dist/components/CardGrid/index.d.ts +3 -0
  37. package/dist/components/CardGrid/index.d.ts.map +1 -0
  38. package/dist/components/CardGrid/index.js +3 -0
  39. package/dist/components/CardGrid/index.js.map +1 -0
  40. package/dist/components/Divider/Divider.contract.d.ts +3 -0
  41. package/dist/components/Divider/Divider.contract.d.ts.map +1 -0
  42. package/dist/components/Divider/Divider.contract.js +77 -0
  43. package/dist/components/Divider/Divider.contract.js.map +1 -0
  44. package/dist/components/Divider/Divider.d.ts +8 -0
  45. package/dist/components/Divider/Divider.d.ts.map +1 -0
  46. package/dist/components/Divider/Divider.js +10 -0
  47. package/dist/components/Divider/Divider.js.map +1 -0
  48. package/dist/components/Divider/index.d.ts +3 -0
  49. package/dist/components/Divider/index.d.ts.map +1 -0
  50. package/dist/components/Divider/index.js +3 -0
  51. package/dist/components/Divider/index.js.map +1 -0
  52. package/dist/components/FAQ/FAQ.contract.d.ts +3 -0
  53. package/dist/components/FAQ/FAQ.contract.d.ts.map +1 -0
  54. package/dist/components/FAQ/FAQ.contract.js +93 -0
  55. package/dist/components/FAQ/FAQ.contract.js.map +1 -0
  56. package/dist/components/FAQ/FAQ.d.ts +14 -0
  57. package/dist/components/FAQ/FAQ.d.ts.map +1 -0
  58. package/dist/components/FAQ/FAQ.js +7 -0
  59. package/dist/components/FAQ/FAQ.js.map +1 -0
  60. package/dist/components/FAQ/index.d.ts +3 -0
  61. package/dist/components/FAQ/index.d.ts.map +1 -0
  62. package/dist/components/FAQ/index.js +3 -0
  63. package/dist/components/FAQ/index.js.map +1 -0
  64. package/dist/components/Hero/Hero.contract.d.ts +3 -0
  65. package/dist/components/Hero/Hero.contract.d.ts.map +1 -0
  66. package/dist/components/Hero/Hero.contract.js +171 -0
  67. package/dist/components/Hero/Hero.contract.js.map +1 -0
  68. package/dist/components/Hero/Hero.d.ts +24 -0
  69. package/dist/components/Hero/Hero.d.ts.map +1 -0
  70. package/dist/components/Hero/Hero.js +7 -0
  71. package/dist/components/Hero/Hero.js.map +1 -0
  72. package/dist/components/Hero/index.d.ts +3 -0
  73. package/dist/components/Hero/index.d.ts.map +1 -0
  74. package/dist/components/Hero/index.js +3 -0
  75. package/dist/components/Hero/index.js.map +1 -0
  76. package/dist/components/MediaBlock/MediaBlock.contract.d.ts +3 -0
  77. package/dist/components/MediaBlock/MediaBlock.contract.d.ts.map +1 -0
  78. package/dist/components/MediaBlock/MediaBlock.contract.js +83 -0
  79. package/dist/components/MediaBlock/MediaBlock.contract.js.map +1 -0
  80. package/dist/components/MediaBlock/MediaBlock.d.ts +23 -0
  81. package/dist/components/MediaBlock/MediaBlock.d.ts.map +1 -0
  82. package/dist/components/MediaBlock/MediaBlock.js +8 -0
  83. package/dist/components/MediaBlock/MediaBlock.js.map +1 -0
  84. package/dist/components/MediaBlock/index.d.ts +3 -0
  85. package/dist/components/MediaBlock/index.d.ts.map +1 -0
  86. package/dist/components/MediaBlock/index.js +3 -0
  87. package/dist/components/MediaBlock/index.js.map +1 -0
  88. package/dist/components/Prose/Prose.contract.d.ts +3 -0
  89. package/dist/components/Prose/Prose.contract.d.ts.map +1 -0
  90. package/dist/components/Prose/Prose.contract.js +95 -0
  91. package/dist/components/Prose/Prose.contract.js.map +1 -0
  92. package/dist/components/Prose/Prose.d.ts +9 -0
  93. package/dist/components/Prose/Prose.d.ts.map +1 -0
  94. package/dist/components/Prose/Prose.js +7 -0
  95. package/dist/components/Prose/Prose.js.map +1 -0
  96. package/dist/components/Prose/index.d.ts +3 -0
  97. package/dist/components/Prose/index.d.ts.map +1 -0
  98. package/dist/components/Prose/index.js +3 -0
  99. package/dist/components/Prose/index.js.map +1 -0
  100. package/dist/components/Quote/Quote.contract.d.ts +3 -0
  101. package/dist/components/Quote/Quote.contract.d.ts.map +1 -0
  102. package/dist/components/Quote/Quote.contract.js +90 -0
  103. package/dist/components/Quote/Quote.contract.js.map +1 -0
  104. package/dist/components/Quote/Quote.d.ts +16 -0
  105. package/dist/components/Quote/Quote.d.ts.map +1 -0
  106. package/dist/components/Quote/Quote.js +7 -0
  107. package/dist/components/Quote/Quote.js.map +1 -0
  108. package/dist/components/Quote/index.d.ts +3 -0
  109. package/dist/components/Quote/index.d.ts.map +1 -0
  110. package/dist/components/Quote/index.js +3 -0
  111. package/dist/components/Quote/index.js.map +1 -0
  112. package/dist/components/SectionIntro/SectionIntro.contract.d.ts +3 -0
  113. package/dist/components/SectionIntro/SectionIntro.contract.d.ts.map +1 -0
  114. package/dist/components/SectionIntro/SectionIntro.contract.js +97 -0
  115. package/dist/components/SectionIntro/SectionIntro.contract.js.map +1 -0
  116. package/dist/components/SectionIntro/SectionIntro.d.ts +10 -0
  117. package/dist/components/SectionIntro/SectionIntro.d.ts.map +1 -0
  118. package/dist/components/SectionIntro/SectionIntro.js +7 -0
  119. package/dist/components/SectionIntro/SectionIntro.js.map +1 -0
  120. package/dist/components/SectionIntro/index.d.ts +3 -0
  121. package/dist/components/SectionIntro/index.d.ts.map +1 -0
  122. package/dist/components/SectionIntro/index.js +3 -0
  123. package/dist/components/SectionIntro/index.js.map +1 -0
  124. package/dist/components/Spacer/Spacer.contract.d.ts +3 -0
  125. package/dist/components/Spacer/Spacer.contract.d.ts.map +1 -0
  126. package/dist/components/Spacer/Spacer.contract.js +66 -0
  127. package/dist/components/Spacer/Spacer.contract.js.map +1 -0
  128. package/dist/components/Spacer/Spacer.d.ts +7 -0
  129. package/dist/components/Spacer/Spacer.d.ts.map +1 -0
  130. package/dist/components/Spacer/Spacer.js +7 -0
  131. package/dist/components/Spacer/Spacer.js.map +1 -0
  132. package/dist/components/Spacer/index.d.ts +3 -0
  133. package/dist/components/Spacer/index.d.ts.map +1 -0
  134. package/dist/components/Spacer/index.js +3 -0
  135. package/dist/components/Spacer/index.js.map +1 -0
  136. package/dist/components/Stats/Stats.contract.d.ts +3 -0
  137. package/dist/components/Stats/Stats.contract.d.ts.map +1 -0
  138. package/dist/components/Stats/Stats.contract.js +92 -0
  139. package/dist/components/Stats/Stats.contract.js.map +1 -0
  140. package/dist/components/Stats/Stats.d.ts +13 -0
  141. package/dist/components/Stats/Stats.d.ts.map +1 -0
  142. package/dist/components/Stats/Stats.js +7 -0
  143. package/dist/components/Stats/Stats.js.map +1 -0
  144. package/dist/components/Stats/index.d.ts +3 -0
  145. package/dist/components/Stats/index.d.ts.map +1 -0
  146. package/dist/components/Stats/index.js +3 -0
  147. package/dist/components/Stats/index.js.map +1 -0
  148. package/dist/index.d.ts +14 -0
  149. package/dist/index.d.ts.map +1 -0
  150. package/dist/index.js +14 -0
  151. package/dist/index.js.map +1 -0
  152. package/dist/manifest.json +2014 -0
  153. package/dist/styles/base.css +55 -0
  154. package/dist/styles/index.css +213 -0
  155. package/dist/styles/reset.css +48 -0
  156. package/dist/styles/tokens.css +105 -0
  157. package/dist/tokens/colors.d.ts +48 -0
  158. package/dist/tokens/colors.d.ts.map +1 -0
  159. package/dist/tokens/colors.js +47 -0
  160. package/dist/tokens/colors.js.map +1 -0
  161. package/dist/tokens/index.d.ts +99 -0
  162. package/dist/tokens/index.d.ts.map +1 -0
  163. package/dist/tokens/index.js +21 -0
  164. package/dist/tokens/index.js.map +1 -0
  165. package/dist/tokens/radii.d.ts +11 -0
  166. package/dist/tokens/radii.d.ts.map +1 -0
  167. package/dist/tokens/radii.js +10 -0
  168. package/dist/tokens/radii.js.map +1 -0
  169. package/dist/tokens/spacing.d.ts +26 -0
  170. package/dist/tokens/spacing.d.ts.map +1 -0
  171. package/dist/tokens/spacing.js +25 -0
  172. package/dist/tokens/spacing.js.map +1 -0
  173. package/dist/tokens/typography.d.ts +28 -0
  174. package/dist/tokens/typography.d.ts.map +1 -0
  175. package/dist/tokens/typography.js +27 -0
  176. package/dist/tokens/typography.js.map +1 -0
  177. package/package.json +88 -7
@@ -0,0 +1,55 @@
1
+ /* Base element styles applied on top of reset.css + tokens.css. */
2
+
3
+ html {
4
+ font-family: var(--font-family-sans);
5
+ font-size: 16px;
6
+ line-height: var(--line-height-normal);
7
+ color: var(--color-text-primary);
8
+ background: var(--color-bg-primary);
9
+ }
10
+
11
+ body {
12
+ font-size: var(--font-size-base);
13
+ }
14
+
15
+ h1 {
16
+ font-size: var(--font-size-5xl);
17
+ font-weight: var(--font-weight-bold);
18
+ line-height: var(--line-height-tight);
19
+ letter-spacing: var(--letter-spacing-tight);
20
+ }
21
+
22
+ h2 {
23
+ font-size: var(--font-size-3xl);
24
+ font-weight: var(--font-weight-semibold);
25
+ line-height: var(--line-height-snug);
26
+ }
27
+
28
+ h3 {
29
+ font-size: var(--font-size-2xl);
30
+ font-weight: var(--font-weight-semibold);
31
+ line-height: var(--line-height-snug);
32
+ }
33
+
34
+ h4 {
35
+ font-size: var(--font-size-xl);
36
+ font-weight: var(--font-weight-semibold);
37
+ }
38
+
39
+ a {
40
+ color: var(--color-brand-primary);
41
+ text-decoration: underline;
42
+ text-underline-offset: 0.15em;
43
+ }
44
+
45
+ a:hover {
46
+ color: var(--color-brand-primary-hover);
47
+ }
48
+
49
+ code {
50
+ font-family: var(--font-family-mono);
51
+ font-size: 0.9em;
52
+ background: var(--color-bg-tertiary);
53
+ padding: 0.125em 0.25em;
54
+ border-radius: var(--radius-sm);
55
+ }
@@ -0,0 +1,213 @@
1
+ /* reset.css */
2
+ /* Minimal reset — based on modern-normalize with a few opinionated extras. */
3
+
4
+ *,
5
+ *::before,
6
+ *::after {
7
+ box-sizing: border-box;
8
+ }
9
+
10
+ html {
11
+ -webkit-text-size-adjust: 100%;
12
+ -moz-tab-size: 4;
13
+ tab-size: 4;
14
+ }
15
+
16
+ body {
17
+ margin: 0;
18
+ }
19
+
20
+ p,
21
+ h1,
22
+ h2,
23
+ h3,
24
+ h4,
25
+ h5,
26
+ h6 {
27
+ margin: 0;
28
+ }
29
+
30
+ button,
31
+ input,
32
+ select,
33
+ textarea {
34
+ font: inherit;
35
+ color: inherit;
36
+ }
37
+
38
+ img,
39
+ svg,
40
+ video {
41
+ display: block;
42
+ max-width: 100%;
43
+ height: auto;
44
+ }
45
+
46
+ :focus-visible {
47
+ outline: 2px solid var(--color-brand-primary);
48
+ outline-offset: 2px;
49
+ }
50
+
51
+ /* tokens.css */
52
+ /* Auto-generated by scripts/build-tokens-css.ts. Do not edit by hand. */
53
+
54
+ :root {
55
+ /* Colors */
56
+ --color-neutral-0: #FFFFFF;
57
+ --color-neutral-50: #FAFAFA;
58
+ --color-neutral-100: #F4F4F5;
59
+ --color-neutral-200: #E4E4E7;
60
+ --color-neutral-300: #D4D4D8;
61
+ --color-neutral-400: #A1A1AA;
62
+ --color-neutral-500: #71717A;
63
+ --color-neutral-600: #52525B;
64
+ --color-neutral-700: #3F3F46;
65
+ --color-neutral-800: #27272A;
66
+ --color-neutral-900: #18181B;
67
+ --color-neutral-1000: #000000;
68
+ --color-brand-primary: #2563EB;
69
+ --color-brand-primary-hover: #1D4ED8;
70
+ --color-brand-secondary: #0891B2;
71
+ --color-text-primary: #18181B;
72
+ --color-text-secondary: #52525B;
73
+ --color-text-muted: #71717A;
74
+ --color-text-inverse: #FFFFFF;
75
+ --color-bg-primary: #FFFFFF;
76
+ --color-bg-secondary: #FAFAFA;
77
+ --color-bg-tertiary: #F4F4F5;
78
+ --color-bg-inverse: #18181B;
79
+ --color-border-default: #E4E4E7;
80
+ --color-border-strong: #D4D4D8;
81
+ --color-state-success: #16A34A;
82
+ --color-state-warning: #CA8A04;
83
+ --color-state-error: #DC2626;
84
+ --color-state-info: #2563EB;
85
+
86
+ /* Typography */
87
+ --font-family-sans: Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
88
+ --font-family-mono: ui-monospace, "SF Mono", Monaco, Consolas, monospace;
89
+ --font-size-xs: 0.75rem;
90
+ --font-size-sm: 0.875rem;
91
+ --font-size-base: 1rem;
92
+ --font-size-lg: 1.125rem;
93
+ --font-size-xl: 1.25rem;
94
+ --font-size-2xl: 1.5rem;
95
+ --font-size-3xl: 1.875rem;
96
+ --font-size-4xl: 2.25rem;
97
+ --font-size-5xl: 3rem;
98
+ --font-size-6xl: 3.75rem;
99
+ --font-weight-normal: 400;
100
+ --font-weight-medium: 500;
101
+ --font-weight-semibold: 600;
102
+ --font-weight-bold: 700;
103
+ --line-height-tight: 1.15;
104
+ --line-height-snug: 1.3;
105
+ --line-height-normal: 1.5;
106
+ --line-height-relaxed: 1.65;
107
+ --line-height-loose: 1.8;
108
+ --letter-spacing-tight: -0.025em;
109
+ --letter-spacing-normal: 0;
110
+ --letter-spacing-wide: 0.025em;
111
+
112
+ /* Spacing */
113
+ --spacing-0: 0;
114
+ --spacing-px: 1px;
115
+ --spacing-0-5: 0.125rem;
116
+ --spacing-1: 0.25rem;
117
+ --spacing-2: 0.5rem;
118
+ --spacing-3: 0.75rem;
119
+ --spacing-4: 1rem;
120
+ --spacing-5: 1.25rem;
121
+ --spacing-6: 1.5rem;
122
+ --spacing-8: 2rem;
123
+ --spacing-10: 2.5rem;
124
+ --spacing-12: 3rem;
125
+ --spacing-16: 4rem;
126
+ --spacing-20: 5rem;
127
+ --spacing-24: 6rem;
128
+ --spacing-32: 8rem;
129
+ --spacing-40: 10rem;
130
+ --spacing-48: 12rem;
131
+ --spacing-section: 5rem;
132
+ --spacing-container: 1.5rem;
133
+
134
+ /* Radii */
135
+ --radius-none: 0;
136
+ --radius-sm: 0.25rem;
137
+ --radius-md: 0.375rem;
138
+ --radius-lg: 0.5rem;
139
+ --radius-xl: 0.75rem;
140
+ --radius-2xl: 1rem;
141
+ --radius-full: 9999px;
142
+ }
143
+
144
+ @media (prefers-color-scheme: dark) {
145
+ :root {
146
+ --color-text-primary: #FAFAFA;
147
+ --color-text-secondary: #A1A1AA;
148
+ --color-text-muted: #71717A;
149
+ --color-bg-primary: #18181B;
150
+ --color-bg-secondary: #27272A;
151
+ --color-bg-tertiary: #3F3F46;
152
+ --color-bg-inverse: #FAFAFA;
153
+ --color-border-default: #3F3F46;
154
+ --color-border-strong: #52525B;
155
+ }
156
+ }
157
+
158
+ /* base.css */
159
+ /* Base element styles applied on top of reset.css + tokens.css. */
160
+
161
+ html {
162
+ font-family: var(--font-family-sans);
163
+ font-size: 16px;
164
+ line-height: var(--line-height-normal);
165
+ color: var(--color-text-primary);
166
+ background: var(--color-bg-primary);
167
+ }
168
+
169
+ body {
170
+ font-size: var(--font-size-base);
171
+ }
172
+
173
+ h1 {
174
+ font-size: var(--font-size-5xl);
175
+ font-weight: var(--font-weight-bold);
176
+ line-height: var(--line-height-tight);
177
+ letter-spacing: var(--letter-spacing-tight);
178
+ }
179
+
180
+ h2 {
181
+ font-size: var(--font-size-3xl);
182
+ font-weight: var(--font-weight-semibold);
183
+ line-height: var(--line-height-snug);
184
+ }
185
+
186
+ h3 {
187
+ font-size: var(--font-size-2xl);
188
+ font-weight: var(--font-weight-semibold);
189
+ line-height: var(--line-height-snug);
190
+ }
191
+
192
+ h4 {
193
+ font-size: var(--font-size-xl);
194
+ font-weight: var(--font-weight-semibold);
195
+ }
196
+
197
+ a {
198
+ color: var(--color-brand-primary);
199
+ text-decoration: underline;
200
+ text-underline-offset: 0.15em;
201
+ }
202
+
203
+ a:hover {
204
+ color: var(--color-brand-primary-hover);
205
+ }
206
+
207
+ code {
208
+ font-family: var(--font-family-mono);
209
+ font-size: 0.9em;
210
+ background: var(--color-bg-tertiary);
211
+ padding: 0.125em 0.25em;
212
+ border-radius: var(--radius-sm);
213
+ }
@@ -0,0 +1,48 @@
1
+ /* Minimal reset — based on modern-normalize with a few opinionated extras. */
2
+
3
+ *,
4
+ *::before,
5
+ *::after {
6
+ box-sizing: border-box;
7
+ }
8
+
9
+ html {
10
+ -webkit-text-size-adjust: 100%;
11
+ -moz-tab-size: 4;
12
+ tab-size: 4;
13
+ }
14
+
15
+ body {
16
+ margin: 0;
17
+ }
18
+
19
+ p,
20
+ h1,
21
+ h2,
22
+ h3,
23
+ h4,
24
+ h5,
25
+ h6 {
26
+ margin: 0;
27
+ }
28
+
29
+ button,
30
+ input,
31
+ select,
32
+ textarea {
33
+ font: inherit;
34
+ color: inherit;
35
+ }
36
+
37
+ img,
38
+ svg,
39
+ video {
40
+ display: block;
41
+ max-width: 100%;
42
+ height: auto;
43
+ }
44
+
45
+ :focus-visible {
46
+ outline: 2px solid var(--color-brand-primary);
47
+ outline-offset: 2px;
48
+ }
@@ -0,0 +1,105 @@
1
+ /* Auto-generated by scripts/build-tokens-css.ts. Do not edit by hand. */
2
+
3
+ :root {
4
+ /* Colors */
5
+ --color-neutral-0: #FFFFFF;
6
+ --color-neutral-50: #FAFAFA;
7
+ --color-neutral-100: #F4F4F5;
8
+ --color-neutral-200: #E4E4E7;
9
+ --color-neutral-300: #D4D4D8;
10
+ --color-neutral-400: #A1A1AA;
11
+ --color-neutral-500: #71717A;
12
+ --color-neutral-600: #52525B;
13
+ --color-neutral-700: #3F3F46;
14
+ --color-neutral-800: #27272A;
15
+ --color-neutral-900: #18181B;
16
+ --color-neutral-1000: #000000;
17
+ --color-brand-primary: #2563EB;
18
+ --color-brand-primary-hover: #1D4ED8;
19
+ --color-brand-secondary: #0891B2;
20
+ --color-text-primary: #18181B;
21
+ --color-text-secondary: #52525B;
22
+ --color-text-muted: #71717A;
23
+ --color-text-inverse: #FFFFFF;
24
+ --color-bg-primary: #FFFFFF;
25
+ --color-bg-secondary: #FAFAFA;
26
+ --color-bg-tertiary: #F4F4F5;
27
+ --color-bg-inverse: #18181B;
28
+ --color-border-default: #E4E4E7;
29
+ --color-border-strong: #D4D4D8;
30
+ --color-state-success: #16A34A;
31
+ --color-state-warning: #CA8A04;
32
+ --color-state-error: #DC2626;
33
+ --color-state-info: #2563EB;
34
+
35
+ /* Typography */
36
+ --font-family-sans: Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
37
+ --font-family-mono: ui-monospace, "SF Mono", Monaco, Consolas, monospace;
38
+ --font-size-xs: 0.75rem;
39
+ --font-size-sm: 0.875rem;
40
+ --font-size-base: 1rem;
41
+ --font-size-lg: 1.125rem;
42
+ --font-size-xl: 1.25rem;
43
+ --font-size-2xl: 1.5rem;
44
+ --font-size-3xl: 1.875rem;
45
+ --font-size-4xl: 2.25rem;
46
+ --font-size-5xl: 3rem;
47
+ --font-size-6xl: 3.75rem;
48
+ --font-weight-normal: 400;
49
+ --font-weight-medium: 500;
50
+ --font-weight-semibold: 600;
51
+ --font-weight-bold: 700;
52
+ --line-height-tight: 1.15;
53
+ --line-height-snug: 1.3;
54
+ --line-height-normal: 1.5;
55
+ --line-height-relaxed: 1.65;
56
+ --line-height-loose: 1.8;
57
+ --letter-spacing-tight: -0.025em;
58
+ --letter-spacing-normal: 0;
59
+ --letter-spacing-wide: 0.025em;
60
+
61
+ /* Spacing */
62
+ --spacing-0: 0;
63
+ --spacing-px: 1px;
64
+ --spacing-0-5: 0.125rem;
65
+ --spacing-1: 0.25rem;
66
+ --spacing-2: 0.5rem;
67
+ --spacing-3: 0.75rem;
68
+ --spacing-4: 1rem;
69
+ --spacing-5: 1.25rem;
70
+ --spacing-6: 1.5rem;
71
+ --spacing-8: 2rem;
72
+ --spacing-10: 2.5rem;
73
+ --spacing-12: 3rem;
74
+ --spacing-16: 4rem;
75
+ --spacing-20: 5rem;
76
+ --spacing-24: 6rem;
77
+ --spacing-32: 8rem;
78
+ --spacing-40: 10rem;
79
+ --spacing-48: 12rem;
80
+ --spacing-section: 5rem;
81
+ --spacing-container: 1.5rem;
82
+
83
+ /* Radii */
84
+ --radius-none: 0;
85
+ --radius-sm: 0.25rem;
86
+ --radius-md: 0.375rem;
87
+ --radius-lg: 0.5rem;
88
+ --radius-xl: 0.75rem;
89
+ --radius-2xl: 1rem;
90
+ --radius-full: 9999px;
91
+ }
92
+
93
+ @media (prefers-color-scheme: dark) {
94
+ :root {
95
+ --color-text-primary: #FAFAFA;
96
+ --color-text-secondary: #A1A1AA;
97
+ --color-text-muted: #71717A;
98
+ --color-bg-primary: #18181B;
99
+ --color-bg-secondary: #27272A;
100
+ --color-bg-tertiary: #3F3F46;
101
+ --color-bg-inverse: #FAFAFA;
102
+ --color-border-default: #3F3F46;
103
+ --color-border-strong: #52525B;
104
+ }
105
+ }
@@ -0,0 +1,48 @@
1
+ export declare const colors: {
2
+ readonly 'color.neutral.0': "#FFFFFF";
3
+ readonly 'color.neutral.50': "#FAFAFA";
4
+ readonly 'color.neutral.100': "#F4F4F5";
5
+ readonly 'color.neutral.200': "#E4E4E7";
6
+ readonly 'color.neutral.300': "#D4D4D8";
7
+ readonly 'color.neutral.400': "#A1A1AA";
8
+ readonly 'color.neutral.500': "#71717A";
9
+ readonly 'color.neutral.600': "#52525B";
10
+ readonly 'color.neutral.700': "#3F3F46";
11
+ readonly 'color.neutral.800': "#27272A";
12
+ readonly 'color.neutral.900': "#18181B";
13
+ readonly 'color.neutral.1000': "#000000";
14
+ readonly 'color.brand.primary': "#2563EB";
15
+ readonly 'color.brand.primaryHover': "#1D4ED8";
16
+ readonly 'color.brand.secondary': "#0891B2";
17
+ readonly 'color.text.primary': "#18181B";
18
+ readonly 'color.text.secondary': "#52525B";
19
+ readonly 'color.text.muted': "#71717A";
20
+ readonly 'color.text.inverse': "#FFFFFF";
21
+ readonly 'color.bg.primary': "#FFFFFF";
22
+ readonly 'color.bg.secondary': "#FAFAFA";
23
+ readonly 'color.bg.tertiary': "#F4F4F5";
24
+ readonly 'color.bg.inverse': "#18181B";
25
+ readonly 'color.border.default': "#E4E4E7";
26
+ readonly 'color.border.strong': "#D4D4D8";
27
+ readonly 'color.state.success': "#16A34A";
28
+ readonly 'color.state.warning': "#CA8A04";
29
+ readonly 'color.state.error': "#DC2626";
30
+ readonly 'color.state.info': "#2563EB";
31
+ };
32
+ /**
33
+ * Tokens that swap under `prefers-color-scheme: dark`. Keys match the base
34
+ * palette; values replace the light defaults when the media query applies.
35
+ */
36
+ export declare const darkOverrides: {
37
+ readonly 'color.text.primary': "#FAFAFA";
38
+ readonly 'color.text.secondary': "#A1A1AA";
39
+ readonly 'color.text.muted': "#71717A";
40
+ readonly 'color.bg.primary': "#18181B";
41
+ readonly 'color.bg.secondary': "#27272A";
42
+ readonly 'color.bg.tertiary': "#3F3F46";
43
+ readonly 'color.bg.inverse': "#FAFAFA";
44
+ readonly 'color.border.default': "#3F3F46";
45
+ readonly 'color.border.strong': "#52525B";
46
+ };
47
+ export type ColorToken = keyof typeof colors;
48
+ //# sourceMappingURL=colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../src/tokens/colors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCT,CAAA;AAEV;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;CAUhB,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,MAAM,CAAA"}
@@ -0,0 +1,47 @@
1
+ export const colors = {
2
+ 'color.neutral.0': '#FFFFFF',
3
+ 'color.neutral.50': '#FAFAFA',
4
+ 'color.neutral.100': '#F4F4F5',
5
+ 'color.neutral.200': '#E4E4E7',
6
+ 'color.neutral.300': '#D4D4D8',
7
+ 'color.neutral.400': '#A1A1AA',
8
+ 'color.neutral.500': '#71717A',
9
+ 'color.neutral.600': '#52525B',
10
+ 'color.neutral.700': '#3F3F46',
11
+ 'color.neutral.800': '#27272A',
12
+ 'color.neutral.900': '#18181B',
13
+ 'color.neutral.1000': '#000000',
14
+ 'color.brand.primary': '#2563EB',
15
+ 'color.brand.primaryHover': '#1D4ED8',
16
+ 'color.brand.secondary': '#0891B2',
17
+ 'color.text.primary': '#18181B',
18
+ 'color.text.secondary': '#52525B',
19
+ 'color.text.muted': '#71717A',
20
+ 'color.text.inverse': '#FFFFFF',
21
+ 'color.bg.primary': '#FFFFFF',
22
+ 'color.bg.secondary': '#FAFAFA',
23
+ 'color.bg.tertiary': '#F4F4F5',
24
+ 'color.bg.inverse': '#18181B',
25
+ 'color.border.default': '#E4E4E7',
26
+ 'color.border.strong': '#D4D4D8',
27
+ 'color.state.success': '#16A34A',
28
+ 'color.state.warning': '#CA8A04',
29
+ 'color.state.error': '#DC2626',
30
+ 'color.state.info': '#2563EB',
31
+ };
32
+ /**
33
+ * Tokens that swap under `prefers-color-scheme: dark`. Keys match the base
34
+ * palette; values replace the light defaults when the media query applies.
35
+ */
36
+ export const darkOverrides = {
37
+ 'color.text.primary': '#FAFAFA',
38
+ 'color.text.secondary': '#A1A1AA',
39
+ 'color.text.muted': '#71717A',
40
+ 'color.bg.primary': '#18181B',
41
+ 'color.bg.secondary': '#27272A',
42
+ 'color.bg.tertiary': '#3F3F46',
43
+ 'color.bg.inverse': '#FAFAFA',
44
+ 'color.border.default': '#3F3F46',
45
+ 'color.border.strong': '#52525B',
46
+ };
47
+ //# sourceMappingURL=colors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.js","sourceRoot":"","sources":["../../src/tokens/colors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,iBAAiB,EAAE,SAAS;IAC5B,kBAAkB,EAAE,SAAS;IAC7B,mBAAmB,EAAE,SAAS;IAC9B,mBAAmB,EAAE,SAAS;IAC9B,mBAAmB,EAAE,SAAS;IAC9B,mBAAmB,EAAE,SAAS;IAC9B,mBAAmB,EAAE,SAAS;IAC9B,mBAAmB,EAAE,SAAS;IAC9B,mBAAmB,EAAE,SAAS;IAC9B,mBAAmB,EAAE,SAAS;IAC9B,mBAAmB,EAAE,SAAS;IAC9B,oBAAoB,EAAE,SAAS;IAE/B,qBAAqB,EAAE,SAAS;IAChC,0BAA0B,EAAE,SAAS;IACrC,uBAAuB,EAAE,SAAS;IAElC,oBAAoB,EAAE,SAAS;IAC/B,sBAAsB,EAAE,SAAS;IACjC,kBAAkB,EAAE,SAAS;IAC7B,oBAAoB,EAAE,SAAS;IAE/B,kBAAkB,EAAE,SAAS;IAC7B,oBAAoB,EAAE,SAAS;IAC/B,mBAAmB,EAAE,SAAS;IAC9B,kBAAkB,EAAE,SAAS;IAE7B,sBAAsB,EAAE,SAAS;IACjC,qBAAqB,EAAE,SAAS;IAEhC,qBAAqB,EAAE,SAAS;IAChC,qBAAqB,EAAE,SAAS;IAChC,mBAAmB,EAAE,SAAS;IAC9B,kBAAkB,EAAE,SAAS;CACrB,CAAA;AAEV;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,oBAAoB,EAAE,SAAS;IAC/B,sBAAsB,EAAE,SAAS;IACjC,kBAAkB,EAAE,SAAS;IAC7B,kBAAkB,EAAE,SAAS;IAC7B,oBAAoB,EAAE,SAAS;IAC/B,mBAAmB,EAAE,SAAS;IAC9B,kBAAkB,EAAE,SAAS;IAC7B,sBAAsB,EAAE,SAAS;IACjC,qBAAqB,EAAE,SAAS;CACxB,CAAA"}
@@ -0,0 +1,99 @@
1
+ import { colors, darkOverrides } from './colors.js';
2
+ import { typography } from './typography.js';
3
+ import { spacing } from './spacing.js';
4
+ import { radii } from './radii.js';
5
+ export { colors, darkOverrides, typography, spacing, radii };
6
+ export type { ColorToken } from './colors.js';
7
+ export type { TypographyToken } from './typography.js';
8
+ export type { SpacingToken } from './spacing.js';
9
+ export type { RadiusToken } from './radii.js';
10
+ export declare const allTokens: {
11
+ readonly 'radius.none': "0";
12
+ readonly 'radius.sm': "0.25rem";
13
+ readonly 'radius.md': "0.375rem";
14
+ readonly 'radius.lg': "0.5rem";
15
+ readonly 'radius.xl': "0.75rem";
16
+ readonly 'radius.2xl': "1rem";
17
+ readonly 'radius.full': "9999px";
18
+ readonly 'spacing.0': "0";
19
+ readonly 'spacing.px': "1px";
20
+ readonly 'spacing.0.5': "0.125rem";
21
+ readonly 'spacing.1': "0.25rem";
22
+ readonly 'spacing.2': "0.5rem";
23
+ readonly 'spacing.3': "0.75rem";
24
+ readonly 'spacing.4': "1rem";
25
+ readonly 'spacing.5': "1.25rem";
26
+ readonly 'spacing.6': "1.5rem";
27
+ readonly 'spacing.8': "2rem";
28
+ readonly 'spacing.10': "2.5rem";
29
+ readonly 'spacing.12': "3rem";
30
+ readonly 'spacing.16': "4rem";
31
+ readonly 'spacing.20': "5rem";
32
+ readonly 'spacing.24': "6rem";
33
+ readonly 'spacing.32': "8rem";
34
+ readonly 'spacing.40': "10rem";
35
+ readonly 'spacing.48': "12rem";
36
+ readonly 'spacing.section': "5rem";
37
+ readonly 'spacing.container': "1.5rem";
38
+ readonly 'font.family.sans': "Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif";
39
+ readonly 'font.family.mono': "ui-monospace, \"SF Mono\", Monaco, Consolas, monospace";
40
+ readonly 'font.size.xs': "0.75rem";
41
+ readonly 'font.size.sm': "0.875rem";
42
+ readonly 'font.size.base': "1rem";
43
+ readonly 'font.size.lg': "1.125rem";
44
+ readonly 'font.size.xl': "1.25rem";
45
+ readonly 'font.size.2xl': "1.5rem";
46
+ readonly 'font.size.3xl': "1.875rem";
47
+ readonly 'font.size.4xl': "2.25rem";
48
+ readonly 'font.size.5xl': "3rem";
49
+ readonly 'font.size.6xl': "3.75rem";
50
+ readonly 'font.weight.normal': "400";
51
+ readonly 'font.weight.medium': "500";
52
+ readonly 'font.weight.semibold': "600";
53
+ readonly 'font.weight.bold': "700";
54
+ readonly 'line.height.tight': "1.15";
55
+ readonly 'line.height.snug': "1.3";
56
+ readonly 'line.height.normal': "1.5";
57
+ readonly 'line.height.relaxed': "1.65";
58
+ readonly 'line.height.loose': "1.8";
59
+ readonly 'letter.spacing.tight': "-0.025em";
60
+ readonly 'letter.spacing.normal': "0";
61
+ readonly 'letter.spacing.wide': "0.025em";
62
+ readonly 'color.neutral.0': "#FFFFFF";
63
+ readonly 'color.neutral.50': "#FAFAFA";
64
+ readonly 'color.neutral.100': "#F4F4F5";
65
+ readonly 'color.neutral.200': "#E4E4E7";
66
+ readonly 'color.neutral.300': "#D4D4D8";
67
+ readonly 'color.neutral.400': "#A1A1AA";
68
+ readonly 'color.neutral.500': "#71717A";
69
+ readonly 'color.neutral.600': "#52525B";
70
+ readonly 'color.neutral.700': "#3F3F46";
71
+ readonly 'color.neutral.800': "#27272A";
72
+ readonly 'color.neutral.900': "#18181B";
73
+ readonly 'color.neutral.1000': "#000000";
74
+ readonly 'color.brand.primary': "#2563EB";
75
+ readonly 'color.brand.primaryHover': "#1D4ED8";
76
+ readonly 'color.brand.secondary': "#0891B2";
77
+ readonly 'color.text.primary': "#18181B";
78
+ readonly 'color.text.secondary': "#52525B";
79
+ readonly 'color.text.muted': "#71717A";
80
+ readonly 'color.text.inverse': "#FFFFFF";
81
+ readonly 'color.bg.primary': "#FFFFFF";
82
+ readonly 'color.bg.secondary': "#FAFAFA";
83
+ readonly 'color.bg.tertiary': "#F4F4F5";
84
+ readonly 'color.bg.inverse': "#18181B";
85
+ readonly 'color.border.default': "#E4E4E7";
86
+ readonly 'color.border.strong': "#D4D4D8";
87
+ readonly 'color.state.success': "#16A34A";
88
+ readonly 'color.state.warning': "#CA8A04";
89
+ readonly 'color.state.error': "#DC2626";
90
+ readonly 'color.state.info': "#2563EB";
91
+ };
92
+ export type TokenName = keyof typeof allTokens;
93
+ /** Returns every token in the shape the design-contract manifest expects. */
94
+ export declare function getTokenList(): {
95
+ name: string;
96
+ value: "0" | "#FFFFFF" | "#FAFAFA" | "#F4F4F5" | "#E4E4E7" | "#D4D4D8" | "#A1A1AA" | "#71717A" | "#52525B" | "#3F3F46" | "#27272A" | "#18181B" | "#000000" | "#2563EB" | "#1D4ED8" | "#0891B2" | "#16A34A" | "#CA8A04" | "#DC2626" | "Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif" | "ui-monospace, \"SF Mono\", Monaco, Consolas, monospace" | "0.75rem" | "0.875rem" | "1rem" | "1.125rem" | "1.25rem" | "1.5rem" | "1.875rem" | "2.25rem" | "3rem" | "3.75rem" | "400" | "500" | "600" | "700" | "1.15" | "1.3" | "1.5" | "1.65" | "1.8" | "-0.025em" | "0.025em" | "1px" | "0.125rem" | "0.25rem" | "0.5rem" | "2rem" | "2.5rem" | "4rem" | "5rem" | "6rem" | "8rem" | "10rem" | "12rem" | "0.375rem" | "9999px";
97
+ category: string;
98
+ }[];
99
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tokens/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;AAC5D,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKZ,CAAA;AAEV,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,SAAS,CAAA;AAE9C,6EAA6E;AAC7E,wBAAgB,YAAY;;;;IAO3B"}
@@ -0,0 +1,21 @@
1
+ import { colors, darkOverrides } from './colors.js';
2
+ import { typography } from './typography.js';
3
+ import { spacing } from './spacing.js';
4
+ import { radii } from './radii.js';
5
+ export { colors, darkOverrides, typography, spacing, radii };
6
+ export const allTokens = {
7
+ ...colors,
8
+ ...typography,
9
+ ...spacing,
10
+ ...radii,
11
+ };
12
+ /** Returns every token in the shape the design-contract manifest expects. */
13
+ export function getTokenList() {
14
+ const categorize = (name) => name.split('.')[0] ?? 'other';
15
+ return Object.entries(allTokens).map(([name, value]) => ({
16
+ name,
17
+ value,
18
+ category: categorize(name),
19
+ }));
20
+ }
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tokens/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;AAM5D,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,GAAG,MAAM;IACT,GAAG,UAAU;IACb,GAAG,OAAO;IACV,GAAG,KAAK;CACA,CAAA;AAIV,6EAA6E;AAC7E,MAAM,UAAU,YAAY;IAC1B,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAA;IAClE,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACvD,IAAI;QACJ,KAAK;QACL,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC,CAAA;AACL,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare const radii: {
2
+ readonly 'radius.none': "0";
3
+ readonly 'radius.sm': "0.25rem";
4
+ readonly 'radius.md': "0.375rem";
5
+ readonly 'radius.lg': "0.5rem";
6
+ readonly 'radius.xl': "0.75rem";
7
+ readonly 'radius.2xl': "1rem";
8
+ readonly 'radius.full': "9999px";
9
+ };
10
+ export type RadiusToken = keyof typeof radii;
11
+ //# sourceMappingURL=radii.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radii.d.ts","sourceRoot":"","sources":["../../src/tokens/radii.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK;;;;;;;;CAQR,CAAA;AAEV,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,KAAK,CAAA"}
@@ -0,0 +1,10 @@
1
+ export const radii = {
2
+ 'radius.none': '0',
3
+ 'radius.sm': '0.25rem',
4
+ 'radius.md': '0.375rem',
5
+ 'radius.lg': '0.5rem',
6
+ 'radius.xl': '0.75rem',
7
+ 'radius.2xl': '1rem',
8
+ 'radius.full': '9999px',
9
+ };
10
+ //# sourceMappingURL=radii.js.map