bitboss-ui 3.0.0-beta.2 → 3.0.0-beta.20

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 (337) hide show
  1. package/README.md +72 -33
  2. package/dist/ai/BbAccordion.md +3 -3
  3. package/dist/ai/BbAlert.md +9 -5
  4. package/dist/ai/BbAsterisk.md +17 -0
  5. package/dist/ai/BbAvatar.md +12 -3
  6. package/dist/ai/BbBadge.md +15 -10
  7. package/dist/ai/BbBadgeButton.md +16 -16
  8. package/dist/ai/BbBaseButton.md +16 -16
  9. package/dist/ai/BbBaseCheckbox.md +8 -8
  10. package/dist/ai/BbBaseCheckboxGroup.md +13 -13
  11. package/dist/ai/BbBaseCheckboxIcon.md +26 -9
  12. package/dist/ai/BbBaseColorInput.md +11 -11
  13. package/dist/ai/BbBaseDatePicker.md +6 -6
  14. package/dist/ai/BbBaseDatePickerInput.md +15 -15
  15. package/dist/ai/BbBaseInputContainer.md +12 -12
  16. package/dist/ai/BbBaseNumberInput.md +8 -8
  17. package/dist/ai/BbBaseRadio.md +5 -5
  18. package/dist/ai/BbBaseRadioGroup.md +7 -7
  19. package/dist/ai/BbBaseRadioIcon.md +25 -9
  20. package/dist/ai/BbBaseRating.md +5 -5
  21. package/dist/ai/BbBaseSelect.md +22 -21
  22. package/dist/ai/BbBaseSlider.md +9 -9
  23. package/dist/ai/BbBaseSwitch.md +8 -8
  24. package/dist/ai/BbBaseSwitchGroup.md +13 -13
  25. package/dist/ai/BbBaseSwitchIcon.md +28 -10
  26. package/dist/ai/BbBaseTag.md +10 -10
  27. package/dist/ai/BbBaseTextInput.md +9 -9
  28. package/dist/ai/BbBaseTextarea.md +9 -9
  29. package/dist/ai/BbBaseTimePickerInput.md +13 -13
  30. package/dist/ai/BbBreadcrumbs.md +2 -2
  31. package/dist/ai/BbButton.md +15 -15
  32. package/dist/ai/BbCheckbox.md +18 -17
  33. package/dist/ai/BbCheckboxGroup.md +15 -14
  34. package/dist/ai/BbCollapsible.md +11 -9
  35. package/dist/ai/BbColorInput.md +15 -15
  36. package/dist/ai/BbColorPalette.md +12 -6
  37. package/dist/ai/BbConfirm.md +12 -5
  38. package/dist/ai/BbDatePicker.md +13 -13
  39. package/dist/ai/BbDatePickerInput.md +20 -20
  40. package/dist/ai/BbDialog.md +78 -12
  41. package/dist/ai/BbDropdown.md +132 -22
  42. package/dist/ai/BbDropdownButton.md +12 -12
  43. package/dist/ai/BbDropdownGroup.md +1 -1
  44. package/dist/ai/BbDropzone.md +4 -4
  45. package/dist/ai/BbForm.md +49 -14
  46. package/dist/ai/BbIcon.md +6 -0
  47. package/dist/ai/BbIndicator.md +5 -5
  48. package/dist/ai/BbNumberInput.md +11 -11
  49. package/dist/ai/BbOffCanvas.md +90 -20
  50. package/dist/ai/BbPagination.md +3 -3
  51. package/dist/ai/BbPopover.md +32 -17
  52. package/dist/ai/BbProgress.md +7 -4
  53. package/dist/ai/BbRadio.md +16 -15
  54. package/dist/ai/BbRadioGroup.md +20 -17
  55. package/dist/ai/BbRating.md +11 -11
  56. package/dist/ai/BbSelect.md +138 -37
  57. package/dist/ai/BbSelectPopover.md +40 -41
  58. package/dist/ai/BbSlider.md +37 -22
  59. package/dist/ai/BbSmoothHeight.md +1 -1
  60. package/dist/ai/BbSwitch.md +25 -10
  61. package/dist/ai/BbSwitchGroup.md +17 -14
  62. package/dist/ai/BbTable.md +791 -88
  63. package/dist/ai/BbTabs.md +28 -14
  64. package/dist/ai/BbTabsList.md +1 -1
  65. package/dist/ai/BbTabsPanes.md +1 -1
  66. package/dist/ai/BbTabsRoot.md +10 -10
  67. package/dist/ai/BbTag.md +14 -14
  68. package/dist/ai/BbTextInput.md +16 -15
  69. package/dist/ai/BbTextarea.md +13 -13
  70. package/dist/ai/BbTimePicker.md +10 -10
  71. package/dist/ai/BbTimePickerInput.md +17 -17
  72. package/dist/ai/BbToast.md +1 -1
  73. package/dist/ai/BbToastPortal.md +1 -1
  74. package/dist/ai/BbTooltip.md +12 -10
  75. package/dist/ai/BbTree.md +1 -1
  76. package/dist/ai/ChipsBox.md +1 -1
  77. package/dist/ai/CommonInputWrapper.md +10 -10
  78. package/dist/ai/CommonPopover.md +6 -6
  79. package/dist/ai/FlatListBox.md +5 -5
  80. package/dist/ai/GroupedListBox.md +5 -5
  81. package/dist/ai/ListBox.md +4 -4
  82. package/dist/ai/OptionsContainer.md +4 -4
  83. package/dist/ai/changelog.json +110 -2
  84. package/dist/ai/components.json +882 -90
  85. package/dist/ai/composables/useBbConfig.md +72 -11
  86. package/dist/ai/composables/useConfirm.md +5 -3
  87. package/dist/ai/guides/ai-router.md +9 -4
  88. package/dist/ai/guides/component-picker.md +2 -2
  89. package/dist/ai/guides/design-language.md +14 -14
  90. package/dist/ai/guides/design-tokens.md +25 -18
  91. package/dist/ai/guides/fetch-items-playbook.md +1 -1
  92. package/dist/ai/guides/icons-policy.md +4 -2
  93. package/dist/ai/guides/installation-and-plugin-setup.md +74 -9
  94. package/dist/ai/guides/migration/components/bb-checkbox-group.md +30 -0
  95. package/dist/ai/guides/migration/components/bb-checkbox.md +37 -3
  96. package/dist/ai/guides/migration/components/bb-collapsible.md +5 -5
  97. package/dist/ai/guides/migration/components/bb-dialog.md +62 -34
  98. package/dist/ai/guides/migration/components/bb-offcanvas.md +29 -13
  99. package/dist/ai/guides/migration/components/bb-rating.md +8 -2
  100. package/dist/ai/guides/migration/components/bb-select.md +5 -2
  101. package/dist/ai/guides/migration/components/bb-table.md +446 -28
  102. package/dist/ai/guides/migration/components/bb-text-input.md +6 -6
  103. package/dist/ai/guides/migration/v2-to-v3.md +260 -89
  104. package/dist/ai/guides/ssr-prefill.md +120 -0
  105. package/dist/ai/index.md +10 -9
  106. package/dist/ai/recipes/inertia/layout-scaffold.md +5 -1
  107. package/dist/ai/recipes/inertia/ownership-atlas.md +41 -20
  108. package/dist/ai/recipes/inertia/records-workspace.md +26 -7
  109. package/dist/ai/recipes/nuxt/layout-scaffold.md +5 -1
  110. package/dist/ai/recipes/nuxt/records-workspace.md +26 -7
  111. package/dist/ai/recipes/vue/layout-scaffold.md +5 -1
  112. package/dist/ai/recipes/vue/records-workspace.md +26 -7
  113. package/dist/ai/source/BbAlert.md +60 -2
  114. package/dist/ai/source/BbAvatar.md +3 -3
  115. package/dist/ai/source/BbBadge.md +60 -15
  116. package/dist/ai/source/BbBadgeButton.md +8 -2
  117. package/dist/ai/source/BbBaseButton.md +3 -1
  118. package/dist/ai/source/BbBaseCheckboxGroup.md +6 -2
  119. package/dist/ai/source/BbBaseDatePicker.md +3 -1
  120. package/dist/ai/source/BbBaseDatePickerInput.md +5 -1
  121. package/dist/ai/source/BbBaseInputContainer.md +52 -1
  122. package/dist/ai/source/BbBaseRadioGroup.md +4 -0
  123. package/dist/ai/source/BbBaseRating.md +3 -1
  124. package/dist/ai/source/BbBaseSelect.md +71 -16
  125. package/dist/ai/source/BbBaseSwitchGroup.md +4 -0
  126. package/dist/ai/source/BbBaseTimePickerInput.md +5 -1
  127. package/dist/ai/source/BbBreadcrumbs.md +31 -0
  128. package/dist/ai/source/BbButton.md +51 -24
  129. package/dist/ai/source/BbCheckbox.md +15 -1
  130. package/dist/ai/source/BbCheckboxGroup.md +2 -1
  131. package/dist/ai/source/BbCollapsible.md +7 -1
  132. package/dist/ai/source/BbColorInput.md +3 -4
  133. package/dist/ai/source/BbColorPalette.md +3 -4
  134. package/dist/ai/source/BbDatePicker.md +5 -1
  135. package/dist/ai/source/BbDatePickerInput.md +5 -1
  136. package/dist/ai/source/BbDialog.md +175 -19
  137. package/dist/ai/source/BbDropdown.md +376 -69
  138. package/dist/ai/source/BbDropdownGroup.md +330 -59
  139. package/dist/ai/source/BbForm.md +93 -5
  140. package/dist/ai/source/BbIcon.md +46 -36
  141. package/dist/ai/source/BbNumberInput.md +3 -4
  142. package/dist/ai/source/BbOffCanvas.md +474 -194
  143. package/dist/ai/source/BbPopover.md +24 -17
  144. package/dist/ai/source/BbProgress.md +2 -2
  145. package/dist/ai/source/BbRadio.md +15 -1
  146. package/dist/ai/source/BbRadioGroup.md +3 -1
  147. package/dist/ai/source/BbSelect.md +50 -2
  148. package/dist/ai/source/BbSelectPopover.md +171 -23
  149. package/dist/ai/source/BbSlider.md +3 -4
  150. package/dist/ai/source/BbSwitch.md +15 -1
  151. package/dist/ai/source/BbSwitchGroup.md +8 -5
  152. package/dist/ai/source/BbTable.md +4642 -1387
  153. package/dist/ai/source/BbTabs.md +6 -7
  154. package/dist/ai/source/BbTabsList.md +6 -7
  155. package/dist/ai/source/BbTabsPanes.md +6 -7
  156. package/dist/ai/source/BbTabsRoot.md +6 -7
  157. package/dist/ai/source/BbTag.md +3 -4
  158. package/dist/ai/source/BbTextInput.md +3 -4
  159. package/dist/ai/source/BbTextarea.md +3 -4
  160. package/dist/ai/source/BbTimePicker.md +4 -1
  161. package/dist/ai/source/BbTimePickerInput.md +5 -1
  162. package/dist/ai/source/BbToast.md +3 -1
  163. package/dist/ai/source/BbTooltip.md +5 -1
  164. package/dist/ai/source/CommonInputWrapper.md +4 -0
  165. package/dist/ai/source/CommonPopover.md +6 -0
  166. package/dist/ai/source/FlatListBox.md +11 -5
  167. package/dist/ai/source/GroupedListBox.md +7 -5
  168. package/dist/components/BbAlert/BbAlert.vue_vue_type_script_setup_true_lang.js +4 -4
  169. package/dist/components/BbAlert/types.d.ts +10 -1
  170. package/dist/components/BbAvatar/BbAvatar.vue.d.ts +1 -1
  171. package/dist/components/BbAvatar/BbAvatar.vue_vue_type_script_setup_true_lang.js +33 -33
  172. package/dist/components/BbBadge/BadgeBodyContent.vue_vue_type_script_setup_true_lang.js +22 -16
  173. package/dist/components/BbBadge/BbBadge.vue_vue_type_script_setup_true_lang.js +36 -15
  174. package/dist/components/BbBadge/badgeButtonContext.d.ts +21 -8
  175. package/dist/components/BbBadge/types.d.ts +8 -2
  176. package/dist/components/BbBaseButton/BbBaseButton.vue_vue_type_script_setup_true_lang.js +47 -47
  177. package/dist/components/BbBaseButton/RouterComponent.vue_vue_type_script_setup_true_lang.js +14 -14
  178. package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue_vue_type_script_setup_true_lang.js +30 -28
  179. package/dist/components/BbBaseCheckboxGroup/types.d.ts +2 -2
  180. package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue_vue_type_script_setup_true_lang.js +167 -167
  181. package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue.d.ts +9 -9
  182. package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue_vue_type_script_setup_true_lang.js +78 -78
  183. package/dist/components/BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue_vue_type_script_setup_true_lang.js +64 -64
  184. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue.d.ts +1 -1
  185. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue_vue_type_script_setup_true_lang.js +138 -138
  186. package/dist/components/BbBaseInputContainer/BbBaseInputContainer.vue_vue_type_script_setup_true_lang.js +2 -2
  187. package/dist/components/BbBaseRadioGroup/BbBaseRadioGroup.vue_vue_type_script_setup_true_lang.js +24 -22
  188. package/dist/components/BbBaseRating/BbBaseRating.vue_vue_type_script_setup_true_lang.js +40 -40
  189. package/dist/components/BbBaseSelect/BbBaseSelect.vue_vue_type_script_setup_true_lang.js +74 -65
  190. package/dist/components/BbBaseSelect/types.d.ts +22 -0
  191. package/dist/components/BbBaseSlider/BbBaseSlider.vue_vue_type_script_setup_true_lang.js +5 -5
  192. package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue_vue_type_script_setup_true_lang.js +30 -28
  193. package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue.d.ts +1 -1
  194. package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue_vue_type_script_setup_true_lang.js +104 -104
  195. package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue_vue_type_script_setup_true_lang.js +35 -35
  196. package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +85 -81
  197. package/dist/components/BbCheckboxGroup/types.d.ts +2 -1
  198. package/dist/components/BbCollapsible/types.d.ts +7 -1
  199. package/dist/components/BbColorInput/BbColorInput.vue.d.ts +1 -1
  200. package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +18 -18
  201. package/dist/components/BbColorPalette/BbColorPalette.vue.d.ts +2 -2
  202. package/dist/components/BbColorPalette/BbColorPalette.vue_vue_type_script_setup_true_lang.js +50 -50
  203. package/dist/components/BbConfirm/BbConfirm.vue_vue_type_script_setup_true_lang.js +17 -17
  204. package/dist/components/BbDatePicker/BbDatePicker.vue.d.ts +1 -1
  205. package/dist/components/BbDatePicker/BbDatePicker.vue_vue_type_script_setup_true_lang.js +100 -100
  206. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +21 -21
  207. package/dist/components/BbDialog/BbDialog.vue.d.ts +1 -1
  208. package/dist/components/BbDialog/BbDialog.vue_vue_type_script_setup_true_lang.js +133 -107
  209. package/dist/components/BbDialog/types.d.ts +29 -2
  210. package/dist/components/BbDropdown/AdaptiveDropdown.vue.d.ts +2 -0
  211. package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +99 -100
  212. package/dist/components/BbDropdown/BbDropdown.vue.d.ts +2 -2
  213. package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +208 -201
  214. package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +225 -208
  215. package/dist/components/BbDropdown/DropdownPipelineResolver.vue_vue_type_script_setup_true_lang.js +21 -21
  216. package/dist/components/BbDropdown/types.d.ts +20 -5
  217. package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +5 -5
  218. package/dist/components/BbIcon/BbIcon.vue_vue_type_script_setup_true_lang.js +46 -46
  219. package/dist/components/BbIcon/iconCache.d.ts +33 -0
  220. package/dist/components/BbIcon/iconCache.js +17 -0
  221. package/dist/components/BbNumberInput/BbNumberInput.vue.d.ts +1 -1
  222. package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +15 -15
  223. package/dist/components/BbOffCanvas/BbOffCanvas.vue.d.ts +1 -1
  224. package/dist/components/BbOffCanvas/BbOffCanvas.vue_vue_type_script_setup_true_lang.js +254 -208
  225. package/dist/components/BbOffCanvas/types.d.ts +30 -5
  226. package/dist/components/BbPagination/BbPagination.vue.d.ts +1 -1
  227. package/dist/components/BbPopover/BbPopover.vue.d.ts +2 -2
  228. package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +149 -146
  229. package/dist/components/BbPopover/types.d.ts +3 -2
  230. package/dist/components/BbRadioGroup/types.d.ts +3 -1
  231. package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +27 -23
  232. package/dist/components/BbSelect/types.d.ts +32 -0
  233. package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +221 -213
  234. package/dist/components/BbSlider/BbSlider.vue.d.ts +1 -1
  235. package/dist/components/BbSlider/BbSlider.vue_vue_type_script_setup_true_lang.js +20 -20
  236. package/dist/components/BbTable/BbTable.vue.d.ts +8 -4
  237. package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +1319 -616
  238. package/dist/components/BbTable/BbTableDataRow.d.ts +162 -0
  239. package/dist/components/BbTable/BbTableDataRow.js +136 -0
  240. package/dist/components/BbTable/BbTableExpandRow.d.ts +73 -0
  241. package/dist/components/BbTable/BbTableExpandRow.js +52 -0
  242. package/dist/components/BbTable/types.d.ts +247 -86
  243. package/dist/components/BbTable/utils.d.ts +87 -4
  244. package/dist/components/BbTable/utils.js +71 -36
  245. package/dist/components/BbTabs/types.d.ts +0 -8
  246. package/dist/components/BbTag/BbTag.vue.d.ts +1 -1
  247. package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +18 -18
  248. package/dist/components/BbTextInput/BbTextInput.vue.d.ts +1 -1
  249. package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +18 -18
  250. package/dist/components/BbTextarea/BbTextarea.vue.d.ts +1 -1
  251. package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +54 -54
  252. package/dist/components/BbTimePicker/BbTimePicker.vue.d.ts +1 -1
  253. package/dist/components/BbTimePicker/BbTimePicker.vue_vue_type_script_setup_true_lang.js +80 -80
  254. package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +61 -61
  255. package/dist/components/BbToast/BbToast.vue_vue_type_script_setup_true_lang.js +17 -17
  256. package/dist/components/BbToast/BbToastMessage.vue_vue_type_script_setup_true_lang.js +13 -13
  257. package/dist/components/BbTooltip/types.d.ts +5 -1
  258. package/dist/components/ChipsBox/ChipsBox.vue_vue_type_script_setup_true_lang.js +17 -17
  259. package/dist/components/ClearableButton/ClearableButton.vue_vue_type_script_setup_true_lang.js +5 -5
  260. package/dist/components/CommonPopover/CommonPopover.vue_vue_type_script_setup_true_lang.js +2 -1
  261. package/dist/components/FlatListBox/FlatListBox.vue_vue_type_script_setup_true_lang.js +83 -83
  262. package/dist/components/GroupedListBox/GroupedListBox.vue_vue_type_script_setup_true_lang.js +56 -56
  263. package/dist/composables/useBaseOptions.js +30 -20
  264. package/dist/composables/useBbConfig.d.ts +27 -6
  265. package/dist/composables/useBbConfig.js +8 -2
  266. package/dist/composables/useConfig.d.ts +59 -0
  267. package/dist/composables/useConfig.js +9 -0
  268. package/dist/composables/useItemsGetter.d.ts +11 -0
  269. package/dist/composables/useItemsGetter.js +44 -18
  270. package/dist/composables/useLocale.js +10 -7
  271. package/dist/composables/useMobile.js +5 -5
  272. package/dist/composables/usePrefill.d.ts +21 -2
  273. package/dist/composables/usePrefill.js +25 -19
  274. package/dist/composables/useSsrState.d.ts +20 -0
  275. package/dist/composables/useSsrState.js +13 -0
  276. package/dist/composables/useToast.js +5 -5
  277. package/dist/deprecation/ai-deprecations.json.d.ts +99 -11
  278. package/dist/deprecation/ai-deprecations.json.js +1 -1
  279. package/dist/directives/bbDropdown.d.ts +15 -4
  280. package/dist/directives/bbDropdown.js +31 -9
  281. package/dist/directives/createPopoverDirective.d.ts +62 -0
  282. package/dist/directives/createPopoverDirective.js +63 -23
  283. package/dist/i18n/locales/cs.json +4 -1
  284. package/dist/i18n/locales/da.json +4 -1
  285. package/dist/i18n/locales/de.json +4 -1
  286. package/dist/i18n/locales/el.json +4 -1
  287. package/dist/i18n/locales/en.json +4 -1
  288. package/dist/i18n/locales/es.json +4 -1
  289. package/dist/i18n/locales/fi.json +4 -1
  290. package/dist/i18n/locales/fr.json +4 -1
  291. package/dist/i18n/locales/hu.json +4 -1
  292. package/dist/i18n/locales/it.json +4 -1
  293. package/dist/i18n/locales/ja.json +4 -1
  294. package/dist/i18n/locales/ko.json +4 -1
  295. package/dist/i18n/locales/nb.json +4 -1
  296. package/dist/i18n/locales/nl.json +4 -1
  297. package/dist/i18n/locales/pl.json +4 -1
  298. package/dist/i18n/locales/pt.json +4 -1
  299. package/dist/i18n/locales/ro.json +4 -1
  300. package/dist/i18n/locales/ru.json +4 -1
  301. package/dist/i18n/locales/sv.json +4 -1
  302. package/dist/i18n/locales/tr.json +4 -1
  303. package/dist/i18n/locales/uk.json +4 -1
  304. package/dist/i18n/locales/zh-cn.json +4 -1
  305. package/dist/index.d.ts +7 -2
  306. package/dist/index.js +69 -67
  307. package/dist/llms-full.txt +3712 -1381
  308. package/dist/llms-medium.txt +113 -43
  309. package/dist/llms.txt +7 -6
  310. package/dist/locale-blueprint.json +4 -1
  311. package/dist/nuxt-auto-imports.d.ts +100 -0
  312. package/dist/nuxt-auto-imports.js +55 -0
  313. package/dist/nuxt-module.d.ts +22 -1
  314. package/dist/nuxt.js +22 -8
  315. package/dist/plugin.d.ts +10 -1
  316. package/dist/plugin.js +20 -19
  317. package/dist/runtime/nuxt-plugin.js +28 -21
  318. package/dist/styles.css +1 -1
  319. package/dist/utilities/misc/listboxMetrics.d.ts +3 -3
  320. package/dist/utilities/misc/listboxMetrics.js +2 -2
  321. package/dist/utilities/misc/ssrStateInjectionKey.d.ts +42 -0
  322. package/dist/utilities/misc/ssrStateInjectionKey.js +4 -0
  323. package/dist/validated/BbForm.vue_vue_type_script_setup_true_lang.js +45 -27
  324. package/dist/validated/BbSelect.vue.d.ts +2 -0
  325. package/dist/validated/BbSelect.vue_vue_type_script_setup_true_lang.js +1 -0
  326. package/dist/validated/useValidatedField.js +25 -23
  327. package/dist/vite.js +6 -2
  328. package/llms.txt +8 -7
  329. package/package.json +2 -2
  330. package/scripts/lib/eslint-plugin.d.ts +19 -1
  331. package/scripts/lib/eslint-plugin.mjs +146 -0
  332. package/scripts/lib/html-attributes.mjs +91 -0
  333. package/scripts/lib/validate-bb-markup.mjs +59 -4
  334. package/dist/assets/svgs/sort.svg_raw.js +0 -4
  335. package/dist/components/BbBadge/BadgeAppendIcon.vue.d.ts +0 -3
  336. package/dist/components/BbBadge/BadgeAppendIcon.vue.js +0 -5
  337. package/dist/components/BbBadge/BadgeAppendIcon.vue_vue_type_script_setup_true_lang.js +0 -22
@@ -0,0 +1,59 @@
1
+ import { InjectionKey } from 'vue';
2
+ import { ResolvedConfig } from '../types/Config';
3
+ /**
4
+ * Per-app runtime config (Q18.2).
5
+ *
6
+ * ## The problem this replaces
7
+ *
8
+ * `virtual:bitboss-ui/config` is a module-level `reactive({...})` — ONE object
9
+ * for the whole JS module graph, i.e. one per Node process under SSR. Writing
10
+ * to it (`setConfig({ locale })`) therefore wrote for every visitor being
11
+ * served at that moment, not just the one who asked. The victim was never the
12
+ * person who triggered it, and the damage was visible: every library string —
13
+ * a table's no-data text, select-all, pagination, close buttons — comes from
14
+ * this object and is baked into the HTML crawlers and JS-disabled readers get.
15
+ *
16
+ * ## The shape now
17
+ *
18
+ * The virtual module keeps its job as the **build-time defaults**, which is
19
+ * what it always was: values resolved from the Vite plugin's options. What
20
+ * changed is that they are no longer the runtime store. `bitbossUiPlugin`
21
+ * provides a reactive CLONE per app, and SSR already gives every request its
22
+ * own app instance — so per-app is per-request for free, with no new concept
23
+ * for consumers to learn.
24
+ *
25
+ * ## Reading it
26
+ *
27
+ * `useConfig()` from a component (or from a composable a component calls)
28
+ * returns that app's config. With no injection context at all there is no app
29
+ * to ask, so it returns the build-time defaults — the guard is what keeps that
30
+ * silent instead of tripping Vue's "inject() can only be used inside setup()"
31
+ * warning.
32
+ *
33
+ * The guard is `hasInjectionContext()`, NOT `getCurrentInstance()` (Q20.4).
34
+ * The two agree inside a component, but they differ in the one place that
35
+ * matters for SSR: `app.runWithContext(fn)` has an injection context and NO
36
+ * component instance. That is the shape of a framework plugin — a Nuxt plugin
37
+ * setting a per-request locale — and under `getCurrentInstance()` such a call
38
+ * silently resolved to the process-global instead of the app it was made for.
39
+ * Measured: at module scope both are false; in setup both true; inside
40
+ * `app.runWithContext` only `hasInjectionContext()` is true.
41
+ *
42
+ * A call site that reads a **build-time** value (a media query string, the SSR
43
+ * viewport seed, plugin-install options) should keep importing the virtual
44
+ * module directly: those are not per-visitor, they are resolved once at build,
45
+ * and routing them through an injection would only imply a flexibility that
46
+ * does not exist.
47
+ */
48
+ export declare const BB_CONFIG_KEY: InjectionKey<ResolvedConfig>;
49
+ /**
50
+ * A fresh, independent config for one app. Spread rather than shared, so two
51
+ * apps in the same process cannot see each other's writes.
52
+ */
53
+ export declare const createAppConfig: (overrides?: Partial<ResolvedConfig>) => ResolvedConfig;
54
+ /**
55
+ * The active config: this app's, or the build-time defaults when called
56
+ * outside an app (module scope, a store created before mount, a plain
57
+ * function).
58
+ */
59
+ export declare const useConfig: () => ResolvedConfig;
@@ -0,0 +1,9 @@
1
+ import { hasInjectionContext as e, inject as t, reactive as n } from "vue";
2
+ import { config as r } from "virtual:bitboss-ui/config";
3
+ //#region src/composables/useConfig.ts
4
+ var i = Symbol("bitboss-ui:config"), a = (e) => n({
5
+ ...r,
6
+ ...e
7
+ }), o = () => e() ? t(i, r) : r;
8
+ //#endregion
9
+ export { i as BB_CONFIG_KEY, a as createAppConfig, o as useConfig };
@@ -7,6 +7,17 @@ export declare const useItemsGetter: (options: Options) => {
7
7
  getter: (...args: any[]) => Promise<void>;
8
8
  debouncedGetter: (...args: any[]) => Promise<void>;
9
9
  items: import('vue').ShallowRef<any[], any[]>;
10
+ /**
11
+ * Can the client rebuild this load unaided? True for a plain ARRAY source:
12
+ * it arrives as a prop, so the server may resolve it even where no
13
+ * SSR-state adapter exists. Consumers hand it to `usePrefill`.
14
+ */
15
+ clientReproducible: import('vue').ComputedRef<boolean>;
16
+ /**
17
+ * Plain boolean, not a ref: it is decided once, in setup, before the first
18
+ * render, and nothing can flip it afterwards.
19
+ */
20
+ hydratedFromSsr: boolean;
10
21
  loading: import('vue').ComputedRef<boolean>;
11
22
  };
12
23
  export {};
@@ -1,30 +1,56 @@
1
- import { computed as e, ref as t, shallowRef as n, unref as r } from "vue";
2
- import { useDebounceFn as i } from "@vueuse/core";
1
+ import { useHydrated as e } from "./useHydrated.js";
2
+ import { isServerRender as t, useSsrState as n } from "./useSsrState.js";
3
+ import { computed as r, ref as i, shallowRef as a, unref as o, useId as s } from "vue";
4
+ import { useDebounceFn as c } from "@vueuse/core";
3
5
  //#region src/composables/useItemsGetter.ts
4
- var a = (a) => {
5
- let o = e(() => r(a.items)), s = n([]), c = t(0), l = 0, u = async (...e) => {
6
- if (Array.isArray(o.value)) {
7
- ++l, s.value = o.value;
6
+ var l = (e) => {
7
+ if (!Array.isArray(e)) return !1;
8
+ let t = e.find((e) => e && typeof e == "object");
9
+ return !t || !Object.values(t).some((e) => typeof e == "function" || typeof e == "symbol");
10
+ }, u = (u) => {
11
+ let d = r(() => o(u.items)), f = a([]), p = i(0), m = 0, h = n(), g = `bb-items:${s()}`, _ = !1, v = null;
12
+ if (h.enabled && !t) {
13
+ let e = h.get(g);
14
+ Array.isArray(e) && (f.value = e, v = e, _ = !0);
15
+ }
16
+ let y = (e) => {
17
+ if (!(!h.enabled || !t)) {
18
+ if (!l(e)) {
19
+ process.env.NODE_ENV !== "production" && console.warn("[bitboss-ui] An `items` provider resolved rows that cannot be serialized into the SSR payload (a row carries a function or a symbol — a class instance or an ORM model, most likely). The server-rendered options were dropped so hydration still matches; the client will fetch them again. Return plain objects to keep the server-side resolution."), f.value = [];
20
+ return;
21
+ }
22
+ h.set(g, e);
23
+ }
24
+ }, b = async (...e) => {
25
+ if (Array.isArray(d.value)) {
26
+ ++m, f.value = d.value;
27
+ return;
28
+ }
29
+ if (typeof d.value != "function") return;
30
+ if (v) {
31
+ let e = v;
32
+ v = null, ++m, f.value = e;
8
33
  return;
9
34
  }
10
- if (typeof o.value != "function") return;
11
- let t = ++l;
12
- c.value++;
35
+ let t = ++m;
36
+ p.value++;
13
37
  try {
14
- let n = await o.value(...e);
15
- t === l && (s.value = n);
38
+ let n = await d.value(...e);
39
+ t === m && (f.value = n, y(n));
16
40
  } catch (e) {
17
41
  console.error(e);
18
42
  } finally {
19
- c.value--;
43
+ p.value--;
20
44
  }
21
- }, d = i(u, a.debounce || 0);
45
+ }, x = c(b, u.debounce || 0), S = (...e) => Array.isArray(d.value) ? b(...e) : x(...e), { isHydrated: C } = e();
22
46
  return {
23
- getter: u,
24
- debouncedGetter: (...e) => Array.isArray(o.value) ? u(...e) : d(...e),
25
- items: s,
26
- loading: e(() => c.value > 0)
47
+ getter: b,
48
+ debouncedGetter: S,
49
+ items: f,
50
+ clientReproducible: r(() => Array.isArray(d.value)),
51
+ hydratedFromSsr: _,
52
+ loading: r(() => C.value ? p.value > 0 : !1)
27
53
  };
28
54
  };
29
55
  //#endregion
30
- export { a as useItemsGetter };
56
+ export { u as useItemsGetter };
@@ -1,11 +1,14 @@
1
- import { get as e } from "../utilities/functions/get.js";
2
- import { config as t } from "virtual:bitboss-ui/config";
1
+ import { useConfig as e } from "./useConfig.js";
2
+ import { get as t } from "../utilities/functions/get.js";
3
3
  import { computed as n, readonly as r } from "vue";
4
4
  import { locales as i } from "virtual:bitboss-ui/locales";
5
5
  //#region src/composables/useLocale.ts
6
- var a = (a, ...o) => r(n(() => {
7
- let n = i[t.locale] ?? {}, r = i[t.defaultLocale] ?? {}, s = e(n, a) ?? e(r, a) ?? a;
8
- return String(s).replace(/\{(\d+)\}/g, (e, t) => o[Number(t)]);
9
- })), o = () => ({ t: a });
6
+ var a = () => {
7
+ let a = e();
8
+ return { t: (e, ...o) => r(n(() => {
9
+ let n = i[a.locale] ?? {}, r = i[a.defaultLocale] ?? {}, s = t(n, e) ?? t(r, e) ?? e;
10
+ return String(s).replace(/\{(\d+)\}/g, (e, t) => o[Number(t)]);
11
+ })) };
12
+ };
10
13
  //#endregion
11
- export { o as useLocale };
14
+ export { a as useLocale };
@@ -1,14 +1,14 @@
1
- import { config as e } from "virtual:bitboss-ui/config";
2
- import { computed as t, ref as n } from "vue";
1
+ import { computed as e, ref as t } from "vue";
2
+ import { config as n } from "virtual:bitboss-ui/config";
3
3
  //#region src/composables/useMobile.ts
4
- var r = `(max-width: ${e.mobileMaxWidth - .02}px)`, i = typeof window < "u" && typeof window.matchMedia == "function", a = e.ssrViewportWidth < e.mobileMaxWidth, o = n(i ? window.matchMedia(r).matches : a);
4
+ var r = `(max-width: ${n.mobileMaxWidth - .02}px)`, i = typeof window < "u" && typeof window.matchMedia == "function", a = n.ssrViewportWidth < n.mobileMaxWidth, o = t(i ? window.matchMedia(r).matches : a);
5
5
  i && window.matchMedia(r).addEventListener("change", (e) => {
6
6
  o.value = e.matches;
7
7
  });
8
- var s = n(!i);
8
+ var s = t(!i);
9
9
  i && queueMicrotask(() => {
10
10
  s.value = !0;
11
11
  });
12
- var c = n(null), l = n(null), u = t(() => c.value == null ? l.value ?? s.value ? o.value : a : c.value), d = () => ({ isMobile: u });
12
+ var c = t(null), l = t(null), u = e(() => c.value == null ? l.value ?? s.value ? o.value : a : c.value), d = () => ({ isMobile: u });
13
13
  //#endregion
14
14
  export { d as useMobile };
@@ -12,9 +12,28 @@ type Options = {
12
12
  trigger?: MaybeRefOrGetter<boolean>;
13
13
  multiple?: boolean;
14
14
  currentValue?: MaybeRefOrGetter<any>;
15
+ /**
16
+ * "The first load already happened — don't do it again."
17
+ *
18
+ * Set by consumers from `useItemsGetter`'s `hydratedFromSsr`: the server
19
+ * resolved the provider and the result travelled in the SSR payload, so the
20
+ * options are already in hand before the first client render. Read ONCE, in
21
+ * setup — it describes how this instance started, and nothing later changes
22
+ * that.
23
+ */
24
+ alreadyLoaded?: MaybeRefOrGetter<boolean>;
25
+ /**
26
+ * "The client can rebuild this load without help."
27
+ *
28
+ * True for a plain `items` ARRAY: it arrives as a prop, so a server render of
29
+ * it is reproduced exactly on the client with no transfer. Such a source may
30
+ * resolve during SSR even on a host with no SSR-state adapter. An async
31
+ * provider is the opposite case and needs the adapter.
32
+ */
33
+ clientReproducible?: MaybeRefOrGetter<boolean>;
15
34
  };
16
- export declare const usePrefill: ({ fn, trigger, multiple, currentValue, }: Options) => {
17
- isPrefilling: import('vue').Ref<boolean, boolean>;
35
+ export declare const usePrefill: ({ fn, trigger, multiple, currentValue, alreadyLoaded, clientReproducible, }: Options) => {
36
+ isPrefilling: import('vue').ComputedRef<boolean>;
18
37
  hasPrefilled: import('vue').Ref<boolean, boolean>;
19
38
  canLoad: import('vue').ComputedRef<boolean>;
20
39
  prefill: () => Promise<void>;
@@ -1,24 +1,30 @@
1
- import { isNotNil as e } from "../utilities/functions/isNotNil.js";
2
- import { computed as t, onBeforeMount as n, onServerPrefetch as r, ref as i, toValue as a } from "vue";
1
+ import { useHydrated as e } from "./useHydrated.js";
2
+ import { useSsrState as t } from "./useSsrState.js";
3
+ import { isNotNil as n } from "../utilities/functions/isNotNil.js";
4
+ import { computed as r, onBeforeMount as i, onServerPrefetch as a, ref as o, toValue as s } from "vue";
3
5
  //#region src/composables/usePrefill.ts
4
- var o = ({ fn: o, trigger: s = !1, multiple: c, currentValue: l }) => {
5
- let u = t(() => {
6
- let t = a(l);
7
- return c ? !!t?.length : e(t);
8
- }), d = t(() => !!a(s) || u.value), f = i(!1), p = i(!1), m = t(() => d.value || p.value), h = async () => {
9
- f.value || p.value || (f.value = !0, await o(!0), f.value = !1, p.value = !0);
10
- };
11
- return d.value && (r(h), n(async () => {
12
- p.value || await h();
13
- })), {
14
- isPrefilling: f,
15
- hasPrefilled: p,
16
- canLoad: m,
17
- prefill: h,
18
- markPrefilled: () => {
19
- p.value = !0;
6
+ var c = ({ fn: c, trigger: l = !1, multiple: u, currentValue: d, alreadyLoaded: f, clientReproducible: p }) => {
7
+ let m = r(() => {
8
+ let e = s(d);
9
+ return u ? !!e?.length : n(e);
10
+ }), h = r(() => !!s(l) || m.value), g = o(!1), { isHydrated: _ } = e(), v = r(() => _.value ? g.value : !1), y = o(s(f) === !0), b = r(() => h.value || y.value), x = async () => {
11
+ g.value || y.value || (g.value = !0, await c(!0), g.value = !1, y.value = !0);
12
+ }, S = () => {
13
+ y.value = !0;
14
+ }, C = t();
15
+ return h.value && ((C.enabled || s(p) === !0) && a(x), i(async () => {
16
+ if (y.value) {
17
+ s(f) === !0 && await c(!0);
18
+ return;
20
19
  }
20
+ await x();
21
+ })), {
22
+ isPrefilling: v,
23
+ hasPrefilled: y,
24
+ canLoad: b,
25
+ prefill: x,
26
+ markPrefilled: S
21
27
  };
22
28
  };
23
29
  //#endregion
24
- export { o as usePrefill };
30
+ export { c as usePrefill };
@@ -0,0 +1,20 @@
1
+ /** True while rendering on a server (no DOM). */
2
+ export declare const isServerRender: boolean;
3
+ /**
4
+ * Read the host's SSR-state adapter, if it installed one.
5
+ *
6
+ * `enabled` is the load-bearing part of the return: it is what lets the library
7
+ * decide whether it is ALLOWED to resolve async data on the server. Rendering
8
+ * resolved content the client cannot reproduce is worse than rendering a cold
9
+ * placeholder — the client repaints either way, but the mismatched version also
10
+ * logs a hydration error and, in production, keeps the stale server HTML.
11
+ *
12
+ * Must be called from a component `setup()` (it injects). Safe to call in an
13
+ * app with no SSR at all: `enabled` is then false and both methods are no-ops.
14
+ */
15
+ export declare const useSsrState: () => {
16
+ /** Did the host install an adapter? Gates all server-side prefetching. */
17
+ enabled: boolean;
18
+ get: <T>(key: string) => T | undefined;
19
+ set: <T>(key: string, value: T) => void;
20
+ };
@@ -0,0 +1,13 @@
1
+ import { SSR_STATE_INJECTION_KEY as e } from "../utilities/misc/ssrStateInjectionKey.js";
2
+ import { inject as t } from "vue";
3
+ //#region src/composables/useSsrState.ts
4
+ var n = typeof window > "u", r = () => {
5
+ let n = t(e, null);
6
+ return {
7
+ enabled: !!n,
8
+ get: (e) => n?.get(e),
9
+ set: (e, t) => n?.set(e, t)
10
+ };
11
+ };
12
+ //#endregion
13
+ export { n as isServerRender, r as useSsrState };
@@ -1,13 +1,13 @@
1
1
  import { wait as e } from "../utilities/functions/wait.js";
2
- import { config as t } from "virtual:bitboss-ui/config";
3
- import { reactive as n } from "vue";
2
+ import { reactive as t } from "vue";
3
+ import { config as n } from "virtual:bitboss-ui/config";
4
4
  //#region src/composables/useToast.ts
5
5
  var r = 300, i = /* @__PURE__ */ new Set([
6
6
  "success",
7
7
  "info",
8
8
  "warning",
9
9
  "destructive"
10
- ]), a = n({ toasts: [] }), o = 0, s = !1, c = !1, l = () => {
10
+ ]), a = t({ toasts: [] }), o = 0, s = !1, c = !1, l = () => {
11
11
  o++, s = !0;
12
12
  let e = !1;
13
13
  return {
@@ -16,7 +16,7 @@ var r = 300, i = /* @__PURE__ */ new Set([
16
16
  e || (e = !0, o--);
17
17
  }
18
18
  };
19
- }, u = n(/* @__PURE__ */ new Map()), d = (e, t) => (u.set(e, t), () => u.delete(e)), f = 0, p = (e) => {
19
+ }, u = t(/* @__PURE__ */ new Map()), d = (e, t) => (u.set(e, t), () => u.delete(e)), f = 0, p = (e) => {
20
20
  if (e.duration !== void 0 && e.duration <= 0) throw Error("Toast duration must be a positive number of milliseconds.");
21
21
  let t = e.id ?? `bb-toast-${++f}`, n = Date.now(), r = a.toasts.find((e) => e.id === t), i = e.loading ?? r?.loading ?? !1, o = e.persistent ?? i, s, c;
22
22
  o ? (s = Infinity, c = Number.isFinite(r?.duration) ? r?.duration : r?.preLoadingDuration) : e.duration === void 0 ? r && Number.isFinite(r.duration) ? s = r.duration : r && Number.isFinite(r.preLoadingDuration) && (s = r.preLoadingDuration) : s = e.duration;
@@ -53,7 +53,7 @@ var r = 300, i = /* @__PURE__ */ new Set([
53
53
  }) : e, _ = (e) => {
54
54
  let t = typeof e == "string" ? { title: e } : e;
55
55
  return typeof window > "u" ? (process.env.NODE_ENV !== "production" && console.warn("[BbToast] toast() was called during server-side rendering — ignored. Trigger toasts from client-side code (onMounted, event handlers)."), t.id ?? "") : (process.env.NODE_ENV !== "production" && !s && !c && (c = !0, console.warn("[BbToast] toast() was called but no <BbToast> host has ever mounted — the toast is queued but nothing will render or expire it. Mount exactly one <BbToast /> at the app root.")), process.env.NODE_ENV !== "production" && !t.title && !t.text && !t.portal && console.warn("[BbToast] A toast was created with no title, text, or portal — it will render empty."), process.env.NODE_ENV !== "production" && t.portal && t.actions && console.warn("[BbToast] A toast carries both `portal` and `actions` — portal content owns the body, so the actions are not rendered. Render the buttons inside the portal instead."), process.env.NODE_ENV !== "production" && t.variant && t.variant !== "default" && i.has(t.variant) && !t.icon && !t.loading && !t.portal && console.warn(`[BbToast] A "${t.variant}" toast was created with no \`icon\` — the variant tints the icon and sets announcement priority, nothing else, so this renders identically to a default toast. Pass a matching \`icon\` (e.g. lucide:circle-check / lucide:circle-x) when the tone should be visible.`), p(t));
56
- }, v = (e, n) => e.position ?? n ?? t.toastPosition ?? "bottom-right", y = () => ({
56
+ }, v = (e, t) => e.position ?? t ?? n.toastPosition ?? "bottom-right", y = () => ({
57
57
  toast: _,
58
58
  dismiss: h,
59
59
  update: g
@@ -109,6 +109,17 @@ declare const _default: [
109
109
  "kind": "manual"
110
110
  }
111
111
  },
112
+ {
113
+ "component": "BbCheckboxGroup",
114
+ "old": "color",
115
+ "new": null,
116
+ "since": "3.0.0-unreleased",
117
+ "silent": true,
118
+ "migration": "ai/guides/migration/components/bb-checkbox-group.md",
119
+ "fix": {
120
+ "kind": "manual"
121
+ }
122
+ },
112
123
  {
113
124
  "component": "BbCheckboxGroup",
114
125
  "old": "labelPosition",
@@ -269,17 +280,6 @@ declare const _default: [
269
280
  "kind": "manual"
270
281
  }
271
282
  },
272
- {
273
- "component": "BbDialog",
274
- "old": "description",
275
- "new": null,
276
- "since": "3.0.0-unreleased",
277
- "silent": true,
278
- "migration": "ai/guides/migration/components/bb-dialog.md",
279
- "fix": {
280
- "kind": "manual"
281
- }
282
- },
283
283
  {
284
284
  "component": "BbDialog",
285
285
  "old": "hideHeader",
@@ -368,6 +368,17 @@ declare const _default: [
368
368
  "kind": "invert"
369
369
  }
370
370
  },
371
+ {
372
+ "component": "BbDropdownButton",
373
+ "old": "theme",
374
+ "new": "variant",
375
+ "since": "3.0.0-unreleased",
376
+ "silent": true,
377
+ "migration": "ai/guides/migration/components/bb-dropdown-button.md",
378
+ "fix": {
379
+ "kind": "rename"
380
+ }
381
+ },
371
382
  {
372
383
  "component": "BbIcon",
373
384
  "old": "color",
@@ -390,6 +401,17 @@ declare const _default: [
390
401
  "kind": "rename"
391
402
  }
392
403
  },
404
+ {
405
+ "component": "BbOffCanvas",
406
+ "old": "compact",
407
+ "new": null,
408
+ "since": "3.0.0-unreleased",
409
+ "silent": true,
410
+ "migration": "ai/guides/migration/components/bb-offcanvas.md",
411
+ "fix": {
412
+ "kind": "manual"
413
+ }
414
+ },
393
415
  {
394
416
  "component": "BbOffCanvas",
395
417
  "old": "direction",
@@ -533,6 +555,28 @@ declare const _default: [
533
555
  "kind": "manual"
534
556
  }
535
557
  },
558
+ {
559
+ "component": "BbRadio",
560
+ "old": "color",
561
+ "new": null,
562
+ "since": "3.0.0-unreleased",
563
+ "silent": true,
564
+ "migration": "ai/guides/migration/components/bb-checkbox.md",
565
+ "fix": {
566
+ "kind": "manual"
567
+ }
568
+ },
569
+ {
570
+ "component": "BbRadioGroup",
571
+ "old": "color",
572
+ "new": null,
573
+ "since": "3.0.0-unreleased",
574
+ "silent": true,
575
+ "migration": "ai/guides/migration/components/bb-checkbox-group.md",
576
+ "fix": {
577
+ "kind": "manual"
578
+ }
579
+ },
536
580
  {
537
581
  "component": "BbRadioGroup",
538
582
  "old": "labelPosition",
@@ -682,6 +726,28 @@ declare const _default: [
682
726
  "kind": "manual"
683
727
  }
684
728
  },
729
+ {
730
+ "component": "BbSwitch",
731
+ "old": "color",
732
+ "new": null,
733
+ "since": "3.0.0-unreleased",
734
+ "silent": true,
735
+ "migration": "ai/guides/migration/components/bb-checkbox.md",
736
+ "fix": {
737
+ "kind": "manual"
738
+ }
739
+ },
740
+ {
741
+ "component": "BbSwitchGroup",
742
+ "old": "color",
743
+ "new": null,
744
+ "since": "3.0.0-unreleased",
745
+ "silent": true,
746
+ "migration": "ai/guides/migration/components/bb-checkbox-group.md",
747
+ "fix": {
748
+ "kind": "manual"
749
+ }
750
+ },
685
751
  {
686
752
  "component": "BbSwitchGroup",
687
753
  "old": "labelPosition",
@@ -748,6 +814,28 @@ declare const _default: [
748
814
  "kind": "rename"
749
815
  }
750
816
  },
817
+ {
818
+ "component": "BbTabsRoot",
819
+ "old": "animateX",
820
+ "new": "disableAnimateX",
821
+ "since": "3.0.0-unreleased",
822
+ "silent": true,
823
+ "migration": "ai/guides/migration/components/bb-tabs.md",
824
+ "fix": {
825
+ "kind": "invert"
826
+ }
827
+ },
828
+ {
829
+ "component": "BbTabsRoot",
830
+ "old": "animateY",
831
+ "new": "disableAnimateY",
832
+ "since": "3.0.0-unreleased",
833
+ "silent": true,
834
+ "migration": "ai/guides/migration/components/bb-tabs.md",
835
+ "fix": {
836
+ "kind": "invert"
837
+ }
838
+ },
751
839
  {
752
840
  "component": "BbTabsRoot",
753
841
  "old": "querykey",