@nuxt/ui 3.2.0 → 3.3.1

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 (185) hide show
  1. package/.nuxt/ui/button.ts +42 -42
  2. package/.nuxt/ui/command-palette.ts +2 -1
  3. package/.nuxt/ui/drawer.ts +1 -1
  4. package/.nuxt/ui/file-upload.ts +290 -0
  5. package/.nuxt/ui/index.ts +1 -0
  6. package/.nuxt/ui/input.ts +1 -1
  7. package/.nuxt/ui/kbd.ts +167 -3
  8. package/.nuxt/ui/select.ts +7 -7
  9. package/.nuxt/ui/table.ts +8 -0
  10. package/.nuxt/ui/tabs.ts +4 -2
  11. package/.nuxt/ui/textarea.ts +1 -1
  12. package/.nuxt/ui/toast.ts +8 -15
  13. package/.nuxt/ui/tooltip.ts +1 -1
  14. package/cli/templates.mjs +8 -3
  15. package/dist/module.d.mts +15 -1
  16. package/dist/module.json +2 -2
  17. package/dist/module.mjs +3 -3
  18. package/dist/runtime/components/Accordion.vue.d.ts +1 -1
  19. package/dist/runtime/components/Alert.vue.d.ts +2 -2
  20. package/dist/runtime/components/App.vue.d.ts +1 -1
  21. package/dist/runtime/components/Avatar.vue.d.ts +1 -1
  22. package/dist/runtime/components/AvatarGroup.vue.d.ts +1 -1
  23. package/dist/runtime/components/Badge.vue.d.ts +1 -1
  24. package/dist/runtime/components/Breadcrumb.vue.d.ts +1 -1
  25. package/dist/runtime/components/Button.vue +6 -6
  26. package/dist/runtime/components/Button.vue.d.ts +1 -5
  27. package/dist/runtime/components/ButtonGroup.vue.d.ts +1 -1
  28. package/dist/runtime/components/Calendar.vue.d.ts +1 -1
  29. package/dist/runtime/components/Card.vue.d.ts +1 -1
  30. package/dist/runtime/components/Carousel.vue +18 -14
  31. package/dist/runtime/components/Carousel.vue.d.ts +1 -1
  32. package/dist/runtime/components/Checkbox.vue.d.ts +1 -1
  33. package/dist/runtime/components/CheckboxGroup.vue.d.ts +1 -1
  34. package/dist/runtime/components/Chip.vue.d.ts +2 -2
  35. package/dist/runtime/components/Collapsible.vue.d.ts +1 -1
  36. package/dist/runtime/components/ColorPicker.vue +1 -2
  37. package/dist/runtime/components/ColorPicker.vue.d.ts +1 -1
  38. package/dist/runtime/components/CommandPalette.vue +4 -0
  39. package/dist/runtime/components/CommandPalette.vue.d.ts +6 -1
  40. package/dist/runtime/components/Container.vue.d.ts +1 -1
  41. package/dist/runtime/components/ContextMenu.vue.d.ts +1 -1
  42. package/dist/runtime/components/ContextMenuContent.vue +5 -3
  43. package/dist/runtime/components/ContextMenuContent.vue.d.ts +1 -1
  44. package/dist/runtime/components/Drawer.vue +4 -4
  45. package/dist/runtime/components/Drawer.vue.d.ts +6 -1
  46. package/dist/runtime/components/DropdownMenu.vue.d.ts +1 -1
  47. package/dist/runtime/components/DropdownMenuContent.vue +5 -3
  48. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +8 -5
  49. package/dist/runtime/components/FileUpload.vue +248 -0
  50. package/dist/runtime/components/FileUpload.vue.d.ts +167 -0
  51. package/dist/runtime/components/Form.vue +3 -3
  52. package/dist/runtime/components/Form.vue.d.ts +6 -5
  53. package/dist/runtime/components/FormField.vue +2 -2
  54. package/dist/runtime/components/FormField.vue.d.ts +4 -4
  55. package/dist/runtime/components/Icon.vue.d.ts +1 -1
  56. package/dist/runtime/components/Input.vue +10 -7
  57. package/dist/runtime/components/Input.vue.d.ts +9 -9
  58. package/dist/runtime/components/InputMenu.vue +25 -13
  59. package/dist/runtime/components/InputMenu.vue.d.ts +16 -221
  60. package/dist/runtime/components/InputNumber.vue +3 -2
  61. package/dist/runtime/components/InputNumber.vue.d.ts +7 -81
  62. package/dist/runtime/components/InputTags.vue +2 -0
  63. package/dist/runtime/components/InputTags.vue.d.ts +7 -5
  64. package/dist/runtime/components/Kbd.vue +2 -1
  65. package/dist/runtime/components/Kbd.vue.d.ts +5 -1
  66. package/dist/runtime/components/Link.vue +6 -5
  67. package/dist/runtime/components/Link.vue.d.ts +1 -3
  68. package/dist/runtime/components/LinkBase.vue.d.ts +1 -1
  69. package/dist/runtime/components/Modal.vue.d.ts +2 -2
  70. package/dist/runtime/components/NavigationMenu.vue +3 -2
  71. package/dist/runtime/components/NavigationMenu.vue.d.ts +1 -1
  72. package/dist/runtime/components/OverlayProvider.vue.d.ts +1 -1
  73. package/dist/runtime/components/Pagination.vue.d.ts +1 -1
  74. package/dist/runtime/components/PinInput.vue +3 -1
  75. package/dist/runtime/components/PinInput.vue.d.ts +5 -5
  76. package/dist/runtime/components/Popover.vue +2 -1
  77. package/dist/runtime/components/Popover.vue.d.ts +8 -2
  78. package/dist/runtime/components/Progress.vue.d.ts +1 -1
  79. package/dist/runtime/components/RadioGroup.vue +1 -1
  80. package/dist/runtime/components/RadioGroup.vue.d.ts +5 -4
  81. package/dist/runtime/components/Select.vue +16 -6
  82. package/dist/runtime/components/Select.vue.d.ts +3 -3
  83. package/dist/runtime/components/SelectMenu.vue +18 -10
  84. package/dist/runtime/components/SelectMenu.vue.d.ts +3 -3
  85. package/dist/runtime/components/Separator.vue.d.ts +1 -1
  86. package/dist/runtime/components/Skeleton.vue.d.ts +1 -1
  87. package/dist/runtime/components/Slideover.vue.d.ts +2 -2
  88. package/dist/runtime/components/Slider.vue.d.ts +5 -5
  89. package/dist/runtime/components/Stepper.vue.d.ts +1 -1
  90. package/dist/runtime/components/Switch.vue.d.ts +1 -1
  91. package/dist/runtime/components/Table.vue +83 -8
  92. package/dist/runtime/components/Table.vue.d.ts +20 -4
  93. package/dist/runtime/components/Tabs.vue +12 -2
  94. package/dist/runtime/components/Tabs.vue.d.ts +8 -3
  95. package/dist/runtime/components/Textarea.vue +10 -7
  96. package/dist/runtime/components/Textarea.vue.d.ts +10 -9
  97. package/dist/runtime/components/Timeline.vue.d.ts +1 -1
  98. package/dist/runtime/components/Toast.vue +12 -4
  99. package/dist/runtime/components/Toast.vue.d.ts +14 -13
  100. package/dist/runtime/components/Toaster.vue.d.ts +1 -1
  101. package/dist/runtime/components/Tooltip.vue +4 -3
  102. package/dist/runtime/components/Tooltip.vue.d.ts +8 -2
  103. package/dist/runtime/components/Tree.vue +31 -28
  104. package/dist/runtime/components/Tree.vue.d.ts +2 -1
  105. package/dist/runtime/composables/defineShortcuts.js +5 -3
  106. package/dist/runtime/composables/useAvatarGroup.d.ts +1 -1
  107. package/dist/runtime/composables/useComponentIcons.d.ts +1 -1
  108. package/dist/runtime/composables/useFileUpload.d.ts +19 -0
  109. package/dist/runtime/composables/useFileUpload.js +69 -0
  110. package/dist/runtime/composables/useFormField.d.ts +3 -6
  111. package/dist/runtime/composables/useFormField.js +5 -2
  112. package/dist/runtime/composables/useKbd.d.ts +1 -1
  113. package/dist/runtime/composables/useLocale.js +2 -2
  114. package/dist/runtime/composables/useOverlay.d.ts +29 -2
  115. package/dist/runtime/composables/useOverlay.js +8 -7
  116. package/dist/runtime/composables/usePortal.d.ts +1 -1
  117. package/dist/runtime/inertia/components/Link.vue.d.ts +1 -1
  118. package/dist/runtime/inertia/components/LinkBase.vue.d.ts +1 -1
  119. package/dist/runtime/inertia/stubs.d.ts +1 -0
  120. package/dist/runtime/inertia/stubs.js +4 -2
  121. package/dist/runtime/locale/ar.js +5 -1
  122. package/dist/runtime/locale/az.js +4 -0
  123. package/dist/runtime/locale/bg.js +4 -0
  124. package/dist/runtime/locale/bn.js +4 -0
  125. package/dist/runtime/locale/ca.js +4 -0
  126. package/dist/runtime/locale/ckb.js +5 -1
  127. package/dist/runtime/locale/cs.js +4 -0
  128. package/dist/runtime/locale/da.js +4 -0
  129. package/dist/runtime/locale/de.js +4 -0
  130. package/dist/runtime/locale/el.js +4 -0
  131. package/dist/runtime/locale/en.js +4 -0
  132. package/dist/runtime/locale/es.js +4 -0
  133. package/dist/runtime/locale/et.js +4 -0
  134. package/dist/runtime/locale/fa_ir.js +4 -0
  135. package/dist/runtime/locale/fi.js +4 -0
  136. package/dist/runtime/locale/fr.js +4 -0
  137. package/dist/runtime/locale/he.js +4 -0
  138. package/dist/runtime/locale/hi.js +5 -1
  139. package/dist/runtime/locale/hu.js +4 -0
  140. package/dist/runtime/locale/hy.js +4 -0
  141. package/dist/runtime/locale/id.js +4 -0
  142. package/dist/runtime/locale/it.js +4 -0
  143. package/dist/runtime/locale/ja.js +4 -0
  144. package/dist/runtime/locale/kk.js +4 -0
  145. package/dist/runtime/locale/km.js +5 -1
  146. package/dist/runtime/locale/ko.js +4 -0
  147. package/dist/runtime/locale/ky.js +4 -0
  148. package/dist/runtime/locale/lb.js +4 -0
  149. package/dist/runtime/locale/lt.js +4 -0
  150. package/dist/runtime/locale/mn.js +4 -0
  151. package/dist/runtime/locale/ms.js +4 -0
  152. package/dist/runtime/locale/nb_no.js +4 -0
  153. package/dist/runtime/locale/nl.js +4 -0
  154. package/dist/runtime/locale/pl.js +4 -0
  155. package/dist/runtime/locale/pt.js +4 -0
  156. package/dist/runtime/locale/pt_br.js +4 -0
  157. package/dist/runtime/locale/ro.js +4 -0
  158. package/dist/runtime/locale/ru.js +4 -0
  159. package/dist/runtime/locale/sk.js +4 -0
  160. package/dist/runtime/locale/sl.js +4 -0
  161. package/dist/runtime/locale/sv.js +4 -0
  162. package/dist/runtime/locale/th.js +4 -0
  163. package/dist/runtime/locale/tj.js +4 -0
  164. package/dist/runtime/locale/tr.js +4 -0
  165. package/dist/runtime/locale/ug_cn.js +4 -0
  166. package/dist/runtime/locale/uk.js +4 -0
  167. package/dist/runtime/locale/ur.js +4 -0
  168. package/dist/runtime/locale/uz.js +4 -0
  169. package/dist/runtime/locale/vi.js +4 -0
  170. package/dist/runtime/locale/zh_cn.js +4 -0
  171. package/dist/runtime/locale/zh_tw.js +4 -0
  172. package/dist/runtime/types/index.d.ts +1 -0
  173. package/dist/runtime/types/index.js +1 -0
  174. package/dist/runtime/types/locale.d.ts +4 -0
  175. package/dist/runtime/utils/index.d.ts +6 -0
  176. package/dist/runtime/utils/index.js +27 -0
  177. package/dist/runtime/vue/components/Icon.vue.d.ts +1 -1
  178. package/dist/runtime/vue/components/Link.vue.d.ts +1 -1
  179. package/dist/runtime/vue/stubs.d.ts +1 -0
  180. package/dist/runtime/vue/stubs.js +3 -1
  181. package/dist/shared/{ui.BPVxSPGY.mjs → ui.BTUFJHYJ.mjs} +299 -36
  182. package/dist/unplugin.d.mts +2 -0
  183. package/dist/unplugin.mjs +6 -3
  184. package/dist/vite.mjs +1 -1
  185. package/package.json +31 -27
@@ -3,7 +3,7 @@ import theme from "#build/ui/input-menu";
3
3
  </script>
4
4
 
5
5
  <script setup>
6
- import { computed, ref, toRef, onMounted, toRaw } from "vue";
6
+ import { computed, ref, toRef, onMounted, toRaw, nextTick } from "vue";
7
7
  import { ComboboxRoot, ComboboxArrow, ComboboxAnchor, ComboboxInput, ComboboxTrigger, ComboboxPortal, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxLabel, ComboboxSeparator, ComboboxItem, ComboboxItemIndicator, TagsInputRoot, TagsInputItem, TagsInputItemText, TagsInputItemDelete, TagsInputInput, useForwardPropsEmits, useFilter } from "reka-ui";
8
8
  import { defu } from "defu";
9
9
  import { isEqual } from "ohash/utils";
@@ -14,7 +14,7 @@ import { useComponentIcons } from "../composables/useComponentIcons";
14
14
  import { useFormField } from "../composables/useFormField";
15
15
  import { useLocale } from "../composables/useLocale";
16
16
  import { usePortal } from "../composables/usePortal";
17
- import { compare, get, isArrayOfArray } from "../utils";
17
+ import { compare, get, getDisplayValue, isArrayOfArray } from "../utils";
18
18
  import { tv } from "../utils/tv";
19
19
  import UIcon from "./Icon.vue";
20
20
  import UAvatar from "./Avatar.vue";
@@ -56,6 +56,8 @@ const props = defineProps({
56
56
  resetSearchTermOnBlur: { type: Boolean, required: false, default: true },
57
57
  resetSearchTermOnSelect: { type: Boolean, required: false, default: true },
58
58
  highlightOnHover: { type: Boolean, required: false },
59
+ openOnClick: { type: Boolean, required: false },
60
+ openOnFocus: { type: Boolean, required: false },
59
61
  icon: { type: String, required: false },
60
62
  avatar: { type: Object, required: false },
61
63
  leading: { type: Boolean, required: false },
@@ -64,13 +66,13 @@ const props = defineProps({
64
66
  loading: { type: Boolean, required: false },
65
67
  loadingIcon: { type: String, required: false }
66
68
  });
67
- const emits = defineEmits(["update:open", "change", "blur", "focus", "create", "highlight", "update:modelValue"]);
69
+ const emits = defineEmits(["update:open", "change", "blur", "focus", "create", "highlight", "remove-tag", "update:modelValue"]);
68
70
  const slots = defineSlots();
69
71
  const searchTerm = defineModel("searchTerm", { type: String, ...{ default: "" } });
70
72
  const { t } = useLocale();
71
73
  const appConfig = useAppConfig();
72
74
  const { contains } = useFilter({ sensitivity: "base" });
73
- const rootProps = useForwardPropsEmits(reactivePick(props, "as", "modelValue", "defaultValue", "open", "defaultOpen", "required", "multiple", "resetSearchTermOnBlur", "resetSearchTermOnSelect", "highlightOnHover", "ignoreFilter"), emits);
75
+ const rootProps = useForwardPropsEmits(reactivePick(props, "as", "modelValue", "defaultValue", "open", "defaultOpen", "required", "multiple", "resetSearchTermOnBlur", "resetSearchTermOnSelect", "highlightOnHover", "openOnClick", "openOnFocus"), emits);
74
76
  const portalProps = usePortal(toRef(() => props.portal));
75
77
  const contentProps = toRef(() => defu(props.content, { side: "bottom", sideOffset: 8, collisionPadding: 8, position: "popper" }));
76
78
  const arrowProps = toRef(() => props.arrow);
@@ -91,11 +93,10 @@ const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.inputMenu ||
91
93
  buttonGroup: orientation.value
92
94
  }));
93
95
  function displayValue(value) {
94
- if (!props.valueKey) {
95
- return value && (typeof value === "object" ? get(value, props.labelKey) : value);
96
- }
97
- const item = items.value.find((item2) => compare(typeof item2 === "object" ? get(item2, props.valueKey) : item2, value));
98
- return item && (typeof item === "object" ? get(item, props.labelKey) : item);
96
+ return getDisplayValue(items.value, value, {
97
+ labelKey: props.labelKey,
98
+ valueKey: props.valueKey
99
+ }) ?? "";
99
100
  }
100
101
  const groups = computed(
101
102
  () => props.items?.length ? isArrayOfArray(props.items) ? props.items : [props.items] : []
@@ -106,14 +107,20 @@ const filteredGroups = computed(() => {
106
107
  return groups.value;
107
108
  }
108
109
  const fields = Array.isArray(props.filterFields) ? props.filterFields : [props.labelKey];
109
- return groups.value.map((group) => group.filter((item) => {
110
- if (typeof item !== "object" || item === null) {
110
+ return groups.value.map((items2) => items2.filter((item) => {
111
+ if (item === void 0 || item === null) {
112
+ return false;
113
+ }
114
+ if (typeof item !== "object") {
111
115
  return contains(String(item), searchTerm.value);
112
116
  }
113
117
  if (item.type && ["label", "separator"].includes(item.type)) {
114
118
  return true;
115
119
  }
116
- return fields.some((field) => contains(get(item, field), searchTerm.value));
120
+ return fields.some((field) => {
121
+ const value = get(item, field);
122
+ return value !== void 0 && value !== null && contains(String(value), searchTerm.value);
123
+ });
117
124
  })).filter((group) => group.filter(
118
125
  (item) => !isInputItem(item) || (!item.type || !["label", "separator"].includes(item.type))
119
126
  ).length > 0);
@@ -137,6 +144,9 @@ function autoFocus() {
137
144
  }
138
145
  }
139
146
  onMounted(() => {
147
+ nextTick(() => {
148
+ searchTerm.value = "";
149
+ });
140
150
  setTimeout(() => {
141
151
  autoFocus();
142
152
  }, props.autofocusDelay);
@@ -185,6 +195,7 @@ function onRemoveTag(event) {
185
195
  const modelValue = props.modelValue;
186
196
  const filteredValue = modelValue.filter((value) => !isEqual(value, event));
187
197
  emits("update:modelValue", filteredValue);
198
+ emits("remove-tag", event);
188
199
  onUpdate(filteredValue);
189
200
  }
190
201
  }
@@ -224,7 +235,6 @@ defineExpose({
224
235
  </DefineCreateItemTemplate>
225
236
 
226
237
  <ComboboxRoot
227
- :id="id"
228
238
  v-slot="{ modelValue, open }"
229
239
  v-bind="rootProps"
230
240
  :name="name"
@@ -265,6 +275,7 @@ defineExpose({
265
275
 
266
276
  <ComboboxInput v-model="searchTerm" as-child>
267
277
  <TagsInputInput
278
+ :id="id"
268
279
  ref="inputRef"
269
280
  v-bind="{ ...$attrs, ...ariaAttrs }"
270
281
  :placeholder="placeholder"
@@ -276,6 +287,7 @@ defineExpose({
276
287
 
277
288
  <ComboboxInput
278
289
  v-else
290
+ :id="id"
279
291
  ref="inputRef"
280
292
  :display-value="displayValue"
281
293
  v-bind="{ ...$attrs, ...ariaAttrs }"
@@ -1,3 +1,4 @@
1
+ import { nextTick } from 'vue';
1
2
  import type { InputHTMLAttributes } from 'vue';
2
3
  import type { ComboboxRootProps, ComboboxRootEmits, ComboboxContentProps, ComboboxContentEmits, ComboboxArrowProps } from 'reka-ui';
3
4
  import type { AppConfig } from '@nuxt/schema';
@@ -26,7 +27,7 @@ interface _InputMenuItem {
26
27
  [key: string]: any;
27
28
  }
28
29
  export type InputMenuItem = _InputMenuItem | AcceptableValue | boolean;
29
- export interface InputMenuProps<T extends ArrayOrNested<InputMenuItem> = ArrayOrNested<InputMenuItem>, VK extends GetItemKeys<T> | undefined = undefined, M extends boolean = false> extends Pick<ComboboxRootProps<T>, 'open' | 'defaultOpen' | 'disabled' | 'name' | 'resetSearchTermOnBlur' | 'resetSearchTermOnSelect' | 'highlightOnHover'>, UseComponentIconsProps {
30
+ export interface InputMenuProps<T extends ArrayOrNested<InputMenuItem> = ArrayOrNested<InputMenuItem>, VK extends GetItemKeys<T> | undefined = undefined, M extends boolean = false> extends Pick<ComboboxRootProps<T>, 'open' | 'defaultOpen' | 'disabled' | 'name' | 'resetSearchTermOnBlur' | 'resetSearchTermOnSelect' | 'highlightOnHover' | 'openOnClick' | 'openOnFocus'>, UseComponentIconsProps {
30
31
  /**
31
32
  * The element or component this component should render as.
32
33
  * @defaultValue 'div'
@@ -126,17 +127,18 @@ export interface InputMenuProps<T extends ArrayOrNested<InputMenuItem> = ArrayOr
126
127
  ui?: InputMenu['slots'];
127
128
  }
128
129
  export type InputMenuEmits<A extends ArrayOrNested<InputMenuItem>, VK extends GetItemKeys<A> | undefined, M extends boolean> = Pick<ComboboxRootEmits, 'update:open'> & {
129
- change: [payload: Event];
130
- blur: [payload: FocusEvent];
131
- focus: [payload: FocusEvent];
132
- create: [item: string];
130
+ 'change': [payload: Event];
131
+ 'blur': [payload: FocusEvent];
132
+ 'focus': [payload: FocusEvent];
133
+ 'create': [item: string];
133
134
  /** Event handler when highlighted element changes. */
134
- highlight: [
135
+ 'highlight': [
135
136
  payload: {
136
137
  ref: HTMLElement;
137
138
  value: GetModelValue<A, VK, M>;
138
139
  } | undefined
139
140
  ];
141
+ 'remove-tag': [item: GetModelValue<A, VK, M>];
140
142
  } & GetModelValueEmits<A, VK, M>;
141
143
  type SlotProps<T extends InputMenuItem> = (props: {
142
144
  item: T;
@@ -185,7 +187,8 @@ declare const _default: <T extends ArrayOrNested<InputMenuItem>, VK extends GetI
185
187
  value: GetModelValue<T, VK, M>;
186
188
  } | undefined) => any) | undefined;
187
189
  readonly "onUpdate:searchTerm"?: ((value: string) => any) | undefined;
188
- } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onFocus" | "onBlur" | "onChange" | "onUpdate:open" | "onUpdate:modelValue" | "onHighlight" | "onUpdate:searchTerm" | "onCreate"> & (InputMenuProps<T, VK, M> & {
190
+ readonly "onRemove-tag"?: ((item: GetModelValue<T, VK, M>) => any) | undefined;
191
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onFocus" | "onBlur" | "onChange" | "onUpdate:open" | "onUpdate:modelValue" | "onHighlight" | "onUpdate:searchTerm" | "onCreate" | "onRemove-tag"> & (InputMenuProps<T, VK, M> & {
189
192
  searchTerm?: string;
190
193
  }) & Partial<{}>> & import("vue").PublicProps;
191
194
  expose(exposed: import("vue").ShallowUnwrapRef<{
@@ -206,110 +209,6 @@ declare const _default: <T extends ArrayOrNested<InputMenuItem>, VK extends GetI
206
209
  };
207
210
  $refs: {
208
211
  [x: string]: unknown;
209
- } & {
210
- primitiveElement: ({
211
- $: import("vue").ComponentInternalInstance;
212
- $data: {};
213
- $props: {
214
- readonly modelValue?: string | undefined;
215
- readonly autoFocus?: boolean | undefined;
216
- readonly disabled?: boolean | undefined;
217
- readonly asChild?: boolean | undefined;
218
- readonly as?: (import("reka-ui").AsTag | import("vue").Component) | undefined;
219
- readonly "onUpdate:modelValue"?: ((args_0: string) => any) | undefined;
220
- } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
221
- $attrs: {
222
- [x: string]: unknown;
223
- };
224
- $refs: {
225
- [x: string]: unknown;
226
- } & {
227
- primitiveElement: import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
228
- asChild: {
229
- type: BooleanConstructor;
230
- default: boolean;
231
- };
232
- as: {
233
- type: import("vue").PropType<import("reka-ui").AsTag | import("vue").Component>;
234
- default: string;
235
- };
236
- }>> & Readonly<{}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
237
- [key: string]: any;
238
- }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {
239
- asChild: boolean;
240
- as: import("reka-ui").AsTag | import("vue").Component;
241
- }, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
242
- P: {};
243
- B: {};
244
- D: {};
245
- C: {};
246
- M: {};
247
- Defaults: {};
248
- }, Readonly<import("vue").ExtractPropTypes<{
249
- asChild: {
250
- type: BooleanConstructor;
251
- default: boolean;
252
- };
253
- as: {
254
- type: import("vue").PropType<import("reka-ui").AsTag | import("vue").Component>;
255
- default: string;
256
- };
257
- }>> & Readonly<{}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
258
- [key: string]: any;
259
- }>, {}, {}, {}, {
260
- asChild: boolean;
261
- as: import("reka-ui").AsTag | import("vue").Component;
262
- }> | null;
263
- };
264
- $slots: Readonly<{
265
- [name: string]: import("vue").Slot<any> | undefined;
266
- }>;
267
- $root: import("vue").ComponentPublicInstance | null;
268
- $parent: import("vue").ComponentPublicInstance | null;
269
- $host: Element | null;
270
- $emit: (event: "update:modelValue", args_0: string) => void;
271
- $el: any;
272
- $options: import("vue").ComponentOptionsBase<Readonly<import("reka-ui").ListboxFilterProps> & Readonly<{
273
- "onUpdate:modelValue"?: ((args_0: string) => any) | undefined;
274
- }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
275
- "update:modelValue": (args_0: string) => any;
276
- }, string, {
277
- as: import("reka-ui").AsTag | import("vue").Component;
278
- }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & {
279
- beforeCreate?: (() => void) | (() => void)[];
280
- created?: (() => void) | (() => void)[];
281
- beforeMount?: (() => void) | (() => void)[];
282
- mounted?: (() => void) | (() => void)[];
283
- beforeUpdate?: (() => void) | (() => void)[];
284
- updated?: (() => void) | (() => void)[];
285
- activated?: (() => void) | (() => void)[];
286
- deactivated?: (() => void) | (() => void)[];
287
- beforeDestroy?: (() => void) | (() => void)[];
288
- beforeUnmount?: (() => void) | (() => void)[];
289
- destroyed?: (() => void) | (() => void)[];
290
- unmounted?: (() => void) | (() => void)[];
291
- renderTracked?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
292
- renderTriggered?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
293
- errorCaptured?: ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void)[];
294
- };
295
- $forceUpdate: () => void;
296
- $nextTick: typeof import("vue").nextTick;
297
- $watch<T_1 extends string | ((...args: any) => any)>(source: T_1, cb: T_1 extends (...args: any) => infer R ? (...args: [R, R, import("@vue/reactivity").OnCleanup]) => any : (...args: [any, any, import("@vue/reactivity").OnCleanup]) => any, options?: import("vue").WatchOptions): import("vue").WatchStopHandle;
298
- } & Readonly<{
299
- as: import("reka-ui").AsTag | import("vue").Component;
300
- }> & Omit<Readonly<import("reka-ui").ListboxFilterProps> & Readonly<{
301
- "onUpdate:modelValue"?: ((args_0: string) => any) | undefined;
302
- }>, "as"> & import("vue").ShallowUnwrapRef<{}> & {} & import("vue").ComponentCustomProperties & {} & {
303
- $slots: Readonly<{
304
- default?: (props: {
305
- modelValue: string | undefined;
306
- }) => any;
307
- }> & {
308
- default?: (props: {
309
- modelValue: string | undefined;
310
- }) => any;
311
- };
312
- }) | null;
313
212
  };
314
213
  $slots: Readonly<{
315
214
  [name: string]: import("vue").Slot<any> | undefined;
@@ -343,7 +242,7 @@ declare const _default: <T extends ArrayOrNested<InputMenuItem>, VK extends GetI
343
242
  errorCaptured?: ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void)[];
344
243
  };
345
244
  $forceUpdate: () => void;
346
- $nextTick: typeof import("vue").nextTick;
245
+ $nextTick: typeof nextTick;
347
246
  $watch<T_1 extends string | ((...args: any) => any)>(source: T_1, cb: T_1 extends (...args: any) => infer R ? (...args: [R, R, import("@vue/reactivity").OnCleanup]) => any : (...args: [any, any, import("@vue/reactivity").OnCleanup]) => any, options?: import("vue").WatchOptions): import("vue").WatchStopHandle;
348
247
  } & Readonly<{
349
248
  as: import("reka-ui").AsTag | import("vue").Component;
@@ -351,7 +250,7 @@ declare const _default: <T extends ArrayOrNested<InputMenuItem>, VK extends GetI
351
250
  "onUpdate:modelValue"?: ((args_0: string) => any) | undefined;
352
251
  }>, "as"> & import("vue").ShallowUnwrapRef<{}> & {} & import("vue").ComponentCustomProperties & {} & {
353
252
  $slots: {
354
- default?(_: {}): any;
253
+ default?: (props: {}) => any;
355
254
  };
356
255
  }) | null, ({
357
256
  $: import("vue").ComponentInternalInstance;
@@ -370,110 +269,6 @@ declare const _default: <T extends ArrayOrNested<InputMenuItem>, VK extends GetI
370
269
  };
371
270
  $refs: {
372
271
  [x: string]: unknown;
373
- } & {
374
- primitiveElement: ({
375
- $: import("vue").ComponentInternalInstance;
376
- $data: {};
377
- $props: {
378
- readonly modelValue?: string | undefined;
379
- readonly autoFocus?: boolean | undefined;
380
- readonly disabled?: boolean | undefined;
381
- readonly asChild?: boolean | undefined;
382
- readonly as?: (import("reka-ui").AsTag | import("vue").Component) | undefined;
383
- readonly "onUpdate:modelValue"?: ((args_0: string) => any) | undefined;
384
- } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
385
- $attrs: {
386
- [x: string]: unknown;
387
- };
388
- $refs: {
389
- [x: string]: unknown;
390
- } & {
391
- primitiveElement: import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
392
- asChild: {
393
- type: BooleanConstructor;
394
- default: boolean;
395
- };
396
- as: {
397
- type: import("vue").PropType<import("reka-ui").AsTag | import("vue").Component>;
398
- default: string;
399
- };
400
- }>> & Readonly<{}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
401
- [key: string]: any;
402
- }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {
403
- asChild: boolean;
404
- as: import("reka-ui").AsTag | import("vue").Component;
405
- }, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
406
- P: {};
407
- B: {};
408
- D: {};
409
- C: {};
410
- M: {};
411
- Defaults: {};
412
- }, Readonly<import("vue").ExtractPropTypes<{
413
- asChild: {
414
- type: BooleanConstructor;
415
- default: boolean;
416
- };
417
- as: {
418
- type: import("vue").PropType<import("reka-ui").AsTag | import("vue").Component>;
419
- default: string;
420
- };
421
- }>> & Readonly<{}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
422
- [key: string]: any;
423
- }>, {}, {}, {}, {
424
- asChild: boolean;
425
- as: import("reka-ui").AsTag | import("vue").Component;
426
- }> | null;
427
- };
428
- $slots: Readonly<{
429
- [name: string]: import("vue").Slot<any> | undefined;
430
- }>;
431
- $root: import("vue").ComponentPublicInstance | null;
432
- $parent: import("vue").ComponentPublicInstance | null;
433
- $host: Element | null;
434
- $emit: (event: "update:modelValue", args_0: string) => void;
435
- $el: any;
436
- $options: import("vue").ComponentOptionsBase<Readonly<import("reka-ui").ListboxFilterProps> & Readonly<{
437
- "onUpdate:modelValue"?: ((args_0: string) => any) | undefined;
438
- }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
439
- "update:modelValue": (args_0: string) => any;
440
- }, string, {
441
- as: import("reka-ui").AsTag | import("vue").Component;
442
- }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & {
443
- beforeCreate?: (() => void) | (() => void)[];
444
- created?: (() => void) | (() => void)[];
445
- beforeMount?: (() => void) | (() => void)[];
446
- mounted?: (() => void) | (() => void)[];
447
- beforeUpdate?: (() => void) | (() => void)[];
448
- updated?: (() => void) | (() => void)[];
449
- activated?: (() => void) | (() => void)[];
450
- deactivated?: (() => void) | (() => void)[];
451
- beforeDestroy?: (() => void) | (() => void)[];
452
- beforeUnmount?: (() => void) | (() => void)[];
453
- destroyed?: (() => void) | (() => void)[];
454
- unmounted?: (() => void) | (() => void)[];
455
- renderTracked?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
456
- renderTriggered?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
457
- errorCaptured?: ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void)[];
458
- };
459
- $forceUpdate: () => void;
460
- $nextTick: typeof import("vue").nextTick;
461
- $watch<T_1 extends string | ((...args: any) => any)>(source: T_1, cb: T_1 extends (...args: any) => infer R ? (...args: [R, R, import("@vue/reactivity").OnCleanup]) => any : (...args: [any, any, import("@vue/reactivity").OnCleanup]) => any, options?: import("vue").WatchOptions): import("vue").WatchStopHandle;
462
- } & Readonly<{
463
- as: import("reka-ui").AsTag | import("vue").Component;
464
- }> & Omit<Readonly<import("reka-ui").ListboxFilterProps> & Readonly<{
465
- "onUpdate:modelValue"?: ((args_0: string) => any) | undefined;
466
- }>, "as"> & import("vue").ShallowUnwrapRef<{}> & {} & import("vue").ComponentCustomProperties & {} & {
467
- $slots: Readonly<{
468
- default?: (props: {
469
- modelValue: string | undefined;
470
- }) => any;
471
- }> & {
472
- default?: (props: {
473
- modelValue: string | undefined;
474
- }) => any;
475
- };
476
- }) | null;
477
272
  };
478
273
  $slots: Readonly<{
479
274
  [name: string]: import("vue").Slot<any> | undefined;
@@ -507,7 +302,7 @@ declare const _default: <T extends ArrayOrNested<InputMenuItem>, VK extends GetI
507
302
  errorCaptured?: ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void)[];
508
303
  };
509
304
  $forceUpdate: () => void;
510
- $nextTick: typeof import("vue").nextTick;
305
+ $nextTick: typeof nextTick;
511
306
  $watch<T_1 extends string | ((...args: any) => any)>(source: T_1, cb: T_1 extends (...args: any) => infer R ? (...args: [R, R, import("@vue/reactivity").OnCleanup]) => any : (...args: [any, any, import("@vue/reactivity").OnCleanup]) => any, options?: import("vue").WatchOptions): import("vue").WatchStopHandle;
512
307
  } & Readonly<{
513
308
  as: import("reka-ui").AsTag | import("vue").Component;
@@ -515,7 +310,7 @@ declare const _default: <T extends ArrayOrNested<InputMenuItem>, VK extends GetI
515
310
  "onUpdate:modelValue"?: ((args_0: string) => any) | undefined;
516
311
  }>, "as"> & import("vue").ShallowUnwrapRef<{}> & {} & import("vue").ComponentCustomProperties & {} & {
517
312
  $slots: {
518
- default?(_: {}): any;
313
+ default?: (props: {}) => any;
519
314
  };
520
315
  }) | null>;
521
316
  }>): void;
@@ -524,11 +319,11 @@ declare const _default: <T extends ArrayOrNested<InputMenuItem>, VK extends GetI
524
319
  emit: (((evt: "blur", payload: FocusEvent) => void) & ((evt: "change", payload: Event) => void) & ((evt: "focus", payload: FocusEvent) => void) & ((evt: "create", item: string) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "update:modelValue", payload: GetModelValue<T, VK, M>) => void) & ((evt: "highlight", payload: {
525
320
  ref: HTMLElement;
526
321
  value: GetModelValue<T, VK, M>;
527
- } | undefined) => void)) & ((evt: "update:searchTerm", value: string) => void);
322
+ } | undefined) => void) & ((evt: "remove-tag", item: GetModelValue<T, VK, M>) => void)) & ((evt: "update:searchTerm", value: string) => void);
528
323
  }>) => import("vue").VNode & {
529
324
  __ctx?: Awaited<typeof __VLS_setup>;
530
325
  };
531
326
  export default _default;
532
327
  type __VLS_PrettifyLocal<T> = {
533
- [K in keyof T]: T[K];
328
+ [K in keyof T as K]: T[K];
534
329
  } & {};
@@ -44,13 +44,14 @@ const props = defineProps({
44
44
  name: { type: String, required: false },
45
45
  formatOptions: { type: null, required: false },
46
46
  disableWheelChange: { type: Boolean, required: false },
47
- invertWheelChange: { type: Boolean, required: false }
47
+ invertWheelChange: { type: Boolean, required: false },
48
+ readonly: { type: Boolean, required: false }
48
49
  });
49
50
  const emits = defineEmits(["update:modelValue", "blur", "change"]);
50
51
  defineSlots();
51
52
  const { t, code: codeLocale } = useLocale();
52
53
  const appConfig = useAppConfig();
53
- const rootProps = useForwardPropsEmits(reactivePick(props, "as", "modelValue", "defaultValue", "min", "max", "step", "stepSnapping", "formatOptions", "disableWheelChange", "invertWheelChange"), emits);
54
+ const rootProps = useForwardPropsEmits(reactivePick(props, "as", "modelValue", "defaultValue", "min", "max", "step", "stepSnapping", "formatOptions", "disableWheelChange", "invertWheelChange", "readonly"), emits);
54
55
  const { emitFormBlur, emitFormFocus, emitFormChange, emitFormInput, id, color, size: formGroupSize, name, highlight, disabled, ariaAttrs } = useFormField(props);
55
56
  const { orientation, size: buttonGroupSize } = useButtonGroup(props);
56
57
  const locale = computed(() => props.locale || codeLocale.value);
@@ -4,7 +4,7 @@ import theme from '#build/ui/input-number';
4
4
  import type { ButtonProps } from '../types';
5
5
  import type { ComponentConfig } from '../types/utils';
6
6
  type InputNumber = ComponentConfig<typeof theme, AppConfig, 'inputNumber'>;
7
- export interface InputNumberProps extends Pick<NumberFieldRootProps, 'modelValue' | 'defaultValue' | 'min' | 'max' | 'step' | 'stepSnapping' | 'disabled' | 'required' | 'id' | 'name' | 'formatOptions' | 'disableWheelChange' | 'invertWheelChange'> {
7
+ export interface InputNumberProps extends Pick<NumberFieldRootProps, 'modelValue' | 'defaultValue' | 'min' | 'max' | 'step' | 'stepSnapping' | 'disabled' | 'required' | 'id' | 'name' | 'formatOptions' | 'disableWheelChange' | 'invertWheelChange' | 'readonly'> {
8
8
  /**
9
9
  * The element or component this component should render as.
10
10
  * @defaultValue 'div'
@@ -59,9 +59,9 @@ export interface InputNumberProps extends Pick<NumberFieldRootProps, 'modelValue
59
59
  ui?: InputNumber['slots'];
60
60
  }
61
61
  export interface InputNumberEmits {
62
- (e: 'update:modelValue', payload: number): void;
63
- (e: 'blur', event: FocusEvent): void;
64
- (e: 'change', payload: Event): void;
62
+ 'update:modelValue': [payload: number];
63
+ 'blur': [event: FocusEvent];
64
+ 'change': [payload: Event];
65
65
  }
66
66
  export interface InputNumberSlots {
67
67
  increment(props?: {}): any;
@@ -80,43 +80,6 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<InputNumbe
80
80
  };
81
81
  $refs: {
82
82
  [x: string]: unknown;
83
- } & {
84
- primitiveElement: import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
85
- asChild: {
86
- type: BooleanConstructor;
87
- default: boolean;
88
- };
89
- as: {
90
- type: import("vue").PropType<import("reka-ui").AsTag | import("vue").Component>;
91
- default: string;
92
- };
93
- }>> & Readonly<{}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
94
- [key: string]: any;
95
- }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {
96
- asChild: boolean;
97
- as: import("reka-ui").AsTag | import("vue").Component;
98
- }, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
99
- P: {};
100
- B: {};
101
- D: {};
102
- C: {};
103
- M: {};
104
- Defaults: {};
105
- }, Readonly<import("vue").ExtractPropTypes<{
106
- asChild: {
107
- type: BooleanConstructor;
108
- default: boolean;
109
- };
110
- as: {
111
- type: import("vue").PropType<import("reka-ui").AsTag | import("vue").Component>;
112
- default: string;
113
- };
114
- }>> & Readonly<{}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
115
- [key: string]: any;
116
- }>, {}, {}, {}, {
117
- asChild: boolean;
118
- as: import("reka-ui").AsTag | import("vue").Component;
119
- }> | null;
120
83
  };
121
84
  $slots: Readonly<{
122
85
  [name: string]: import("vue").Slot<any> | undefined;
@@ -152,7 +115,7 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<InputNumbe
152
115
  as: import("reka-ui").AsTag | import("vue").Component;
153
116
  }> & Omit<Readonly<import("reka-ui").NumberFieldInputProps> & Readonly<{}>, "as"> & import("vue").ShallowUnwrapRef<{}> & {} & import("vue").ComponentCustomProperties & {} & {
154
117
  $slots: {
155
- default?(_: {}): any;
118
+ default?: (props: {}) => any;
156
119
  };
157
120
  }) | null, ({
158
121
  $: import("vue").ComponentInternalInstance;
@@ -166,43 +129,6 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<InputNumbe
166
129
  };
167
130
  $refs: {
168
131
  [x: string]: unknown;
169
- } & {
170
- primitiveElement: import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
171
- asChild: {
172
- type: BooleanConstructor;
173
- default: boolean;
174
- };
175
- as: {
176
- type: import("vue").PropType<import("reka-ui").AsTag | import("vue").Component>;
177
- default: string;
178
- };
179
- }>> & Readonly<{}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
180
- [key: string]: any;
181
- }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {
182
- asChild: boolean;
183
- as: import("reka-ui").AsTag | import("vue").Component;
184
- }, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
185
- P: {};
186
- B: {};
187
- D: {};
188
- C: {};
189
- M: {};
190
- Defaults: {};
191
- }, Readonly<import("vue").ExtractPropTypes<{
192
- asChild: {
193
- type: BooleanConstructor;
194
- default: boolean;
195
- };
196
- as: {
197
- type: import("vue").PropType<import("reka-ui").AsTag | import("vue").Component>;
198
- default: string;
199
- };
200
- }>> & Readonly<{}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
201
- [key: string]: any;
202
- }>, {}, {}, {}, {
203
- asChild: boolean;
204
- as: import("reka-ui").AsTag | import("vue").Component;
205
- }> | null;
206
132
  };
207
133
  $slots: Readonly<{
208
134
  [name: string]: import("vue").Slot<any> | undefined;
@@ -238,10 +164,10 @@ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<InputNumbe
238
164
  as: import("reka-ui").AsTag | import("vue").Component;
239
165
  }> & Omit<Readonly<import("reka-ui").NumberFieldInputProps> & Readonly<{}>, "as"> & import("vue").ShallowUnwrapRef<{}> & {} & import("vue").ComponentCustomProperties & {} & {
240
166
  $slots: {
241
- default?(_: {}): any;
167
+ default?: (props: {}) => any;
242
168
  };
243
169
  }) | null>;
244
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
170
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
245
171
  blur: (event: FocusEvent) => any;
246
172
  change: (payload: Event) => any;
247
173
  "update:modelValue": (payload: number) => any;
@@ -17,6 +17,7 @@ defineOptions({ inheritAttrs: false });
17
17
  const props = defineProps({
18
18
  as: { type: null, required: false },
19
19
  placeholder: { type: String, required: false },
20
+ maxLength: { type: Number, required: false },
20
21
  color: { type: null, required: false },
21
22
  variant: { type: null, required: false },
22
23
  size: { type: null, required: false },
@@ -138,6 +139,7 @@ defineExpose({
138
139
  ref="inputRef"
139
140
  v-bind="{ ...$attrs, ...ariaAttrs }"
140
141
  :placeholder="placeholder"
142
+ :max-length="maxLength"
141
143
  :class="ui.input({ class: props.ui?.input })"
142
144
  />
143
145