@bitrix24/b24ui-nuxt 2.3.0 → 2.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 (386) hide show
  1. package/cli/package.json +1 -1
  2. package/dist/module.d.mts +2 -1
  3. package/dist/module.json +1 -1
  4. package/dist/module.mjs +3 -2
  5. package/dist/runtime/air-design-tokens/013_b24_mobile_light.css +1 -0
  6. package/dist/runtime/air-design-tokens/014_b24_mobile_dark.css +1 -0
  7. package/dist/runtime/air-design-tokens/015_b24_mobile_edge-light.css +1 -0
  8. package/dist/runtime/air-design-tokens/016_b24_mobile_edge-dark.css +1 -0
  9. package/dist/runtime/air-design-tokens/023_b24_desktop_light.css +1 -0
  10. package/dist/runtime/air-design-tokens/024_b24_desktop_dark.css +1 -0
  11. package/dist/runtime/air-design-tokens/025_b24_desktop_edge-light.css +1 -0
  12. package/dist/runtime/air-design-tokens/026_b24_desktop_edge-dark.css +1 -0
  13. package/dist/runtime/air-design-tokens/design-tokens/app.json +23812 -0
  14. package/dist/runtime/air-design-tokens/design-tokens/mobileapp.json +7476 -0
  15. package/dist/runtime/air-design-tokens/index.css +1 -1
  16. package/dist/runtime/components/Accordion.vue +11 -9
  17. package/dist/runtime/components/Advice.vue +13 -11
  18. package/dist/runtime/components/Alert.vue +11 -9
  19. package/dist/runtime/components/Avatar.vue +6 -4
  20. package/dist/runtime/components/AvatarGroup.vue +5 -3
  21. package/dist/runtime/components/Badge.vue +9 -7
  22. package/dist/runtime/components/Banner.vue +11 -9
  23. package/dist/runtime/components/Breadcrumb.vue +12 -10
  24. package/dist/runtime/components/Button.vue +14 -12
  25. package/dist/runtime/components/Calendar.vue +14 -12
  26. package/dist/runtime/components/Card.vue +6 -4
  27. package/dist/runtime/components/ChatMessage.vue +10 -8
  28. package/dist/runtime/components/ChatMessages.vue +14 -9
  29. package/dist/runtime/components/ChatPalette.vue +5 -3
  30. package/dist/runtime/components/ChatPrompt.vue +9 -6
  31. package/dist/runtime/components/ChatPromptSubmit.d.vue.ts +4 -4
  32. package/dist/runtime/components/ChatPromptSubmit.vue +4 -2
  33. package/dist/runtime/components/ChatPromptSubmit.vue.d.ts +4 -4
  34. package/dist/runtime/components/Checkbox.vue +18 -11
  35. package/dist/runtime/components/CheckboxGroup.d.vue.ts +2 -2
  36. package/dist/runtime/components/CheckboxGroup.vue +7 -5
  37. package/dist/runtime/components/CheckboxGroup.vue.d.ts +2 -2
  38. package/dist/runtime/components/Chip.d.vue.ts +1 -1
  39. package/dist/runtime/components/Chip.vue +5 -3
  40. package/dist/runtime/components/Chip.vue.d.ts +1 -1
  41. package/dist/runtime/components/Collapsible.vue +4 -2
  42. package/dist/runtime/components/ColorPicker.vue +9 -7
  43. package/dist/runtime/components/CommandPalette.d.vue.ts +4 -4
  44. package/dist/runtime/components/CommandPalette.vue +33 -31
  45. package/dist/runtime/components/CommandPalette.vue.d.ts +4 -4
  46. package/dist/runtime/components/Container.d.vue.ts +3 -0
  47. package/dist/runtime/components/Container.vue +5 -2
  48. package/dist/runtime/components/Container.vue.d.ts +3 -0
  49. package/dist/runtime/components/ContextMenu.vue +4 -2
  50. package/dist/runtime/components/Countdown.vue +11 -9
  51. package/dist/runtime/components/DashboardGroup.d.vue.ts +7 -2
  52. package/dist/runtime/components/DashboardGroup.vue +15 -11
  53. package/dist/runtime/components/DashboardGroup.vue.d.ts +7 -2
  54. package/dist/runtime/components/DashboardNavbar.d.vue.ts +59 -0
  55. package/dist/runtime/components/DashboardNavbar.vue +79 -0
  56. package/dist/runtime/components/DashboardNavbar.vue.d.ts +59 -0
  57. package/dist/runtime/components/DashboardPanel.d.vue.ts +31 -0
  58. package/dist/runtime/components/DashboardPanel.vue +66 -0
  59. package/dist/runtime/components/DashboardPanel.vue.d.ts +31 -0
  60. package/dist/runtime/components/DashboardResizeHandle.d.vue.ts +22 -0
  61. package/dist/runtime/components/DashboardResizeHandle.vue +30 -0
  62. package/dist/runtime/components/DashboardResizeHandle.vue.d.ts +22 -0
  63. package/dist/runtime/components/DashboardSearch.vue +5 -2
  64. package/dist/runtime/components/DashboardSearchButton.d.vue.ts +2 -2
  65. package/dist/runtime/components/DashboardSearchButton.vue +10 -6
  66. package/dist/runtime/components/DashboardSearchButton.vue.d.ts +2 -2
  67. package/dist/runtime/components/DashboardSidebar.d.vue.ts +89 -0
  68. package/dist/runtime/components/DashboardSidebar.vue +169 -0
  69. package/dist/runtime/components/DashboardSidebar.vue.d.ts +89 -0
  70. package/dist/runtime/components/DashboardSidebarCollapse.d.vue.ts +21 -0
  71. package/dist/runtime/components/DashboardSidebarCollapse.vue +64 -0
  72. package/dist/runtime/components/DashboardSidebarCollapse.vue.d.ts +21 -0
  73. package/dist/runtime/components/DashboardSidebarToggle.d.vue.ts +21 -0
  74. package/dist/runtime/components/DashboardSidebarToggle.vue +65 -0
  75. package/dist/runtime/components/DashboardSidebarToggle.vue.d.ts +21 -0
  76. package/dist/runtime/components/DashboardToolbar.d.vue.ts +26 -0
  77. package/dist/runtime/components/DashboardToolbar.vue +34 -0
  78. package/dist/runtime/components/DashboardToolbar.vue.d.ts +26 -0
  79. package/dist/runtime/components/DescriptionList.vue +15 -13
  80. package/dist/runtime/components/Drawer.d.vue.ts +100 -0
  81. package/dist/runtime/components/Drawer.vue +133 -0
  82. package/dist/runtime/components/Drawer.vue.d.ts +100 -0
  83. package/dist/runtime/components/DropdownMenu.vue +6 -9
  84. package/dist/runtime/components/DropdownMenuContent.vue +3 -1
  85. package/dist/runtime/components/Editor.d.vue.ts +2 -1
  86. package/dist/runtime/components/Editor.vue +15 -3
  87. package/dist/runtime/components/Editor.vue.d.ts +2 -1
  88. package/dist/runtime/components/EditorDragHandle.d.vue.ts +2 -2
  89. package/dist/runtime/components/EditorDragHandle.vue +5 -3
  90. package/dist/runtime/components/EditorDragHandle.vue.d.ts +2 -2
  91. package/dist/runtime/components/EditorMentionMenu.vue +4 -1
  92. package/dist/runtime/components/EditorToolbar.vue +6 -4
  93. package/dist/runtime/components/Empty.vue +11 -9
  94. package/dist/runtime/components/Error.vue +7 -5
  95. package/dist/runtime/components/FieldGroup.d.vue.ts +3 -1
  96. package/dist/runtime/components/FieldGroup.vue +3 -1
  97. package/dist/runtime/components/FieldGroup.vue.d.ts +3 -1
  98. package/dist/runtime/components/FileUpload.vue +17 -15
  99. package/dist/runtime/components/Footer.d.vue.ts +30 -0
  100. package/dist/runtime/components/Footer.vue +47 -0
  101. package/dist/runtime/components/Footer.vue.d.ts +30 -0
  102. package/dist/runtime/components/FooterColumns.d.vue.ts +69 -0
  103. package/dist/runtime/components/FooterColumns.vue +83 -0
  104. package/dist/runtime/components/FooterColumns.vue.d.ts +69 -0
  105. package/dist/runtime/components/Form.d.vue.ts +3 -0
  106. package/dist/runtime/components/Form.vue +10 -2
  107. package/dist/runtime/components/Form.vue.d.ts +3 -0
  108. package/dist/runtime/components/FormField.vue +12 -10
  109. package/dist/runtime/components/Header.d.vue.ts +81 -0
  110. package/dist/runtime/components/Header.vue +147 -0
  111. package/dist/runtime/components/Header.vue.d.ts +81 -0
  112. package/dist/runtime/components/Input.d.vue.ts +53 -11
  113. package/dist/runtime/components/Input.vue +16 -12
  114. package/dist/runtime/components/Input.vue.d.ts +53 -11
  115. package/dist/runtime/components/InputDate.d.vue.ts +4 -1
  116. package/dist/runtime/components/InputDate.vue +19 -12
  117. package/dist/runtime/components/InputDate.vue.d.ts +4 -1
  118. package/dist/runtime/components/InputMenu.d.vue.ts +154 -26
  119. package/dist/runtime/components/InputMenu.vue +53 -61
  120. package/dist/runtime/components/InputMenu.vue.d.ts +154 -26
  121. package/dist/runtime/components/InputNumber.d.vue.ts +15 -14
  122. package/dist/runtime/components/InputNumber.vue +19 -11
  123. package/dist/runtime/components/InputNumber.vue.d.ts +15 -14
  124. package/dist/runtime/components/InputTags.d.vue.ts +2 -0
  125. package/dist/runtime/components/InputTags.vue +17 -13
  126. package/dist/runtime/components/InputTags.vue.d.ts +2 -0
  127. package/dist/runtime/components/InputTime.d.vue.ts +4 -1
  128. package/dist/runtime/components/InputTime.vue +17 -10
  129. package/dist/runtime/components/InputTime.vue.d.ts +4 -1
  130. package/dist/runtime/components/Kbd.d.vue.ts +1 -0
  131. package/dist/runtime/components/Kbd.vue +5 -2
  132. package/dist/runtime/components/Kbd.vue.d.ts +1 -0
  133. package/dist/runtime/components/Link.d.vue.ts +1 -1
  134. package/dist/runtime/components/Link.vue +7 -7
  135. package/dist/runtime/components/Link.vue.d.ts +1 -1
  136. package/dist/runtime/components/LinkBase.d.vue.ts +1 -1
  137. package/dist/runtime/components/LinkBase.vue.d.ts +1 -1
  138. package/dist/runtime/components/Main.d.vue.ts +24 -0
  139. package/dist/runtime/components/Main.vue +26 -0
  140. package/dist/runtime/components/Main.vue.d.ts +24 -0
  141. package/dist/runtime/components/Modal.d.vue.ts +6 -6
  142. package/dist/runtime/components/Modal.vue +14 -12
  143. package/dist/runtime/components/Modal.vue.d.ts +6 -6
  144. package/dist/runtime/components/Navbar.vue +3 -1
  145. package/dist/runtime/components/NavbarDivider.vue +3 -1
  146. package/dist/runtime/components/NavbarSection.vue +3 -1
  147. package/dist/runtime/components/NavbarSpacer.vue +3 -1
  148. package/dist/runtime/components/NavigationMenu.d.vue.ts +18 -19
  149. package/dist/runtime/components/NavigationMenu.vue +125 -65
  150. package/dist/runtime/components/NavigationMenu.vue.d.ts +18 -19
  151. package/dist/runtime/components/Page.d.vue.ts +26 -0
  152. package/dist/runtime/components/Page.vue +39 -0
  153. package/dist/runtime/components/Page.vue.d.ts +26 -0
  154. package/dist/runtime/components/PageAside.d.vue.ts +28 -0
  155. package/dist/runtime/components/PageAside.vue +38 -0
  156. package/dist/runtime/components/PageAside.vue.d.ts +28 -0
  157. package/dist/runtime/components/PageBody.d.vue.ts +22 -0
  158. package/dist/runtime/components/PageBody.vue +26 -0
  159. package/dist/runtime/components/PageBody.vue.d.ts +22 -0
  160. package/dist/runtime/components/PageCard.vue +12 -10
  161. package/dist/runtime/components/PageColumns.d.vue.ts +3 -0
  162. package/dist/runtime/components/PageColumns.vue +5 -2
  163. package/dist/runtime/components/PageColumns.vue.d.ts +3 -0
  164. package/dist/runtime/components/PageFeature.d.vue.ts +47 -0
  165. package/dist/runtime/components/PageFeature.vue +79 -0
  166. package/dist/runtime/components/PageFeature.vue.d.ts +47 -0
  167. package/dist/runtime/components/PageGrid.d.vue.ts +3 -0
  168. package/dist/runtime/components/PageGrid.vue +5 -2
  169. package/dist/runtime/components/PageGrid.vue.d.ts +3 -0
  170. package/dist/runtime/components/PageHeader.d.vue.ts +37 -0
  171. package/dist/runtime/components/PageHeader.vue +67 -0
  172. package/dist/runtime/components/PageHeader.vue.d.ts +37 -0
  173. package/dist/runtime/components/PageLinks.vue +11 -9
  174. package/dist/runtime/components/PageList.d.vue.ts +3 -0
  175. package/dist/runtime/components/PageList.vue +5 -2
  176. package/dist/runtime/components/PageList.vue.d.ts +3 -0
  177. package/dist/runtime/components/PageSection.d.vue.ts +71 -0
  178. package/dist/runtime/components/PageSection.vue +110 -0
  179. package/dist/runtime/components/PageSection.vue.d.ts +71 -0
  180. package/dist/runtime/components/Pagination.d.vue.ts +2 -2
  181. package/dist/runtime/components/Pagination.vue +10 -8
  182. package/dist/runtime/components/Pagination.vue.d.ts +2 -2
  183. package/dist/runtime/components/PinInput.d.vue.ts +4 -1
  184. package/dist/runtime/components/PinInput.vue +10 -3
  185. package/dist/runtime/components/PinInput.vue.d.ts +4 -1
  186. package/dist/runtime/components/Popover.vue +4 -2
  187. package/dist/runtime/components/Progress.vue +8 -6
  188. package/dist/runtime/components/RadioGroup.d.vue.ts +2 -2
  189. package/dist/runtime/components/RadioGroup.vue +12 -10
  190. package/dist/runtime/components/RadioGroup.vue.d.ts +2 -2
  191. package/dist/runtime/components/Range.vue +7 -5
  192. package/dist/runtime/components/ScrollArea.d.vue.ts +7 -0
  193. package/dist/runtime/components/ScrollArea.vue +34 -10
  194. package/dist/runtime/components/ScrollArea.vue.d.ts +7 -0
  195. package/dist/runtime/components/Select.d.vue.ts +64 -20
  196. package/dist/runtime/components/Select.vue +35 -36
  197. package/dist/runtime/components/Select.vue.d.ts +64 -20
  198. package/dist/runtime/components/SelectMenu.d.vue.ts +116 -31
  199. package/dist/runtime/components/SelectMenu.vue +56 -60
  200. package/dist/runtime/components/SelectMenu.vue.d.ts +116 -31
  201. package/dist/runtime/components/Separator.d.vue.ts +2 -2
  202. package/dist/runtime/components/Separator.vue +9 -7
  203. package/dist/runtime/components/Separator.vue.d.ts +2 -2
  204. package/dist/runtime/components/Sidebar.vue +3 -1
  205. package/dist/runtime/components/SidebarBody.d.vue.ts +0 -3
  206. package/dist/runtime/components/SidebarBody.vue +3 -1
  207. package/dist/runtime/components/SidebarBody.vue.d.ts +0 -3
  208. package/dist/runtime/components/SidebarFooter.d.vue.ts +0 -3
  209. package/dist/runtime/components/SidebarFooter.vue +3 -1
  210. package/dist/runtime/components/SidebarFooter.vue.d.ts +0 -3
  211. package/dist/runtime/components/SidebarHeader.d.vue.ts +0 -3
  212. package/dist/runtime/components/SidebarHeader.vue +3 -1
  213. package/dist/runtime/components/SidebarHeader.vue.d.ts +0 -3
  214. package/dist/runtime/components/SidebarHeading.d.vue.ts +0 -3
  215. package/dist/runtime/components/SidebarHeading.vue +3 -1
  216. package/dist/runtime/components/SidebarHeading.vue.d.ts +0 -3
  217. package/dist/runtime/components/SidebarLayout.d.vue.ts +1 -1
  218. package/dist/runtime/components/SidebarLayout.vue +21 -19
  219. package/dist/runtime/components/SidebarLayout.vue.d.ts +1 -1
  220. package/dist/runtime/components/SidebarSection.d.vue.ts +0 -3
  221. package/dist/runtime/components/SidebarSection.vue +3 -1
  222. package/dist/runtime/components/SidebarSection.vue.d.ts +0 -3
  223. package/dist/runtime/components/SidebarSpacer.d.vue.ts +0 -3
  224. package/dist/runtime/components/SidebarSpacer.vue +3 -1
  225. package/dist/runtime/components/SidebarSpacer.vue.d.ts +0 -3
  226. package/dist/runtime/components/Skeleton.vue +3 -1
  227. package/dist/runtime/components/Slideover.d.vue.ts +3 -3
  228. package/dist/runtime/components/Slideover.vue +19 -17
  229. package/dist/runtime/components/Slideover.vue.d.ts +3 -3
  230. package/dist/runtime/components/Stepper.vue +14 -12
  231. package/dist/runtime/components/Switch.vue +19 -13
  232. package/dist/runtime/components/Table.vue +25 -23
  233. package/dist/runtime/components/TableWrapper.vue +3 -1
  234. package/dist/runtime/components/Tabs.d.vue.ts +2 -1
  235. package/dist/runtime/components/Tabs.vue +17 -12
  236. package/dist/runtime/components/Tabs.vue.d.ts +2 -1
  237. package/dist/runtime/components/Textarea.d.vue.ts +53 -11
  238. package/dist/runtime/components/Textarea.vue +18 -14
  239. package/dist/runtime/components/Textarea.vue.d.ts +53 -11
  240. package/dist/runtime/components/Theme.d.vue.ts +17 -0
  241. package/dist/runtime/components/Theme.vue +17 -0
  242. package/dist/runtime/components/Theme.vue.d.ts +17 -0
  243. package/dist/runtime/components/Timeline.vue +11 -9
  244. package/dist/runtime/components/Toast.vue +15 -15
  245. package/dist/runtime/components/Toaster.d.vue.ts +1 -1
  246. package/dist/runtime/components/Toaster.vue +6 -3
  247. package/dist/runtime/components/Toaster.vue.d.ts +1 -1
  248. package/dist/runtime/components/Tooltip.vue +8 -6
  249. package/dist/runtime/components/User.vue +8 -6
  250. package/dist/runtime/components/color-mode/ColorModeButton.d.vue.ts +1 -1
  251. package/dist/runtime/components/color-mode/ColorModeButton.vue +4 -2
  252. package/dist/runtime/components/color-mode/ColorModeButton.vue.d.ts +1 -1
  253. package/dist/runtime/components/color-mode/ColorModeImage.vue +8 -3
  254. package/dist/runtime/components/color-mode/ColorModeSelect.vue +1 -1
  255. package/dist/runtime/components/content/ContentSearch.vue +5 -2
  256. package/dist/runtime/components/content/ContentSearchButton.d.vue.ts +2 -2
  257. package/dist/runtime/components/content/ContentSearchButton.vue +5 -3
  258. package/dist/runtime/components/content/ContentSearchButton.vue.d.ts +2 -2
  259. package/dist/runtime/components/content/ContentSurround.vue +8 -6
  260. package/dist/runtime/components/content/ContentToc.vue +15 -13
  261. package/dist/runtime/components/locale/LocaleSelect.d.vue.ts +1 -1
  262. package/dist/runtime/components/locale/LocaleSelect.vue +1 -1
  263. package/dist/runtime/components/locale/LocaleSelect.vue.d.ts +1 -1
  264. package/dist/runtime/components/prose/A.vue +3 -1
  265. package/dist/runtime/components/prose/Accordion.vue +3 -1
  266. package/dist/runtime/components/prose/AccordionItem.d.vue.ts +3 -0
  267. package/dist/runtime/components/prose/AccordionItem.vue +5 -2
  268. package/dist/runtime/components/prose/AccordionItem.vue.d.ts +3 -0
  269. package/dist/runtime/components/prose/Badge.d.vue.ts +3 -0
  270. package/dist/runtime/components/prose/Badge.vue +5 -2
  271. package/dist/runtime/components/prose/Badge.vue.d.ts +3 -0
  272. package/dist/runtime/components/prose/Blockquote.d.vue.ts +0 -3
  273. package/dist/runtime/components/prose/Blockquote.vue +3 -1
  274. package/dist/runtime/components/prose/Blockquote.vue.d.ts +0 -3
  275. package/dist/runtime/components/prose/Callout.vue +5 -3
  276. package/dist/runtime/components/prose/Card.vue +7 -5
  277. package/dist/runtime/components/prose/CardGroup.d.vue.ts +3 -0
  278. package/dist/runtime/components/prose/CardGroup.vue +5 -2
  279. package/dist/runtime/components/prose/CardGroup.vue.d.ts +3 -0
  280. package/dist/runtime/components/prose/Code.vue +3 -1
  281. package/dist/runtime/components/prose/CodeCollapse.vue +6 -4
  282. package/dist/runtime/components/prose/CodeGroup.vue +8 -6
  283. package/dist/runtime/components/prose/CodePreview.vue +5 -3
  284. package/dist/runtime/components/prose/Collapsible.vue +6 -4
  285. package/dist/runtime/components/prose/Em.d.vue.ts +0 -3
  286. package/dist/runtime/components/prose/Em.vue +3 -1
  287. package/dist/runtime/components/prose/Em.vue.d.ts +0 -3
  288. package/dist/runtime/components/prose/Field.vue +9 -7
  289. package/dist/runtime/components/prose/FieldGroup.d.vue.ts +3 -0
  290. package/dist/runtime/components/prose/FieldGroup.vue +5 -2
  291. package/dist/runtime/components/prose/FieldGroup.vue.d.ts +3 -0
  292. package/dist/runtime/components/prose/H1.vue +4 -2
  293. package/dist/runtime/components/prose/H2.vue +6 -4
  294. package/dist/runtime/components/prose/H3.vue +6 -4
  295. package/dist/runtime/components/prose/H4.vue +6 -4
  296. package/dist/runtime/components/prose/H5.vue +3 -1
  297. package/dist/runtime/components/prose/H6.vue +3 -1
  298. package/dist/runtime/components/prose/Hr.d.vue.ts +0 -6
  299. package/dist/runtime/components/prose/Hr.vue +3 -1
  300. package/dist/runtime/components/prose/Hr.vue.d.ts +0 -6
  301. package/dist/runtime/components/prose/Img.vue +9 -8
  302. package/dist/runtime/components/prose/Kbd.d.vue.ts +3 -0
  303. package/dist/runtime/components/prose/Kbd.vue +5 -2
  304. package/dist/runtime/components/prose/Kbd.vue.d.ts +3 -0
  305. package/dist/runtime/components/prose/Li.d.vue.ts +0 -3
  306. package/dist/runtime/components/prose/Li.vue +3 -1
  307. package/dist/runtime/components/prose/Li.vue.d.ts +0 -3
  308. package/dist/runtime/components/prose/Ol.d.vue.ts +0 -3
  309. package/dist/runtime/components/prose/Ol.vue +3 -1
  310. package/dist/runtime/components/prose/Ol.vue.d.ts +0 -3
  311. package/dist/runtime/components/prose/P.vue +3 -1
  312. package/dist/runtime/components/prose/Pre.vue +8 -6
  313. package/dist/runtime/components/prose/Steps.d.vue.ts +3 -0
  314. package/dist/runtime/components/prose/Steps.vue +5 -2
  315. package/dist/runtime/components/prose/Steps.vue.d.ts +3 -0
  316. package/dist/runtime/components/prose/Strong.d.vue.ts +0 -3
  317. package/dist/runtime/components/prose/Strong.vue +3 -1
  318. package/dist/runtime/components/prose/Strong.vue.d.ts +0 -3
  319. package/dist/runtime/components/prose/Table.vue +4 -2
  320. package/dist/runtime/components/prose/Tabs.vue +3 -1
  321. package/dist/runtime/components/prose/TabsItem.d.vue.ts +3 -0
  322. package/dist/runtime/components/prose/TabsItem.vue +5 -2
  323. package/dist/runtime/components/prose/TabsItem.vue.d.ts +3 -0
  324. package/dist/runtime/components/prose/Tbody.d.vue.ts +0 -3
  325. package/dist/runtime/components/prose/Tbody.vue +3 -1
  326. package/dist/runtime/components/prose/Tbody.vue.d.ts +0 -3
  327. package/dist/runtime/components/prose/Td.vue +3 -1
  328. package/dist/runtime/components/prose/Th.vue +3 -1
  329. package/dist/runtime/components/prose/Thead.d.vue.ts +0 -3
  330. package/dist/runtime/components/prose/Thead.vue +3 -1
  331. package/dist/runtime/components/prose/Thead.vue.d.ts +0 -3
  332. package/dist/runtime/components/prose/Tr.d.vue.ts +0 -3
  333. package/dist/runtime/components/prose/Tr.vue +3 -1
  334. package/dist/runtime/components/prose/Tr.vue.d.ts +0 -3
  335. package/dist/runtime/components/prose/Ul.d.vue.ts +0 -3
  336. package/dist/runtime/components/prose/Ul.vue +3 -1
  337. package/dist/runtime/components/prose/Ul.vue.d.ts +0 -3
  338. package/dist/runtime/composables/color-mode/useColorMode.d.ts +6 -0
  339. package/dist/runtime/composables/color-mode/useColorMode.js +15 -6
  340. package/dist/runtime/composables/defineShortcuts.js +4 -1
  341. package/dist/runtime/composables/internal/useFilter.d.ts +9 -0
  342. package/dist/runtime/composables/internal/useFilter.js +60 -0
  343. package/dist/runtime/composables/useAvatarGroup.d.ts +1 -1
  344. package/dist/runtime/composables/useComponentUI.d.ts +33 -0
  345. package/dist/runtime/composables/useComponentUI.js +13 -0
  346. package/dist/runtime/composables/useEditorMenu.d.ts +11 -0
  347. package/dist/runtime/composables/useEditorMenu.js +144 -166
  348. package/dist/runtime/composables/useFieldGroup.d.ts +1 -1
  349. package/dist/runtime/composables/useFormField.d.ts +1 -1
  350. package/dist/runtime/composables/useLoading.d.ts +3 -0
  351. package/dist/runtime/composables/useResizable.d.ts +1 -1
  352. package/dist/runtime/composables/useResizable.js +1 -1
  353. package/dist/runtime/composables/useToast.d.ts +4 -0
  354. package/dist/runtime/composables/useToast.js +25 -1
  355. package/dist/runtime/dictionary/icons.d.ts +3 -0
  356. package/dist/runtime/dictionary/icons.js +7 -1
  357. package/dist/runtime/index.css +1 -1
  358. package/dist/runtime/keyframes.css +1 -1
  359. package/dist/runtime/plugins/platform.d.ts +34 -0
  360. package/dist/runtime/plugins/platform.js +31 -0
  361. package/dist/runtime/plugins/ui-version.d.ts +1 -1
  362. package/dist/runtime/types/color-mode.d.ts +1 -1
  363. package/dist/runtime/types/index.d.ts +19 -0
  364. package/dist/runtime/types/index.js +19 -0
  365. package/dist/runtime/types/input.d.ts +16 -6
  366. package/dist/runtime/types/utils.d.ts +10 -8
  367. package/dist/runtime/utils/dashboard.d.ts +4 -5
  368. package/dist/runtime/utils/dashboard.js +1 -1
  369. package/dist/runtime/utils/index.d.ts +2 -1
  370. package/dist/runtime/utils/index.js +11 -1
  371. package/dist/runtime/vue/components/color-mode/ColorModeSelect.vue +1 -1
  372. package/dist/runtime/vue/overrides/inertia/Link.d.vue.ts +1 -1
  373. package/dist/runtime/vue/overrides/inertia/Link.vue.d.ts +1 -1
  374. package/dist/runtime/vue/overrides/inertia/LinkBase.d.vue.ts +1 -1
  375. package/dist/runtime/vue/overrides/inertia/LinkBase.vue.d.ts +1 -1
  376. package/dist/runtime/vue/overrides/none/Link.d.vue.ts +1 -1
  377. package/dist/runtime/vue/overrides/none/Link.vue.d.ts +1 -1
  378. package/dist/runtime/vue/overrides/vue-router/Link.d.vue.ts +1 -1
  379. package/dist/runtime/vue/overrides/vue-router/Link.vue.d.ts +1 -1
  380. package/dist/runtime/vue/stubs/base.d.ts +9 -13
  381. package/dist/runtime/vue/stubs/base.js +11 -33
  382. package/dist/shared/{b24ui-nuxt.DEyBXBFe.mjs → b24ui-nuxt.DstlkmYO.mjs} +653 -51
  383. package/dist/unplugin.d.mts +2 -1
  384. package/dist/unplugin.mjs +2 -1
  385. package/dist/vite.mjs +1 -1
  386. package/package.json +50 -52
@@ -3,9 +3,9 @@ import type { AppConfig } from '@nuxt/schema';
3
3
  import theme from '#build/b24ui/input-menu';
4
4
  import type { UseComponentIconsProps } from '../composables/useComponentIcons';
5
5
  import type { AvatarProps, ButtonProps, ChipProps, LinkPropsKeys, BadgeProps, IconComponent } from '../types';
6
- import type { ModelModifiers } from '../types/input';
6
+ import type { ModelModifiers, ApplyModifiers } from '../types/input';
7
7
  import type { InputHTMLAttributes } from '../types/html';
8
- import type { AcceptableValue, ArrayOrNested, GetItemKeys, GetModelValue, GetModelValueEmits, NestedItem, EmitsToProps } from '../types/utils';
8
+ import type { AcceptableValue, ArrayOrNested, GetItemKeys, GetModelValue, NestedItem, EmitsToProps } from '../types/utils';
9
9
  import type { ComponentConfig } from '../types/tv';
10
10
  type InputMenu = ComponentConfig<typeof theme, AppConfig, 'inputMenu'>;
11
11
  export type InputMenuValue = AcceptableValue;
@@ -30,7 +30,11 @@ export type InputMenuItem = InputMenuValue | {
30
30
  b24ui?: Pick<InputMenu['slots'], 'tagsItem' | 'tagsItemText' | 'tagsItemDelete' | 'tagsItemDeleteIcon' | 'label' | 'separator' | 'item' | 'itemLeadingIcon' | 'itemLeadingAvatarSize' | 'itemLeadingAvatar' | 'itemLeadingChip' | 'itemLeadingChipSize' | 'itemWrapper' | 'itemLabel' | 'itemDescription' | 'itemTrailing' | 'itemTrailingIcon'>;
31
31
  [key: string]: any;
32
32
  };
33
- 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' | 'resetModelValueOnClear' | 'highlightOnHover' | 'openOnClick' | 'openOnFocus' | 'by'>, UseComponentIconsProps, /** @vue-ignore */ Omit<InputHTMLAttributes, 'disabled' | 'name' | 'type' | 'placeholder' | 'autofocus' | 'maxlength' | 'minlength' | 'pattern' | 'size' | 'min' | 'max' | 'step'> {
33
+ type ExcludeItem = {
34
+ type: 'label' | 'separator';
35
+ };
36
+ type IsClearUsed<M extends boolean, C extends boolean | object> = M extends false ? (C extends true ? null : C extends object ? null : never) : never;
37
+ export interface InputMenuProps<T extends ArrayOrNested<InputMenuItem> = ArrayOrNested<InputMenuItem>, VK extends GetItemKeys<T> | undefined = undefined, M extends boolean = false, Mod extends Omit<ModelModifiers, 'lazy'> = Omit<ModelModifiers, 'lazy'>, C extends boolean | object = false> extends Pick<ComboboxRootProps<T>, 'open' | 'defaultOpen' | 'disabled' | 'name' | 'resetSearchTermOnBlur' | 'resetSearchTermOnSelect' | 'resetModelValueOnClear' | 'highlightOnHover' | 'openOnClick' | 'openOnFocus' | 'by'>, UseComponentIconsProps, /** @vue-ignore */ Omit<InputHTMLAttributes, 'disabled' | 'name' | 'type' | 'placeholder' | 'autofocus' | 'maxlength' | 'minlength' | 'pattern' | 'size' | 'min' | 'max' | 'step'> {
34
38
  /**
35
39
  * The element or component this component should render as.
36
40
  * @defaultValue 'div'
@@ -90,11 +94,11 @@ export interface InputMenuProps<T extends ArrayOrNested<InputMenuItem> = ArrayOr
90
94
  * Can be an object to pass additional props to the Button.
91
95
  * @defaultValue false
92
96
  */
93
- clear?: boolean | Partial<Omit<ButtonProps, LinkPropsKeys>>;
97
+ clear?: (C & boolean) | (C & Partial<Omit<ButtonProps, LinkPropsKeys>>);
94
98
  /**
95
99
  * The icon displayed in the clear button.
96
100
  * @defaultValue icons.close
97
- * @IconifyIcon
101
+ * @IconComponent
98
102
  */
99
103
  clearIcon?: IconComponent;
100
104
  /**
@@ -146,10 +150,10 @@ export interface InputMenuProps<T extends ArrayOrNested<InputMenuItem> = ArrayOr
146
150
  descriptionKey?: GetItemKeys<T>;
147
151
  items?: T;
148
152
  /** The value of the InputMenu when initially rendered. Use when you do not need to control the state of the InputMenu. */
149
- defaultValue?: GetModelValue<T, VK, M>;
153
+ defaultValue?: ApplyModifiers<GetModelValue<T, VK, M, ExcludeItem>, Mod> | IsClearUsed<M, C>;
150
154
  /** The controlled value of the InputMenu. Can be binded-with with `v-model`. */
151
- modelValue?: GetModelValue<T, VK, M>;
152
- modelModifiers?: Omit<ModelModifiers<GetModelValue<T, VK, M>>, 'lazy'>;
155
+ modelValue?: ApplyModifiers<GetModelValue<T, VK, M, ExcludeItem>, Mod> | IsClearUsed<M, C>;
156
+ modelModifiers?: Mod;
153
157
  /** Whether multiple options can be selected or not. */
154
158
  multiple?: M & boolean;
155
159
  tag?: string;
@@ -159,6 +163,8 @@ export interface InputMenuProps<T extends ArrayOrNested<InputMenuItem> = ArrayOr
159
163
  tagColor?: BadgeProps['color'];
160
164
  /** Highlight the ring color like a focus state. */
161
165
  highlight?: boolean;
166
+ /** Keep the mobile text size on all breakpoints. (Left for backward compatibility.) */
167
+ fixed?: boolean;
162
168
  /**
163
169
  * Determines if custom user input that does not exist in options can be added.
164
170
  * @defaultValue false
@@ -180,7 +186,7 @@ export interface InputMenuProps<T extends ArrayOrNested<InputMenuItem> = ArrayOr
180
186
  class?: any;
181
187
  b24ui?: InputMenu['slots'];
182
188
  }
183
- export type InputMenuEmits<A extends ArrayOrNested<InputMenuItem>, VK extends GetItemKeys<A> | undefined, M extends boolean> = Pick<ComboboxRootEmits, 'update:open'> & {
189
+ export interface InputMenuEmits<A extends ArrayOrNested<InputMenuItem>, VK extends GetItemKeys<A> | undefined = undefined, M extends boolean = false, Mod extends Omit<ModelModifiers, 'lazy'> = Omit<ModelModifiers, 'lazy'>, C extends boolean | object = false> extends Pick<ComboboxRootEmits, 'update:open'> {
184
190
  'change': [event: Event];
185
191
  'blur': [event: FocusEvent];
186
192
  'focus': [event: FocusEvent];
@@ -190,24 +196,26 @@ export type InputMenuEmits<A extends ArrayOrNested<InputMenuItem>, VK extends Ge
190
196
  'highlight': [
191
197
  payload: {
192
198
  ref: HTMLElement;
193
- value: GetModelValue<A, VK, M>;
199
+ value: ApplyModifiers<GetModelValue<A, VK, M, ExcludeItem>, Mod> | IsClearUsed<M, C>;
194
200
  } | undefined
195
201
  ];
196
- 'remove-tag': [item: GetModelValue<A, VK, M>];
197
- } & GetModelValueEmits<A, VK, M>;
202
+ 'remove-tag': [item: ApplyModifiers<GetModelValue<A, VK, M, ExcludeItem>, Mod> | IsClearUsed<M, C>];
203
+ /** Event handler called when the value changes. */
204
+ 'update:modelValue': [value: ApplyModifiers<GetModelValue<A, VK, M, ExcludeItem>, Mod> | IsClearUsed<M, C>];
205
+ }
198
206
  type SlotProps<T extends InputMenuItem> = (props: {
199
207
  item: T;
200
208
  index: number;
201
209
  b24ui: InputMenu['b24ui'];
202
210
  }) => any;
203
- 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>> {
211
+ export interface InputMenuSlots<A extends ArrayOrNested<InputMenuItem> = ArrayOrNested<InputMenuItem>, VK extends GetItemKeys<A> | undefined = undefined, M extends boolean = false, Mod extends Omit<ModelModifiers, 'lazy'> = Omit<ModelModifiers, 'lazy'>, C extends boolean | object = false, T extends NestedItem<A> = NestedItem<A>> {
204
212
  'leading'(props: {
205
- modelValue?: GetModelValue<A, VK, M>;
213
+ modelValue?: ApplyModifiers<GetModelValue<A, VK, M, ExcludeItem>, Mod> | IsClearUsed<M, C>;
206
214
  open: boolean;
207
215
  b24ui: InputMenu['b24ui'];
208
216
  }): any;
209
217
  'trailing'(props: {
210
- modelValue?: GetModelValue<A, VK, M>;
218
+ modelValue?: ApplyModifiers<GetModelValue<A, VK, M, ExcludeItem>, Mod> | IsClearUsed<M, C>;
211
219
  open: boolean;
212
220
  b24ui: InputMenu['b24ui'];
213
221
  }): any;
@@ -238,23 +246,83 @@ export interface InputMenuSlots<A extends ArrayOrNested<InputMenuItem> = ArrayOr
238
246
  }
239
247
  declare const _default: typeof __VLS_export;
240
248
  export default _default;
241
- declare const __VLS_export: <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_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
242
- props: import("vue").PublicProps & __VLS_PrettifyLocal<(InputMenuProps<T, VK, M> & {
249
+ declare const __VLS_export: <T extends ArrayOrNested<InputMenuItem>, VK extends GetItemKeys<T> | undefined = undefined, M extends boolean = false, Mod extends Omit<ModelModifiers, "lazy"> = Omit<ModelModifiers, "lazy">, C extends boolean | object = 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<{
250
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<(InputMenuProps<T, VK, M, Mod, C> & {
243
251
  searchTerm?: string;
244
252
  }) & {
245
253
  onClear?: (() => any) | undefined;
246
254
  onBlur?: ((event: FocusEvent) => any) | undefined;
247
255
  onChange?: ((event: Event) => any) | undefined;
248
256
  onFocus?: ((event: FocusEvent) => any) | undefined;
249
- "onUpdate:open"?: ((value: boolean) => any) | undefined;
250
- onCreate?: ((item: string) => any) | undefined;
251
- "onUpdate:modelValue"?: ((value: GetModelValue<T, VK, M>) => any) | undefined;
252
257
  onHighlight?: ((payload: {
253
258
  ref: HTMLElement;
254
- value: GetModelValue<T, VK, M>;
259
+ value: (Mod extends {
260
+ number: true;
261
+ } ? (Mod extends {
262
+ optional: true;
263
+ } ? (Mod extends {
264
+ nullable: true;
265
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
266
+ nullable: true;
267
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) extends infer T_1 ? T_1 extends (Mod extends {
268
+ optional: true;
269
+ } ? (Mod extends {
270
+ nullable: true;
271
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
272
+ nullable: true;
273
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) ? T_1 extends string ? number | T_1 : T_1 : never : never : Mod extends {
274
+ optional: true;
275
+ } ? (Mod extends {
276
+ nullable: true;
277
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
278
+ nullable: true;
279
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | IsClearUsed<M, C>;
255
280
  } | undefined) => any) | undefined;
281
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
282
+ onCreate?: ((item: string) => any) | undefined;
283
+ "onUpdate:modelValue"?: ((value: (Mod extends {
284
+ number: true;
285
+ } ? (Mod extends {
286
+ optional: true;
287
+ } ? (Mod extends {
288
+ nullable: true;
289
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
290
+ nullable: true;
291
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) extends infer T_1 ? T_1 extends (Mod extends {
292
+ optional: true;
293
+ } ? (Mod extends {
294
+ nullable: true;
295
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
296
+ nullable: true;
297
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) ? T_1 extends string ? number | T_1 : T_1 : never : never : Mod extends {
298
+ optional: true;
299
+ } ? (Mod extends {
300
+ nullable: true;
301
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
302
+ nullable: true;
303
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | IsClearUsed<M, C>) => any) | undefined;
256
304
  "onUpdate:searchTerm"?: ((value: string) => any) | undefined;
257
- "onRemove-tag"?: ((item: GetModelValue<T, VK, M>) => any) | undefined;
305
+ "onRemove-tag"?: ((item: (Mod extends {
306
+ number: true;
307
+ } ? (Mod extends {
308
+ optional: true;
309
+ } ? (Mod extends {
310
+ nullable: true;
311
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
312
+ nullable: true;
313
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) extends infer T_1 ? T_1 extends (Mod extends {
314
+ optional: true;
315
+ } ? (Mod extends {
316
+ nullable: true;
317
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
318
+ nullable: true;
319
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) ? T_1 extends string ? number | T_1 : T_1 : never : never : Mod extends {
320
+ optional: true;
321
+ } ? (Mod extends {
322
+ nullable: true;
323
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
324
+ nullable: true;
325
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | IsClearUsed<M, C>) => any) | undefined;
258
326
  }> & (typeof globalThis extends {
259
327
  __VLS_PROPS_FALLBACK: infer P;
260
328
  } ? P : {});
@@ -263,11 +331,71 @@ declare const __VLS_export: <T extends ArrayOrNested<InputMenuItem>, VK extends
263
331
  viewportRef: Readonly<import("vue").Ref<HTMLDivElement | null, HTMLDivElement | null>>;
264
332
  }>) => void;
265
333
  attrs: any;
266
- slots: InputMenuSlots<T, VK, M, NestedItem<T>>;
267
- 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: {
334
+ slots: InputMenuSlots<T, VK, M, Mod, C, NestedItem<T>>;
335
+ emit: (((evt: "clear") => void) & ((evt: "blur", event: FocusEvent) => void) & ((evt: "change", event: Event) => void) & ((evt: "focus", event: FocusEvent) => void) & ((evt: "highlight", payload: {
268
336
  ref: HTMLElement;
269
- value: GetModelValue<T, VK, M>;
270
- } | undefined) => void) & ((evt: "remove-tag", item: GetModelValue<T, VK, M>) => void)) & ((event: "update:searchTerm", value: string) => void);
337
+ value: (Mod extends {
338
+ number: true;
339
+ } ? (Mod extends {
340
+ optional: true;
341
+ } ? (Mod extends {
342
+ nullable: true;
343
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
344
+ nullable: true;
345
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) extends infer T_1 ? T_1 extends (Mod extends {
346
+ optional: true;
347
+ } ? (Mod extends {
348
+ nullable: true;
349
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
350
+ nullable: true;
351
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) ? T_1 extends string ? number | T_1 : T_1 : never : never : Mod extends {
352
+ optional: true;
353
+ } ? (Mod extends {
354
+ nullable: true;
355
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
356
+ nullable: true;
357
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | IsClearUsed<M, C>;
358
+ } | undefined) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "create", item: string) => void) & ((evt: "update:modelValue", value: (Mod extends {
359
+ number: true;
360
+ } ? (Mod extends {
361
+ optional: true;
362
+ } ? (Mod extends {
363
+ nullable: true;
364
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
365
+ nullable: true;
366
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) extends infer T_1 ? T_1 extends (Mod extends {
367
+ optional: true;
368
+ } ? (Mod extends {
369
+ nullable: true;
370
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
371
+ nullable: true;
372
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) ? T_1 extends string ? number | T_1 : T_1 : never : never : Mod extends {
373
+ optional: true;
374
+ } ? (Mod extends {
375
+ nullable: true;
376
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
377
+ nullable: true;
378
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | IsClearUsed<M, C>) => void) & ((evt: "remove-tag", item: (Mod extends {
379
+ number: true;
380
+ } ? (Mod extends {
381
+ optional: true;
382
+ } ? (Mod extends {
383
+ nullable: true;
384
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
385
+ nullable: true;
386
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) extends infer T_1 ? T_1 extends (Mod extends {
387
+ optional: true;
388
+ } ? (Mod extends {
389
+ nullable: true;
390
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
391
+ nullable: true;
392
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) ? T_1 extends string ? number | T_1 : T_1 : never : never : Mod extends {
393
+ optional: true;
394
+ } ? (Mod extends {
395
+ nullable: true;
396
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
397
+ nullable: true;
398
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | IsClearUsed<M, C>) => void)) & ((event: "update:searchTerm", value: string) => void);
271
399
  }>) => import("vue").VNode & {
272
400
  __ctx?: Awaited<typeof __VLS_setup>;
273
401
  };
@@ -4,14 +4,16 @@ import theme from "#build/b24ui/input-menu";
4
4
 
5
5
  <script setup>
6
6
  import { computed, useTemplateRef, toRef, onMounted, toRaw, nextTick } from "vue";
7
- import { ComboboxRoot, ComboboxArrow, ComboboxAnchor, ComboboxInput, ComboboxTrigger, ComboboxCancel, ComboboxPortal, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxVirtualizer, ComboboxLabel, ComboboxSeparator, ComboboxItem, ComboboxItemIndicator, TagsInputRoot, TagsInputItem, TagsInputItemText, TagsInputItemDelete, TagsInputInput, useForwardPropsEmits, useFilter } from "reka-ui";
7
+ import { ComboboxRoot, ComboboxArrow, ComboboxAnchor, ComboboxInput, ComboboxTrigger, ComboboxCancel, ComboboxPortal, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxVirtualizer, ComboboxLabel, ComboboxSeparator, ComboboxItem, ComboboxItemIndicator, TagsInputRoot, TagsInputItem, TagsInputItemText, TagsInputItemDelete, TagsInputInput, useForwardPropsEmits } from "reka-ui";
8
8
  import { defu } from "defu";
9
9
  import { isEqual } from "ohash/utils";
10
10
  import { reactivePick, createReusableTemplate } from "@vueuse/core";
11
11
  import { useAppConfig } from "#imports";
12
+ import { useComponentUI } from "../composables/useComponentUI";
12
13
  import { useFieldGroup } from "../composables/useFieldGroup";
13
14
  import { useComponentIcons } from "../composables/useComponentIcons";
14
15
  import { useFormField } from "../composables/useFormField";
16
+ import { useFilter } from "../composables/internal/useFilter";
15
17
  import { useLocale } from "../composables/useLocale";
16
18
  import { usePortal } from "../composables/usePortal";
17
19
  import { compare, get, getDisplayValue, isArrayOfArray, looseToNumber } from "../utils";
@@ -51,11 +53,12 @@ const props = defineProps({
51
53
  items: { type: null, required: false },
52
54
  defaultValue: { type: null, required: false },
53
55
  modelValue: { type: null, required: false },
54
- modelModifiers: { type: Object, required: false },
56
+ modelModifiers: { type: null, required: false },
55
57
  multiple: { type: Boolean, required: false },
56
58
  tag: { type: String, required: false },
57
59
  tagColor: { type: null, required: false },
58
60
  highlight: { type: Boolean, required: false },
61
+ fixed: { type: Boolean, required: false },
59
62
  createItem: { type: [Boolean, String, Object], required: false },
60
63
  filterFields: { type: Array, required: false },
61
64
  ignoreFilter: { type: Boolean, required: false },
@@ -77,12 +80,13 @@ const props = defineProps({
77
80
  loading: { type: Boolean, required: false },
78
81
  trailing: { type: Boolean, required: false }
79
82
  });
80
- const emits = defineEmits(["update:open", "change", "blur", "focus", "create", "clear", "highlight", "remove-tag", "update:modelValue"]);
83
+ const emits = defineEmits(["change", "blur", "focus", "create", "clear", "highlight", "remove-tag", "update:modelValue", "update:open"]);
81
84
  const slots = defineSlots();
82
85
  const searchTerm = defineModel("searchTerm", { type: String, ...{ default: "" } });
83
86
  const { t } = useLocale();
84
87
  const appConfig = useAppConfig();
85
- const { contains } = useFilter({ sensitivity: "base" });
88
+ const uiProp = useComponentUI("inputMenu", props);
89
+ const { filterGroups } = useFilter();
86
90
  const rootProps = useForwardPropsEmits(reactivePick(props, "as", "modelValue", "defaultValue", "open", "defaultOpen", "required", "multiple", "resetSearchTermOnBlur", "resetSearchTermOnSelect", "resetModelValueOnClear", "highlightOnHover", "openOnClick", "openOnFocus", "by"), emits);
87
91
  const portalProps = usePortal(toRef(() => props.portal));
88
92
  const contentProps = toRef(() => defu(props.content, { side: "bottom", sideOffset: 8, collisionPadding: 8, position: "popper" }));
@@ -119,6 +123,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.inputMe
119
123
  size: inputSize?.value,
120
124
  loading: props.loading,
121
125
  highlight: highlight.value,
126
+ fixed: props.fixed,
122
127
  rounded: Boolean(props.rounded),
123
128
  noBorder: Boolean(props.noBorder),
124
129
  underline: Boolean(props.underline),
@@ -144,23 +149,10 @@ const filteredGroups = computed(() => {
144
149
  return groups.value;
145
150
  }
146
151
  const fields = Array.isArray(props.filterFields) ? props.filterFields : [props.labelKey];
147
- return groups.value.map((items2) => items2.filter((item) => {
148
- if (item === void 0 || item === null) {
149
- return false;
150
- }
151
- if (typeof item !== "object") {
152
- return contains(String(item), searchTerm.value);
153
- }
154
- if (item.type && ["label", "separator"].includes(item.type)) {
155
- return true;
156
- }
157
- return fields.some((field) => {
158
- const value = get(item, field);
159
- return value !== void 0 && value !== null && contains(String(value), searchTerm.value);
160
- });
161
- })).filter((group) => group.filter(
162
- (item) => !isInputItem(item) || (!item.type || !["label", "separator"].includes(item.type))
163
- ).length > 0);
152
+ return filterGroups(groups.value, searchTerm.value, {
153
+ fields,
154
+ isStructural: (item) => isInputItem(item) && !!item.type && ["label", "separator"].includes(item.type)
155
+ });
164
156
  });
165
157
  const filteredItems = computed(() => filteredGroups.value.flatMap((group) => group));
166
158
  const createItem = computed(() => {
@@ -192,7 +184,7 @@ function onUpdate(value) {
192
184
  if (toRaw(props.modelValue) === value) {
193
185
  return;
194
186
  }
195
- if (props.modelModifiers?.trim) {
187
+ if (props.modelModifiers?.trim && (typeof value === "string" || value === null || value === void 0)) {
196
188
  value = value?.trim() ?? null;
197
189
  }
198
190
  if (props.modelModifiers?.number) {
@@ -201,7 +193,7 @@ function onUpdate(value) {
201
193
  if (props.modelModifiers?.nullable) {
202
194
  value ??= null;
203
195
  }
204
- if (props.modelModifiers?.optional) {
196
+ if (props.modelModifiers?.optional && !props.modelModifiers?.nullable && value !== null) {
205
197
  value ??= void 0;
206
198
  }
207
199
  const event = new Event("change", { target: { value } });
@@ -285,16 +277,16 @@ defineExpose({
285
277
  <DefineCreateItemTemplate>
286
278
  <ComboboxItem
287
279
  data-slot="item"
288
- :class="b24ui.item({ addNew: true, class: props.b24ui?.item })"
280
+ :class="b24ui.item({ addNew: true, class: uiProp?.item })"
289
281
  :value="searchTerm"
290
282
  @select="onCreate"
291
283
  >
292
- <span data-slot="itemLabel" :class="b24ui.itemLabel({ addNew: true, class: props.b24ui?.itemLabel })">
284
+ <span data-slot="itemLabel" :class="b24ui.itemLabel({ addNew: true, class: uiProp?.itemLabel })">
293
285
  <slot name="create-item-label" :item="searchTerm">
294
286
  <Component
295
287
  :is="icons.plus"
296
288
  data-slot="itemLeadingIcon"
297
- :class="b24ui.itemLeadingIcon({ addNew: true, class: props.b24ui?.itemLeadingIcon })"
289
+ :class="b24ui.itemLeadingIcon({ addNew: true, class: uiProp?.itemLeadingIcon })"
298
290
  />
299
291
  {{ t("inputMenu.create", { label: searchTerm }) }}
300
292
  </slot>
@@ -303,27 +295,27 @@ defineExpose({
303
295
  </DefineCreateItemTemplate>
304
296
 
305
297
  <DefineItemTemplate v-slot="{ item, index }">
306
- <ComboboxLabel v-if="isInputItem(item) && item.type === 'label'" data-slot="label" :class="b24ui.label({ class: [props.b24ui?.label, item.b24ui?.label, item.class] })">
298
+ <ComboboxLabel v-if="isInputItem(item) && item.type === 'label'" data-slot="label" :class="b24ui.label({ class: [uiProp?.label, item.b24ui?.label, item.class] })">
307
299
  {{ get(item, props.labelKey) }}
308
300
  </ComboboxLabel>
309
301
 
310
- <ComboboxSeparator v-else-if="isInputItem(item) && item.type === 'separator'" data-slot="separator" :class="b24ui.separator({ class: [props.b24ui?.separator, item.b24ui?.separator, item.class] })" />
302
+ <ComboboxSeparator v-else-if="isInputItem(item) && item.type === 'separator'" data-slot="separator" :class="b24ui.separator({ class: [uiProp?.separator, item.b24ui?.separator, item.class] })" />
311
303
 
312
304
  <ComboboxItem
313
305
  v-else
314
306
  data-slot="item"
315
- :class="b24ui.item({ class: [props.b24ui?.item, isInputItem(item) && item.b24ui?.item, isInputItem(item) && item.class], colorItem: isInputItem(item) ? item?.color : void 0 })"
307
+ :class="b24ui.item({ class: [uiProp?.item, isInputItem(item) && item.b24ui?.item, isInputItem(item) && item.class], colorItem: isInputItem(item) ? item?.color : void 0 })"
316
308
  :disabled="isInputItem(item) && item.disabled"
317
309
  :value="props.valueKey && isInputItem(item) ? get(item, props.valueKey) : item"
318
310
  @select="onSelect($event, item)"
319
311
  >
320
312
  <slot name="item" :item="item" :index="index" :b24ui="b24ui">
321
313
  <slot name="item-leading" :item="item" :index="index" :b24ui="b24ui">
322
- <B24Avatar v-if="isInputItem(item) && item.avatar" :size="item.b24ui?.itemLeadingAvatarSize || props.b24ui?.itemLeadingAvatarSize || b24ui.itemLeadingAvatarSize()" v-bind="item.avatar" data-slot="itemLeadingAvatar" :class="b24ui.itemLeadingAvatar({ class: [props.b24ui?.itemLeadingAvatar, item.b24ui?.itemLeadingAvatar], colorItem: item?.color })" />
314
+ <B24Avatar v-if="isInputItem(item) && item.avatar" :size="item.b24ui?.itemLeadingAvatarSize || uiProp?.itemLeadingAvatarSize || b24ui.itemLeadingAvatarSize()" v-bind="item.avatar" data-slot="itemLeadingAvatar" :class="b24ui.itemLeadingAvatar({ class: [uiProp?.itemLeadingAvatar, item.b24ui?.itemLeadingAvatar], colorItem: item?.color })" />
323
315
  </slot>
324
316
 
325
- <span data-slot="itemWrapper" :class="b24ui.itemWrapper({ class: [props.b24ui?.itemWrapper, isInputItem(item) && item.b24ui?.itemWrapper] })">
326
- <span data-slot="itemLabel" :class="b24ui.itemLabel({ class: [props.b24ui?.itemLabel, isInputItem(item) && item.b24ui?.itemLabel] })">
317
+ <span data-slot="itemWrapper" :class="b24ui.itemWrapper({ class: [uiProp?.itemWrapper, isInputItem(item) && item.b24ui?.itemWrapper] })">
318
+ <span data-slot="itemLabel" :class="b24ui.itemLabel({ class: [uiProp?.itemLabel, isInputItem(item) && item.b24ui?.itemLabel] })">
327
319
  <slot name="item-label" :item="item" :index="index">
328
320
  {{ isInputItem(item) ? get(item, props.labelKey) : item }}
329
321
  </slot>
@@ -332,7 +324,7 @@ defineExpose({
332
324
  <span
333
325
  v-if="isInputItem(item) && (get(item, props.descriptionKey) || !!slots['item-description'])"
334
326
  data-slot="itemDescription"
335
- :class="b24ui.itemDescription({ class: [props.b24ui?.itemDescription, isInputItem(item) && item.b24ui?.itemDescription] })"
327
+ :class="b24ui.itemDescription({ class: [uiProp?.itemDescription, isInputItem(item) && item.b24ui?.itemDescription] })"
336
328
  >
337
329
  <slot
338
330
  name="item-description"
@@ -344,12 +336,12 @@ defineExpose({
344
336
  </span>
345
337
  </span>
346
338
 
347
- <span data-slot="itemTrailing" :class="b24ui.itemTrailing({ class: [props.b24ui?.itemTrailing, isInputItem(item) && item.b24ui?.itemTrailing], colorItem: isInputItem(item) ? item?.color : void 0 })">
339
+ <span data-slot="itemTrailing" :class="b24ui.itemTrailing({ class: [uiProp?.itemTrailing, isInputItem(item) && item.b24ui?.itemTrailing], colorItem: isInputItem(item) ? item?.color : void 0 })">
348
340
  <ComboboxItemIndicator as-child>
349
341
  <Component
350
342
  :is="selectedIcon || icons.check"
351
343
  data-slot="itemTrailingIcon"
352
- :class="b24ui.itemTrailingIcon({ class: [props.b24ui?.itemTrailingIcon, isInputItem(item) && item.b24ui?.itemTrailingIcon], colorItem: isInputItem(item) ? item?.color : void 0 })"
344
+ :class="b24ui.itemTrailingIcon({ class: [uiProp?.itemTrailingIcon, isInputItem(item) && item.b24ui?.itemTrailingIcon], colorItem: isInputItem(item) ? item?.color : void 0 })"
353
345
  />
354
346
  </ComboboxItemIndicator>
355
347
 
@@ -358,16 +350,16 @@ defineExpose({
358
350
  :is="item.icon"
359
351
  v-if="isInputItem(item) && item.icon"
360
352
  data-slot="itemLeadingIcon"
361
- :class="b24ui.itemLeadingIcon({ class: [props.b24ui?.itemLeadingIcon, item.b24ui?.itemLeadingIcon], colorItem: item?.color })"
353
+ :class="b24ui.itemLeadingIcon({ class: [uiProp?.itemLeadingIcon, item.b24ui?.itemLeadingIcon], colorItem: item?.color })"
362
354
  />
363
355
  <B24Chip
364
356
  v-else-if="isInputItem(item) && item.chip"
365
- :size="item.b24ui?.itemLeadingChipSize || props.b24ui?.itemLeadingChipSize || b24ui.itemLeadingChipSize()"
357
+ :size="item.b24ui?.itemLeadingChipSize || uiProp?.itemLeadingChipSize || b24ui.itemLeadingChipSize()"
366
358
  inset
367
359
  standalone
368
360
  v-bind="item.chip"
369
361
  data-slot="itemLeadingChip"
370
- :class="b24ui.itemLeadingChip({ class: [props.b24ui?.itemLeadingChip, item.b24ui?.itemLeadingChip], colorItem: item?.color })"
362
+ :class="b24ui.itemLeadingChip({ class: [uiProp?.itemLeadingChip, item.b24ui?.itemLeadingChip], colorItem: item?.color })"
371
363
  />
372
364
  </slot>
373
365
  </span>
@@ -381,7 +373,7 @@ defineExpose({
381
373
  :name="name"
382
374
  :disabled="disabled"
383
375
  data-slot="root"
384
- :class="b24ui.root({ class: [props.b24ui?.root, props.class] })"
376
+ :class="b24ui.root({ class: [uiProp?.root, props.class] })"
385
377
  :as-child="!!multiple"
386
378
  ignore-filter
387
379
  @update:model-value="onUpdate"
@@ -390,12 +382,12 @@ defineExpose({
390
382
  <B24Badge
391
383
  v-if="!multiple && isTag"
392
384
  data-slot="tag"
393
- :class="b24ui.tag({ class: props.b24ui?.tag })"
385
+ :class="b24ui.tag({ class: uiProp?.tag })"
394
386
  :color="props.tagColor"
395
387
  :label="props.tag"
396
388
  size="xs"
397
389
  />
398
- <ComboboxAnchor :as-child="!multiple" data-slot="base" :class="b24ui.base({ class: props.b24ui?.base })">
390
+ <ComboboxAnchor :as-child="!multiple" data-slot="base" :class="b24ui.base({ class: uiProp?.base })">
399
391
  <TagsInputRoot
400
392
  v-if="multiple"
401
393
  v-slot="{ modelValue: tags }"
@@ -411,24 +403,24 @@ defineExpose({
411
403
  <B24Badge
412
404
  v-if="!!multiple && isTag"
413
405
  data-slot="tag"
414
- :class="b24ui.tag({ class: props.b24ui?.tag })"
406
+ :class="b24ui.tag({ class: uiProp?.tag })"
415
407
  :color="props.tagColor"
416
408
  :label="props.tag"
417
409
  size="xs"
418
410
  />
419
- <TagsInputItem v-for="(item, index) in tags" :key="index" :value="item" data-slot="tagsItem" :class="b24ui.tagsItem({ class: [props.b24ui?.tagsItem, isInputItem(item) && item.b24ui?.tagsItem] })">
420
- <TagsInputItemText data-slot="tagsItemText" :class="b24ui.tagsItemText({ class: [props.b24ui?.tagsItemText, isInputItem(item) && item.b24ui?.tagsItemText] })">
411
+ <TagsInputItem v-for="(item, index) in tags" :key="index" :value="item" data-slot="tagsItem" :class="b24ui.tagsItem({ class: [uiProp?.tagsItem, isInputItem(item) && item.b24ui?.tagsItem] })">
412
+ <TagsInputItemText data-slot="tagsItemText" :class="b24ui.tagsItemText({ class: [uiProp?.tagsItemText, isInputItem(item) && item.b24ui?.tagsItemText] })">
421
413
  <slot name="tags-item-text" :item="item" :index="index">
422
414
  {{ displayValue(item) }}
423
415
  </slot>
424
416
  </TagsInputItemText>
425
417
 
426
- <TagsInputItemDelete data-slot="tagsItemDelete" :class="b24ui.tagsItemDelete({ class: [props.b24ui?.tagsItemDelete, isInputItem(item) && item.b24ui?.tagsItemDelete] })" :disabled="disabled">
418
+ <TagsInputItemDelete data-slot="tagsItemDelete" :class="b24ui.tagsItemDelete({ class: [uiProp?.tagsItemDelete, isInputItem(item) && item.b24ui?.tagsItemDelete] })" :disabled="disabled">
427
419
  <slot name="tags-item-delete" :item="item" :index="index" :b24ui="b24ui">
428
420
  <Component
429
421
  :is="deleteIcon || icons.close"
430
422
  data-slot="tagsItemDeleteIcon"
431
- :class="b24ui.tagsItemDeleteIcon({ class: [props.b24ui?.tagsItemDeleteIcon, isInputItem(item) && item.b24ui?.tagsItemDeleteIcon] })"
423
+ :class="b24ui.tagsItemDeleteIcon({ class: [uiProp?.tagsItemDeleteIcon, isInputItem(item) && item.b24ui?.tagsItemDeleteIcon] })"
432
424
  />
433
425
  </slot>
434
426
  </TagsInputItemDelete>
@@ -441,7 +433,7 @@ defineExpose({
441
433
  v-bind="{ ...$attrs, ...ariaAttrs }"
442
434
  :placeholder="placeholder"
443
435
  data-slot="tagsInput"
444
- :class="b24ui.tagsInput({ class: props.b24ui?.tagsInput })"
436
+ :class="b24ui.tagsInput({ class: uiProp?.tagsInput })"
445
437
  @change.stop
446
438
  />
447
439
  </ComboboxInput>
@@ -462,25 +454,25 @@ defineExpose({
462
454
  @update:model-value="searchTerm = $event"
463
455
  />
464
456
 
465
- <span v-if="isLeading || !!avatar || !!slots.leading" data-slot="leading" :class="b24ui.leading({ class: props.b24ui?.leading })">
457
+ <span v-if="isLeading || !!avatar || !!slots.leading" data-slot="leading" :class="b24ui.leading({ class: uiProp?.leading })">
466
458
  <slot name="leading" :model-value="modelValue" :open="open" :b24ui="b24ui">
467
459
  <Component
468
460
  :is="leadingIconName"
469
461
  v-if="isLeading && leadingIconName"
470
462
  data-slot="leadingIcon"
471
- :class="b24ui.leadingIcon({ class: props.b24ui?.leadingIcon })"
463
+ :class="b24ui.leadingIcon({ class: uiProp?.leadingIcon })"
472
464
  />
473
465
  <B24Avatar
474
466
  v-else-if="!!avatar"
475
- :size="props.b24ui?.itemLeadingAvatarSize || b24ui.itemLeadingAvatarSize()"
467
+ :size="uiProp?.itemLeadingAvatarSize || b24ui.itemLeadingAvatarSize()"
476
468
  v-bind="avatar"
477
469
  data-slot="itemLeadingAvatar"
478
- :class="b24ui.itemLeadingAvatar({ class: props.b24ui?.itemLeadingAvatar })"
470
+ :class="b24ui.itemLeadingAvatar({ class: uiProp?.itemLeadingAvatar })"
479
471
  />
480
472
  </slot>
481
473
  </span>
482
474
 
483
- <ComboboxTrigger v-if="isTrailing || !!slots.trailing || !!clear" data-slot="trailing" :class="b24ui.trailing({ class: props.b24ui?.trailing })">
475
+ <ComboboxTrigger v-if="isTrailing || !!slots.trailing || !!clear" data-slot="trailing" :class="b24ui.trailing({ class: uiProp?.trailing })">
484
476
  <slot name="trailing" :model-value="modelValue" :open="open" :b24ui="b24ui">
485
477
  <ComboboxCancel v-if="!!clear && !isModelValueEmpty(modelValue)" as-child>
486
478
  <B24Button
@@ -491,7 +483,7 @@ defineExpose({
491
483
  tabindex="-1"
492
484
  v-bind="clearProps"
493
485
  data-slot="trailingClear"
494
- :class="b24ui.trailingClear({ class: props.b24ui?.trailingClear })"
486
+ :class="b24ui.trailingClear({ class: uiProp?.trailingClear })"
495
487
  @click.stop="onClear"
496
488
  />
497
489
  </ComboboxCancel>
@@ -500,17 +492,17 @@ defineExpose({
500
492
  :is="trailingIconName"
501
493
  v-else-if="trailingIconName"
502
494
  data-slot="trailingIcon"
503
- :class="b24ui.trailingIcon({ class: props.b24ui?.trailingIcon })"
495
+ :class="b24ui.trailingIcon({ class: uiProp?.trailingIcon })"
504
496
  />
505
497
  </slot>
506
498
  </ComboboxTrigger>
507
499
  </ComboboxAnchor>
508
500
 
509
501
  <ComboboxPortal v-bind="portalProps">
510
- <ComboboxContent data-slot="content" :class="b24ui.content({ class: props.b24ui?.content })" v-bind="contentProps" @focus-outside.prevent>
502
+ <ComboboxContent data-slot="content" :class="b24ui.content({ class: uiProp?.content })" v-bind="contentProps" @focus-outside.prevent>
511
503
  <slot name="content-top" />
512
504
 
513
- <ComboboxEmpty data-slot="empty" :class="b24ui.empty({ class: props.b24ui?.empty })">
505
+ <ComboboxEmpty data-slot="empty" :class="b24ui.empty({ class: uiProp?.empty })">
514
506
  <slot name="empty" :search-term="searchTerm">
515
507
  {{ searchTerm ? t("inputMenu.noMatch", { searchTerm }) : t("inputMenu.noData") }}
516
508
  </slot>
@@ -520,7 +512,7 @@ defineExpose({
520
512
  ref="viewportRef"
521
513
  role="presentation"
522
514
  data-slot="viewport"
523
- :class="b24ui.viewport({ class: props.b24ui?.viewport })"
515
+ :class="b24ui.viewport({ class: uiProp?.viewport })"
524
516
  >
525
517
  <template v-if="!!virtualize">
526
518
  <ReuseCreateItemTemplate v-if="createItem && createItemPosition === 'top'" />
@@ -538,15 +530,15 @@ defineExpose({
538
530
  </template>
539
531
 
540
532
  <template v-else>
541
- <ComboboxGroup v-if="createItem && createItemPosition === 'top'" data-slot="group" :class="b24ui.group({ class: props.b24ui?.group })">
533
+ <ComboboxGroup v-if="createItem && createItemPosition === 'top'" data-slot="group" :class="b24ui.group({ class: uiProp?.group })">
542
534
  <ReuseCreateItemTemplate />
543
535
  </ComboboxGroup>
544
536
 
545
- <ComboboxGroup v-for="(group, groupIndex) in filteredGroups" :key="`group-${groupIndex}`" data-slot="group" :class="b24ui.group({ class: props.b24ui?.group })">
537
+ <ComboboxGroup v-for="(group, groupIndex) in filteredGroups" :key="`group-${groupIndex}`" data-slot="group" :class="b24ui.group({ class: uiProp?.group })">
546
538
  <ReuseItemTemplate v-for="(item, index) in group" :key="`group-${groupIndex}-${index}`" :item="item" :index="index" />
547
539
  </ComboboxGroup>
548
540
 
549
- <ComboboxGroup v-if="createItem && createItemPosition === 'bottom'" data-slot="group" :class="b24ui.group({ class: props.b24ui?.group })">
541
+ <ComboboxGroup v-if="createItem && createItemPosition === 'bottom'" data-slot="group" :class="b24ui.group({ class: uiProp?.group })">
550
542
  <ReuseCreateItemTemplate />
551
543
  </ComboboxGroup>
552
544
  </template>
@@ -554,7 +546,7 @@ defineExpose({
554
546
 
555
547
  <slot name="content-bottom" />
556
548
 
557
- <ComboboxArrow v-if="!!arrow" v-bind="arrowProps" data-slot="arrow" :class="b24ui.arrow({ class: props.b24ui?.arrow })" />
549
+ <ComboboxArrow v-if="!!arrow" v-bind="arrowProps" data-slot="arrow" :class="b24ui.arrow({ class: uiProp?.arrow })" />
558
550
  </ComboboxContent>
559
551
  </ComboboxPortal>
560
552
  </ComboboxRoot>