@discourser/design-system 0.20.0 → 0.21.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/dist/{chunk-SNUJBT5R.js → chunk-3HS2YGGX.js} +213 -83
- package/dist/chunk-3HS2YGGX.js.map +1 -0
- package/dist/{chunk-52D45DUF.js → chunk-NU6GI57K.js} +25 -13
- package/dist/chunk-NU6GI57K.js.map +1 -0
- package/dist/{chunk-PFWU7QSM.cjs → chunk-OZBQAALG.cjs} +213 -83
- package/dist/chunk-OZBQAALG.cjs.map +1 -0
- package/dist/{chunk-4QASRPVX.cjs → chunk-WSJLKVXZ.cjs} +25 -13
- package/dist/chunk-WSJLKVXZ.cjs.map +1 -0
- package/dist/components/Breadcrumb.d.ts +8 -3
- package/dist/components/Breadcrumb.d.ts.map +1 -1
- package/dist/components/Checkbox.d.ts +3 -3
- package/dist/components/Icons/TrashIcon.d.ts +6 -0
- package/dist/components/Icons/TrashIcon.d.ts.map +1 -0
- package/dist/components/Icons/index.d.ts +1 -0
- package/dist/components/Icons/index.d.ts.map +1 -1
- package/dist/components/index.cjs +69 -69
- package/dist/components/index.js +1 -1
- package/dist/figma-codex.json +2 -7
- package/dist/index.cjs +73 -73
- package/dist/index.js +2 -2
- package/dist/languages/transform.d.ts +1 -8
- package/dist/languages/transform.d.ts.map +1 -1
- package/dist/preset/index.cjs +2 -2
- package/dist/preset/index.d.ts.map +1 -1
- package/dist/preset/index.js +1 -1
- package/dist/preset/recipes/breadcrumb.d.ts.map +1 -1
- package/dist/preset/semantic-tokens.d.ts +186 -45
- package/dist/preset/semantic-tokens.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/token-contract.test.ts +168 -0
- package/src/components/Breadcrumb.tsx +39 -13
- package/src/components/Icons/TrashIcon.tsx +34 -0
- package/src/components/Icons/index.ts +1 -0
- package/src/components/__tests__/Breadcrumb.test.tsx +82 -0
- package/src/languages/transform.ts +74 -52
- package/src/preset/index.ts +15 -3
- package/src/preset/recipes/breadcrumb.ts +22 -0
- package/src/preset/semantic-tokens.ts +164 -53
- package/dist/chunk-4QASRPVX.cjs.map +0 -1
- package/dist/chunk-52D45DUF.js.map +0 -1
- package/dist/chunk-PFWU7QSM.cjs.map +0 -1
- package/dist/chunk-SNUJBT5R.js.map +0 -1
|
@@ -353,45 +353,55 @@ var material3Language = {
|
|
|
353
353
|
function transformToPandaTheme(language) {
|
|
354
354
|
return {
|
|
355
355
|
tokens: transformTokens(language),
|
|
356
|
-
semanticTokens: transformSemanticTokens(
|
|
356
|
+
semanticTokens: transformSemanticTokens(),
|
|
357
357
|
textStyles: transformTextStyles(language)
|
|
358
358
|
};
|
|
359
359
|
}
|
|
360
360
|
function transformTokens(language) {
|
|
361
361
|
return {
|
|
362
|
-
colors: transformColorPalettes(
|
|
362
|
+
colors: transformColorPalettes(
|
|
363
|
+
language.colors
|
|
364
|
+
),
|
|
363
365
|
fonts: {
|
|
364
366
|
display: { value: language.typography.fonts.display },
|
|
365
367
|
body: { value: language.typography.fonts.body },
|
|
366
368
|
mono: { value: language.typography.fonts.mono }
|
|
367
369
|
},
|
|
368
|
-
fontSizes: extractFontSizes(
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
370
|
+
fontSizes: extractFontSizes(
|
|
371
|
+
language.typography.scale
|
|
372
|
+
),
|
|
373
|
+
lineHeights: extractLineHeights(
|
|
374
|
+
language.typography.scale
|
|
375
|
+
),
|
|
376
|
+
fontWeights: extractFontWeights(
|
|
377
|
+
language.typography.scale
|
|
378
|
+
),
|
|
379
|
+
letterSpacings: extractLetterSpacings(
|
|
380
|
+
language.typography.scale
|
|
381
|
+
),
|
|
382
|
+
spacing: objectToTokens(
|
|
383
|
+
language.spacing
|
|
384
|
+
),
|
|
385
|
+
radii: objectToTokens(
|
|
386
|
+
language.shape.radii
|
|
387
|
+
),
|
|
388
|
+
shadows: objectToTokens(
|
|
389
|
+
language.elevation.levels
|
|
390
|
+
),
|
|
391
|
+
durations: objectToTokens(
|
|
392
|
+
language.motion.durations
|
|
393
|
+
),
|
|
394
|
+
easings: objectToTokens(
|
|
395
|
+
language.motion.easings
|
|
396
|
+
),
|
|
397
|
+
borderWidths: objectToTokens(
|
|
398
|
+
language.border.widths
|
|
399
|
+
)
|
|
378
400
|
};
|
|
379
401
|
}
|
|
380
|
-
function transformSemanticTokens(
|
|
381
|
-
const light = language.semantic;
|
|
382
|
-
const dark = language.semanticDark || light;
|
|
402
|
+
function transformSemanticTokens(_language) {
|
|
383
403
|
return {
|
|
384
|
-
colors:
|
|
385
|
-
Object.entries(light).map(([key, lightValue]) => [
|
|
386
|
-
key,
|
|
387
|
-
{
|
|
388
|
-
value: {
|
|
389
|
-
base: lightValue,
|
|
390
|
-
_dark: dark[key] || lightValue
|
|
391
|
-
}
|
|
392
|
-
}
|
|
393
|
-
])
|
|
394
|
-
)
|
|
404
|
+
colors: {}
|
|
395
405
|
};
|
|
396
406
|
}
|
|
397
407
|
function transformTextStyles(language) {
|
|
@@ -416,10 +426,7 @@ function transformColorPalettes(palettes) {
|
|
|
416
426
|
Object.entries(palettes).map(([name, palette]) => [
|
|
417
427
|
name,
|
|
418
428
|
Object.fromEntries(
|
|
419
|
-
Object.entries(palette).map(([tone, value]) => [
|
|
420
|
-
tone,
|
|
421
|
-
{ value }
|
|
422
|
-
])
|
|
429
|
+
Object.entries(palette).map(([tone, value]) => [tone, { value }])
|
|
423
430
|
)
|
|
424
431
|
])
|
|
425
432
|
);
|
|
@@ -451,10 +458,7 @@ function extractFontWeights(scale) {
|
|
|
451
458
|
weights.set(style.fontWeight, style.fontWeight);
|
|
452
459
|
});
|
|
453
460
|
return Object.fromEntries(
|
|
454
|
-
Array.from(weights.entries()).map(([key, value]) => [
|
|
455
|
-
key,
|
|
456
|
-
{ value }
|
|
457
|
-
])
|
|
461
|
+
Array.from(weights.entries()).map(([key, value]) => [key, { value }])
|
|
458
462
|
);
|
|
459
463
|
}
|
|
460
464
|
function extractLetterSpacings(scale) {
|
|
@@ -714,68 +718,162 @@ var colors = {
|
|
|
714
718
|
// Map red to error for Park UI compatibility
|
|
715
719
|
red: error
|
|
716
720
|
};
|
|
717
|
-
var
|
|
718
|
-
var
|
|
719
|
-
var
|
|
720
|
-
//
|
|
721
|
+
var s = material3Language.semantic;
|
|
722
|
+
var d = material3Language.semanticDark;
|
|
723
|
+
var semanticColorTokens = dev.defineSemanticTokens.colors({
|
|
724
|
+
// Primary
|
|
725
|
+
primary: {
|
|
726
|
+
DEFAULT: { value: { base: s.primary, _dark: d.primary } },
|
|
727
|
+
container: {
|
|
728
|
+
value: { base: s.primaryContainer, _dark: d.primaryContainer }
|
|
729
|
+
}
|
|
730
|
+
},
|
|
731
|
+
onPrimary: {
|
|
732
|
+
DEFAULT: { value: { base: s.onPrimary, _dark: d.onPrimary } },
|
|
733
|
+
container: {
|
|
734
|
+
value: { base: s.onPrimaryContainer, _dark: d.onPrimaryContainer }
|
|
735
|
+
}
|
|
736
|
+
},
|
|
737
|
+
// Secondary
|
|
738
|
+
secondary: {
|
|
739
|
+
DEFAULT: { value: { base: s.secondary, _dark: d.secondary } },
|
|
740
|
+
container: {
|
|
741
|
+
value: { base: s.secondaryContainer, _dark: d.secondaryContainer }
|
|
742
|
+
}
|
|
743
|
+
},
|
|
744
|
+
onSecondary: {
|
|
745
|
+
DEFAULT: { value: { base: s.onSecondary, _dark: d.onSecondary } },
|
|
746
|
+
container: {
|
|
747
|
+
value: { base: s.onSecondaryContainer, _dark: d.onSecondaryContainer }
|
|
748
|
+
}
|
|
749
|
+
},
|
|
750
|
+
// Tertiary
|
|
751
|
+
tertiary: {
|
|
752
|
+
DEFAULT: { value: { base: s.tertiary, _dark: d.tertiary } },
|
|
753
|
+
container: {
|
|
754
|
+
value: { base: s.tertiaryContainer, _dark: d.tertiaryContainer }
|
|
755
|
+
}
|
|
756
|
+
},
|
|
757
|
+
onTertiary: {
|
|
758
|
+
DEFAULT: { value: { base: s.onTertiary, _dark: d.onTertiary } },
|
|
759
|
+
container: {
|
|
760
|
+
value: { base: s.onTertiaryContainer, _dark: d.onTertiaryContainer }
|
|
761
|
+
}
|
|
762
|
+
},
|
|
763
|
+
// Error
|
|
764
|
+
error: {
|
|
765
|
+
DEFAULT: { value: { base: s.error, _dark: d.error } },
|
|
766
|
+
container: { value: { base: s.errorContainer, _dark: d.errorContainer } }
|
|
767
|
+
},
|
|
768
|
+
onError: {
|
|
769
|
+
DEFAULT: { value: { base: s.onError, _dark: d.onError } },
|
|
770
|
+
container: {
|
|
771
|
+
value: { base: s.onErrorContainer, _dark: d.onErrorContainer }
|
|
772
|
+
}
|
|
773
|
+
},
|
|
774
|
+
// Surface system
|
|
721
775
|
surface: {
|
|
722
|
-
DEFAULT: { value: { base:
|
|
723
|
-
dim: {
|
|
724
|
-
|
|
776
|
+
DEFAULT: { value: { base: s.surface, _dark: d.surface } },
|
|
777
|
+
dim: {
|
|
778
|
+
value: { base: s.surfaceContainerLow, _dark: d.surfaceContainerLow }
|
|
779
|
+
},
|
|
780
|
+
bright: {
|
|
781
|
+
value: { base: s.surfaceContainerHigh, _dark: d.surfaceContainerHigh }
|
|
782
|
+
},
|
|
725
783
|
container: {
|
|
726
|
-
DEFAULT: {
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
784
|
+
DEFAULT: {
|
|
785
|
+
value: { base: s.surfaceContainer, _dark: d.surfaceContainer }
|
|
786
|
+
},
|
|
787
|
+
low: {
|
|
788
|
+
value: { base: s.surfaceContainerLow, _dark: d.surfaceContainerLow }
|
|
789
|
+
},
|
|
790
|
+
lowest: {
|
|
791
|
+
value: {
|
|
792
|
+
base: s.surfaceContainerLowest,
|
|
793
|
+
_dark: d.surfaceContainerLowest
|
|
794
|
+
}
|
|
795
|
+
},
|
|
796
|
+
high: {
|
|
797
|
+
value: { base: s.surfaceContainerHigh, _dark: d.surfaceContainerHigh }
|
|
798
|
+
},
|
|
799
|
+
highest: {
|
|
800
|
+
value: {
|
|
801
|
+
base: s.surfaceContainerHighest,
|
|
802
|
+
_dark: d.surfaceContainerHighest
|
|
803
|
+
}
|
|
804
|
+
}
|
|
731
805
|
}
|
|
732
806
|
},
|
|
733
807
|
onSurface: {
|
|
734
|
-
DEFAULT: { value: { base:
|
|
735
|
-
variant: { value: { base:
|
|
808
|
+
DEFAULT: { value: { base: s.onSurface, _dark: d.onSurface } },
|
|
809
|
+
variant: { value: { base: s.onSurfaceVariant, _dark: d.onSurfaceVariant } }
|
|
810
|
+
},
|
|
811
|
+
surfaceVariant: {
|
|
812
|
+
value: { base: s.surfaceVariant, _dark: d.surfaceVariant }
|
|
736
813
|
},
|
|
737
|
-
//
|
|
814
|
+
// Background
|
|
815
|
+
background: { value: { base: s.background, _dark: d.background } },
|
|
816
|
+
onBackground: { value: { base: s.onBackground, _dark: d.onBackground } },
|
|
817
|
+
// Outline
|
|
818
|
+
outline: {
|
|
819
|
+
DEFAULT: { value: { base: s.outline, _dark: d.outline } },
|
|
820
|
+
variant: { value: { base: s.outlineVariant, _dark: d.outlineVariant } }
|
|
821
|
+
},
|
|
822
|
+
// Inverse
|
|
823
|
+
inverseSurface: {
|
|
824
|
+
value: { base: s.inverseSurface, _dark: d.inverseSurface }
|
|
825
|
+
},
|
|
826
|
+
inverseOnSurface: {
|
|
827
|
+
value: { base: s.inverseOnSurface, _dark: d.inverseOnSurface }
|
|
828
|
+
},
|
|
829
|
+
inversePrimary: {
|
|
830
|
+
value: { base: s.inversePrimary, _dark: d.inversePrimary }
|
|
831
|
+
},
|
|
832
|
+
// Not standard M3 tokens, but follow inversePrimary's pattern:
|
|
833
|
+
// light mode = dark-palette value, dark mode = light-palette value.
|
|
834
|
+
inverseSecondary: { value: { base: d.secondary, _dark: s.secondary } },
|
|
835
|
+
inverseTertiary: { value: { base: d.tertiary, _dark: s.tertiary } },
|
|
836
|
+
// Utility
|
|
837
|
+
scrim: { value: { base: s.scrim, _dark: d.scrim } },
|
|
838
|
+
shadow: { value: { base: s.shadow, _dark: d.shadow } }
|
|
839
|
+
});
|
|
840
|
+
var m3SemanticTokens = dev.defineSemanticTokens.colors({
|
|
738
841
|
m3Primary: {
|
|
739
|
-
DEFAULT: { value: { base:
|
|
740
|
-
container: {
|
|
842
|
+
DEFAULT: { value: { base: s.primary, _dark: d.primary } },
|
|
843
|
+
container: {
|
|
844
|
+
value: { base: s.primaryContainer, _dark: d.primaryContainer }
|
|
845
|
+
}
|
|
741
846
|
},
|
|
742
847
|
onM3Primary: {
|
|
743
|
-
DEFAULT: { value: { base:
|
|
744
|
-
container: {
|
|
848
|
+
DEFAULT: { value: { base: s.onPrimary, _dark: d.onPrimary } },
|
|
849
|
+
container: {
|
|
850
|
+
value: { base: s.onPrimaryContainer, _dark: d.onPrimaryContainer }
|
|
851
|
+
}
|
|
745
852
|
},
|
|
746
|
-
// M3 Secondary (prefixed to avoid conflict with Park UI Radix-scale bridge)
|
|
747
853
|
m3Secondary: {
|
|
748
|
-
DEFAULT: { value: { base:
|
|
749
|
-
container: {
|
|
854
|
+
DEFAULT: { value: { base: s.secondary, _dark: d.secondary } },
|
|
855
|
+
container: {
|
|
856
|
+
value: { base: s.secondaryContainer, _dark: d.secondaryContainer }
|
|
857
|
+
}
|
|
750
858
|
},
|
|
751
859
|
onM3Secondary: {
|
|
752
|
-
DEFAULT: { value: { base:
|
|
753
|
-
container: {
|
|
860
|
+
DEFAULT: { value: { base: s.onSecondary, _dark: d.onSecondary } },
|
|
861
|
+
container: {
|
|
862
|
+
value: { base: s.onSecondaryContainer, _dark: d.onSecondaryContainer }
|
|
863
|
+
}
|
|
754
864
|
},
|
|
755
|
-
// M3 Tertiary (prefixed to avoid conflict with Park UI Radix-scale bridge)
|
|
756
865
|
m3Tertiary: {
|
|
757
|
-
DEFAULT: { value: { base:
|
|
758
|
-
container: {
|
|
866
|
+
DEFAULT: { value: { base: s.tertiary, _dark: d.tertiary } },
|
|
867
|
+
container: {
|
|
868
|
+
value: { base: s.tertiaryContainer, _dark: d.tertiaryContainer }
|
|
869
|
+
}
|
|
759
870
|
},
|
|
760
871
|
onM3Tertiary: {
|
|
761
|
-
DEFAULT: { value: { base:
|
|
762
|
-
container: {
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
DEFAULT: { value: { base: semantic.outline, _dark: semanticDark.outline } },
|
|
767
|
-
variant: { value: { base: semantic.outlineVariant, _dark: semanticDark.outlineVariant } }
|
|
768
|
-
},
|
|
769
|
-
// M3 Inverse
|
|
770
|
-
inverseSurface: { value: { base: semantic.inverseSurface, _dark: semanticDark.inverseSurface } },
|
|
771
|
-
inverseOnSurface: { value: { base: semantic.inverseOnSurface, _dark: semanticDark.inverseOnSurface } },
|
|
772
|
-
inversePrimary: { value: { base: semantic.inversePrimary, _dark: semanticDark.inversePrimary } },
|
|
773
|
-
// Not standard M3 tokens, but follow inversePrimary's pattern:
|
|
774
|
-
// light mode = dark-palette value, dark mode = light-palette value.
|
|
775
|
-
inverseSecondary: { value: { base: semanticDark.secondary, _dark: semantic.secondary } },
|
|
776
|
-
inverseTertiary: { value: { base: semanticDark.tertiary, _dark: semantic.tertiary } },
|
|
777
|
-
// Scrim/Shadow
|
|
778
|
-
scrim: { value: { base: semantic.scrim, _dark: semanticDark.scrim } }
|
|
872
|
+
DEFAULT: { value: { base: s.onTertiary, _dark: d.onTertiary } },
|
|
873
|
+
container: {
|
|
874
|
+
value: { base: s.onTertiaryContainer, _dark: d.onTertiaryContainer }
|
|
875
|
+
}
|
|
876
|
+
}
|
|
779
877
|
});
|
|
780
878
|
var button = dev.defineRecipe({
|
|
781
879
|
className: "button",
|
|
@@ -1902,6 +2000,27 @@ var breadcrumb = dev.defineSlotRecipe({
|
|
|
1902
2000
|
lg: { list: { gap: "2", textStyle: "lg" } }
|
|
1903
2001
|
}
|
|
1904
2002
|
},
|
|
2003
|
+
compoundVariants: [
|
|
2004
|
+
{
|
|
2005
|
+
variant: "discourser",
|
|
2006
|
+
css: {
|
|
2007
|
+
link: {
|
|
2008
|
+
"&[data-disabled]": {
|
|
2009
|
+
color: "fg.subtle",
|
|
2010
|
+
opacity: 0.45,
|
|
2011
|
+
pointerEvents: "none",
|
|
2012
|
+
cursor: "default",
|
|
2013
|
+
_hover: { color: "fg.subtle" }
|
|
2014
|
+
}
|
|
2015
|
+
},
|
|
2016
|
+
item: {
|
|
2017
|
+
"&[data-disabled]": {
|
|
2018
|
+
opacity: 0.45
|
|
2019
|
+
}
|
|
2020
|
+
}
|
|
2021
|
+
}
|
|
2022
|
+
}
|
|
2023
|
+
],
|
|
1905
2024
|
defaultVariants: {
|
|
1906
2025
|
variant: "plain",
|
|
1907
2026
|
size: "md"
|
|
@@ -4290,8 +4409,19 @@ var discourserPandaPreset = dev.definePreset({
|
|
|
4290
4409
|
// Semantic tokens: M3 colors + Park UI aliases + shadows + radii
|
|
4291
4410
|
semanticTokens: {
|
|
4292
4411
|
colors: {
|
|
4293
|
-
//
|
|
4412
|
+
// Non-conflicting M3 semantic tokens land here first
|
|
4413
|
+
// (onPrimary, onSecondary, surface, outline, etc.)
|
|
4414
|
+
...semanticColorTokens,
|
|
4415
|
+
// M3-to-Radix color bridges — overwrite conflicting top-level keys,
|
|
4416
|
+
// then re-merge the M3 semantic DEFAULT+container back in
|
|
4294
4417
|
...colors,
|
|
4418
|
+
primary: { ...colors.primary, ...semanticColorTokens.primary },
|
|
4419
|
+
secondary: {
|
|
4420
|
+
...colors.secondary,
|
|
4421
|
+
...semanticColorTokens.secondary
|
|
4422
|
+
},
|
|
4423
|
+
tertiary: { ...colors.tertiary, ...semanticColorTokens.tertiary },
|
|
4424
|
+
error: { ...colors.error, ...semanticColorTokens.error },
|
|
4295
4425
|
// Park UI-style aliases for component compatibility
|
|
4296
4426
|
fg: {
|
|
4297
4427
|
default: {
|
|
@@ -4310,7 +4440,7 @@ var discourserPandaPreset = dev.definePreset({
|
|
|
4310
4440
|
border: {
|
|
4311
4441
|
value: { base: "{colors.gray.6}", _dark: "{colors.gray.6}" }
|
|
4312
4442
|
},
|
|
4313
|
-
//
|
|
4443
|
+
// DEPRECATED: m3-prefixed aliases (still needed by discourser.ai)
|
|
4314
4444
|
...m3SemanticTokens,
|
|
4315
4445
|
// Base colors
|
|
4316
4446
|
white: { value: "#FFFFFF" },
|
|
@@ -4399,5 +4529,5 @@ var discourserPandaPreset = dev.definePreset({
|
|
|
4399
4529
|
exports.discourserPandaPreset = discourserPandaPreset;
|
|
4400
4530
|
exports.material3Language = material3Language;
|
|
4401
4531
|
exports.transformToPandaTheme = transformToPandaTheme;
|
|
4402
|
-
//# sourceMappingURL=chunk-
|
|
4403
|
-
//# sourceMappingURL=chunk-
|
|
4532
|
+
//# sourceMappingURL=chunk-OZBQAALG.cjs.map
|
|
4533
|
+
//# sourceMappingURL=chunk-OZBQAALG.cjs.map
|