@bitrix24/b24ui-nuxt 2.2.1 → 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 (594) hide show
  1. package/README.md +5 -4
  2. package/cli/package.json +1 -1
  3. package/dist/module.d.mts +2 -1
  4. package/dist/module.json +1 -1
  5. package/dist/module.mjs +3 -2
  6. package/dist/runtime/air-design-tokens/013_b24_mobile_light.css +1 -0
  7. package/dist/runtime/air-design-tokens/014_b24_mobile_dark.css +1 -0
  8. package/dist/runtime/air-design-tokens/015_b24_mobile_edge-light.css +1 -0
  9. package/dist/runtime/air-design-tokens/016_b24_mobile_edge-dark.css +1 -0
  10. package/dist/runtime/air-design-tokens/023_b24_desktop_light.css +1 -0
  11. package/dist/runtime/air-design-tokens/024_b24_desktop_dark.css +1 -0
  12. package/dist/runtime/air-design-tokens/025_b24_desktop_edge-light.css +1 -0
  13. package/dist/runtime/air-design-tokens/026_b24_desktop_edge-dark.css +1 -0
  14. package/dist/runtime/air-design-tokens/design-tokens/app.json +23812 -0
  15. package/dist/runtime/air-design-tokens/design-tokens/mobileapp.json +7476 -0
  16. package/dist/runtime/air-design-tokens/index.css +1 -1
  17. package/dist/runtime/components/Accordion.d.vue.ts +17 -8
  18. package/dist/runtime/components/Accordion.vue +16 -13
  19. package/dist/runtime/components/Accordion.vue.d.ts +17 -8
  20. package/dist/runtime/components/Advice.d.vue.ts +4 -1
  21. package/dist/runtime/components/Advice.vue +14 -12
  22. package/dist/runtime/components/Advice.vue.d.ts +4 -1
  23. package/dist/runtime/components/Alert.d.vue.ts +6 -3
  24. package/dist/runtime/components/Alert.vue +12 -10
  25. package/dist/runtime/components/Alert.vue.d.ts +6 -3
  26. package/dist/runtime/components/App.d.vue.ts +8 -6
  27. package/dist/runtime/components/App.vue.d.ts +8 -6
  28. package/dist/runtime/components/Avatar.d.vue.ts +2 -2
  29. package/dist/runtime/components/Avatar.vue +7 -5
  30. package/dist/runtime/components/Avatar.vue.d.ts +2 -2
  31. package/dist/runtime/components/AvatarGroup.d.vue.ts +1 -1
  32. package/dist/runtime/components/AvatarGroup.vue +6 -4
  33. package/dist/runtime/components/AvatarGroup.vue.d.ts +1 -1
  34. package/dist/runtime/components/Badge.d.vue.ts +4 -1
  35. package/dist/runtime/components/Badge.vue +10 -8
  36. package/dist/runtime/components/Badge.vue.d.ts +4 -1
  37. package/dist/runtime/components/Banner.d.vue.ts +3 -4
  38. package/dist/runtime/components/Banner.vue +60 -32
  39. package/dist/runtime/components/Banner.vue.d.ts +3 -4
  40. package/dist/runtime/components/Breadcrumb.d.vue.ts +8 -6
  41. package/dist/runtime/components/Breadcrumb.vue +13 -11
  42. package/dist/runtime/components/Breadcrumb.vue.d.ts +8 -6
  43. package/dist/runtime/components/Button.d.vue.ts +4 -1
  44. package/dist/runtime/components/Button.vue +15 -13
  45. package/dist/runtime/components/Button.vue.d.ts +4 -1
  46. package/dist/runtime/components/Calendar.d.vue.ts +14 -6
  47. package/dist/runtime/components/Calendar.vue +27 -14
  48. package/dist/runtime/components/Calendar.vue.d.ts +14 -6
  49. package/dist/runtime/components/Card.d.vue.ts +1 -1
  50. package/dist/runtime/components/Card.vue +7 -5
  51. package/dist/runtime/components/Card.vue.d.ts +1 -1
  52. package/dist/runtime/components/ChatMessage.d.vue.ts +3 -1
  53. package/dist/runtime/components/ChatMessage.vue +11 -9
  54. package/dist/runtime/components/ChatMessage.vue.d.ts +3 -1
  55. package/dist/runtime/components/ChatMessages.d.vue.ts +6 -1
  56. package/dist/runtime/components/ChatMessages.vue +16 -11
  57. package/dist/runtime/components/ChatMessages.vue.d.ts +6 -1
  58. package/dist/runtime/components/ChatPalette.d.vue.ts +1 -1
  59. package/dist/runtime/components/ChatPalette.vue +6 -4
  60. package/dist/runtime/components/ChatPalette.vue.d.ts +1 -1
  61. package/dist/runtime/components/ChatPrompt.d.vue.ts +9 -4
  62. package/dist/runtime/components/ChatPrompt.vue +10 -7
  63. package/dist/runtime/components/ChatPrompt.vue.d.ts +9 -4
  64. package/dist/runtime/components/ChatPromptSubmit.d.vue.ts +9 -3
  65. package/dist/runtime/components/ChatPromptSubmit.vue +5 -3
  66. package/dist/runtime/components/ChatPromptSubmit.vue.d.ts +9 -3
  67. package/dist/runtime/components/Checkbox.d.vue.ts +2 -2
  68. package/dist/runtime/components/Checkbox.vue +19 -12
  69. package/dist/runtime/components/Checkbox.vue.d.ts +2 -2
  70. package/dist/runtime/components/CheckboxGroup.d.vue.ts +16 -11
  71. package/dist/runtime/components/CheckboxGroup.vue +9 -7
  72. package/dist/runtime/components/CheckboxGroup.vue.d.ts +16 -11
  73. package/dist/runtime/components/Chip.d.vue.ts +8 -3
  74. package/dist/runtime/components/Chip.vue +6 -4
  75. package/dist/runtime/components/Chip.vue.d.ts +8 -3
  76. package/dist/runtime/components/Collapsible.d.vue.ts +5 -3
  77. package/dist/runtime/components/Collapsible.vue +5 -3
  78. package/dist/runtime/components/Collapsible.vue.d.ts +5 -3
  79. package/dist/runtime/components/ColorPicker.d.vue.ts +7 -3
  80. package/dist/runtime/components/ColorPicker.vue +10 -8
  81. package/dist/runtime/components/ColorPicker.vue.d.ts +7 -3
  82. package/dist/runtime/components/CommandPalette.d.vue.ts +38 -15
  83. package/dist/runtime/components/CommandPalette.vue +59 -52
  84. package/dist/runtime/components/CommandPalette.vue.d.ts +38 -15
  85. package/dist/runtime/components/Container.d.vue.ts +4 -1
  86. package/dist/runtime/components/Container.vue +5 -2
  87. package/dist/runtime/components/Container.vue.d.ts +4 -1
  88. package/dist/runtime/components/ContextMenu.d.vue.ts +10 -6
  89. package/dist/runtime/components/ContextMenu.vue +5 -3
  90. package/dist/runtime/components/ContextMenu.vue.d.ts +10 -6
  91. package/dist/runtime/components/ContextMenuContent.d.vue.ts +14 -6
  92. package/dist/runtime/components/ContextMenuContent.vue +11 -11
  93. package/dist/runtime/components/ContextMenuContent.vue.d.ts +14 -6
  94. package/dist/runtime/components/Countdown.d.vue.ts +12 -3
  95. package/dist/runtime/components/Countdown.vue +12 -10
  96. package/dist/runtime/components/Countdown.vue.d.ts +12 -3
  97. package/dist/runtime/components/DashboardGroup.d.vue.ts +11 -3
  98. package/dist/runtime/components/DashboardGroup.vue +15 -11
  99. package/dist/runtime/components/DashboardGroup.vue.d.ts +11 -3
  100. package/dist/runtime/components/DashboardNavbar.d.vue.ts +59 -0
  101. package/dist/runtime/components/DashboardNavbar.vue +79 -0
  102. package/dist/runtime/components/DashboardNavbar.vue.d.ts +59 -0
  103. package/dist/runtime/components/DashboardPanel.d.vue.ts +31 -0
  104. package/dist/runtime/components/DashboardPanel.vue +66 -0
  105. package/dist/runtime/components/DashboardPanel.vue.d.ts +31 -0
  106. package/dist/runtime/components/DashboardResizeHandle.d.vue.ts +22 -0
  107. package/dist/runtime/components/DashboardResizeHandle.vue +30 -0
  108. package/dist/runtime/components/DashboardResizeHandle.vue.d.ts +22 -0
  109. package/dist/runtime/components/DashboardSearch.d.vue.ts +13 -4
  110. package/dist/runtime/components/DashboardSearch.vue +9 -4
  111. package/dist/runtime/components/DashboardSearch.vue.d.ts +13 -4
  112. package/dist/runtime/components/DashboardSearchButton.d.vue.ts +6 -1
  113. package/dist/runtime/components/DashboardSearchButton.vue +11 -7
  114. package/dist/runtime/components/DashboardSearchButton.vue.d.ts +6 -1
  115. package/dist/runtime/components/DashboardSidebar.d.vue.ts +89 -0
  116. package/dist/runtime/components/DashboardSidebar.vue +169 -0
  117. package/dist/runtime/components/DashboardSidebar.vue.d.ts +89 -0
  118. package/dist/runtime/components/DashboardSidebarCollapse.d.vue.ts +21 -0
  119. package/dist/runtime/components/DashboardSidebarCollapse.vue +64 -0
  120. package/dist/runtime/components/DashboardSidebarCollapse.vue.d.ts +21 -0
  121. package/dist/runtime/components/DashboardSidebarToggle.d.vue.ts +21 -0
  122. package/dist/runtime/components/DashboardSidebarToggle.vue +65 -0
  123. package/dist/runtime/components/DashboardSidebarToggle.vue.d.ts +21 -0
  124. package/dist/runtime/components/DashboardToolbar.d.vue.ts +26 -0
  125. package/dist/runtime/components/DashboardToolbar.vue +34 -0
  126. package/dist/runtime/components/DashboardToolbar.vue.d.ts +26 -0
  127. package/dist/runtime/components/DescriptionList.d.vue.ts +8 -6
  128. package/dist/runtime/components/DescriptionList.vue +16 -14
  129. package/dist/runtime/components/DescriptionList.vue.d.ts +8 -6
  130. package/dist/runtime/components/Drawer.d.vue.ts +100 -0
  131. package/dist/runtime/components/Drawer.vue +133 -0
  132. package/dist/runtime/components/Drawer.vue.d.ts +100 -0
  133. package/dist/runtime/components/DropdownMenu.d.vue.ts +10 -6
  134. package/dist/runtime/components/DropdownMenu.vue +7 -10
  135. package/dist/runtime/components/DropdownMenu.vue.d.ts +10 -6
  136. package/dist/runtime/components/DropdownMenuContent.d.vue.ts +14 -6
  137. package/dist/runtime/components/DropdownMenuContent.vue +14 -12
  138. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +14 -6
  139. package/dist/runtime/components/Editor.d.vue.ts +30 -15
  140. package/dist/runtime/components/Editor.vue +46 -20
  141. package/dist/runtime/components/Editor.vue.d.ts +30 -15
  142. package/dist/runtime/components/EditorDragHandle.d.vue.ts +18 -3
  143. package/dist/runtime/components/EditorDragHandle.vue +17 -8
  144. package/dist/runtime/components/EditorDragHandle.vue.d.ts +18 -3
  145. package/dist/runtime/components/EditorEmojiMenu.d.vue.ts +12 -6
  146. package/dist/runtime/components/EditorEmojiMenu.vue +5 -2
  147. package/dist/runtime/components/EditorEmojiMenu.vue.d.ts +12 -6
  148. package/dist/runtime/components/EditorMentionMenu.d.vue.ts +12 -6
  149. package/dist/runtime/components/EditorMentionMenu.vue +9 -3
  150. package/dist/runtime/components/EditorMentionMenu.vue.d.ts +12 -6
  151. package/dist/runtime/components/EditorSuggestionMenu.d.vue.ts +12 -6
  152. package/dist/runtime/components/EditorSuggestionMenu.vue +5 -2
  153. package/dist/runtime/components/EditorSuggestionMenu.vue.d.ts +12 -6
  154. package/dist/runtime/components/EditorToolbar.d.vue.ts +8 -6
  155. package/dist/runtime/components/EditorToolbar.vue +16 -13
  156. package/dist/runtime/components/EditorToolbar.vue.d.ts +8 -6
  157. package/dist/runtime/components/Empty.d.vue.ts +3 -1
  158. package/dist/runtime/components/Empty.vue +12 -10
  159. package/dist/runtime/components/Empty.vue.d.ts +3 -1
  160. package/dist/runtime/components/Error.d.vue.ts +6 -2
  161. package/dist/runtime/components/Error.vue +9 -7
  162. package/dist/runtime/components/Error.vue.d.ts +6 -2
  163. package/dist/runtime/components/FieldGroup.d.vue.ts +7 -2
  164. package/dist/runtime/components/FieldGroup.vue +4 -2
  165. package/dist/runtime/components/FieldGroup.vue.d.ts +7 -2
  166. package/dist/runtime/components/FileUpload.d.vue.ts +13 -8
  167. package/dist/runtime/components/FileUpload.vue +20 -18
  168. package/dist/runtime/components/FileUpload.vue.d.ts +13 -8
  169. package/dist/runtime/components/Footer.d.vue.ts +30 -0
  170. package/dist/runtime/components/Footer.vue +47 -0
  171. package/dist/runtime/components/Footer.vue.d.ts +30 -0
  172. package/dist/runtime/components/FooterColumns.d.vue.ts +69 -0
  173. package/dist/runtime/components/FooterColumns.vue +83 -0
  174. package/dist/runtime/components/FooterColumns.vue.d.ts +69 -0
  175. package/dist/runtime/components/Form.d.vue.ts +14 -6
  176. package/dist/runtime/components/Form.vue +10 -2
  177. package/dist/runtime/components/Form.vue.d.ts +14 -6
  178. package/dist/runtime/components/FormField.d.vue.ts +3 -1
  179. package/dist/runtime/components/FormField.vue +13 -11
  180. package/dist/runtime/components/FormField.vue.d.ts +3 -1
  181. package/dist/runtime/components/Header.d.vue.ts +81 -0
  182. package/dist/runtime/components/Header.vue +147 -0
  183. package/dist/runtime/components/Header.vue.d.ts +81 -0
  184. package/dist/runtime/components/Input.d.vue.ts +63 -15
  185. package/dist/runtime/components/Input.vue +18 -14
  186. package/dist/runtime/components/Input.vue.d.ts +63 -15
  187. package/dist/runtime/components/InputDate.d.vue.ts +16 -6
  188. package/dist/runtime/components/InputDate.vue +20 -13
  189. package/dist/runtime/components/InputDate.vue.d.ts +16 -6
  190. package/dist/runtime/components/InputMenu.d.vue.ts +185 -30
  191. package/dist/runtime/components/InputMenu.vue +92 -67
  192. package/dist/runtime/components/InputMenu.vue.d.ts +185 -30
  193. package/dist/runtime/components/InputNumber.d.vue.ts +26 -19
  194. package/dist/runtime/components/InputNumber.vue +25 -16
  195. package/dist/runtime/components/InputNumber.vue.d.ts +26 -19
  196. package/dist/runtime/components/InputTags.d.vue.ts +19 -7
  197. package/dist/runtime/components/InputTags.vue +18 -14
  198. package/dist/runtime/components/InputTags.vue.d.ts +19 -7
  199. package/dist/runtime/components/InputTime.d.vue.ts +11 -7
  200. package/dist/runtime/components/InputTime.vue +19 -11
  201. package/dist/runtime/components/InputTime.vue.d.ts +11 -7
  202. package/dist/runtime/components/Kbd.d.vue.ts +5 -1
  203. package/dist/runtime/components/Kbd.vue +5 -2
  204. package/dist/runtime/components/Kbd.vue.d.ts +5 -1
  205. package/dist/runtime/components/Link.d.vue.ts +7 -1
  206. package/dist/runtime/components/Link.vue +7 -7
  207. package/dist/runtime/components/Link.vue.d.ts +7 -1
  208. package/dist/runtime/components/LinkBase.d.vue.ts +6 -3
  209. package/dist/runtime/components/LinkBase.vue.d.ts +6 -3
  210. package/dist/runtime/components/Main.d.vue.ts +24 -0
  211. package/dist/runtime/components/Main.vue +26 -0
  212. package/dist/runtime/components/Main.vue.d.ts +24 -0
  213. package/dist/runtime/components/Modal.d.vue.ts +17 -8
  214. package/dist/runtime/components/Modal.vue +19 -26
  215. package/dist/runtime/components/Modal.vue.d.ts +17 -8
  216. package/dist/runtime/components/ModalDialogClose.d.vue.ts +1 -1
  217. package/dist/runtime/components/ModalDialogClose.vue.d.ts +1 -1
  218. package/dist/runtime/components/Navbar.d.vue.ts +3 -1
  219. package/dist/runtime/components/Navbar.vue +4 -2
  220. package/dist/runtime/components/Navbar.vue.d.ts +3 -1
  221. package/dist/runtime/components/NavbarDivider.d.vue.ts +3 -1
  222. package/dist/runtime/components/NavbarDivider.vue +4 -2
  223. package/dist/runtime/components/NavbarDivider.vue.d.ts +3 -1
  224. package/dist/runtime/components/NavbarSection.d.vue.ts +3 -1
  225. package/dist/runtime/components/NavbarSection.vue +4 -2
  226. package/dist/runtime/components/NavbarSection.vue.d.ts +3 -1
  227. package/dist/runtime/components/NavbarSpacer.d.vue.ts +3 -1
  228. package/dist/runtime/components/NavbarSpacer.vue +4 -2
  229. package/dist/runtime/components/NavbarSpacer.vue.d.ts +3 -1
  230. package/dist/runtime/components/NavigationMenu.d.vue.ts +34 -26
  231. package/dist/runtime/components/NavigationMenu.vue +122 -61
  232. package/dist/runtime/components/NavigationMenu.vue.d.ts +34 -26
  233. package/dist/runtime/components/Page.d.vue.ts +26 -0
  234. package/dist/runtime/components/Page.vue +39 -0
  235. package/dist/runtime/components/Page.vue.d.ts +26 -0
  236. package/dist/runtime/components/PageAside.d.vue.ts +28 -0
  237. package/dist/runtime/components/PageAside.vue +38 -0
  238. package/dist/runtime/components/PageAside.vue.d.ts +28 -0
  239. package/dist/runtime/components/PageBody.d.vue.ts +22 -0
  240. package/dist/runtime/components/PageBody.vue +26 -0
  241. package/dist/runtime/components/PageBody.vue.d.ts +22 -0
  242. package/dist/runtime/components/PageCard.d.vue.ts +3 -1
  243. package/dist/runtime/components/PageCard.vue +13 -11
  244. package/dist/runtime/components/PageCard.vue.d.ts +3 -1
  245. package/dist/runtime/components/PageColumns.d.vue.ts +4 -1
  246. package/dist/runtime/components/PageColumns.vue +5 -2
  247. package/dist/runtime/components/PageColumns.vue.d.ts +4 -1
  248. package/dist/runtime/components/PageFeature.d.vue.ts +47 -0
  249. package/dist/runtime/components/PageFeature.vue +79 -0
  250. package/dist/runtime/components/PageFeature.vue.d.ts +47 -0
  251. package/dist/runtime/components/PageGrid.d.vue.ts +4 -1
  252. package/dist/runtime/components/PageGrid.vue +5 -2
  253. package/dist/runtime/components/PageGrid.vue.d.ts +4 -1
  254. package/dist/runtime/components/PageHeader.d.vue.ts +37 -0
  255. package/dist/runtime/components/PageHeader.vue +67 -0
  256. package/dist/runtime/components/PageHeader.vue.d.ts +37 -0
  257. package/dist/runtime/components/PageLinks.d.vue.ts +8 -6
  258. package/dist/runtime/components/PageLinks.vue +12 -10
  259. package/dist/runtime/components/PageLinks.vue.d.ts +8 -6
  260. package/dist/runtime/components/PageList.d.vue.ts +6 -1
  261. package/dist/runtime/components/PageList.vue +5 -2
  262. package/dist/runtime/components/PageList.vue.d.ts +6 -1
  263. package/dist/runtime/components/PageSection.d.vue.ts +71 -0
  264. package/dist/runtime/components/PageSection.vue +110 -0
  265. package/dist/runtime/components/PageSection.vue.d.ts +71 -0
  266. package/dist/runtime/components/Pagination.d.vue.ts +11 -3
  267. package/dist/runtime/components/Pagination.vue +11 -9
  268. package/dist/runtime/components/Pagination.vue.d.ts +11 -3
  269. package/dist/runtime/components/PinInput.d.vue.ts +15 -6
  270. package/dist/runtime/components/PinInput.vue +11 -4
  271. package/dist/runtime/components/PinInput.vue.d.ts +15 -6
  272. package/dist/runtime/components/Popover.d.vue.ts +11 -6
  273. package/dist/runtime/components/Popover.vue +8 -3
  274. package/dist/runtime/components/Popover.vue.d.ts +11 -6
  275. package/dist/runtime/components/Progress.d.vue.ts +7 -3
  276. package/dist/runtime/components/Progress.vue +9 -7
  277. package/dist/runtime/components/Progress.vue.d.ts +7 -3
  278. package/dist/runtime/components/RadioGroup.d.vue.ts +13 -8
  279. package/dist/runtime/components/RadioGroup.vue +13 -11
  280. package/dist/runtime/components/RadioGroup.vue.d.ts +13 -8
  281. package/dist/runtime/components/Range.d.vue.ts +14 -9
  282. package/dist/runtime/components/Range.vue +8 -6
  283. package/dist/runtime/components/Range.vue.d.ts +14 -9
  284. package/dist/runtime/components/ScrollArea.d.vue.ts +17 -6
  285. package/dist/runtime/components/ScrollArea.vue +35 -11
  286. package/dist/runtime/components/ScrollArea.vue.d.ts +17 -6
  287. package/dist/runtime/components/Select.d.vue.ts +76 -23
  288. package/dist/runtime/components/Select.vue +40 -38
  289. package/dist/runtime/components/Select.vue.d.ts +76 -23
  290. package/dist/runtime/components/SelectMenu.d.vue.ts +146 -35
  291. package/dist/runtime/components/SelectMenu.vue +98 -68
  292. package/dist/runtime/components/SelectMenu.vue.d.ts +146 -35
  293. package/dist/runtime/components/Separator.d.vue.ts +7 -2
  294. package/dist/runtime/components/Separator.vue +9 -7
  295. package/dist/runtime/components/Separator.vue.d.ts +7 -2
  296. package/dist/runtime/components/Sidebar.d.vue.ts +3 -1
  297. package/dist/runtime/components/Sidebar.vue +4 -2
  298. package/dist/runtime/components/Sidebar.vue.d.ts +3 -1
  299. package/dist/runtime/components/SidebarBody.d.vue.ts +4 -4
  300. package/dist/runtime/components/SidebarBody.vue +4 -2
  301. package/dist/runtime/components/SidebarBody.vue.d.ts +4 -4
  302. package/dist/runtime/components/SidebarFooter.d.vue.ts +3 -4
  303. package/dist/runtime/components/SidebarFooter.vue +4 -2
  304. package/dist/runtime/components/SidebarFooter.vue.d.ts +3 -4
  305. package/dist/runtime/components/SidebarHeader.d.vue.ts +3 -4
  306. package/dist/runtime/components/SidebarHeader.vue +4 -2
  307. package/dist/runtime/components/SidebarHeader.vue.d.ts +3 -4
  308. package/dist/runtime/components/SidebarHeading.d.vue.ts +3 -4
  309. package/dist/runtime/components/SidebarHeading.vue +4 -2
  310. package/dist/runtime/components/SidebarHeading.vue.d.ts +3 -4
  311. package/dist/runtime/components/SidebarLayout.d.vue.ts +6 -1
  312. package/dist/runtime/components/SidebarLayout.vue +22 -20
  313. package/dist/runtime/components/SidebarLayout.vue.d.ts +6 -1
  314. package/dist/runtime/components/SidebarSection.d.vue.ts +3 -4
  315. package/dist/runtime/components/SidebarSection.vue +4 -2
  316. package/dist/runtime/components/SidebarSection.vue.d.ts +3 -4
  317. package/dist/runtime/components/SidebarSpacer.d.vue.ts +3 -4
  318. package/dist/runtime/components/SidebarSpacer.vue +4 -2
  319. package/dist/runtime/components/SidebarSpacer.vue.d.ts +3 -4
  320. package/dist/runtime/components/Skeleton.d.vue.ts +5 -3
  321. package/dist/runtime/components/Skeleton.vue +4 -2
  322. package/dist/runtime/components/Skeleton.vue.d.ts +5 -3
  323. package/dist/runtime/components/Slideover.d.vue.ts +13 -3
  324. package/dist/runtime/components/Slideover.vue +24 -19
  325. package/dist/runtime/components/Slideover.vue.d.ts +13 -3
  326. package/dist/runtime/components/Stepper.d.vue.ts +24 -10
  327. package/dist/runtime/components/Stepper.vue +31 -25
  328. package/dist/runtime/components/Stepper.vue.d.ts +24 -10
  329. package/dist/runtime/components/Switch.d.vue.ts +2 -2
  330. package/dist/runtime/components/Switch.vue +20 -14
  331. package/dist/runtime/components/Switch.vue.d.ts +2 -2
  332. package/dist/runtime/components/Table.d.vue.ts +25 -10
  333. package/dist/runtime/components/Table.vue +26 -24
  334. package/dist/runtime/components/Table.vue.d.ts +25 -10
  335. package/dist/runtime/components/TableWrapper.d.vue.ts +6 -3
  336. package/dist/runtime/components/TableWrapper.vue +4 -2
  337. package/dist/runtime/components/TableWrapper.vue.d.ts +6 -3
  338. package/dist/runtime/components/Tabs.d.vue.ts +16 -7
  339. package/dist/runtime/components/Tabs.vue +23 -17
  340. package/dist/runtime/components/Tabs.vue.d.ts +16 -7
  341. package/dist/runtime/components/Textarea.d.vue.ts +63 -15
  342. package/dist/runtime/components/Textarea.vue +19 -15
  343. package/dist/runtime/components/Textarea.vue.d.ts +63 -15
  344. package/dist/runtime/components/Theme.d.vue.ts +17 -0
  345. package/dist/runtime/components/Theme.vue +17 -0
  346. package/dist/runtime/components/Theme.vue.d.ts +17 -0
  347. package/dist/runtime/components/Timeline.d.vue.ts +24 -10
  348. package/dist/runtime/components/Timeline.vue +35 -24
  349. package/dist/runtime/components/Timeline.vue.d.ts +24 -10
  350. package/dist/runtime/components/Toast.d.vue.ts +7 -3
  351. package/dist/runtime/components/Toast.vue +16 -16
  352. package/dist/runtime/components/Toast.vue.d.ts +7 -3
  353. package/dist/runtime/components/Toaster.d.vue.ts +8 -1
  354. package/dist/runtime/components/Toaster.vue +7 -4
  355. package/dist/runtime/components/Toaster.vue.d.ts +8 -1
  356. package/dist/runtime/components/Tooltip.d.vue.ts +6 -3
  357. package/dist/runtime/components/Tooltip.vue +9 -7
  358. package/dist/runtime/components/Tooltip.vue.d.ts +6 -3
  359. package/dist/runtime/components/User.d.vue.ts +3 -1
  360. package/dist/runtime/components/User.vue +9 -7
  361. package/dist/runtime/components/User.vue.d.ts +3 -1
  362. package/dist/runtime/components/color-mode/ColorModeAvatar.d.vue.ts +1 -1
  363. package/dist/runtime/components/color-mode/ColorModeAvatar.vue +1 -1
  364. package/dist/runtime/components/color-mode/ColorModeAvatar.vue.d.ts +1 -1
  365. package/dist/runtime/components/color-mode/ColorModeButton.d.vue.ts +3 -1
  366. package/dist/runtime/components/color-mode/ColorModeButton.vue +5 -3
  367. package/dist/runtime/components/color-mode/ColorModeButton.vue.d.ts +3 -1
  368. package/dist/runtime/components/color-mode/ColorModeImage.d.vue.ts +1 -1
  369. package/dist/runtime/components/color-mode/ColorModeImage.vue +8 -3
  370. package/dist/runtime/components/color-mode/ColorModeImage.vue.d.ts +1 -1
  371. package/dist/runtime/components/color-mode/ColorModeSelect.d.vue.ts +3 -1
  372. package/dist/runtime/components/color-mode/ColorModeSelect.vue +6 -2
  373. package/dist/runtime/components/color-mode/ColorModeSelect.vue.d.ts +3 -1
  374. package/dist/runtime/components/color-mode/ColorModeSwitch.d.vue.ts +1 -1
  375. package/dist/runtime/components/color-mode/ColorModeSwitch.vue +1 -1
  376. package/dist/runtime/components/color-mode/ColorModeSwitch.vue.d.ts +1 -1
  377. package/dist/runtime/components/content/ContentSearch.d.vue.ts +17 -9
  378. package/dist/runtime/components/content/ContentSearch.vue +9 -4
  379. package/dist/runtime/components/content/ContentSearch.vue.d.ts +17 -9
  380. package/dist/runtime/components/content/ContentSearchButton.d.vue.ts +6 -1
  381. package/dist/runtime/components/content/ContentSearchButton.vue +6 -4
  382. package/dist/runtime/components/content/ContentSearchButton.vue.d.ts +6 -1
  383. package/dist/runtime/components/content/ContentSurround.d.vue.ts +8 -6
  384. package/dist/runtime/components/content/ContentSurround.vue +10 -8
  385. package/dist/runtime/components/content/ContentSurround.vue.d.ts +8 -6
  386. package/dist/runtime/components/content/ContentToc.d.vue.ts +11 -6
  387. package/dist/runtime/components/content/ContentToc.vue +16 -14
  388. package/dist/runtime/components/content/ContentToc.vue.d.ts +11 -6
  389. package/dist/runtime/components/locale/LocaleSelect.d.vue.ts +7 -3
  390. package/dist/runtime/components/locale/LocaleSelect.vue +6 -2
  391. package/dist/runtime/components/locale/LocaleSelect.vue.d.ts +7 -3
  392. package/dist/runtime/components/prose/A.d.vue.ts +1 -1
  393. package/dist/runtime/components/prose/A.vue +4 -2
  394. package/dist/runtime/components/prose/A.vue.d.ts +1 -1
  395. package/dist/runtime/components/prose/Accordion.d.vue.ts +3 -1
  396. package/dist/runtime/components/prose/Accordion.vue +4 -2
  397. package/dist/runtime/components/prose/Accordion.vue.d.ts +3 -1
  398. package/dist/runtime/components/prose/AccordionItem.d.vue.ts +4 -1
  399. package/dist/runtime/components/prose/AccordionItem.vue +5 -2
  400. package/dist/runtime/components/prose/AccordionItem.vue.d.ts +4 -1
  401. package/dist/runtime/components/prose/Badge.d.vue.ts +4 -1
  402. package/dist/runtime/components/prose/Badge.vue +5 -2
  403. package/dist/runtime/components/prose/Badge.vue.d.ts +4 -1
  404. package/dist/runtime/components/prose/Blockquote.d.vue.ts +1 -4
  405. package/dist/runtime/components/prose/Blockquote.vue +4 -2
  406. package/dist/runtime/components/prose/Blockquote.vue.d.ts +1 -4
  407. package/dist/runtime/components/prose/Callout.d.vue.ts +1 -1
  408. package/dist/runtime/components/prose/Callout.vue +12 -4
  409. package/dist/runtime/components/prose/Callout.vue.d.ts +1 -1
  410. package/dist/runtime/components/prose/Card.d.vue.ts +1 -1
  411. package/dist/runtime/components/prose/Card.vue +8 -6
  412. package/dist/runtime/components/prose/Card.vue.d.ts +1 -1
  413. package/dist/runtime/components/prose/CardGroup.d.vue.ts +4 -1
  414. package/dist/runtime/components/prose/CardGroup.vue +5 -2
  415. package/dist/runtime/components/prose/CardGroup.vue.d.ts +4 -1
  416. package/dist/runtime/components/prose/Code.d.vue.ts +1 -1
  417. package/dist/runtime/components/prose/Code.vue +4 -2
  418. package/dist/runtime/components/prose/Code.vue.d.ts +1 -1
  419. package/dist/runtime/components/prose/CodeCollapse.d.vue.ts +2 -2
  420. package/dist/runtime/components/prose/CodeCollapse.vue +7 -5
  421. package/dist/runtime/components/prose/CodeCollapse.vue.d.ts +2 -2
  422. package/dist/runtime/components/prose/CodeGroup.d.vue.ts +5 -3
  423. package/dist/runtime/components/prose/CodeGroup.vue +9 -7
  424. package/dist/runtime/components/prose/CodeGroup.vue.d.ts +5 -3
  425. package/dist/runtime/components/prose/CodeIcon.d.vue.ts +1 -1
  426. package/dist/runtime/components/prose/CodeIcon.vue.d.ts +1 -1
  427. package/dist/runtime/components/prose/CodePreview.d.vue.ts +1 -1
  428. package/dist/runtime/components/prose/CodePreview.vue +6 -4
  429. package/dist/runtime/components/prose/CodePreview.vue.d.ts +1 -1
  430. package/dist/runtime/components/prose/Collapsible.d.vue.ts +1 -1
  431. package/dist/runtime/components/prose/Collapsible.vue +7 -5
  432. package/dist/runtime/components/prose/Collapsible.vue.d.ts +1 -1
  433. package/dist/runtime/components/prose/Em.d.vue.ts +1 -4
  434. package/dist/runtime/components/prose/Em.vue +4 -2
  435. package/dist/runtime/components/prose/Em.vue.d.ts +1 -4
  436. package/dist/runtime/components/prose/Field.d.vue.ts +1 -1
  437. package/dist/runtime/components/prose/Field.vue +10 -8
  438. package/dist/runtime/components/prose/Field.vue.d.ts +1 -1
  439. package/dist/runtime/components/prose/FieldGroup.d.vue.ts +4 -1
  440. package/dist/runtime/components/prose/FieldGroup.vue +5 -2
  441. package/dist/runtime/components/prose/FieldGroup.vue.d.ts +4 -1
  442. package/dist/runtime/components/prose/H1.d.vue.ts +3 -1
  443. package/dist/runtime/components/prose/H1.vue +5 -3
  444. package/dist/runtime/components/prose/H1.vue.d.ts +3 -1
  445. package/dist/runtime/components/prose/H2.d.vue.ts +3 -1
  446. package/dist/runtime/components/prose/H2.vue +7 -5
  447. package/dist/runtime/components/prose/H2.vue.d.ts +3 -1
  448. package/dist/runtime/components/prose/H3.d.vue.ts +3 -1
  449. package/dist/runtime/components/prose/H3.vue +7 -5
  450. package/dist/runtime/components/prose/H3.vue.d.ts +3 -1
  451. package/dist/runtime/components/prose/H4.d.vue.ts +3 -1
  452. package/dist/runtime/components/prose/H4.vue +7 -5
  453. package/dist/runtime/components/prose/H4.vue.d.ts +3 -1
  454. package/dist/runtime/components/prose/H5.d.vue.ts +3 -1
  455. package/dist/runtime/components/prose/H5.vue +4 -2
  456. package/dist/runtime/components/prose/H5.vue.d.ts +3 -1
  457. package/dist/runtime/components/prose/H6.d.vue.ts +3 -1
  458. package/dist/runtime/components/prose/H6.vue +4 -2
  459. package/dist/runtime/components/prose/H6.vue.d.ts +3 -1
  460. package/dist/runtime/components/prose/Hr.d.vue.ts +1 -1
  461. package/dist/runtime/components/prose/Hr.vue +4 -2
  462. package/dist/runtime/components/prose/Hr.vue.d.ts +1 -1
  463. package/dist/runtime/components/prose/Img.d.vue.ts +3 -1
  464. package/dist/runtime/components/prose/Img.vue +10 -9
  465. package/dist/runtime/components/prose/Img.vue.d.ts +3 -1
  466. package/dist/runtime/components/prose/Kbd.d.vue.ts +4 -1
  467. package/dist/runtime/components/prose/Kbd.vue +5 -2
  468. package/dist/runtime/components/prose/Kbd.vue.d.ts +4 -1
  469. package/dist/runtime/components/prose/Li.d.vue.ts +1 -4
  470. package/dist/runtime/components/prose/Li.vue +4 -2
  471. package/dist/runtime/components/prose/Li.vue.d.ts +1 -4
  472. package/dist/runtime/components/prose/Ol.d.vue.ts +1 -4
  473. package/dist/runtime/components/prose/Ol.vue +4 -2
  474. package/dist/runtime/components/prose/Ol.vue.d.ts +1 -4
  475. package/dist/runtime/components/prose/P.d.vue.ts +4 -1
  476. package/dist/runtime/components/prose/P.vue +4 -2
  477. package/dist/runtime/components/prose/P.vue.d.ts +4 -1
  478. package/dist/runtime/components/prose/Pre.d.vue.ts +1 -1
  479. package/dist/runtime/components/prose/Pre.vue +9 -7
  480. package/dist/runtime/components/prose/Pre.vue.d.ts +1 -1
  481. package/dist/runtime/components/prose/Steps.d.vue.ts +4 -1
  482. package/dist/runtime/components/prose/Steps.vue +5 -2
  483. package/dist/runtime/components/prose/Steps.vue.d.ts +4 -1
  484. package/dist/runtime/components/prose/Strong.d.vue.ts +1 -4
  485. package/dist/runtime/components/prose/Strong.vue +4 -2
  486. package/dist/runtime/components/prose/Strong.vue.d.ts +1 -4
  487. package/dist/runtime/components/prose/Table.d.vue.ts +7 -1
  488. package/dist/runtime/components/prose/Table.vue +5 -3
  489. package/dist/runtime/components/prose/Table.vue.d.ts +7 -1
  490. package/dist/runtime/components/prose/Tabs.d.vue.ts +5 -3
  491. package/dist/runtime/components/prose/Tabs.vue +4 -2
  492. package/dist/runtime/components/prose/Tabs.vue.d.ts +5 -3
  493. package/dist/runtime/components/prose/TabsItem.d.vue.ts +4 -1
  494. package/dist/runtime/components/prose/TabsItem.vue +5 -2
  495. package/dist/runtime/components/prose/TabsItem.vue.d.ts +4 -1
  496. package/dist/runtime/components/prose/Tbody.d.vue.ts +1 -4
  497. package/dist/runtime/components/prose/Tbody.vue +4 -2
  498. package/dist/runtime/components/prose/Tbody.vue.d.ts +1 -4
  499. package/dist/runtime/components/prose/Td.d.vue.ts +2 -4
  500. package/dist/runtime/components/prose/Td.vue +8 -3
  501. package/dist/runtime/components/prose/Td.vue.d.ts +2 -4
  502. package/dist/runtime/components/prose/Th.d.vue.ts +2 -4
  503. package/dist/runtime/components/prose/Th.vue +8 -3
  504. package/dist/runtime/components/prose/Th.vue.d.ts +2 -4
  505. package/dist/runtime/components/prose/Thead.d.vue.ts +1 -4
  506. package/dist/runtime/components/prose/Thead.vue +4 -2
  507. package/dist/runtime/components/prose/Thead.vue.d.ts +1 -4
  508. package/dist/runtime/components/prose/Tr.d.vue.ts +1 -4
  509. package/dist/runtime/components/prose/Tr.vue +4 -2
  510. package/dist/runtime/components/prose/Tr.vue.d.ts +1 -4
  511. package/dist/runtime/components/prose/Ul.d.vue.ts +1 -4
  512. package/dist/runtime/components/prose/Ul.vue +4 -2
  513. package/dist/runtime/components/prose/Ul.vue.d.ts +1 -4
  514. package/dist/runtime/components/prose/callout/Caution.d.vue.ts +2 -2
  515. package/dist/runtime/components/prose/callout/Caution.vue.d.ts +2 -2
  516. package/dist/runtime/components/prose/callout/Note.d.vue.ts +2 -2
  517. package/dist/runtime/components/prose/callout/Note.vue.d.ts +2 -2
  518. package/dist/runtime/components/prose/callout/Tip.d.vue.ts +2 -2
  519. package/dist/runtime/components/prose/callout/Tip.vue.d.ts +2 -2
  520. package/dist/runtime/components/prose/callout/Warning.d.vue.ts +2 -2
  521. package/dist/runtime/components/prose/callout/Warning.vue.d.ts +2 -2
  522. package/dist/runtime/composables/color-mode/useColorMode.d.ts +6 -0
  523. package/dist/runtime/composables/color-mode/useColorMode.js +15 -6
  524. package/dist/runtime/composables/defineShortcuts.js +4 -1
  525. package/dist/runtime/composables/internal/useFilter.d.ts +9 -0
  526. package/dist/runtime/composables/internal/useFilter.js +60 -0
  527. package/dist/runtime/composables/useAvatarGroup.d.ts +1 -1
  528. package/dist/runtime/composables/useComponentUI.d.ts +33 -0
  529. package/dist/runtime/composables/useComponentUI.js +13 -0
  530. package/dist/runtime/composables/useEditorMenu.d.ts +12 -1
  531. package/dist/runtime/composables/useEditorMenu.js +156 -151
  532. package/dist/runtime/composables/useFieldGroup.d.ts +1 -1
  533. package/dist/runtime/composables/useFormField.d.ts +1 -1
  534. package/dist/runtime/composables/useLoading.d.ts +3 -0
  535. package/dist/runtime/composables/useOverlay.d.ts +3 -1
  536. package/dist/runtime/composables/useResizable.d.ts +1 -1
  537. package/dist/runtime/composables/useResizable.js +1 -1
  538. package/dist/runtime/composables/useToast.d.ts +4 -0
  539. package/dist/runtime/composables/useToast.js +25 -1
  540. package/dist/runtime/dictionary/icons.d.ts +3 -0
  541. package/dist/runtime/dictionary/icons.js +7 -1
  542. package/dist/runtime/index.css +1 -1
  543. package/dist/runtime/keyframes.css +1 -1
  544. package/dist/runtime/plugins/platform.d.ts +34 -0
  545. package/dist/runtime/plugins/platform.js +31 -0
  546. package/dist/runtime/plugins/ui-version.d.ts +1 -1
  547. package/dist/runtime/types/color-mode.d.ts +1 -1
  548. package/dist/runtime/types/editor.d.ts +2 -1
  549. package/dist/runtime/types/html.d.ts +3 -1
  550. package/dist/runtime/types/index.d.ts +19 -0
  551. package/dist/runtime/types/index.js +19 -0
  552. package/dist/runtime/types/input.d.ts +16 -6
  553. package/dist/runtime/types/utils.d.ts +10 -8
  554. package/dist/runtime/utils/ai.d.ts +7 -0
  555. package/dist/runtime/utils/dashboard.d.ts +4 -5
  556. package/dist/runtime/utils/dashboard.js +1 -1
  557. package/dist/runtime/utils/editor.d.ts +1 -1
  558. package/dist/runtime/utils/editor.js +28 -10
  559. package/dist/runtime/utils/fuse.js +22 -3
  560. package/dist/runtime/utils/index.d.ts +3 -1
  561. package/dist/runtime/utils/index.js +13 -3
  562. package/dist/runtime/utils/overlay.d.ts +19 -0
  563. package/dist/runtime/utils/overlay.js +13 -0
  564. package/dist/runtime/utils/virtualizer.d.ts +1 -3
  565. package/dist/runtime/utils/virtualizer.js +15 -6
  566. package/dist/runtime/vue/components/color-mode/ColorModeSelect.d.vue.ts +3 -1
  567. package/dist/runtime/vue/components/color-mode/ColorModeSelect.vue +6 -2
  568. package/dist/runtime/vue/components/color-mode/ColorModeSelect.vue.d.ts +3 -1
  569. package/dist/runtime/vue/components/color-mode/ColorModeSwitch.d.vue.ts +1 -1
  570. package/dist/runtime/vue/components/color-mode/ColorModeSwitch.vue +1 -1
  571. package/dist/runtime/vue/components/color-mode/ColorModeSwitch.vue.d.ts +1 -1
  572. package/dist/runtime/vue/overrides/inertia/Link.d.vue.ts +7 -1
  573. package/dist/runtime/vue/overrides/inertia/Link.vue +1 -0
  574. package/dist/runtime/vue/overrides/inertia/Link.vue.d.ts +7 -1
  575. package/dist/runtime/vue/overrides/inertia/LinkBase.d.vue.ts +6 -3
  576. package/dist/runtime/vue/overrides/inertia/LinkBase.vue.d.ts +6 -3
  577. package/dist/runtime/vue/overrides/none/Link.d.vue.ts +7 -1
  578. package/dist/runtime/vue/overrides/none/Link.vue +11 -3
  579. package/dist/runtime/vue/overrides/none/Link.vue.d.ts +7 -1
  580. package/dist/runtime/vue/overrides/vue-router/Link.d.vue.ts +7 -1
  581. package/dist/runtime/vue/overrides/vue-router/Link.vue +2 -2
  582. package/dist/runtime/vue/overrides/vue-router/Link.vue.d.ts +7 -1
  583. package/dist/runtime/vue/plugins/router.d.ts +4 -0
  584. package/dist/runtime/vue/plugins/router.js +7 -0
  585. package/dist/runtime/vue/stubs/base.d.ts +9 -13
  586. package/dist/runtime/vue/stubs/base.js +11 -33
  587. package/dist/shared/{b24ui-nuxt.C-CS9MBp.mjs → b24ui-nuxt.DstlkmYO.mjs} +904 -60
  588. package/dist/unplugin.d.mts +2 -1
  589. package/dist/unplugin.mjs +6 -3
  590. package/dist/vite.d.mts +2 -3
  591. package/dist/vite.mjs +1 -1
  592. package/package.json +68 -58
  593. package/dist/meta.d.mts +0 -220263
  594. package/dist/meta.mjs +0 -220263
@@ -3,9 +3,9 @@ import type { AppConfig } from '@nuxt/schema';
3
3
  import theme from '#build/b24ui/select';
4
4
  import type { UseComponentIconsProps } from '../composables/useComponentIcons';
5
5
  import type { AvatarProps, ChipProps, 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 Select = ComponentConfig<typeof theme, AppConfig, 'select'>;
11
11
  export type SelectValue = AcceptableValue;
@@ -32,7 +32,10 @@ export type SelectItem = SelectValue | {
32
32
  b24ui?: Pick<Select['slots'], 'label' | 'separator' | 'item' | 'itemLeadingIcon' | 'itemLeadingAvatarSize' | 'itemLeadingAvatar' | 'itemLeadingChipSize' | 'itemLeadingChip' | 'itemWrapper' | 'itemLabel' | 'itemDescription' | 'itemTrailing' | 'itemTrailingIcon'>;
33
33
  [key: string]: any;
34
34
  };
35
- export interface SelectProps<T extends ArrayOrNested<SelectItem> = ArrayOrNested<SelectItem>, VK extends GetItemKeys<T> = 'value', M extends boolean = false> extends Omit<SelectRootProps<T>, 'dir' | 'multiple' | 'modelValue' | 'defaultValue' | 'by'>, UseComponentIconsProps, /** @vue-ignore */ Omit<ButtonHTMLAttributes, 'type' | 'disabled' | 'name'> {
35
+ type ExcludeItem = {
36
+ type: 'label' | 'separator';
37
+ };
38
+ export interface SelectProps<T extends ArrayOrNested<SelectItem> = ArrayOrNested<SelectItem>, VK extends GetItemKeys<T> = 'value', M extends boolean = false, Mod extends Omit<ModelModifiers, 'lazy'> = Omit<ModelModifiers, 'lazy'>> extends Omit<SelectRootProps<T>, 'dir' | 'multiple' | 'modelValue' | 'defaultValue' | 'by'>, UseComponentIconsProps, /** @vue-ignore */ Omit<ButtonHTMLAttributes, 'type' | 'disabled' | 'name'> {
36
39
  id?: string;
37
40
  /** The placeholder text when the select is empty. */
38
41
  placeholder?: string;
@@ -113,10 +116,10 @@ export interface SelectProps<T extends ArrayOrNested<SelectItem> = ArrayOrNested
113
116
  descriptionKey?: GetItemKeys<T>;
114
117
  items?: T;
115
118
  /** The value of the Select when initially rendered. Use when you do not need to control the state of the Select. */
116
- defaultValue?: GetModelValue<T, VK, M>;
119
+ defaultValue?: ApplyModifiers<GetModelValue<T, VK, M, ExcludeItem>, Mod>;
117
120
  /** The controlled value of the Select. Can be bind as `v-model`. */
118
- modelValue?: GetModelValue<T, VK, M>;
119
- modelModifiers?: Omit<ModelModifiers<GetModelValue<T, VK, M>>, 'lazy'>;
121
+ modelValue?: ApplyModifiers<GetModelValue<T, VK, M, ExcludeItem>, Mod>;
122
+ modelModifiers?: Mod;
120
123
  /** Whether multiple options can be selected or not. */
121
124
  multiple?: M & boolean;
122
125
  /** Highlight the ring color like a focus state. */
@@ -126,29 +129,30 @@ export interface SelectProps<T extends ArrayOrNested<SelectItem> = ArrayOrNested
126
129
  class?: any;
127
130
  b24ui?: Select['slots'];
128
131
  }
129
- export type SelectEmits<A extends ArrayOrNested<SelectItem>, VK extends GetItemKeys<A> | undefined, M extends boolean> = Omit<SelectRootEmits, 'update:modelValue'> & {
130
- change: [event: Event];
131
- blur: [event: FocusEvent];
132
- focus: [event: FocusEvent];
133
- } & GetModelValueEmits<A, VK, M>;
132
+ export interface SelectEmits<A extends ArrayOrNested<SelectItem>, VK extends GetItemKeys<A> | undefined, M extends boolean, Mod extends Omit<ModelModifiers, 'lazy'> = Omit<ModelModifiers, 'lazy'>> extends Omit<SelectRootEmits, 'update:modelValue'> {
133
+ 'change': [event: Event];
134
+ 'blur': [event: FocusEvent];
135
+ 'focus': [event: FocusEvent];
136
+ 'update:modelValue': [value: ApplyModifiers<GetModelValue<A, VK, M, ExcludeItem>, Mod>];
137
+ }
134
138
  type SlotProps<T extends SelectItem> = (props: {
135
139
  item: T;
136
140
  index: number;
137
141
  b24ui: Select['b24ui'];
138
142
  }) => any;
139
- export interface SelectSlots<A extends ArrayOrNested<SelectItem> = ArrayOrNested<SelectItem>, VK extends GetItemKeys<A> | undefined = undefined, M extends boolean = false, T extends NestedItem<A> = NestedItem<A>> {
143
+ export interface SelectSlots<A extends ArrayOrNested<SelectItem> = ArrayOrNested<SelectItem>, VK extends GetItemKeys<A> | undefined = undefined, M extends boolean = false, Mod extends Omit<ModelModifiers, 'lazy'> = Omit<ModelModifiers, 'lazy'>, T extends NestedItem<A> = NestedItem<A>> {
140
144
  'leading'(props: {
141
- modelValue?: GetModelValue<A, VK, M>;
145
+ modelValue?: ApplyModifiers<GetModelValue<A, VK, M, ExcludeItem>, Mod>;
142
146
  open: boolean;
143
147
  b24ui: Select['b24ui'];
144
148
  }): any;
145
149
  'default'(props: {
146
- modelValue?: GetModelValue<A, VK, M>;
150
+ modelValue?: ApplyModifiers<GetModelValue<A, VK, M, ExcludeItem>, Mod>;
147
151
  open: boolean;
148
152
  b24ui: Select['b24ui'];
149
153
  }): any;
150
154
  'trailing'(props: {
151
- modelValue?: GetModelValue<A, VK, M>;
155
+ modelValue?: ApplyModifiers<GetModelValue<A, VK, M, ExcludeItem>, Mod>;
152
156
  open: boolean;
153
157
  b24ui: Select['b24ui'];
154
158
  }): any;
@@ -166,21 +170,70 @@ export interface SelectSlots<A extends ArrayOrNested<SelectItem> = ArrayOrNested
166
170
  'content-top': (props?: {}) => any;
167
171
  'content-bottom': (props?: {}) => any;
168
172
  }
169
- declare const __VLS_export: <T extends ArrayOrNested<SelectItem>, VK extends GetItemKeys<T> = "value", M extends boolean = false>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
170
- props: __VLS_PrettifyLocal<SelectProps<T, VK, M> & __VLS_EmitsToProps<__VLS_NormalizeEmits<((evt: "blur", event: FocusEvent) => void) & ((evt: "change", event: Event) => void) & ((evt: "focus", event: FocusEvent) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "update:modelValue", value: GetModelValue<T, VK, M>) => void)>>> & import("vue").PublicProps & (typeof globalThis extends {
173
+ declare const _default: typeof __VLS_export;
174
+ export default _default;
175
+ declare const __VLS_export: <T extends ArrayOrNested<SelectItem>, VK extends GetItemKeys<T> = "value", M extends boolean = false, Mod extends Omit<ModelModifiers, "lazy"> = Omit<ModelModifiers, "lazy">>(__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<{
176
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<SelectProps<T, VK, M, Mod> & {
177
+ onBlur?: ((event: FocusEvent) => any) | undefined;
178
+ onChange?: ((event: Event) => any) | undefined;
179
+ onFocus?: ((event: FocusEvent) => any) | undefined;
180
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
181
+ "onUpdate:modelValue"?: ((value: Mod extends {
182
+ number: true;
183
+ } ? (Mod extends {
184
+ optional: true;
185
+ } ? (Mod extends {
186
+ nullable: true;
187
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
188
+ nullable: true;
189
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) extends infer T_1 ? T_1 extends (Mod extends {
190
+ optional: true;
191
+ } ? (Mod extends {
192
+ nullable: true;
193
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
194
+ nullable: true;
195
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) ? T_1 extends string ? number | T_1 : T_1 : never : never : Mod extends {
196
+ optional: true;
197
+ } ? (Mod extends {
198
+ nullable: true;
199
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
200
+ nullable: true;
201
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) => any) | undefined;
202
+ }> & (typeof globalThis extends {
171
203
  __VLS_PROPS_FALLBACK: infer P;
172
204
  } ? P : {});
173
205
  expose: (exposed: import("vue").ShallowUnwrapRef<{
174
206
  triggerRef: Readonly<import("vue").Ref<HTMLButtonElement, HTMLButtonElement>>;
207
+ viewportRef: Readonly<import("vue").Ref<HTMLDivElement | null, HTMLDivElement | null>>;
175
208
  }>) => void;
176
209
  attrs: any;
177
- slots: SelectSlots<T, VK, M, NestedItem<T>>;
178
- emit: ((evt: "blur", event: FocusEvent) => void) & ((evt: "change", event: Event) => void) & ((evt: "focus", event: FocusEvent) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "update:modelValue", value: GetModelValue<T, VK, M>) => void);
210
+ slots: SelectSlots<T, VK, M, Mod, NestedItem<T>>;
211
+ emit: ((evt: "blur", event: FocusEvent) => void) & ((evt: "change", event: Event) => void) & ((evt: "focus", event: FocusEvent) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "update:modelValue", value: Mod extends {
212
+ number: true;
213
+ } ? (Mod extends {
214
+ optional: true;
215
+ } ? (Mod extends {
216
+ nullable: true;
217
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
218
+ nullable: true;
219
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) extends infer T_1 ? T_1 extends (Mod extends {
220
+ optional: true;
221
+ } ? (Mod extends {
222
+ nullable: true;
223
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
224
+ nullable: true;
225
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) ? T_1 extends string ? number | T_1 : T_1 : never : never : Mod extends {
226
+ optional: true;
227
+ } ? (Mod extends {
228
+ nullable: true;
229
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
230
+ nullable: true;
231
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) => void);
179
232
  }>) => import("vue").VNode & {
180
233
  __ctx?: Awaited<typeof __VLS_setup>;
181
234
  };
182
- declare const _default: typeof __VLS_export;
183
- export default _default;
184
- type __VLS_PrettifyLocal<T> = {
235
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
236
+ [K in keyof T]: T[K];
237
+ } : {
185
238
  [K in keyof T as K]: T[K];
186
- } & {};
239
+ }) & {};
@@ -8,6 +8,7 @@ import { Primitive, SelectRoot, SelectArrow, SelectTrigger, SelectPortal, Select
8
8
  import { defu } from "defu";
9
9
  import { reactivePick } 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";
@@ -41,13 +42,13 @@ const props = defineProps({
41
42
  items: { type: null, required: false },
42
43
  defaultValue: { type: null, required: false },
43
44
  modelValue: { type: null, required: false },
44
- modelModifiers: { type: Object, required: false },
45
+ modelModifiers: { type: null, required: false },
45
46
  multiple: { type: Boolean, required: false },
46
47
  highlight: { type: Boolean, required: false },
47
48
  autofocus: { type: Boolean, required: false },
48
49
  autofocusDelay: { type: Number, required: false, default: 0 },
49
50
  class: { type: null, required: false },
50
- b24ui: { type: null, required: false },
51
+ b24ui: { type: Object, required: false },
51
52
  open: { type: Boolean, required: false },
52
53
  defaultOpen: { type: Boolean, required: false },
53
54
  autocomplete: { type: String, required: false },
@@ -59,19 +60,17 @@ const props = defineProps({
59
60
  loading: { type: Boolean, required: false },
60
61
  trailing: { type: Boolean, required: false }
61
62
  });
62
- const emits = defineEmits(["update:open", "change", "blur", "focus", "update:modelValue"]);
63
+ const emits = defineEmits(["change", "blur", "focus", "update:modelValue", "update:open"]);
63
64
  const slots = defineSlots();
64
65
  const appConfig = useAppConfig();
66
+ const uiProp = useComponentUI("select", props);
65
67
  const rootProps = useForwardPropsEmits(reactivePick(props, "open", "defaultOpen", "disabled", "autocomplete", "required", "multiple"), emits);
66
68
  const portalProps = usePortal(toRef(() => props.portal));
67
69
  const contentProps = toRef(() => defu(props.content, { side: "bottom", sideOffset: 8, collisionPadding: 8, position: "popper" }));
68
70
  const arrowProps = toRef(() => defu(typeof props.arrow === "boolean" ? {} : props.arrow, { width: 20, height: 10 }));
69
71
  const { emitFormChange, emitFormInput, emitFormBlur, emitFormFocus, size: formGroupSize, color, id, name, highlight, disabled, ariaAttrs } = useFormField(props);
70
72
  const { orientation, size: fieldGroupSize } = useFieldGroup(props);
71
- const { isLeading, isTrailing, leadingIconName, trailingIconName } = useComponentIcons(toRef(() => defu(
72
- props,
73
- { trailingIcon: icons.chevronDown }
74
- )));
73
+ const { isLeading, isTrailing, leadingIconName, trailingIconName } = useComponentIcons(toRef(() => defu(props, { trailingIcon: icons.chevronDown })));
75
74
  const selectSize = computed(() => fieldGroupSize.value || formGroupSize.value);
76
75
  const isTag = computed(() => {
77
76
  return props.tag;
@@ -120,7 +119,7 @@ onMounted(() => {
120
119
  }, props.autofocusDelay);
121
120
  });
122
121
  function onUpdate(value) {
123
- if (props.modelModifiers?.trim) {
122
+ if (props.modelModifiers?.trim && (typeof value === "string" || value === null || value === void 0)) {
124
123
  value = value?.trim() ?? null;
125
124
  }
126
125
  if (props.modelModifiers?.number) {
@@ -129,7 +128,7 @@ function onUpdate(value) {
129
128
  if (props.modelModifiers?.nullable) {
130
129
  value ??= null;
131
130
  }
132
- if (props.modelModifiers?.optional) {
131
+ if (props.modelModifiers?.optional && !props.modelModifiers?.nullable && value !== null) {
133
132
  value ??= void 0;
134
133
  }
135
134
  const event = new Event("change", { target: { value } });
@@ -151,13 +150,15 @@ function onUpdateOpen(value) {
151
150
  function isSelectItem(item) {
152
151
  return typeof item === "object" && item !== null;
153
152
  }
153
+ const viewportRef = useTemplateRef("viewportRef");
154
154
  defineExpose({
155
- triggerRef: toRef(() => triggerRef.value?.$el)
155
+ triggerRef: toRef(() => triggerRef.value?.$el),
156
+ viewportRef: toRef(() => viewportRef.value)
156
157
  });
157
158
  </script>
158
159
 
159
160
  <template>
160
- <Primitive as="div" data-slot="root" :class="b24ui.root({ class: [props.b24ui?.root] })">
161
+ <Primitive as="div" data-slot="root" :class="b24ui.root({ class: [uiProp?.root] })">
161
162
  <SelectRoot
162
163
  v-slot="{ modelValue, open }"
163
164
  :name="name"
@@ -173,31 +174,31 @@ defineExpose({
173
174
  :id="id"
174
175
  ref="triggerRef"
175
176
  data-slot="base"
176
- :class="b24ui.base({ class: [props.b24ui?.base, props.class] })"
177
+ :class="b24ui.base({ class: [uiProp?.base, props.class] })"
177
178
  v-bind="{ ...$attrs, ...ariaAttrs }"
178
179
  >
179
180
  <B24Badge
180
181
  v-if="isTag"
181
182
  data-slot="tag"
182
- :class="b24ui.tag({ class: props.b24ui?.tag })"
183
+ :class="b24ui.tag({ class: uiProp?.tag })"
183
184
  :color="props.tagColor"
184
185
  :label="props.tag"
185
186
  size="xs"
186
187
  />
187
- <span v-if="isLeading || !!avatar || !!slots.leading" data-slot="leading" :class="b24ui.leading({ class: props.b24ui?.leading })">
188
+ <span v-if="isLeading || !!avatar || !!slots.leading" data-slot="leading" :class="b24ui.leading({ class: uiProp?.leading })">
188
189
  <slot name="leading" :model-value="modelValue" :open="open" :b24ui="b24ui">
189
190
  <Component
190
191
  :is="leadingIconName"
191
192
  v-if="isLeading && leadingIconName"
192
193
  data-slot="leadingIcon"
193
- :class="b24ui.leadingIcon({ class: props.b24ui?.leadingIcon })"
194
+ :class="b24ui.leadingIcon({ class: uiProp?.leadingIcon })"
194
195
  />
195
196
  <B24Avatar
196
197
  v-else-if="!!avatar"
197
- :size="props.b24ui?.leadingAvatarSize || b24ui.leadingAvatarSize()"
198
+ :size="uiProp?.leadingAvatarSize || b24ui.leadingAvatarSize()"
198
199
  v-bind="avatar"
199
200
  data-slot="leadingAvatar"
200
- :class="b24ui.leadingAvatar({ class: props.b24ui?.leadingAvatar })"
201
+ :class="b24ui.leadingAvatar({ class: uiProp?.leadingAvatar })"
201
202
  />
202
203
  </slot>
203
204
  </span>
@@ -207,53 +208,54 @@ defineExpose({
207
208
  <span
208
209
  v-if="displayedModelValue !== void 0 && displayedModelValue !== null"
209
210
  data-slot="value"
210
- :class="b24ui.value({ class: props.b24ui?.value })"
211
+ :class="b24ui.value({ class: uiProp?.value })"
211
212
  >
212
213
  {{ displayedModelValue }}
213
214
  </span>
214
215
  <span
215
216
  v-else
216
217
  data-slot="placeholder"
217
- :class="b24ui.placeholder({ class: props.b24ui?.placeholder })"
218
+ :class="b24ui.placeholder({ class: uiProp?.placeholder })"
218
219
  >
219
220
  {{ placeholder ?? "\xA0" }}
220
221
  </span>
221
222
  </template>
222
223
  </slot>
223
224
 
224
- <span v-if="isTrailing || !!slots.trailing" data-slot="trailing" :class="b24ui.trailing({ class: props.b24ui?.trailing })">
225
+ <span v-if="isTrailing || !!slots.trailing" data-slot="trailing" :class="b24ui.trailing({ class: uiProp?.trailing })">
225
226
  <slot name="trailing" :model-value="modelValue" :open="open" :b24ui="b24ui">
226
227
  <Component
227
228
  :is="trailingIconName"
228
229
  v-if="trailingIconName"
229
230
  data-slot="trailingIcon"
230
- :class="b24ui.trailingIcon({ class: props.b24ui?.trailingIcon })"
231
+ :class="b24ui.trailingIcon({ class: uiProp?.trailingIcon })"
231
232
  />
232
233
  </slot>
233
234
  </span>
234
235
  </SelectTrigger>
235
236
 
236
237
  <SelectPortal v-bind="portalProps">
237
- <SelectContent data-slot="content" :class="b24ui.content({ class: props.b24ui?.content })" v-bind="contentProps">
238
+ <SelectContent data-slot="content" :class="b24ui.content({ class: uiProp?.content })" v-bind="contentProps">
238
239
  <slot name="content-top" />
239
240
 
240
241
  <div
242
+ ref="viewportRef"
241
243
  role="presentation"
242
244
  data-slot="viewport"
243
- :class="b24ui.viewport({ class: props.b24ui?.viewport })"
245
+ :class="b24ui.viewport({ class: uiProp?.viewport })"
244
246
  >
245
- <SelectGroup v-for="(group, groupIndex) in groups" :key="`group-${groupIndex}`" data-slot="group" :class="b24ui.group({ class: props.b24ui?.group })">
247
+ <SelectGroup v-for="(group, groupIndex) in groups" :key="`group-${groupIndex}`" data-slot="group" :class="b24ui.group({ class: uiProp?.group })">
246
248
  <template v-for="(item, index) in group" :key="`group-${groupIndex}-${index}`">
247
- <SelectLabel v-if="isSelectItem(item) && item.type === 'label'" data-slot="label" :class="b24ui.label({ class: [props.b24ui?.label, item.b24ui?.label, item.class] })">
249
+ <SelectLabel v-if="isSelectItem(item) && item.type === 'label'" data-slot="label" :class="b24ui.label({ class: [uiProp?.label, item.b24ui?.label, item.class] })">
248
250
  {{ get(item, props.labelKey) }}
249
251
  </SelectLabel>
250
252
 
251
- <SelectSeparator v-else-if="isSelectItem(item) && item.type === 'separator'" data-slot="separator" :class="b24ui.separator({ class: [props.b24ui?.separator, item.b24ui?.separator, item.class] })" />
253
+ <SelectSeparator v-else-if="isSelectItem(item) && item.type === 'separator'" data-slot="separator" :class="b24ui.separator({ class: [uiProp?.separator, item.b24ui?.separator, item.class] })" />
252
254
 
253
255
  <RSelectItem
254
256
  v-else
255
257
  data-slot="item"
256
- :class="b24ui.item({ class: [props.b24ui?.item, isSelectItem(item) && item.b24ui?.item, isSelectItem(item) && item.class], colorItem: isSelectItem(item) && item?.color || void 0 })"
258
+ :class="b24ui.item({ class: [uiProp?.item, isSelectItem(item) && item.b24ui?.item, isSelectItem(item) && item.class], colorItem: isSelectItem(item) && item?.color || void 0 })"
257
259
  :disabled="isSelectItem(item) && item.disabled"
258
260
  :value="isSelectItem(item) ? get(item, props.valueKey) : item"
259
261
  @select="isSelectItem(item) && item.onSelect?.($event)"
@@ -262,15 +264,15 @@ defineExpose({
262
264
  <slot name="item-leading" :item="item" :index="index" :b24ui="b24ui">
263
265
  <B24Avatar
264
266
  v-if="isSelectItem(item) && item.avatar"
265
- :size="item.b24ui?.itemLeadingAvatarSize || props.b24ui?.itemLeadingAvatarSize || b24ui.itemLeadingAvatarSize()"
267
+ :size="item.b24ui?.itemLeadingAvatarSize || uiProp?.itemLeadingAvatarSize || b24ui.itemLeadingAvatarSize()"
266
268
  v-bind="item.avatar"
267
269
  data-slot="itemLeadingAvatar"
268
- :class="b24ui.itemLeadingAvatar({ class: [props.b24ui?.itemLeadingAvatar, item.b24ui?.itemLeadingAvatar], colorItem: item?.color })"
270
+ :class="b24ui.itemLeadingAvatar({ class: [uiProp?.itemLeadingAvatar, item.b24ui?.itemLeadingAvatar], colorItem: item?.color })"
269
271
  />
270
272
  </slot>
271
273
 
272
- <span data-slot="itemWrapper" :class="b24ui.itemWrapper({ class: [props.b24ui?.itemWrapper, isSelectItem(item) && item.b24ui?.itemWrapper] })">
273
- <SelectItemText data-slot="itemLabel" :class="b24ui.itemLabel({ class: [props.b24ui?.itemLabel, isSelectItem(item) && item.b24ui?.itemLabel] })">
274
+ <span data-slot="itemWrapper" :class="b24ui.itemWrapper({ class: [uiProp?.itemWrapper, isSelectItem(item) && item.b24ui?.itemWrapper] })">
275
+ <SelectItemText data-slot="itemLabel" :class="b24ui.itemLabel({ class: [uiProp?.itemLabel, isSelectItem(item) && item.b24ui?.itemLabel] })">
274
276
  <slot name="item-label" :item="item" :index="index">
275
277
  {{ isSelectItem(item) ? get(item, props.labelKey) : item }}
276
278
  </slot>
@@ -279,7 +281,7 @@ defineExpose({
279
281
  <span
280
282
  v-if="isSelectItem(item) && (get(item, props.descriptionKey) || !!slots['item-description'])"
281
283
  data-slot="itemDescription"
282
- :class="b24ui.itemDescription({ class: [props.b24ui?.itemDescription, isSelectItem(item) && item.b24ui?.itemDescription] })"
284
+ :class="b24ui.itemDescription({ class: [uiProp?.itemDescription, isSelectItem(item) && item.b24ui?.itemDescription] })"
283
285
  >
284
286
  <slot
285
287
  name="item-description"
@@ -291,12 +293,12 @@ defineExpose({
291
293
  </span>
292
294
  </span>
293
295
 
294
- <span data-slot="itemTrailing" :class="b24ui.itemTrailing({ class: [props.b24ui?.itemTrailing, isSelectItem(item) && item.b24ui?.itemTrailing], colorItem: isSelectItem(item) && item?.color || void 0 })">
296
+ <span data-slot="itemTrailing" :class="b24ui.itemTrailing({ class: [uiProp?.itemTrailing, isSelectItem(item) && item.b24ui?.itemTrailing], colorItem: isSelectItem(item) && item?.color || void 0 })">
295
297
  <SelectItemIndicator as-child>
296
298
  <Component
297
299
  :is="selectedIcon || icons.check"
298
300
  data-slot="itemTrailingIcon"
299
- :class="b24ui.itemTrailingIcon({ class: [props.b24ui?.itemTrailingIcon, isSelectItem(item) && item.b24ui?.itemTrailingIcon], colorItem: isSelectItem(item) && item?.color || void 0 })"
301
+ :class="b24ui.itemTrailingIcon({ class: [uiProp?.itemTrailingIcon, isSelectItem(item) && item.b24ui?.itemTrailingIcon], colorItem: isSelectItem(item) && item?.color || void 0 })"
300
302
  />
301
303
  </SelectItemIndicator>
302
304
 
@@ -305,16 +307,16 @@ defineExpose({
305
307
  :is="item.icon"
306
308
  v-if="isSelectItem(item) && item.icon"
307
309
  data-slot="itemLeadingIcon"
308
- :class="b24ui.itemLeadingIcon({ class: [props.b24ui?.itemLeadingIcon, item.b24ui?.itemLeadingIcon], colorItem: item?.color })"
310
+ :class="b24ui.itemLeadingIcon({ class: [uiProp?.itemLeadingIcon, item.b24ui?.itemLeadingIcon], colorItem: item?.color })"
309
311
  />
310
312
  <B24Chip
311
313
  v-else-if="isSelectItem(item) && item.chip"
312
- :size="item.b24ui?.itemLeadingChipSize || props.b24ui?.itemLeadingChipSize || b24ui.itemLeadingChipSize()"
314
+ :size="item.b24ui?.itemLeadingChipSize || uiProp?.itemLeadingChipSize || b24ui.itemLeadingChipSize()"
313
315
  inset
314
316
  standalone
315
317
  v-bind="item.chip"
316
318
  data-slot="itemLeadingChip"
317
- :class="b24ui.itemLeadingChip({ class: [props.b24ui?.itemLeadingChip, item.b24ui?.itemLeadingChip], colorItem: item?.color })"
319
+ :class="b24ui.itemLeadingChip({ class: [uiProp?.itemLeadingChip, item.b24ui?.itemLeadingChip], colorItem: item?.color })"
318
320
  />
319
321
  </slot>
320
322
  </span>
@@ -326,7 +328,7 @@ defineExpose({
326
328
 
327
329
  <slot name="content-bottom" />
328
330
 
329
- <SelectArrow v-if="!!arrow" v-bind="arrowProps" data-slot="arrow" :class="b24ui.arrow({ class: props.b24ui?.arrow })" />
331
+ <SelectArrow v-if="!!arrow" v-bind="arrowProps" data-slot="arrow" :class="b24ui.arrow({ class: uiProp?.arrow })" />
330
332
  </SelectContent>
331
333
  </SelectPortal>
332
334
  </SelectRoot>
@@ -3,9 +3,9 @@ import type { AppConfig } from '@nuxt/schema';
3
3
  import theme from '#build/b24ui/select';
4
4
  import type { UseComponentIconsProps } from '../composables/useComponentIcons';
5
5
  import type { AvatarProps, ChipProps, 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 Select = ComponentConfig<typeof theme, AppConfig, 'select'>;
11
11
  export type SelectValue = AcceptableValue;
@@ -32,7 +32,10 @@ export type SelectItem = SelectValue | {
32
32
  b24ui?: Pick<Select['slots'], 'label' | 'separator' | 'item' | 'itemLeadingIcon' | 'itemLeadingAvatarSize' | 'itemLeadingAvatar' | 'itemLeadingChipSize' | 'itemLeadingChip' | 'itemWrapper' | 'itemLabel' | 'itemDescription' | 'itemTrailing' | 'itemTrailingIcon'>;
33
33
  [key: string]: any;
34
34
  };
35
- export interface SelectProps<T extends ArrayOrNested<SelectItem> = ArrayOrNested<SelectItem>, VK extends GetItemKeys<T> = 'value', M extends boolean = false> extends Omit<SelectRootProps<T>, 'dir' | 'multiple' | 'modelValue' | 'defaultValue' | 'by'>, UseComponentIconsProps, /** @vue-ignore */ Omit<ButtonHTMLAttributes, 'type' | 'disabled' | 'name'> {
35
+ type ExcludeItem = {
36
+ type: 'label' | 'separator';
37
+ };
38
+ export interface SelectProps<T extends ArrayOrNested<SelectItem> = ArrayOrNested<SelectItem>, VK extends GetItemKeys<T> = 'value', M extends boolean = false, Mod extends Omit<ModelModifiers, 'lazy'> = Omit<ModelModifiers, 'lazy'>> extends Omit<SelectRootProps<T>, 'dir' | 'multiple' | 'modelValue' | 'defaultValue' | 'by'>, UseComponentIconsProps, /** @vue-ignore */ Omit<ButtonHTMLAttributes, 'type' | 'disabled' | 'name'> {
36
39
  id?: string;
37
40
  /** The placeholder text when the select is empty. */
38
41
  placeholder?: string;
@@ -113,10 +116,10 @@ export interface SelectProps<T extends ArrayOrNested<SelectItem> = ArrayOrNested
113
116
  descriptionKey?: GetItemKeys<T>;
114
117
  items?: T;
115
118
  /** The value of the Select when initially rendered. Use when you do not need to control the state of the Select. */
116
- defaultValue?: GetModelValue<T, VK, M>;
119
+ defaultValue?: ApplyModifiers<GetModelValue<T, VK, M, ExcludeItem>, Mod>;
117
120
  /** The controlled value of the Select. Can be bind as `v-model`. */
118
- modelValue?: GetModelValue<T, VK, M>;
119
- modelModifiers?: Omit<ModelModifiers<GetModelValue<T, VK, M>>, 'lazy'>;
121
+ modelValue?: ApplyModifiers<GetModelValue<T, VK, M, ExcludeItem>, Mod>;
122
+ modelModifiers?: Mod;
120
123
  /** Whether multiple options can be selected or not. */
121
124
  multiple?: M & boolean;
122
125
  /** Highlight the ring color like a focus state. */
@@ -126,29 +129,30 @@ export interface SelectProps<T extends ArrayOrNested<SelectItem> = ArrayOrNested
126
129
  class?: any;
127
130
  b24ui?: Select['slots'];
128
131
  }
129
- export type SelectEmits<A extends ArrayOrNested<SelectItem>, VK extends GetItemKeys<A> | undefined, M extends boolean> = Omit<SelectRootEmits, 'update:modelValue'> & {
130
- change: [event: Event];
131
- blur: [event: FocusEvent];
132
- focus: [event: FocusEvent];
133
- } & GetModelValueEmits<A, VK, M>;
132
+ export interface SelectEmits<A extends ArrayOrNested<SelectItem>, VK extends GetItemKeys<A> | undefined, M extends boolean, Mod extends Omit<ModelModifiers, 'lazy'> = Omit<ModelModifiers, 'lazy'>> extends Omit<SelectRootEmits, 'update:modelValue'> {
133
+ 'change': [event: Event];
134
+ 'blur': [event: FocusEvent];
135
+ 'focus': [event: FocusEvent];
136
+ 'update:modelValue': [value: ApplyModifiers<GetModelValue<A, VK, M, ExcludeItem>, Mod>];
137
+ }
134
138
  type SlotProps<T extends SelectItem> = (props: {
135
139
  item: T;
136
140
  index: number;
137
141
  b24ui: Select['b24ui'];
138
142
  }) => any;
139
- export interface SelectSlots<A extends ArrayOrNested<SelectItem> = ArrayOrNested<SelectItem>, VK extends GetItemKeys<A> | undefined = undefined, M extends boolean = false, T extends NestedItem<A> = NestedItem<A>> {
143
+ export interface SelectSlots<A extends ArrayOrNested<SelectItem> = ArrayOrNested<SelectItem>, VK extends GetItemKeys<A> | undefined = undefined, M extends boolean = false, Mod extends Omit<ModelModifiers, 'lazy'> = Omit<ModelModifiers, 'lazy'>, T extends NestedItem<A> = NestedItem<A>> {
140
144
  'leading'(props: {
141
- modelValue?: GetModelValue<A, VK, M>;
145
+ modelValue?: ApplyModifiers<GetModelValue<A, VK, M, ExcludeItem>, Mod>;
142
146
  open: boolean;
143
147
  b24ui: Select['b24ui'];
144
148
  }): any;
145
149
  'default'(props: {
146
- modelValue?: GetModelValue<A, VK, M>;
150
+ modelValue?: ApplyModifiers<GetModelValue<A, VK, M, ExcludeItem>, Mod>;
147
151
  open: boolean;
148
152
  b24ui: Select['b24ui'];
149
153
  }): any;
150
154
  'trailing'(props: {
151
- modelValue?: GetModelValue<A, VK, M>;
155
+ modelValue?: ApplyModifiers<GetModelValue<A, VK, M, ExcludeItem>, Mod>;
152
156
  open: boolean;
153
157
  b24ui: Select['b24ui'];
154
158
  }): any;
@@ -166,21 +170,70 @@ export interface SelectSlots<A extends ArrayOrNested<SelectItem> = ArrayOrNested
166
170
  'content-top': (props?: {}) => any;
167
171
  'content-bottom': (props?: {}) => any;
168
172
  }
169
- declare const __VLS_export: <T extends ArrayOrNested<SelectItem>, VK extends GetItemKeys<T> = "value", M extends boolean = false>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
170
- props: __VLS_PrettifyLocal<SelectProps<T, VK, M> & __VLS_EmitsToProps<__VLS_NormalizeEmits<((evt: "blur", event: FocusEvent) => void) & ((evt: "change", event: Event) => void) & ((evt: "focus", event: FocusEvent) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "update:modelValue", value: GetModelValue<T, VK, M>) => void)>>> & import("vue").PublicProps & (typeof globalThis extends {
173
+ declare const _default: typeof __VLS_export;
174
+ export default _default;
175
+ declare const __VLS_export: <T extends ArrayOrNested<SelectItem>, VK extends GetItemKeys<T> = "value", M extends boolean = false, Mod extends Omit<ModelModifiers, "lazy"> = Omit<ModelModifiers, "lazy">>(__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<{
176
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<SelectProps<T, VK, M, Mod> & {
177
+ onBlur?: ((event: FocusEvent) => any) | undefined;
178
+ onChange?: ((event: Event) => any) | undefined;
179
+ onFocus?: ((event: FocusEvent) => any) | undefined;
180
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
181
+ "onUpdate:modelValue"?: ((value: Mod extends {
182
+ number: true;
183
+ } ? (Mod extends {
184
+ optional: true;
185
+ } ? (Mod extends {
186
+ nullable: true;
187
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
188
+ nullable: true;
189
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) extends infer T_1 ? T_1 extends (Mod extends {
190
+ optional: true;
191
+ } ? (Mod extends {
192
+ nullable: true;
193
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
194
+ nullable: true;
195
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) ? T_1 extends string ? number | T_1 : T_1 : never : never : Mod extends {
196
+ optional: true;
197
+ } ? (Mod extends {
198
+ nullable: true;
199
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
200
+ nullable: true;
201
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) => any) | undefined;
202
+ }> & (typeof globalThis extends {
171
203
  __VLS_PROPS_FALLBACK: infer P;
172
204
  } ? P : {});
173
205
  expose: (exposed: import("vue").ShallowUnwrapRef<{
174
206
  triggerRef: Readonly<import("vue").Ref<HTMLButtonElement, HTMLButtonElement>>;
207
+ viewportRef: Readonly<import("vue").Ref<HTMLDivElement | null, HTMLDivElement | null>>;
175
208
  }>) => void;
176
209
  attrs: any;
177
- slots: SelectSlots<T, VK, M, NestedItem<T>>;
178
- emit: ((evt: "blur", event: FocusEvent) => void) & ((evt: "change", event: Event) => void) & ((evt: "focus", event: FocusEvent) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "update:modelValue", value: GetModelValue<T, VK, M>) => void);
210
+ slots: SelectSlots<T, VK, M, Mod, NestedItem<T>>;
211
+ emit: ((evt: "blur", event: FocusEvent) => void) & ((evt: "change", event: Event) => void) & ((evt: "focus", event: FocusEvent) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "update:modelValue", value: Mod extends {
212
+ number: true;
213
+ } ? (Mod extends {
214
+ optional: true;
215
+ } ? (Mod extends {
216
+ nullable: true;
217
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
218
+ nullable: true;
219
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) extends infer T_1 ? T_1 extends (Mod extends {
220
+ optional: true;
221
+ } ? (Mod extends {
222
+ nullable: true;
223
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
224
+ nullable: true;
225
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) ? T_1 extends string ? number | T_1 : T_1 : never : never : Mod extends {
226
+ optional: true;
227
+ } ? (Mod extends {
228
+ nullable: true;
229
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) | undefined : Mod extends {
230
+ nullable: true;
231
+ } ? GetModelValue<T, VK, M, ExcludeItem> | null : GetModelValue<T, VK, M, ExcludeItem>) => void);
179
232
  }>) => import("vue").VNode & {
180
233
  __ctx?: Awaited<typeof __VLS_setup>;
181
234
  };
182
- declare const _default: typeof __VLS_export;
183
- export default _default;
184
- type __VLS_PrettifyLocal<T> = {
235
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
236
+ [K in keyof T]: T[K];
237
+ } : {
185
238
  [K in keyof T as K]: T[K];
186
- } & {};
239
+ }) & {};