Skip to content

Commit

Permalink
fix: add missing main categories utility functions (#439)
Browse files Browse the repository at this point in the history
  • Loading branch information
muhammadsammy committed Aug 15, 2022
1 parent be85f3a commit b5c4d15
Show file tree
Hide file tree
Showing 3 changed files with 894 additions and 762 deletions.
33 changes: 31 additions & 2 deletions src/cli/core/FileContentGenerator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,9 @@ export class FileContentGenerator {
' >\n' +
') => TTailwindString;';

/**
* Specific subcategory utility functions
*/
for (const [categoryKey, value] of Object.entries(this._generatedClassNames)) {
const subCategoriesTemplate = Object.keys(value) // sub-ctegories keys
.map(SubCategory => {
Expand All @@ -103,11 +106,27 @@ export class FileContentGenerator {
subCategoriesTemplate;
}

/**
* general category utility functions
*/
const generalCategoriesTemplate = Object.keys(this._generatedClassNames)
.map(categorykey => {
const comment = '\n' + `\n//////////// ${categorykey} Utility functions\n` + '\n';

const fnName = _.camelCase(categorykey);
const fnType = `TUtilityFunction<T${_.upperFirst(categorykey)}>`;

return comment + `export const ${fnName}: ${fnType} = classnamesLib as any`;
})
.join('\n');

template = template + generalCategoriesTemplate;

return template;
};

private mainExportStatementsTemplate = (): string => {
const utilityFunctionsObjectTemplate = Object.keys(this._generatedClassNames)
const specificUtilityFunctionsObjectTemplate = Object.keys(this._generatedClassNames)
.map(cn => {
const subCategoryObj = this._generatedClassNames[cn as keyof TAllClassnames];
if (subCategoryObj !== undefined) {
Expand All @@ -118,8 +137,18 @@ export class FileContentGenerator {
})
.join(',\n');

const generalUtilityFunctionsObjectTemplate = Object.keys(this._generatedClassNames)
.map(cn => ' ' + _.camelCase(cn))
.join(',\n');

return (
`export const TW = {\n${utilityFunctionsObjectTemplate}\n}\n` +
`export const TW = {\n${specificUtilityFunctionsObjectTemplate}\n}\n` +
'\n' +
`export const CN = {\n${generalUtilityFunctionsObjectTemplate}\n}\n` +
'\n' +
'export const mainCategoriesUtilityFunctions = CN;\n' +
'\n' +
'export const subCategoriesUtilityFunctions = TW;\n' +
'\n' +
'export type TTailwindString = "TAILWIND_STRING"\n' +
'\n' +
Expand Down
99 changes: 98 additions & 1 deletion src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2978,7 +2978,16 @@ export type TRingColor =
| 'ring-transparent'
| 'ring-black'
| 'ring-white'
| 'ring-slate'
| 'ring-slate-50'
| 'ring-slate-100'
| 'ring-slate-200'
| 'ring-slate-300'
| 'ring-slate-400'
| 'ring-slate-500'
| 'ring-slate-600'
| 'ring-slate-700'
| 'ring-slate-800'
| 'ring-slate-900'
| 'ring-gray-50'
| 'ring-gray-100'
| 'ring-gray-200'
Expand Down Expand Up @@ -8338,6 +8347,71 @@ export const textDecorationThickness: TUtilityFunction<TTextDecorationThickness>
classnamesLib as any;
export const textUnderlineOffset: TUtilityFunction<TTextUnderlineOffset> = classnamesLib as any;

//////////// Accessibility Utility functions

export const accessibility: TUtilityFunction<TAccessibility> = classnamesLib as any;

//////////// Backgrounds Utility functions

export const backgrounds: TUtilityFunction<TBackgrounds> = classnamesLib as any;

//////////// Borders Utility functions

export const borders: TUtilityFunction<TBorders> = classnamesLib as any;

//////////// Tables Utility functions

export const tables: TUtilityFunction<TTables> = classnamesLib as any;

//////////// Effects Utility functions

export const effects: TUtilityFunction<TEffects> = classnamesLib as any;

//////////// TransitionsAndAnimations Utility functions

export const transitionsAndAnimations: TUtilityFunction<TTransitionsAndAnimations> =
classnamesLib as any;

//////////// Filters Utility functions

export const filters: TUtilityFunction<TFilters> = classnamesLib as any;

//////////// FlexBox Utility functions

export const flexBox: TUtilityFunction<TFlexBox> = classnamesLib as any;

//////////// Grid Utility functions

export const grid: TUtilityFunction<TGrid> = classnamesLib as any;

//////////// Spacing Utility functions

export const spacing: TUtilityFunction<TSpacing> = classnamesLib as any;

//////////// Interactivity Utility functions

export const interactivity: TUtilityFunction<TInteractivity> = classnamesLib as any;

//////////// Layout Utility functions

export const layout: TUtilityFunction<TLayout> = classnamesLib as any;

//////////// Sizing Utility functions

export const sizing: TUtilityFunction<TSizing> = classnamesLib as any;

//////////// SVG Utility functions

export const svg: TUtilityFunction<TSVG> = classnamesLib as any;

//////////// Transforms Utility functions

export const transforms: TUtilityFunction<TTransforms> = classnamesLib as any;

//////////// Typography Utility functions

export const typography: TUtilityFunction<TTypography> = classnamesLib as any;

export const TW = {
screenReaders,
backgroundAttachment,
Expand Down Expand Up @@ -8508,6 +8582,29 @@ export const TW = {
textUnderlineOffset,
};

export const CN = {
accessibility,
backgrounds,
borders,
tables,
effects,
transitionsAndAnimations,
filters,
flexBox,
grid,
spacing,
interactivity,
layout,
sizing,
svg,
transforms,
typography,
};

export const mainCategoriesUtilityFunctions = CN;

export const subCategoriesUtilityFunctions = TW;

export type TTailwindString = 'TAILWIND_STRING';

export type TArg = null | undefined | TTailwindString;
Expand Down

0 comments on commit b5c4d15

Please sign in to comment.