@nuxt/ui 4.2.1 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (463) hide show
  1. package/.nuxt/ui.css +2 -0
  2. package/README.md +6 -5
  3. package/cli/package.json +1 -1
  4. package/dist/module.json +1 -1
  5. package/dist/module.mjs +4 -4
  6. package/dist/runtime/components/Accordion.d.vue.ts +16 -7
  7. package/dist/runtime/components/Accordion.vue +2 -1
  8. package/dist/runtime/components/Accordion.vue.d.ts +16 -7
  9. package/dist/runtime/components/Alert.d.vue.ts +4 -4
  10. package/dist/runtime/components/Alert.vue.d.ts +4 -4
  11. package/dist/runtime/components/App.d.vue.ts +10 -6
  12. package/dist/runtime/components/App.vue.d.ts +10 -6
  13. package/dist/runtime/components/AuthForm.d.vue.ts +53 -11
  14. package/dist/runtime/components/AuthForm.vue.d.ts +53 -11
  15. package/dist/runtime/components/Avatar.d.vue.ts +2 -2
  16. package/dist/runtime/components/Avatar.vue.d.ts +2 -2
  17. package/dist/runtime/components/AvatarGroup.d.vue.ts +1 -1
  18. package/dist/runtime/components/AvatarGroup.vue.d.ts +1 -1
  19. package/dist/runtime/components/Badge.d.vue.ts +2 -2
  20. package/dist/runtime/components/Badge.vue.d.ts +2 -2
  21. package/dist/runtime/components/Banner.d.vue.ts +5 -6
  22. package/dist/runtime/components/Banner.vue +49 -23
  23. package/dist/runtime/components/Banner.vue.d.ts +5 -6
  24. package/dist/runtime/components/BlogPost.d.vue.ts +2 -2
  25. package/dist/runtime/components/BlogPost.vue +0 -1
  26. package/dist/runtime/components/BlogPost.vue.d.ts +2 -2
  27. package/dist/runtime/components/BlogPosts.d.vue.ts +10 -6
  28. package/dist/runtime/components/BlogPosts.vue.d.ts +10 -6
  29. package/dist/runtime/components/Breadcrumb.d.vue.ts +10 -6
  30. package/dist/runtime/components/Breadcrumb.vue.d.ts +10 -6
  31. package/dist/runtime/components/Button.d.vue.ts +1 -1
  32. package/dist/runtime/components/Button.vue.d.ts +1 -1
  33. package/dist/runtime/components/Calendar.d.vue.ts +17 -12
  34. package/dist/runtime/components/Calendar.vue +13 -2
  35. package/dist/runtime/components/Calendar.vue.d.ts +17 -12
  36. package/dist/runtime/components/Card.d.vue.ts +1 -1
  37. package/dist/runtime/components/Card.vue.d.ts +1 -1
  38. package/dist/runtime/components/Carousel.d.vue.ts +14 -10
  39. package/dist/runtime/components/Carousel.vue +22 -0
  40. package/dist/runtime/components/Carousel.vue.d.ts +14 -10
  41. package/dist/runtime/components/ChangelogVersion.d.vue.ts +2 -2
  42. package/dist/runtime/components/ChangelogVersion.vue +0 -1
  43. package/dist/runtime/components/ChangelogVersion.vue.d.ts +2 -2
  44. package/dist/runtime/components/ChangelogVersions.d.vue.ts +14 -8
  45. package/dist/runtime/components/ChangelogVersions.vue +3 -2
  46. package/dist/runtime/components/ChangelogVersions.vue.d.ts +14 -8
  47. package/dist/runtime/components/ChatMessage.d.vue.ts +2 -2
  48. package/dist/runtime/components/ChatMessage.vue.d.ts +2 -2
  49. package/dist/runtime/components/ChatMessages.d.vue.ts +5 -5
  50. package/dist/runtime/components/ChatMessages.vue.d.ts +5 -5
  51. package/dist/runtime/components/ChatPalette.d.vue.ts +1 -1
  52. package/dist/runtime/components/ChatPalette.vue.d.ts +1 -1
  53. package/dist/runtime/components/ChatPrompt.d.vue.ts +3 -3
  54. package/dist/runtime/components/ChatPrompt.vue.d.ts +3 -3
  55. package/dist/runtime/components/ChatPromptSubmit.d.vue.ts +7 -7
  56. package/dist/runtime/components/ChatPromptSubmit.vue +1 -20
  57. package/dist/runtime/components/ChatPromptSubmit.vue.d.ts +7 -7
  58. package/dist/runtime/components/Checkbox.d.vue.ts +2 -2
  59. package/dist/runtime/components/Checkbox.vue.d.ts +2 -2
  60. package/dist/runtime/components/CheckboxGroup.d.vue.ts +12 -8
  61. package/dist/runtime/components/CheckboxGroup.vue.d.ts +12 -8
  62. package/dist/runtime/components/Chip.d.vue.ts +2 -2
  63. package/dist/runtime/components/Chip.vue.d.ts +2 -2
  64. package/dist/runtime/components/Collapsible.d.vue.ts +2 -2
  65. package/dist/runtime/components/Collapsible.vue.d.ts +2 -2
  66. package/dist/runtime/components/ColorPicker.d.vue.ts +2 -2
  67. package/dist/runtime/components/ColorPicker.vue.d.ts +2 -2
  68. package/dist/runtime/components/CommandPalette.d.vue.ts +31 -13
  69. package/dist/runtime/components/CommandPalette.vue +26 -18
  70. package/dist/runtime/components/CommandPalette.vue.d.ts +31 -13
  71. package/dist/runtime/components/Container.d.vue.ts +1 -1
  72. package/dist/runtime/components/Container.vue.d.ts +1 -1
  73. package/dist/runtime/components/ContextMenu.d.vue.ts +17 -9
  74. package/dist/runtime/components/ContextMenu.vue.d.ts +17 -9
  75. package/dist/runtime/components/ContextMenuContent.d.vue.ts +11 -7
  76. package/dist/runtime/components/ContextMenuContent.vue +12 -13
  77. package/dist/runtime/components/ContextMenuContent.vue.d.ts +11 -7
  78. package/dist/runtime/components/DashboardGroup.d.vue.ts +2 -2
  79. package/dist/runtime/components/DashboardGroup.vue.d.ts +2 -2
  80. package/dist/runtime/components/DashboardNavbar.d.vue.ts +5 -5
  81. package/dist/runtime/components/DashboardNavbar.vue.d.ts +5 -5
  82. package/dist/runtime/components/DashboardPanel.d.vue.ts +2 -2
  83. package/dist/runtime/components/DashboardPanel.vue.d.ts +2 -2
  84. package/dist/runtime/components/DashboardResizeHandle.d.vue.ts +1 -1
  85. package/dist/runtime/components/DashboardResizeHandle.vue.d.ts +1 -1
  86. package/dist/runtime/components/DashboardSearch.d.vue.ts +10 -6
  87. package/dist/runtime/components/DashboardSearch.vue +3 -1
  88. package/dist/runtime/components/DashboardSearch.vue.d.ts +10 -6
  89. package/dist/runtime/components/DashboardSearchButton.d.vue.ts +5 -5
  90. package/dist/runtime/components/DashboardSearchButton.vue +1 -20
  91. package/dist/runtime/components/DashboardSearchButton.vue.d.ts +5 -5
  92. package/dist/runtime/components/DashboardSidebar.d.vue.ts +13 -9
  93. package/dist/runtime/components/DashboardSidebar.vue.d.ts +13 -9
  94. package/dist/runtime/components/DashboardSidebarCollapse.d.vue.ts +5 -5
  95. package/dist/runtime/components/DashboardSidebarCollapse.vue +1 -20
  96. package/dist/runtime/components/DashboardSidebarCollapse.vue.d.ts +5 -5
  97. package/dist/runtime/components/DashboardSidebarToggle.d.vue.ts +5 -5
  98. package/dist/runtime/components/DashboardSidebarToggle.vue +1 -20
  99. package/dist/runtime/components/DashboardSidebarToggle.vue.d.ts +5 -5
  100. package/dist/runtime/components/DashboardToolbar.d.vue.ts +1 -1
  101. package/dist/runtime/components/DashboardToolbar.vue.d.ts +1 -1
  102. package/dist/runtime/components/Drawer.d.vue.ts +3 -3
  103. package/dist/runtime/components/Drawer.vue.d.ts +3 -3
  104. package/dist/runtime/components/DropdownMenu.d.vue.ts +17 -9
  105. package/dist/runtime/components/DropdownMenu.vue.d.ts +17 -9
  106. package/dist/runtime/components/DropdownMenuContent.d.vue.ts +11 -7
  107. package/dist/runtime/components/DropdownMenuContent.vue +12 -13
  108. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +11 -7
  109. package/dist/runtime/components/Editor.d.vue.ts +101 -0
  110. package/dist/runtime/components/Editor.vue +199 -0
  111. package/dist/runtime/components/Editor.vue.d.ts +101 -0
  112. package/dist/runtime/components/EditorDragHandle.d.vue.ts +68 -0
  113. package/dist/runtime/components/EditorDragHandle.vue +127 -0
  114. package/dist/runtime/components/EditorDragHandle.vue.d.ts +68 -0
  115. package/dist/runtime/components/EditorEmojiMenu.d.vue.ts +41 -0
  116. package/dist/runtime/components/EditorEmojiMenu.vue +73 -0
  117. package/dist/runtime/components/EditorEmojiMenu.vue.d.ts +41 -0
  118. package/dist/runtime/components/EditorMentionMenu.d.vue.ts +49 -0
  119. package/dist/runtime/components/EditorMentionMenu.vue +79 -0
  120. package/dist/runtime/components/EditorMentionMenu.vue.d.ts +49 -0
  121. package/dist/runtime/components/EditorSuggestionMenu.d.vue.ts +58 -0
  122. package/dist/runtime/components/EditorSuggestionMenu.vue +83 -0
  123. package/dist/runtime/components/EditorSuggestionMenu.vue.d.ts +58 -0
  124. package/dist/runtime/components/EditorToolbar.d.vue.ts +92 -0
  125. package/dist/runtime/components/EditorToolbar.vue +242 -0
  126. package/dist/runtime/components/EditorToolbar.vue.d.ts +92 -0
  127. package/dist/runtime/components/Empty.d.vue.ts +1 -1
  128. package/dist/runtime/components/Empty.vue.d.ts +1 -1
  129. package/dist/runtime/components/Error.d.vue.ts +6 -5
  130. package/dist/runtime/components/Error.vue +1 -1
  131. package/dist/runtime/components/Error.vue.d.ts +6 -5
  132. package/dist/runtime/components/FieldGroup.d.vue.ts +2 -2
  133. package/dist/runtime/components/FieldGroup.vue.d.ts +2 -2
  134. package/dist/runtime/components/FileUpload.d.vue.ts +13 -9
  135. package/dist/runtime/components/FileUpload.vue +2 -2
  136. package/dist/runtime/components/FileUpload.vue.d.ts +13 -9
  137. package/dist/runtime/components/Footer.d.vue.ts +2 -2
  138. package/dist/runtime/components/Footer.vue.d.ts +2 -2
  139. package/dist/runtime/components/FooterColumns.d.vue.ts +10 -6
  140. package/dist/runtime/components/FooterColumns.vue.d.ts +10 -6
  141. package/dist/runtime/components/Form.d.vue.ts +11 -7
  142. package/dist/runtime/components/Form.vue.d.ts +11 -7
  143. package/dist/runtime/components/FormField.d.vue.ts +8 -1
  144. package/dist/runtime/components/FormField.vue +6 -5
  145. package/dist/runtime/components/FormField.vue.d.ts +8 -1
  146. package/dist/runtime/components/Header.d.vue.ts +13 -9
  147. package/dist/runtime/components/Header.vue.d.ts +13 -9
  148. package/dist/runtime/components/Icon.d.vue.ts +1 -1
  149. package/dist/runtime/components/Icon.vue.d.ts +1 -1
  150. package/dist/runtime/components/Input.d.vue.ts +14 -10
  151. package/dist/runtime/components/Input.vue.d.ts +14 -10
  152. package/dist/runtime/components/InputDate.d.vue.ts +13 -9
  153. package/dist/runtime/components/InputDate.vue.d.ts +13 -9
  154. package/dist/runtime/components/InputMenu.d.vue.ts +34 -13
  155. package/dist/runtime/components/InputMenu.vue +56 -11
  156. package/dist/runtime/components/InputMenu.vue.d.ts +34 -13
  157. package/dist/runtime/components/InputNumber.d.vue.ts +18 -14
  158. package/dist/runtime/components/InputNumber.vue +1 -1
  159. package/dist/runtime/components/InputNumber.vue.d.ts +18 -14
  160. package/dist/runtime/components/InputTags.d.vue.ts +13 -9
  161. package/dist/runtime/components/InputTags.vue.d.ts +13 -9
  162. package/dist/runtime/components/InputTime.d.vue.ts +4 -4
  163. package/dist/runtime/components/InputTime.vue.d.ts +4 -4
  164. package/dist/runtime/components/Kbd.d.vue.ts +2 -2
  165. package/dist/runtime/components/Kbd.vue.d.ts +2 -2
  166. package/dist/runtime/components/Link.d.vue.ts +8 -3
  167. package/dist/runtime/components/Link.vue.d.ts +8 -3
  168. package/dist/runtime/components/LinkBase.d.vue.ts +3 -3
  169. package/dist/runtime/components/LinkBase.vue.d.ts +3 -3
  170. package/dist/runtime/components/Main.d.vue.ts +4 -2
  171. package/dist/runtime/components/Main.vue +1 -1
  172. package/dist/runtime/components/Main.vue.d.ts +4 -2
  173. package/dist/runtime/components/Marquee.d.vue.ts +3 -3
  174. package/dist/runtime/components/Marquee.vue.d.ts +3 -3
  175. package/dist/runtime/components/Modal.d.vue.ts +7 -7
  176. package/dist/runtime/components/Modal.vue.d.ts +7 -7
  177. package/dist/runtime/components/NavigationMenu.d.vue.ts +17 -8
  178. package/dist/runtime/components/NavigationMenu.vue +3 -2
  179. package/dist/runtime/components/NavigationMenu.vue.d.ts +17 -8
  180. package/dist/runtime/components/Page.d.vue.ts +1 -1
  181. package/dist/runtime/components/Page.vue.d.ts +1 -1
  182. package/dist/runtime/components/PageAnchors.d.vue.ts +10 -6
  183. package/dist/runtime/components/PageAnchors.vue.d.ts +10 -6
  184. package/dist/runtime/components/PageAside.d.vue.ts +2 -2
  185. package/dist/runtime/components/PageAside.vue.d.ts +2 -2
  186. package/dist/runtime/components/PageBody.d.vue.ts +1 -1
  187. package/dist/runtime/components/PageBody.vue.d.ts +1 -1
  188. package/dist/runtime/components/PageCTA.d.vue.ts +2 -2
  189. package/dist/runtime/components/PageCTA.vue.d.ts +2 -2
  190. package/dist/runtime/components/PageCard.d.vue.ts +2 -2
  191. package/dist/runtime/components/PageCard.vue.d.ts +2 -2
  192. package/dist/runtime/components/PageColumns.d.vue.ts +1 -1
  193. package/dist/runtime/components/PageColumns.vue.d.ts +1 -1
  194. package/dist/runtime/components/PageFeature.d.vue.ts +2 -2
  195. package/dist/runtime/components/PageFeature.vue +2 -2
  196. package/dist/runtime/components/PageFeature.vue.d.ts +2 -2
  197. package/dist/runtime/components/PageGrid.d.vue.ts +1 -1
  198. package/dist/runtime/components/PageGrid.vue.d.ts +1 -1
  199. package/dist/runtime/components/PageHeader.d.vue.ts +1 -1
  200. package/dist/runtime/components/PageHeader.vue.d.ts +1 -1
  201. package/dist/runtime/components/PageHero.d.vue.ts +2 -2
  202. package/dist/runtime/components/PageHero.vue.d.ts +2 -2
  203. package/dist/runtime/components/PageLinks.d.vue.ts +10 -6
  204. package/dist/runtime/components/PageLinks.vue.d.ts +10 -6
  205. package/dist/runtime/components/PageList.d.vue.ts +2 -2
  206. package/dist/runtime/components/PageList.vue.d.ts +2 -2
  207. package/dist/runtime/components/PageLogos.d.vue.ts +2 -2
  208. package/dist/runtime/components/PageLogos.vue.d.ts +2 -2
  209. package/dist/runtime/components/PageSection.d.vue.ts +2 -2
  210. package/dist/runtime/components/PageSection.vue.d.ts +2 -2
  211. package/dist/runtime/components/Pagination.d.vue.ts +4 -5
  212. package/dist/runtime/components/Pagination.vue.d.ts +4 -5
  213. package/dist/runtime/components/PinInput.d.vue.ts +13 -9
  214. package/dist/runtime/components/PinInput.vue +1 -1
  215. package/dist/runtime/components/PinInput.vue.d.ts +13 -9
  216. package/dist/runtime/components/Popover.d.vue.ts +11 -7
  217. package/dist/runtime/components/Popover.vue.d.ts +11 -7
  218. package/dist/runtime/components/PricingPlan.d.vue.ts +2 -2
  219. package/dist/runtime/components/PricingPlan.vue.d.ts +2 -2
  220. package/dist/runtime/components/PricingPlans.d.vue.ts +10 -6
  221. package/dist/runtime/components/PricingPlans.vue.d.ts +10 -6
  222. package/dist/runtime/components/PricingTable.d.vue.ts +10 -6
  223. package/dist/runtime/components/PricingTable.vue.d.ts +10 -6
  224. package/dist/runtime/components/Progress.d.vue.ts +2 -2
  225. package/dist/runtime/components/Progress.vue.d.ts +2 -2
  226. package/dist/runtime/components/RadioGroup.d.vue.ts +12 -8
  227. package/dist/runtime/components/RadioGroup.vue.d.ts +12 -8
  228. package/dist/runtime/components/ScrollArea.d.vue.ts +85 -0
  229. package/dist/runtime/components/ScrollArea.vue +187 -0
  230. package/dist/runtime/components/ScrollArea.vue.d.ts +85 -0
  231. package/dist/runtime/components/Select.d.vue.ts +21 -9
  232. package/dist/runtime/components/Select.vue +24 -6
  233. package/dist/runtime/components/Select.vue.d.ts +21 -9
  234. package/dist/runtime/components/SelectMenu.d.vue.ts +34 -13
  235. package/dist/runtime/components/SelectMenu.vue +58 -12
  236. package/dist/runtime/components/SelectMenu.vue.d.ts +34 -13
  237. package/dist/runtime/components/Separator.d.vue.ts +4 -4
  238. package/dist/runtime/components/Separator.vue.d.ts +4 -4
  239. package/dist/runtime/components/Skeleton.d.vue.ts +2 -2
  240. package/dist/runtime/components/Skeleton.vue.d.ts +2 -2
  241. package/dist/runtime/components/Slideover.d.vue.ts +12 -7
  242. package/dist/runtime/components/Slideover.vue +3 -1
  243. package/dist/runtime/components/Slideover.vue.d.ts +12 -7
  244. package/dist/runtime/components/Slider.d.vue.ts +12 -8
  245. package/dist/runtime/components/Slider.vue +2 -2
  246. package/dist/runtime/components/Slider.vue.d.ts +12 -8
  247. package/dist/runtime/components/Stepper.d.vue.ts +21 -9
  248. package/dist/runtime/components/Stepper.vue +20 -16
  249. package/dist/runtime/components/Stepper.vue.d.ts +21 -9
  250. package/dist/runtime/components/Switch.d.vue.ts +2 -2
  251. package/dist/runtime/components/Switch.vue.d.ts +2 -2
  252. package/dist/runtime/components/Table.d.vue.ts +27 -23
  253. package/dist/runtime/components/Table.vue +55 -33
  254. package/dist/runtime/components/Table.vue.d.ts +27 -23
  255. package/dist/runtime/components/Tabs.d.vue.ts +17 -8
  256. package/dist/runtime/components/Tabs.vue +5 -4
  257. package/dist/runtime/components/Tabs.vue.d.ts +17 -8
  258. package/dist/runtime/components/Textarea.d.vue.ts +14 -10
  259. package/dist/runtime/components/Textarea.vue.d.ts +14 -10
  260. package/dist/runtime/components/Timeline.d.vue.ts +24 -10
  261. package/dist/runtime/components/Timeline.vue +26 -17
  262. package/dist/runtime/components/Timeline.vue.d.ts +24 -10
  263. package/dist/runtime/components/Toast.d.vue.ts +5 -5
  264. package/dist/runtime/components/Toast.vue.d.ts +5 -5
  265. package/dist/runtime/components/Toaster.d.vue.ts +2 -2
  266. package/dist/runtime/components/Toaster.vue.d.ts +2 -2
  267. package/dist/runtime/components/Tooltip.d.vue.ts +2 -2
  268. package/dist/runtime/components/Tooltip.vue.d.ts +2 -2
  269. package/dist/runtime/components/Tree.d.vue.ts +13 -9
  270. package/dist/runtime/components/Tree.vue.d.ts +13 -9
  271. package/dist/runtime/components/User.d.vue.ts +2 -2
  272. package/dist/runtime/components/User.vue +0 -1
  273. package/dist/runtime/components/User.vue.d.ts +2 -2
  274. package/dist/runtime/components/color-mode/ColorModeAvatar.d.vue.ts +1 -1
  275. package/dist/runtime/components/color-mode/ColorModeAvatar.vue.d.ts +1 -1
  276. package/dist/runtime/components/color-mode/ColorModeButton.d.vue.ts +5 -5
  277. package/dist/runtime/components/color-mode/ColorModeButton.vue +3 -22
  278. package/dist/runtime/components/color-mode/ColorModeButton.vue.d.ts +5 -5
  279. package/dist/runtime/components/color-mode/ColorModeImage.d.vue.ts +1 -1
  280. package/dist/runtime/components/color-mode/ColorModeImage.vue.d.ts +1 -1
  281. package/dist/runtime/components/color-mode/ColorModeSelect.d.vue.ts +2 -2
  282. package/dist/runtime/components/color-mode/ColorModeSelect.vue +5 -0
  283. package/dist/runtime/components/color-mode/ColorModeSelect.vue.d.ts +2 -2
  284. package/dist/runtime/components/color-mode/ColorModeSwitch.d.vue.ts +1 -1
  285. package/dist/runtime/components/color-mode/ColorModeSwitch.vue.d.ts +1 -1
  286. package/dist/runtime/components/content/ContentNavigation.d.vue.ts +11 -7
  287. package/dist/runtime/components/content/ContentNavigation.vue.d.ts +11 -7
  288. package/dist/runtime/components/content/ContentSearch.d.vue.ts +18 -10
  289. package/dist/runtime/components/content/ContentSearch.vue +3 -1
  290. package/dist/runtime/components/content/ContentSearch.vue.d.ts +18 -10
  291. package/dist/runtime/components/content/ContentSearchButton.d.vue.ts +5 -5
  292. package/dist/runtime/components/content/ContentSearchButton.vue +1 -20
  293. package/dist/runtime/components/content/ContentSearchButton.vue.d.ts +5 -5
  294. package/dist/runtime/components/content/ContentSurround.d.vue.ts +10 -6
  295. package/dist/runtime/components/content/ContentSurround.vue +1 -1
  296. package/dist/runtime/components/content/ContentSurround.vue.d.ts +10 -6
  297. package/dist/runtime/components/content/ContentToc.d.vue.ts +11 -7
  298. package/dist/runtime/components/content/ContentToc.vue.d.ts +11 -7
  299. package/dist/runtime/components/locale/LocaleSelect.d.vue.ts +2 -2
  300. package/dist/runtime/components/locale/LocaleSelect.vue +14 -3
  301. package/dist/runtime/components/locale/LocaleSelect.vue.d.ts +2 -2
  302. package/dist/runtime/components/prose/A.d.vue.ts +1 -1
  303. package/dist/runtime/components/prose/A.vue.d.ts +1 -1
  304. package/dist/runtime/components/prose/Accordion.d.vue.ts +2 -2
  305. package/dist/runtime/components/prose/Accordion.vue.d.ts +2 -2
  306. package/dist/runtime/components/prose/AccordionItem.d.vue.ts +1 -1
  307. package/dist/runtime/components/prose/AccordionItem.vue.d.ts +1 -1
  308. package/dist/runtime/components/prose/Badge.d.vue.ts +1 -1
  309. package/dist/runtime/components/prose/Badge.vue.d.ts +1 -1
  310. package/dist/runtime/components/prose/Blockquote.d.vue.ts +1 -1
  311. package/dist/runtime/components/prose/Blockquote.vue.d.ts +1 -1
  312. package/dist/runtime/components/prose/Callout.d.vue.ts +1 -1
  313. package/dist/runtime/components/prose/Callout.vue +0 -1
  314. package/dist/runtime/components/prose/Callout.vue.d.ts +1 -1
  315. package/dist/runtime/components/prose/Card.d.vue.ts +1 -1
  316. package/dist/runtime/components/prose/Card.vue +0 -1
  317. package/dist/runtime/components/prose/Card.vue.d.ts +1 -1
  318. package/dist/runtime/components/prose/CardGroup.d.vue.ts +1 -1
  319. package/dist/runtime/components/prose/CardGroup.vue.d.ts +1 -1
  320. package/dist/runtime/components/prose/Code.d.vue.ts +1 -1
  321. package/dist/runtime/components/prose/Code.vue.d.ts +1 -1
  322. package/dist/runtime/components/prose/CodeCollapse.d.vue.ts +2 -2
  323. package/dist/runtime/components/prose/CodeCollapse.vue.d.ts +2 -2
  324. package/dist/runtime/components/prose/CodeGroup.d.vue.ts +2 -2
  325. package/dist/runtime/components/prose/CodeGroup.vue.d.ts +2 -2
  326. package/dist/runtime/components/prose/CodeIcon.d.vue.ts +1 -1
  327. package/dist/runtime/components/prose/CodeIcon.vue.d.ts +1 -1
  328. package/dist/runtime/components/prose/CodePreview.d.vue.ts +1 -1
  329. package/dist/runtime/components/prose/CodePreview.vue.d.ts +1 -1
  330. package/dist/runtime/components/prose/CodeTree.d.vue.ts +20 -1
  331. package/dist/runtime/components/prose/CodeTree.vue +34 -7
  332. package/dist/runtime/components/prose/CodeTree.vue.d.ts +20 -1
  333. package/dist/runtime/components/prose/Collapsible.d.vue.ts +1 -1
  334. package/dist/runtime/components/prose/Collapsible.vue.d.ts +1 -1
  335. package/dist/runtime/components/prose/Em.d.vue.ts +1 -1
  336. package/dist/runtime/components/prose/Em.vue.d.ts +1 -1
  337. package/dist/runtime/components/prose/Field.d.vue.ts +1 -1
  338. package/dist/runtime/components/prose/Field.vue.d.ts +1 -1
  339. package/dist/runtime/components/prose/FieldGroup.d.vue.ts +1 -1
  340. package/dist/runtime/components/prose/FieldGroup.vue.d.ts +1 -1
  341. package/dist/runtime/components/prose/H1.d.vue.ts +1 -1
  342. package/dist/runtime/components/prose/H1.vue.d.ts +1 -1
  343. package/dist/runtime/components/prose/H2.d.vue.ts +1 -1
  344. package/dist/runtime/components/prose/H2.vue.d.ts +1 -1
  345. package/dist/runtime/components/prose/H3.d.vue.ts +1 -1
  346. package/dist/runtime/components/prose/H3.vue.d.ts +1 -1
  347. package/dist/runtime/components/prose/H4.d.vue.ts +1 -1
  348. package/dist/runtime/components/prose/H4.vue.d.ts +1 -1
  349. package/dist/runtime/components/prose/Hr.d.vue.ts +1 -1
  350. package/dist/runtime/components/prose/Hr.vue.d.ts +1 -1
  351. package/dist/runtime/components/prose/Icon.d.vue.ts +1 -1
  352. package/dist/runtime/components/prose/Icon.vue.d.ts +1 -1
  353. package/dist/runtime/components/prose/Img.d.vue.ts +2 -2
  354. package/dist/runtime/components/prose/Img.vue.d.ts +2 -2
  355. package/dist/runtime/components/prose/Kbd.d.vue.ts +1 -1
  356. package/dist/runtime/components/prose/Kbd.vue.d.ts +1 -1
  357. package/dist/runtime/components/prose/Li.d.vue.ts +1 -1
  358. package/dist/runtime/components/prose/Li.vue.d.ts +1 -1
  359. package/dist/runtime/components/prose/Ol.d.vue.ts +1 -1
  360. package/dist/runtime/components/prose/Ol.vue.d.ts +1 -1
  361. package/dist/runtime/components/prose/P.d.vue.ts +1 -1
  362. package/dist/runtime/components/prose/P.vue.d.ts +1 -1
  363. package/dist/runtime/components/prose/Pre.d.vue.ts +1 -1
  364. package/dist/runtime/components/prose/Pre.vue.d.ts +1 -1
  365. package/dist/runtime/components/prose/Steps.d.vue.ts +1 -1
  366. package/dist/runtime/components/prose/Steps.vue.d.ts +1 -1
  367. package/dist/runtime/components/prose/Strong.d.vue.ts +1 -1
  368. package/dist/runtime/components/prose/Strong.vue.d.ts +1 -1
  369. package/dist/runtime/components/prose/Table.d.vue.ts +1 -1
  370. package/dist/runtime/components/prose/Table.vue.d.ts +1 -1
  371. package/dist/runtime/components/prose/Tabs.d.vue.ts +2 -2
  372. package/dist/runtime/components/prose/Tabs.vue.d.ts +2 -2
  373. package/dist/runtime/components/prose/TabsItem.d.vue.ts +1 -1
  374. package/dist/runtime/components/prose/TabsItem.vue.d.ts +1 -1
  375. package/dist/runtime/components/prose/Tbody.d.vue.ts +1 -1
  376. package/dist/runtime/components/prose/Tbody.vue.d.ts +1 -1
  377. package/dist/runtime/components/prose/Td.d.vue.ts +2 -1
  378. package/dist/runtime/components/prose/Td.vue +2 -1
  379. package/dist/runtime/components/prose/Td.vue.d.ts +2 -1
  380. package/dist/runtime/components/prose/Th.d.vue.ts +2 -1
  381. package/dist/runtime/components/prose/Th.vue +2 -1
  382. package/dist/runtime/components/prose/Th.vue.d.ts +2 -1
  383. package/dist/runtime/components/prose/Thead.d.vue.ts +1 -1
  384. package/dist/runtime/components/prose/Thead.vue.d.ts +1 -1
  385. package/dist/runtime/components/prose/Tr.d.vue.ts +1 -1
  386. package/dist/runtime/components/prose/Tr.vue.d.ts +1 -1
  387. package/dist/runtime/components/prose/Ul.d.vue.ts +1 -1
  388. package/dist/runtime/components/prose/Ul.vue.d.ts +1 -1
  389. package/dist/runtime/components/prose/callout/Caution.d.vue.ts +2 -2
  390. package/dist/runtime/components/prose/callout/Caution.vue.d.ts +2 -2
  391. package/dist/runtime/components/prose/callout/Note.d.vue.ts +2 -2
  392. package/dist/runtime/components/prose/callout/Note.vue.d.ts +2 -2
  393. package/dist/runtime/components/prose/callout/Tip.d.vue.ts +2 -2
  394. package/dist/runtime/components/prose/callout/Tip.vue.d.ts +2 -2
  395. package/dist/runtime/components/prose/callout/Warning.d.vue.ts +2 -2
  396. package/dist/runtime/components/prose/callout/Warning.vue.d.ts +2 -2
  397. package/dist/runtime/composables/defineShortcuts.d.ts +2 -1
  398. package/dist/runtime/composables/defineShortcuts.js +63 -16
  399. package/dist/runtime/composables/useEditorMenu.d.ts +75 -0
  400. package/dist/runtime/composables/useEditorMenu.js +435 -0
  401. package/dist/runtime/composables/useFileUpload.d.ts +1 -2
  402. package/dist/runtime/composables/useOverlay.d.ts +3 -1
  403. package/dist/runtime/locale/cs.js +2 -2
  404. package/dist/runtime/locale/en_gb.d.ts +3 -0
  405. package/dist/runtime/locale/en_gb.js +7 -0
  406. package/dist/runtime/locale/eu.d.ts +3 -0
  407. package/dist/runtime/locale/eu.js +129 -0
  408. package/dist/runtime/locale/index.d.ts +3 -0
  409. package/dist/runtime/locale/index.js +3 -0
  410. package/dist/runtime/locale/lo.d.ts +3 -0
  411. package/dist/runtime/locale/lo.js +129 -0
  412. package/dist/runtime/locale/sk.js +2 -2
  413. package/dist/runtime/types/editor.d.ts +70 -0
  414. package/dist/runtime/types/editor.js +0 -0
  415. package/dist/runtime/types/index.d.ts +8 -0
  416. package/dist/runtime/types/index.js +8 -0
  417. package/dist/runtime/utils/ai.d.ts +7 -0
  418. package/dist/runtime/utils/content.d.ts +2 -2
  419. package/dist/runtime/utils/editor.d.ts +69 -0
  420. package/dist/runtime/utils/editor.js +382 -0
  421. package/dist/runtime/utils/fuse.js +22 -3
  422. package/dist/runtime/utils/index.d.ts +1 -0
  423. package/dist/runtime/utils/index.js +2 -2
  424. package/dist/runtime/utils/locale.d.ts +1 -2
  425. package/dist/runtime/utils/virtualizer.d.ts +1 -3
  426. package/dist/runtime/utils/virtualizer.js +15 -6
  427. package/dist/runtime/vue/components/Icon.d.vue.ts +1 -1
  428. package/dist/runtime/vue/components/Icon.vue.d.ts +1 -1
  429. package/dist/runtime/vue/components/color-mode/ColorModeSelect.d.vue.ts +2 -2
  430. package/dist/runtime/vue/components/color-mode/ColorModeSelect.vue +5 -0
  431. package/dist/runtime/vue/components/color-mode/ColorModeSelect.vue.d.ts +2 -2
  432. package/dist/runtime/vue/components/color-mode/ColorModeSwitch.d.vue.ts +1 -1
  433. package/dist/runtime/vue/components/color-mode/ColorModeSwitch.vue.d.ts +1 -1
  434. package/dist/runtime/{inertia/components → vue/overrides/inertia}/Link.d.vue.ts +4 -4
  435. package/dist/runtime/{inertia/components → vue/overrides/inertia}/Link.vue +3 -3
  436. package/dist/runtime/{inertia/components → vue/overrides/inertia}/Link.vue.d.ts +4 -4
  437. package/dist/runtime/{inertia/components → vue/overrides/inertia}/LinkBase.d.vue.ts +4 -4
  438. package/dist/runtime/{inertia/components → vue/overrides/inertia}/LinkBase.vue.d.ts +4 -4
  439. package/dist/runtime/vue/overrides/none/Link.d.vue.ts +76 -0
  440. package/dist/runtime/vue/overrides/none/Link.vue +130 -0
  441. package/dist/runtime/vue/overrides/none/Link.vue.d.ts +76 -0
  442. package/dist/runtime/vue/{components → overrides/vue-router}/Link.d.vue.ts +4 -4
  443. package/dist/runtime/vue/{components → overrides/vue-router}/Link.vue +6 -6
  444. package/dist/runtime/vue/{components → overrides/vue-router}/Link.vue.d.ts +4 -4
  445. package/dist/runtime/vue/plugins/router.d.ts +4 -0
  446. package/dist/runtime/vue/plugins/router.js +7 -0
  447. package/dist/runtime/vue/{stubs.d.ts → stubs/base.d.ts} +4 -5
  448. package/dist/runtime/vue/{stubs.js → stubs/base.js} +4 -5
  449. package/dist/runtime/vue/stubs/inertia.d.ts +5 -0
  450. package/dist/runtime/vue/stubs/inertia.js +10 -0
  451. package/dist/runtime/vue/stubs/none.d.ts +56 -0
  452. package/dist/runtime/vue/stubs/none.js +48 -0
  453. package/dist/runtime/vue/stubs/vue-router.d.ts +2 -0
  454. package/dist/runtime/vue/stubs/vue-router.js +2 -0
  455. package/dist/shared/{ui.B77q-Dvh.mjs → ui.Ddb3hKxo.mjs} +511 -81
  456. package/dist/unplugin.d.mts +14 -0
  457. package/dist/unplugin.mjs +77 -50
  458. package/dist/vite.d.mts +2 -3
  459. package/dist/vite.mjs +1 -1
  460. package/package.json +64 -34
  461. package/dist/runtime/inertia/stubs.d.ts +0 -44
  462. package/dist/runtime/inertia/stubs.js +0 -84
  463. /package/dist/runtime/{inertia/components → vue/overrides/inertia}/LinkBase.vue +0 -0
@@ -12,7 +12,7 @@ import { useFieldGroup } from "../composables/useFieldGroup";
12
12
  import { useComponentIcons } from "../composables/useComponentIcons";
13
13
  import { useFormField } from "../composables/useFormField";
14
14
  import { usePortal } from "../composables/usePortal";
15
- import { get, getDisplayValue, isArrayOfArray } from "../utils";
15
+ import { get, getDisplayValue, isArrayOfArray, looseToNumber } from "../utils";
16
16
  import { tv } from "../utils/tv";
17
17
  import UIcon from "./Icon.vue";
18
18
  import UAvatar from "./Avatar.vue";
@@ -35,7 +35,9 @@ const props = defineProps({
35
35
  items: { type: null, required: false },
36
36
  defaultValue: { type: null, required: false },
37
37
  modelValue: { type: null, required: false },
38
+ modelModifiers: { type: Object, required: false },
38
39
  multiple: { type: Boolean, required: false },
40
+ by: { type: [String, Function], required: false },
39
41
  highlight: { type: Boolean, required: false },
40
42
  autofocus: { type: Boolean, required: false },
41
43
  autofocusDelay: { type: Number, required: false, default: 0 },
@@ -58,7 +60,7 @@ const props = defineProps({
58
60
  const emits = defineEmits(["update:open", "change", "blur", "focus", "update:modelValue"]);
59
61
  const slots = defineSlots();
60
62
  const appConfig = useAppConfig();
61
- const rootProps = useForwardPropsEmits(reactivePick(props, "open", "defaultOpen", "disabled", "autocomplete", "required", "multiple"), emits);
63
+ const rootProps = useForwardPropsEmits(reactivePick(props, "open", "defaultOpen", "disabled", "autocomplete", "required", "multiple", "by"), emits);
62
64
  const portalProps = usePortal(toRef(() => props.portal));
63
65
  const contentProps = toRef(() => defu(props.content, { side: "bottom", sideOffset: 8, collisionPadding: 8, position: "popper" }));
64
66
  const arrowProps = toRef(() => props.arrow);
@@ -84,13 +86,15 @@ function displayValue(value) {
84
86
  if (props.multiple && Array.isArray(value)) {
85
87
  const displayedValues = value.map((item) => getDisplayValue(items.value, item, {
86
88
  labelKey: props.labelKey,
87
- valueKey: props.valueKey
89
+ valueKey: props.valueKey,
90
+ by: props.by
88
91
  })).filter((v) => v != null && v !== "");
89
92
  return displayedValues.length > 0 ? displayedValues.join(", ") : void 0;
90
93
  }
91
94
  return getDisplayValue(items.value, value, {
92
95
  labelKey: props.labelKey,
93
- valueKey: props.valueKey
96
+ valueKey: props.valueKey,
97
+ by: props.by
94
98
  });
95
99
  }
96
100
  const triggerRef = useTemplateRef("triggerRef");
@@ -107,6 +111,18 @@ onMounted(() => {
107
111
  }, props.autofocusDelay);
108
112
  });
109
113
  function onUpdate(value) {
114
+ if (props.modelModifiers?.trim) {
115
+ value = value?.trim() ?? null;
116
+ }
117
+ if (props.modelModifiers?.number) {
118
+ value = looseToNumber(value);
119
+ }
120
+ if (props.modelModifiers?.nullable) {
121
+ value ??= null;
122
+ }
123
+ if (props.modelModifiers?.optional) {
124
+ value ??= void 0;
125
+ }
110
126
  const event = new Event("change", { target: { value } });
111
127
  emits("change", event);
112
128
  emitFormChange();
@@ -126,8 +142,10 @@ function onUpdateOpen(value) {
126
142
  function isSelectItem(item) {
127
143
  return typeof item === "object" && item !== null;
128
144
  }
145
+ const viewportRef = useTemplateRef("viewportRef");
129
146
  defineExpose({
130
- triggerRef: toRef(() => triggerRef.value?.$el)
147
+ triggerRef: toRef(() => triggerRef.value?.$el),
148
+ viewportRef: toRef(() => viewportRef.value)
131
149
  });
132
150
  </script>
133
151
 
@@ -179,7 +197,7 @@ defineExpose({
179
197
  <SelectContent data-slot="content" :class="ui.content({ class: props.ui?.content })" v-bind="contentProps">
180
198
  <slot name="content-top" />
181
199
 
182
- <div role="presentation" data-slot="viewport" :class="ui.viewport({ class: props.ui?.viewport })">
200
+ <div ref="viewportRef" role="presentation" data-slot="viewport" :class="ui.viewport({ class: props.ui?.viewport })">
183
201
  <SelectGroup v-for="(group, groupIndex) in groups" :key="`group-${groupIndex}`" data-slot="group" :class="ui.group({ class: props.ui?.group })">
184
202
  <template v-for="(item, index) in group" :key="`group-${groupIndex}-${index}`">
185
203
  <SelectLabel v-if="isSelectItem(item) && item.type === 'label'" data-slot="label" :class="ui.label({ class: [props.ui?.label, item.ui?.label, item.class] })">
@@ -3,6 +3,7 @@ import type { AppConfig } from '@nuxt/schema';
3
3
  import theme from '#build/ui/select';
4
4
  import type { UseComponentIconsProps } from '../composables/useComponentIcons';
5
5
  import type { AvatarProps, ChipProps, IconProps } from '../types';
6
+ import type { ModelModifiers } from '../types/input';
6
7
  import type { ButtonHTMLAttributes } from '../types/html';
7
8
  import type { AcceptableValue, ArrayOrNested, GetItemKeys, GetModelValue, GetModelValueEmits, NestedItem, EmitsToProps } from '../types/utils';
8
9
  import type { ComponentConfig } from '../types/tv';
@@ -92,8 +93,14 @@ export interface SelectProps<T extends ArrayOrNested<SelectItem> = ArrayOrNested
92
93
  defaultValue?: GetModelValue<T, VK, M>;
93
94
  /** The controlled value of the Select. Can be bind as `v-model`. */
94
95
  modelValue?: GetModelValue<T, VK, M>;
96
+ modelModifiers?: Omit<ModelModifiers<GetModelValue<T, VK, M>>, 'lazy'>;
95
97
  /** Whether multiple options can be selected or not. */
96
98
  multiple?: M & boolean;
99
+ /**
100
+ * Use a custom comparator to compare objects.
101
+ * This can be a string (key) or a function that compares two objects.
102
+ */
103
+ by?: string | ((a: any, b: any) => boolean);
97
104
  /** Highlight the ring color like a focus state. */
98
105
  highlight?: boolean;
99
106
  autofocus?: boolean;
@@ -141,25 +148,30 @@ export interface SelectSlots<A extends ArrayOrNested<SelectItem> = ArrayOrNested
141
148
  'content-top': (props?: {}) => any;
142
149
  'content-bottom': (props?: {}) => any;
143
150
  }
144
- declare const __VLS_export: <T extends ArrayOrNested<SelectItem>, VK extends GetItemKeys<T> = "value", 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<{
145
- props: __VLS_PrettifyLocal<SelectProps<T, VK, M> & {
146
- onChange?: ((event: Event) => any) | undefined;
151
+ declare const _default: typeof __VLS_export;
152
+ export default _default;
153
+ declare const __VLS_export: <T extends ArrayOrNested<SelectItem>, VK extends GetItemKeys<T> = "value", 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_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
154
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<SelectProps<T, VK, M> & {
147
155
  onBlur?: ((event: FocusEvent) => any) | undefined;
156
+ onChange?: ((event: Event) => any) | undefined;
148
157
  onFocus?: ((event: FocusEvent) => any) | undefined;
149
158
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
150
159
  "onUpdate:modelValue"?: ((value: GetModelValue<T, VK, M>) => any) | undefined;
151
- }> & import("vue").PublicProps;
160
+ }> & (typeof globalThis extends {
161
+ __VLS_PROPS_FALLBACK: infer P;
162
+ } ? P : {});
152
163
  expose: (exposed: import("vue").ShallowUnwrapRef<{
153
164
  triggerRef: Readonly<import("vue").Ref<HTMLButtonElement, HTMLButtonElement>>;
165
+ viewportRef: Readonly<import("vue").Ref<HTMLDivElement | null, HTMLDivElement | null>>;
154
166
  }>) => void;
155
167
  attrs: any;
156
168
  slots: SelectSlots<T, VK, M, NestedItem<T>>;
157
- emit: ((evt: "change", event: Event) => void) & ((evt: "blur", event: FocusEvent) => void) & ((evt: "focus", event: FocusEvent) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "update:modelValue", value: GetModelValue<T, VK, M>) => void);
169
+ emit: ((evt: "blur", event: FocusEvent) => void) & ((evt: "change", event: Event) => void) & ((evt: "focus", event: FocusEvent) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "update:modelValue", value: GetModelValue<T, VK, M>) => void);
158
170
  }>) => import("vue").VNode & {
159
171
  __ctx?: Awaited<typeof __VLS_setup>;
160
172
  };
161
- declare const _default: typeof __VLS_export;
162
- export default _default;
163
- type __VLS_PrettifyLocal<T> = {
173
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
174
+ [K in keyof T]: T[K];
175
+ } : {
164
176
  [K in keyof T as K]: T[K];
165
- } & {};
177
+ }) & {};
@@ -2,7 +2,8 @@ import type { ComboboxRootProps, ComboboxRootEmits, ComboboxContentProps, Combob
2
2
  import type { AppConfig } from '@nuxt/schema';
3
3
  import theme from '#build/ui/select-menu';
4
4
  import type { UseComponentIconsProps } from '../composables/useComponentIcons';
5
- import type { AvatarProps, ChipProps, IconProps, InputProps } from '../types';
5
+ import type { AvatarProps, ButtonProps, ChipProps, IconProps, InputProps, LinkPropsKeys } from '../types';
6
+ import type { ModelModifiers } from '../types/input';
6
7
  import type { ButtonHTMLAttributes } from '../types/html';
7
8
  import type { AcceptableValue, ArrayOrNested, GetItemKeys, GetModelValue, GetModelValueEmits, NestedItem, EmitsToProps } from '../types/utils';
8
9
  import type { ComponentConfig } from '../types/tv';
@@ -28,7 +29,7 @@ export type SelectMenuItem = SelectMenuValue | {
28
29
  ui?: Pick<SelectMenu['slots'], 'label' | 'separator' | 'item' | 'itemLeadingIcon' | 'itemLeadingAvatarSize' | 'itemLeadingAvatar' | 'itemLeadingChipSize' | 'itemLeadingChip' | 'itemWrapper' | 'itemLabel' | 'itemDescription' | 'itemTrailing' | 'itemTrailingIcon'>;
29
30
  [key: string]: any;
30
31
  };
31
- export interface SelectMenuProps<T extends ArrayOrNested<SelectMenuItem> = ArrayOrNested<SelectMenuItem>, VK extends GetItemKeys<T> | undefined = undefined, M extends boolean = false> extends Pick<ComboboxRootProps<T>, 'open' | 'defaultOpen' | 'disabled' | 'name' | 'resetSearchTermOnBlur' | 'resetSearchTermOnSelect' | 'highlightOnHover'>, UseComponentIconsProps, /** @vue-ignore */ Omit<ButtonHTMLAttributes, 'type' | 'disabled' | 'name'> {
32
+ export interface SelectMenuProps<T extends ArrayOrNested<SelectMenuItem> = ArrayOrNested<SelectMenuItem>, VK extends GetItemKeys<T> | undefined = undefined, M extends boolean = false> extends Pick<ComboboxRootProps<T>, 'open' | 'defaultOpen' | 'disabled' | 'name' | 'resetSearchTermOnBlur' | 'resetSearchTermOnSelect' | 'resetModelValueOnClear' | 'highlightOnHover' | 'by'>, UseComponentIconsProps, /** @vue-ignore */ Omit<ButtonHTMLAttributes, 'type' | 'disabled' | 'name'> {
32
33
  id?: string;
33
34
  /** The placeholder text when the select is empty. */
34
35
  placeholder?: string;
@@ -64,6 +65,18 @@ export interface SelectMenuProps<T extends ArrayOrNested<SelectMenuItem> = Array
64
65
  * @IconifyIcon
65
66
  */
66
67
  selectedIcon?: IconProps['name'];
68
+ /**
69
+ * Display a clear button to reset the model value.
70
+ * Can be an object to pass additional props to the Button.
71
+ * @defaultValue false
72
+ */
73
+ clear?: boolean | Partial<Omit<ButtonProps, LinkPropsKeys>>;
74
+ /**
75
+ * The icon displayed in the clear button.
76
+ * @defaultValue appConfig.ui.icons.close
77
+ * @IconifyIcon
78
+ */
79
+ clearIcon?: IconProps['name'];
67
80
  /**
68
81
  * The content of the menu.
69
82
  * @defaultValue { side: 'bottom', sideOffset: 8, collisionPadding: 8, position: 'popper' }
@@ -92,10 +105,10 @@ export interface SelectMenuProps<T extends ArrayOrNested<SelectMenuItem> = Array
92
105
  */
93
106
  overscan?: number;
94
107
  /**
95
- * Estimated size (in px) of each item
108
+ * Estimated size (in px) of each item, or a function that returns the size for a given index
96
109
  * @defaultValue 32
97
110
  */
98
- estimateSize?: number;
111
+ estimateSize?: number | ((index: number) => number);
99
112
  };
100
113
  /**
101
114
  * When `items` is an array of objects, select the field to use as the value instead of the object itself.
@@ -117,6 +130,7 @@ export interface SelectMenuProps<T extends ArrayOrNested<SelectMenuItem> = Array
117
130
  defaultValue?: GetModelValue<T, VK, M>;
118
131
  /** The controlled value of the SelectMenu. Can be binded-with with `v-model`. */
119
132
  modelValue?: GetModelValue<T, VK, M>;
133
+ modelModifiers?: Omit<ModelModifiers<GetModelValue<T, VK, M>>, 'lazy'>;
120
134
  /** Whether multiple options can be selected or not. */
121
135
  multiple?: M & boolean;
122
136
  /** Highlight the ring color like a focus state. */
@@ -149,6 +163,7 @@ export type SelectMenuEmits<A extends ArrayOrNested<SelectMenuItem>, VK extends
149
163
  blur: [event: FocusEvent];
150
164
  focus: [event: FocusEvent];
151
165
  create: [item: string];
166
+ clear: [];
152
167
  /** Event handler when highlighted element changes. */
153
168
  highlight: [
154
169
  payload: {
@@ -198,12 +213,15 @@ export interface SelectMenuSlots<A extends ArrayOrNested<SelectMenuItem> = Array
198
213
  item: string;
199
214
  }): any;
200
215
  }
201
- declare const __VLS_export: <T extends ArrayOrNested<SelectMenuItem>, 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<{
202
- props: __VLS_PrettifyLocal<(SelectMenuProps<T, VK, M> & {
216
+ declare const _default: typeof __VLS_export;
217
+ export default _default;
218
+ declare const __VLS_export: <T extends ArrayOrNested<SelectMenuItem>, 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_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
219
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<(SelectMenuProps<T, VK, M> & {
203
220
  searchTerm?: string;
204
221
  }) & {
205
- onChange?: ((event: Event) => any) | undefined;
222
+ onClear?: (() => any) | undefined;
206
223
  onBlur?: ((event: FocusEvent) => any) | undefined;
224
+ onChange?: ((event: Event) => any) | undefined;
207
225
  onFocus?: ((event: FocusEvent) => any) | undefined;
208
226
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
209
227
  onCreate?: ((item: string) => any) | undefined;
@@ -213,21 +231,24 @@ declare const __VLS_export: <T extends ArrayOrNested<SelectMenuItem>, VK extends
213
231
  value: GetModelValue<T, VK, M>;
214
232
  } | undefined) => any) | undefined;
215
233
  "onUpdate:searchTerm"?: ((value: string) => any) | undefined;
216
- }> & import("vue").PublicProps;
234
+ }> & (typeof globalThis extends {
235
+ __VLS_PROPS_FALLBACK: infer P;
236
+ } ? P : {});
217
237
  expose: (exposed: import("vue").ShallowUnwrapRef<{
218
238
  triggerRef: Readonly<import("vue").Ref<HTMLButtonElement, HTMLButtonElement>>;
239
+ viewportRef: Readonly<import("vue").Ref<HTMLDivElement | null, HTMLDivElement | null>>;
219
240
  }>) => void;
220
241
  attrs: any;
221
242
  slots: SelectMenuSlots<T, VK, M, NestedItem<T>>;
222
- emit: (((evt: "change", event: Event) => void) & ((evt: "blur", event: FocusEvent) => void) & ((evt: "focus", event: FocusEvent) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "create", item: string) => void) & ((evt: "update:modelValue", value: GetModelValue<T, VK, M>) => void) & ((evt: "highlight", payload: {
243
+ emit: (((evt: "clear") => void) & ((evt: "blur", event: FocusEvent) => void) & ((evt: "change", event: Event) => void) & ((evt: "focus", event: FocusEvent) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "create", item: string) => void) & ((evt: "update:modelValue", value: GetModelValue<T, VK, M>) => void) & ((evt: "highlight", payload: {
223
244
  ref: HTMLElement;
224
245
  value: GetModelValue<T, VK, M>;
225
246
  } | undefined) => void)) & ((evt: "update:searchTerm", value: string) => void);
226
247
  }>) => import("vue").VNode & {
227
248
  __ctx?: Awaited<typeof __VLS_setup>;
228
249
  };
229
- declare const _default: typeof __VLS_export;
230
- export default _default;
231
- type __VLS_PrettifyLocal<T> = {
250
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
251
+ [K in keyof T]: T[K];
252
+ } : {
232
253
  [K in keyof T as K]: T[K];
233
- } & {};
254
+ }) & {};
@@ -4,7 +4,7 @@ import theme from "#build/ui/select-menu";
4
4
 
5
5
  <script setup>
6
6
  import { useTemplateRef, computed, onMounted, toRef, toRaw } from "vue";
7
- import { ComboboxRoot, ComboboxArrow, ComboboxAnchor, ComboboxInput, ComboboxTrigger, ComboboxPortal, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxVirtualizer, ComboboxLabel, ComboboxSeparator, ComboboxItem, ComboboxItemIndicator, FocusScope, useForwardPropsEmits, useFilter } from "reka-ui";
7
+ import { ComboboxRoot, ComboboxArrow, ComboboxAnchor, ComboboxInput, ComboboxTrigger, ComboboxCancel, ComboboxPortal, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxVirtualizer, ComboboxLabel, ComboboxSeparator, ComboboxItem, ComboboxItemIndicator, FocusScope, useForwardPropsEmits, useFilter } from "reka-ui";
8
8
  import { defu } from "defu";
9
9
  import { reactivePick, createReusableTemplate } from "@vueuse/core";
10
10
  import { useAppConfig } from "#imports";
@@ -13,11 +13,12 @@ import { useComponentIcons } from "../composables/useComponentIcons";
13
13
  import { useFormField } from "../composables/useFormField";
14
14
  import { useLocale } from "../composables/useLocale";
15
15
  import { usePortal } from "../composables/usePortal";
16
- import { compare, get, getDisplayValue, isArrayOfArray } from "../utils";
16
+ import { compare, get, getDisplayValue, isArrayOfArray, looseToNumber } from "../utils";
17
17
  import { getEstimateSize } from "../utils/virtualizer";
18
18
  import { tv } from "../utils/tv";
19
19
  import UIcon from "./Icon.vue";
20
20
  import UAvatar from "./Avatar.vue";
21
+ import UButton from "./Button.vue";
21
22
  import UChip from "./Chip.vue";
22
23
  import UInput from "./Input.vue";
23
24
  defineOptions({ inheritAttrs: false });
@@ -31,6 +32,8 @@ const props = defineProps({
31
32
  required: { type: Boolean, required: false },
32
33
  trailingIcon: { type: null, required: false },
33
34
  selectedIcon: { type: null, required: false },
35
+ clear: { type: [Boolean, Object], required: false },
36
+ clearIcon: { type: null, required: false },
34
37
  content: { type: Object, required: false },
35
38
  arrow: { type: [Boolean, Object], required: false },
36
39
  portal: { type: [Boolean, String], required: false, skipCheck: true, default: true },
@@ -41,6 +44,7 @@ const props = defineProps({
41
44
  items: { type: null, required: false },
42
45
  defaultValue: { type: null, required: false },
43
46
  modelValue: { type: null, required: false },
47
+ modelModifiers: { type: Object, required: false },
44
48
  multiple: { type: Boolean, required: false },
45
49
  highlight: { type: Boolean, required: false },
46
50
  createItem: { type: [Boolean, String, Object], required: false },
@@ -56,7 +60,9 @@ const props = defineProps({
56
60
  name: { type: String, required: false },
57
61
  resetSearchTermOnBlur: { type: Boolean, required: false, default: true },
58
62
  resetSearchTermOnSelect: { type: Boolean, required: false, default: true },
63
+ resetModelValueOnClear: { type: Boolean, required: false, default: true },
59
64
  highlightOnHover: { type: Boolean, required: false },
65
+ by: { type: [String, Function], required: false },
60
66
  icon: { type: null, required: false },
61
67
  avatar: { type: Object, required: false },
62
68
  leading: { type: Boolean, required: false },
@@ -65,20 +71,21 @@ const props = defineProps({
65
71
  loading: { type: Boolean, required: false },
66
72
  loadingIcon: { type: null, required: false }
67
73
  });
68
- const emits = defineEmits(["update:open", "change", "blur", "focus", "create", "highlight", "update:modelValue"]);
74
+ const emits = defineEmits(["update:open", "change", "blur", "focus", "create", "clear", "highlight", "update:modelValue"]);
69
75
  const slots = defineSlots();
70
76
  const searchTerm = defineModel("searchTerm", { type: String, ...{ default: "" } });
71
77
  const { t } = useLocale();
72
78
  const appConfig = useAppConfig();
73
79
  const { contains } = useFilter({ sensitivity: "base" });
74
- const rootProps = useForwardPropsEmits(reactivePick(props, "modelValue", "defaultValue", "open", "defaultOpen", "required", "multiple", "resetSearchTermOnBlur", "resetSearchTermOnSelect", "highlightOnHover"), emits);
80
+ const rootProps = useForwardPropsEmits(reactivePick(props, "modelValue", "defaultValue", "open", "defaultOpen", "required", "multiple", "resetSearchTermOnBlur", "resetSearchTermOnSelect", "resetModelValueOnClear", "highlightOnHover", "by"), emits);
75
81
  const portalProps = usePortal(toRef(() => props.portal));
76
82
  const contentProps = toRef(() => defu(props.content, { side: "bottom", sideOffset: 8, collisionPadding: 8, position: "popper" }));
77
83
  const arrowProps = toRef(() => props.arrow);
84
+ const clearProps = computed(() => typeof props.clear === "object" ? props.clear : {});
78
85
  const virtualizerProps = toRef(() => {
79
86
  if (!props.virtualize) return false;
80
87
  return defu(typeof props.virtualize === "boolean" ? {} : props.virtualize, {
81
- estimateSize: getEstimateSize(items.value, props.size || "md", props.descriptionKey)
88
+ estimateSize: getEstimateSize(filteredItems.value, selectSize.value || "md", props.descriptionKey, !!slots["item-description"])
82
89
  });
83
90
  });
84
91
  const searchInputProps = toRef(() => defu(props.searchInput, { placeholder: t("selectMenu.search"), variant: "none" }));
@@ -114,13 +121,15 @@ function displayValue(value) {
114
121
  if (props.multiple && Array.isArray(value)) {
115
122
  const displayedValues = value.map((item) => getDisplayValue(items.value, item, {
116
123
  labelKey: props.labelKey,
117
- valueKey: props.valueKey
124
+ valueKey: props.valueKey,
125
+ by: props.by
118
126
  })).filter((v) => v != null && v !== "");
119
127
  return displayedValues.length > 0 ? displayedValues.join(", ") : void 0;
120
128
  }
121
129
  return getDisplayValue(items.value, value, {
122
130
  labelKey: props.labelKey,
123
- valueKey: props.valueKey
131
+ valueKey: props.valueKey,
132
+ by: props.by
124
133
  });
125
134
  }
126
135
  const groups = computed(
@@ -157,7 +166,7 @@ const createItem = computed(() => {
157
166
  }
158
167
  const newItem = props.valueKey ? { [props.valueKey]: searchTerm.value } : searchTerm.value;
159
168
  if (typeof props.createItem === "object" && props.createItem.when === "always" || props.createItem === "always") {
160
- return !filteredItems.value.find((item) => compare(item, newItem, props.valueKey));
169
+ return !filteredItems.value.find((item) => compare(item, newItem, props.by ?? props.valueKey));
161
170
  }
162
171
  return !filteredItems.value.length;
163
172
  });
@@ -179,6 +188,18 @@ function onUpdate(value) {
179
188
  if (toRaw(props.modelValue) === value) {
180
189
  return;
181
190
  }
191
+ if (props.modelModifiers?.trim) {
192
+ value = value?.trim() ?? null;
193
+ }
194
+ if (props.modelModifiers?.number) {
195
+ value = looseToNumber(value);
196
+ }
197
+ if (props.modelModifiers?.nullable) {
198
+ value ??= null;
199
+ }
200
+ if (props.modelModifiers?.optional) {
201
+ value ??= void 0;
202
+ }
182
203
  const event = new Event("change", { target: { value } });
183
204
  emits("change", event);
184
205
  emitFormChange();
@@ -224,8 +245,19 @@ function onSelect(e, item) {
224
245
  function isSelectItem(item) {
225
246
  return typeof item === "object" && item !== null;
226
247
  }
248
+ function isModelValueEmpty(modelValue) {
249
+ if (props.multiple && Array.isArray(modelValue)) {
250
+ return modelValue.length === 0;
251
+ }
252
+ return modelValue === void 0 || modelValue === null || modelValue === "";
253
+ }
254
+ function onClear() {
255
+ emits("clear");
256
+ }
257
+ const viewportRef = useTemplateRef("viewportRef");
227
258
  defineExpose({
228
- triggerRef: toRef(() => triggerRef.value?.$el)
259
+ triggerRef: toRef(() => triggerRef.value?.$el),
260
+ viewportRef: toRef(() => viewportRef.value)
229
261
  });
230
262
  </script>
231
263
 
@@ -331,9 +363,23 @@ defineExpose({
331
363
  </template>
332
364
  </slot>
333
365
 
334
- <span v-if="isTrailing || !!slots.trailing" data-slot="trailing" :class="ui.trailing({ class: props.ui?.trailing })">
366
+ <span v-if="isTrailing || !!slots.trailing || !!clear" data-slot="trailing" :class="ui.trailing({ class: props.ui?.trailing })">
335
367
  <slot name="trailing" :model-value="modelValue" :open="open" :ui="ui">
336
- <UIcon v-if="trailingIconName" :name="trailingIconName" data-slot="trailingIcon" :class="ui.trailingIcon({ class: props.ui?.trailingIcon })" />
368
+ <ComboboxCancel v-if="!!clear && !isModelValueEmpty(modelValue)" as-child>
369
+ <UButton
370
+ as="span"
371
+ :icon="clearIcon || appConfig.ui.icons.close"
372
+ variant="link"
373
+ color="neutral"
374
+ tabindex="-1"
375
+ v-bind="clearProps"
376
+ data-slot="trailingClear"
377
+ :class="ui.trailingClear({ class: props.ui?.trailingClear })"
378
+ @click.stop="onClear"
379
+ />
380
+ </ComboboxCancel>
381
+
382
+ <UIcon v-else-if="trailingIconName" :name="trailingIconName" data-slot="trailingIcon" :class="ui.trailingIcon({ class: props.ui?.trailingIcon })" />
337
383
  </slot>
338
384
  </span>
339
385
  </ComboboxTrigger>
@@ -362,7 +408,7 @@ defineExpose({
362
408
  </slot>
363
409
  </ComboboxEmpty>
364
410
 
365
- <div role="presentation" data-slot="viewport" :class="ui.viewport({ class: props.ui?.viewport })">
411
+ <div ref="viewportRef" role="presentation" data-slot="viewport" :class="ui.viewport({ class: props.ui?.viewport })">
366
412
  <template v-if="!!virtualize">
367
413
  <ReuseCreateItemTemplate v-if="createItem && createItemPosition === 'top'" />
368
414
 
@@ -2,7 +2,8 @@ import type { ComboboxRootProps, ComboboxRootEmits, ComboboxContentProps, Combob
2
2
  import type { AppConfig } from '@nuxt/schema';
3
3
  import theme from '#build/ui/select-menu';
4
4
  import type { UseComponentIconsProps } from '../composables/useComponentIcons';
5
- import type { AvatarProps, ChipProps, IconProps, InputProps } from '../types';
5
+ import type { AvatarProps, ButtonProps, ChipProps, IconProps, InputProps, LinkPropsKeys } from '../types';
6
+ import type { ModelModifiers } from '../types/input';
6
7
  import type { ButtonHTMLAttributes } from '../types/html';
7
8
  import type { AcceptableValue, ArrayOrNested, GetItemKeys, GetModelValue, GetModelValueEmits, NestedItem, EmitsToProps } from '../types/utils';
8
9
  import type { ComponentConfig } from '../types/tv';
@@ -28,7 +29,7 @@ export type SelectMenuItem = SelectMenuValue | {
28
29
  ui?: Pick<SelectMenu['slots'], 'label' | 'separator' | 'item' | 'itemLeadingIcon' | 'itemLeadingAvatarSize' | 'itemLeadingAvatar' | 'itemLeadingChipSize' | 'itemLeadingChip' | 'itemWrapper' | 'itemLabel' | 'itemDescription' | 'itemTrailing' | 'itemTrailingIcon'>;
29
30
  [key: string]: any;
30
31
  };
31
- export interface SelectMenuProps<T extends ArrayOrNested<SelectMenuItem> = ArrayOrNested<SelectMenuItem>, VK extends GetItemKeys<T> | undefined = undefined, M extends boolean = false> extends Pick<ComboboxRootProps<T>, 'open' | 'defaultOpen' | 'disabled' | 'name' | 'resetSearchTermOnBlur' | 'resetSearchTermOnSelect' | 'highlightOnHover'>, UseComponentIconsProps, /** @vue-ignore */ Omit<ButtonHTMLAttributes, 'type' | 'disabled' | 'name'> {
32
+ export interface SelectMenuProps<T extends ArrayOrNested<SelectMenuItem> = ArrayOrNested<SelectMenuItem>, VK extends GetItemKeys<T> | undefined = undefined, M extends boolean = false> extends Pick<ComboboxRootProps<T>, 'open' | 'defaultOpen' | 'disabled' | 'name' | 'resetSearchTermOnBlur' | 'resetSearchTermOnSelect' | 'resetModelValueOnClear' | 'highlightOnHover' | 'by'>, UseComponentIconsProps, /** @vue-ignore */ Omit<ButtonHTMLAttributes, 'type' | 'disabled' | 'name'> {
32
33
  id?: string;
33
34
  /** The placeholder text when the select is empty. */
34
35
  placeholder?: string;
@@ -64,6 +65,18 @@ export interface SelectMenuProps<T extends ArrayOrNested<SelectMenuItem> = Array
64
65
  * @IconifyIcon
65
66
  */
66
67
  selectedIcon?: IconProps['name'];
68
+ /**
69
+ * Display a clear button to reset the model value.
70
+ * Can be an object to pass additional props to the Button.
71
+ * @defaultValue false
72
+ */
73
+ clear?: boolean | Partial<Omit<ButtonProps, LinkPropsKeys>>;
74
+ /**
75
+ * The icon displayed in the clear button.
76
+ * @defaultValue appConfig.ui.icons.close
77
+ * @IconifyIcon
78
+ */
79
+ clearIcon?: IconProps['name'];
67
80
  /**
68
81
  * The content of the menu.
69
82
  * @defaultValue { side: 'bottom', sideOffset: 8, collisionPadding: 8, position: 'popper' }
@@ -92,10 +105,10 @@ export interface SelectMenuProps<T extends ArrayOrNested<SelectMenuItem> = Array
92
105
  */
93
106
  overscan?: number;
94
107
  /**
95
- * Estimated size (in px) of each item
108
+ * Estimated size (in px) of each item, or a function that returns the size for a given index
96
109
  * @defaultValue 32
97
110
  */
98
- estimateSize?: number;
111
+ estimateSize?: number | ((index: number) => number);
99
112
  };
100
113
  /**
101
114
  * When `items` is an array of objects, select the field to use as the value instead of the object itself.
@@ -117,6 +130,7 @@ export interface SelectMenuProps<T extends ArrayOrNested<SelectMenuItem> = Array
117
130
  defaultValue?: GetModelValue<T, VK, M>;
118
131
  /** The controlled value of the SelectMenu. Can be binded-with with `v-model`. */
119
132
  modelValue?: GetModelValue<T, VK, M>;
133
+ modelModifiers?: Omit<ModelModifiers<GetModelValue<T, VK, M>>, 'lazy'>;
120
134
  /** Whether multiple options can be selected or not. */
121
135
  multiple?: M & boolean;
122
136
  /** Highlight the ring color like a focus state. */
@@ -149,6 +163,7 @@ export type SelectMenuEmits<A extends ArrayOrNested<SelectMenuItem>, VK extends
149
163
  blur: [event: FocusEvent];
150
164
  focus: [event: FocusEvent];
151
165
  create: [item: string];
166
+ clear: [];
152
167
  /** Event handler when highlighted element changes. */
153
168
  highlight: [
154
169
  payload: {
@@ -198,12 +213,15 @@ export interface SelectMenuSlots<A extends ArrayOrNested<SelectMenuItem> = Array
198
213
  item: string;
199
214
  }): any;
200
215
  }
201
- declare const __VLS_export: <T extends ArrayOrNested<SelectMenuItem>, 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<{
202
- props: __VLS_PrettifyLocal<(SelectMenuProps<T, VK, M> & {
216
+ declare const _default: typeof __VLS_export;
217
+ export default _default;
218
+ declare const __VLS_export: <T extends ArrayOrNested<SelectMenuItem>, 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_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
219
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<(SelectMenuProps<T, VK, M> & {
203
220
  searchTerm?: string;
204
221
  }) & {
205
- onChange?: ((event: Event) => any) | undefined;
222
+ onClear?: (() => any) | undefined;
206
223
  onBlur?: ((event: FocusEvent) => any) | undefined;
224
+ onChange?: ((event: Event) => any) | undefined;
207
225
  onFocus?: ((event: FocusEvent) => any) | undefined;
208
226
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
209
227
  onCreate?: ((item: string) => any) | undefined;
@@ -213,21 +231,24 @@ declare const __VLS_export: <T extends ArrayOrNested<SelectMenuItem>, VK extends
213
231
  value: GetModelValue<T, VK, M>;
214
232
  } | undefined) => any) | undefined;
215
233
  "onUpdate:searchTerm"?: ((value: string) => any) | undefined;
216
- }> & import("vue").PublicProps;
234
+ }> & (typeof globalThis extends {
235
+ __VLS_PROPS_FALLBACK: infer P;
236
+ } ? P : {});
217
237
  expose: (exposed: import("vue").ShallowUnwrapRef<{
218
238
  triggerRef: Readonly<import("vue").Ref<HTMLButtonElement, HTMLButtonElement>>;
239
+ viewportRef: Readonly<import("vue").Ref<HTMLDivElement | null, HTMLDivElement | null>>;
219
240
  }>) => void;
220
241
  attrs: any;
221
242
  slots: SelectMenuSlots<T, VK, M, NestedItem<T>>;
222
- emit: (((evt: "change", event: Event) => void) & ((evt: "blur", event: FocusEvent) => void) & ((evt: "focus", event: FocusEvent) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "create", item: string) => void) & ((evt: "update:modelValue", value: GetModelValue<T, VK, M>) => void) & ((evt: "highlight", payload: {
243
+ emit: (((evt: "clear") => void) & ((evt: "blur", event: FocusEvent) => void) & ((evt: "change", event: Event) => void) & ((evt: "focus", event: FocusEvent) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "create", item: string) => void) & ((evt: "update:modelValue", value: GetModelValue<T, VK, M>) => void) & ((evt: "highlight", payload: {
223
244
  ref: HTMLElement;
224
245
  value: GetModelValue<T, VK, M>;
225
246
  } | undefined) => void)) & ((evt: "update:searchTerm", value: string) => void);
226
247
  }>) => import("vue").VNode & {
227
248
  __ctx?: Awaited<typeof __VLS_setup>;
228
249
  };
229
- declare const _default: typeof __VLS_export;
230
- export default _default;
231
- type __VLS_PrettifyLocal<T> = {
250
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
251
+ [K in keyof T]: T[K];
252
+ } : {
232
253
  [K in keyof T as K]: T[K];
233
- } & {};
254
+ }) & {};
@@ -36,7 +36,7 @@ export interface SeparatorProps extends Pick<_SeparatorProps, 'decorative'> {
36
36
  * The orientation of the separator.
37
37
  * @defaultValue 'horizontal'
38
38
  */
39
- orientation?: _SeparatorProps['orientation'];
39
+ orientation?: Separator['variants']['orientation'];
40
40
  class?: any;
41
41
  ui?: Separator['slots'];
42
42
  }
@@ -45,11 +45,11 @@ export interface SeparatorSlots {
45
45
  ui: Separator['ui'];
46
46
  }): any;
47
47
  }
48
- declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<SeparatorProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<SeparatorProps> & Readonly<{}>, {
49
- orientation: "horizontal" | "vertical";
50
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, SeparatorSlots>;
51
48
  declare const _default: typeof __VLS_export;
52
49
  export default _default;
50
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<SeparatorProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<SeparatorProps> & Readonly<{}>, {
51
+ orientation: Separator["variants"]["orientation"];
52
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, SeparatorSlots>;
53
53
  type __VLS_WithSlots<T, S> = T & {
54
54
  new (): {
55
55
  $slots: S;
@@ -36,7 +36,7 @@ export interface SeparatorProps extends Pick<_SeparatorProps, 'decorative'> {
36
36
  * The orientation of the separator.
37
37
  * @defaultValue 'horizontal'
38
38
  */
39
- orientation?: _SeparatorProps['orientation'];
39
+ orientation?: Separator['variants']['orientation'];
40
40
  class?: any;
41
41
  ui?: Separator['slots'];
42
42
  }
@@ -45,11 +45,11 @@ export interface SeparatorSlots {
45
45
  ui: Separator['ui'];
46
46
  }): any;
47
47
  }
48
- declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<SeparatorProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<SeparatorProps> & Readonly<{}>, {
49
- orientation: "horizontal" | "vertical";
50
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, SeparatorSlots>;
51
48
  declare const _default: typeof __VLS_export;
52
49
  export default _default;
50
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<SeparatorProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<SeparatorProps> & Readonly<{}>, {
51
+ orientation: Separator["variants"]["orientation"];
52
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, SeparatorSlots>;
53
53
  type __VLS_WithSlots<T, S> = T & {
54
54
  new (): {
55
55
  $slots: S;
@@ -6,11 +6,11 @@ export interface SkeletonProps {
6
6
  as?: any;
7
7
  class?: any;
8
8
  }
9
+ declare const _default: typeof __VLS_export;
10
+ export default _default;
9
11
  declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<SkeletonProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<SkeletonProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
10
12
  default?: (props: {}) => any;
11
13
  }>;
12
- declare const _default: typeof __VLS_export;
13
- export default _default;
14
14
  type __VLS_WithSlots<T, S> = T & {
15
15
  new (): {
16
16
  $slots: S;
@@ -6,11 +6,11 @@ export interface SkeletonProps {
6
6
  as?: any;
7
7
  class?: any;
8
8
  }
9
+ declare const _default: typeof __VLS_export;
10
+ export default _default;
9
11
  declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<SkeletonProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<SkeletonProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
10
12
  default?: (props: {}) => any;
11
13
  }>;
12
- declare const _default: typeof __VLS_export;
13
- export default _default;
14
14
  type __VLS_WithSlots<T, S> = T & {
15
15
  new (): {
16
16
  $slots: S;