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

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 (350) 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 +920 -109
  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 +128 -2
  84. package/dist/ai/components.json +917 -100
  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 +18 -18
  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 +11 -5
  93. package/dist/ai/guides/installation-and-plugin-setup.md +85 -23
  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 +560 -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/approvals-inbox.md +0 -1
  107. package/dist/ai/recipes/inertia/inline-edit-workspace.md +0 -1
  108. package/dist/ai/recipes/inertia/layout-scaffold.md +5 -1
  109. package/dist/ai/recipes/inertia/ownership-atlas.md +49 -29
  110. package/dist/ai/recipes/inertia/record-form.md +0 -1
  111. package/dist/ai/recipes/inertia/records-workspace.md +26 -8
  112. package/dist/ai/recipes/inertia/upload-center.md +0 -1
  113. package/dist/ai/recipes/nuxt/approvals-inbox.md +0 -1
  114. package/dist/ai/recipes/nuxt/inline-edit-workspace.md +0 -1
  115. package/dist/ai/recipes/nuxt/layout-scaffold.md +5 -1
  116. package/dist/ai/recipes/nuxt/record-form.md +0 -1
  117. package/dist/ai/recipes/nuxt/records-workspace.md +26 -8
  118. package/dist/ai/recipes/nuxt/upload-center.md +0 -1
  119. package/dist/ai/recipes/vue/approvals-inbox.md +0 -1
  120. package/dist/ai/recipes/vue/inline-edit-workspace.md +0 -1
  121. package/dist/ai/recipes/vue/layout-scaffold.md +5 -1
  122. package/dist/ai/recipes/vue/records-workspace.md +26 -8
  123. package/dist/ai/recipes/vue/upload-center.md +0 -1
  124. package/dist/ai/source/BbAlert.md +60 -2
  125. package/dist/ai/source/BbAvatar.md +3 -3
  126. package/dist/ai/source/BbBadge.md +60 -15
  127. package/dist/ai/source/BbBadgeButton.md +8 -2
  128. package/dist/ai/source/BbBaseButton.md +3 -1
  129. package/dist/ai/source/BbBaseCheckboxGroup.md +6 -2
  130. package/dist/ai/source/BbBaseDatePicker.md +3 -1
  131. package/dist/ai/source/BbBaseDatePickerInput.md +5 -1
  132. package/dist/ai/source/BbBaseInputContainer.md +52 -1
  133. package/dist/ai/source/BbBaseRadioGroup.md +4 -0
  134. package/dist/ai/source/BbBaseRating.md +3 -1
  135. package/dist/ai/source/BbBaseSelect.md +71 -16
  136. package/dist/ai/source/BbBaseSwitchGroup.md +4 -0
  137. package/dist/ai/source/BbBaseTimePickerInput.md +5 -1
  138. package/dist/ai/source/BbBreadcrumbs.md +31 -0
  139. package/dist/ai/source/BbButton.md +51 -24
  140. package/dist/ai/source/BbCheckbox.md +15 -1
  141. package/dist/ai/source/BbCheckboxGroup.md +2 -1
  142. package/dist/ai/source/BbCollapsible.md +7 -1
  143. package/dist/ai/source/BbColorInput.md +3 -4
  144. package/dist/ai/source/BbColorPalette.md +3 -4
  145. package/dist/ai/source/BbDatePicker.md +5 -1
  146. package/dist/ai/source/BbDatePickerInput.md +5 -1
  147. package/dist/ai/source/BbDialog.md +175 -19
  148. package/dist/ai/source/BbDropdown.md +376 -69
  149. package/dist/ai/source/BbDropdownGroup.md +330 -59
  150. package/dist/ai/source/BbForm.md +93 -5
  151. package/dist/ai/source/BbIcon.md +46 -36
  152. package/dist/ai/source/BbNumberInput.md +3 -4
  153. package/dist/ai/source/BbOffCanvas.md +474 -194
  154. package/dist/ai/source/BbPopover.md +24 -17
  155. package/dist/ai/source/BbProgress.md +2 -2
  156. package/dist/ai/source/BbRadio.md +15 -1
  157. package/dist/ai/source/BbRadioGroup.md +3 -1
  158. package/dist/ai/source/BbSelect.md +50 -2
  159. package/dist/ai/source/BbSelectPopover.md +171 -23
  160. package/dist/ai/source/BbSlider.md +3 -4
  161. package/dist/ai/source/BbSwitch.md +15 -1
  162. package/dist/ai/source/BbSwitchGroup.md +8 -5
  163. package/dist/ai/source/BbTable.md +5092 -1446
  164. package/dist/ai/source/BbTabs.md +6 -7
  165. package/dist/ai/source/BbTabsList.md +6 -7
  166. package/dist/ai/source/BbTabsPanes.md +6 -7
  167. package/dist/ai/source/BbTabsRoot.md +6 -7
  168. package/dist/ai/source/BbTag.md +3 -4
  169. package/dist/ai/source/BbTextInput.md +3 -4
  170. package/dist/ai/source/BbTextarea.md +3 -4
  171. package/dist/ai/source/BbTimePicker.md +4 -1
  172. package/dist/ai/source/BbTimePickerInput.md +5 -1
  173. package/dist/ai/source/BbToast.md +3 -1
  174. package/dist/ai/source/BbTooltip.md +5 -1
  175. package/dist/ai/source/CommonInputWrapper.md +4 -0
  176. package/dist/ai/source/CommonPopover.md +6 -0
  177. package/dist/ai/source/FlatListBox.md +11 -5
  178. package/dist/ai/source/GroupedListBox.md +7 -5
  179. package/dist/components/BbAlert/BbAlert.vue_vue_type_script_setup_true_lang.js +4 -4
  180. package/dist/components/BbAlert/types.d.ts +10 -1
  181. package/dist/components/BbAvatar/BbAvatar.vue.d.ts +1 -1
  182. package/dist/components/BbAvatar/BbAvatar.vue_vue_type_script_setup_true_lang.js +33 -33
  183. package/dist/components/BbBadge/BadgeBodyContent.vue_vue_type_script_setup_true_lang.js +22 -16
  184. package/dist/components/BbBadge/BbBadge.vue_vue_type_script_setup_true_lang.js +36 -15
  185. package/dist/components/BbBadge/badgeButtonContext.d.ts +21 -8
  186. package/dist/components/BbBadge/types.d.ts +8 -2
  187. package/dist/components/BbBaseButton/BbBaseButton.vue_vue_type_script_setup_true_lang.js +47 -47
  188. package/dist/components/BbBaseButton/RouterComponent.vue_vue_type_script_setup_true_lang.js +14 -14
  189. package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue_vue_type_script_setup_true_lang.js +30 -28
  190. package/dist/components/BbBaseCheckboxGroup/types.d.ts +2 -2
  191. package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue_vue_type_script_setup_true_lang.js +167 -167
  192. package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue.d.ts +9 -9
  193. package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue_vue_type_script_setup_true_lang.js +78 -78
  194. package/dist/components/BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue_vue_type_script_setup_true_lang.js +64 -64
  195. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue.d.ts +1 -1
  196. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue_vue_type_script_setup_true_lang.js +138 -138
  197. package/dist/components/BbBaseInputContainer/BbBaseInputContainer.vue_vue_type_script_setup_true_lang.js +2 -2
  198. package/dist/components/BbBaseRadioGroup/BbBaseRadioGroup.vue_vue_type_script_setup_true_lang.js +24 -22
  199. package/dist/components/BbBaseRating/BbBaseRating.vue_vue_type_script_setup_true_lang.js +40 -40
  200. package/dist/components/BbBaseSelect/BbBaseSelect.vue_vue_type_script_setup_true_lang.js +74 -65
  201. package/dist/components/BbBaseSelect/types.d.ts +22 -0
  202. package/dist/components/BbBaseSlider/BbBaseSlider.vue_vue_type_script_setup_true_lang.js +5 -5
  203. package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue_vue_type_script_setup_true_lang.js +30 -28
  204. package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue.d.ts +1 -1
  205. package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue_vue_type_script_setup_true_lang.js +104 -104
  206. package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue_vue_type_script_setup_true_lang.js +35 -35
  207. package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +85 -81
  208. package/dist/components/BbCheckboxGroup/types.d.ts +2 -1
  209. package/dist/components/BbCollapsible/types.d.ts +7 -1
  210. package/dist/components/BbColorInput/BbColorInput.vue.d.ts +1 -1
  211. package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +18 -18
  212. package/dist/components/BbColorPalette/BbColorPalette.vue.d.ts +2 -2
  213. package/dist/components/BbColorPalette/BbColorPalette.vue_vue_type_script_setup_true_lang.js +50 -50
  214. package/dist/components/BbConfirm/BbConfirm.vue_vue_type_script_setup_true_lang.js +17 -17
  215. package/dist/components/BbDatePicker/BbDatePicker.vue.d.ts +1 -1
  216. package/dist/components/BbDatePicker/BbDatePicker.vue_vue_type_script_setup_true_lang.js +100 -100
  217. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +21 -21
  218. package/dist/components/BbDialog/BbDialog.vue.d.ts +1 -1
  219. package/dist/components/BbDialog/BbDialog.vue_vue_type_script_setup_true_lang.js +133 -107
  220. package/dist/components/BbDialog/types.d.ts +29 -2
  221. package/dist/components/BbDropdown/AdaptiveDropdown.vue.d.ts +2 -0
  222. package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +99 -100
  223. package/dist/components/BbDropdown/BbDropdown.vue.d.ts +2 -2
  224. package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +208 -201
  225. package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +225 -208
  226. package/dist/components/BbDropdown/DropdownPipelineResolver.vue_vue_type_script_setup_true_lang.js +21 -21
  227. package/dist/components/BbDropdown/types.d.ts +20 -5
  228. package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +5 -5
  229. package/dist/components/BbIcon/BbIcon.vue_vue_type_script_setup_true_lang.js +46 -46
  230. package/dist/components/BbIcon/iconCache.d.ts +33 -0
  231. package/dist/components/BbIcon/iconCache.js +17 -0
  232. package/dist/components/BbNumberInput/BbNumberInput.vue.d.ts +1 -1
  233. package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +15 -15
  234. package/dist/components/BbOffCanvas/BbOffCanvas.vue.d.ts +1 -1
  235. package/dist/components/BbOffCanvas/BbOffCanvas.vue_vue_type_script_setup_true_lang.js +254 -208
  236. package/dist/components/BbOffCanvas/types.d.ts +30 -5
  237. package/dist/components/BbPagination/BbPagination.vue.d.ts +1 -1
  238. package/dist/components/BbPopover/BbPopover.vue.d.ts +2 -2
  239. package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +149 -146
  240. package/dist/components/BbPopover/types.d.ts +3 -2
  241. package/dist/components/BbRadioGroup/types.d.ts +3 -1
  242. package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +27 -23
  243. package/dist/components/BbSelect/types.d.ts +32 -0
  244. package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +221 -213
  245. package/dist/components/BbSlider/BbSlider.vue.d.ts +1 -1
  246. package/dist/components/BbSlider/BbSlider.vue_vue_type_script_setup_true_lang.js +20 -20
  247. package/dist/components/BbTable/BbTable.vue.d.ts +10 -4
  248. package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +1433 -600
  249. package/dist/components/BbTable/BbTableDataRow.d.ts +162 -0
  250. package/dist/components/BbTable/BbTableDataRow.js +136 -0
  251. package/dist/components/BbTable/BbTableExpandRow.d.ts +73 -0
  252. package/dist/components/BbTable/BbTableExpandRow.js +52 -0
  253. package/dist/components/BbTable/types.d.ts +324 -111
  254. package/dist/components/BbTable/utils.d.ts +92 -4
  255. package/dist/components/BbTable/utils.js +71 -36
  256. package/dist/components/BbTabs/types.d.ts +0 -8
  257. package/dist/components/BbTag/BbTag.vue.d.ts +1 -1
  258. package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +18 -18
  259. package/dist/components/BbTextInput/BbTextInput.vue.d.ts +1 -1
  260. package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +18 -18
  261. package/dist/components/BbTextarea/BbTextarea.vue.d.ts +1 -1
  262. package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +54 -54
  263. package/dist/components/BbTimePicker/BbTimePicker.vue.d.ts +1 -1
  264. package/dist/components/BbTimePicker/BbTimePicker.vue_vue_type_script_setup_true_lang.js +80 -80
  265. package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +61 -61
  266. package/dist/components/BbToast/BbToast.vue_vue_type_script_setup_true_lang.js +17 -17
  267. package/dist/components/BbToast/BbToastMessage.vue_vue_type_script_setup_true_lang.js +13 -13
  268. package/dist/components/BbTooltip/types.d.ts +5 -1
  269. package/dist/components/ChipsBox/ChipsBox.vue_vue_type_script_setup_true_lang.js +17 -17
  270. package/dist/components/ClearableButton/ClearableButton.vue_vue_type_script_setup_true_lang.js +5 -5
  271. package/dist/components/CommonPopover/CommonPopover.vue_vue_type_script_setup_true_lang.js +2 -1
  272. package/dist/components/FlatListBox/FlatListBox.vue_vue_type_script_setup_true_lang.js +83 -83
  273. package/dist/components/GroupedListBox/GroupedListBox.vue_vue_type_script_setup_true_lang.js +56 -56
  274. package/dist/composables/useBaseOptions.js +30 -20
  275. package/dist/composables/useBbConfig.d.ts +27 -6
  276. package/dist/composables/useBbConfig.js +8 -2
  277. package/dist/composables/useConfig.d.ts +59 -0
  278. package/dist/composables/useConfig.js +9 -0
  279. package/dist/composables/useItemsGetter.d.ts +11 -0
  280. package/dist/composables/useItemsGetter.js +44 -18
  281. package/dist/composables/useLocale.js +10 -7
  282. package/dist/composables/useMobile.js +5 -5
  283. package/dist/composables/usePrefill.d.ts +21 -2
  284. package/dist/composables/usePrefill.js +25 -19
  285. package/dist/composables/useSsrState.d.ts +20 -0
  286. package/dist/composables/useSsrState.js +13 -0
  287. package/dist/composables/useTableWidthContext.d.ts +24 -4
  288. package/dist/composables/useTableWidthContext.js +31 -28
  289. package/dist/composables/useToast.js +5 -5
  290. package/dist/deprecation/ai-deprecations.json.d.ts +121 -11
  291. package/dist/deprecation/ai-deprecations.json.js +1 -1
  292. package/dist/directives/bbDropdown.d.ts +15 -4
  293. package/dist/directives/bbDropdown.js +31 -9
  294. package/dist/directives/createPopoverDirective.d.ts +62 -0
  295. package/dist/directives/createPopoverDirective.js +63 -23
  296. package/dist/i18n/locales/cs.json +4 -1
  297. package/dist/i18n/locales/da.json +4 -1
  298. package/dist/i18n/locales/de.json +4 -1
  299. package/dist/i18n/locales/el.json +4 -1
  300. package/dist/i18n/locales/en.json +4 -1
  301. package/dist/i18n/locales/es.json +4 -1
  302. package/dist/i18n/locales/fi.json +4 -1
  303. package/dist/i18n/locales/fr.json +4 -1
  304. package/dist/i18n/locales/hu.json +4 -1
  305. package/dist/i18n/locales/it.json +4 -1
  306. package/dist/i18n/locales/ja.json +4 -1
  307. package/dist/i18n/locales/ko.json +4 -1
  308. package/dist/i18n/locales/nb.json +4 -1
  309. package/dist/i18n/locales/nl.json +4 -1
  310. package/dist/i18n/locales/pl.json +4 -1
  311. package/dist/i18n/locales/pt.json +4 -1
  312. package/dist/i18n/locales/ro.json +4 -1
  313. package/dist/i18n/locales/ru.json +4 -1
  314. package/dist/i18n/locales/sv.json +4 -1
  315. package/dist/i18n/locales/tr.json +4 -1
  316. package/dist/i18n/locales/uk.json +4 -1
  317. package/dist/i18n/locales/zh-cn.json +4 -1
  318. package/dist/index.d.ts +7 -2
  319. package/dist/index.js +69 -67
  320. package/dist/llms-full.txt +3997 -1458
  321. package/dist/llms-medium.txt +140 -73
  322. package/dist/llms.txt +7 -6
  323. package/dist/locale-blueprint.json +4 -1
  324. package/dist/nuxt-auto-imports.d.ts +100 -0
  325. package/dist/nuxt-auto-imports.js +55 -0
  326. package/dist/nuxt-module.d.ts +22 -1
  327. package/dist/nuxt.js +22 -8
  328. package/dist/plugin.d.ts +10 -1
  329. package/dist/plugin.js +20 -19
  330. package/dist/runtime/nuxt-plugin.js +28 -21
  331. package/dist/styles.css +1 -1
  332. package/dist/utilities/misc/listboxMetrics.d.ts +3 -3
  333. package/dist/utilities/misc/listboxMetrics.js +2 -2
  334. package/dist/utilities/misc/ssrStateInjectionKey.d.ts +42 -0
  335. package/dist/utilities/misc/ssrStateInjectionKey.js +4 -0
  336. package/dist/validated/BbForm.vue_vue_type_script_setup_true_lang.js +45 -27
  337. package/dist/validated/BbSelect.vue.d.ts +2 -0
  338. package/dist/validated/BbSelect.vue_vue_type_script_setup_true_lang.js +1 -0
  339. package/dist/validated/useValidatedField.js +25 -23
  340. package/dist/vite.js +7 -3
  341. package/llms.txt +8 -7
  342. package/package.json +2 -2
  343. package/scripts/lib/eslint-plugin.d.ts +19 -1
  344. package/scripts/lib/eslint-plugin.mjs +155 -14
  345. package/scripts/lib/html-attributes.mjs +91 -0
  346. package/scripts/lib/validate-bb-markup.mjs +59 -11
  347. package/dist/assets/svgs/sort.svg_raw.js +0 -4
  348. package/dist/components/BbBadge/BadgeAppendIcon.vue.d.ts +0 -3
  349. package/dist/components/BbBadge/BadgeAppendIcon.vue.js +0 -5
  350. package/dist/components/BbBadge/BadgeAppendIcon.vue_vue_type_script_setup_true_lang.js +0 -22
@@ -0,0 +1,162 @@
1
+ import { MappedItem } from './types';
2
+ import { PropType, Slots, VNode } from 'vue';
3
+ /**
4
+ * Everything a body row needs from the table that is NOT about the row itself.
5
+ * It is assembled ONCE, in a computed, so its identity survives a render of the
6
+ * table — which is the whole point of this component (see below).
7
+ *
8
+ * Shared with `BbTableExpandRow`, which needs the same identity for the same
9
+ * reason. It keeps the data row's name because that is where the shape and the
10
+ * reasoning live; the expand row uses the four fields it needs and ignores the
11
+ * rest.
12
+ */
13
+ export type DataRowContext = {
14
+ /** The table's own slot bag, forwarded by reference. See the note below. */
15
+ slots: Slots;
16
+ selectable: boolean | ((item: any) => boolean) | undefined;
17
+ multiple: boolean;
18
+ readonly: boolean;
19
+ actions: boolean;
20
+ keyboardNavigation: boolean;
21
+ contentInert: boolean;
22
+ /** `aria-rowindex` is only meaningful once the pager facts are known. */
23
+ hasRowIndex: boolean;
24
+ /** Tracks a full-width row spans — the expand row's `aria-colspan`. */
25
+ columnSpan: number;
26
+ /** Shared `name` for the radio group. */
27
+ inputName: string;
28
+ /** Passed through verbatim — a `ColumnClasses` may legitimately be a function. */
29
+ tdClass: unknown;
30
+ /**
31
+ * The width-driven state classes of each column's data cells, already
32
+ * joined — the table works out `--resized` / `--nowrap` / `--clip` once per
33
+ * column so the row does one `Map` lookup per cell instead of three
34
+ * membership tests.
35
+ */
36
+ cellClasses: Map<string, string>;
37
+ sortOrders: Map<string, 'asc' | 'desc'>;
38
+ /** The virtualizer's measurer, or a no-op on a plain table. */
39
+ measureRow: (el: unknown) => void;
40
+ onInputChange: (item: MappedItem) => void;
41
+ onRowFocus: (index: number) => void;
42
+ onRowKeydown: (event: KeyboardEvent, index: number) => void;
43
+ };
44
+ /**
45
+ * One data row — the same markup the table used to render inline, moved behind
46
+ * a component boundary so that a row which has not changed does NO WORK when
47
+ * the table re-renders.
48
+ *
49
+ * WHY THIS EXISTS. A `virtual` table re-renders its body on every window move,
50
+ * and the body's `v-for` re-renders EVERY mounted row, not just the one or two
51
+ * that arrived: a notch scroll moves the window by ~2 rows and used to rebuild
52
+ * all 30, sixteen cells and a consumer slot call each, ~300 child-component
53
+ * prop updates in all. The window moving is not even the only trigger — a
54
+ * table's parent re-renders for reasons of its own, and any prop of the table
55
+ * whose identity changed (an array or object literal in the parent's template)
56
+ * forces the same full-body render with nothing at all to show for it.
57
+ *
58
+ * With the row as a component, that render costs one small vnode per row and a
59
+ * handful of `!==` comparisons: every prop here is either the row's own
60
+ * projection (`item`, stable until the item's state changes) or the shared
61
+ * `context` (one computed, stable until a table-level setting changes), so
62
+ * Vue's `shouldUpdateComponent` bails and the subtree is never touched. The
63
+ * rows that DID change — the ones that arrived, the one focus moved to, the
64
+ * one that was selected — re-render exactly as before.
65
+ *
66
+ * WHY NOT `v-memo`, which is the usual answer to "skip an unchanged row": its
67
+ * cache is indexed by POSITION in the `v-for`, and a window that moves shifts
68
+ * every row's position, so every entry misses. And it would be wrong here even
69
+ * if it hit: the cells call the CONSUMER's slots, whose reactive dependencies
70
+ * we cannot enumerate into a memo key — a slot reading a ref of its own would
71
+ * freeze. A component boundary has no such problem, because the slot runs
72
+ * inside THIS component's render effect and that effect subscribes to whatever
73
+ * the slot happens to read.
74
+ *
75
+ * WHY THE SLOTS COME IN AS A PROP rather than as this component's own slots:
76
+ * forwarding them (`<template v-for="(_, name) in $slots" #[name]>`) compiles
77
+ * to dynamic slots, and a vnode with dynamic slots is FORCED to update — it
78
+ * would defeat the only thing this component is for. `renderSlot` does not
79
+ * care whose bag it is handed.
80
+ */
81
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
82
+ context: {
83
+ type: PropType<DataRowContext>;
84
+ required: true;
85
+ };
86
+ item: {
87
+ type: PropType<MappedItem>;
88
+ required: true;
89
+ };
90
+ /** Index into the item list — what the keyboard grammar counts in. */
91
+ index: {
92
+ type: NumberConstructor;
93
+ required: true;
94
+ };
95
+ /** Index into the flat row list — `data-index`, what the virtualizer reads. */
96
+ virtualIndex: {
97
+ type: NumberConstructor;
98
+ required: true;
99
+ };
100
+ /** This row is the body's single tab stop. */
101
+ active: {
102
+ type: BooleanConstructor;
103
+ default: boolean;
104
+ };
105
+ /**
106
+ * Selection resolved by the table (`selectAll` and the unselected set
107
+ * included), passed as a value so the row does not re-derive it per cell.
108
+ */
109
+ selected: {
110
+ type: BooleanConstructor;
111
+ default: boolean;
112
+ };
113
+ /** `isSelectToggleBlocked`, likewise resolved once by the table. */
114
+ selectBlocked: {
115
+ type: BooleanConstructor;
116
+ default: boolean;
117
+ };
118
+ }>, () => VNode<import('vue').RendererNode, import('vue').RendererElement, {
119
+ [key: string]: any;
120
+ }>, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
121
+ context: {
122
+ type: PropType<DataRowContext>;
123
+ required: true;
124
+ };
125
+ item: {
126
+ type: PropType<MappedItem>;
127
+ required: true;
128
+ };
129
+ /** Index into the item list — what the keyboard grammar counts in. */
130
+ index: {
131
+ type: NumberConstructor;
132
+ required: true;
133
+ };
134
+ /** Index into the flat row list — `data-index`, what the virtualizer reads. */
135
+ virtualIndex: {
136
+ type: NumberConstructor;
137
+ required: true;
138
+ };
139
+ /** This row is the body's single tab stop. */
140
+ active: {
141
+ type: BooleanConstructor;
142
+ default: boolean;
143
+ };
144
+ /**
145
+ * Selection resolved by the table (`selectAll` and the unselected set
146
+ * included), passed as a value so the row does not re-derive it per cell.
147
+ */
148
+ selected: {
149
+ type: BooleanConstructor;
150
+ default: boolean;
151
+ };
152
+ /** `isSelectToggleBlocked`, likewise resolved once by the table. */
153
+ selectBlocked: {
154
+ type: BooleanConstructor;
155
+ default: boolean;
156
+ };
157
+ }>> & Readonly<{}>, {
158
+ selected: boolean;
159
+ active: boolean;
160
+ selectBlocked: boolean;
161
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
162
+ export default _default;
@@ -0,0 +1,136 @@
1
+ import e from "../BbBaseCheckbox/BbBaseCheckbox.vue.js";
2
+ import t from "../BbBaseRadio/BbBaseRadio.vue.js";
3
+ import { createTextVNode as n, defineComponent as r, h as i, renderSlot as a, toDisplayString as o } from "vue";
4
+ //#region src/components/BbTable/BbTableDataRow.ts
5
+ var s = r({
6
+ name: "BbTableDataRow",
7
+ props: {
8
+ context: {
9
+ type: Object,
10
+ required: !0
11
+ },
12
+ item: {
13
+ type: Object,
14
+ required: !0
15
+ },
16
+ index: {
17
+ type: Number,
18
+ required: !0
19
+ },
20
+ virtualIndex: {
21
+ type: Number,
22
+ required: !0
23
+ },
24
+ active: {
25
+ type: Boolean,
26
+ default: !1
27
+ },
28
+ selected: {
29
+ type: Boolean,
30
+ default: !1
31
+ },
32
+ selectBlocked: {
33
+ type: Boolean,
34
+ default: !1
35
+ }
36
+ },
37
+ setup(r) {
38
+ let s = () => r.context.onRowFocus(r.index), c = (e) => r.context.onRowKeydown(e, r.index), l = () => r.context.onInputChange(r.item), u = () => {
39
+ let { context: n, item: o } = r;
40
+ return i("div", {
41
+ class: ["bb-table-data__cell bb-table-data__cell--select", n.tdClass],
42
+ role: "cell"
43
+ }, a(n.slots, "select", {
44
+ checked: r.selected,
45
+ disabled: r.selectBlocked,
46
+ inputName: n.inputName,
47
+ item: o.item,
48
+ readonly: !!n.readonly,
49
+ toggleSelected: o.toggleSelected,
50
+ value: o.value
51
+ }, () => [n.multiple ? i("label", { class: ["bb-table-check__label", { "bb-table-check__label--disabled": o.disabled }] }, [i(e, {
52
+ checked: r.selected,
53
+ class: "bb-table-check",
54
+ disabled: o.disabled,
55
+ readonly: n.readonly,
56
+ onChange: l
57
+ }), i("span", { class: "bb-table-check__label-text sr-only" }, o.accessibleLabel)]) : i("label", { class: ["bb-table-radio__label", { "bb-table-radio__label--disabled": o.disabled }] }, [i(t, {
58
+ checked: o.selected,
59
+ class: "bb-table-radio",
60
+ disabled: o.disabled,
61
+ name: n.inputName,
62
+ readonly: n.readonly,
63
+ value: o.value,
64
+ onChange: l
65
+ }), i("span", { class: "bb-table-radio__label-text sr-only" }, o.accessibleLabel)])]));
66
+ }, d = () => {
67
+ let { context: e, item: t } = r, s = t.cols.length - 1;
68
+ return t.cols.map((c, l) => i("div", {
69
+ key: c.key,
70
+ class: [
71
+ "bb-table-data__cell",
72
+ c.classes,
73
+ e.cellClasses.get(c.key),
74
+ {
75
+ "bb-table-data__cell--edge-start": l === 0,
76
+ "bb-table-data__cell--edge-end": l === s
77
+ }
78
+ ],
79
+ role: "cell"
80
+ }, a(e.slots, c.slotName, {
81
+ classes: c.classes,
82
+ content: c.content,
83
+ expandProps: t.expandProps,
84
+ expanded: t.expanded,
85
+ highlighted: t.highlighted,
86
+ item: t.item,
87
+ selected: r.selected,
88
+ sortOrder: e.sortOrders.get(c.key) ?? null,
89
+ toggleExpanded: t.toggleExpanded,
90
+ toggleHighlighted: t.toggleHighlighted,
91
+ toggleSelected: t.toggleSelected,
92
+ value: t.value
93
+ }, () => [n(o(c.content))])));
94
+ }, f = () => {
95
+ let { context: e, item: t } = r;
96
+ return i("div", {
97
+ class: ["bb-table__cell bb-table__cell--actions", e.tdClass],
98
+ role: "cell"
99
+ }, a(e.slots, "actions", {
100
+ expandProps: t.expandProps,
101
+ expanded: t.expanded,
102
+ highlighted: t.highlighted,
103
+ item: t.item,
104
+ selected: r.selected,
105
+ toggleExpanded: t.toggleExpanded,
106
+ toggleHighlighted: t.toggleHighlighted,
107
+ toggleSelected: t.toggleSelected,
108
+ value: t.value
109
+ }));
110
+ };
111
+ return () => {
112
+ let { context: e, item: t } = r, n = [];
113
+ return e.selectable && n.push(u()), n.push(...d()), e.actions && n.push(f()), i("div", {
114
+ ref: e.measureRow,
115
+ "aria-current": t.highlighted ? "true" : void 0,
116
+ "aria-rowindex": e.hasRowIndex && t.rowIndex ? t.rowIndex : void 0,
117
+ class: [
118
+ "bb-table-data__row",
119
+ t.rowClasses,
120
+ { "bb-table-data__row--highlighted": t.highlighted }
121
+ ],
122
+ "data-index": r.virtualIndex,
123
+ inert: e.contentInert,
124
+ role: "row",
125
+ tabindex: e.keyboardNavigation ? r.active ? 0 : -1 : void 0,
126
+ onClick: t.onRowClick,
127
+ onContextmenu: t.onRowContextMenu,
128
+ onDblclick: t.onRowDblClick,
129
+ onFocus: s,
130
+ onKeydown: c
131
+ }, n);
132
+ };
133
+ }
134
+ });
135
+ //#endregion
136
+ export { s as default };
@@ -0,0 +1,73 @@
1
+ import { DataRowContext } from './BbTableDataRow';
2
+ import { MappedItem } from './types';
3
+ import { PropType, VNode } from 'vue';
4
+ /**
5
+ * One expand row — the row an open item drops below itself, holding the
6
+ * consumer's `#expand` slot.
7
+ *
8
+ * WHY THIS EXISTS: the same reason `BbTableDataRow` does, for the row kind that
9
+ * did not get the treatment. Data rows moved behind a component boundary so
10
+ * that a table render costs an unchanged row nothing; the expand row stayed in
11
+ * the table's own render function, so every one of those renders re-invoked the
12
+ * CONSUMER's `#expand` slot for every open row on screen — and what that slot
13
+ * usually contains is a whole nested table. Measured on the playground with
14
+ * three rows open, dragging: 57 invocations across 20 scroll steps, i.e. all
15
+ * three nested tables rebuilt their vnode trees on essentially every step,
16
+ * having changed in no way whatsoever. (A `virtual` table re-renders its body
17
+ * on every window move, and there are one and a half to two of those per step.)
18
+ *
19
+ * Its props are the same shape and the same identities as the data row's, so
20
+ * `shouldUpdateComponent` bails for exactly the same reason: `context` is one
21
+ * computed, `item` comes from `mappedItemAt`'s memo, and the rest are scalars.
22
+ *
23
+ * The slot bag arrives inside `context` rather than as this component's own
24
+ * slots — forwarding would compile to dynamic slots, and a vnode with those is
25
+ * forced to update, which would defeat the whole point. See the long note at
26
+ * the top of `BbTableDataRow`.
27
+ *
28
+ * The markup is the table's, not the consumer's: a full-width row whose single
29
+ * cell spans every column, carrying the `id` that the expand controller's
30
+ * `aria-controls` points at.
31
+ */
32
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
33
+ context: {
34
+ type: PropType<DataRowContext>;
35
+ required: true;
36
+ };
37
+ item: {
38
+ type: PropType<MappedItem>;
39
+ required: true;
40
+ };
41
+ /** Index into the flat row list — `data-index`, what the virtualizer reads. */
42
+ virtualIndex: {
43
+ type: NumberConstructor;
44
+ required: true;
45
+ };
46
+ /** Selection resolved by the table, as on the data row. */
47
+ selected: {
48
+ type: BooleanConstructor;
49
+ default: boolean;
50
+ };
51
+ }>, () => VNode, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
52
+ context: {
53
+ type: PropType<DataRowContext>;
54
+ required: true;
55
+ };
56
+ item: {
57
+ type: PropType<MappedItem>;
58
+ required: true;
59
+ };
60
+ /** Index into the flat row list — `data-index`, what the virtualizer reads. */
61
+ virtualIndex: {
62
+ type: NumberConstructor;
63
+ required: true;
64
+ };
65
+ /** Selection resolved by the table, as on the data row. */
66
+ selected: {
67
+ type: BooleanConstructor;
68
+ default: boolean;
69
+ };
70
+ }>> & Readonly<{}>, {
71
+ selected: boolean;
72
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
73
+ export default _default;
@@ -0,0 +1,52 @@
1
+ import { defineComponent as e, h as t, renderSlot as n } from "vue";
2
+ //#region src/components/BbTable/BbTableExpandRow.ts
3
+ var r = e({
4
+ name: "BbTableExpandRow",
5
+ props: {
6
+ context: {
7
+ type: Object,
8
+ required: !0
9
+ },
10
+ item: {
11
+ type: Object,
12
+ required: !0
13
+ },
14
+ virtualIndex: {
15
+ type: Number,
16
+ required: !0
17
+ },
18
+ selected: {
19
+ type: Boolean,
20
+ default: !1
21
+ }
22
+ },
23
+ setup(e) {
24
+ return () => {
25
+ let { context: r, item: i } = e;
26
+ return t("div", {
27
+ "aria-rowindex": r.hasRowIndex && i.rowIndex ? i.rowIndex + 1 : void 0,
28
+ class: ["bb-table-expand__row", { "bb-table-expand__row--highlighted": i.highlighted }],
29
+ "data-index": e.virtualIndex,
30
+ id: `expanded_${i.valueHash}`,
31
+ ref: r.measureRow,
32
+ role: "row"
33
+ }, [t("div", {
34
+ "aria-colspan": r.columnSpan,
35
+ class: "bb-table-expand__cell",
36
+ role: "cell"
37
+ }, n(r.slots, "expand", {
38
+ expandProps: i.expandProps,
39
+ expanded: i.expanded,
40
+ highlighted: i.highlighted,
41
+ item: i.item,
42
+ selected: e.selected,
43
+ toggleExpanded: i.toggleExpanded,
44
+ toggleHighlighted: i.toggleHighlighted,
45
+ toggleSelected: i.toggleSelected,
46
+ value: i.value
47
+ }))]);
48
+ };
49
+ }
50
+ });
51
+ //#endregion
52
+ export { r as default };