@vegastack/design-tokens 0.4.0 → 0.7.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.
@@ -19,6 +19,91 @@
19
19
  * priority-flag ban, which this file does not trip.
20
20
  */
21
21
 
22
+ /* ---------------------------------------------------------------------------------------------
23
+ * Upstream's CUSTOM VARIANTS, verbatim from `shadcn/tailwind.css` (4.21.0).
24
+ *
25
+ * Upstream's own app imports `shadcn/tailwind.css`, which redefines nine `data-*` variants so they
26
+ * match the attribute shape Base UI actually emits. Without them Tailwind falls back to its default
27
+ * `data-<name>:` rule — a bare `[data-<name>]` attribute — and the ones keyed on `data-orientation`
28
+ * or `data-state` silently stop matching. Measured 2026-09-18 in the Batch 2 review artifact:
29
+ * `<ToggleGroup orientation="vertical">` laid out HORIZONTALLY here and vertically upstream, from
30
+ * the same source file, because `data-vertical:flex-col` compiled to `[data-vertical]` instead of
31
+ * `[data-orientation="vertical"]`. `Separator`'s vertical rule failed the same way.
32
+ *
33
+ * Shipping them here rather than per app is what keeps a copied-in component behaving the same in
34
+ * a consumer's project as it does in ours.
35
+ * ------------------------------------------------------------------------------------------- */
36
+
37
+ @custom-variant data-open {
38
+ &:where([data-state="open"]),
39
+ &:where([data-open]:not([data-open="false"])) {
40
+ @slot;
41
+ }
42
+ }
43
+
44
+ @custom-variant data-closed {
45
+ &:where([data-state="closed"]),
46
+ &:where([data-closed]:not([data-closed="false"])) {
47
+ @slot;
48
+ }
49
+ }
50
+
51
+ @custom-variant data-checked {
52
+ &:where([data-state="checked"]),
53
+ &:where([data-checked]:not([data-checked="false"])) {
54
+ @slot;
55
+ }
56
+ }
57
+
58
+ @custom-variant data-unchecked {
59
+ &:where([data-state="unchecked"]),
60
+ &:where([data-unchecked]:not([data-unchecked="false"])) {
61
+ @slot;
62
+ }
63
+ }
64
+
65
+ @custom-variant data-selected {
66
+ &:where([data-selected="true"]) {
67
+ @slot;
68
+ }
69
+ }
70
+
71
+ @custom-variant data-disabled {
72
+ &:where([data-disabled="true"]),
73
+ &:where([data-disabled]:not([data-disabled="false"])) {
74
+ @slot;
75
+ }
76
+ }
77
+
78
+ @custom-variant data-active {
79
+ &:where([data-state="active"]),
80
+ &:where([data-active]:not([data-active="false"])) {
81
+ @slot;
82
+ }
83
+ }
84
+
85
+ @custom-variant data-horizontal {
86
+ &:where([data-orientation="horizontal"]) {
87
+ @slot;
88
+ }
89
+ }
90
+
91
+ @custom-variant data-vertical {
92
+ &:where([data-orientation="vertical"]) {
93
+ @slot;
94
+ }
95
+ }
96
+
97
+ /* Upstream's one scrollbar utility, which `sidebar` and `command` reach for. */
98
+ @utility no-scrollbar {
99
+ -ms-overflow-style: none;
100
+ scrollbar-width: none;
101
+
102
+ &::-webkit-scrollbar {
103
+ display: none;
104
+ }
105
+ }
106
+
22
107
  /* scroll-fade */
23
108
  @property --scroll-fade-t {
24
109
  syntax: "<length-percentage>";
@@ -770,9 +855,6 @@
770
855
  * silently never be generated downstream (it wasn't generated in our own docs
771
856
  * either — see the dead `packages/icons` @source). Shipping the rules in the
772
857
  * stylesheet consumers already import makes the swap work everywhere.
773
- *
774
- * `.vs-marketing` is included so a brand mark inside the marketing dark ground
775
- * picks the dark artwork even while the page theme is light.
776
858
  * ------------------------------------------------------------------------- */
777
859
  [data-brand-artwork="light"] {
778
860
  display: contents;
@@ -780,17 +862,9 @@
780
862
  [data-brand-artwork="dark"] {
781
863
  display: none;
782
864
  }
783
- .dark [data-brand-artwork="light"],
784
- .vs-marketing [data-brand-artwork="light"] {
865
+ .dark [data-brand-artwork="light"] {
785
866
  display: none;
786
867
  }
787
- .dark [data-brand-artwork="dark"],
788
- .vs-marketing [data-brand-artwork="dark"] {
868
+ .dark [data-brand-artwork="dark"] {
789
869
  display: contents;
790
870
  }
791
-
792
- /* `.vs-marketing`'s semantic variables and `color-scheme: dark` now live in
793
- * generated theme.css. build-tokens.mjs emits the scope from the SAME resolved
794
- * Style Dictionary dark run as `.dark`, and verify-theme-parity.mjs rejects any
795
- * variable-set or value drift. The artwork selectors above remain here because
796
- * they are presentation behavior, not token data. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vegastack/design-tokens",
3
- "version": "0.4.0",
3
+ "version": "0.7.0",
4
4
  "description": "VegaStack design tokens (DTCG → Tailwind v4 theme + TS)",
5
5
  "license": "MIT",
6
6
  "repository": {