diff --git a/package.json b/package.json index fdbbcca2..f1e4abc2 100644 --- a/package.json +++ b/package.json @@ -2,8 +2,7 @@ "name": "@ibexa/design-system", "version": "1.0.0", "main": "index.js", - "repository": "git@github.com:GrabowskiM/design-system.git", - "author": "MichaƂ Grabowski ", + "repository": "git@github.com:ibexa/design-system.git", "license": "MIT", "private": true, "type": "module", diff --git a/packages/components/.babelrc b/packages/components/.babelrc index 1af45950..0d0a2c5e 100644 --- a/packages/components/.babelrc +++ b/packages/components/.babelrc @@ -4,17 +4,14 @@ [ "module-resolver", { - "root": ["./"], + "root": ["./src"], "alias": { - "@ids-core": ["./packages/core/src"], - "@ids-components": "./packages/components/src/components", - "@ids-context": "./packages/components/src/context", - "@ids-hoc": "./packages/components/src/hoc", - "@ids-hooks": "./packages/components/src/hooks", - "@ids-partials": "./packages/components/src/partials", - "@ids-shared": "./packages/components/src/shared", - "@ids-sb-decorators": "./src/storybook/decorators", - "@ids-types": "./types" + "@ids-components": "./src/components", + "@ids-context": "./src/context", + "@ids-hoc": "./src/hoc", + "@ids-hooks": "./src/hooks", + "@ids-partials": "./src/partials", + "@ids-shared": "./src/shared" } } ] diff --git a/packages/components/package.json b/packages/components/package.json index 27e0f17c..578414e6 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -17,11 +17,10 @@ "test": "yarn prettier:test && yarn eslint:test && yarn ts:test", "fix": "yarn prettier:fix && yarn eslint:fix", "extract-translations": "node ./scripts/extract_translations.js", - "generate-exports": "node ./scripts/generate_exports.js", "build:clear": "rm -rf dist/* tsconfig.build.tsbuildinfo", "build:js": "babel src --out-dir dist --delete-dir-on-start --extensions \".js,.ts,.jsx,.tsx\"", "build:types": "tsc -b tsconfig.build.json", - "build": "yarn build:clear && yarn build:js && yarn build:types && yarn generate-exports", + "build": "yarn build:clear && yarn build:js && yarn build:types", "watch:js": "babel src --out-dir dist --delete-dir-on-start --extensions \".js,.ts,.jsx,.tsx\" --watch", "watch:types": "tsc -b tsconfig.build.json --watch", "watch": "yarn build:clear && (yarn watch:js & yarn watch:types)" diff --git a/packages/components/scripts/generate_exports.js b/packages/components/scripts/generate_exports.js deleted file mode 100644 index 1d5163c2..00000000 --- a/packages/components/scripts/generate_exports.js +++ /dev/null @@ -1,31 +0,0 @@ -const fs = require('fs'); -const path = require('path'); - -const distPath = path.resolve(__dirname, '../dist'); -const contextDistPath = path.resolve(__dirname, '../dist/context'); -const packageJsonPath = path.resolve(__dirname, '../package.json'); - -const PATHS_TO_EXCLUDE = ['context', 'internal']; - -const componentsPaths = fs.readdirSync(distPath); -const contextComponentsPaths = fs.readdirSync(contextDistPath); - -const packageJsonExports = {}; - -componentsPaths - .filter((name) => !PATHS_TO_EXCLUDE.includes(name)) - .forEach((name) => { - packageJsonExports[`./${name}`] = `./dist/${name}/index.js`; - }); - -contextComponentsPaths.forEach((name) => { - packageJsonExports[`./context/${name}`] = `./dist/context/${name}/index.js`; -}); - -const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8')); - -packageJson.exports = packageJsonExports; - -fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2)); - -console.log('Updated package.json with exports field.'); // eslint-disable-line no-console diff --git a/packages/components/src/components/Accordion/Accordion.tsx b/packages/components/src/components/Accordion/Accordion.tsx index 7da86adb..ec7e6bca 100644 --- a/packages/components/src/components/Accordion/Accordion.tsx +++ b/packages/components/src/components/Accordion/Accordion.tsx @@ -2,7 +2,7 @@ import React, { useContext, useEffect, useRef, useState } from 'react'; import { Expander, ExpanderType } from '@ids-components/Expander'; import { TranslatorContext } from '@ids-context/Translator'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; +import { createCssClassNames } from '@ids-core'; import { AccordionProps } from './Accordion.types'; diff --git a/packages/components/src/components/AltRadio/AltRadioInput/AltRadioInput.tsx b/packages/components/src/components/AltRadio/AltRadioInput/AltRadioInput.tsx index a22421e3..c66cedd9 100644 --- a/packages/components/src/components/AltRadio/AltRadioInput/AltRadioInput.tsx +++ b/packages/components/src/components/AltRadio/AltRadioInput/AltRadioInput.tsx @@ -1,8 +1,8 @@ import React, { useRef, useState } from 'react'; import { BaseChoiceInput } from '@ids-partials/BaseChoiceInput'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; -import withStateChecked from '@ids-hoc/withStateChecked'; +import { createCssClassNames } from '@ids-core'; +import { withStateChecked } from '@ids-hoc/withStateChecked'; import { AltRadioInputProps } from './AltRadioInput.types'; diff --git a/packages/components/src/components/AltRadio/AltRadiosListField/AltRadiosListField.tsx b/packages/components/src/components/AltRadio/AltRadiosListField/AltRadiosListField.tsx index 436597c4..7694b982 100644 --- a/packages/components/src/components/AltRadio/AltRadiosListField/AltRadiosListField.tsx +++ b/packages/components/src/components/AltRadio/AltRadiosListField/AltRadiosListField.tsx @@ -3,8 +3,8 @@ import React, { useCallback } from 'react'; import { AltRadioInput } from '../AltRadioInput'; import { BaseInputsList } from '@ids-partials/BaseInputsList'; import { HelperTextType } from '@ids-components/HelperText'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; -import withStateValue from '@ids-hoc/withStateValue'; +import { createCssClassNames } from '@ids-core'; +import { withStateValue } from '@ids-hoc/withStateValue'; import { AltRadiosListFieldDirection, AltRadiosListFieldItem, AltRadiosListFieldProps } from './AltRadiosListField.types'; diff --git a/packages/components/src/components/Autosave/Autosave.tsx b/packages/components/src/components/Autosave/Autosave.tsx index a2cac198..0f29c6a6 100644 --- a/packages/components/src/components/Autosave/Autosave.tsx +++ b/packages/components/src/components/Autosave/Autosave.tsx @@ -2,7 +2,7 @@ import React, { useContext } from 'react'; import { Icon, IconSize } from '@ids-components/Icon'; import { TranslatorContext } from '@ids-context/Translator'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; +import { createCssClassNames } from '@ids-core'; import { AutosaveProps, AutosaveStatus } from './Autosave.types'; diff --git a/packages/components/src/components/Badge/Badge.tsx b/packages/components/src/components/Badge/Badge.tsx index 0ad1ad38..27c51b34 100644 --- a/packages/components/src/components/Badge/Badge.tsx +++ b/packages/components/src/components/Badge/Badge.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; +import { createCssClassNames } from '@ids-core'; import { BadgeProps, BadgeSize } from './Badge.types'; diff --git a/packages/components/src/components/Button/Button.tsx b/packages/components/src/components/Button/Button.tsx index a65dc641..05a30703 100644 --- a/packages/components/src/components/Button/Button.tsx +++ b/packages/components/src/components/Button/Button.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { Icon, IconSize } from '@ids-components/Icon'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; +import { createCssClassNames } from '@ids-core'; import { ButtonProps, ButtonSize, ButtonType } from './Button.types'; diff --git a/packages/components/src/components/Checkbox/CheckboxField/CheckboxField.tsx b/packages/components/src/components/Checkbox/CheckboxField/CheckboxField.tsx index 485c77e3..8f02a4bc 100644 --- a/packages/components/src/components/Checkbox/CheckboxField/CheckboxField.tsx +++ b/packages/components/src/components/Checkbox/CheckboxField/CheckboxField.tsx @@ -2,8 +2,8 @@ import React, { useCallback } from 'react'; import { BaseChoiceInputField } from '@ids-partials/BaseChoiceInputField'; import { CheckboxInput } from '../CheckboxInput'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; -import withStateChecked from '@ids-hoc/withStateChecked'; +import { createCssClassNames } from '@ids-core'; +import { withStateChecked } from '@ids-hoc/withStateChecked'; import { CheckboxFieldProps } from './CheckboxField.types'; diff --git a/packages/components/src/components/Checkbox/CheckboxInput/CheckboxInput.tsx b/packages/components/src/components/Checkbox/CheckboxInput/CheckboxInput.tsx index c94a3919..a2e24cc5 100644 --- a/packages/components/src/components/Checkbox/CheckboxInput/CheckboxInput.tsx +++ b/packages/components/src/components/Checkbox/CheckboxInput/CheckboxInput.tsx @@ -1,8 +1,8 @@ import React from 'react'; import { BaseChoiceInput } from '@ids-partials/BaseChoiceInput'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; -import withStateChecked from '@ids-hoc/withStateChecked'; +import { createCssClassNames } from '@ids-core'; +import { withStateChecked } from '@ids-hoc/withStateChecked'; import { CheckboxInputProps } from './CheckboxInput.types'; diff --git a/packages/components/src/components/Checkbox/CheckboxesListField/CheckboxesListField.tsx b/packages/components/src/components/Checkbox/CheckboxesListField/CheckboxesListField.tsx index b38c2328..220988a4 100644 --- a/packages/components/src/components/Checkbox/CheckboxesListField/CheckboxesListField.tsx +++ b/packages/components/src/components/Checkbox/CheckboxesListField/CheckboxesListField.tsx @@ -3,8 +3,8 @@ import React, { useCallback } from 'react'; import { BaseInputsList } from '@ids-partials/BaseInputsList'; import { CheckboxField } from '../CheckboxField'; import { HelperTextType } from '@ids-components/HelperText'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; -import withStateValue from '@ids-hoc/withStateValue'; +import { createCssClassNames } from '@ids-core'; +import { withStateValue } from '@ids-hoc/withStateValue'; import { CheckboxesListFieldAction, diff --git a/packages/components/src/components/ChoiceInputLabel/ChoiceInputLabel.tsx b/packages/components/src/components/ChoiceInputLabel/ChoiceInputLabel.tsx index e6ff8975..63ae378b 100644 --- a/packages/components/src/components/ChoiceInputLabel/ChoiceInputLabel.tsx +++ b/packages/components/src/components/ChoiceInputLabel/ChoiceInputLabel.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; +import { createCssClassNames } from '@ids-core'; import { ChoiceInputLabelProps } from './ChoiceInputLabel.types'; diff --git a/packages/components/src/components/Dropdown/DropdownMultiInput/DropdownMultiInput.tsx b/packages/components/src/components/Dropdown/DropdownMultiInput/DropdownMultiInput.tsx index 14a4fcaa..9ac90a33 100644 --- a/packages/components/src/components/Dropdown/DropdownMultiInput/DropdownMultiInput.tsx +++ b/packages/components/src/components/Dropdown/DropdownMultiInput/DropdownMultiInput.tsx @@ -1,8 +1,8 @@ import React from 'react'; import { BaseDropdown } from '@ids-partials/BaseDropdown'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; -import withStateValue from '@ids-hoc/withStateValue'; +import { createCssClassNames } from '@ids-core'; +import { withStateValue } from '@ids-hoc/withStateValue'; import { DropdownMultiInputAction, DropdownMultiInputItem, DropdownMultiInputProps } from './DropdownMultiInput.types'; import { CheckboxInput } from '@ids-components/Checkbox'; diff --git a/packages/components/src/components/Dropdown/DropdownSingleInput/DropdownSingleInput.tsx b/packages/components/src/components/Dropdown/DropdownSingleInput/DropdownSingleInput.tsx index 2586fc02..90f4da30 100644 --- a/packages/components/src/components/Dropdown/DropdownSingleInput/DropdownSingleInput.tsx +++ b/packages/components/src/components/Dropdown/DropdownSingleInput/DropdownSingleInput.tsx @@ -1,8 +1,8 @@ import React from 'react'; import { BaseDropdown, ExtraDropdownItemClickParamsType } from '@ids-partials/BaseDropdown'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; -import withStateValue from '@ids-hoc/withStateValue'; +import { createCssClassNames } from '@ids-core'; +import { withStateValue } from '@ids-hoc/withStateValue'; import { DropdownSingleInputItem, DropdownSingleInputProps } from './DropdownSingleInput.types'; diff --git a/packages/components/src/components/Expander/Expander.tsx b/packages/components/src/components/Expander/Expander.tsx index ed81d19b..1113240b 100644 --- a/packages/components/src/components/Expander/Expander.tsx +++ b/packages/components/src/components/Expander/Expander.tsx @@ -2,7 +2,7 @@ import React from 'react'; import { Button, ButtonSize, ButtonType } from '@ids-components/Button'; import { Icon, IconSize } from '@ids-components/Icon'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; +import { createCssClassNames } from '@ids-core'; import { ExpanderProps, ExpanderType } from './Expander.types'; diff --git a/packages/components/src/components/HelperText/HelperText.tsx b/packages/components/src/components/HelperText/HelperText.tsx index a8568d1c..08078c01 100644 --- a/packages/components/src/components/HelperText/HelperText.tsx +++ b/packages/components/src/components/HelperText/HelperText.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { Icon, IconSize } from '@ids-components/Icon'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; +import { createCssClassNames } from '@ids-core'; import { HelperTextProps, HelperTextType } from './HelperText.types'; diff --git a/packages/components/src/components/Icon/Icon.tsx b/packages/components/src/components/Icon/Icon.tsx index d4d141a7..7c5605ad 100644 --- a/packages/components/src/components/Icon/Icon.tsx +++ b/packages/components/src/components/Icon/Icon.tsx @@ -1,7 +1,7 @@ import React, { useContext } from 'react'; import { AssetsContext, AssetsType } from '@ids-context/Assets'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; +import { createCssClassNames } from '@ids-core'; import { IconProps, IconSize } from './Icon.types'; diff --git a/packages/components/src/components/InputText/InputTextField/InputTextField.tsx b/packages/components/src/components/InputText/InputTextField/InputTextField.tsx index 2d8a4172..ce66f98a 100644 --- a/packages/components/src/components/InputText/InputTextField/InputTextField.tsx +++ b/packages/components/src/components/InputText/InputTextField/InputTextField.tsx @@ -4,8 +4,8 @@ import { useInitValidators, useValidateInput } from './InputTextField.utils'; import { BaseField } from '@ids-partials/BaseField'; import { HelperTextType } from '@ids-components/HelperText'; import { InputTextInput } from '../InputTextInput'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; -import withStateValue from '@ids-hoc/withStateValue'; +import { createCssClassNames } from '@ids-core'; +import { withStateValue } from '@ids-hoc/withStateValue'; import { InputTextFieldProps, InputTextFieldValueType } from './InputTextField.types'; diff --git a/packages/components/src/components/InputText/InputTextField/InputTextField.utils.ts b/packages/components/src/components/InputText/InputTextField/InputTextField.utils.ts index d19319d4..449f2fd4 100644 --- a/packages/components/src/components/InputText/InputTextField/InputTextField.utils.ts +++ b/packages/components/src/components/InputText/InputTextField/InputTextField.utils.ts @@ -1,9 +1,7 @@ import { useContext, useEffect, useMemo, useRef, useState } from 'react'; -import BaseValidator from '@ids-core/validators/BaseValidator'; -import IsEmptyStringValidator from '@ids-core/validators/IsEmptyStringValidator'; +import { BaseValidator, IsEmptyStringValidator, type ValidationResult } from '@ids-core'; import { TranslatorContext } from '@ids-context/Translator'; -import { ValidationResult } from '@ids-core/types/validation'; import { validateInput } from '@ids-shared/validators'; import { InputTextFieldValueType } from './InputTextField.types'; diff --git a/packages/components/src/components/InputText/InputTextInput/InputTextInput.tsx b/packages/components/src/components/InputText/InputTextInput/InputTextInput.tsx index 2d5eeab5..3a352155 100644 --- a/packages/components/src/components/InputText/InputTextInput/InputTextInput.tsx +++ b/packages/components/src/components/InputText/InputTextInput/InputTextInput.tsx @@ -2,8 +2,8 @@ import React, { useImperativeHandle, useLayoutEffect, useMemo, useRef, useState import { BaseInput } from '@ids-partials/BaseInput'; import { ClearBtn } from '../../../ui/ClearBtn'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; -import withStateValue from '@ids-hoc/withStateValue'; +import { createCssClassNames } from '@ids-core'; +import { withStateValue } from '@ids-hoc/withStateValue'; import { InputTextInputProps, InputTextInputSize } from './InputTextInput.types'; import { ComponentEntryDataType } from '@ids-types/general'; diff --git a/packages/components/src/components/InputText/InputTextInput/InputTextInput.types.ts b/packages/components/src/components/InputText/InputTextInput/InputTextInput.types.ts index 75a8c1ce..1138a6cc 100644 --- a/packages/components/src/components/InputText/InputTextInput/InputTextInput.types.ts +++ b/packages/components/src/components/InputText/InputTextInput/InputTextInput.types.ts @@ -7,9 +7,9 @@ export enum InputTextInputSize { Small = 'small', } -export const INPUT_TYPE_VALUES = ['text', 'password', 'email', 'number', 'tel', 'search', 'url'] as const satisfies BaseInputType[]; +export const INPUT_TEXT_TYPE_VALUES = ['text', 'password', 'email', 'number', 'tel', 'search', 'url'] as const satisfies BaseInputType[]; -export type InputTextInputType = (typeof INPUT_TYPE_VALUES)[number]; +export type InputTextInputType = (typeof INPUT_TEXT_TYPE_VALUES)[number]; export interface InputTextInputRef { focus: () => void; diff --git a/packages/components/src/components/Label/Label.tsx b/packages/components/src/components/Label/Label.tsx index d0471fd8..3e61383a 100644 --- a/packages/components/src/components/Label/Label.tsx +++ b/packages/components/src/components/Label/Label.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; +import { createCssClassNames } from '@ids-core'; import { LabelProps } from './Label.types'; diff --git a/packages/components/src/components/RadioButton/RadioButtonField/RadioButtonField.tsx b/packages/components/src/components/RadioButton/RadioButtonField/RadioButtonField.tsx index 31cbb456..5a2d7c2d 100644 --- a/packages/components/src/components/RadioButton/RadioButtonField/RadioButtonField.tsx +++ b/packages/components/src/components/RadioButton/RadioButtonField/RadioButtonField.tsx @@ -2,8 +2,8 @@ import React, { useCallback } from 'react'; import { BaseChoiceInputField } from '@ids-partials/BaseChoiceInputField'; import { RadioButtonInput } from '../RadioButtonInput'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; -import withStateChecked from '@ids-hoc/withStateChecked'; +import { createCssClassNames } from '@ids-core'; +import { withStateChecked } from '@ids-hoc/withStateChecked'; import { RadioButtonFieldProps } from './RadioButtonField.types'; diff --git a/packages/components/src/components/RadioButton/RadioButtonInput/RadioButtonInput.tsx b/packages/components/src/components/RadioButton/RadioButtonInput/RadioButtonInput.tsx index 7232a1f9..c6a87b31 100644 --- a/packages/components/src/components/RadioButton/RadioButtonInput/RadioButtonInput.tsx +++ b/packages/components/src/components/RadioButton/RadioButtonInput/RadioButtonInput.tsx @@ -1,8 +1,8 @@ import React from 'react'; import { BaseChoiceInput } from '@ids-partials/BaseChoiceInput'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; -import withStateChecked from '@ids-hoc/withStateChecked'; +import { createCssClassNames } from '@ids-core'; +import { withStateChecked } from '@ids-hoc/withStateChecked'; import { RadioButtonInputProps } from './RadioButtonInput.types'; diff --git a/packages/components/src/components/RadioButton/RadioButtonsListField/RadioButtonsListField.tsx b/packages/components/src/components/RadioButton/RadioButtonsListField/RadioButtonsListField.tsx index 335f2e63..eb2127b1 100644 --- a/packages/components/src/components/RadioButton/RadioButtonsListField/RadioButtonsListField.tsx +++ b/packages/components/src/components/RadioButton/RadioButtonsListField/RadioButtonsListField.tsx @@ -3,8 +3,8 @@ import React from 'react'; import { BaseInputsList } from '@ids-partials/BaseInputsList'; import { HelperTextType } from '@ids-components/HelperText'; import { RadioButtonField } from '../RadioButtonField'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; -import withStateValue from '@ids-hoc/withStateValue'; +import { createCssClassNames } from '@ids-core'; +import { withStateValue } from '@ids-hoc/withStateValue'; import { RadioButtonsListFieldDirection, RadioButtonsListFieldItem, RadioButtonsListFieldProps } from './RadioButtonsListField.types'; diff --git a/packages/components/src/components/Tag/Tag.tsx b/packages/components/src/components/Tag/Tag.tsx index 11f7a015..ba81f42c 100644 --- a/packages/components/src/components/Tag/Tag.tsx +++ b/packages/components/src/components/Tag/Tag.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { Icon, IconSize } from '@ids-components/Icon'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; +import { createCssClassNames } from '@ids-core'; import { TagGhostType, TagProps, TagSize, TagType } from './Tag.types'; diff --git a/packages/components/src/components/ToggleButton/ToggleButtonField/ToggleButtonField.tsx b/packages/components/src/components/ToggleButton/ToggleButtonField/ToggleButtonField.tsx index a2e32151..9494a0e3 100644 --- a/packages/components/src/components/ToggleButton/ToggleButtonField/ToggleButtonField.tsx +++ b/packages/components/src/components/ToggleButton/ToggleButtonField/ToggleButtonField.tsx @@ -3,7 +3,7 @@ import React from 'react'; import { BaseField } from '@ids-partials/BaseField'; import { HelperTextType } from '@ids-components/HelperText'; import { ToggleButtonInput } from '../ToggleButtonInput'; -import withStateChecked from '@ids-hoc/withStateChecked'; +import { withStateChecked } from '@ids-hoc/withStateChecked'; import { ToggleButtonFieldProps } from './ToggleButtonField.types'; diff --git a/packages/components/src/components/ToggleButton/ToggleButtonInput/ToggleButtonInput.tsx b/packages/components/src/components/ToggleButton/ToggleButtonInput/ToggleButtonInput.tsx index d7c72617..f76a2806 100644 --- a/packages/components/src/components/ToggleButton/ToggleButtonInput/ToggleButtonInput.tsx +++ b/packages/components/src/components/ToggleButton/ToggleButtonInput/ToggleButtonInput.tsx @@ -3,9 +3,9 @@ import React, { useContext, useRef, useState } from 'react'; import { BaseChoiceInput } from '@ids-partials/BaseChoiceInput'; import { ChoiceInputLabel } from '@ids-components/ChoiceInputLabel'; import { TranslatorContext } from '@ids-context/Translator'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; +import { createCssClassNames } from '@ids-core'; import { useGetOrCreateId } from '@ids-hooks/generators'; -import withStateChecked from '@ids-hoc/withStateChecked'; +import { withStateChecked } from '@ids-hoc/withStateChecked'; import { ToggleButtonInputProps, ToggleButtonInputSize } from './ToggleButtonInput.types'; diff --git a/packages/components/src/components/ToggleButton/index.ts b/packages/components/src/components/ToggleButton/index.ts new file mode 100644 index 00000000..1a6c62e1 --- /dev/null +++ b/packages/components/src/components/ToggleButton/index.ts @@ -0,0 +1,2 @@ +export * from './ToggleButtonField'; +export * from './ToggleButtonInput'; diff --git a/packages/components/src/components/index.ts b/packages/components/src/components/index.ts new file mode 100644 index 00000000..04d5d534 --- /dev/null +++ b/packages/components/src/components/index.ts @@ -0,0 +1,16 @@ +export * from './Accordion'; +export * from './AltRadio'; +export * from './Autosave'; +export * from './Badge'; +export * from './Button'; +export * from './Checkbox'; +export * from './ChoiceInputLabel'; +export * from './Dropdown'; +export * from './Expander'; +export * from './HelperText'; +export * from './Icon'; +export * from './InputText'; +export * from './Label'; +export * from './RadioButton'; +export * from './Tag'; +export * from './ToggleButton'; diff --git a/packages/components/src/context/index.ts b/packages/components/src/context/index.ts new file mode 100644 index 00000000..f2abd16f --- /dev/null +++ b/packages/components/src/context/index.ts @@ -0,0 +1,2 @@ +export * from './Assets'; +export * from './Translator'; diff --git a/packages/components/src/hoc/index.ts b/packages/components/src/hoc/index.ts new file mode 100644 index 00000000..3ecc5c22 --- /dev/null +++ b/packages/components/src/hoc/index.ts @@ -0,0 +1,2 @@ +export * from './withStateChecked'; +export * from './withStateValue'; diff --git a/packages/components/src/hoc/withStateChecked.tsx b/packages/components/src/hoc/withStateChecked.tsx index 790c8dd6..568fa80e 100644 --- a/packages/components/src/hoc/withStateChecked.tsx +++ b/packages/components/src/hoc/withStateChecked.tsx @@ -7,11 +7,11 @@ interface BaseProps { checked: boolean; } -export type WrappedComponentProps = BaseProps & T; +export type WithStateCheckedWrappedComponentProps = BaseProps & T; // eslint-disable-next-line @typescript-eslint/no-explicit-any -export default (WrappedComponent: FC) => { - const WrapperComponent = ({ checked, onChange, ...restProps }: WrappedComponentProps) => { +export const withStateChecked = (WrappedComponent: FC) => { + const WrapperComponent = ({ checked, onChange, ...restProps }: WithStateCheckedWrappedComponentProps) => { const [componentChecked, setComponentChecked] = useState(checked); const handleChange = (...args: Parameters): ReturnType => { diff --git a/packages/components/src/hoc/withStateValue.tsx b/packages/components/src/hoc/withStateValue.tsx index 7fb717d4..300c5bc4 100644 --- a/packages/components/src/hoc/withStateValue.tsx +++ b/packages/components/src/hoc/withStateValue.tsx @@ -7,11 +7,11 @@ interface BaseProps { value: T; } -export type WrappedComponentProps = BaseProps & Props; +export type WIthStateValueWrappedComponentProps = BaseProps & Props; // eslint-disable-next-line @typescript-eslint/no-explicit-any -export default (WrappedComponent: FC) => { - const WrapperComponent = ({ value, onChange, ...restProps }: WrappedComponentProps) => { +export const withStateValue = (WrappedComponent: FC) => { + const WrapperComponent = ({ value, onChange, ...restProps }: WIthStateValueWrappedComponentProps) => { const [componentValue, setComponentValue] = useState(value); const handleChange = (...args: Parameters>): ReturnType> => { diff --git a/packages/components/src/hooks/index.ts b/packages/components/src/hooks/index.ts new file mode 100644 index 00000000..83193e6e --- /dev/null +++ b/packages/components/src/hooks/index.ts @@ -0,0 +1,2 @@ +export * from './generators'; +export * from './useKeyEvent'; diff --git a/packages/components/src/index.ts b/packages/components/src/index.ts new file mode 100644 index 00000000..c5f8ff54 --- /dev/null +++ b/packages/components/src/index.ts @@ -0,0 +1,6 @@ +export * from './components'; +export * from './context'; +export * from './hoc'; +export * from './hooks'; +export * from './partials'; +export * from './shared'; diff --git a/packages/components/src/partials/BaseChoiceInput/BaseChoiceInput.tsx b/packages/components/src/partials/BaseChoiceInput/BaseChoiceInput.tsx index 0d5bdf0b..3d9c5fd7 100644 --- a/packages/components/src/partials/BaseChoiceInput/BaseChoiceInput.tsx +++ b/packages/components/src/partials/BaseChoiceInput/BaseChoiceInput.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { BaseInput } from '@ids-partials/BaseInput'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; +import { createCssClassNames } from '@ids-core'; import { BaseChoiceInputProps } from './BaseChoiceInput.types'; diff --git a/packages/components/src/partials/BaseChoiceInput/BaseChoiceInput.types.ts b/packages/components/src/partials/BaseChoiceInput/BaseChoiceInput.types.ts index dcd2360e..db406117 100644 --- a/packages/components/src/partials/BaseChoiceInput/BaseChoiceInput.types.ts +++ b/packages/components/src/partials/BaseChoiceInput/BaseChoiceInput.types.ts @@ -3,9 +3,9 @@ import { Ref } from 'react'; import { BaseComponentAriaAttributes } from '@ids-types/general'; import { BaseInputType } from '@ids-partials/BaseInput/BaseInput.types'; -export const INPUT_TYPE_VALUES = ['checkbox', 'radio'] as const satisfies BaseInputType[]; +export const INPUT_CHOICE_TYPE_VALUES = ['checkbox', 'radio'] as const satisfies BaseInputType[]; -export type InputChoiceTypesType = (typeof INPUT_TYPE_VALUES)[number]; +export type InputChoiceTypesType = (typeof INPUT_CHOICE_TYPE_VALUES)[number]; export interface BaseChoiceInputProps extends BaseComponentAriaAttributes { name: string; diff --git a/packages/components/src/partials/BaseChoiceInputField/BaseChoiceInputField.tsx b/packages/components/src/partials/BaseChoiceInputField/BaseChoiceInputField.tsx index 168d52e1..a0836a6c 100644 --- a/packages/components/src/partials/BaseChoiceInputField/BaseChoiceInputField.tsx +++ b/packages/components/src/partials/BaseChoiceInputField/BaseChoiceInputField.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { ChoiceInputLabel } from '@ids-components/ChoiceInputLabel'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; +import { createCssClassNames } from '@ids-core'; import { BaseChoiceInputFieldProps } from './BaseChoiceInputField.types'; diff --git a/packages/components/src/partials/BaseDropdown/BaseDropdown.tsx b/packages/components/src/partials/BaseDropdown/BaseDropdown.tsx index bb47bd6b..76b806bb 100644 --- a/packages/components/src/partials/BaseDropdown/BaseDropdown.tsx +++ b/packages/components/src/partials/BaseDropdown/BaseDropdown.tsx @@ -3,7 +3,7 @@ import React, { useContext, useState } from 'react'; import { Expander, ExpanderType } from '@ids-components/Expander'; import { ItemsContainer } from './components/ItemsContainer'; import { TranslatorContext } from '@ids-context/Translator'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; +import { createCssClassNames } from '@ids-core'; import { useKeyDown } from '@ids-hooks/useKeyEvent'; import { BaseDropdownItem, BaseDropdownProps } from './BaseDropdown.types'; diff --git a/packages/components/src/partials/BaseDropdown/components/ItemsContainer/ItemsContainer.tsx b/packages/components/src/partials/BaseDropdown/components/ItemsContainer/ItemsContainer.tsx index ed08b4af..0837d5af 100644 --- a/packages/components/src/partials/BaseDropdown/components/ItemsContainer/ItemsContainer.tsx +++ b/packages/components/src/partials/BaseDropdown/components/ItemsContainer/ItemsContainer.tsx @@ -2,7 +2,7 @@ import React, { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useSta import { usePopper } from 'react-popper'; import { Search } from '../Search'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; +import { createCssClassNames } from '@ids-core'; import { useKeyDown } from '@ids-hooks/useKeyEvent'; import { ItemsContainerItemsStylesType, ItemsContainerProps } from './ItemsContainer.types'; diff --git a/packages/components/src/partials/BaseField/BaseField.tsx b/packages/components/src/partials/BaseField/BaseField.tsx index c2f1f911..59cd2b96 100644 --- a/packages/components/src/partials/BaseField/BaseField.tsx +++ b/packages/components/src/partials/BaseField/BaseField.tsx @@ -2,7 +2,7 @@ import React from 'react'; import { HelperText } from '@ids-components/HelperText'; import { Label } from '@ids-components/Label'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; +import { createCssClassNames } from '@ids-core'; import { BaseFieldProps } from './BaseField.types'; diff --git a/packages/components/src/partials/BaseInput/BaseInput.tsx b/packages/components/src/partials/BaseInput/BaseInput.tsx index 7d64dc50..1c72d254 100644 --- a/packages/components/src/partials/BaseInput/BaseInput.tsx +++ b/packages/components/src/partials/BaseInput/BaseInput.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; +import { createCssClassNames } from '@ids-core'; import { useGetOrCreateId } from '@ids-hooks/generators'; import { BaseInputProps } from './BaseInput.types'; diff --git a/packages/components/src/partials/BaseInput/BaseInput.types.ts b/packages/components/src/partials/BaseInput/BaseInput.types.ts index 8d1b220b..5b20f0c1 100644 --- a/packages/components/src/partials/BaseInput/BaseInput.types.ts +++ b/packages/components/src/partials/BaseInput/BaseInput.types.ts @@ -2,7 +2,7 @@ import { HTMLInputTypeAttribute, InputHTMLAttributes, Ref } from 'react'; import { BaseComponentAttributes } from '@ids-types/general'; -export const INPUT_TYPE_VALUES = [ +export const BASE_INPUT_TYPE_VALUES = [ 'text', 'password', 'email', @@ -15,7 +15,7 @@ export const INPUT_TYPE_VALUES = [ 'hidden', ] as const satisfies HTMLInputTypeAttribute[]; -export type BaseInputType = (typeof INPUT_TYPE_VALUES)[number]; +export type BaseInputType = (typeof BASE_INPUT_TYPE_VALUES)[number]; interface BaseInputPropsProps extends BaseComponentAttributes { name: string; diff --git a/packages/components/src/partials/BaseInputsList/BaseInputsList.tsx b/packages/components/src/partials/BaseInputsList/BaseInputsList.tsx index ff9a6214..6df4172f 100644 --- a/packages/components/src/partials/BaseInputsList/BaseInputsList.tsx +++ b/packages/components/src/partials/BaseInputsList/BaseInputsList.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { BaseField } from '@ids-partials/BaseField'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; +import { createCssClassNames } from '@ids-core'; import { BaseInputsListProps, Direction } from './BaseInputsList.types'; diff --git a/packages/components/src/partials/index.ts b/packages/components/src/partials/index.ts new file mode 100644 index 00000000..232a1011 --- /dev/null +++ b/packages/components/src/partials/index.ts @@ -0,0 +1,6 @@ +export * from './BaseChoiceInput'; +export * from './BaseChoiceInputField'; +export * from './BaseDropdown'; +export * from './BaseField'; +export * from './BaseInput'; +export * from './BaseInputsList'; diff --git a/packages/components/src/shared/index.ts b/packages/components/src/shared/index.ts new file mode 100644 index 00000000..011b41e0 --- /dev/null +++ b/packages/components/src/shared/index.ts @@ -0,0 +1 @@ +export * from './validators'; diff --git a/packages/components/src/shared/validators.ts b/packages/components/src/shared/validators.ts index a7099989..5f18ec3d 100644 --- a/packages/components/src/shared/validators.ts +++ b/packages/components/src/shared/validators.ts @@ -1,5 +1,4 @@ -import BaseValidator from '@ids-core/validators/BaseValidator'; -import type { ValidationResult } from '@ids-core/types/validation'; +import { BaseValidator, type ValidationResult } from '@ids-core'; export const validateInput = (value: T, validators: BaseValidator[]): ValidationResult => { const errors = validators.reduce((errorsAcc: string[], validator) => { diff --git a/packages/components/src/ui/ClearBtn/ClearBtn.tsx b/packages/components/src/ui/ClearBtn/ClearBtn.tsx index 77428d62..63d8d601 100644 --- a/packages/components/src/ui/ClearBtn/ClearBtn.tsx +++ b/packages/components/src/ui/ClearBtn/ClearBtn.tsx @@ -2,7 +2,7 @@ import React, { useContext } from 'react'; import { Button, ButtonSize, ButtonType } from '@ids-components/Button'; import { TranslatorContext } from '@ids-context/Translator'; -import { createCssClassNames } from '@ids-core/helpers/cssClassNames'; +import { createCssClassNames } from '@ids-core'; import { ClearBtnProps } from './ClearBtn.types'; diff --git a/packages/core/package.json b/packages/core/package.json index cd35298d..df5133c2 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -14,16 +14,10 @@ "ts:test": "yarn tsc --noEmit", "test": "yarn prettier:test && yarn eslint:test && yarn ts:test", "fix": "yarn prettier:fix && yarn eslint:fix", - "generate-exports": "node ./scripts/generate_exports.js", "build:clear": "rm -rf dist/* tsconfig.tsbuildinfo", "build:js": "yarn tsc -b tsconfig.json", - "build": "yarn build:clear && yarn build:js && yarn generate-exports", + "build": "yarn build:clear && yarn build:js", "watch:js": "yarn tsc -b tsconfig.json --watch", "watch": "yarn build:clear && yarn watch:js" - }, - "exports": { - "./helpers/*": "./dist/helpers/*", - "./types/*": "./dist/types/*", - "./validators/*": "./dist/validators/*" } } diff --git a/packages/core/scripts/generate_exports.js b/packages/core/scripts/generate_exports.js deleted file mode 100644 index 1b6786d1..00000000 --- a/packages/core/scripts/generate_exports.js +++ /dev/null @@ -1,20 +0,0 @@ -const fs = require('fs'); -const path = require('path'); - -const packageJsonPath = path.resolve(__dirname, '../package.json'); -const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8')); - -if (!packageJson.exports) { - console.error('No exports field found in package.json'); - process.exit(1); -} - -Object.entries(packageJson.exports).forEach(([key, value]) => { - const distPath = value.replace('./src/', './dist/'); - - packageJson.exports[key] = distPath; -}); - -fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2)); - -console.log('Updated package.json with exports field.'); // eslint-disable-line no-console diff --git a/packages/core/src/helpers/index.ts b/packages/core/src/helpers/index.ts new file mode 100644 index 00000000..613fd276 --- /dev/null +++ b/packages/core/src/helpers/index.ts @@ -0,0 +1 @@ +export * from './cssClassNames'; diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts new file mode 100644 index 00000000..f15b9f77 --- /dev/null +++ b/packages/core/src/index.ts @@ -0,0 +1,3 @@ +export * from './helpers'; +export type * from './types'; +export * from './validators'; diff --git a/packages/core/src/types/index.ts b/packages/core/src/types/index.ts new file mode 100644 index 00000000..6ee13378 --- /dev/null +++ b/packages/core/src/types/index.ts @@ -0,0 +1,2 @@ +export type * from './translator'; +export type * from './validation'; diff --git a/packages/core/src/validators/BaseValidator.ts b/packages/core/src/validators/BaseValidator.ts index d4f9aeb8..dcaea762 100644 --- a/packages/core/src/validators/BaseValidator.ts +++ b/packages/core/src/validators/BaseValidator.ts @@ -1,6 +1,6 @@ import { TranslatorType } from '../types/translator'; -export default abstract class BaseValidator { +export abstract class BaseValidator { protected _translator: TranslatorType; constructor(translator: TranslatorType) { diff --git a/packages/core/src/validators/IsEmptyStringValidator.ts b/packages/core/src/validators/IsEmptyStringValidator.ts index 4ce3fc4c..476cfeb4 100644 --- a/packages/core/src/validators/IsEmptyStringValidator.ts +++ b/packages/core/src/validators/IsEmptyStringValidator.ts @@ -1,6 +1,6 @@ -import BaseValidator from './BaseValidator'; +import { BaseValidator } from './BaseValidator'; -export default class IsEmptyStringValidator extends BaseValidator { +export class IsEmptyStringValidator extends BaseValidator { getErrorMessage(): string { const Translator = this._translator; diff --git a/packages/core/src/validators/index.ts b/packages/core/src/validators/index.ts new file mode 100644 index 00000000..94db4b67 --- /dev/null +++ b/packages/core/src/validators/index.ts @@ -0,0 +1,2 @@ +export * from './BaseValidator'; +export * from './IsEmptyStringValidator'; diff --git a/tsconfig.json b/tsconfig.json index 79f70d55..eb84fbf3 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,6 +8,7 @@ "./node_modules/@types" ], "paths": { + "@ids-core": ["./packages/core/src/"], "@ids-core/*": ["./packages/core/src/*"], "@ids-components/*": ["./packages/components/src/components/*"], "@ids-context/*": ["./packages/components/src/context/*"],