diff --git a/src/generation/ClassesGenerator.ts b/src/generation/ClassesGenerator.ts index ba5f0b20..afa0317f 100644 --- a/src/generation/ClassesGenerator.ts +++ b/src/generation/ClassesGenerator.ts @@ -8,6 +8,7 @@ import { Backgrounds as defaultBackgrounds } from '../classes/Backgrounds'; import { Borders as defaultBorders } from '../classes/Borders'; import { Effects as defaultEffects } from '../classes/Effects'; import { FlexBox as defaultFlexBox } from '../classes/Flexbox'; +import { Grid as defaultGrid } from '../classes/Grid'; import isEmpty from 'lodash.isempty'; export class ClassesGenerator implements IClassesGenerator { @@ -99,6 +100,19 @@ export class ClassesGenerator implements IClassesGenerator { return new ClassesGroupTemplateGenerator(FlexBox, 'FlexBox', this.configScanner.prefix).generate(); }; + public grid = (): string => { + const Grid = { + ...defaultGrid, + gridTemplateColumns: Object.keys(this.configScanner.themeConfig.gridTemplateColumns).map( + value => `grid-cols-${value}`, + ), + }; + + this.allGeneratedClasses.Grid = Grid; + + return new ClassesGroupTemplateGenerator(Grid, 'Grid', this.configScanner.prefix).generate(); + }; + public spacing = (): string => { const Spacing = { space: this.getGeneratedClassesWithSpacing().spaceBetweens, diff --git a/src/generation/IGenerator.ts b/src/generation/IGenerator.ts index b4adacf7..b9621faa 100644 --- a/src/generation/IGenerator.ts +++ b/src/generation/IGenerator.ts @@ -8,7 +8,7 @@ export interface IClassesGenerator { borders: () => string; effects: () => string; flexBox: () => string; - // grid: () => string; + grid: () => string; spacing: () => string; // interactivity: () => string; // layout: () => string; diff --git a/src/generation/_definitions.d.ts b/src/generation/_definitions.d.ts index 833e0add..7ab2ca37 100644 --- a/src/generation/_definitions.d.ts +++ b/src/generation/_definitions.d.ts @@ -139,7 +139,7 @@ interface IThemeProps { [key: string]: string; }; gap: any; - gridTemplateColumns?: { + gridTemplateColumns: { [key: string]: string; }; gridColumn?: { diff --git a/src/generation/createFile.ts b/src/generation/createFile.ts index 48e5bb14..4eae9064 100644 --- a/src/generation/createFile.ts +++ b/src/generation/createFile.ts @@ -67,6 +67,7 @@ export function createFileWithGeneratedTypes(options: Options): void { .replace(/___EFFECTS___/g, classesGenerator.effects) .replace(/___FLEXBOX___/g, classesGenerator.flexBox) .replace(/___SPACING___/g, classesGenerator.spacing) + .replace(/___GRID___/g, classesGenerator.grid) .replace(/MAX_WIDTH_BY_BREAKPOINTS/g, generateTypes(classesGenerator.getGeneratedMaxWidthClasses())) .replace(/WIDTH_SPACINGS/g, generateTypes(classesGenerator.getGeneratedClassesWithSpacing().widths, prefix)) diff --git a/src/generation/utils/baseTemplateString.ts b/src/generation/utils/baseTemplateString.ts index 68c1e948..c61370f8 100644 --- a/src/generation/utils/baseTemplateString.ts +++ b/src/generation/utils/baseTemplateString.ts @@ -206,165 +206,7 @@ ___BORDERS___ ___FLEXBOX___ - -export type TGrid = - | TGridTemplateColumns - | TGridColumnStartEnd - | TGridTemplateRows - | TGridRowStartEnd - | TGridGap - | TGridAutoFlow; - -export type TGridTemplateColumns = - | '_PREFIX_grid-cols-1' - | '_PREFIX_grid-cols-2' - | '_PREFIX_grid-cols-3' - | '_PREFIX_grid-cols-4' - | '_PREFIX_grid-cols-5' - | '_PREFIX_grid-cols-6' - | '_PREFIX_grid-cols-7' - | '_PREFIX_grid-cols-8' - | '_PREFIX_grid-cols-9' - | '_PREFIX_grid-cols-10' - | '_PREFIX_grid-cols-11' - | '_PREFIX_grid-cols-12' - | '_PREFIX_grid-cols-none'; - -export type TGridColumnStartEnd = - | '_PREFIX_col-auto' - | '_PREFIX_col-span-1' - | '_PREFIX_col-span-2' - | '_PREFIX_col-span-3' - | '_PREFIX_col-span-4' - | '_PREFIX_col-span-5' - | '_PREFIX_col-span-6' - | '_PREFIX_col-span-7' - | '_PREFIX_col-span-8' - | '_PREFIX_col-span-10' - | '_PREFIX_col-span-11' - | '_PREFIX_col-start-1' - | '_PREFIX_col-start-2' - | '_PREFIX_col-start-3' - | '_PREFIX_col-start-4' - | '_PREFIX_col-start-5' - | '_PREFIX_col-start-6' - | '_PREFIX_col-start-7' - | '_PREFIX_col-start-8' - | '_PREFIX_col-start-9' - | '_PREFIX_col-start-10' - | '_PREFIX_col-start-11' - | '_PREFIX_col-start-12' - | '_PREFIX_col-start-13' - | '_PREFIX_col-start-auto' - | '_PREFIX_col-end-1' - | '_PREFIX_col-end-2' - | '_PREFIX_col-end-3' - | '_PREFIX_col-end-4' - | '_PREFIX_col-end-5' - | '_PREFIX_col-end-6' - | '_PREFIX_col-end-7' - | '_PREFIX_col-end-8' - | '_PREFIX_col-end-9' - | '_PREFIX_col-end-10' - | '_PREFIX_col-end-11' - | '_PREFIX_col-end-12' - | '_PREFIX_col-end-13' - | '_PREFIX_col-end-auto'; - -export type TGridTemplateRows = - | '_PREFIX_grid-rows-1' - | '_PREFIX_grid-rows-2' - | '_PREFIX_grid-rows-3' - | '_PREFIX_grid-rows-4' - | '_PREFIX_grid-rows-5' - | '_PREFIX_grid-rows-6' - | '_PREFIX_grid-rows-none'; - -export type TGridRowStartEnd = - | '_PREFIX_row-auto' - | '_PREFIX_row-span-1' - | '_PREFIX_row-span-2' - | '_PREFIX_row-span-3' - | '_PREFIX_row-span-4' - | '_PREFIX_row-span-5' - | '_PREFIX_row-span-6' - | '_PREFIX_row-start-1' - | '_PREFIX_row-start-2' - | '_PREFIX_row-start-3' - | '_PREFIX_row-start-4' - | '_PREFIX_row-start-5' - | '_PREFIX_row-start-6' - | '_PREFIX_row-start-7' - | '_PREFIX_row-start-auto' - | '_PREFIX_row-end-1' - | '_PREFIX_row-end-2' - | '_PREFIX_row-end-3' - | '_PREFIX_row-end-4' - | '_PREFIX_row-end-5' - | '_PREFIX_row-end-6' - | '_PREFIX_row-end-7' - | '_PREFIX_row-end-auto'; - -export type TGridGap = - | '_PREFIX_gap-0' - | '_PREFIX_gap-1' - | '_PREFIX_gap-2' - | '_PREFIX_gap-3' - | '_PREFIX_gap-4' - | '_PREFIX_gap-5' - | '_PREFIX_gap-6' - | '_PREFIX_gap-8' - | '_PREFIX_gap-10' - | '_PREFIX_gap-12' - | '_PREFIX_gap-16' - | '_PREFIX_gap-20' - | '_PREFIX_gap-24' - | '_PREFIX_gap-32' - | '_PREFIX_gap-40' - | '_PREFIX_gap-48' - | '_PREFIX_gap-56' - | '_PREFIX_gap-64' - | '_PREFIX_gap-px' - | '_PREFIX_row-gap-0' - | '_PREFIX_row-gap-1' - | '_PREFIX_row-gap-2' - | '_PREFIX_row-gap-3' - | '_PREFIX_row-gap-4' - | '_PREFIX_row-gap-5' - | '_PREFIX_row-gap-6' - | '_PREFIX_row-gap-8' - | '_PREFIX_row-gap-10' - | '_PREFIX_row-gap-12' - | '_PREFIX_row-gap-16' - | '_PREFIX_row-gap-20' - | '_PREFIX_row-gap-24' - | '_PREFIX_row-gap-32' - | '_PREFIX_row-gap-40' - | '_PREFIX_row-gap-48' - | '_PREFIX_row-gap-56' - | '_PREFIX_row-gap-64' - | '_PREFIX_row-gap-px' - | '_PREFIX_col-gap-0' - | '_PREFIX_col-gap-1' - | '_PREFIX_col-gap-2' - | '_PREFIX_col-gap-3' - | '_PREFIX_col-gap-4' - | '_PREFIX_col-gap-5' - | '_PREFIX_col-gap-6' - | '_PREFIX_col-gap-8' - | '_PREFIX_col-gap-10' - | '_PREFIX_col-gap-12' - | '_PREFIX_col-gap-16' - | '_PREFIX_col-gap-20' - | '_PREFIX_col-gap-24' - | '_PREFIX_col-gap-32' - | '_PREFIX_col-gap-40' - | '_PREFIX_col-gap-48' - | '_PREFIX_col-gap-56' - | '_PREFIX_col-gap-64' - | '_PREFIX_col-gap-px'; - -export type TGridAutoFlow = '_PREFIX_grid-flow-row' | '_PREFIX_grid-flow-col' | '_PREFIX_grid-flow-row-dense' | '_PREFIX_grid-flow-col-dense'; +___GRID___ ___SPACING___