[REFACTOR] Twenty UI multi barrel (#11301)
# Introduction closes https://github.com/twentyhq/core-team-issues/issues/591 Same than for `twenty-shared` made in https://github.com/twentyhq/twenty/pull/11083. ## TODO - [x] Manual migrate twenty-website twenty-ui imports ## What's next: - Generate barrel and migration script factorization within own package + tests - Refactoring using preconstruct ? TimeBox - Lint circular dependencies - Lint import from barrel and forbid them ### Preconstruct We need custom rollup plugins addition, but preconstruct does not expose its rollup configuration. It might be possible to handle this using the babel overrides. But was a big tunnel. We could give it a try afterwards ! ( allowing cjs interop and stuff like that ) Stuck to vite lib app Closed related PRs: - https://github.com/twentyhq/twenty/pull/11294 - https://github.com/twentyhq/twenty/pull/11203
@ -1,14 +1,9 @@
|
||||
import { useEffect } from 'react';
|
||||
import { ThemeProvider } from '@emotion/react';
|
||||
import { Preview } from '@storybook/react';
|
||||
import { THEME_DARK, THEME_LIGHT, ThemeContextProvider } from '@ui/theme';
|
||||
import { useEffect } from 'react';
|
||||
import { useDarkMode } from 'storybook-dark-mode';
|
||||
|
||||
import {
|
||||
THEME_DARK,
|
||||
THEME_LIGHT,
|
||||
ThemeContextProvider,
|
||||
} from '../src/theme/index';
|
||||
|
||||
const preview: Preview = {
|
||||
decorators: [
|
||||
(Story) => {
|
||||
|
||||
@ -21,7 +21,7 @@ const jestConfig: JestConfigWithTsJest = {
|
||||
],
|
||||
},
|
||||
moduleNameMapper: {
|
||||
'\\.(jpg|jpeg|png|gif|webp|svg|svg\\?react)$':
|
||||
'\\.(jpg|jpeg|png|gif|webp|svg|svg)$':
|
||||
'<rootDir>/__mocks__/imageMock.js',
|
||||
...pathsToModuleNameMapper(tsConfig.compilerOptions.paths, {
|
||||
prefix: '<rootDir>/',
|
||||
|
||||
@ -1,19 +1,124 @@
|
||||
{
|
||||
"name": "twenty-ui",
|
||||
"version": "0.51.0-canary",
|
||||
"main": "dist/index.cjs",
|
||||
"module": "dist/index.mjs",
|
||||
"style": "./dist/style.css",
|
||||
"type": "module",
|
||||
"main": "./src/index.ts",
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./dist/index.d.ts",
|
||||
"import": "./dist/index.js",
|
||||
"require": "./dist/index.cjs"
|
||||
}
|
||||
"devDependencies": {
|
||||
"@babel/preset-env": "^7.26.9",
|
||||
"@babel/preset-react": "^7.26.3",
|
||||
"@prettier/sync": "^0.5.2",
|
||||
"@swc/plugin-emotion": "4.0.2",
|
||||
"@types/babel__preset-env": "^7",
|
||||
"@types/react": "^18.2.39",
|
||||
"@types/react-dom": "^18.2.15",
|
||||
"@wyw-in-js/babel-preset": "^0.6.0",
|
||||
"babel-plugin-inline-import": "^3.0.0",
|
||||
"babel-plugin-inline-react-svg": "^2.0.2",
|
||||
"babel-plugin-module-resolver": "^5.0.2",
|
||||
"cpx": "^1.5.0",
|
||||
"tsx": "^4.19.3",
|
||||
"vite-plugin-svgr": "^4.3.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"twenty-shared": "workspace:*"
|
||||
"@emotion/is-prop-valid": "^1.3.0",
|
||||
"@emotion/react": "^11.11.1",
|
||||
"@emotion/styled": "^11.11.0",
|
||||
"@linaria/react": "^6.2.1",
|
||||
"@monaco-editor/react": "^4.6.0",
|
||||
"@sniptt/guards": "^0.2.0",
|
||||
"@tabler/icons-react": "^3.31.0",
|
||||
"date-fns": "^2.30.0",
|
||||
"framer-motion": "^11.18.0",
|
||||
"glob": "^11.0.1",
|
||||
"hex-rgb": "^5.0.0",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"react-responsive": "^9.0.2",
|
||||
"react-router-dom": "^6.4.4",
|
||||
"react-tooltip": "^5.13.1",
|
||||
"recoil": "^0.7.7",
|
||||
"twenty-shared": "workspace:*",
|
||||
"zod": "3.23.8"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "npx vite build"
|
||||
},
|
||||
"files": [
|
||||
"dist",
|
||||
"assets",
|
||||
"accessibility",
|
||||
"components",
|
||||
"display",
|
||||
"feedback",
|
||||
"input",
|
||||
"json-visualizer",
|
||||
"layout",
|
||||
"navigation",
|
||||
"testing",
|
||||
"theme",
|
||||
"utilities"
|
||||
],
|
||||
"sideEffects": [
|
||||
"**/*.css"
|
||||
],
|
||||
"exports": {
|
||||
"./style.css": "./dist/style.css",
|
||||
"./accessibility": {
|
||||
"types": "./dist/accessibility/index.d.ts",
|
||||
"import": "./dist/accessibility.mjs",
|
||||
"require": "./dist/accessibility.cjs"
|
||||
},
|
||||
"./components": {
|
||||
"types": "./dist/components/index.d.ts",
|
||||
"import": "./dist/components.mjs",
|
||||
"require": "./dist/components.cjs"
|
||||
},
|
||||
"./display": {
|
||||
"types": "./dist/display/index.d.ts",
|
||||
"import": "./dist/display.mjs",
|
||||
"require": "./dist/display.cjs"
|
||||
},
|
||||
"./feedback": {
|
||||
"types": "./dist/feedback/index.d.ts",
|
||||
"import": "./dist/feedback.mjs",
|
||||
"require": "./dist/feedback.cjs"
|
||||
},
|
||||
"./input": {
|
||||
"types": "./dist/input/index.d.ts",
|
||||
"import": "./dist/input.mjs",
|
||||
"require": "./dist/input.cjs"
|
||||
},
|
||||
"./json-visualizer": {
|
||||
"types": "./dist/json-visualizer/index.d.ts",
|
||||
"import": "./dist/json-visualizer.mjs",
|
||||
"require": "./dist/json-visualizer.cjs"
|
||||
},
|
||||
"./layout": {
|
||||
"types": "./dist/layout/index.d.ts",
|
||||
"import": "./dist/layout.mjs",
|
||||
"require": "./dist/layout.cjs"
|
||||
},
|
||||
"./navigation": {
|
||||
"types": "./dist/navigation/index.d.ts",
|
||||
"import": "./dist/navigation.mjs",
|
||||
"require": "./dist/navigation.cjs"
|
||||
},
|
||||
"./testing": {
|
||||
"types": "./dist/testing/index.d.ts",
|
||||
"import": "./dist/testing.mjs",
|
||||
"require": "./dist/testing.cjs"
|
||||
},
|
||||
"./theme": {
|
||||
"types": "./dist/theme/index.d.ts",
|
||||
"import": "./dist/theme.mjs",
|
||||
"require": "./dist/theme.cjs"
|
||||
},
|
||||
"./utilities": {
|
||||
"types": "./dist/utilities/index.d.ts",
|
||||
"import": "./dist/utilities.mjs",
|
||||
"require": "./dist/utilities.cjs"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,18 +3,60 @@
|
||||
"$schema": "../../node_modules/nx/schemas/project-schema.json",
|
||||
"sourceRoot": "packages/twenty-ui/src",
|
||||
"projectType": "library",
|
||||
"tags": ["scope:frontend"],
|
||||
"tags": [
|
||||
"scope:frontend"
|
||||
],
|
||||
"targets": {
|
||||
"build": {
|
||||
"dependsOn": ["^build", "generateBarrels"]
|
||||
"dependsOn": [
|
||||
"^build",
|
||||
"generateBarrels"
|
||||
],
|
||||
"outputs": [
|
||||
"{projectRoot}/dist",
|
||||
"{projectRoot}/accessibility/package.json",
|
||||
"{projectRoot}/accessibility/dist",
|
||||
"{projectRoot}/components/package.json",
|
||||
"{projectRoot}/components/dist",
|
||||
"{projectRoot}/display/package.json",
|
||||
"{projectRoot}/display/dist",
|
||||
"{projectRoot}/feedback/package.json",
|
||||
"{projectRoot}/feedback/dist",
|
||||
"{projectRoot}/input/package.json",
|
||||
"{projectRoot}/input/dist",
|
||||
"{projectRoot}/json-visualizer/package.json",
|
||||
"{projectRoot}/json-visualizer/dist",
|
||||
"{projectRoot}/layout/package.json",
|
||||
"{projectRoot}/layout/dist",
|
||||
"{projectRoot}/navigation/package.json",
|
||||
"{projectRoot}/navigation/dist",
|
||||
"{projectRoot}/testing/package.json",
|
||||
"{projectRoot}/testing/dist",
|
||||
"{projectRoot}/theme/package.json",
|
||||
"{projectRoot}/theme/dist",
|
||||
"{projectRoot}/utilities/package.json",
|
||||
"{projectRoot}/utilities/dist"
|
||||
]
|
||||
},
|
||||
"generateBarrels": {
|
||||
"executor": "nx:run-commands",
|
||||
"cache": true,
|
||||
"inputs": ["production", "{projectRoot}/scripts/generateBarrels.js"],
|
||||
"outputs": ["{projectRoot}/src/index.ts", "{projectRoot}/src/*/index.ts"],
|
||||
"inputs": [
|
||||
"production",
|
||||
"{projectRoot}/scripts/generateBarrels.ts"
|
||||
],
|
||||
"outputs": [
|
||||
"{projectRoot}/src/**/*/index.ts",
|
||||
"{projectRoot}/package.json"
|
||||
],
|
||||
"options": {
|
||||
"command": "node {projectRoot}/scripts/generateBarrels.js"
|
||||
"command": "tsx {projectRoot}/scripts/generateBarrels.ts"
|
||||
}
|
||||
},
|
||||
"clean": {
|
||||
"executor": "nx:run-commands",
|
||||
"options": {
|
||||
"command": "rimraf {projectRoot}/dist"
|
||||
}
|
||||
},
|
||||
"lint": {
|
||||
@ -44,7 +86,9 @@
|
||||
}
|
||||
},
|
||||
"storybook:serve:dev": {
|
||||
"options": { "port": 6007 }
|
||||
"options": {
|
||||
"port": 6007
|
||||
}
|
||||
},
|
||||
"storybook:serve:static": {
|
||||
"options": {
|
||||
@ -57,10 +101,14 @@
|
||||
},
|
||||
"storybook:coverage": {},
|
||||
"storybook:test": {
|
||||
"options": { "port": 6007 }
|
||||
"options": {
|
||||
"port": 6007
|
||||
}
|
||||
},
|
||||
"storybook:serve-and-test:static": {
|
||||
"options": { "port": 6007 }
|
||||
"options": {
|
||||
"port": 6007
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,105 +0,0 @@
|
||||
import * as fs from 'fs';
|
||||
import path from 'path';
|
||||
import slash from 'slash';
|
||||
|
||||
const extensions = ['.ts', '.tsx'];
|
||||
const excludedExtensions = [
|
||||
'.test.ts',
|
||||
'.test.tsx',
|
||||
'.spec.ts',
|
||||
'.spec.tsx',
|
||||
'.stories.ts',
|
||||
'.stories.tsx',
|
||||
];
|
||||
const excludedDirectories = [
|
||||
'__tests__',
|
||||
'__mocks__',
|
||||
'__stories__',
|
||||
'internal',
|
||||
];
|
||||
const srcPath = path.resolve('packages/twenty-ui/src');
|
||||
|
||||
/**
|
||||
* @param {string} directoryPath
|
||||
* @returns {string[]}
|
||||
*/
|
||||
const getSubDirectoryPaths = (directoryPath) =>
|
||||
fs
|
||||
.readdirSync(directoryPath)
|
||||
.filter(
|
||||
(fileOrDirectoryName) =>
|
||||
!excludedDirectories.includes(fileOrDirectoryName) &&
|
||||
fs
|
||||
.statSync(path.join(directoryPath, fileOrDirectoryName))
|
||||
.isDirectory(),
|
||||
)
|
||||
.map((subDirectoryName) => path.join(directoryPath, subDirectoryName));
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {string} directoryPath
|
||||
* @returns {string[]}
|
||||
*/
|
||||
const getDirectoryPathsRecursive = (directoryPath) => [
|
||||
directoryPath,
|
||||
...getSubDirectoryPaths(directoryPath).flatMap(getDirectoryPathsRecursive),
|
||||
];
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {string} directoryPath
|
||||
* @returns {string[]}
|
||||
*/
|
||||
const getFilesPaths = (directoryPath) =>
|
||||
fs
|
||||
.readdirSync(directoryPath)
|
||||
.filter(
|
||||
(filePath) =>
|
||||
fs.statSync(path.join(directoryPath, filePath)).isFile() &&
|
||||
!filePath.startsWith('index.') &&
|
||||
extensions.some((extension) => filePath.endsWith(extension)) &&
|
||||
excludedExtensions.every(
|
||||
(excludedExtension) => !filePath.endsWith(excludedExtension),
|
||||
),
|
||||
);
|
||||
|
||||
const moduleDirectories = getSubDirectoryPaths(srcPath);
|
||||
|
||||
moduleDirectories.forEach((moduleDirectoryPath) => {
|
||||
const directoryPaths = getDirectoryPathsRecursive(moduleDirectoryPath);
|
||||
|
||||
const moduleExports = directoryPaths
|
||||
.flatMap((directoryPath) => {
|
||||
const directFilesPaths = getFilesPaths(directoryPath);
|
||||
|
||||
return directFilesPaths.map((filePath) => {
|
||||
const fileName = filePath.split('.').slice(0, -1).join('.');
|
||||
return `export * from './${slash(path.relative(
|
||||
moduleDirectoryPath,
|
||||
path.join(directoryPath, fileName),
|
||||
))}';`;
|
||||
});
|
||||
})
|
||||
.sort((a, b) => a.localeCompare(b))
|
||||
.join('\n');
|
||||
|
||||
fs.writeFileSync(
|
||||
path.join(moduleDirectoryPath, 'index.ts'),
|
||||
`${moduleExports}\n`,
|
||||
'utf-8',
|
||||
);
|
||||
});
|
||||
|
||||
const mainBarrelExports = moduleDirectories
|
||||
.map(
|
||||
(moduleDirectoryPath) =>
|
||||
`export * from './${slash(path.relative(srcPath, moduleDirectoryPath))}';`,
|
||||
)
|
||||
.sort((a, b) => a.localeCompare(b))
|
||||
.join('\n');
|
||||
|
||||
fs.writeFileSync(
|
||||
path.join(srcPath, 'index.ts'),
|
||||
`${mainBarrelExports}\n`,
|
||||
'utf-8',
|
||||
);
|
||||
484
packages/twenty-ui/scripts/generateBarrels.ts
Normal file
@ -0,0 +1,484 @@
|
||||
import prettier from '@prettier/sync';
|
||||
import * as fs from 'fs';
|
||||
import { globSync } from 'glob';
|
||||
import path from 'path';
|
||||
import { Options } from 'prettier';
|
||||
import slash from 'slash';
|
||||
import ts from 'typescript';
|
||||
|
||||
// TODO prastoin refactor this file in several one into its dedicated package and make it a TypeScript CLI
|
||||
|
||||
const INDEX_FILENAME = 'index';
|
||||
const PACKAGE_JSON_FILENAME = 'package.json';
|
||||
const NX_PROJECT_CONFIGURATION_FILENAME = 'project.json';
|
||||
const PACKAGE_PATH = path.resolve('packages/twenty-ui');
|
||||
const SRC_PATH = path.resolve(`${PACKAGE_PATH}/src`);
|
||||
const PACKAGE_JSON_PATH = path.join(PACKAGE_PATH, PACKAGE_JSON_FILENAME);
|
||||
const NX_PROJECT_CONFIGURATION_PATH = path.join(
|
||||
PACKAGE_PATH,
|
||||
NX_PROJECT_CONFIGURATION_FILENAME,
|
||||
);
|
||||
|
||||
const prettierConfigFile = prettier.resolveConfigFile();
|
||||
if (prettierConfigFile == null) {
|
||||
throw new Error('Prettier config file not found');
|
||||
}
|
||||
const prettierConfiguration = prettier.resolveConfig(prettierConfigFile);
|
||||
const prettierFormat = (str: string, parser: Options['parser']) =>
|
||||
prettier.format(str, {
|
||||
...prettierConfiguration,
|
||||
parser,
|
||||
});
|
||||
type createTypeScriptFileArgs = {
|
||||
path: string;
|
||||
content: string;
|
||||
filename: string;
|
||||
};
|
||||
const createTypeScriptFile = ({
|
||||
content,
|
||||
path: filePath,
|
||||
filename,
|
||||
}: createTypeScriptFileArgs) => {
|
||||
const header = `
|
||||
/*
|
||||
* _____ _
|
||||
*|_ _|_ _____ _ __ | |_ _ _
|
||||
* | | \\ \\ /\\ / / _ \\ '_ \\| __| | | | Auto-generated file
|
||||
* | | \\ V V / __/ | | | |_| |_| | Any edits to this will be overridden
|
||||
* |_| \\_/\\_/ \\___|_| |_|\\__|\\__, |
|
||||
* |___/
|
||||
*/
|
||||
`;
|
||||
const formattedContent = prettierFormat(
|
||||
`${header}\n${content}\n`,
|
||||
'typescript',
|
||||
);
|
||||
fs.writeFileSync(
|
||||
path.join(filePath, `${filename}.ts`),
|
||||
formattedContent,
|
||||
'utf-8',
|
||||
);
|
||||
};
|
||||
|
||||
const getLastPathFolder = (pathStr: string) => path.basename(pathStr);
|
||||
|
||||
const getSubDirectoryPaths = (directoryPath: string): string[] => {
|
||||
const pattern = slash(path.join(directoryPath, '*/'));
|
||||
return globSync(pattern, {
|
||||
ignore: [...EXCLUDED_DIRECTORIES],
|
||||
cwd: SRC_PATH,
|
||||
nodir: false,
|
||||
maxDepth: 1,
|
||||
}).sort((a, b) => a.localeCompare(b));
|
||||
};
|
||||
|
||||
const partitionFileExportsByType = (declarations: DeclarationOccurence[]) => {
|
||||
return declarations.reduce<{
|
||||
typeAndInterfaceDeclarations: DeclarationOccurence[];
|
||||
otherDeclarations: DeclarationOccurence[];
|
||||
}>(
|
||||
(acc, { kind, name }) => {
|
||||
if (kind === 'type' || kind === 'interface') {
|
||||
return {
|
||||
...acc,
|
||||
typeAndInterfaceDeclarations: [
|
||||
...acc.typeAndInterfaceDeclarations,
|
||||
{ kind, name },
|
||||
],
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
...acc,
|
||||
otherDeclarations: [...acc.otherDeclarations, { kind, name }],
|
||||
};
|
||||
},
|
||||
{
|
||||
typeAndInterfaceDeclarations: [],
|
||||
otherDeclarations: [],
|
||||
},
|
||||
);
|
||||
};
|
||||
|
||||
const generateModuleIndexFiles = (exportByBarrel: ExportByBarrel[]) => {
|
||||
return exportByBarrel.map<createTypeScriptFileArgs>(
|
||||
({ barrel: { moduleDirectory }, allFileExports }) => {
|
||||
const content = allFileExports
|
||||
.sort((a, b) => a.file.localeCompare(b.file))
|
||||
.map(({ exports, file }) => {
|
||||
const { otherDeclarations, typeAndInterfaceDeclarations } =
|
||||
partitionFileExportsByType(exports);
|
||||
|
||||
const fileWithoutExtension = path.parse(file).name;
|
||||
const pathToImport = slash(
|
||||
path.relative(
|
||||
moduleDirectory,
|
||||
path.join(path.dirname(file), fileWithoutExtension),
|
||||
),
|
||||
);
|
||||
const mapDeclarationNameAndJoin = (
|
||||
declarations: DeclarationOccurence[],
|
||||
) => declarations.map(({ name }) => name).join(', ');
|
||||
|
||||
const typeExport =
|
||||
typeAndInterfaceDeclarations.length > 0
|
||||
? `export type { ${mapDeclarationNameAndJoin(typeAndInterfaceDeclarations)} } from "./${pathToImport}"`
|
||||
: '';
|
||||
const othersExport =
|
||||
otherDeclarations.length > 0
|
||||
? `export { ${mapDeclarationNameAndJoin(otherDeclarations)} } from "./${pathToImport}"`
|
||||
: '';
|
||||
|
||||
return [typeExport, othersExport]
|
||||
.filter((el) => el !== '')
|
||||
.join('\n');
|
||||
})
|
||||
.join('\n');
|
||||
|
||||
return {
|
||||
content,
|
||||
path: moduleDirectory,
|
||||
filename: INDEX_FILENAME,
|
||||
};
|
||||
},
|
||||
);
|
||||
};
|
||||
|
||||
type JsonUpdate = Record<string, any>;
|
||||
type WriteInJsonFileArgs = {
|
||||
content: JsonUpdate;
|
||||
file: string;
|
||||
};
|
||||
const updateJsonFile = ({ content, file }: WriteInJsonFileArgs) => {
|
||||
const updatedJsonFile = JSON.stringify(content);
|
||||
const formattedContent = prettierFormat(updatedJsonFile, 'json-stringify');
|
||||
fs.writeFileSync(file, formattedContent, 'utf-8');
|
||||
};
|
||||
|
||||
const writeInPackageJson = (update: JsonUpdate) => {
|
||||
const rawJsonFile = fs.readFileSync(PACKAGE_JSON_PATH, 'utf-8');
|
||||
const initialJsonFile = JSON.parse(rawJsonFile);
|
||||
|
||||
updateJsonFile({
|
||||
file: PACKAGE_JSON_PATH,
|
||||
content: {
|
||||
...initialJsonFile,
|
||||
...update,
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
const updateNxProjectConfigurationBuildOutputs = (outputs: JsonUpdate) => {
|
||||
const rawJsonFile = fs.readFileSync(NX_PROJECT_CONFIGURATION_PATH, 'utf-8');
|
||||
const initialJsonFile = JSON.parse(rawJsonFile);
|
||||
|
||||
updateJsonFile({
|
||||
file: NX_PROJECT_CONFIGURATION_PATH,
|
||||
content: {
|
||||
...initialJsonFile,
|
||||
targets: {
|
||||
...initialJsonFile.targets,
|
||||
build: {
|
||||
...initialJsonFile.targets.build,
|
||||
outputs,
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
type ExportOccurence = {
|
||||
types: string;
|
||||
import: string;
|
||||
require: string;
|
||||
};
|
||||
type ExportsConfig = Record<string, ExportOccurence | string>;
|
||||
const generateModulePackageExports = (moduleDirectories: string[]) => {
|
||||
return moduleDirectories.reduce<ExportsConfig>(
|
||||
(acc, moduleDirectory) => {
|
||||
const moduleName = getLastPathFolder(moduleDirectory);
|
||||
if (moduleName === undefined) {
|
||||
throw new Error(
|
||||
`Should never occur, moduleName is undefined ${moduleDirectory}`,
|
||||
);
|
||||
}
|
||||
|
||||
return {
|
||||
...acc,
|
||||
[`./${moduleName}`]: {
|
||||
types: `./dist/${moduleName}/index.d.ts`,
|
||||
import: `./dist/${moduleName}.mjs`,
|
||||
require: `./dist/${moduleName}.cjs`,
|
||||
},
|
||||
};
|
||||
},
|
||||
{
|
||||
'./style.css': './dist/style.css',
|
||||
},
|
||||
);
|
||||
};
|
||||
|
||||
const computePackageJsonFilesAndExportsConfig = (
|
||||
moduleDirectories: string[],
|
||||
) => {
|
||||
const entrypoints = moduleDirectories.map(getLastPathFolder);
|
||||
const exports = generateModulePackageExports(moduleDirectories);
|
||||
return {
|
||||
exports,
|
||||
files: ['dist', 'assets', ...entrypoints],
|
||||
};
|
||||
};
|
||||
|
||||
const computeProjectNxBuildOutputsPath = (moduleDirectories: string[]) => {
|
||||
const dynamicOutputsPath = moduleDirectories
|
||||
.map(getLastPathFolder)
|
||||
.flatMap((barrelName) =>
|
||||
['package.json', 'dist'].map(
|
||||
(subPath) => `{projectRoot}/${barrelName}/${subPath}`,
|
||||
),
|
||||
);
|
||||
|
||||
return ['{projectRoot}/dist', ...dynamicOutputsPath];
|
||||
};
|
||||
|
||||
const EXCLUDED_EXTENSIONS = [
|
||||
'**/*.test.ts',
|
||||
'**/*.test.tsx',
|
||||
'**/*.spec.ts',
|
||||
'**/*.spec.tsx',
|
||||
'**/*.stories.ts',
|
||||
'**/*.stories.tsx',
|
||||
] as const;
|
||||
const EXCLUDED_DIRECTORIES = [
|
||||
'**/__tests__/**',
|
||||
'**/__mocks__/**',
|
||||
'**/__stories__/**',
|
||||
'**/internal/**',
|
||||
'**/assets/**',
|
||||
] as const;
|
||||
function getTypeScriptFiles(
|
||||
directoryPath: string,
|
||||
includeIndex: boolean = false,
|
||||
): string[] {
|
||||
const pattern = slash(path.join(directoryPath, '**', '*.{ts,tsx}'));
|
||||
const files = globSync(pattern, {
|
||||
cwd: SRC_PATH,
|
||||
nodir: true,
|
||||
ignore: [...EXCLUDED_EXTENSIONS, ...EXCLUDED_DIRECTORIES],
|
||||
});
|
||||
|
||||
return files.filter(
|
||||
(file) =>
|
||||
!file.endsWith('.d.ts') &&
|
||||
(includeIndex ? true : !file.endsWith('index.ts')),
|
||||
);
|
||||
}
|
||||
|
||||
const getKind = (
|
||||
node: ts.VariableStatement,
|
||||
): Extract<ExportKind, 'const' | 'let' | 'var'> => {
|
||||
const isConst = (node.declarationList.flags & ts.NodeFlags.Const) !== 0;
|
||||
if (isConst) {
|
||||
return 'const';
|
||||
}
|
||||
|
||||
const isLet = (node.declarationList.flags & ts.NodeFlags.Let) !== 0;
|
||||
if (isLet) {
|
||||
return 'let';
|
||||
}
|
||||
|
||||
return 'var';
|
||||
};
|
||||
|
||||
function extractExportsFromSourceFile(sourceFile: ts.SourceFile) {
|
||||
const exports: DeclarationOccurence[] = [];
|
||||
|
||||
function visit(node: ts.Node) {
|
||||
if (!ts.canHaveModifiers(node)) {
|
||||
return ts.forEachChild(node, visit);
|
||||
}
|
||||
const modifiers = ts.getModifiers(node);
|
||||
const isExport = modifiers?.some(
|
||||
(mod) => mod.kind === ts.SyntaxKind.ExportKeyword,
|
||||
);
|
||||
|
||||
if (!isExport && !ts.isExportDeclaration(node)) {
|
||||
return ts.forEachChild(node, visit);
|
||||
}
|
||||
|
||||
switch (true) {
|
||||
case ts.isTypeAliasDeclaration(node):
|
||||
exports.push({
|
||||
kind: 'type',
|
||||
name: node.name.text,
|
||||
});
|
||||
break;
|
||||
|
||||
case ts.isInterfaceDeclaration(node):
|
||||
exports.push({
|
||||
kind: 'interface',
|
||||
name: node.name.text,
|
||||
});
|
||||
break;
|
||||
|
||||
case ts.isEnumDeclaration(node):
|
||||
exports.push({
|
||||
kind: 'enum',
|
||||
name: node.name.text,
|
||||
});
|
||||
break;
|
||||
|
||||
case ts.isFunctionDeclaration(node) && node.name !== undefined:
|
||||
exports.push({
|
||||
kind: 'function',
|
||||
name: node.name.text,
|
||||
});
|
||||
break;
|
||||
|
||||
case ts.isVariableStatement(node):
|
||||
node.declarationList.declarations.forEach((decl) => {
|
||||
const kind = getKind(node);
|
||||
|
||||
if (ts.isIdentifier(decl.name)) {
|
||||
exports.push({
|
||||
kind,
|
||||
name: decl.name.text,
|
||||
});
|
||||
} else if (ts.isObjectBindingPattern(decl.name)) {
|
||||
decl.name.elements.forEach((element) => {
|
||||
if (
|
||||
!ts.isBindingElement(element) ||
|
||||
!ts.isIdentifier(element.name)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
exports.push({
|
||||
kind,
|
||||
name: element.name.text,
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
break;
|
||||
|
||||
case ts.isClassDeclaration(node) && node.name !== undefined:
|
||||
exports.push({
|
||||
kind: 'class',
|
||||
name: node.name.text,
|
||||
});
|
||||
break;
|
||||
|
||||
case ts.isExportDeclaration(node):
|
||||
if (node.exportClause && ts.isNamedExports(node.exportClause)) {
|
||||
node.exportClause.elements.forEach((element) => {
|
||||
const exportName = element.name.text;
|
||||
|
||||
// Check both the declaration and the individual specifier for type-only exports
|
||||
const isTypeExport =
|
||||
node.isTypeOnly || ts.isTypeOnlyExportDeclaration(node);
|
||||
if (isTypeExport) {
|
||||
// should handle kind
|
||||
exports.push({
|
||||
kind: 'type',
|
||||
name: exportName,
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
exports.push({
|
||||
kind: 'const',
|
||||
name: exportName,
|
||||
});
|
||||
});
|
||||
}
|
||||
break;
|
||||
}
|
||||
return ts.forEachChild(node, visit);
|
||||
}
|
||||
|
||||
visit(sourceFile);
|
||||
return exports;
|
||||
}
|
||||
|
||||
type ExportKind =
|
||||
| 'type'
|
||||
| 'interface'
|
||||
| 'enum'
|
||||
| 'function'
|
||||
| 'const'
|
||||
| 'let'
|
||||
| 'var'
|
||||
| 'class';
|
||||
type DeclarationOccurence = { kind: ExportKind; name: string };
|
||||
type FileExports = Array<{
|
||||
file: string;
|
||||
exports: DeclarationOccurence[];
|
||||
}>;
|
||||
|
||||
function findAllExports(directoryPath: string): FileExports {
|
||||
const results: FileExports = [];
|
||||
|
||||
const files = getTypeScriptFiles(directoryPath);
|
||||
|
||||
for (const file of files) {
|
||||
const sourceFile = ts.createSourceFile(
|
||||
file,
|
||||
fs.readFileSync(file, 'utf8'),
|
||||
ts.ScriptTarget.Latest,
|
||||
true,
|
||||
);
|
||||
|
||||
const exports = extractExportsFromSourceFile(sourceFile);
|
||||
if (exports.length > 0) {
|
||||
results.push({
|
||||
file,
|
||||
exports,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
type ExportByBarrel = {
|
||||
barrel: {
|
||||
moduleName: string;
|
||||
moduleDirectory: string;
|
||||
};
|
||||
allFileExports: FileExports;
|
||||
};
|
||||
const retrieveExportsByBarrel = (barrelDirectories: string[]) => {
|
||||
return barrelDirectories.map<ExportByBarrel>((moduleDirectory) => {
|
||||
const moduleExportsPerFile = findAllExports(moduleDirectory);
|
||||
const moduleName = getLastPathFolder(moduleDirectory);
|
||||
if (!moduleName) {
|
||||
throw new Error(
|
||||
`Should never occur moduleName not found ${moduleDirectory}`,
|
||||
);
|
||||
}
|
||||
|
||||
return {
|
||||
barrel: {
|
||||
moduleName,
|
||||
moduleDirectory,
|
||||
},
|
||||
allFileExports: moduleExportsPerFile,
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
const main = () => {
|
||||
const moduleDirectories = getSubDirectoryPaths(SRC_PATH);
|
||||
const exportsByBarrel = retrieveExportsByBarrel(moduleDirectories);
|
||||
const moduleIndexFiles = generateModuleIndexFiles(exportsByBarrel);
|
||||
const packageJsonConfig =
|
||||
computePackageJsonFilesAndExportsConfig(moduleDirectories);
|
||||
const nxBuildOutputsPath =
|
||||
computeProjectNxBuildOutputsPath(moduleDirectories);
|
||||
|
||||
updateNxProjectConfigurationBuildOutputs(nxBuildOutputsPath);
|
||||
writeInPackageJson(packageJsonConfig);
|
||||
moduleIndexFiles.forEach(createTypeScriptFile);
|
||||
};
|
||||
main();
|
||||
@ -0,0 +1,527 @@
|
||||
import prettier from '@prettier/sync';
|
||||
import * as fs from 'fs';
|
||||
import { globSync } from 'glob';
|
||||
import * as path from 'path';
|
||||
import ts from 'typescript';
|
||||
const prettierConfigFile = prettier.resolveConfigFile();
|
||||
if (prettierConfigFile == null) {
|
||||
throw new Error('Prettier config file not found');
|
||||
}
|
||||
const prettierConfiguration = prettier.resolveConfig(prettierConfigFile);
|
||||
|
||||
type DeclarationOccurence = { kind: string; name: string };
|
||||
type ExtractedExports = Array<{
|
||||
file: string;
|
||||
exports: DeclarationOccurence[];
|
||||
}>;
|
||||
type ExtractedImports = Array<{ file: string; imports: string[] }>;
|
||||
|
||||
type ExportPerModule = Array<{
|
||||
moduleName: string;
|
||||
exports: ExtractedExports[number]['exports'];
|
||||
}>;
|
||||
function findAllExports(directoryPath: string): ExtractedExports {
|
||||
const results: ExtractedExports = [];
|
||||
|
||||
const files = getTypeScriptFiles(directoryPath);
|
||||
|
||||
for (const file of files) {
|
||||
const sourceFile = ts.createSourceFile(
|
||||
file,
|
||||
fs.readFileSync(file, 'utf8'),
|
||||
ts.ScriptTarget.Latest,
|
||||
true,
|
||||
);
|
||||
|
||||
const exports = extractExports(sourceFile);
|
||||
if (exports.length > 0) {
|
||||
results.push({
|
||||
file,
|
||||
exports,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
function findAllImports(directoryPath: string): ExtractedImports {
|
||||
const results: ExtractedImports = [];
|
||||
|
||||
const includeIndex = true;
|
||||
const files = getTypeScriptFiles(directoryPath, includeIndex);
|
||||
|
||||
for (const file of files) {
|
||||
try {
|
||||
const sourceFile = ts.createSourceFile(
|
||||
file,
|
||||
fs.readFileSync(file, 'utf8'),
|
||||
ts.ScriptTarget.Latest,
|
||||
true,
|
||||
);
|
||||
|
||||
const imports = extractImports(sourceFile);
|
||||
if (imports.length > 0) {
|
||||
results.push({
|
||||
file,
|
||||
imports,
|
||||
});
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
console.log('Because of file: ', file);
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
function getTypeScriptFiles(
|
||||
directoryPath: string,
|
||||
includeIndex: boolean = false,
|
||||
): string[] {
|
||||
const pattern = path.join(directoryPath, '**/*.{ts,tsx,d.ts}');
|
||||
const files = globSync(pattern);
|
||||
|
||||
return files.filter(
|
||||
(file) =>
|
||||
(includeIndex ? true : !file.endsWith('.d.ts')) &&
|
||||
(includeIndex ? true : !file.endsWith('index.ts')),
|
||||
);
|
||||
}
|
||||
|
||||
const getKind = (node: ts.VariableStatement) => {
|
||||
const isConst = (node.declarationList.flags & ts.NodeFlags.Const) !== 0;
|
||||
if (isConst) {
|
||||
return 'const';
|
||||
}
|
||||
|
||||
const isLet = (node.declarationList.flags & ts.NodeFlags.Let) !== 0;
|
||||
if (isLet) {
|
||||
return 'let';
|
||||
}
|
||||
|
||||
return 'var';
|
||||
};
|
||||
|
||||
function extractExports(sourceFile: ts.SourceFile) {
|
||||
const exports: DeclarationOccurence[] = [];
|
||||
|
||||
function visit(node: ts.Node) {
|
||||
if (!ts.canHaveModifiers(node)) {
|
||||
return ts.forEachChild(node, visit);
|
||||
}
|
||||
const modifiers = ts.getModifiers(node);
|
||||
const isExport = modifiers?.some(
|
||||
(mod) => mod.kind === ts.SyntaxKind.ExportKeyword,
|
||||
);
|
||||
|
||||
if (!isExport && !ts.isExportDeclaration(node)) {
|
||||
return ts.forEachChild(node, visit);
|
||||
}
|
||||
|
||||
switch (true) {
|
||||
case ts.isTypeAliasDeclaration(node):
|
||||
exports.push({
|
||||
kind: 'type',
|
||||
name: node.name.text,
|
||||
});
|
||||
break;
|
||||
|
||||
case ts.isInterfaceDeclaration(node):
|
||||
exports.push({
|
||||
kind: 'interface',
|
||||
name: node.name.text,
|
||||
});
|
||||
break;
|
||||
|
||||
case ts.isEnumDeclaration(node):
|
||||
exports.push({
|
||||
kind: 'enum',
|
||||
name: node.name.text,
|
||||
});
|
||||
break;
|
||||
|
||||
case ts.isFunctionDeclaration(node) && node.name !== undefined:
|
||||
exports.push({
|
||||
kind: 'function',
|
||||
name: node.name.text,
|
||||
});
|
||||
break;
|
||||
|
||||
case ts.isVariableStatement(node):
|
||||
node.declarationList.declarations.forEach((decl) => {
|
||||
const kind = getKind(node);
|
||||
|
||||
if (ts.isIdentifier(decl.name)) {
|
||||
exports.push({
|
||||
kind,
|
||||
name: decl.name.text,
|
||||
});
|
||||
} else if (ts.isObjectBindingPattern(decl.name)) {
|
||||
decl.name.elements.forEach((element) => {
|
||||
if (
|
||||
!ts.isBindingElement(element) ||
|
||||
!ts.isIdentifier(element.name)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
exports.push({
|
||||
kind,
|
||||
name: element.name.text,
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
break;
|
||||
|
||||
case ts.isClassDeclaration(node) && node.name !== undefined:
|
||||
exports.push({
|
||||
kind: 'class',
|
||||
name: node.name.text,
|
||||
});
|
||||
break;
|
||||
|
||||
case ts.isExportDeclaration(node):
|
||||
if (node.exportClause && ts.isNamedExports(node.exportClause)) {
|
||||
node.exportClause.elements.forEach((element) => {
|
||||
const exportName = element.name.text;
|
||||
|
||||
// Check both the declaration and the individual specifier for type-only exports
|
||||
const isTypeExport =
|
||||
node.isTypeOnly || ts.isTypeOnlyExportDeclaration(node);
|
||||
if (isTypeExport) {
|
||||
// should handle kind
|
||||
exports.push({
|
||||
kind: 'type',
|
||||
name: exportName,
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
exports.push({
|
||||
kind: 'const',
|
||||
name: exportName,
|
||||
});
|
||||
});
|
||||
}
|
||||
break;
|
||||
}
|
||||
return ts.forEachChild(node, visit);
|
||||
}
|
||||
|
||||
visit(sourceFile);
|
||||
return exports;
|
||||
}
|
||||
function extractImports(sourceFile: ts.SourceFile): string[] {
|
||||
const imports: string[] = [];
|
||||
|
||||
function visit(node: ts.Node) {
|
||||
if (!ts.isImportDeclaration(node)) {
|
||||
return ts.forEachChild(node, visit);
|
||||
}
|
||||
|
||||
const modulePath = node.moduleSpecifier.getText(sourceFile);
|
||||
// Quite static
|
||||
if (modulePath !== `'twenty-ui'` && modulePath !== '"twenty-ui"') {
|
||||
return ts.forEachChild(node, visit);
|
||||
}
|
||||
|
||||
if (!node.importClause) {
|
||||
return ts.forEachChild(node, visit);
|
||||
}
|
||||
|
||||
if (!node.importClause.namedBindings) {
|
||||
return ts.forEachChild(node, visit);
|
||||
}
|
||||
|
||||
if (ts.isNamedImports(node.importClause.namedBindings)) {
|
||||
const namedImports = node.importClause.namedBindings.elements.map(
|
||||
(element) => {
|
||||
if (element.propertyName) {
|
||||
return `${element.propertyName.text} as ${element.name.text}`;
|
||||
}
|
||||
|
||||
return element.name.text;
|
||||
},
|
||||
);
|
||||
|
||||
// imports.push(`import { ${namedImports} } from ${modulePath}`);
|
||||
namedImports.forEach((namedImport) => {
|
||||
imports.push(namedImport);
|
||||
});
|
||||
}
|
||||
|
||||
ts.forEachChild(node, visit);
|
||||
}
|
||||
|
||||
visit(sourceFile);
|
||||
return imports;
|
||||
}
|
||||
|
||||
const getSubDirectoryPaths = (directoryPath: string): string[] =>
|
||||
fs
|
||||
.readdirSync(directoryPath)
|
||||
.filter((fileOrDirectoryName) => {
|
||||
const isDirectory = fs
|
||||
.statSync(path.join(directoryPath, fileOrDirectoryName))
|
||||
.isDirectory();
|
||||
return isDirectory;
|
||||
})
|
||||
.map((subDirectoryName) => path.join(directoryPath, subDirectoryName));
|
||||
|
||||
const retrievePackageExportsPerModule = (srcPath: string) => {
|
||||
const subdirectories = getSubDirectoryPaths(srcPath);
|
||||
return subdirectories.map<ExportPerModule[number]>((moduleDirectory) => {
|
||||
const moduleExportsPerFile = findAllExports(moduleDirectory);
|
||||
const moduleName = moduleDirectory.split('/').pop();
|
||||
if (!moduleName) {
|
||||
throw new Error(
|
||||
`Should never occurs moduleName not found ${moduleDirectory}`,
|
||||
);
|
||||
}
|
||||
|
||||
const flattenExports = Object.values(moduleExportsPerFile).flatMap(
|
||||
(arr) => arr.exports,
|
||||
);
|
||||
return {
|
||||
moduleName,
|
||||
exports: flattenExports,
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
type NewImport = { barrel: string; modules: string[] };
|
||||
type MappedResolution = {
|
||||
newImports: Record<string, NewImport>;
|
||||
file: string;
|
||||
};
|
||||
type MapSourceImportToBarrelArgs = {
|
||||
importsPerFile: ExtractedImports;
|
||||
exportsPerModule: ExportPerModule;
|
||||
};
|
||||
const mapSourceImportToBarrel = ({
|
||||
exportsPerModule,
|
||||
importsPerFile,
|
||||
}: MapSourceImportToBarrelArgs): MappedResolution[] => {
|
||||
const mappedResolution: MappedResolution[] = [];
|
||||
for (const fileImport of importsPerFile) {
|
||||
const { file, imports } = fileImport;
|
||||
let result: MappedResolution = {
|
||||
file,
|
||||
newImports: {},
|
||||
};
|
||||
|
||||
for (const importedDeclaration of imports) {
|
||||
const findResult = exportsPerModule.find(({ exports }) =>
|
||||
exports.some((el) => el.name === importedDeclaration),
|
||||
);
|
||||
|
||||
if (findResult === undefined) {
|
||||
throw new Error(
|
||||
`Should never occurs no barrel exports ${importedDeclaration}`,
|
||||
);
|
||||
}
|
||||
|
||||
const { moduleName } = findResult;
|
||||
if (result.newImports[moduleName]) {
|
||||
result.newImports[moduleName].modules.push(importedDeclaration);
|
||||
} else {
|
||||
result.newImports[moduleName] = {
|
||||
barrel: moduleName,
|
||||
modules: [importedDeclaration],
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
mappedResolution.push(result);
|
||||
}
|
||||
|
||||
return mappedResolution;
|
||||
};
|
||||
|
||||
const retrieveImportFromPackageInSource = (srcPath: string) => {
|
||||
return findAllImports(srcPath);
|
||||
};
|
||||
|
||||
/**
|
||||
* Inserts a new import statement at the top of a TypeScript file
|
||||
* @param filePath Path to the TypeScript file
|
||||
* @param importSpecifier The module to import from (e.g., 'twenty-ui/utils')
|
||||
* @param namedImports Array of named imports (e.g., ['useQuery', 'useMutation'])
|
||||
*/
|
||||
type InsertImportAtTopArgs = {
|
||||
filePath: string;
|
||||
importSpecifier: string;
|
||||
namedImports: string[];
|
||||
};
|
||||
function insertImportAtTop({
|
||||
filePath,
|
||||
importSpecifier,
|
||||
namedImports,
|
||||
}: InsertImportAtTopArgs): void {
|
||||
// Read the file content
|
||||
const sourceText = fs.readFileSync(filePath, 'utf8');
|
||||
|
||||
// Create a source file
|
||||
const sourceFile = ts.createSourceFile(
|
||||
filePath,
|
||||
sourceText,
|
||||
ts.ScriptTarget.Latest,
|
||||
true,
|
||||
);
|
||||
|
||||
// Build the new import statement
|
||||
let newImport = `import { ${namedImports.join(', ')} } from '${importSpecifier}';\n`;
|
||||
|
||||
// Find the position to insert the import
|
||||
let insertPos = 0;
|
||||
|
||||
// Case 1: File has imports - insert after the last import
|
||||
let lastImportEnd = 0;
|
||||
|
||||
ts.forEachChild(sourceFile, (node) => {
|
||||
if (
|
||||
ts.isImportDeclaration(node) ||
|
||||
ts.isImportEqualsDeclaration(node) ||
|
||||
(ts.isExpressionStatement(node) &&
|
||||
ts.isCallExpression(node.expression) &&
|
||||
node.expression.expression.kind === ts.SyntaxKind.ImportKeyword) // Overkill ?
|
||||
) {
|
||||
const end = node.getEnd();
|
||||
if (end > lastImportEnd) {
|
||||
lastImportEnd = end;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (lastImportEnd > 0) {
|
||||
// Insert after the last import with a newline
|
||||
insertPos = lastImportEnd;
|
||||
|
||||
// Check if there's already a newline after the last import
|
||||
if (sourceText[insertPos] !== '\n') {
|
||||
newImport = '\n' + newImport;
|
||||
}
|
||||
}
|
||||
|
||||
// Insert the new import
|
||||
const updatedSourceText =
|
||||
sourceText.substring(0, insertPos) +
|
||||
newImport +
|
||||
sourceText.substring(insertPos);
|
||||
|
||||
// Write back to file
|
||||
fs.writeFileSync(
|
||||
filePath,
|
||||
prettier.format(updatedSourceText, {
|
||||
parser: 'typescript',
|
||||
...prettierConfiguration,
|
||||
}),
|
||||
'utf8',
|
||||
);
|
||||
}
|
||||
|
||||
type RemoveSpecificImports = {
|
||||
filePath: string;
|
||||
moduleSpecifier: string;
|
||||
};
|
||||
function removeSpecificImports({
|
||||
filePath,
|
||||
moduleSpecifier,
|
||||
}: RemoveSpecificImports) {
|
||||
const sourceText = fs.readFileSync(filePath, 'utf8');
|
||||
|
||||
const sourceFile = ts.createSourceFile(
|
||||
filePath,
|
||||
sourceText,
|
||||
ts.ScriptTarget.Latest,
|
||||
true,
|
||||
);
|
||||
|
||||
type Replacement = {
|
||||
start: number;
|
||||
end: number;
|
||||
newText: string;
|
||||
};
|
||||
let replacement: Replacement | undefined;
|
||||
|
||||
function visit(node: ts.Node) {
|
||||
if (ts.isImportDeclaration(node)) {
|
||||
const importSource = node.moduleSpecifier
|
||||
.getText(sourceFile)
|
||||
.replace(/^['"]|['"]$/g, '');
|
||||
|
||||
if (importSource === moduleSpecifier && node.importClause) {
|
||||
replacement = {
|
||||
start: node.getFullStart(),
|
||||
end: node.getEnd(),
|
||||
newText: '',
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
ts.forEachChild(node, visit);
|
||||
}
|
||||
|
||||
visit(sourceFile);
|
||||
|
||||
let updatedSourceText = sourceText;
|
||||
|
||||
if (replacement) {
|
||||
const { end, newText, start } = replacement;
|
||||
updatedSourceText =
|
||||
updatedSourceText.substring(0, start) +
|
||||
newText +
|
||||
updatedSourceText.substring(end);
|
||||
fs.writeFileSync(
|
||||
filePath,
|
||||
prettier.format(updatedSourceText, {
|
||||
parser: 'typescript',
|
||||
...prettierConfiguration,
|
||||
}),
|
||||
'utf8',
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
const migrateImports = (mappedResolutions: MappedResolution[]) => {
|
||||
for (const { file, newImports } of mappedResolutions) {
|
||||
for (const { barrel, modules } of Object.values(newImports)) {
|
||||
// TODO could refactor to avoid double source file and read
|
||||
removeSpecificImports({
|
||||
filePath: file,
|
||||
moduleSpecifier: 'twenty-ui',
|
||||
});
|
||||
insertImportAtTop({
|
||||
filePath: file,
|
||||
importSpecifier: `twenty-ui/${barrel}`,
|
||||
namedImports: modules,
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const main = () => {
|
||||
const packageSrcPath = 'packages/twenty-ui/src';
|
||||
const exportsPerModule = retrievePackageExportsPerModule(packageSrcPath);
|
||||
|
||||
const packagesToMigrate = ['twenty-front'];
|
||||
for (const currPackage of packagesToMigrate) {
|
||||
console.log(`About to run over ${currPackage}`);
|
||||
const importsPerFile = retrieveImportFromPackageInSource(
|
||||
`packages/${currPackage}`,
|
||||
);
|
||||
|
||||
const mappedResolutions = mapSourceImportToBarrel({
|
||||
exportsPerModule,
|
||||
importsPerFile,
|
||||
});
|
||||
migrateImports(mappedResolutions);
|
||||
console.log(`${currPackage} migrated`);
|
||||
}
|
||||
console.log('SUCCESSFULLY COMPLETED');
|
||||
};
|
||||
main();
|
||||
@ -1,3 +1,12 @@
|
||||
export * from './components/VisibilityHidden';
|
||||
export * from './components/VisibilityHiddenInput';
|
||||
export * from './utils/visibility-hidden';
|
||||
/*
|
||||
* _____ _
|
||||
*|_ _|_ _____ _ __ | |_ _ _
|
||||
* | | \ \ /\ / / _ \ '_ \| __| | | | Auto-generated file
|
||||
* | | \ V V / __/ | | | |_| |_| | Any edits to this will be overridden
|
||||
* |_| \_/\_/ \___|_| |_|\__|\__, |
|
||||
* |___/
|
||||
*/
|
||||
|
||||
export { VisibilityHidden } from './components/VisibilityHidden';
|
||||
export { VisibilityHiddenInput } from './components/VisibilityHiddenInput';
|
||||
export { VISIBILITY_HIDDEN } from './utils/visibility-hidden';
|
||||
|
||||
|
Before Width: | Height: | Size: 536 B After Width: | Height: | Size: 536 B |
|
Before Width: | Height: | Size: 563 B After Width: | Height: | Size: 563 B |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 956 B After Width: | Height: | Size: 956 B |
|
Before Width: | Height: | Size: 850 B After Width: | Height: | Size: 850 B |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 974 B After Width: | Height: | Size: 974 B |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 908 B After Width: | Height: | Size: 908 B |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 419 B After Width: | Height: | Size: 419 B |
|
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 6.8 KiB |
|
Before Width: | Height: | Size: 355 B After Width: | Height: | Size: 355 B |
|
Before Width: | Height: | Size: 668 B After Width: | Height: | Size: 668 B |
|
Before Width: | Height: | Size: 663 B After Width: | Height: | Size: 663 B |
|
Before Width: | Height: | Size: 478 B After Width: | Height: | Size: 478 B |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
@ -1,7 +1,7 @@
|
||||
import { Meta, StoryObj } from '@storybook/react';
|
||||
|
||||
import { Pill } from '@ui/components/Pill/Pill';
|
||||
import { ComponentDecorator } from '../../../testing/decorators/ComponentDecorator';
|
||||
import { Pill } from '../Pill';
|
||||
|
||||
const meta: Meta<typeof Pill> = {
|
||||
title: 'UI/Display/Pill',
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { AvatarChipsLeftComponent } from '@ui/display/avatar-chip/components/AvatarChipLeftComponent';
|
||||
import { AvatarChipsCommonProps } from '@ui/display/avatar-chip/types/AvatarChipsCommonProps.type';
|
||||
import { Chip, ChipVariant } from '@ui/display/chip/components/Chip';
|
||||
import { AvatarChipsLeftComponent } from '@ui/components/avatar-chip/AvatarChipLeftComponent';
|
||||
import { AvatarChipsCommonProps } from '@ui/components/avatar-chip/types/AvatarChipsCommonProps.type';
|
||||
import { Chip, ChipVariant } from '@ui/components/chip/Chip';
|
||||
|
||||
export type AvatarChipProps = AvatarChipsCommonProps;
|
||||
export const AvatarChip = ({
|
||||
@ -3,7 +3,7 @@ import styled from '@emotion/styled';
|
||||
import { Avatar } from '@ui/display/avatar/components/Avatar';
|
||||
import { AvatarType } from '@ui/display/avatar/types/AvatarType';
|
||||
import { IconComponent } from '@ui/display/icon/types/IconComponent';
|
||||
import { Nullable } from 'vitest';
|
||||
import { Nullable } from '@ui/utilities';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
const StyledInvertedIconContainer = styled.div<{ backgroundColor: string }>`
|
||||
@ -1,8 +1,8 @@
|
||||
import { AvatarChipsLeftComponent } from '@ui/display/avatar-chip/components/AvatarChipLeftComponent';
|
||||
import { AvatarChipsCommonProps } from '@ui/display/avatar-chip/types/AvatarChipsCommonProps.type';
|
||||
import { AvatarChipVariant } from '@ui/display/avatar-chip/types/AvatarChipsVariant.type';
|
||||
import { ChipVariant } from '@ui/display/chip/components/Chip';
|
||||
import { LinkChip, LinkChipProps } from '@ui/display/chip/components/LinkChip';
|
||||
import { AvatarChipsLeftComponent } from '@ui/components/avatar-chip/AvatarChipLeftComponent';
|
||||
import { AvatarChipsCommonProps } from '@ui/components/avatar-chip/types/AvatarChipsCommonProps.type';
|
||||
import { AvatarChipVariant } from '@ui/components/avatar-chip/types/AvatarChipsVariant.type';
|
||||
import { ChipVariant } from '@ui/components/chip/Chip';
|
||||
import { LinkChip, LinkChipProps } from '@ui/components/chip/LinkChip';
|
||||
|
||||
export type LinkAvatarChipProps = Omit<AvatarChipsCommonProps, 'clickable'> & {
|
||||
to: string;
|
||||
@ -0,0 +1,8 @@
|
||||
import { AvatarChipsLeftComponentProps } from '@ui/components/avatar-chip/AvatarChipLeftComponent';
|
||||
import { ChipSize } from '@ui/components/chip/Chip';
|
||||
|
||||
export type AvatarChipsCommonProps = {
|
||||
size?: ChipSize;
|
||||
className?: string;
|
||||
maxWidth?: number;
|
||||
} & AvatarChipsLeftComponentProps;
|
||||
@ -5,7 +5,7 @@ import {
|
||||
ChipProps,
|
||||
ChipSize,
|
||||
ChipVariant,
|
||||
} from '@ui/display/chip/components/Chip';
|
||||
} from '@ui/components/chip/Chip';
|
||||
import { MouseEvent } from 'react';
|
||||
import { Link } from 'react-router-dom';
|
||||
|
||||
@ -1,12 +1,16 @@
|
||||
import { Meta, StoryObj } from '@storybook/react';
|
||||
import { AvatarChip } from '@ui/display/avatar-chip/components/AvatarChip';
|
||||
import { AvatarChip } from '@ui/components/avatar-chip/AvatarChip';
|
||||
|
||||
import { ComponentDecorator, RouterDecorator } from '@ui/testing';
|
||||
import {
|
||||
ComponentDecorator,
|
||||
RecoilRootDecorator,
|
||||
RouterDecorator,
|
||||
} from '@ui/testing';
|
||||
|
||||
const meta: Meta<typeof AvatarChip> = {
|
||||
title: 'UI/Display/Chip/AvatarChip',
|
||||
component: AvatarChip,
|
||||
decorators: [RouterDecorator, ComponentDecorator],
|
||||
decorators: [RouterDecorator, ComponentDecorator, RecoilRootDecorator],
|
||||
args: {
|
||||
name: 'Entity name',
|
||||
avatarType: 'squared',
|
||||
@ -1 +1,24 @@
|
||||
export * from './Pill/Pill';
|
||||
/*
|
||||
* _____ _
|
||||
*|_ _|_ _____ _ __ | |_ _ _
|
||||
* | | \ \ /\ / / _ \ '_ \| __| | | | Auto-generated file
|
||||
* | | \ V V / __/ | | | |_| |_| | Any edits to this will be overridden
|
||||
* |_| \_/\_/ \___|_| |_|\__|\__, |
|
||||
* |___/
|
||||
*/
|
||||
|
||||
export type { AvatarChipProps } from './avatar-chip/AvatarChip';
|
||||
export { AvatarChip } from './avatar-chip/AvatarChip';
|
||||
export type { AvatarChipsLeftComponentProps } from './avatar-chip/AvatarChipLeftComponent';
|
||||
export { AvatarChipsLeftComponent } from './avatar-chip/AvatarChipLeftComponent';
|
||||
export type { LinkAvatarChipProps } from './avatar-chip/LinkAvatarChip';
|
||||
export { LinkAvatarChip } from './avatar-chip/LinkAvatarChip';
|
||||
export type { AvatarChipsCommonProps } from './avatar-chip/types/AvatarChipsCommonProps.type';
|
||||
export { AvatarChipVariant } from './avatar-chip/types/AvatarChipsVariant.type';
|
||||
export type { ChipProps } from './chip/Chip';
|
||||
export { ChipSize, ChipAccent, ChipVariant, Chip } from './chip/Chip';
|
||||
export type { LinkChipProps } from './chip/LinkChip';
|
||||
export { LinkChip } from './chip/LinkChip';
|
||||
export { Pill } from './Pill/Pill';
|
||||
export type { TagColor } from './tag/Tag';
|
||||
export { Tag } from './tag/Tag';
|
||||
|
||||
@ -1,7 +1,9 @@
|
||||
import { styled } from '@linaria/react';
|
||||
import { useContext } from 'react';
|
||||
|
||||
import { IconComponent, OverflowingTextWithTooltip } from '@ui/display';
|
||||
// TODO prastoin We should forbid barrel import within the twenty-ui package
|
||||
import { IconComponent } from '@ui/display/icon/types/IconComponent';
|
||||
import { OverflowingTextWithTooltip } from '@ui/display/tooltip/OverflowingTextWithTooltip';
|
||||
import {
|
||||
BORDER_COMMON,
|
||||
THEME_COMMON,
|
||||
@ -1,8 +0,0 @@
|
||||
import { AvatarChipsLeftComponentProps } from '@ui/display/avatar-chip/components/AvatarChipLeftComponent';
|
||||
import { ChipSize } from '@ui/display/chip/components/Chip';
|
||||
|
||||
export type AvatarChipsCommonProps = {
|
||||
size?: ChipSize;
|
||||
className?: string;
|
||||
maxWidth?: number;
|
||||
} & AvatarChipsLeftComponentProps;
|
||||
@ -1,13 +1,17 @@
|
||||
import { Meta, StoryObj } from '@storybook/react';
|
||||
|
||||
import { AVATAR_URL_MOCK, ComponentDecorator } from '@ui/testing';
|
||||
import {
|
||||
AVATAR_URL_MOCK,
|
||||
ComponentDecorator,
|
||||
RecoilRootDecorator,
|
||||
} from '@ui/testing';
|
||||
|
||||
import { Avatar } from '../Avatar';
|
||||
|
||||
const meta: Meta<typeof Avatar> = {
|
||||
title: 'Modules/Users/Avatar',
|
||||
component: Avatar,
|
||||
decorators: [ComponentDecorator],
|
||||
decorators: [ComponentDecorator, RecoilRootDecorator],
|
||||
args: {
|
||||
avatarUrl: AVATAR_URL_MOCK,
|
||||
size: 'md',
|
||||
|
||||
@ -7,6 +7,7 @@ import {
|
||||
AVATAR_URL_MOCK,
|
||||
CatalogDecorator,
|
||||
ComponentDecorator,
|
||||
RecoilRootDecorator,
|
||||
} from '@ui/testing';
|
||||
|
||||
import { AvatarGroup, AvatarGroupProps } from '../AvatarGroup';
|
||||
@ -38,7 +39,7 @@ export default meta;
|
||||
type Story = StoryObj<typeof AvatarGroup>;
|
||||
|
||||
export const Default: Story = {
|
||||
decorators: [ComponentDecorator],
|
||||
decorators: [ComponentDecorator, RecoilRootDecorator],
|
||||
};
|
||||
|
||||
export const Catalog: Story = {
|
||||
@ -63,5 +64,5 @@ export const Catalog: Story = {
|
||||
],
|
||||
},
|
||||
},
|
||||
decorators: [CatalogDecorator],
|
||||
decorators: [CatalogDecorator, RecoilRootDecorator],
|
||||
};
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
import IconAddressBookRaw from '@assets/icons/address-book.svg?react';
|
||||
import { useTheme } from '@emotion/react';
|
||||
|
||||
import IconAddressBookRaw from '@ui/display/icon/assets/address-book.svg?react';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
|
||||
type IconAddressBookProps = Pick<
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { useTheme } from '@emotion/react';
|
||||
|
||||
import IconGmailRaw from '@ui/display/icon/assets/gmail.svg?react';
|
||||
import IconGmailRaw from '@assets/icons/gmail.svg?react';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
|
||||
type IconGmailProps = Pick<IconComponentProps, 'size'>;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { useTheme } from '@emotion/react';
|
||||
|
||||
import IconGoogleRaw from '@ui/display/icon/assets/google.svg?react';
|
||||
import IconGoogleRaw from '@assets/icons/google-calendar.svg?react';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
|
||||
type IconGoogleProps = Pick<IconComponentProps, 'size'>;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { useTheme } from '@emotion/react';
|
||||
|
||||
import IconGoogleCalendarRaw from '@ui/display/icon/assets/google-calendar.svg?react';
|
||||
import IconGoogleCalendarRaw from '@assets/icons/google-calendar.svg?react';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
|
||||
type IconGoogleCalendarProps = Pick<IconComponentProps, 'size'>;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { useTheme } from '@emotion/react';
|
||||
|
||||
import IconLockRaw from '@ui/display/icon/assets/lock.svg?react';
|
||||
import IconLockRaw from '@assets/icons/lock.svg?react';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
|
||||
type IconLockCustomProps = Pick<IconComponentProps, 'size'>;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { useTheme } from '@emotion/react';
|
||||
|
||||
import IconMicrosoftRaw from '../assets/microsoft.svg?react';
|
||||
import IconMicrosoftRaw from '@assets/icons/microsoft.svg?react';
|
||||
|
||||
interface IconMicrosoftProps {
|
||||
size?: number | string;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { useTheme } from '@emotion/react';
|
||||
|
||||
import IconMicrosoftCalendarRaw from '../assets/microsoft-calendar.svg?react';
|
||||
import IconMicrosoftCalendarRaw from '@assets/icons/microsoft-calendar.svg?react';
|
||||
|
||||
interface IconMicrosoftCalendarProps {
|
||||
size?: number | string;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { useTheme } from '@emotion/react';
|
||||
|
||||
import IconMicrosoftOutlookRaw from '../assets/microsoft-outlook.svg?react';
|
||||
import IconMicrosoftOutlookRaw from '@assets/icons/microsoft-outlook.svg?react';
|
||||
|
||||
interface IconMicrosoftOutlookProps {
|
||||
size?: number | string;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { useTheme } from '@emotion/react';
|
||||
|
||||
import IconRelationManyToOneRaw from '@ui/display/icon/assets/many-to-one.svg?react';
|
||||
import IconRelationManyToOneRaw from '@assets/icons/many-to-one.svg?react';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
|
||||
type IconRelationManyToOneProps = Pick<IconComponentProps, 'size' | 'stroke'>;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { useTheme } from '@emotion/react';
|
||||
|
||||
import IconTwentyStarRaw from '@ui/display/icon/assets/twenty-star.svg?react';
|
||||
import IconTwentyStarRaw from '@assets/icons/twenty-star.svg?react';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
|
||||
type IconTwentyStarProps = Pick<IconComponentProps, 'size' | 'stroke'>;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import IconTwentyStarFilledRaw from '@ui/display/icon/assets/twenty-star-filled.svg?react';
|
||||
import IconTwentyStarFilledRaw from '@assets/icons/twenty-star-filled.svg?react';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
import { THEME_COMMON } from '@ui/theme';
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import IllustrationIconArrayRaw from '@assets/icons/illustration-array.svg?react';
|
||||
import { useTheme } from '@emotion/react';
|
||||
import IllustrationIconArrayRaw from '@ui/display/icon/assets/illustration-array.svg?react';
|
||||
import { IllustrationIconWrapper } from '@ui/display/icon/components/IllustrationIconWrapper';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
type IllustrationIconArrayProps = Pick<IconComponentProps, 'size'>;
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import IllustrationIconCalendarEventRaw from '@assets/icons/illustration-calendar-event.svg?react';
|
||||
import { useTheme } from '@emotion/react';
|
||||
import IllustrationIconCalendarEventRaw from '@ui/display/icon/assets/illustration-calendar-event.svg?react';
|
||||
import { IllustrationIconWrapper } from '@ui/display/icon/components/IllustrationIconWrapper';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
type IllustrationIconCalendarEventProps = Pick<IconComponentProps, 'size'>;
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import IllustrationIconCalendarTimeRaw from '@assets/icons/illustration-calendar-time.svg?react';
|
||||
import { useTheme } from '@emotion/react';
|
||||
import IllustrationIconCalendarTimeRaw from '@ui/display/icon/assets/illustration-calendar-time.svg?react';
|
||||
import { IllustrationIconWrapper } from '@ui/display/icon/components/IllustrationIconWrapper';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { useTheme } from '@emotion/react';
|
||||
import { IllustrationIconWrapper } from '@ui/display/icon/components/IllustrationIconWrapper';
|
||||
|
||||
import IllustrationIconCurrencyRaw from '@ui/display/icon/assets/illustration-currency.svg?react';
|
||||
import IllustrationIconCurrencyRaw from '@assets/icons/illustration-currency.svg?react';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
|
||||
type IllustrationIconCurrencyProps = Pick<IconComponentProps, 'size'>;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { useTheme } from '@emotion/react';
|
||||
import { IllustrationIconWrapper } from '@ui/display/icon/components/IllustrationIconWrapper';
|
||||
|
||||
import IllustrationIconJsonRaw from '@ui/display/icon/assets/illustration-json.svg?react';
|
||||
import IllustrationIconJsonRaw from '@assets/icons/illustration-json.svg?react';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
|
||||
type IllustrationIconJsonProps = Pick<IconComponentProps, 'size'>;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { useTheme } from '@emotion/react';
|
||||
import { IllustrationIconWrapper } from '@ui/display/icon/components/IllustrationIconWrapper';
|
||||
|
||||
import IllustrationIconLinkRaw from '@ui/display/icon/assets/illustration-link.svg?react';
|
||||
import IllustrationIconLinkRaw from '@assets/icons/illustration-link.svg?react';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
|
||||
type IllustrationIconLinkProps = Pick<IconComponentProps, 'size'>;
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import IllustrationIconMailRaw from '@assets/icons/illustration-mail.svg?react';
|
||||
import { useTheme } from '@emotion/react';
|
||||
import IllustrationIconMailRaw from '@ui/display/icon/assets/illustration-mail.svg?react';
|
||||
import { IllustrationIconWrapper } from '@ui/display/icon/components/IllustrationIconWrapper';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import IllustrationIconManyToManyRaw from '@assets/icons/illustration-many-to-many.svg?react';
|
||||
import { useTheme } from '@emotion/react';
|
||||
import IllustrationIconManyToManyRaw from '@ui/display/icon/assets/illustration-many-to-many.svg?react';
|
||||
import { IllustrationIconWrapper } from '@ui/display/icon/components/IllustrationIconWrapper';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import IllustrationIconMapRaw from '@assets/icons/illustration-map.svg?react';
|
||||
import { useTheme } from '@emotion/react';
|
||||
import IllustrationIconMapRaw from '@ui/display/icon/assets/illustration-map.svg?react';
|
||||
import { IllustrationIconWrapper } from '@ui/display/icon/components/IllustrationIconWrapper';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import IllustrationIconNumbersRaw from '@assets/icons/illustration-numbers.svg?react';
|
||||
import { useTheme } from '@emotion/react';
|
||||
import IllustrationIconNumbersRaw from '@ui/display/icon/assets/illustration-numbers.svg?react';
|
||||
import { IllustrationIconWrapper } from '@ui/display/icon/components/IllustrationIconWrapper';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { useTheme } from '@emotion/react';
|
||||
import { IllustrationIconWrapper } from '@ui/display/icon/components/IllustrationIconWrapper';
|
||||
|
||||
import IllustrationIconOneToManyRaw from '@ui/display/icon/assets/illustration-one-to-many.svg?react';
|
||||
import IllustrationIconOneToManyRaw from '@assets/icons/illustration-one-to-many.svg?react';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
|
||||
type IllustrationIconOneToManyProps = Pick<IconComponentProps, 'size'>;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { useTheme } from '@emotion/react';
|
||||
import { IllustrationIconWrapper } from '@ui/display/icon/components/IllustrationIconWrapper';
|
||||
|
||||
import IllustrationIconOneToOneRaw from '@ui/display/icon/assets/illustration-one-to-one.svg?react';
|
||||
import IllustrationIconOneToOneRaw from '@assets/icons/illustration-one-to-one.svg?react';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
|
||||
type IllustrationIconOneToOneProps = Pick<IconComponentProps, 'size'>;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { useTheme } from '@emotion/react';
|
||||
import { IllustrationIconWrapper } from '@ui/display/icon/components/IllustrationIconWrapper';
|
||||
|
||||
import IllustrationIconPhoneRaw from '@ui/display/icon/assets/illustration-phone.svg?react';
|
||||
import IllustrationIconPhoneRaw from '@assets/icons/illustration-phone.svg?react';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
|
||||
type IllustrationIconPhoneProps = Pick<IconComponentProps, 'size'>;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { useTheme } from '@emotion/react';
|
||||
import { IllustrationIconWrapper } from '@ui/display/icon/components/IllustrationIconWrapper';
|
||||
|
||||
import IllustrationIconSettingRaw from '@ui/display/icon/assets/illustration-setting.svg?react';
|
||||
import IllustrationIconSettingRaw from '@assets/icons/illustration-setting.svg?react';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
|
||||
type IllustrationIconSettingProps = Pick<IconComponentProps, 'size'>;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { useTheme } from '@emotion/react';
|
||||
import { IllustrationIconWrapper } from '@ui/display/icon/components/IllustrationIconWrapper';
|
||||
|
||||
import IllustrationIconStarRaw from '@ui/display/icon/assets/illustration-star.svg?react';
|
||||
import IllustrationIconStarRaw from '@assets/icons/illustration-star.svg?react';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
|
||||
type IllustrationIconStarProps = Pick<IconComponentProps, 'size'>;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { useTheme } from '@emotion/react';
|
||||
import { IllustrationIconWrapper } from '@ui/display/icon/components/IllustrationIconWrapper';
|
||||
|
||||
import IllustrationIconTagRaw from '@ui/display/icon/assets/illustration-tag.svg?react';
|
||||
import IllustrationIconTagRaw from '@assets/icons/illustration-tag.svg?react';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
|
||||
type IllustrationIconTagProps = Pick<IconComponentProps, 'size'>;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { useTheme } from '@emotion/react';
|
||||
import { IllustrationIconWrapper } from '@ui/display/icon/components/IllustrationIconWrapper';
|
||||
|
||||
import IllustrationIconTagsRaw from '@ui/display/icon/assets/illustration-tags.svg?react';
|
||||
import IllustrationIconTagsRaw from '@assets/icons/illustration-tags.svg?react';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
|
||||
type IllustrationIconTagsProps = Pick<IconComponentProps, 'size'>;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { useTheme } from '@emotion/react';
|
||||
import { IllustrationIconWrapper } from '@ui/display/icon/components/IllustrationIconWrapper';
|
||||
|
||||
import IllustrationIconTextRaw from '@ui/display/icon/assets/illustration-text.svg?react';
|
||||
import IllustrationIconTextRaw from '@assets/icons/illustration-text.svg?react';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
|
||||
type IllustrationIconTextProps = Pick<IconComponentProps, 'size'>;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { useTheme } from '@emotion/react';
|
||||
import { IllustrationIconWrapper } from '@ui/display/icon/components/IllustrationIconWrapper';
|
||||
|
||||
import IllustrationIconToggleRaw from '@ui/display/icon/assets/illustration-toggle.svg?react';
|
||||
import IllustrationIconToggleRaw from '@assets/icons/illustration-toggle.svg?react';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
|
||||
type IllustrationIconToggleProps = Pick<IconComponentProps, 'size'>;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { useTheme } from '@emotion/react';
|
||||
import { IllustrationIconWrapper } from '@ui/display/icon/components/IllustrationIconWrapper';
|
||||
|
||||
import IllustrationIconUidRaw from '@ui/display/icon/assets/illustration-uid.svg?react';
|
||||
import IllustrationIconUidRaw from '@assets/icons/illustration-uid.svg?react';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
|
||||
type IllustrationIconUidProps = Pick<IconComponentProps, 'size'>;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { useTheme } from '@emotion/react';
|
||||
import { IllustrationIconWrapper } from '@ui/display/icon/components/IllustrationIconWrapper';
|
||||
|
||||
import IllustrationIconUserRaw from '@ui/display/icon/assets/illustration-user.svg?react';
|
||||
import IllustrationIconUserRaw from '@assets/icons/illustration-user.svg?react';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
|
||||
type IllustrationIconUserProps = Pick<IconComponentProps, 'size'>;
|
||||
|
||||
@ -4,18 +4,18 @@ export {
|
||||
IconAlertCircle,
|
||||
IconAlertTriangle,
|
||||
IconApi,
|
||||
IconApps,
|
||||
IconAppWindow,
|
||||
IconApps,
|
||||
IconArchive,
|
||||
IconArchiveOff,
|
||||
IconArrowBackUp,
|
||||
IconArrowDown,
|
||||
IconArrowLeft,
|
||||
IconArrowRight,
|
||||
IconArrowsDiagonal,
|
||||
IconArrowsVertical,
|
||||
IconArrowUp,
|
||||
IconArrowUpRight,
|
||||
IconArrowsDiagonal,
|
||||
IconArrowsVertical,
|
||||
IconAt,
|
||||
IconBaselineDensitySmall,
|
||||
IconBell,
|
||||
@ -47,8 +47,8 @@ export {
|
||||
IconChevronDown,
|
||||
IconChevronLeft,
|
||||
IconChevronRight,
|
||||
IconChevronsRight,
|
||||
IconChevronUp,
|
||||
IconChevronsRight,
|
||||
IconCircleDot,
|
||||
IconCircleOff,
|
||||
IconCirclePlus,
|
||||
@ -293,6 +293,7 @@ export {
|
||||
IconVariable,
|
||||
IconVariablePlus,
|
||||
IconVersions,
|
||||
IconVersionsOff,
|
||||
IconVideo,
|
||||
IconWand,
|
||||
IconWebhook,
|
||||
|
||||
@ -11,8 +11,8 @@ export const IconsProvider = ({ children }: IconsProviderProps) => {
|
||||
const setIcons = useSetRecoilState(iconsState);
|
||||
|
||||
useEffect(() => {
|
||||
import('./internal/AllIcons').then((lazyLoadedIcons) => {
|
||||
setIcons(lazyLoadedIcons.ALL_ICONS);
|
||||
import('./internal/AllIcons').then(({ ALL_ICONS }) => {
|
||||
setIcons(ALL_ICONS);
|
||||
});
|
||||
}, [setIcons]);
|
||||
|
||||
|
||||
@ -4185,30 +4185,24 @@ import {
|
||||
} from '@tabler/icons-react';
|
||||
|
||||
export const ALL_ICONS = {
|
||||
IconAuth2fa,
|
||||
IconCube3dSphere,
|
||||
IconCube3dSphereOff,
|
||||
IconRotate3d,
|
||||
IconHours24,
|
||||
Icon123,
|
||||
IconRotate360,
|
||||
IconView360,
|
||||
IconAB,
|
||||
IconAB2,
|
||||
IconABOff,
|
||||
IconAbacus,
|
||||
IconAbacusOff,
|
||||
IconAbc,
|
||||
IconABOff,
|
||||
IconAccessible,
|
||||
IconAccessibleOff,
|
||||
IconAccessPoint,
|
||||
IconAccessPointOff,
|
||||
IconAccessible,
|
||||
IconAccessibleOff,
|
||||
IconActivity,
|
||||
IconActivityHeartbeat,
|
||||
IconAd,
|
||||
IconAd2,
|
||||
IconAdCircle,
|
||||
IconAdCircleOff,
|
||||
IconAdOff,
|
||||
IconAddressBookOff,
|
||||
IconAdjustments,
|
||||
IconAdjustmentsAlt,
|
||||
@ -4233,7 +4227,6 @@ export const ALL_ICONS = {
|
||||
IconAdjustmentsStar,
|
||||
IconAdjustmentsUp,
|
||||
IconAdjustmentsX,
|
||||
IconAdOff,
|
||||
IconAerialLift,
|
||||
IconAffiliate,
|
||||
IconAirBalloon,
|
||||
@ -4303,10 +4296,10 @@ export const ALL_ICONS = {
|
||||
IconApiApp,
|
||||
IconApiAppOff,
|
||||
IconApiOff,
|
||||
IconAppWindow,
|
||||
IconApple,
|
||||
IconApps,
|
||||
IconAppsOff,
|
||||
IconAppWindow,
|
||||
IconArchive,
|
||||
IconArchiveOff,
|
||||
IconArmchair,
|
||||
@ -4418,6 +4411,23 @@ export const ALL_ICONS = {
|
||||
IconArrowRotaryStraight,
|
||||
IconArrowRoundaboutLeft,
|
||||
IconArrowRoundaboutRight,
|
||||
IconArrowSharpTurnLeft,
|
||||
IconArrowSharpTurnRight,
|
||||
IconArrowUp,
|
||||
IconArrowUpBar,
|
||||
IconArrowUpCircle,
|
||||
IconArrowUpLeft,
|
||||
IconArrowUpLeftCircle,
|
||||
IconArrowUpRhombus,
|
||||
IconArrowUpRight,
|
||||
IconArrowUpRightCircle,
|
||||
IconArrowUpSquare,
|
||||
IconArrowUpTail,
|
||||
IconArrowWaveLeftDown,
|
||||
IconArrowWaveLeftUp,
|
||||
IconArrowWaveRightDown,
|
||||
IconArrowWaveRightUp,
|
||||
IconArrowZigZag,
|
||||
IconArrowsCross,
|
||||
IconArrowsDiagonal,
|
||||
IconArrowsDiagonal2,
|
||||
@ -4432,8 +4442,6 @@ export const ALL_ICONS = {
|
||||
IconArrowsDownUp,
|
||||
IconArrowsExchange,
|
||||
IconArrowsExchange2,
|
||||
IconArrowSharpTurnLeft,
|
||||
IconArrowSharpTurnRight,
|
||||
IconArrowsHorizontal,
|
||||
IconArrowsJoin,
|
||||
IconArrowsJoin2,
|
||||
@ -4461,21 +4469,6 @@ export const ALL_ICONS = {
|
||||
IconArrowsUpLeft,
|
||||
IconArrowsUpRight,
|
||||
IconArrowsVertical,
|
||||
IconArrowUp,
|
||||
IconArrowUpBar,
|
||||
IconArrowUpCircle,
|
||||
IconArrowUpLeft,
|
||||
IconArrowUpLeftCircle,
|
||||
IconArrowUpRhombus,
|
||||
IconArrowUpRight,
|
||||
IconArrowUpRightCircle,
|
||||
IconArrowUpSquare,
|
||||
IconArrowUpTail,
|
||||
IconArrowWaveLeftDown,
|
||||
IconArrowWaveLeftUp,
|
||||
IconArrowWaveRightDown,
|
||||
IconArrowWaveRightUp,
|
||||
IconArrowZigZag,
|
||||
IconArtboard,
|
||||
IconArtboardOff,
|
||||
IconArticle,
|
||||
@ -4495,6 +4488,7 @@ export const ALL_ICONS = {
|
||||
IconAugmentedReality,
|
||||
IconAugmentedReality2,
|
||||
IconAugmentedRealityOff,
|
||||
IconAuth2fa,
|
||||
IconAward,
|
||||
IconAwardOff,
|
||||
IconAxe,
|
||||
@ -4516,13 +4510,13 @@ export const ALL_ICONS = {
|
||||
IconBadgeCc,
|
||||
IconBadgeHd,
|
||||
IconBadgeOff,
|
||||
IconBadges,
|
||||
IconBadgeSd,
|
||||
IconBadgesOff,
|
||||
IconBadgeTm,
|
||||
IconBadgeVo,
|
||||
IconBadgeVr,
|
||||
IconBadgeWc,
|
||||
IconBadges,
|
||||
IconBadgesOff,
|
||||
IconBaguette,
|
||||
IconBallAmericanFootball,
|
||||
IconBallAmericanFootballOff,
|
||||
@ -4531,12 +4525,12 @@ export const ALL_ICONS = {
|
||||
IconBallBowling,
|
||||
IconBallFootball,
|
||||
IconBallFootballOff,
|
||||
IconBallTennis,
|
||||
IconBallVolleyball,
|
||||
IconBalloon,
|
||||
IconBalloonOff,
|
||||
IconBallpen,
|
||||
IconBallpenOff,
|
||||
IconBallTennis,
|
||||
IconBallVolleyball,
|
||||
IconBan,
|
||||
IconBandage,
|
||||
IconBandageOff,
|
||||
@ -4653,6 +4647,8 @@ export const ALL_ICONS = {
|
||||
IconBook,
|
||||
IconBook2,
|
||||
IconBookDownload,
|
||||
IconBookOff,
|
||||
IconBookUpload,
|
||||
IconBookmark,
|
||||
IconBookmarkEdit,
|
||||
IconBookmarkMinus,
|
||||
@ -4661,10 +4657,8 @@ export const ALL_ICONS = {
|
||||
IconBookmarkQuestion,
|
||||
IconBookmarks,
|
||||
IconBookmarksOff,
|
||||
IconBookOff,
|
||||
IconBooks,
|
||||
IconBooksOff,
|
||||
IconBookUpload,
|
||||
IconBorderAll,
|
||||
IconBorderBottom,
|
||||
IconBorderCorners,
|
||||
@ -4766,6 +4760,7 @@ export const ALL_ICONS = {
|
||||
IconBrandBulma,
|
||||
IconBrandBumble,
|
||||
IconBrandBunpo,
|
||||
IconBrandCSharp,
|
||||
IconBrandCake,
|
||||
IconBrandCakephp,
|
||||
IconBrandCampaignmonitor,
|
||||
@ -4787,7 +4782,6 @@ export const ALL_ICONS = {
|
||||
IconBrandCpp,
|
||||
IconBrandCraft,
|
||||
IconBrandCrunchbase,
|
||||
IconBrandCSharp,
|
||||
IconBrandCss3,
|
||||
IconBrandCtemplar,
|
||||
IconBrandCucumber,
|
||||
@ -4923,8 +4917,8 @@ export const ALL_ICONS = {
|
||||
IconBrandOkRu,
|
||||
IconBrandOnedrive,
|
||||
IconBrandOnlyfans,
|
||||
IconBrandOpenai,
|
||||
IconBrandOpenSource,
|
||||
IconBrandOpenai,
|
||||
IconBrandOpenvpn,
|
||||
IconBrandOpera,
|
||||
IconBrandPagekit,
|
||||
@ -5077,6 +5071,7 @@ export const ALL_ICONS = {
|
||||
IconBroadcastOff,
|
||||
IconBrowser,
|
||||
IconBrowserCheck,
|
||||
IconBrowserMaximize,
|
||||
IconBrowserOff,
|
||||
IconBrowserPlus,
|
||||
IconBrowserX,
|
||||
@ -5118,9 +5113,9 @@ export const ALL_ICONS = {
|
||||
IconBulbOff,
|
||||
IconBulldozer,
|
||||
IconBus,
|
||||
IconBusinessplan,
|
||||
IconBusOff,
|
||||
IconBusStop,
|
||||
IconBusinessplan,
|
||||
IconButterfly,
|
||||
IconCactus,
|
||||
IconCactusOff,
|
||||
@ -5190,9 +5185,11 @@ export const ALL_ICONS = {
|
||||
IconCapture,
|
||||
IconCaptureOff,
|
||||
IconCar,
|
||||
IconCaravan,
|
||||
IconCarCrane,
|
||||
IconCarCrash,
|
||||
IconCarOff,
|
||||
IconCarTurbine,
|
||||
IconCaravan,
|
||||
IconCardboards,
|
||||
IconCardboardsOff,
|
||||
IconCards,
|
||||
@ -5200,12 +5197,10 @@ export const ALL_ICONS = {
|
||||
IconCaretLeft,
|
||||
IconCaretRight,
|
||||
IconCaretUp,
|
||||
IconCarOff,
|
||||
IconCarouselHorizontal,
|
||||
IconCarouselVertical,
|
||||
IconCarrot,
|
||||
IconCarrotOff,
|
||||
IconCarTurbine,
|
||||
IconCash,
|
||||
IconCashBanknote,
|
||||
IconCashBanknoteOff,
|
||||
@ -5216,6 +5211,7 @@ export const ALL_ICONS = {
|
||||
IconCategory,
|
||||
IconCategory2,
|
||||
IconCe,
|
||||
IconCeOff,
|
||||
IconCell,
|
||||
IconCellSignal1,
|
||||
IconCellSignal2,
|
||||
@ -5223,7 +5219,6 @@ export const ALL_ICONS = {
|
||||
IconCellSignal4,
|
||||
IconCellSignal5,
|
||||
IconCellSignalOff,
|
||||
IconCeOff,
|
||||
IconCertificate,
|
||||
IconCertificate2,
|
||||
IconCertificate2Off,
|
||||
@ -5289,6 +5284,9 @@ export const ALL_ICONS = {
|
||||
IconChevronLeftPipe,
|
||||
IconChevronRight,
|
||||
IconChevronRightPipe,
|
||||
IconChevronUp,
|
||||
IconChevronUpLeft,
|
||||
IconChevronUpRight,
|
||||
IconChevronsDown,
|
||||
IconChevronsDownLeft,
|
||||
IconChevronsDownRight,
|
||||
@ -5297,9 +5295,6 @@ export const ALL_ICONS = {
|
||||
IconChevronsUp,
|
||||
IconChevronsUpLeft,
|
||||
IconChevronsUpRight,
|
||||
IconChevronUp,
|
||||
IconChevronUpLeft,
|
||||
IconChevronUpRight,
|
||||
IconChisel,
|
||||
IconChristmasTree,
|
||||
IconChristmasTreeOff,
|
||||
@ -5320,11 +5315,11 @@ export const ALL_ICONS = {
|
||||
IconCircleChevronDown,
|
||||
IconCircleChevronLeft,
|
||||
IconCircleChevronRight,
|
||||
IconCircleChevronUp,
|
||||
IconCircleChevronsDown,
|
||||
IconCircleChevronsLeft,
|
||||
IconCircleChevronsRight,
|
||||
IconCircleChevronsUp,
|
||||
IconCircleChevronUp,
|
||||
IconCircleDashed,
|
||||
IconCircleDot,
|
||||
IconCircleDotted,
|
||||
@ -5373,11 +5368,11 @@ export const ALL_ICONS = {
|
||||
IconCirclePlus,
|
||||
IconCircleRectangle,
|
||||
IconCircleRectangleOff,
|
||||
IconCircles,
|
||||
IconCircleSquare,
|
||||
IconCirclesRelation,
|
||||
IconCircleTriangle,
|
||||
IconCircleX,
|
||||
IconCircles,
|
||||
IconCirclesRelation,
|
||||
IconCircuitAmmeter,
|
||||
IconCircuitBattery,
|
||||
IconCircuitBulb,
|
||||
@ -5424,6 +5419,9 @@ export const ALL_ICONS = {
|
||||
IconClockExclamation,
|
||||
IconClockHeart,
|
||||
IconClockHour1,
|
||||
IconClockHour10,
|
||||
IconClockHour11,
|
||||
IconClockHour12,
|
||||
IconClockHour2,
|
||||
IconClockHour3,
|
||||
IconClockHour4,
|
||||
@ -5432,9 +5430,6 @@ export const ALL_ICONS = {
|
||||
IconClockHour7,
|
||||
IconClockHour8,
|
||||
IconClockHour9,
|
||||
IconClockHour10,
|
||||
IconClockHour11,
|
||||
IconClockHour12,
|
||||
IconClockMinus,
|
||||
IconClockOff,
|
||||
IconClockPause,
|
||||
@ -5503,9 +5498,9 @@ export const ALL_ICONS = {
|
||||
IconCoinOff,
|
||||
IconCoinPound,
|
||||
IconCoinRupee,
|
||||
IconCoins,
|
||||
IconCoinYen,
|
||||
IconCoinYuan,
|
||||
IconCoins,
|
||||
IconColorFilter,
|
||||
IconColorPicker,
|
||||
IconColorPickerOff,
|
||||
@ -5544,9 +5539,9 @@ export const ALL_ICONS = {
|
||||
IconCookieMan,
|
||||
IconCookieOff,
|
||||
IconCopy,
|
||||
IconCopyOff,
|
||||
IconCopyleft,
|
||||
IconCopyleftOff,
|
||||
IconCopyOff,
|
||||
IconCopyright,
|
||||
IconCopyrightOff,
|
||||
IconCornerDownLeft,
|
||||
@ -5582,8 +5577,8 @@ export const ALL_ICONS = {
|
||||
IconCricket,
|
||||
IconCrop,
|
||||
IconCross,
|
||||
IconCrosshair,
|
||||
IconCrossOff,
|
||||
IconCrosshair,
|
||||
IconCrown,
|
||||
IconCrownOff,
|
||||
IconCrutches,
|
||||
@ -5591,6 +5586,8 @@ export const ALL_ICONS = {
|
||||
IconCrystalBall,
|
||||
IconCsv,
|
||||
IconCube,
|
||||
IconCube3dSphere,
|
||||
IconCube3dSphereOff,
|
||||
IconCubeOff,
|
||||
IconCubePlus,
|
||||
IconCubeSend,
|
||||
@ -5831,37 +5828,13 @@ export const ALL_ICONS = {
|
||||
IconDeviceNintendoOff,
|
||||
IconDeviceProjector,
|
||||
IconDeviceRemote,
|
||||
IconDevices,
|
||||
IconDevices2,
|
||||
IconDevicesBolt,
|
||||
IconDevicesCancel,
|
||||
IconDevicesCheck,
|
||||
IconDevicesCode,
|
||||
IconDevicesCog,
|
||||
IconDeviceSdCard,
|
||||
IconDevicesDollar,
|
||||
IconDevicesDown,
|
||||
IconDevicesExclamation,
|
||||
IconDevicesHeart,
|
||||
IconDeviceSim,
|
||||
IconDeviceSim1,
|
||||
IconDeviceSim2,
|
||||
IconDeviceSim3,
|
||||
IconDevicesMinus,
|
||||
IconDevicesOff,
|
||||
IconDevicesPause,
|
||||
IconDevicesPc,
|
||||
IconDevicesPcOff,
|
||||
IconDeviceSpeaker,
|
||||
IconDeviceSpeakerOff,
|
||||
IconDevicesPin,
|
||||
IconDevicesPlus,
|
||||
IconDevicesQuestion,
|
||||
IconDevicesSearch,
|
||||
IconDevicesShare,
|
||||
IconDevicesStar,
|
||||
IconDevicesUp,
|
||||
IconDevicesX,
|
||||
IconDeviceTablet,
|
||||
IconDeviceTabletBolt,
|
||||
IconDeviceTabletCancel,
|
||||
@ -5910,6 +5883,30 @@ export const ALL_ICONS = {
|
||||
IconDeviceWatchStats2,
|
||||
IconDeviceWatchUp,
|
||||
IconDeviceWatchX,
|
||||
IconDevices,
|
||||
IconDevices2,
|
||||
IconDevicesBolt,
|
||||
IconDevicesCancel,
|
||||
IconDevicesCheck,
|
||||
IconDevicesCode,
|
||||
IconDevicesCog,
|
||||
IconDevicesDollar,
|
||||
IconDevicesDown,
|
||||
IconDevicesExclamation,
|
||||
IconDevicesHeart,
|
||||
IconDevicesMinus,
|
||||
IconDevicesOff,
|
||||
IconDevicesPause,
|
||||
IconDevicesPc,
|
||||
IconDevicesPcOff,
|
||||
IconDevicesPin,
|
||||
IconDevicesPlus,
|
||||
IconDevicesQuestion,
|
||||
IconDevicesSearch,
|
||||
IconDevicesShare,
|
||||
IconDevicesStar,
|
||||
IconDevicesUp,
|
||||
IconDevicesX,
|
||||
IconDiabolo,
|
||||
IconDiaboloOff,
|
||||
IconDiaboloPlus,
|
||||
@ -5928,9 +5925,9 @@ export const ALL_ICONS = {
|
||||
IconDimensions,
|
||||
IconDirection,
|
||||
IconDirectionHorizontal,
|
||||
IconDirections,
|
||||
IconDirectionSign,
|
||||
IconDirectionSignOff,
|
||||
IconDirections,
|
||||
IconDirectionsOff,
|
||||
IconDisabled,
|
||||
IconDisabled2,
|
||||
@ -5981,13 +5978,14 @@ export const ALL_ICONS = {
|
||||
IconDropletPin,
|
||||
IconDropletPlus,
|
||||
IconDropletQuestion,
|
||||
IconDroplets,
|
||||
IconDropletSearch,
|
||||
IconDropletShare,
|
||||
IconDropletStar,
|
||||
IconDropletUp,
|
||||
IconDropletX,
|
||||
IconDroplets,
|
||||
IconDualScreen,
|
||||
IconEPassport,
|
||||
IconEar,
|
||||
IconEarOff,
|
||||
IconEaseIn,
|
||||
@ -6013,7 +6011,6 @@ export const ALL_ICONS = {
|
||||
IconEmphasis,
|
||||
IconEngine,
|
||||
IconEngineOff,
|
||||
IconEPassport,
|
||||
IconEqual,
|
||||
IconEqualDouble,
|
||||
IconEqualNot,
|
||||
@ -6052,9 +6049,6 @@ export const ALL_ICONS = {
|
||||
IconEyeDown,
|
||||
IconEyeEdit,
|
||||
IconEyeExclamation,
|
||||
IconEyeglass,
|
||||
IconEyeglass2,
|
||||
IconEyeglassOff,
|
||||
IconEyeHeart,
|
||||
IconEyeMinus,
|
||||
IconEyeOff,
|
||||
@ -6068,6 +6062,9 @@ export const ALL_ICONS = {
|
||||
IconEyeTable,
|
||||
IconEyeUp,
|
||||
IconEyeX,
|
||||
IconEyeglass,
|
||||
IconEyeglass2,
|
||||
IconEyeglassOff,
|
||||
IconFaceId,
|
||||
IconFaceIdError,
|
||||
IconFaceMask,
|
||||
@ -6122,13 +6119,11 @@ export const ALL_ICONS = {
|
||||
IconFilePower,
|
||||
IconFileReport,
|
||||
IconFileRss,
|
||||
IconFiles,
|
||||
IconFileScissors,
|
||||
IconFileSearch,
|
||||
IconFileSettings,
|
||||
IconFileShredder,
|
||||
IconFileSignal,
|
||||
IconFilesOff,
|
||||
IconFileSpreadsheet,
|
||||
IconFileStack,
|
||||
IconFileStar,
|
||||
@ -6165,6 +6160,8 @@ export const ALL_ICONS = {
|
||||
IconFileVector,
|
||||
IconFileX,
|
||||
IconFileZip,
|
||||
IconFiles,
|
||||
IconFilesOff,
|
||||
IconFilter,
|
||||
IconFilterBolt,
|
||||
IconFilterCancel,
|
||||
@ -6183,12 +6180,12 @@ export const ALL_ICONS = {
|
||||
IconFilterPin,
|
||||
IconFilterPlus,
|
||||
IconFilterQuestion,
|
||||
IconFilters,
|
||||
IconFilterSearch,
|
||||
IconFilterShare,
|
||||
IconFilterStar,
|
||||
IconFilterUp,
|
||||
IconFilterX,
|
||||
IconFilters,
|
||||
IconFingerprint,
|
||||
IconFingerprintOff,
|
||||
IconFireExtinguisher,
|
||||
@ -6250,6 +6247,7 @@ export const ALL_ICONS = {
|
||||
IconFocusCentered,
|
||||
IconFold,
|
||||
IconFoldDown,
|
||||
IconFoldUp,
|
||||
IconFolder,
|
||||
IconFolderBolt,
|
||||
IconFolderCancel,
|
||||
@ -6267,15 +6265,14 @@ export const ALL_ICONS = {
|
||||
IconFolderPin,
|
||||
IconFolderPlus,
|
||||
IconFolderQuestion,
|
||||
IconFolders,
|
||||
IconFolderSearch,
|
||||
IconFolderShare,
|
||||
IconFoldersOff,
|
||||
IconFolderStar,
|
||||
IconFolderSymlink,
|
||||
IconFolderUp,
|
||||
IconFolderX,
|
||||
IconFoldUp,
|
||||
IconFolders,
|
||||
IconFoldersOff,
|
||||
IconForbid,
|
||||
IconForbid2,
|
||||
IconForklift,
|
||||
@ -6403,7 +6400,6 @@ export const ALL_ICONS = {
|
||||
IconHeadsetOff,
|
||||
IconHealthRecognition,
|
||||
IconHeart,
|
||||
IconHeartbeat,
|
||||
IconHeartBolt,
|
||||
IconHeartBroken,
|
||||
IconHeartCancel,
|
||||
@ -6422,13 +6418,14 @@ export const ALL_ICONS = {
|
||||
IconHeartPlus,
|
||||
IconHeartQuestion,
|
||||
IconHeartRateMonitor,
|
||||
IconHearts,
|
||||
IconHeartSearch,
|
||||
IconHeartShare,
|
||||
IconHeartsOff,
|
||||
IconHeartStar,
|
||||
IconHeartUp,
|
||||
IconHeartX,
|
||||
IconHeartbeat,
|
||||
IconHearts,
|
||||
IconHeartsOff,
|
||||
IconHelicopter,
|
||||
IconHelicopterLanding,
|
||||
IconHelmet,
|
||||
@ -6447,12 +6444,6 @@ export const ALL_ICONS = {
|
||||
IconHemispherePlus,
|
||||
IconHexagon,
|
||||
IconHexagon3d,
|
||||
IconHexagonalPrism,
|
||||
IconHexagonalPrismOff,
|
||||
IconHexagonalPrismPlus,
|
||||
IconHexagonalPyramid,
|
||||
IconHexagonalPyramidOff,
|
||||
IconHexagonalPyramidPlus,
|
||||
IconHexagonLetterA,
|
||||
IconHexagonLetterB,
|
||||
IconHexagonLetterC,
|
||||
@ -6490,6 +6481,12 @@ export const ALL_ICONS = {
|
||||
IconHexagonNumber8,
|
||||
IconHexagonNumber9,
|
||||
IconHexagonOff,
|
||||
IconHexagonalPrism,
|
||||
IconHexagonalPrismOff,
|
||||
IconHexagonalPrismPlus,
|
||||
IconHexagonalPyramid,
|
||||
IconHexagonalPyramidOff,
|
||||
IconHexagonalPyramidPlus,
|
||||
IconHexagons,
|
||||
IconHexagonsOff,
|
||||
IconHierarchy,
|
||||
@ -6538,6 +6535,7 @@ export const ALL_ICONS = {
|
||||
IconHourglassHigh,
|
||||
IconHourglassLow,
|
||||
IconHourglassOff,
|
||||
IconHours24,
|
||||
IconHtml,
|
||||
IconHttpConnect,
|
||||
IconHttpDelete,
|
||||
@ -6602,6 +6600,7 @@ export const ALL_ICONS = {
|
||||
IconKarate,
|
||||
IconKayak,
|
||||
IconKey,
|
||||
IconKeyOff,
|
||||
IconKeyboard,
|
||||
IconKeyboardHide,
|
||||
IconKeyboardOff,
|
||||
@ -6611,7 +6610,6 @@ export const ALL_ICONS = {
|
||||
IconKeyframeAlignHorizontal,
|
||||
IconKeyframeAlignVertical,
|
||||
IconKeyframes,
|
||||
IconKeyOff,
|
||||
IconLadder,
|
||||
IconLadderOff,
|
||||
IconLadle,
|
||||
@ -6805,8 +6803,6 @@ export const ALL_ICONS = {
|
||||
IconMail,
|
||||
IconMailAi,
|
||||
IconMailBolt,
|
||||
IconMailbox,
|
||||
IconMailboxOff,
|
||||
IconMailCancel,
|
||||
IconMailCheck,
|
||||
IconMailCode,
|
||||
@ -6829,6 +6825,8 @@ export const ALL_ICONS = {
|
||||
IconMailStar,
|
||||
IconMailUp,
|
||||
IconMailX,
|
||||
IconMailbox,
|
||||
IconMailboxOff,
|
||||
IconMan,
|
||||
IconManualGearbox,
|
||||
IconMap,
|
||||
@ -6862,12 +6860,12 @@ export const ALL_ICONS = {
|
||||
IconMapPinPin,
|
||||
IconMapPinPlus,
|
||||
IconMapPinQuestion,
|
||||
IconMapPins,
|
||||
IconMapPinSearch,
|
||||
IconMapPinShare,
|
||||
IconMapPinStar,
|
||||
IconMapPinUp,
|
||||
IconMapPinX,
|
||||
IconMapPins,
|
||||
IconMapPlus,
|
||||
IconMapQuestion,
|
||||
IconMapSearch,
|
||||
@ -6898,8 +6896,8 @@ export const ALL_ICONS = {
|
||||
IconMathFunctionY,
|
||||
IconMathGreater,
|
||||
IconMathIntegral,
|
||||
IconMathIntegrals,
|
||||
IconMathIntegralX,
|
||||
IconMathIntegrals,
|
||||
IconMathLower,
|
||||
IconMathMax,
|
||||
IconMathMin,
|
||||
@ -6997,13 +6995,13 @@ export const ALL_ICONS = {
|
||||
IconMessagePlus,
|
||||
IconMessageQuestion,
|
||||
IconMessageReport,
|
||||
IconMessages,
|
||||
IconMessageSearch,
|
||||
IconMessageShare,
|
||||
IconMessagesOff,
|
||||
IconMessageStar,
|
||||
IconMessageUp,
|
||||
IconMessageX,
|
||||
IconMessages,
|
||||
IconMessagesOff,
|
||||
IconMeteor,
|
||||
IconMeteorOff,
|
||||
IconMichelinBibGourmand,
|
||||
@ -7093,10 +7091,10 @@ export const ALL_ICONS = {
|
||||
IconMovieOff,
|
||||
IconMug,
|
||||
IconMugOff,
|
||||
IconMultiplier1x,
|
||||
IconMultiplier2x,
|
||||
IconMultiplier05x,
|
||||
IconMultiplier15x,
|
||||
IconMultiplier1x,
|
||||
IconMultiplier2x,
|
||||
IconMushroom,
|
||||
IconMushroomOff,
|
||||
IconMusic,
|
||||
@ -7148,8 +7146,8 @@ export const ALL_ICONS = {
|
||||
IconNeedleThread,
|
||||
IconNetwork,
|
||||
IconNetworkOff,
|
||||
IconNews,
|
||||
IconNewSection,
|
||||
IconNews,
|
||||
IconNewsOff,
|
||||
IconNfc,
|
||||
IconNfcOff,
|
||||
@ -7158,9 +7156,9 @@ export const ALL_ICONS = {
|
||||
IconNoDerivatives,
|
||||
IconNorthStar,
|
||||
IconNote,
|
||||
IconNoteOff,
|
||||
IconNotebook,
|
||||
IconNotebookOff,
|
||||
IconNoteOff,
|
||||
IconNotes,
|
||||
IconNotesOff,
|
||||
IconNotification,
|
||||
@ -7319,8 +7317,8 @@ export const ALL_ICONS = {
|
||||
IconPlaneDeparture,
|
||||
IconPlaneInflight,
|
||||
IconPlaneOff,
|
||||
IconPlanet,
|
||||
IconPlaneTilt,
|
||||
IconPlanet,
|
||||
IconPlanetOff,
|
||||
IconPlant,
|
||||
IconPlant2,
|
||||
@ -7329,6 +7327,9 @@ export const ALL_ICONS = {
|
||||
IconPlayBasketball,
|
||||
IconPlayCard,
|
||||
IconPlayCardOff,
|
||||
IconPlayFootball,
|
||||
IconPlayHandball,
|
||||
IconPlayVolleyball,
|
||||
IconPlayerEject,
|
||||
IconPlayerPause,
|
||||
IconPlayerPlay,
|
||||
@ -7338,8 +7339,6 @@ export const ALL_ICONS = {
|
||||
IconPlayerStop,
|
||||
IconPlayerTrackNext,
|
||||
IconPlayerTrackPrev,
|
||||
IconPlayFootball,
|
||||
IconPlayHandball,
|
||||
IconPlaylist,
|
||||
IconPlaylistAdd,
|
||||
IconPlaylistOff,
|
||||
@ -7348,7 +7347,6 @@ export const ALL_ICONS = {
|
||||
IconPlaystationSquare,
|
||||
IconPlaystationTriangle,
|
||||
IconPlaystationX,
|
||||
IconPlayVolleyball,
|
||||
IconPlug,
|
||||
IconPlugConnected,
|
||||
IconPlugConnectedX,
|
||||
@ -7361,6 +7359,7 @@ export const ALL_ICONS = {
|
||||
IconPodium,
|
||||
IconPodiumOff,
|
||||
IconPoint,
|
||||
IconPointOff,
|
||||
IconPointer,
|
||||
IconPointerBolt,
|
||||
IconPointerCancel,
|
||||
@ -7382,7 +7381,6 @@ export const ALL_ICONS = {
|
||||
IconPointerStar,
|
||||
IconPointerUp,
|
||||
IconPointerX,
|
||||
IconPointOff,
|
||||
IconPokeball,
|
||||
IconPokeballOff,
|
||||
IconPokerChip,
|
||||
@ -7432,9 +7430,9 @@ export const ALL_ICONS = {
|
||||
IconRadar2,
|
||||
IconRadarOff,
|
||||
IconRadio,
|
||||
IconRadioOff,
|
||||
IconRadioactive,
|
||||
IconRadioactiveOff,
|
||||
IconRadioOff,
|
||||
IconRadiusBottomLeft,
|
||||
IconRadiusBottomRight,
|
||||
IconRadiusTopLeft,
|
||||
@ -7491,20 +7489,20 @@ export const ALL_ICONS = {
|
||||
IconReservedLine,
|
||||
IconResize,
|
||||
IconRestore,
|
||||
IconRewindBackward5,
|
||||
IconRewindBackward10,
|
||||
IconRewindBackward15,
|
||||
IconRewindBackward20,
|
||||
IconRewindBackward30,
|
||||
IconRewindBackward40,
|
||||
IconRewindBackward5,
|
||||
IconRewindBackward50,
|
||||
IconRewindBackward60,
|
||||
IconRewindForward5,
|
||||
IconRewindForward10,
|
||||
IconRewindForward15,
|
||||
IconRewindForward20,
|
||||
IconRewindForward30,
|
||||
IconRewindForward40,
|
||||
IconRewindForward5,
|
||||
IconRewindForward50,
|
||||
IconRewindForward60,
|
||||
IconRibbonHealth,
|
||||
@ -7518,9 +7516,9 @@ export const ALL_ICONS = {
|
||||
IconRobotOff,
|
||||
IconRocket,
|
||||
IconRocketOff,
|
||||
IconRollerSkating,
|
||||
IconRollercoaster,
|
||||
IconRollercoasterOff,
|
||||
IconRollerSkating,
|
||||
IconRosette,
|
||||
IconRosetteNumber0,
|
||||
IconRosetteNumber1,
|
||||
@ -7534,6 +7532,8 @@ export const ALL_ICONS = {
|
||||
IconRosetteNumber9,
|
||||
IconRotate,
|
||||
IconRotate2,
|
||||
IconRotate360,
|
||||
IconRotate3d,
|
||||
IconRotateClockwise,
|
||||
IconRotateClockwise2,
|
||||
IconRotateDot,
|
||||
@ -7556,6 +7556,10 @@ export const ALL_ICONS = {
|
||||
IconRulerMeasure,
|
||||
IconRulerOff,
|
||||
IconRun,
|
||||
IconSTurnDown,
|
||||
IconSTurnLeft,
|
||||
IconSTurnRight,
|
||||
IconSTurnUp,
|
||||
IconSailboat,
|
||||
IconSailboat2,
|
||||
IconSailboatOff,
|
||||
@ -7710,6 +7714,8 @@ export const ALL_ICONS = {
|
||||
IconShoppingCartX,
|
||||
IconShovel,
|
||||
IconShredder,
|
||||
IconSignLeft,
|
||||
IconSignRight,
|
||||
IconSignal2g,
|
||||
IconSignal3g,
|
||||
IconSignal4g,
|
||||
@ -7723,13 +7729,11 @@ export const ALL_ICONS = {
|
||||
IconSignalLte,
|
||||
IconSignature,
|
||||
IconSignatureOff,
|
||||
IconSignLeft,
|
||||
IconSignRight,
|
||||
IconSitemap,
|
||||
IconSitemapOff,
|
||||
IconSkateboard,
|
||||
IconSkateboarding,
|
||||
IconSkateboardOff,
|
||||
IconSkateboarding,
|
||||
IconSkull,
|
||||
IconSlash,
|
||||
IconSlashes,
|
||||
@ -7753,11 +7757,11 @@ export const ALL_ICONS = {
|
||||
IconSolarPanel2,
|
||||
IconSort09,
|
||||
IconSort90,
|
||||
IconSortAZ,
|
||||
IconSortAscending,
|
||||
IconSortAscending2,
|
||||
IconSortAscendingLetters,
|
||||
IconSortAscendingNumbers,
|
||||
IconSortAZ,
|
||||
IconSortDescending,
|
||||
IconSortDescending2,
|
||||
IconSortDescendingLetters,
|
||||
@ -7796,11 +7800,11 @@ export const ALL_ICONS = {
|
||||
IconSquareChevronDown,
|
||||
IconSquareChevronLeft,
|
||||
IconSquareChevronRight,
|
||||
IconSquareChevronUp,
|
||||
IconSquareChevronsDown,
|
||||
IconSquareChevronsLeft,
|
||||
IconSquareChevronsRight,
|
||||
IconSquareChevronsUp,
|
||||
IconSquareChevronUp,
|
||||
IconSquareDot,
|
||||
IconSquareF0,
|
||||
IconSquareF1,
|
||||
@ -7870,11 +7874,11 @@ export const ALL_ICONS = {
|
||||
IconSquareRoundedChevronDown,
|
||||
IconSquareRoundedChevronLeft,
|
||||
IconSquareRoundedChevronRight,
|
||||
IconSquareRoundedChevronUp,
|
||||
IconSquareRoundedChevronsDown,
|
||||
IconSquareRoundedChevronsLeft,
|
||||
IconSquareRoundedChevronsRight,
|
||||
IconSquareRoundedChevronsUp,
|
||||
IconSquareRoundedChevronUp,
|
||||
IconSquareRoundedLetterA,
|
||||
IconSquareRoundedLetterB,
|
||||
IconSquareRoundedLetterC,
|
||||
@ -7914,10 +7918,10 @@ export const ALL_ICONS = {
|
||||
IconSquareRoundedNumber9,
|
||||
IconSquareRoundedPlus,
|
||||
IconSquareRoundedX,
|
||||
IconSquaresDiagonal,
|
||||
IconSquareToggle,
|
||||
IconSquareToggleHorizontal,
|
||||
IconSquareX,
|
||||
IconSquaresDiagonal,
|
||||
IconStack,
|
||||
IconStack2,
|
||||
IconStack3,
|
||||
@ -7946,25 +7950,21 @@ export const ALL_ICONS = {
|
||||
IconStretching,
|
||||
IconStretching2,
|
||||
IconStrikethrough,
|
||||
IconSTurnDown,
|
||||
IconSTurnLeft,
|
||||
IconSTurnRight,
|
||||
IconSTurnUp,
|
||||
IconSubmarine,
|
||||
IconSubscript,
|
||||
IconSubtask,
|
||||
IconSum,
|
||||
IconSumOff,
|
||||
IconSun,
|
||||
IconSunglasses,
|
||||
IconSunHigh,
|
||||
IconSunLow,
|
||||
IconSunMoon,
|
||||
IconSunOff,
|
||||
IconSunWind,
|
||||
IconSunglasses,
|
||||
IconSunrise,
|
||||
IconSunset,
|
||||
IconSunset2,
|
||||
IconSunWind,
|
||||
IconSuperscript,
|
||||
IconSvg,
|
||||
IconSwimming,
|
||||
@ -8035,28 +8035,28 @@ export const ALL_ICONS = {
|
||||
IconTextResize,
|
||||
IconTextSize,
|
||||
IconTextSpellcheck,
|
||||
IconTexture,
|
||||
IconTextWrap,
|
||||
IconTextWrapDisabled,
|
||||
IconTexture,
|
||||
IconTheater,
|
||||
IconThermometer,
|
||||
IconThumbDown,
|
||||
IconThumbDownOff,
|
||||
IconThumbUp,
|
||||
IconThumbUpOff,
|
||||
IconTicTac,
|
||||
IconTicket,
|
||||
IconTicketOff,
|
||||
IconTicTac,
|
||||
IconTie,
|
||||
IconTilde,
|
||||
IconTiltShift,
|
||||
IconTiltShiftOff,
|
||||
IconTimeDuration0,
|
||||
IconTimeDuration5,
|
||||
IconTimeDuration10,
|
||||
IconTimeDuration15,
|
||||
IconTimeDuration30,
|
||||
IconTimeDuration45,
|
||||
IconTimeDuration5,
|
||||
IconTimeDuration60,
|
||||
IconTimeDuration90,
|
||||
IconTimeDurationOff,
|
||||
@ -8132,8 +8132,8 @@ export const ALL_ICONS = {
|
||||
IconTriangle,
|
||||
IconTriangleInverted,
|
||||
IconTriangleOff,
|
||||
IconTriangles,
|
||||
IconTriangleSquareCircle,
|
||||
IconTriangles,
|
||||
IconTrident,
|
||||
IconTrolley,
|
||||
IconTrophy,
|
||||
@ -8174,16 +8174,16 @@ export const ALL_ICONS = {
|
||||
IconUserPin,
|
||||
IconUserPlus,
|
||||
IconUserQuestion,
|
||||
IconUsers,
|
||||
IconUserSearch,
|
||||
IconUsersGroup,
|
||||
IconUserShare,
|
||||
IconUserShield,
|
||||
IconUsersMinus,
|
||||
IconUsersPlus,
|
||||
IconUserStar,
|
||||
IconUserUp,
|
||||
IconUserX,
|
||||
IconUsers,
|
||||
IconUsersGroup,
|
||||
IconUsersMinus,
|
||||
IconUsersPlus,
|
||||
IconUvIndex,
|
||||
IconUxCircle,
|
||||
IconVaccine,
|
||||
@ -8211,6 +8211,7 @@ export const ALL_ICONS = {
|
||||
IconVideoMinus,
|
||||
IconVideoOff,
|
||||
IconVideoPlus,
|
||||
IconView360,
|
||||
IconView360Off,
|
||||
IconViewfinder,
|
||||
IconViewfinderOff,
|
||||
@ -8231,9 +8232,9 @@ export const ALL_ICONS = {
|
||||
IconVolumeOff,
|
||||
IconWalk,
|
||||
IconWall,
|
||||
IconWallOff,
|
||||
IconWallet,
|
||||
IconWalletOff,
|
||||
IconWallOff,
|
||||
IconWallpaper,
|
||||
IconWallpaperOff,
|
||||
IconWand,
|
||||
@ -8244,8 +8245,6 @@ export const ALL_ICONS = {
|
||||
IconWashDry2,
|
||||
IconWashDry3,
|
||||
IconWashDryA,
|
||||
IconWashDryclean,
|
||||
IconWashDrycleanOff,
|
||||
IconWashDryDip,
|
||||
IconWashDryF,
|
||||
IconWashDryFlat,
|
||||
@ -8254,6 +8253,8 @@ export const ALL_ICONS = {
|
||||
IconWashDryP,
|
||||
IconWashDryShade,
|
||||
IconWashDryW,
|
||||
IconWashDryclean,
|
||||
IconWashDrycleanOff,
|
||||
IconWashEco,
|
||||
IconWashGentle,
|
||||
IconWashHand,
|
||||
@ -8284,9 +8285,9 @@ export const ALL_ICONS = {
|
||||
IconWifi2,
|
||||
IconWifiOff,
|
||||
IconWind,
|
||||
IconWindOff,
|
||||
IconWindmill,
|
||||
IconWindmillOff,
|
||||
IconWindOff,
|
||||
IconWindow,
|
||||
IconWindowMaximize,
|
||||
IconWindowMinimize,
|
||||
@ -8366,5 +8367,4 @@ export const ALL_ICONS = {
|
||||
IconZoomReset,
|
||||
IconZzz,
|
||||
IconZzzOff,
|
||||
IconBrowserMaximize,
|
||||
};
|
||||
|
||||
@ -1,67 +1,392 @@
|
||||
export * from './avatar-chip/components/AvatarChip';
|
||||
export * from './avatar-chip/components/AvatarChipLeftComponent';
|
||||
export * from './avatar-chip/components/LinkAvatarChip';
|
||||
export * from './avatar-chip/types/AvatarChipsCommonProps.type';
|
||||
export * from './avatar-chip/types/AvatarChipsVariant.type';
|
||||
export * from './avatar/components/Avatar';
|
||||
export * from './avatar/components/AvatarGroup';
|
||||
export * from './avatar/components/states/isInvalidAvatarUrlState';
|
||||
export * from './avatar/constants/AvatarPropertiesBySize';
|
||||
export * from './avatar/types/AvatarSize';
|
||||
export * from './avatar/types/AvatarType';
|
||||
export * from './banner/components/Banner';
|
||||
export * from './checkmark/components/AnimatedCheckmark';
|
||||
export * from './checkmark/components/Checkmark';
|
||||
export * from './chip/components/Chip';
|
||||
export * from './chip/components/LinkChip';
|
||||
export * from './color/components/ColorSample';
|
||||
export * from './icon/components/IconAddressBook';
|
||||
export * from './icon/components/IconGmail';
|
||||
export * from './icon/components/IconGoogle';
|
||||
export * from './icon/components/IconGoogleCalendar';
|
||||
export * from './icon/components/IconLock';
|
||||
export * from './icon/components/IconMicrosoft';
|
||||
export * from './icon/components/IconMicrosoftCalendar';
|
||||
export * from './icon/components/IconMicrosoftOutlook';
|
||||
export * from './icon/components/IconRelationManyToOne';
|
||||
export * from './icon/components/IconTwentyStar';
|
||||
export * from './icon/components/IconTwentyStarFilled';
|
||||
export * from './icon/components/IllustrationIconArray';
|
||||
export * from './icon/components/IllustrationIconCalendarEvent';
|
||||
export * from './icon/components/IllustrationIconCalendarTime';
|
||||
export * from './icon/components/IllustrationIconCurrency';
|
||||
export * from './icon/components/IllustrationIconJson';
|
||||
export * from './icon/components/IllustrationIconLink';
|
||||
export * from './icon/components/IllustrationIconMail';
|
||||
export * from './icon/components/IllustrationIconManyToMany';
|
||||
export * from './icon/components/IllustrationIconMap';
|
||||
export * from './icon/components/IllustrationIconNumbers';
|
||||
export * from './icon/components/IllustrationIconOneToMany';
|
||||
export * from './icon/components/IllustrationIconOneToOne';
|
||||
export * from './icon/components/IllustrationIconPhone';
|
||||
export * from './icon/components/IllustrationIconSetting';
|
||||
export * from './icon/components/IllustrationIconStar';
|
||||
export * from './icon/components/IllustrationIconTag';
|
||||
export * from './icon/components/IllustrationIconTags';
|
||||
export * from './icon/components/IllustrationIconText';
|
||||
export * from './icon/components/IllustrationIconToggle';
|
||||
export * from './icon/components/IllustrationIconUid';
|
||||
export * from './icon/components/IllustrationIconUser';
|
||||
export * from './icon/components/IllustrationIconWrapper';
|
||||
export * from './icon/components/TablerIcons';
|
||||
export * from './icon/hooks/useIcons';
|
||||
export * from './icon/providers/IconsProvider';
|
||||
export * from './icon/states/iconsState';
|
||||
export * from './icon/types/IconComponent';
|
||||
export * from './info/components/Info';
|
||||
export * from './status/components/Status';
|
||||
export * from './tag/components/Tag';
|
||||
export * from './text/components/HorizontalSeparator';
|
||||
export * from './text/components/SeparatorLineText';
|
||||
export * from './tooltip/AppTooltip';
|
||||
export * from './tooltip/OverflowingTextWithTooltip';
|
||||
export * from './typography/components/H1Title';
|
||||
export * from './typography/components/H2Title';
|
||||
export * from './typography/components/H3Title';
|
||||
export * from './typography/components/Label';
|
||||
export * from './typography/components/StyledText';
|
||||
/*
|
||||
* _____ _
|
||||
*|_ _|_ _____ _ __ | |_ _ _
|
||||
* | | \ \ /\ / / _ \ '_ \| __| | | | Auto-generated file
|
||||
* | | \ V V / __/ | | | |_| |_| | Any edits to this will be overridden
|
||||
* |_| \_/\_/ \___|_| |_|\__|\__, |
|
||||
* |___/
|
||||
*/
|
||||
|
||||
export type { AvatarProps } from './avatar/components/Avatar';
|
||||
export { Avatar } from './avatar/components/Avatar';
|
||||
export type { AvatarGroupProps } from './avatar/components/AvatarGroup';
|
||||
export { AvatarGroup } from './avatar/components/AvatarGroup';
|
||||
export { invalidAvatarUrlsState } from './avatar/components/states/isInvalidAvatarUrlState';
|
||||
export { AVATAR_PROPERTIES_BY_SIZE } from './avatar/constants/AvatarPropertiesBySize';
|
||||
export type { AvatarSize } from './avatar/types/AvatarSize';
|
||||
export type { AvatarType } from './avatar/types/AvatarType';
|
||||
export type { BannerVariant } from './banner/components/Banner';
|
||||
export { Banner } from './banner/components/Banner';
|
||||
export type { AnimatedCheckmarkProps } from './checkmark/components/AnimatedCheckmark';
|
||||
export { AnimatedCheckmark } from './checkmark/components/AnimatedCheckmark';
|
||||
export type { CheckmarkProps } from './checkmark/components/Checkmark';
|
||||
export { Checkmark } from './checkmark/components/Checkmark';
|
||||
export type {
|
||||
ColorSampleVariant,
|
||||
ColorSampleProps,
|
||||
} from './color/components/ColorSample';
|
||||
export { ColorSample } from './color/components/ColorSample';
|
||||
export { IconAddressBook } from './icon/components/IconAddressBook';
|
||||
export { IconGmail } from './icon/components/IconGmail';
|
||||
export { IconGoogle } from './icon/components/IconGoogle';
|
||||
export { IconGoogleCalendar } from './icon/components/IconGoogleCalendar';
|
||||
export { IconLockCustom } from './icon/components/IconLock';
|
||||
export { IconMicrosoft } from './icon/components/IconMicrosoft';
|
||||
export { IconMicrosoftCalendar } from './icon/components/IconMicrosoftCalendar';
|
||||
export { IconMicrosoftOutlook } from './icon/components/IconMicrosoftOutlook';
|
||||
export { IconRelationManyToOne } from './icon/components/IconRelationManyToOne';
|
||||
export { IconTwentyStar } from './icon/components/IconTwentyStar';
|
||||
export { IconTwentyStarFilled } from './icon/components/IconTwentyStarFilled';
|
||||
export { IllustrationIconArray } from './icon/components/IllustrationIconArray';
|
||||
export { IllustrationIconCalendarEvent } from './icon/components/IllustrationIconCalendarEvent';
|
||||
export { IllustrationIconCalendarTime } from './icon/components/IllustrationIconCalendarTime';
|
||||
export { IllustrationIconCurrency } from './icon/components/IllustrationIconCurrency';
|
||||
export { IllustrationIconJson } from './icon/components/IllustrationIconJson';
|
||||
export { IllustrationIconLink } from './icon/components/IllustrationIconLink';
|
||||
export { IllustrationIconMail } from './icon/components/IllustrationIconMail';
|
||||
export { IllustrationIconManyToMany } from './icon/components/IllustrationIconManyToMany';
|
||||
export { IllustrationIconMap } from './icon/components/IllustrationIconMap';
|
||||
export { IllustrationIconNumbers } from './icon/components/IllustrationIconNumbers';
|
||||
export { IllustrationIconOneToMany } from './icon/components/IllustrationIconOneToMany';
|
||||
export { IllustrationIconOneToOne } from './icon/components/IllustrationIconOneToOne';
|
||||
export { IllustrationIconPhone } from './icon/components/IllustrationIconPhone';
|
||||
export { IllustrationIconSetting } from './icon/components/IllustrationIconSetting';
|
||||
export { IllustrationIconStar } from './icon/components/IllustrationIconStar';
|
||||
export { IllustrationIconTag } from './icon/components/IllustrationIconTag';
|
||||
export { IllustrationIconTags } from './icon/components/IllustrationIconTags';
|
||||
export { IllustrationIconText } from './icon/components/IllustrationIconText';
|
||||
export { IllustrationIconToggle } from './icon/components/IllustrationIconToggle';
|
||||
export { IllustrationIconUid } from './icon/components/IllustrationIconUid';
|
||||
export { IllustrationIconUser } from './icon/components/IllustrationIconUser';
|
||||
export { IllustrationIconWrapper } from './icon/components/IllustrationIconWrapper';
|
||||
export type { TablerIconsProps } from './icon/components/TablerIcons';
|
||||
export {
|
||||
Icon123,
|
||||
IconAlertCircle,
|
||||
IconAlertTriangle,
|
||||
IconApi,
|
||||
IconAppWindow,
|
||||
IconApps,
|
||||
IconArchive,
|
||||
IconArchiveOff,
|
||||
IconArrowBackUp,
|
||||
IconArrowDown,
|
||||
IconArrowLeft,
|
||||
IconArrowRight,
|
||||
IconArrowUp,
|
||||
IconArrowUpRight,
|
||||
IconArrowsDiagonal,
|
||||
IconArrowsVertical,
|
||||
IconAt,
|
||||
IconBaselineDensitySmall,
|
||||
IconBell,
|
||||
IconBolt,
|
||||
IconBook2,
|
||||
IconBookmark,
|
||||
IconBookmarkPlus,
|
||||
IconBox,
|
||||
IconBrackets,
|
||||
IconBracketsAngle,
|
||||
IconBracketsContain,
|
||||
IconBrandDaysCounter,
|
||||
IconBrandGithub,
|
||||
IconBrandGoogle,
|
||||
IconBrandGraphql,
|
||||
IconBrandLinkedin,
|
||||
IconBrandX,
|
||||
IconBriefcase,
|
||||
IconBrowserMaximize,
|
||||
IconBuildingSkyscraper,
|
||||
IconCalendar,
|
||||
IconCalendarDue,
|
||||
IconCalendarEvent,
|
||||
IconCalendarTime,
|
||||
IconCalendarX,
|
||||
IconChartCandle,
|
||||
IconCheck,
|
||||
IconCheckbox,
|
||||
IconChevronDown,
|
||||
IconChevronLeft,
|
||||
IconChevronRight,
|
||||
IconChevronUp,
|
||||
IconChevronsRight,
|
||||
IconCircleDot,
|
||||
IconCircleOff,
|
||||
IconCirclePlus,
|
||||
IconCircleX,
|
||||
IconClick,
|
||||
IconClockHour8,
|
||||
IconClockPlay,
|
||||
IconClockShare,
|
||||
IconCode,
|
||||
IconCodeCircle,
|
||||
IconCoins,
|
||||
IconColorSwatch,
|
||||
IconComment,
|
||||
IconCopy,
|
||||
IconCreativeCommonsSa,
|
||||
IconCreditCard,
|
||||
IconCsv,
|
||||
IconCube,
|
||||
IconCurrencyAfghani,
|
||||
IconCurrencyBahraini,
|
||||
IconCurrencyBaht,
|
||||
IconCurrencyDinar,
|
||||
IconCurrencyDirham,
|
||||
IconCurrencyDollar,
|
||||
IconCurrencyDollarAustralian,
|
||||
IconCurrencyDollarBrunei,
|
||||
IconCurrencyDollarCanadian,
|
||||
IconCurrencyDollarGuyanese,
|
||||
IconCurrencyDollarSingapore,
|
||||
IconCurrencyDong,
|
||||
IconCurrencyDram,
|
||||
IconCurrencyEuro,
|
||||
IconCurrencyFlorin,
|
||||
IconCurrencyForint,
|
||||
IconCurrencyFrank,
|
||||
IconCurrencyGuarani,
|
||||
IconCurrencyHryvnia,
|
||||
IconCurrencyIranianRial,
|
||||
IconCurrencyKip,
|
||||
IconCurrencyKroneCzech,
|
||||
IconCurrencyKroneDanish,
|
||||
IconCurrencyKroneSwedish,
|
||||
IconCurrencyLari,
|
||||
IconCurrencyLeu,
|
||||
IconCurrencyLira,
|
||||
IconCurrencyLyd,
|
||||
IconCurrencyManat,
|
||||
IconCurrencyNaira,
|
||||
IconCurrencyPaanga,
|
||||
IconCurrencyPeso,
|
||||
IconCurrencyPound,
|
||||
IconCurrencyQuetzal,
|
||||
IconCurrencyReal,
|
||||
IconCurrencyRenminbi,
|
||||
IconCurrencyRiyal,
|
||||
IconCurrencyRubel,
|
||||
IconCurrencyRufiyaa,
|
||||
IconCurrencyRupee,
|
||||
IconCurrencyRupeeNepalese,
|
||||
IconCurrencyShekel,
|
||||
IconCurrencySom,
|
||||
IconCurrencyTaka,
|
||||
IconCurrencyTenge,
|
||||
IconCurrencyTugrik,
|
||||
IconCurrencyWon,
|
||||
IconCurrencyYen,
|
||||
IconCurrencyYuan,
|
||||
IconCurrencyZloty,
|
||||
IconDatabase,
|
||||
IconDatabaseExport,
|
||||
IconDecimal,
|
||||
IconDeviceFloppy,
|
||||
IconDoorEnter,
|
||||
IconDotsVertical,
|
||||
IconDownload,
|
||||
IconEditCircle,
|
||||
IconExternalLink,
|
||||
IconEye,
|
||||
IconEyeOff,
|
||||
IconEyeShare,
|
||||
IconFile,
|
||||
IconFileCheck,
|
||||
IconFileExport,
|
||||
IconFileImport,
|
||||
IconFilePencil,
|
||||
IconFileText,
|
||||
IconFileUpload,
|
||||
IconFileZip,
|
||||
IconFilter,
|
||||
IconFilterCog,
|
||||
IconFilterOff,
|
||||
IconFlag,
|
||||
IconFlask,
|
||||
IconFocusCentered,
|
||||
IconFolder,
|
||||
IconFolderOpen,
|
||||
IconFolderPlus,
|
||||
IconFolderRoot,
|
||||
IconForbid,
|
||||
IconFunction,
|
||||
IconGauge,
|
||||
IconGitCommit,
|
||||
IconGripVertical,
|
||||
IconH1,
|
||||
IconH2,
|
||||
IconH3,
|
||||
IconHandClick,
|
||||
IconHandMove,
|
||||
IconHeadphones,
|
||||
IconHeart,
|
||||
IconHeartOff,
|
||||
IconHeartRateMonitor,
|
||||
IconHelpCircle,
|
||||
IconHierarchy,
|
||||
IconHierarchy2,
|
||||
IconHistory,
|
||||
IconHistoryToggle,
|
||||
IconHome,
|
||||
IconHours24,
|
||||
IconId,
|
||||
IconInbox,
|
||||
IconInfoCircle,
|
||||
IconJson,
|
||||
IconKey,
|
||||
IconLanguage,
|
||||
IconLayersLinked,
|
||||
IconLayout,
|
||||
IconLayoutKanban,
|
||||
IconLayoutList,
|
||||
IconLayoutNavbar,
|
||||
IconLayoutSidebarLeftCollapse,
|
||||
IconLayoutSidebarRight,
|
||||
IconLayoutSidebarRightCollapse,
|
||||
IconLayoutSidebarRightExpand,
|
||||
IconLibraryPlus,
|
||||
IconLifebuoy,
|
||||
IconLink,
|
||||
IconLinkOff,
|
||||
IconList,
|
||||
IconListCheck,
|
||||
IconListDetails,
|
||||
IconListNumbers,
|
||||
IconLoader,
|
||||
IconLock,
|
||||
IconLockOpen,
|
||||
IconLogin2,
|
||||
IconLogout,
|
||||
IconMail,
|
||||
IconMailCog,
|
||||
IconMap,
|
||||
IconMaximize,
|
||||
IconMessage,
|
||||
IconMinus,
|
||||
IconMoneybag,
|
||||
IconMoodSmile,
|
||||
IconMoon,
|
||||
IconMouse2,
|
||||
IconNorthStar,
|
||||
IconNoteOff,
|
||||
IconNotes,
|
||||
IconNumber9,
|
||||
IconNumbers,
|
||||
IconPaperclip,
|
||||
IconPassword,
|
||||
IconPencil,
|
||||
IconPercentage,
|
||||
IconPhone,
|
||||
IconPhoto,
|
||||
IconPhotoUp,
|
||||
IconPilcrow,
|
||||
IconPlayerPause,
|
||||
IconPlayerPlay,
|
||||
IconPlayerStop,
|
||||
IconPlaylistAdd,
|
||||
IconPlaystationSquare,
|
||||
IconPlug,
|
||||
IconPlus,
|
||||
IconPoint,
|
||||
IconPower,
|
||||
IconPresentation,
|
||||
IconPrinter,
|
||||
IconProgressCheck,
|
||||
IconPuzzle,
|
||||
IconQuestionMark,
|
||||
IconRefresh,
|
||||
IconRefreshDot,
|
||||
IconRelationManyToMany,
|
||||
IconRelationOneToMany,
|
||||
IconRelationOneToOne,
|
||||
IconReload,
|
||||
IconRepeat,
|
||||
IconRestore,
|
||||
IconRobot,
|
||||
IconRocket,
|
||||
IconRotate,
|
||||
IconRotate2,
|
||||
IconSearch,
|
||||
IconSend,
|
||||
IconServer,
|
||||
IconServer2,
|
||||
IconSettings,
|
||||
IconSettings2,
|
||||
IconSettingsAutomation,
|
||||
IconSlash,
|
||||
IconSortAZ,
|
||||
IconSortDescending,
|
||||
IconSortZA,
|
||||
IconSparkles,
|
||||
IconSql,
|
||||
IconSquare,
|
||||
IconSquareKey,
|
||||
IconSquareRoundedCheck,
|
||||
IconSquareRoundedX,
|
||||
IconStatusChange,
|
||||
IconStepInto,
|
||||
IconSun,
|
||||
IconSunMoon,
|
||||
IconSwitchHorizontal,
|
||||
IconTable,
|
||||
IconTag,
|
||||
IconTags,
|
||||
IconTarget,
|
||||
IconTargetArrow,
|
||||
IconTestPipe,
|
||||
IconTextSize,
|
||||
IconTextWrap,
|
||||
IconTimeDuration30,
|
||||
IconTimeDuration60,
|
||||
IconTimelineEvent,
|
||||
IconTool,
|
||||
IconTrash,
|
||||
IconTrashX,
|
||||
IconTypography,
|
||||
IconUnlink,
|
||||
IconUpload,
|
||||
IconUser,
|
||||
IconUserCircle,
|
||||
IconUserCog,
|
||||
IconUserPin,
|
||||
IconUserPlus,
|
||||
IconUsers,
|
||||
IconVariable,
|
||||
IconVariablePlus,
|
||||
IconVersions,
|
||||
IconVersionsOff,
|
||||
IconVideo,
|
||||
IconWand,
|
||||
IconWebhook,
|
||||
IconWorld,
|
||||
IconX,
|
||||
} from './icon/components/TablerIcons';
|
||||
export { useIcons } from './icon/hooks/useIcons';
|
||||
export { IconsProvider } from './icon/providers/IconsProvider';
|
||||
export { iconsState } from './icon/states/iconsState';
|
||||
export type {
|
||||
IconComponentProps,
|
||||
IconComponent,
|
||||
} from './icon/types/IconComponent';
|
||||
export type { InfoAccent, InfoProps } from './info/components/Info';
|
||||
export { Info } from './info/components/Info';
|
||||
export { Status } from './status/components/Status';
|
||||
export { HorizontalSeparator } from './text/components/HorizontalSeparator';
|
||||
export { SeparatorLineText } from './text/components/SeparatorLineText';
|
||||
export type { AppTooltipProps } from './tooltip/AppTooltip';
|
||||
export {
|
||||
TooltipPosition,
|
||||
TooltipDelay,
|
||||
AppTooltip,
|
||||
} from './tooltip/AppTooltip';
|
||||
export { OverflowingTextWithTooltip } from './tooltip/OverflowingTextWithTooltip';
|
||||
export { H1TitleFontColor, H1Title } from './typography/components/H1Title';
|
||||
export { H2Title } from './typography/components/H2Title';
|
||||
export { H3Title } from './typography/components/H3Title';
|
||||
export type { LabelVariant } from './typography/components/Label';
|
||||
export { Label } from './typography/components/Label';
|
||||
export {
|
||||
StyledTextContent,
|
||||
StyledTextWrapper,
|
||||
StyledText,
|
||||
} from './typography/components/StyledText';
|
||||
|
||||
@ -69,14 +69,18 @@ export const AppTooltip = ({
|
||||
width,
|
||||
isOpen,
|
||||
}: AppTooltipProps) => {
|
||||
const delayInMs =
|
||||
delay === TooltipDelay.noDelay
|
||||
? 0
|
||||
: delay === TooltipDelay.shortDelay
|
||||
? 300
|
||||
: delay === TooltipDelay.mediumDelay
|
||||
? 500
|
||||
: 1000;
|
||||
const getDelayInMis = (delay: TooltipDelay) => {
|
||||
switch (delay) {
|
||||
case TooltipDelay.noDelay:
|
||||
return 0;
|
||||
case TooltipDelay.shortDelay:
|
||||
return 300;
|
||||
case TooltipDelay.mediumDelay:
|
||||
return 500;
|
||||
case TooltipDelay.longDelay:
|
||||
return 1000;
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<StyledAppTooltip
|
||||
@ -84,7 +88,7 @@ export const AppTooltip = ({
|
||||
anchorSelect,
|
||||
className,
|
||||
content,
|
||||
delayShow: delayInMs,
|
||||
delayShow: getDelayInMis(delay),
|
||||
delayHide: 20,
|
||||
hidden,
|
||||
noArrow,
|
||||
|
||||
@ -1,4 +1,17 @@
|
||||
export * from './loader/components/Loader';
|
||||
export * from './progress-bar/components/CircularProgressBar';
|
||||
export * from './progress-bar/components/ProgressBar';
|
||||
export * from './progress-bar/hooks/useProgressAnimation';
|
||||
/*
|
||||
* _____ _
|
||||
*|_ _|_ _____ _ __ | |_ _ _
|
||||
* | | \ \ /\ / / _ \ '_ \| __| | | | Auto-generated file
|
||||
* | | \ V V / __/ | | | |_| |_| | Any edits to this will be overridden
|
||||
* |_| \_/\_/ \___|_| |_|\__|\__, |
|
||||
* |___/
|
||||
*/
|
||||
|
||||
export { Loader } from './loader/components/Loader';
|
||||
export { CircularProgressBar } from './progress-bar/components/CircularProgressBar';
|
||||
export type {
|
||||
ProgressBarProps,
|
||||
StyledBarProps,
|
||||
} from './progress-bar/components/ProgressBar';
|
||||
export { ProgressBar } from './progress-bar/components/ProgressBar';
|
||||
export { useProgressAnimation } from './progress-bar/hooks/useProgressAnimation';
|
||||
|
||||
@ -1,11 +1 @@
|
||||
export * from './accessibility';
|
||||
export * from './components';
|
||||
export * from './display';
|
||||
export * from './feedback';
|
||||
export * from './input';
|
||||
export * from './json-visualizer';
|
||||
export * from './layout';
|
||||
export * from './navigation';
|
||||
export * from './testing';
|
||||
export * from './theme';
|
||||
export * from './utilities';
|
||||
export default {};
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
import { css, useTheme } from '@emotion/react';
|
||||
import styled from '@emotion/styled';
|
||||
import { Pill } from '@ui/components/Pill/Pill';
|
||||
import { useIsMobile } from '@ui/utilities';
|
||||
import { getOsShortcutSeparator } from '@ui/utilities/device/getOsShortcutSeparator';
|
||||
import { MotionProps, motion } from 'framer-motion';
|
||||
import { Link } from 'react-router-dom';
|
||||
|
||||
import { Pill } from '@ui/components/Pill/Pill';
|
||||
import {
|
||||
ButtonAccent,
|
||||
ButtonProps,
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import IconListViewGripRaw from '@ui/input/components/list-view-grip.svg?react';
|
||||
import IconListViewGripRaw from '@assets/misc/list-view-grip.svg?react';
|
||||
import { IconComponentProps } from '@ui/display/icon/types/IconComponent';
|
||||
|
||||
type IconListViewGripProps = Pick<IconComponentProps, 'size' | 'stroke'>;
|
||||
|
||||