@axenstudio/axen-form 0.1.10 → 0.1.11
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/README.md +783 -270
- package/dist/core/dateUtils.cjs +7 -3
- package/dist/core/dateUtils.d.ts +1 -1
- package/dist/core/dateUtils.d.ts.map +1 -1
- package/dist/core/dateUtils.js +7 -3
- package/dist/core/validation.cjs +4 -1
- package/dist/core/validation.d.ts.map +1 -1
- package/dist/core/validation.js +4 -1
- package/dist/fields/AutocompleteField/AutocompleteField.cjs +32 -32
- package/dist/fields/AutocompleteField/AutocompleteField.js +32 -32
- package/dist/fields/AutocompleteField/AutocompleteField.module.css.cjs +34 -13
- package/dist/fields/AutocompleteField/AutocompleteField.module.css.js +34 -13
- package/dist/fields/AutocompleteMultiField/AutocompleteMultiField.cjs +90 -88
- package/dist/fields/AutocompleteMultiField/AutocompleteMultiField.d.ts.map +1 -1
- package/dist/fields/AutocompleteMultiField/AutocompleteMultiField.js +90 -88
- package/dist/fields/AutocompletePredictField/AutocompletePredictField.cjs +81 -64
- package/dist/fields/AutocompletePredictField/AutocompletePredictField.d.ts.map +1 -1
- package/dist/fields/AutocompletePredictField/AutocompletePredictField.js +81 -64
- package/dist/fields/CheckboxField/CheckboxField.module.css.cjs +12 -0
- package/dist/fields/CheckboxField/CheckboxField.module.css.js +12 -0
- package/dist/fields/ColorField/ColorField.module.css.cjs +12 -0
- package/dist/fields/ColorField/ColorField.module.css.js +12 -0
- package/dist/fields/DateField/DateField.cjs +56 -4
- package/dist/fields/DateField/DateField.d.ts +1 -1
- package/dist/fields/DateField/DateField.d.ts.map +1 -1
- package/dist/fields/DateField/DateField.js +56 -4
- package/dist/fields/DateField/DatePicker.cjs +194 -0
- package/dist/fields/DateField/DatePicker.d.ts +11 -0
- package/dist/fields/DateField/DatePicker.d.ts.map +1 -0
- package/dist/fields/DateField/DatePicker.js +194 -0
- package/dist/fields/DateField/DatePicker.module.css.cjs +62 -0
- package/dist/fields/DateField/DatePicker.module.css.js +62 -0
- package/dist/fields/DateTimeField/DateTimeField.cjs +126 -8
- package/dist/fields/DateTimeField/DateTimeField.d.ts +2 -1
- package/dist/fields/DateTimeField/DateTimeField.d.ts.map +1 -1
- package/dist/fields/DateTimeField/DateTimeField.js +126 -8
- package/dist/fields/PasswordField/PasswordField.module.css.cjs +12 -0
- package/dist/fields/PasswordField/PasswordField.module.css.js +12 -0
- package/dist/fields/RadioField/RadioField.module.css.cjs +12 -0
- package/dist/fields/RadioField/RadioField.module.css.js +12 -0
- package/dist/fields/SliderField/SliderField.module.css.cjs +15 -3
- package/dist/fields/SliderField/SliderField.module.css.js +15 -3
- package/dist/fields/SwitchField/SwitchField.module.css.cjs +12 -0
- package/dist/fields/SwitchField/SwitchField.module.css.js +12 -0
- package/dist/fields/TimeField/TimeField.cjs +60 -5
- package/dist/fields/TimeField/TimeField.d.ts +2 -1
- package/dist/fields/TimeField/TimeField.d.ts.map +1 -1
- package/dist/fields/TimeField/TimeField.js +60 -5
- package/dist/fields/TimeField/TimePicker.cjs +182 -0
- package/dist/fields/TimeField/TimePicker.d.ts +11 -0
- package/dist/fields/TimeField/TimePicker.d.ts.map +1 -0
- package/dist/fields/TimeField/TimePicker.js +182 -0
- package/dist/fields/TimeField/TimePicker.module.css.cjs +50 -0
- package/dist/fields/TimeField/TimePicker.module.css.js +50 -0
- package/dist/fields/defaultPlaceholders.cjs +1 -0
- package/dist/fields/defaultPlaceholders.d.ts.map +1 -1
- package/dist/fields/defaultPlaceholders.js +1 -0
- package/dist/fields/fieldBase.module.css.cjs +366 -18
- package/dist/fields/fieldBase.module.css.js +366 -18
- package/dist/fields/icons.cjs +2 -0
- package/dist/fields/icons.d.ts +4 -0
- package/dist/fields/icons.d.ts.map +1 -1
- package/dist/fields/icons.js +2 -0
- package/dist/index.cjs +230 -3
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +230 -3
- package/dist/layout/Box/Box.module.css.cjs +12 -0
- package/dist/layout/Box/Box.module.css.js +12 -0
- package/dist/layout/Divider/Divider.module.css.cjs +12 -0
- package/dist/layout/Divider/Divider.module.css.js +12 -0
- package/dist/layout/Grid/Grid.module.css.cjs +12 -0
- package/dist/layout/Grid/Grid.module.css.js +12 -0
- package/dist/layout/Stack/Stack.module.css.cjs +12 -0
- package/dist/layout/Stack/Stack.module.css.js +12 -0
- package/dist/react/AxenForm.cjs +228 -3
- package/dist/react/AxenForm.js +228 -3
- package/dist/react/fieldGroup.module.css.cjs +12 -0
- package/dist/react/fieldGroup.module.css.js +12 -0
- package/dist/react/gridCell.module.css.cjs +12 -0
- package/dist/react/gridCell.module.css.js +12 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -9
- package/dist/axen-form.css +0 -1057
package/dist/core/dateUtils.cjs
CHANGED
|
@@ -10,15 +10,19 @@ function formatDateLocale(isoDate, locale) {
|
|
|
10
10
|
day: "2-digit"
|
|
11
11
|
});
|
|
12
12
|
}
|
|
13
|
-
function formatTimeLocale(isoTime, locale, ampm) {
|
|
13
|
+
function formatTimeLocale(isoTime, locale, ampm, showSeconds) {
|
|
14
14
|
if (!isoTime) return "";
|
|
15
|
-
const
|
|
15
|
+
const parts = isoTime.split(":").map(Number);
|
|
16
|
+
const hours = parts[0];
|
|
17
|
+
const minutes = parts[1];
|
|
18
|
+
const seconds = parts[2] ?? 0;
|
|
16
19
|
if (Number.isNaN(hours) || Number.isNaN(minutes)) return isoTime;
|
|
17
|
-
const date = new Date(2e3, 0, 1, hours, minutes);
|
|
20
|
+
const date = new Date(2e3, 0, 1, hours, minutes, seconds);
|
|
18
21
|
if (Number.isNaN(date.getTime())) return isoTime;
|
|
19
22
|
return date.toLocaleTimeString(locale ?? navigator.language, {
|
|
20
23
|
hour: "2-digit",
|
|
21
24
|
minute: "2-digit",
|
|
25
|
+
...showSeconds ? { second: "2-digit" } : {},
|
|
22
26
|
hour12: ampm
|
|
23
27
|
});
|
|
24
28
|
}
|
package/dist/core/dateUtils.d.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
/** Format an ISO date string to locale display */
|
|
8
8
|
export declare function formatDateLocale(isoDate: string, locale?: string): string;
|
|
9
9
|
/** Format an ISO time string (HH:MM or HH:MM:SS) to locale display */
|
|
10
|
-
export declare function formatTimeLocale(isoTime: string, locale?: string, ampm?: boolean): string;
|
|
10
|
+
export declare function formatTimeLocale(isoTime: string, locale?: string, ampm?: boolean, showSeconds?: boolean): string;
|
|
11
11
|
/** Format an ISO datetime-local string to locale display */
|
|
12
12
|
export declare function formatDateTimeLocale(isoDateTime: string, locale?: string, ampm?: boolean): string;
|
|
13
13
|
/** Parse a locale-formatted date back to ISO (YYYY-MM-DD) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dateUtils.d.ts","sourceRoot":"","sources":["../../src/core/dateUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kDAAkD;AAClD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CASzE;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"dateUtils.d.ts","sourceRoot":"","sources":["../../src/core/dateUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kDAAkD;AAClD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CASzE;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,OAAO,EACd,WAAW,CAAC,EAAE,OAAO,GACpB,MAAM,CAgBR;AAED,4DAA4D;AAC5D,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAYjG;AAED,6DAA6D;AAC7D,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ7E;AAED,mEAAmE;AACnE,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAO/D;AAED,iCAAiC;AACjC,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAKlD;AAED,+DAA+D;AAC/D,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAO3D;AAED,4BAA4B;AAC5B,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAIlD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAKzC"}
|
package/dist/core/dateUtils.js
CHANGED
|
@@ -8,15 +8,19 @@ function formatDateLocale(isoDate, locale) {
|
|
|
8
8
|
day: "2-digit"
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
|
-
function formatTimeLocale(isoTime, locale, ampm) {
|
|
11
|
+
function formatTimeLocale(isoTime, locale, ampm, showSeconds) {
|
|
12
12
|
if (!isoTime) return "";
|
|
13
|
-
const
|
|
13
|
+
const parts = isoTime.split(":").map(Number);
|
|
14
|
+
const hours = parts[0];
|
|
15
|
+
const minutes = parts[1];
|
|
16
|
+
const seconds = parts[2] ?? 0;
|
|
14
17
|
if (Number.isNaN(hours) || Number.isNaN(minutes)) return isoTime;
|
|
15
|
-
const date = new Date(2e3, 0, 1, hours, minutes);
|
|
18
|
+
const date = new Date(2e3, 0, 1, hours, minutes, seconds);
|
|
16
19
|
if (Number.isNaN(date.getTime())) return isoTime;
|
|
17
20
|
return date.toLocaleTimeString(locale ?? navigator.language, {
|
|
18
21
|
hour: "2-digit",
|
|
19
22
|
minute: "2-digit",
|
|
23
|
+
...showSeconds ? { second: "2-digit" } : {},
|
|
20
24
|
hour12: ampm
|
|
21
25
|
});
|
|
22
26
|
}
|
package/dist/core/validation.cjs
CHANGED
|
@@ -5,13 +5,16 @@ const simpleValidator = {
|
|
|
5
5
|
return fields.filter((f) => f.required).map((f) => ({
|
|
6
6
|
name: f.name,
|
|
7
7
|
message: f.requiredMessage ?? `${f.label ?? f.name} is required`,
|
|
8
|
-
type: f.type
|
|
8
|
+
type: f.type,
|
|
9
|
+
hidden: f.hidden
|
|
9
10
|
}));
|
|
10
11
|
},
|
|
11
12
|
async validate(schema, values) {
|
|
12
13
|
const rules = schema;
|
|
13
14
|
const errors = {};
|
|
14
15
|
for (const rule of rules) {
|
|
16
|
+
const isHidden = typeof rule.hidden === "function" ? rule.hidden(values) : rule.hidden;
|
|
17
|
+
if (isHidden) continue;
|
|
15
18
|
const value = getNestedValue(values, rule.name);
|
|
16
19
|
if (isEmpty(value)) {
|
|
17
20
|
errors[rule.name] = rule.message;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/core/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE/D;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/core/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE/D;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,iBAyC7B,CAAC"}
|
package/dist/core/validation.js
CHANGED
|
@@ -3,13 +3,16 @@ const simpleValidator = {
|
|
|
3
3
|
return fields.filter((f) => f.required).map((f) => ({
|
|
4
4
|
name: f.name,
|
|
5
5
|
message: f.requiredMessage ?? `${f.label ?? f.name} is required`,
|
|
6
|
-
type: f.type
|
|
6
|
+
type: f.type,
|
|
7
|
+
hidden: f.hidden
|
|
7
8
|
}));
|
|
8
9
|
},
|
|
9
10
|
async validate(schema, values) {
|
|
10
11
|
const rules = schema;
|
|
11
12
|
const errors = {};
|
|
12
13
|
for (const rule of rules) {
|
|
14
|
+
const isHidden = typeof rule.hidden === "function" ? rule.hidden(values) : rule.hidden;
|
|
15
|
+
if (isHidden) continue;
|
|
13
16
|
const value = getNestedValue(values, rule.name);
|
|
14
17
|
if (isEmpty(value)) {
|
|
15
18
|
errors[rule.name] = rule.message;
|
|
@@ -203,39 +203,39 @@ function AutocompleteField({
|
|
|
203
203
|
)
|
|
204
204
|
}
|
|
205
205
|
),
|
|
206
|
-
loading && /* @__PURE__ */ jsxRuntime.jsx("span", { className: AutocompleteField_module.default.spinner, "aria-hidden": "true" })
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
206
|
+
loading && /* @__PURE__ */ jsxRuntime.jsx("span", { className: AutocompleteField_module.default.spinner, "aria-hidden": "true" }),
|
|
207
|
+
isOpen && filteredOptions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
208
|
+
"div",
|
|
209
|
+
{
|
|
210
|
+
id: listboxId,
|
|
211
|
+
ref: listRef,
|
|
212
|
+
role: "listbox",
|
|
213
|
+
className: AutocompleteField_module.default.dropdown,
|
|
214
|
+
children: filteredOptions.map((opt, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
215
|
+
"div",
|
|
216
|
+
{
|
|
217
|
+
id: `${name}-opt-${i}`,
|
|
218
|
+
role: "option",
|
|
219
|
+
tabIndex: -1,
|
|
220
|
+
"aria-selected": i === activeIndex,
|
|
221
|
+
"aria-disabled": opt.disabled,
|
|
222
|
+
className: fieldUtils.cx(
|
|
223
|
+
AutocompleteField_module.default.option,
|
|
224
|
+
i === activeIndex && AutocompleteField_module.default.optionActive,
|
|
225
|
+
opt.disabled && AutocompleteField_module.default.optionDisabled
|
|
226
|
+
),
|
|
227
|
+
onMouseDown: (e) => {
|
|
228
|
+
e.preventDefault();
|
|
229
|
+
if (!opt.disabled) selectOption(opt);
|
|
230
|
+
},
|
|
231
|
+
children: getOptionLabel(opt)
|
|
231
232
|
},
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
}
|
|
237
|
-
),
|
|
238
|
-
isOpen && filteredOptions.length === 0 && inputText && !loading && /* @__PURE__ */ jsxRuntime.jsx("div", { className: AutocompleteField_module.default.noResults, children: "No results found" }),
|
|
233
|
+
opt.value
|
|
234
|
+
))
|
|
235
|
+
}
|
|
236
|
+
),
|
|
237
|
+
isOpen && filteredOptions.length === 0 && inputText && !loading && /* @__PURE__ */ jsxRuntime.jsx("div", { className: AutocompleteField_module.default.noResults, children: "No results found" })
|
|
238
|
+
] }),
|
|
239
239
|
helperText && /* @__PURE__ */ jsxRuntime.jsx(
|
|
240
240
|
"span",
|
|
241
241
|
{
|
|
@@ -201,39 +201,39 @@ function AutocompleteField({
|
|
|
201
201
|
)
|
|
202
202
|
}
|
|
203
203
|
),
|
|
204
|
-
loading && /* @__PURE__ */ jsx("span", { className: localStyles.spinner, "aria-hidden": "true" })
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
204
|
+
loading && /* @__PURE__ */ jsx("span", { className: localStyles.spinner, "aria-hidden": "true" }),
|
|
205
|
+
isOpen && filteredOptions.length > 0 && /* @__PURE__ */ jsx(
|
|
206
|
+
"div",
|
|
207
|
+
{
|
|
208
|
+
id: listboxId,
|
|
209
|
+
ref: listRef,
|
|
210
|
+
role: "listbox",
|
|
211
|
+
className: localStyles.dropdown,
|
|
212
|
+
children: filteredOptions.map((opt, i) => /* @__PURE__ */ jsx(
|
|
213
|
+
"div",
|
|
214
|
+
{
|
|
215
|
+
id: `${name}-opt-${i}`,
|
|
216
|
+
role: "option",
|
|
217
|
+
tabIndex: -1,
|
|
218
|
+
"aria-selected": i === activeIndex,
|
|
219
|
+
"aria-disabled": opt.disabled,
|
|
220
|
+
className: cx(
|
|
221
|
+
localStyles.option,
|
|
222
|
+
i === activeIndex && localStyles.optionActive,
|
|
223
|
+
opt.disabled && localStyles.optionDisabled
|
|
224
|
+
),
|
|
225
|
+
onMouseDown: (e) => {
|
|
226
|
+
e.preventDefault();
|
|
227
|
+
if (!opt.disabled) selectOption(opt);
|
|
228
|
+
},
|
|
229
|
+
children: getOptionLabel(opt)
|
|
229
230
|
},
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
}
|
|
235
|
-
),
|
|
236
|
-
isOpen && filteredOptions.length === 0 && inputText && !loading && /* @__PURE__ */ jsx("div", { className: localStyles.noResults, children: "No results found" }),
|
|
231
|
+
opt.value
|
|
232
|
+
))
|
|
233
|
+
}
|
|
234
|
+
),
|
|
235
|
+
isOpen && filteredOptions.length === 0 && inputText && !loading && /* @__PURE__ */ jsx("div", { className: localStyles.noResults, children: "No results found" })
|
|
236
|
+
] }),
|
|
237
237
|
helperText && /* @__PURE__ */ jsx(
|
|
238
238
|
"span",
|
|
239
239
|
{
|
|
@@ -1,18 +1,33 @@
|
|
|
1
|
+
(function() {
|
|
2
|
+
"use strict";
|
|
3
|
+
try {
|
|
4
|
+
if (typeof document != "undefined") {
|
|
5
|
+
var elementStyle = document.createElement("style");
|
|
6
|
+
elementStyle.appendChild(document.createTextNode("._inputWrap_12exf_1 {\n position: relative;\n display: flex;\n align-items: center;\n}\n\n._spinner_12exf_7 {\n position: absolute;\n right: 0.75rem;\n width: 16px;\n height: 16px;\n border: 2px solid var(--axen-color-border);\n border-top-color: var(--axen-color-primary);\n border-radius: 50%;\n animation: _spin_12exf_7 0.6s linear infinite;\n}\n\n@keyframes _spin_12exf_7 {\n to {\n transform: rotate(360deg);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._spinner_12exf_7 {\n animation: none;\n opacity: 0.6;\n }\n}\n\n/* ── Dropdown ────────────────────────────────── */\n._dropdown_12exf_32 {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: var(--axen-z-dropdown);\n width: 100%;\n max-height: 240px;\n margin: 0;\n padding: var(--axen-space-xs) 0;\n list-style: none;\n overflow-y: auto;\n background: var(--axen-color-bg);\n border: var(--axen-border-width) solid var(--axen-color-border);\n border-top: none;\n border-radius: 0 0 var(--axen-border-radius) var(--axen-border-radius);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n}\n\n._option_12exf_50 {\n display: flex;\n align-items: center;\n padding: var(--axen-space-sm) var(--axen-field-padding-x);\n font-size: var(--axen-font-size-md);\n color: var(--axen-color-text);\n cursor: pointer;\n min-height: var(--axen-field-min-height);\n transition: background-color var(--axen-transition-fast);\n}\n\n._option_12exf_50:hover {\n background-color: var(--axen-color-bg-hover);\n}\n\n._optionActive_12exf_65 {\n background-color: var(--axen-color-primary-light);\n}\n\n._optionDisabled_12exf_69 {\n color: var(--axen-color-text-disabled);\n cursor: not-allowed;\n}\n\n._noResults_12exf_74 {\n position: absolute;\n top: 100%;\n left: 0;\n width: 100%;\n padding: var(--axen-space-sm) var(--axen-field-padding-x);\n font-size: var(--axen-font-size-sm);\n color: var(--axen-color-text-secondary);\n border: var(--axen-border-width) solid var(--axen-color-border);\n border-top: none;\n border-radius: 0 0 var(--axen-border-radius) var(--axen-border-radius);\n background: var(--axen-color-bg);\n z-index: var(--axen-z-dropdown);\n}\n\n/* ── Chip (used by multi) ────────────────────── */\n._chipWrap_12exf_90 {\n display: flex;\n flex-wrap: wrap;\n gap: var(--axen-space-xs);\n padding: var(--axen-space-xs);\n}\n\n._chip_12exf_90 {\n display: inline-flex;\n align-items: center;\n gap: var(--axen-space-xs);\n padding: 2px 8px;\n font-size: var(--axen-font-size-xs);\n color: var(--axen-color-text);\n background-color: var(--axen-color-primary-light);\n border-radius: var(--axen-border-radius-pill);\n max-width: 100%;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n._chipRemove_12exf_112 {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n padding: 0;\n border: none;\n background: transparent;\n cursor: pointer;\n font-size: 12px;\n color: var(--axen-color-text-secondary);\n border-radius: 50%;\n flex-shrink: 0;\n}\n\n._chipRemove_12exf_112:hover {\n background: rgba(0, 0, 0, 0.08);\n color: var(--axen-color-text);\n}\n\n._chipRemove_12exf_112:focus-visible {\n outline: var(--axen-focus-ring-width) solid var(--axen-focus-ring-color);\n}\n\n/* ── Ghost text (predict) ────────────────────── */\n._predictWrap_12exf_138 {\n position: relative;\n display: flex;\n align-items: center;\n /* Take on the input visual appearance so the inner <input>\n can have a transparent bg and the ghost text shows through */\n background-color: var(--axen-color-input-bg, var(--axen-color-bg, #ffffff));\n border: var(--axen-border-width, 1px) solid var(--axen-color-border, #d0d5dd);\n border-radius: var(--axen-border-radius, 8px);\n transition:\n border-color var(--axen-transition-fast, 150ms ease),\n box-shadow var(--axen-transition-fast, 150ms ease);\n}\n\n._predictWrap_12exf_138:hover {\n border-color: var(--axen-color-border-hover, #888888);\n}\n\n._predictWrap_12exf_138:focus-within {\n border-color: var(--axen-color-border-focus, var(--axen-color-primary, #1976d2));\n box-shadow: var(--axen-shadow-focus, 0 0 0 2px rgba(25, 118, 210, 0.5));\n}\n\n/* Inner input transparent so ghost text shows through */\n._predictInput_12exf_162 {\n background: transparent;\n border-color: transparent;\n box-shadow: none;\n}\n\n._predictInput_12exf_162:hover,\n._predictInput_12exf_162:focus {\n border-color: transparent;\n box-shadow: none;\n}\n\n._predictWrapError_12exf_174 {\n border-color: var(--axen-color-error, #d32f2f);\n}\n\n._predictWrapError_12exf_174:focus-within {\n border-color: var(--axen-color-error, #d32f2f);\n box-shadow: 0 0 0 var(--axen-focus-ring-width, 2px) rgba(211, 47, 47, 0.3);\n}\n\n._ghostText_12exf_183 {\n position: absolute;\n /* Offset by the input's transparent border so text aligns exactly */\n top: var(--axen-border-width, 1px);\n left: var(--axen-border-width, 1px);\n right: var(--axen-border-width, 1px);\n bottom: var(--axen-border-width, 1px);\n display: flex;\n align-items: center;\n padding: var(--axen-field-padding-y, 0.5rem) var(--axen-field-padding-x, 0.75rem);\n color: var(--axen-color-text-disabled);\n font-family: var(--axen-font-family);\n font-size: var(--axen-font-size-md);\n line-height: var(--axen-line-height, 1.5);\n pointer-events: none;\n white-space: nowrap;\n overflow: hidden;\n}\n\n._ghostTextWithIcon_12exf_202 {\n padding-left: 2.5rem;\n}\n\n._ghostHidden_12exf_206 {\n visibility: hidden;\n position: absolute;\n white-space: pre;\n font-family: var(--axen-font-family);\n font-size: var(--axen-font-size-md);\n}\n\n/* ── Mobile adjustments ──────────────────────── */\n@media (max-width: 599px) {\n ._dropdown_12exf_32 {\n max-height: 200px;\n }\n\n ._option_12exf_50 {\n min-height: 48px;\n padding: var(--axen-space-sm) var(--axen-space-md);\n }\n}"));
|
|
7
|
+
document.head.appendChild(elementStyle);
|
|
8
|
+
}
|
|
9
|
+
} catch (e) {
|
|
10
|
+
console.error("vite-plugin-css-injected-by-js", e);
|
|
11
|
+
}
|
|
12
|
+
})();
|
|
1
13
|
"use strict";
|
|
2
14
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
-
const inputWrap = "
|
|
4
|
-
const spinner = "
|
|
5
|
-
const dropdown = "
|
|
6
|
-
const option = "
|
|
7
|
-
const optionActive = "
|
|
8
|
-
const optionDisabled = "
|
|
9
|
-
const noResults = "
|
|
10
|
-
const chipWrap = "
|
|
11
|
-
const chip = "
|
|
12
|
-
const chipRemove = "
|
|
13
|
-
const predictWrap = "
|
|
14
|
-
const
|
|
15
|
-
const
|
|
15
|
+
const inputWrap = "_inputWrap_12exf_1";
|
|
16
|
+
const spinner = "_spinner_12exf_7";
|
|
17
|
+
const dropdown = "_dropdown_12exf_32";
|
|
18
|
+
const option = "_option_12exf_50";
|
|
19
|
+
const optionActive = "_optionActive_12exf_65";
|
|
20
|
+
const optionDisabled = "_optionDisabled_12exf_69";
|
|
21
|
+
const noResults = "_noResults_12exf_74";
|
|
22
|
+
const chipWrap = "_chipWrap_12exf_90";
|
|
23
|
+
const chip = "_chip_12exf_90";
|
|
24
|
+
const chipRemove = "_chipRemove_12exf_112";
|
|
25
|
+
const predictWrap = "_predictWrap_12exf_138";
|
|
26
|
+
const predictInput = "_predictInput_12exf_162";
|
|
27
|
+
const predictWrapError = "_predictWrapError_12exf_174";
|
|
28
|
+
const ghostText = "_ghostText_12exf_183";
|
|
29
|
+
const ghostTextWithIcon = "_ghostTextWithIcon_12exf_202";
|
|
30
|
+
const ghostHidden = "_ghostHidden_12exf_206";
|
|
16
31
|
const localStyles = {
|
|
17
32
|
inputWrap,
|
|
18
33
|
spinner,
|
|
@@ -25,7 +40,10 @@ const localStyles = {
|
|
|
25
40
|
chip,
|
|
26
41
|
chipRemove,
|
|
27
42
|
predictWrap,
|
|
43
|
+
predictInput,
|
|
44
|
+
predictWrapError,
|
|
28
45
|
ghostText,
|
|
46
|
+
ghostTextWithIcon,
|
|
29
47
|
ghostHidden
|
|
30
48
|
};
|
|
31
49
|
exports.chip = chip;
|
|
@@ -35,10 +53,13 @@ exports.default = localStyles;
|
|
|
35
53
|
exports.dropdown = dropdown;
|
|
36
54
|
exports.ghostHidden = ghostHidden;
|
|
37
55
|
exports.ghostText = ghostText;
|
|
56
|
+
exports.ghostTextWithIcon = ghostTextWithIcon;
|
|
38
57
|
exports.inputWrap = inputWrap;
|
|
39
58
|
exports.noResults = noResults;
|
|
40
59
|
exports.option = option;
|
|
41
60
|
exports.optionActive = optionActive;
|
|
42
61
|
exports.optionDisabled = optionDisabled;
|
|
62
|
+
exports.predictInput = predictInput;
|
|
43
63
|
exports.predictWrap = predictWrap;
|
|
64
|
+
exports.predictWrapError = predictWrapError;
|
|
44
65
|
exports.spinner = spinner;
|
|
@@ -1,16 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const
|
|
1
|
+
(function() {
|
|
2
|
+
"use strict";
|
|
3
|
+
try {
|
|
4
|
+
if (typeof document != "undefined") {
|
|
5
|
+
var elementStyle = document.createElement("style");
|
|
6
|
+
elementStyle.appendChild(document.createTextNode("._inputWrap_12exf_1 {\n position: relative;\n display: flex;\n align-items: center;\n}\n\n._spinner_12exf_7 {\n position: absolute;\n right: 0.75rem;\n width: 16px;\n height: 16px;\n border: 2px solid var(--axen-color-border);\n border-top-color: var(--axen-color-primary);\n border-radius: 50%;\n animation: _spin_12exf_7 0.6s linear infinite;\n}\n\n@keyframes _spin_12exf_7 {\n to {\n transform: rotate(360deg);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n ._spinner_12exf_7 {\n animation: none;\n opacity: 0.6;\n }\n}\n\n/* ── Dropdown ────────────────────────────────── */\n._dropdown_12exf_32 {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: var(--axen-z-dropdown);\n width: 100%;\n max-height: 240px;\n margin: 0;\n padding: var(--axen-space-xs) 0;\n list-style: none;\n overflow-y: auto;\n background: var(--axen-color-bg);\n border: var(--axen-border-width) solid var(--axen-color-border);\n border-top: none;\n border-radius: 0 0 var(--axen-border-radius) var(--axen-border-radius);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n}\n\n._option_12exf_50 {\n display: flex;\n align-items: center;\n padding: var(--axen-space-sm) var(--axen-field-padding-x);\n font-size: var(--axen-font-size-md);\n color: var(--axen-color-text);\n cursor: pointer;\n min-height: var(--axen-field-min-height);\n transition: background-color var(--axen-transition-fast);\n}\n\n._option_12exf_50:hover {\n background-color: var(--axen-color-bg-hover);\n}\n\n._optionActive_12exf_65 {\n background-color: var(--axen-color-primary-light);\n}\n\n._optionDisabled_12exf_69 {\n color: var(--axen-color-text-disabled);\n cursor: not-allowed;\n}\n\n._noResults_12exf_74 {\n position: absolute;\n top: 100%;\n left: 0;\n width: 100%;\n padding: var(--axen-space-sm) var(--axen-field-padding-x);\n font-size: var(--axen-font-size-sm);\n color: var(--axen-color-text-secondary);\n border: var(--axen-border-width) solid var(--axen-color-border);\n border-top: none;\n border-radius: 0 0 var(--axen-border-radius) var(--axen-border-radius);\n background: var(--axen-color-bg);\n z-index: var(--axen-z-dropdown);\n}\n\n/* ── Chip (used by multi) ────────────────────── */\n._chipWrap_12exf_90 {\n display: flex;\n flex-wrap: wrap;\n gap: var(--axen-space-xs);\n padding: var(--axen-space-xs);\n}\n\n._chip_12exf_90 {\n display: inline-flex;\n align-items: center;\n gap: var(--axen-space-xs);\n padding: 2px 8px;\n font-size: var(--axen-font-size-xs);\n color: var(--axen-color-text);\n background-color: var(--axen-color-primary-light);\n border-radius: var(--axen-border-radius-pill);\n max-width: 100%;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n._chipRemove_12exf_112 {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n padding: 0;\n border: none;\n background: transparent;\n cursor: pointer;\n font-size: 12px;\n color: var(--axen-color-text-secondary);\n border-radius: 50%;\n flex-shrink: 0;\n}\n\n._chipRemove_12exf_112:hover {\n background: rgba(0, 0, 0, 0.08);\n color: var(--axen-color-text);\n}\n\n._chipRemove_12exf_112:focus-visible {\n outline: var(--axen-focus-ring-width) solid var(--axen-focus-ring-color);\n}\n\n/* ── Ghost text (predict) ────────────────────── */\n._predictWrap_12exf_138 {\n position: relative;\n display: flex;\n align-items: center;\n /* Take on the input visual appearance so the inner <input>\n can have a transparent bg and the ghost text shows through */\n background-color: var(--axen-color-input-bg, var(--axen-color-bg, #ffffff));\n border: var(--axen-border-width, 1px) solid var(--axen-color-border, #d0d5dd);\n border-radius: var(--axen-border-radius, 8px);\n transition:\n border-color var(--axen-transition-fast, 150ms ease),\n box-shadow var(--axen-transition-fast, 150ms ease);\n}\n\n._predictWrap_12exf_138:hover {\n border-color: var(--axen-color-border-hover, #888888);\n}\n\n._predictWrap_12exf_138:focus-within {\n border-color: var(--axen-color-border-focus, var(--axen-color-primary, #1976d2));\n box-shadow: var(--axen-shadow-focus, 0 0 0 2px rgba(25, 118, 210, 0.5));\n}\n\n/* Inner input transparent so ghost text shows through */\n._predictInput_12exf_162 {\n background: transparent;\n border-color: transparent;\n box-shadow: none;\n}\n\n._predictInput_12exf_162:hover,\n._predictInput_12exf_162:focus {\n border-color: transparent;\n box-shadow: none;\n}\n\n._predictWrapError_12exf_174 {\n border-color: var(--axen-color-error, #d32f2f);\n}\n\n._predictWrapError_12exf_174:focus-within {\n border-color: var(--axen-color-error, #d32f2f);\n box-shadow: 0 0 0 var(--axen-focus-ring-width, 2px) rgba(211, 47, 47, 0.3);\n}\n\n._ghostText_12exf_183 {\n position: absolute;\n /* Offset by the input's transparent border so text aligns exactly */\n top: var(--axen-border-width, 1px);\n left: var(--axen-border-width, 1px);\n right: var(--axen-border-width, 1px);\n bottom: var(--axen-border-width, 1px);\n display: flex;\n align-items: center;\n padding: var(--axen-field-padding-y, 0.5rem) var(--axen-field-padding-x, 0.75rem);\n color: var(--axen-color-text-disabled);\n font-family: var(--axen-font-family);\n font-size: var(--axen-font-size-md);\n line-height: var(--axen-line-height, 1.5);\n pointer-events: none;\n white-space: nowrap;\n overflow: hidden;\n}\n\n._ghostTextWithIcon_12exf_202 {\n padding-left: 2.5rem;\n}\n\n._ghostHidden_12exf_206 {\n visibility: hidden;\n position: absolute;\n white-space: pre;\n font-family: var(--axen-font-family);\n font-size: var(--axen-font-size-md);\n}\n\n/* ── Mobile adjustments ──────────────────────── */\n@media (max-width: 599px) {\n ._dropdown_12exf_32 {\n max-height: 200px;\n }\n\n ._option_12exf_50 {\n min-height: 48px;\n padding: var(--axen-space-sm) var(--axen-space-md);\n }\n}"));
|
|
7
|
+
document.head.appendChild(elementStyle);
|
|
8
|
+
}
|
|
9
|
+
} catch (e) {
|
|
10
|
+
console.error("vite-plugin-css-injected-by-js", e);
|
|
11
|
+
}
|
|
12
|
+
})();
|
|
13
|
+
const inputWrap = "_inputWrap_12exf_1";
|
|
14
|
+
const spinner = "_spinner_12exf_7";
|
|
15
|
+
const dropdown = "_dropdown_12exf_32";
|
|
16
|
+
const option = "_option_12exf_50";
|
|
17
|
+
const optionActive = "_optionActive_12exf_65";
|
|
18
|
+
const optionDisabled = "_optionDisabled_12exf_69";
|
|
19
|
+
const noResults = "_noResults_12exf_74";
|
|
20
|
+
const chipWrap = "_chipWrap_12exf_90";
|
|
21
|
+
const chip = "_chip_12exf_90";
|
|
22
|
+
const chipRemove = "_chipRemove_12exf_112";
|
|
23
|
+
const predictWrap = "_predictWrap_12exf_138";
|
|
24
|
+
const predictInput = "_predictInput_12exf_162";
|
|
25
|
+
const predictWrapError = "_predictWrapError_12exf_174";
|
|
26
|
+
const ghostText = "_ghostText_12exf_183";
|
|
27
|
+
const ghostTextWithIcon = "_ghostTextWithIcon_12exf_202";
|
|
28
|
+
const ghostHidden = "_ghostHidden_12exf_206";
|
|
14
29
|
const localStyles = {
|
|
15
30
|
inputWrap,
|
|
16
31
|
spinner,
|
|
@@ -23,7 +38,10 @@ const localStyles = {
|
|
|
23
38
|
chip,
|
|
24
39
|
chipRemove,
|
|
25
40
|
predictWrap,
|
|
41
|
+
predictInput,
|
|
42
|
+
predictWrapError,
|
|
26
43
|
ghostText,
|
|
44
|
+
ghostTextWithIcon,
|
|
27
45
|
ghostHidden
|
|
28
46
|
};
|
|
29
47
|
export {
|
|
@@ -34,11 +52,14 @@ export {
|
|
|
34
52
|
dropdown,
|
|
35
53
|
ghostHidden,
|
|
36
54
|
ghostText,
|
|
55
|
+
ghostTextWithIcon,
|
|
37
56
|
inputWrap,
|
|
38
57
|
noResults,
|
|
39
58
|
option,
|
|
40
59
|
optionActive,
|
|
41
60
|
optionDisabled,
|
|
61
|
+
predictInput,
|
|
42
62
|
predictWrap,
|
|
63
|
+
predictWrapError,
|
|
43
64
|
spinner
|
|
44
65
|
};
|
|
@@ -190,99 +190,101 @@ function AutocompleteMultiField({
|
|
|
190
190
|
children: label
|
|
191
191
|
}
|
|
192
192
|
),
|
|
193
|
-
/* @__PURE__ */ jsxRuntime.
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
className: fieldBase_module.default.fieldIcon,
|
|
203
|
-
style: { position: "static", transform: "none", flexShrink: 0 },
|
|
204
|
-
children: resolvedIcon
|
|
205
|
-
}
|
|
206
|
-
),
|
|
207
|
-
selectedValues.map((val) => /* @__PURE__ */ jsxRuntime.jsxs("span", { className: AutocompleteField_module.default.chip, children: [
|
|
208
|
-
resolveLabel(val),
|
|
209
|
-
!disabled && !readOnly && /* @__PURE__ */ jsxRuntime.jsx(
|
|
210
|
-
"button",
|
|
193
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: AutocompleteField_module.default.inputWrap, children: [
|
|
194
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
195
|
+
"div",
|
|
196
|
+
{
|
|
197
|
+
className: fieldUtils.cx(fieldBase_module.default.input, error && fieldBase_module.default.inputError),
|
|
198
|
+
style: { height: "auto", padding: 0 },
|
|
199
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: AutocompleteField_module.default.chipWrap, children: [
|
|
200
|
+
resolvedIcon && /* @__PURE__ */ jsxRuntime.jsx(
|
|
201
|
+
"span",
|
|
211
202
|
{
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
"aria-label": `Remove ${resolveLabel(val)}`,
|
|
216
|
-
children: "×"
|
|
203
|
+
className: fieldBase_module.default.fieldIcon,
|
|
204
|
+
style: { position: "static", transform: "none", flexShrink: 0 },
|
|
205
|
+
children: resolvedIcon
|
|
217
206
|
}
|
|
218
|
-
)
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
207
|
+
),
|
|
208
|
+
selectedValues.map((val) => /* @__PURE__ */ jsxRuntime.jsxs("span", { className: AutocompleteField_module.default.chip, children: [
|
|
209
|
+
resolveLabel(val),
|
|
210
|
+
!disabled && !readOnly && /* @__PURE__ */ jsxRuntime.jsx(
|
|
211
|
+
"button",
|
|
212
|
+
{
|
|
213
|
+
type: "button",
|
|
214
|
+
className: AutocompleteField_module.default.chipRemove,
|
|
215
|
+
onClick: () => removeValue(val),
|
|
216
|
+
"aria-label": `Remove ${resolveLabel(val)}`,
|
|
217
|
+
children: "×"
|
|
218
|
+
}
|
|
219
|
+
)
|
|
220
|
+
] }, val)),
|
|
221
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
222
|
+
"input",
|
|
223
|
+
{
|
|
224
|
+
...aria,
|
|
225
|
+
type: "text",
|
|
226
|
+
value: inputText,
|
|
227
|
+
onChange: handleInputChange,
|
|
228
|
+
onKeyDown: handleKeyDown,
|
|
229
|
+
onBlur: handleBlur,
|
|
230
|
+
onFocus: () => {
|
|
231
|
+
doSearch(inputText);
|
|
232
|
+
setIsOpen(true);
|
|
233
|
+
},
|
|
234
|
+
placeholder: selectedValues.length === 0 ? placeholder : "",
|
|
235
|
+
disabled,
|
|
236
|
+
readOnly,
|
|
237
|
+
role: "combobox",
|
|
238
|
+
"aria-expanded": isOpen,
|
|
239
|
+
"aria-controls": listboxId,
|
|
240
|
+
"aria-activedescendant": activeIndex >= 0 ? `${name}-opt-${activeIndex}` : void 0,
|
|
241
|
+
"aria-autocomplete": "list",
|
|
242
|
+
autoComplete: "off",
|
|
243
|
+
style: {
|
|
244
|
+
border: "none",
|
|
245
|
+
outline: "none",
|
|
246
|
+
flex: 1,
|
|
247
|
+
minWidth: "60px",
|
|
248
|
+
padding: "var(--axen-space-xs)",
|
|
249
|
+
background: "transparent"
|
|
250
|
+
}
|
|
249
251
|
}
|
|
250
|
-
}
|
|
251
|
-
),
|
|
252
|
-
loading && /* @__PURE__ */ jsxRuntime.jsx("span", { className: AutocompleteField_module.default.spinner, "aria-hidden": "true" })
|
|
253
|
-
] })
|
|
254
|
-
}
|
|
255
|
-
),
|
|
256
|
-
isOpen && filteredOptions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
257
|
-
"div",
|
|
258
|
-
{
|
|
259
|
-
id: listboxId,
|
|
260
|
-
role: "listbox",
|
|
261
|
-
className: AutocompleteField_module.default.dropdown,
|
|
262
|
-
"aria-multiselectable": "true",
|
|
263
|
-
children: filteredOptions.map((opt, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
264
|
-
"div",
|
|
265
|
-
{
|
|
266
|
-
id: `${name}-opt-${i}`,
|
|
267
|
-
role: "option",
|
|
268
|
-
tabIndex: -1,
|
|
269
|
-
"aria-selected": i === activeIndex,
|
|
270
|
-
"aria-disabled": opt.disabled,
|
|
271
|
-
className: fieldUtils.cx(
|
|
272
|
-
AutocompleteField_module.default.option,
|
|
273
|
-
i === activeIndex && AutocompleteField_module.default.optionActive,
|
|
274
|
-
opt.disabled && AutocompleteField_module.default.optionDisabled
|
|
275
252
|
),
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
253
|
+
loading && /* @__PURE__ */ jsxRuntime.jsx("span", { className: AutocompleteField_module.default.spinner, "aria-hidden": "true" })
|
|
254
|
+
] })
|
|
255
|
+
}
|
|
256
|
+
),
|
|
257
|
+
isOpen && filteredOptions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
258
|
+
"div",
|
|
259
|
+
{
|
|
260
|
+
id: listboxId,
|
|
261
|
+
role: "listbox",
|
|
262
|
+
className: AutocompleteField_module.default.dropdown,
|
|
263
|
+
"aria-multiselectable": "true",
|
|
264
|
+
children: filteredOptions.map((opt, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
265
|
+
"div",
|
|
266
|
+
{
|
|
267
|
+
id: `${name}-opt-${i}`,
|
|
268
|
+
role: "option",
|
|
269
|
+
tabIndex: -1,
|
|
270
|
+
"aria-selected": i === activeIndex,
|
|
271
|
+
"aria-disabled": opt.disabled,
|
|
272
|
+
className: fieldUtils.cx(
|
|
273
|
+
AutocompleteField_module.default.option,
|
|
274
|
+
i === activeIndex && AutocompleteField_module.default.optionActive,
|
|
275
|
+
opt.disabled && AutocompleteField_module.default.optionDisabled
|
|
276
|
+
),
|
|
277
|
+
onMouseDown: (e) => {
|
|
278
|
+
e.preventDefault();
|
|
279
|
+
if (!opt.disabled) selectOption(opt);
|
|
280
|
+
},
|
|
281
|
+
children: getOptionLabel(opt)
|
|
279
282
|
},
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
),
|
|
283
|
+
opt.value
|
|
284
|
+
))
|
|
285
|
+
}
|
|
286
|
+
)
|
|
287
|
+
] }),
|
|
286
288
|
helperText && /* @__PURE__ */ jsxRuntime.jsx(
|
|
287
289
|
"span",
|
|
288
290
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutocompleteMultiField.d.ts","sourceRoot":"","sources":["../../../src/fields/AutocompleteMultiField/AutocompleteMultiField.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAQ3E,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,KAAK,EACL,QAAQ,EAAE,SAAS,EACnB,MAAM,EACN,KAAK,EACL,UAAU,EACV,KAAK,EACL,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,EAAE,aAAa,EACtB,YAAY,EACZ,WAAW,EACX,IAAI,EACJ,IAAI,GACL,EAAE,mBAAmB,GAAG;IACvB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACtF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,
|
|
1
|
+
{"version":3,"file":"AutocompleteMultiField.d.ts","sourceRoot":"","sources":["../../../src/fields/AutocompleteMultiField/AutocompleteMultiField.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAQ3E,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,KAAK,EACL,QAAQ,EAAE,SAAS,EACnB,MAAM,EACN,KAAK,EACL,UAAU,EACV,KAAK,EACL,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,EAAE,aAAa,EACtB,YAAY,EACZ,WAAW,EACX,IAAI,EACJ,IAAI,GACL,EAAE,mBAAmB,GAAG;IACvB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACtF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,2CAiSA"}
|