@nuxt/ui 4.0.0-alpha.1 → 4.0.0-alpha.2

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 (251) hide show
  1. package/.nuxt/ui/content/content-navigation.ts +2 -1
  2. package/.nuxt/ui/marquee.ts +1 -1
  3. package/.nuxt/ui/progress.ts +3 -3
  4. package/.nuxt/ui/prose/code-tree.ts +1 -1
  5. package/.nuxt/ui/tree.ts +1 -1
  6. package/README.md +13 -1
  7. package/dist/module.d.mts +6 -6
  8. package/dist/module.json +2 -2
  9. package/dist/module.mjs +8 -6
  10. package/dist/runtime/components/Accordion.d.vue.ts +79 -0
  11. package/dist/runtime/components/Accordion.vue +3 -3
  12. package/dist/runtime/components/Accordion.vue.d.ts +2 -2
  13. package/dist/runtime/components/Alert.d.vue.ts +81 -0
  14. package/dist/runtime/components/App.d.vue.ts +25 -0
  15. package/dist/runtime/components/AuthForm.d.vue.ts +128 -0
  16. package/dist/runtime/components/AuthForm.vue.d.ts +39 -1
  17. package/dist/runtime/components/Avatar.d.vue.ts +41 -0
  18. package/dist/runtime/components/AvatarGroup.d.vue.ts +31 -0
  19. package/dist/runtime/components/Badge.d.vue.ts +43 -0
  20. package/dist/runtime/components/Banner.d.vue.ts +72 -0
  21. package/dist/runtime/components/Banner.vue +1 -1
  22. package/dist/runtime/components/BlogPost.d.vue.ts +60 -0
  23. package/dist/runtime/components/BlogPosts.d.vue.ts +31 -0
  24. package/dist/runtime/components/Breadcrumb.d.vue.ts +67 -0
  25. package/dist/runtime/components/Breadcrumb.vue +1 -1
  26. package/dist/runtime/components/Breadcrumb.vue.d.ts +2 -2
  27. package/dist/runtime/components/Button.d.vue.ts +44 -0
  28. package/dist/runtime/components/Calendar.d.vue.ts +112 -0
  29. package/dist/runtime/components/Card.d.vue.ts +29 -0
  30. package/dist/runtime/components/Carousel.d.vue.ts +127 -0
  31. package/dist/runtime/components/Carousel.vue.d.ts +10 -10
  32. package/dist/runtime/components/ChangelogVersion.d.vue.ts +59 -0
  33. package/dist/runtime/components/ChangelogVersions.d.vue.ts +78 -0
  34. package/dist/runtime/components/ChangelogVersions.vue +2 -2
  35. package/dist/runtime/components/ChatMessage.d.vue.ts +67 -0
  36. package/dist/runtime/components/ChatMessages.d.vue.ts +83 -0
  37. package/dist/runtime/components/ChatMessages.vue +2 -2
  38. package/dist/runtime/components/ChatPalette.d.vue.ts +24 -0
  39. package/dist/runtime/components/ChatPrompt.d.vue.ts +61 -0
  40. package/dist/runtime/components/ChatPrompt.vue +2 -2
  41. package/dist/runtime/components/ChatPromptSubmit.d.vue.ts +100 -0
  42. package/dist/runtime/components/Checkbox.d.vue.ts +74 -0
  43. package/dist/runtime/components/CheckboxGroup.d.vue.ts +89 -0
  44. package/dist/runtime/components/CheckboxGroup.vue +8 -8
  45. package/dist/runtime/components/CheckboxGroup.vue.d.ts +17 -13
  46. package/dist/runtime/components/Chip.d.vue.ts +57 -0
  47. package/dist/runtime/components/Collapsible.d.vue.ts +35 -0
  48. package/dist/runtime/components/ColorPicker.d.vue.ts +48 -0
  49. package/dist/runtime/components/CommandPalette.d.vue.ts +193 -0
  50. package/dist/runtime/components/CommandPalette.vue +5 -4
  51. package/dist/runtime/components/CommandPalette.vue.d.ts +2 -1
  52. package/dist/runtime/components/Container.d.vue.ts +18 -0
  53. package/dist/runtime/components/ContextMenu.d.vue.ts +110 -0
  54. package/dist/runtime/components/ContextMenu.vue +2 -2
  55. package/dist/runtime/components/ContextMenu.vue.d.ts +2 -2
  56. package/dist/runtime/components/ContextMenuContent.d.vue.ts +50 -0
  57. package/dist/runtime/components/ContextMenuContent.vue +2 -2
  58. package/dist/runtime/components/ContextMenuContent.vue.d.ts +2 -2
  59. package/dist/runtime/components/DashboardGroup.d.vue.ts +24 -0
  60. package/dist/runtime/components/DashboardNavbar.d.vue.ts +52 -0
  61. package/dist/runtime/components/DashboardPanel.d.vue.ts +30 -0
  62. package/dist/runtime/components/DashboardResizeHandle.d.vue.ts +18 -0
  63. package/dist/runtime/components/DashboardSearch.d.vue.ts +91 -0
  64. package/dist/runtime/components/DashboardSearch.vue +2 -2
  65. package/dist/runtime/components/DashboardSearchButton.d.vue.ts +59 -0
  66. package/dist/runtime/components/DashboardSearchButton.vue +2 -2
  67. package/dist/runtime/components/DashboardSidebar.d.vue.ts +75 -0
  68. package/dist/runtime/components/DashboardSidebarCollapse.d.vue.ts +19 -0
  69. package/dist/runtime/components/DashboardSidebarToggle.d.vue.ts +19 -0
  70. package/dist/runtime/components/DashboardToolbar.d.vue.ts +25 -0
  71. package/dist/runtime/components/Drawer.d.vue.ts +84 -0
  72. package/dist/runtime/components/DropdownMenu.d.vue.ts +120 -0
  73. package/dist/runtime/components/DropdownMenu.vue +2 -2
  74. package/dist/runtime/components/DropdownMenu.vue.d.ts +2 -2
  75. package/dist/runtime/components/DropdownMenuContent.d.vue.ts +56 -0
  76. package/dist/runtime/components/DropdownMenuContent.vue +2 -2
  77. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +2 -2
  78. package/dist/runtime/components/Error.d.vue.ts +47 -0
  79. package/dist/runtime/components/FieldGroup.d.vue.ts +34 -0
  80. package/dist/runtime/components/FileUpload.d.vue.ts +166 -0
  81. package/dist/runtime/components/FileUpload.vue +1 -0
  82. package/dist/runtime/components/Footer.d.vue.ts +29 -0
  83. package/dist/runtime/components/FooterColumns.d.vue.ts +57 -0
  84. package/dist/runtime/components/Form.d.vue.ts +114 -0
  85. package/dist/runtime/components/Form.vue +111 -52
  86. package/dist/runtime/components/Form.vue.d.ts +54 -11
  87. package/dist/runtime/components/FormField.d.vue.ts +61 -0
  88. package/dist/runtime/components/Header.d.vue.ts +68 -0
  89. package/dist/runtime/components/Icon.d.vue.ts +8 -0
  90. package/dist/runtime/components/Input.d.vue.ts +74 -0
  91. package/dist/runtime/components/Input.vue.d.ts +4 -3
  92. package/dist/runtime/components/InputMenu.d.vue.ts +330 -0
  93. package/dist/runtime/components/InputMenu.vue +1 -1
  94. package/dist/runtime/components/InputMenu.vue.d.ts +4 -4
  95. package/dist/runtime/components/InputNumber.d.vue.ts +188 -0
  96. package/dist/runtime/components/InputNumber.vue +2 -2
  97. package/dist/runtime/components/InputNumber.vue.d.ts +0 -2
  98. package/dist/runtime/components/InputTags.d.vue.ts +186 -0
  99. package/dist/runtime/components/Kbd.d.vue.ts +38 -0
  100. package/dist/runtime/components/Link.d.vue.ts +91 -0
  101. package/dist/runtime/components/LinkBase.d.vue.ts +25 -0
  102. package/dist/runtime/components/Main.d.vue.ts +20 -0
  103. package/dist/runtime/components/Marquee.d.vue.ts +32 -0
  104. package/dist/runtime/components/Marquee.vue +1 -1
  105. package/dist/runtime/components/Modal.d.vue.ts +107 -0
  106. package/dist/runtime/components/NavigationMenu.d.vue.ts +171 -0
  107. package/dist/runtime/components/NavigationMenu.vue.d.ts +2 -2
  108. package/dist/runtime/components/OverlayProvider.d.vue.ts +2 -0
  109. package/dist/runtime/components/Page.d.vue.ts +25 -0
  110. package/dist/runtime/components/PageAnchors.d.vue.ts +47 -0
  111. package/dist/runtime/components/PageAside.d.vue.ts +27 -0
  112. package/dist/runtime/components/PageBody.d.vue.ts +18 -0
  113. package/dist/runtime/components/PageCTA.d.vue.ts +56 -0
  114. package/dist/runtime/components/PageCard.d.vue.ts +72 -0
  115. package/dist/runtime/components/PageColumns.d.vue.ts +18 -0
  116. package/dist/runtime/components/PageFeature.d.vue.ts +44 -0
  117. package/dist/runtime/components/PageGrid.d.vue.ts +18 -0
  118. package/dist/runtime/components/PageHeader.d.vue.ts +36 -0
  119. package/dist/runtime/components/PageHero.d.vue.ts +53 -0
  120. package/dist/runtime/components/PageLinks.d.vue.ts +49 -0
  121. package/dist/runtime/components/PageList.d.vue.ts +21 -0
  122. package/dist/runtime/components/PageLogos.d.vue.ts +33 -0
  123. package/dist/runtime/components/PageSection.d.vue.ts +68 -0
  124. package/dist/runtime/components/Pagination.d.vue.ts +118 -0
  125. package/dist/runtime/components/PinInput.d.vue.ts +60 -0
  126. package/dist/runtime/components/Popover.d.vue.ts +71 -0
  127. package/dist/runtime/components/PricingPlan.d.vue.ts +112 -0
  128. package/dist/runtime/components/PricingPlans.d.vue.ts +44 -0
  129. package/dist/runtime/components/PricingTable.d.vue.ts +105 -0
  130. package/dist/runtime/components/Progress.d.vue.ts +66 -0
  131. package/dist/runtime/components/Progress.vue +2 -3
  132. package/dist/runtime/components/RadioGroup.d.vue.ts +99 -0
  133. package/dist/runtime/components/RadioGroup.vue +13 -11
  134. package/dist/runtime/components/RadioGroup.vue.d.ts +17 -13
  135. package/dist/runtime/components/Select.d.vue.ts +254 -0
  136. package/dist/runtime/components/Select.vue +3 -3
  137. package/dist/runtime/components/Select.vue.d.ts +5 -5
  138. package/dist/runtime/components/SelectMenu.d.vue.ts +303 -0
  139. package/dist/runtime/components/SelectMenu.vue.d.ts +4 -4
  140. package/dist/runtime/components/Separator.d.vue.ts +54 -0
  141. package/dist/runtime/components/Skeleton.d.vue.ts +17 -0
  142. package/dist/runtime/components/Slideover.d.vue.ts +108 -0
  143. package/dist/runtime/components/Slider.d.vue.ts +57 -0
  144. package/dist/runtime/components/Stepper.d.vue.ts +87 -0
  145. package/dist/runtime/components/Switch.d.vue.ts +71 -0
  146. package/dist/runtime/components/Table.d.vue.ts +201 -0
  147. package/dist/runtime/components/Table.vue.d.ts +26 -26
  148. package/dist/runtime/components/Tabs.d.vue.ts +99 -0
  149. package/dist/runtime/components/Tabs.vue +10 -3
  150. package/dist/runtime/components/Tabs.vue.d.ts +2 -2
  151. package/dist/runtime/components/Textarea.d.vue.ts +74 -0
  152. package/dist/runtime/components/Timeline.d.vue.ts +71 -0
  153. package/dist/runtime/components/Toast.d.vue.ts +165 -0
  154. package/dist/runtime/components/Toaster.d.vue.ts +44 -0
  155. package/dist/runtime/components/Tooltip.d.vue.ts +57 -0
  156. package/dist/runtime/components/Tree.d.vue.ts +116 -0
  157. package/dist/runtime/components/Tree.vue +68 -40
  158. package/dist/runtime/components/Tree.vue.d.ts +1 -1
  159. package/dist/runtime/components/User.d.vue.ts +47 -0
  160. package/dist/runtime/components/color-mode/ColorModeAvatar.d.vue.ts +7 -0
  161. package/dist/runtime/components/color-mode/ColorModeButton.d.vue.ts +23 -0
  162. package/dist/runtime/components/color-mode/ColorModeImage.d.vue.ts +6 -0
  163. package/dist/runtime/components/color-mode/ColorModeSelect.d.vue.ts +5 -0
  164. package/dist/runtime/components/color-mode/ColorModeSwitch.d.vue.ts +5 -0
  165. package/dist/runtime/components/content/ContentNavigation.d.vue.ts +102 -0
  166. package/dist/runtime/components/content/ContentNavigation.vue +5 -4
  167. package/dist/runtime/components/content/ContentNavigation.vue.d.ts +2 -2
  168. package/dist/runtime/components/content/ContentSearch.d.vue.ts +114 -0
  169. package/dist/runtime/components/content/ContentSearch.vue +2 -2
  170. package/dist/runtime/components/content/ContentSearchButton.d.vue.ts +59 -0
  171. package/dist/runtime/components/content/ContentSearchButton.vue +2 -2
  172. package/dist/runtime/components/content/ContentSurround.d.vue.ts +59 -0
  173. package/dist/runtime/components/content/ContentToc.d.vue.ts +88 -0
  174. package/dist/runtime/components/locale/LocaleSelect.d.vue.ts +15 -0
  175. package/dist/runtime/components/prose/A.d.vue.ts +15 -0
  176. package/dist/runtime/components/prose/Accordion.d.vue.ts +16 -0
  177. package/dist/runtime/components/prose/AccordionItem.d.vue.ts +15 -0
  178. package/dist/runtime/components/prose/Badge.d.vue.ts +13 -0
  179. package/dist/runtime/components/prose/Blockquote.d.vue.ts +13 -0
  180. package/dist/runtime/components/prose/Callout.d.vue.ts +26 -0
  181. package/dist/runtime/components/prose/Card.d.vue.ts +29 -0
  182. package/dist/runtime/components/prose/CardGroup.d.vue.ts +13 -0
  183. package/dist/runtime/components/prose/Code.d.vue.ts +22 -0
  184. package/dist/runtime/components/prose/CodeCollapse.d.vue.ts +47 -0
  185. package/dist/runtime/components/prose/CodeGroup.d.vue.ts +37 -0
  186. package/dist/runtime/components/prose/CodeIcon.d.vue.ts +7 -0
  187. package/dist/runtime/components/prose/CodePreview.d.vue.ts +19 -0
  188. package/dist/runtime/components/prose/CodeTree.d.vue.ts +28 -0
  189. package/dist/runtime/components/prose/CodeTree.vue +38 -31
  190. package/dist/runtime/components/prose/Collapsible.d.vue.ts +39 -0
  191. package/dist/runtime/components/prose/Em.d.vue.ts +13 -0
  192. package/dist/runtime/components/prose/Field.d.vue.ts +39 -0
  193. package/dist/runtime/components/prose/FieldGroup.d.vue.ts +18 -0
  194. package/dist/runtime/components/prose/H1.d.vue.ts +19 -0
  195. package/dist/runtime/components/prose/H2.d.vue.ts +19 -0
  196. package/dist/runtime/components/prose/H3.d.vue.ts +19 -0
  197. package/dist/runtime/components/prose/H4.d.vue.ts +19 -0
  198. package/dist/runtime/components/prose/Hr.d.vue.ts +5 -0
  199. package/dist/runtime/components/prose/Icon.d.vue.ts +6 -0
  200. package/dist/runtime/components/prose/Img.d.vue.ts +21 -0
  201. package/dist/runtime/components/prose/Kbd.d.vue.ts +6 -0
  202. package/dist/runtime/components/prose/Li.d.vue.ts +13 -0
  203. package/dist/runtime/components/prose/Ol.d.vue.ts +13 -0
  204. package/dist/runtime/components/prose/P.d.vue.ts +13 -0
  205. package/dist/runtime/components/prose/Pre.d.vue.ts +26 -0
  206. package/dist/runtime/components/prose/Script.d.vue.ts +5 -0
  207. package/dist/runtime/components/prose/Steps.d.vue.ts +22 -0
  208. package/dist/runtime/components/prose/Strong.d.vue.ts +13 -0
  209. package/dist/runtime/components/prose/Table.d.vue.ts +18 -0
  210. package/dist/runtime/components/prose/Tabs.d.vue.ts +36 -0
  211. package/dist/runtime/components/prose/TabsItem.d.vue.ts +15 -0
  212. package/dist/runtime/components/prose/Tbody.d.vue.ts +13 -0
  213. package/dist/runtime/components/prose/Td.d.vue.ts +13 -0
  214. package/dist/runtime/components/prose/Th.d.vue.ts +13 -0
  215. package/dist/runtime/components/prose/Thead.d.vue.ts +13 -0
  216. package/dist/runtime/components/prose/Tr.d.vue.ts +13 -0
  217. package/dist/runtime/components/prose/Ul.d.vue.ts +13 -0
  218. package/dist/runtime/components/prose/callout/Caution.d.vue.ts +14 -0
  219. package/dist/runtime/components/prose/callout/Note.d.vue.ts +14 -0
  220. package/dist/runtime/components/prose/callout/Tip.d.vue.ts +14 -0
  221. package/dist/runtime/components/prose/callout/Warning.d.vue.ts +14 -0
  222. package/dist/runtime/composables/useFormField.d.ts +1 -0
  223. package/dist/runtime/composables/useFormField.js +1 -0
  224. package/dist/runtime/inertia/components/Link.d.vue.ts +63 -0
  225. package/dist/runtime/inertia/components/LinkBase.d.vue.ts +25 -0
  226. package/dist/runtime/locale/de_ch.d.ts +3 -0
  227. package/dist/runtime/locale/de_ch.js +129 -0
  228. package/dist/runtime/locale/id.js +1 -1
  229. package/dist/runtime/locale/index.d.ts +2 -0
  230. package/dist/runtime/locale/index.js +2 -0
  231. package/dist/runtime/locale/ka.d.ts +3 -0
  232. package/dist/runtime/locale/ka.js +132 -0
  233. package/dist/runtime/types/form.d.ts +9 -8
  234. package/dist/runtime/types/form.js +1 -3
  235. package/dist/runtime/types/index.d.ts +1 -0
  236. package/dist/runtime/types/index.js +1 -0
  237. package/dist/runtime/types/utils.d.ts +7 -3
  238. package/dist/runtime/utils/form.d.ts +2 -0
  239. package/dist/runtime/utils/form.js +28 -0
  240. package/dist/runtime/utils/fuse.d.ts +2 -1
  241. package/dist/runtime/utils/index.d.ts +3 -3
  242. package/dist/runtime/utils/index.js +6 -3
  243. package/dist/runtime/vue/components/Icon.d.vue.ts +6 -0
  244. package/dist/runtime/vue/components/Link.d.vue.ts +93 -0
  245. package/dist/runtime/vue/components/color-mode/ColorModeButton.d.vue.ts +16 -0
  246. package/dist/runtime/vue/components/color-mode/ColorModeSelect.d.vue.ts +5 -0
  247. package/dist/runtime/vue/components/color-mode/ColorModeSwitch.d.vue.ts +5 -0
  248. package/dist/shared/{ui.BEZXPd3d.mjs → ui.Bs5uUhtm.mjs} +17 -12
  249. package/dist/unplugin.mjs +1 -1
  250. package/dist/vite.mjs +1 -1
  251. package/package.json +21 -34
@@ -0,0 +1,68 @@
1
+ import type { AppConfig } from '@nuxt/schema';
2
+ import theme from '#build/ui/header';
3
+ import type { ButtonProps, DrawerProps, ModalProps, SlideoverProps } from '../types';
4
+ import type { ComponentConfig } from '../types/tv';
5
+ type Header = ComponentConfig<typeof theme, AppConfig, 'header'>;
6
+ type HeaderMode = 'modal' | 'slideover' | 'drawer';
7
+ type HeaderMenu<T> = T extends 'modal' ? ModalProps : T extends 'slideover' ? SlideoverProps : T extends 'drawer' ? DrawerProps : never;
8
+ export interface HeaderProps<T extends HeaderMode = HeaderMode> {
9
+ /**
10
+ * The element or component this component should render as.
11
+ * @defaultValue 'header'
12
+ */
13
+ as?: any;
14
+ title?: string;
15
+ to?: string;
16
+ /**
17
+ * The mode of the header menu.
18
+ * @defaultValue 'modal'
19
+ */
20
+ mode?: T;
21
+ /**
22
+ * The props for the header menu component.
23
+ */
24
+ menu?: HeaderMenu<T>;
25
+ /**
26
+ * Customize the toggle button to open the header menu displayed when the `content` slot is used.
27
+ * `{ color: 'neutral', variant: 'ghost' }`{lang="ts-type"}
28
+ */
29
+ toggle?: boolean | Partial<ButtonProps>;
30
+ /**
31
+ * The side to render the toggle button on.
32
+ * @defaultValue 'right'
33
+ */
34
+ toggleSide?: 'left' | 'right';
35
+ class?: any;
36
+ ui?: Header['slots'];
37
+ }
38
+ export interface HeaderSlots {
39
+ title(props?: {}): any;
40
+ left(props?: {}): any;
41
+ default(props?: {}): any;
42
+ right(props?: {}): any;
43
+ toggle(props: {
44
+ open: boolean;
45
+ toggle: () => void;
46
+ }): any;
47
+ top(props?: {}): any;
48
+ bottom(props?: {}): any;
49
+ body(props?: {}): any;
50
+ content(props?: {}): any;
51
+ }
52
+ declare const _default: <T extends HeaderMode>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
53
+ props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
54
+ readonly "onUpdate:open"?: ((value: boolean) => any) | undefined;
55
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onUpdate:open"> & (HeaderProps<T> & {
56
+ open?: boolean;
57
+ }) & {}> & import("vue").PublicProps;
58
+ expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
59
+ attrs: any;
60
+ slots: HeaderSlots;
61
+ emit: (evt: "update:open", value: boolean) => void;
62
+ }>) => import("vue").VNode & {
63
+ __ctx?: Awaited<typeof __VLS_setup>;
64
+ };
65
+ export default _default;
66
+ type __VLS_PrettifyLocal<T> = {
67
+ [K in keyof T as K]: T[K];
68
+ } & {};
@@ -0,0 +1,8 @@
1
+ export interface IconProps {
2
+ name: string | object;
3
+ mode?: 'svg' | 'css';
4
+ size?: string | number;
5
+ customize?: (content: string, name?: string, prefix?: string, provider?: string) => string;
6
+ }
7
+ declare const _default: import("vue").DefineComponent<IconProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<IconProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
8
+ export default _default;
@@ -0,0 +1,74 @@
1
+ import type { InputHTMLAttributes } from 'vue';
2
+ import type { AppConfig } from '@nuxt/schema';
3
+ import theme from '#build/ui/input';
4
+ import type { UseComponentIconsProps } from '../composables/useComponentIcons';
5
+ import type { ModelModifiers } from '../types/input';
6
+ import type { AcceptableValue } from '../types/utils';
7
+ import type { ComponentConfig } from '../types/tv';
8
+ type Input = ComponentConfig<typeof theme, AppConfig, 'input'>;
9
+ export type InputValue = AcceptableValue;
10
+ export interface InputProps<T extends InputValue = InputValue> extends UseComponentIconsProps {
11
+ /**
12
+ * The element or component this component should render as.
13
+ * @defaultValue 'div'
14
+ */
15
+ as?: any;
16
+ id?: string;
17
+ name?: string;
18
+ type?: InputHTMLAttributes['type'];
19
+ /** The placeholder text when the input is empty. */
20
+ placeholder?: string;
21
+ /**
22
+ * @defaultValue 'primary'
23
+ */
24
+ color?: Input['variants']['color'];
25
+ /**
26
+ * @defaultValue 'outline'
27
+ */
28
+ variant?: Input['variants']['variant'];
29
+ /**
30
+ * @defaultValue 'md'
31
+ */
32
+ size?: Input['variants']['size'];
33
+ required?: boolean;
34
+ autocomplete?: InputHTMLAttributes['autocomplete'];
35
+ autofocus?: boolean;
36
+ autofocusDelay?: number;
37
+ disabled?: boolean;
38
+ /** Highlight the ring color like a focus state. */
39
+ highlight?: boolean;
40
+ modelValue?: T;
41
+ defaultValue?: T;
42
+ modelModifiers?: ModelModifiers;
43
+ class?: any;
44
+ ui?: Input['slots'];
45
+ }
46
+ export interface InputEmits<T extends InputValue = InputValue> {
47
+ 'update:modelValue': [value: T];
48
+ 'blur': [event: FocusEvent];
49
+ 'change': [event: Event];
50
+ }
51
+ export interface InputSlots {
52
+ leading(props?: {}): any;
53
+ default(props?: {}): any;
54
+ trailing(props?: {}): any;
55
+ }
56
+ declare const _default: <T extends InputValue>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
57
+ props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
58
+ readonly onBlur?: ((event: FocusEvent) => any) | undefined;
59
+ readonly onChange?: ((event: Event) => any) | undefined;
60
+ readonly "onUpdate:modelValue"?: ((value: T) => any) | undefined;
61
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onBlur" | "onChange" | "onUpdate:modelValue"> & InputProps<T> & {}> & import("vue").PublicProps;
62
+ expose(exposed: import("vue").ShallowUnwrapRef<{
63
+ inputRef: import("vue").Ref<HTMLInputElement | null, HTMLInputElement | null>;
64
+ }>): void;
65
+ attrs: any;
66
+ slots: InputSlots;
67
+ emit: ((evt: "blur", event: FocusEvent) => void) & ((evt: "change", event: Event) => void) & ((evt: "update:modelValue", value: T) => void);
68
+ }>) => import("vue").VNode & {
69
+ __ctx?: Awaited<typeof __VLS_setup>;
70
+ };
71
+ export default _default;
72
+ type __VLS_PrettifyLocal<T> = {
73
+ [K in keyof T as K]: T[K];
74
+ } & {};
@@ -6,7 +6,8 @@ import type { ModelModifiers } from '../types/input';
6
6
  import type { AcceptableValue } from '../types/utils';
7
7
  import type { ComponentConfig } from '../types/tv';
8
8
  type Input = ComponentConfig<typeof theme, AppConfig, 'input'>;
9
- export interface InputProps<T extends AcceptableValue = AcceptableValue> extends UseComponentIconsProps {
9
+ export type InputValue = AcceptableValue;
10
+ export interface InputProps<T extends InputValue = InputValue> extends UseComponentIconsProps {
10
11
  /**
11
12
  * The element or component this component should render as.
12
13
  * @defaultValue 'div'
@@ -42,7 +43,7 @@ export interface InputProps<T extends AcceptableValue = AcceptableValue> extends
42
43
  class?: any;
43
44
  ui?: Input['slots'];
44
45
  }
45
- export interface InputEmits<T extends AcceptableValue = AcceptableValue> {
46
+ export interface InputEmits<T extends InputValue = InputValue> {
46
47
  'update:modelValue': [value: T];
47
48
  'blur': [event: FocusEvent];
48
49
  'change': [event: Event];
@@ -52,7 +53,7 @@ export interface InputSlots {
52
53
  default(props?: {}): any;
53
54
  trailing(props?: {}): any;
54
55
  }
55
- declare const _default: <T extends AcceptableValue>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
56
+ declare const _default: <T extends InputValue>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
56
57
  props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
57
58
  readonly onBlur?: ((event: FocusEvent) => any) | undefined;
58
59
  readonly onChange?: ((event: Event) => any) | undefined;
@@ -0,0 +1,330 @@
1
+ import { nextTick } from 'vue';
2
+ import type { InputHTMLAttributes } from 'vue';
3
+ import type { ComboboxRootProps, ComboboxRootEmits, ComboboxContentProps, ComboboxContentEmits, ComboboxArrowProps } from 'reka-ui';
4
+ import type { AppConfig } from '@nuxt/schema';
5
+ import theme from '#build/ui/input-menu';
6
+ import type { UseComponentIconsProps } from '../composables/useComponentIcons';
7
+ import type { AvatarProps, ChipProps, IconProps } from '../types';
8
+ import type { AcceptableValue, ArrayOrNested, GetItemKeys, GetModelValue, GetModelValueEmits, NestedItem, EmitsToProps } from '../types/utils';
9
+ import type { ComponentConfig } from '../types/tv';
10
+ type InputMenu = ComponentConfig<typeof theme, AppConfig, 'inputMenu'>;
11
+ export type InputMenuValue = AcceptableValue;
12
+ export type InputMenuItem = InputMenuValue | {
13
+ label?: string;
14
+ /**
15
+ * @IconifyIcon
16
+ */
17
+ icon?: IconProps['name'];
18
+ avatar?: AvatarProps;
19
+ chip?: ChipProps;
20
+ /**
21
+ * The item type.
22
+ * @defaultValue 'item'
23
+ */
24
+ type?: 'label' | 'separator' | 'item';
25
+ disabled?: boolean;
26
+ onSelect?(e?: Event): void;
27
+ class?: any;
28
+ ui?: Pick<InputMenu['slots'], 'tagsItem' | 'tagsItemText' | 'tagsItemDelete' | 'tagsItemDeleteIcon' | 'label' | 'separator' | 'item' | 'itemLeadingIcon' | 'itemLeadingAvatarSize' | 'itemLeadingAvatar' | 'itemLeadingChip' | 'itemLeadingChipSize' | 'itemLabel' | 'itemTrailing' | 'itemTrailingIcon'>;
29
+ [key: string]: any;
30
+ };
31
+ 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 {
32
+ /**
33
+ * The element or component this component should render as.
34
+ * @defaultValue 'div'
35
+ */
36
+ as?: any;
37
+ id?: string;
38
+ type?: InputHTMLAttributes['type'];
39
+ /** The placeholder text when the input is empty. */
40
+ placeholder?: string;
41
+ /**
42
+ * @defaultValue 'primary'
43
+ */
44
+ color?: InputMenu['variants']['color'];
45
+ /**
46
+ * @defaultValue 'outline'
47
+ */
48
+ variant?: InputMenu['variants']['variant'];
49
+ /**
50
+ * @defaultValue 'md'
51
+ */
52
+ size?: InputMenu['variants']['size'];
53
+ required?: boolean;
54
+ autofocus?: boolean;
55
+ autofocusDelay?: number;
56
+ /**
57
+ * The icon displayed to open the menu.
58
+ * @defaultValue appConfig.ui.icons.chevronDown
59
+ * @IconifyIcon
60
+ */
61
+ trailingIcon?: IconProps['name'];
62
+ /**
63
+ * The icon displayed when an item is selected.
64
+ * @defaultValue appConfig.ui.icons.check
65
+ * @IconifyIcon
66
+ */
67
+ selectedIcon?: IconProps['name'];
68
+ /**
69
+ * The icon displayed to delete a tag.
70
+ * Works only when `multiple` is `true`.
71
+ * @defaultValue appConfig.ui.icons.close
72
+ * @IconifyIcon
73
+ */
74
+ deleteIcon?: IconProps['name'];
75
+ /**
76
+ * The content of the menu.
77
+ * @defaultValue { side: 'bottom', sideOffset: 8, collisionPadding: 8, position: 'popper' }
78
+ */
79
+ content?: Omit<ComboboxContentProps, 'as' | 'asChild' | 'forceMount'> & Partial<EmitsToProps<ComboboxContentEmits>>;
80
+ /**
81
+ * Display an arrow alongside the menu.
82
+ * @defaultValue false
83
+ */
84
+ arrow?: boolean | Omit<ComboboxArrowProps, 'as' | 'asChild'>;
85
+ /**
86
+ * Render the menu in a portal.
87
+ * @defaultValue true
88
+ */
89
+ portal?: boolean | string | HTMLElement;
90
+ /**
91
+ * When `items` is an array of objects, select the field to use as the value instead of the object itself.
92
+ * @defaultValue undefined
93
+ */
94
+ valueKey?: VK;
95
+ /**
96
+ * When `items` is an array of objects, select the field to use as the label.
97
+ * @defaultValue 'label'
98
+ */
99
+ labelKey?: GetItemKeys<T>;
100
+ items?: T;
101
+ /** The value of the InputMenu when initially rendered. Use when you do not need to control the state of the InputMenu. */
102
+ defaultValue?: GetModelValue<T, VK, M>;
103
+ /** The controlled value of the InputMenu. Can be binded-with with `v-model`. */
104
+ modelValue?: GetModelValue<T, VK, M>;
105
+ /** Whether multiple options can be selected or not. */
106
+ multiple?: M & boolean;
107
+ /** Highlight the ring color like a focus state. */
108
+ highlight?: boolean;
109
+ /**
110
+ * Determines if custom user input that does not exist in options can be added.
111
+ * @defaultValue false
112
+ */
113
+ createItem?: boolean | 'always' | {
114
+ position?: 'top' | 'bottom';
115
+ when?: 'empty' | 'always';
116
+ };
117
+ /**
118
+ * Fields to filter items by.
119
+ * @defaultValue [labelKey]
120
+ */
121
+ filterFields?: string[];
122
+ /**
123
+ * When `true`, disable the default filters, useful for custom filtering (useAsyncData, useFetch, etc.).
124
+ * @defaultValue false
125
+ */
126
+ ignoreFilter?: boolean;
127
+ class?: any;
128
+ ui?: InputMenu['slots'];
129
+ }
130
+ export type InputMenuEmits<A extends ArrayOrNested<InputMenuItem>, VK extends GetItemKeys<A> | undefined, M extends boolean> = Pick<ComboboxRootEmits, 'update:open'> & {
131
+ 'change': [event: Event];
132
+ 'blur': [event: FocusEvent];
133
+ 'focus': [event: FocusEvent];
134
+ 'create': [item: string];
135
+ /** Event handler when highlighted element changes. */
136
+ 'highlight': [
137
+ payload: {
138
+ ref: HTMLElement;
139
+ value: GetModelValue<A, VK, M>;
140
+ } | undefined
141
+ ];
142
+ 'remove-tag': [item: GetModelValue<A, VK, M>];
143
+ } & GetModelValueEmits<A, VK, M>;
144
+ type SlotProps<T extends InputMenuItem> = (props: {
145
+ item: T;
146
+ index: number;
147
+ }) => any;
148
+ export interface InputMenuSlots<A extends ArrayOrNested<InputMenuItem> = ArrayOrNested<InputMenuItem>, VK extends GetItemKeys<A> | undefined = undefined, M extends boolean = false, T extends NestedItem<A> = NestedItem<A>> {
149
+ 'leading'(props: {
150
+ modelValue?: GetModelValue<A, VK, M>;
151
+ open: boolean;
152
+ ui: {
153
+ [K in keyof Required<InputMenu['slots']>]: (props?: Record<string, any>) => string;
154
+ };
155
+ }): any;
156
+ 'trailing'(props: {
157
+ modelValue?: GetModelValue<A, VK, M>;
158
+ open: boolean;
159
+ ui: {
160
+ [K in keyof Required<InputMenu['slots']>]: (props?: Record<string, any>) => string;
161
+ };
162
+ }): any;
163
+ 'empty'(props: {
164
+ searchTerm?: string;
165
+ }): any;
166
+ 'item': SlotProps<T>;
167
+ 'item-leading': SlotProps<T>;
168
+ 'item-label': SlotProps<T>;
169
+ 'item-trailing': SlotProps<T>;
170
+ 'tags-item-text': SlotProps<T>;
171
+ 'tags-item-delete': SlotProps<T>;
172
+ 'content-top': (props?: {}) => any;
173
+ 'content-bottom': (props?: {}) => any;
174
+ 'create-item-label'(props: {
175
+ item: string;
176
+ }): any;
177
+ }
178
+ declare const _default: <T extends ArrayOrNested<InputMenuItem>, VK extends GetItemKeys<T> | undefined = undefined, M extends boolean = false>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
179
+ props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
180
+ readonly onBlur?: ((event: FocusEvent) => any) | undefined;
181
+ readonly onChange?: ((event: Event) => any) | undefined;
182
+ readonly onFocus?: ((event: FocusEvent) => any) | undefined;
183
+ readonly onCreate?: ((item: string) => any) | undefined;
184
+ readonly "onUpdate:open"?: ((value: boolean) => any) | undefined;
185
+ readonly "onUpdate:modelValue"?: ((value: GetModelValue<T, VK, M>) => any) | undefined;
186
+ readonly onHighlight?: ((payload: {
187
+ ref: HTMLElement;
188
+ value: GetModelValue<T, VK, M>;
189
+ } | undefined) => any) | undefined;
190
+ readonly "onUpdate:searchTerm"?: ((value: string) => any) | undefined;
191
+ readonly "onRemove-tag"?: ((item: GetModelValue<T, VK, M>) => any) | undefined;
192
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, "onFocus" | "onBlur" | "onChange" | "onUpdate:open" | "onUpdate:modelValue" | "onCreate" | "onHighlight" | "onUpdate:searchTerm" | "onRemove-tag"> & (InputMenuProps<T, VK, M> & {
193
+ searchTerm?: string;
194
+ }) & {}> & import("vue").PublicProps;
195
+ expose(exposed: import("vue").ShallowUnwrapRef<{
196
+ inputRef: import("vue").Ref<({
197
+ $: import("vue").ComponentInternalInstance;
198
+ $data: {};
199
+ $props: {
200
+ readonly displayValue?: ((val: any) => string) | undefined;
201
+ readonly modelValue?: string | undefined;
202
+ readonly autoFocus?: boolean | undefined;
203
+ readonly disabled?: boolean | undefined;
204
+ readonly asChild?: boolean | undefined;
205
+ readonly as?: (import("reka-ui").AsTag | import("vue").Component) | undefined;
206
+ readonly "onUpdate:modelValue"?: ((args_0: string) => any) | undefined | undefined;
207
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
208
+ $attrs: {
209
+ [x: string]: unknown;
210
+ };
211
+ $refs: {
212
+ [x: string]: unknown;
213
+ };
214
+ $slots: Readonly<{
215
+ [name: string]: import("vue").Slot<any> | undefined;
216
+ }>;
217
+ $root: import("vue").ComponentPublicInstance | null;
218
+ $parent: import("vue").ComponentPublicInstance | null;
219
+ $host: Element | null;
220
+ $emit: (event: "update:modelValue", args_0: string) => void;
221
+ $el: any;
222
+ $options: import("vue").ComponentOptionsBase<Readonly<import("reka-ui").ComboboxInputProps> & Readonly<{
223
+ "onUpdate:modelValue"?: ((args_0: string) => any) | undefined;
224
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
225
+ "update:modelValue": (args_0: string) => any;
226
+ }, string, {
227
+ as: import("reka-ui").AsTag | import("vue").Component;
228
+ }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & {
229
+ beforeCreate?: (() => void) | (() => void)[];
230
+ created?: (() => void) | (() => void)[];
231
+ beforeMount?: (() => void) | (() => void)[];
232
+ mounted?: (() => void) | (() => void)[];
233
+ beforeUpdate?: (() => void) | (() => void)[];
234
+ updated?: (() => void) | (() => void)[];
235
+ activated?: (() => void) | (() => void)[];
236
+ deactivated?: (() => void) | (() => void)[];
237
+ beforeDestroy?: (() => void) | (() => void)[];
238
+ beforeUnmount?: (() => void) | (() => void)[];
239
+ destroyed?: (() => void) | (() => void)[];
240
+ unmounted?: (() => void) | (() => void)[];
241
+ renderTracked?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
242
+ renderTriggered?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
243
+ errorCaptured?: ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void)[];
244
+ };
245
+ $forceUpdate: () => void;
246
+ $nextTick: typeof nextTick;
247
+ $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;
248
+ } & Readonly<{
249
+ as: import("reka-ui").AsTag | import("vue").Component;
250
+ }> & Omit<Readonly<import("reka-ui").ComboboxInputProps> & Readonly<{
251
+ "onUpdate:modelValue"?: ((args_0: string) => any) | undefined;
252
+ }>, "as"> & import("vue").ShallowUnwrapRef<{}> & {} & import("vue").ComponentCustomProperties & {} & {
253
+ $slots: {
254
+ default?: (props: {}) => any;
255
+ };
256
+ }) | null, ({
257
+ $: import("vue").ComponentInternalInstance;
258
+ $data: {};
259
+ $props: {
260
+ readonly displayValue?: ((val: any) => string) | undefined;
261
+ readonly modelValue?: string | undefined;
262
+ readonly autoFocus?: boolean | undefined;
263
+ readonly disabled?: boolean | undefined;
264
+ readonly asChild?: boolean | undefined;
265
+ readonly as?: (import("reka-ui").AsTag | import("vue").Component) | undefined;
266
+ readonly "onUpdate:modelValue"?: ((args_0: string) => any) | undefined | undefined;
267
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
268
+ $attrs: {
269
+ [x: string]: unknown;
270
+ };
271
+ $refs: {
272
+ [x: string]: unknown;
273
+ };
274
+ $slots: Readonly<{
275
+ [name: string]: import("vue").Slot<any> | undefined;
276
+ }>;
277
+ $root: import("vue").ComponentPublicInstance | null;
278
+ $parent: import("vue").ComponentPublicInstance | null;
279
+ $host: Element | null;
280
+ $emit: (event: "update:modelValue", args_0: string) => void;
281
+ $el: any;
282
+ $options: import("vue").ComponentOptionsBase<Readonly<import("reka-ui").ComboboxInputProps> & Readonly<{
283
+ "onUpdate:modelValue"?: ((args_0: string) => any) | undefined;
284
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
285
+ "update:modelValue": (args_0: string) => any;
286
+ }, string, {
287
+ as: import("reka-ui").AsTag | import("vue").Component;
288
+ }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & {
289
+ beforeCreate?: (() => void) | (() => void)[];
290
+ created?: (() => void) | (() => void)[];
291
+ beforeMount?: (() => void) | (() => void)[];
292
+ mounted?: (() => void) | (() => void)[];
293
+ beforeUpdate?: (() => void) | (() => void)[];
294
+ updated?: (() => void) | (() => void)[];
295
+ activated?: (() => void) | (() => void)[];
296
+ deactivated?: (() => void) | (() => void)[];
297
+ beforeDestroy?: (() => void) | (() => void)[];
298
+ beforeUnmount?: (() => void) | (() => void)[];
299
+ destroyed?: (() => void) | (() => void)[];
300
+ unmounted?: (() => void) | (() => void)[];
301
+ renderTracked?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
302
+ renderTriggered?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
303
+ errorCaptured?: ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void)[];
304
+ };
305
+ $forceUpdate: () => void;
306
+ $nextTick: typeof nextTick;
307
+ $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;
308
+ } & Readonly<{
309
+ as: import("reka-ui").AsTag | import("vue").Component;
310
+ }> & Omit<Readonly<import("reka-ui").ComboboxInputProps> & Readonly<{
311
+ "onUpdate:modelValue"?: ((args_0: string) => any) | undefined;
312
+ }>, "as"> & import("vue").ShallowUnwrapRef<{}> & {} & import("vue").ComponentCustomProperties & {} & {
313
+ $slots: {
314
+ default?: (props: {}) => any;
315
+ };
316
+ }) | null>;
317
+ }>): void;
318
+ attrs: any;
319
+ slots: InputMenuSlots<T, VK, M, NestedItem<T>>;
320
+ emit: (((evt: "blur", event: FocusEvent) => void) & ((evt: "change", event: Event) => void) & ((evt: "focus", event: FocusEvent) => void) & ((evt: "create", item: string) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "update:modelValue", value: GetModelValue<T, VK, M>) => void) & ((evt: "highlight", payload: {
321
+ ref: HTMLElement;
322
+ value: GetModelValue<T, VK, M>;
323
+ } | undefined) => void) & ((evt: "remove-tag", item: GetModelValue<T, VK, M>) => void)) & ((evt: "update:searchTerm", value: string) => void);
324
+ }>) => import("vue").VNode & {
325
+ __ctx?: Awaited<typeof __VLS_setup>;
326
+ };
327
+ export default _default;
328
+ type __VLS_PrettifyLocal<T> = {
329
+ [K in keyof T as K]: T[K];
330
+ } & {};
@@ -92,6 +92,7 @@ const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.inputMenu ||
92
92
  multiple: props.multiple,
93
93
  fieldGroup: orientation.value
94
94
  }));
95
+ const items = computed(() => groups.value.flatMap((group) => group));
95
96
  function displayValue(value) {
96
97
  return getDisplayValue(items.value, value, {
97
98
  labelKey: props.labelKey,
@@ -101,7 +102,6 @@ function displayValue(value) {
101
102
  const groups = computed(
102
103
  () => props.items?.length ? isArrayOfArray(props.items) ? props.items : [props.items] : []
103
104
  );
104
- const items = computed(() => groups.value.flatMap((group) => group));
105
105
  const filteredGroups = computed(() => {
106
106
  if (props.ignoreFilter || !searchTerm.value) {
107
107
  return groups.value;
@@ -8,7 +8,8 @@ import type { AvatarProps, ChipProps, IconProps } from '../types';
8
8
  import type { AcceptableValue, ArrayOrNested, GetItemKeys, GetModelValue, GetModelValueEmits, NestedItem, EmitsToProps } from '../types/utils';
9
9
  import type { ComponentConfig } from '../types/tv';
10
10
  type InputMenu = ComponentConfig<typeof theme, AppConfig, 'inputMenu'>;
11
- interface _InputMenuItem {
11
+ export type InputMenuValue = AcceptableValue;
12
+ export type InputMenuItem = InputMenuValue | {
12
13
  label?: string;
13
14
  /**
14
15
  * @IconifyIcon
@@ -26,8 +27,7 @@ interface _InputMenuItem {
26
27
  class?: any;
27
28
  ui?: Pick<InputMenu['slots'], 'tagsItem' | 'tagsItemText' | 'tagsItemDelete' | 'tagsItemDeleteIcon' | 'label' | 'separator' | 'item' | 'itemLeadingIcon' | 'itemLeadingAvatarSize' | 'itemLeadingAvatar' | 'itemLeadingChip' | 'itemLeadingChipSize' | 'itemLabel' | 'itemTrailing' | 'itemTrailingIcon'>;
28
29
  [key: string]: any;
29
- }
30
- export type InputMenuItem = _InputMenuItem | AcceptableValue | boolean;
30
+ };
31
31
  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 {
32
32
  /**
33
33
  * The element or component this component should render as.
@@ -96,7 +96,7 @@ export interface InputMenuProps<T extends ArrayOrNested<InputMenuItem> = ArrayOr
96
96
  * When `items` is an array of objects, select the field to use as the label.
97
97
  * @defaultValue 'label'
98
98
  */
99
- labelKey?: keyof NestedItem<T>;
99
+ labelKey?: GetItemKeys<T>;
100
100
  items?: T;
101
101
  /** The value of the InputMenu when initially rendered. Use when you do not need to control the state of the InputMenu. */
102
102
  defaultValue?: GetModelValue<T, VK, M>;