@x-plat/design-system 0.8.2 → 0.9.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.
- package/dist/components/AutoResizeTextArea/index.cjs +140 -4
- package/dist/components/AutoResizeTextArea/index.css +38 -3
- package/dist/components/AutoResizeTextArea/index.d.cts +3 -0
- package/dist/components/AutoResizeTextArea/index.d.ts +3 -0
- package/dist/components/AutoResizeTextArea/index.js +140 -4
- package/dist/components/ChatInput/index.cjs +150 -9
- package/dist/components/ChatInput/index.css +38 -3
- package/dist/components/ChatInput/index.d.cts +3 -0
- package/dist/components/ChatInput/index.d.ts +3 -0
- package/dist/components/ChatInput/index.js +151 -10
- package/dist/components/CheckBox/index.cjs +132 -5
- package/dist/components/CheckBox/index.css +38 -0
- package/dist/components/CheckBox/index.d.cts +3 -0
- package/dist/components/CheckBox/index.d.ts +3 -0
- package/dist/components/CheckBox/index.js +132 -5
- package/dist/components/DatePicker/index.cjs +72 -59
- package/dist/components/DatePicker/index.css +38 -34
- package/dist/components/DatePicker/index.js +38 -25
- package/dist/components/FieldMessage/index.cjs +183 -0
- package/dist/components/FieldMessage/index.css +37 -0
- package/dist/components/FieldMessage/index.d.cts +37 -0
- package/dist/components/FieldMessage/index.d.ts +37 -0
- package/dist/components/FieldMessage/index.js +154 -0
- package/dist/components/FileUpload/index.cjs +135 -8
- package/dist/components/FileUpload/index.css +38 -0
- package/dist/components/FileUpload/index.d.cts +3 -0
- package/dist/components/FileUpload/index.d.ts +3 -0
- package/dist/components/FileUpload/index.js +135 -8
- package/dist/components/ImageSelector/index.cjs +153 -11
- package/dist/components/ImageSelector/index.css +38 -0
- package/dist/components/ImageSelector/index.d.cts +3 -0
- package/dist/components/ImageSelector/index.d.ts +3 -0
- package/dist/components/ImageSelector/index.js +153 -11
- package/dist/components/Input/index.cjs +38 -25
- package/dist/components/Input/index.css +38 -34
- package/dist/components/Input/index.d.cts +3 -8
- package/dist/components/Input/index.d.ts +3 -8
- package/dist/components/Input/index.js +36 -23
- package/dist/components/Radio/index.cjs +152 -8
- package/dist/components/Radio/index.css +38 -0
- package/dist/components/Radio/index.d.cts +3 -0
- package/dist/components/Radio/index.d.ts +3 -0
- package/dist/components/Radio/index.js +152 -8
- package/dist/components/Select/index.cjs +139 -13
- package/dist/components/Select/index.css +38 -0
- package/dist/components/Select/index.d.cts +3 -0
- package/dist/components/Select/index.d.ts +3 -0
- package/dist/components/Select/index.js +139 -13
- package/dist/components/Switch/index.cjs +140 -4
- package/dist/components/Switch/index.css +38 -0
- package/dist/components/Switch/index.d.cts +3 -0
- package/dist/components/Switch/index.d.ts +3 -0
- package/dist/components/Switch/index.js +140 -4
- package/dist/components/TextArea/index.cjs +138 -2
- package/dist/components/TextArea/index.css +38 -3
- package/dist/components/TextArea/index.d.cts +3 -0
- package/dist/components/TextArea/index.d.ts +3 -0
- package/dist/components/TextArea/index.js +138 -2
- package/dist/components/index.cjs +439 -385
- package/dist/components/index.css +38 -40
- package/dist/components/index.d.cts +2 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +222 -171
- package/dist/index.cjs +444 -390
- package/dist/index.css +38 -40
- package/dist/index.d.cts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +224 -173
- package/dist/validation-Dqo1zqhT.d.cts +13 -0
- package/dist/validation-Dqo1zqhT.d.ts +13 -0
- package/guidelines/components/form.md +26 -0
- package/package.json +1 -1
|
@@ -53,12 +53,145 @@ function clsx() {
|
|
|
53
53
|
}
|
|
54
54
|
var clsx_default = clsx;
|
|
55
55
|
|
|
56
|
-
// src/
|
|
56
|
+
// src/tokens/svg/status/ErrorIcon.tsx
|
|
57
57
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
58
|
+
var ErrorIcon = () => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
59
|
+
"svg",
|
|
60
|
+
{
|
|
61
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
62
|
+
width: "1em",
|
|
63
|
+
height: "1em",
|
|
64
|
+
viewBox: "0 0 16 16",
|
|
65
|
+
fill: "none",
|
|
66
|
+
children: [
|
|
67
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("g", { clipPath: "url(#clip0_1196_9603)", children: [
|
|
68
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
69
|
+
"path",
|
|
70
|
+
{
|
|
71
|
+
d: "M9.57588 5.57559C9.81019 5.34127 10.19 5.34127 10.4243 5.57559C10.6586 5.8099 10.6586 6.18971 10.4243 6.42402L8.84854 7.9998L10.4243 9.57559C10.6586 9.8099 10.6586 10.1897 10.4243 10.424C10.19 10.6583 9.81019 10.6583 9.57588 10.424L8.0001 8.84824L6.42432 10.424C6.19 10.6583 5.81019 10.6583 5.57588 10.424C5.34156 10.1897 5.34156 9.8099 5.57588 9.57559L7.15166 7.9998L5.57588 6.42402C5.34156 6.18971 5.34156 5.8099 5.57588 5.57559C5.81019 5.34127 6.19 5.34127 6.42432 5.57559L8.0001 7.15137L9.57588 5.57559Z",
|
|
72
|
+
fill: "currentColor"
|
|
73
|
+
}
|
|
74
|
+
),
|
|
75
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
76
|
+
"path",
|
|
77
|
+
{
|
|
78
|
+
fillRule: "evenodd",
|
|
79
|
+
clipRule: "evenodd",
|
|
80
|
+
d: "M8.0001 0.733398C12.0131 0.73361 15.2671 3.98679 15.2673 7.9998C15.2672 12.0129 12.0131 15.2668 8.0001 15.267C3.98701 15.2669 0.733016 12.0129 0.73291 7.9998C0.733051 3.98674 3.98704 0.733539 8.0001 0.733398ZM8.0001 1.9334C4.64978 1.93354 1.93383 4.64948 1.93369 7.9998C1.9338 11.3502 4.64975 14.0669 8.0001 14.067C11.3504 14.0668 14.0672 11.3501 14.0673 7.9998C14.0671 4.64953 11.3504 1.93361 8.0001 1.9334Z",
|
|
81
|
+
fill: "currentColor"
|
|
82
|
+
}
|
|
83
|
+
)
|
|
84
|
+
] }),
|
|
85
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("clipPath", { id: "clip0_1196_9603", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("rect", { width: "16", height: "16", fill: "white" }) }) })
|
|
86
|
+
]
|
|
87
|
+
}
|
|
88
|
+
);
|
|
89
|
+
var ErrorIcon_default = ErrorIcon;
|
|
90
|
+
|
|
91
|
+
// src/tokens/svg/status/InfoIcon.tsx
|
|
92
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
93
|
+
var InfoIcon = () => /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
|
|
94
|
+
"svg",
|
|
95
|
+
{
|
|
96
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
97
|
+
width: "1em",
|
|
98
|
+
height: "1em",
|
|
99
|
+
viewBox: "0 0 16 16",
|
|
100
|
+
fill: "none",
|
|
101
|
+
children: [
|
|
102
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("g", { clipPath: "url(#clip0_1188_11261)", children: [
|
|
103
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
104
|
+
"path",
|
|
105
|
+
{
|
|
106
|
+
d: "M8.00156 7.39999C8.33293 7.39999 8.60156 7.66862 8.60156 7.99999V10.6664C8.60156 10.9978 8.33293 11.2664 8.00156 11.2664C7.67019 11.2664 7.40156 10.9978 7.40156 10.6664V7.99999C7.40156 7.66862 7.67019 7.39999 8.00156 7.39999Z",
|
|
107
|
+
fill: "currentColor"
|
|
108
|
+
}
|
|
109
|
+
),
|
|
110
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
111
|
+
"path",
|
|
112
|
+
{
|
|
113
|
+
d: "M8.00859 4.73358C8.3398 4.73378 8.60859 5.00233 8.60859 5.33358C8.60849 5.66474 8.33973 5.93338 8.00859 5.93358H8.00156C7.67026 5.93358 7.40167 5.66486 7.40156 5.33358C7.40156 5.00221 7.67019 4.73358 8.00156 4.73358H8.00859Z",
|
|
114
|
+
fill: "currentColor"
|
|
115
|
+
}
|
|
116
|
+
),
|
|
117
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
118
|
+
"path",
|
|
119
|
+
{
|
|
120
|
+
fillRule: "evenodd",
|
|
121
|
+
clipRule: "evenodd",
|
|
122
|
+
d: "M8.00156 0.733582C12.0146 0.733793 15.2686 3.98697 15.2688 7.99999C15.2686 12.013 12.0146 15.267 8.00156 15.2672C3.98848 15.267 0.734481 12.0131 0.734375 7.99999C0.734516 3.98693 3.9885 0.733722 8.00156 0.733582ZM8.00156 1.93358C4.65124 1.93372 1.9353 4.64967 1.93516 7.99999C1.93526 11.3503 4.65122 14.067 8.00156 14.0672C11.3518 14.067 14.0686 11.3503 14.0688 7.99999C14.0686 4.64971 11.3518 1.93379 8.00156 1.93358Z",
|
|
123
|
+
fill: "currentColor"
|
|
124
|
+
}
|
|
125
|
+
)
|
|
126
|
+
] }),
|
|
127
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("clipPath", { id: "clip0_1188_11261", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { width: "16", height: "16", fill: "white" }) }) })
|
|
128
|
+
]
|
|
129
|
+
}
|
|
130
|
+
);
|
|
131
|
+
var InfoIcon_default = InfoIcon;
|
|
132
|
+
|
|
133
|
+
// src/tokens/svg/status/SuccessIcon.tsx
|
|
134
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
135
|
+
var SuccessIcon = () => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
136
|
+
"svg",
|
|
137
|
+
{
|
|
138
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
139
|
+
width: "1em",
|
|
140
|
+
height: "1em",
|
|
141
|
+
viewBox: "0 0 16 16",
|
|
142
|
+
fill: "none",
|
|
143
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
144
|
+
"path",
|
|
145
|
+
{
|
|
146
|
+
d: "M12.9084 3.57597C13.1426 3.34172 13.5225 3.34185 13.7568 3.57597C13.9911 3.81028 13.9911 4.19009 13.7568 4.4244L6.424 11.758C6.31157 11.8703 6.15869 11.9337 5.99978 11.9338C5.8409 11.9337 5.68798 11.8703 5.57556 11.758L2.24197 8.4244C2.00782 8.19018 2.00795 7.81028 2.24197 7.57597C2.47626 7.34167 2.85609 7.34172 3.09041 7.57597L5.999 10.4846L12.9084 3.57597Z",
|
|
147
|
+
fill: "currentColor"
|
|
148
|
+
}
|
|
149
|
+
)
|
|
150
|
+
}
|
|
151
|
+
);
|
|
152
|
+
var SuccessIcon_default = SuccessIcon;
|
|
153
|
+
|
|
154
|
+
// src/components/FieldMessage/FieldMessage.tsx
|
|
155
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
156
|
+
var ICON = {
|
|
157
|
+
default: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(InfoIcon_default, {}),
|
|
158
|
+
success: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(SuccessIcon_default, {}),
|
|
159
|
+
warning: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(InfoIcon_default, {}),
|
|
160
|
+
error: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(ErrorIcon_default, {})
|
|
161
|
+
};
|
|
162
|
+
var FieldMessage = (props) => {
|
|
163
|
+
const { validations } = props;
|
|
164
|
+
if (!validations || validations.length === 0) return null;
|
|
165
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "lib-xplat-field-message-wrap", children: validations.map((v, idx) => /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
|
166
|
+
"div",
|
|
167
|
+
{
|
|
168
|
+
className: clsx_default("lib-xplat-field-message", v.status),
|
|
169
|
+
children: [
|
|
170
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "icon", children: ICON[v.status] }),
|
|
171
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { children: v.message })
|
|
172
|
+
]
|
|
173
|
+
},
|
|
174
|
+
`${v.message}_${idx}`
|
|
175
|
+
)) });
|
|
176
|
+
};
|
|
177
|
+
FieldMessage.displayName = "FieldMessage";
|
|
178
|
+
var Field = (props) => {
|
|
179
|
+
const { validations, children } = props;
|
|
180
|
+
if (!validations || validations.length === 0) return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, { children });
|
|
181
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "lib-xplat-field", children: [
|
|
182
|
+
children,
|
|
183
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(FieldMessage, { validations })
|
|
184
|
+
] });
|
|
185
|
+
};
|
|
186
|
+
Field.displayName = "Field";
|
|
187
|
+
var hasError = (validations) => !!validations?.some((v) => v.status === "error");
|
|
188
|
+
|
|
189
|
+
// src/components/AutoResizeTextArea/AutoResizeTextArea.tsx
|
|
190
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
58
191
|
var MAX_HEIGHT = 400;
|
|
59
192
|
var AutoResizeTextArea = import_react.default.forwardRef(
|
|
60
193
|
(props, ref) => {
|
|
61
|
-
const { value, className, onChange, disabled, bare = false, ...textareaProps } = props;
|
|
194
|
+
const { value, className, onChange, disabled, bare = false, validations, ...textareaProps } = props;
|
|
62
195
|
const localRef = import_react.default.useRef(null);
|
|
63
196
|
const setRefs = (el) => {
|
|
64
197
|
localRef.current = el;
|
|
@@ -86,9 +219,10 @@ var AutoResizeTextArea = import_react.default.forwardRef(
|
|
|
86
219
|
updateHeight();
|
|
87
220
|
}, [value]);
|
|
88
221
|
if (bare) {
|
|
89
|
-
return /* @__PURE__ */ (0,
|
|
222
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
90
223
|
"textarea",
|
|
91
224
|
{
|
|
225
|
+
"aria-invalid": hasError(validations) || void 0,
|
|
92
226
|
...textareaProps,
|
|
93
227
|
ref: setRefs,
|
|
94
228
|
className,
|
|
@@ -98,9 +232,10 @@ var AutoResizeTextArea = import_react.default.forwardRef(
|
|
|
98
232
|
}
|
|
99
233
|
);
|
|
100
234
|
}
|
|
101
|
-
|
|
235
|
+
const control = /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: clsx_default("lib-xplat-auto-resize-textarea-wrapper", className), children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: clsx_default("lib-xplat-auto-resize-textarea", disabled && "disabled"), children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
102
236
|
"textarea",
|
|
103
237
|
{
|
|
238
|
+
"aria-invalid": hasError(validations) || void 0,
|
|
104
239
|
...textareaProps,
|
|
105
240
|
ref: setRefs,
|
|
106
241
|
disabled,
|
|
@@ -108,6 +243,7 @@ var AutoResizeTextArea = import_react.default.forwardRef(
|
|
|
108
243
|
onChange: handleChange
|
|
109
244
|
}
|
|
110
245
|
) }) });
|
|
246
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Field, { validations, children: control });
|
|
111
247
|
}
|
|
112
248
|
);
|
|
113
249
|
AutoResizeTextArea.displayName = "AutoResizeTextArea";
|
|
@@ -1,3 +1,41 @@
|
|
|
1
|
+
/* src/components/FieldMessage/fieldMessage.scss */
|
|
2
|
+
.lib-xplat-field {
|
|
3
|
+
display: flex;
|
|
4
|
+
flex-direction: column;
|
|
5
|
+
gap: var(--spacing-space-2);
|
|
6
|
+
}
|
|
7
|
+
.lib-xplat-field-message-wrap {
|
|
8
|
+
display: flex;
|
|
9
|
+
gap: var(--spacing-space-2);
|
|
10
|
+
margin-left: var(--spacing-space-1);
|
|
11
|
+
}
|
|
12
|
+
.lib-xplat-field-message-wrap > .lib-xplat-field-message {
|
|
13
|
+
display: flex;
|
|
14
|
+
gap: var(--spacing-space-1);
|
|
15
|
+
font-family: var(--semantic-typo-caption-2-r-font);
|
|
16
|
+
font-size: var(--semantic-typo-caption-2-r-size);
|
|
17
|
+
line-height: var(--semantic-typo-caption-2-r-lh);
|
|
18
|
+
font-weight: var(--semantic-typo-caption-2-r-weight);
|
|
19
|
+
letter-spacing: var(--semantic-typo-caption-2-r-ls);
|
|
20
|
+
align-items: center;
|
|
21
|
+
user-select: none;
|
|
22
|
+
}
|
|
23
|
+
.lib-xplat-field-message-wrap > .lib-xplat-field-message.default {
|
|
24
|
+
color: var(--semantic-icon-secondary);
|
|
25
|
+
}
|
|
26
|
+
.lib-xplat-field-message-wrap > .lib-xplat-field-message.success {
|
|
27
|
+
color: var(--semantic-text-success);
|
|
28
|
+
}
|
|
29
|
+
.lib-xplat-field-message-wrap > .lib-xplat-field-message.warning {
|
|
30
|
+
color: var(--semantic-text-warning);
|
|
31
|
+
}
|
|
32
|
+
.lib-xplat-field-message-wrap > .lib-xplat-field-message.error {
|
|
33
|
+
color: var(--semantic-text-error);
|
|
34
|
+
}
|
|
35
|
+
.lib-xplat-field-message-wrap > .lib-xplat-field-message > .icon {
|
|
36
|
+
font-size: var(--semantic-typo-label-2-m-size);
|
|
37
|
+
}
|
|
38
|
+
|
|
1
39
|
/* src/components/AutoResizeTextArea/autoResizeTextArea.scss */
|
|
2
40
|
.lib-xplat-auto-resize-textarea-wrapper {
|
|
3
41
|
display: flex;
|
|
@@ -24,9 +62,6 @@
|
|
|
24
62
|
outline: 2px solid transparent;
|
|
25
63
|
outline-offset: 2px;
|
|
26
64
|
}
|
|
27
|
-
.lib-xplat-auto-resize-textarea-wrapper .lib-xplat-auto-resize-textarea:has(> textarea:not(:placeholder-shown)):not(:focus-within) {
|
|
28
|
-
border-color: var(--semantic-border-tertiary);
|
|
29
|
-
}
|
|
30
65
|
.lib-xplat-auto-resize-textarea-wrapper .lib-xplat-auto-resize-textarea.disabled {
|
|
31
66
|
background-color: var(--semantic-surface-neutral-disabled);
|
|
32
67
|
cursor: not-allowed;
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { T as TextareaAttributes } from '../../attributes-DJIWir_0.cjs';
|
|
3
|
+
import { V as Validation } from '../../validation-Dqo1zqhT.cjs';
|
|
3
4
|
|
|
4
5
|
interface AutoResizeTextAreaProps extends TextareaAttributes {
|
|
5
6
|
/** ChatInput 등 내부 임베딩 시 wrapper 없이 textarea만 렌더 */
|
|
7
|
+
/** 컨트롤 아래에 표시할 검증 메시지. DS 폼 컴포넌트 공통 */
|
|
8
|
+
validations?: Validation[];
|
|
6
9
|
bare?: boolean;
|
|
7
10
|
}
|
|
8
11
|
declare const AutoResizeTextArea: React.ForwardRefExoticComponent<AutoResizeTextAreaProps & React.RefAttributes<HTMLTextAreaElement>>;
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { T as TextareaAttributes } from '../../attributes-DJIWir_0.js';
|
|
3
|
+
import { V as Validation } from '../../validation-Dqo1zqhT.js';
|
|
3
4
|
|
|
4
5
|
interface AutoResizeTextAreaProps extends TextareaAttributes {
|
|
5
6
|
/** ChatInput 등 내부 임베딩 시 wrapper 없이 textarea만 렌더 */
|
|
7
|
+
/** 컨트롤 아래에 표시할 검증 메시지. DS 폼 컴포넌트 공통 */
|
|
8
|
+
validations?: Validation[];
|
|
6
9
|
bare?: boolean;
|
|
7
10
|
}
|
|
8
11
|
declare const AutoResizeTextArea: React.ForwardRefExoticComponent<AutoResizeTextAreaProps & React.RefAttributes<HTMLTextAreaElement>>;
|
|
@@ -17,12 +17,145 @@ function clsx() {
|
|
|
17
17
|
}
|
|
18
18
|
var clsx_default = clsx;
|
|
19
19
|
|
|
20
|
+
// src/tokens/svg/status/ErrorIcon.tsx
|
|
21
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
22
|
+
var ErrorIcon = () => /* @__PURE__ */ jsxs(
|
|
23
|
+
"svg",
|
|
24
|
+
{
|
|
25
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
26
|
+
width: "1em",
|
|
27
|
+
height: "1em",
|
|
28
|
+
viewBox: "0 0 16 16",
|
|
29
|
+
fill: "none",
|
|
30
|
+
children: [
|
|
31
|
+
/* @__PURE__ */ jsxs("g", { clipPath: "url(#clip0_1196_9603)", children: [
|
|
32
|
+
/* @__PURE__ */ jsx(
|
|
33
|
+
"path",
|
|
34
|
+
{
|
|
35
|
+
d: "M9.57588 5.57559C9.81019 5.34127 10.19 5.34127 10.4243 5.57559C10.6586 5.8099 10.6586 6.18971 10.4243 6.42402L8.84854 7.9998L10.4243 9.57559C10.6586 9.8099 10.6586 10.1897 10.4243 10.424C10.19 10.6583 9.81019 10.6583 9.57588 10.424L8.0001 8.84824L6.42432 10.424C6.19 10.6583 5.81019 10.6583 5.57588 10.424C5.34156 10.1897 5.34156 9.8099 5.57588 9.57559L7.15166 7.9998L5.57588 6.42402C5.34156 6.18971 5.34156 5.8099 5.57588 5.57559C5.81019 5.34127 6.19 5.34127 6.42432 5.57559L8.0001 7.15137L9.57588 5.57559Z",
|
|
36
|
+
fill: "currentColor"
|
|
37
|
+
}
|
|
38
|
+
),
|
|
39
|
+
/* @__PURE__ */ jsx(
|
|
40
|
+
"path",
|
|
41
|
+
{
|
|
42
|
+
fillRule: "evenodd",
|
|
43
|
+
clipRule: "evenodd",
|
|
44
|
+
d: "M8.0001 0.733398C12.0131 0.73361 15.2671 3.98679 15.2673 7.9998C15.2672 12.0129 12.0131 15.2668 8.0001 15.267C3.98701 15.2669 0.733016 12.0129 0.73291 7.9998C0.733051 3.98674 3.98704 0.733539 8.0001 0.733398ZM8.0001 1.9334C4.64978 1.93354 1.93383 4.64948 1.93369 7.9998C1.9338 11.3502 4.64975 14.0669 8.0001 14.067C11.3504 14.0668 14.0672 11.3501 14.0673 7.9998C14.0671 4.64953 11.3504 1.93361 8.0001 1.9334Z",
|
|
45
|
+
fill: "currentColor"
|
|
46
|
+
}
|
|
47
|
+
)
|
|
48
|
+
] }),
|
|
49
|
+
/* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx("clipPath", { id: "clip0_1196_9603", children: /* @__PURE__ */ jsx("rect", { width: "16", height: "16", fill: "white" }) }) })
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
);
|
|
53
|
+
var ErrorIcon_default = ErrorIcon;
|
|
54
|
+
|
|
55
|
+
// src/tokens/svg/status/InfoIcon.tsx
|
|
56
|
+
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
57
|
+
var InfoIcon = () => /* @__PURE__ */ jsxs2(
|
|
58
|
+
"svg",
|
|
59
|
+
{
|
|
60
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
61
|
+
width: "1em",
|
|
62
|
+
height: "1em",
|
|
63
|
+
viewBox: "0 0 16 16",
|
|
64
|
+
fill: "none",
|
|
65
|
+
children: [
|
|
66
|
+
/* @__PURE__ */ jsxs2("g", { clipPath: "url(#clip0_1188_11261)", children: [
|
|
67
|
+
/* @__PURE__ */ jsx2(
|
|
68
|
+
"path",
|
|
69
|
+
{
|
|
70
|
+
d: "M8.00156 7.39999C8.33293 7.39999 8.60156 7.66862 8.60156 7.99999V10.6664C8.60156 10.9978 8.33293 11.2664 8.00156 11.2664C7.67019 11.2664 7.40156 10.9978 7.40156 10.6664V7.99999C7.40156 7.66862 7.67019 7.39999 8.00156 7.39999Z",
|
|
71
|
+
fill: "currentColor"
|
|
72
|
+
}
|
|
73
|
+
),
|
|
74
|
+
/* @__PURE__ */ jsx2(
|
|
75
|
+
"path",
|
|
76
|
+
{
|
|
77
|
+
d: "M8.00859 4.73358C8.3398 4.73378 8.60859 5.00233 8.60859 5.33358C8.60849 5.66474 8.33973 5.93338 8.00859 5.93358H8.00156C7.67026 5.93358 7.40167 5.66486 7.40156 5.33358C7.40156 5.00221 7.67019 4.73358 8.00156 4.73358H8.00859Z",
|
|
78
|
+
fill: "currentColor"
|
|
79
|
+
}
|
|
80
|
+
),
|
|
81
|
+
/* @__PURE__ */ jsx2(
|
|
82
|
+
"path",
|
|
83
|
+
{
|
|
84
|
+
fillRule: "evenodd",
|
|
85
|
+
clipRule: "evenodd",
|
|
86
|
+
d: "M8.00156 0.733582C12.0146 0.733793 15.2686 3.98697 15.2688 7.99999C15.2686 12.013 12.0146 15.267 8.00156 15.2672C3.98848 15.267 0.734481 12.0131 0.734375 7.99999C0.734516 3.98693 3.9885 0.733722 8.00156 0.733582ZM8.00156 1.93358C4.65124 1.93372 1.9353 4.64967 1.93516 7.99999C1.93526 11.3503 4.65122 14.067 8.00156 14.0672C11.3518 14.067 14.0686 11.3503 14.0688 7.99999C14.0686 4.64971 11.3518 1.93379 8.00156 1.93358Z",
|
|
87
|
+
fill: "currentColor"
|
|
88
|
+
}
|
|
89
|
+
)
|
|
90
|
+
] }),
|
|
91
|
+
/* @__PURE__ */ jsx2("defs", { children: /* @__PURE__ */ jsx2("clipPath", { id: "clip0_1188_11261", children: /* @__PURE__ */ jsx2("rect", { width: "16", height: "16", fill: "white" }) }) })
|
|
92
|
+
]
|
|
93
|
+
}
|
|
94
|
+
);
|
|
95
|
+
var InfoIcon_default = InfoIcon;
|
|
96
|
+
|
|
97
|
+
// src/tokens/svg/status/SuccessIcon.tsx
|
|
98
|
+
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
99
|
+
var SuccessIcon = () => /* @__PURE__ */ jsx3(
|
|
100
|
+
"svg",
|
|
101
|
+
{
|
|
102
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
103
|
+
width: "1em",
|
|
104
|
+
height: "1em",
|
|
105
|
+
viewBox: "0 0 16 16",
|
|
106
|
+
fill: "none",
|
|
107
|
+
children: /* @__PURE__ */ jsx3(
|
|
108
|
+
"path",
|
|
109
|
+
{
|
|
110
|
+
d: "M12.9084 3.57597C13.1426 3.34172 13.5225 3.34185 13.7568 3.57597C13.9911 3.81028 13.9911 4.19009 13.7568 4.4244L6.424 11.758C6.31157 11.8703 6.15869 11.9337 5.99978 11.9338C5.8409 11.9337 5.68798 11.8703 5.57556 11.758L2.24197 8.4244C2.00782 8.19018 2.00795 7.81028 2.24197 7.57597C2.47626 7.34167 2.85609 7.34172 3.09041 7.57597L5.999 10.4846L12.9084 3.57597Z",
|
|
111
|
+
fill: "currentColor"
|
|
112
|
+
}
|
|
113
|
+
)
|
|
114
|
+
}
|
|
115
|
+
);
|
|
116
|
+
var SuccessIcon_default = SuccessIcon;
|
|
117
|
+
|
|
118
|
+
// src/components/FieldMessage/FieldMessage.tsx
|
|
119
|
+
import { Fragment, jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
120
|
+
var ICON = {
|
|
121
|
+
default: /* @__PURE__ */ jsx4(InfoIcon_default, {}),
|
|
122
|
+
success: /* @__PURE__ */ jsx4(SuccessIcon_default, {}),
|
|
123
|
+
warning: /* @__PURE__ */ jsx4(InfoIcon_default, {}),
|
|
124
|
+
error: /* @__PURE__ */ jsx4(ErrorIcon_default, {})
|
|
125
|
+
};
|
|
126
|
+
var FieldMessage = (props) => {
|
|
127
|
+
const { validations } = props;
|
|
128
|
+
if (!validations || validations.length === 0) return null;
|
|
129
|
+
return /* @__PURE__ */ jsx4("div", { className: "lib-xplat-field-message-wrap", children: validations.map((v, idx) => /* @__PURE__ */ jsxs3(
|
|
130
|
+
"div",
|
|
131
|
+
{
|
|
132
|
+
className: clsx_default("lib-xplat-field-message", v.status),
|
|
133
|
+
children: [
|
|
134
|
+
/* @__PURE__ */ jsx4("div", { className: "icon", children: ICON[v.status] }),
|
|
135
|
+
/* @__PURE__ */ jsx4("span", { children: v.message })
|
|
136
|
+
]
|
|
137
|
+
},
|
|
138
|
+
`${v.message}_${idx}`
|
|
139
|
+
)) });
|
|
140
|
+
};
|
|
141
|
+
FieldMessage.displayName = "FieldMessage";
|
|
142
|
+
var Field = (props) => {
|
|
143
|
+
const { validations, children } = props;
|
|
144
|
+
if (!validations || validations.length === 0) return /* @__PURE__ */ jsx4(Fragment, { children });
|
|
145
|
+
return /* @__PURE__ */ jsxs3("div", { className: "lib-xplat-field", children: [
|
|
146
|
+
children,
|
|
147
|
+
/* @__PURE__ */ jsx4(FieldMessage, { validations })
|
|
148
|
+
] });
|
|
149
|
+
};
|
|
150
|
+
Field.displayName = "Field";
|
|
151
|
+
var hasError = (validations) => !!validations?.some((v) => v.status === "error");
|
|
152
|
+
|
|
20
153
|
// src/components/AutoResizeTextArea/AutoResizeTextArea.tsx
|
|
21
|
-
import { jsx } from "react/jsx-runtime";
|
|
154
|
+
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
22
155
|
var MAX_HEIGHT = 400;
|
|
23
156
|
var AutoResizeTextArea = React.forwardRef(
|
|
24
157
|
(props, ref) => {
|
|
25
|
-
const { value, className, onChange, disabled, bare = false, ...textareaProps } = props;
|
|
158
|
+
const { value, className, onChange, disabled, bare = false, validations, ...textareaProps } = props;
|
|
26
159
|
const localRef = React.useRef(null);
|
|
27
160
|
const setRefs = (el) => {
|
|
28
161
|
localRef.current = el;
|
|
@@ -50,9 +183,10 @@ var AutoResizeTextArea = React.forwardRef(
|
|
|
50
183
|
updateHeight();
|
|
51
184
|
}, [value]);
|
|
52
185
|
if (bare) {
|
|
53
|
-
return /* @__PURE__ */
|
|
186
|
+
return /* @__PURE__ */ jsx5(
|
|
54
187
|
"textarea",
|
|
55
188
|
{
|
|
189
|
+
"aria-invalid": hasError(validations) || void 0,
|
|
56
190
|
...textareaProps,
|
|
57
191
|
ref: setRefs,
|
|
58
192
|
className,
|
|
@@ -62,9 +196,10 @@ var AutoResizeTextArea = React.forwardRef(
|
|
|
62
196
|
}
|
|
63
197
|
);
|
|
64
198
|
}
|
|
65
|
-
|
|
199
|
+
const control = /* @__PURE__ */ jsx5("div", { className: clsx_default("lib-xplat-auto-resize-textarea-wrapper", className), children: /* @__PURE__ */ jsx5("div", { className: clsx_default("lib-xplat-auto-resize-textarea", disabled && "disabled"), children: /* @__PURE__ */ jsx5(
|
|
66
200
|
"textarea",
|
|
67
201
|
{
|
|
202
|
+
"aria-invalid": hasError(validations) || void 0,
|
|
68
203
|
...textareaProps,
|
|
69
204
|
ref: setRefs,
|
|
70
205
|
disabled,
|
|
@@ -72,6 +207,7 @@ var AutoResizeTextArea = React.forwardRef(
|
|
|
72
207
|
onChange: handleChange
|
|
73
208
|
}
|
|
74
209
|
) }) });
|
|
210
|
+
return /* @__PURE__ */ jsx5(Field, { validations, children: control });
|
|
75
211
|
}
|
|
76
212
|
);
|
|
77
213
|
AutoResizeTextArea.displayName = "AutoResizeTextArea";
|
|
@@ -111,11 +111,146 @@ var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
|
111
111
|
|
|
112
112
|
// src/components/AutoResizeTextArea/AutoResizeTextArea.tsx
|
|
113
113
|
var import_react = __toESM(require("react"), 1);
|
|
114
|
+
|
|
115
|
+
// src/tokens/svg/status/ErrorIcon.tsx
|
|
114
116
|
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
117
|
+
var ErrorIcon = () => /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
118
|
+
"svg",
|
|
119
|
+
{
|
|
120
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
121
|
+
width: "1em",
|
|
122
|
+
height: "1em",
|
|
123
|
+
viewBox: "0 0 16 16",
|
|
124
|
+
fill: "none",
|
|
125
|
+
children: [
|
|
126
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("g", { clipPath: "url(#clip0_1196_9603)", children: [
|
|
127
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
128
|
+
"path",
|
|
129
|
+
{
|
|
130
|
+
d: "M9.57588 5.57559C9.81019 5.34127 10.19 5.34127 10.4243 5.57559C10.6586 5.8099 10.6586 6.18971 10.4243 6.42402L8.84854 7.9998L10.4243 9.57559C10.6586 9.8099 10.6586 10.1897 10.4243 10.424C10.19 10.6583 9.81019 10.6583 9.57588 10.424L8.0001 8.84824L6.42432 10.424C6.19 10.6583 5.81019 10.6583 5.57588 10.424C5.34156 10.1897 5.34156 9.8099 5.57588 9.57559L7.15166 7.9998L5.57588 6.42402C5.34156 6.18971 5.34156 5.8099 5.57588 5.57559C5.81019 5.34127 6.19 5.34127 6.42432 5.57559L8.0001 7.15137L9.57588 5.57559Z",
|
|
131
|
+
fill: "currentColor"
|
|
132
|
+
}
|
|
133
|
+
),
|
|
134
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
135
|
+
"path",
|
|
136
|
+
{
|
|
137
|
+
fillRule: "evenodd",
|
|
138
|
+
clipRule: "evenodd",
|
|
139
|
+
d: "M8.0001 0.733398C12.0131 0.73361 15.2671 3.98679 15.2673 7.9998C15.2672 12.0129 12.0131 15.2668 8.0001 15.267C3.98701 15.2669 0.733016 12.0129 0.73291 7.9998C0.733051 3.98674 3.98704 0.733539 8.0001 0.733398ZM8.0001 1.9334C4.64978 1.93354 1.93383 4.64948 1.93369 7.9998C1.9338 11.3502 4.64975 14.0669 8.0001 14.067C11.3504 14.0668 14.0672 11.3501 14.0673 7.9998C14.0671 4.64953 11.3504 1.93361 8.0001 1.9334Z",
|
|
140
|
+
fill: "currentColor"
|
|
141
|
+
}
|
|
142
|
+
)
|
|
143
|
+
] }),
|
|
144
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("clipPath", { id: "clip0_1196_9603", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("rect", { width: "16", height: "16", fill: "white" }) }) })
|
|
145
|
+
]
|
|
146
|
+
}
|
|
147
|
+
);
|
|
148
|
+
var ErrorIcon_default = ErrorIcon;
|
|
149
|
+
|
|
150
|
+
// src/tokens/svg/status/InfoIcon.tsx
|
|
151
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
152
|
+
var InfoIcon = () => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
153
|
+
"svg",
|
|
154
|
+
{
|
|
155
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
156
|
+
width: "1em",
|
|
157
|
+
height: "1em",
|
|
158
|
+
viewBox: "0 0 16 16",
|
|
159
|
+
fill: "none",
|
|
160
|
+
children: [
|
|
161
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("g", { clipPath: "url(#clip0_1188_11261)", children: [
|
|
162
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
163
|
+
"path",
|
|
164
|
+
{
|
|
165
|
+
d: "M8.00156 7.39999C8.33293 7.39999 8.60156 7.66862 8.60156 7.99999V10.6664C8.60156 10.9978 8.33293 11.2664 8.00156 11.2664C7.67019 11.2664 7.40156 10.9978 7.40156 10.6664V7.99999C7.40156 7.66862 7.67019 7.39999 8.00156 7.39999Z",
|
|
166
|
+
fill: "currentColor"
|
|
167
|
+
}
|
|
168
|
+
),
|
|
169
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
170
|
+
"path",
|
|
171
|
+
{
|
|
172
|
+
d: "M8.00859 4.73358C8.3398 4.73378 8.60859 5.00233 8.60859 5.33358C8.60849 5.66474 8.33973 5.93338 8.00859 5.93358H8.00156C7.67026 5.93358 7.40167 5.66486 7.40156 5.33358C7.40156 5.00221 7.67019 4.73358 8.00156 4.73358H8.00859Z",
|
|
173
|
+
fill: "currentColor"
|
|
174
|
+
}
|
|
175
|
+
),
|
|
176
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
177
|
+
"path",
|
|
178
|
+
{
|
|
179
|
+
fillRule: "evenodd",
|
|
180
|
+
clipRule: "evenodd",
|
|
181
|
+
d: "M8.00156 0.733582C12.0146 0.733793 15.2686 3.98697 15.2688 7.99999C15.2686 12.013 12.0146 15.267 8.00156 15.2672C3.98848 15.267 0.734481 12.0131 0.734375 7.99999C0.734516 3.98693 3.9885 0.733722 8.00156 0.733582ZM8.00156 1.93358C4.65124 1.93372 1.9353 4.64967 1.93516 7.99999C1.93526 11.3503 4.65122 14.067 8.00156 14.0672C11.3518 14.067 14.0686 11.3503 14.0688 7.99999C14.0686 4.64971 11.3518 1.93379 8.00156 1.93358Z",
|
|
182
|
+
fill: "currentColor"
|
|
183
|
+
}
|
|
184
|
+
)
|
|
185
|
+
] }),
|
|
186
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("clipPath", { id: "clip0_1188_11261", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("rect", { width: "16", height: "16", fill: "white" }) }) })
|
|
187
|
+
]
|
|
188
|
+
}
|
|
189
|
+
);
|
|
190
|
+
var InfoIcon_default = InfoIcon;
|
|
191
|
+
|
|
192
|
+
// src/tokens/svg/status/SuccessIcon.tsx
|
|
193
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
194
|
+
var SuccessIcon = () => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
195
|
+
"svg",
|
|
196
|
+
{
|
|
197
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
198
|
+
width: "1em",
|
|
199
|
+
height: "1em",
|
|
200
|
+
viewBox: "0 0 16 16",
|
|
201
|
+
fill: "none",
|
|
202
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
203
|
+
"path",
|
|
204
|
+
{
|
|
205
|
+
d: "M12.9084 3.57597C13.1426 3.34172 13.5225 3.34185 13.7568 3.57597C13.9911 3.81028 13.9911 4.19009 13.7568 4.4244L6.424 11.758C6.31157 11.8703 6.15869 11.9337 5.99978 11.9338C5.8409 11.9337 5.68798 11.8703 5.57556 11.758L2.24197 8.4244C2.00782 8.19018 2.00795 7.81028 2.24197 7.57597C2.47626 7.34167 2.85609 7.34172 3.09041 7.57597L5.999 10.4846L12.9084 3.57597Z",
|
|
206
|
+
fill: "currentColor"
|
|
207
|
+
}
|
|
208
|
+
)
|
|
209
|
+
}
|
|
210
|
+
);
|
|
211
|
+
var SuccessIcon_default = SuccessIcon;
|
|
212
|
+
|
|
213
|
+
// src/components/FieldMessage/FieldMessage.tsx
|
|
214
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
215
|
+
var ICON = {
|
|
216
|
+
default: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(InfoIcon_default, {}),
|
|
217
|
+
success: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SuccessIcon_default, {}),
|
|
218
|
+
warning: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(InfoIcon_default, {}),
|
|
219
|
+
error: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ErrorIcon_default, {})
|
|
220
|
+
};
|
|
221
|
+
var FieldMessage = (props) => {
|
|
222
|
+
const { validations } = props;
|
|
223
|
+
if (!validations || validations.length === 0) return null;
|
|
224
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "lib-xplat-field-message-wrap", children: validations.map((v, idx) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
225
|
+
"div",
|
|
226
|
+
{
|
|
227
|
+
className: clsx_default("lib-xplat-field-message", v.status),
|
|
228
|
+
children: [
|
|
229
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "icon", children: ICON[v.status] }),
|
|
230
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { children: v.message })
|
|
231
|
+
]
|
|
232
|
+
},
|
|
233
|
+
`${v.message}_${idx}`
|
|
234
|
+
)) });
|
|
235
|
+
};
|
|
236
|
+
FieldMessage.displayName = "FieldMessage";
|
|
237
|
+
var Field = (props) => {
|
|
238
|
+
const { validations, children } = props;
|
|
239
|
+
if (!validations || validations.length === 0) return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_jsx_runtime12.Fragment, { children });
|
|
240
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "lib-xplat-field", children: [
|
|
241
|
+
children,
|
|
242
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(FieldMessage, { validations })
|
|
243
|
+
] });
|
|
244
|
+
};
|
|
245
|
+
Field.displayName = "Field";
|
|
246
|
+
var hasError = (validations) => !!validations?.some((v) => v.status === "error");
|
|
247
|
+
|
|
248
|
+
// src/components/AutoResizeTextArea/AutoResizeTextArea.tsx
|
|
249
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
115
250
|
var MAX_HEIGHT = 400;
|
|
116
251
|
var AutoResizeTextArea = import_react.default.forwardRef(
|
|
117
252
|
(props, ref) => {
|
|
118
|
-
const { value, className, onChange, disabled, bare = false, ...textareaProps } = props;
|
|
253
|
+
const { value, className, onChange, disabled, bare = false, validations, ...textareaProps } = props;
|
|
119
254
|
const localRef = import_react.default.useRef(null);
|
|
120
255
|
const setRefs = (el) => {
|
|
121
256
|
localRef.current = el;
|
|
@@ -143,9 +278,10 @@ var AutoResizeTextArea = import_react.default.forwardRef(
|
|
|
143
278
|
updateHeight();
|
|
144
279
|
}, [value]);
|
|
145
280
|
if (bare) {
|
|
146
|
-
return /* @__PURE__ */ (0,
|
|
281
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
147
282
|
"textarea",
|
|
148
283
|
{
|
|
284
|
+
"aria-invalid": hasError(validations) || void 0,
|
|
149
285
|
...textareaProps,
|
|
150
286
|
ref: setRefs,
|
|
151
287
|
className,
|
|
@@ -155,9 +291,10 @@ var AutoResizeTextArea = import_react.default.forwardRef(
|
|
|
155
291
|
}
|
|
156
292
|
);
|
|
157
293
|
}
|
|
158
|
-
|
|
294
|
+
const control = /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: clsx_default("lib-xplat-auto-resize-textarea-wrapper", className), children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: clsx_default("lib-xplat-auto-resize-textarea", disabled && "disabled"), children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
159
295
|
"textarea",
|
|
160
296
|
{
|
|
297
|
+
"aria-invalid": hasError(validations) || void 0,
|
|
161
298
|
...textareaProps,
|
|
162
299
|
ref: setRefs,
|
|
163
300
|
disabled,
|
|
@@ -165,13 +302,14 @@ var AutoResizeTextArea = import_react.default.forwardRef(
|
|
|
165
302
|
onChange: handleChange
|
|
166
303
|
}
|
|
167
304
|
) }) });
|
|
305
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Field, { validations, children: control });
|
|
168
306
|
}
|
|
169
307
|
);
|
|
170
308
|
AutoResizeTextArea.displayName = "AutoResizeTextArea";
|
|
171
309
|
var AutoResizeTextArea_default = AutoResizeTextArea;
|
|
172
310
|
|
|
173
311
|
// src/components/ChatInput/ChatInput.tsx
|
|
174
|
-
var
|
|
312
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
175
313
|
var ChatInput = import_react2.default.forwardRef(
|
|
176
314
|
(props, ref) => {
|
|
177
315
|
const {
|
|
@@ -180,7 +318,8 @@ var ChatInput = import_react2.default.forwardRef(
|
|
|
180
318
|
disabled = false,
|
|
181
319
|
buttonType = "primary",
|
|
182
320
|
onSubmit,
|
|
183
|
-
onChange
|
|
321
|
+
onChange,
|
|
322
|
+
validations
|
|
184
323
|
} = props;
|
|
185
324
|
const isControlled = valueProp !== void 0;
|
|
186
325
|
const [internalValue, setInternalValue] = import_react2.default.useState("");
|
|
@@ -202,8 +341,8 @@ var ChatInput = import_react2.default.forwardRef(
|
|
|
202
341
|
handleSubmit();
|
|
203
342
|
}
|
|
204
343
|
};
|
|
205
|
-
|
|
206
|
-
/* @__PURE__ */ (0,
|
|
344
|
+
const control = /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: clsx_default("lib-xplat-chat-input", disabled && "disabled"), children: [
|
|
345
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
207
346
|
AutoResizeTextArea_default,
|
|
208
347
|
{
|
|
209
348
|
ref,
|
|
@@ -214,13 +353,14 @@ var ChatInput = import_react2.default.forwardRef(
|
|
|
214
353
|
disabled,
|
|
215
354
|
rows: 1,
|
|
216
355
|
onChange: handleChange,
|
|
356
|
+
"aria-invalid": hasError(validations) || void 0,
|
|
217
357
|
onKeyDown: handleKeyDown
|
|
218
358
|
}
|
|
219
359
|
),
|
|
220
|
-
/* @__PURE__ */ (0,
|
|
360
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
221
361
|
IconButton_default,
|
|
222
362
|
{
|
|
223
|
-
icon: /* @__PURE__ */ (0,
|
|
363
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(MessageSquareIcon_default, {}),
|
|
224
364
|
type: buttonType,
|
|
225
365
|
size: "sm",
|
|
226
366
|
disabled: !hasText || disabled,
|
|
@@ -229,6 +369,7 @@ var ChatInput = import_react2.default.forwardRef(
|
|
|
229
369
|
}
|
|
230
370
|
)
|
|
231
371
|
] });
|
|
372
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Field, { validations, children: control });
|
|
232
373
|
}
|
|
233
374
|
);
|
|
234
375
|
ChatInput.displayName = "ChatInput";
|