bitboss-ui 3.0.0-beta.65 → 3.0.0-beta.67

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 (1019) hide show
  1. package/README.md +79 -16
  2. package/bin/bitboss-ui-mcp.mjs +48 -17
  3. package/bin/bitboss-ui.mjs +73 -12
  4. package/dist/_virtual/_plugin-vue_export-helper.js +1 -2
  5. package/dist/ai/BbAccordion.md +4 -3
  6. package/dist/ai/BbAlert.md +2 -2
  7. package/dist/ai/BbAvatar.md +1 -1
  8. package/dist/ai/BbBadge.md +2 -1
  9. package/dist/ai/BbBadgeButton.md +6 -5
  10. package/dist/ai/BbBaseButton.md +26 -21
  11. package/dist/ai/BbBaseCheckboxIcon.md +1 -0
  12. package/dist/ai/BbBaseRadioIcon.md +1 -0
  13. package/dist/ai/BbBaseSwitchIcon.md +1 -0
  14. package/dist/ai/BbBreadcrumbs.md +9 -1
  15. package/dist/ai/BbButton.md +74 -22
  16. package/dist/ai/BbCalendar.md +156 -23
  17. package/dist/ai/BbCheckbox.md +5 -1
  18. package/dist/ai/BbCheckboxGroup.md +45 -9
  19. package/dist/ai/BbColorInput.md +5 -3
  20. package/dist/ai/BbColorPalette.md +7 -3
  21. package/dist/ai/BbConfirm.md +38 -81
  22. package/dist/ai/BbConfirmPortal.md +1 -1
  23. package/dist/ai/BbDatePicker.md +70 -22
  24. package/dist/ai/BbDatePickerInput.md +121 -27
  25. package/dist/ai/BbDialog.md +69 -61
  26. package/dist/ai/BbDropdown.md +30 -29
  27. package/dist/ai/BbDropdownButton.md +9 -13
  28. package/dist/ai/BbDropzone.md +2 -3
  29. package/dist/ai/BbForm.md +70 -46
  30. package/dist/ai/BbHost.md +29 -41
  31. package/dist/ai/BbIcon.md +3 -0
  32. package/dist/ai/BbNumberInput.md +17 -13
  33. package/dist/ai/BbOffCanvas.md +21 -14
  34. package/dist/ai/BbPagination.md +18 -18
  35. package/dist/ai/BbPopover.md +8 -3
  36. package/dist/ai/BbPtScope.md +5 -5
  37. package/dist/ai/BbRadio.md +5 -1
  38. package/dist/ai/BbRadioGroup.md +45 -8
  39. package/dist/ai/BbRating.md +5 -4
  40. package/dist/ai/BbSelect.md +150 -24
  41. package/dist/ai/BbSelectPopover.md +19 -16
  42. package/dist/ai/BbSlider.md +6 -4
  43. package/dist/ai/BbSwitch.md +5 -1
  44. package/dist/ai/BbTable.md +69 -44
  45. package/dist/ai/BbTabs.md +128 -64
  46. package/dist/ai/BbTabsList.md +5 -3
  47. package/dist/ai/BbTabsPanels.md +3 -1
  48. package/dist/ai/BbTabsRoot.md +4 -4
  49. package/dist/ai/BbTag.md +3 -3
  50. package/dist/ai/BbTextInput.md +23 -9
  51. package/dist/ai/BbTextarea.md +3 -3
  52. package/dist/ai/BbTimePicker.md +8 -6
  53. package/dist/ai/BbTimePickerInput.md +9 -12
  54. package/dist/ai/BbToast.md +33 -87
  55. package/dist/ai/BbToastPortal.md +1 -1
  56. package/dist/ai/BbTooltip.md +2 -2
  57. package/dist/ai/BbTree.md +2 -2
  58. package/dist/ai/ChipsBox.md +1 -1
  59. package/dist/ai/CommonField.md +2 -2
  60. package/dist/ai/CommonFieldInput.md +2 -1
  61. package/dist/ai/FlatListBox.md +2 -2
  62. package/dist/ai/GroupedListBox.md +2 -2
  63. package/dist/ai/ListBox.md +2 -2
  64. package/dist/ai/OptionsContainer.md +2 -2
  65. package/dist/ai/changelog.json +595 -525
  66. package/dist/ai/components.json +92 -88
  67. package/dist/ai/composables/useBbConfig.md +2 -2
  68. package/dist/ai/composables/{useBbDialogContext.md → useBbDialog.md} +18 -18
  69. package/dist/ai/composables/{useBbDropdownContext.md → useBbDropdown.md} +31 -31
  70. package/dist/ai/composables/{useBbFormContext.md → useBbForm.md} +11 -11
  71. package/dist/ai/composables/useBbFormField.md +2 -2
  72. package/dist/ai/composables/{useBbOffCanvasContext.md → useBbOffCanvas.md} +13 -13
  73. package/dist/ai/composables/{useBbTableContext.md → useBbTable.md} +20 -20
  74. package/dist/ai/composables/{useBbTabsContext.md → useBbTabs.md} +12 -12
  75. package/dist/ai/composables/useConfirm.md +42 -54
  76. package/dist/ai/composables/useToast.md +9 -26
  77. package/dist/ai/guides/agent-contract.md +57 -43
  78. package/dist/ai/guides/ai-router.md +1 -1
  79. package/dist/ai/guides/app-layout.md +32 -23
  80. package/dist/ai/guides/coherence-playbook.md +4 -2
  81. package/dist/ai/guides/component-picker.md +37 -33
  82. package/dist/ai/guides/design-language.md +51 -14
  83. package/dist/ai/guides/design-tokens.md +99 -44
  84. package/dist/ai/guides/eslint-rules.md +8 -4
  85. package/dist/ai/guides/fetch-items-playbook.md +4 -3
  86. package/dist/ai/guides/floating-bottom-panel.md +1 -1
  87. package/dist/ai/guides/icons-policy.md +1 -1
  88. package/dist/ai/guides/inertia-helpers.md +661 -210
  89. package/dist/ai/guides/inline-edit-playbook.md +1 -1
  90. package/dist/ai/guides/installation-and-plugin-setup.md +22 -19
  91. package/dist/ai/guides/migration/adoption-checklist.md +44 -2
  92. package/dist/ai/guides/migration/components/bb-dialog.md +13 -13
  93. package/dist/ai/guides/migration/components/bb-dropdown.md +16 -16
  94. package/dist/ai/guides/migration/components/bb-host.md +15 -14
  95. package/dist/ai/guides/migration/components/bb-offcanvas.md +10 -10
  96. package/dist/ai/guides/migration/components/bb-pagination.md +9 -9
  97. package/dist/ai/guides/migration/components/bb-select.md +2 -3
  98. package/dist/ai/guides/migration/components/bb-table.md +15 -15
  99. package/dist/ai/guides/migration/components/bb-tabs.md +1 -1
  100. package/dist/ai/guides/migration/from-async-validator.md +9 -9
  101. package/dist/ai/guides/migration/v2-to-v3.md +206 -13
  102. package/dist/ai/guides/migration/v3-beta-tooling.md +3 -3
  103. package/dist/ai/guides/options-items-playbook.md +2 -2
  104. package/dist/ai/guides/page-shell.md +15 -3
  105. package/dist/ai/guides/passthrough.md +60 -15
  106. package/dist/ai/guides/preset-components.md +102 -43
  107. package/dist/ai/guides/typescript-generic-components.md +21 -5
  108. package/dist/ai/guides/validated-forms.md +23 -14
  109. package/dist/ai/guides/validation-libraries.md +11 -13
  110. package/dist/ai/guides/validation-providers.md +3 -3
  111. package/dist/ai/helpers/definePreset.json +11 -4
  112. package/dist/ai/helpers/definePreset.ts +98 -41
  113. package/dist/ai/helpers/inertia/manifest.json +235 -77
  114. package/dist/ai/helpers/inertia/useConfirmOnRouteLeave.ts +24 -12
  115. package/dist/ai/helpers/inertia/usePromiseForm.ts +38 -151
  116. package/dist/ai/helpers/inertia/usePromiseRouter.ts +295 -0
  117. package/dist/ai/helpers/inertia/useQueryObject.ts +36 -5
  118. package/dist/ai/helpers/inertia/useRouteQuery.ts +28 -9
  119. package/dist/ai/helpers/inertia/utils.ts +53 -10
  120. package/dist/ai/index.md +15 -15
  121. package/dist/ai/manifest/common.json +5 -2
  122. package/dist/ai/manifest/components/BbAccordion.tree.json +3 -1
  123. package/dist/ai/manifest/components/BbAlert.json +1 -1
  124. package/dist/ai/manifest/components/BbAvatar.tree.json +1 -1
  125. package/dist/ai/manifest/components/BbBadge.json +2 -2
  126. package/dist/ai/manifest/components/BbBadge.tree.json +4 -2
  127. package/dist/ai/manifest/components/BbBadgeButton.json +11 -6
  128. package/dist/ai/manifest/components/BbBadgeButton.tree.json +2 -1
  129. package/dist/ai/manifest/components/BbBaseButton.json +11 -6
  130. package/dist/ai/manifest/components/BbBaseCheckboxIcon.json +1 -1
  131. package/dist/ai/manifest/components/BbBaseCheckboxIcon.tree.json +3 -1
  132. package/dist/ai/manifest/components/BbBaseRadioIcon.json +1 -1
  133. package/dist/ai/manifest/components/BbBaseRadioIcon.tree.json +3 -1
  134. package/dist/ai/manifest/components/BbBaseSwitchIcon.json +1 -1
  135. package/dist/ai/manifest/components/BbBaseSwitchIcon.tree.json +3 -1
  136. package/dist/ai/manifest/components/BbBreadcrumbs.json +3 -3
  137. package/dist/ai/manifest/components/BbBreadcrumbs.tree.json +7 -3
  138. package/dist/ai/manifest/components/BbButton.json +10 -5
  139. package/dist/ai/manifest/components/BbButton.tree.json +10 -3
  140. package/dist/ai/manifest/components/BbCalendar.json +29 -26
  141. package/dist/ai/manifest/components/BbCalendar.tree.json +25 -2
  142. package/dist/ai/manifest/components/BbCheckbox.json +2 -2
  143. package/dist/ai/manifest/components/BbCheckbox.tree.json +5 -2
  144. package/dist/ai/manifest/components/BbCheckboxGroup.json +2 -2
  145. package/dist/ai/manifest/components/BbCheckboxGroup.tree.json +62 -3
  146. package/dist/ai/manifest/components/BbCollapsible.json +4 -1
  147. package/dist/ai/manifest/components/BbColorInput.json +18 -17
  148. package/dist/ai/manifest/components/BbColorInput.tree.json +5 -3
  149. package/dist/ai/manifest/components/BbColorPalette.json +4 -1
  150. package/dist/ai/manifest/components/BbColorPalette.tree.json +7 -2
  151. package/dist/ai/manifest/components/BbConfirm.json +2 -1
  152. package/dist/ai/manifest/components/BbConfirm.tree.json +2 -2
  153. package/dist/ai/manifest/components/BbDatePicker.json +33 -27
  154. package/dist/ai/manifest/components/BbDatePicker.tree.json +3 -4
  155. package/dist/ai/manifest/components/BbDatePickerInput.json +38 -35
  156. package/dist/ai/manifest/components/BbDatePickerInput.tree.json +7 -4
  157. package/dist/ai/manifest/components/BbDialog.json +4 -4
  158. package/dist/ai/manifest/components/BbDialog.tree.json +6 -3
  159. package/dist/ai/manifest/components/BbDropdown.json +11 -11
  160. package/dist/ai/manifest/components/BbDropdown.tree.json +3 -3
  161. package/dist/ai/manifest/components/BbDropdownButton.json +13 -8
  162. package/dist/ai/manifest/components/BbDropdownButton.tree.json +2 -3
  163. package/dist/ai/manifest/components/BbDropzone.json +5 -2
  164. package/dist/ai/manifest/components/BbForm.json +2 -2
  165. package/dist/ai/manifest/components/BbHost.json +1 -1
  166. package/dist/ai/manifest/components/BbHost.tree.json +1 -1
  167. package/dist/ai/manifest/components/BbHoverCard.json +1 -1
  168. package/dist/ai/manifest/components/BbNumberInput.json +8 -8
  169. package/dist/ai/manifest/components/BbNumberInput.tree.json +1 -1
  170. package/dist/ai/manifest/components/BbOffCanvas.json +4 -4
  171. package/dist/ai/manifest/components/BbOffCanvas.tree.json +9 -4
  172. package/dist/ai/manifest/components/BbPagination.json +5 -5
  173. package/dist/ai/manifest/components/BbPagination.tree.json +3 -2
  174. package/dist/ai/manifest/components/BbPopover.json +1 -1
  175. package/dist/ai/manifest/components/BbPopover.tree.json +1 -1
  176. package/dist/ai/manifest/components/BbProgress.json +4 -1
  177. package/dist/ai/manifest/components/BbRadio.json +2 -2
  178. package/dist/ai/manifest/components/BbRadio.tree.json +5 -2
  179. package/dist/ai/manifest/components/BbRadioGroup.json +6 -6
  180. package/dist/ai/manifest/components/BbRadioGroup.tree.json +62 -3
  181. package/dist/ai/manifest/components/BbRating.json +7 -7
  182. package/dist/ai/manifest/components/BbRating.tree.json +5 -3
  183. package/dist/ai/manifest/components/BbSelect.json +25 -25
  184. package/dist/ai/manifest/components/BbSelect.tree.json +3 -3
  185. package/dist/ai/manifest/components/BbSelectPopover.json +16 -12
  186. package/dist/ai/manifest/components/BbSelectPopover.tree.json +3 -2
  187. package/dist/ai/manifest/components/BbSlider.json +14 -14
  188. package/dist/ai/manifest/components/BbSlider.tree.json +3 -0
  189. package/dist/ai/manifest/components/BbSmoothHeight.json +4 -1
  190. package/dist/ai/manifest/components/BbSwitch.json +2 -2
  191. package/dist/ai/manifest/components/BbSwitch.tree.json +5 -2
  192. package/dist/ai/manifest/components/BbSwitchGroup.json +1 -1
  193. package/dist/ai/manifest/components/BbSwitchGroup.tree.json +1 -1
  194. package/dist/ai/manifest/components/BbTable.json +28 -24
  195. package/dist/ai/manifest/components/BbTable.tree.json +6 -1
  196. package/dist/ai/manifest/components/BbTabs.json +13 -16
  197. package/dist/ai/manifest/components/BbTabs.tree.json +4 -1
  198. package/dist/ai/manifest/components/BbTabsList.json +6 -9
  199. package/dist/ai/manifest/components/BbTabsList.tree.json +4 -1
  200. package/dist/ai/manifest/components/BbTabsPanels.json +3 -3
  201. package/dist/ai/manifest/components/BbTabsPanels.tree.json +4 -1
  202. package/dist/ai/manifest/components/BbTabsRoot.json +5 -5
  203. package/dist/ai/manifest/components/BbTag.json +2 -2
  204. package/dist/ai/manifest/components/BbTag.tree.json +2 -2
  205. package/dist/ai/manifest/components/BbTextInput.json +4 -4
  206. package/dist/ai/manifest/components/BbTextInput.tree.json +3 -3
  207. package/dist/ai/manifest/components/BbTextarea.json +3 -3
  208. package/dist/ai/manifest/components/BbTextarea.tree.json +1 -1
  209. package/dist/ai/manifest/components/BbTimePicker.json +10 -7
  210. package/dist/ai/manifest/components/BbTimePicker.tree.json +5 -3
  211. package/dist/ai/manifest/components/BbTimePickerInput.json +19 -19
  212. package/dist/ai/manifest/components/BbTimePickerInput.tree.json +5 -3
  213. package/dist/ai/manifest/components/BbToast.json +1 -1
  214. package/dist/ai/manifest/components/BbToast.tree.json +3 -1
  215. package/dist/ai/manifest/components/BbTooltip.json +3 -0
  216. package/dist/ai/manifest/components/BbTooltip.tree.json +2 -2
  217. package/dist/ai/manifest/components/BbTree.json +3 -3
  218. package/dist/ai/manifest/components/BbTree.tree.json +1 -1
  219. package/dist/ai/manifest/components/ChipsBox.tree.json +1 -1
  220. package/dist/ai/manifest/components/CommonField.json +2 -2
  221. package/dist/ai/manifest/components/CommonField.tree.json +1 -0
  222. package/dist/ai/manifest/components/CommonFieldInput.tree.json +4 -2
  223. package/dist/ai/manifest/components/CommonPopover.tree.json +3 -0
  224. package/dist/ai/manifest/components/CommonTimeSelector.tree.json +1 -0
  225. package/dist/ai/manifest/components/FlatListBox.json +2 -2
  226. package/dist/ai/manifest/components/GroupedListBox.json +2 -2
  227. package/dist/ai/manifest/components/ListBox.json +2 -2
  228. package/dist/ai/manifest/components/OptionsContainer.json +3 -3
  229. package/dist/ai/manifest/index.json +3 -3
  230. package/dist/ai/manifest/meta.json +31 -16
  231. package/dist/ai/manifest/types.advanced.json +17 -13
  232. package/dist/ai/manifest/types.api.json +2 -2
  233. package/dist/ai/recipes/inertia/approvals-inbox.md +86 -115
  234. package/dist/ai/recipes/inertia/inline-edit-workspace.md +112 -120
  235. package/dist/ai/recipes/inertia/layout-scaffold.md +15 -4
  236. package/dist/ai/recipes/inertia/onboarding.md +76 -58
  237. package/dist/ai/recipes/inertia/ownership-atlas.md +74 -105
  238. package/dist/ai/recipes/inertia/record-form.md +18 -7
  239. package/dist/ai/recipes/inertia/records-workspace.md +106 -127
  240. package/dist/ai/recipes/inertia/settings-workspace.md +131 -73
  241. package/dist/ai/recipes/inertia/upload-center.md +97 -121
  242. package/dist/ai/recipes/inertia/wizard-form.md +25 -15
  243. package/dist/ai/recipes/nuxt/approvals-inbox.md +67 -48
  244. package/dist/ai/recipes/nuxt/inline-edit-workspace.md +73 -58
  245. package/dist/ai/recipes/nuxt/layout-scaffold.md +15 -4
  246. package/dist/ai/recipes/nuxt/onboarding.md +27 -10
  247. package/dist/ai/recipes/nuxt/ownership-atlas.md +40 -22
  248. package/dist/ai/recipes/nuxt/record-form.md +20 -7
  249. package/dist/ai/recipes/nuxt/records-workspace.md +120 -96
  250. package/dist/ai/recipes/nuxt/settings-workspace.md +36 -23
  251. package/dist/ai/recipes/nuxt/upload-center.md +63 -37
  252. package/dist/ai/recipes/nuxt/wizard-form.md +28 -16
  253. package/dist/ai/recipes/vue/approvals-inbox.md +74 -46
  254. package/dist/ai/recipes/vue/inline-edit-workspace.md +83 -56
  255. package/dist/ai/recipes/vue/layout-scaffold.md +15 -4
  256. package/dist/ai/recipes/vue/onboarding.md +27 -10
  257. package/dist/ai/recipes/vue/ownership-atlas.md +40 -22
  258. package/dist/ai/recipes/vue/record-form.md +20 -7
  259. package/dist/ai/recipes/vue/records-workspace.md +132 -95
  260. package/dist/ai/recipes/vue/settings-workspace.md +36 -23
  261. package/dist/ai/recipes/vue/upload-center.md +73 -37
  262. package/dist/ai/recipes/vue/wizard-form.md +28 -16
  263. package/dist/ai/source/BbAccordion.md +36 -6
  264. package/dist/ai/source/BbAlert.md +11 -5
  265. package/dist/ai/source/BbAsterisk.md +4 -1
  266. package/dist/ai/source/BbAvatar.md +12 -6
  267. package/dist/ai/source/BbBadge.md +72 -21
  268. package/dist/ai/source/BbBadgeButton.md +71 -18
  269. package/dist/ai/source/BbBaseButton.md +321 -276
  270. package/dist/ai/source/BbBaseCheckboxIcon.md +92 -64
  271. package/dist/ai/source/BbBaseRadioIcon.md +81 -54
  272. package/dist/ai/source/BbBaseSwitchIcon.md +87 -59
  273. package/dist/ai/source/BbBreadcrumbs.md +94 -56
  274. package/dist/ai/source/BbButton.md +180 -31
  275. package/dist/ai/source/BbCalendar.md +1069 -408
  276. package/dist/ai/source/BbCheckbox.md +233 -178
  277. package/dist/ai/source/BbCheckboxGroup.md +36 -21
  278. package/dist/ai/source/BbCollapsible.md +15 -6
  279. package/dist/ai/source/BbColorInput.md +142 -38
  280. package/dist/ai/source/BbColorPalette.md +242 -144
  281. package/dist/ai/source/BbConfirm.md +25 -7
  282. package/dist/ai/source/BbConfirmPortal.md +17 -7
  283. package/dist/ai/source/BbDatePicker.md +302 -178
  284. package/dist/ai/source/BbDatePickerInput.md +394 -65
  285. package/dist/ai/source/BbDialog.md +204 -174
  286. package/dist/ai/source/BbDropdown.md +92 -42
  287. package/dist/ai/source/BbDropdownButton.md +79 -30
  288. package/dist/ai/source/BbDropdownGroup.md +53 -15
  289. package/dist/ai/source/BbDropzone.md +138 -93
  290. package/dist/ai/source/BbForm.md +18 -7
  291. package/dist/ai/source/BbHost.md +25 -12
  292. package/dist/ai/source/BbHoverCard.md +20 -9
  293. package/dist/ai/source/BbIcon.md +9 -3
  294. package/dist/ai/source/BbIndicator.md +11 -4
  295. package/dist/ai/source/BbNumberInput.md +83 -28
  296. package/dist/ai/source/BbOffCanvas.md +227 -171
  297. package/dist/ai/source/BbPagination.md +151 -111
  298. package/dist/ai/source/BbPopover.md +28 -16
  299. package/dist/ai/source/BbProgress.md +13 -5
  300. package/dist/ai/source/BbRadio.md +220 -169
  301. package/dist/ai/source/BbRadioGroup.md +32 -19
  302. package/dist/ai/source/BbRating.md +208 -154
  303. package/dist/ai/source/BbSelect.md +133 -35
  304. package/dist/ai/source/BbSelectPopover.md +462 -371
  305. package/dist/ai/source/BbSlider.md +308 -217
  306. package/dist/ai/source/BbSmoothHeight.md +16 -7
  307. package/dist/ai/source/BbSpinner.md +9 -3
  308. package/dist/ai/source/BbSwitch.md +95 -17
  309. package/dist/ai/source/BbSwitchGroup.md +38 -23
  310. package/dist/ai/source/BbTable.md +641 -423
  311. package/dist/ai/source/BbTabs.md +120 -62
  312. package/dist/ai/source/BbTabsList.md +171 -72
  313. package/dist/ai/source/BbTabsPanels.md +127 -53
  314. package/dist/ai/source/BbTabsRoot.md +97 -46
  315. package/dist/ai/source/BbTag.md +58 -24
  316. package/dist/ai/source/BbTextInput.md +65 -14
  317. package/dist/ai/source/BbTextarea.md +54 -8
  318. package/dist/ai/source/BbTimePicker.md +195 -122
  319. package/dist/ai/source/BbTimePickerInput.md +127 -23
  320. package/dist/ai/source/BbToast.md +46 -21
  321. package/dist/ai/source/BbToastPortal.md +47 -22
  322. package/dist/ai/source/BbTooltip.md +18 -10
  323. package/dist/ai/source/BbTree.md +26 -6
  324. package/dist/ai/source/ClearableButton.md +5 -1
  325. package/dist/ai/source/CommonField.md +67 -11
  326. package/dist/ai/source/CommonFieldInput.md +61 -27
  327. package/dist/ai/source/CommonPopover.md +24 -6
  328. package/dist/ai/source/CommonTimeSelector.md +24 -3
  329. package/dist/ai/source/ErrorIcon.md +4 -0
  330. package/dist/ai/source/FlatListBox.md +1 -1
  331. package/dist/ai/source/GroupedListBox.md +1 -1
  332. package/dist/ai/source/ListBox.md +10 -2
  333. package/dist/ai/source/OptionsContainer.md +6 -2
  334. package/dist/ai/source/WarningIcon.md +4 -0
  335. package/dist/assets/css/reset.css_inline.js +1 -2
  336. package/dist/assets/svgs/alert.svg_raw.js +1 -2
  337. package/dist/assets/svgs/calendar.svg_raw.js +1 -2
  338. package/dist/assets/svgs/check_stroke.svg_raw.js +1 -2
  339. package/dist/assets/svgs/chevron_down.svg_raw.js +1 -2
  340. package/dist/assets/svgs/chevron_right.svg_raw.js +1 -2
  341. package/dist/assets/svgs/clear.svg_raw.js +1 -2
  342. package/dist/assets/svgs/clock.svg_raw.js +1 -2
  343. package/dist/assets/svgs/error.svg_raw.js +1 -2
  344. package/dist/assets/svgs/search.svg_raw.js +1 -2
  345. package/dist/assets/svgs/spinner.svg_raw.js +1 -2
  346. package/dist/assets/svgs/star.svg_raw.js +1 -2
  347. package/dist/assets/svgs/user.svg_raw.js +1 -2
  348. package/dist/components/BbAccordion/BbAccordion.vue.d.ts +2 -1
  349. package/dist/components/BbAccordion/BbAccordion.vue.js +1 -2
  350. package/dist/components/BbAccordion/BbAccordion.vue_vue_type_script_setup_true_lang.js +21 -22
  351. package/dist/components/BbAccordion/types.js +1 -2
  352. package/dist/components/BbAlert/BbAlert.vue.d.ts +2 -1
  353. package/dist/components/BbAlert/BbAlert.vue.js +1 -2
  354. package/dist/components/BbAlert/BbAlert.vue_vue_type_script_setup_true_lang.js +28 -29
  355. package/dist/components/BbAlert/types.js +1 -2
  356. package/dist/components/BbAsterisk/BbAsterisk.vue.d.ts +3 -1
  357. package/dist/components/BbAsterisk/BbAsterisk.vue.js +1 -2
  358. package/dist/components/BbAsterisk/BbAsterisk.vue_vue_type_script_setup_true_lang.js +1 -2
  359. package/dist/components/BbAsterisk/types.js +1 -2
  360. package/dist/components/BbAvatar/BbAvatar.vue.d.ts +3 -1
  361. package/dist/components/BbAvatar/BbAvatar.vue.js +1 -2
  362. package/dist/components/BbAvatar/BbAvatar.vue_vue_type_script_setup_true_lang.js +23 -24
  363. package/dist/components/BbAvatar/types.js +1 -2
  364. package/dist/components/BbBadge/BadgeBodyContent.vue.js +1 -2
  365. package/dist/components/BbBadge/BadgeBodyContent.vue_vue_type_script_setup_true_lang.js +13 -14
  366. package/dist/components/BbBadge/BbBadge.vue.d.ts +5 -3
  367. package/dist/components/BbBadge/BbBadge.vue.js +1 -2
  368. package/dist/components/BbBadge/BbBadge.vue_vue_type_script_setup_true_lang.js +31 -33
  369. package/dist/components/BbBadge/BbBadgeButton.vue.d.ts +3 -1
  370. package/dist/components/BbBadge/BbBadgeButton.vue.js +1 -2
  371. package/dist/components/BbBadge/BbBadgeButton.vue_vue_type_script_setup_true_lang.js +6 -11
  372. package/dist/components/BbBadge/badgeButtonContext.js +1 -2
  373. package/dist/components/BbBadge/types.d.ts +20 -4
  374. package/dist/components/BbBadge/types.js +7 -2
  375. package/dist/components/BbBaseButton/BbBaseButton.vue.d.ts +3 -1
  376. package/dist/components/BbBaseButton/BbBaseButton.vue.js +1 -2
  377. package/dist/components/BbBaseButton/BbBaseButton.vue_vue_type_script_setup_true_lang.js +89 -90
  378. package/dist/components/BbBaseButton/RouterComponent.vue.js +1 -2
  379. package/dist/components/BbBaseButton/RouterComponent.vue_vue_type_script_setup_true_lang.js +8 -9
  380. package/dist/components/BbBaseButton/types.d.ts +11 -6
  381. package/dist/components/BbBaseButton/types.js +6 -2
  382. package/dist/components/BbBaseButton/useLinkState.d.ts +2 -0
  383. package/dist/components/BbBaseButton/useLinkState.js +24 -24
  384. package/dist/components/BbBaseCheckboxIcon/BbBaseCheckboxIcon.vue.d.ts +3 -1
  385. package/dist/components/BbBaseCheckboxIcon/BbBaseCheckboxIcon.vue.js +1 -2
  386. package/dist/components/BbBaseCheckboxIcon/BbBaseCheckboxIcon.vue_vue_type_script_setup_true_lang.js +16 -17
  387. package/dist/components/BbBaseCheckboxIcon/types.d.ts +4 -2
  388. package/dist/components/BbBaseCheckboxIcon/types.js +3 -3
  389. package/dist/components/BbBaseRadioIcon/BbBaseRadioIcon.vue.d.ts +3 -1
  390. package/dist/components/BbBaseRadioIcon/BbBaseRadioIcon.vue.js +1 -2
  391. package/dist/components/BbBaseRadioIcon/BbBaseRadioIcon.vue_vue_type_script_setup_true_lang.js +13 -14
  392. package/dist/components/BbBaseRadioIcon/types.d.ts +4 -2
  393. package/dist/components/BbBaseRadioIcon/types.js +3 -3
  394. package/dist/components/BbBaseSwitchIcon/BbBaseSwitchIcon.vue.d.ts +3 -1
  395. package/dist/components/BbBaseSwitchIcon/BbBaseSwitchIcon.vue.js +1 -2
  396. package/dist/components/BbBaseSwitchIcon/BbBaseSwitchIcon.vue_vue_type_script_setup_true_lang.js +15 -16
  397. package/dist/components/BbBaseSwitchIcon/types.d.ts +4 -2
  398. package/dist/components/BbBaseSwitchIcon/types.js +3 -3
  399. package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue.d.ts +3 -1
  400. package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue.js +1 -2
  401. package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue_vue_type_script_setup_true_lang.js +158 -169
  402. package/dist/components/BbBreadcrumbs/estimateBreadcrumbItemWidth.js +1 -2
  403. package/dist/components/BbBreadcrumbs/types.d.ts +19 -5
  404. package/dist/components/BbBreadcrumbs/types.js +8 -3
  405. package/dist/components/BbButton/BbButton.vue.d.ts +2 -1
  406. package/dist/components/BbButton/BbButton.vue.js +1 -2
  407. package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +96 -97
  408. package/dist/components/BbButton/toggleRoving.js +2 -3
  409. package/dist/components/BbButton/types.d.ts +11 -6
  410. package/dist/components/BbButton/types.js +8 -2
  411. package/dist/components/BbCalendar/BbCalendar.vue.d.ts +127 -30
  412. package/dist/components/BbCalendar/BbCalendar.vue.js +1 -2
  413. package/dist/components/BbCalendar/BbCalendar.vue_vue_type_script_setup_true_lang.js +434 -420
  414. package/dist/components/BbCalendar/CalendarMonthPanel.vue.js +1 -2
  415. package/dist/components/BbCalendar/CalendarMonthPanel.vue_vue_type_script_setup_true_lang.js +15 -17
  416. package/dist/components/BbCalendar/CalendarYearPanel.vue.js +1 -2
  417. package/dist/components/BbCalendar/CalendarYearPanel.vue_vue_type_script_setup_true_lang.js +55 -57
  418. package/dist/components/BbCalendar/calendarHost.js +1 -2
  419. package/dist/components/BbCalendar/types.d.ts +110 -37
  420. package/dist/components/BbCalendar/types.js +54 -3
  421. package/dist/components/BbCalendar/useCalendarContext.js +1 -2
  422. package/dist/components/BbCalendar/useCalendarGrid.d.ts +133 -0
  423. package/dist/components/BbCalendar/useCalendarGrid.js +201 -204
  424. package/dist/components/BbCalendar/useDayGrid.d.ts +33 -11
  425. package/dist/components/BbCalendar/useDayGrid.js +169 -162
  426. package/dist/components/BbCalendar/useDayjsLocale.d.ts +6 -0
  427. package/dist/components/BbCalendar/useDayjsLocale.js +10 -4
  428. package/dist/components/BbCalendar/useToday.js +1 -2
  429. package/dist/components/BbCheckbox/BbCheckbox.vue.d.ts +4 -2
  430. package/dist/components/BbCheckbox/BbCheckbox.vue.js +1 -2
  431. package/dist/components/BbCheckbox/BbCheckbox.vue_vue_type_script_setup_true_lang.js +109 -116
  432. package/dist/components/BbCheckbox/types.d.ts +4 -2
  433. package/dist/components/BbCheckbox/types.js +3 -3
  434. package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue.d.ts +345 -2
  435. package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue.js +1 -2
  436. package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +126 -132
  437. package/dist/components/BbCheckboxGroup/types.d.ts +12 -6
  438. package/dist/components/BbCheckboxGroup/types.js +8 -9
  439. package/dist/components/BbCollapsible/BbCollapsible.vue.d.ts +3 -1
  440. package/dist/components/BbCollapsible/BbCollapsible.vue.js +1 -2
  441. package/dist/components/BbCollapsible/BbCollapsible.vue_vue_type_script_setup_true_lang.js +9 -10
  442. package/dist/components/BbCollapsible/types.js +1 -2
  443. package/dist/components/BbColorInput/BbColorInput.vue.d.ts +8 -5
  444. package/dist/components/BbColorInput/BbColorInput.vue.js +1 -2
  445. package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +171 -151
  446. package/dist/components/BbColorInput/types.d.ts +28 -11
  447. package/dist/components/BbColorInput/types.js +18 -9
  448. package/dist/components/BbColorPalette/BbColorPalette.vue.d.ts +7 -5
  449. package/dist/components/BbColorPalette/BbColorPalette.vue.js +1 -2
  450. package/dist/components/BbColorPalette/BbColorPalette.vue_vue_type_script_setup_true_lang.js +212 -219
  451. package/dist/components/BbColorPalette/types.d.ts +12 -4
  452. package/dist/components/BbColorPalette/types.js +4 -3
  453. package/dist/components/BbConfirm/BbConfirm.vue.js +1 -2
  454. package/dist/components/BbConfirm/BbConfirm.vue_vue_type_script_setup_true_lang.js +111 -100
  455. package/dist/components/BbConfirm/BbConfirmHost.js +9 -10
  456. package/dist/components/BbConfirm/BbConfirmPortal.vue.js +1 -2
  457. package/dist/components/BbConfirm/BbConfirmPortal.vue_vue_type_script_setup_true_lang.js +2 -3
  458. package/dist/components/BbConfirm/confirmEntry.js +1 -2
  459. package/dist/components/BbConfirm/types.d.ts +8 -4
  460. package/dist/components/BbConfirm/types.js +3 -3
  461. package/dist/components/BbDatePicker/BbDatePicker.vue.d.ts +162 -41
  462. package/dist/components/BbDatePicker/BbDatePicker.vue.js +1 -2
  463. package/dist/components/BbDatePicker/BbDatePicker.vue_vue_type_script_setup_true_lang.js +167 -219
  464. package/dist/components/BbDatePicker/types.d.ts +69 -25
  465. package/dist/components/BbDatePicker/types.js +6 -3
  466. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue.d.ts +395 -37
  467. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue.js +1 -2
  468. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +485 -597
  469. package/dist/components/BbDatePickerInput/dateFieldLayout.js +1 -2
  470. package/dist/components/BbDatePickerInput/types.d.ts +92 -22
  471. package/dist/components/BbDatePickerInput/types.js +67 -7
  472. package/dist/components/BbDialog/BbDialog.vue.d.ts +7 -6
  473. package/dist/components/BbDialog/BbDialog.vue.js +1 -2
  474. package/dist/components/BbDialog/BbDialog.vue_vue_type_script_setup_true_lang.js +233 -238
  475. package/dist/components/BbDialog/types.d.ts +12 -10
  476. package/dist/components/BbDialog/types.js +3 -3
  477. package/dist/components/BbDialog/useDialogStack.d.ts +2 -0
  478. package/dist/components/BbDialog/useDialogStack.js +7 -4
  479. package/dist/components/BbDropdown/AdaptiveDropdown.vue.js +1 -2
  480. package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +58 -59
  481. package/dist/components/BbDropdown/BbDropdown.vue.d.ts +8 -6
  482. package/dist/components/BbDropdown/BbDropdown.vue.js +1 -2
  483. package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +306 -340
  484. package/dist/components/BbDropdown/BbDropdownGroup.vue.js +1 -2
  485. package/dist/components/BbDropdown/BbDropdownGroup.vue_vue_type_script_setup_true_lang.js +19 -22
  486. package/dist/components/BbDropdown/BbDropdownList.vue.js +1 -2
  487. package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +340 -357
  488. package/dist/components/BbDropdown/DropdownPipelineResolver.vue.js +1 -2
  489. package/dist/components/BbDropdown/DropdownPipelineResolver.vue_vue_type_script_setup_true_lang.js +127 -127
  490. package/dist/components/BbDropdown/DropdownRow.vue.js +1 -2
  491. package/dist/components/BbDropdown/DropdownRow.vue_vue_type_script_setup_true_lang.js +21 -22
  492. package/dist/components/BbDropdown/normalizeGroups.js +11 -12
  493. package/dist/components/BbDropdown/types.d.ts +25 -9
  494. package/dist/components/BbDropdown/types.js +28 -2
  495. package/dist/components/BbDropdown/useDropdownContext.js +2 -3
  496. package/dist/components/BbDropdown/useDropdownGroupRegistry.d.ts +1 -1
  497. package/dist/components/BbDropdown/useDropdownGroupRegistry.js +1 -2
  498. package/dist/components/BbDropdownButton/BbDropdownButton.vue.d.ts +6 -4
  499. package/dist/components/BbDropdownButton/BbDropdownButton.vue.js +1 -2
  500. package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +65 -68
  501. package/dist/components/BbDropdownButton/types.d.ts +16 -5
  502. package/dist/components/BbDropdownButton/types.js +17 -12
  503. package/dist/components/BbDropzone/BbDropzone.vue.d.ts +65 -22
  504. package/dist/components/BbDropzone/BbDropzone.vue.js +1 -2
  505. package/dist/components/BbDropzone/BbDropzone.vue_vue_type_script_setup_true_lang.js +141 -150
  506. package/dist/components/BbDropzone/types.d.ts +19 -5
  507. package/dist/components/BbDropzone/types.js +8 -2
  508. package/dist/components/BbForm/BbForm.vue.d.ts +52 -4
  509. package/dist/components/BbForm/BbForm.vue.js +1 -2
  510. package/dist/components/BbForm/BbForm.vue_vue_type_script_setup_true_lang.js +154 -159
  511. package/dist/components/BbForm/BbFormCustomField.js +2 -3
  512. package/dist/components/BbForm/bindFormField.js +2 -3
  513. package/dist/components/BbForm/formFields.js +1 -2
  514. package/dist/components/BbForm/formSchema.js +15 -53
  515. package/dist/components/BbHost/BbHost.vue.js +1 -2
  516. package/dist/components/BbHost/BbHost.vue_vue_type_script_setup_true_lang.js +20 -25
  517. package/dist/components/BbHost/BbHostOpening.js +12 -14
  518. package/dist/components/BbHoverCard/BbHoverCard.vue.d.ts +5 -4
  519. package/dist/components/BbHoverCard/BbHoverCard.vue.js +1 -2
  520. package/dist/components/BbHoverCard/BbHoverCard.vue_vue_type_script_setup_true_lang.js +160 -165
  521. package/dist/components/BbHoverCard/BbHoverCardPortal.vue.js +1 -2
  522. package/dist/components/BbHoverCard/BbHoverCardPortal.vue_vue_type_script_setup_true_lang.js +1 -2
  523. package/dist/components/BbHoverCard/hoverCardFocus.js +1 -2
  524. package/dist/components/BbHoverCard/types.js +1 -2
  525. package/dist/components/BbIcon/BbIcon.vue.d.ts +3 -1
  526. package/dist/components/BbIcon/BbIcon.vue.js +1 -2
  527. package/dist/components/BbIcon/BbIcon.vue_vue_type_script_setup_true_lang.js +24 -25
  528. package/dist/components/BbIcon/iconCache.js +1 -2
  529. package/dist/components/BbIcon/types.js +1 -2
  530. package/dist/components/BbIndicator/BbIndicator.vue.d.ts +3 -1
  531. package/dist/components/BbIndicator/BbIndicator.vue.js +1 -2
  532. package/dist/components/BbIndicator/BbIndicator.vue_vue_type_script_setup_true_lang.js +9 -10
  533. package/dist/components/BbIndicator/types.js +1 -2
  534. package/dist/components/BbNumberInput/BbNumberInput.vue.d.ts +6 -3
  535. package/dist/components/BbNumberInput/BbNumberInput.vue.js +1 -2
  536. package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +336 -369
  537. package/dist/components/BbNumberInput/numberDisplay.js +1 -2
  538. package/dist/components/BbNumberInput/platform.js +1 -2
  539. package/dist/components/BbNumberInput/types.d.ts +29 -6
  540. package/dist/components/BbNumberInput/types.js +11 -10
  541. package/dist/components/BbOffCanvas/BbOffCanvas.vue.d.ts +6 -5
  542. package/dist/components/BbOffCanvas/BbOffCanvas.vue.js +1 -2
  543. package/dist/components/BbOffCanvas/BbOffCanvas.vue_vue_type_script_setup_true_lang.js +347 -373
  544. package/dist/components/BbOffCanvas/hostCloseLabel.js +1 -2
  545. package/dist/components/BbOffCanvas/sheetAttrs.d.ts +9 -0
  546. package/dist/components/BbOffCanvas/sheetAttrs.js +9 -0
  547. package/dist/components/BbOffCanvas/sheetSnap.js +3 -8
  548. package/dist/components/BbOffCanvas/types.d.ts +12 -10
  549. package/dist/components/BbOffCanvas/types.js +3 -3
  550. package/dist/components/BbOffCanvas/useOffCanvasStack.d.ts +2 -0
  551. package/dist/components/BbOffCanvas/useOffCanvasStack.js +8 -5
  552. package/dist/components/BbPagination/BbPagination.vue.d.ts +2 -1
  553. package/dist/components/BbPagination/BbPagination.vue.js +1 -2
  554. package/dist/components/BbPagination/BbPagination.vue_vue_type_script_setup_true_lang.js +84 -85
  555. package/dist/components/BbPagination/paginationFit.js +0 -1
  556. package/dist/components/BbPagination/types.d.ts +17 -9
  557. package/dist/components/BbPagination/types.js +4 -3
  558. package/dist/components/BbPopover/BbPopover.vue.d.ts +5 -4
  559. package/dist/components/BbPopover/BbPopover.vue.js +1 -2
  560. package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +139 -157
  561. package/dist/components/BbPopover/BbPopoverPortal.vue.js +1 -2
  562. package/dist/components/BbPopover/BbPopoverPortal.vue_vue_type_script_setup_true_lang.js +1 -2
  563. package/dist/components/BbPopover/types.js +1 -2
  564. package/dist/components/BbProgress/BbProgress.vue.d.ts +6 -1
  565. package/dist/components/BbProgress/BbProgress.vue.js +1 -2
  566. package/dist/components/BbProgress/BbProgress.vue_vue_type_script_setup_true_lang.js +16 -17
  567. package/dist/components/BbProgress/types.js +1 -2
  568. package/dist/components/BbPtScope/BbPtScope.vue.js +1 -2
  569. package/dist/components/BbPtScope/BbPtScope.vue_vue_type_script_setup_true_lang.js +1 -2
  570. package/dist/components/BbRadio/BbRadio.vue.d.ts +4 -2
  571. package/dist/components/BbRadio/BbRadio.vue.js +1 -2
  572. package/dist/components/BbRadio/BbRadio.vue_vue_type_script_setup_true_lang.js +46 -50
  573. package/dist/components/BbRadio/types.d.ts +4 -2
  574. package/dist/components/BbRadio/types.js +3 -3
  575. package/dist/components/BbRadioGroup/BbRadioGroup.vue.d.ts +299 -1
  576. package/dist/components/BbRadioGroup/BbRadioGroup.vue.js +1 -2
  577. package/dist/components/BbRadioGroup/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +178 -184
  578. package/dist/components/BbRadioGroup/types.d.ts +12 -6
  579. package/dist/components/BbRadioGroup/types.js +8 -9
  580. package/dist/components/BbRating/BbRating.vue.d.ts +4 -2
  581. package/dist/components/BbRating/BbRating.vue.js +1 -2
  582. package/dist/components/BbRating/BbRating.vue_vue_type_script_setup_true_lang.js +143 -155
  583. package/dist/components/BbRating/types.d.ts +15 -5
  584. package/dist/components/BbRating/types.js +10 -3
  585. package/dist/components/BbSelect/BbSelect.vue.d.ts +553 -4
  586. package/dist/components/BbSelect/BbSelect.vue.js +1 -2
  587. package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +173 -205
  588. package/dist/components/BbSelect/types.d.ts +41 -7
  589. package/dist/components/BbSelect/types.js +17 -2
  590. package/dist/components/BbSelectPopover/BbSelectPopover.vue.d.ts +103 -3
  591. package/dist/components/BbSelectPopover/BbSelectPopover.vue.js +1 -2
  592. package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +571 -630
  593. package/dist/components/BbSelectPopover/knownItems.js +1 -2
  594. package/dist/components/BbSelectPopover/sheetChipAttrs.js +1 -2
  595. package/dist/components/BbSelectPopover/types.d.ts +29 -7
  596. package/dist/components/BbSelectPopover/types.js +9 -3
  597. package/dist/components/BbSlider/BbSlider.vue.d.ts +136 -33
  598. package/dist/components/BbSlider/BbSlider.vue.js +1 -2
  599. package/dist/components/BbSlider/BbSlider.vue_vue_type_script_setup_true_lang.js +213 -235
  600. package/dist/components/BbSlider/types.d.ts +32 -7
  601. package/dist/components/BbSlider/types.js +10 -3
  602. package/dist/components/BbSmoothHeight/BbSmoothHeight.vue.d.ts +3 -1
  603. package/dist/components/BbSmoothHeight/BbSmoothHeight.vue.js +1 -2
  604. package/dist/components/BbSmoothHeight/BbSmoothHeight.vue_vue_type_script_setup_true_lang.js +14 -21
  605. package/dist/components/BbSmoothHeight/types.js +1 -2
  606. package/dist/components/BbSpinner/BbSpinner.vue.d.ts +3 -1
  607. package/dist/components/BbSpinner/BbSpinner.vue.js +1 -2
  608. package/dist/components/BbSpinner/BbSpinner.vue_vue_type_script_setup_true_lang.js +14 -15
  609. package/dist/components/BbSpinner/types.js +1 -2
  610. package/dist/components/BbSwitch/BbSwitch.vue.d.ts +4 -2
  611. package/dist/components/BbSwitch/BbSwitch.vue.js +1 -2
  612. package/dist/components/BbSwitch/BbSwitch.vue_vue_type_script_setup_true_lang.js +110 -117
  613. package/dist/components/BbSwitch/types.d.ts +21 -2
  614. package/dist/components/BbSwitch/types.js +8 -5
  615. package/dist/components/BbSwitchGroup/BbSwitchGroup.vue.d.ts +145 -1
  616. package/dist/components/BbSwitchGroup/BbSwitchGroup.vue.js +1 -2
  617. package/dist/components/BbSwitchGroup/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +155 -160
  618. package/dist/components/BbSwitchGroup/types.d.ts +11 -4
  619. package/dist/components/BbSwitchGroup/types.js +4 -5
  620. package/dist/components/BbTable/BbTable.vue.d.ts +5 -2
  621. package/dist/components/BbTable/BbTable.vue.js +1 -2
  622. package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +1143 -1301
  623. package/dist/components/BbTable/BbTableDataRow.js +1 -2
  624. package/dist/components/BbTable/BbTableEdgeRow.js +1 -2
  625. package/dist/components/BbTable/BbTableExpandRow.js +1 -2
  626. package/dist/components/BbTable/BbTableSelectToggle.js +17 -18
  627. package/dist/components/BbTable/gridWidgets.js +2 -7
  628. package/dist/components/BbTable/measuredFloors.js +67 -65
  629. package/dist/components/BbTable/textRuler.d.ts +3 -1
  630. package/dist/components/BbTable/textRuler.js +40 -39
  631. package/dist/components/BbTable/types.d.ts +54 -9
  632. package/dist/components/BbTable/types.js +45 -3
  633. package/dist/components/BbTable/useRowReorder.js +179 -203
  634. package/dist/components/BbTable/utils.d.ts +9 -2
  635. package/dist/components/BbTable/utils.js +66 -72
  636. package/dist/components/BbTabs/BbTabs.vue.d.ts +103 -2
  637. package/dist/components/BbTabs/BbTabs.vue.js +1 -2
  638. package/dist/components/BbTabs/BbTabs.vue_vue_type_script_setup_true_lang.js +26 -30
  639. package/dist/components/BbTabs/BbTabsList.vue.d.ts +11 -1
  640. package/dist/components/BbTabs/BbTabsList.vue.js +1 -2
  641. package/dist/components/BbTabs/BbTabsList.vue_vue_type_script_setup_true_lang.js +112 -107
  642. package/dist/components/BbTabs/BbTabsPanels.vue.d.ts +9 -1
  643. package/dist/components/BbTabs/BbTabsPanels.vue.js +1 -2
  644. package/dist/components/BbTabs/BbTabsPanels.vue_vue_type_script_setup_true_lang.js +22 -22
  645. package/dist/components/BbTabs/BbTabsRoot.vue.js +1 -2
  646. package/dist/components/BbTabs/BbTabsRoot.vue_vue_type_script_setup_true_lang.js +6 -7
  647. package/dist/components/BbTabs/tablistName.js +1 -2
  648. package/dist/components/BbTabs/types.d.ts +71 -33
  649. package/dist/components/BbTabs/types.js +11 -3
  650. package/dist/components/BbTag/BbTag.vue.d.ts +5 -2
  651. package/dist/components/BbTag/BbTag.vue.js +1 -2
  652. package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +218 -243
  653. package/dist/components/BbTag/types.d.ts +22 -12
  654. package/dist/components/BbTag/types.js +19 -9
  655. package/dist/components/BbTextInput/BbTextInput.vue.d.ts +209 -2
  656. package/dist/components/BbTextInput/BbTextInput.vue.js +1 -2
  657. package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +136 -142
  658. package/dist/components/BbTextInput/types.d.ts +17 -5
  659. package/dist/components/BbTextInput/types.js +22 -12
  660. package/dist/components/BbTextarea/BbTextarea.vue.d.ts +207 -2
  661. package/dist/components/BbTextarea/BbTextarea.vue.js +1 -2
  662. package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +142 -144
  663. package/dist/components/BbTextarea/types.d.ts +17 -5
  664. package/dist/components/BbTextarea/types.js +22 -12
  665. package/dist/components/BbTimePicker/BbTimePicker.vue.d.ts +84 -38
  666. package/dist/components/BbTimePicker/BbTimePicker.vue.js +1 -2
  667. package/dist/components/BbTimePicker/BbTimePicker.vue_vue_type_script_setup_true_lang.js +166 -171
  668. package/dist/components/BbTimePicker/types.d.ts +31 -7
  669. package/dist/components/BbTimePicker/types.js +4 -3
  670. package/dist/components/BbTimePickerInput/BbTimePickerInput.vue.d.ts +272 -33
  671. package/dist/components/BbTimePickerInput/BbTimePickerInput.vue.js +1 -2
  672. package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +295 -327
  673. package/dist/components/BbTimePickerInput/types.d.ts +45 -9
  674. package/dist/components/BbTimePickerInput/types.js +17 -7
  675. package/dist/components/BbToast/BbToast.vue.js +1 -2
  676. package/dist/components/BbToast/BbToast.vue_vue_type_script_setup_true_lang.js +12 -17
  677. package/dist/components/BbToast/BbToastMessage.vue.js +1 -2
  678. package/dist/components/BbToast/BbToastMessage.vue_vue_type_script_setup_true_lang.js +72 -74
  679. package/dist/components/BbToast/BbToastPortal.vue.js +1 -2
  680. package/dist/components/BbToast/BbToastPortal.vue_vue_type_script_setup_true_lang.js +2 -3
  681. package/dist/components/BbToast/BbToastRegion.vue.js +1 -2
  682. package/dist/components/BbToast/BbToastRegion.vue_vue_type_script_setup_true_lang.js +27 -28
  683. package/dist/components/BbToast/types.d.ts +17 -5
  684. package/dist/components/BbToast/types.js +12 -13
  685. package/dist/components/BbTooltip/BbTooltip.vue.d.ts +3 -2
  686. package/dist/components/BbTooltip/BbTooltip.vue.js +1 -2
  687. package/dist/components/BbTooltip/BbTooltip.vue_vue_type_script_setup_true_lang.js +69 -70
  688. package/dist/components/BbTooltip/tooltipWarmup.js +0 -1
  689. package/dist/components/BbTooltip/types.js +1 -2
  690. package/dist/components/BbTree/BbTree.vue.d.ts +2 -3
  691. package/dist/components/BbTree/BbTree.vue.js +1 -2
  692. package/dist/components/BbTree/BbTree.vue_vue_type_script_setup_true_lang.js +28 -27
  693. package/dist/components/BbTree/BbTreeLevel.vue.js +1 -2
  694. package/dist/components/BbTree/BbTreeLevel.vue_vue_type_script_setup_true_lang.js +12 -20
  695. package/dist/components/BbTree/context.js +1 -2
  696. package/dist/components/BbTree/types.d.ts +13 -3
  697. package/dist/components/BbTree/types.js +4 -3
  698. package/dist/components/ChipsBox/ChipsBox.vue.js +1 -2
  699. package/dist/components/ChipsBox/ChipsBox.vue_vue_type_script_setup_true_lang.js +24 -26
  700. package/dist/components/ClearableButton/ClearableButton.vue.d.ts +3 -1
  701. package/dist/components/ClearableButton/ClearableButton.vue.js +1 -2
  702. package/dist/components/ClearableButton/ClearableButton.vue_vue_type_script_setup_true_lang.js +1 -2
  703. package/dist/components/CloseIcon/CloseButton.vue.d.ts +3 -1
  704. package/dist/components/CloseIcon/CloseButton.vue.js +2 -3
  705. package/dist/components/CloseIcon/CloseButton.vue_vue_type_script_setup_true_lang.js +3 -4
  706. package/dist/components/CommaBox/CommaBox.vue.js +1 -2
  707. package/dist/components/CommaBox/CommaBox.vue_vue_type_script_setup_true_lang.js +20 -22
  708. package/dist/components/CommonField/CommonField.vue.d.ts +3 -1
  709. package/dist/components/CommonField/CommonField.vue.js +1 -2
  710. package/dist/components/CommonField/CommonField.vue_vue_type_script_setup_true_lang.js +78 -73
  711. package/dist/components/CommonField/types.d.ts +2 -2
  712. package/dist/components/CommonFieldInput/CommonFieldInput.vue.d.ts +5 -3
  713. package/dist/components/CommonFieldInput/CommonFieldInput.vue.js +1 -2
  714. package/dist/components/CommonFieldInput/CommonFieldInput.vue_vue_type_script_setup_true_lang.js +20 -21
  715. package/dist/components/CommonPopover/CommonPopover.vue.d.ts +5 -4
  716. package/dist/components/CommonPopover/CommonPopover.vue.js +1 -2
  717. package/dist/components/CommonPopover/CommonPopover.vue_vue_type_script_setup_true_lang.js +90 -89
  718. package/dist/components/CommonTimeSelector/CommonTimeSelector.vue.js +1 -2
  719. package/dist/components/CommonTimeSelector/CommonTimeSelector.vue_vue_type_script_setup_true_lang.js +29 -38
  720. package/dist/components/CommonTimeSelector/useMeridiem.js +1 -2
  721. package/dist/components/ErrorIcon/ErrorIcon.vue.d.ts +3 -1
  722. package/dist/components/ErrorIcon/ErrorIcon.vue.js +1 -2
  723. package/dist/components/ErrorIcon/ErrorIcon.vue_vue_type_script_setup_true_lang.js +1 -2
  724. package/dist/components/FlatListBox/FlatListBox.vue.js +1 -2
  725. package/dist/components/FlatListBox/FlatListBox.vue_vue_type_script_setup_true_lang.js +87 -94
  726. package/dist/components/FlatListBox/types.d.ts +1 -1
  727. package/dist/components/GroupedListBox/GroupedListBox.vue.js +1 -2
  728. package/dist/components/GroupedListBox/GroupedListBox.vue_vue_type_script_setup_true_lang.js +55 -62
  729. package/dist/components/GroupedListBox/types.d.ts +1 -1
  730. package/dist/components/ListBox/ListBox.vue.d.ts +1 -1
  731. package/dist/components/ListBox/ListBox.vue.js +1 -2
  732. package/dist/components/ListBox/ListBox.vue_vue_type_script_setup_true_lang.js +21 -22
  733. package/dist/components/ListBox/types.d.ts +1 -1
  734. package/dist/components/OptionsContainer/OptionsContainer.vue.d.ts +1 -1
  735. package/dist/components/OptionsContainer/OptionsContainer.vue.js +1 -2
  736. package/dist/components/OptionsContainer/OptionsContainer.vue_vue_type_script_setup_true_lang.js +23 -27
  737. package/dist/components/OptionsContainer/types.d.ts +1 -1
  738. package/dist/components/Transitions/ScaleFade.vue.js +1 -2
  739. package/dist/components/Transitions/ScaleFade.vue_vue_type_script_setup_true_lang.js +1 -2
  740. package/dist/components/Transitions/Slide.vue.d.ts +1 -1
  741. package/dist/components/Transitions/Slide.vue.js +4 -5
  742. package/dist/components/Transitions/Slide.vue_vue_type_script_setup_true_lang.js +4 -5
  743. package/dist/components/WarningIcon/WarningIcon.vue.d.ts +3 -1
  744. package/dist/components/WarningIcon/WarningIcon.vue.js +1 -2
  745. package/dist/components/WarningIcon/WarningIcon.vue_vue_type_script_setup_true_lang.js +1 -2
  746. package/dist/composables/autoHost.d.ts +22 -0
  747. package/dist/composables/autoHost.js +19 -0
  748. package/dist/composables/formSubmitLock.js +1 -2
  749. package/dist/composables/hostOpenings.d.ts +3 -3
  750. package/dist/composables/hostOpenings.js +7 -12
  751. package/dist/composables/hostRegistry.d.ts +10 -2
  752. package/dist/composables/hostRegistry.js +6 -5
  753. package/dist/composables/overlayRegistry.d.ts +1 -1
  754. package/dist/composables/overlayRegistry.js +4 -5
  755. package/dist/composables/ssrMarker.js +1 -2
  756. package/dist/composables/useActiveInactiveState.js +1 -2
  757. package/dist/composables/useArray.js +1 -2
  758. package/dist/composables/useBaseOptions.js +19 -20
  759. package/dist/composables/useBbConfig.js +1 -2
  760. package/dist/composables/{useBbDialogContext.d.ts → useBbDialog.d.ts} +9 -9
  761. package/dist/composables/{useBbDialogContext.js → useBbDialog.js} +19 -23
  762. package/dist/composables/{useBbDropdownContext.d.ts → useBbDropdown.d.ts} +14 -14
  763. package/dist/composables/{useBbDropdownContext.js → useBbDropdown.js} +4 -5
  764. package/dist/composables/{useBbFormContext.d.ts → useBbForm.d.ts} +8 -8
  765. package/dist/composables/{useBbFormContext.js → useBbForm.js} +8 -12
  766. package/dist/composables/useBbFormField.js +1 -2
  767. package/dist/composables/useBbOffCanvas.d.ts +23 -0
  768. package/dist/composables/useBbOffCanvas.js +7 -0
  769. package/dist/composables/{useBbTableContext.d.ts → useBbTable.d.ts} +29 -29
  770. package/dist/composables/{useBbTableContext.js → useBbTable.js} +3 -4
  771. package/dist/composables/{useBbTabsContext.d.ts → useBbTabs.d.ts} +19 -3
  772. package/dist/composables/useBbTabs.js +254 -0
  773. package/dist/composables/useBodyScrollLock.js +1 -2
  774. package/dist/composables/useBreakpoint.js +1 -2
  775. package/dist/composables/useCancelableFunction.js +1 -2
  776. package/dist/composables/useCharacterCounter.js +2 -3
  777. package/dist/composables/useChoiceIndicator.js +4 -9
  778. package/dist/composables/useClosingInert.js +3 -8
  779. package/dist/composables/useCoarsePointer.js +1 -2
  780. package/dist/composables/useCoherence.js +1 -2
  781. package/dist/composables/useConfig.js +1 -2
  782. package/dist/composables/useConfirm.d.ts +28 -31
  783. package/dist/composables/useConfirm.js +8 -9
  784. package/dist/composables/useCountdown.js +6 -7
  785. package/dist/composables/useEscapeStackEntry.js +1 -2
  786. package/dist/composables/useFormBinding.js +6 -9
  787. package/dist/composables/useFrameworkDetection.js +1 -2
  788. package/dist/composables/useHashedWatcher.js +1 -2
  789. package/dist/composables/useHydrated.js +1 -2
  790. package/dist/composables/useId.js +1 -2
  791. package/dist/composables/useImeDismissBlur.js +2 -7
  792. package/dist/composables/useIndexById.js +1 -2
  793. package/dist/composables/useInertiaPage.js +1 -2
  794. package/dist/composables/useItemText.js +3 -3
  795. package/dist/composables/useItemValue.js +1 -2
  796. package/dist/composables/useItemsGetter.js +12 -19
  797. package/dist/composables/useKeyboardInset.js +0 -1
  798. package/dist/composables/useListboxFocus.js +1 -2
  799. package/dist/composables/useLocale.js +7 -8
  800. package/dist/composables/useLogger.js +1 -2
  801. package/dist/composables/useMobile.js +1 -2
  802. package/dist/composables/useOnDemandOpener.d.ts +4 -4
  803. package/dist/composables/useOnDemandOpener.js +12 -13
  804. package/dist/composables/useOnFalsy.js +1 -2
  805. package/dist/composables/useOnTruthy.js +1 -2
  806. package/dist/composables/useOverlayNavigation.js +6 -11
  807. package/dist/composables/useOverlayYield.js +1 -2
  808. package/dist/composables/usePassthrough.js +207 -123
  809. package/dist/composables/usePrefill.js +11 -16
  810. package/dist/composables/useQuery.js +9 -22
  811. package/dist/composables/useRefusedCloseAnnouncement.js +1 -2
  812. package/dist/composables/useRoute.js +1 -2
  813. package/dist/composables/useRouter.js +1 -2
  814. package/dist/composables/useSafeArea.js +10 -11
  815. package/dist/composables/useSafeAreaInternal.js +4 -5
  816. package/dist/composables/useSegmentedFields.js +5 -17
  817. package/dist/composables/useServerPrefetch.js +1 -2
  818. package/dist/composables/useSheetSurface.js +1 -2
  819. package/dist/composables/useSsrState.js +1 -2
  820. package/dist/composables/useTableWidthContext.js +2 -3
  821. package/dist/composables/useToast.d.ts +4 -5
  822. package/dist/composables/useToast.js +4 -5
  823. package/dist/composables/useToggleInput.js +1 -2
  824. package/dist/composables/useTopLayer.js +1 -2
  825. package/dist/composables/useTypeahead.js +0 -1
  826. package/dist/composables/useUntil.js +1 -2
  827. package/dist/composables/useUrlQueryParam.d.ts +1 -1
  828. package/dist/composables/useUrlQueryParam.js +1 -2
  829. package/dist/composables/useViewportWidth.js +2 -3
  830. package/dist/deprecation/ai-deprecations.json.js +1 -2
  831. package/dist/deprecation/removedProps.js +1 -2
  832. package/dist/directives/bbColor.js +7 -8
  833. package/dist/directives/bbDate.js +7 -8
  834. package/dist/directives/bbDialog.d.ts +1 -1
  835. package/dist/directives/bbDialog.js +1 -2
  836. package/dist/directives/bbDropdown.js +14 -15
  837. package/dist/directives/bbHoverCard.js +8 -9
  838. package/dist/directives/bbOffCanvas.d.ts +1 -1
  839. package/dist/directives/bbOffCanvas.js +1 -2
  840. package/dist/directives/bbPopover.js +12 -13
  841. package/dist/directives/bbTime.js +7 -8
  842. package/dist/directives/bbTooltip.js +1 -2
  843. package/dist/directives/createPopoverDirective.js +6 -17
  844. package/dist/directives/directivePortal.js +1 -2
  845. package/dist/directives/overlayTrigger.js +20 -21
  846. package/dist/directives/renderingInstance.js +4 -8
  847. package/dist/i18n/locales/cs.json +8 -1
  848. package/dist/i18n/locales/da.json +8 -1
  849. package/dist/i18n/locales/de-CH.json +8 -1
  850. package/dist/i18n/locales/de.json +8 -1
  851. package/dist/i18n/locales/el.json +8 -1
  852. package/dist/i18n/locales/en-GB.json +8 -1
  853. package/dist/i18n/locales/en.json +8 -1
  854. package/dist/i18n/locales/es-MX.json +8 -1
  855. package/dist/i18n/locales/es.json +8 -1
  856. package/dist/i18n/locales/fi.json +8 -1
  857. package/dist/i18n/locales/fr.json +8 -1
  858. package/dist/i18n/locales/hu.json +8 -1
  859. package/dist/i18n/locales/it.json +8 -1
  860. package/dist/i18n/locales/ja.json +8 -1
  861. package/dist/i18n/locales/ko.json +8 -1
  862. package/dist/i18n/locales/nb.json +8 -1
  863. package/dist/i18n/locales/nl.json +8 -1
  864. package/dist/i18n/locales/pl.json +8 -1
  865. package/dist/i18n/locales/pt-BR.json +8 -1
  866. package/dist/i18n/locales/pt-PT.json +8 -1
  867. package/dist/i18n/locales/ro.json +8 -1
  868. package/dist/i18n/locales/ru.json +8 -1
  869. package/dist/i18n/locales/sv.json +8 -1
  870. package/dist/i18n/locales/tr.json +8 -1
  871. package/dist/i18n/locales/uk.json +8 -1
  872. package/dist/i18n/locales/zh-CN.json +8 -1
  873. package/dist/i18n/locales/zh-HK.json +8 -1
  874. package/dist/i18n/locales/zh-TW.json +8 -1
  875. package/dist/i18n/regionHints.js +1 -2
  876. package/dist/i18n/regions.js +1 -2
  877. package/dist/icon-scan.js +6 -11
  878. package/dist/index.d.ts +15 -15
  879. package/dist/index.js +88 -88
  880. package/dist/llms-full.txt +4886 -2972
  881. package/dist/llms-medium.txt +170 -112
  882. package/dist/llms.txt +12 -12
  883. package/dist/locale-blueprint.json +8 -1
  884. package/dist/nuxt-auto-imports.js +7 -8
  885. package/dist/nuxt.js +21 -22
  886. package/dist/passthrough-deduper.js +1 -2
  887. package/dist/plugin.js +24 -23
  888. package/dist/project-dts.js +1 -2
  889. package/dist/runtime/nuxt-plugin.js +39 -38
  890. package/dist/styles.css +2 -2
  891. package/dist/types/AlertVariant.js +1 -2
  892. package/dist/types/BadgeVariant.js +1 -2
  893. package/dist/types/ButtonVariant.js +1 -2
  894. package/dist/types/CheckboxVariant.js +1 -2
  895. package/dist/types/ConfirmVariant.js +1 -2
  896. package/dist/types/DatePickerType.d.ts +10 -5
  897. package/dist/types/DatePickerType.js +3 -4
  898. package/dist/types/DropdownItemVariant.js +1 -2
  899. package/dist/types/FieldLayout.js +1 -2
  900. package/dist/types/IndicatorVariant.js +1 -2
  901. package/dist/types/InputVariant.js +1 -2
  902. package/dist/types/RadioVariant.js +1 -2
  903. package/dist/types/ShapeErased.d.ts +15 -0
  904. package/dist/types/TabsVariant.js +1 -2
  905. package/dist/types/ToastVariant.js +1 -2
  906. package/dist/types/TooltipVariant.js +1 -2
  907. package/dist/types/fallthrough.d.ts +134 -0
  908. package/dist/types/passthrough.d.ts +112 -2
  909. package/dist/types/passthrough.js +19 -13
  910. package/dist/types/ptComponentMap.d.ts +31 -31
  911. package/dist/utilities/functions/animationsSettled.js +1 -2
  912. package/dist/utilities/functions/bytesToUnit.js +1 -2
  913. package/dist/utilities/functions/chunk.js +1 -2
  914. package/dist/utilities/functions/clamp.js +1 -2
  915. package/dist/utilities/functions/clampPrecision.js +1 -2
  916. package/dist/utilities/functions/convertDateValue.d.ts +5 -2
  917. package/dist/utilities/functions/convertDateValue.js +19 -13
  918. package/dist/utilities/functions/curry.js +1 -2
  919. package/dist/utilities/functions/deburr.js +1 -2
  920. package/dist/utilities/functions/elementLabel.js +1 -2
  921. package/dist/utilities/functions/empty.js +1 -2
  922. package/dist/utilities/functions/extractDomContainer.js +1 -2
  923. package/dist/utilities/functions/findInTree.js +1 -2
  924. package/dist/utilities/functions/flattenTree.js +1 -2
  925. package/dist/utilities/functions/get.js +1 -2
  926. package/dist/utilities/functions/hasVnodeListener.js +1 -2
  927. package/dist/utilities/functions/hash.js +1 -2
  928. package/dist/utilities/functions/head.js +1 -2
  929. package/dist/utilities/functions/identity.js +1 -2
  930. package/dist/utilities/functions/indexBy.js +1 -2
  931. package/dist/utilities/functions/isDateDisabled.js +23 -19
  932. package/dist/utilities/functions/isEqual.js +1 -2
  933. package/dist/utilities/functions/isHex.js +1 -2
  934. package/dist/utilities/functions/isImeComposing.js +1 -2
  935. package/dist/utilities/functions/isNil.js +1 -2
  936. package/dist/utilities/functions/isNotEmpty.js +1 -2
  937. package/dist/utilities/functions/isNotNil.js +1 -2
  938. package/dist/utilities/functions/isTextEntry.js +1 -2
  939. package/dist/utilities/functions/isoWeek.d.ts +36 -0
  940. package/dist/utilities/functions/isoWeek.js +21 -0
  941. package/dist/utilities/functions/itemProps.js +1 -2
  942. package/dist/utilities/functions/last.js +1 -2
  943. package/dist/utilities/functions/matchAnyKey.js +1 -2
  944. package/dist/utilities/functions/noop.js +1 -2
  945. package/dist/utilities/functions/normalizeDateBound.d.ts +11 -5
  946. package/dist/utilities/functions/normalizeDateBound.js +6 -5
  947. package/dist/utilities/functions/parsePaginationNumber.js +1 -2
  948. package/dist/utilities/functions/parseSize.js +1 -2
  949. package/dist/utilities/functions/parseWidthString.js +1 -2
  950. package/dist/utilities/functions/percentage.js +1 -2
  951. package/dist/utilities/functions/pickBy.js +1 -2
  952. package/dist/utilities/functions/range.js +1 -2
  953. package/dist/utilities/functions/readableValue.js +1 -2
  954. package/dist/utilities/functions/reject.js +1 -2
  955. package/dist/utilities/functions/resolveEnumProp.js +1 -2
  956. package/dist/utilities/functions/responsiveDefault.js +1 -2
  957. package/dist/utilities/functions/settlesVisible.js +1 -2
  958. package/dist/utilities/functions/slotKey.js +1 -2
  959. package/dist/utilities/functions/snapToStep.js +1 -2
  960. package/dist/utilities/functions/sort.js +1 -2
  961. package/dist/utilities/functions/throttle.js +1 -2
  962. package/dist/utilities/functions/toggleInput.js +1 -2
  963. package/dist/utilities/functions/transpose.js +1 -2
  964. package/dist/utilities/functions/validateDateFormat.js +1 -2
  965. package/dist/utilities/functions/wait.js +1 -2
  966. package/dist/utilities/functions/waitFor.js +2 -7
  967. package/dist/utilities/functions/warnRemovedAttrs.js +2 -5
  968. package/dist/utilities/functions/when.js +1 -2
  969. package/dist/utilities/misc/autofocus.js +1 -2
  970. package/dist/utilities/misc/iconsInjectionKey.js +1 -2
  971. package/dist/utilities/misc/listboxMetrics.js +1 -2
  972. package/dist/utilities/misc/maskaDataOptions.d.ts +12 -0
  973. package/dist/utilities/misc/maskaDataOptions.js +36 -0
  974. package/dist/utilities/misc/pageText.d.ts +16 -0
  975. package/dist/utilities/misc/pageText.js +10 -0
  976. package/dist/utilities/misc/ssrStateInjectionKey.js +1 -2
  977. package/dist/utilities/misc/ssrValue.js +1 -2
  978. package/dist/utilities/misc/transitions.js +1 -2
  979. package/dist/utils/copyData.js +1 -2
  980. package/dist/utils/cssLayers.js +1 -2
  981. package/dist/utils/focusVisibility.js +1 -2
  982. package/dist/utils/injectLibraryStyles.js +3 -12
  983. package/dist/utils/overlayEscapeStack.js +1 -2
  984. package/dist/utils/overlaySurfaceIsolation.js +1 -2
  985. package/dist/utils/passthrough.js +2 -3
  986. package/dist/utils/ptScope.js +1 -2
  987. package/dist/utils/versionCheck.js +2 -3
  988. package/dist/vite-plugin.d.ts +1 -1
  989. package/dist/vite.js +364 -437
  990. package/llms.txt +12 -12
  991. package/package.json +14 -10
  992. package/scripts/lib/adoption-checklist.json +3 -2
  993. package/scripts/lib/check-queue.mjs +102 -0
  994. package/scripts/lib/consumer-install.mjs +64 -0
  995. package/scripts/lib/css-class-surface.mjs +39 -3
  996. package/scripts/lib/css-comment-text.mjs +16 -0
  997. package/scripts/lib/eslint-disable.mjs +9 -1
  998. package/scripts/lib/eslint-plugin.d.ts +7 -1
  999. package/scripts/lib/eslint-plugin.mjs +286 -7
  1000. package/scripts/lib/form-v-model.mjs +2 -2
  1001. package/scripts/lib/helper-canon.mjs +34 -2
  1002. package/scripts/lib/helpers-add.mjs +80 -13
  1003. package/scripts/lib/hidden-label-placeholder.mjs +151 -0
  1004. package/scripts/lib/html-attributes.mjs +82 -0
  1005. package/scripts/lib/idiom-scan.mjs +175 -2
  1006. package/scripts/lib/mcp-config.mjs +1 -1
  1007. package/scripts/lib/pack.mjs +55 -0
  1008. package/scripts/lib/portal-names.mjs +3 -3
  1009. package/scripts/lib/prefer-v-bb-dialog.mjs +1 -1
  1010. package/scripts/lib/quiet-gate.mjs +385 -0
  1011. package/scripts/lib/reactive-v-model.mjs +11 -5
  1012. package/scripts/lib/tab-links.mjs +209 -0
  1013. package/scripts/lib/token-color-mix.mjs +114 -0
  1014. package/scripts/lib/toolchain-check.mjs +34 -3
  1015. package/scripts/lib/unstyled-variants.mjs +57 -0
  1016. package/scripts/lib/validate-bb-markup.mjs +149 -4
  1017. package/dist/composables/useBbOffCanvasContext.d.ts +0 -23
  1018. package/dist/composables/useBbOffCanvasContext.js +0 -8
  1019. package/dist/composables/useBbTabsContext.js +0 -252
@@ -52,9 +52,7 @@ label state) · [Page Shell](../../guides/page-shell.md) ·
52
52
  [Floating Bottom Panel](../../guides/floating-bottom-panel.md).
53
53
 
54
54
  From the [Inertia Helpers](../../guides/inertia-helpers.md) toolkit, installed
55
- with `npx bitboss-ui add useProp useQuery useQueryObject useResourceContext useTableContext`.
56
- `<BbHost />` mounted once in the
57
- `createInertiaApp` render root — never in a page.
55
+ with `npx bitboss-ui add usePromiseRouter useProp useQuery useQueryObject useResourceContext useRouteQuery useTableContext`.
58
56
 
59
57
  Controller: `Inertia::render('BacklogWorkspace/Index', ['issues' => …, 'tabCounts'
60
58
  => …, 'team' => …])` — `issues` is a standard Laravel paginator
@@ -105,11 +103,11 @@ peek so opening it is never a page visit.
105
103
  prop; `useTableContext('issues')` turns it into `items` +
106
104
  `totalItems`/`page`/`perPage` (URL-backed) + `selected`/`unselected`/`all`
107
105
  (select-all-across-pages), and `BbTable` binds directly to that handle.
108
- - **Filters mirror into the URL with `useQueryObject`; tabs are real
109
- visits.** Typing in a pill filter performs a partial Inertia visit
110
- (`only: ['issues', 'tabCounts']`); `BbTabs` items carry `href` +
111
- `server: true` with the same `only` list. The server is the single source
112
- of filtered, paginated truth.
106
+ - **Filters mirror into the URL with `useQueryObject`; the sprint strip is a
107
+ real visit.** Typing in a pill filter performs a partial Inertia visit
108
+ (`only: ['issues', 'tabCounts']`); the sprint strip (a `BbRadioGroup` with
109
+ the tabs look) is the `?tab=` query through `useRouteQuery`, with the same
110
+ `only` list. The server is the single source of filtered, paginated truth.
113
111
  - **Options resolve once, at page level.** Status and priority are static
114
112
  module-level catalogs (fifty rows, zero requests); the assignee picker
115
113
  shares **one** query provider across every row — filtering the `team` page
@@ -151,7 +149,7 @@ needs a modal to edit.
151
149
  | --- | ------------------------ | ---------------------------------- | ------------------------------------------------------- |
152
150
  | 1 | New issue | topbar, the page's one `primary` | navigation (`/issues/new`) |
153
151
  | 2 | Page search | topbar right | `filters.search` → `useQueryObject` partial visit |
154
- | 3 | Switch sprint tab | href tabs with live counts | `BbTabs` `href` + `server: true` partial visit |
152
+ | 3 | Switch sprint tab | status strip with live counts | `useRouteQuery` partial visit |
155
153
  | 4 | Filter by status | rail pill | `BbSelectPopover` multiple over the static catalog |
156
154
  | 5 | Filter by priority | rail pill | `BbSelectPopover` multiple over the static catalog |
157
155
  | 6 | Filter by assignee | rail pill | the shared people provider, single select |
@@ -257,8 +255,7 @@ import {
257
255
  type InjectionKey,
258
256
  type Ref,
259
257
  } from 'vue';
260
- import { router, usePage } from '@inertiajs/vue3';
261
- import type { RequestPayload } from '@inertiajs/core';
258
+ import { usePage } from '@inertiajs/vue3';
262
259
  import {
263
260
  useConfirm,
264
261
  useToast,
@@ -274,9 +271,11 @@ import {
274
271
  type TableContext,
275
272
  } from '@/composables/inertia-helpers/useTableContext';
276
273
  import { useQueryObject } from '@/composables/inertia-helpers/useQueryObject';
274
+ import { useRouteQuery } from '@/composables/inertia-helpers/useRouteQuery';
277
275
  import { useQuery } from '@/composables/inertia-helpers/useQuery';
278
276
  import { useProp } from '@/composables/inertia-helpers/useProp';
279
277
  import type { Issue, IssuePriority, IssueStatus, Member } from '@/types';
278
+ import { usePromiseRouter } from '@/composables/inertia-helpers/usePromiseRouter';
280
279
 
281
280
  /**
282
281
  * What the peek sidebar can show. Clicking an issue ref pushes one of these.
@@ -300,7 +299,7 @@ export type IssuePatch = Partial<
300
299
  export type EditableKey = keyof IssuePatch;
301
300
 
302
301
  export interface BacklogFilters {
303
- search: string;
302
+ search: string | null;
304
303
  status: IssueStatus[];
305
304
  priority: IssuePriority[];
306
305
  /** The whole member, not an id — the pill labels itself with zero fetches. */
@@ -425,40 +424,27 @@ const toArray = (value: unknown): string[] | null => {
425
424
  return Array.isArray(value) ? value.map(String) : String(value).split(',');
426
425
  };
427
426
 
428
- /**
429
- * Inertia's callback-based visit, wrapped as a promise — so every context
430
- * action stays `async`, exactly like the Vue/Nuxt versions. Always a
431
- * partial reload; field saves pass just `['issues']`, everything else
432
- * refreshes the tab counts too.
433
- */
434
- const visit = (
435
- method: 'post' | 'patch' | 'delete',
436
- url: string,
437
- // Inertia's own payload type — strings/numbers/booleans/arrays/files.
438
- // (`Record<string, unknown>` does not satisfy it.)
439
- data: RequestPayload = {},
440
- only: readonly string[] = RELOAD_PROPS
441
- ): Promise<void> =>
442
- new Promise((resolve, reject) => {
443
- router.visit(url, {
444
- method,
445
- data,
446
- only: [...only],
447
- preserveScroll: true,
448
- preserveState: true,
449
- onSuccess: () => resolve(),
450
- onError: (errors) => reject(errors),
451
- // Cut short (cancelled, or interrupted by another visit): resolves,
452
- // the caller moves on (a dialog closes). Ended with neither callback
453
- // (a 500, a network error): rejects with no field errors. Both are
454
- // no-ops once settled.
455
- onFinish: (visit) =>
456
- visit.cancelled || visit.interrupted ? resolve() : reject({}),
457
- });
458
- });
459
-
460
427
  export function provideBacklogWorkspace(): BacklogWorkspaceContext {
428
+ // Every write of the page: a promise the buttons spin on, reloading the
429
+ // page's props in place.
430
+ const { patch, post, remove } = usePromiseRouter({
431
+ only: [...RELOAD_PROPS],
432
+ preserveScroll: true,
433
+ preserveState: true,
434
+ });
461
435
  const { toast } = useToast();
436
+ // A write that fails tells the user and reads as not done. The helpers
437
+ // reject (the error bag on a 422, an Error otherwise) instead of hiding a
438
+ // failure, so no caller sees an `Uncaught (in promise)` (Inertia helpers
439
+ // guide § usePromiseRouter).
440
+ const orToast = (write: Promise<boolean>) =>
441
+ write.catch(() => {
442
+ toast({
443
+ title: 'That did not go through. Try again.',
444
+ variant: 'destructive',
445
+ });
446
+ return false;
447
+ });
462
448
  const { confirm } = useConfirm();
463
449
 
464
450
  // -- Coopt the specific contexts: once, here, for the whole page. ----------
@@ -500,7 +486,7 @@ export function provideBacklogWorkspace(): BacklogWorkspaceContext {
500
486
 
501
487
  const hasActiveFilters = computed(
502
488
  () =>
503
- filters.search !== '' ||
489
+ !!filters.search ||
504
490
  filters.status.length > 0 ||
505
491
  filters.priority.length > 0 ||
506
492
  filters.assignee !== null
@@ -512,9 +498,13 @@ export function provideBacklogWorkspace(): BacklogWorkspaceContext {
512
498
  filters.assignee = null;
513
499
  };
514
500
 
515
- // Tab: seeded from the URL; BbTabs' own `href` + `server` visit updates
516
- // the URL, and its `v-model` write keeps this ref in sync with the click.
517
- const tab = ref<SprintTab>((query.tab as SprintTab) ?? 'current');
501
+ // Tab: the `?tab=` query itself. A pick is a partial-reload visit
502
+ // (replace, preserveState / preserveScroll) that keeps the other query
503
+ // keys, and the value follows the URL, so it changes as the visit lands.
504
+ const tab = useRouteQuery('tab', 'current', {
505
+ transform: (value) => value as SprintTab,
506
+ visitOptions: { only: [...RELOAD_PROPS] },
507
+ });
518
508
  const tabCounts = useProp<Record<SprintTab, number>>('tabCounts');
519
509
 
520
510
  const refreshKey = ref(0);
@@ -524,16 +514,16 @@ export function provideBacklogWorkspace(): BacklogWorkspaceContext {
524
514
  const failed = ref(new Set<string>());
525
515
 
526
516
  const valueOf = <K extends EditableKey>(issue: Issue, key: K): Issue[K] => {
527
- const patch = pending[issue.id];
528
- // `key in patch`, not `patch[key] ?? issue[key]`: null is a legitimate
517
+ const overlay = pending[issue.id];
518
+ // `key in overlay`, not `overlay[key] ?? issue[key]`: null is a legitimate
529
519
  // committed value here (a cleared estimate), and `??` would drop that
530
520
  // overlay and show the stale row value while the save runs.
531
- return patch && key in patch ? (patch[key] as Issue[K]) : issue[key];
521
+ return overlay && key in overlay ? (overlay[key] as Issue[K]) : issue[key];
532
522
  };
533
523
 
534
524
  const isSaving = (issue: Issue, key: EditableKey): boolean => {
535
- const patch = pending[issue.id];
536
- return patch !== undefined && key in patch;
525
+ const overlay = pending[issue.id];
526
+ return overlay !== undefined && key in overlay;
537
527
  };
538
528
 
539
529
  /** Human labels for the editable fields — used in the autosave/undo toasts. */
@@ -573,11 +563,31 @@ export function provideBacklogWorkspace(): BacklogWorkspaceContext {
573
563
  const flag = `${issue.id}:${key}`;
574
564
  (pending[issue.id] ??= {})[key] = value; // optimistic: the UI moves NOW
575
565
  failed.value.delete(flag);
566
+ // Rollback: drop just this field, the row shows the server's value.
567
+ const drop = () => {
568
+ const overlay = pending[issue.id];
569
+ if (overlay) {
570
+ delete overlay[key];
571
+ if (!Object.keys(overlay).length) delete pending[issue.id];
572
+ }
573
+ };
576
574
  try {
577
575
  // One visit is both the PATCH and the reload — the redirect back
578
576
  // re-renders `issues`. Do NOT retire the overlay here: the watcher
579
577
  // below drops it once the server's own data carries the value.
580
- await visit('patch', `/issues/${issue.id}`, { [key]: value }, ['issues']);
578
+ if (
579
+ !(await patch(
580
+ `/issues/${issue.id}`,
581
+ { [key]: value },
582
+ { only: ['issues'] }
583
+ ))
584
+ ) {
585
+ // Not confirmed (a newer edit interrupted it): show what the
586
+ // server holds rather than a value nothing will confirm.
587
+ drop();
588
+ refreshKey.value++;
589
+ return;
590
+ }
581
591
  refreshKey.value++; // the peek re-fetches its JSON detail
582
592
  // Auto-undo: soft confirmation the edit can reverse in one click.
583
593
  toast({
@@ -596,12 +606,7 @@ export function provideBacklogWorkspace(): BacklogWorkspaceContext {
596
606
  ],
597
607
  });
598
608
  } catch {
599
- // Rollback: drop just this field.
600
- const patch = pending[issue.id];
601
- if (patch) {
602
- delete patch[key];
603
- if (!Object.keys(patch).length) delete pending[issue.id];
604
- }
609
+ drop();
605
610
  failed.value.add(flag);
606
611
  toast({
607
612
  title: `Couldn't save the ${key} of ${issue.ref} — reverted.`,
@@ -624,14 +629,14 @@ export function provideBacklogWorkspace(): BacklogWorkspaceContext {
624
629
  // arrival path. A field still in flight is left alone.
625
630
  watch(table.items, (rows) => {
626
631
  for (const issue of rows) {
627
- const patch = pending[issue.id];
628
- if (!patch) continue;
629
- for (const field of Object.keys(patch) as EditableKey[]) {
630
- if (JSON.stringify(patch[field]) === JSON.stringify(issue[field])) {
631
- delete patch[field]; // the server's own data carries it now
632
+ const overlay = pending[issue.id];
633
+ if (!overlay) continue;
634
+ for (const field of Object.keys(overlay) as EditableKey[]) {
635
+ if (JSON.stringify(overlay[field]) === JSON.stringify(issue[field])) {
636
+ delete overlay[field]; // the server's own data carries it now
632
637
  }
633
638
  }
634
- if (!Object.keys(patch).length) delete pending[issue.id];
639
+ if (!Object.keys(overlay).length) delete pending[issue.id];
635
640
  }
636
641
  });
637
642
 
@@ -655,7 +660,7 @@ export function provideBacklogWorkspace(): BacklogWorkspaceContext {
655
660
  };
656
661
 
657
662
  const duplicateIssue = async (issue: Issue) => {
658
- await visit('post', `/issues/${issue.id}/duplicate`);
663
+ if (!(await orToast(post(`/issues/${issue.id}/duplicate`)))) return;
659
664
  refresh();
660
665
  toast({
661
666
  title: `${issue.ref} duplicated.`,
@@ -664,7 +669,7 @@ export function provideBacklogWorkspace(): BacklogWorkspaceContext {
664
669
  };
665
670
 
666
671
  const moveToNextSprint = async (issue: Issue) => {
667
- await visit('post', `/issues/${issue.id}/next-sprint`);
672
+ if (!(await orToast(post(`/issues/${issue.id}/next-sprint`)))) return;
668
673
  refresh();
669
674
  toast({
670
675
  title: `${issue.ref} moved to Sprint 25.`,
@@ -681,7 +686,7 @@ export function provideBacklogWorkspace(): BacklogWorkspaceContext {
681
686
  no: 'Cancel',
682
687
  });
683
688
  if (!ok) return;
684
- await visit('delete', `/issues/${issue.id}`);
689
+ if (!(await orToast(remove(`/issues/${issue.id}`)))) return;
685
690
  refresh();
686
691
  toast({
687
692
  title: `${issue.ref} deleted.`,
@@ -705,7 +710,12 @@ export function provideBacklogWorkspace(): BacklogWorkspaceContext {
705
710
 
706
711
  const bulkStatus = async (status: IssueStatus) => {
707
712
  const count = selectedCount.value;
708
- await visit('patch', '/issues/bulk/status', { ...bulkPayload(), status });
713
+ if (
714
+ !(await orToast(
715
+ patch('/issues/bulk/status', { ...bulkPayload(), status })
716
+ ))
717
+ )
718
+ return;
709
719
  table.resetSelection();
710
720
  refresh();
711
721
  const label = STATUS_OPTIONS.find((o) => o.value === status)?.label;
@@ -717,10 +727,15 @@ export function provideBacklogWorkspace(): BacklogWorkspaceContext {
717
727
 
718
728
  const bulkAssign = async (assignee: Member) => {
719
729
  const count = selectedCount.value;
720
- await visit('patch', '/issues/bulk/assign', {
721
- ...bulkPayload(),
722
- assignee: assignee.id,
723
- });
730
+ if (
731
+ !(await orToast(
732
+ patch('/issues/bulk/assign', {
733
+ ...bulkPayload(),
734
+ assignee: assignee.id,
735
+ })
736
+ ))
737
+ )
738
+ return;
724
739
  table.resetSelection();
725
740
  refresh();
726
741
  toast({
@@ -731,7 +746,8 @@ export function provideBacklogWorkspace(): BacklogWorkspaceContext {
731
746
 
732
747
  const bulkMoveToNextSprint = async () => {
733
748
  const count = selectedCount.value;
734
- await visit('post', '/issues/bulk/next-sprint', bulkPayload());
749
+ if (!(await orToast(post('/issues/bulk/next-sprint', bulkPayload()))))
750
+ return;
735
751
  table.resetSelection();
736
752
  refresh();
737
753
  toast({
@@ -822,45 +838,30 @@ export function useBacklogWorkspace(): BacklogWorkspaceContext {
822
838
  <div class="flex flex-col gap-3 p-4">
823
839
  <FilterRail />
824
840
 
825
- <!-- Tabs are real visits: href + server (component-level `navigation`
826
- is required alongside per-item `server`), each carrying the same
827
- partial-reload prop list as the filter watcher. Counts come back
828
- from the server on every reload. Each href is built from
829
- `tabHref()`, NOT a bare `?tab=` literal: `preserve-state` keeps
830
- `ctx.filters` alive across the visit, so if the href dropped the
831
- filter query keys the server would render an unfiltered page
832
- while the (unchanged) filter chips kept claiming the old
833
- filters still applied. -->
834
- <BbTabs
841
+ <!-- The sprint filter: one value over one table, so a radio group
842
+ with the tabs look (a tablist would promise panels). `ctx.tab` is
843
+ the `?tab=` query (useRouteQuery): a pick is a partial-reload visit
844
+ with the filters' prop list, keeping the other query keys. -->
845
+ <BbRadioGroup
835
846
  v-model="ctx.tab.value"
836
847
  compact
848
+ hide-legend
837
849
  :items="[
838
850
  {
839
851
  value: 'backlog',
840
852
  label: `Backlog · ${ctx.tabCounts.value.backlog}`,
841
- href: tabHref('backlog'),
842
- server: true,
843
- only: ['issues', 'tabCounts'],
844
853
  },
845
854
  {
846
855
  value: 'current',
847
856
  label: `Current sprint · ${ctx.tabCounts.value.current}`,
848
- href: tabHref('current'),
849
- server: true,
850
- only: ['issues', 'tabCounts'],
851
857
  },
852
858
  {
853
859
  value: 'done',
854
860
  label: `Done · ${ctx.tabCounts.value.done}`,
855
- href: tabHref('done'),
856
- server: true,
857
- only: ['issues', 'tabCounts'],
858
861
  },
859
862
  ]"
860
- navigation
861
- preserve-scroll
862
- preserve-state
863
- replace
863
+ legend="Sprint"
864
+ variant="pill"
864
865
  />
865
866
 
866
867
  <!-- No dependencies/items-fn: `issues` is a page prop, and selection
@@ -997,14 +998,12 @@ import {
997
998
  BbIcon,
998
999
  BbButton,
999
1000
  BbPagination,
1001
+ BbRadioGroup,
1000
1002
  BbTable,
1001
- BbTabs,
1002
1003
  BbTextInput,
1003
1004
  } from 'bitboss-ui';
1004
- import qs from 'query-string';
1005
1005
  import PageShell from '@/components/layout/PageShell.vue';
1006
- import { useQuery } from '@/composables/inertia-helpers/useQuery';
1007
- import { provideBacklogWorkspace, type SprintTab } from './context';
1006
+ import { provideBacklogWorkspace } from './context';
1008
1007
  import AssigneeCell from './AssigneeCell.vue';
1009
1008
  import EditableTitleCell from './EditableTitleCell.vue';
1010
1009
  import EstimateCell from './EstimateCell.vue';
@@ -1018,13 +1017,6 @@ import type { Issue } from '@/types';
1018
1017
 
1019
1018
  const ctx = provideBacklogWorkspace();
1020
1019
 
1021
- // Merge `tab` into the *current* query instead of replacing it: `useQuery()`
1022
- // reads the live URL, which already carries every filter `useQueryObject`
1023
- // mirrored there, so switching tabs keeps `search`/`status`/`priority`/
1024
- // `assignee` intact instead of silently resetting the results to unfiltered.
1025
- const tabHref = (tab: SprintTab): string =>
1026
- `/sprints/24?${qs.stringify({ ...useQuery(), tab }, { arrayFormat: 'comma' })}`;
1027
-
1028
1020
  // Row highlight tracks the open peek — the peeked row stays marked, and
1029
1021
  // highlighting a row opens its peek; clearing the highlight closes it.
1030
1022
  const highlightedIssue = computed<string | null>({
@@ -1778,23 +1770,23 @@ const longDate = (value: string) =>
1778
1770
  ingested rows is the choke point for every arrival path. The comment above
1779
1771
  it ships with the recipe on purpose: this is the autosave bug everyone writes
1780
1772
  once.
1781
- - **The `visit()` helper is the promise-wrapped router-visit pattern** from
1773
+ - **`usePromiseRouter` is the promise-wrapped router-visit pattern** from
1782
1774
  the records workspace: it turns Inertia's `onSuccess`/`onError` callbacks
1783
1775
  into a promise so `persistField` and every discrete action stay `async`
1784
1776
  functions — identical call sites to the Vue/Nuxt recipes. Field saves
1785
1777
  reload only `['issues']` (the hottest path on the page); discrete and bulk
1786
1778
  actions reload `tabCounts` too, because they move issues between tabs.
1787
- - **One watcher for filters, one visit mechanism for tabs.**
1779
+ - **One watcher for filters, one query ref for the tab.**
1788
1780
  `useQueryObject(..., { only: ['issues', 'tabCounts'] })` over a URL-shaped
1789
- projection of `filters` is the entire filter-to-URL wiring; `BbTabs`'
1790
- `href` + `server: true` items (with the required component-level
1791
- `navigation`) make tab switches real partial visits with the same `only`
1792
- list — one source of server truth, reached two ways. Each `href` is built
1793
- by `tabHref()`, which merges `tab` into the current query rather than
1794
- replacing it — `href: '/sprints/24?tab=backlog'` alone would drop every
1795
- active filter, and because `preserve-state` keeps this page instance (and
1796
- `ctx.filters`) alive across the visit, the chips would keep showing the
1797
- old filters as active over an unfiltered result set.
1781
+ projection of `filters` is the
1782
+ entire filter-to-URL wiring; the tab is `useRouteQuery('tab', …)` with
1783
+ the same `only: ['issues', 'tabCounts']`, so a pick is a
1784
+ partial-reloaded visit too — one source of server truth, reached two
1785
+ ways. `useRouteQuery` writes `tab` into the current query rather than
1786
+ replacing it, so the active filters ride along (`preserve-state` keeps
1787
+ this page instance and `ctx.filters` alive across the visit, and a
1788
+ dropped filter key would leave the chips claiming filters the result no
1789
+ longer has).
1798
1790
  - **Bulk actions carry the full select-all-across-pages payload**
1799
1791
  (`ids`/`all`/`unselected`) — never just an enumerated id list that
1800
1792
  silently drops rows outside the current page.
@@ -514,6 +514,11 @@ menu while free space sits unused in the middle. Give the trail
514
514
  `shrink-0` to its siblings so they stay content-sized — the same contract
515
515
  the `BbBreadcrumbs` guide documents for exactly this row.
516
516
 
517
+ **The page owns one `<h1>`.** When the topbar's breadcrumb is the visible
518
+ title, the page still names itself: put `<h1 class="sr-only">Invoices</h1>`
519
+ first in the page body, so a screen reader's heading list starts with the
520
+ page, not with a section.
521
+
517
522
  ```vue
518
523
  <template>
519
524
  <PageShell>
@@ -530,7 +535,8 @@ the `BbBreadcrumbs` guide documents for exactly this row.
530
535
  </div>
531
536
  </template>
532
537
 
533
- <!-- default slot: the page body -->
538
+ <!-- default slot: the page body, its one h1 first -->
539
+ <h1 class="sr-only">Invoices</h1>
534
540
  <!-- The shipped `--highlighted` tint already marks the current row;
535
541
  `row-class` is how this page says WHY it is current (the open peek)
536
542
  and how you override the look. See the BbTable guide's Row highlight
@@ -711,9 +717,12 @@ from the app entry (`import '@/components/layout/workspace-surfaces.css'` in
711
717
  }
712
718
  .plain-link:hover,
713
719
  .plain-link:focus-visible {
714
- outline: none;
715
720
  text-decoration-color: currentColor;
716
721
  }
722
+ /* BbBaseButton draws a transparent outline: the keyboard focus colours it. */
723
+ .plain-link:focus-visible {
724
+ outline-color: var(--bb-ring);
725
+ }
717
726
 
718
727
  .row-danger {
719
728
  background: color-mix(in oklab, var(--bb-danger) 6%, var(--bb-panel));
@@ -781,5 +790,7 @@ scrolling away" symptom.
781
790
 
782
791
  The `#sidebar` slot **is** the drawer. Putting a `BbOffCanvas` inside it gives
783
792
  you two stacked drawers with two close buttons. Pick one: the PageShell stack
784
- for in-page detail, or a standalone `BbOffCanvas` for chrome that is not about
785
- the current page (mobile nav, global filters).
793
+ for a record whose detail fits the narrow column (it does not cover the page,
794
+ and moving between records stays smooth), or a standalone `BbOffCanvas` for a
795
+ detail that needs more room (a wide form, a table, a long editor) and for
796
+ chrome that is not about the current page (mobile nav, global filters).