Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: add missing main categories utility functions #439

Merged
merged 1 commit into from
Aug 15, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading