bitboss-ui 3.0.0-beta.63 → 3.0.0-beta.65
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.
- package/README.md +25 -20
- package/bin/bitboss-ui.mjs +73 -7
- package/dist/ai/BbAlert.md +10 -1
- package/dist/ai/BbBadge.md +35 -3
- package/dist/ai/BbBadgeButton.md +4 -2
- package/dist/ai/BbBaseButton.md +9 -3
- package/dist/ai/BbBreadcrumbs.md +2 -2
- package/dist/ai/BbButton.md +113 -8
- package/dist/ai/BbCheckbox.md +1 -1
- package/dist/ai/BbCheckboxGroup.md +94 -6
- package/dist/ai/BbColorInput.md +4 -1
- package/dist/ai/BbColorPalette.md +2 -1
- package/dist/ai/BbConfirm.md +7 -3
- package/dist/ai/BbDatePicker.md +2 -1
- package/dist/ai/BbDatePickerInput.md +4 -1
- package/dist/ai/BbDialog.md +12 -11
- package/dist/ai/BbDropdown.md +189 -38
- package/dist/ai/BbDropdownButton.md +27 -7
- package/dist/ai/BbForm.md +55 -22
- package/dist/ai/BbHost.md +2 -2
- package/dist/ai/BbHoverCard.md +7 -3
- package/dist/ai/BbIcon.md +12 -6
- package/dist/ai/BbIndicator.md +11 -1
- package/dist/ai/BbNumberInput.md +4 -1
- package/dist/ai/BbOffCanvas.md +37 -3
- package/dist/ai/BbPopover.md +2 -1
- package/dist/ai/BbRadio.md +1 -1
- package/dist/ai/BbRadioGroup.md +102 -10
- package/dist/ai/BbSelect.md +52 -17
- package/dist/ai/BbSelectPopover.md +93 -26
- package/dist/ai/BbSwitch.md +1 -1
- package/dist/ai/BbSwitchGroup.md +30 -3
- package/dist/ai/BbTable.md +17 -10
- package/dist/ai/BbTabs.md +8 -3
- package/dist/ai/BbTabsList.md +4 -1
- package/dist/ai/BbTag.md +5 -2
- package/dist/ai/BbTextInput.md +4 -1
- package/dist/ai/BbTextarea.md +4 -1
- package/dist/ai/BbTimePicker.md +2 -1
- package/dist/ai/BbTimePickerInput.md +4 -1
- package/dist/ai/BbToast.md +9 -3
- package/dist/ai/BbTooltip.md +71 -9
- package/dist/ai/ChipsBox.md +1 -1
- package/dist/ai/CommonField.md +1 -1
- package/dist/ai/OptionsContainer.md +42 -0
- package/dist/ai/changelog.json +494 -6
- package/dist/ai/components.json +50 -48
- package/dist/ai/composables/useBbConfig.md +8 -1
- package/dist/ai/composables/useConfirm.md +39 -1
- package/dist/ai/design-tokens.json +6 -6
- package/dist/ai/guides/agent-contract.md +2 -2
- package/dist/ai/guides/ai-router.md +24 -23
- package/dist/ai/guides/app-layout.md +5 -0
- package/dist/ai/guides/component-picker.md +9 -2
- package/dist/ai/guides/design-language.md +24 -24
- package/dist/ai/guides/design-tokens.md +15 -8
- package/dist/ai/guides/icons-policy.md +9 -2
- package/dist/ai/guides/inertia-helpers.md +1183 -301
- package/dist/ai/guides/installation-and-plugin-setup.md +12 -2
- package/dist/ai/guides/migration/adoption-checklist.md +235 -0
- package/dist/ai/guides/migration/components/bb-checkbox-group.md +16 -15
- package/dist/ai/guides/migration/components/bb-dialog.md +9 -9
- package/dist/ai/guides/migration/components/bb-dropdown.md +7 -2
- package/dist/ai/guides/migration/components/bb-popover.md +4 -2
- package/dist/ai/guides/migration/components/bb-select.md +19 -0
- package/dist/ai/guides/migration/components/bb-table.md +1 -0
- package/dist/ai/guides/migration/components/bb-toast.md +4 -0
- package/dist/ai/guides/migration/components/bb-tooltip.md +15 -12
- package/dist/ai/guides/migration/components/use-confirm.md +25 -2
- package/dist/ai/guides/migration/v2-to-v3.md +211 -9
- package/dist/ai/guides/migration/v3-beta-css-classes.md +7 -3
- package/dist/ai/guides/options-items-playbook.md +2 -1
- package/dist/ai/guides/passthrough.md +149 -85
- package/dist/ai/guides/preset-components.md +140 -15
- package/dist/ai/helpers/definePreset.json +7 -0
- package/dist/ai/helpers/definePreset.ts +123 -11
- package/dist/ai/helpers/inertia/manifest.json +151 -62
- package/dist/ai/helpers/inertia/messages.ts +33 -0
- package/dist/ai/helpers/inertia/useConfirmOnRouteLeave.ts +120 -20
- package/dist/ai/helpers/inertia/useHasChanged.ts +34 -16
- package/dist/ai/helpers/inertia/useLazyProp.ts +102 -36
- package/dist/ai/helpers/inertia/useLazyPropGetter.ts +3 -1
- package/dist/ai/helpers/inertia/usePaginatedResponseContext.ts +154 -34
- package/dist/ai/helpers/inertia/usePromiseForm.ts +121 -14
- package/dist/ai/helpers/inertia/useQuery.ts +133 -11
- package/dist/ai/helpers/inertia/useQueryObject.ts +74 -67
- package/dist/ai/helpers/inertia/useResourceContext.ts +60 -14
- package/dist/ai/helpers/inertia/useRouteQuery.ts +38 -27
- package/dist/ai/helpers/inertia/useScreenSizes.ts +9 -7
- package/dist/ai/helpers/inertia/useTableContext.ts +5 -2
- package/dist/ai/helpers/inertia/utils.ts +14 -0
- package/dist/ai/index.md +1 -0
- package/dist/ai/manifest/common.json +0 -1
- package/dist/ai/manifest/components/BbAlert.json +7 -2
- package/dist/ai/manifest/components/BbBadge.json +13 -4
- package/dist/ai/manifest/components/BbBadge.tree.json +2 -0
- package/dist/ai/manifest/components/BbBadgeButton.json +4 -2
- package/dist/ai/manifest/components/BbBaseButton.json +4 -2
- package/dist/ai/manifest/components/BbBreadcrumbs.tree.json +1 -1
- package/dist/ai/manifest/components/BbButton.json +14 -3
- package/dist/ai/manifest/components/BbButton.tree.json +5 -1
- package/dist/ai/manifest/components/BbCheckboxGroup.json +13 -8
- package/dist/ai/manifest/components/BbCheckboxGroup.tree.json +11 -1
- package/dist/ai/manifest/components/BbColorInput.json +18 -15
- package/dist/ai/manifest/components/BbColorPalette.json +1 -1
- package/dist/ai/manifest/components/BbConfirm.json +4 -2
- package/dist/ai/manifest/components/BbConfirm.tree.json +1 -1
- package/dist/ai/manifest/components/BbDatePicker.json +1 -1
- package/dist/ai/manifest/components/BbDatePickerInput.json +17 -14
- package/dist/ai/manifest/components/BbDialog.tree.json +2 -1
- package/dist/ai/manifest/components/BbDropdown.json +24 -19
- package/dist/ai/manifest/components/BbDropdown.tree.json +9 -2
- package/dist/ai/manifest/components/BbDropdownButton.json +33 -20
- package/dist/ai/manifest/components/BbDropdownButton.tree.json +2 -2
- package/dist/ai/manifest/components/BbForm.json +2 -2
- package/dist/ai/manifest/components/BbHost.tree.json +1 -1
- package/dist/ai/manifest/components/BbHoverCard.json +1 -1
- package/dist/ai/manifest/components/BbIndicator.json +8 -2
- package/dist/ai/manifest/components/BbNumberInput.json +5 -2
- package/dist/ai/manifest/components/BbOffCanvas.json +2 -2
- package/dist/ai/manifest/components/BbOffCanvas.tree.json +1 -1
- package/dist/ai/manifest/components/BbPopover.json +1 -1
- package/dist/ai/manifest/components/BbRadioGroup.json +17 -12
- package/dist/ai/manifest/components/BbRadioGroup.tree.json +8 -1
- package/dist/ai/manifest/components/BbSelect.json +21 -18
- package/dist/ai/manifest/components/BbSelect.tree.json +2 -2
- package/dist/ai/manifest/components/BbSelectPopover.json +10 -10
- package/dist/ai/manifest/components/BbSelectPopover.tree.json +3 -2
- package/dist/ai/manifest/components/BbSwitchGroup.json +1 -1
- package/dist/ai/manifest/components/BbSwitchGroup.tree.json +3 -1
- package/dist/ai/manifest/components/BbTable.tree.json +14 -1
- package/dist/ai/manifest/components/BbTabs.json +9 -6
- package/dist/ai/manifest/components/BbTabs.tree.json +1 -1
- package/dist/ai/manifest/components/BbTabsList.json +6 -3
- package/dist/ai/manifest/components/BbTag.json +19 -16
- package/dist/ai/manifest/components/BbTag.tree.json +1 -1
- package/dist/ai/manifest/components/BbTextInput.json +6 -3
- package/dist/ai/manifest/components/BbTextarea.json +6 -3
- package/dist/ai/manifest/components/BbTimePicker.json +1 -1
- package/dist/ai/manifest/components/BbTimePickerInput.json +10 -7
- package/dist/ai/manifest/components/BbToast.json +7 -2
- package/dist/ai/manifest/components/BbToast.tree.json +4 -2
- package/dist/ai/manifest/components/BbTooltip.json +6 -5
- package/dist/ai/manifest/components/ChipsBox.tree.json +1 -1
- package/dist/ai/manifest/components/CommonField.json +1 -1
- package/dist/ai/manifest/components/OptionsContainer.json +3 -1
- package/dist/ai/manifest/components/OptionsContainer.tree.json +38 -0
- package/dist/ai/manifest/index.json +3 -3
- package/dist/ai/manifest/meta.json +5 -3
- package/dist/ai/manifest/types.advanced.json +5 -2
- package/dist/ai/manifest/types.api.json +9 -7
- package/dist/ai/recipes/inertia/approvals-inbox.md +1 -1
- package/dist/ai/recipes/inertia/inline-edit-workspace.md +1 -1
- package/dist/ai/recipes/inertia/layout-scaffold.md +19 -6
- package/dist/ai/recipes/inertia/ownership-atlas.md +1 -1
- package/dist/ai/recipes/inertia/records-workspace.md +50 -14
- package/dist/ai/recipes/inertia/upload-center.md +1 -1
- package/dist/ai/recipes/nuxt/layout-scaffold.md +19 -6
- package/dist/ai/recipes/nuxt/records-workspace.md +42 -12
- package/dist/ai/recipes/vue/layout-scaffold.md +19 -6
- package/dist/ai/recipes/vue/records-workspace.md +42 -12
- package/dist/ai/source/BbAlert.md +94 -76
- package/dist/ai/source/BbBadge.md +174 -72
- package/dist/ai/source/BbBadgeButton.md +130 -65
- package/dist/ai/source/BbBaseButton.md +46 -124
- package/dist/ai/source/BbBaseCheckboxIcon.md +38 -0
- package/dist/ai/source/BbBaseRadioIcon.md +18 -0
- package/dist/ai/source/BbBaseSwitchIcon.md +51 -0
- package/dist/ai/source/BbButton.md +153 -36
- package/dist/ai/source/BbCheckboxGroup.md +142 -18
- package/dist/ai/source/BbColorInput.md +240 -204
- package/dist/ai/source/BbColorPalette.md +7 -4
- package/dist/ai/source/BbConfirm.md +34 -11
- package/dist/ai/source/BbConfirmPortal.md +24 -9
- package/dist/ai/source/BbDatePicker.md +11 -7
- package/dist/ai/source/BbDatePickerInput.md +306 -269
- package/dist/ai/source/BbDialog.md +49 -14
- package/dist/ai/source/BbDropdown.md +314 -197
- package/dist/ai/source/BbDropdownButton.md +197 -31
- package/dist/ai/source/BbDropdownGroup.md +274 -176
- package/dist/ai/source/BbForm.md +50 -6
- package/dist/ai/source/BbHoverCard.md +12 -5
- package/dist/ai/source/BbIcon.md +4 -3
- package/dist/ai/source/BbIndicator.md +73 -52
- package/dist/ai/source/BbNumberInput.md +293 -257
- package/dist/ai/source/BbOffCanvas.md +55 -29
- package/dist/ai/source/BbPopover.md +14 -10
- package/dist/ai/source/BbRadioGroup.md +413 -297
- package/dist/ai/source/BbSelect.md +549 -435
- package/dist/ai/source/BbSelectPopover.md +153 -34
- package/dist/ai/source/BbSwitchGroup.md +70 -10
- package/dist/ai/source/BbTable.md +369 -37
- package/dist/ai/source/BbTabs.md +115 -39
- package/dist/ai/source/BbTabsList.md +106 -38
- package/dist/ai/source/BbTabsPanels.md +96 -36
- package/dist/ai/source/BbTabsRoot.md +96 -36
- package/dist/ai/source/BbTag.md +267 -233
- package/dist/ai/source/BbTextInput.md +261 -225
- package/dist/ai/source/BbTextarea.md +251 -215
- package/dist/ai/source/BbTimePicker.md +11 -7
- package/dist/ai/source/BbTimePickerInput.md +257 -220
- package/dist/ai/source/BbToast.md +73 -32
- package/dist/ai/source/BbToastPortal.md +65 -30
- package/dist/ai/source/BbTooltip.md +148 -113
- package/dist/ai/source/CommonPopover.md +6 -1
- package/dist/ai/source/FlatListBox.md +19 -9
- package/dist/ai/source/GroupedListBox.md +19 -9
- package/dist/ai/source/OptionsContainer.md +25 -9
- package/dist/components/BbAlert/BbAlert.vue_vue_type_script_setup_true_lang.js +61 -36
- package/dist/components/BbAlert/types.d.ts +9 -5
- package/dist/components/BbAlert/types.js +8 -3
- package/dist/components/BbBadge/BadgeBodyContent.vue.d.ts +3 -3
- package/dist/components/BbBadge/BadgeBodyContent.vue_vue_type_script_setup_true_lang.js +26 -17
- package/dist/components/BbBadge/BbBadge.vue_vue_type_script_setup_true_lang.js +103 -50
- package/dist/components/BbBadge/BbBadgeButton.vue_vue_type_script_setup_true_lang.js +20 -15
- package/dist/components/BbBadge/badgeButtonContext.d.ts +12 -1
- package/dist/components/BbBadge/types.d.ts +45 -15
- package/dist/components/BbBadge/types.js +12 -3
- package/dist/components/BbBaseButton/BbBaseButton.vue_vue_type_script_setup_true_lang.js +89 -126
- package/dist/components/BbBaseButton/types.d.ts +23 -4
- package/dist/components/BbBaseButton/types.js +7 -1
- package/dist/components/BbBaseButton/useLinkState.d.ts +41 -0
- package/dist/components/BbBaseButton/useLinkState.js +70 -0
- package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +130 -74
- package/dist/components/BbButton/types.d.ts +50 -13
- package/dist/components/BbButton/types.js +10 -3
- package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +148 -95
- package/dist/components/BbCheckboxGroup/types.d.ts +34 -11
- package/dist/components/BbCheckboxGroup/types.js +9 -4
- package/dist/components/BbCollapsible/BbCollapsible.vue.d.ts +1 -1
- package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +134 -93
- package/dist/components/BbColorInput/types.d.ts +11 -4
- package/dist/components/BbColorInput/types.js +9 -3
- package/dist/components/BbConfirm/BbConfirm.vue_vue_type_script_setup_true_lang.js +82 -59
- package/dist/components/BbConfirm/types.d.ts +9 -4
- package/dist/components/BbConfirm/types.js +8 -3
- package/dist/components/BbDatePicker/BbDatePicker.vue.d.ts +1 -1
- package/dist/components/BbDatePicker/BbDatePicker.vue_vue_type_script_setup_true_lang.js +68 -67
- package/dist/components/BbDatePickerInput/BbDatePickerInput.vue.d.ts +1 -1
- package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +259 -215
- package/dist/components/BbDatePickerInput/types.d.ts +12 -5
- package/dist/components/BbDatePickerInput/types.js +9 -3
- package/dist/components/BbDialog/BbDialog.vue_vue_type_script_setup_true_lang.js +223 -219
- package/dist/components/BbDialog/useDialogStack.d.ts +1 -1
- package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +104 -89
- package/dist/components/BbDropdown/BbDropdown.vue.d.ts +1 -0
- package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +323 -285
- package/dist/components/BbDropdown/BbDropdownList.vue.d.ts +1 -0
- package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +411 -319
- package/dist/components/BbDropdown/DropdownPipelineResolver.vue_vue_type_script_setup_true_lang.js +100 -98
- package/dist/components/BbDropdown/DropdownRow.vue.d.ts +4 -3
- package/dist/components/BbDropdown/DropdownRow.vue_vue_type_script_setup_true_lang.js +49 -28
- package/dist/components/BbDropdown/normalizeGroups.d.ts +6 -0
- package/dist/components/BbDropdown/normalizeGroups.js +21 -15
- package/dist/components/BbDropdown/types.d.ts +59 -12
- package/dist/components/BbDropdown/types.js +16 -3
- package/dist/components/BbDropdown/useDropdownContext.d.ts +6 -0
- package/dist/components/BbDropdownButton/BbDropdownButton.vue.d.ts +2 -1
- package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +179 -68
- package/dist/components/BbDropdownButton/types.d.ts +44 -16
- package/dist/components/BbDropdownButton/types.js +28 -3
- package/dist/components/BbForm/BbForm.vue_vue_type_script_setup_true_lang.js +111 -89
- package/dist/components/BbForm/formSchema.d.ts +13 -0
- package/dist/components/BbHoverCard/BbHoverCard.vue_vue_type_script_setup_true_lang.js +100 -100
- package/dist/components/BbIndicator/BbIndicator.vue_vue_type_script_setup_true_lang.js +40 -25
- package/dist/components/BbIndicator/types.d.ts +9 -5
- package/dist/components/BbIndicator/types.js +8 -3
- package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +243 -202
- package/dist/components/BbNumberInput/types.d.ts +12 -5
- package/dist/components/BbNumberInput/types.js +9 -3
- package/dist/components/BbOffCanvas/BbOffCanvas.vue.d.ts +1 -1
- package/dist/components/BbOffCanvas/BbOffCanvas.vue_vue_type_script_setup_true_lang.js +401 -399
- package/dist/components/BbOffCanvas/types.d.ts +6 -2
- package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +81 -80
- package/dist/components/BbRadioGroup/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +158 -105
- package/dist/components/BbRadioGroup/types.d.ts +21 -7
- package/dist/components/BbRadioGroup/types.js +9 -4
- package/dist/components/BbSelect/BbSelect.vue.d.ts +4 -3
- package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +181 -137
- package/dist/components/BbSelect/types.d.ts +36 -22
- package/dist/components/BbSelect/types.js +22 -3
- package/dist/components/BbSelectPopover/BbSelectPopover.vue.d.ts +4 -4
- package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +600 -577
- package/dist/components/BbSelectPopover/knownItems.d.ts +5 -0
- package/dist/components/BbSelectPopover/types.d.ts +46 -12
- package/dist/components/BbSmoothHeight/BbSmoothHeight.vue.d.ts +1 -1
- package/dist/components/BbSwitchGroup/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/BbSwitchGroup/types.d.ts +14 -4
- package/dist/components/BbSwitchGroup/types.js +8 -3
- package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +1102 -995
- package/dist/components/BbTable/estimatedFloors.golden.d.ts +25 -0
- package/dist/components/BbTable/measuredFloors.d.ts +46 -0
- package/dist/components/BbTable/measuredFloors.js +322 -0
- package/dist/components/BbTable/measuredFloorsTestKit.d.ts +27 -0
- package/dist/components/BbTable/textRuler.d.ts +71 -0
- package/dist/components/BbTable/textRuler.js +121 -0
- package/dist/components/BbTable/utils.d.ts +113 -6
- package/dist/components/BbTable/utils.js +118 -65
- package/dist/components/BbTabs/BbTabs.vue_vue_type_script_setup_true_lang.js +53 -35
- package/dist/components/BbTabs/BbTabsList.vue_vue_type_script_setup_true_lang.js +62 -45
- package/dist/components/BbTabs/types.d.ts +26 -11
- package/dist/components/BbTabs/types.js +23 -8
- package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +205 -164
- package/dist/components/BbTag/types.d.ts +11 -4
- package/dist/components/BbTag/types.js +9 -3
- package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +98 -57
- package/dist/components/BbTextInput/types.d.ts +12 -5
- package/dist/components/BbTextInput/types.js +9 -3
- package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +137 -96
- package/dist/components/BbTextarea/types.d.ts +12 -5
- package/dist/components/BbTextarea/types.js +9 -3
- package/dist/components/BbTimePicker/BbTimePicker.vue_vue_type_script_setup_true_lang.js +105 -104
- package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +241 -197
- package/dist/components/BbTimePickerInput/types.d.ts +12 -5
- package/dist/components/BbTimePickerInput/types.js +9 -3
- package/dist/components/BbToast/BbToast.vue_vue_type_script_setup_true_lang.js +74 -32
- package/dist/components/BbToast/BbToastMessage.vue_vue_type_script_setup_true_lang.js +47 -47
- package/dist/components/BbToast/types.d.ts +10 -5
- package/dist/components/BbToast/types.js +18 -3
- package/dist/components/BbTooltip/BbTooltip.vue_vue_type_script_setup_true_lang.js +85 -71
- package/dist/components/BbTooltip/types.d.ts +13 -8
- package/dist/components/BbTooltip/types.js +8 -3
- package/dist/components/CommonField/CommonField.vue.d.ts +1 -1
- package/dist/components/CommonPopover/CommonPopover.vue.d.ts +1 -1
- package/dist/components/CommonPopover/CommonPopover.vue_vue_type_script_setup_true_lang.js +69 -69
- package/dist/components/FlatListBox/FlatListBox.vue_vue_type_script_setup_true_lang.js +53 -50
- package/dist/components/GroupedListBox/GroupedListBox.vue_vue_type_script_setup_true_lang.js +146 -143
- package/dist/components/OptionsContainer/OptionsContainer.vue_vue_type_script_setup_true_lang.js +7 -2
- package/dist/components/OptionsContainer/types.d.ts +14 -3
- package/dist/composables/useBbConfig.d.ts +1 -0
- package/dist/composables/useBbConfig.js +11 -7
- package/dist/composables/useBbFormContext.d.ts +4 -3
- package/dist/composables/useBbTabsContext.js +99 -85
- package/dist/composables/useChoiceIndicator.d.ts +58 -0
- package/dist/composables/useChoiceIndicator.js +197 -0
- package/dist/composables/useConfirm.d.ts +4 -4
- package/dist/composables/usePassthrough.d.ts +54 -1
- package/dist/composables/usePassthrough.js +100 -71
- package/dist/directives/bbTooltip.d.ts +12 -6
- package/dist/directives/createPopoverDirective.js +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/llms-full.txt +3467 -801
- package/dist/llms-medium.txt +71 -53
- package/dist/llms.txt +2 -1
- package/dist/passthrough-deduper.js +6 -3
- package/dist/project-dts.d.ts +24 -0
- package/dist/project-dts.js +43 -17
- package/dist/styles.css +2 -2
- package/dist/types/AlertVariant.d.ts +14 -0
- package/dist/types/AlertVariant.js +9 -0
- package/dist/types/BadgeVariant.d.ts +14 -0
- package/dist/types/BadgeVariant.js +9 -0
- package/dist/types/ButtonVariant.d.ts +16 -0
- package/dist/types/ButtonVariant.js +11 -0
- package/dist/types/CheckboxVariant.d.ts +38 -0
- package/dist/types/CheckboxVariant.js +4 -0
- package/dist/types/CommonProps.d.ts +4 -3
- package/dist/types/Config.d.ts +7 -0
- package/dist/types/ConfirmVariant.d.ts +12 -0
- package/dist/types/ConfirmVariant.js +4 -0
- package/dist/types/DropdownItemVariant.d.ts +12 -0
- package/dist/types/DropdownItemVariant.js +4 -0
- package/dist/types/IndicatorVariant.d.ts +15 -0
- package/dist/types/IndicatorVariant.js +10 -0
- package/dist/types/InputVariant.d.ts +13 -0
- package/dist/types/InputVariant.js +8 -0
- package/dist/types/RadioVariant.d.ts +38 -0
- package/dist/types/RadioVariant.js +4 -0
- package/dist/types/TabsVariant.d.ts +13 -0
- package/dist/types/TabsVariant.js +8 -0
- package/dist/types/ToastVariant.d.ts +15 -0
- package/dist/types/ToastVariant.js +10 -0
- package/dist/types/TooltipVariant.d.ts +12 -0
- package/dist/types/TooltipVariant.js +4 -0
- package/dist/types/passthrough.d.ts +83 -15
- package/dist/types/passthrough.js +2 -2
- package/dist/types/ptComponentMap.d.ts +35 -23
- package/dist/utilities/functions/extractDomContainer.d.ts +20 -1
- package/dist/utilities/functions/extractDomContainer.js +8 -3
- package/dist/utils/focusVisibility.d.ts +6 -0
- package/dist/utils/focusVisibility.js +4 -1
- package/dist/utils/passthroughDeduper.d.ts +14 -0
- package/dist/utils/versionCheck.js +1 -1
- package/dist/vite-plugin.d.ts +64 -7
- package/dist/vite.js +385 -259
- package/llms.txt +2 -1
- package/package.json +5 -4
- package/scripts/lib/adoption-checklist.json +312 -0
- package/scripts/lib/eslint-plugin.d.ts +13 -0
- package/scripts/lib/eslint-plugin.mjs +75 -11
- package/scripts/lib/helpers-add.mjs +26 -2
- package/scripts/lib/idiom-scan.mjs +65 -0
- package/scripts/lib/mcp-config.mjs +203 -9
- package/scripts/lib/migrate-fix.mjs +42 -1
- package/scripts/lib/project-variant-dts.mjs +18 -0
- package/scripts/lib/validate-bb-markup.mjs +99 -2
package/dist/ai/changelog.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 3,
|
|
3
3
|
"library": "bitboss-ui",
|
|
4
|
-
"version": "3.0.0-beta.
|
|
4
|
+
"version": "3.0.0-beta.65",
|
|
5
5
|
"upgrade": "v2-to-v3",
|
|
6
6
|
"guide": "ai/guides/migration/v2-to-v3.md",
|
|
7
7
|
"legend": {
|
|
@@ -73,7 +73,9 @@
|
|
|
73
73
|
"3.0.0-beta.60",
|
|
74
74
|
"3.0.0-beta.61",
|
|
75
75
|
"3.0.0-beta.62",
|
|
76
|
-
"3.0.0-beta.63"
|
|
76
|
+
"3.0.0-beta.63",
|
|
77
|
+
"3.0.0-beta.64",
|
|
78
|
+
"3.0.0-beta.65"
|
|
77
79
|
],
|
|
78
80
|
"unpublished": [
|
|
79
81
|
"3.0.0-alpha.2",
|
|
@@ -95,8 +97,8 @@
|
|
|
95
97
|
"3.0.0-beta.55"
|
|
96
98
|
],
|
|
97
99
|
"summary": {
|
|
98
|
-
"renames":
|
|
99
|
-
"behaviourBreaks":
|
|
100
|
+
"renames": 222,
|
|
101
|
+
"behaviourBreaks": 255,
|
|
100
102
|
"bySurface": {
|
|
101
103
|
"prop": 15,
|
|
102
104
|
"option": 1,
|
|
@@ -104,10 +106,10 @@
|
|
|
104
106
|
"slot": 14,
|
|
105
107
|
"item": 6,
|
|
106
108
|
"cssVar": 32,
|
|
107
|
-
"class":
|
|
109
|
+
"class": 140
|
|
108
110
|
},
|
|
109
111
|
"unreleased": 0,
|
|
110
|
-
"added":
|
|
112
|
+
"added": 443
|
|
111
113
|
},
|
|
112
114
|
"added": {
|
|
113
115
|
"3.0.0-alpha.1": [
|
|
@@ -2096,6 +2098,128 @@
|
|
|
2096
2098
|
"BbPtScope"
|
|
2097
2099
|
]
|
|
2098
2100
|
}
|
|
2101
|
+
],
|
|
2102
|
+
"3.0.0-beta.64": [
|
|
2103
|
+
{
|
|
2104
|
+
"text": "select · known rows tell themselves apart in slots",
|
|
2105
|
+
"components": [
|
|
2106
|
+
"BbSelectPopover"
|
|
2107
|
+
]
|
|
2108
|
+
},
|
|
2109
|
+
{
|
|
2110
|
+
"text": "passthrough · a component's variant is a pt state",
|
|
2111
|
+
"components": [
|
|
2112
|
+
"BbAlert",
|
|
2113
|
+
"BbBadge",
|
|
2114
|
+
"BbButton",
|
|
2115
|
+
"BbColorInput",
|
|
2116
|
+
"BbConfirm",
|
|
2117
|
+
"BbDatePickerInput",
|
|
2118
|
+
"BbDropdown",
|
|
2119
|
+
"BbDropdownButton",
|
|
2120
|
+
"BbIndicator",
|
|
2121
|
+
"BbNumberInput",
|
|
2122
|
+
"BbSelect",
|
|
2123
|
+
"BbTabs",
|
|
2124
|
+
"BbTag",
|
|
2125
|
+
"BbTextInput",
|
|
2126
|
+
"BbTextarea",
|
|
2127
|
+
"BbTimePickerInput",
|
|
2128
|
+
"BbToast",
|
|
2129
|
+
"BbTooltip"
|
|
2130
|
+
]
|
|
2131
|
+
},
|
|
2132
|
+
"offcanvas · a side per breakpoint, frozen at open",
|
|
2133
|
+
{
|
|
2134
|
+
"text": "passthrough · an app's own variants in the attribute form",
|
|
2135
|
+
"components": [
|
|
2136
|
+
"BbAlert",
|
|
2137
|
+
"BbBadge",
|
|
2138
|
+
"BbButton",
|
|
2139
|
+
"BbColorInput",
|
|
2140
|
+
"BbConfirm",
|
|
2141
|
+
"BbDatePickerInput",
|
|
2142
|
+
"BbDropdown",
|
|
2143
|
+
"BbDropdownButton",
|
|
2144
|
+
"BbIndicator",
|
|
2145
|
+
"BbNumberInput",
|
|
2146
|
+
"BbSelect",
|
|
2147
|
+
"BbTabs",
|
|
2148
|
+
"BbTag",
|
|
2149
|
+
"BbTextInput",
|
|
2150
|
+
"BbTextarea",
|
|
2151
|
+
"BbTimePickerInput",
|
|
2152
|
+
"BbToast",
|
|
2153
|
+
"BbTooltip"
|
|
2154
|
+
]
|
|
2155
|
+
},
|
|
2156
|
+
{
|
|
2157
|
+
"text": "check · adoption checklist and check --idioms",
|
|
2158
|
+
"components": [
|
|
2159
|
+
"BbRadioGroup",
|
|
2160
|
+
"BbTabs"
|
|
2161
|
+
]
|
|
2162
|
+
},
|
|
2163
|
+
"table · measured reservations, cell roles and hold levels in the fit",
|
|
2164
|
+
"table · held cells floor their own track at the fit's hold level",
|
|
2165
|
+
"table · a text ruler that measures values in their rendered type",
|
|
2166
|
+
"table · measure held values and headings after mount, guard the plan",
|
|
2167
|
+
"table · a column padded wider than its header reserves the padding",
|
|
2168
|
+
{
|
|
2169
|
+
"text": "select · known in pt per-item functions and through definepreset",
|
|
2170
|
+
"components": [
|
|
2171
|
+
"BbSelectPopover"
|
|
2172
|
+
]
|
|
2173
|
+
},
|
|
2174
|
+
"ai-init · register the mcp server for zed",
|
|
2175
|
+
"dropdown · query in the empty and loading slot scope",
|
|
2176
|
+
"dropdown · escape on a sheet level goes back one level",
|
|
2177
|
+
"dropdown · --fs and --icon-size size the desktop rows",
|
|
2178
|
+
"dropdown · items stop forwarding data and aria keys to the row",
|
|
2179
|
+
"button · icon slots with the button states as scope",
|
|
2180
|
+
{
|
|
2181
|
+
"text": "dropdown-button · the main button's icon slots",
|
|
2182
|
+
"components": [
|
|
2183
|
+
"BbDropdownButton"
|
|
2184
|
+
]
|
|
2185
|
+
},
|
|
2186
|
+
"badge · icon slots, and the link state in the badge button slot",
|
|
2187
|
+
{
|
|
2188
|
+
"text": "choice-groups · own registries, vertical strips, liquid runs",
|
|
2189
|
+
"components": [
|
|
2190
|
+
"BbCheckboxGroup",
|
|
2191
|
+
"BbRadioGroup",
|
|
2192
|
+
"BbSwitchGroup",
|
|
2193
|
+
"BbTabs",
|
|
2194
|
+
"OptionsContainer"
|
|
2195
|
+
]
|
|
2196
|
+
},
|
|
2197
|
+
{
|
|
2198
|
+
"text": "choice-groups · persistent checkbox pills, seamless contacts",
|
|
2199
|
+
"components": [
|
|
2200
|
+
"BbCheckboxGroup",
|
|
2201
|
+
"OptionsContainer"
|
|
2202
|
+
]
|
|
2203
|
+
},
|
|
2204
|
+
"dropdown · groupby sections inside one group (att-15 prototype)",
|
|
2205
|
+
{
|
|
2206
|
+
"text": "dropdown · groupby lists untitled rows first, as select now does",
|
|
2207
|
+
"components": [
|
|
2208
|
+
"BbSelect",
|
|
2209
|
+
"BbSelectPopover"
|
|
2210
|
+
]
|
|
2211
|
+
},
|
|
2212
|
+
"form · emit invalid when server errors land",
|
|
2213
|
+
{
|
|
2214
|
+
"text": "dropdown · close on select by choice kind, not group count",
|
|
2215
|
+
"components": [
|
|
2216
|
+
"BbDropdownButton"
|
|
2217
|
+
]
|
|
2218
|
+
}
|
|
2219
|
+
],
|
|
2220
|
+
"3.0.0-beta.65": [
|
|
2221
|
+
"helpers · the leave guard speaks the app's locale",
|
|
2222
|
+
"helpers · a resource context aborts the request it no longer wants"
|
|
2099
2223
|
]
|
|
2100
2224
|
},
|
|
2101
2225
|
"breaking": [
|
|
@@ -5244,6 +5368,34 @@
|
|
|
5244
5368
|
"firstReleasedIn": "3.0.0-beta.41",
|
|
5245
5369
|
"guide": "ai/guides/migration/v3-beta-css-classes.md"
|
|
5246
5370
|
},
|
|
5371
|
+
{
|
|
5372
|
+
"id": "css:bb-dialog--stacked",
|
|
5373
|
+
"kind": "rename",
|
|
5374
|
+
"surface": "class",
|
|
5375
|
+
"components": [
|
|
5376
|
+
".bb-dialog"
|
|
5377
|
+
],
|
|
5378
|
+
"from": ".bb-dialog--stacked",
|
|
5379
|
+
"to": ".bb-dialog--above",
|
|
5380
|
+
"since": "",
|
|
5381
|
+
"default": "",
|
|
5382
|
+
"firstReleasedIn": "3.0.0-beta.64",
|
|
5383
|
+
"guide": "ai/guides/migration/v3-beta-css-classes.md"
|
|
5384
|
+
},
|
|
5385
|
+
{
|
|
5386
|
+
"id": "css:bb-offcanvas--stacked",
|
|
5387
|
+
"kind": "rename",
|
|
5388
|
+
"surface": "class",
|
|
5389
|
+
"components": [
|
|
5390
|
+
".bb-offcanvas"
|
|
5391
|
+
],
|
|
5392
|
+
"from": ".bb-offcanvas--stacked",
|
|
5393
|
+
"to": ".bb-offcanvas--above",
|
|
5394
|
+
"since": "",
|
|
5395
|
+
"default": "",
|
|
5396
|
+
"firstReleasedIn": "3.0.0-beta.64",
|
|
5397
|
+
"guide": "ai/guides/migration/v3-beta-css-classes.md"
|
|
5398
|
+
},
|
|
5247
5399
|
{
|
|
5248
5400
|
"id": "f099",
|
|
5249
5401
|
"kind": "behaviour",
|
|
@@ -8511,6 +8663,342 @@
|
|
|
8511
8663
|
"ruling": "owner 2026-10-22 (Q75.9)",
|
|
8512
8664
|
"guide": "v2-to-v3.md § 6 item 97 + components/use-confirm.md + components/bb-host.md + BbConfirm.md § Several confirms at once + useConfirm.md",
|
|
8513
8665
|
"firstReleasedIn": "3.0.0-beta.63"
|
|
8666
|
+
},
|
|
8667
|
+
{
|
|
8668
|
+
"id": "f371",
|
|
8669
|
+
"kind": "behaviour",
|
|
8670
|
+
"summary": "BbDialog: a member over one of its own stack paints no second dim; the covered member's backdrop stays, no handoff",
|
|
8671
|
+
"components": [
|
|
8672
|
+
"BbDialog",
|
|
8673
|
+
"BbConfirm"
|
|
8674
|
+
],
|
|
8675
|
+
"description": "BbDialog: a member opened over an earlier member of its own stack (a drill-in step, a confirm given its dialog's stack) paints NO dim of its own (new class bb-dialog--covering, the pair of --covered): the covered member's backdrop stays the one on screen, so the page is as dark as under one dialog and nothing hands off when the top one closes. It used to add the stacked dim over a hidden box, darkening the page twice. Dialogs over a VISIBLE dialog (another stack name, or none) keep the stacked dim",
|
|
8676
|
+
"ruling": "owner 2026-10-23",
|
|
8677
|
+
"guide": "v2-to-v3.md § 6 item 98 + BbDialog.md § Stacked dialogs + design-tokens.md",
|
|
8678
|
+
"firstReleasedIn": "3.0.0-beta.64"
|
|
8679
|
+
},
|
|
8680
|
+
{
|
|
8681
|
+
"id": "f372",
|
|
8682
|
+
"kind": "behaviour",
|
|
8683
|
+
"summary": "bb-dialog--stacked / bb-offcanvas--stacked are now --above, and --bb-overlay-stacked is --bb-overlay-above",
|
|
8684
|
+
"components": [
|
|
8685
|
+
"BbDialog",
|
|
8686
|
+
"BbOffCanvas"
|
|
8687
|
+
],
|
|
8688
|
+
"description": "Renamed so the word stack only names a replace group: the class a dialog / off-canvas opened above another open one carries, bb-dialog--stacked → bb-dialog--above and bb-offcanvas--stacked → bb-offcanvas--above, and its dim token --bb-overlay-stacked → --bb-overlay-above. Hard rename, no alias: CSS that targets the old class or sets the old token stops applying (bitboss-ui check reports the classes)",
|
|
8689
|
+
"ruling": "owner 2026-10-23",
|
|
8690
|
+
"guide": "v2-to-v3.md § 6 item 98 + v3-beta-css-classes.md + design-tokens.md",
|
|
8691
|
+
"firstReleasedIn": "3.0.0-beta.64"
|
|
8692
|
+
},
|
|
8693
|
+
{
|
|
8694
|
+
"id": "f373",
|
|
8695
|
+
"kind": "behaviour",
|
|
8696
|
+
"summary": "BbSelect/BbSelectPopover known-items: slots, pt item fns, presets get `known`; `item` is `T | BbSelectKnownItem`. `BbSelectProps<T>` alone is bound (`<T, undefined>` opts out)",
|
|
8697
|
+
"components": [
|
|
8698
|
+
"BbSelect",
|
|
8699
|
+
"BbSelectPopover"
|
|
8700
|
+
],
|
|
8701
|
+
"description": "BbSelect / BbSelectPopover: on a select that binds known-items, the option and chip slots (the popover's option) get known, and item is typed T | BbSelectKnownItem (a discriminated union on known): a slot reading an option field off item without checking known is a TYPE ERROR (it rendered blank until the list loaded); a pt per-item function on the option parts gets the same { item, known }, and the type alone (BbSelectProps<T>, BbSelectPopoverProps<T>: a wrapper's props, a pt const) is the bound case (<T, undefined> opts out); with definePreset rev 4 a select preset narrows like the select, and its own default slots always get known. New public type BbSelectSlotRow<T>; a second generic Known inferred from known-items. Selects without known-items keep item: T (plus known: false)",
|
|
8702
|
+
"ruling": "owner 2026-10-23",
|
|
8703
|
+
"guide": "v2-to-v3.md § 6 item 99 + BbSelect.md § known-items + BbSelectPopover.md",
|
|
8704
|
+
"firstReleasedIn": "3.0.0-beta.64"
|
|
8705
|
+
},
|
|
8706
|
+
{
|
|
8707
|
+
"id": "f374",
|
|
8708
|
+
"kind": "behaviour",
|
|
8709
|
+
"summary": "Build plugin: a custom variant named like a passthrough state of a component it styles fails the build; variants are now pt states (pt:<part>:<variant>)",
|
|
8710
|
+
"components": [
|
|
8711
|
+
"BbAlert",
|
|
8712
|
+
"BbBadge",
|
|
8713
|
+
"BbButton",
|
|
8714
|
+
"BbColorInput",
|
|
8715
|
+
"BbConfirm",
|
|
8716
|
+
"BbDatePickerInput",
|
|
8717
|
+
"BbDropdown",
|
|
8718
|
+
"BbDropdownButton",
|
|
8719
|
+
"BbIndicator",
|
|
8720
|
+
"BbNumberInput",
|
|
8721
|
+
"BbSelect",
|
|
8722
|
+
"BbTabs",
|
|
8723
|
+
"BbTag",
|
|
8724
|
+
"BbTextInput",
|
|
8725
|
+
"BbTextarea",
|
|
8726
|
+
"BbTimePickerInput",
|
|
8727
|
+
"BbToast",
|
|
8728
|
+
"BbTooltip"
|
|
8729
|
+
],
|
|
8730
|
+
"description": "Build plugin: a custom variant registered under the name of a passthrough state of a component it styles (buttonVariants: ['loading'], dropdownItemVariants: ['selected'], tabsVariants: ['active']) FAILS THE BUILD (Q76.7: a component's variant is a pt state, pt:<part>:<variant>, so the two names would collide). Rename the variant. The variant states themselves are additive.",
|
|
8731
|
+
"ruling": "owner 2026-10-23",
|
|
8732
|
+
"guide": "v2-to-v3.md § 6 item 100 + passthrough.md",
|
|
8733
|
+
"firstReleasedIn": "3.0.0-beta.64"
|
|
8734
|
+
},
|
|
8735
|
+
{
|
|
8736
|
+
"id": "f375",
|
|
8737
|
+
"kind": "behaviour",
|
|
8738
|
+
"summary": "BbDropdown submenus (APG): Escape closes one level and refocuses its row; Enter/Space/click open a submenu with focus inside; focus returns to the row when a submenu closes; rtl swaps arrows",
|
|
8739
|
+
"components": [
|
|
8740
|
+
"BbDropdown",
|
|
8741
|
+
"BbDropdownButton"
|
|
8742
|
+
],
|
|
8743
|
+
"description": "BbDropdown submenus follow the APG menu pattern (desktop flyout): Escape in a submenu closes that level and refocuses its opener (was: the whole menu); Enter / Space / click open a submenu with focus inside (search box first), like ArrowRight; focus returns to the opener when a submenu closes under it; searchable submenu openers say aria-haspopup=\"dialog\", open ones get aria-controls, every submenu is named after its opener; dir=\"rtl\" swaps the inline arrows and opens flyouts to the left. Silent for apps that hand-rolled per-level Escape or focus() into submenus.",
|
|
8744
|
+
"ruling": "owner 2026-10-26 (ATT-07)",
|
|
8745
|
+
"guide": "v2-to-v3.md § 6 item 101 + BbDropdown.md § Keyboard",
|
|
8746
|
+
"firstReleasedIn": "3.0.0-beta.64"
|
|
8747
|
+
},
|
|
8748
|
+
{
|
|
8749
|
+
"id": "f376",
|
|
8750
|
+
"kind": "behaviour",
|
|
8751
|
+
"summary": "Inertia helpers: `usePaginatedResponseContext` `page`/`perPage` read the server answer, not the URL; no write-back after a visit (one visit on a redirect); `items` reset when the prop changes",
|
|
8752
|
+
"components": [
|
|
8753
|
+
"usePaginatedResponseContext",
|
|
8754
|
+
"useTableContext",
|
|
8755
|
+
"useRouteQuery"
|
|
8756
|
+
],
|
|
8757
|
+
"description": "Inertia helpers (usePaginatedResponseContext / useTableContext, after npx bitboss-ui helpers update): page and perPage read the server's answer (a clamped ?page=99, a capped ?per_page=500, a redirect to the bare URL), not the URL, and nothing writes them back after a visit, so a redirect is one visit, not two. ?page leaves the URL at page 1; ?per_page only at the server's default, once an answer to a URL without it has shown it. items resets when the prop changes (also Back / Forward), not on every successful visit. useRouteQuery's default may be a ref or a getter.",
|
|
8758
|
+
"ruling": "owner 2026-10-26 (Q81.1(b), ATT-05)",
|
|
8759
|
+
"guide": "v2-to-v3.md § 6 item 102 + inertia-helpers.md",
|
|
8760
|
+
"firstReleasedIn": "3.0.0-beta.64"
|
|
8761
|
+
},
|
|
8762
|
+
{
|
|
8763
|
+
"id": "f377",
|
|
8764
|
+
"kind": "behaviour",
|
|
8765
|
+
"summary": "BbToast: the card edge is a `border`, not an inset ring in `box-shadow`; `--bb-shadow: none` or a `box-shadow` override keeps the edge",
|
|
8766
|
+
"components": [
|
|
8767
|
+
"BbToast"
|
|
8768
|
+
],
|
|
8769
|
+
"description": "BbToast: the card edge is a real border (--bw = --bb-border-w), no longer an inset ring inside box-shadow. box-shadow is --bb-shadow alone, so --bb-shadow: none or a box-shadow override keeps the edge; a border set on .bb-toast__panel replaces it. Same card size.",
|
|
8770
|
+
"ruling": "owner 2026-10-26 (Q81.2(c), ATT-06)",
|
|
8771
|
+
"guide": "v2-to-v3.md § 6 item 103 + migration/components/bb-toast.md + design-tokens.md",
|
|
8772
|
+
"firstReleasedIn": "3.0.0-beta.64"
|
|
8773
|
+
},
|
|
8774
|
+
{
|
|
8775
|
+
"id": "f378",
|
|
8776
|
+
"kind": "behaviour",
|
|
8777
|
+
"summary": "BbBadge: a set `clearableLabel` is the whole name of the ✕ on any body; a text body no longer appends its text (unset still composes \"Remove <text>\")",
|
|
8778
|
+
"components": [
|
|
8779
|
+
"BbBadge"
|
|
8780
|
+
],
|
|
8781
|
+
"description": "BbBadge: a set clearableLabel is the ✕'s WHOLE accessible name on any body. With a text body the badge used to append its text (aria-labelledby = the ✕ + the body), so clearable-label=\"Remove the filter Deleted\" read \"Remove the filter Deleted Deleted\"; with a BbBadgeButton body it was already whole. Unset keeps the composed \"Remove <text>\" (the bare verb on a BbBadgeButton body). An app that passed only a verb to get the composition: drop the prop, or pass the whole name",
|
|
8782
|
+
"ruling": "owner 2026-10-26 (Q81.1(d), ATT-08)",
|
|
8783
|
+
"guide": "v2-to-v3.md § 6 item 104 + BbBadge.md § clearable",
|
|
8784
|
+
"firstReleasedIn": "3.0.0-beta.64"
|
|
8785
|
+
},
|
|
8786
|
+
{
|
|
8787
|
+
"id": "f382",
|
|
8788
|
+
"kind": "behaviour",
|
|
8789
|
+
"summary": "BbTooltip / v-bb-tooltip: the visible bubble is `aria-hidden`; its text stays the activator's description, so a tooltip inside a `<label>` no longer joins the control's name",
|
|
8790
|
+
"components": [
|
|
8791
|
+
"BbTooltip"
|
|
8792
|
+
],
|
|
8793
|
+
"description": "BbTooltip / v-bb-tooltip: the visible bubble is aria-hidden (no role=tooltip in the accessibility tree); its text stays the activator's description through the hidden describedby node, so a tooltip inside a <label> no longer joins the control's name. Apps that queried the bubble by role in tests query the description instead",
|
|
8794
|
+
"ruling": "owner 2026-10-26 (ATT-11 (a))",
|
|
8795
|
+
"guide": "v2-to-v3.md § 6 item 105 + BbTooltip.md § Accessibility",
|
|
8796
|
+
"firstReleasedIn": "3.0.0-beta.64"
|
|
8797
|
+
},
|
|
8798
|
+
{
|
|
8799
|
+
"id": "f383",
|
|
8800
|
+
"kind": "behaviour",
|
|
8801
|
+
"summary": "BbTooltip `activator` accepts a CSS selector string, looked up once the tooltip mounts (the component only, not v-bb-tooltip)",
|
|
8802
|
+
"components": [
|
|
8803
|
+
"BbTooltip"
|
|
8804
|
+
],
|
|
8805
|
+
"description": "BbTooltip activator also accepts a CSS selector string, looked up once the tooltip mounts and again when the prop changes (the component only; v-bb-tooltip always uses its host). Additive",
|
|
8806
|
+
"ruling": "owner 2026-10-26 (ATT-11 (b))",
|
|
8807
|
+
"guide": "BbTooltip.md § activator",
|
|
8808
|
+
"firstReleasedIn": "3.0.0-beta.64"
|
|
8809
|
+
},
|
|
8810
|
+
{
|
|
8811
|
+
"id": "f384",
|
|
8812
|
+
"kind": "behaviour",
|
|
8813
|
+
"summary": "BbRadioGroup / BbCheckboxGroup / BbSwitchGroup `tiles`: the native input covers the whole tile; links / buttons inside stay clickable; tile text is no longer selectable",
|
|
8814
|
+
"components": [
|
|
8815
|
+
"BbRadioGroup",
|
|
8816
|
+
"BbCheckboxGroup",
|
|
8817
|
+
"BbSwitchGroup"
|
|
8818
|
+
],
|
|
8819
|
+
"description": "BbRadioGroup / BbCheckboxGroup / BbSwitchGroup list-layout=\"tiles\": the native input covers the whole tile (padding included), links / buttons inside a tile stay clickable above it, tile text is not selectable, clicks on inner non-interactive elements reach the input; list rows unchanged (Q65.4)",
|
|
8820
|
+
"ruling": "owner 2026-10-26 (ATT-11 (d))",
|
|
8821
|
+
"guide": "v2-to-v3.md § 6 item 106 + the three group guides § tiles",
|
|
8822
|
+
"firstReleasedIn": "3.0.0-beta.64"
|
|
8823
|
+
},
|
|
8824
|
+
{
|
|
8825
|
+
"id": "f385",
|
|
8826
|
+
"kind": "behaviour",
|
|
8827
|
+
"summary": "BbDropdown mobile sheet: Escape on a drilled-in level goes back one level (focus on its opener row), closing only at the top; the back control also refocuses the opener",
|
|
8828
|
+
"components": [
|
|
8829
|
+
"BbDropdown",
|
|
8830
|
+
"BbDropdownButton"
|
|
8831
|
+
],
|
|
8832
|
+
"description": "BbDropdown adaptive sheet: Escape on a drilled-in level goes back one level (focus on its opener row), closing only at the top; the back control and ArrowLeft also refocus the opener row (was: the first row)",
|
|
8833
|
+
"ruling": "owner 2026-10-26 (ATT-07 follow-up)",
|
|
8834
|
+
"guide": "v2-to-v3.md § 6 item 107 + BbDropdown.md § Mobile",
|
|
8835
|
+
"firstReleasedIn": "3.0.0-beta.64"
|
|
8836
|
+
},
|
|
8837
|
+
{
|
|
8838
|
+
"id": "f386",
|
|
8839
|
+
"kind": "behaviour",
|
|
8840
|
+
"summary": "BbDropdown items no longer forward `data-*` / `aria-*` keys to the row; set them through `pt:item` (function form per row)",
|
|
8841
|
+
"components": [
|
|
8842
|
+
"BbDropdown",
|
|
8843
|
+
"BbDropdownButton"
|
|
8844
|
+
],
|
|
8845
|
+
"description": "BbDropdown items no longer forward data-* / aria-* keys from the item descriptor to the row; set them through pt:item (function form per row). A row's own label / description fold in an aria-label / aria-labelledby / aria-describedby set that way",
|
|
8846
|
+
"ruling": "owner 2026-10-26 (ATT-07k)",
|
|
8847
|
+
"guide": "v2-to-v3.md § 6 item 108 + BbDropdown.md",
|
|
8848
|
+
"firstReleasedIn": "3.0.0-beta.64"
|
|
8849
|
+
},
|
|
8850
|
+
{
|
|
8851
|
+
"id": "f387",
|
|
8852
|
+
"kind": "behaviour",
|
|
8853
|
+
"summary": "Icon slots `#icon` / `#prepend:icon` / `#append:icon` on BbButton, BbDropdownButton and BbBadge, scoped with the pt states; BbBadgeButton's slot gets `activeLink`",
|
|
8854
|
+
"components": [
|
|
8855
|
+
"BbButton",
|
|
8856
|
+
"BbDropdownButton",
|
|
8857
|
+
"BbBadge",
|
|
8858
|
+
"BbBadgeButton"
|
|
8859
|
+
],
|
|
8860
|
+
"description": "Icon slots #icon / #prepend:icon / #append:icon on BbButton, BbDropdownButton (main button) and BbBadge, scoped with the pt states (activeLink, exactActiveLink, pressed, loading, disabled), rendered inside the icon part (pt:icon, --icon-size, the spinner swap keep working); BbBadgeButton's default slot gets { activeLink, exactActiveLink }. Additive",
|
|
8861
|
+
"ruling": "owner 2026-10-26 (Q81.4)",
|
|
8862
|
+
"guide": "the three component guides",
|
|
8863
|
+
"firstReleasedIn": "3.0.0-beta.64"
|
|
8864
|
+
},
|
|
8865
|
+
{
|
|
8866
|
+
"id": "f388",
|
|
8867
|
+
"kind": "behaviour",
|
|
8868
|
+
"summary": "BbRadioGroup / BbCheckboxGroup `variant=\"pill\" | \"line\"` (registries `radioVariants` / `checkboxVariants`): BbTabs' strip look on a choice group, vertical too. Additive",
|
|
8869
|
+
"components": [
|
|
8870
|
+
"BbRadioGroup",
|
|
8871
|
+
"BbCheckboxGroup"
|
|
8872
|
+
],
|
|
8873
|
+
"description": "BbRadioGroup / BbCheckboxGroup variant (pill, line; registries radioVariants / checkboxVariants, class hooks bb-*-group__list--<name>): the group as a tab strip with its own tokens (BbTabs' values), a sliding indicator; checkbox pill = persistent pills (stretch / shorten / split, touching pills drawn as one shape); vertical with list-layout=\"vertical\"; pt:indicator, pt:<part>:<variant>. Additive",
|
|
8874
|
+
"ruling": "owner 2026-10-26 (Q76.11 (d))",
|
|
8875
|
+
"guide": "both group guides + component-picker",
|
|
8876
|
+
"firstReleasedIn": "3.0.0-beta.64"
|
|
8877
|
+
},
|
|
8878
|
+
{
|
|
8879
|
+
"id": "f389",
|
|
8880
|
+
"kind": "behaviour",
|
|
8881
|
+
"summary": "`v-bb-tooltip` object value: `activator` is no longer accepted (a type error); the directive always used its host element and ignored it",
|
|
8882
|
+
"components": [
|
|
8883
|
+
"BbTooltip"
|
|
8884
|
+
],
|
|
8885
|
+
"description": "v-bb-tooltip object value no longer types activator (the directive always used its host element; an activator was silently ignored). Types only: a TS app that passed one now fails to compile, remove it. BbTooltip's own activator prop is unchanged",
|
|
8886
|
+
"ruling": "owner 2026-10-26 (Q82.8 (b))",
|
|
8887
|
+
"guide": "v2-to-v3.md § 6 item 109 + migration/components/bb-tooltip.md",
|
|
8888
|
+
"firstReleasedIn": "3.0.0-beta.64"
|
|
8889
|
+
},
|
|
8890
|
+
{
|
|
8891
|
+
"id": "f379",
|
|
8892
|
+
"kind": "behaviour",
|
|
8893
|
+
"summary": "BbSelect/BbSelectPopover group-by: ungrouped rows (nullish group, known rows) are listed first, before every header; BbDropdown groups gain groupBy (path or getter, one v-model, one search, same rule)",
|
|
8894
|
+
"components": [
|
|
8895
|
+
"BbSelect",
|
|
8896
|
+
"BbSelectPopover",
|
|
8897
|
+
"BbDropdown",
|
|
8898
|
+
"BbDropdownButton"
|
|
8899
|
+
],
|
|
8900
|
+
"description": "BbSelect / BbSelectPopover group-by: rows whose group is null / undefined (and known rows) are listed FIRST, before every header (was: at the place of their first row, where they read as part of the group above). Silent order change; a row.team ?? 'Other' fallback kept only to separate them can go. BbDropdown groups gain the same groupBy (path or getter, one v-model, one search, headings skipped by keyboard, additive)",
|
|
8901
|
+
"ruling": "owner 2026-10-26 (ATT-15)",
|
|
8902
|
+
"guide": "v2-to-v3.md § 6 item 110 + BbSelect.md § Group related options + BbDropdown.md § Titled sections",
|
|
8903
|
+
"firstReleasedIn": "3.0.0-beta.64"
|
|
8904
|
+
},
|
|
8905
|
+
{
|
|
8906
|
+
"id": "f380",
|
|
8907
|
+
"kind": "behaviour",
|
|
8908
|
+
"summary": "BbDropdown: a change in any single-choice group closes the menu (submenus, multi-group menus, a clearable untick included); new `closeOnSelect` (true/false) overrides",
|
|
8909
|
+
"components": [
|
|
8910
|
+
"BbDropdown",
|
|
8911
|
+
"BbDropdownButton"
|
|
8912
|
+
],
|
|
8913
|
+
"description": "BbDropdown / BbDropdownButton: a change in any single-choice group closes the menu (in submenus and multi-group menus too, a clearable untick included); a multiple group stays open; new closeOnSelect?: boolean overrides (true = every selection closes, false = none). A pointer pick returns focus to the activator",
|
|
8914
|
+
"ruling": "owner 2026-10-26 (ATT-03)",
|
|
8915
|
+
"guide": "v2-to-v3.md § 6 item 112 + BbDropdown.md § Selectable groups",
|
|
8916
|
+
"firstReleasedIn": "3.0.0-beta.64"
|
|
8917
|
+
},
|
|
8918
|
+
{
|
|
8919
|
+
"id": "f381",
|
|
8920
|
+
"kind": "behaviour",
|
|
8921
|
+
"summary": "BbForm `invalid` also fires for server errors (`setErrors`, a new `field-errors` message) with `source: 'server'`, before focus; payload gains `unmatched` and `source`",
|
|
8922
|
+
"components": [
|
|
8923
|
+
"BbForm"
|
|
8924
|
+
],
|
|
8925
|
+
"description": "BbForm invalid also fires when server errors land (setErrors, a new field-errors value), payload { errors, values, unmatched, source: 'submit' | 'server' }, emitted before BbForm's own focus and even when BbForm doesn't focus; apps listening to @invalid now get server errors too",
|
|
8926
|
+
"ruling": "owner 2026-10-26 (ATT-13)",
|
|
8927
|
+
"guide": "v2-to-v3.md § 6 item 111 + BbForm.md § A failed submit",
|
|
8928
|
+
"firstReleasedIn": "3.0.0-beta.64"
|
|
8929
|
+
},
|
|
8930
|
+
{
|
|
8931
|
+
"id": "f390",
|
|
8932
|
+
"kind": "behaviour",
|
|
8933
|
+
"summary": "useQueryObject: `only`/`preserve*`/`replace` → `visitOptions`; `shouldNavigate` → `paused` (inverted); `resetKeys` default `['page']`; `transform`/`arrayFormat` gone; new `server`",
|
|
8934
|
+
"components": [
|
|
8935
|
+
"useQueryObject",
|
|
8936
|
+
"useQuery"
|
|
8937
|
+
],
|
|
8938
|
+
"description": "Inertia helper useQueryObject options (after npx bitboss-ui helpers update): only / preserveState / preserveScroll / replace → ONE visitOptions (Inertia's VisitOptions, merged over preserveState / preserveScroll / replace: true); shouldNavigate → paused (inverted: true holds the changes, going back to false sends the current state once unless the URL already holds it); resetPage + resetKeys → resetKeys (default ['page']; a passed list REPLACES it); transform and arrayFormat removed (a getter source reshapes; arrays use QUERY_ARRAY_FORMAT of useQuery.ts, comma); new server: false writes the URL with no request. A visit changes only the object's and the reset keys: other parameters keep their order and encoding",
|
|
8939
|
+
"ruling": "owner 2026-10-27 (Q82.11 redesign)",
|
|
8940
|
+
"guide": "v2-to-v3.md § 6 item 113 + inertia-helpers.md § useQueryObject",
|
|
8941
|
+
"firstReleasedIn": "3.0.0-beta.65"
|
|
8942
|
+
},
|
|
8943
|
+
{
|
|
8944
|
+
"id": "f391",
|
|
8945
|
+
"kind": "behaviour",
|
|
8946
|
+
"summary": "useQuery decodes once (`%2C` splits); URL writes build on the one in flight; `useRouteQuery` flags → `visitOptions`, new `server`; `null` removes the key",
|
|
8947
|
+
"components": [
|
|
8948
|
+
"useQuery",
|
|
8949
|
+
"useRouteQuery",
|
|
8950
|
+
"useQueryObject"
|
|
8951
|
+
],
|
|
8952
|
+
"description": "Inertia helpers useQuery / useRouteQuery (helpers update): useQuery decodes once (?q=R%26D reads R&D, not two keys) and an encoded %2C separates a comma array as PHP + Spatie read it; a #fragment or a raw ? inside a value no longer leaks into values or writes. Every URL writer (the two, useQueryObject, the pager) builds on the write in flight: two writes before the answer both land, undoing one is not swallowed, a ref reads back its write; a write changes only its own key. useRouteQuery: preserveScroll / preserveState → visitOptions, new server: false; null / undefined remove the key (was the string 'null'); a repeated key reads its LAST value (PHP)",
|
|
8953
|
+
"ruling": "owner 2026-10-27 (Q82.11 (c)–(e), war room)",
|
|
8954
|
+
"guide": "v2-to-v3.md § 6 item 114 + inertia-helpers.md § useQuery, § useRouteQuery",
|
|
8955
|
+
"firstReleasedIn": "3.0.0-beta.65"
|
|
8956
|
+
},
|
|
8957
|
+
{
|
|
8958
|
+
"id": "f392",
|
|
8959
|
+
"kind": "behaviour",
|
|
8960
|
+
"summary": "Pager: a `page` write pushes history; `pageQueryKey`/`perPageQueryKey`/`visitOptions`; `items` resets on a visit asking for it; guard `whitelist` only lets submits through",
|
|
8961
|
+
"components": [
|
|
8962
|
+
"usePaginatedResponseContext",
|
|
8963
|
+
"useTableContext",
|
|
8964
|
+
"usePromiseForm",
|
|
8965
|
+
"useConfirmOnRouteLeave",
|
|
8966
|
+
"useLazyProp",
|
|
8967
|
+
"useResourceContext"
|
|
8968
|
+
],
|
|
8969
|
+
"description": "Inertia pagination + visit helpers (helpers update): usePaginatedResponseContext / useTableContext take pageQueryKey / perPageQueryKey / visitOptions (additive); a page write PUSHES history (Back = the previous page), a new perPage replaces and returns to page 1 in the same visit; an answer past the last page visits the last page once; a missing prop reads as empty; junk writes (0, NaN, past a known last page) send nothing; items is a copy, reset by a server visit that asks for the prop and kept (rows unchanged) across other prop swaps (appendToProp) — supersedes item 102's reset rule; cursorPaginate() documented unsupported. usePromiseForm resolves false when a before listener cancels, keeps the caller's onSuccess / onError, rejects an Inertia-rendered error page, and a save held by the leave guard answers the user's choice. useConfirmOnRouteLeave whitelist lets only submits (POST / PUT / PATCH / DELETE) through: a link to the same path asks. useLazyProp stops retrying a failed load (sets error) and survives a navigation cancel; useResourceContext drops late responses",
|
|
8970
|
+
"ruling": "owner 2026-10-27 (Q82.11 (a), (b), (f), (h), war room)",
|
|
8971
|
+
"guide": "v2-to-v3.md § 6 item 115 + inertia-helpers.md",
|
|
8972
|
+
"firstReleasedIn": "3.0.0-beta.65"
|
|
8973
|
+
},
|
|
8974
|
+
{
|
|
8975
|
+
"id": "f393",
|
|
8976
|
+
"kind": "behaviour",
|
|
8977
|
+
"summary": "Leave guard adds the browser prompt, `stack` and `messages.ts` words by locale; `useHasChanged` hashes its baseline; paginated `items` is a deep copy; `useScreenSizes` follows `mobileMaxWidth`",
|
|
8978
|
+
"components": [
|
|
8979
|
+
"useConfirmOnRouteLeave",
|
|
8980
|
+
"useHasChanged",
|
|
8981
|
+
"usePaginatedResponseContext",
|
|
8982
|
+
"useScreenSizes"
|
|
8983
|
+
],
|
|
8984
|
+
"description": "Inertia helpers, second pass (helpers update): useConfirmOnRouteLeave adds the browser's own leave prompt (tab close, reload, typed URL, plain <a>) while armed, never for a whitelisted save that leaves through Inertia::location(), takes stack, and speaks the library's locale from a new shared, app-editable messages.ts (English shipped; useBbConfig() gains a read-only locale); useHasChanged baselines by structural hash (Dates, Sets, Maps, undefined, NaN compare as they are; an untouched form no longer reads changed; a File compares by name, size, type and date); usePaginatedResponseContext items is a DEEP copy (row edits stay off the page prop); useScreenSizes isMobile is the library's useMobile() (follows mobileMaxWidth) and SCREEN_BREAKPOINT_MD is gone",
|
|
8985
|
+
"ruling": "owner 2026-10-27 (Q82.14 (1), (2), (4), (6))",
|
|
8986
|
+
"guide": "v2-to-v3.md § 6 item 116 + inertia-helpers.md",
|
|
8987
|
+
"firstReleasedIn": "3.0.0-beta.65"
|
|
8988
|
+
},
|
|
8989
|
+
{
|
|
8990
|
+
"id": "f394",
|
|
8991
|
+
"kind": "behaviour",
|
|
8992
|
+
"summary": "Inertia peer floor `>=2.0.0`; the helpers run and type-check on Inertia 2 and 3",
|
|
8993
|
+
"components": [
|
|
8994
|
+
"usePromiseForm",
|
|
8995
|
+
"useConfirmOnRouteLeave",
|
|
8996
|
+
"useLazyProp"
|
|
8997
|
+
],
|
|
8998
|
+
"description": "Inertia peer floor: @inertiajs/vue3 >=1.0.0 → >=2.0.0 (never tested on 1; the helpers use Inertia 2 APIs). The helpers run and type-check on Inertia 2 and 3 (a new gate types them against 2.3.10): on Inertia 2 usePromiseForm rejects a 419 / 423 / non-Inertia 500 / network error and the leave guard's prompt survives a failed save; useLazyProp keeps validation errors on Inertia 3 only",
|
|
8999
|
+
"ruling": "owner 2026-10-27 (progetto-32 on Inertia 2.3.10)",
|
|
9000
|
+
"guide": "v2-to-v3.md § 6 item 117 + inertia-helpers.md",
|
|
9001
|
+
"firstReleasedIn": "3.0.0-beta.65"
|
|
8514
9002
|
}
|
|
8515
9003
|
]
|
|
8516
9004
|
}
|