@lgtm-hq/turbo-themes 0.12.22 → 0.12.24

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 (91) hide show
  1. package/dist/tokens/style-dictionary/themes.json +2 -2
  2. package/dist/tokens/style-dictionary/tokens.json +2 -2
  3. package/package.json +5 -4
  4. package/packages/adapters/tailwind/dist/tsconfig.tsbuildinfo +1 -1
  5. package/packages/core/dist/index.d.ts +9 -0
  6. package/packages/core/dist/index.d.ts.map +1 -0
  7. package/packages/core/dist/index.js +10 -0
  8. package/packages/core/dist/index.js.map +1 -0
  9. package/packages/core/dist/themes/bulma.d.ts +31 -0
  10. package/packages/core/dist/themes/bulma.d.ts.map +1 -0
  11. package/packages/core/dist/themes/bulma.js +160 -0
  12. package/packages/core/dist/themes/bulma.js.map +1 -0
  13. package/packages/core/dist/themes/css/bulma-generator.d.ts +6 -0
  14. package/packages/core/dist/themes/css/bulma-generator.d.ts.map +1 -0
  15. package/packages/core/dist/themes/css/bulma-generator.js +42 -0
  16. package/packages/core/dist/themes/css/bulma-generator.js.map +1 -0
  17. package/packages/core/dist/themes/css/global-overrides.d.ts +2 -0
  18. package/packages/core/dist/themes/css/global-overrides.d.ts.map +1 -0
  19. package/packages/core/dist/themes/css/global-overrides.js +10 -0
  20. package/packages/core/dist/themes/css/global-overrides.js.map +1 -0
  21. package/packages/core/dist/themes/css/helpers.d.ts +58 -0
  22. package/packages/core/dist/themes/css/helpers.d.ts.map +1 -0
  23. package/packages/core/dist/themes/css/helpers.js +181 -0
  24. package/packages/core/dist/themes/css/helpers.js.map +1 -0
  25. package/packages/core/dist/themes/css/index.d.ts +13 -0
  26. package/packages/core/dist/themes/css/index.d.ts.map +1 -0
  27. package/packages/core/dist/themes/css/index.js +26 -0
  28. package/packages/core/dist/themes/css/index.js.map +1 -0
  29. package/packages/core/dist/themes/css/mappings.d.ts +57 -0
  30. package/packages/core/dist/themes/css/mappings.d.ts.map +1 -0
  31. package/packages/core/dist/themes/css/mappings.js +79 -0
  32. package/packages/core/dist/themes/css/mappings.js.map +1 -0
  33. package/packages/core/dist/themes/css/overrides/accessibility.d.ts +6 -0
  34. package/packages/core/dist/themes/css/overrides/accessibility.d.ts.map +1 -0
  35. package/packages/core/dist/themes/css/overrides/accessibility.js +37 -0
  36. package/packages/core/dist/themes/css/overrides/accessibility.js.map +1 -0
  37. package/packages/core/dist/themes/css/overrides/dropdown.d.ts +6 -0
  38. package/packages/core/dist/themes/css/overrides/dropdown.d.ts.map +1 -0
  39. package/packages/core/dist/themes/css/overrides/dropdown.js +86 -0
  40. package/packages/core/dist/themes/css/overrides/dropdown.js.map +1 -0
  41. package/packages/core/dist/themes/css/overrides/forms.d.ts +6 -0
  42. package/packages/core/dist/themes/css/overrides/forms.d.ts.map +1 -0
  43. package/packages/core/dist/themes/css/overrides/forms.js +128 -0
  44. package/packages/core/dist/themes/css/overrides/forms.js.map +1 -0
  45. package/packages/core/dist/themes/css/overrides/index.d.ts +14 -0
  46. package/packages/core/dist/themes/css/overrides/index.d.ts.map +1 -0
  47. package/packages/core/dist/themes/css/overrides/index.js +30 -0
  48. package/packages/core/dist/themes/css/overrides/index.js.map +1 -0
  49. package/packages/core/dist/themes/css/overrides/navbar.d.ts +6 -0
  50. package/packages/core/dist/themes/css/overrides/navbar.d.ts.map +1 -0
  51. package/packages/core/dist/themes/css/overrides/navbar.js +63 -0
  52. package/packages/core/dist/themes/css/overrides/navbar.js.map +1 -0
  53. package/packages/core/dist/themes/css/overrides/tables.d.ts +6 -0
  54. package/packages/core/dist/themes/css/overrides/tables.d.ts.map +1 -0
  55. package/packages/core/dist/themes/css/overrides/tables.js +28 -0
  56. package/packages/core/dist/themes/css/overrides/tables.js.map +1 -0
  57. package/packages/core/dist/themes/css/overrides/typography.d.ts +6 -0
  58. package/packages/core/dist/themes/css/overrides/typography.d.ts.map +1 -0
  59. package/packages/core/dist/themes/css/overrides/typography.js +139 -0
  60. package/packages/core/dist/themes/css/overrides/typography.js.map +1 -0
  61. package/packages/core/dist/themes/css/syntax-generator.d.ts +6 -0
  62. package/packages/core/dist/themes/css/syntax-generator.d.ts.map +1 -0
  63. package/packages/core/dist/themes/css/syntax-generator.js +55 -0
  64. package/packages/core/dist/themes/css/syntax-generator.js.map +1 -0
  65. package/packages/core/dist/themes/css/types.d.ts +23 -0
  66. package/packages/core/dist/themes/css/types.d.ts.map +1 -0
  67. package/packages/core/dist/themes/css/types.js +4 -0
  68. package/packages/core/dist/themes/css/types.js.map +1 -0
  69. package/packages/core/dist/themes/css.d.ts +2 -0
  70. package/packages/core/dist/themes/css.d.ts.map +1 -0
  71. package/packages/core/dist/themes/css.js +5 -0
  72. package/packages/core/dist/themes/css.js.map +1 -0
  73. package/packages/core/dist/themes/registry.d.ts +2 -0
  74. package/packages/core/dist/themes/registry.d.ts.map +1 -0
  75. package/packages/core/dist/themes/registry.js +6 -0
  76. package/packages/core/dist/themes/registry.js.map +1 -0
  77. package/packages/core/dist/themes/tokens.json +1050 -0
  78. package/packages/core/dist/themes/types.d.ts +198 -0
  79. package/packages/core/dist/themes/types.d.ts.map +1 -0
  80. package/packages/core/dist/themes/types.js +4 -0
  81. package/packages/core/dist/themes/types.js.map +1 -0
  82. package/packages/core/dist/tokens/index.d.ts +68 -0
  83. package/packages/core/dist/tokens/index.d.ts.map +1 -0
  84. package/packages/core/dist/tokens/index.js +86 -0
  85. package/packages/core/dist/tokens/index.js.map +1 -0
  86. package/packages/css/dist/generator.d.ts.map +1 -1
  87. package/packages/css/dist/generator.js +2 -0
  88. package/packages/css/dist/generator.js.map +1 -1
  89. package/packages/theme-selector/dist/errors.d.ts.map +1 -1
  90. package/packages/theme-selector/dist/errors.js +4 -0
  91. package/packages/theme-selector/dist/errors.js.map +1 -1
@@ -0,0 +1,181 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // Helper functions for CSS generation
3
+ import { hexToHsl } from '../bulma.js';
4
+ /**
5
+ * Traverses an object using a dot-separated path.
6
+ * Internal helper used by all token resolution functions.
7
+ */
8
+ function traversePath(obj, path) {
9
+ const parts = path.split('.');
10
+ let current = obj;
11
+ for (const part of parts) {
12
+ if (current === null || current === undefined || typeof current !== 'object') {
13
+ return undefined;
14
+ }
15
+ // Safe: path is from hardcoded TOKEN_MAPPINGS, not user input
16
+ // nosemgrep: prototype-pollution-loop
17
+ current = current[part];
18
+ }
19
+ return current;
20
+ }
21
+ /**
22
+ * Unified token path resolver.
23
+ * Gets a value from tokens using a dot-separated path with optional prefix and fallback.
24
+ */
25
+ export function resolveTokenPath(tokens, path, options) {
26
+ const { prefix, fallbackPath } = options ?? {};
27
+ // Build full path with optional prefix
28
+ const fullPath = prefix ? `${prefix}.${path}` : path;
29
+ // Try primary path
30
+ const value = traversePath(tokens, fullPath);
31
+ if (typeof value === 'string') {
32
+ return value;
33
+ }
34
+ // Try fallback path if provided
35
+ if (fallbackPath) {
36
+ const fallbackValue = traversePath(tokens, fallbackPath);
37
+ if (typeof fallbackValue === 'string') {
38
+ return fallbackValue;
39
+ }
40
+ }
41
+ return undefined;
42
+ }
43
+ /**
44
+ * Gets a nested value from an object using a dot-separated path.
45
+ * Convenience wrapper around resolveTokenPath.
46
+ */
47
+ export function getTokenValue(tokens, path) {
48
+ return resolveTokenPath(tokens, path);
49
+ }
50
+ /**
51
+ * Gets a component token value with fallback.
52
+ * Convenience wrapper around resolveTokenPath for component tokens.
53
+ */
54
+ export function getComponentTokenValue(tokens, componentPath, fallbackPath) {
55
+ if (!tokens.components) {
56
+ return fallbackPath ? (resolveTokenPath(tokens, fallbackPath) ?? '') : '';
57
+ }
58
+ return (resolveTokenPath(tokens, componentPath, { prefix: 'components', fallbackPath }) ?? '');
59
+ }
60
+ /**
61
+ * Converts a hex color to an HSL string.
62
+ */
63
+ export function hexToHslString(hex) {
64
+ const hsl = hexToHsl(hex);
65
+ return `hsl(${hsl.h}, ${hsl.s}%, ${hsl.l}%)`;
66
+ }
67
+ /**
68
+ * Escapes a string for use in CSS selectors.
69
+ * Fallback implements CSS.escape algorithm per CSSOM spec when native is unavailable.
70
+ */
71
+ export function escapeCssId(id) {
72
+ if (typeof CSS !== 'undefined' && CSS.escape) {
73
+ return CSS.escape(id);
74
+ }
75
+ // Fallback: escape per CSSOM spec (simplified for valid identifier chars)
76
+ return id.replace(/[\0-\x1f\x7f]|^-?[0-9]|[^a-zA-Z0-9_-]/g, (char) => {
77
+ if (char === '\0')
78
+ return '\uFFFD';
79
+ const code = char.charCodeAt(0);
80
+ return '\\' + code.toString(16) + ' ';
81
+ });
82
+ }
83
+ /**
84
+ * Validates and sanitizes a CSS color value.
85
+ * Returns the value if valid, or a transparent fallback if invalid.
86
+ */
87
+ export function sanitizeCssColor(value) {
88
+ if (!value || typeof value !== 'string') {
89
+ return 'transparent';
90
+ }
91
+ // Allow hex colors, rgb/rgba/hsl/hsla functions, and named colors
92
+ const trimmed = value.trim();
93
+ // Hex color validation
94
+ if (/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(trimmed)) {
95
+ return trimmed;
96
+ }
97
+ // RGB/RGBA/HSL/HSLA function validation
98
+ if (/^(rgb|rgba|hsl|hsla)\([^)]+\)$/i.test(trimmed)) {
99
+ // Additional check: no semicolons or braces in the value
100
+ if (!/[;{}]/.test(trimmed)) {
101
+ return trimmed;
102
+ }
103
+ }
104
+ // Named color validation (common named colors only)
105
+ const namedColors = new Set([
106
+ 'transparent', 'inherit', 'currentColor', 'initial', 'unset',
107
+ 'black', 'white', 'red', 'green', 'blue', 'yellow', 'orange',
108
+ 'purple', 'gray', 'grey', 'pink', 'brown', 'cyan', 'magenta',
109
+ ]);
110
+ if (namedColors.has(trimmed.toLowerCase())) {
111
+ return trimmed;
112
+ }
113
+ // Default fallback for invalid values
114
+ return 'transparent';
115
+ }
116
+ /**
117
+ * Generates CSS variable declarations from a mapping array.
118
+ */
119
+ export function generateVariables(tokens, mappings) {
120
+ return mappings.map((mapping) => {
121
+ let value = getTokenValue(tokens, mapping.tokenPath);
122
+ if (value === undefined && mapping.fallbackPath) {
123
+ value = getTokenValue(tokens, mapping.fallbackPath);
124
+ }
125
+ return ` ${mapping.cssVar}: ${value ?? ''};`;
126
+ });
127
+ }
128
+ /**
129
+ * Generates HSL component variables (h, s%, l%).
130
+ */
131
+ export function generateHSLComponents(tokens, mapping) {
132
+ const hex = getTokenValue(tokens, mapping.tokenPath);
133
+ if (!hex)
134
+ return [];
135
+ const hsl = hexToHsl(hex);
136
+ return [
137
+ ` ${mapping.hVar}: ${hsl.h};`,
138
+ ` ${mapping.sVar}: ${hsl.s}%;`,
139
+ ` ${mapping.lVar}: ${hsl.l}%;`,
140
+ ];
141
+ }
142
+ /**
143
+ * Generates HSL color variables.
144
+ */
145
+ export function generateHSLColors(tokens, mappings) {
146
+ return mappings.map((mapping) => {
147
+ const hex = getTokenValue(tokens, mapping.tokenPath);
148
+ if (!hex)
149
+ return ` ${mapping.cssVar}: ;`;
150
+ return ` ${mapping.cssVar}: ${hexToHslString(hex)};`;
151
+ });
152
+ }
153
+ /**
154
+ * Generates component token variables with fallbacks.
155
+ */
156
+ export function generateComponentVariables(tokens, mappings) {
157
+ if (!tokens.components)
158
+ return [];
159
+ const lines = [];
160
+ let currentComponent = '';
161
+ for (const mapping of mappings) {
162
+ const component = mapping.componentPath.split('.')[0] ?? '';
163
+ // Add comment for new component section
164
+ if (component && component !== currentComponent) {
165
+ const componentName = component.charAt(0).toUpperCase() + component.slice(1);
166
+ lines.push(` /* ${componentName} component tokens */`);
167
+ currentComponent = component;
168
+ }
169
+ // Special case for modal.bg which has a non-token fallback
170
+ let value;
171
+ if (mapping.componentPath === 'modal.bg' && !mapping.fallbackPath) {
172
+ value = getComponentTokenValue(tokens, mapping.componentPath, '') || 'rgba(10, 10, 10, 0.86)';
173
+ }
174
+ else {
175
+ value = getComponentTokenValue(tokens, mapping.componentPath, mapping.fallbackPath);
176
+ }
177
+ lines.push(` ${mapping.cssVar}: ${value};`);
178
+ }
179
+ return lines;
180
+ }
181
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/themes/css/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export * from './types.js';
2
+ import type { ThemeFlavor } from '../types.js';
3
+ /**
4
+ * Generate CSS for a specific flavor.
5
+ */
6
+ export declare function cssForFlavor(flavor: ThemeFlavor): string;
7
+ /**
8
+ * Generate global CSS overrides that apply theme variables.
9
+ */
10
+ export declare function cssGlobalOverrides(): string;
11
+ export { generateSyntaxHighlightingCSS } from './syntax-generator.js';
12
+ export { generateThemeCSSVariables } from './bulma-generator.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/themes/css/index.ts"],"names":[],"mappings":"AAGA,cAAc,YAAY,CAAC;AAE3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK/C;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAOxD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAGD,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,26 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // CSS generation module - Public API
3
+ export * from './types.js';
4
+ import { generateSyntaxHighlightingCSS } from './syntax-generator.js';
5
+ import { generateThemeCSSVariables } from './bulma-generator.js';
6
+ import { cssGlobalOverrides as globalOverrides } from './global-overrides.js';
7
+ /**
8
+ * Generate CSS for a specific flavor.
9
+ */
10
+ export function cssForFlavor(flavor) {
11
+ const syntaxCSS = generateSyntaxHighlightingCSS(flavor);
12
+ const variablesCSS = generateThemeCSSVariables(flavor);
13
+ return `/* SPDX-License-Identifier: MIT */
14
+ ${syntaxCSS}
15
+ ${variablesCSS}`;
16
+ }
17
+ /**
18
+ * Generate global CSS overrides that apply theme variables.
19
+ */
20
+ export function cssGlobalOverrides() {
21
+ return globalOverrides();
22
+ }
23
+ // Re-export internal modules for advanced usage
24
+ export { generateSyntaxHighlightingCSS } from './syntax-generator.js';
25
+ export { generateThemeCSSVariables } from './bulma-generator.js';
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/themes/css/index.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,qCAAqC;AAErC,cAAc,YAAY,CAAC;AAG3B,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,kBAAkB,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE9E;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAAmB;IAC9C,MAAM,SAAS,GAAG,6BAA6B,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAEvD,OAAO;EACP,SAAS;EACT,YAAY,EAAE,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,eAAe,EAAE,CAAC;AAC3B,CAAC;AAED,gDAAgD;AAChD,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,57 @@
1
+ import type { CSSVariableMapping, HSLVariableMapping, HSLColorMapping, ComponentTokenMapping } from './types.js';
2
+ /** Bulma scheme variables */
3
+ export declare const BULMA_SCHEME_MAPPINGS: CSSVariableMapping[];
4
+ /** Primary color HSL components */
5
+ export declare const PRIMARY_HSL_MAPPING: HSLVariableMapping;
6
+ /** State colors as HSL */
7
+ export declare const STATE_HSL_MAPPINGS: HSLColorMapping[];
8
+ /** Text variables */
9
+ export declare const TEXT_MAPPINGS: CSSVariableMapping[];
10
+ /** Heading variables */
11
+ export declare const HEADING_MAPPINGS: CSSVariableMapping[];
12
+ /** Content element variables */
13
+ export declare const CONTENT_MAPPINGS: CSSVariableMapping[];
14
+ /** Table variables */
15
+ export declare const TABLE_MAPPINGS: CSSVariableMapping[];
16
+ /** Syntax highlighting variables */
17
+ export declare const SYNTAX_MAPPINGS: CSSVariableMapping[];
18
+ /** Surface/background variables */
19
+ export declare const SURFACE_MAPPINGS: CSSVariableMapping[];
20
+ /** Component token mappings (optional, with fallbacks) */
21
+ export declare const COMPONENT_MAPPINGS: ComponentTokenMapping[];
22
+ /** Syntax highlighting CSS class mappings */
23
+ export declare const SYNTAX_CLASS_GROUPS: {
24
+ readonly comment: readonly string[];
25
+ readonly keyword: readonly string[];
26
+ readonly string: readonly string[];
27
+ readonly number: readonly string[];
28
+ readonly attr: readonly string[];
29
+ readonly title: readonly string[];
30
+ };
31
+ /** Core token mappings used by CSS generator */
32
+ export declare const CORE_MAPPINGS: CSSVariableMapping[];
33
+ /** CSS variable prefix */
34
+ export declare const CSS_VAR_PREFIX: string;
35
+ /** Optional group configurations */
36
+ export declare const OPTIONAL_GROUPS: {
37
+ spacing: {
38
+ prefix: string;
39
+ properties: string[];
40
+ };
41
+ elevation: {
42
+ prefix: string;
43
+ properties: string[];
44
+ };
45
+ animation: {
46
+ prefix: string;
47
+ mappings: {
48
+ cssVar: string;
49
+ tokenPath: string;
50
+ }[];
51
+ };
52
+ opacity: {
53
+ prefix: string;
54
+ properties: string[];
55
+ };
56
+ };
57
+ //# sourceMappingURL=mappings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mappings.d.ts","sourceRoot":"","sources":["../../../src/themes/css/mappings.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACtB,MAAM,YAAY,CAAC;AA+DpB,6BAA6B;AAC7B,eAAO,MAAM,qBAAqB,EAAE,kBAAkB,EACK,CAAC;AAE5D,mCAAmC;AACnC,eAAO,MAAM,mBAAmB,EAAE,kBACY,CAAC;AAE/C,0BAA0B;AAC1B,eAAO,MAAM,kBAAkB,EAAE,eAAe,EACa,CAAC;AAM9D,qBAAqB;AACrB,eAAO,MAAM,aAAa,EAAE,kBAAkB,EACW,CAAC;AAE1D,wBAAwB;AACxB,eAAO,MAAM,gBAAgB,EAAE,kBAAkB,EACW,CAAC;AAE7D,gCAAgC;AAChC,eAAO,MAAM,gBAAgB,EAAE,kBAAkB,EACW,CAAC;AAE7D,sBAAsB;AACtB,eAAO,MAAM,cAAc,EAAE,kBAAkB,EACW,CAAC;AAE3D,oCAAoC;AACpC,eAAO,MAAM,eAAe,EAAE,kBAAkB,EACW,CAAC;AAE5D,mCAAmC;AACnC,eAAO,MAAM,gBAAgB,EAAE,kBAAkB,EACW,CAAC;AAM7D,0DAA0D;AAC1D,eAAO,MAAM,kBAAkB,EAAE,qBAAqB,EACJ,CAAC;AAMnD,6CAA6C;AAC7C,eAAO,MAAM,mBAAmB,EAAsC;IACpE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC,CAAC;AAMF,gDAAgD;AAChD,eAAO,MAAM,aAAa,EAAE,kBAAkB,EACK,CAAC;AAEpD,0BAA0B;AAC1B,eAAO,MAAM,cAAc,QAAuB,CAAC;AAEnD,oCAAoC;AACpC,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;CAA+B,CAAC"}
@@ -0,0 +1,79 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // CSS Variable Mappings - Generated from config/token-mappings.json
3
+ // This file reads from the single source of truth configuration
4
+ // Import the centralized mapping configuration
5
+ // Note: Using require for JSON import compatibility
6
+ import mappingConfig from '../../../../../config/token-mappings.json' with { type: 'json' };
7
+ // Convert config entries to typed mappings
8
+ function toVariableMapping(entry) {
9
+ return {
10
+ cssVar: entry.cssVar,
11
+ tokenPath: entry.tokenPath,
12
+ ...(entry.fallback ? { fallbackPath: entry.fallback } : {}),
13
+ };
14
+ }
15
+ function toComponentMapping(entry) {
16
+ return {
17
+ cssVar: entry.cssVar,
18
+ componentPath: entry.componentPath,
19
+ fallbackPath: entry.fallback,
20
+ };
21
+ }
22
+ function toHSLMapping(entry) {
23
+ return {
24
+ hVar: entry.hVar,
25
+ sVar: entry.sVar,
26
+ lVar: entry.lVar,
27
+ tokenPath: entry.tokenPath,
28
+ };
29
+ }
30
+ function toHSLColorMapping(entry) {
31
+ return {
32
+ cssVar: entry.cssVar,
33
+ tokenPath: entry.tokenPath,
34
+ };
35
+ }
36
+ // =============================================================================
37
+ // Bulma Framework Mappings
38
+ // =============================================================================
39
+ /** Bulma scheme variables */
40
+ export const BULMA_SCHEME_MAPPINGS = mappingConfig.bulma.schemeMappings.map(toVariableMapping);
41
+ /** Primary color HSL components */
42
+ export const PRIMARY_HSL_MAPPING = toHSLMapping(mappingConfig.bulma.primaryHsl);
43
+ /** State colors as HSL */
44
+ export const STATE_HSL_MAPPINGS = mappingConfig.bulma.stateHslMappings.map(toHSLColorMapping);
45
+ // =============================================================================
46
+ // Theme Variable Mappings
47
+ // =============================================================================
48
+ /** Text variables */
49
+ export const TEXT_MAPPINGS = mappingConfig.theme.textMappings.map(toVariableMapping);
50
+ /** Heading variables */
51
+ export const HEADING_MAPPINGS = mappingConfig.theme.headingMappings.map(toVariableMapping);
52
+ /** Content element variables */
53
+ export const CONTENT_MAPPINGS = mappingConfig.theme.contentMappings.map(toVariableMapping);
54
+ /** Table variables */
55
+ export const TABLE_MAPPINGS = mappingConfig.theme.tableMappings.map(toVariableMapping);
56
+ /** Syntax highlighting variables */
57
+ export const SYNTAX_MAPPINGS = mappingConfig.theme.syntaxMappings.map(toVariableMapping);
58
+ /** Surface/background variables */
59
+ export const SURFACE_MAPPINGS = mappingConfig.theme.surfaceMappings.map(toVariableMapping);
60
+ // =============================================================================
61
+ // Component Token Mappings
62
+ // =============================================================================
63
+ /** Component token mappings (optional, with fallbacks) */
64
+ export const COMPONENT_MAPPINGS = mappingConfig.components.map(toComponentMapping);
65
+ // =============================================================================
66
+ // Syntax Highlighting CSS Classes
67
+ // =============================================================================
68
+ /** Syntax highlighting CSS class mappings */
69
+ export const SYNTAX_CLASS_GROUPS = mappingConfig.syntaxClassGroups;
70
+ // =============================================================================
71
+ // Core Mappings (for generator.ts and Python)
72
+ // =============================================================================
73
+ /** Core token mappings used by CSS generator */
74
+ export const CORE_MAPPINGS = mappingConfig.coreMappings.map(toVariableMapping);
75
+ /** CSS variable prefix */
76
+ export const CSS_VAR_PREFIX = mappingConfig.prefix;
77
+ /** Optional group configurations */
78
+ export const OPTIONAL_GROUPS = mappingConfig.optionalGroups;
79
+ //# sourceMappingURL=mappings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mappings.js","sourceRoot":"","sources":["../../../src/themes/css/mappings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Generate accessibility-related CSS overrides.
3
+ * Includes contrast fixes for themes that need WCAG compliance adjustments.
4
+ */
5
+ export declare function cssAccessibilityOverrides(): string;
6
+ //# sourceMappingURL=accessibility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessibility.d.ts","sourceRoot":"","sources":["../../../../src/themes/css/overrides/accessibility.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CA6BlD"}
@@ -0,0 +1,37 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // Accessibility CSS overrides - contrast fixes for specific themes
3
+ /**
4
+ * Generate accessibility-related CSS overrides.
5
+ * Includes contrast fixes for themes that need WCAG compliance adjustments.
6
+ */
7
+ export function cssAccessibilityOverrides() {
8
+ return `/* Accessibility contrast fixes (Axe) */
9
+ [data-flavor='catppuccin-latte'] .navbar-item,
10
+ [data-flavor='catppuccin-latte'] .has-text-centered > p,
11
+ [data-flavor='catppuccin-latte'] a.navbar-item,
12
+ [data-flavor='catppuccin-latte'] .title,
13
+ [data-flavor='catppuccin-latte'] h1,
14
+ [data-flavor='catppuccin-latte'] h2,
15
+ [data-flavor='catppuccin-latte'] h3,
16
+ [data-flavor='catppuccin-latte'] h4 {
17
+ color: #1e293b; /* strong slate for >=4.5:1 on light bg */
18
+ }
19
+
20
+ [data-flavor='catppuccin-latte'] .button.is-text,
21
+ [data-flavor='catppuccin-latte'] .button.is-ghost,
22
+ [data-flavor='catppuccin-latte'] .navbar-item.is-active {
23
+ color: #0b66d6; /* deeper blue for >=4.5:1 on light bg */
24
+ }
25
+
26
+ [data-flavor='github-dark'] strong,
27
+ [data-flavor='github-dark'] th,
28
+ [data-flavor='github-dark'] .has-text-centered > p {
29
+ color: #c9d1d9; /* github-dark foreground */
30
+ }
31
+
32
+ [data-flavor='github-dark'] .button.is-text,
33
+ [data-flavor='github-dark'] .button.is-ghost {
34
+ color: #58a6ff; /* accessible link blue on dark bg */
35
+ }`;
36
+ }
37
+ //# sourceMappingURL=accessibility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessibility.js","sourceRoot":"","sources":["../../../../src/themes/css/overrides/accessibility.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,mEAAmE;AAEnE;;;GAGG;AACH,MAAM,UAAU,yBAAyB;IACvC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BP,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Generate dropdown-related CSS overrides.
3
+ * Includes theme selector dropdown and menu item styles.
4
+ */
5
+ export declare function cssDropdownOverrides(): string;
6
+ //# sourceMappingURL=dropdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown.d.ts","sourceRoot":"","sources":["../../../../src/themes/css/overrides/dropdown.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CA8E7C"}
@@ -0,0 +1,86 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // Dropdown CSS overrides - theme selector dropdown styling
3
+ /**
4
+ * Generate dropdown-related CSS overrides.
5
+ * Includes theme selector dropdown and menu item styles.
6
+ */
7
+ export function cssDropdownOverrides() {
8
+ return `/* Dropdown Theme Selector */
9
+ .dropdown.is-theme {
10
+ --bulma-dropdown-item-h: var(--bulma-text-h);
11
+ --bulma-dropdown-item-s: var(--bulma-text-s);
12
+ --bulma-dropdown-item-color-l: var(--bulma-text-l);
13
+ --bulma-dropdown-item-background-l: var(--bulma-scheme-main-l);
14
+ --bulma-dropdown-item-selected-h: var(--bulma-link-h);
15
+ --bulma-dropdown-item-selected-s: var(--bulma-link-s);
16
+ --bulma-dropdown-item-selected-l: var(--bulma-link-l);
17
+ --bulma-dropdown-item-selected-background-l: var(--bulma-link-l);
18
+ --bulma-dropdown-item-selected-color-l: var(--bulma-link-invert-l);
19
+ }
20
+ .dropdown.is-theme .theme-flavor-trigger {
21
+ background: var(--theme-surface-1, inherit) !important;
22
+ color: var(--theme-text, inherit) !important;
23
+ border: 2px solid var(--theme-table-border, var(--bulma-border, currentColor)) !important;
24
+ border-radius: var(--bulma-radius, 0.375rem) !important;
25
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05) !important;
26
+ transition: all 0.2s ease !important;
27
+ font-weight: 500 !important;
28
+ }
29
+ .dropdown.is-theme .theme-flavor-trigger:hover {
30
+ border-color: var(--theme-link, var(--bulma-link)) !important;
31
+ box-shadow: 0 2px 4px color-mix(in srgb, var(--theme-link, var(--bulma-link)), transparent 85%),
32
+ 0 0 0 0.125em color-mix(in srgb, var(--theme-link, var(--bulma-link)), transparent 80%) !important;
33
+ background: var(--theme-surface-2, inherit) !important;
34
+ }
35
+ .dropdown.is-theme .theme-flavor-trigger:focus {
36
+ border-color: var(--theme-link, var(--bulma-link)) !important;
37
+ box-shadow: 0 0 0 0.125em color-mix(in srgb, var(--theme-link, var(--bulma-link)), transparent 80%),
38
+ 0 2px 4px color-mix(in srgb, var(--theme-link, var(--bulma-link)), transparent 85%) !important;
39
+ outline: none !important;
40
+ }
41
+ .dropdown.is-theme .dropdown-menu {
42
+ background: var(--theme-surface-1, inherit) !important;
43
+ border: 2px solid var(--theme-table-border, var(--bulma-border, currentColor)) !important;
44
+ border-radius: var(--bulma-radius, 0.375rem) !important;
45
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15), 0 2px 4px rgba(0, 0, 0, 0.1) !important;
46
+ margin-top: 0.25rem !important;
47
+ }
48
+ .dropdown.is-theme .dropdown-content {
49
+ background-color: transparent !important;
50
+ box-shadow: none !important;
51
+ padding: 0.5rem !important;
52
+ border: none !important;
53
+ }
54
+ .dropdown.is-theme .dropdown-item {
55
+ color: var(--theme-text, inherit) !important;
56
+ background-color: transparent !important;
57
+ border-radius: var(--bulma-radius-small, 0.25rem) !important;
58
+ padding: 0.625rem 1rem !important;
59
+ display: flex !important;
60
+ align-items: center !important;
61
+ gap: 0.75rem !important;
62
+ border: none !important;
63
+ transition: all 0.15s ease !important;
64
+ font-weight: 400 !important;
65
+ }
66
+ .dropdown.is-theme .dropdown-item:hover {
67
+ background: var(--theme-surface-2, inherit) !important;
68
+ color: var(--theme-link, var(--bulma-link)) !important;
69
+ transform: translateX(2px);
70
+ }
71
+ .dropdown.is-theme .dropdown-item.is-active {
72
+ background: var(--theme-link, var(--bulma-link)) !important;
73
+ color: var(--bulma-link-invert, var(--bulma-body-background-color)) !important;
74
+ font-weight: 500 !important;
75
+ }
76
+ .dropdown.is-theme .dropdown-item.is-active::before {
77
+ content: '\\2713';
78
+ margin-right: 0.25rem;
79
+ font-weight: bold;
80
+ }
81
+ .dropdown.is-theme .dropdown-item img {
82
+ border-radius: 50% !important;
83
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) !important;
84
+ }`;
85
+ }
86
+ //# sourceMappingURL=dropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../../../src/themes/css/overrides/dropdown.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,2DAA2D;AAE3D;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4EP,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Generate form-related CSS overrides.
3
+ * Includes inputs, textareas, selects, checkboxes, and validation states.
4
+ */
5
+ export declare function cssFormOverrides(): string;
6
+ //# sourceMappingURL=forms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../../../../src/themes/css/overrides/forms.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAwHzC"}