bitboss-ui 2.1.135 → 3.0.0-alpha.1

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 (1358) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +244 -21
  3. package/bin/bitboss-ui-mcp.mjs +557 -0
  4. package/bin/bitboss-ui.mjs +626 -0
  5. package/dist/ai/BbAccordion.md +522 -113
  6. package/dist/ai/BbAlert.md +377 -197
  7. package/dist/ai/BbAsterisk.md +46 -0
  8. package/dist/ai/BbAvatar.md +454 -178
  9. package/dist/ai/BbBadge.md +695 -225
  10. package/dist/ai/BbBadgeButton.md +54 -0
  11. package/dist/ai/BbBaseButton.md +489 -0
  12. package/dist/ai/BbBaseCheckbox.md +49 -0
  13. package/dist/ai/BbBaseCheckboxGroup.md +64 -0
  14. package/dist/ai/BbBaseCheckboxIcon.md +174 -0
  15. package/dist/ai/BbBaseColorInput.md +64 -0
  16. package/dist/ai/BbBaseColorPalette.md +39 -0
  17. package/dist/ai/BbBaseDatePicker.md +42 -0
  18. package/dist/ai/BbBaseDatePickerInput.md +73 -0
  19. package/dist/ai/BbBaseInputContainer.md +48 -0
  20. package/dist/ai/BbBaseNumberInput.md +71 -0
  21. package/dist/ai/BbBaseRadio.md +46 -0
  22. package/dist/ai/BbBaseRadioGroup.md +63 -0
  23. package/dist/ai/BbBaseRadioIcon.md +187 -0
  24. package/dist/ai/BbBaseRating.md +51 -0
  25. package/dist/ai/BbBaseSelect.md +88 -0
  26. package/dist/ai/BbBaseSlider.md +56 -0
  27. package/dist/ai/BbBaseSwitch.md +49 -0
  28. package/dist/ai/BbBaseSwitchGroup.md +64 -0
  29. package/dist/ai/BbBaseSwitchIcon.md +184 -0
  30. package/dist/ai/BbBaseTag.md +68 -0
  31. package/dist/ai/BbBaseTextInput.md +75 -0
  32. package/dist/ai/BbBaseTextarea.md +62 -0
  33. package/dist/ai/BbBaseTimePickerInput.md +62 -0
  34. package/dist/ai/BbBreadcrumbs.md +542 -503
  35. package/dist/ai/BbButton.md +767 -636
  36. package/dist/ai/BbCheckbox.md +572 -254
  37. package/dist/ai/BbCheckboxGroup.md +561 -361
  38. package/dist/ai/BbCollapsible.md +419 -103
  39. package/dist/ai/BbColorInput.md +529 -323
  40. package/dist/ai/BbColorPalette.md +565 -330
  41. package/dist/ai/BbConfirm.md +612 -136
  42. package/dist/ai/BbConfirmPortal.md +28 -0
  43. package/dist/ai/BbDatePicker.md +244 -0
  44. package/dist/ai/BbDatePickerInput.md +706 -388
  45. package/dist/ai/BbDialog.md +770 -99
  46. package/dist/ai/BbDropdown.md +1054 -763
  47. package/dist/ai/BbDropdownButton.md +511 -615
  48. package/dist/ai/BbDropdownGroup.md +34 -0
  49. package/dist/ai/BbDropzone.md +1148 -436
  50. package/dist/ai/BbForm.md +239 -0
  51. package/dist/ai/BbIcon.md +379 -212
  52. package/dist/ai/BbIndicator.md +283 -0
  53. package/dist/ai/BbNumberInput.md +713 -355
  54. package/dist/ai/BbOffCanvas.md +875 -498
  55. package/dist/ai/BbPagination.md +483 -535
  56. package/dist/ai/BbPopover.md +583 -546
  57. package/dist/ai/BbProgress.md +456 -69
  58. package/dist/ai/BbRadio.md +343 -229
  59. package/dist/ai/BbRadioGroup.md +426 -353
  60. package/dist/ai/BbRating.md +361 -226
  61. package/dist/ai/BbSelect.md +1380 -536
  62. package/dist/ai/BbSelectPopover.md +1240 -1579
  63. package/dist/ai/BbSlider.md +478 -257
  64. package/dist/ai/BbSmoothHeight.md +472 -139
  65. package/dist/ai/BbSpinner.md +718 -131
  66. package/dist/ai/BbSwitch.md +549 -119
  67. package/dist/ai/BbSwitchGroup.md +503 -214
  68. package/dist/ai/BbTable.md +1956 -2358
  69. package/dist/ai/BbTabs.md +1113 -0
  70. package/dist/ai/BbTabsList.md +29 -0
  71. package/dist/ai/BbTabsPanes.md +27 -0
  72. package/dist/ai/BbTabsRoot.md +57 -0
  73. package/dist/ai/BbTag.md +393 -292
  74. package/dist/ai/BbTextInput.md +852 -333
  75. package/dist/ai/BbTextarea.md +836 -255
  76. package/dist/ai/BbTimePicker.md +231 -0
  77. package/dist/ai/BbTimePickerInput.md +196 -0
  78. package/dist/ai/BbToast.md +624 -196
  79. package/dist/ai/BbToastPortal.md +28 -0
  80. package/dist/ai/BbTooltip.md +443 -346
  81. package/dist/ai/BbTree.md +984 -235
  82. package/dist/ai/ChipsBox.md +27 -199
  83. package/dist/ai/ClearableButton.md +21 -55
  84. package/dist/ai/CommaBox.md +25 -200
  85. package/dist/ai/CommonInputWrapper.md +42 -0
  86. package/dist/ai/CommonPopover.md +30 -510
  87. package/dist/ai/ErrorIcon.md +19 -56
  88. package/dist/ai/FlatListBox.md +35 -379
  89. package/dist/ai/GroupedListBox.md +37 -535
  90. package/dist/ai/GuidesComponent.md +21 -0
  91. package/dist/ai/ListBox.md +38 -231
  92. package/dist/ai/OptionsContainer.md +34 -253
  93. package/dist/ai/WarningIcon.md +21 -0
  94. package/dist/ai/components.json +15883 -0
  95. package/dist/ai/composables/useBbConfig.md +80 -0
  96. package/dist/ai/composables/useBbFormContext.md +110 -0
  97. package/dist/ai/composables/useBbTableContext.md +164 -0
  98. package/dist/ai/composables/useBbTabsContext.md +118 -0
  99. package/dist/ai/composables/useBroadcastChannelInstance.md +97 -0
  100. package/dist/ai/composables/useConfirm.md +306 -0
  101. package/dist/ai/composables/useCountdown.md +84 -0
  102. package/dist/ai/composables/useId.md +60 -0
  103. package/dist/ai/composables/useMobile.md +85 -0
  104. package/dist/ai/composables/useToast.md +230 -0
  105. package/dist/ai/guides/agent-contract.md +108 -0
  106. package/dist/ai/guides/ai-router.md +111 -0
  107. package/dist/ai/guides/app-layout.md +295 -0
  108. package/dist/ai/guides/coherence-playbook.md +136 -0
  109. package/dist/ai/guides/component-picker.md +195 -0
  110. package/dist/ai/guides/design-language.md +461 -0
  111. package/dist/ai/guides/design-tokens.md +424 -0
  112. package/dist/ai/guides/fetch-items-playbook.md +161 -0
  113. package/dist/ai/guides/floating-bottom-panel.md +191 -0
  114. package/dist/ai/guides/icons-policy.md +257 -0
  115. package/dist/ai/guides/inertia-helpers.md +1394 -0
  116. package/dist/ai/guides/inline-edit-playbook.md +258 -0
  117. package/dist/ai/guides/installation-and-plugin-setup.md +377 -0
  118. package/dist/ai/guides/migration/components/bb-alert.md +37 -0
  119. package/dist/ai/guides/migration/components/bb-avatar.md +24 -0
  120. package/dist/ai/guides/migration/components/bb-badge.md +110 -0
  121. package/dist/ai/guides/migration/components/bb-breadcrumbs.md +26 -0
  122. package/dist/ai/guides/migration/components/bb-button.md +55 -0
  123. package/dist/ai/guides/migration/components/bb-checkbox-group.md +54 -0
  124. package/dist/ai/guides/migration/components/bb-checkbox.md +45 -0
  125. package/dist/ai/guides/migration/components/bb-chip.md +35 -0
  126. package/dist/ai/guides/migration/components/bb-collapsible.md +26 -0
  127. package/dist/ai/guides/migration/components/bb-color-input.md +23 -0
  128. package/dist/ai/guides/migration/components/bb-color-palette.md +31 -0
  129. package/dist/ai/guides/migration/components/bb-date-picker-input.md +84 -0
  130. package/dist/ai/guides/migration/components/bb-dialog.md +46 -0
  131. package/dist/ai/guides/migration/components/bb-dropdown-button.md +31 -0
  132. package/dist/ai/guides/migration/components/bb-dropdown.md +36 -0
  133. package/dist/ai/guides/migration/components/bb-dropzone.md +27 -0
  134. package/dist/ai/guides/migration/components/bb-icon.md +27 -0
  135. package/dist/ai/guides/migration/components/bb-off-canvas.md +25 -0
  136. package/dist/ai/guides/migration/components/bb-offcanvas.md +54 -0
  137. package/dist/ai/guides/migration/components/bb-pagination.md +24 -0
  138. package/dist/ai/guides/migration/components/bb-popover.md +52 -0
  139. package/dist/ai/guides/migration/components/bb-rating.md +24 -0
  140. package/dist/ai/guides/migration/components/bb-select-popover.md +58 -0
  141. package/dist/ai/guides/migration/components/bb-select.md +68 -0
  142. package/dist/ai/guides/migration/components/bb-slider.md +25 -0
  143. package/dist/ai/guides/migration/components/bb-smooth-height.md +45 -0
  144. package/dist/ai/guides/migration/components/bb-spinner.md +23 -0
  145. package/dist/ai/guides/migration/components/bb-table.md +66 -0
  146. package/dist/ai/guides/migration/components/bb-tabs.md +47 -0
  147. package/dist/ai/guides/migration/components/bb-tag.md +29 -0
  148. package/dist/ai/guides/migration/components/bb-text-input.md +37 -0
  149. package/dist/ai/guides/migration/components/bb-toast.md +47 -0
  150. package/dist/ai/guides/migration/components/bb-tooltip.md +34 -0
  151. package/dist/ai/guides/migration/components/bb-tree.md +77 -0
  152. package/dist/ai/guides/migration/components/use-confirm.md +46 -0
  153. package/dist/ai/guides/migration/v2-to-v3.md +649 -0
  154. package/dist/ai/guides/options-items-playbook.md +222 -0
  155. package/dist/ai/guides/page-shell.md +314 -0
  156. package/dist/ai/guides/validated-forms.md +177 -0
  157. package/dist/ai/index.md +156 -32
  158. package/dist/ai/recipes/inertia/approvals-inbox.md +1598 -0
  159. package/dist/ai/recipes/inertia/inline-edit-workspace.md +1733 -0
  160. package/dist/ai/recipes/inertia/onboarding.md +1765 -0
  161. package/dist/ai/recipes/inertia/ownership-atlas.md +1281 -0
  162. package/dist/ai/recipes/inertia/record-form.md +1442 -0
  163. package/dist/ai/recipes/inertia/records-workspace.md +1328 -0
  164. package/dist/ai/recipes/inertia/upload-center.md +1926 -0
  165. package/dist/ai/recipes/inertia/wizard-form.md +1477 -0
  166. package/dist/ai/recipes/nuxt/approvals-inbox.md +1561 -0
  167. package/dist/ai/recipes/nuxt/inline-edit-workspace.md +1690 -0
  168. package/dist/ai/recipes/nuxt/onboarding.md +1698 -0
  169. package/dist/ai/recipes/nuxt/record-form.md +1456 -0
  170. package/dist/ai/recipes/nuxt/records-workspace.md +1314 -0
  171. package/dist/ai/recipes/nuxt/upload-center.md +1847 -0
  172. package/dist/ai/recipes/nuxt/wizard-form.md +1486 -0
  173. package/dist/ai/recipes/vue/approvals-inbox.md +1479 -0
  174. package/dist/ai/recipes/vue/inline-edit-workspace.md +1581 -0
  175. package/dist/ai/recipes/vue/onboarding.md +1653 -0
  176. package/dist/ai/recipes/vue/record-form.md +1540 -0
  177. package/dist/ai/recipes/vue/records-workspace.md +1230 -0
  178. package/dist/ai/recipes/vue/upload-center.md +1806 -0
  179. package/dist/ai/recipes/vue/wizard-form.md +1418 -0
  180. package/dist/ai/source/BbAccordion.md +122 -0
  181. package/dist/ai/source/BbAlert.md +396 -0
  182. package/dist/ai/source/BbAsterisk.md +32 -0
  183. package/dist/ai/source/BbAvatar.md +256 -0
  184. package/dist/ai/source/BbBadge.md +560 -0
  185. package/dist/ai/source/BbBadgeButton.md +490 -0
  186. package/dist/ai/source/BbBaseButton.md +682 -0
  187. package/dist/ai/source/BbBaseCheckbox.md +459 -0
  188. package/dist/ai/source/BbBaseCheckboxGroup.md +554 -0
  189. package/dist/ai/source/BbBaseCheckboxIcon.md +201 -0
  190. package/dist/ai/source/BbBaseColorInput.md +413 -0
  191. package/dist/ai/source/BbBaseColorPalette.md +934 -0
  192. package/dist/ai/source/BbBaseDatePicker.md +1001 -0
  193. package/dist/ai/source/BbBaseDatePickerInput.md +1781 -0
  194. package/dist/ai/source/BbBaseInputContainer.md +1148 -0
  195. package/dist/ai/source/BbBaseNumberInput.md +615 -0
  196. package/dist/ai/source/BbBaseRadio.md +377 -0
  197. package/dist/ai/source/BbBaseRadioGroup.md +499 -0
  198. package/dist/ai/source/BbBaseRadioIcon.md +153 -0
  199. package/dist/ai/source/BbBaseRating.md +573 -0
  200. package/dist/ai/source/BbBaseSelect.md +895 -0
  201. package/dist/ai/source/BbBaseSlider.md +1085 -0
  202. package/dist/ai/source/BbBaseSwitch.md +246 -0
  203. package/dist/ai/source/BbBaseSwitchGroup.md +302 -0
  204. package/dist/ai/source/BbBaseSwitchIcon.md +206 -0
  205. package/dist/ai/source/BbBaseTag.md +688 -0
  206. package/dist/ai/source/BbBaseTextInput.md +511 -0
  207. package/dist/ai/source/BbBaseTextarea.md +480 -0
  208. package/dist/ai/source/BbBaseTimePickerInput.md +1013 -0
  209. package/dist/ai/source/BbBreadcrumbs.md +811 -0
  210. package/dist/ai/source/BbButton.md +990 -0
  211. package/dist/ai/source/BbCheckbox.md +319 -0
  212. package/dist/ai/source/BbCheckboxGroup.md +412 -0
  213. package/dist/ai/source/BbCollapsible.md +133 -0
  214. package/dist/ai/source/BbColorInput.md +315 -0
  215. package/dist/ai/source/BbColorPalette.md +361 -0
  216. package/dist/ai/source/BbConfirm.md +173 -0
  217. package/dist/ai/source/BbConfirmPortal.md +74 -0
  218. package/dist/ai/source/BbDatePicker.md +725 -0
  219. package/dist/ai/source/BbDatePickerInput.md +518 -0
  220. package/dist/ai/source/BbDialog.md +812 -0
  221. package/dist/ai/source/BbDropdown.md +2369 -0
  222. package/dist/ai/source/BbDropdownButton.md +313 -0
  223. package/dist/ai/source/BbDropdownGroup.md +1249 -0
  224. package/dist/ai/source/BbDropzone.md +749 -0
  225. package/dist/ai/source/BbForm.md +100 -0
  226. package/dist/ai/source/BbIcon.md +212 -0
  227. package/dist/ai/source/BbIndicator.md +298 -0
  228. package/dist/ai/source/BbNumberInput.md +365 -0
  229. package/dist/ai/source/BbOffCanvas.md +1260 -0
  230. package/dist/ai/source/BbPagination.md +829 -0
  231. package/dist/ai/source/BbPopover.md +853 -0
  232. package/dist/ai/source/BbProgress.md +140 -0
  233. package/dist/ai/source/BbRadio.md +294 -0
  234. package/dist/ai/source/BbRadioGroup.md +401 -0
  235. package/dist/ai/source/BbRating.md +362 -0
  236. package/dist/ai/source/BbSelect.md +681 -0
  237. package/dist/ai/source/BbSelectPopover.md +2209 -0
  238. package/dist/ai/source/BbSlider.md +371 -0
  239. package/dist/ai/source/BbSmoothHeight.md +261 -0
  240. package/dist/ai/source/BbSpinner.md +127 -0
  241. package/dist/ai/source/BbSwitch.md +175 -0
  242. package/dist/ai/source/BbSwitchGroup.md +240 -0
  243. package/dist/ai/source/BbTable.md +3348 -0
  244. package/dist/ai/source/BbTabs.md +403 -0
  245. package/dist/ai/source/BbTabsList.md +578 -0
  246. package/dist/ai/source/BbTabsPanes.md +368 -0
  247. package/dist/ai/source/BbTabsRoot.md +372 -0
  248. package/dist/ai/source/BbTag.md +383 -0
  249. package/dist/ai/source/BbTextInput.md +345 -0
  250. package/dist/ai/source/BbTextarea.md +330 -0
  251. package/dist/ai/source/BbTimePicker.md +591 -0
  252. package/dist/ai/source/BbTimePickerInput.md +367 -0
  253. package/dist/ai/source/BbToast.md +524 -0
  254. package/dist/ai/source/BbToastPortal.md +482 -0
  255. package/dist/ai/source/BbTooltip.md +508 -0
  256. package/dist/ai/source/BbTree.md +319 -0
  257. package/dist/ai/source/ChipsBox.md +201 -0
  258. package/dist/ai/source/ClearableButton.md +70 -0
  259. package/dist/ai/source/CommaBox.md +202 -0
  260. package/dist/ai/source/CommonInputWrapper.md +554 -0
  261. package/dist/ai/source/CommonPopover.md +606 -0
  262. package/dist/ai/source/ErrorIcon.md +43 -0
  263. package/dist/ai/source/FlatListBox.md +396 -0
  264. package/dist/ai/source/GroupedListBox.md +540 -0
  265. package/dist/ai/source/GuidesComponent.md +383 -0
  266. package/dist/ai/source/ListBox.md +238 -0
  267. package/dist/ai/source/OptionsContainer.md +191 -0
  268. package/dist/ai/source/WarningIcon.md +47 -0
  269. package/dist/alert-variants.d.ts +12 -0
  270. package/dist/assets/css/reset.css_inline.js +4 -0
  271. package/dist/assets/svgs/alert.svg_raw.js +4 -0
  272. package/dist/assets/svgs/calendar.svg_raw.js +4 -0
  273. package/dist/assets/svgs/check_stroke.svg_raw.js +4 -0
  274. package/dist/assets/svgs/chevron_down.svg_raw.js +4 -0
  275. package/dist/assets/svgs/chevron_right.svg_raw.js +4 -0
  276. package/dist/assets/svgs/clear.svg_raw.js +4 -0
  277. package/dist/assets/svgs/clock.svg_raw.js +4 -0
  278. package/dist/assets/svgs/error.svg_raw.js +4 -0
  279. package/dist/assets/svgs/search.svg_raw.js +4 -0
  280. package/dist/assets/svgs/sort.svg_raw.js +4 -0
  281. package/dist/assets/svgs/spinner.svg_raw.js +4 -0
  282. package/dist/assets/svgs/user.svg_raw.js +4 -0
  283. package/dist/badge-variants.d.ts +18 -0
  284. package/dist/button-variants.d.ts +15 -0
  285. package/dist/components/BbAccordion/BbAccordion.vue.d.ts +9 -3
  286. package/dist/components/BbAccordion/BbAccordion.vue.js +6 -0
  287. package/dist/components/BbAccordion/BbAccordion.vue_vue_type_script_setup_true_lang.js +66 -0
  288. package/dist/components/BbAccordion/types.d.ts +10 -7
  289. package/dist/components/BbAlert/BbAlert.vue.d.ts +12 -3
  290. package/dist/components/BbAlert/BbAlert.vue.js +6 -0
  291. package/dist/components/BbAlert/BbAlert.vue_vue_type_script_setup_true_lang.js +65 -0
  292. package/dist/components/BbAlert/types.d.ts +51 -12
  293. package/dist/components/BbAsterisk/BbAsterisk.vue.d.ts +3 -0
  294. package/dist/components/BbAsterisk/BbAsterisk.vue.js +6 -0
  295. package/dist/components/BbAsterisk/BbAsterisk.vue_vue_type_script_setup_true_lang.js +13 -0
  296. package/dist/components/BbAvatar/BbAvatar.vue.d.ts +5 -0
  297. package/dist/components/BbAvatar/BbAvatar.vue.js +6 -0
  298. package/dist/components/BbAvatar/BbAvatar.vue_vue_type_script_setup_true_lang.js +78 -0
  299. package/dist/components/BbAvatar/types.d.ts +4 -5
  300. package/dist/components/BbBadge/BadgeAppendIcon.vue.d.ts +3 -0
  301. package/dist/components/BbBadge/BadgeAppendIcon.vue.js +5 -0
  302. package/dist/components/BbBadge/BadgeAppendIcon.vue_vue_type_script_setup_true_lang.js +22 -0
  303. package/dist/components/BbBadge/BadgeBodyContent.vue.d.ts +15 -0
  304. package/dist/components/BbBadge/BadgeBodyContent.vue.js +5 -0
  305. package/dist/components/BbBadge/BadgeBodyContent.vue_vue_type_script_setup_true_lang.js +34 -0
  306. package/dist/components/BbBadge/BbBadge.vue.d.ts +8 -1
  307. package/dist/components/BbBadge/BbBadge.vue.js +6 -0
  308. package/dist/components/BbBadge/BbBadge.vue_vue_type_script_setup_true_lang.js +83 -0
  309. package/dist/components/BbBadge/BbBadgeButton.vue.d.ts +12 -0
  310. package/dist/components/BbBadge/BbBadgeButton.vue.js +5 -0
  311. package/dist/components/BbBadge/BbBadgeButton.vue_vue_type_script_setup_true_lang.js +54 -0
  312. package/dist/components/BbBadge/badgeButtonContext.d.ts +27 -0
  313. package/dist/components/BbBadge/badgeButtonContext.js +5 -0
  314. package/dist/components/BbBadge/types.d.ts +61 -16
  315. package/dist/components/BbBaseButton/BbBaseButton.vue.d.ts +13 -0
  316. package/dist/components/BbBaseButton/BbBaseButton.vue.js +6 -0
  317. package/dist/components/BbBaseButton/BbBaseButton.vue_vue_type_script_setup_true_lang.js +171 -0
  318. package/dist/components/BbBaseButton/RouterComponent.vue.js +5 -0
  319. package/dist/components/BbBaseButton/RouterComponent.vue_vue_type_script_setup_true_lang.js +28 -0
  320. package/dist/components/BbBaseButton/types.d.ts +191 -0
  321. package/dist/components/BbBaseButton/types.js +33 -0
  322. package/dist/components/BbBaseCheckbox/BbBaseCheckbox.vue.d.ts +40 -0
  323. package/dist/components/BbBaseCheckbox/BbBaseCheckbox.vue.js +6 -0
  324. package/dist/components/BbBaseCheckbox/BbBaseCheckbox.vue_vue_type_script_setup_true_lang.js +145 -0
  325. package/dist/components/BbBaseCheckbox/types.d.ts +222 -0
  326. package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue.d.ts +19 -0
  327. package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue.js +6 -0
  328. package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue_vue_type_script_setup_true_lang.js +190 -0
  329. package/dist/components/BbBaseCheckboxGroup/types.d.ts +257 -0
  330. package/dist/components/BbBaseCheckboxIcon/BbBaseCheckboxIcon.vue.d.ts +4 -0
  331. package/dist/components/BbBaseCheckboxIcon/BbBaseCheckboxIcon.vue.js +6 -0
  332. package/dist/components/BbBaseCheckboxIcon/BbBaseCheckboxIcon.vue_vue_type_script_setup_true_lang.js +43 -0
  333. package/dist/components/BbBaseCheckboxIcon/types.d.ts +47 -0
  334. package/dist/components/BbBaseColorInput/BbBaseColorInput.vue.d.ts +42 -0
  335. package/dist/components/BbBaseColorInput/BbBaseColorInput.vue.js +6 -0
  336. package/dist/components/BbBaseColorInput/BbBaseColorInput.vue_vue_type_script_setup_true_lang.js +178 -0
  337. package/dist/components/BbBaseColorInput/types.d.ts +207 -0
  338. package/dist/components/BbBaseColorPalette/BbBaseColorPalette.vue.d.ts +13 -0
  339. package/dist/components/BbBaseColorPalette/BbBaseColorPalette.vue.js +6 -0
  340. package/dist/components/BbBaseColorPalette/BbBaseColorPalette.vue_vue_type_script_setup_true_lang.js +395 -0
  341. package/dist/components/BbBaseColorPalette/types.d.ts +40 -0
  342. package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue.js +6 -0
  343. package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue_vue_type_script_setup_true_lang.js +300 -0
  344. package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue.d.ts +44 -0
  345. package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue.js +5 -0
  346. package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue_vue_type_script_setup_true_lang.js +310 -0
  347. package/dist/components/BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue.d.ts +5 -0
  348. package/dist/components/BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue.js +5 -0
  349. package/dist/components/BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue_vue_type_script_setup_true_lang.js +63 -0
  350. package/dist/components/BbBaseDatePicker/BbBaseDatePickerYearSelector.vue.d.ts +5 -0
  351. package/dist/components/BbBaseDatePicker/BbBaseDatePickerYearSelector.vue.js +5 -0
  352. package/dist/components/BbBaseDatePicker/BbBaseDatePickerYearSelector.vue_vue_type_script_setup_true_lang.js +75 -0
  353. package/dist/components/BbBaseDatePicker/typeahead.d.ts +112 -0
  354. package/dist/components/BbBaseDatePicker/typeahead.js +37 -0
  355. package/dist/components/BbBaseDatePicker/types.d.ts +97 -0
  356. package/dist/components/BbBaseDatePicker/useDatePickerContext.d.ts +58 -0
  357. package/dist/components/BbBaseDatePicker/useDatePickerContext.js +11 -0
  358. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue.d.ts +30 -0
  359. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue.js +6 -0
  360. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue_vue_type_script_setup_true_lang.js +713 -0
  361. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerTimeSelector.vue.d.ts +30 -0
  362. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerTimeSelector.vue.js +6 -0
  363. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerTimeSelector.vue_vue_type_script_setup_true_lang.js +204 -0
  364. package/dist/components/BbBaseDatePickerInput/types.d.ts +309 -0
  365. package/dist/components/BbBaseInputContainer/BbBaseInputContainer.vue.d.ts +17 -0
  366. package/dist/components/BbBaseInputContainer/BbBaseInputContainer.vue.js +6 -0
  367. package/dist/components/BbBaseInputContainer/BbBaseInputContainer.vue_vue_type_script_setup_true_lang.js +184 -0
  368. package/dist/components/BbBaseInputContainer/types.d.ts +185 -0
  369. package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue.d.ts +52 -0
  370. package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue.js +6 -0
  371. package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue_vue_type_script_setup_true_lang.js +211 -0
  372. package/dist/components/BbBaseNumberInput/types.d.ts +211 -0
  373. package/dist/components/BbBaseRadio/BbBaseRadio.vue.d.ts +33 -0
  374. package/dist/components/BbBaseRadio/BbBaseRadio.vue.js +6 -0
  375. package/dist/components/BbBaseRadio/BbBaseRadio.vue_vue_type_script_setup_true_lang.js +114 -0
  376. package/dist/components/BbBaseRadio/types.d.ts +179 -0
  377. package/dist/components/BbBaseRadioGroup/BbBaseRadioGroup.vue.d.ts +19 -0
  378. package/dist/components/BbBaseRadioGroup/BbBaseRadioGroup.vue.js +6 -0
  379. package/dist/components/BbBaseRadioGroup/BbBaseRadioGroup.vue_vue_type_script_setup_true_lang.js +172 -0
  380. package/dist/components/BbBaseRadioGroup/types.d.ts +215 -0
  381. package/dist/components/BbBaseRadioIcon/BbBaseRadioIcon.vue.d.ts +4 -0
  382. package/dist/components/BbBaseRadioIcon/BbBaseRadioIcon.vue.js +6 -0
  383. package/dist/components/BbBaseRadioIcon/BbBaseRadioIcon.vue_vue_type_script_setup_true_lang.js +28 -0
  384. package/dist/components/BbBaseRadioIcon/types.d.ts +41 -0
  385. package/dist/components/BbBaseRating/BbBaseRating.vue.d.ts +38 -0
  386. package/dist/components/BbBaseRating/BbBaseRating.vue.js +6 -0
  387. package/dist/components/BbBaseRating/BbBaseRating.vue_vue_type_script_setup_true_lang.js +184 -0
  388. package/dist/components/BbBaseRating/types.d.ts +168 -0
  389. package/dist/components/BbBaseSelect/BbBaseSelect.vue.d.ts +19 -0
  390. package/dist/components/BbBaseSelect/BbBaseSelect.vue.js +6 -0
  391. package/dist/components/BbBaseSelect/BbBaseSelect.vue_vue_type_script_setup_true_lang.js +307 -0
  392. package/dist/components/BbBaseSelect/types.d.ts +294 -0
  393. package/dist/components/BbBaseSlider/BbBaseSlider.vue.d.ts +35 -0
  394. package/dist/components/BbBaseSlider/BbBaseSlider.vue.js +6 -0
  395. package/dist/components/BbBaseSlider/BbBaseSlider.vue_vue_type_script_setup_true_lang.js +324 -0
  396. package/dist/components/BbBaseSlider/types.d.ts +200 -0
  397. package/dist/components/BbBaseSwitch/BbBaseSwitch.vue.d.ts +35 -0
  398. package/dist/components/BbBaseSwitch/BbBaseSwitch.vue.js +6 -0
  399. package/dist/components/BbBaseSwitch/BbBaseSwitch.vue_vue_type_script_setup_true_lang.js +146 -0
  400. package/dist/components/BbBaseSwitch/types.d.ts +10 -0
  401. package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue.d.ts +19 -0
  402. package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue.js +6 -0
  403. package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue_vue_type_script_setup_true_lang.js +190 -0
  404. package/dist/components/BbBaseSwitchGroup/types.d.ts +8 -0
  405. package/dist/components/BbBaseSwitchIcon/BbBaseSwitchIcon.vue.d.ts +4 -0
  406. package/dist/components/BbBaseSwitchIcon/BbBaseSwitchIcon.vue.js +6 -0
  407. package/dist/components/BbBaseSwitchIcon/BbBaseSwitchIcon.vue_vue_type_script_setup_true_lang.js +30 -0
  408. package/dist/components/BbBaseSwitchIcon/types.d.ts +48 -0
  409. package/dist/components/BbBaseTag/BbBaseTag.vue.d.ts +50 -0
  410. package/dist/components/BbBaseTag/BbBaseTag.vue.js +6 -0
  411. package/dist/components/BbBaseTag/BbBaseTag.vue_vue_type_script_setup_true_lang.js +266 -0
  412. package/dist/components/BbBaseTag/types.d.ts +160 -0
  413. package/dist/components/BbBaseTextInput/BbBaseTextInput.vue.d.ts +45 -0
  414. package/dist/components/BbBaseTextInput/BbBaseTextInput.vue.js +6 -0
  415. package/dist/components/BbBaseTextInput/BbBaseTextInput.vue_vue_type_script_setup_true_lang.js +200 -0
  416. package/dist/components/BbBaseTextInput/types.d.ts +209 -0
  417. package/dist/components/BbBaseTextarea/BbBaseTextarea.vue.d.ts +39 -0
  418. package/dist/components/BbBaseTextarea/BbBaseTextarea.vue.js +6 -0
  419. package/dist/components/BbBaseTextarea/BbBaseTextarea.vue_vue_type_script_setup_true_lang.js +175 -0
  420. package/dist/components/BbBaseTextarea/types.d.ts +170 -0
  421. package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue.d.ts +27 -0
  422. package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue.js +6 -0
  423. package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue_vue_type_script_setup_true_lang.js +517 -0
  424. package/dist/components/BbBaseTimePickerInput/types.d.ts +151 -0
  425. package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue.d.ts +0 -1
  426. package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue.js +6 -0
  427. package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue_vue_type_script_setup_true_lang.js +224 -0
  428. package/dist/components/BbBreadcrumbs/estimateBreadcrumbItemWidth.js +47 -0
  429. package/dist/components/BbBreadcrumbs/types.d.ts +33 -22
  430. package/dist/components/BbButton/BbButton.vue.d.ts +6 -5
  431. package/dist/components/BbButton/BbButton.vue.js +6 -0
  432. package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +177 -0
  433. package/dist/components/BbButton/types.d.ts +48 -47
  434. package/dist/components/BbCheckbox/BbCheckbox.vue.d.ts +4 -3
  435. package/dist/components/BbCheckbox/BbCheckbox.vue.js +6 -0
  436. package/dist/components/BbCheckbox/BbCheckbox.vue_vue_type_script_setup_true_lang.js +146 -0
  437. package/dist/components/BbCheckbox/types.d.ts +24 -10
  438. package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue.d.ts +2 -13
  439. package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue.js +6 -0
  440. package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +190 -0
  441. package/dist/components/BbCheckboxGroup/types.d.ts +44 -23
  442. package/dist/components/BbCollapsible/BbCollapsible.vue.d.ts +2 -1
  443. package/dist/components/BbCollapsible/BbCollapsible.vue.js +6 -0
  444. package/dist/components/BbCollapsible/BbCollapsible.vue_vue_type_script_setup_true_lang.js +31 -0
  445. package/dist/components/BbCollapsible/types.d.ts +10 -9
  446. package/dist/components/BbColorInput/BbColorInput.vue.d.ts +10 -1
  447. package/dist/components/BbColorInput/BbColorInput.vue.js +6 -0
  448. package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +177 -0
  449. package/dist/components/BbColorInput/types.d.ts +37 -11
  450. package/dist/components/BbColorPalette/BbColorPalette.vue.d.ts +5 -8
  451. package/dist/components/BbColorPalette/BbColorPalette.vue.js +5 -0
  452. package/dist/components/BbColorPalette/BbColorPalette.vue_vue_type_script_setup_true_lang.js +125 -0
  453. package/dist/components/BbColorPalette/types.d.ts +66 -53
  454. package/dist/components/BbConfirm/BbConfirm.vue.js +6 -0
  455. package/dist/components/BbConfirm/BbConfirm.vue_vue_type_script_setup_true_lang.js +130 -0
  456. package/dist/components/BbConfirm/BbConfirmPortal.vue.d.ts +5 -6
  457. package/dist/components/BbConfirm/BbConfirmPortal.vue.js +5 -0
  458. package/dist/components/BbConfirm/BbConfirmPortal.vue_vue_type_script_setup_true_lang.js +19 -0
  459. package/dist/components/BbDatePicker/BbDatePicker.vue.d.ts +37 -0
  460. package/dist/components/BbDatePicker/BbDatePicker.vue.js +6 -0
  461. package/dist/components/BbDatePicker/BbDatePicker.vue_vue_type_script_setup_true_lang.js +319 -0
  462. package/dist/components/BbDatePicker/types.d.ts +155 -0
  463. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue.d.ts +3 -1
  464. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue.js +6 -0
  465. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +179 -0
  466. package/dist/components/BbDatePickerInput/types.d.ts +127 -16
  467. package/dist/components/BbDialog/BbDialog.vue.d.ts +8 -6
  468. package/dist/components/BbDialog/BbDialog.vue.js +6 -0
  469. package/dist/components/BbDialog/BbDialog.vue_vue_type_script_setup_true_lang.js +214 -0
  470. package/dist/components/BbDialog/types.d.ts +146 -1
  471. package/dist/components/BbDialog/useDialogStack.d.ts +5 -0
  472. package/dist/components/BbDialog/useDialogStack.js +20 -0
  473. package/dist/components/BbDropdown/AdaptiveDropdown.vue.d.ts +18 -0
  474. package/dist/components/BbDropdown/AdaptiveDropdown.vue.js +6 -0
  475. package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +116 -0
  476. package/dist/components/BbDropdown/BbDropdown.vue.d.ts +14 -7
  477. package/dist/components/BbDropdown/BbDropdown.vue.js +6 -0
  478. package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +560 -0
  479. package/dist/components/BbDropdown/BbDropdownGroup.vue.d.ts +44 -0
  480. package/dist/components/BbDropdown/BbDropdownGroup.vue.js +5 -0
  481. package/dist/components/BbDropdown/BbDropdownGroup.vue_vue_type_script_setup_true_lang.js +36 -0
  482. package/dist/components/BbDropdown/BbDropdownList.vue.d.ts +27 -0
  483. package/dist/components/BbDropdown/BbDropdownList.vue.js +6 -0
  484. package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +464 -0
  485. package/dist/components/BbDropdown/DropdownPipelineResolver.vue.d.ts +16 -0
  486. package/dist/components/BbDropdown/DropdownPipelineResolver.vue.js +5 -0
  487. package/dist/components/BbDropdown/DropdownPipelineResolver.vue_vue_type_script_setup_true_lang.js +168 -0
  488. package/dist/components/BbDropdown/normalizeGroups.d.ts +18 -0
  489. package/dist/components/BbDropdown/normalizeGroups.js +46 -0
  490. package/dist/components/BbDropdown/types.d.ts +457 -45
  491. package/dist/components/BbDropdown/types.js +4 -0
  492. package/dist/components/BbDropdown/useDropdownContext.d.ts +89 -0
  493. package/dist/components/BbDropdown/useDropdownContext.js +9 -0
  494. package/dist/components/BbDropdown/useDropdownGroupRegistry.d.ts +108 -0
  495. package/dist/components/BbDropdown/useDropdownGroupRegistry.js +5 -0
  496. package/dist/components/BbDropdownButton/BbDropdownButton.vue.d.ts +3 -3
  497. package/dist/components/BbDropdownButton/BbDropdownButton.vue.js +6 -0
  498. package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +119 -0
  499. package/dist/components/BbDropdownButton/types.d.ts +45 -52
  500. package/dist/components/BbDropzone/BbDropzone.vue.d.ts +5 -4
  501. package/dist/components/BbDropzone/BbDropzone.vue.js +6 -0
  502. package/dist/components/BbDropzone/BbDropzone.vue_vue_type_script_setup_true_lang.js +284 -0
  503. package/dist/components/BbDropzone/types.d.ts +55 -7
  504. package/dist/components/BbIcon/BbIcon.vue.d.ts +3 -2
  505. package/dist/components/BbIcon/BbIcon.vue.js +6 -0
  506. package/dist/components/BbIcon/BbIcon.vue_vue_type_script_setup_true_lang.js +65 -0
  507. package/dist/components/BbIcon/types.d.ts +6 -19
  508. package/dist/components/BbIndicator/BbIndicator.vue.d.ts +14 -0
  509. package/dist/components/BbIndicator/BbIndicator.vue.js +6 -0
  510. package/dist/components/BbIndicator/BbIndicator.vue_vue_type_script_setup_true_lang.js +56 -0
  511. package/dist/components/BbIndicator/types.d.ts +49 -0
  512. package/dist/components/BbNumberInput/BbNumberInput.vue.d.ts +12 -6
  513. package/dist/components/BbNumberInput/BbNumberInput.vue.js +6 -0
  514. package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +194 -0
  515. package/dist/components/BbNumberInput/types.d.ts +31 -4
  516. package/dist/components/BbOffCanvas/BbOffCanvas.vue.d.ts +10 -10
  517. package/dist/components/BbOffCanvas/BbOffCanvas.vue.js +6 -0
  518. package/dist/components/BbOffCanvas/BbOffCanvas.vue_vue_type_script_setup_true_lang.js +284 -0
  519. package/dist/components/BbOffCanvas/types.d.ts +71 -39
  520. package/dist/components/BbOffCanvas/useOffCanvasStack.d.ts +25 -0
  521. package/dist/components/BbOffCanvas/useOffCanvasStack.js +68 -0
  522. package/dist/components/BbPagination/BbPagination.vue.d.ts +3 -4
  523. package/dist/components/BbPagination/BbPagination.vue.js +6 -0
  524. package/dist/components/BbPagination/BbPagination.vue_vue_type_script_setup_true_lang.js +244 -0
  525. package/dist/components/BbPagination/paginationFit.d.ts +38 -0
  526. package/dist/components/BbPagination/paginationFit.js +13 -0
  527. package/dist/components/BbPagination/types.d.ts +51 -16
  528. package/dist/components/BbPopover/BbPopover.vue.d.ts +10 -15
  529. package/dist/components/BbPopover/BbPopover.vue.js +6 -0
  530. package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +310 -0
  531. package/dist/components/BbPopover/escapeStack.d.ts +6 -0
  532. package/dist/components/BbPopover/escapeStack.js +10 -0
  533. package/dist/components/BbPopover/types.d.ts +84 -31
  534. package/dist/components/BbProgress/BbProgress.vue.d.ts +1 -0
  535. package/dist/components/BbProgress/BbProgress.vue.js +6 -0
  536. package/dist/components/BbProgress/BbProgress.vue_vue_type_script_setup_true_lang.js +36 -0
  537. package/dist/components/BbProgress/types.d.ts +15 -1
  538. package/dist/components/BbRadio/BbRadio.vue.d.ts +5 -3
  539. package/dist/components/BbRadio/BbRadio.vue.js +6 -0
  540. package/dist/components/BbRadio/BbRadio.vue_vue_type_script_setup_true_lang.js +133 -0
  541. package/dist/components/BbRadio/types.d.ts +23 -9
  542. package/dist/components/BbRadioGroup/BbRadioGroup.vue.d.ts +4 -14
  543. package/dist/components/BbRadioGroup/BbRadioGroup.vue.js +6 -0
  544. package/dist/components/BbRadioGroup/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +184 -0
  545. package/dist/components/BbRadioGroup/types.d.ts +41 -22
  546. package/dist/components/BbRating/BbRating.vue.d.ts +4 -1
  547. package/dist/components/BbRating/BbRating.vue.js +6 -0
  548. package/dist/components/BbRating/BbRating.vue_vue_type_script_setup_true_lang.js +150 -0
  549. package/dist/components/BbRating/types.d.ts +37 -10
  550. package/dist/components/BbSelect/BbSelect.vue.d.ts +2 -11
  551. package/dist/components/BbSelect/BbSelect.vue.js +6 -0
  552. package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +241 -0
  553. package/dist/components/BbSelect/types.d.ts +105 -59
  554. package/dist/components/BbSelectPopover/BbSelectPopover.vue.d.ts +1 -10
  555. package/dist/components/BbSelectPopover/BbSelectPopover.vue.js +6 -0
  556. package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +637 -0
  557. package/dist/components/BbSelectPopover/types.d.ts +189 -102
  558. package/dist/components/BbSlider/BbSlider.vue.d.ts +3 -6
  559. package/dist/components/BbSlider/BbSlider.vue.js +6 -0
  560. package/dist/components/BbSlider/BbSlider.vue_vue_type_script_setup_true_lang.js +166 -0
  561. package/dist/components/BbSlider/types.d.ts +37 -13
  562. package/dist/components/BbSmoothHeight/BbSmoothHeight.vue.d.ts +3 -1
  563. package/dist/components/BbSmoothHeight/BbSmoothHeight.vue.js +6 -0
  564. package/dist/components/BbSmoothHeight/BbSmoothHeight.vue_vue_type_script_setup_true_lang.js +79 -0
  565. package/dist/components/BbSmoothHeight/types.d.ts +13 -2
  566. package/dist/components/BbSpinner/BbSpinner.vue.d.ts +1 -1
  567. package/dist/components/BbSpinner/BbSpinner.vue.js +6 -0
  568. package/dist/components/BbSpinner/BbSpinner.vue_vue_type_script_setup_true_lang.js +30 -0
  569. package/dist/components/BbSpinner/types.d.ts +10 -3
  570. package/dist/components/BbSwitch/BbSwitch.vue.d.ts +5 -3
  571. package/dist/components/BbSwitch/BbSwitch.vue.js +6 -0
  572. package/dist/components/BbSwitch/BbSwitch.vue_vue_type_script_setup_true_lang.js +142 -0
  573. package/dist/components/BbSwitch/types.d.ts +3 -1
  574. package/dist/components/BbSwitchGroup/BbSwitchGroup.vue.d.ts +4 -14
  575. package/dist/components/BbSwitchGroup/BbSwitchGroup.vue.js +6 -0
  576. package/dist/components/BbSwitchGroup/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +190 -0
  577. package/dist/components/BbSwitchGroup/types.d.ts +3 -22
  578. package/dist/components/BbTable/BbTable.vue.d.ts +53 -31
  579. package/dist/components/BbTable/BbTable.vue.js +6 -0
  580. package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +889 -0
  581. package/dist/components/BbTable/types.d.ts +176 -37
  582. package/dist/components/BbTable/utils.d.ts +9 -1
  583. package/dist/components/BbTable/utils.js +53 -0
  584. package/dist/components/BbTabs/BbTabs.vue.d.ts +20 -0
  585. package/dist/components/BbTabs/BbTabs.vue.js +6 -0
  586. package/dist/components/BbTabs/BbTabs.vue_vue_type_script_setup_true_lang.js +64 -0
  587. package/dist/components/BbTabs/BbTabsList.vue.d.ts +19 -0
  588. package/dist/components/BbTabs/BbTabsList.vue.js +6 -0
  589. package/dist/components/BbTabs/BbTabsList.vue_vue_type_script_setup_true_lang.js +123 -0
  590. package/dist/components/BbTabs/BbTabsPanes.vue.d.ts +16 -0
  591. package/dist/components/BbTabs/BbTabsPanes.vue.js +6 -0
  592. package/dist/components/BbTabs/BbTabsPanes.vue_vue_type_script_setup_true_lang.js +35 -0
  593. package/dist/components/BbTabs/BbTabsRoot.vue.d.ts +20 -0
  594. package/dist/components/BbTabs/BbTabsRoot.vue.js +5 -0
  595. package/dist/components/BbTabs/BbTabsRoot.vue_vue_type_script_setup_true_lang.js +55 -0
  596. package/dist/components/BbTabs/types.d.ts +264 -0
  597. package/dist/components/BbTag/BbTag.vue.d.ts +19 -6
  598. package/dist/components/BbTag/BbTag.vue.js +6 -0
  599. package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +187 -0
  600. package/dist/components/BbTag/types.d.ts +48 -17
  601. package/dist/components/BbTextInput/BbTextInput.vue.d.ts +10 -1
  602. package/dist/components/BbTextInput/BbTextInput.vue.js +6 -0
  603. package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +195 -0
  604. package/dist/components/BbTextInput/types.d.ts +24 -4
  605. package/dist/components/BbTextarea/BbTextarea.vue.d.ts +10 -1
  606. package/dist/components/BbTextarea/BbTextarea.vue.js +6 -0
  607. package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +178 -0
  608. package/dist/components/BbTextarea/types.d.ts +26 -2
  609. package/dist/components/BbTimePicker/BbTimePicker.vue.d.ts +33 -0
  610. package/dist/components/BbTimePicker/BbTimePicker.vue.js +6 -0
  611. package/dist/components/BbTimePicker/BbTimePicker.vue_vue_type_script_setup_true_lang.js +244 -0
  612. package/dist/components/BbTimePicker/types.d.ts +129 -0
  613. package/dist/components/BbTimePickerInput/BbTimePickerInput.vue.d.ts +25 -0
  614. package/dist/components/BbTimePickerInput/BbTimePickerInput.vue.js +6 -0
  615. package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +157 -0
  616. package/dist/components/BbTimePickerInput/types.d.ts +165 -0
  617. package/dist/components/BbToast/BbToast.vue.d.ts +2 -3
  618. package/dist/components/BbToast/BbToast.vue.js +6 -0
  619. package/dist/components/BbToast/BbToast.vue_vue_type_script_setup_true_lang.js +35 -0
  620. package/dist/components/BbToast/BbToastMessage.vue.d.ts +17 -8
  621. package/dist/components/BbToast/BbToastMessage.vue.js +5 -0
  622. package/dist/components/BbToast/BbToastMessage.vue_vue_type_script_setup_true_lang.js +170 -0
  623. package/dist/components/BbToast/BbToastPortal.vue.d.ts +30 -0
  624. package/dist/components/BbToast/BbToastPortal.vue.js +5 -0
  625. package/dist/components/BbToast/BbToastPortal.vue_vue_type_script_setup_true_lang.js +19 -0
  626. package/dist/components/BbToast/BbToastRegion.vue.d.ts +8 -0
  627. package/dist/components/BbToast/BbToastRegion.vue.js +5 -0
  628. package/dist/components/BbToast/BbToastRegion.vue_vue_type_script_setup_true_lang.js +100 -0
  629. package/dist/components/BbToast/types.d.ts +69 -5
  630. package/dist/components/BbTooltip/BbTooltip.vue.d.ts +4 -3
  631. package/dist/components/BbTooltip/BbTooltip.vue.js +6 -0
  632. package/dist/components/BbTooltip/BbTooltip.vue_vue_type_script_setup_true_lang.js +160 -0
  633. package/dist/components/BbTooltip/types.d.ts +61 -11
  634. package/dist/components/BbTree/BbTree.vue.d.ts +26 -13
  635. package/dist/components/BbTree/BbTree.vue.js +6 -0
  636. package/dist/components/BbTree/BbTree.vue_vue_type_script_setup_true_lang.js +55 -0
  637. package/dist/components/BbTree/BbTreeLevel.vue.d.ts +19 -0
  638. package/dist/components/BbTree/BbTreeLevel.vue.js +5 -0
  639. package/dist/components/BbTree/BbTreeLevel.vue_vue_type_script_setup_true_lang.js +94 -0
  640. package/dist/components/BbTree/context.d.ts +17 -0
  641. package/dist/components/BbTree/context.js +4 -0
  642. package/dist/components/BbTree/types.d.ts +93 -42
  643. package/dist/components/ChipsBox/ChipsBox.vue.d.ts +2 -1
  644. package/dist/components/ChipsBox/ChipsBox.vue.js +5 -0
  645. package/dist/components/ChipsBox/ChipsBox.vue_vue_type_script_setup_true_lang.js +98 -0
  646. package/dist/components/ChipsBox/types.d.ts +12 -5
  647. package/dist/components/ClearableButton/ClearableButton.vue.d.ts +2 -1
  648. package/dist/components/ClearableButton/ClearableButton.vue.js +6 -0
  649. package/dist/components/ClearableButton/ClearableButton.vue_vue_type_script_setup_true_lang.js +19 -0
  650. package/dist/components/ClearableButton/types.d.ts +7 -1
  651. package/dist/components/CloseIcon/CloseButton.vue.d.ts +5 -0
  652. package/dist/components/CloseIcon/CloseButton.vue.js +7 -0
  653. package/dist/components/CloseIcon/CloseButton.vue_vue_type_script_setup_true_lang.js +23 -0
  654. package/dist/components/CloseIcon/types.d.ts +2 -0
  655. package/dist/components/CommaBox/CommaBox.vue.d.ts +2 -1
  656. package/dist/components/CommaBox/CommaBox.vue.js +6 -0
  657. package/dist/components/CommaBox/CommaBox.vue_vue_type_script_setup_true_lang.js +81 -0
  658. package/dist/components/CommaBox/types.d.ts +6 -7
  659. package/dist/components/CommonInputWrapper/CommonInputWrapper.vue.d.ts +19 -0
  660. package/dist/components/CommonInputWrapper/CommonInputWrapper.vue.js +6 -0
  661. package/dist/components/CommonInputWrapper/CommonInputWrapper.vue_vue_type_script_setup_true_lang.js +107 -0
  662. package/dist/components/CommonInputWrapper/types.d.ts +96 -0
  663. package/dist/components/CommonPopover/CommonPopover.vue.d.ts +3 -3
  664. package/dist/components/CommonPopover/CommonPopover.vue.js +6 -0
  665. package/dist/components/CommonPopover/CommonPopover.vue_vue_type_script_setup_true_lang.js +160 -0
  666. package/dist/components/CommonPopover/types.d.ts +61 -16
  667. package/dist/components/ErrorIcon/ErrorIcon.vue.d.ts +2 -0
  668. package/dist/components/ErrorIcon/ErrorIcon.vue.js +6 -0
  669. package/dist/components/ErrorIcon/ErrorIcon.vue_vue_type_script_setup_true_lang.js +16 -0
  670. package/dist/components/FlatListBox/FlatListBox.vue.d.ts +2 -5
  671. package/dist/components/FlatListBox/FlatListBox.vue.js +5 -0
  672. package/dist/components/FlatListBox/FlatListBox.vue_vue_type_script_setup_true_lang.js +167 -0
  673. package/dist/components/FlatListBox/types.d.ts +1 -1
  674. package/dist/components/GroupedListBox/GroupedListBox.vue.d.ts +2 -5
  675. package/dist/components/GroupedListBox/GroupedListBox.vue.js +5 -0
  676. package/dist/components/GroupedListBox/GroupedListBox.vue_vue_type_script_setup_true_lang.js +218 -0
  677. package/dist/components/ListBox/ListBox.vue.d.ts +3 -6
  678. package/dist/components/ListBox/ListBox.vue.js +5 -0
  679. package/dist/components/ListBox/ListBox.vue_vue_type_script_setup_true_lang.js +112 -0
  680. package/dist/components/ListBox/types.d.ts +1 -1
  681. package/dist/components/OptionsContainer/OptionsContainer.vue.d.ts +1 -0
  682. package/dist/components/OptionsContainer/OptionsContainer.vue.js +5 -0
  683. package/dist/components/OptionsContainer/OptionsContainer.vue_vue_type_script_setup_true_lang.js +52 -0
  684. package/dist/components/OptionsContainer/types.d.ts +14 -24
  685. package/dist/components/Transitions/ScaleFade.vue.js +5 -0
  686. package/dist/components/Transitions/ScaleFade.vue_vue_type_script_setup_true_lang.js +47 -0
  687. package/dist/components/Transitions/Slide.vue.js +7 -0
  688. package/dist/components/Transitions/Slide.vue_vue_type_script_setup_true_lang.js +28 -0
  689. package/dist/components/WarningIcon/WarningIcon.vue.d.ts +5 -0
  690. package/dist/components/WarningIcon/WarningIcon.vue.js +6 -0
  691. package/dist/components/WarningIcon/WarningIcon.vue_vue_type_script_setup_true_lang.js +16 -0
  692. package/dist/components/WarningIcon/types.d.ts +3 -0
  693. package/dist/composables/__testResets.d.ts +1 -0
  694. package/dist/composables/useActiveInactiveState.d.ts +4 -0
  695. package/dist/composables/useActiveInactiveState.js +21 -0
  696. package/dist/composables/useBaseOptions.d.ts +3 -3
  697. package/dist/composables/useBaseOptions.js +31 -0
  698. package/dist/composables/useBbConfig.d.ts +8 -37
  699. package/dist/composables/useBbConfig.js +5 -0
  700. package/dist/composables/useBbDropdownContext.d.ts +89 -0
  701. package/dist/composables/useBbDropdownContext.js +46 -0
  702. package/dist/composables/useBbFormContext.d.ts +90 -0
  703. package/dist/composables/useBbFormContext.js +69 -0
  704. package/dist/composables/useBbTableContext.d.ts +195 -0
  705. package/dist/composables/useBbTableContext.js +208 -0
  706. package/dist/composables/useBbTabsContext.d.ts +111 -0
  707. package/dist/composables/useBbTabsContext.js +219 -0
  708. package/dist/composables/useBreakpoint.d.ts +13 -0
  709. package/dist/composables/useBreakpoint.js +39 -0
  710. package/dist/composables/useBroadcastChannelInstance.d.ts +1 -3
  711. package/dist/composables/useBroadcastChannelInstance.js +39 -0
  712. package/dist/composables/useCancelableFunction.js +37 -0
  713. package/dist/composables/useCoherence.js +16 -0
  714. package/dist/composables/useConfirm.d.ts +257 -67
  715. package/dist/composables/useConfirm.js +122 -0
  716. package/dist/composables/useCountdown.js +42 -0
  717. package/dist/composables/useHashedWatcher.d.ts +17 -0
  718. package/dist/composables/useHashedWatcher.js +14 -0
  719. package/dist/composables/useId.d.ts +3 -2
  720. package/dist/composables/useIndexById.js +16 -0
  721. package/dist/composables/useInertiaPage.d.ts +10 -0
  722. package/dist/composables/useInertiaPage.js +8 -0
  723. package/dist/composables/useItemText.js +17 -0
  724. package/dist/composables/useItemValue.js +9 -0
  725. package/dist/composables/useItemsGetter.d.ts +1 -1
  726. package/dist/composables/useItemsGetter.js +30 -0
  727. package/dist/composables/useListboxFocus.js +66 -0
  728. package/dist/composables/useLocale.d.ts +1 -1
  729. package/dist/composables/useLocale.js +11 -0
  730. package/dist/composables/useLogger.d.ts +1 -1
  731. package/dist/composables/useLogger.js +10 -0
  732. package/dist/composables/useMinimalQueue.d.ts +1 -1
  733. package/dist/composables/useMobile.js +7 -0
  734. package/dist/composables/useOnFalsy.d.ts +2 -0
  735. package/dist/composables/useOnFalsy.js +9 -0
  736. package/dist/composables/useOnTruthy.d.ts +7 -0
  737. package/dist/composables/useOnTruthy.js +9 -0
  738. package/dist/composables/usePrefill.d.ts +2 -1
  739. package/dist/composables/usePrefill.js +24 -0
  740. package/dist/composables/useQuery.d.ts +15 -3
  741. package/dist/composables/useQuery.js +42 -0
  742. package/dist/composables/useRoute.js +11 -0
  743. package/dist/composables/useRouter.js +8 -0
  744. package/dist/composables/useSafeArea.d.ts +51 -0
  745. package/dist/composables/useSafeArea.js +16 -0
  746. package/dist/composables/useSegmentedFields.d.ts +103 -0
  747. package/dist/composables/useSegmentedFields.js +152 -0
  748. package/dist/composables/useTableWidthContext.d.ts +5 -0
  749. package/dist/composables/useTableWidthContext.js +42 -0
  750. package/dist/composables/useToast.d.ts +17 -73
  751. package/dist/composables/useToast.js +49 -0
  752. package/dist/composables/useTopLayer.d.ts +9 -0
  753. package/dist/composables/useTopLayer.js +7 -0
  754. package/dist/composables/useUntil.js +13 -0
  755. package/dist/composables/useViewportWidth.d.ts +17 -0
  756. package/dist/composables/useViewportWidth.js +6 -0
  757. package/dist/confirm-variants.d.ts +10 -0
  758. package/dist/deprecation/ai-deprecations.json.d.ts +784 -0
  759. package/dist/deprecation/ai-deprecations.json.js +4 -0
  760. package/dist/deprecation/removedProps.d.ts +3 -0
  761. package/dist/deprecation/removedProps.js +13 -0
  762. package/dist/directives/bbColor.d.ts +65 -0
  763. package/dist/directives/bbColor.js +24 -0
  764. package/dist/directives/bbDate.d.ts +66 -0
  765. package/dist/directives/bbDate.js +24 -0
  766. package/dist/directives/bbDropdown.d.ts +15 -11
  767. package/dist/directives/bbDropdown.js +23 -0
  768. package/dist/directives/bbTime.d.ts +64 -0
  769. package/dist/directives/bbTime.js +24 -0
  770. package/dist/directives/bbTooltip.d.ts +16 -11
  771. package/dist/directives/bbTooltip.js +24 -0
  772. package/dist/dropdown-item-variants.d.ts +10 -0
  773. package/dist/i18n/index.d.ts +51 -3
  774. package/dist/i18n/index.js +27 -0
  775. package/dist/i18n/locales/cs.json +115 -0
  776. package/dist/i18n/locales/da.json +115 -0
  777. package/dist/i18n/locales/de.json +115 -0
  778. package/dist/i18n/locales/el.json +115 -0
  779. package/dist/i18n/locales/en.json +115 -0
  780. package/dist/i18n/locales/es.json +115 -0
  781. package/dist/i18n/locales/fi.json +115 -0
  782. package/dist/i18n/locales/fr.json +115 -0
  783. package/dist/i18n/locales/hu.json +115 -0
  784. package/dist/i18n/locales/it.json +115 -0
  785. package/dist/i18n/locales/ja.json +115 -0
  786. package/dist/i18n/locales/ko.json +115 -0
  787. package/dist/i18n/locales/nb.json +115 -0
  788. package/dist/i18n/locales/nl.json +115 -0
  789. package/dist/i18n/locales/pl.json +115 -0
  790. package/dist/i18n/locales/pt.json +115 -0
  791. package/dist/i18n/locales/ro.json +115 -0
  792. package/dist/i18n/locales/ru.json +115 -0
  793. package/dist/i18n/locales/sv.json +115 -0
  794. package/dist/i18n/locales/tr.json +115 -0
  795. package/dist/i18n/locales/uk.json +115 -0
  796. package/dist/i18n/locales/zh-cn.json +115 -0
  797. package/dist/icons-whitelist.d.ts +8 -0
  798. package/dist/index.d.ts +94 -79
  799. package/dist/index.js +76 -82
  800. package/dist/indicator-variants.d.ts +13 -0
  801. package/dist/llms-full.txt +77073 -0
  802. package/dist/llms-medium.txt +1334 -0
  803. package/dist/llms.txt +103 -0
  804. package/dist/locale-blueprint.json +141 -0
  805. package/dist/nuxt-module.d.ts +3 -0
  806. package/dist/nuxt.js +19 -0
  807. package/dist/plugin.d.ts +4 -0
  808. package/dist/plugin.js +22 -0
  809. package/dist/reset.css +1 -0
  810. package/dist/reset.d.ts +0 -0
  811. package/dist/runtime/nuxt-plugin.d.ts +2 -0
  812. package/dist/runtime/nuxt-plugin.js +24 -0
  813. package/dist/styles.css +2 -0
  814. package/dist/styles.d.ts +0 -0
  815. package/dist/toast-variants.d.ts +13 -0
  816. package/dist/tooltip-variants.d.ts +10 -0
  817. package/dist/types/ActionButton.d.ts +32 -0
  818. package/dist/types/AlertVariant.d.ts +16 -0
  819. package/dist/types/BadgeVariant.d.ts +16 -0
  820. package/dist/types/ButtonVariant.d.ts +17 -0
  821. package/dist/types/Classes.d.ts +1 -1
  822. package/dist/types/ColumnName.d.ts +1 -1
  823. package/dist/types/CommonProps.d.ts +66 -279
  824. package/dist/types/Config.d.ts +84 -0
  825. package/dist/types/ConfirmVariant.d.ts +15 -0
  826. package/dist/types/DropdownItemVariant.d.ts +18 -0
  827. package/dist/types/Icon.d.ts +5 -7
  828. package/dist/types/IndicatorVariant.d.ts +16 -0
  829. package/dist/types/InputDirection.d.ts +15 -0
  830. package/dist/types/ItemAccessor.d.ts +21 -0
  831. package/dist/types/Placement.d.ts +6 -0
  832. package/dist/types/ResponsiveSize.d.ts +20 -0
  833. package/dist/types/SizeScale.d.ts +8 -0
  834. package/dist/types/ToastVariant.d.ts +17 -0
  835. package/dist/types/TooltipVariant.d.ts +18 -0
  836. package/dist/utilities/functions/bytesToUnit.d.ts +2 -0
  837. package/dist/utilities/functions/bytesToUnit.js +18 -0
  838. package/dist/utilities/functions/clampPrecision.js +10 -0
  839. package/dist/utilities/functions/convertDateValue.d.ts +23 -10
  840. package/dist/utilities/functions/convertDateValue.js +12 -0
  841. package/dist/utilities/functions/deburr.js +5 -0
  842. package/dist/utilities/functions/empty.js +5 -0
  843. package/dist/utilities/functions/flattenTree.d.ts +1 -1
  844. package/dist/utilities/functions/hash.js +5 -0
  845. package/dist/utilities/functions/isDateDisabled.d.ts +1 -0
  846. package/dist/utilities/functions/isDateDisabled.js +20 -0
  847. package/dist/utilities/functions/isEqual.js +5 -0
  848. package/dist/utilities/functions/isNotEmpty.js +5 -0
  849. package/dist/utilities/functions/matchAnyKey.d.ts +1 -1
  850. package/dist/utilities/functions/matchAnyKey.js +15 -0
  851. package/dist/utilities/functions/parseSize.d.ts +1 -1
  852. package/dist/utilities/functions/parseSize.js +15 -0
  853. package/dist/utilities/functions/percentage.js +11 -0
  854. package/dist/utilities/functions/pipe.d.ts +1 -1
  855. package/dist/utilities/functions/reject.d.ts +25 -0
  856. package/dist/utilities/functions/reject.js +28 -0
  857. package/dist/utilities/functions/resolveEnumProp.d.ts +19 -0
  858. package/dist/utilities/functions/resolveEnumProp.js +5 -0
  859. package/dist/utilities/functions/slotKey.d.ts +13 -0
  860. package/dist/utilities/functions/slotKey.js +4 -0
  861. package/dist/utilities/functions/sort.d.ts +2 -2
  862. package/dist/utilities/functions/sort.js +19 -0
  863. package/dist/utilities/functions/throttle.js +5 -0
  864. package/dist/utilities/functions/waitFor.d.ts +9 -2
  865. package/dist/utilities/functions/waitFor.js +14 -0
  866. package/dist/utilities/functions/warnRemovedAttrs.d.ts +11 -0
  867. package/dist/utilities/functions/warnRemovedAttrs.js +20 -0
  868. package/dist/utilities/functions/when.js +5 -0
  869. package/dist/utilities/misc/iconsInjectionKey.d.ts +15 -0
  870. package/dist/utilities/misc/iconsInjectionKey.js +4 -0
  871. package/dist/utilities/misc/transitions.d.ts +5 -0
  872. package/dist/utilities/misc/transitions.js +8 -0
  873. package/dist/utils/injectLibraryStyles.d.ts +6 -0
  874. package/dist/utils/injectLibraryStyles.js +38 -0
  875. package/dist/validated/BbCheckbox.vue.d.ts +29 -0
  876. package/dist/validated/BbCheckbox.vue.js +5 -0
  877. package/dist/validated/BbCheckbox.vue_vue_type_script_setup_true_lang.js +75 -0
  878. package/dist/validated/BbCheckboxGroup.vue.d.ts +34 -0
  879. package/dist/validated/BbCheckboxGroup.vue.js +5 -0
  880. package/dist/validated/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +76 -0
  881. package/dist/validated/BbColorInput.vue.d.ts +36 -0
  882. package/dist/validated/BbColorInput.vue.js +5 -0
  883. package/dist/validated/BbColorInput.vue_vue_type_script_setup_true_lang.js +71 -0
  884. package/dist/validated/BbDatePickerInput.vue.d.ts +40 -0
  885. package/dist/validated/BbDatePickerInput.vue.js +5 -0
  886. package/dist/validated/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +87 -0
  887. package/dist/validated/BbDropzone.vue.d.ts +24 -0
  888. package/dist/validated/BbDropzone.vue.js +5 -0
  889. package/dist/validated/BbDropzone.vue_vue_type_script_setup_true_lang.js +45 -0
  890. package/dist/validated/BbForm.vue.d.ts +28 -0
  891. package/dist/validated/BbForm.vue.js +5 -0
  892. package/dist/validated/BbForm.vue_vue_type_script_setup_true_lang.js +42 -0
  893. package/dist/validated/BbNumberInput.vue.d.ts +36 -0
  894. package/dist/validated/BbNumberInput.vue.js +5 -0
  895. package/dist/validated/BbNumberInput.vue_vue_type_script_setup_true_lang.js +72 -0
  896. package/dist/validated/BbRadioGroup.vue.d.ts +34 -0
  897. package/dist/validated/BbRadioGroup.vue.js +5 -0
  898. package/dist/validated/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +75 -0
  899. package/dist/validated/BbRating.vue.d.ts +30 -0
  900. package/dist/validated/BbRating.vue.js +5 -0
  901. package/dist/validated/BbRating.vue_vue_type_script_setup_true_lang.js +63 -0
  902. package/dist/validated/BbSelect.vue.d.ts +46 -0
  903. package/dist/validated/BbSelect.vue.js +5 -0
  904. package/dist/validated/BbSelect.vue_vue_type_script_setup_true_lang.js +100 -0
  905. package/dist/validated/BbSlider.vue.d.ts +36 -0
  906. package/dist/validated/BbSlider.vue.js +5 -0
  907. package/dist/validated/BbSlider.vue_vue_type_script_setup_true_lang.js +69 -0
  908. package/dist/validated/BbSwitch.vue.d.ts +29 -0
  909. package/dist/validated/BbSwitch.vue.js +5 -0
  910. package/dist/validated/BbSwitch.vue_vue_type_script_setup_true_lang.js +75 -0
  911. package/dist/validated/BbSwitchGroup.vue.d.ts +34 -0
  912. package/dist/validated/BbSwitchGroup.vue.js +5 -0
  913. package/dist/validated/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +76 -0
  914. package/dist/validated/BbTag.vue.d.ts +36 -0
  915. package/dist/validated/BbTag.vue.js +5 -0
  916. package/dist/validated/BbTag.vue_vue_type_script_setup_true_lang.js +72 -0
  917. package/dist/validated/BbTextInput.vue.d.ts +36 -0
  918. package/dist/validated/BbTextInput.vue.js +5 -0
  919. package/dist/validated/BbTextInput.vue_vue_type_script_setup_true_lang.js +72 -0
  920. package/dist/validated/BbTextarea.vue.d.ts +36 -0
  921. package/dist/validated/BbTextarea.vue.js +5 -0
  922. package/dist/validated/BbTextarea.vue_vue_type_script_setup_true_lang.js +70 -0
  923. package/dist/validated/BbTimePickerInput.vue.d.ts +36 -0
  924. package/dist/validated/BbTimePickerInput.vue.js +5 -0
  925. package/dist/validated/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +78 -0
  926. package/dist/validated/index.d.ts +29 -0
  927. package/dist/validated/useValidatedField.d.ts +52 -0
  928. package/dist/validated/useValidatedField.js +51 -0
  929. package/dist/validated.js +21 -0
  930. package/dist/vite-plugin.d.ts +217 -0
  931. package/dist/vite.js +530 -0
  932. package/llms.txt +105 -0
  933. package/package.json +162 -60
  934. package/scripts/lib/__fixtures__/validated-manifest.json +65 -0
  935. package/scripts/lib/ensure-manifest.mjs +39 -0
  936. package/scripts/lib/eslint-plugin-autofix.node.test.mjs +109 -0
  937. package/scripts/lib/eslint-plugin.mjs +285 -0
  938. package/scripts/lib/eslint-plugin.node.test.mjs +161 -0
  939. package/scripts/lib/html-attributes.mjs +191 -0
  940. package/scripts/lib/mcp-config.mjs +126 -0
  941. package/scripts/lib/migrate-fix.mjs +115 -0
  942. package/scripts/lib/validate-bb-markup.mjs +421 -0
  943. package/dist/ai/BaseButton.md +0 -449
  944. package/dist/ai/BaseCheckbox.md +0 -512
  945. package/dist/ai/BaseCheckboxGroup.md +0 -597
  946. package/dist/ai/BaseColorInput.md +0 -461
  947. package/dist/ai/BaseDatePicker.md +0 -739
  948. package/dist/ai/BaseDatePickerInput.md +0 -1517
  949. package/dist/ai/BaseDialog.md +0 -610
  950. package/dist/ai/BaseInputContainer.md +0 -570
  951. package/dist/ai/BaseNumberInput.md +0 -509
  952. package/dist/ai/BaseRadio.md +0 -405
  953. package/dist/ai/BaseRadioGroup.md +0 -535
  954. package/dist/ai/BaseRating.md +0 -489
  955. package/dist/ai/BaseSelect.md +0 -1742
  956. package/dist/ai/BaseSlider.md +0 -871
  957. package/dist/ai/BaseSwitch.md +0 -322
  958. package/dist/ai/BaseSwitchGroup.md +0 -298
  959. package/dist/ai/BaseTag.md +0 -623
  960. package/dist/ai/BaseTextInput.md +0 -392
  961. package/dist/ai/BaseTextarea.md +0 -398
  962. package/dist/ai/BbChip.md +0 -147
  963. package/dist/ai/BbIntersection.md +0 -120
  964. package/dist/ai/BbRatio.md +0 -61
  965. package/dist/ai/BbRows.md +0 -307
  966. package/dist/ai/BbTab.md +0 -950
  967. package/dist/ai/CommonInputInnerContainer.md +0 -414
  968. package/dist/ai/CommonInputOuterContainer.md +0 -55
  969. package/dist/components/BaseButton/BaseButton.vue.d.ts +0 -14
  970. package/dist/components/BaseButton/types.d.ts +0 -159
  971. package/dist/components/BaseCheckbox/BaseCheckbox.vue.d.ts +0 -39
  972. package/dist/components/BaseCheckbox/types.d.ts +0 -213
  973. package/dist/components/BaseCheckboxGroup/BaseCheckboxGroup.vue.d.ts +0 -30
  974. package/dist/components/BaseCheckboxGroup/types.d.ts +0 -282
  975. package/dist/components/BaseColorInput/BaseColorInput.vue.d.ts +0 -35
  976. package/dist/components/BaseColorInput/ColorPalette.vue.d.ts +0 -13
  977. package/dist/components/BaseColorInput/types.d.ts +0 -233
  978. package/dist/components/BaseDatePicker/BaseDatePickerHeader.vue.d.ts +0 -15
  979. package/dist/components/BaseDatePicker/BaseDatePickerInputDaySelector.vue.d.ts +0 -58
  980. package/dist/components/BaseDatePicker/BaseDatePickerMonthSelector.vue.d.ts +0 -12
  981. package/dist/components/BaseDatePicker/BaseDatePickerYearSelector.vue.d.ts +0 -12
  982. package/dist/components/BaseDatePicker/types.d.ts +0 -100
  983. package/dist/components/BaseDatePickerInput/BaseDatePickerInput.vue.d.ts +0 -26
  984. package/dist/components/BaseDatePickerInput/types.d.ts +0 -206
  985. package/dist/components/BaseDialog/BaseDialog.vue.d.ts +0 -37
  986. package/dist/components/BaseDialog/types.d.ts +0 -180
  987. package/dist/components/BaseInputContainer/BaseInputContainer.vue.d.ts +0 -18
  988. package/dist/components/BaseInputContainer/types.d.ts +0 -126
  989. package/dist/components/BaseNumberInput/BaseNumberInput.vue.d.ts +0 -46
  990. package/dist/components/BaseNumberInput/types.d.ts +0 -191
  991. package/dist/components/BaseRadio/BaseRadio.vue.d.ts +0 -31
  992. package/dist/components/BaseRadio/types.d.ts +0 -173
  993. package/dist/components/BaseRadioGroup/BaseRadioGroup.vue.d.ts +0 -30
  994. package/dist/components/BaseRadioGroup/types.d.ts +0 -240
  995. package/dist/components/BaseRating/BaseRating.vue.d.ts +0 -35
  996. package/dist/components/BaseRating/types.d.ts +0 -144
  997. package/dist/components/BaseSelect/BaseSelect.vue.d.ts +0 -28
  998. package/dist/components/BaseSelect/types.d.ts +0 -470
  999. package/dist/components/BaseSlider/BaseSlider.vue.d.ts +0 -38
  1000. package/dist/components/BaseSlider/types.d.ts +0 -201
  1001. package/dist/components/BaseSwitch/BaseSwitch.vue.d.ts +0 -34
  1002. package/dist/components/BaseSwitch/types.d.ts +0 -25
  1003. package/dist/components/BaseSwitchGroup/BaseSwitchGroup.vue.d.ts +0 -30
  1004. package/dist/components/BaseSwitchGroup/types.d.ts +0 -8
  1005. package/dist/components/BaseTag/BaseTag.vue.d.ts +0 -37
  1006. package/dist/components/BaseTag/types.d.ts +0 -136
  1007. package/dist/components/BaseTextInput/BaseTextInput.vue.d.ts +0 -33
  1008. package/dist/components/BaseTextInput/types.d.ts +0 -166
  1009. package/dist/components/BaseTextarea/BaseTextarea.vue.d.ts +0 -31
  1010. package/dist/components/BaseTextarea/types.d.ts +0 -151
  1011. package/dist/components/BbChip/BbChip.vue.d.ts +0 -17
  1012. package/dist/components/BbChip/types.d.ts +0 -23
  1013. package/dist/components/BbIntersection/BbIntersection.vue.d.ts +0 -23
  1014. package/dist/components/BbIntersection/types.d.ts +0 -36
  1015. package/dist/components/BbRatio/BbRatio.vue.d.ts +0 -14
  1016. package/dist/components/BbRatio/types.d.ts +0 -15
  1017. package/dist/components/BbRows/BbRows.vue.d.ts +0 -62
  1018. package/dist/components/BbRows/types.d.ts +0 -21
  1019. package/dist/components/BbTab/BbTab.vue.d.ts +0 -27
  1020. package/dist/components/BbTab/types.d.ts +0 -186
  1021. package/dist/components/CommonInputInnerContainer/CommonInputInnerContainer.vue.d.ts +0 -15
  1022. package/dist/components/CommonInputInnerContainer/types.d.ts +0 -47
  1023. package/dist/components/CommonInputOuterContainer/CommonInputOuterContainer.vue.d.ts +0 -11
  1024. package/dist/components/CommonInputOuterContainer/types.d.ts +0 -16
  1025. package/dist/composables/useModalsState.d.ts +0 -5
  1026. package/dist/composables/useQueue.d.ts +0 -58
  1027. package/dist/composables/useWizard.d.ts +0 -85
  1028. package/dist/i18n/en.d.ts +0 -67
  1029. package/dist/i18n/it.d.ts +0 -67
  1030. package/dist/index.css +0 -2
  1031. package/dist/index100.js +0 -6
  1032. package/dist/index101.js +0 -300
  1033. package/dist/index102.js +0 -16
  1034. package/dist/index103.js +0 -16
  1035. package/dist/index104.js +0 -27
  1036. package/dist/index109.js +0 -19
  1037. package/dist/index11.js +0 -42
  1038. package/dist/index110.js +0 -12
  1039. package/dist/index111.js +0 -19
  1040. package/dist/index112.js +0 -25
  1041. package/dist/index114.js +0 -7
  1042. package/dist/index115.js +0 -241
  1043. package/dist/index116.js +0 -5
  1044. package/dist/index117.js +0 -42
  1045. package/dist/index118.js +0 -5
  1046. package/dist/index119.js +0 -53
  1047. package/dist/index120.js +0 -5
  1048. package/dist/index121.js +0 -32
  1049. package/dist/index122.js +0 -5
  1050. package/dist/index124.js +0 -52
  1051. package/dist/index125.js +0 -5
  1052. package/dist/index126.js +0 -223
  1053. package/dist/index128.js +0 -6
  1054. package/dist/index129.js +0 -162
  1055. package/dist/index13.js +0 -92
  1056. package/dist/index130.js +0 -25
  1057. package/dist/index131.js +0 -51
  1058. package/dist/index132.js +0 -5
  1059. package/dist/index133.js +0 -607
  1060. package/dist/index135.js +0 -6
  1061. package/dist/index136.js +0 -14
  1062. package/dist/index137.js +0 -153
  1063. package/dist/index139.js +0 -6
  1064. package/dist/index14.js +0 -306
  1065. package/dist/index140.js +0 -224
  1066. package/dist/index141.js +0 -5
  1067. package/dist/index143.js +0 -128
  1068. package/dist/index145.js +0 -6
  1069. package/dist/index146.js +0 -8
  1070. package/dist/index147.js +0 -182
  1071. package/dist/index149.js +0 -6
  1072. package/dist/index15.js +0 -10
  1073. package/dist/index151.js +0 -4
  1074. package/dist/index152.js +0 -95
  1075. package/dist/index154.js +0 -6
  1076. package/dist/index155.js +0 -168
  1077. package/dist/index157.js +0 -6
  1078. package/dist/index158.js +0 -145
  1079. package/dist/index16.js +0 -59
  1080. package/dist/index160.js +0 -6
  1081. package/dist/index161.js +0 -53
  1082. package/dist/index163.js +0 -6
  1083. package/dist/index164.js +0 -16
  1084. package/dist/index166.js +0 -35
  1085. package/dist/index168.js +0 -6
  1086. package/dist/index169.js +0 -89
  1087. package/dist/index171.js +0 -6
  1088. package/dist/index172.js +0 -82
  1089. package/dist/index174.js +0 -6
  1090. package/dist/index175.js +0 -38
  1091. package/dist/index176.js +0 -461
  1092. package/dist/index177.js +0 -28
  1093. package/dist/index178.js +0 -66
  1094. package/dist/index18.js +0 -35
  1095. package/dist/index180.js +0 -162
  1096. package/dist/index181.js +0 -5
  1097. package/dist/index182.js +0 -217
  1098. package/dist/index183.js +0 -5
  1099. package/dist/index184.js +0 -112
  1100. package/dist/index185.js +0 -5
  1101. package/dist/index186.js +0 -459
  1102. package/dist/index188.js +0 -6
  1103. package/dist/index19.js +0 -4
  1104. package/dist/index192.js +0 -268
  1105. package/dist/index194.js +0 -6
  1106. package/dist/index195.js +0 -124
  1107. package/dist/index197.js +0 -6
  1108. package/dist/index198.js +0 -174
  1109. package/dist/index2.js +0 -20
  1110. package/dist/index20.js +0 -9
  1111. package/dist/index200.js +0 -6
  1112. package/dist/index201.js +0 -224
  1113. package/dist/index203.js +0 -6
  1114. package/dist/index204.js +0 -135
  1115. package/dist/index206.js +0 -6
  1116. package/dist/index207.js +0 -5
  1117. package/dist/index208.js +0 -170
  1118. package/dist/index21.js +0 -35
  1119. package/dist/index210.js +0 -6
  1120. package/dist/index211.js +0 -37
  1121. package/dist/index213.js +0 -6
  1122. package/dist/index214.js +0 -63
  1123. package/dist/index216.js +0 -6
  1124. package/dist/index217.js +0 -74
  1125. package/dist/index219.js +0 -6
  1126. package/dist/index22.js +0 -6
  1127. package/dist/index220.js +0 -65
  1128. package/dist/index222.js +0 -6
  1129. package/dist/index223.js +0 -67
  1130. package/dist/index225.js +0 -6
  1131. package/dist/index226.js +0 -41
  1132. package/dist/index228.js +0 -6
  1133. package/dist/index229.js +0 -10
  1134. package/dist/index23.js +0 -7
  1135. package/dist/index230.js +0 -22
  1136. package/dist/index232.js +0 -8
  1137. package/dist/index233.js +0 -297
  1138. package/dist/index235.js +0 -6
  1139. package/dist/index236.js +0 -47
  1140. package/dist/index237.js +0 -165
  1141. package/dist/index239.js +0 -6
  1142. package/dist/index24.js +0 -9
  1143. package/dist/index241.js +0 -159
  1144. package/dist/index243.js +0 -6
  1145. package/dist/index244.js +0 -134
  1146. package/dist/index246.js +0 -6
  1147. package/dist/index247.js +0 -167
  1148. package/dist/index249.js +0 -6
  1149. package/dist/index25.js +0 -24
  1150. package/dist/index250.js +0 -147
  1151. package/dist/index252.js +0 -6
  1152. package/dist/index253.js +0 -35
  1153. package/dist/index255.js +0 -6
  1154. package/dist/index256.js +0 -65
  1155. package/dist/index258.js +0 -6
  1156. package/dist/index259.js +0 -19
  1157. package/dist/index260.js +0 -5
  1158. package/dist/index261.js +0 -160
  1159. package/dist/index263.js +0 -6
  1160. package/dist/index264.js +0 -60
  1161. package/dist/index266.js +0 -6
  1162. package/dist/index267.js +0 -134
  1163. package/dist/index269.js +0 -6
  1164. package/dist/index27.js +0 -4
  1165. package/dist/index271.js +0 -206
  1166. package/dist/index273.js +0 -6
  1167. package/dist/index274.js +0 -85
  1168. package/dist/index275.js +0 -5
  1169. package/dist/index276.js +0 -55
  1170. package/dist/index277.js +0 -5
  1171. package/dist/index278.js +0 -164
  1172. package/dist/index28.js +0 -8
  1173. package/dist/index280.js +0 -6
  1174. package/dist/index281.js +0 -145
  1175. package/dist/index283.js +0 -6
  1176. package/dist/index284.js +0 -11
  1177. package/dist/index285.js +0 -200
  1178. package/dist/index287.js +0 -6
  1179. package/dist/index288.js +0 -241
  1180. package/dist/index29.js +0 -7
  1181. package/dist/index290.js +0 -6
  1182. package/dist/index291.js +0 -21
  1183. package/dist/index293.js +0 -6
  1184. package/dist/index294.js +0 -125
  1185. package/dist/index296.js +0 -6
  1186. package/dist/index297.js +0 -161
  1187. package/dist/index299.js +0 -6
  1188. package/dist/index30.js +0 -118
  1189. package/dist/index300.js +0 -127
  1190. package/dist/index302.js +0 -6
  1191. package/dist/index303.js +0 -20
  1192. package/dist/index305.js +0 -6
  1193. package/dist/index306.js +0 -116
  1194. package/dist/index307.js +0 -5
  1195. package/dist/index308.js +0 -507
  1196. package/dist/index31.js +0 -10
  1197. package/dist/index310.js +0 -6
  1198. package/dist/index311.js +0 -196
  1199. package/dist/index313.js +0 -6
  1200. package/dist/index314.js +0 -142
  1201. package/dist/index316.js +0 -6
  1202. package/dist/index317.js +0 -134
  1203. package/dist/index319.js +0 -6
  1204. package/dist/index32.js +0 -28
  1205. package/dist/index320.js +0 -162
  1206. package/dist/index322.js +0 -6
  1207. package/dist/index323.js +0 -319
  1208. package/dist/index325.js +0 -6
  1209. package/dist/index326.js +0 -40
  1210. package/dist/index327.js +0 -43
  1211. package/dist/index328.js +0 -665
  1212. package/dist/index33.js +0 -5
  1213. package/dist/index330.js +0 -6
  1214. package/dist/index331.js +0 -155
  1215. package/dist/index333.js +0 -6
  1216. package/dist/index334.js +0 -142
  1217. package/dist/index336.js +0 -6
  1218. package/dist/index337.js +0 -155
  1219. package/dist/index339.js +0 -6
  1220. package/dist/index34.js +0 -112
  1221. package/dist/index340.js +0 -58
  1222. package/dist/index341.js +0 -5
  1223. package/dist/index342.js +0 -20
  1224. package/dist/index344.js +0 -6
  1225. package/dist/index345.js +0 -142
  1226. package/dist/index347.js +0 -6
  1227. package/dist/index349.js +0 -109
  1228. package/dist/index351.js +0 -6
  1229. package/dist/index353.js +0 -24
  1230. package/dist/index354.js +0 -23
  1231. package/dist/index355.js +0 -839
  1232. package/dist/index356.js +0 -474
  1233. package/dist/index357.js +0 -52
  1234. package/dist/index358.js +0 -7
  1235. package/dist/index36.js +0 -6
  1236. package/dist/index38.js +0 -63
  1237. package/dist/index39.js +0 -63
  1238. package/dist/index40.js +0 -9
  1239. package/dist/index42.js +0 -8
  1240. package/dist/index43.js +0 -179
  1241. package/dist/index44.js +0 -21
  1242. package/dist/index46.js +0 -385
  1243. package/dist/index48.js +0 -6
  1244. package/dist/index49.js +0 -33
  1245. package/dist/index5.js +0 -34
  1246. package/dist/index50.js +0 -12
  1247. package/dist/index51.js +0 -8
  1248. package/dist/index52.js +0 -106
  1249. package/dist/index53.js +0 -330
  1250. package/dist/index54.js +0 -97
  1251. package/dist/index55.js +0 -328
  1252. package/dist/index56.js +0 -28
  1253. package/dist/index57.js +0 -102
  1254. package/dist/index58.js +0 -157
  1255. package/dist/index6.js +0 -38
  1256. package/dist/index60.js +0 -6
  1257. package/dist/index61.js +0 -131
  1258. package/dist/index62.js +0 -5
  1259. package/dist/index65.js +0 -35
  1260. package/dist/index66.js +0 -26
  1261. package/dist/index68.js +0 -6
  1262. package/dist/index69.js +0 -54
  1263. package/dist/index7.js +0 -58
  1264. package/dist/index71.js +0 -6
  1265. package/dist/index72.js +0 -14
  1266. package/dist/index74.js +0 -6
  1267. package/dist/index75.js +0 -159
  1268. package/dist/index77.js +0 -6
  1269. package/dist/index78.js +0 -4
  1270. package/dist/index79.js +0 -4
  1271. package/dist/index80.js +0 -54
  1272. package/dist/index81.js +0 -5
  1273. package/dist/index82.js +0 -5
  1274. package/dist/index83.js +0 -141
  1275. package/dist/index85.js +0 -6
  1276. package/dist/index86.js +0 -65
  1277. package/dist/index88.js +0 -6
  1278. package/dist/index89.js +0 -30
  1279. package/dist/index9.js +0 -11
  1280. package/dist/index90.js +0 -19
  1281. package/dist/index91.js +0 -17
  1282. package/dist/index92.js +0 -9
  1283. package/dist/index93.js +0 -34
  1284. package/dist/index95.js +0 -16
  1285. package/dist/index96.js +0 -10
  1286. package/dist/index97.js +0 -18
  1287. package/dist/index98.js +0 -189
  1288. package/dist/types/VoidHtmlElements.d.ts +0 -1
  1289. package/dist/utilities/functions/add.d.ts +0 -1
  1290. package/dist/utilities/functions/booleanishToBoolean.d.ts +0 -6
  1291. package/dist/utilities/functions/capitalize.d.ts +0 -4
  1292. package/dist/utilities/functions/cloneDeep.d.ts +0 -1
  1293. package/dist/utilities/functions/debounce.d.ts +0 -1
  1294. package/dist/utilities/functions/drop.d.ts +0 -1
  1295. package/dist/utilities/functions/exceedsPrecision.d.ts +0 -1
  1296. package/dist/utilities/functions/findRight.d.ts +0 -4
  1297. package/dist/utilities/functions/findRightIndex.d.ts +0 -4
  1298. package/dist/utilities/functions/flow.d.ts +0 -1
  1299. package/dist/utilities/functions/getHueFromRGB.d.ts +0 -9
  1300. package/dist/utilities/functions/groupBy.d.ts +0 -6
  1301. package/dist/utilities/functions/gt.d.ts +0 -7
  1302. package/dist/utilities/functions/hexToRGB.d.ts +0 -7
  1303. package/dist/utilities/functions/hslToHex.d.ts +0 -1
  1304. package/dist/utilities/functions/includes.d.ts +0 -1
  1305. package/dist/utilities/functions/initial.d.ts +0 -1
  1306. package/dist/utilities/functions/isCssColor.d.ts +0 -5
  1307. package/dist/utilities/functions/lt.d.ts +0 -7
  1308. package/dist/utilities/functions/makeUrl.d.ts +0 -1
  1309. package/dist/utilities/functions/mapKeys.d.ts +0 -5
  1310. package/dist/utilities/functions/mapValues.d.ts +0 -1
  1311. package/dist/utilities/functions/matchesPropertyInsensitive.d.ts +0 -1
  1312. package/dist/utilities/functions/max.d.ts +0 -2
  1313. package/dist/utilities/functions/mean.d.ts +0 -4
  1314. package/dist/utilities/functions/merge.d.ts +0 -11
  1315. package/dist/utilities/functions/millisecondsTo.d.ts +0 -1
  1316. package/dist/utilities/functions/negate.d.ts +0 -4
  1317. package/dist/utilities/functions/normalizeItemGroups.d.ts +0 -13
  1318. package/dist/utilities/functions/omit.d.ts +0 -2
  1319. package/dist/utilities/functions/overEvery.d.ts +0 -4
  1320. package/dist/utilities/functions/pick.d.ts +0 -1
  1321. package/dist/utilities/functions/replace.d.ts +0 -1
  1322. package/dist/utilities/functions/replaceInTree.d.ts +0 -4
  1323. package/dist/utilities/functions/retry.d.ts +0 -5
  1324. package/dist/utilities/functions/roundToTheNearest.d.ts +0 -8
  1325. package/dist/utilities/functions/set.d.ts +0 -15
  1326. package/dist/utilities/functions/stub.d.ts +0 -6
  1327. package/dist/utilities/functions/transposePercent.d.ts +0 -9
  1328. package/dist/utilities/functions/tryTo.d.ts +0 -2
  1329. package/dist/utilities/functions/uniqBy.d.ts +0 -1
  1330. /package/dist/{index64.js → _virtual/_plugin-vue_export-helper.js} +0 -0
  1331. /package/dist/components/{BaseButton → BbBaseButton}/RouterComponent.vue.d.ts +0 -0
  1332. /package/dist/components/{BaseDatePicker/BaseDatePicker.vue.d.ts → BbBaseDatePicker/BbBaseDatePicker.vue.d.ts} +0 -0
  1333. /package/dist/{index165.js → composables/useArray.js} +0 -0
  1334. /package/dist/{index17.js → composables/useFrameworkDetection.js} +0 -0
  1335. /package/dist/{index12.js → composables/useId.js} +0 -0
  1336. /package/dist/{index352.js → directives/createPopoverDirective.js} +0 -0
  1337. /package/dist/{index107.js → utilities/functions/chunk.js} +0 -0
  1338. /package/dist/{index8.js → utilities/functions/clamp.js} +0 -0
  1339. /package/dist/{index150.js → utilities/functions/curry.js} +0 -0
  1340. /package/dist/{index45.js → utilities/functions/extractDomContainer.js} +0 -0
  1341. /package/dist/{index270.js → utilities/functions/findInTree.js} +0 -0
  1342. /package/dist/{index348.js → utilities/functions/flattenTree.js} +0 -0
  1343. /package/dist/{index41.js → utilities/functions/get.js} +0 -0
  1344. /package/dist/{index189.js → utilities/functions/head.js} +0 -0
  1345. /package/dist/{index108.js → utilities/functions/identity.js} +0 -0
  1346. /package/dist/{index179.js → utilities/functions/indexBy.js} +0 -0
  1347. /package/dist/{index37.js → utilities/functions/isHex.js} +0 -0
  1348. /package/dist/{index94.js → utilities/functions/isNil.js} +0 -0
  1349. /package/dist/{index26.js → utilities/functions/isNotNil.js} +0 -0
  1350. /package/dist/{index105.js → utilities/functions/last.js} +0 -0
  1351. /package/dist/{index142.js → utilities/functions/noop.js} +0 -0
  1352. /package/dist/{index231.js → utilities/functions/parseWidthString.js} +0 -0
  1353. /package/dist/{index240.js → utilities/functions/pickBy.js} +0 -0
  1354. /package/dist/{index123.js → utilities/functions/range.js} +0 -0
  1355. /package/dist/{index190.js → utilities/functions/snapToStep.js} +0 -0
  1356. /package/dist/{index191.js → utilities/functions/transpose.js} +0 -0
  1357. /package/dist/{index106.js → utilities/functions/validateDateFormat.js} +0 -0
  1358. /package/dist/{index10.js → utilities/functions/wait.js} +0 -0
@@ -0,0 +1,1113 @@
1
+ # BbTabs
2
+
3
+ ## Agent Contract
4
+
5
+ - Safety level: **Consumer API**
6
+ - Group: **Navigation**
7
+ - Description: Switches between tabbed content views (shadcn-like strip; BbTabRoot enables split layouts).
8
+ - Usage rule: Prefer this component for consumer-facing implementations.
9
+ - Implementation source (only when the contract below is not enough): [source/BbTabs.md](./source/BbTabs.md)
10
+
11
+ ## Usage & Guidelines
12
+
13
+ ### When to use
14
+
15
+ Reach for `BbTabs` to divide _one_ screen into peer sections the user flips
16
+ between without leaving the page — a profile's Overview / Activity / Settings, a
17
+ record's detail / history / comments. Every tab is a sibling view of the same
18
+ subject.
19
+
20
+ Do not use tabs for steps in a flow (that is a wizard), for hierarchy (that is
21
+ `BbBreadcrumbs`), or for genuinely separate destinations that deserve their own
22
+ URL and page. `BbTabs` switches peer sections of one subject; `BbBreadcrumbs`
23
+ answers "where am I and how do I get back up"; `BbPagination` steps through a
24
+ paged result set. Keep the strip short and the labels to a word or two; a strip
25
+ that overflows scrolls, but a dozen tabs usually means the page should be split.
26
+
27
+ The library ships the tabs family in two shapes with one shared API and one
28
+ shared context:
29
+
30
+ - **`BbTabs`** — batteries-included: the trigger strip immediately followed by
31
+ its panes. Reach for it by default.
32
+ - **`BbTabsRoot` + `BbTabsList` + `BbTabsPanes`** — the same state, split so you
33
+ can place arbitrary markup between the strip and the panes. Reach for it only
34
+ when the layout demands it.
35
+
36
+ ### Tabs with a pane per key
37
+
38
+ Pass `items` (`{ key, label }`), bind the active key with `v-model`, and provide
39
+ one slot named for each item `key` — that is the pane. With no `v-model` the
40
+ first enabled tab is selected for you (a `modelValue` of `null` behaves the same
41
+ way). `BbTabs` is the batteries-included form: the trigger strip and its panes
42
+ in one component.
43
+
44
+ **A tab strip and its panes**
45
+
46
+ ```vue
47
+ <template>
48
+ <div
49
+ class="max-w-md rounded-[var(--bb-radius)] border border-[color:var(--bb-border)] p-3"
50
+ >
51
+ <div class="mb-3 flex flex-col gap-0.5">
52
+ <p class="text-sm font-medium">Acme Checkout</p>
53
+ <p class="text-xs text-gray-500">Project · last deploy 14m ago</p>
54
+ </div>
55
+ <BbTabs v-model="active" compact :items="tabs">
56
+ <template #overview>
57
+ <div class="grid gap-1.5 pt-3 text-sm">
58
+ <p class="font-medium">Health: stable</p>
59
+ <p class="text-xs text-gray-500">
60
+ Error rate 0.12% · p95 180ms · 3 open incidents
61
+ </p>
62
+ </div>
63
+ </template>
64
+ <template #activity>
65
+ <ul class="divide-y divide-[color:var(--bb-border)] pt-3">
66
+ <li
67
+ v-for="event in activity"
68
+ :key="event.id"
69
+ class="flex flex-col gap-0.5 py-2"
70
+ >
71
+ <p class="text-sm">{{ event.text }}</p>
72
+ <p class="text-xs text-gray-500">{{ event.when }}</p>
73
+ </li>
74
+ </ul>
75
+ </template>
76
+ <template #members>
77
+ <ul class="divide-y divide-[color:var(--bb-border)] pt-3">
78
+ <li
79
+ v-for="member in members"
80
+ :key="member.email"
81
+ class="flex items-center justify-between gap-2 py-2 text-sm"
82
+ >
83
+ <span class="truncate">{{ member.name }}</span>
84
+ <span class="shrink-0 text-xs text-gray-500">{{
85
+ member.role
86
+ }}</span>
87
+ </li>
88
+ </ul>
89
+ </template>
90
+ </BbTabs>
91
+ </div>
92
+ </template>
93
+ <script setup lang="ts">
94
+ import { ref } from 'vue';
95
+ import { BbTabs } from 'bitboss-ui';
96
+ import type { BbTabsItem } from 'bitboss-ui';
97
+
98
+ // `v-model` binds the active tab to a plain key ref. Seed it with a starting
99
+ // key; drop the binding entirely and BbTabs selects the first enabled tab.
100
+ type Section = 'overview' | 'activity' | 'members';
101
+
102
+ const tabs: Array<BbTabsItem<Section>> = [
103
+ { key: 'overview', label: 'Overview' },
104
+ { key: 'activity', label: 'Activity' },
105
+ { key: 'members', label: 'Members' },
106
+ ];
107
+
108
+ const active = ref<Section>('overview');
109
+
110
+ const activity = [
111
+ { id: '1', text: 'Sam Chen merged billing retries', when: '12m ago' },
112
+ { id: '2', text: 'Alex Rivera rotated the Stripe key', when: '1h ago' },
113
+ { id: '3', text: 'Deploy v2.14.0 succeeded', when: 'Yesterday' },
114
+ ];
115
+
116
+ const members = [
117
+ { name: 'Alex Rivera', email: 'alex@acme.co', role: 'Owner' },
118
+ { name: 'Sam Chen', email: 'sam@acme.co', role: 'Editor' },
119
+ { name: 'Jordan Lee', email: 'jordan@acme.co', role: 'Viewer' },
120
+ ];
121
+ </script>
122
+ ```
123
+
124
+ `v-model` is the whole event surface: the component emits `update:modelValue`
125
+ with the new key whenever the selection changes — from a click, a keyboard move,
126
+ URL navigation, or the companion composable — and it emits once on mount when a
127
+ URL query or the first-enabled fallback resolves a key the parent didn't set, so
128
+ your binding starts aligned. You rarely listen to the event directly; bind
129
+ `v-model` and read it. When `items` is generated, drive the panes with a
130
+ dynamic-name slot instead of writing one block per key:
131
+
132
+ **Dynamic pane slots from generated items**
133
+
134
+ ```vue
135
+ <div
136
+ class="max-w-md rounded-[var(--bb-radius)] border border-[color:var(--bb-border)] p-3"
137
+ >
138
+ <BbTabs
139
+ compact
140
+ :items="[
141
+ { key: 'draft', label: 'Draft' },
142
+ { key: 'in-review', label: 'In review' },
143
+ { key: 'published', label: 'Published' },
144
+ ]"
145
+ >
146
+ <template
147
+ v-for="stage in ['draft', 'in-review', 'published']"
148
+ :key="stage"
149
+ #[stage]
150
+ >
151
+ <p class="pt-3 text-sm capitalize text-gray-600">{{ stage }} documents.</p>
152
+ </template>
153
+ </BbTabs>
154
+ </div>
155
+ ```
156
+
157
+ ### Rich labels and badges
158
+
159
+ Replace a tab's plain text with the `label:{key}` slot (one specific tab) or the
160
+ `label` slot (the fallback for every tab). Both receive the tab's state — `text`
161
+ (the item's `label`), `value` (its `key`), `selected`, `disabled`, plus the
162
+ group's `current` / `currentIndex` / `isFirst` / `isLast` and a `goTo` callback —
163
+ so a label can carry a count pill, an icon, or a status dot. Keep the whole
164
+ trigger the interactive target; put only presentation in the slot (do not nest a
165
+ button or link inside a label — the trigger is already the control).
166
+
167
+ **Unread count on the Inbox tab**
168
+
169
+ ```vue
170
+ <template>
171
+ <div
172
+ class="max-w-md rounded-[var(--bb-radius)] border border-[color:var(--bb-border)] p-3"
173
+ >
174
+ <BbTabs v-model="active" compact :items="tabs">
175
+ <template #label:inbox="{ text }">
176
+ <span class="inline-flex items-center gap-1.5">
177
+ {{ text }}
178
+ <BbBadge size="sm" variant="soft-blue">{{ unread }}</BbBadge>
179
+ </span>
180
+ </template>
181
+ <template #inbox>
182
+ <ul class="divide-y divide-[color:var(--bb-border)] pt-3">
183
+ <li
184
+ v-for="thread in inbox"
185
+ :key="thread.id"
186
+ class="flex flex-col gap-0.5 py-2"
187
+ >
188
+ <p class="text-sm font-medium">{{ thread.subject }}</p>
189
+ <p class="text-xs text-gray-500">
190
+ {{ thread.from }} · {{ thread.when }}
191
+ </p>
192
+ </li>
193
+ </ul>
194
+ </template>
195
+ <template #sent>
196
+ <p class="pt-3 text-sm text-gray-500">12 messages sent this week.</p>
197
+ </template>
198
+ <template #spam>
199
+ <p class="pt-3 text-sm text-gray-500">
200
+ 3 filtered messages · last scan 2h ago.
201
+ </p>
202
+ </template>
203
+ </BbTabs>
204
+ </div>
205
+ </template>
206
+ <script setup lang="ts">
207
+ import { ref } from 'vue';
208
+ import { BbBadge, BbTabs } from 'bitboss-ui';
209
+ import type { BbTabsItem } from 'bitboss-ui';
210
+
211
+ // Count pills ride in `label:{key}` — presentation only; the trigger stays the
212
+ // control. Soft badge palette from design-language.md § Using color.
213
+ type Folder = 'inbox' | 'sent' | 'spam';
214
+
215
+ const tabs: Array<BbTabsItem<Folder>> = [
216
+ { key: 'inbox', label: 'Inbox' },
217
+ { key: 'sent', label: 'Sent' },
218
+ { key: 'spam', label: 'Spam' },
219
+ ];
220
+
221
+ const active = ref<Folder>('inbox');
222
+ const unread = 12;
223
+ const inbox = [
224
+ {
225
+ id: '1',
226
+ subject: 'Invoice INV-1042 overdue',
227
+ from: 'billing@acme.co',
228
+ when: '10:14',
229
+ },
230
+ {
231
+ id: '2',
232
+ subject: 'Seat upgrade confirmed',
233
+ from: 'hello@bitboss.io',
234
+ when: 'Yesterday',
235
+ },
236
+ {
237
+ id: '3',
238
+ subject: 'Weekly product digest',
239
+ from: 'product@northwind.io',
240
+ when: 'Mon',
241
+ },
242
+ ];
243
+ </script>
244
+
245
+ <!-- Non-scoped on purpose: styles the child badge's soft variant (scoped CSS
246
+ can't reach it without :deep). Canonical palette:
247
+ ai/guides/design-language.md § Using color. -->
248
+ <style>
249
+ .bb-badge.bb-badge--soft-blue {
250
+ --accent: #2563eb;
251
+ --bg: color-mix(in oklab, var(--accent) 15%, var(--bb-panel));
252
+ --color: color-mix(in oklab, var(--accent) 80%, var(--bb-text));
253
+ --border-width: 1px;
254
+ --border-color: color-mix(in oklab, var(--accent) 25%, var(--bb-panel));
255
+ --ring: color-mix(in oklab, var(--accent) 45%, transparent);
256
+ }
257
+ </style>
258
+ ```
259
+
260
+ Use `label:{key}` when only some tabs need decoration and `label` when every tab
261
+ follows one template (an icon + count for all). A badge that changes size after
262
+ mount — a count ticking up — is fine: the strip re-measures the sliding pill and
263
+ equal-width fit when label content resizes, so the layout keeps up on its own.
264
+
265
+ ### Lazy by default, eager when state must persist
266
+
267
+ By default a pane's slot content mounts only when its tab first becomes active
268
+ and stays mounted thereafter — cheap panes, no wasted renders. Set `eager` to
269
+ render an inactive pane's content into the DOM anyway. Two reasons to reach for
270
+ it:
271
+
272
+ - **In-pane state that must survive switches** — a half-filled form, a scroll
273
+ position, a loaded chart. Lazy panes unmount on the first switch away only if
274
+ never activated; eager guarantees the node exists from the start, so nothing
275
+ is lost.
276
+ - **SEO / SSR** — content in inactive panes is in the server-rendered HTML.
277
+
278
+ `eager` works at two granularities: on the component (every pane eager) or on a
279
+ single `items` entry (`{ key, label, eager: true }`) when only one pane is
280
+ expensive to lose. The example keeps a draft message alive while the user checks
281
+ the Audience and Schedule tabs:
282
+
283
+ **Eager panes keep an in-pane draft alive**
284
+
285
+ ```vue
286
+ <template>
287
+ <div
288
+ class="max-w-md rounded-[var(--bb-radius)] border border-[color:var(--bb-border)] p-3"
289
+ >
290
+ <div class="mb-3 flex flex-col gap-0.5">
291
+ <p class="text-sm font-medium">Product announcement</p>
292
+ <p class="text-xs text-gray-500">Draft · scheduled for Tue 09:00 local</p>
293
+ </div>
294
+ <BbTabs v-model="active" compact eager :items="tabs">
295
+ <template #message>
296
+ <div class="grid gap-3 pt-3">
297
+ <BbTextInput
298
+ v-model="draft.subject"
299
+ compact
300
+ label="Subject"
301
+ name="subject"
302
+ placeholder="Your weekly product update"
303
+ prepend:icon="lucide:megaphone"
304
+ />
305
+ <BbTextInput
306
+ v-model="draft.preview"
307
+ compact
308
+ label="Preview text"
309
+ name="preview"
310
+ placeholder="One line shown in the inbox"
311
+ />
312
+ </div>
313
+ </template>
314
+ <template #audience>
315
+ <p class="pt-3 text-sm text-gray-600 dark:text-gray-300">
316
+ Sending to
317
+ <span class="font-medium tabular-nums">{{
318
+ recipients.toLocaleString()
319
+ }}</span>
320
+ subscribers in the Product Announcements segment.
321
+ </p>
322
+ </template>
323
+ <template #schedule>
324
+ <p class="pt-3 text-sm text-gray-600 dark:text-gray-300">
325
+ Queued for Tuesday 09:00 in each recipient's local timezone.
326
+ </p>
327
+ </template>
328
+ </BbTabs>
329
+ </div>
330
+ </template>
331
+ <script setup lang="ts">
332
+ import { reactive, ref } from 'vue';
333
+ import { BbTabs, BbTextInput } from 'bitboss-ui';
334
+ import type { BbTabsItem } from 'bitboss-ui';
335
+
336
+ // `eager` renders every pane into the DOM up front. The Message form below is
337
+ // never unmounted when you switch to Audience or Schedule, so a half-typed
338
+ // draft survives the round trip — no manual state hoisting needed.
339
+ type Section = 'message' | 'audience' | 'schedule';
340
+
341
+ const tabs: Array<BbTabsItem<Section>> = [
342
+ { key: 'message', label: 'Message' },
343
+ { key: 'audience', label: 'Audience' },
344
+ { key: 'schedule', label: 'Schedule' },
345
+ ];
346
+
347
+ const active = ref<Section>('message');
348
+ const recipients = 8420;
349
+ const draft = reactive({
350
+ subject: 'Weekly product update',
351
+ preview: 'Billing retries shipped · seat limits raised',
352
+ });
353
+ </script>
354
+ ```
355
+
356
+ ### Pane transitions
357
+
358
+ Switching tabs animates by default: panes slide horizontally in the direction of
359
+ travel (left when moving to an earlier tab, right for a later one — derived from
360
+ the index delta) and the container smooth-heights between differing pane sizes.
361
+ Opt out per axis with `disable-animate-x` (no horizontal slide) and
362
+ `disable-animate-y` (no height animation). Disable the height animation when a
363
+ pane hosts its own transitions or virtualized content that fights the
364
+ measurement, and disable both for instant, motion-free switching. The classic
365
+ case for "disable both" is a Code / Preview toggle on a docs or comment
366
+ composer — flipping modes should feel like a switch, not a slide. Note the draft lives in
367
+ the component's script, not inside the pane, so the default lazy panes lose
368
+ nothing when you flip back:
369
+
370
+ **Instant Code / Preview toggle**
371
+
372
+ ```vue
373
+ <template>
374
+ <div
375
+ class="max-w-md rounded-[var(--bb-radius)] border border-[color:var(--bb-border)] p-3"
376
+ >
377
+ <div class="mb-3 flex flex-col gap-0.5">
378
+ <p class="text-sm font-medium">Release notes</p>
379
+ <p class="text-xs text-gray-500">
380
+ Markdown draft · preview before publishing.
381
+ </p>
382
+ </div>
383
+ <!-- Mode switch, not a carousel: disable both animation axes. Draft lives
384
+ in script so lazy panes lose nothing when flipping back. -->
385
+ <BbTabs compact disable-animate-x disable-animate-y :items="tabs">
386
+ <template #code>
387
+ <div class="pt-3">
388
+ <BbTextarea
389
+ v-model="draft"
390
+ auto-grow
391
+ compact
392
+ hide-label
393
+ label="Markdown"
394
+ placeholder="## Heading"
395
+ :rows="5"
396
+ />
397
+ </div>
398
+ </template>
399
+ <template #preview>
400
+ <div class="grid gap-1.5 whitespace-pre-line pt-3 text-sm">
401
+ <template v-if="draft.trim()">
402
+ <p class="font-medium">{{ previewTitle }}</p>
403
+ <p class="text-gray-600 dark:text-gray-300">{{ previewBody }}</p>
404
+ </template>
405
+ <p v-else class="text-gray-500">Nothing to preview.</p>
406
+ </div>
407
+ </template>
408
+ </BbTabs>
409
+ </div>
410
+ </template>
411
+ <script setup lang="ts">
412
+ import { computed, ref } from 'vue';
413
+ import { BbTabs, BbTextarea } from 'bitboss-ui';
414
+ import type { BbTabsItem } from 'bitboss-ui';
415
+
416
+ // Code / Preview is a mode toggle: disable both animation axes so flipping
417
+ // feels instant. The draft lives in the script, not in the pane.
418
+ type Mode = 'code' | 'preview';
419
+
420
+ const tabs: Array<BbTabsItem<Mode>> = [
421
+ { key: 'code', label: 'Code' },
422
+ { key: 'preview', label: 'Preview' },
423
+ ];
424
+
425
+ const draft = ref(
426
+ '## Billing retries\n\nVerified on staging — invoice totals now match the ledger.'
427
+ );
428
+
429
+ const previewTitle = computed(() => {
430
+ const heading = draft.value.match(/^##\s+(.+)$/m);
431
+ return heading?.[1] ?? 'Untitled';
432
+ });
433
+
434
+ const previewBody = computed(() =>
435
+ draft.value.replace(/^##\s+.+$/m, '').trim()
436
+ );
437
+ </script>
438
+ ```
439
+
440
+ ### Sizing, orientation, and density
441
+
442
+ `block` stretches the strip to full width with grid-equal triggers — every
443
+ trigger as wide as the widest, so the row reads as an even segmented control;
444
+ when the triggers exceed the width they keep those equal widths and the strip
445
+ scrolls. `compact` drops the whole scale a notch (a 28px strip instead of 32px,
446
+ smaller text and padding). `direction="vertical"` stacks the triggers in a
447
+ column beside the panes, with the pill sliding on the Y axis.
448
+
449
+ Mark any unreachable tab `disabled` on its item — it stays visible, is skipped
450
+ by keyboard navigation and by `goTo`, and can never be the default selection.
451
+ Disabling the whole group is a component-level `disabled` prop: every trigger
452
+ goes disabled and keyboard navigation is inert (use it while a parent is
453
+ loading, not as a permanent state).
454
+
455
+ Settings peer sections are the classic `block` strip — full-width equal
456
+ triggers over compact form panes. Pair with `navigation` + `replace` so the
457
+ active section stays in the URL without flooding Back history:
458
+
459
+ **Workspace settings sections**
460
+
461
+ ```vue
462
+ <template>
463
+ <div
464
+ class="max-w-md rounded-[var(--bb-radius)] border border-[color:var(--bb-border)] p-3"
465
+ >
466
+ <div class="mb-3 flex flex-col gap-0.5">
467
+ <p class="text-sm font-medium">Workspace settings</p>
468
+ <p class="text-xs text-gray-500">
469
+ Northwind Billing · changes save per section.
470
+ </p>
471
+ </div>
472
+ <!-- `navigation` + `replace`: deep-linkable section, Back still leaves the page. -->
473
+ <BbTabs
474
+ v-model="section"
475
+ block
476
+ :items="tabs"
477
+ navigation
478
+ query-key="section"
479
+ replace
480
+ >
481
+ <template #general>
482
+ <div class="grid gap-3 pt-3">
483
+ <BbTextInput
484
+ v-model="org.name"
485
+ compact
486
+ label="Workspace name"
487
+ name="workspace-name"
488
+ />
489
+ <BbTextInput
490
+ v-model="org.slug"
491
+ compact
492
+ label="URL slug"
493
+ name="workspace-slug"
494
+ prepend:icon="lucide:link"
495
+ />
496
+ <div class="flex justify-end">
497
+ <BbButton variant="primary" @click="onSaveGeneral">
498
+ Save general
499
+ </BbButton>
500
+ </div>
501
+ </div>
502
+ </template>
503
+ <template #members>
504
+ <ul class="divide-y divide-[color:var(--bb-border)] pt-3">
505
+ <li
506
+ v-for="member in members"
507
+ :key="member.email"
508
+ class="flex items-center justify-between gap-2 py-2 text-sm"
509
+ >
510
+ <span class="min-w-0 truncate">
511
+ <span class="font-medium">{{ member.name }}</span>
512
+ <span class="text-xs text-gray-500"> · {{ member.email }}</span>
513
+ </span>
514
+ <span class="shrink-0 text-xs text-gray-500">{{
515
+ member.role
516
+ }}</span>
517
+ </li>
518
+ </ul>
519
+ </template>
520
+ <template #billing>
521
+ <div class="grid gap-1.5 pt-3">
522
+ <p class="text-sm font-medium">Pro · €49 / month</p>
523
+ <p class="text-xs text-gray-500">
524
+ Next invoice Jul 28, 2026 · Visa ···· 4242
525
+ </p>
526
+ <div class="pt-1">
527
+ <BbButton prepend:icon="lucide:credit-card" variant="outline">
528
+ Manage billing
529
+ </BbButton>
530
+ </div>
531
+ </div>
532
+ </template>
533
+ </BbTabs>
534
+ </div>
535
+ </template>
536
+ <script setup lang="ts">
537
+ import { reactive, ref } from 'vue';
538
+ import { BbButton, BbTabs, BbTextInput } from 'bitboss-ui';
539
+ import type { BbTabsItem } from 'bitboss-ui';
540
+
541
+ // Settings peer sections: block strip, compact fields, URL-synced with replace
542
+ // so Back leaves settings instead of walking tab history.
543
+ type Section = 'general' | 'members' | 'billing';
544
+
545
+ const tabs: Array<BbTabsItem<Section>> = [
546
+ { key: 'general', label: 'General' },
547
+ { key: 'members', label: 'Members' },
548
+ { key: 'billing', label: 'Billing' },
549
+ ];
550
+
551
+ const section = ref<Section>('general');
552
+ const org = reactive({ name: 'Northwind Billing', slug: 'northwind' });
553
+ const members = [
554
+ { name: 'Alex Rivera', email: 'alex@northwind.io', role: 'Owner' },
555
+ { name: 'Sam Chen', email: 'sam@northwind.io', role: 'Admin' },
556
+ { name: 'Jordan Lee', email: 'jordan@northwind.io', role: 'Editor' },
557
+ ];
558
+
559
+ const onSaveGeneral = async () => {
560
+ await new Promise((resolve) => setTimeout(resolve, 400));
561
+ };
562
+ </script>
563
+ ```
564
+
565
+ **Full-width strip with a disabled tab**
566
+
567
+ ```vue
568
+ <div
569
+ class="max-w-md rounded-[var(--bb-radius)] border border-[color:var(--bb-border)] p-3"
570
+ >
571
+ <BbTabs
572
+ block
573
+ compact
574
+ :items="[
575
+ { key: 'summary', label: 'Summary' },
576
+ { key: 'integrations', label: 'Integrations' },
577
+ { key: 'billing', label: 'Billing', disabled: true },
578
+ ]"
579
+ >
580
+ <template #summary><p class="pt-3 text-sm text-gray-600">Environment status at a glance.</p></template>
581
+ <template #integrations><p class="pt-3 text-sm text-gray-600">Connected services.</p></template>
582
+ <template #billing><p class="pt-3 text-sm text-gray-600">Locked on this plan.</p></template>
583
+ </BbTabs>
584
+ </div>
585
+ ```
586
+
587
+ **Vertical, compact strip**
588
+
589
+ ```vue
590
+ <div
591
+ class="max-w-md rounded-[var(--bb-radius)] border border-[color:var(--bb-border)] p-3"
592
+ >
593
+ <BbTabs
594
+ compact
595
+ direction="vertical"
596
+ :items="[
597
+ { key: 'general', label: 'General' },
598
+ { key: 'security', label: 'Security' },
599
+ { key: 'api', label: 'API keys' },
600
+ ]"
601
+ >
602
+ <template #general><p class="px-3 text-sm text-gray-600">Workspace basics.</p></template>
603
+ <template #security><p class="px-3 text-sm text-gray-600">Sessions and 2FA.</p></template>
604
+ <template #api><p class="px-3 text-sm text-gray-600">Personal access tokens.</p></template>
605
+ </BbTabs>
606
+ </div>
607
+ ```
608
+
609
+ A vertical strip reads a `--max-w` custom property (vertical only) to cap its
610
+ width — set `style="--max-w: 160px"` on the list and long labels ellipse instead
611
+ of widening the column. The strip never exceeds its container. Sizing otherwise
612
+ follows the design tokens (`--bb-control-h`, `--bb-radius`, `--bb-fs`); there is
613
+ no numeric size prop and no global tabs config to set — tokens and the `block` /
614
+ `compact` / `direction` props are the whole surface.
615
+
616
+ ### Overflowing strips and scroll affordances
617
+
618
+ Both horizontal modes scroll when the triggers exceed the available width, and
619
+ the active trigger is always scrolled into view on selection — keyboard moves
620
+ never leave the focused tab off-screen. For a visible scroll control, wire the
621
+ `header:prepend` and `header:append` slots (rendered before / after the
622
+ scrollable list): each receives `canScrollLeft`, `canScrollRight`, `isScrolling`,
623
+ and a `scroll('left' | 'right')` callback that pages the strip by ~80% of its
624
+ width. Bind the arrows' `disabled` to the can-scroll flags so they dim at the
625
+ ends.
626
+
627
+ **Scroll arrows on an overflowing strip**
628
+
629
+ ```vue
630
+ <template>
631
+ <div
632
+ class="max-w-md rounded-[var(--bb-radius)] border border-[color:var(--bb-border)] p-3"
633
+ >
634
+ <div class="mb-3 flex flex-col gap-0.5">
635
+ <p class="text-sm font-medium">Release timeline</p>
636
+ <p class="text-xs text-gray-500">
637
+ Monthly notes · scroll arrows when the strip overflows.
638
+ </p>
639
+ </div>
640
+ <BbTabs v-model="active" block compact :items="releases">
641
+ <template #header:prepend="{ canScrollLeft, scroll }">
642
+ <BbButton
643
+ aria-label="Scroll tabs left"
644
+ class="mr-1 shrink-0"
645
+ :disabled="!canScrollLeft"
646
+ icon="lucide:chevron-left"
647
+ size="sm"
648
+ variant="ghost"
649
+ @click="scroll('left')"
650
+ />
651
+ </template>
652
+ <template #header:append="{ canScrollRight, scroll }">
653
+ <BbButton
654
+ aria-label="Scroll tabs right"
655
+ class="ml-1 shrink-0"
656
+ :disabled="!canScrollRight"
657
+ icon="lucide:chevron-right"
658
+ size="sm"
659
+ variant="ghost"
660
+ @click="scroll('right')"
661
+ />
662
+ </template>
663
+ <template v-for="release in releases" :key="release.key" #[release.key]>
664
+ <p class="pt-3 text-sm text-gray-600 dark:text-gray-300">
665
+ {{ release.label }} shipped the design-token overhaul and the tabs
666
+ keyboard-navigation pass.
667
+ </p>
668
+ </template>
669
+ </BbTabs>
670
+ </div>
671
+ </template>
672
+ <script setup lang="ts">
673
+ import { ref } from 'vue';
674
+ import { BbButton, BbTabs } from 'bitboss-ui';
675
+ import type { BbTabsItem } from 'bitboss-ui';
676
+
677
+ // A block strip with more triggers than fit: the pill and scroll-into-view keep
678
+ // the active trigger visible, and the header:prepend / header:append slots host
679
+ // scroll arrows fed by canScrollLeft / canScrollRight / scroll from the list.
680
+ const months = [
681
+ 'January',
682
+ 'February',
683
+ 'March',
684
+ 'April',
685
+ 'May',
686
+ 'June',
687
+ 'July',
688
+ 'August',
689
+ 'September',
690
+ ];
691
+ const releases: BbTabsItem[] = months.map((label, index) => ({
692
+ key: `v${index + 1}`,
693
+ label: `${label} 2026`,
694
+ }));
695
+
696
+ const active = ref('v1');
697
+ </script>
698
+ ```
699
+
700
+ These slots live on `BbTabsList`, so they work identically in the batteries-
701
+ included `BbTabs` and in the split `BbTabsRoot` layout below.
702
+
703
+ ### Split the strip from the panes with `BbTabsRoot`
704
+
705
+ When you need arbitrary markup _between_ the triggers and the panes — a toolbar
706
+ next to the strip, a divider, a sidebar layout — reach for the renderless
707
+ `BbTabsRoot`. It owns all the state (selection, `v-model`, URL/Inertia
708
+ navigation, keyboard navigation) and publishes it through provide/inject, so
709
+ `BbTabsList` and `BbTabsPanes` can sit anywhere in its subtree — no props, they
710
+ discover the nearest root automatically — and still align. A `BbTabsList` or
711
+ `BbTabsPanes` rendered outside any root throws with a descriptive error.
712
+
713
+ Its default slot hands you `select`, `goTo`, `current`, `currentIndex`,
714
+ `isFirst`, and `isLast` — enough to build Prev/Next controls or a live section
715
+ label without a template ref. A nested `BbTabs`/`BbTabsRoot` always shadows the
716
+ outer one, so an inner tab group never leaks into (or reads from) the parent's
717
+ context; use nesting freely.
718
+
719
+ **List and panes separated by a toolbar**
720
+
721
+ ```vue
722
+ <template>
723
+ <div
724
+ class="max-w-md rounded-[var(--bb-radius)] border border-[color:var(--bb-border)] p-3"
725
+ >
726
+ <div class="mb-3 flex flex-col gap-0.5">
727
+ <p class="text-sm font-medium">Acme Checkout</p>
728
+ <p class="text-xs text-gray-500">Workspace · Prev/Next via root slot</p>
729
+ </div>
730
+ <BbTabsRoot v-model="active" compact :items="tabs">
731
+ <template #default="{ goTo, isFirst, isLast }">
732
+ <div class="flex items-center justify-between gap-2">
733
+ <BbTabsList class="min-w-0 flex-1" />
734
+ <div class="flex shrink-0 gap-1">
735
+ <BbButton
736
+ :disabled="isFirst"
737
+ size="sm"
738
+ variant="outline"
739
+ @click="goTo('previous')"
740
+ >
741
+ Prev
742
+ </BbButton>
743
+ <BbButton
744
+ :disabled="isLast"
745
+ size="sm"
746
+ variant="outline"
747
+ @click="goTo('next')"
748
+ >
749
+ Next
750
+ </BbButton>
751
+ </div>
752
+ </div>
753
+ <hr class="my-3 border-[color:var(--bb-border)]" />
754
+ <BbTabsPanes>
755
+ <template #overview>
756
+ <p class="text-sm text-gray-600 dark:text-gray-300">
757
+ Health stable · owners Alex + Sam · objective: cut checkout
758
+ latency 20%.
759
+ </p>
760
+ </template>
761
+ <template #activity>
762
+ <p class="text-sm text-gray-600 dark:text-gray-300">
763
+ Shipped billing retries; fixed avatar upload timeout.
764
+ </p>
765
+ </template>
766
+ <template #members>
767
+ <p class="text-sm text-gray-600 dark:text-gray-300">
768
+ 14 editors, 23 viewers, 3 billing admins.
769
+ </p>
770
+ </template>
771
+ </BbTabsPanes>
772
+ </template>
773
+ </BbTabsRoot>
774
+ </div>
775
+ </template>
776
+ <script setup lang="ts">
777
+ import { ref } from 'vue';
778
+ import { BbButton, BbTabsRoot, BbTabsList, BbTabsPanes } from 'bitboss-ui';
779
+ import type { BbTabsItem } from 'bitboss-ui';
780
+
781
+ // BbTabsRoot owns the state; the list and the panes are separated by a toolbar
782
+ // row and a divider, and the Prev/Next buttons drive it through the root slot.
783
+ type Section = 'overview' | 'activity' | 'members';
784
+
785
+ const tabs: Array<BbTabsItem<Section>> = [
786
+ { key: 'overview', label: 'Overview' },
787
+ { key: 'activity', label: 'Activity' },
788
+ { key: 'members', label: 'Members' },
789
+ ];
790
+
791
+ const active = ref<Section>('overview');
792
+ </script>
793
+ ```
794
+
795
+ `BbTabsRoot` takes the exact same props as `BbTabs` (`BbTabsRootProps` is
796
+ `BbTabsProps`), so everything in this guide — `items`, `block`, `compact`,
797
+ `direction`, `eager`, `navigation`, the Inertia options — applies unchanged; you
798
+ are only relocating the list and the panes.
799
+
800
+ ### Drive a tab group from anywhere with `useBbTabsContext`
801
+
802
+ Give a tab group an explicit `id` and read or steer it from any component on the
803
+ client with `useBbTabsContext(id)` — no template ref, no shared subtree, no
804
+ being inside the tabs' tree. Pass the same `id` you gave the component (auto-
805
+ generated ids are not addressable) and optionally the key union to type
806
+ `current` / `select`. The returned handle is safe to destructure:
807
+
808
+ - `current` — a **writable** ref: reading it gives the active key (`null` until
809
+ the tabs mount), and assigning a key selects it, exactly like `select(key)`.
810
+ Assigning `null` warns and is ignored — a tab is always selected.
811
+ - `select(key)` — select by key; unknown keys warn and leave the selection
812
+ untouched.
813
+ - `goTo('first' | 'previous' | 'next' | 'last')` — relative navigation, skipping
814
+ disabled tabs.
815
+ - `currentIndex` (`-1` until mount), `isFirst`, `isLast`, and `isReady` (whether
816
+ a tabs instance with this id is mounted yet).
817
+
818
+ The handle is callable before the tabs mount — it starts empty and auto-
819
+ populates when they render, emptying again on unmount; actions on an unmounted
820
+ id warn and no-op. Selection through the handle runs the tabs' full pipeline:
821
+ `v-model` is emitted and URL/Inertia navigation fires when the group has
822
+ `navigation`, identical to clicking the trigger. Here an alert banner outside
823
+ the tabs jumps straight to the Security section:
824
+
825
+ **Steer tabs from a banner outside their tree**
826
+
827
+ ```vue
828
+ <template>
829
+ <div
830
+ class="max-w-md space-y-3 rounded-[var(--bb-radius)] border border-[color:var(--bb-border)] p-3"
831
+ >
832
+ <div class="grid gap-2">
833
+ <BbAlert
834
+ hide-close
835
+ icon="lucide:shield-alert"
836
+ text="Two-factor authentication is off for this account."
837
+ title="Security review needed"
838
+ variant="warning"
839
+ />
840
+ <div class="flex justify-end">
841
+ <BbButton variant="outline" @click="select('security')">
842
+ Review security
843
+ </BbButton>
844
+ </div>
845
+ </div>
846
+ <!-- Same id as useBbTabsContext below; navigation+replace keeps the
847
+ section deep-linkable without flooding Back history. -->
848
+ <BbTabs
849
+ id="account-settings-tabs"
850
+ v-model="section"
851
+ compact
852
+ :items="tabs"
853
+ navigation
854
+ query-key="account"
855
+ replace
856
+ >
857
+ <template #profile>
858
+ <div class="grid gap-3 pt-3">
859
+ <BbTextInput
860
+ v-model="profile.name"
861
+ compact
862
+ label="Display name"
863
+ name="display-name"
864
+ />
865
+ <BbTextInput
866
+ v-model="profile.email"
867
+ compact
868
+ label="Contact email"
869
+ name="contact-email"
870
+ type="email"
871
+ />
872
+ </div>
873
+ </template>
874
+ <template #security>
875
+ <div class="grid gap-1.5 pt-3 text-sm">
876
+ <p class="font-medium">Two-factor authentication</p>
877
+ <p class="text-xs text-gray-500">
878
+ Off · last password change Mar 12, 2026 · 2 active sessions
879
+ </p>
880
+ <div class="pt-1">
881
+ <BbButton prepend:icon="lucide:shield" variant="primary">
882
+ Enable 2FA
883
+ </BbButton>
884
+ </div>
885
+ </div>
886
+ </template>
887
+ <template #notifications>
888
+ <p class="pt-3 text-sm text-gray-600 dark:text-gray-300">
889
+ Email digests and mention alerts for alex@northwind.io.
890
+ </p>
891
+ </template>
892
+ </BbTabs>
893
+ <p class="text-xs text-gray-500" data-test="active-section">
894
+ Active section: {{ current }}
895
+ </p>
896
+ </div>
897
+ </template>
898
+ <script setup lang="ts">
899
+ import { reactive, ref } from 'vue';
900
+ import {
901
+ BbAlert,
902
+ BbButton,
903
+ BbTabs,
904
+ BbTextInput,
905
+ useBbTabsContext,
906
+ } from 'bitboss-ui';
907
+ import type { BbTabsItem } from 'bitboss-ui';
908
+
909
+ type SectionKey = 'profile' | 'security' | 'notifications';
910
+
911
+ const tabs: Array<BbTabsItem<SectionKey>> = [
912
+ { key: 'profile', label: 'Profile' },
913
+ { key: 'security', label: 'Security' },
914
+ { key: 'notifications', label: 'Notifications' },
915
+ ];
916
+
917
+ const section = ref<SectionKey>('profile');
918
+ const profile = reactive({
919
+ name: 'Alex Rivera',
920
+ email: 'alex@northwind.io',
921
+ });
922
+
923
+ // The alert banner lives OUTSIDE the tabs subtree: it reaches the group purely
924
+ // by id. `current` is a readable/writable ref, `select` jumps straight to a key.
925
+ const { current, select } = useBbTabsContext<SectionKey>(
926
+ 'account-settings-tabs'
927
+ );
928
+ </script>
929
+ ```
930
+
931
+ Client-side only — during SSR the registry stays empty, so wire cross-component
932
+ behavior from hydration onward. Two mounted groups sharing an id is an error
933
+ (the handle resolves to the most recently mounted one). See the
934
+ [`useBbTabsContext`](./composables/useBbTabsContext.md) composable doc for the
935
+ full handle reference.
936
+
937
+ ### URL and Inertia navigation
938
+
939
+ Set `navigation` to keep the active tab in the URL query (`query-key`, default
940
+ `tab`) so a tab is deep-linkable and survives reload. On load the query wins over
941
+ `modelValue`; thereafter switching writes the query and a matching query on
942
+ back/forward re-selects the tab.
943
+
944
+ **Pair `navigation` with `replace`.** Without it every tab click pushes a
945
+ history entry, so a user who browsed four tabs needs four Backs to leave the
946
+ page — the tab strip hijacks the browser's Back button. With `replace` the URL
947
+ still carries the active tab (bookmarkable, survives reload, shareable) but the
948
+ entry is overwritten in place, so one Back returns to wherever they came from.
949
+ Reach for the push default only when a tab is a destination of its own — a
950
+ `server` visit whose content the user should be able to go Back to.
951
+
952
+ ```vue
953
+ <!-- /project?tab=activity — bookmarkable, and Back still leaves the page -->
954
+ <BbTabs v-model="tab" :items="items" navigation query-key="tab" replace />
955
+ ```
956
+
957
+ Navigation is always offloaded to the component — never pair tabs with a manual
958
+ `router.push`/`window.location` on click. In an Inertia app, give tabs an `href`
959
+ and each trigger renders as an Inertia link. By default switching updates the URL
960
+ client-side (a `history.pushState`, no round-trip); set `server` (per item or on
961
+ the component) to make it a real Inertia visit via `router.visit`, and pass the
962
+ usual Inertia options — `only` for partial reloads, `preserveScroll`,
963
+ `preserveState`, `headers`, and the lifecycle hooks (`onBefore`, `onSuccess`,
964
+ `onError`, …) — on the component as defaults or per item as overrides. Item
965
+ values always win over component values. `server` without `navigation` is a
966
+ misconfiguration and logs an error. `replace` applies to both paths — it drops
967
+ the `pushState` to a `replaceState` on client-only switches, and makes the
968
+ Inertia visit a replace visit — so keep it on here too.
969
+
970
+ A `server` tab commits its selection only when the visit **succeeds**: the
971
+ pane, pill and `v-model` stay on the current tab until the server confirms. A
972
+ navigation guard that prevents the visit (a dirty-form route-leave confirm) or
973
+ a failed visit leaves the tabs exactly where they were — no optimistic switch
974
+ to roll back:
975
+
976
+ ```vue
977
+ <BbTabs
978
+ :items="[
979
+ { key: 'overview', label: 'Overview', href: '/project/overview' },
980
+ {
981
+ key: 'activity',
982
+ label: 'Activity',
983
+ href: '/project/activity',
984
+ server: true,
985
+ only: ['events'],
986
+ },
987
+ ]"
988
+ navigation
989
+ replace
990
+ preserve-scroll
991
+ />
992
+ ```
993
+
994
+ Under Nuxt, `navigation` uses the same Vue Router path — the query is part of the
995
+ route, so it is SSR-safe and shareable:
996
+
997
+ ```vue
998
+ <!-- Nuxt: query-synced tabs, resolved on the server for the first paint -->
999
+ <BbTabs :items="items" navigation replace query-key="section" />
1000
+ ```
1001
+
1002
+ ### Works well with
1003
+
1004
+ - **`BbBadge` / count pills in `label` slots** — status dots and unread counts
1005
+ ride in the `label:{key}` or `label` slot; the strip re-measures when they
1006
+ resize.
1007
+ - **`BbButton` for Prev/Next** — feed `goTo` from the `BbTabsRoot` default slot
1008
+ or from `useBbTabsContext`, binding `:disabled` to `isFirst`/`isLast`.
1009
+ - **`BbTable` per tab** — one tab per saved view or status filter, each pane a
1010
+ `BbTable`; combine with `eager` if a table's fetched rows should survive tab
1011
+ switches.
1012
+ - **`useBbTabsContext`** — the by-id handle for driving tabs from a page header,
1013
+ a keyboard-shortcut handler, or a banner far from the strip.
1014
+
1015
+ ### Gotchas and anti-patterns
1016
+
1017
+ - **The sliding pill is measured from layout.** It reads the active trigger's
1018
+ `offsetLeft`/`offsetTop`, so render tabs in a visible, normally-positioned
1019
+ container. It settles itself on mount, resize, and font load, and paints a
1020
+ static pill until the first measurement lands — nothing to configure, and
1021
+ nothing to fight in demos.
1022
+ - **Vertical strips answer Up/Down _and_ Left/Right arrows.** Up/Down is the
1023
+ primary pair (matching the vertical `aria-orientation`, per the ARIA APG);
1024
+ Left/Right keeps working as a forgiving extra. Horizontal strips answer
1025
+ Left/Right only — Up/Down keeps scrolling the page.
1026
+ - **Do not rebuild navigation.** No `@click="router.push(...)"` to change a tab —
1027
+ use `navigation`/`query-key`/`href`. No manual `watch` to mirror the URL — the
1028
+ component owns it.
1029
+ - **`navigation` without `replace` floods the history stack.** Each tab click
1030
+ becomes its own entry, so Back walks the user through their tab clicks
1031
+ instead of leaving the page — the same trap as a router-driven filter bar.
1032
+ Add `replace` unless a tab is a real destination the user should be able to
1033
+ go Back to.
1034
+ - **Do not put interactive controls inside a `label` slot.** The trigger is
1035
+ already a button; a nested button/link is invalid and steals the click. Put
1036
+ actions in a pane or a toolbar (the `BbTabsRoot` layout), not in a label.
1037
+ - **Don't reach for `BbTabsRoot` by default.** If you only need a strip over its
1038
+ panes, `BbTabs` is less markup and identical behavior; split only for markup
1039
+ between them.
1040
+ - **Every tab disabled throws.** With no `modelValue` and no valid first tab the
1041
+ group has nothing to select — always leave at least one enabled tab.
1042
+
1043
+ ### Accessibility
1044
+
1045
+ - **Roles and relationships are wired for you.** The strip is a `tablist`, each
1046
+ trigger a `tab` with `aria-selected` and `aria-controls` pointing at its
1047
+ `tabpanel`, and each pane a `tabpanel` labelled by its trigger
1048
+ (`aria-labelledby`). Do not add these yourself.
1049
+ - **Roving tabindex + keyboard.** Exactly one trigger is in the tab order
1050
+ (`tabindex="0"`); the rest are `-1`. **Left/Right** arrows move (and select)
1051
+ the previous/next enabled tab, wrapping around the ends; **Home** and **End**
1052
+ jump to the first/last enabled tab. Disabled tabs are skipped. Focus follows
1053
+ selection — arrowing to a tab activates it (automatic activation) — so panes
1054
+ should be cheap to switch (reach for lazy panes, the default). Vertical
1055
+ strips (`direction="vertical"`) follow the APG's vertical-tablist pattern:
1056
+ **Up/Down** move to the previous/next tab with the same wrapping, and
1057
+ Left/Right stay active as a forgiving alias. Up/Down do nothing on
1058
+ horizontal strips (they keep their page-scroll meaning).
1059
+ - **Provide your own accessible names for icon-only affordances.** Scroll-arrow
1060
+ buttons in the `header:prepend`/`header:append` slots need an `aria-label`
1061
+ (they are your markup, not the component's).
1062
+ - **Label slots carry presentation only.** Keep the accessible name in the
1063
+ trigger text; a decorative badge or icon in a `label` slot should not be the
1064
+ only thing announced.
1065
+
1066
+ ## v-model
1067
+
1068
+ - `v-model` — type: `K \| null \| undefined`
1069
+
1070
+ ## Props
1071
+
1072
+ | Prop | Type | Default | Required | Description |
1073
+ | --- | --- | --- | --- | --- |
1074
+ | `block` | `boolean \| undefined` | | | Displays the component as full width. |
1075
+ | `compact` | `boolean \| undefined` | | | Adds a CSS class that applies a compact style to the component. |
1076
+ | `direction` | `"horizontal" \| "vertical" \| undefined` | `"horizontal"` | | Direction of the tabs component. |
1077
+ | `disableAnimateX` | `boolean \| undefined` | | | Disables the horizontal slide transition between tab panels (enabled by default). |
1078
+ | `disableAnimateY` | `boolean \| undefined` | | | Disables the smooth height animation when switching between tab panels (enabled by default). |
1079
+ | `disabled` | `boolean \| undefined` | | | Disables the component |
1080
+ | `eager` | `boolean \| undefined` | | | Prevents rendering content before it's made visible. |
1081
+ | `headers` | `Record<string, string> \| undefined` | | | Additional HTTP headers forwarded to Inertia when navigation is triggered. Only meaningful in an Inertia context. |
1082
+ | `id` | `string \| undefined` | | | The identifier of the component. |
1083
+ | `items` | `BbTabsItem<K>[]` | | yes | Array of items that define the tabs in the component. |
1084
+ | `modelValue` | `K \| null \| undefined` | | | The current tab key. Used by v-model. |
1085
+ | `navigation` | `boolean \| undefined` | | | Synchronizes the current tab with the URL query parameter. Pair it with `replace` unless a tab is genuinely a separate destination — see the `replace` prop. |
1086
+ | `onBefore` | `(() => boolean \| void) \| undefined` | | | Inertia lifecycle hook — fired just before the request is sent. Return `false` to cancel the visit. |
1087
+ | `onCancel` | `(() => void) \| undefined` | | | Inertia lifecycle hook — fired when the request is cancelled. |
1088
+ | `onError` | `((errors: Record<string, string>) => void) \| undefined` | | | Inertia lifecycle hook — fired when the server returns validation errors. |
1089
+ | `onFinish` | `(() => void) \| undefined` | | | Inertia lifecycle hook — fired after the visit finishes (success or error). |
1090
+ | `only` | `string[] \| undefined` | | | Limits which server-side props are refreshed during a partial Inertia reload. Only meaningful in an Inertia context. |
1091
+ | `onProgress` | `((progress: { percentage: number \| undefined; }) => void) \| undefined` | | | Inertia lifecycle hook — fired when upload/download progress is available. |
1092
+ | `onStart` | `(() => void) \| undefined` | | | Inertia lifecycle hook — fired when the request starts. |
1093
+ | `onSuccess` | `(() => void) \| undefined` | | | Inertia lifecycle hook — fired when the visit completes successfully. |
1094
+ | `preserveScroll` | `boolean \| ((props: Record<string, unknown>) => boolean) \| undefined` | | | Controls whether Inertia preserves the scroll position after navigation. Only meaningful in an Inertia context. |
1095
+ | `preserveState` | `boolean \| ((props: Record<string, unknown>) => boolean) \| null \| undefined` | | | Controls whether Inertia preserves the current component state after navigation. Only meaningful in an Inertia context. |
1096
+ | `queryKey` | `string \| undefined` | `"tab"` | | Defines the query key used for URL-based navigation. |
1097
+ | `replace` | `boolean \| undefined` | | | Uses history replacement instead of push navigation. Prefer `replace` whenever `navigation` is on: the URL still carries the active tab (deep-linkable, survives reload), but switching tabs does not stack a history entry per click, so Back l… |
1098
+ | `server` | `boolean \| undefined` | | | When true and in an Inertia context, triggers a real server-side Inertia visit instead of a client-only `history.pushState`. |
1099
+
1100
+ ## Events
1101
+
1102
+ - `update:modelValue` — `(e: "update:modelValue", value: K): void` — Emitted when the selected tab changes. Used by `v-model`.
1103
+
1104
+ ## Slots
1105
+
1106
+ - `header:append` — scope: `BbTabsScrollSlotProps` — Content rendered after the scrollable tab label list (e.g. a right scroll arrow).
1107
+ - `header:prepend` — scope: `BbTabsScrollSlotProps` — Content rendered before the scrollable tab label list (e.g. a left scroll arrow).
1108
+ - `label` — scope: `BbTabsSlotProps<K>` — Fallback slot used for all tab labels when no per-tab `label:{key}` slot is provided.
1109
+
1110
+ ## See Also
1111
+
1112
+ - [BbAccordion](./BbAccordion.md) — Expands and collapses a content panel.
1113
+ - [BbBreadcrumbs](./BbBreadcrumbs.md) — Renders hierarchical navigation paths.