@plitzi/sdk-elements 0.37.2 → 0.37.4
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.
- package/CHANGELOG.md +1180 -0
- package/dist/Component/ComponentProvider.mjs +10 -5
- package/dist/Element/JsxManager.mjs +1 -0
- package/dist/Element/PluginRemote.d.ts +3 -1
- package/dist/Element/PluginRemote.mjs +9 -9
- package/dist/Element/helpers/elementConstants.mjs +28 -0
- package/dist/Element/helpers/elementUtils.mjs +1 -1
- package/dist/Element/helpers/loadComponent.d.ts +6 -1
- package/dist/Element/helpers/loadComponent.mjs +7 -7
- package/dist/Element/helpers/pluginSelector.mjs +1 -0
- package/dist/Element/hooks/useElementDataSource.mjs +23 -16
- package/dist/Element/hooks/useElementInternal.mjs +60 -52
- package/dist/Element/hooks/useInternalClassName.mjs +19 -18
- package/dist/Element/hooks/useKeyTriggers.d.ts +18 -0
- package/dist/Element/hooks/useKeyTriggers.mjs +36 -0
- package/dist/Element/hooks/useRootElementInteractions.mjs +65 -56
- package/dist/Element/hooks/useRscData.mjs +20 -15
- package/dist/dataSource/GlobalSources.mjs +114 -80
- package/dist/dataSource/getSourcesByElementId.mjs +2 -2
- package/dist/elements/advanced/BlockJsx/BlockJsx.mjs +1 -1
- package/dist/elements/advanced/NodeHtml/declaration.d.ts +1 -1
- package/dist/elements/advanced/NodeHtml/index.d.ts +1 -1
- package/dist/elements/basic/Button/Button.d.ts +10 -3
- package/dist/elements/basic/Button/Button.mjs +5 -5
- package/dist/elements/basic/Button/Settings.d.ts +2 -1
- package/dist/elements/basic/Button/Settings.mjs +14 -7
- package/dist/elements/basic/Button/declaration.d.ts +8 -3
- package/dist/elements/basic/Button/declaration.mjs +14 -6
- package/dist/elements/basic/Button/index.d.ts +8 -3
- package/dist/elements/basic/Dropdown/Dropdown.mjs +48 -39
- package/dist/elements/basic/Dropdown/declaration.d.ts +3 -0
- package/dist/elements/basic/Dropdown/declaration.mjs +9 -3
- package/dist/elements/basic/Dropdown/index.d.ts +3 -0
- package/dist/elements/basic/Dropdown/useDropdown.d.ts +6 -1
- package/dist/elements/basic/Dropdown/useDropdown.mjs +58 -41
- package/dist/elements/basic/Dropdown/useDropdownTrigger.d.ts +26 -0
- package/dist/elements/basic/Dropdown/useDropdownTrigger.mjs +30 -0
- package/dist/elements/basic/Heading/declaration.d.ts +9 -6
- package/dist/elements/basic/Heading/declaration.mjs +17 -9
- package/dist/elements/basic/Heading/index.d.ts +9 -6
- package/dist/elements/basic/Link/Link.mjs +4 -1
- package/dist/elements/basic/Link/Settings.d.ts +2 -1
- package/dist/elements/basic/Link/Settings.mjs +31 -24
- package/dist/elements/basic/Link/declaration.d.ts +5 -1
- package/dist/elements/basic/Link/declaration.mjs +16 -3
- package/dist/elements/basic/Link/index.d.ts +5 -1
- package/dist/elements/basic/Markdown/declaration.d.ts +1 -1
- package/dist/elements/basic/Markdown/declaration.mjs +1 -1
- package/dist/elements/basic/Markdown/index.d.ts +1 -1
- package/dist/elements/basic/RichText/declaration.d.ts +3 -0
- package/dist/elements/basic/RichText/declaration.mjs +8 -3
- package/dist/elements/basic/RichText/index.d.ts +3 -0
- package/dist/elements/basic/Text/declaration.d.ts +1 -1
- package/dist/elements/basic/Text/declaration.mjs +1 -1
- package/dist/elements/basic/Text/index.d.ts +1 -1
- package/dist/elements/basic/ThemeToggle/ThemeToggle.mjs +3 -0
- package/dist/elements/basic/ThemeToggle/declaration.d.ts +3 -0
- package/dist/elements/basic/ThemeToggle/declaration.mjs +4 -3
- package/dist/elements/basic/ThemeToggle/index.d.ts +3 -0
- package/dist/elements/declarations/index.d.ts +217 -17
- package/dist/elements/declarations/index.mjs +24 -22
- package/dist/elements/form/Form/declaration.d.ts +3 -0
- package/dist/elements/form/Form/declaration.mjs +4 -3
- package/dist/elements/form/Form/index.d.ts +3 -0
- package/dist/elements/form/FormControl/FormControl.d.ts +18 -6
- package/dist/elements/form/FormControl/FormControl.mjs +135 -127
- package/dist/elements/form/FormControl/Settings.d.ts +3 -1
- package/dist/elements/form/FormControl/Settings.mjs +73 -57
- package/dist/elements/form/FormControl/components/Label.d.ts +3 -1
- package/dist/elements/form/FormControl/components/Label.mjs +20 -18
- package/dist/elements/form/FormControl/components/visuallyHidden.d.ts +6 -0
- package/dist/elements/form/FormControl/components/visuallyHidden.mjs +14 -0
- package/dist/elements/form/FormControl/declaration.d.ts +5 -0
- package/dist/elements/form/FormControl/declaration.mjs +46 -30
- package/dist/elements/form/FormControl/hocs/withFieldValue.mjs +68 -61
- package/dist/elements/form/FormControl/index.d.ts +5 -0
- package/dist/elements/form/FormControl/inputs/Checkbox.d.ts +6 -1
- package/dist/elements/form/FormControl/inputs/Checkbox.mjs +5 -3
- package/dist/elements/form/FormControl/inputs/Input.d.ts +8 -1
- package/dist/elements/form/FormControl/inputs/Input.mjs +44 -38
- package/dist/elements/form/FormControl/inputs/Select.d.ts +6 -1
- package/dist/elements/form/FormControl/inputs/Select.mjs +12 -10
- package/dist/elements/form/FormControl/inputs/Textarea.d.ts +8 -1
- package/dist/elements/form/FormControl/inputs/Textarea.mjs +26 -21
- package/dist/elements/form/FormControl/inputs/useFocusWhenShown.d.ts +7 -0
- package/dist/elements/form/FormControl/inputs/useFocusWhenShown.mjs +9 -0
- package/dist/elements/index.d.ts +3 -1
- package/dist/elements/index.mjs +16 -14
- package/dist/elements/internal/LayoutContainer/declaration.d.ts +3 -0
- package/dist/elements/internal/LayoutContainer/declaration.mjs +15 -3
- package/dist/elements/internal/LayoutContainer/index.d.ts +3 -0
- package/dist/elements/media/FontAwesome/FontAwesome.d.ts +8 -1
- package/dist/elements/media/FontAwesome/FontAwesome.mjs +12 -5
- package/dist/elements/media/FontAwesome/Settings.d.ts +2 -1
- package/dist/elements/media/FontAwesome/Settings.mjs +29 -22
- package/dist/elements/media/FontAwesome/declaration.d.ts +1 -0
- package/dist/elements/media/FontAwesome/index.d.ts +1 -0
- package/dist/elements/media/Image/Image.d.ts +13 -2
- package/dist/elements/media/Image/Image.mjs +25 -25
- package/dist/elements/media/Image/Settings.d.ts +3 -1
- package/dist/elements/media/Image/Settings.mjs +29 -15
- package/dist/elements/media/Image/declaration.d.ts +7 -1
- package/dist/elements/media/Image/declaration.mjs +16 -3
- package/dist/elements/media/Image/index.d.ts +7 -1
- package/dist/elements/provider/ApiContainer/ApiContainer.mjs +145 -137
- package/dist/elements/provider/ApiContainer/declaration.d.ts +14 -1
- package/dist/elements/provider/ApiContainer/declaration.mjs +41 -4
- package/dist/elements/provider/ApiContainer/helpers/isEmptyAnswer.d.ts +16 -0
- package/dist/elements/provider/ApiContainer/helpers/isEmptyAnswer.mjs +4 -0
- package/dist/elements/provider/ApiContainer/helpers/queryInput.d.ts +5 -0
- package/dist/elements/provider/ApiContainer/helpers/queryInput.mjs +12 -0
- package/dist/elements/provider/ApiContainer/index.d.ts +14 -1
- package/dist/elements/provider/Channel/Channel.d.ts +26 -0
- package/dist/elements/provider/Channel/Channel.mjs +92 -0
- package/dist/elements/provider/Channel/Settings.d.ts +9 -0
- package/dist/elements/provider/Channel/Settings.mjs +38 -0
- package/dist/elements/provider/Channel/declaration.d.ts +138 -0
- package/dist/elements/provider/Channel/declaration.mjs +125 -0
- package/dist/elements/provider/Channel/index.d.ts +137 -0
- package/dist/elements/provider/Channel/index.mjs +6 -0
- package/dist/elements/settings.mjs +25 -23
- package/dist/elements/structure/Container/Container.d.ts +16 -2
- package/dist/elements/structure/Container/Container.mjs +18 -9
- package/dist/elements/structure/Container/Settings.d.ts +4 -2
- package/dist/elements/structure/Container/Settings.mjs +110 -69
- package/dist/elements/structure/Container/declaration.d.ts +12 -1
- package/dist/elements/structure/Container/declaration.mjs +35 -3
- package/dist/elements/structure/Container/index.d.ts +6 -1
- package/dist/elements/structure/Container/index.mjs +3 -3
- package/dist/elements/structure/DialogContainer/DialogContainer.mjs +123 -100
- package/dist/elements/structure/List/declaration.d.ts +4 -0
- package/dist/elements/structure/List/declaration.mjs +7 -3
- package/dist/elements/structure/List/index.d.ts +4 -0
- package/dist/elements/structure/ModalContainer/ModalContainer.mjs +92 -80
- package/dist/elements/structure/ModalContainer/metadataFromText.d.ts +1 -0
- package/dist/elements/structure/ModalContainer/metadataFromText.mjs +10 -0
- package/dist/elements/structure/ModalContainer/useModalDialog.d.ts +20 -0
- package/dist/elements/structure/ModalContainer/useModalDialog.mjs +31 -0
- package/dist/elements/structure/Pagination/Pagination.d.ts +6 -1
- package/dist/elements/structure/Pagination/Pagination.mjs +23 -21
- package/dist/elements/structure/Pagination/Settings.d.ts +2 -1
- package/dist/elements/structure/Pagination/Settings.mjs +16 -9
- package/dist/elements/structure/Pagination/declaration.d.ts +5 -0
- package/dist/elements/structure/Pagination/declaration.mjs +7 -3
- package/dist/elements/structure/Pagination/index.d.ts +5 -0
- package/dist/elements/structure/TabContainer/TabContainer.mjs +19 -17
- package/dist/elements/structure/TabContainer/TabContainerBody/TabContainerBody.mjs +8 -6
- package/dist/elements/structure/TabContainer/TabContainerContext.d.ts +2 -0
- package/dist/elements/structure/TabContainer/TabContainerHeader/TabContainerHeader.mjs +18 -14
- package/dist/elements/structure/TabContainer/TabContainerItem/TabContainerItem.d.ts +5 -1
- package/dist/elements/structure/TabContainer/TabContainerItem/TabContainerItem.mjs +48 -13
- package/dist/elements/structure/TabContainer/TabContainerItem/declaration.d.ts +1 -1
- package/dist/index.d.ts +220 -16
- package/dist/index.mjs +20 -17
- package/dist/realtime/useChannel.d.ts +35 -0
- package/dist/realtime/useChannel.mjs +57 -0
- package/package.json +67 -11
- package/dist/elements/media/FontAwesome/FontAwesome.stories-paused.d.ts +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { elementDeclaration as e } from "@plitzi/sdk-shared/authoring/declare";
|
|
1
|
+
import { elementDeclaration as e, valuesOf as t } from "@plitzi/sdk-shared/authoring/declare";
|
|
2
2
|
//#region src/elements/form/FormControl/declaration.ts
|
|
3
|
-
var
|
|
3
|
+
var n = {
|
|
4
4
|
width: "100%",
|
|
5
5
|
display: "flex",
|
|
6
6
|
"align-items": "center",
|
|
@@ -29,7 +29,7 @@ var t = {
|
|
|
29
29
|
"line-height": "20px",
|
|
30
30
|
outline: "none",
|
|
31
31
|
position: "relative"
|
|
32
|
-
},
|
|
32
|
+
}, r = {
|
|
33
33
|
display: "flex",
|
|
34
34
|
cursor: "pointer",
|
|
35
35
|
"font-weight": "600",
|
|
@@ -37,15 +37,29 @@ var t = {
|
|
|
37
37
|
"line-height": "18px",
|
|
38
38
|
color: "#6b7280",
|
|
39
39
|
"user-select": "none"
|
|
40
|
-
}, r = {
|
|
41
|
-
...n,
|
|
42
|
-
"margin-bottom": "4px"
|
|
43
40
|
}, i = {
|
|
41
|
+
...r,
|
|
42
|
+
"margin-bottom": "4px"
|
|
43
|
+
}, a = {
|
|
44
44
|
display: "block",
|
|
45
45
|
color: "red",
|
|
46
46
|
"margin-top": "4px"
|
|
47
|
-
},
|
|
47
|
+
}, o = e()({
|
|
48
48
|
type: "formControl",
|
|
49
|
+
attributeValues: { subType: t()([
|
|
50
|
+
"text",
|
|
51
|
+
"number",
|
|
52
|
+
"email",
|
|
53
|
+
"password",
|
|
54
|
+
"date",
|
|
55
|
+
"time",
|
|
56
|
+
"checkbox",
|
|
57
|
+
"switch",
|
|
58
|
+
"select",
|
|
59
|
+
"textarea",
|
|
60
|
+
"hidden",
|
|
61
|
+
"color"
|
|
62
|
+
]) },
|
|
49
63
|
triggers: { onChange: {
|
|
50
64
|
action: "onChange",
|
|
51
65
|
title: "On Change",
|
|
@@ -61,9 +75,11 @@ var t = {
|
|
|
61
75
|
subType: "text",
|
|
62
76
|
name: "",
|
|
63
77
|
label: "Label",
|
|
78
|
+
hideLabel: !1,
|
|
64
79
|
placeholder: "",
|
|
65
80
|
defaultValue: "",
|
|
66
81
|
autoComplete: !0,
|
|
82
|
+
autoFocus: !1,
|
|
67
83
|
disabled: !1,
|
|
68
84
|
options: [],
|
|
69
85
|
required: !0,
|
|
@@ -120,8 +136,8 @@ var t = {
|
|
|
120
136
|
style: {
|
|
121
137
|
base: {},
|
|
122
138
|
input: { default: {} },
|
|
123
|
-
label: { default:
|
|
124
|
-
error: { default:
|
|
139
|
+
label: { default: i },
|
|
140
|
+
error: { default: a }
|
|
125
141
|
}
|
|
126
142
|
},
|
|
127
143
|
text: {
|
|
@@ -129,9 +145,9 @@ var t = {
|
|
|
129
145
|
displayMode: "desktop",
|
|
130
146
|
style: {
|
|
131
147
|
base: { default: {} },
|
|
132
|
-
input: { default:
|
|
133
|
-
label: { default:
|
|
134
|
-
error: { default:
|
|
148
|
+
input: { default: n },
|
|
149
|
+
label: { default: i },
|
|
150
|
+
error: { default: a }
|
|
135
151
|
}
|
|
136
152
|
},
|
|
137
153
|
password: {
|
|
@@ -139,9 +155,9 @@ var t = {
|
|
|
139
155
|
displayMode: "desktop",
|
|
140
156
|
style: {
|
|
141
157
|
base: { default: {} },
|
|
142
|
-
input: { default:
|
|
143
|
-
label: { default:
|
|
144
|
-
error: { default:
|
|
158
|
+
input: { default: n },
|
|
159
|
+
label: { default: i },
|
|
160
|
+
error: { default: a }
|
|
145
161
|
}
|
|
146
162
|
},
|
|
147
163
|
number: {
|
|
@@ -149,9 +165,9 @@ var t = {
|
|
|
149
165
|
displayMode: "desktop",
|
|
150
166
|
style: {
|
|
151
167
|
base: { default: {} },
|
|
152
|
-
input: { default:
|
|
153
|
-
label: { default:
|
|
154
|
-
error: { default:
|
|
168
|
+
input: { default: n },
|
|
169
|
+
label: { default: i },
|
|
170
|
+
error: { default: a }
|
|
155
171
|
}
|
|
156
172
|
},
|
|
157
173
|
email: {
|
|
@@ -159,9 +175,9 @@ var t = {
|
|
|
159
175
|
displayMode: "desktop",
|
|
160
176
|
style: {
|
|
161
177
|
base: { default: {} },
|
|
162
|
-
input: { default:
|
|
163
|
-
label: { default:
|
|
164
|
-
error: { default:
|
|
178
|
+
input: { default: n },
|
|
179
|
+
label: { default: i },
|
|
180
|
+
error: { default: a }
|
|
165
181
|
}
|
|
166
182
|
},
|
|
167
183
|
textarea: {
|
|
@@ -169,9 +185,9 @@ var t = {
|
|
|
169
185
|
displayMode: "desktop",
|
|
170
186
|
style: {
|
|
171
187
|
base: { default: {} },
|
|
172
|
-
input: { default:
|
|
173
|
-
label: { default:
|
|
174
|
-
error: { default:
|
|
188
|
+
input: { default: n },
|
|
189
|
+
label: { default: i },
|
|
190
|
+
error: { default: a }
|
|
175
191
|
}
|
|
176
192
|
},
|
|
177
193
|
checkbox: {
|
|
@@ -185,8 +201,8 @@ var t = {
|
|
|
185
201
|
"margin-left": "0px",
|
|
186
202
|
"margin-right": "4px"
|
|
187
203
|
} },
|
|
188
|
-
label: { default:
|
|
189
|
-
error: { default:
|
|
204
|
+
label: { default: r },
|
|
205
|
+
error: { default: a }
|
|
190
206
|
}
|
|
191
207
|
},
|
|
192
208
|
select: {
|
|
@@ -195,11 +211,11 @@ var t = {
|
|
|
195
211
|
style: {
|
|
196
212
|
base: { default: {} },
|
|
197
213
|
input: { default: {
|
|
198
|
-
...
|
|
214
|
+
...n,
|
|
199
215
|
cursor: "pointer"
|
|
200
216
|
} },
|
|
201
|
-
label:
|
|
202
|
-
error: { default:
|
|
217
|
+
label: i,
|
|
218
|
+
error: { default: a }
|
|
203
219
|
}
|
|
204
220
|
}
|
|
205
221
|
}
|
|
@@ -208,4 +224,4 @@ var t = {
|
|
|
208
224
|
}
|
|
209
225
|
});
|
|
210
226
|
//#endregion
|
|
211
|
-
export {
|
|
227
|
+
export { o as default };
|
|
@@ -1,97 +1,104 @@
|
|
|
1
1
|
import { validateField as e } from "../helpers/validateField.mjs";
|
|
2
|
-
import { useCallback as t, useEffect as n, useMemo as r } from "react";
|
|
3
|
-
import
|
|
4
|
-
import { get as
|
|
5
|
-
import { createStoreHook as
|
|
6
|
-
import { getDisplayName as
|
|
7
|
-
import { jsx as
|
|
2
|
+
import { useCallback as t, useEffect as n, useMemo as r, useState as i } from "react";
|
|
3
|
+
import a from "@plitzi/sdk-shared/hooks/usePlitziServiceContext";
|
|
4
|
+
import { get as o } from "@plitzi/plitzi-ui/helpers";
|
|
5
|
+
import { createStoreHook as s } from "@plitzi/nexus/react";
|
|
6
|
+
import { getDisplayName as c } from "@plitzi/sdk-shared/helpers/utils";
|
|
7
|
+
import { jsx as l } from "react/jsx-runtime";
|
|
8
8
|
//#region src/elements/form/FormControl/hocs/withFieldValue.tsx
|
|
9
|
-
var
|
|
10
|
-
let
|
|
11
|
-
let { ref:
|
|
12
|
-
|
|
13
|
-
let
|
|
9
|
+
var u = (u) => {
|
|
10
|
+
let d = (c) => {
|
|
11
|
+
let { ref: d, name: f = "", subType: p = "text", defaultValue: m = "", required: h = !0, requiredMessage: g = "", minLength: _ = 0, minLengthMessage: v = "", maxLength: y = 0, maxLengthMessage: b = "", formatMessage: x = "", pattern: S = "", patternMessage: C = "", matches: w = "", matchesMessage: T = "", previewError: E = !1 } = c, { settings: { previewMode: D } } = a(), { useStore: O } = s(), [k] = O("runtime.sources.form"), [A, j] = i(m), [M, N] = i(m);
|
|
12
|
+
!k && M !== m && (N(m), j(m));
|
|
13
|
+
let P = k?.values, F = r(() => k ? o(P, f, m) : A, [
|
|
14
|
+
k,
|
|
14
15
|
P,
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
f,
|
|
17
|
+
m,
|
|
18
|
+
A
|
|
19
|
+
]), I = r(() => !D && E ? "This is an error message" : k?.errors[f] ?? "", [
|
|
20
|
+
D,
|
|
18
21
|
E,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
d
|
|
22
|
+
k?.errors,
|
|
23
|
+
f
|
|
22
24
|
]), L = r(() => ({
|
|
23
|
-
required:
|
|
24
|
-
requiredMessage:
|
|
25
|
-
minLength:
|
|
26
|
-
minLengthMessage:
|
|
27
|
-
maxLength:
|
|
28
|
-
maxLengthMessage:
|
|
29
|
-
type:
|
|
30
|
-
formatMessage:
|
|
31
|
-
pattern:
|
|
32
|
-
patternMessage:
|
|
33
|
-
matches:
|
|
34
|
-
matchesMessage:
|
|
25
|
+
required: h,
|
|
26
|
+
requiredMessage: g,
|
|
27
|
+
minLength: _,
|
|
28
|
+
minLengthMessage: v,
|
|
29
|
+
maxLength: y,
|
|
30
|
+
maxLengthMessage: b,
|
|
31
|
+
type: p,
|
|
32
|
+
formatMessage: x,
|
|
33
|
+
pattern: S,
|
|
34
|
+
patternMessage: C,
|
|
35
|
+
matches: w,
|
|
36
|
+
matchesMessage: T
|
|
35
37
|
}), [
|
|
36
|
-
m,
|
|
37
38
|
h,
|
|
38
39
|
g,
|
|
39
40
|
_,
|
|
40
41
|
v,
|
|
41
42
|
y,
|
|
42
|
-
f,
|
|
43
43
|
b,
|
|
44
|
+
p,
|
|
44
45
|
x,
|
|
45
46
|
S,
|
|
46
47
|
C,
|
|
47
|
-
w
|
|
48
|
-
|
|
48
|
+
w,
|
|
49
|
+
T
|
|
50
|
+
]), R = k?.registerValidator, z = k?.unregisterValidator, B = k?.setFieldValue, V = k?.setFieldError;
|
|
49
51
|
n(() => {
|
|
50
|
-
if (
|
|
52
|
+
if (f && R && z) return R(f, (t) => e(o(t, f, m), L, t)), () => z(f);
|
|
51
53
|
}, [
|
|
52
|
-
|
|
53
|
-
|
|
54
|
+
f,
|
|
55
|
+
m,
|
|
54
56
|
L,
|
|
55
|
-
|
|
56
|
-
|
|
57
|
+
R,
|
|
58
|
+
z
|
|
57
59
|
]), n(() => {
|
|
58
|
-
|
|
60
|
+
B && m && F && f && B(f, F);
|
|
59
61
|
}, [
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
62
|
+
m,
|
|
63
|
+
f,
|
|
64
|
+
B,
|
|
63
65
|
F
|
|
64
66
|
]);
|
|
65
|
-
let
|
|
66
|
-
e.target.type === "radio" || e.target.type === "checkbox" ||
|
|
67
|
+
let H = t((e) => {
|
|
68
|
+
let t = e.target.type === "radio" || e.target.type === "checkbox" || p === "switch";
|
|
69
|
+
if (!B) {
|
|
70
|
+
j(t ? String(e.target.checked) : e.target.value);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
B(f, t ? e.target.checked : e.target.value);
|
|
67
74
|
}, [
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
]),
|
|
75
|
+
B,
|
|
76
|
+
f,
|
|
77
|
+
p
|
|
78
|
+
]), U = t(() => V?.(f, e(F, L, P ?? {})), [
|
|
72
79
|
F,
|
|
73
80
|
L,
|
|
74
81
|
P,
|
|
75
|
-
|
|
76
|
-
|
|
82
|
+
f,
|
|
83
|
+
V
|
|
77
84
|
]);
|
|
78
|
-
return r(() => /* @__PURE__ */
|
|
79
|
-
...
|
|
80
|
-
ref:
|
|
85
|
+
return r(() => /* @__PURE__ */ l(u, {
|
|
86
|
+
...c,
|
|
87
|
+
ref: d,
|
|
81
88
|
value: F,
|
|
82
89
|
error: I,
|
|
83
|
-
handleChange:
|
|
84
|
-
handleValidate:
|
|
90
|
+
handleChange: H,
|
|
91
|
+
handleValidate: U
|
|
85
92
|
}), [
|
|
86
|
-
|
|
87
|
-
|
|
93
|
+
c,
|
|
94
|
+
d,
|
|
88
95
|
I,
|
|
89
96
|
F,
|
|
90
|
-
|
|
91
|
-
|
|
97
|
+
H,
|
|
98
|
+
U
|
|
92
99
|
]);
|
|
93
100
|
};
|
|
94
|
-
return
|
|
101
|
+
return d.displayName = `withFieldValue(${c(u)})`, d;
|
|
95
102
|
};
|
|
96
103
|
//#endregion
|
|
97
|
-
export {
|
|
104
|
+
export { u as default };
|
|
@@ -16,9 +16,11 @@ declare const FormControl: {
|
|
|
16
16
|
readonly subType: "text";
|
|
17
17
|
readonly name: "";
|
|
18
18
|
readonly label: "Label";
|
|
19
|
+
readonly hideLabel: false;
|
|
19
20
|
readonly placeholder: "";
|
|
20
21
|
readonly defaultValue: "";
|
|
21
22
|
readonly autoComplete: true;
|
|
23
|
+
readonly autoFocus: false;
|
|
22
24
|
readonly disabled: false;
|
|
23
25
|
readonly options: readonly [];
|
|
24
26
|
readonly required: true;
|
|
@@ -495,6 +497,9 @@ declare const FormControl: {
|
|
|
495
497
|
settings: {};
|
|
496
498
|
};
|
|
497
499
|
type: "formControl";
|
|
500
|
+
attributeValues: {
|
|
501
|
+
readonly subType: readonly string[];
|
|
502
|
+
};
|
|
498
503
|
triggers: {
|
|
499
504
|
readonly onChange: {
|
|
500
505
|
readonly action: "onChange";
|
|
@@ -9,6 +9,11 @@ export type CheckboxProps = {
|
|
|
9
9
|
disabled?: boolean;
|
|
10
10
|
onChange?: (e: ChangeEvent<HTMLInputElement>) => void;
|
|
11
11
|
onValidate?: () => void;
|
|
12
|
+
/**
|
|
13
|
+
* The id of the message saying what is wrong with the value, while something is: the field is then marked invalid
|
|
14
|
+
* and described by it, so a screen reader or a browser agent hears why the form would not send.
|
|
15
|
+
*/
|
|
16
|
+
errorId?: string;
|
|
12
17
|
};
|
|
13
|
-
declare const Checkbox: ({ className, id, name, placeholder, value, required, disabled, onChange, onValidate }: CheckboxProps) => import('react').JSX.Element;
|
|
18
|
+
declare const Checkbox: ({ className, id, name, placeholder, value, required, disabled, onChange, onValidate, errorId }: CheckboxProps) => import('react').JSX.Element;
|
|
14
19
|
export default Checkbox;
|
|
@@ -2,11 +2,13 @@ import { useCallback as e } from "react";
|
|
|
2
2
|
import { jsx as t } from "react/jsx-runtime";
|
|
3
3
|
import n from "clsx";
|
|
4
4
|
//#region src/elements/form/FormControl/inputs/Checkbox.tsx
|
|
5
|
-
var r = ({ className: r = "", id: i = "", name: a = "", placeholder: o = "", value: s = "", required: c = !0, disabled: l = !1, onChange: u, onValidate: d }) => {
|
|
6
|
-
let
|
|
5
|
+
var r = ({ className: r = "", id: i = "", name: a = "", placeholder: o = "", value: s = "", required: c = !0, disabled: l = !1, onChange: u, onValidate: d, errorId: f }) => {
|
|
6
|
+
let p = e(() => d?.(), [d]);
|
|
7
7
|
return /* @__PURE__ */ t("input", {
|
|
8
8
|
className: n("form-control__checkbox-container", r),
|
|
9
9
|
id: i,
|
|
10
|
+
"aria-invalid": f ? !0 : void 0,
|
|
11
|
+
"aria-describedby": f,
|
|
10
12
|
name: a,
|
|
11
13
|
type: "checkbox",
|
|
12
14
|
placeholder: o,
|
|
@@ -14,7 +16,7 @@ var r = ({ className: r = "", id: i = "", name: a = "", placeholder: o = "", val
|
|
|
14
16
|
required: c,
|
|
15
17
|
disabled: l,
|
|
16
18
|
onChange: u,
|
|
17
|
-
onBlur:
|
|
19
|
+
onBlur: p
|
|
18
20
|
});
|
|
19
21
|
};
|
|
20
22
|
//#endregion
|
|
@@ -6,6 +6,8 @@ export type InputProps = {
|
|
|
6
6
|
value?: string;
|
|
7
7
|
type?: string;
|
|
8
8
|
autoComplete?: boolean;
|
|
9
|
+
/** Takes the focus while true: as it becomes true, whether on mount or as the field is shown again. */
|
|
10
|
+
autoFocus?: boolean;
|
|
9
11
|
required?: boolean;
|
|
10
12
|
/** `0` for none. The one rule the browser enforces itself, and by the kindest means: it stops the typing. */
|
|
11
13
|
maxLength?: number;
|
|
@@ -13,6 +15,11 @@ export type InputProps = {
|
|
|
13
15
|
readOnly?: boolean;
|
|
14
16
|
onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
|
|
15
17
|
onValidate?: () => void;
|
|
18
|
+
/**
|
|
19
|
+
* The id of the message saying what is wrong with the value, while something is: the field is then marked invalid
|
|
20
|
+
* and described by it, so a screen reader or a browser agent hears why the form would not send.
|
|
21
|
+
*/
|
|
22
|
+
errorId?: string;
|
|
16
23
|
};
|
|
17
|
-
declare const Input: ({ className, id, name, placeholder, value, type, autoComplete, required, maxLength, disabled, readOnly, onChange, onValidate }: InputProps) => import('react').JSX.Element;
|
|
24
|
+
declare const Input: ({ className, id, name, placeholder, value, type, autoComplete, autoFocus, required, maxLength, disabled, readOnly, onChange, onValidate, errorId }: InputProps) => import('react').JSX.Element;
|
|
18
25
|
export default Input;
|
|
@@ -1,43 +1,49 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import a from "
|
|
1
|
+
import e from "./useFocusWhenShown.mjs";
|
|
2
|
+
import { useCallback as t, useRef as n, useState as r } from "react";
|
|
3
|
+
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
4
|
+
import o from "clsx";
|
|
4
5
|
//#region src/elements/form/FormControl/inputs/Input.tsx
|
|
5
|
-
var
|
|
6
|
-
let [
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
6
|
+
var s = ({ className: s = "", id: c = "", name: l = "", placeholder: u = "", value: d = "", type: f = "text", autoComplete: p = !1, autoFocus: m = !1, required: h = !0, maxLength: g = 0, disabled: _ = !1, readOnly: v = !1, onChange: y, onValidate: b, errorId: x }) => {
|
|
7
|
+
let [S, C] = r(!1), w = n(null);
|
|
8
|
+
e(w, m);
|
|
9
|
+
let T = t(() => C((e) => !e), [C]), E = t((e) => {
|
|
10
|
+
let t = w.current;
|
|
11
|
+
if (t?.focus(), f === "color" && t && e.target !== t) try {
|
|
12
|
+
t.showPicker();
|
|
13
|
+
} catch {}
|
|
14
|
+
}, [w, f]), D = t(() => b?.(), [b]);
|
|
15
|
+
return /* @__PURE__ */ a("div", {
|
|
16
|
+
className: o("form-control__input-container", s),
|
|
17
|
+
onClick: E,
|
|
18
|
+
children: [/* @__PURE__ */ i("input", {
|
|
19
|
+
ref: w,
|
|
20
|
+
className: "input-container__input",
|
|
21
|
+
id: c,
|
|
22
|
+
"aria-invalid": x ? !0 : void 0,
|
|
23
|
+
"aria-describedby": x,
|
|
24
|
+
name: l,
|
|
25
|
+
type: f === "password" && S ? "text" : f,
|
|
26
|
+
placeholder: u,
|
|
27
|
+
value: d,
|
|
28
|
+
required: h,
|
|
29
|
+
maxLength: g > 0 ? g : void 0,
|
|
30
|
+
autoComplete: p ? "on" : "off",
|
|
31
|
+
disabled: _,
|
|
32
|
+
readOnly: v,
|
|
33
|
+
onChange: y,
|
|
34
|
+
onBlur: D
|
|
35
|
+
}), f === "password" && /* @__PURE__ */ i("button", {
|
|
36
|
+
type: "button",
|
|
37
|
+
className: "form-input__icon",
|
|
38
|
+
"aria-pressed": S,
|
|
39
|
+
title: "Show password",
|
|
40
|
+
onClick: T,
|
|
41
|
+
children: /* @__PURE__ */ i("i", {
|
|
42
|
+
className: S ? "fa-solid fa-eye-slash" : "fa-solid fa-eye",
|
|
43
|
+
"aria-hidden": "true"
|
|
38
44
|
})
|
|
39
|
-
]
|
|
45
|
+
})]
|
|
40
46
|
});
|
|
41
47
|
};
|
|
42
48
|
//#endregion
|
|
43
|
-
export {
|
|
49
|
+
export { s as default };
|
|
@@ -12,6 +12,11 @@ export type SelectProps = {
|
|
|
12
12
|
disabled?: boolean;
|
|
13
13
|
onChange?: (e: ChangeEvent<HTMLSelectElement>) => void;
|
|
14
14
|
onValidate?: () => void;
|
|
15
|
+
/**
|
|
16
|
+
* The id of the message saying what is wrong with the value, while something is: the field is then marked invalid
|
|
17
|
+
* and described by it, so a screen reader or a browser agent hears why the form would not send.
|
|
18
|
+
*/
|
|
19
|
+
errorId?: string;
|
|
15
20
|
};
|
|
16
|
-
declare const Select: ({ id, name, options, placeholder, value, className, disabled, onChange, onValidate }: SelectProps) => import('react').JSX.Element;
|
|
21
|
+
declare const Select: ({ id, name, options, placeholder, value, className, disabled, onChange, onValidate, errorId }: SelectProps) => import('react').JSX.Element;
|
|
17
22
|
export default Select;
|
|
@@ -2,12 +2,12 @@ import { useCallback as e, useMemo as t, useRef as n } from "react";
|
|
|
2
2
|
import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
3
3
|
import a from "clsx";
|
|
4
4
|
//#region src/elements/form/FormControl/inputs/Select.tsx
|
|
5
|
-
var o = ({ id: o = "", name: s, options: c = [], placeholder: l = "", value: u = "", className: d = "", disabled: f = !1, onChange: p, onValidate: m }) => {
|
|
6
|
-
let
|
|
7
|
-
|
|
8
|
-
}, [
|
|
5
|
+
var o = ({ id: o = "", name: s, options: c = [], placeholder: l = "", value: u = "", className: d = "", disabled: f = !1, onChange: p, onValidate: m, errorId: h }) => {
|
|
6
|
+
let g = n(null), _ = e(() => {
|
|
7
|
+
g.current?.click();
|
|
8
|
+
}, [g]), v = e((e) => {
|
|
9
9
|
e.stopPropagation();
|
|
10
|
-
}, []),
|
|
10
|
+
}, []), y = e(() => m?.(), [m]), b = t(() => Array.isArray(c) ? c.map((e) => {
|
|
11
11
|
if (typeof e == "string") return {
|
|
12
12
|
value: e,
|
|
13
13
|
label: e
|
|
@@ -26,21 +26,23 @@ var o = ({ id: o = "", name: s, options: c = [], placeholder: l = "", value: u =
|
|
|
26
26
|
}) : [], [c]);
|
|
27
27
|
return /* @__PURE__ */ r("div", {
|
|
28
28
|
className: a("form-control__select-container", d),
|
|
29
|
-
onClick:
|
|
29
|
+
onClick: _,
|
|
30
30
|
children: /* @__PURE__ */ i("select", {
|
|
31
|
-
ref:
|
|
31
|
+
ref: g,
|
|
32
32
|
id: o,
|
|
33
|
+
"aria-invalid": h ? !0 : void 0,
|
|
34
|
+
"aria-describedby": h,
|
|
33
35
|
name: s,
|
|
34
36
|
onChange: p,
|
|
35
37
|
value: u,
|
|
36
38
|
className: "select-container__select",
|
|
37
39
|
disabled: f,
|
|
38
|
-
onClick:
|
|
39
|
-
onBlur:
|
|
40
|
+
onClick: v,
|
|
41
|
+
onBlur: y,
|
|
40
42
|
children: [l && /* @__PURE__ */ r("option", {
|
|
41
43
|
value: "",
|
|
42
44
|
children: l
|
|
43
|
-
}),
|
|
45
|
+
}), b.map((e, t) => /* @__PURE__ */ r("option", {
|
|
44
46
|
value: e.value,
|
|
45
47
|
children: e.label
|
|
46
48
|
}, t))]
|
|
@@ -5,6 +5,8 @@ export type TextareaProps = {
|
|
|
5
5
|
name?: string;
|
|
6
6
|
placeholder?: string;
|
|
7
7
|
value?: string;
|
|
8
|
+
/** Takes the focus while true: as it becomes true, whether on mount or as the field is shown again. */
|
|
9
|
+
autoFocus?: boolean;
|
|
8
10
|
required?: boolean;
|
|
9
11
|
/** `0` for none. */
|
|
10
12
|
maxLength?: number;
|
|
@@ -12,6 +14,11 @@ export type TextareaProps = {
|
|
|
12
14
|
readOnly?: boolean;
|
|
13
15
|
onChange?: (e: ChangeEvent<HTMLTextAreaElement>) => void;
|
|
14
16
|
onValidate?: () => void;
|
|
17
|
+
/**
|
|
18
|
+
* The id of the message saying what is wrong with the value, while something is: the field is then marked invalid
|
|
19
|
+
* and described by it, so a screen reader or a browser agent hears why the form would not send.
|
|
20
|
+
*/
|
|
21
|
+
errorId?: string;
|
|
15
22
|
};
|
|
16
|
-
declare const Textarea: ({ className, id, name, placeholder, value, required, maxLength, disabled, readOnly, onChange, onValidate }: TextareaProps) => import('react').JSX.Element;
|
|
23
|
+
declare const Textarea: ({ className, id, name, placeholder, value, autoFocus, required, maxLength, disabled, readOnly, onChange, onValidate, errorId }: TextareaProps) => import('react').JSX.Element;
|
|
17
24
|
export default Textarea;
|
|
@@ -1,26 +1,31 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import r from "
|
|
1
|
+
import e from "./useFocusWhenShown.mjs";
|
|
2
|
+
import { useCallback as t, useRef as n } from "react";
|
|
3
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
4
|
+
import i from "clsx";
|
|
4
5
|
//#region src/elements/form/FormControl/inputs/Textarea.tsx
|
|
5
|
-
var
|
|
6
|
-
let
|
|
6
|
+
var a = ({ className: a = "", id: o = "", name: s = "", placeholder: c = "", value: l = "", autoFocus: u = !1, required: d = !0, maxLength: f = 0, disabled: p = !1, readOnly: m = !1, onChange: h, onValidate: g, errorId: _ }) => {
|
|
7
|
+
let v = n(null);
|
|
8
|
+
e(v, u);
|
|
9
|
+
let y = t((e) => {
|
|
7
10
|
e.stopPropagation();
|
|
8
|
-
}, []),
|
|
9
|
-
return /* @__PURE__ */
|
|
10
|
-
ref:
|
|
11
|
-
className:
|
|
12
|
-
id:
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
11
|
+
}, []), b = t(() => g?.(), [g]);
|
|
12
|
+
return /* @__PURE__ */ r("textarea", {
|
|
13
|
+
ref: v,
|
|
14
|
+
className: i("form-control__textarea-container", a),
|
|
15
|
+
id: o,
|
|
16
|
+
"aria-invalid": _ ? !0 : void 0,
|
|
17
|
+
"aria-describedby": _,
|
|
18
|
+
name: s,
|
|
19
|
+
placeholder: c,
|
|
20
|
+
value: l,
|
|
21
|
+
readOnly: m,
|
|
22
|
+
required: d,
|
|
23
|
+
maxLength: f > 0 ? f : void 0,
|
|
24
|
+
disabled: p,
|
|
25
|
+
onChange: h,
|
|
26
|
+
onBlur: b,
|
|
27
|
+
onClick: y
|
|
23
28
|
});
|
|
24
29
|
};
|
|
25
30
|
//#endregion
|
|
26
|
-
export {
|
|
31
|
+
export { a as default };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { RefObject } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* A field that takes the focus each time it is shown: as it mounts, and again whenever it — or anything it is in — goes
|
|
4
|
+
* from hidden to shown. The native `autofocus` only acts on insertion, and a panel that hides keeps its field mounted.
|
|
5
|
+
*/
|
|
6
|
+
declare const useFocusWhenShown: (ref: RefObject<HTMLInputElement | HTMLTextAreaElement | null>, shown: boolean) => void;
|
|
7
|
+
export default useFocusWhenShown;
|