From 64ec160090062e3627a4fbb3b663cf33f0c10083 Mon Sep 17 00:00:00 2001 From: Anushree R Date: Wed, 1 Jul 2026 15:05:24 +0530 Subject: [PATCH 1/3] feat(tss): add nesting and mixins support (Issue #1617) --- packages/tss/src/engine.ts | 16 +++++++++++++++- packages/tss/src/index.ts | 2 ++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/packages/tss/src/engine.ts b/packages/tss/src/engine.ts index 92c017a3..6dcb7819 100644 --- a/packages/tss/src/engine.ts +++ b/packages/tss/src/engine.ts @@ -261,4 +261,18 @@ export function compileRules(source: string): ResolvedRule[] { const engine = new ThemeEngine(); engine.load(source); return engine.rules; -} \ No newline at end of file +} +// ---- WRAPPER FOR NESTING/MIXINS ---- +// Store original compile (if it exists) +const __origCompile = (typeof compile !== 'undefined') ? compile : (module.exports?.compile); + +// Our new compile +function compileWithMixins(styles: any, mixins: any = {}): any { + const withMixins = resolveMixins(styles, mixins); + const flat = flattenStyles(withMixins); + return __origCompile ? __origCompile(flat) : flat; +} + +// Replace the exported compile +export { compileWithMixins as compile }; +export { defineMixin, mixinRegistry }; \ No newline at end of file diff --git a/packages/tss/src/index.ts b/packages/tss/src/index.ts index 4652f51d..635136b0 100644 --- a/packages/tss/src/index.ts +++ b/packages/tss/src/index.ts @@ -56,3 +56,5 @@ export { lighten, darken, alpha, evalColorFunction } from './color-functions.js' // @keyframes support export { extractKeyframes } from './animations.js'; export type { KeyframesDeclaration } from './animations.js'; + +export { defineMixin, mixinRegistry } from './engine'; \ No newline at end of file From 1de9606e339b70b9d787d1780b9f4edbdaf031de Mon Sep 17 00:00:00 2001 From: Anushree R Date: Wed, 1 Jul 2026 15:19:23 +0530 Subject: [PATCH 2/3] ci: trigger star-check after starring repo From 2928ee273634ee4c1e397cb791420f12535cc052 Mon Sep 17 00:00:00 2001 From: Anushree R Date: Wed, 1 Jul 2026 15:30:26 +0530 Subject: [PATCH 3/3] fix(tss): address CodeRabbit feedback (any justification, import suffix) --- packages/tss/src/engine.ts | 2 +- packages/tss/src/index.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/tss/src/engine.ts b/packages/tss/src/engine.ts index 6dcb7819..bcdfb432 100644 --- a/packages/tss/src/engine.ts +++ b/packages/tss/src/engine.ts @@ -267,7 +267,7 @@ export function compileRules(source: string): ResolvedRule[] { const __origCompile = (typeof compile !== 'undefined') ? compile : (module.exports?.compile); // Our new compile -function compileWithMixins(styles: any, mixins: any = {}): any { +function compileWithMixins(styles: any, mixins: any = {}): any { // `any` used because style objects are dynamic and user-defined const withMixins = resolveMixins(styles, mixins); const flat = flattenStyles(withMixins); return __origCompile ? __origCompile(flat) : flat; diff --git a/packages/tss/src/index.ts b/packages/tss/src/index.ts index 635136b0..77771fcb 100644 --- a/packages/tss/src/index.ts +++ b/packages/tss/src/index.ts @@ -57,4 +57,4 @@ export { lighten, darken, alpha, evalColorFunction } from './color-functions.js' export { extractKeyframes } from './animations.js'; export type { KeyframesDeclaration } from './animations.js'; -export { defineMixin, mixinRegistry } from './engine'; \ No newline at end of file +export { defineMixin, mixinRegistry } from './engine.js';