@cloud-ru/uikit-product-fields-predefined 0.13.11 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +28 -103
  3. package/dist/cjs/components/FieldAi/FieldAi.d.ts +1 -1
  4. package/dist/cjs/components/FieldAi/components/MobileFieldAi/MobileFieldAi.d.ts +1 -1
  5. package/dist/cjs/components/FieldDescription/FieldDescription.d.ts +12 -0
  6. package/dist/cjs/components/FieldDescription/FieldDescription.js +68 -0
  7. package/dist/cjs/components/FieldDescription/FieldDescriptionRHF.d.ts +11 -0
  8. package/dist/cjs/components/FieldDescription/FieldDescriptionRHF.js +62 -0
  9. package/dist/cjs/components/FieldDescription/components/FieldWithAddButton.d.ts +7 -0
  10. package/dist/cjs/components/FieldDescription/components/FieldWithAddButton.js +21 -0
  11. package/dist/cjs/components/FieldDescription/components/index.d.ts +1 -0
  12. package/dist/cjs/components/FieldDescription/components/index.js +5 -0
  13. package/dist/cjs/components/FieldDescription/constants.d.ts +1 -0
  14. package/dist/cjs/components/FieldDescription/constants.js +4 -0
  15. package/dist/cjs/components/FieldDescription/index.d.ts +3 -0
  16. package/dist/cjs/components/FieldDescription/index.js +7 -0
  17. package/dist/cjs/components/FieldDescription/types.d.ts +16 -0
  18. package/dist/cjs/components/FieldDescription/types.js +2 -0
  19. package/dist/cjs/components/FieldName/FieldName.d.ts +12 -0
  20. package/dist/cjs/components/FieldName/FieldName.js +95 -0
  21. package/dist/cjs/components/FieldName/FieldNameRHF.d.ts +11 -0
  22. package/dist/cjs/components/FieldName/FieldNameRHF.js +81 -0
  23. package/dist/cjs/components/FieldName/constants.d.ts +1 -0
  24. package/dist/cjs/components/FieldName/constants.js +4 -0
  25. package/dist/cjs/components/FieldName/index.d.ts +3 -0
  26. package/dist/cjs/components/FieldName/index.js +7 -0
  27. package/dist/cjs/components/FieldName/types.d.ts +15 -0
  28. package/dist/cjs/components/FieldName/types.js +2 -0
  29. package/dist/cjs/components/index.d.ts +2 -0
  30. package/dist/cjs/components/index.js +2 -0
  31. package/dist/cjs/hooks/index.d.ts +1 -0
  32. package/dist/cjs/hooks/index.js +1 -0
  33. package/dist/cjs/hooks/useCustomFieldValidation.d.ts +12 -0
  34. package/dist/cjs/hooks/useCustomFieldValidation.js +32 -0
  35. package/dist/esm/components/FieldAi/FieldAi.d.ts +1 -1
  36. package/dist/esm/components/FieldAi/components/MobileFieldAi/MobileFieldAi.d.ts +1 -1
  37. package/dist/esm/components/FieldDescription/FieldDescription.d.ts +12 -0
  38. package/dist/esm/components/FieldDescription/FieldDescription.js +62 -0
  39. package/dist/esm/components/FieldDescription/FieldDescriptionRHF.d.ts +11 -0
  40. package/dist/esm/components/FieldDescription/FieldDescriptionRHF.js +56 -0
  41. package/dist/esm/components/FieldDescription/components/FieldWithAddButton.d.ts +7 -0
  42. package/dist/esm/components/FieldDescription/components/FieldWithAddButton.js +18 -0
  43. package/dist/esm/components/FieldDescription/components/index.d.ts +1 -0
  44. package/dist/esm/components/FieldDescription/components/index.js +1 -0
  45. package/dist/esm/components/FieldDescription/constants.d.ts +1 -0
  46. package/dist/esm/components/FieldDescription/constants.js +1 -0
  47. package/dist/esm/components/FieldDescription/index.d.ts +3 -0
  48. package/dist/esm/components/FieldDescription/index.js +2 -0
  49. package/dist/esm/components/FieldDescription/types.d.ts +16 -0
  50. package/dist/esm/components/FieldDescription/types.js +1 -0
  51. package/dist/esm/components/FieldName/FieldName.d.ts +12 -0
  52. package/dist/esm/components/FieldName/FieldName.js +89 -0
  53. package/dist/esm/components/FieldName/FieldNameRHF.d.ts +11 -0
  54. package/dist/esm/components/FieldName/FieldNameRHF.js +75 -0
  55. package/dist/esm/components/FieldName/constants.d.ts +1 -0
  56. package/dist/esm/components/FieldName/constants.js +1 -0
  57. package/dist/esm/components/FieldName/index.d.ts +3 -0
  58. package/dist/esm/components/FieldName/index.js +2 -0
  59. package/dist/esm/components/FieldName/types.d.ts +15 -0
  60. package/dist/esm/components/FieldName/types.js +1 -0
  61. package/dist/esm/components/index.d.ts +2 -0
  62. package/dist/esm/components/index.js +2 -0
  63. package/dist/esm/hooks/index.d.ts +1 -0
  64. package/dist/esm/hooks/index.js +1 -0
  65. package/dist/esm/hooks/useCustomFieldValidation.d.ts +12 -0
  66. package/dist/esm/hooks/useCustomFieldValidation.js +28 -0
  67. package/dist/tsconfig.cjs.tsbuildinfo +1 -1
  68. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  69. package/package.json +8 -6
  70. package/src/components/FieldDescription/FieldDescription.tsx +97 -0
  71. package/src/components/FieldDescription/FieldDescriptionRHF.tsx +93 -0
  72. package/src/components/FieldDescription/components/FieldWithAddButton.tsx +43 -0
  73. package/src/components/FieldDescription/components/index.ts +1 -0
  74. package/src/components/FieldDescription/constants.ts +1 -0
  75. package/src/components/FieldDescription/index.ts +3 -0
  76. package/src/components/FieldDescription/types.ts +23 -0
  77. package/src/components/FieldName/FieldName.tsx +125 -0
  78. package/src/components/FieldName/FieldNameRHF.tsx +112 -0
  79. package/src/components/FieldName/constants.ts +1 -0
  80. package/src/components/FieldName/index.ts +3 -0
  81. package/src/components/FieldName/types.ts +22 -0
  82. package/src/components/index.ts +2 -0
  83. package/src/hooks/index.ts +1 -0
  84. package/src/hooks/useCustomFieldValidation.ts +38 -0
@@ -0,0 +1 @@
1
+ export declare const DEFAULT_MAX_NAME_LENGTH = 64;
@@ -0,0 +1 @@
1
+ export const DEFAULT_MAX_NAME_LENGTH = 64;
@@ -0,0 +1,3 @@
1
+ export { FieldName } from './FieldName';
2
+ export { FieldNameRHF } from './FieldNameRHF';
3
+ export type { BaseFieldNameProps, FieldNameRHFProps, FieldNameProps } from './types';
@@ -0,0 +1,2 @@
1
+ export { FieldName } from './FieldName';
2
+ export { FieldNameRHF } from './FieldNameRHF';
@@ -0,0 +1,15 @@
1
+ import { ControllerProps, FieldValues } from 'react-hook-form';
2
+ import { StringSchema, ValidationError } from 'yup';
3
+ import { FieldTextProps } from '@cloud-ru/uikit-product-mobile-fields';
4
+ export type BaseFieldNameProps = Omit<FieldTextProps, 'placeholder' | 'label' | 'footer' | 'type' | 'inputMode' | 'caption' | 'hint'> & {
5
+ showLabel?: boolean;
6
+ customSchema?: StringSchema;
7
+ };
8
+ export type FieldNameProps = BaseFieldNameProps & {
9
+ /** Колбэк, вызываемый при изменении ошибки валидации */
10
+ onValidationError?: (error: ValidationError | null) => void;
11
+ };
12
+ export type FieldNameRHFProps = BaseFieldNameProps & {
13
+ /** Режим контроллера с использованием react-hook-form */
14
+ controllerProps: Omit<ControllerProps<FieldValues>, 'render' | 'rules' | 'disabled'>;
15
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -3,3 +3,5 @@ export * from './SelectCreate';
3
3
  export * from './FieldAi';
4
4
  export * from './FieldChat';
5
5
  export * from './AIDisclaimer';
6
+ export * from './FieldName';
7
+ export * from './FieldDescription';
@@ -3,3 +3,5 @@ export * from './SelectCreate';
3
3
  export * from './FieldAi';
4
4
  export * from './FieldChat';
5
5
  export * from './AIDisclaimer';
6
+ export * from './FieldName';
7
+ export * from './FieldDescription';
@@ -1 +1,2 @@
1
1
  export * from './useOpen';
2
+ export * from './useCustomFieldValidation';
@@ -1 +1,2 @@
1
1
  export * from './useOpen';
2
+ export * from './useCustomFieldValidation';
@@ -0,0 +1,12 @@
1
+ import { AnySchema, ValidationError } from 'yup';
2
+ export type UseFieldValidationProps = {
3
+ schema: AnySchema;
4
+ };
5
+ export declare const useCustomFieldValidation: ({ schema }: UseFieldValidationProps) => {
6
+ validate: (value: string) => {
7
+ error: null;
8
+ } | {
9
+ error: ValidationError;
10
+ };
11
+ validateRHF: (value: string) => string | true | undefined;
12
+ };
@@ -0,0 +1,28 @@
1
+ import { useCallback } from 'react';
2
+ import { ValidationError } from 'yup';
3
+ export const useCustomFieldValidation = ({ schema }) => {
4
+ const validate = useCallback((value) => {
5
+ try {
6
+ schema.validateSync(value);
7
+ return { error: null };
8
+ }
9
+ catch (err) {
10
+ if (err instanceof ValidationError) {
11
+ return { error: err };
12
+ }
13
+ return { error: null };
14
+ }
15
+ }, [schema]);
16
+ const validateRHF = useCallback((value) => {
17
+ try {
18
+ schema.validateSync(value);
19
+ return true;
20
+ }
21
+ catch (err) {
22
+ if (err instanceof ValidationError)
23
+ return err.message;
24
+ return;
25
+ }
26
+ }, [schema]);
27
+ return { validate, validateRHF };
28
+ };