@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
@@ -8,6 +8,7 @@ import { NavigationMenuRoot, NavigationMenuList, NavigationMenuItem, NavigationM
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 { get, isArrayOfArray } from "../utils";
12
13
  import { tv } from "../utils/tv";
13
14
  import { pickLinkProps } from "../utils/link";
@@ -16,6 +17,7 @@ import B24LinkBase from "./LinkBase.vue";
16
17
  import B24Link from "./Link.vue";
17
18
  import B24Avatar from "./Avatar.vue";
18
19
  import B24Badge from "./Badge.vue";
20
+ import B24Chip from "./Chip.vue";
19
21
  import B24Popover from "./Popover.vue";
20
22
  import B24Tooltip from "./Tooltip.vue";
21
23
  defineOptions({ inheritAttrs: false });
@@ -48,6 +50,7 @@ const props = defineProps({
48
50
  const emits = defineEmits(["update:modelValue"]);
49
51
  const slots = defineSlots();
50
52
  const appConfig = useAppConfig();
53
+ const uiProp = useComponentUI("navigationMenu", props);
51
54
  const rootProps = useForwardPropsEmits(computed(() => ({
52
55
  as: props.as,
53
56
  delayDuration: props.delayDuration,
@@ -60,14 +63,15 @@ const rootProps = useForwardPropsEmits(computed(() => ({
60
63
  })), emits);
61
64
  const accordionProps = useForwardPropsEmits(reactivePick(props, "collapsible", "disabled", "type", "unmountOnHide"), emits);
62
65
  const contentProps = toRef(() => props.content);
63
- const tooltipProps = toRef(() => defu(typeof props.tooltip === "boolean" ? {} : props.tooltip, { delayDuration: 0, content: { side: "right" } }));
66
+ const tooltipProps = toRef(() => defu(typeof props.tooltip === "boolean" ? {} : props.tooltip, { ...props.orientation === "vertical" && { delayDuration: 0, content: { side: "right" } } }));
64
67
  const popoverProps = toRef(() => defu(typeof props.popover === "boolean" ? {} : props.popover, { arrow: true, mode: "hover", content: { side: "right", align: "center", alignOffset: 2 } }));
65
68
  const [DefineLinkTemplate, ReuseLinkTemplate] = createReusableTemplate();
66
69
  const [DefineItemTemplate, ReuseItemTemplate] = createReusableTemplate({
67
70
  props: {
68
71
  item: Object,
69
72
  index: Number,
70
- level: Number
73
+ level: Number,
74
+ listIndex: Number
71
75
  }
72
76
  });
73
77
  const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.navigationMenu || {} })({
@@ -77,21 +81,36 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.navigat
77
81
  const lists = computed(
78
82
  () => props.items?.length ? isArrayOfArray(props.items) ? props.items : [props.items] : []
79
83
  );
80
- function getAccordionDefaultValue(list, level = 0) {
84
+ function getItemValue(item, index, level, listIndex) {
85
+ const prefix = lists.value.length > 1 ? `group-${listIndex}-` : "";
86
+ return get(item, props.valueKey) ?? (level > 0 ? `${prefix}item-${level}-${index}` : `${prefix}item-${index}`);
87
+ }
88
+ function getAccordionDefaultValue(list, level = 0, listIndex = 0) {
81
89
  const indexes = list.reduce((acc, item, index) => {
82
90
  if (item.defaultOpen || item.open) {
83
- acc.push(get(item, props.valueKey) ?? (level > 0 ? `item-${level}-${index}` : `item-${index}`));
91
+ acc.push(getItemValue(item, index, level, listIndex));
84
92
  }
85
93
  return acc;
86
94
  }, []);
87
95
  return props.type === "single" ? indexes[0] : indexes;
88
96
  }
97
+ function onLinkTrailingClick(e, item) {
98
+ if (!item.children?.length) {
99
+ return;
100
+ }
101
+ if (props.orientation === "horizontal") {
102
+ e.preventDefault();
103
+ } else if (props.orientation === "vertical" && !props.collapsed) {
104
+ e.preventDefault();
105
+ e.stopPropagation();
106
+ }
107
+ }
89
108
  </script>
90
109
 
91
110
  <template>
92
111
  <DefineLinkTemplate v-slot="{ item, active, index }">
93
112
  <slot :name="item.slot || 'item'" :item="item" :index="index" :active="active" :b24ui="b24ui">
94
- <span data-slot="linkLabelWrapper" :class="b24ui.linkLabelWrapper({ class: props.b24ui?.linkLabelWrapper, active })">
113
+ <span data-slot="linkLabelWrapper" :class="b24ui.linkLabelWrapper({ class: uiProp?.linkLabelWrapper, active })">
95
114
  <slot
96
115
  :name="item.slot ? `${item.slot}-leading` : 'item-leading'"
97
116
  :item="item"
@@ -100,52 +119,65 @@ function getAccordionDefaultValue(list, level = 0) {
100
119
  :b24ui="b24ui"
101
120
  >
102
121
  <template v-if="orientation === 'vertical' && item.type !== 'label'">
122
+ <B24Chip
123
+ v-if="item.icon && item.chip"
124
+ :size="item.b24ui?.linkLeadingChipSize || uiProp?.linkLeadingChipSize || b24ui.linkLeadingChipSize()"
125
+ inset
126
+ v-bind="typeof item.chip === 'object' ? item.chip : {}"
127
+ data-slot="linkLeadingChip"
128
+ >
129
+ <Component
130
+ :is="item.icon"
131
+ data-slot="linkLeadingIcon"
132
+ :class="b24ui.linkLeadingIcon({ class: [uiProp?.linkLeadingIcon, item.b24ui?.linkLeadingIcon], active, disabled: !!item.disabled })"
133
+ />
134
+ </B24Chip>
103
135
  <Component
104
136
  :is="item.icon"
105
- v-if="item.icon"
137
+ v-else-if="item.icon"
106
138
  data-slot="linkLeadingIcon"
107
- :class="b24ui.linkLeadingIcon({ class: [props.b24ui?.linkLeadingIcon, item.b24ui?.linkLeadingIcon], active, disabled: !!item.disabled })"
139
+ :class="b24ui.linkLeadingIcon({ class: [uiProp?.linkLeadingIcon, item.b24ui?.linkLeadingIcon], active, disabled: !!item.disabled })"
108
140
  />
109
141
  <B24Avatar
110
142
  v-else-if="item.avatar"
111
- :size="item.b24ui?.linkLeadingAvatarSize || props.b24ui?.linkLeadingAvatarSize || b24ui.linkLeadingAvatarSize()"
143
+ :size="item.b24ui?.linkLeadingAvatarSize || uiProp?.linkLeadingAvatarSize || b24ui.linkLeadingAvatarSize()"
112
144
  v-bind="item.avatar"
113
145
  data-slot="linkLeadingAvatar"
114
- :class="b24ui.linkLeadingAvatar({ class: [props.b24ui?.linkLeadingAvatar, item.b24ui?.linkLeadingAvatar], active, disabled: !!item.disabled })"
146
+ :class="b24ui.linkLeadingAvatar({ class: [uiProp?.linkLeadingAvatar, item.b24ui?.linkLeadingAvatar], active, disabled: !!item.disabled })"
115
147
  />
116
148
  </template>
117
149
  <div
118
150
  v-if="item.hint && item.type !== 'label' && orientation === 'horizontal'"
119
151
  data-slot="linkLeadingHint"
120
- :class="b24ui.linkLeadingHint({ class: [props.b24ui?.linkLeadingHint, item.b24ui?.linkLeadingHint] })"
152
+ :class="b24ui.linkLeadingHint({ class: [uiProp?.linkLeadingHint, item.b24ui?.linkLeadingHint] })"
121
153
  >
122
154
  {{ item.hint }}
123
155
  </div>
124
156
  <B24Badge
125
157
  v-if="(item.badge || item.badge === 0) && item.type !== 'label'"
126
158
  color="air-primary-alert"
127
- :size="item.b24ui?.linkLeadingBadgeSize || props.b24ui?.linkLeadingBadgeSize || b24ui.linkLeadingBadgeSize()"
159
+ :size="item.b24ui?.linkLeadingBadgeSize || uiProp?.linkLeadingBadgeSize || b24ui.linkLeadingBadgeSize()"
128
160
  v-bind="typeof item.badge === 'string' || typeof item.badge === 'number' ? { label: item.badge } : item.badge"
129
161
  data-slot="linkLeadingBadge"
130
- :class="b24ui.linkLeadingBadge({ class: [props.b24ui?.linkLeadingBadge, item.b24ui?.linkLeadingBadge] })"
162
+ :class="b24ui.linkLeadingBadge({ class: [uiProp?.linkLeadingBadge, item.b24ui?.linkLeadingBadge] })"
131
163
  />
132
164
  </slot>
133
165
 
134
166
  <span
135
167
  v-if="get(item, props.labelKey) || !!slots[item.slot ? `${item.slot}-label` : 'item-label']"
136
168
  data-slot="linkLabel"
137
- :class="b24ui.linkLabel({ class: [props.b24ui?.linkLabel, item.b24ui?.linkLabel], active })"
169
+ :class="b24ui.linkLabel({ class: [uiProp?.linkLabel, item.b24ui?.linkLabel], active })"
138
170
  >
139
171
  <slot :name="item.slot ? `${item.slot}-label` : 'item-label'" :item="item" :active="active" :index="index">
140
172
  {{ get(item, props.labelKey) }}
141
173
  </slot>
142
- <Component
143
- :is="typeof externalIcon !== 'boolean' ? externalIcon : icons.external"
144
- v-if="item.target === '_blank' && externalIcon !== false"
145
- data-slot="linkLabelExternalIcon"
146
- :class="b24ui.linkLabelExternalIcon({ class: [props.b24ui?.linkLabelExternalIcon, item.b24ui?.linkLabelExternalIcon], active })"
147
- />
148
174
  </span>
175
+ <Component
176
+ :is="typeof externalIcon !== 'boolean' ? externalIcon : icons.external"
177
+ v-if="item.target === '_blank' && externalIcon !== false"
178
+ data-slot="linkLabelExternalIcon"
179
+ :class="b24ui.linkLabelExternalIcon({ class: [uiProp?.linkLabelExternalIcon, item.b24ui?.linkLabelExternalIcon], active })"
180
+ />
149
181
  </span>
150
182
 
151
183
  <component
@@ -154,10 +186,10 @@ function getAccordionDefaultValue(list, level = 0) {
154
186
  /* (item.badge || item.badge === 0) || */
155
187
  orientation === 'horizontal' && (item.children?.length || !!slots[item.slot ? `${item.slot}-content` : 'item-content']) || orientation === 'vertical' && item.children?.length || item.trailingIcon || !!slots[item.slot ? `${item.slot}-trailing` : 'item-trailing']
156
188
  "
157
- as="span"
189
+ :as="orientation === 'vertical' && item.children?.length && !collapsed ? 'span' : void 0"
158
190
  data-slot="linkTrailing"
159
- :class="b24ui.linkTrailing({ class: [props.b24ui?.linkTrailing, item.b24ui?.linkTrailing] })"
160
- @click.stop.prevent
191
+ :class="b24ui.linkTrailing({ class: [uiProp?.linkTrailing, item.b24ui?.linkTrailing] })"
192
+ @click="(e) => onLinkTrailingClick(e, item)"
161
193
  >
162
194
  <slot
163
195
  :name="item.slot ? `${item.slot}-trailing` : 'item-trailing'"
@@ -170,29 +202,29 @@ function getAccordionDefaultValue(list, level = 0) {
170
202
  :is="item.trailingIcon || trailingIcon || icons.chevronDown"
171
203
  v-if="orientation === 'horizontal' && (item.children?.length || !!slots[item.slot ? `${item.slot}-content` : 'item-content']) || orientation === 'vertical' && item.children?.length"
172
204
  data-slot="linkTrailingIcon"
173
- :class="b24ui.linkTrailingIcon({ class: [props.b24ui?.linkTrailingIcon, item.b24ui?.linkTrailingIcon], active })"
205
+ :class="b24ui.linkTrailingIcon({ class: [uiProp?.linkTrailingIcon, item.b24ui?.linkTrailingIcon], active })"
174
206
  />
175
207
  <Component
176
208
  :is="item.trailingIcon"
177
209
  v-else-if="item.trailingIcon"
178
210
  data-slot="linkTrailingIcon"
179
- :class="b24ui.linkTrailingIcon({ class: [props.b24ui?.linkTrailingIcon, item.b24ui?.linkTrailingIcon], active })"
211
+ :class="b24ui.linkTrailingIcon({ class: [uiProp?.linkTrailingIcon, item.b24ui?.linkTrailingIcon], active })"
180
212
  />
181
213
  </slot>
182
214
  </component>
183
215
  </slot>
184
216
  </DefineLinkTemplate>
185
217
 
186
- <DefineItemTemplate v-slot="{ item, index, level = 0 }">
218
+ <DefineItemTemplate v-slot="{ item, index, level = 0, listIndex = 0 }">
187
219
  <component
188
220
  :is="orientation === 'vertical' && !collapsed ? AccordionItem : NavigationMenuItem"
189
221
  as="li"
190
- :value="get(item, props.valueKey) ?? (level > 0 ? `item-${level}-${index}` : `item-${index}`)"
222
+ :value="getItemValue(item, index, level, listIndex)"
191
223
  >
192
224
  <div
193
225
  v-if="orientation === 'vertical' && item.type === 'label' && !collapsed"
194
226
  data-slot="label"
195
- :class="b24ui.label({ class: [props.b24ui?.label, item.b24ui?.label, item.class] })"
227
+ :class="b24ui.label({ class: [uiProp?.label, item.b24ui?.label, item.class] })"
196
228
  >
197
229
  <ReuseLinkTemplate :item="item" :index="index" />
198
230
  </div>
@@ -212,13 +244,13 @@ function getAccordionDefaultValue(list, level = 0) {
212
244
  <B24Popover
213
245
  v-if="orientation === 'vertical' && collapsed && item.children?.length && (!!props.popover || !!item.popover)"
214
246
  v-bind="{ ...popoverProps, ...typeof item.popover === 'boolean' ? {} : item.popover || {} }"
215
- :b24ui="{ content: b24ui.content({ class: [props.b24ui?.content, item.b24ui?.content] }) }"
247
+ :b24ui="{ content: b24ui.content({ class: [uiProp?.content, item.b24ui?.content] }) }"
216
248
  >
217
249
  <B24LinkBase
218
250
  v-bind="slotProps"
219
251
  data-slot="link"
220
252
  :class="b24ui.link({
221
- class: [props.b24ui?.link, item.b24ui?.link, item.class],
253
+ class: [uiProp?.link, item.b24ui?.link, item.class],
222
254
  active: active || item.active,
223
255
  disabled: !!item.disabled,
224
256
  level: level > 0
@@ -228,7 +260,7 @@ function getAccordionDefaultValue(list, level = 0) {
228
260
  </B24LinkBase>
229
261
 
230
262
  <template #content="{ close }">
231
- <div data-slot="popoverWrapper" :class="b24ui.popoverWrapper({ class: props.b24ui?.popoverWrapper })">
263
+ <div data-slot="popoverWrapper" :class="b24ui.popoverWrapper({ class: uiProp?.popoverWrapper })">
232
264
  <slot
233
265
  :name="item.slot ? `${item.slot}-content` : 'item-content'"
234
266
  :item="item"
@@ -237,45 +269,58 @@ function getAccordionDefaultValue(list, level = 0) {
237
269
  :b24ui="b24ui"
238
270
  :close="close"
239
271
  >
240
- <ul data-slot="childList" :class="b24ui.childList({ class: [props.b24ui?.childList, item.b24ui?.childList] })">
241
- <li data-slot="childLabel" :class="b24ui.childLabel({ class: [props.b24ui?.childLabel, item.b24ui?.childLabel] })">
272
+ <ul data-slot="childList" :class="b24ui.childList({ class: [uiProp?.childList, item.b24ui?.childList] })">
273
+ <li data-slot="childLabel" :class="b24ui.childLabel({ class: [uiProp?.childLabel, item.b24ui?.childLabel] })">
242
274
  {{ get(item, props.labelKey) }}
243
275
  </li>
244
276
  <li
245
277
  v-for="(childItem, childIndex) in item.children"
246
278
  :key="childIndex"
247
279
  data-slot="childItem"
248
- :class="b24ui.childItem({ class: [props.b24ui?.childItem, item.b24ui?.childItem] })"
280
+ :class="b24ui.childItem({ class: [uiProp?.childItem, item.b24ui?.childItem] })"
249
281
  >
250
282
  <B24Link v-slot="{ active: childActive, ...childSlotProps }" v-bind="pickLinkProps(childItem)" custom>
251
283
  <NavigationMenuLink as-child :active="childActive" @select="childItem.onSelect">
252
284
  <B24LinkBase
253
285
  v-bind="childSlotProps"
254
286
  data-slot="childLink"
255
- :class="b24ui.childLink({ class: [props.b24ui?.childLink, item.b24ui?.childLink, childItem.class], active: childActive })"
287
+ :class="b24ui.childLink({ class: [uiProp?.childLink, item.b24ui?.childLink, childItem.class], active: childActive })"
256
288
  >
289
+ <B24Chip
290
+ v-if="childItem.icon && childItem.chip"
291
+ :size="childItem.b24ui?.linkLeadingChipSize || uiProp?.linkLeadingChipSize || b24ui.linkLeadingChipSize()"
292
+ inset
293
+ v-bind="typeof childItem.chip === 'object' ? childItem.chip : {}"
294
+ data-slot="linkLeadingChip"
295
+ >
296
+ <Component
297
+ :is="childItem.icon"
298
+ data-slot="childLinkIcon"
299
+ :class="b24ui.childLinkIcon({ class: [uiProp?.childLinkIcon, item.b24ui?.childLinkIcon], active: childActive })"
300
+ />
301
+ </B24Chip>
257
302
  <Component
258
303
  :is="childItem.icon"
259
- v-if="childItem.icon"
304
+ v-else-if="childItem.icon"
260
305
  data-slot="childLinkIcon"
261
- :class="b24ui.childLinkIcon({ class: [props.b24ui?.childLinkIcon, item.b24ui?.childLinkIcon], active: childActive })"
306
+ :class="b24ui.childLinkIcon({ class: [uiProp?.childLinkIcon, item.b24ui?.childLinkIcon], active: childActive })"
262
307
  />
263
308
  <div
264
309
  v-if="childItem.hint"
265
310
  data-slot="childLinkHint"
266
- :class="b24ui.childLinkHint({ class: [props.b24ui?.childLinkHint, item.b24ui?.childLinkHint] })"
311
+ :class="b24ui.childLinkHint({ class: [uiProp?.childLinkHint, item.b24ui?.childLinkHint] })"
267
312
  >
268
313
  {{ childItem.hint }}
269
314
  </div>
270
315
 
271
- <span data-slot="childLinkLabel" :class="b24ui.childLinkLabel({ class: [props.b24ui?.childLinkLabel, item.b24ui?.childLinkLabel], active: childActive })">
316
+ <span data-slot="childLinkLabel" :class="b24ui.childLinkLabel({ class: [uiProp?.childLinkLabel, item.b24ui?.childLinkLabel], active: childActive })">
272
317
  {{ get(childItem, props.labelKey) }}
273
318
  </span>
274
319
  <Component
275
320
  :is="typeof externalIcon === 'boolean' ? icons.external : externalIcon"
276
321
  v-if="childItem.target === '_blank' && externalIcon !== false"
277
322
  data-slot="childLinkLabelExternalIcon"
278
- :class="b24ui.childLinkLabelExternalIcon({ class: [props.b24ui?.childLinkLabelExternalIcon, item.b24ui?.childLinkLabelExternalIcon], active: childActive })"
323
+ :class="b24ui.childLinkLabelExternalIcon({ class: [uiProp?.childLinkLabelExternalIcon, item.b24ui?.childLinkLabelExternalIcon], active: childActive })"
279
324
  />
280
325
  </B24LinkBase>
281
326
  </NavigationMenuLink>
@@ -287,7 +332,7 @@ function getAccordionDefaultValue(list, level = 0) {
287
332
  </template>
288
333
  </B24Popover>
289
334
  <B24Tooltip
290
- v-else-if="orientation === 'vertical' && collapsed && (!!props.tooltip || !!item.tooltip)"
335
+ v-else-if="orientation === 'vertical' && collapsed && (!!props.tooltip || !!item.tooltip) || orientation === 'horizontal' && !!item.tooltip"
291
336
  :text="get(item, props.labelKey)"
292
337
  v-bind="{ ...tooltipProps, ...typeof item.tooltip === 'boolean' ? {} : item.tooltip || {} }"
293
338
  >
@@ -295,7 +340,7 @@ function getAccordionDefaultValue(list, level = 0) {
295
340
  v-bind="slotProps"
296
341
  data-slot="link"
297
342
  :class="b24ui.link({
298
- class: [props.b24ui?.link, item.b24ui?.link, item.class],
343
+ class: [uiProp?.link, item.b24ui?.link, item.class],
299
344
  active: active || item.active,
300
345
  disabled: !!item.disabled,
301
346
  level: level > 0
@@ -309,7 +354,7 @@ function getAccordionDefaultValue(list, level = 0) {
309
354
  v-bind="slotProps"
310
355
  data-slot="link"
311
356
  :class="b24ui.link({
312
- class: [props.b24ui?.link, item.b24ui?.link, item.class],
357
+ class: [uiProp?.link, item.b24ui?.link, item.class],
313
358
  active: active || item.active,
314
359
  disabled: !!item.disabled,
315
360
  level: orientation === 'horizontal' || level > 0
@@ -324,7 +369,7 @@ function getAccordionDefaultValue(list, level = 0) {
324
369
  v-bind="contentProps"
325
370
  :data-viewport="item.viewportRtl ? 'rtl' : 'ltr'"
326
371
  data-slot="content"
327
- :class="b24ui.content({ class: [props.b24ui?.content, item.b24ui?.content] })"
372
+ :class="b24ui.content({ class: [uiProp?.content, item.b24ui?.content] })"
328
373
  >
329
374
  <slot
330
375
  :name="item.slot ? `${item.slot}-content` : 'item-content'"
@@ -333,12 +378,12 @@ function getAccordionDefaultValue(list, level = 0) {
333
378
  :index="index"
334
379
  :b24ui="b24ui"
335
380
  >
336
- <ul data-slot="childList" :class="b24ui.childList({ class: [props.b24ui?.childList, item.b24ui?.childList] })">
381
+ <ul data-slot="childList" :class="b24ui.childList({ class: [uiProp?.childList, item.b24ui?.childList] })">
337
382
  <li
338
383
  v-for="(childItem, childIndex) in item.children"
339
384
  :key="childIndex"
340
385
  data-slot="childItem"
341
- :class="b24ui.childItem({ class: [props.b24ui?.childItem, item.b24ui?.childItem] })"
386
+ :class="b24ui.childItem({ class: [uiProp?.childItem, item.b24ui?.childItem] })"
342
387
  >
343
388
  <B24Link
344
389
  v-slot="{ active: childActive, ...childSlotProps }"
@@ -349,40 +394,53 @@ function getAccordionDefaultValue(list, level = 0) {
349
394
  <B24LinkBase
350
395
  v-bind="childSlotProps"
351
396
  data-slot="childLink"
352
- :class="b24ui.childLink({ class: [props.b24ui?.childLink, childItem.childLink, childItem.class], active: childActive })"
397
+ :class="b24ui.childLink({ class: [uiProp?.childLink, childItem.childLink, childItem.class], active: childActive })"
353
398
  >
399
+ <B24Chip
400
+ v-if="childItem.icon && childItem.chip"
401
+ :size="childItem.b24ui?.linkLeadingChipSize || uiProp?.linkLeadingChipSize || b24ui.linkLeadingChipSize()"
402
+ inset
403
+ v-bind="typeof childItem.chip === 'object' ? childItem.chip : {}"
404
+ data-slot="linkLeadingChip"
405
+ >
406
+ <Component
407
+ :is="childItem.icon"
408
+ data-slot="childLinkIcon"
409
+ :class="b24ui.childLinkIcon({ class: [uiProp?.childLinkIcon, item.b24ui?.childLinkIcon], active: childActive })"
410
+ />
411
+ </B24Chip>
354
412
  <Component
355
413
  :is="childItem.icon"
356
- v-if="childItem.icon"
414
+ v-else-if="childItem.icon"
357
415
  data-slot="childLinkIcon"
358
- :class="b24ui.childLinkIcon({ class: [props.b24ui?.childLinkIcon, item.b24ui?.childLinkIcon], active: childActive })"
416
+ :class="b24ui.childLinkIcon({ class: [uiProp?.childLinkIcon, item.b24ui?.childLinkIcon], active: childActive })"
359
417
  />
360
418
 
361
419
  <div
362
420
  v-if="childItem.hint"
363
421
  data-slot="childLinkHint"
364
- :class="b24ui.childLinkHint({ class: [props.b24ui?.childLinkHint, item.b24ui?.childLinkHint] })"
422
+ :class="b24ui.childLinkHint({ class: [uiProp?.childLinkHint, item.b24ui?.childLinkHint] })"
365
423
  >
366
424
  {{ childItem.hint }}
367
425
  </div>
368
- <div data-slot="childLinkWrapper" :class="b24ui.childLinkWrapper({ class: [props.b24ui?.childLinkWrapper, item.b24ui?.childLinkWrapper] })">
369
- <p data-slot="childLinkLabel" :class="b24ui.childLinkLabel({ class: [props.b24ui?.childLinkLabel, item.b24ui?.childLinkLabel], active: childActive })">
426
+ <div data-slot="childLinkWrapper" :class="b24ui.childLinkWrapper({ class: [uiProp?.childLinkWrapper, item.b24ui?.childLinkWrapper] })">
427
+ <p data-slot="childLinkLabel" :class="b24ui.childLinkLabel({ class: [uiProp?.childLinkLabel, item.b24ui?.childLinkLabel], active: childActive })">
370
428
  {{ get(childItem, props.labelKey) }}
371
429
  </p>
372
430
  <B24Badge
373
431
  v-if="childItem.badge !== void 0"
374
432
  color="air-primary-alert"
375
- :size="item.b24ui?.childLinkBadgeSize || props.b24ui?.childLinkBadgeSize || b24ui.childLinkBadgeSize()"
433
+ :size="item.b24ui?.childLinkBadgeSize || uiProp?.childLinkBadgeSize || b24ui.childLinkBadgeSize()"
376
434
  v-bind="typeof childItem.badge === 'string' || typeof childItem.badge === 'number' ? { label: childItem.badge } : childItem.badge"
377
435
  data-slot="childLinkBadge"
378
- :class="b24ui.childLinkBadge({ class: [props.b24ui?.childLinkBadge, item.b24ui?.childLinkBadge] })"
436
+ :class="b24ui.childLinkBadge({ class: [uiProp?.childLinkBadge, item.b24ui?.childLinkBadge] })"
379
437
  />
380
438
  </div>
381
439
  <Component
382
440
  :is="typeof externalIcon === 'boolean' ? icons.external : externalIcon"
383
441
  v-if="childItem.target === '_blank' && externalIcon !== false"
384
442
  data-slot="childLinkLabelExternalIcon"
385
- :class="b24ui.childLinkLabelExternalIcon({ class: [props.b24ui?.childLinkLabelExternalIcon, item.b24ui?.childLinkLabelExternalIcon], active: childActive })"
443
+ :class="b24ui.childLinkLabelExternalIcon({ class: [uiProp?.childLinkLabelExternalIcon, item.b24ui?.childLinkLabelExternalIcon], active: childActive })"
386
444
  />
387
445
  </B24LinkBase>
388
446
  </NavigationMenuLink>
@@ -396,16 +454,16 @@ function getAccordionDefaultValue(list, level = 0) {
396
454
  <AccordionContent
397
455
  v-if="orientation === 'vertical' && item.children?.length && !collapsed"
398
456
  data-slot="content"
399
- :class="b24ui.content({ class: [props.b24ui?.content, item.b24ui?.content] })"
457
+ :class="b24ui.content({ class: [uiProp?.content, item.b24ui?.content] })"
400
458
  >
401
459
  <AccordionRoot
402
460
  v-bind="{
403
461
  ...accordionProps,
404
- defaultValue: getAccordionDefaultValue(item.children, level + 1)
462
+ defaultValue: getAccordionDefaultValue(item.children, level + 1, listIndex)
405
463
  }"
406
464
  as="ul"
407
465
  data-slot="childList"
408
- :class="b24ui.childList({ class: props.b24ui?.childList })"
466
+ :class="b24ui.childList({ class: uiProp?.childList })"
409
467
  >
410
468
  <ReuseItemTemplate
411
469
  v-for="(childItem, childIndex) in item.children"
@@ -413,8 +471,9 @@ function getAccordionDefaultValue(list, level = 0) {
413
471
  :item="childItem"
414
472
  :index="childIndex"
415
473
  :level="level + 1"
474
+ :list-index="listIndex"
416
475
  data-slot="childItem"
417
- :class="b24ui.childItem({ class: [props.b24ui?.childItem, childItem.b24ui?.childItem] })"
476
+ :class="b24ui.childItem({ class: [uiProp?.childItem, childItem.b24ui?.childItem] })"
418
477
  />
419
478
  </AccordionRoot>
420
479
  </AccordionContent>
@@ -433,7 +492,7 @@ function getAccordionDefaultValue(list, level = 0) {
433
492
  :data-collapsed="collapsed"
434
493
  data-component="section"
435
494
  data-slot="root"
436
- :class="b24ui.root({ class: [props.b24ui?.root, props.class] })"
495
+ :class="b24ui.root({ class: [uiProp?.root, props.class] })"
437
496
  >
438
497
  <slot name="list-leading" />
439
498
 
@@ -442,30 +501,31 @@ function getAccordionDefaultValue(list, level = 0) {
442
501
  v-bind="orientation === 'vertical' && !collapsed ? {
443
502
  ...accordionProps,
444
503
  modelValue,
445
- defaultValue: defaultValue ?? getAccordionDefaultValue(list)
504
+ defaultValue: defaultValue ?? getAccordionDefaultValue(list, 0, listIndex)
446
505
  } : {}"
447
506
  :is="orientation === 'vertical' ? AccordionRoot : NavigationMenuList"
448
507
  as="ul"
449
508
  data-slot="list"
450
- :class="b24ui.list({ class: props.b24ui?.list })"
509
+ :class="b24ui.list({ class: uiProp?.list })"
451
510
  >
452
511
  <ReuseItemTemplate
453
512
  v-for="(item, index) in list"
454
513
  :key="`list-${listIndex}-${index}`"
455
514
  :item="item"
456
515
  :index="index"
516
+ :list-index="listIndex"
457
517
  data-slot="item"
458
- :class="b24ui.item({ class: [props.b24ui?.item, item.b24ui?.item] })"
518
+ :class="b24ui.item({ class: [uiProp?.item, item.b24ui?.item] })"
459
519
  />
460
520
  </component>
461
521
 
462
- <div v-if="orientation === 'vertical' && listIndex < lists.length - 1" data-slot="separator" :class="b24ui.separator({ class: props.b24ui?.separator })" />
522
+ <div v-if="orientation === 'vertical' && listIndex < lists.length - 1" data-slot="separator" :class="b24ui.separator({ class: uiProp?.separator })" />
463
523
  </template>
464
524
 
465
525
  <slot name="list-trailing" />
466
526
 
467
- <div v-if="orientation === 'horizontal'" data-slot="viewportWrapper" :class="b24ui.viewportWrapper({ class: props.b24ui?.viewportWrapper })">
468
- <NavigationMenuViewport data-slot="viewport" :class="b24ui.viewport({ class: props.b24ui?.viewport })" />
527
+ <div v-if="orientation === 'horizontal'" data-slot="viewportWrapper" :class="b24ui.viewportWrapper({ class: uiProp?.viewportWrapper })">
528
+ <NavigationMenuViewport data-slot="viewport" :class="b24ui.viewport({ class: uiProp?.viewport })" />
469
529
  </div>
470
530
  </NavigationMenuRoot>
471
531
  </template>
@@ -1,18 +1,15 @@
1
1
  import type { NavigationMenuRootProps, NavigationMenuContentProps, NavigationMenuContentEmits, AccordionRootProps } from 'reka-ui';
2
2
  import type { AppConfig } from '@nuxt/schema';
3
3
  import theme from '#build/b24ui/navigation-menu';
4
- import type { AvatarProps, BadgeProps, IconComponent, LinkProps, PopoverProps, TooltipProps } from '../types';
4
+ import type { AvatarProps, BadgeProps, ChipProps, IconComponent, LinkProps, PopoverProps, TooltipProps } from '../types';
5
5
  import type { ArrayOrNested, DynamicSlots, GetItemKeys, MergeTypes, NestedItem, EmitsToProps } from '../types/utils';
6
6
  import type { ComponentConfig } from '../types/tv';
7
7
  type NavigationMenu = ComponentConfig<typeof theme, AppConfig, 'navigationMenu'>;
8
8
  /**
9
- * @memo not use in NavigationMenuChildItem
10
- * - description
11
- * - avatar
12
- * - b24ui
13
- * - children - only 1 level
9
+ * @memo only 1 level
10
+ * @memo not use in NavigationMenuChildItem: `b24ui` | `description` | `avatar` | `children` | `description`
14
11
  */
15
- export interface NavigationMenuChildItem extends Omit<NavigationMenuItem, 'type' | 'b24ui' | 'avatar' | 'children'> {
12
+ export interface NavigationMenuChildItem extends Omit<NavigationMenuItem, 'type' | 'b24ui' | 'avatar' | 'children' | 'description'> {
16
13
  [key: string]: any;
17
14
  }
18
15
  export interface NavigationMenuItem extends Omit<LinkProps, 'type' | 'raw' | 'custom'> {
@@ -29,16 +26,22 @@ export interface NavigationMenuItem extends Omit<LinkProps, 'type' | 'raw' | 'cu
29
26
  avatar?: AvatarProps;
30
27
  /**
31
28
  * Display a badge on the item.
32
- * `{ size: 'xs', color: 'air-primary-alert' }`{lang="ts"}
29
+ * `{ size: 'xs', color: 'air-primary-alert' }`{lang="ts-type"}
33
30
  */
34
31
  badge?: string | number | BadgeProps;
32
+ /**
33
+ * Display a chip around the icon of the item.
34
+ * `{ inset: true }`{lang="ts-type"}
35
+ */
36
+ chip?: boolean | ChipProps;
35
37
  /**
36
38
  * Display a hint on the item in `horizontal` orientation.
37
39
  */
38
40
  hint?: string;
39
41
  /**
40
- * Display a tooltip on the item when the menu is collapsed with the label of the item.
41
- * This has priority over the global `tooltip` prop.
42
+ * Display a tooltip on the item with the label of the item.
43
+ * In `vertical` orientation, only works when the menu is `collapsed`.
44
+ * In `horizontal` orientation, works on any item.
42
45
  */
43
46
  tooltip?: boolean | TooltipProps;
44
47
  /**
@@ -60,7 +63,7 @@ export interface NavigationMenuItem extends Omit<LinkProps, 'type' | 'raw' | 'cu
60
63
  slot?: string;
61
64
  /**
62
65
  * The value of the item. Avoid using `index` as the value to prevent conflicts in horizontal orientation with Reka UI.
63
- * @defaultValue `item-${index}`
66
+ * @defaultValue `item-${index}`, `item-${level}-${index}` for nested children, or `group-${listIndex}-item-${index}` when using grouped items
64
67
  */
65
68
  value?: string;
66
69
  children?: NavigationMenuChildItem[];
@@ -72,19 +75,14 @@ export interface NavigationMenuItem extends Omit<LinkProps, 'type' | 'raw' | 'cu
72
75
  open?: boolean;
73
76
  onSelect?: (e: Event) => void;
74
77
  class?: any;
75
- b24ui?: Pick<NavigationMenu['slots'], 'item' | 'linkLeadingAvatarSize' | 'linkLeadingAvatar' | 'linkLeadingIcon' | 'linkLabel' | 'linkLabelExternalIcon' | 'linkTrailing' | 'linkLeadingHint' | 'linkLeadingBadgeSize' | 'linkLeadingBadge' | 'linkTrailingIcon' | 'label' | 'link' | 'content' | 'childList' | 'childLabel' | 'childItem' | 'childLink' | 'childLinkIcon' | 'childLinkHint' | 'childLinkBadgeSize' | 'childLinkBadge' | 'childLinkWrapper' | 'childLinkLabel' | 'childLinkLabelExternalIcon' | 'popoverWrapper'>;
78
+ b24ui?: Pick<NavigationMenu['slots'], 'item' | 'linkLeadingAvatarSize' | 'linkLeadingAvatar' | 'linkLeadingIcon' | 'linkLeadingChipSize' | 'linkLabel' | 'linkLabelExternalIcon' | 'linkTrailing' | 'linkLeadingHint' | 'linkLeadingBadgeSize' | 'linkLeadingBadge' | 'linkTrailingIcon' | 'label' | 'link' | 'content' | 'childList' | 'childLabel' | 'childItem' | 'childLink' | 'childLinkIcon' | 'childLinkHint' | 'childLinkBadgeSize' | 'childLinkBadge' | 'childLinkWrapper' | 'childLinkLabel' | 'childLinkLabelExternalIcon' | 'popoverWrapper'>;
76
79
  [key: string]: any;
77
80
  }
78
81
  type SingleOrMultipleType = 'single' | 'multiple';
79
82
  type Orientation = NavigationMenu['variants']['orientation'];
80
83
  type NavigationMenuModelValue<K extends SingleOrMultipleType = SingleOrMultipleType, O extends Orientation = Orientation> = O extends 'horizontal' ? string : K extends 'single' ? string : K extends 'multiple' ? string[] : string | string[];
81
84
  /**
82
- * @memo remove contentOrientation
83
- * @memo remove highlight
84
- * @memo remove highlightColor
85
- * @memo remove arrow
86
- * @memo remove color
87
- * @memo remove variant (link) -> use variant.pill
85
+ * @memo remove contentOrientation | highlight | highlightColor | arrow | color | variant (link) -> use variant.pill
88
86
  */
89
87
  export interface NavigationMenuProps<T extends ArrayOrNested<NavigationMenuItem> = ArrayOrNested<NavigationMenuItem>, K extends SingleOrMultipleType = SingleOrMultipleType, O extends Orientation = Orientation> extends Pick<NavigationMenuRootProps, 'delayDuration' | 'disableClickTrigger' | 'disableHoverTrigger' | 'skipDelayDuration' | 'disablePointerLeaveClose' | 'unmountOnHide'>, Pick<AccordionRootProps, 'disabled' | 'collapsible'> {
90
88
  /**
@@ -143,7 +141,8 @@ export interface NavigationMenuProps<T extends ArrayOrNested<NavigationMenuItem>
143
141
  */
144
142
  collapsed?: boolean;
145
143
  /**
146
- * Display a tooltip on the items when the menu is collapsed with the label of the item.
144
+ * Display a tooltip on the items with the label of the item.
145
+ * Only works when `orientation` is `vertical` and `collapsed` is `true`.
147
146
  * `{ delayDuration: 0, content: { side: 'right' } }`{lang="ts-type"}
148
147
  * @defaultValue false
149
148
  */
@@ -0,0 +1,26 @@
1
+ import type { AppConfig } from '@nuxt/schema';
2
+ import theme from '#build/b24ui/page';
3
+ import type { ComponentConfig } from '../types/tv';
4
+ type Page = ComponentConfig<typeof theme, AppConfig, 'page'>;
5
+ export interface PageProps {
6
+ /**
7
+ * The element or component this component should render as.
8
+ * @defaultValue 'div'
9
+ */
10
+ as?: any;
11
+ class?: any;
12
+ b24ui?: Page['slots'];
13
+ }
14
+ export interface PageSlots {
15
+ left(props?: {}): any;
16
+ default(props?: {}): any;
17
+ right(props?: {}): any;
18
+ }
19
+ declare const _default: typeof __VLS_export;
20
+ export default _default;
21
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<PageProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<PageProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, PageSlots>;
22
+ type __VLS_WithSlots<T, S> = T & {
23
+ new (): {
24
+ $slots: S;
25
+ };
26
+ };