@axenstudio/axen-form 0.1.9 → 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.
Files changed (101) hide show
  1. package/README.md +783 -270
  2. package/dist/core/dateUtils.cjs +7 -3
  3. package/dist/core/dateUtils.d.ts +1 -1
  4. package/dist/core/dateUtils.d.ts.map +1 -1
  5. package/dist/core/dateUtils.js +7 -3
  6. package/dist/core/validation.cjs +4 -1
  7. package/dist/core/validation.d.ts.map +1 -1
  8. package/dist/core/validation.js +4 -1
  9. package/dist/fields/AutocompleteField/AutocompleteField.cjs +32 -32
  10. package/dist/fields/AutocompleteField/AutocompleteField.js +32 -32
  11. package/dist/fields/AutocompleteField/AutocompleteField.module.css.cjs +34 -13
  12. package/dist/fields/AutocompleteField/AutocompleteField.module.css.js +34 -13
  13. package/dist/fields/AutocompleteMultiField/AutocompleteMultiField.cjs +90 -88
  14. package/dist/fields/AutocompleteMultiField/AutocompleteMultiField.d.ts.map +1 -1
  15. package/dist/fields/AutocompleteMultiField/AutocompleteMultiField.js +90 -88
  16. package/dist/fields/AutocompletePredictField/AutocompletePredictField.cjs +81 -64
  17. package/dist/fields/AutocompletePredictField/AutocompletePredictField.d.ts.map +1 -1
  18. package/dist/fields/AutocompletePredictField/AutocompletePredictField.js +81 -64
  19. package/dist/fields/CheckboxField/CheckboxField.module.css.cjs +12 -0
  20. package/dist/fields/CheckboxField/CheckboxField.module.css.js +12 -0
  21. package/dist/fields/ColorField/ColorField.module.css.cjs +12 -0
  22. package/dist/fields/ColorField/ColorField.module.css.js +12 -0
  23. package/dist/fields/DateField/DateField.cjs +56 -4
  24. package/dist/fields/DateField/DateField.d.ts +1 -1
  25. package/dist/fields/DateField/DateField.d.ts.map +1 -1
  26. package/dist/fields/DateField/DateField.js +56 -4
  27. package/dist/fields/DateField/DatePicker.cjs +194 -0
  28. package/dist/fields/DateField/DatePicker.d.ts +11 -0
  29. package/dist/fields/DateField/DatePicker.d.ts.map +1 -0
  30. package/dist/fields/DateField/DatePicker.js +194 -0
  31. package/dist/fields/DateField/DatePicker.module.css.cjs +62 -0
  32. package/dist/fields/DateField/DatePicker.module.css.js +62 -0
  33. package/dist/fields/DateTimeField/DateTimeField.cjs +126 -8
  34. package/dist/fields/DateTimeField/DateTimeField.d.ts +2 -1
  35. package/dist/fields/DateTimeField/DateTimeField.d.ts.map +1 -1
  36. package/dist/fields/DateTimeField/DateTimeField.js +126 -8
  37. package/dist/fields/PasswordField/PasswordField.module.css.cjs +12 -0
  38. package/dist/fields/PasswordField/PasswordField.module.css.js +12 -0
  39. package/dist/fields/RadioField/RadioField.module.css.cjs +12 -0
  40. package/dist/fields/RadioField/RadioField.module.css.js +12 -0
  41. package/dist/fields/SliderField/SliderField.module.css.cjs +15 -3
  42. package/dist/fields/SliderField/SliderField.module.css.js +15 -3
  43. package/dist/fields/SwitchField/SwitchField.module.css.cjs +12 -0
  44. package/dist/fields/SwitchField/SwitchField.module.css.js +12 -0
  45. package/dist/fields/TimeField/TimeField.cjs +60 -5
  46. package/dist/fields/TimeField/TimeField.d.ts +2 -1
  47. package/dist/fields/TimeField/TimeField.d.ts.map +1 -1
  48. package/dist/fields/TimeField/TimeField.js +60 -5
  49. package/dist/fields/TimeField/TimePicker.cjs +182 -0
  50. package/dist/fields/TimeField/TimePicker.d.ts +11 -0
  51. package/dist/fields/TimeField/TimePicker.d.ts.map +1 -0
  52. package/dist/fields/TimeField/TimePicker.js +182 -0
  53. package/dist/fields/TimeField/TimePicker.module.css.cjs +50 -0
  54. package/dist/fields/TimeField/TimePicker.module.css.js +50 -0
  55. package/dist/fields/defaultPlaceholders.cjs +1 -0
  56. package/dist/fields/defaultPlaceholders.d.ts.map +1 -1
  57. package/dist/fields/defaultPlaceholders.js +1 -0
  58. package/dist/fields/fieldBase.module.css.cjs +366 -18
  59. package/dist/fields/fieldBase.module.css.js +366 -18
  60. package/dist/fields/icons.cjs +2 -0
  61. package/dist/fields/icons.d.ts +4 -0
  62. package/dist/fields/icons.d.ts.map +1 -1
  63. package/dist/fields/icons.js +2 -0
  64. package/dist/index.cjs +230 -3
  65. package/dist/index.d.ts +2 -0
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +230 -3
  68. package/dist/layout/Box/Box.module.css.cjs +12 -0
  69. package/dist/layout/Box/Box.module.css.js +12 -0
  70. package/dist/layout/Divider/Divider.module.css.cjs +12 -0
  71. package/dist/layout/Divider/Divider.module.css.js +12 -0
  72. package/dist/layout/Grid/Grid.module.css.cjs +12 -0
  73. package/dist/layout/Grid/Grid.module.css.js +12 -0
  74. package/dist/layout/Stack/Stack.module.css.cjs +12 -0
  75. package/dist/layout/Stack/Stack.module.css.js +12 -0
  76. package/dist/react/AxenForm.cjs +228 -3
  77. package/dist/react/AxenForm.js +228 -3
  78. package/dist/react/fieldGroup.module.css.cjs +12 -0
  79. package/dist/react/fieldGroup.module.css.js +12 -0
  80. package/dist/react/gridCell.module.css.cjs +12 -0
  81. package/dist/react/gridCell.module.css.js +12 -0
  82. package/dist/types.d.ts +1 -0
  83. package/dist/types.d.ts.map +1 -1
  84. package/package.json +4 -9
  85. package/dist/fields/AutocompleteField/AutocompleteField.module.css +0 -168
  86. package/dist/fields/CheckboxField/CheckboxField.module.css +0 -29
  87. package/dist/fields/ColorField/ColorField.module.css +0 -33
  88. package/dist/fields/PasswordField/PasswordField.module.css +0 -41
  89. package/dist/fields/RadioField/RadioField.module.css +0 -34
  90. package/dist/fields/SliderField/SliderField.module.css +0 -76
  91. package/dist/fields/SwitchField/SwitchField.module.css +0 -79
  92. package/dist/fields/fieldBase.module.css +0 -244
  93. package/dist/layout/Box/Box.module.css +0 -3
  94. package/dist/layout/Divider/Divider.module.css +0 -25
  95. package/dist/layout/Grid/Grid.module.css +0 -43
  96. package/dist/layout/Stack/Stack.module.css +0 -3
  97. package/dist/react/fieldGroup.module.css +0 -22
  98. package/dist/react/gridCell.module.css +0 -38
  99. package/dist/tokens/reset.css +0 -68
  100. package/dist/tokens/themes.css +0 -31
  101. package/dist/tokens/tokens.css +0 -120
@@ -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 [hours, minutes] = isoTime.split(":").map(Number);
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
  }
@@ -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,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAYzF;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"}
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"}
@@ -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 [hours, minutes] = isoTime.split(":").map(Number);
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
  }
@@ -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,iBA+B7B,CAAC"}
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"}
@@ -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
- isOpen && filteredOptions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
209
- "div",
210
- {
211
- id: listboxId,
212
- ref: listRef,
213
- role: "listbox",
214
- className: AutocompleteField_module.default.dropdown,
215
- children: filteredOptions.map((opt, i) => /* @__PURE__ */ jsxRuntime.jsx(
216
- "div",
217
- {
218
- id: `${name}-opt-${i}`,
219
- role: "option",
220
- tabIndex: -1,
221
- "aria-selected": i === activeIndex,
222
- "aria-disabled": opt.disabled,
223
- className: fieldUtils.cx(
224
- AutocompleteField_module.default.option,
225
- i === activeIndex && AutocompleteField_module.default.optionActive,
226
- opt.disabled && AutocompleteField_module.default.optionDisabled
227
- ),
228
- onMouseDown: (e) => {
229
- e.preventDefault();
230
- if (!opt.disabled) selectOption(opt);
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
- children: getOptionLabel(opt)
233
- },
234
- opt.value
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
- isOpen && filteredOptions.length > 0 && /* @__PURE__ */ jsx(
207
- "div",
208
- {
209
- id: listboxId,
210
- ref: listRef,
211
- role: "listbox",
212
- className: localStyles.dropdown,
213
- children: filteredOptions.map((opt, i) => /* @__PURE__ */ jsx(
214
- "div",
215
- {
216
- id: `${name}-opt-${i}`,
217
- role: "option",
218
- tabIndex: -1,
219
- "aria-selected": i === activeIndex,
220
- "aria-disabled": opt.disabled,
221
- className: cx(
222
- localStyles.option,
223
- i === activeIndex && localStyles.optionActive,
224
- opt.disabled && localStyles.optionDisabled
225
- ),
226
- onMouseDown: (e) => {
227
- e.preventDefault();
228
- if (!opt.disabled) selectOption(opt);
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
- children: getOptionLabel(opt)
231
- },
232
- opt.value
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 = "_inputWrap_1hzxx_1";
4
- const spinner = "_spinner_1hzxx_7";
5
- const dropdown = "_dropdown_1hzxx_32";
6
- const option = "_option_1hzxx_48";
7
- const optionActive = "_optionActive_1hzxx_63";
8
- const optionDisabled = "_optionDisabled_1hzxx_67";
9
- const noResults = "_noResults_1hzxx_72";
10
- const chipWrap = "_chipWrap_1hzxx_83";
11
- const chip = "_chip_1hzxx_83";
12
- const chipRemove = "_chipRemove_1hzxx_105";
13
- const predictWrap = "_predictWrap_1hzxx_131";
14
- const ghostText = "_ghostText_1hzxx_137";
15
- const ghostHidden = "_ghostHidden_1hzxx_150";
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
- const inputWrap = "_inputWrap_1hzxx_1";
2
- const spinner = "_spinner_1hzxx_7";
3
- const dropdown = "_dropdown_1hzxx_32";
4
- const option = "_option_1hzxx_48";
5
- const optionActive = "_optionActive_1hzxx_63";
6
- const optionDisabled = "_optionDisabled_1hzxx_67";
7
- const noResults = "_noResults_1hzxx_72";
8
- const chipWrap = "_chipWrap_1hzxx_83";
9
- const chip = "_chip_1hzxx_83";
10
- const chipRemove = "_chipRemove_1hzxx_105";
11
- const predictWrap = "_predictWrap_1hzxx_131";
12
- const ghostText = "_ghostText_1hzxx_137";
13
- const ghostHidden = "_ghostHidden_1hzxx_150";
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.jsx(
194
- "div",
195
- {
196
- className: fieldUtils.cx(fieldBase_module.default.input, error && fieldBase_module.default.inputError),
197
- style: { height: "auto", padding: 0 },
198
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: AutocompleteField_module.default.chipWrap, children: [
199
- resolvedIcon && /* @__PURE__ */ jsxRuntime.jsx(
200
- "span",
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
- type: "button",
213
- className: AutocompleteField_module.default.chipRemove,
214
- onClick: () => removeValue(val),
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
- ] }, val)),
220
- /* @__PURE__ */ jsxRuntime.jsx(
221
- "input",
222
- {
223
- ...aria,
224
- type: "text",
225
- value: inputText,
226
- onChange: handleInputChange,
227
- onKeyDown: handleKeyDown,
228
- onBlur: handleBlur,
229
- onFocus: () => {
230
- doSearch(inputText);
231
- setIsOpen(true);
232
- },
233
- placeholder: selectedValues.length === 0 ? placeholder : "",
234
- disabled,
235
- readOnly,
236
- role: "combobox",
237
- "aria-expanded": isOpen,
238
- "aria-controls": listboxId,
239
- "aria-activedescendant": activeIndex >= 0 ? `${name}-opt-${activeIndex}` : void 0,
240
- "aria-autocomplete": "list",
241
- autoComplete: "off",
242
- style: {
243
- border: "none",
244
- outline: "none",
245
- flex: 1,
246
- minWidth: "60px",
247
- padding: "var(--axen-space-xs)",
248
- background: "transparent"
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
- onMouseDown: (e) => {
277
- e.preventDefault();
278
- if (!opt.disabled) selectOption(opt);
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
- children: getOptionLabel(opt)
281
- },
282
- opt.value
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,2CA+RA"}
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"}