@apia/validations2-component 5.0.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.
@@ -0,0 +1,56 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as react from 'react';
3
+ import { ReactNode } from 'react';
4
+ import { ValidationStore } from '@apia/validations2-controller';
5
+ import { TFieldLabel, TCheckbox } from '@apia/components';
6
+ import { InputProps, TextareaProps } from '@apia/theme';
7
+ import { TOption } from '@apia/util';
8
+
9
+ declare const ValidationContextPrimitive: react.Context<ValidationStore<any> | null>;
10
+ declare const ValidationContext: ({ children, store, }: {
11
+ children: ReactNode;
12
+ store: ValidationStore<any>;
13
+ }) => react_jsx_runtime.JSX.Element;
14
+ declare const useValidations: () => ValidationStore<any>;
15
+
16
+ type TValidateCheckbox = {
17
+ path: string;
18
+ label: string;
19
+ labelProps?: Pick<TFieldLabel, 'avoidSemicolon' | 'requiredMarkPosition'>;
20
+ } & Omit<TCheckbox, 'value' | 'checked'>;
21
+ declare const ValidatedCheckbox: (({ className, label, path, labelProps, onChange, ...props }: TValidateCheckbox) => react_jsx_runtime.JSX.Element) & {
22
+ displayName: string;
23
+ };
24
+
25
+ type TValidateInput = {
26
+ path: string;
27
+ label: string;
28
+ labelProps?: Pick<TFieldLabel, 'avoidSemicolon' | 'requiredMarkPosition'>;
29
+ } & Omit<InputProps, 'value'>;
30
+ declare const ValidatedInput: (({ className, label, path, labelProps, onChange, ...props }: TValidateInput) => react_jsx_runtime.JSX.Element) & {
31
+ displayName: string;
32
+ };
33
+
34
+ type TValidateSelect = {
35
+ className?: string;
36
+ path: string;
37
+ label: string;
38
+ labelProps?: Pick<TFieldLabel, 'avoidSemicolon' | 'requiredMarkPosition'>;
39
+ onChange?: (value: string) => unknown;
40
+ options: TOption[];
41
+ };
42
+ declare const ValidatedSelect: (({ className, label, path, labelProps, onChange, options, }: TValidateSelect) => react_jsx_runtime.JSX.Element) & {
43
+ displayName: string;
44
+ };
45
+
46
+ type TValidateTextarea = {
47
+ path: string;
48
+ label: string;
49
+ labelProps?: Pick<TFieldLabel, 'avoidSemicolon' | 'requiredMarkPosition'>;
50
+ } & Omit<TextareaProps, 'value'>;
51
+ declare const ValidatedTextarea: (({ className, label, path, labelProps, onChange, ...props }: TValidateTextarea) => react_jsx_runtime.JSX.Element) & {
52
+ displayName: string;
53
+ };
54
+
55
+ export { type TValidateCheckbox, type TValidateInput, type TValidateSelect, type TValidateTextarea, ValidatedCheckbox, ValidatedInput, ValidatedSelect, ValidatedTextarea, ValidationContext, ValidationContextPrimitive, useValidations };
56
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,157 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { createContext, useContext } from 'react';
3
+ import { observer } from 'mobx-react-lite';
4
+ import { FieldLabel, Checkbox, Autocomplete } from '@apia/components';
5
+ import { Input, Textarea } from '@apia/theme';
6
+
7
+ const ValidationContextPrimitive = createContext(null);
8
+ const ValidationContext = ({
9
+ children,
10
+ store
11
+ }) => /* @__PURE__ */ jsx(ValidationContextPrimitive.Provider, { value: store, children });
12
+ const useValidations = () => useContext(ValidationContextPrimitive);
13
+
14
+ const ValidatedCheckbox = observer(
15
+ ({
16
+ className,
17
+ label,
18
+ path,
19
+ labelProps,
20
+ onChange,
21
+ ...props
22
+ }) => {
23
+ const field = useValidations().useField(path);
24
+ return /* @__PURE__ */ jsx(
25
+ FieldLabel,
26
+ {
27
+ avoidSemicolon: true,
28
+ ...labelProps,
29
+ label,
30
+ required: field.required,
31
+ className: `${className || ""} checkbox`,
32
+ error: field.error,
33
+ children: /* @__PURE__ */ jsx(
34
+ Checkbox,
35
+ {
36
+ ...props,
37
+ ref: field.ref,
38
+ onChange: (ev) => {
39
+ field.setValue(ev.target.value);
40
+ onChange?.(ev);
41
+ },
42
+ value: field.value
43
+ }
44
+ )
45
+ }
46
+ );
47
+ }
48
+ );
49
+
50
+ const ValidatedInput = observer(
51
+ ({
52
+ className,
53
+ label,
54
+ path,
55
+ labelProps,
56
+ onChange,
57
+ ...props
58
+ }) => {
59
+ const field = useValidations().useField(path);
60
+ return /* @__PURE__ */ jsx(
61
+ FieldLabel,
62
+ {
63
+ ...labelProps,
64
+ label,
65
+ required: field.required,
66
+ className: `${className || ""} input`,
67
+ error: field.error,
68
+ children: /* @__PURE__ */ jsx(
69
+ Input,
70
+ {
71
+ ...props,
72
+ ref: field.ref,
73
+ onChange: (ev) => {
74
+ field.setValue(ev.target.value);
75
+ onChange?.(ev);
76
+ },
77
+ value: field.value
78
+ }
79
+ )
80
+ }
81
+ );
82
+ }
83
+ );
84
+
85
+ const ValidatedSelect = observer(
86
+ ({
87
+ className,
88
+ label,
89
+ path,
90
+ labelProps,
91
+ onChange,
92
+ options
93
+ }) => {
94
+ const field = useValidations().useField(path);
95
+ return /* @__PURE__ */ jsx(
96
+ FieldLabel,
97
+ {
98
+ ...labelProps,
99
+ label,
100
+ required: field.required,
101
+ className: `${className || ""} select`,
102
+ error: field.error,
103
+ children: /* @__PURE__ */ jsx(
104
+ Autocomplete,
105
+ {
106
+ ref: field.ref,
107
+ properties: {
108
+ options,
109
+ onChange(value) {
110
+ field.setValue(value);
111
+ onChange?.(value);
112
+ }
113
+ }
114
+ }
115
+ )
116
+ }
117
+ );
118
+ }
119
+ );
120
+
121
+ const ValidatedTextarea = observer(
122
+ ({
123
+ className,
124
+ label,
125
+ path,
126
+ labelProps,
127
+ onChange,
128
+ ...props
129
+ }) => {
130
+ const field = useValidations().useField(path);
131
+ return /* @__PURE__ */ jsx(
132
+ FieldLabel,
133
+ {
134
+ ...labelProps,
135
+ label,
136
+ required: field.required,
137
+ className: `${className || ""} textarea`,
138
+ error: field.error,
139
+ children: /* @__PURE__ */ jsx(
140
+ Textarea,
141
+ {
142
+ ...props,
143
+ ref: field.ref,
144
+ onChange: (ev) => {
145
+ field.setValue(ev.target.value);
146
+ onChange?.(ev);
147
+ },
148
+ value: field.value
149
+ }
150
+ )
151
+ }
152
+ );
153
+ }
154
+ );
155
+
156
+ export { ValidatedCheckbox, ValidatedInput, ValidatedSelect, ValidatedTextarea, ValidationContext, ValidationContextPrimitive, useValidations };
157
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/Context.tsx","../src/ValidatedCheckbox.tsx","../src/ValidatedInput.tsx","../src/ValidatedSelect.tsx","../src/ValidatedTextarea.tsx"],"sourcesContent":["import { ValidationStore } from '@apia/validations2-controller';\nimport { createContext, ReactNode, useContext } from 'react';\n\nexport const ValidationContextPrimitive =\n createContext<ValidationStore<any> | null>(null);\n\nexport const ValidationContext = ({\n children,\n store,\n}: {\n children: ReactNode;\n store: ValidationStore<any>;\n}) => (\n <ValidationContextPrimitive.Provider value={store}>\n {children}\n </ValidationContextPrimitive.Provider>\n);\n\nexport const useValidations = () => useContext(ValidationContextPrimitive)!;\n","import { observer } from 'mobx-react-lite';\nimport { useValidations } from './Context';\nimport { Checkbox, FieldLabel, TCheckbox, TFieldLabel } from '@apia/components';\n\nexport type TValidateCheckbox = {\n path: string;\n label: string;\n labelProps?: Pick<TFieldLabel, 'avoidSemicolon' | 'requiredMarkPosition'>;\n} & Omit<TCheckbox, 'value' | 'checked'>;\n\nexport const ValidatedCheckbox = observer(\n ({\n className,\n label,\n path,\n labelProps,\n onChange,\n ...props\n }: TValidateCheckbox) => {\n const field = useValidations().useField(path);\n\n return (\n <FieldLabel\n avoidSemicolon\n {...labelProps}\n label={label}\n required={field.required}\n className={`${className || ''} checkbox`}\n error={field.error}\n >\n <Checkbox\n {...props}\n ref={field.ref}\n onChange={(ev) => {\n field.setValue(ev.target.value);\n onChange?.(ev);\n }}\n value={field.value as any}\n />\n </FieldLabel>\n );\n },\n);\n","import { observer } from 'mobx-react-lite';\nimport { useValidations } from './Context';\nimport { FieldLabel, TFieldLabel } from '@apia/components';\nimport { Input, InputProps } from '@apia/theme';\n\nexport type TValidateInput = {\n path: string;\n label: string;\n labelProps?: Pick<TFieldLabel, 'avoidSemicolon' | 'requiredMarkPosition'>;\n} & Omit<InputProps, 'value'>;\n\nexport const ValidatedInput = observer(\n ({\n className,\n label,\n path,\n labelProps,\n onChange,\n ...props\n }: TValidateInput) => {\n const field = useValidations().useField(path);\n\n return (\n <FieldLabel\n {...labelProps}\n label={label}\n required={field.required}\n className={`${className || ''} input`}\n error={field.error}\n >\n <Input\n {...props}\n ref={field.ref}\n onChange={(ev) => {\n field.setValue(ev.target.value);\n onChange?.(ev);\n }}\n value={field.value as any}\n />\n </FieldLabel>\n );\n },\n);\n","import { observer } from 'mobx-react-lite';\nimport { useValidations } from './Context';\nimport { Autocomplete, FieldLabel, TFieldLabel } from '@apia/components';\nimport { TOption } from '@apia/util';\n\nexport type TValidateSelect = {\n className?: string;\n path: string;\n label: string;\n labelProps?: Pick<TFieldLabel, 'avoidSemicolon' | 'requiredMarkPosition'>;\n onChange?: (value: string) => unknown;\n options: TOption[];\n};\n\nexport const ValidatedSelect = observer(\n ({\n className,\n label,\n path,\n labelProps,\n onChange,\n options,\n }: TValidateSelect) => {\n const field = useValidations().useField(path);\n\n return (\n <FieldLabel\n {...labelProps}\n label={label}\n required={field.required}\n className={`${className || ''} select`}\n error={field.error}\n >\n <Autocomplete\n ref={field.ref}\n properties={{\n options,\n onChange(value) {\n field.setValue(value);\n onChange?.(value);\n },\n }}\n />\n </FieldLabel>\n );\n },\n);\n","import { observer } from 'mobx-react-lite';\nimport { useValidations } from './Context';\nimport { FieldLabel, TFieldLabel } from '@apia/components';\nimport { Textarea, TextareaProps } from '@apia/theme';\n\nexport type TValidateTextarea = {\n path: string;\n label: string;\n labelProps?: Pick<TFieldLabel, 'avoidSemicolon' | 'requiredMarkPosition'>;\n} & Omit<TextareaProps, 'value'>;\n\nexport const ValidatedTextarea = observer(\n ({\n className,\n label,\n path,\n labelProps,\n onChange,\n ...props\n }: TValidateTextarea) => {\n const field = useValidations().useField(path);\n\n return (\n <FieldLabel\n {...labelProps}\n label={label}\n required={field.required}\n className={`${className || ''} textarea`}\n error={field.error}\n >\n <Textarea\n {...props}\n ref={field.ref}\n onChange={(ev) => {\n field.setValue(ev.target.value);\n onChange?.(ev);\n }}\n value={field.value as any}\n />\n </FieldLabel>\n );\n },\n);\n"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "@apia/validations2-component",
3
+ "version": "5.0.0",
4
+ "sideEffects": false,
5
+ "author": "Alexis Leite <alexisleite@live.com>",
6
+ "main": "dist/index.js",
7
+ "module": "dist/index.js",
8
+ "type": "module",
9
+ "typings": "dist/index.d.ts",
10
+ "scripts": {
11
+ "libDev": "rollup --config ../../config/rollup.common.mjs --environment MODE:development,ENTRY:index.ts",
12
+ "libBuild": "rollup --config ../../config/rollup.common.mjs --environment MODE:production,ENTRY:index.ts",
13
+ "libWatch": "rollup --watch --config ../../config/rollup.common.mjs --environment MODE:development,ENTRY:index.ts,WATCH:true",
14
+ "libWatchForExecution": "rollup --watch --config ../../config/rollup.common.mjs --environment MODE:development,ENTRY:index.ts,WATCH:true,DEV_SERVER_MODULE:execution",
15
+ "libWatchForDashboards": "rollup --watch --config ../../config/rollup.common.mjs --environment MODE:development,ENTRY:index.ts,WATCH:true,DEV_SERVER_MODULE:dashboards"
16
+ },
17
+ "devDependencies": {
18
+ "@types/react": "^18.2.43",
19
+ "@types/react-dom": "^18.2.17",
20
+ "@typescript-eslint/eslint-plugin": "^6.14.0",
21
+ "axios": "^1.11.0",
22
+ "typescript": "5.4.2"
23
+ },
24
+ "peerDependencies": {
25
+ "react": "^18.2.0",
26
+ "react-dom": "^18.2.0"
27
+ },
28
+ "publishConfig": {
29
+ "access": "public",
30
+ "registry": "https://registry.npmjs.org/"
31
+ },
32
+ "dependencies": {
33
+ "@apia/components": "^5.0.0",
34
+ "@apia/theme": "^5.0.0",
35
+ "@apia/validations2-controller": "^5.0.0",
36
+ "mobx": "^6.15.0",
37
+ "mobx-react-lite": "^4.1.1"
38
+ },
39
+ "gitHead": "985b675635fb9d3dc5e26a90a6d9898864418b84"
40
+ }