@discourser/design-system 0.25.2 → 0.26.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.
- package/README.md +76 -73
- package/dist/{chunk-ZPECW4N2.js → chunk-4XOWPACJ.js} +257 -105
- package/dist/chunk-4XOWPACJ.js.map +1 -0
- package/dist/{chunk-QNCZYFUJ.cjs → chunk-AZ6QU2L2.cjs} +257 -105
- package/dist/chunk-AZ6QU2L2.cjs.map +1 -0
- package/dist/{chunk-TBLDQATQ.cjs → chunk-EBDNCZF6.cjs} +94 -54
- package/dist/chunk-EBDNCZF6.cjs.map +1 -0
- package/dist/{chunk-UHSL4N44.js → chunk-MAVUSE4F.js} +94 -55
- package/dist/chunk-MAVUSE4F.js.map +1 -0
- package/dist/components/Checkbox.d.ts +1 -1
- package/dist/components/Icons/LeftArrowIcon.d.ts +6 -0
- package/dist/components/Icons/LeftArrowIcon.d.ts.map +1 -0
- package/dist/components/Icons/RightArrowIcon.d.ts.map +1 -1
- package/dist/components/Icons/index.d.ts +1 -0
- package/dist/components/Icons/index.d.ts.map +1 -1
- package/dist/components/index.cjs +79 -75
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/contracts/design-language.contract.d.ts +52 -18
- package/dist/contracts/design-language.contract.d.ts.map +1 -1
- package/dist/figma-codex.json +6 -4
- package/dist/index.cjs +83 -79
- package/dist/index.js +2 -2
- package/dist/languages/material3.language.d.ts.map +1 -1
- package/dist/languages/transform.d.ts +5 -5
- package/dist/languages/transform.d.ts.map +1 -1
- package/dist/preset/index.cjs +2 -2
- package/dist/preset/index.js +1 -1
- package/docs/token-name-mapping.json +614 -42
- package/docs/token-name-mapping.md +117 -29
- package/package.json +19 -6
- package/src/components/Icons/LeftArrowIcon.tsx +28 -0
- package/src/components/Icons/RightArrowIcon.tsx +7 -2
- package/src/components/Icons/index.ts +1 -0
- package/src/components/index.ts +1 -0
- package/src/contracts/design-language.contract.ts +69 -20
- package/src/languages/material3.language.ts +249 -80
- package/src/languages/transform.ts +45 -48
- package/src/preset/__tests__/translation-token-accuracy.test.ts +13 -0
- package/src/stories/foundations/Colors.mdx +9 -1
- package/src/stories/foundations/Elevation.mdx +23 -17
- package/src/stories/foundations/TokenReference.stories.tsx +970 -0
- package/src/stories/foundations/TonalPaletteDerivation.stories.tsx +782 -0
- package/src/stories/foundations/Typography.mdx +125 -25
- package/dist/chunk-QNCZYFUJ.cjs.map +0 -1
- package/dist/chunk-TBLDQATQ.cjs.map +0 -1
- package/dist/chunk-UHSL4N44.js.map +0 -1
- package/dist/chunk-ZPECW4N2.js.map +0 -1
|
@@ -174,119 +174,264 @@ var material3Language = {
|
|
|
174
174
|
},
|
|
175
175
|
typography: {
|
|
176
176
|
fonts: {
|
|
177
|
-
display:
|
|
178
|
-
|
|
179
|
-
|
|
177
|
+
display: {
|
|
178
|
+
family: '"Fraunces", Georgia, serif',
|
|
179
|
+
figmaName: "Fraunces",
|
|
180
|
+
weightMap: {
|
|
181
|
+
"100": "Thin",
|
|
182
|
+
"300": "Light",
|
|
183
|
+
"400": "Regular",
|
|
184
|
+
"500": "Medium",
|
|
185
|
+
"600": "SemiBold",
|
|
186
|
+
"700": "Bold"
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
body: {
|
|
190
|
+
family: '"Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
|
|
191
|
+
figmaName: "Poppins",
|
|
192
|
+
weightMap: {
|
|
193
|
+
"100": "Thin",
|
|
194
|
+
"300": "Light",
|
|
195
|
+
"400": "Regular",
|
|
196
|
+
"500": "Medium",
|
|
197
|
+
"600": "SemiBold",
|
|
198
|
+
"700": "Bold"
|
|
199
|
+
}
|
|
200
|
+
},
|
|
201
|
+
mono: {
|
|
202
|
+
family: '"JetBrains Mono", "Fira Code", Consolas, monospace',
|
|
203
|
+
figmaName: "JetBrains Mono",
|
|
204
|
+
weightMap: {
|
|
205
|
+
"400": "Regular",
|
|
206
|
+
"700": "Bold"
|
|
207
|
+
}
|
|
208
|
+
}
|
|
180
209
|
},
|
|
181
210
|
scale: {
|
|
211
|
+
// ── Display ─────────────────────────────────────────────────────────────
|
|
182
212
|
displayLarge: {
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
213
|
+
geometry: {
|
|
214
|
+
fontSize: "57px",
|
|
215
|
+
lineHeight: "64px",
|
|
216
|
+
letterSpacing: "-0.25px",
|
|
217
|
+
fontFamily: "display",
|
|
218
|
+
fontVariationSettings: "'SOFT' 0, 'WONK' 1"
|
|
219
|
+
},
|
|
220
|
+
defaultWeight: "regular",
|
|
221
|
+
weights: {
|
|
222
|
+
regular: { name: "regular", fontWeight: "400" },
|
|
223
|
+
semiBold: { name: "semiBold", fontWeight: "600" }
|
|
224
|
+
}
|
|
189
225
|
},
|
|
190
226
|
displayMedium: {
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
227
|
+
geometry: {
|
|
228
|
+
fontSize: "45px",
|
|
229
|
+
lineHeight: "52px",
|
|
230
|
+
letterSpacing: "0px",
|
|
231
|
+
fontFamily: "display"
|
|
232
|
+
},
|
|
233
|
+
defaultWeight: "regular",
|
|
234
|
+
weights: {
|
|
235
|
+
regular: { name: "regular", fontWeight: "400" },
|
|
236
|
+
semiBold: { name: "semiBold", fontWeight: "600" }
|
|
237
|
+
}
|
|
196
238
|
},
|
|
197
239
|
displaySmall: {
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
240
|
+
geometry: {
|
|
241
|
+
fontSize: "36px",
|
|
242
|
+
lineHeight: "44px",
|
|
243
|
+
letterSpacing: "0px",
|
|
244
|
+
fontFamily: "display"
|
|
245
|
+
},
|
|
246
|
+
defaultWeight: "regular",
|
|
247
|
+
weights: {
|
|
248
|
+
regular: { name: "regular", fontWeight: "400" },
|
|
249
|
+
semiBold: { name: "semiBold", fontWeight: "600" }
|
|
250
|
+
}
|
|
203
251
|
},
|
|
252
|
+
// ── Headline ────────────────────────────────────────────────────────────
|
|
204
253
|
headlineLarge: {
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
254
|
+
geometry: {
|
|
255
|
+
fontSize: "32px",
|
|
256
|
+
lineHeight: "40px",
|
|
257
|
+
letterSpacing: "0px",
|
|
258
|
+
fontFamily: "display"
|
|
259
|
+
},
|
|
260
|
+
defaultWeight: "regular",
|
|
261
|
+
weights: {
|
|
262
|
+
light: { name: "light", fontWeight: "300" },
|
|
263
|
+
regular: { name: "regular", fontWeight: "400" },
|
|
264
|
+
semiBold: { name: "semiBold", fontWeight: "600" }
|
|
265
|
+
}
|
|
210
266
|
},
|
|
211
267
|
headlineMedium: {
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
268
|
+
geometry: {
|
|
269
|
+
fontSize: "28px",
|
|
270
|
+
lineHeight: "36px",
|
|
271
|
+
letterSpacing: "0px",
|
|
272
|
+
fontFamily: "display",
|
|
273
|
+
fontVariationSettings: "'SOFT' 0, 'WONK' 1"
|
|
274
|
+
},
|
|
275
|
+
defaultWeight: "regular",
|
|
276
|
+
weights: {
|
|
277
|
+
light: { name: "light", fontWeight: "300" },
|
|
278
|
+
regular: { name: "regular", fontWeight: "400" },
|
|
279
|
+
semiBold: { name: "semiBold", fontWeight: "600" }
|
|
280
|
+
}
|
|
218
281
|
},
|
|
219
282
|
headlineSmall: {
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
283
|
+
geometry: {
|
|
284
|
+
fontSize: "24px",
|
|
285
|
+
lineHeight: "32px",
|
|
286
|
+
letterSpacing: "0px",
|
|
287
|
+
fontFamily: "display"
|
|
288
|
+
},
|
|
289
|
+
defaultWeight: "regular",
|
|
290
|
+
weights: {
|
|
291
|
+
light: { name: "light", fontWeight: "300" },
|
|
292
|
+
regular: { name: "regular", fontWeight: "400" },
|
|
293
|
+
semiBold: { name: "semiBold", fontWeight: "600" }
|
|
294
|
+
}
|
|
225
295
|
},
|
|
296
|
+
// ── Title ────────────────────────────────────────────────────────────────
|
|
226
297
|
titleLarge: {
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
298
|
+
geometry: {
|
|
299
|
+
fontSize: "22px",
|
|
300
|
+
lineHeight: "28px",
|
|
301
|
+
letterSpacing: "0px",
|
|
302
|
+
fontFamily: "body"
|
|
303
|
+
},
|
|
304
|
+
defaultWeight: "medium",
|
|
305
|
+
weights: {
|
|
306
|
+
regular: { name: "regular", fontWeight: "400" },
|
|
307
|
+
medium: { name: "medium", fontWeight: "500" },
|
|
308
|
+
semiBold: { name: "semiBold", fontWeight: "600" },
|
|
309
|
+
bold: { name: "bold", fontWeight: "700" }
|
|
310
|
+
}
|
|
232
311
|
},
|
|
233
312
|
titleMedium: {
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
313
|
+
geometry: {
|
|
314
|
+
fontSize: "16px",
|
|
315
|
+
lineHeight: "24px",
|
|
316
|
+
letterSpacing: "0.15px",
|
|
317
|
+
fontFamily: "body"
|
|
318
|
+
},
|
|
319
|
+
defaultWeight: "medium",
|
|
320
|
+
weights: {
|
|
321
|
+
regular: { name: "regular", fontWeight: "400" },
|
|
322
|
+
medium: { name: "medium", fontWeight: "500" },
|
|
323
|
+
semiBold: { name: "semiBold", fontWeight: "600" },
|
|
324
|
+
bold: { name: "bold", fontWeight: "700" }
|
|
325
|
+
}
|
|
239
326
|
},
|
|
240
327
|
titleSmall: {
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
328
|
+
geometry: {
|
|
329
|
+
fontSize: "14px",
|
|
330
|
+
lineHeight: "20px",
|
|
331
|
+
letterSpacing: "0.1px",
|
|
332
|
+
fontFamily: "body"
|
|
333
|
+
},
|
|
334
|
+
defaultWeight: "medium",
|
|
335
|
+
weights: {
|
|
336
|
+
regular: { name: "regular", fontWeight: "400" },
|
|
337
|
+
medium: { name: "medium", fontWeight: "500" },
|
|
338
|
+
semiBold: { name: "semiBold", fontWeight: "600" },
|
|
339
|
+
bold: { name: "bold", fontWeight: "700" }
|
|
340
|
+
}
|
|
246
341
|
},
|
|
342
|
+
// ── Body ─────────────────────────────────────────────────────────────────
|
|
247
343
|
// Custom override: bodyLarge bumped to 18px/28px (was M3 default 16px/24px)
|
|
248
344
|
// Decision date: 2026-03-24
|
|
249
345
|
bodyLarge: {
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
346
|
+
geometry: {
|
|
347
|
+
fontSize: "18px",
|
|
348
|
+
lineHeight: "28px",
|
|
349
|
+
letterSpacing: "0.5px",
|
|
350
|
+
fontFamily: "body"
|
|
351
|
+
},
|
|
352
|
+
defaultWeight: "regular",
|
|
353
|
+
weights: {
|
|
354
|
+
light: { name: "light", fontWeight: "300" },
|
|
355
|
+
regular: { name: "regular", fontWeight: "400" },
|
|
356
|
+
medium: { name: "medium", fontWeight: "500" },
|
|
357
|
+
semiBold: { name: "semiBold", fontWeight: "600" }
|
|
358
|
+
}
|
|
255
359
|
},
|
|
256
360
|
bodyMedium: {
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
361
|
+
geometry: {
|
|
362
|
+
fontSize: "14px",
|
|
363
|
+
lineHeight: "20px",
|
|
364
|
+
letterSpacing: "0.25px",
|
|
365
|
+
fontFamily: "body"
|
|
366
|
+
},
|
|
367
|
+
defaultWeight: "regular",
|
|
368
|
+
weights: {
|
|
369
|
+
light: { name: "light", fontWeight: "300" },
|
|
370
|
+
regular: { name: "regular", fontWeight: "400" },
|
|
371
|
+
medium: { name: "medium", fontWeight: "500" },
|
|
372
|
+
semiBold: { name: "semiBold", fontWeight: "600" }
|
|
373
|
+
}
|
|
262
374
|
},
|
|
263
375
|
bodySmall: {
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
376
|
+
geometry: {
|
|
377
|
+
fontSize: "12px",
|
|
378
|
+
lineHeight: "16px",
|
|
379
|
+
letterSpacing: "0.4px",
|
|
380
|
+
fontFamily: "body"
|
|
381
|
+
},
|
|
382
|
+
defaultWeight: "regular",
|
|
383
|
+
weights: {
|
|
384
|
+
light: { name: "light", fontWeight: "300" },
|
|
385
|
+
regular: { name: "regular", fontWeight: "400" },
|
|
386
|
+
medium: { name: "medium", fontWeight: "500" },
|
|
387
|
+
semiBold: { name: "semiBold", fontWeight: "600" }
|
|
388
|
+
}
|
|
269
389
|
},
|
|
390
|
+
// ── Label ────────────────────────────────────────────────────────────────
|
|
270
391
|
labelLarge: {
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
392
|
+
geometry: {
|
|
393
|
+
fontSize: "14px",
|
|
394
|
+
lineHeight: "20px",
|
|
395
|
+
letterSpacing: "0.1px",
|
|
396
|
+
fontFamily: "body"
|
|
397
|
+
},
|
|
398
|
+
defaultWeight: "medium",
|
|
399
|
+
weights: {
|
|
400
|
+
light: { name: "light", fontWeight: "300" },
|
|
401
|
+
medium: { name: "medium", fontWeight: "500" },
|
|
402
|
+
semiBold: { name: "semiBold", fontWeight: "600" },
|
|
403
|
+
bold: { name: "bold", fontWeight: "700" }
|
|
404
|
+
}
|
|
276
405
|
},
|
|
277
406
|
labelMedium: {
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
407
|
+
geometry: {
|
|
408
|
+
fontSize: "12px",
|
|
409
|
+
lineHeight: "16px",
|
|
410
|
+
letterSpacing: "0.5px",
|
|
411
|
+
fontFamily: "body"
|
|
412
|
+
},
|
|
413
|
+
defaultWeight: "medium",
|
|
414
|
+
weights: {
|
|
415
|
+
light: { name: "light", fontWeight: "300" },
|
|
416
|
+
medium: { name: "medium", fontWeight: "500" },
|
|
417
|
+
semiBold: { name: "semiBold", fontWeight: "600" },
|
|
418
|
+
bold: { name: "bold", fontWeight: "700" }
|
|
419
|
+
}
|
|
283
420
|
},
|
|
284
421
|
labelSmall: {
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
422
|
+
geometry: {
|
|
423
|
+
fontSize: "11px",
|
|
424
|
+
lineHeight: "16px",
|
|
425
|
+
letterSpacing: "0.5px",
|
|
426
|
+
fontFamily: "body"
|
|
427
|
+
},
|
|
428
|
+
defaultWeight: "medium",
|
|
429
|
+
weights: {
|
|
430
|
+
light: { name: "light", fontWeight: "300" },
|
|
431
|
+
medium: { name: "medium", fontWeight: "500" },
|
|
432
|
+
semiBold: { name: "semiBold", fontWeight: "600" },
|
|
433
|
+
bold: { name: "bold", fontWeight: "700" }
|
|
434
|
+
}
|
|
290
435
|
}
|
|
291
436
|
}
|
|
292
437
|
},
|
|
@@ -366,9 +511,9 @@ function transformTokens(language) {
|
|
|
366
511
|
language.colors
|
|
367
512
|
),
|
|
368
513
|
fonts: {
|
|
369
|
-
display: { value: language.typography.fonts.display },
|
|
370
|
-
body: { value: language.typography.fonts.body },
|
|
371
|
-
mono: { value: language.typography.fonts.mono }
|
|
514
|
+
display: { value: language.typography.fonts.display.family },
|
|
515
|
+
body: { value: language.typography.fonts.body.family },
|
|
516
|
+
mono: { value: language.typography.fonts.mono.family }
|
|
372
517
|
},
|
|
373
518
|
fontSizes: extractFontSizes(
|
|
374
519
|
language.typography.scale
|
|
@@ -410,19 +555,24 @@ function transformSemanticTokens(_language) {
|
|
|
410
555
|
function transformTextStyles(language) {
|
|
411
556
|
const scale = language.typography.scale;
|
|
412
557
|
return Object.fromEntries(
|
|
413
|
-
Object.entries(scale).map(([name,
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
558
|
+
Object.entries(scale).map(([name, step]) => {
|
|
559
|
+
const s2 = step;
|
|
560
|
+
const defaultVariant = s2.weights[s2.defaultWeight];
|
|
561
|
+
const fontWeight = defaultVariant?.fontWeight ?? "400";
|
|
562
|
+
return [
|
|
563
|
+
name,
|
|
564
|
+
{
|
|
565
|
+
value: {
|
|
566
|
+
fontFamily: `{fonts.${s2.geometry.fontFamily}}`,
|
|
567
|
+
fontSize: s2.geometry.fontSize,
|
|
568
|
+
lineHeight: s2.geometry.lineHeight,
|
|
569
|
+
fontWeight,
|
|
570
|
+
letterSpacing: s2.geometry.letterSpacing,
|
|
571
|
+
...s2.geometry.fontVariationSettings ? { fontVariationSettings: s2.geometry.fontVariationSettings } : {}
|
|
572
|
+
}
|
|
423
573
|
}
|
|
424
|
-
|
|
425
|
-
|
|
574
|
+
];
|
|
575
|
+
})
|
|
426
576
|
);
|
|
427
577
|
}
|
|
428
578
|
function transformColorPalettes(palettes) {
|
|
@@ -442,24 +592,26 @@ function objectToTokens(obj) {
|
|
|
442
592
|
}
|
|
443
593
|
function extractFontSizes(scale) {
|
|
444
594
|
return Object.fromEntries(
|
|
445
|
-
Object.entries(scale).map(([name,
|
|
595
|
+
Object.entries(scale).map(([name, step]) => [
|
|
446
596
|
name,
|
|
447
|
-
{ value:
|
|
597
|
+
{ value: step.geometry.fontSize }
|
|
448
598
|
])
|
|
449
599
|
);
|
|
450
600
|
}
|
|
451
601
|
function extractLineHeights(scale) {
|
|
452
602
|
return Object.fromEntries(
|
|
453
|
-
Object.entries(scale).map(([name,
|
|
603
|
+
Object.entries(scale).map(([name, step]) => [
|
|
454
604
|
name,
|
|
455
|
-
{ value:
|
|
605
|
+
{ value: step.geometry.lineHeight }
|
|
456
606
|
])
|
|
457
607
|
);
|
|
458
608
|
}
|
|
459
609
|
function extractFontWeights(scale) {
|
|
460
610
|
const weights = /* @__PURE__ */ new Map();
|
|
461
|
-
Object.values(scale).forEach((
|
|
462
|
-
|
|
611
|
+
Object.values(scale).forEach((step) => {
|
|
612
|
+
Object.values(step.weights).forEach((variant) => {
|
|
613
|
+
if (variant) weights.set(variant.fontWeight, variant.fontWeight);
|
|
614
|
+
});
|
|
463
615
|
});
|
|
464
616
|
return Object.fromEntries(
|
|
465
617
|
Array.from(weights.entries()).map(([key, value]) => [key, { value }])
|
|
@@ -467,9 +619,9 @@ function extractFontWeights(scale) {
|
|
|
467
619
|
}
|
|
468
620
|
function extractLetterSpacings(scale) {
|
|
469
621
|
return Object.fromEntries(
|
|
470
|
-
Object.entries(scale).map(([name,
|
|
622
|
+
Object.entries(scale).map(([name, step]) => [
|
|
471
623
|
name,
|
|
472
|
-
{ value:
|
|
624
|
+
{ value: step.geometry.letterSpacing }
|
|
473
625
|
])
|
|
474
626
|
);
|
|
475
627
|
}
|
|
@@ -4526,5 +4678,5 @@ var discourserPandaPreset = definePreset({
|
|
|
4526
4678
|
});
|
|
4527
4679
|
|
|
4528
4680
|
export { discourserPandaPreset, material3Language, transformToPandaTheme };
|
|
4529
|
-
//# sourceMappingURL=chunk-
|
|
4530
|
-
//# sourceMappingURL=chunk-
|
|
4681
|
+
//# sourceMappingURL=chunk-4XOWPACJ.js.map
|
|
4682
|
+
//# sourceMappingURL=chunk-4XOWPACJ.js.map
|