@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
@@ -4,13 +4,15 @@ import theme from "#build/b24ui/select-menu";
4
4
 
5
5
  <script setup>
6
6
  import { useTemplateRef, computed, onMounted, toRef, toRaw } from "vue";
7
- import { Primitive, ComboboxRoot, ComboboxArrow, ComboboxAnchor, ComboboxInput, ComboboxTrigger, ComboboxCancel, ComboboxPortal, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxVirtualizer, ComboboxLabel, ComboboxSeparator, ComboboxItem, ComboboxItemIndicator, FocusScope, useForwardPropsEmits, useFilter } from "reka-ui";
7
+ import { Primitive, ComboboxRoot, ComboboxArrow, ComboboxAnchor, ComboboxInput, ComboboxTrigger, ComboboxCancel, ComboboxPortal, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxVirtualizer, ComboboxLabel, ComboboxSeparator, ComboboxItem, ComboboxItemIndicator, FocusScope, useForwardPropsEmits } from "reka-ui";
8
8
  import { defu } from "defu";
9
9
  import { reactivePick, createReusableTemplate } from "@vueuse/core";
10
10
  import { useAppConfig } from "#imports";
11
+ import { useComponentUI } from "../composables/useComponentUI";
11
12
  import { useFieldGroup } from "../composables/useFieldGroup";
12
13
  import { useComponentIcons } from "../composables/useComponentIcons";
13
14
  import { useFormField } from "../composables/useFormField";
15
+ import { useFilter } from "../composables/internal/useFilter";
14
16
  import { useLocale } from "../composables/useLocale";
15
17
  import { usePortal } from "../composables/usePortal";
16
18
  import { compare, get, getDisplayValue, isArrayOfArray, looseToNumber } from "../utils";
@@ -50,7 +52,7 @@ const props = defineProps({
50
52
  items: { type: null, required: false },
51
53
  defaultValue: { type: null, required: false },
52
54
  modelValue: { type: null, required: false },
53
- modelModifiers: { type: Object, required: false },
55
+ modelModifiers: { type: null, required: false },
54
56
  multiple: { type: Boolean, required: false },
55
57
  highlight: { type: Boolean, required: false },
56
58
  createItem: { type: [Boolean, String, Object], required: false },
@@ -74,12 +76,13 @@ const props = defineProps({
74
76
  loading: { type: Boolean, required: false },
75
77
  trailing: { type: Boolean, required: false }
76
78
  });
77
- const emits = defineEmits(["update:open", "change", "blur", "focus", "create", "clear", "highlight", "update:modelValue"]);
79
+ const emits = defineEmits(["change", "blur", "focus", "create", "clear", "highlight", "update:modelValue", "update:open"]);
78
80
  const slots = defineSlots();
79
81
  const searchTerm = defineModel("searchTerm", { type: String, ...{ default: "" } });
80
82
  const { t } = useLocale();
81
83
  const appConfig = useAppConfig();
82
- const { contains } = useFilter({ sensitivity: "base" });
84
+ const uiProp = useComponentUI("selectMenu", props);
85
+ const { filterGroups } = useFilter();
83
86
  const rootProps = useForwardPropsEmits(reactivePick(props, "modelValue", "defaultValue", "open", "defaultOpen", "required", "multiple", "resetSearchTermOnBlur", "resetSearchTermOnSelect", "resetModelValueOnClear", "highlightOnHover", "by"), emits);
84
87
  const portalProps = usePortal(toRef(() => props.portal));
85
88
  const contentProps = toRef(() => defu(props.content, { side: "bottom", sideOffset: 8, collisionPadding: 8, position: "popper" }));
@@ -150,23 +153,10 @@ const filteredGroups = computed(() => {
150
153
  return groups.value;
151
154
  }
152
155
  const fields = Array.isArray(props.filterFields) ? props.filterFields : [props.labelKey];
153
- return groups.value.map((items2) => items2.filter((item) => {
154
- if (item === void 0 || item === null) {
155
- return false;
156
- }
157
- if (typeof item !== "object") {
158
- return contains(String(item), searchTerm.value);
159
- }
160
- if (item.type && ["label", "separator"].includes(item.type)) {
161
- return true;
162
- }
163
- return fields.some((field) => {
164
- const value = get(item, field);
165
- return value !== void 0 && value !== null && contains(String(value), searchTerm.value);
166
- });
167
- })).filter((group) => group.filter(
168
- (item) => !isSelectItem(item) || (!item.type || !["label", "separator"].includes(item.type))
169
- ).length > 0);
156
+ return filterGroups(groups.value, searchTerm.value, {
157
+ fields,
158
+ isStructural: (item) => isSelectItem(item) && !!item.type && ["label", "separator"].includes(item.type)
159
+ });
170
160
  });
171
161
  const filteredItems = computed(() => filteredGroups.value.flatMap((group) => group));
172
162
  const createItem = computed(() => {
@@ -197,7 +187,7 @@ function onUpdate(value) {
197
187
  if (toRaw(props.modelValue) === value) {
198
188
  return;
199
189
  }
200
- if (props.modelModifiers?.trim) {
190
+ if (props.modelModifiers?.trim && (typeof value === "string" || value === null || value === void 0)) {
201
191
  value = value?.trim() ?? null;
202
192
  }
203
193
  if (props.modelModifiers?.number) {
@@ -206,7 +196,7 @@ function onUpdate(value) {
206
196
  if (props.modelModifiers?.nullable) {
207
197
  value ??= null;
208
198
  }
209
- if (props.modelModifiers?.optional) {
199
+ if (props.modelModifiers?.optional && !props.modelModifiers?.nullable && value !== null) {
210
200
  value ??= void 0;
211
201
  }
212
202
  const event = new Event("change", { target: { value } });
@@ -274,16 +264,16 @@ defineExpose({
274
264
  <DefineCreateItemTemplate>
275
265
  <ComboboxItem
276
266
  data-slot="item"
277
- :class="b24ui.item({ addNew: true, class: props.b24ui?.item })"
267
+ :class="b24ui.item({ addNew: true, class: uiProp?.item })"
278
268
  :value="searchTerm"
279
269
  @select="onCreate"
280
270
  >
281
- <span data-slot="itemLabel" :class="b24ui.itemLabel({ addNew: true, class: props.b24ui?.itemLabel })">
271
+ <span data-slot="itemLabel" :class="b24ui.itemLabel({ addNew: true, class: uiProp?.itemLabel })">
282
272
  <slot name="create-item-label" :item="searchTerm">
283
273
  <Component
284
274
  :is="icons.plus"
285
275
  data-slot="itemLeadingIcon"
286
- :class="b24ui.itemLeadingIcon({ addNew: true, class: props.b24ui?.itemLeadingIcon })"
276
+ :class="b24ui.itemLeadingIcon({ addNew: true, class: uiProp?.itemLeadingIcon })"
287
277
  />
288
278
  {{ t("selectMenu.create", { label: searchTerm }) }}
289
279
  </slot>
@@ -295,7 +285,7 @@ defineExpose({
295
285
  <ComboboxLabel
296
286
  v-if="isSelectItem(item) && item.type === 'label'"
297
287
  data-slot="label"
298
- :class="b24ui.label({ class: [props.b24ui?.label, item.b24ui?.label, item.class] })"
288
+ :class="b24ui.label({ class: [uiProp?.label, item.b24ui?.label, item.class] })"
299
289
  >
300
290
  {{ get(item, props.labelKey) }}
301
291
  </ComboboxLabel>
@@ -303,13 +293,13 @@ defineExpose({
303
293
  <ComboboxSeparator
304
294
  v-else-if="isSelectItem(item) && item.type === 'separator'"
305
295
  data-slot="separator"
306
- :class="b24ui.separator({ class: [props.b24ui?.separator, item.b24ui?.separator, item.class] })"
296
+ :class="b24ui.separator({ class: [uiProp?.separator, item.b24ui?.separator, item.class] })"
307
297
  />
308
298
 
309
299
  <ComboboxItem
310
300
  v-else
311
301
  data-slot="item"
312
- :class="b24ui.item({ class: [props.b24ui?.item, isSelectItem(item) && item.b24ui?.item, isSelectItem(item) && item.class], colorItem: isSelectItem(item) && item?.color || void 0 })"
302
+ :class="b24ui.item({ class: [uiProp?.item, isSelectItem(item) && item.b24ui?.item, isSelectItem(item) && item.class], colorItem: isSelectItem(item) && item?.color || void 0 })"
313
303
  :disabled="isSelectItem(item) && item.disabled"
314
304
  :value="props.valueKey && isSelectItem(item) ? get(item, props.valueKey) : item"
315
305
  @select="onSelect($event, item)"
@@ -318,15 +308,15 @@ defineExpose({
318
308
  <slot name="item-leading" :item="item" :index="index" :b24ui="b24ui">
319
309
  <B24Avatar
320
310
  v-if="isSelectItem(item) && item.avatar"
321
- :size="item.b24ui?.itemLeadingAvatarSize || props.b24ui?.itemLeadingAvatarSize || b24ui.itemLeadingAvatarSize()"
311
+ :size="item.b24ui?.itemLeadingAvatarSize || uiProp?.itemLeadingAvatarSize || b24ui.itemLeadingAvatarSize()"
322
312
  v-bind="item.avatar"
323
313
  data-slot="itemLeadingAvatar"
324
- :class="b24ui.itemLeadingAvatar({ class: [props.b24ui?.itemLeadingAvatar, item.b24ui?.itemLeadingAvatar], colorItem: item?.color })"
314
+ :class="b24ui.itemLeadingAvatar({ class: [uiProp?.itemLeadingAvatar, item.b24ui?.itemLeadingAvatar], colorItem: item?.color })"
325
315
  />
326
316
  </slot>
327
317
 
328
- <span data-slot="itemWrapper" :class="b24ui.itemWrapper({ class: [props.b24ui?.itemWrapper, isSelectItem(item) && item.b24ui?.itemWrapper] })">
329
- <span data-slot="itemLabel" :class="b24ui.itemLabel({ class: [props.b24ui?.itemLabel, isSelectItem(item) && item.b24ui?.itemLabel] })">
318
+ <span data-slot="itemWrapper" :class="b24ui.itemWrapper({ class: [uiProp?.itemWrapper, isSelectItem(item) && item.b24ui?.itemWrapper] })">
319
+ <span data-slot="itemLabel" :class="b24ui.itemLabel({ class: [uiProp?.itemLabel, isSelectItem(item) && item.b24ui?.itemLabel] })">
330
320
  <slot name="item-label" :item="item" :index="index">
331
321
  {{ isSelectItem(item) ? get(item, props.labelKey) : item }}
332
322
  </slot>
@@ -335,7 +325,7 @@ defineExpose({
335
325
  <span
336
326
  v-if="isSelectItem(item) && (get(item, props.descriptionKey) || !!slots['item-description'])"
337
327
  data-slot="itemDescription"
338
- :class="b24ui.itemDescription({ class: [props.b24ui?.itemDescription, isSelectItem(item) && item.b24ui?.itemDescription] })"
328
+ :class="b24ui.itemDescription({ class: [uiProp?.itemDescription, isSelectItem(item) && item.b24ui?.itemDescription] })"
339
329
  >
340
330
  <slot
341
331
  name="item-description"
@@ -347,12 +337,15 @@ defineExpose({
347
337
  </span>
348
338
  </span>
349
339
 
350
- <span data-slot="itemTrailing" :class="b24ui.itemTrailing({ class: [props.b24ui?.itemTrailing, isSelectItem(item) && item.b24ui?.itemTrailing], colorItem: isSelectItem(item) && item?.color || void 0 })">
340
+ <span
341
+ data-slot="itemTrailing"
342
+ :class="b24ui.itemTrailing({ class: [uiProp?.itemTrailing, isSelectItem(item) && item.b24ui?.itemTrailing], colorItem: isSelectItem(item) && item?.color || void 0 })"
343
+ >
351
344
  <ComboboxItemIndicator as-child>
352
345
  <Component
353
346
  :is="selectedIcon || icons.check"
354
347
  data-slot="itemTrailingIcon"
355
- :class="b24ui.itemTrailingIcon({ class: [props.b24ui?.itemTrailingIcon, isSelectItem(item) && item.b24ui?.itemTrailingIcon], colorItem: isSelectItem(item) && item?.color || void 0 })"
348
+ :class="b24ui.itemTrailingIcon({ class: [uiProp?.itemTrailingIcon, isSelectItem(item) && item.b24ui?.itemTrailingIcon], colorItem: isSelectItem(item) && item?.color || void 0 })"
356
349
  />
357
350
  </ComboboxItemIndicator>
358
351
 
@@ -361,16 +354,16 @@ defineExpose({
361
354
  :is="item.icon"
362
355
  v-if="isSelectItem(item) && item.icon"
363
356
  data-slot="itemLeadingIcon"
364
- :class="b24ui.itemLeadingIcon({ class: [props.b24ui?.itemLeadingIcon, item.b24ui?.itemLeadingIcon], colorItem: item?.color })"
357
+ :class="b24ui.itemLeadingIcon({ class: [uiProp?.itemLeadingIcon, item.b24ui?.itemLeadingIcon], colorItem: item?.color })"
365
358
  />
366
359
  <B24Chip
367
360
  v-else-if="isSelectItem(item) && item.chip"
368
- :size="item.b24ui?.itemLeadingChipSize || props.b24ui?.itemLeadingChipSize || b24ui.itemLeadingChipSize()"
361
+ :size="item.b24ui?.itemLeadingChipSize || uiProp?.itemLeadingChipSize || b24ui.itemLeadingChipSize()"
369
362
  inset
370
363
  standalone
371
364
  v-bind="item.chip"
372
365
  data-slot="itemLeadingChip"
373
- :class="b24ui.itemLeadingChip({ class: [props.b24ui?.itemLeadingChip, item.b24ui?.itemLeadingChip], colorItem: item?.color })"
366
+ :class="b24ui.itemLeadingChip({ class: [uiProp?.itemLeadingChip, item.b24ui?.itemLeadingChip], colorItem: item?.color })"
374
367
  />
375
368
  </slot>
376
369
  </span>
@@ -378,7 +371,7 @@ defineExpose({
378
371
  </ComboboxItem>
379
372
  </DefineItemTemplate>
380
373
 
381
- <Primitive as="div" data-slot="root" :class="b24ui.root({ addNew: true, class: [props.b24ui?.root] })">
374
+ <Primitive as="div" data-slot="root" :class="b24ui.root({ addNew: true, class: [uiProp?.root] })">
382
375
  <ComboboxRoot
383
376
  :id="id"
384
377
  v-slot="{ modelValue, open }"
@@ -394,31 +387,31 @@ defineExpose({
394
387
  <ComboboxTrigger
395
388
  ref="triggerRef"
396
389
  data-slot="base"
397
- :class="b24ui.base({ class: [props.b24ui?.base, props.class] })"
390
+ :class="b24ui.base({ class: [uiProp?.base, props.class] })"
398
391
  tabindex="0"
399
392
  >
400
393
  <B24Badge
401
394
  v-if="isTag"
402
395
  data-slot="tag"
403
- :class="b24ui.tag({ class: props.b24ui?.tag })"
396
+ :class="b24ui.tag({ class: uiProp?.tag })"
404
397
  :color="props.tagColor"
405
398
  :label="props.tag"
406
399
  size="xs"
407
400
  />
408
- <span v-if="isLeading || !!avatar || !!slots.leading" data-slot="leading" :class="b24ui.leading({ class: props.b24ui?.leading })">
401
+ <span v-if="isLeading || !!avatar || !!slots.leading" data-slot="leading" :class="b24ui.leading({ class: uiProp?.leading })">
409
402
  <slot name="leading" :model-value="modelValue" :open="open" :b24ui="b24ui">
410
403
  <Component
411
404
  :is="leadingIconName"
412
405
  v-if="isLeading && leadingIconName"
413
406
  data-slot="leadingIcon"
414
- :class="b24ui.leadingIcon({ class: props.b24ui?.leadingIcon })"
407
+ :class="b24ui.leadingIcon({ class: uiProp?.leadingIcon })"
415
408
  />
416
409
  <B24Avatar
417
410
  v-else-if="!!avatar"
418
- :size="props.b24ui?.leadingAvatarSize || b24ui.leadingAvatarSize()"
411
+ :size="uiProp?.leadingAvatarSize || b24ui.leadingAvatarSize()"
419
412
  v-bind="avatar"
420
413
  data-slot="leadingAvatar"
421
- :class="b24ui.leadingAvatar({ class: props.b24ui?.leadingAvatar })"
414
+ :class="b24ui.leadingAvatar({ class: uiProp?.leadingAvatar })"
422
415
  />
423
416
  </slot>
424
417
  </span>
@@ -428,21 +421,21 @@ defineExpose({
428
421
  <span
429
422
  v-if="displayedModelValue !== void 0 && displayedModelValue !== null"
430
423
  data-slot="value"
431
- :class="b24ui.value({ class: props.b24ui?.value })"
424
+ :class="b24ui.value({ class: uiProp?.value })"
432
425
  >
433
426
  {{ displayedModelValue }}
434
427
  </span>
435
428
  <span
436
429
  v-else
437
430
  data-slot="placeholder"
438
- :class="b24ui.placeholder({ class: props.b24ui?.placeholder })"
431
+ :class="b24ui.placeholder({ class: uiProp?.placeholder })"
439
432
  >
440
433
  {{ placeholder ?? "\xA0" }}
441
434
  </span>
442
435
  </template>
443
436
  </slot>
444
437
 
445
- <span v-if="isTrailing || !!slots.trailing || !!clear" data-slot="trailing" :class="b24ui.trailing({ class: props.b24ui?.trailing })">
438
+ <span v-if="isTrailing || !!slots.trailing || !!clear" data-slot="trailing" :class="b24ui.trailing({ class: uiProp?.trailing })">
446
439
  <slot name="trailing" :model-value="modelValue" :open="open" :b24ui="b24ui">
447
440
  <ComboboxCancel v-if="!!clear && !isModelValueEmpty(modelValue)" as-child>
448
441
  <B24Button
@@ -453,7 +446,7 @@ defineExpose({
453
446
  tabindex="-1"
454
447
  v-bind="clearProps"
455
448
  data-slot="trailingClear"
456
- :class="b24ui.trailingClear({ class: props.b24ui?.trailingClear })"
449
+ :class="b24ui.trailingClear({ class: uiProp?.trailingClear })"
457
450
  @click.stop="onClear"
458
451
  />
459
452
  </ComboboxCancel>
@@ -462,7 +455,7 @@ defineExpose({
462
455
  :is="trailingIconName"
463
456
  v-else-if="trailingIconName"
464
457
  data-slot="trailingIcon"
465
- :class="b24ui.trailingIcon({ class: props.b24ui?.trailingIcon })"
458
+ :class="b24ui.trailingIcon({ class: uiProp?.trailingIcon })"
466
459
  />
467
460
  </slot>
468
461
  </span>
@@ -470,8 +463,8 @@ defineExpose({
470
463
  </ComboboxAnchor>
471
464
 
472
465
  <ComboboxPortal v-bind="portalProps">
473
- <ComboboxContent data-slot="content" :class="b24ui.content({ class: props.b24ui?.content })" v-bind="contentProps">
474
- <FocusScope trapped data-slot="focusScope" :class="b24ui.focusScope({ class: props.b24ui?.focusScope })">
466
+ <ComboboxContent data-slot="content" :class="b24ui.content({ class: uiProp?.content })" v-bind="contentProps">
467
+ <FocusScope trapped data-slot="focusScope" :class="b24ui.focusScope({ class: uiProp?.focusScope })">
475
468
  <slot name="content-top" />
476
469
 
477
470
  <ComboboxInput
@@ -486,13 +479,16 @@ defineExpose({
486
479
  autocomplete="off"
487
480
  :size="selectSize"
488
481
  v-bind="searchInputProps"
482
+ :model-modifiers="{
483
+ trim: modelModifiers?.trim
484
+ }"
489
485
  data-slot="input"
490
- :class="b24ui.input({ class: props.b24ui?.input })"
486
+ :class="b24ui.input({ class: uiProp?.input })"
491
487
  @change.stop
492
488
  />
493
489
  </ComboboxInput>
494
490
 
495
- <ComboboxEmpty data-slot="empty" :class="b24ui.empty({ class: props.b24ui?.empty })">
491
+ <ComboboxEmpty data-slot="empty" :class="b24ui.empty({ class: uiProp?.empty })">
496
492
  <slot name="empty" :search-term="searchTerm">
497
493
  {{ searchTerm ? t("selectMenu.noMatch", { searchTerm }) : t("selectMenu.noData") }}
498
494
  </slot>
@@ -502,7 +498,7 @@ defineExpose({
502
498
  ref="viewportRef"
503
499
  role="presentation"
504
500
  data-slot="viewport"
505
- :class="b24ui.viewport({ class: props.b24ui?.viewport })"
501
+ :class="b24ui.viewport({ class: uiProp?.viewport })"
506
502
  >
507
503
  <template v-if="!!virtualize">
508
504
  <ReuseCreateItemTemplate v-if="createItem && createItemPosition === 'top'" />
@@ -520,15 +516,15 @@ defineExpose({
520
516
  </template>
521
517
 
522
518
  <template v-else>
523
- <ComboboxGroup v-if="createItem && createItemPosition === 'top'" data-slot="group" :class="b24ui.group({ class: props.b24ui?.group })">
519
+ <ComboboxGroup v-if="createItem && createItemPosition === 'top'" data-slot="group" :class="b24ui.group({ class: uiProp?.group })">
524
520
  <ReuseCreateItemTemplate />
525
521
  </ComboboxGroup>
526
522
 
527
- <ComboboxGroup v-for="(group, groupIndex) in filteredGroups" :key="`group-${groupIndex}`" data-slot="group" :class="b24ui.group({ class: props.b24ui?.group })">
523
+ <ComboboxGroup v-for="(group, groupIndex) in filteredGroups" :key="`group-${groupIndex}`" data-slot="group" :class="b24ui.group({ class: uiProp?.group })">
528
524
  <ReuseItemTemplate v-for="(item, index) in group" :key="`group-${groupIndex}-${index}`" :item="item" :index="index" />
529
525
  </ComboboxGroup>
530
526
 
531
- <ComboboxGroup v-if="createItem && createItemPosition === 'bottom'" data-slot="group" :class="b24ui.group({ class: props.b24ui?.group })">
527
+ <ComboboxGroup v-if="createItem && createItemPosition === 'bottom'" data-slot="group" :class="b24ui.group({ class: uiProp?.group })">
532
528
  <ReuseCreateItemTemplate />
533
529
  </ComboboxGroup>
534
530
  </template>
@@ -537,7 +533,7 @@ defineExpose({
537
533
  <slot name="content-bottom" />
538
534
  </FocusScope>
539
535
 
540
- <ComboboxArrow v-if="!!arrow" v-bind="arrowProps" data-slot="arrow" :class="b24ui.arrow({ class: props.b24ui?.arrow })" />
536
+ <ComboboxArrow v-if="!!arrow" v-bind="arrowProps" data-slot="arrow" :class="b24ui.arrow({ class: uiProp?.arrow })" />
541
537
  </ComboboxContent>
542
538
  </ComboboxPortal>
543
539
  </ComboboxRoot>
@@ -3,9 +3,9 @@ import type { AppConfig } from '@nuxt/schema';
3
3
  import theme from '#build/b24ui/select-menu';
4
4
  import type { UseComponentIconsProps } from '../composables/useComponentIcons';
5
5
  import type { AvatarProps, ButtonProps, ChipProps, InputProps, LinkPropsKeys, BadgeProps, IconComponent } from '../types';
6
- import type { ModelModifiers } from '../types/input';
6
+ import type { ModelModifiers, ApplyModifiers } from '../types/input';
7
7
  import type { ButtonHTMLAttributes } 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 SelectMenu = ComponentConfig<typeof theme, AppConfig, 'selectMenu'>;
11
11
  export type SelectMenuValue = AcceptableValue;
@@ -31,7 +31,11 @@ export type SelectMenuItem = SelectMenuValue | {
31
31
  b24ui?: Pick<SelectMenu['slots'], 'label' | 'separator' | 'item' | 'itemLeadingIcon' | 'itemLeadingAvatarSize' | 'itemLeadingAvatar' | 'itemLeadingChipSize' | 'itemLeadingChip' | 'itemWrapper' | 'itemLabel' | 'itemDescription' | 'itemTrailing' | 'itemTrailingIcon'>;
32
32
  [key: string]: any;
33
33
  };
34
- 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'> {
34
+ type ExcludeItem = {
35
+ type: 'label' | 'separator';
36
+ };
37
+ type IsClearUsed<M extends boolean, C extends boolean | object> = M extends false ? (C extends true ? null : C extends object ? null : never) : never;
38
+ export interface SelectMenuProps<T extends ArrayOrNested<SelectMenuItem> = ArrayOrNested<SelectMenuItem>, 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' | 'by'>, UseComponentIconsProps, /** @vue-ignore */ Omit<ButtonHTMLAttributes, 'type' | 'disabled' | 'name'> {
35
39
  id?: string;
36
40
  /** The placeholder text when the select is empty. */
37
41
  placeholder?: string;
@@ -96,11 +100,11 @@ export interface SelectMenuProps<T extends ArrayOrNested<SelectMenuItem> = Array
96
100
  * Can be an object to pass additional props to the Button.
97
101
  * @defaultValue false
98
102
  */
99
- clear?: boolean | Partial<Omit<ButtonProps, LinkPropsKeys>>;
103
+ clear?: (C & boolean) | (C & Partial<Omit<ButtonProps, LinkPropsKeys>>);
100
104
  /**
101
105
  * The icon displayed in the clear button.
102
106
  * @defaultValue icons.close
103
- * @IconifyIcon
107
+ * @IconComponent
104
108
  */
105
109
  clearIcon?: IconComponent;
106
110
  /**
@@ -152,10 +156,10 @@ export interface SelectMenuProps<T extends ArrayOrNested<SelectMenuItem> = Array
152
156
  descriptionKey?: GetItemKeys<T>;
153
157
  items?: T;
154
158
  /** The value of the SelectMenu when initially rendered. Use when you do not need to control the state of the SelectMenu. */
155
- defaultValue?: GetModelValue<T, VK, M>;
159
+ defaultValue?: ApplyModifiers<GetModelValue<T, VK, M, ExcludeItem>, Mod> | IsClearUsed<M, C>;
156
160
  /** The controlled value of the SelectMenu. Can be binded-with with `v-model`. */
157
- modelValue?: GetModelValue<T, VK, M>;
158
- modelModifiers?: Omit<ModelModifiers<GetModelValue<T, VK, M>>, 'lazy'>;
161
+ modelValue?: ApplyModifiers<GetModelValue<T, VK, M, ExcludeItem>, Mod> | IsClearUsed<M, C>;
162
+ modelModifiers?: Mod;
159
163
  /** Whether multiple options can be selected or not. */
160
164
  multiple?: M & boolean;
161
165
  /** Highlight the ring color like a focus state. */
@@ -183,38 +187,39 @@ export interface SelectMenuProps<T extends ArrayOrNested<SelectMenuItem> = Array
183
187
  class?: any;
184
188
  b24ui?: SelectMenu['slots'];
185
189
  }
186
- export type SelectMenuEmits<A extends ArrayOrNested<SelectMenuItem>, VK extends GetItemKeys<A> | undefined, M extends boolean> = Pick<ComboboxRootEmits, 'update:open'> & {
187
- change: [event: Event];
188
- blur: [event: FocusEvent];
189
- focus: [event: FocusEvent];
190
- create: [item: string];
191
- clear: [];
190
+ export interface SelectMenuEmits<A extends ArrayOrNested<SelectMenuItem>, VK extends GetItemKeys<A> | undefined, M extends boolean, Mod extends Omit<ModelModifiers, 'lazy'> = Omit<ModelModifiers, 'lazy'>, C extends boolean | object = false> extends Pick<ComboboxRootEmits, 'update:open'> {
191
+ 'change': [event: Event];
192
+ 'blur': [event: FocusEvent];
193
+ 'focus': [event: FocusEvent];
194
+ 'create': [item: string];
195
+ 'clear': [];
192
196
  /** Event handler when highlighted element changes. */
193
- highlight: [
197
+ 'highlight': [
194
198
  payload: {
195
199
  ref: HTMLElement;
196
- value: GetModelValue<A, VK, M>;
200
+ value: ApplyModifiers<GetModelValue<A, VK, M, ExcludeItem>, Mod> | IsClearUsed<M, C>;
197
201
  } | undefined
198
202
  ];
199
- } & GetModelValueEmits<A, VK, M>;
203
+ 'update:modelValue': [value: ApplyModifiers<GetModelValue<A, VK, M, ExcludeItem>, Mod> | IsClearUsed<M, C>];
204
+ }
200
205
  type SlotProps<T extends SelectMenuItem> = (props: {
201
206
  item: T;
202
207
  index: number;
203
208
  b24ui: SelectMenu['b24ui'];
204
209
  }) => any;
205
- export interface SelectMenuSlots<A extends ArrayOrNested<SelectMenuItem> = ArrayOrNested<SelectMenuItem>, VK extends GetItemKeys<A> | undefined = undefined, M extends boolean = false, T extends NestedItem<A> = NestedItem<A>> {
210
+ export interface SelectMenuSlots<A extends ArrayOrNested<SelectMenuItem> = ArrayOrNested<SelectMenuItem>, 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>> {
206
211
  'leading'(props: {
207
- modelValue?: GetModelValue<A, VK, M>;
212
+ modelValue?: ApplyModifiers<GetModelValue<A, VK, M, ExcludeItem>, Mod> | IsClearUsed<M, C>;
208
213
  open: boolean;
209
214
  b24ui: SelectMenu['b24ui'];
210
215
  }): any;
211
216
  'default'(props: {
212
- modelValue?: GetModelValue<A, VK, M>;
217
+ modelValue?: ApplyModifiers<GetModelValue<A, VK, M, ExcludeItem>, Mod> | IsClearUsed<M, C>;
213
218
  open: boolean;
214
219
  b24ui: SelectMenu['b24ui'];
215
220
  }): any;
216
221
  'trailing'(props: {
217
- modelValue?: GetModelValue<A, VK, M>;
222
+ modelValue?: ApplyModifiers<GetModelValue<A, VK, M, ExcludeItem>, Mod> | IsClearUsed<M, C>;
218
223
  open: boolean;
219
224
  b24ui: SelectMenu['b24ui'];
220
225
  }): any;
@@ -240,21 +245,61 @@ export interface SelectMenuSlots<A extends ArrayOrNested<SelectMenuItem> = Array
240
245
  }
241
246
  declare const _default: typeof __VLS_export;
242
247
  export default _default;
243
- 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<{
244
- props: import("vue").PublicProps & __VLS_PrettifyLocal<(SelectMenuProps<T, VK, M> & {
248
+ declare const __VLS_export: <T extends ArrayOrNested<SelectMenuItem>, 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<{
249
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<(SelectMenuProps<T, VK, M, Mod, C> & {
245
250
  searchTerm?: string;
246
251
  }) & {
247
252
  onClear?: (() => any) | undefined;
248
253
  onBlur?: ((event: FocusEvent) => any) | undefined;
249
254
  onChange?: ((event: Event) => any) | undefined;
250
255
  onFocus?: ((event: FocusEvent) => any) | undefined;
251
- "onUpdate:open"?: ((value: boolean) => any) | undefined;
252
- onCreate?: ((item: string) => any) | undefined;
253
- "onUpdate:modelValue"?: ((value: GetModelValue<T, VK, M>) => any) | undefined;
254
256
  onHighlight?: ((payload: {
255
257
  ref: HTMLElement;
256
- value: GetModelValue<T, VK, M>;
258
+ value: (Mod extends {
259
+ number: true;
260
+ } ? (Mod extends {
261
+ optional: true;
262
+ } ? (Mod extends {
263
+ nullable: true;
264
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
265
+ nullable: true;
266
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) extends infer T_1 ? T_1 extends (Mod extends {
267
+ optional: true;
268
+ } ? (Mod extends {
269
+ nullable: true;
270
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
271
+ nullable: true;
272
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) ? T_1 extends string ? number | T_1 : T_1 : never : never : Mod extends {
273
+ optional: true;
274
+ } ? (Mod extends {
275
+ nullable: true;
276
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
277
+ nullable: true;
278
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | IsClearUsed<M, C>;
257
279
  } | undefined) => any) | undefined;
280
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
281
+ onCreate?: ((item: string) => any) | undefined;
282
+ "onUpdate:modelValue"?: ((value: (Mod extends {
283
+ number: true;
284
+ } ? (Mod extends {
285
+ optional: true;
286
+ } ? (Mod extends {
287
+ nullable: true;
288
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
289
+ nullable: true;
290
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) extends infer T_1 ? T_1 extends (Mod extends {
291
+ optional: true;
292
+ } ? (Mod extends {
293
+ nullable: true;
294
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
295
+ nullable: true;
296
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) ? T_1 extends string ? number | T_1 : T_1 : never : never : Mod extends {
297
+ optional: true;
298
+ } ? (Mod extends {
299
+ nullable: true;
300
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
301
+ nullable: true;
302
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | IsClearUsed<M, C>) => any) | undefined;
258
303
  "onUpdate:searchTerm"?: ((value: string) => any) | undefined;
259
304
  }> & (typeof globalThis extends {
260
305
  __VLS_PROPS_FALLBACK: infer P;
@@ -264,11 +309,51 @@ declare const __VLS_export: <T extends ArrayOrNested<SelectMenuItem>, VK extends
264
309
  viewportRef: Readonly<import("vue").Ref<HTMLDivElement | null, HTMLDivElement | null>>;
265
310
  }>) => void;
266
311
  attrs: any;
267
- slots: SelectMenuSlots<T, VK, M, NestedItem<T>>;
268
- 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: {
312
+ slots: SelectMenuSlots<T, VK, M, Mod, C, NestedItem<T>>;
313
+ emit: (((evt: "clear") => void) & ((evt: "blur", event: FocusEvent) => void) & ((evt: "change", event: Event) => void) & ((evt: "focus", event: FocusEvent) => void) & ((evt: "highlight", payload: {
269
314
  ref: HTMLElement;
270
- value: GetModelValue<T, VK, M>;
271
- } | undefined) => void)) & ((event: "update:searchTerm", value: string) => void);
315
+ value: (Mod extends {
316
+ number: true;
317
+ } ? (Mod extends {
318
+ optional: true;
319
+ } ? (Mod extends {
320
+ nullable: true;
321
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
322
+ nullable: true;
323
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) extends infer T_1 ? T_1 extends (Mod extends {
324
+ optional: true;
325
+ } ? (Mod extends {
326
+ nullable: true;
327
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
328
+ nullable: true;
329
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) ? T_1 extends string ? number | T_1 : T_1 : never : never : Mod extends {
330
+ optional: true;
331
+ } ? (Mod extends {
332
+ nullable: true;
333
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
334
+ nullable: true;
335
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | IsClearUsed<M, C>;
336
+ } | undefined) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "create", item: string) => void) & ((evt: "update:modelValue", value: (Mod extends {
337
+ number: true;
338
+ } ? (Mod extends {
339
+ optional: true;
340
+ } ? (Mod extends {
341
+ nullable: true;
342
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
343
+ nullable: true;
344
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) extends infer T_1 ? T_1 extends (Mod extends {
345
+ optional: true;
346
+ } ? (Mod extends {
347
+ nullable: true;
348
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
349
+ nullable: true;
350
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) ? T_1 extends string ? number | T_1 : T_1 : never : never : Mod extends {
351
+ optional: true;
352
+ } ? (Mod extends {
353
+ nullable: true;
354
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
355
+ nullable: true;
356
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | IsClearUsed<M, C>) => void)) & ((event: "update:searchTerm", value: string) => void);
272
357
  }>) => import("vue").VNode & {
273
358
  __ctx?: Awaited<typeof __VLS_setup>;
274
359
  };
@@ -51,9 +51,9 @@ declare const _default: typeof __VLS_export;
51
51
  export default _default;
52
52
  declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<SeparatorProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<SeparatorProps> & Readonly<{}>, {
53
53
  size: Separator["variants"]["size"];
54
- accent: Separator["variants"]["accent"];
55
- type: Separator["variants"]["type"];
56
54
  orientation: Separator["variants"]["orientation"];
55
+ type: Separator["variants"]["type"];
56
+ accent: Separator["variants"]["accent"];
57
57
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, SeparatorSlots>;
58
58
  type __VLS_WithSlots<T, S> = T & {
59
59
  new (): {