Skip to content

Commit

Permalink
0.2.3
Browse files Browse the repository at this point in the history
  • Loading branch information
jonathantneal authored Jul 22, 2021
2 parents 676eac2 + db468ab commit 1ed5382
Show file tree
Hide file tree
Showing 8 changed files with 241 additions and 201 deletions.
6 changes: 3 additions & 3 deletions packages/core/src/ThemeToken.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ import { Optional, Primitive, ToString, ToTailDashed } from './utility'

/** Theme Tokens represent named reusable values, which may be unique to a scale and prefixed. */
export declare class ThemeToken<T1 extends Primitive, T2 extends Primitive, T3 extends Optional, T4 extends Optional> {
constructor(name: T1, value: T2, scale?: T3, prefix?: T4)
constructor(token: T1, value: T2, scale?: T3, prefix?: T4)

/** Name of the token. */
name: Primitive extends T1 ? '' : ToString<T1>
token: Primitive extends T1 ? '' : ToString<T1>

/** Original value of the token. */
value: Primitive extends T2 ? '' : `${T2}`
Expand All @@ -17,7 +17,7 @@ export declare class ThemeToken<T1 extends Primitive, T2 extends Primitive, T3 e
prefix: Optional extends T4 ? '' : `${T4}`

/** Serialized custom property representing the token. */
variable: `--${ToTailDashed<this['prefix']>}${ToTailDashed<this['scale']>}${this['name']}`
variable: `--${ToTailDashed<this['prefix']>}${ToTailDashed<this['scale']>}${this['token']}`

/** Serialized CSS var() representing the token. */
computedValue: `var(${this['variable']})`
Expand Down
6 changes: 3 additions & 3 deletions packages/core/src/ThemeToken.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { toTailDashed } from './convert/toTailDashed.js'

export class ThemeToken {
constructor(name, value, scale, prefix) {
this.name = name == null ? '' : String(name)
constructor(token, value, scale, prefix) {
this.token = token == null ? '' : String(token)
this.value = value == null ? '' : String(value)
this.scale = scale == null ? '' : String(scale)
this.prefix = prefix == null ? '' : String(prefix)
Expand All @@ -13,7 +13,7 @@ export class ThemeToken {
}

get variable() {
return '--' + toTailDashed(this.prefix) + toTailDashed(this.scale) + this.name
return '--' + toTailDashed(this.prefix) + toTailDashed(this.scale) + this.token
}

toString() {
Expand Down
1 change: 1 addition & 0 deletions packages/core/src/convert/toPolyfilledValue.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ export const toPolyfilledValue = {
hyphens: (d) => ({ WebkitHyphens: d, hyphens: d }),
maskImage: (d) => ({ WebkitMaskImage: d, maskImage: d }),
tabSize: (d) => ({ MozTabSize: d, tabSize: d }),
textSizeAdjust: (d) => ({ WebkitTextSizeAdjust: d, textSizeAdjust: d }),
userSelect: (d) => ({ WebkitUserSelect: d, userSelect: d }),

// logical properties
Expand Down
3 changes: 2 additions & 1 deletion packages/core/src/features/css.js
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,8 @@ const getPreparedDataFromComposers = (/** @type {Set<Composer>} */ composers) =>
combinedUndefinedVariants.push(...undefinedVariants)

for (const name in prefilledVariants) {
combinedPrefilledVariants[name] = prefilledVariants[name]
const data = prefilledVariants[name]
if (combinedPrefilledVariants[name] === undefined || data !== 'undefined' || undefinedVariants.includes(data)) combinedPrefilledVariants[name] = data
}
}

Expand Down
34 changes: 34 additions & 0 deletions packages/core/tests/issue-652.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import { createCss } from '../src/index.js'

describe('Issue #652', () => {
test('Applying both variants from the one default variant', () => {
const { css } = createCss()

const component1 = css({
variants: {
hue: {
primary: {
color: 'red',
},
},
},
defaultVariants: {
hue: 'primary',
},
})

const component2 = css(component1, {
variants: {
hue: {
primary: {
color: 'blue',
},
},
},
})

const expression2 = component2()

expect(expression2.className).toBe(`c-PJLV c-PJLV-gmqXFB-hue-primary c-PJLV-kydkiA-hue-primary`)
})
})
12 changes: 12 additions & 0 deletions packages/core/tests/universal-autoprefixer.js
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,18 @@ describe('Autoprefixer', () => {
expect(toString()).toBe('--stitches{--:1 kPCdtQ}@media{x-element{-moz-tab-size:none;tab-size:none}}')
})

test('textSizeAdjust', () => {
const { global, toString } = createCss()

global({
'x-element': {
textSizeAdjust: '100%',
},
})()

expect(toString()).toBe('--stitches{--:1 gVFtip}@media{x-element{-webkit-text-size-adjust:100%;text-size-adjust:100%}}')
})

test('userSelect', () => {
const { global, toString } = createCss()

Expand Down
Loading

0 comments on commit 1ed5382

Please sign in to comment.