@graphprotocol/gds-css 0.0.1

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 (136) hide show
  1. package/README.md +80 -0
  2. package/dist/component-registry.d.ts +90 -0
  3. package/dist/component-registry.d.ts.map +1 -0
  4. package/dist/component-registry.js +93 -0
  5. package/dist/component-registry.js.map +1 -0
  6. package/dist/css-props/getCSSPropRawValue.d.ts +4 -0
  7. package/dist/css-props/getCSSPropRawValue.d.ts.map +1 -0
  8. package/dist/css-props/getCSSPropRawValue.js +41 -0
  9. package/dist/css-props/getCSSPropRawValue.js.map +1 -0
  10. package/dist/css-props/index.d.ts +5 -0
  11. package/dist/css-props/index.d.ts.map +1 -0
  12. package/dist/css-props/index.js +5 -0
  13. package/dist/css-props/index.js.map +1 -0
  14. package/dist/css-props/parseCSSPropValue.d.ts +7 -0
  15. package/dist/css-props/parseCSSPropValue.d.ts.map +1 -0
  16. package/dist/css-props/parseCSSPropValue.js +70 -0
  17. package/dist/css-props/parseCSSPropValue.js.map +1 -0
  18. package/dist/css-props/registerCSSProps.d.ts +7 -0
  19. package/dist/css-props/registerCSSProps.d.ts.map +1 -0
  20. package/dist/css-props/registerCSSProps.js +231 -0
  21. package/dist/css-props/registerCSSProps.js.map +1 -0
  22. package/dist/css-props/types.d.ts +29 -0
  23. package/dist/css-props/types.d.ts.map +1 -0
  24. package/dist/css-props/types.js +2 -0
  25. package/dist/css-props/types.js.map +1 -0
  26. package/dist/css-states/index.d.ts +3 -0
  27. package/dist/css-states/index.d.ts.map +1 -0
  28. package/dist/css-states/index.js +3 -0
  29. package/dist/css-states/index.js.map +1 -0
  30. package/dist/css-states/registerCSSStates.d.ts +23 -0
  31. package/dist/css-states/registerCSSStates.d.ts.map +1 -0
  32. package/dist/css-states/registerCSSStates.js +119 -0
  33. package/dist/css-states/registerCSSStates.js.map +1 -0
  34. package/dist/css-states/states.d.ts +71 -0
  35. package/dist/css-states/states.d.ts.map +1 -0
  36. package/dist/css-states/states.js +140 -0
  37. package/dist/css-states/states.js.map +1 -0
  38. package/dist/design-tokens.generated.d.ts +1167 -0
  39. package/dist/design-tokens.generated.d.ts.map +1 -0
  40. package/dist/design-tokens.generated.js +2675 -0
  41. package/dist/design-tokens.generated.js.map +1 -0
  42. package/dist/index.d.ts +7 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +7 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/tailwind-customizations/index.d.ts +3 -0
  47. package/dist/tailwind-customizations/index.d.ts.map +1 -0
  48. package/dist/tailwind-customizations/index.js +3 -0
  49. package/dist/tailwind-customizations/index.js.map +1 -0
  50. package/dist/tailwind-customizations/registerUtilities.d.ts +9 -0
  51. package/dist/tailwind-customizations/registerUtilities.d.ts.map +1 -0
  52. package/dist/tailwind-customizations/registerUtilities.js +59 -0
  53. package/dist/tailwind-customizations/registerUtilities.js.map +1 -0
  54. package/dist/tailwind-customizations/registerVariants.d.ts +8 -0
  55. package/dist/tailwind-customizations/registerVariants.d.ts.map +1 -0
  56. package/dist/tailwind-customizations/registerVariants.js +197 -0
  57. package/dist/tailwind-customizations/registerVariants.js.map +1 -0
  58. package/dist/tailwind-customizations/variants.d.ts +72 -0
  59. package/dist/tailwind-customizations/variants.d.ts.map +1 -0
  60. package/dist/tailwind-customizations/variants.js +153 -0
  61. package/dist/tailwind-customizations/variants.js.map +1 -0
  62. package/dist/tailwind-plugin.d.ts +4 -0
  63. package/dist/tailwind-plugin.d.ts.map +1 -0
  64. package/dist/tailwind-plugin.js +12 -0
  65. package/dist/tailwind-plugin.js.map +1 -0
  66. package/dist/types.d.ts +4 -0
  67. package/dist/types.d.ts.map +1 -0
  68. package/dist/types.js +2 -0
  69. package/dist/types.js.map +1 -0
  70. package/dist/utils/cssUnescape.d.ts +20 -0
  71. package/dist/utils/cssUnescape.d.ts.map +1 -0
  72. package/dist/utils/cssUnescape.js +44 -0
  73. package/dist/utils/cssUnescape.js.map +1 -0
  74. package/dist/utils/index.d.ts +6 -0
  75. package/dist/utils/index.d.ts.map +1 -0
  76. package/dist/utils/index.js +6 -0
  77. package/dist/utils/index.js.map +1 -0
  78. package/dist/utils/pxToTw.d.ts +3 -0
  79. package/dist/utils/pxToTw.d.ts.map +1 -0
  80. package/dist/utils/pxToTw.js +5 -0
  81. package/dist/utils/pxToTw.js.map +1 -0
  82. package/dist/utils/twToPx.d.ts +3 -0
  83. package/dist/utils/twToPx.d.ts.map +1 -0
  84. package/dist/utils/twToPx.js +5 -0
  85. package/dist/utils/twToPx.js.map +1 -0
  86. package/dist/utils/twToRem.d.ts +3 -0
  87. package/dist/utils/twToRem.d.ts.map +1 -0
  88. package/dist/utils/twToRem.js +5 -0
  89. package/dist/utils/twToRem.js.map +1 -0
  90. package/dist/utils/wrapSelector.d.ts +10 -0
  91. package/dist/utils/wrapSelector.d.ts.map +1 -0
  92. package/dist/utils/wrapSelector.js +57 -0
  93. package/dist/utils/wrapSelector.js.map +1 -0
  94. package/package.json +65 -0
  95. package/src/component-registry.ts +213 -0
  96. package/src/css-props/getCSSPropRawValue.ts +52 -0
  97. package/src/css-props/index.ts +4 -0
  98. package/src/css-props/parseCSSPropValue.ts +81 -0
  99. package/src/css-props/registerCSSProps.ts +274 -0
  100. package/src/css-props/types.ts +35 -0
  101. package/src/css-states/index.ts +2 -0
  102. package/src/css-states/registerCSSStates.ts +136 -0
  103. package/src/css-states/states.ts +160 -0
  104. package/src/design-tokens.generated.ts +2799 -0
  105. package/src/index.ts +6 -0
  106. package/src/tailwind-customizations/index.ts +2 -0
  107. package/src/tailwind-customizations/registerUtilities.ts +65 -0
  108. package/src/tailwind-customizations/registerVariants.ts +296 -0
  109. package/src/tailwind-customizations/variants.ts +190 -0
  110. package/src/tailwind-plugin.ts +14 -0
  111. package/src/types.ts +4 -0
  112. package/src/utils/cssUnescape.ts +49 -0
  113. package/src/utils/index.ts +5 -0
  114. package/src/utils/pxToTw.ts +4 -0
  115. package/src/utils/twToPx.ts +4 -0
  116. package/src/utils/twToRem.ts +4 -0
  117. package/src/utils/wrapSelector.ts +60 -0
  118. package/styles/fonts/EuclidCircularA-Bold.woff2 +0 -0
  119. package/styles/fonts/EuclidCircularA-BoldItalic.woff2 +0 -0
  120. package/styles/fonts/EuclidCircularA-Light.woff2 +0 -0
  121. package/styles/fonts/EuclidCircularA-LightItalic.woff2 +0 -0
  122. package/styles/fonts/EuclidCircularA-Medium.woff2 +0 -0
  123. package/styles/fonts/EuclidCircularA-MediumItalic.woff2 +0 -0
  124. package/styles/fonts/EuclidCircularA-Regular.woff2 +0 -0
  125. package/styles/fonts/EuclidCircularA-RegularItalic.woff2 +0 -0
  126. package/styles/fonts/EuclidCircularA-Semibold.woff2 +0 -0
  127. package/styles/fonts/EuclidCircularA-SemiboldItalic.woff2 +0 -0
  128. package/styles/fonts.css +83 -0
  129. package/styles/global.css +203 -0
  130. package/styles/layers.css +8 -0
  131. package/styles/tailwind.css +13 -0
  132. package/styles/tailwind.vscode.css +11 -0
  133. package/styles/theme.css +420 -0
  134. package/styles/typography.css +198 -0
  135. package/styles/utilities.css +305 -0
  136. package/styles/variants.css +34 -0
@@ -0,0 +1,153 @@
1
+ import { getRegisteredComponents } from "../component-registry.js";
2
+ import { cssStates, cssStateSelectors, getFocusStateSelector } from "../css-states/states.js";
3
+ import { wrapSelector } from "../utils/index.js";
4
+ function getClickableSelector(enabled = true) {
5
+ return `:where(
6
+ :any-link,
7
+ button,
8
+ input:is([type='button'], [type='submit'], [type='reset']),
9
+ summary,
10
+ [role='button'],
11
+ [role='link'],
12
+ [role='menuitem'],
13
+ [role='menuitemcheckbox'],
14
+ [role='menuitemradio'],
15
+ [role='option'],
16
+ [role='tab'],
17
+ .gds-checkable-label
18
+ )${enabled !== 'any' ? (enabled ? cssStateSelectors.enabled : cssStateSelectors.disabled) : ''}`;
19
+ }
20
+ /**
21
+ * Static list of Tailwind's built-in variants and our own custom ones. Maintains the same order as
22
+ * `https://github.com/tailwindlabs/tailwindcss/blob/main/packages/tailwindcss/src/variants.ts`
23
+ */
24
+ const staticVariantSelectors = {
25
+ // Positional
26
+ first: ':first-child',
27
+ last: ':last-child',
28
+ only: ':only-child',
29
+ odd: ':nth-child(odd)',
30
+ even: ':nth-child(even)',
31
+ 'first-of-type': ':first-of-type',
32
+ 'last-of-type': ':last-of-type',
33
+ 'only-of-type': ':only-of-type',
34
+ // State
35
+ visited: ':visited',
36
+ target: ':target',
37
+ open: cssStateSelectors.open,
38
+ // Forms
39
+ current: cssStateSelectors.current, // custom CSS state
40
+ default: ':default',
41
+ checked: cssStateSelectors.checked,
42
+ indeterminate: cssStateSelectors.indeterminate,
43
+ unchecked: cssStateSelectors.unchecked, // custom CSS state, different from `not-checked` which can still be indeterminate
44
+ 'placeholder-shown': ':placeholder-shown',
45
+ autofill: ':autofill',
46
+ optional: ':optional',
47
+ required: ':required',
48
+ valid: ':valid',
49
+ invalid: ':invalid',
50
+ 'user-valid': ':user-valid',
51
+ 'user-invalid': ':user-invalid',
52
+ 'in-range': ':in-range',
53
+ 'out-of-range': ':out-of-range',
54
+ 'read-only': cssStateSelectors['read-only'],
55
+ // Content
56
+ empty: ':empty',
57
+ blank: cssStateSelectors.blank, // custom CSS state
58
+ // Interactive
59
+ idle: cssStateSelectors.idle, // custom CSS state
60
+ 'focus-within': getFocusStateSelector(false, true),
61
+ 'hocus-visible': `:is(${cssStateSelectors.hover}, ${getFocusStateSelector(true, false)})`, // custom
62
+ hover: cssStateSelectors.hover,
63
+ focus: getFocusStateSelector(false, false),
64
+ 'focus-visible': getFocusStateSelector(true, false),
65
+ active: cssStateSelectors.active,
66
+ enabled: cssStateSelectors.enabled,
67
+ disabled: cssStateSelectors.disabled,
68
+ // Other
69
+ inert: ':is([inert], [inert] *)',
70
+ // Clickable (all custom)
71
+ 'any-clickable': getClickableSelector('any'),
72
+ clickable: getClickableSelector(),
73
+ 'any-clickable-open': `${getClickableSelector('any')}${cssStateSelectors.open}`,
74
+ 'clickable-open': `${getClickableSelector()}${cssStateSelectors.open}`,
75
+ 'any-clickable-current': `${getClickableSelector('any')}${cssStateSelectors.current}`,
76
+ 'clickable-current': `${getClickableSelector()}${cssStateSelectors.current}`,
77
+ 'any-clickable-checked': `${getClickableSelector('any')}${cssStateSelectors.checked}`,
78
+ 'clickable-checked': `${getClickableSelector()}${cssStateSelectors.checked}`,
79
+ 'any-clickable-indeterminate': `${getClickableSelector('any')}${cssStateSelectors.indeterminate}`,
80
+ 'clickable-indeterminate': `${getClickableSelector()}${cssStateSelectors.indeterminate}`,
81
+ 'any-clickable-unchecked': `${getClickableSelector('any')}${cssStateSelectors.unchecked}`,
82
+ 'clickable-unchecked': `${getClickableSelector()}${cssStateSelectors.unchecked}`,
83
+ 'clickable-idle': `${getClickableSelector()}${cssStateSelectors.idle}`,
84
+ 'clickable-focus-within': `${getClickableSelector()}${getFocusStateSelector(false, true)}`,
85
+ 'clickable-hocus-visible': `:is(${getClickableSelector()}${cssStateSelectors.hover}, ${getClickableSelector()}${getFocusStateSelector(true, false)})`,
86
+ 'clickable-hover': `${getClickableSelector()}${cssStateSelectors.hover}`,
87
+ 'clickable-focus': `${getClickableSelector()}${getFocusStateSelector(false, false)}`,
88
+ 'clickable-focus-visible': `${getClickableSelector()}${getFocusStateSelector(true, false)}`,
89
+ 'clickable-active': `${getClickableSelector()}${cssStateSelectors.active}`,
90
+ 'clickable-disabled': getClickableSelector(false),
91
+ };
92
+ const positionalVariants = ['first', 'last', 'only', 'odd', 'even', 'inert'];
93
+ /** Generate positional variant selectors (`{prefix}-first`, `{prefix}-last`, etc.) */
94
+ function generatePositionalVariantSelectors(prefix, baseSelector) {
95
+ return {
96
+ ...positionalVariants.reduce((result, variant) => {
97
+ result[`${prefix}-not-${variant}`] =
98
+ `${baseSelector}${wrapSelector(':not', staticVariantSelectors[variant])}`;
99
+ return result;
100
+ }, {}),
101
+ ...positionalVariants.reduce((result, variant) => {
102
+ result[`${prefix}-${variant}`] = `${baseSelector}${staticVariantSelectors[variant]}`;
103
+ return result;
104
+ }, {}),
105
+ };
106
+ }
107
+ /** Get all variant selectors including dynamically generated ones based on registered components. */
108
+ export function getVariantSelectors() {
109
+ const dynamicVariantSelectors = {};
110
+ // Add `addon-compatible` and `addon-compatible-{variant}` variants if there are addon-compatible components
111
+ const addonCompatibleComponents = getRegisteredComponents().filter((component) => component.addonCompatible);
112
+ if (addonCompatibleComponents.length > 0) {
113
+ const addonCompatibleSelector = `:is(${addonCompatibleComponents.map((component) => `.${component.className}`).join(', ')})`;
114
+ dynamicVariantSelectors['addon-compatible'] = addonCompatibleSelector;
115
+ Object.assign(dynamicVariantSelectors, generatePositionalVariantSelectors('addon-compatible', addonCompatibleSelector));
116
+ }
117
+ return {
118
+ ...staticVariantSelectors,
119
+ ...dynamicVariantSelectors,
120
+ };
121
+ }
122
+ /**
123
+ * Get component variant selectors for all registered components. These include plain component
124
+ * selectors, state-based selectors, and positional ones.
125
+ */
126
+ export function getComponentVariantSelectors(options = {}) {
127
+ const { includePlain = true, includeStates = true, includePositional = true } = options;
128
+ const componentVariantSelectors = {};
129
+ for (const component of getRegisteredComponents()) {
130
+ // Plain `{component}` variant
131
+ if (includePlain) {
132
+ componentVariantSelectors[component.kebabName] = `.${component.className}`;
133
+ }
134
+ // CSS state variants (`{component}-state` and `{component}-not-state`)
135
+ if (includeStates) {
136
+ for (const state of cssStates) {
137
+ // Skip `not-*` states for `{component}-not-*` to prevent `{component}-not-not-*`
138
+ if (!state.startsWith('not-')) {
139
+ componentVariantSelectors[`${component.kebabName}-not-${state}`] =
140
+ `.${component.className}${wrapSelector(':not', cssStateSelectors[state])}`;
141
+ }
142
+ componentVariantSelectors[`${component.kebabName}-${state}`] =
143
+ `.${component.className}${cssStateSelectors[state]}`;
144
+ }
145
+ }
146
+ // Positional variants (`{component}-first`, `{component}-last`, etc.)
147
+ if (includePositional) {
148
+ Object.assign(componentVariantSelectors, generatePositionalVariantSelectors(component.kebabName, `.${component.className}`));
149
+ }
150
+ }
151
+ return componentVariantSelectors;
152
+ }
153
+ //# sourceMappingURL=variants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variants.js","sourceRoot":"","sources":["../../src/tailwind-customizations/variants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import createPlugin from 'tailwindcss/plugin';
2
+ declare const gdsTailwindPlugin: ReturnType<typeof createPlugin>;
3
+ export default gdsTailwindPlugin;
4
+ //# sourceMappingURL=tailwind-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tailwind-plugin.d.ts","sourceRoot":"","sources":["../src/tailwind-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,oBAAoB,CAAA;AAM7C,QAAA,MAAM,iBAAiB,EAAE,UAAU,CAAC,OAAO,YAAY,CAKrD,CAAA;AAEF,eAAe,iBAAiB,CAAA"}
@@ -0,0 +1,12 @@
1
+ import createPlugin from 'tailwindcss/plugin';
2
+ import { registerCSSProps } from "./css-props/registerCSSProps.js";
3
+ import { registerCSSStates } from "./css-states/registerCSSStates.js";
4
+ import { registerUtilities, registerVariants } from "./tailwind-customizations/index.js";
5
+ const gdsTailwindPlugin = createPlugin((api) => {
6
+ registerUtilities(api);
7
+ registerVariants(api);
8
+ registerCSSStates(api);
9
+ registerCSSProps(api);
10
+ });
11
+ export default gdsTailwindPlugin;
12
+ //# sourceMappingURL=tailwind-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tailwind-plugin.js","sourceRoot":"","sources":["../src/tailwind-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,oBAAoB,CAAA;AAE7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAExF,MAAM,iBAAiB,GAAoC,YAAY,CAAC,CAAC,GAAG,EAAE,EAAE;IAC9E,iBAAiB,CAAC,GAAG,CAAC,CAAA;IACtB,gBAAgB,CAAC,GAAG,CAAC,CAAA;IACrB,iBAAiB,CAAC,GAAG,CAAC,CAAA;IACtB,gBAAgB,CAAC,GAAG,CAAC,CAAA;AACvB,CAAC,CAAC,CAAA;AAEF,eAAe,iBAAiB,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type createPlugin from 'tailwindcss/plugin';
2
+ /** Types for Tailwind CSS plugin API. */
3
+ export type PluginAPI = Parameters<Parameters<typeof createPlugin>[0]>[0];
4
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAA;AAElD,yCAAyC;AACzC,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Unescapes CSS-escaped strings, reversing the escaping done by libraries like `cssesc`.
3
+ *
4
+ * Handles three types of CSS escapes:
5
+ *
6
+ * 1. Hex escapes: `\20` or `\00020 ` → space character.
7
+ * 2. Character escapes: `\.` → `.`
8
+ * 3. Line continuations: `\<newline>` → (removed)
9
+ *
10
+ * @example
11
+ *
12
+ * cssUnescape('foo\.bar') // 'foo.bar'
13
+ * cssUnescape('hello\20world') // 'hello world'
14
+ * cssUnescape('test\2d case') // 'test-case'
15
+ *
16
+ * @param input - The CSS-escaped string to unescape.
17
+ * @returns The unescaped string.
18
+ */
19
+ export declare function cssUnescape(input: string): string;
20
+ //# sourceMappingURL=cssUnescape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cssUnescape.d.ts","sourceRoot":"","sources":["../../src/utils/cssUnescape.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA8BjD"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Unescapes CSS-escaped strings, reversing the escaping done by libraries like `cssesc`.
3
+ *
4
+ * Handles three types of CSS escapes:
5
+ *
6
+ * 1. Hex escapes: `\20` or `\00020 ` → space character.
7
+ * 2. Character escapes: `\.` → `.`
8
+ * 3. Line continuations: `\<newline>` → (removed)
9
+ *
10
+ * @example
11
+ *
12
+ * cssUnescape('foo\.bar') // 'foo.bar'
13
+ * cssUnescape('hello\20world') // 'hello world'
14
+ * cssUnescape('test\2d case') // 'test-case'
15
+ *
16
+ * @param input - The CSS-escaped string to unescape.
17
+ * @returns The unescaped string.
18
+ */
19
+ export function cssUnescape(input) {
20
+ // Matches: hex escapes | line continuations | single char escapes
21
+ const escapePattern = /\\([0-9a-f]{1,6}[ \t\r\n\f]?|$)|\\(\r?\n|\r|\f)|\\(.)/gi;
22
+ return input.replace(escapePattern, (_match, hex, newline, char) => {
23
+ // Single character escape: "\." → "."
24
+ if (char) {
25
+ return char;
26
+ }
27
+ // Line continuation: backslash followed by newline is removed
28
+ if (newline) {
29
+ return '';
30
+ }
31
+ // Lone backslash at end of string
32
+ if (!hex) {
33
+ return '\uFFFD'; // Replacement character
34
+ }
35
+ // Hex escape: parse the hex digits (trim removes optional trailing whitespace)
36
+ const codePoint = Number.parseInt(hex.trim(), 16);
37
+ // Invalid code points: null, surrogates, or out of Unicode range
38
+ if (codePoint === 0 || codePoint > 0x10ffff || (codePoint >= 0xd800 && codePoint <= 0xdfff)) {
39
+ return '\uFFFD'; // Replacement character
40
+ }
41
+ return String.fromCodePoint(codePoint);
42
+ });
43
+ }
44
+ //# sourceMappingURL=cssUnescape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cssUnescape.js","sourceRoot":"","sources":["../../src/utils/cssUnescape.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,kEAAkE;IAClE,MAAM,aAAa,GAAG,yDAAyD,CAAA;IAE/E,OAAO,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACjE,sCAAsC;QACtC,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,IAAI,CAAA;QACb,CAAC;QAED,8DAA8D;QAC9D,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,EAAE,CAAA;QACX,CAAC;QAED,kCAAkC;QAClC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,QAAQ,CAAA,CAAC,wBAAwB;QAC1C,CAAC;QAED,+EAA+E;QAC/E,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;QAEjD,iEAAiE;QACjE,IAAI,SAAS,KAAK,CAAC,IAAI,SAAS,GAAG,QAAQ,IAAI,CAAC,SAAS,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,CAAC,EAAE,CAAC;YAC5F,OAAO,QAAQ,CAAA,CAAC,wBAAwB;QAC1C,CAAC;QAED,OAAO,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { cssUnescape } from './cssUnescape.ts';
2
+ export { pxToTw } from './pxToTw.ts';
3
+ export { twToPx } from './twToPx.ts';
4
+ export { twToRem } from './twToRem.ts';
5
+ export { wrapSelector } from './wrapSelector.ts';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA"}
@@ -0,0 +1,6 @@
1
+ export { cssUnescape } from "./cssUnescape.js";
2
+ export { pxToTw } from "./pxToTw.js";
3
+ export { twToPx } from "./twToPx.js";
4
+ export { twToRem } from "./twToRem.js";
5
+ export { wrapSelector } from "./wrapSelector.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA"}
@@ -0,0 +1,3 @@
1
+ /** Converts a value in CSS pixels to a Tailwind length. */
2
+ export declare function pxToTw(px: number): number;
3
+ //# sourceMappingURL=pxToTw.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pxToTw.d.ts","sourceRoot":"","sources":["../../src/utils/pxToTw.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEzC"}
@@ -0,0 +1,5 @@
1
+ /** Converts a value in CSS pixels to a Tailwind length. */
2
+ export function pxToTw(px) {
3
+ return px * 0.25; // 1px = 0.25 tw unit, 4px = 1 tw unit
4
+ }
5
+ //# sourceMappingURL=pxToTw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pxToTw.js","sourceRoot":"","sources":["../../src/utils/pxToTw.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,MAAM,UAAU,MAAM,CAAC,EAAU;IAC/B,OAAO,EAAE,GAAG,IAAI,CAAA,CAAC,sCAAsC;AACzD,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Converts a Tailwind length to `px`. */
2
+ export declare function twToPx(tw: number): number;
3
+ //# sourceMappingURL=twToPx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twToPx.d.ts","sourceRoot":"","sources":["../../src/utils/twToPx.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEzC"}
@@ -0,0 +1,5 @@
1
+ /** Converts a Tailwind length to `px`. */
2
+ export function twToPx(tw) {
3
+ return tw * 4; // 1 tw unit = 4px
4
+ }
5
+ //# sourceMappingURL=twToPx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twToPx.js","sourceRoot":"","sources":["../../src/utils/twToPx.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,MAAM,UAAU,MAAM,CAAC,EAAU;IAC/B,OAAO,EAAE,GAAG,CAAC,CAAA,CAAC,kBAAkB;AAClC,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Converts a Tailwind length to `rem`. */
2
+ export declare function twToRem(tw: number): number;
3
+ //# sourceMappingURL=twToRem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twToRem.d.ts","sourceRoot":"","sources":["../../src/utils/twToRem.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE1C"}
@@ -0,0 +1,5 @@
1
+ /** Converts a Tailwind length to `rem`. */
2
+ export function twToRem(tw) {
3
+ return tw * 0.25; // 1 tw unit = 0.25rem (4px at 16px base)
4
+ }
5
+ //# sourceMappingURL=twToRem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twToRem.js","sourceRoot":"","sources":["../../src/utils/twToRem.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,MAAM,UAAU,OAAO,CAAC,EAAU;IAChC,OAAO,EAAE,GAAG,IAAI,CAAA,CAAC,yCAAyC;AAC5D,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Wraps a CSS selector with a pseudo-class function like :is() or :not(). Returns the simplest
3
+ * equivalent selector by applying logical simplifications.
4
+ *
5
+ * @param pseudo - The pseudo-class to use (':is' or ':not').
6
+ * @param selector - The CSS selector to wrap.
7
+ * @returns The wrapped or simplified selector.
8
+ */
9
+ export declare function wrapSelector(pseudo: ':is' | ':not', selector: string): string;
10
+ //# sourceMappingURL=wrapSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapSelector.d.ts","sourceRoot":"","sources":["../../src/utils/wrapSelector.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAmD7E"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Wraps a CSS selector with a pseudo-class function like :is() or :not(). Returns the simplest
3
+ * equivalent selector by applying logical simplifications.
4
+ *
5
+ * @param pseudo - The pseudo-class to use (':is' or ':not').
6
+ * @param selector - The CSS selector to wrap.
7
+ * @returns The wrapped or simplified selector.
8
+ */
9
+ export function wrapSelector(pseudo, selector) {
10
+ // Trim whitespace
11
+ selector = selector.trim();
12
+ // If there's nothing to wrap, return an empty string
13
+ if (!selector) {
14
+ return '';
15
+ }
16
+ // Check if the selector matches the pattern :something(...)
17
+ const pseudoMatch = selector.match(/^:(\w+)\(/);
18
+ if (pseudoMatch) {
19
+ const existingPseudo = `:${pseudoMatch[1]}`;
20
+ const startIndex = existingPseudo.length + 1; // Length of ':something('
21
+ // Find the matching closing parenthesis for the opening one
22
+ let depth = 0;
23
+ for (let i = startIndex; i < selector.length; i++) {
24
+ if (selector[i] === '(')
25
+ depth++;
26
+ else if (selector[i] === ')') {
27
+ if (depth === 0) {
28
+ // Found the matching closing parenthesis
29
+ if (i === selector.length - 1) {
30
+ // The entire selector is wrapped in a single pseudo-class function
31
+ if (pseudo === ':is') {
32
+ // Wrapping anything in :is() doesn't change its behavior
33
+ // :is(:not(...)) is equivalent to :not(...)
34
+ // :is(:is(...)) is equivalent to :is(...)
35
+ // :is(:where(...)) is equivalent to :where(...)
36
+ return selector;
37
+ }
38
+ if (pseudo === ':not' && existingPseudo === ':not') {
39
+ // Double negation: :not(:not(...)) is equivalent to :is(...)
40
+ return `:is(${selector.slice(startIndex, -1)})`;
41
+ }
42
+ if (pseudo === ':not' && existingPseudo === ':is') {
43
+ // :not(:is(...)) is equivalent to :not(...)
44
+ return `:not(${selector.slice(startIndex, -1)})`;
45
+ }
46
+ // Otherwise wrap normally
47
+ }
48
+ break;
49
+ }
50
+ depth--;
51
+ }
52
+ }
53
+ }
54
+ // Otherwise, wrap the selector
55
+ return `${pseudo}(${selector})`;
56
+ }
57
+ //# sourceMappingURL=wrapSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapSelector.js","sourceRoot":"","sources":["../../src/utils/wrapSelector.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,MAAsB,EAAE,QAAgB;IACnE,kBAAkB;IAClB,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAA;IAE1B,qDAAqD;IACrD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,CAAA;IACX,CAAC;IAED,4DAA4D;IAC5D,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IAC/C,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,cAAc,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;QAC3C,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAA,CAAC,0BAA0B;QAEvE,4DAA4D;QAC5D,IAAI,KAAK,GAAG,CAAC,CAAA;QAEb,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG;gBAAE,KAAK,EAAE,CAAA;iBAC3B,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC7B,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBAChB,yCAAyC;oBACzC,IAAI,CAAC,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC9B,mEAAmE;wBACnE,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;4BACrB,yDAAyD;4BACzD,4CAA4C;4BAC5C,0CAA0C;4BAC1C,gDAAgD;4BAChD,OAAO,QAAQ,CAAA;wBACjB,CAAC;wBACD,IAAI,MAAM,KAAK,MAAM,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;4BACnD,6DAA6D;4BAC7D,OAAO,OAAO,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;wBACjD,CAAC;wBACD,IAAI,MAAM,KAAK,MAAM,IAAI,cAAc,KAAK,KAAK,EAAE,CAAC;4BAClD,4CAA4C;4BAC5C,OAAO,QAAQ,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;wBAClD,CAAC;wBACD,0BAA0B;oBAC5B,CAAC;oBACD,MAAK;gBACP,CAAC;gBACD,KAAK,EAAE,CAAA;YACT,CAAC;QACH,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,OAAO,GAAG,MAAM,IAAI,QAAQ,GAAG,CAAA;AACjC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,65 @@
1
+ {
2
+ "name": "@graphprotocol/gds-css",
3
+ "version": "0.0.1",
4
+ "description": "Tailwind preset and design tokens for The Graph Design System",
5
+ "author": "Edge & Node and contributors",
6
+ "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/graphprotocol/gds.git",
10
+ "directory": "packages/css"
11
+ },
12
+ "homepage": "https://github.com/graphprotocol/gds/tree/main/packages/css",
13
+ "bugs": "https://github.com/graphprotocol/gds/issues",
14
+ "type": "module",
15
+ "sideEffects": false,
16
+ "exports": {
17
+ ".": {
18
+ "style": "./styles/tailwind.css",
19
+ "typecheck": "./dist/index.d.ts",
20
+ "default": "./src/index.ts"
21
+ },
22
+ "./tailwind.css": "./styles/tailwind.css",
23
+ "./tailwind-plugin": {
24
+ "typecheck": "./dist/tailwind-plugin.d.ts",
25
+ "default": "./src/tailwind-plugin.ts"
26
+ }
27
+ },
28
+ "publishConfig": {
29
+ "exports": {
30
+ ".": {
31
+ "style": "./styles/tailwind.css",
32
+ "default": "./dist/index.js"
33
+ },
34
+ "./tailwind.css": "./styles/tailwind.css",
35
+ "./tailwind-plugin": "./dist/tailwind-plugin.js"
36
+ }
37
+ },
38
+ "files": [
39
+ "styles",
40
+ "dist",
41
+ "!dist/**/*.test.*",
42
+ "src",
43
+ "!src/**/*.test.*"
44
+ ],
45
+ "peerDependencies": {
46
+ "tailwindcss": "^4.1.14"
47
+ },
48
+ "dependencies": {
49
+ "@graphprotocol/gds-utils": "workspace:*",
50
+ "@graphprotocol/tailwindcss-animate": "workspace:*",
51
+ "cssesc": "^3.0.0",
52
+ "ts-extras": "^0.16.0"
53
+ },
54
+ "devDependencies": {
55
+ "@types/cssesc": "^3.0.2",
56
+ "@types/node": "^24.10.2"
57
+ },
58
+ "scripts": {
59
+ "prepare": "pnpm generate:design-tokens",
60
+ "generate:design-tokens": "tsx scripts/generate-design-tokens.ts",
61
+ "build": "tsc --build tsconfig.build.json",
62
+ "test": "vitest run",
63
+ "test:watch": "vitest"
64
+ }
65
+ }