diff --git a/exporters/variables-scss/generated/exporter.cjs b/exporters/variables-scss/generated/exporter.cjs index 8ad6d6f41b..663752afef 100644 --- a/exporters/variables-scss/generated/exporter.cjs +++ b/exporters/variables-scss/generated/exporter.cjs @@ -8,7 +8,7 @@ `):c+=`${be.repeat(i)}${T} `;return c=ht(c),c=_t(c),c},Ge=(u,i)=>Object.entries(i).reduce((c,[n,T])=>(typeof T=="object"&&T!==null&&typeof c[n]=="object"?c[n]=Ge(c[n],T):c[n]=T,c),{...u});function Ye(u){return Object.entries(u).map(([i,c])=>{if(typeof c=="object"&&c!==null){const n=Ye(c);return`${i}: ( ${n} -), +), `}return`${i}: ${c}, `}).join("").slice(0,-1)}const kt=u=>`/* This file was generated by Supernova, don't change manually */ ${u}`,Ct=(u,i,c)=>u.filter(n=>{var T,m;return n.tokenType===i&&((m=(T=n.origin)==null?void 0:T.name)==null?void 0:m.includes(c))}),It=(u,i,c,n,T,m,g,r)=>{let t="",o={};n.forEach(a=>{T.forEach(y=>{const l=Ct(u,a,y);t+=St(l,i,c,y,g,r),t+=` diff --git a/exporters/variables-scss/src/formatters/__fixtures__/exampleFileContent.scss b/exporters/variables-scss/src/formatters/__fixtures__/exampleFileContent.scss index 1e218e3320..cca1823da7 100644 --- a/exporters/variables-scss/src/formatters/__fixtures__/exampleFileContent.scss +++ b/exporters/variables-scss/src/formatters/__fixtures__/exampleFileContent.scss @@ -3,10 +3,9 @@ $grid-spacing-desktop: 32px !default; $grid-columns: 12 !default; -$grid-spacings: ( - spacing-desktop: $grid-spacing-desktop, -) !default; - $grids: ( + spacing: ( + desktop: $grid-spacing-desktop, + ), columns: $grid-columns, ) !default; diff --git a/exporters/variables-scss/src/generators/__tests__/contentGenerator.test.ts b/exporters/variables-scss/src/generators/__tests__/contentGenerator.test.ts index 6eef693383..e6f30a179b 100644 --- a/exporters/variables-scss/src/generators/__tests__/contentGenerator.test.ts +++ b/exporters/variables-scss/src/generators/__tests__/contentGenerator.test.ts @@ -19,6 +19,7 @@ describe('contentGenerator', () => { const groupNames = ['Grid', 'String']; const withCssObject = true; const hasParentPrefix = true; + const sortByNumValue = false; const fileContent = generateFileContent( tokens, @@ -28,6 +29,7 @@ describe('contentGenerator', () => { groupNames, withCssObject, hasParentPrefix, + sortByNumValue, ); expect(fileContent).toStrictEqual({ content: mockedExpectedResult }); diff --git a/exporters/variables-scss/src/generators/__tests__/cssObjectGenerator.test.ts b/exporters/variables-scss/src/generators/__tests__/cssObjectGenerator.test.ts index 16ab58ac35..3339e3f4fb 100644 --- a/exporters/variables-scss/src/generators/__tests__/cssObjectGenerator.test.ts +++ b/exporters/variables-scss/src/generators/__tests__/cssObjectGenerator.test.ts @@ -1,5 +1,5 @@ import { Token, TokenGroup } from '@supernovaio/sdk-exporters'; -import { generateCssObjectFromTokens, generateObjectContent } from '../cssObjectGenerator'; +import { generateCssObjectFromTokens, getNonNumericPart } from '../cssObjectGenerator'; import { exampleMockedGroups, exampleMockedTokens } from '../../formatters/__fixtures__/mockedExampleTokens'; const mappedTokens: Map = new Map([]); @@ -15,21 +15,19 @@ describe('cssObjectGenerator', () => { true, ); - expect(css).toBe( - '$grid-spacings: (\ndesktop: $grid-spacing-desktop,\n) !default;\n\n$grids: (\ncolumns: $grid-columns,\n) !default;\n\n', - ); + expect(css).toStrictEqual({ + $grids: { columns: '$grid-columns', spacing: { desktop: '$grid-spacing-desktop' } }, + }); }); }); - describe('generateObjectContent', () => { - it('should generate object content', () => { - const objectContent = generateObjectContent( - [exampleMockedTokens.get('dimensionRef') as Token], - tokenGroups, - true, - ); + describe('getNonNumericPart', () => { + it('should return special case for radius-full', () => { + expect(getNonNumericPart('radius-full')).toBe('full'); + }); - expect(objectContent).toBe('desktop: $grid-spacing-desktop,\n'); + it('should return lowercase token name for other cases', () => { + expect(getNonNumericPart('Grid')).toBe('grid'); }); }); }); diff --git a/exporters/variables-scss/src/generators/cssObjectGenerator.ts b/exporters/variables-scss/src/generators/cssObjectGenerator.ts index 953c164b97..7518ebf0db 100644 --- a/exporters/variables-scss/src/generators/cssObjectGenerator.ts +++ b/exporters/variables-scss/src/generators/cssObjectGenerator.ts @@ -8,7 +8,7 @@ const specialCases: { [key: string]: string } = { 'radius-full': 'full', }; -const getNonNumericPart = (tokenName: string): string => { +export const getNonNumericPart = (tokenName: string): string => { if (specialCases[tokenName]) { return specialCases[tokenName]; } diff --git a/exporters/variables-scss/src/helpers/cssObjectHelper.ts b/exporters/variables-scss/src/helpers/cssObjectHelper.ts index 5d58309986..362e1eb95d 100644 --- a/exporters/variables-scss/src/helpers/cssObjectHelper.ts +++ b/exporters/variables-scss/src/helpers/cssObjectHelper.ts @@ -21,7 +21,7 @@ export function convertToScss(obj: CssObjectType): string { if (typeof value === 'object' && value !== null) { const nestedScss = convertToScss(value as CssObjectType); - return `${key}: (\n${nestedScss}\n), \n`; + return `${key}: (\n${nestedScss}\n),\n`; } return `${key}: ${value},\n`;