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
|
@@ -560,7 +560,8 @@ only some of the picks name none of them until the first open:
|
|
|
560
560
|
It is the same prop as `BbSelect`'s, with the same rules: the provider does
|
|
561
561
|
not change (the first open still asks for the picks by id), a value no row
|
|
562
562
|
names loads as it would without the prop, the options' accessors never run on
|
|
563
|
-
a known row (
|
|
563
|
+
a known row (the `option` slot gets it as `item`, with `known: true`, until
|
|
564
|
+
the list brings its own, and `item` is typed accordingly: check `known`), the rows
|
|
564
565
|
are never listed unless selected, they vouch for their values under
|
|
565
566
|
`enforce-coherence` until a parent change, and a selected row the list lacks is
|
|
566
567
|
listed first. The details are in the BbSelect guide (_Rows the form already
|
|
@@ -1321,8 +1322,9 @@ Inertia visit), `navigateTo(href)` (Nuxt).
|
|
|
1321
1322
|
|
|
1322
1323
|
`#header` and `#footer` pin content above the search field and below the options
|
|
1323
1324
|
list, in **both** the desktop popover and the mobile adaptive sheet. Both receive
|
|
1324
|
-
`{ close, clear, focus, query, selectedOptions }` — ideal for a title
|
|
1325
|
-
"Done" action.
|
|
1325
|
+
`{ close, clear, focus, query, selectedOptions, titleId }` — ideal for a title
|
|
1326
|
+
and a "Done" action. Bind `titleId` as the title's `id`: on the phone sheet it
|
|
1327
|
+
names the dialog, as a `BbDialog` header's does. Two more panel slots cover async states: `#loading` and
|
|
1326
1328
|
`#empty` (both receive `{ query }`; `#empty` also a `focus()` callback), or
|
|
1327
1329
|
their string equivalents `loading-text` / `empty-text`.
|
|
1328
1330
|
|
|
@@ -1349,8 +1351,10 @@ their string equivalents `loading-text` / `empty-text`.
|
|
|
1349
1351
|
}}</BbBadgeButton>
|
|
1350
1352
|
</BbBadge>
|
|
1351
1353
|
</template>
|
|
1352
|
-
<template #header>
|
|
1353
|
-
<span class="text-sm font-medium"
|
|
1354
|
+
<template #header="{ titleId }">
|
|
1355
|
+
<span :id="titleId" class="text-sm font-medium"
|
|
1356
|
+
>Popular destinations</span
|
|
1357
|
+
>
|
|
1354
1358
|
</template>
|
|
1355
1359
|
<template #footer="{ close, clear }">
|
|
1356
1360
|
<div class="flex w-full items-center gap-2">
|
|
@@ -1547,7 +1551,71 @@ const variantFor = (value: Status | null): BadgeVariantType =>
|
|
|
1547
1551
|
taller custom `#option` / `#group` markup.
|
|
1548
1552
|
- Placement props mirror the palette/dropdown float: `placement`, `offset`
|
|
1549
1553
|
(default 4), `padding`, `boundary`, `disable-flip`, `transition-duration`. The
|
|
1550
|
-
panel is a frame, not a bubble — it never shows an arrow.
|
|
1554
|
+
panel is a frame, not a bubble — it never shows an arrow. `placement` is read
|
|
1555
|
+
at open: a change while open applies at the next open.
|
|
1556
|
+
|
|
1557
|
+
#### A narrow column: a badge trigger and a panel of its own
|
|
1558
|
+
|
|
1559
|
+
This is the pattern for a choice that lives in a narrow column, or any time
|
|
1560
|
+
the trigger and the panel need different widths. `BbSelect`'s panel always
|
|
1561
|
+
matches its field and has no width prop, so a select in a narrow grid column
|
|
1562
|
+
truncates both the picked option and every row in its panel. Anchor a
|
|
1563
|
+
`BbSelectPopover` on a `BbBadgeButton` instead. The badge is the compact
|
|
1564
|
+
trigger: it ellipsises the picked label inside the column (`max-w-full` on the
|
|
1565
|
+
badge, `min-w-0` on the cell). The panel's `width` fits the longest option,
|
|
1566
|
+
whatever the column's width.
|
|
1567
|
+
|
|
1568
|
+
**A role in a narrow column**
|
|
1569
|
+
|
|
1570
|
+
```vue
|
|
1571
|
+
<template>
|
|
1572
|
+
<div class="grid max-w-xl grid-cols-3 items-start gap-3">
|
|
1573
|
+
<BbTextInput v-model="name" label="Referent" />
|
|
1574
|
+
<!-- The column is narrow, the role names are long: a badge is the
|
|
1575
|
+
compact trigger, and the panel takes a width of its own. -->
|
|
1576
|
+
<div class="flex min-w-0 flex-col items-start gap-1.5">
|
|
1577
|
+
<span class="text-sm font-medium">Role</span>
|
|
1578
|
+
<BbSelectPopover v-model="role" compact :items="roles" width="300px">
|
|
1579
|
+
<template #activator="{ props }">
|
|
1580
|
+
<BbBadge
|
|
1581
|
+
append:icon="lucide:chevron-down"
|
|
1582
|
+
class="max-w-full"
|
|
1583
|
+
size="lg"
|
|
1584
|
+
variant="outline"
|
|
1585
|
+
>
|
|
1586
|
+
<BbBadgeButton v-bind="props">{{
|
|
1587
|
+
roleLabel || 'Assign role'
|
|
1588
|
+
}}</BbBadgeButton>
|
|
1589
|
+
</BbBadge>
|
|
1590
|
+
</template>
|
|
1591
|
+
</BbSelectPopover>
|
|
1592
|
+
</div>
|
|
1593
|
+
<BbTextInput v-model="email" label="Email" />
|
|
1594
|
+
</div>
|
|
1595
|
+
</template>
|
|
1596
|
+
<script setup lang="ts">
|
|
1597
|
+
import { computed, ref } from 'vue';
|
|
1598
|
+
import {
|
|
1599
|
+
BbBadge,
|
|
1600
|
+
BbBadgeButton,
|
|
1601
|
+
BbSelectPopover,
|
|
1602
|
+
BbTextInput,
|
|
1603
|
+
} from 'bitboss-ui';
|
|
1604
|
+
|
|
1605
|
+
const roles = [
|
|
1606
|
+
{ value: 'ceo', label: 'Chief Executive and Head of Administration' },
|
|
1607
|
+
{ value: 'admin', label: 'Administrative Manager' },
|
|
1608
|
+
{ value: 'hr', label: 'Human Resources and Payroll Coordinator' },
|
|
1609
|
+
];
|
|
1610
|
+
|
|
1611
|
+
const name = ref<string | null>(null);
|
|
1612
|
+
const email = ref<string | null>(null);
|
|
1613
|
+
const role = ref<string | null>(null);
|
|
1614
|
+
const roleLabel = computed(
|
|
1615
|
+
() => roles.find((r) => r.value === role.value)?.label
|
|
1616
|
+
);
|
|
1617
|
+
</script>
|
|
1618
|
+
```
|
|
1551
1619
|
|
|
1552
1620
|
### Adaptive mobile sheet
|
|
1553
1621
|
|
|
@@ -1687,7 +1755,9 @@ never instead of it. The full grammar, the merge rules and the global map are
|
|
|
1687
1755
|
in the [passthrough guide](./guides/passthrough.md).
|
|
1688
1756
|
|
|
1689
1757
|
A `pt` value written in `<script>` (a constant, a preset, a wrapper's
|
|
1690
|
-
`pt` prop) is typed as `BbSelectPopoverProps['pt']`,
|
|
1758
|
+
`pt` prop) is typed as `BbSelectPopoverProps<Row>['pt']`, or
|
|
1759
|
+
`BbSelectPopoverProps<object>['pt']` for a preset that fits any row type
|
|
1760
|
+
(never `<any>`), not an imported `PtValue`: see
|
|
1691
1761
|
[passthrough § Typing `pt` in `<script>`](./guides/passthrough.md#typing-pt-in-script).
|
|
1692
1762
|
|
|
1693
1763
|
### Works well with
|
|
@@ -1715,12 +1785,11 @@ A `pt` value written in `<script>` (a constant, a preset, a wrapper's
|
|
|
1715
1785
|
the "search to begin" hint until the user types. It quietly falls back to
|
|
1716
1786
|
loading on open when writing is disabled, the model is non-empty, or `items` is
|
|
1717
1787
|
an array.
|
|
1718
|
-
- Closing clears the search. With a provider, a
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
request, and the selection is never touched.
|
|
1788
|
+
- Closing clears the search. With a provider, reopening after a search sends a
|
|
1789
|
+
fresh `''` request (loading shows, never the old results; a search in flight
|
|
1790
|
+
at close is dropped); search-first reopens to its hint with no request; a
|
|
1791
|
+
panel closed on the unfiltered list reopens as it was. The selection is never
|
|
1792
|
+
touched.
|
|
1724
1793
|
- `enforce-coherence` + a provider that drops the selection on the calls the
|
|
1725
1794
|
popover starts itself (`reason !== 'search'`) = wiped model — and since the
|
|
1726
1795
|
check runs on the **first** load, that wipe happens at mount rather than
|
|
@@ -1735,13 +1804,11 @@ A `pt` value written in `<script>` (a constant, a preset, a wrapper's
|
|
|
1735
1804
|
- **Clicking the selected option does not clear a single select** — it re-picks
|
|
1736
1805
|
it and closes the panel. Emptying is the `clear` callback (activator/panel
|
|
1737
1806
|
slot scope), never an accidental second click. Multiple mode still toggles.
|
|
1738
|
-
- **`null` as a real "All" option** works
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
"All"** rather than clearing. Fine if you want it; use a sentinel
|
|
1744
|
-
(`'all'`) if "everything" and "nothing" must stay distinct.
|
|
1807
|
+
- **`null` as a real "All" option** works, but `null` also means _nothing
|
|
1808
|
+
selected_: a `null` model stays lazy (no load, even with `enforce-coherence`),
|
|
1809
|
+
`clear` equals picking "All", and an `enforce-coherence` prune emits `null`, so
|
|
1810
|
+
a stale value **widens to "All"**. Use a sentinel (`'all'`) when "everything"
|
|
1811
|
+
and "nothing" must differ.
|
|
1745
1812
|
|
|
1746
1813
|
### Anti-patterns
|
|
1747
1814
|
|
|
@@ -1819,7 +1886,7 @@ A `pt` value written in `<script>` (a constant, a preset, a wrapper's
|
|
|
1819
1886
|
|
|
1820
1887
|
| Prop | Type | Default | Required | Description |
|
|
1821
1888
|
| --- | --- | --- | --- | --- |
|
|
1822
|
-
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `clear`, `footer`, `header`, `input`, `itemDescription`, `itemIcon`, `itemText`, `list`, `option`, `panel`, `root`, `sheet`. States: `disabled`, `open`, `selected`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. In `<script>` a `pt` value is typed `BbSelectPopoverProps['pt']` (`PtValue` is not exported): § Typing `pt` in `<script>`. |
|
|
1889
|
+
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `clear`, `footer`, `header`, `input`, `itemDescription`, `itemIcon`, `itemText`, `list`, `option`, `panel`, `root`, `sheet`. States: `disabled`, `open`, `selected`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. In `<script>` a `pt` value is typed `BbSelectPopoverProps<Row>['pt']` (`BbSelectPopoverProps<object>['pt']` for a preset that fits any row type, never `<any>`) (`PtValue` is not exported): § Typing `pt` in `<script>`. |
|
|
1823
1890
|
| `activator` | `Record<string, any> \| HTMLElement \| null \| undefined` | | | External activator element or component ref. When provided, the activator slot is not rendered and event listeners are attached programmatically to the referenced element. |
|
|
1824
1891
|
| `adaptive` | `boolean \| undefined` | ``config.adaptive` (`true`)` | | On mobile, the panel opens as a bottom sheet instead of a floating popover, with the same search and list. Unset, the global `config.adaptive` applies. |
|
|
1825
1892
|
| `anchor` | `Record<string, any> \| HTMLElement \| null \| undefined` | `null` | | Override the element used for popover positioning and width measurement. Useful when the focusable activator is narrower than its visual container (e.g. a button inside a wrapper). Falls back to `activatorEl` when omitted. |
|
|
@@ -1848,7 +1915,7 @@ A `pt` value written in `<script>` (a constant, a preset, a wrapper's
|
|
|
1848
1915
|
| `items` | `Item[] \| ((context: BbSelectPopoverItemsContext) => Item[] \| Promise<Item[]>)` | `[]` | yes | The options: an array, or a sync or async provider given a `BbSelectPopoverItemsContext` (`query`, `reason`, `modelValue`, `signal`). Branch on `reason !== 'search'` to resolve the selection by id. A provider fails by THROWING, never by returning `[]`. |
|
|
1849
1916
|
| `itemText` | `ItemAccessor<Item, string> \| undefined` | `own `label`, else `text`, else `JSON.stringify(item)`` | | Path to item property for display text or function to extract it. Unset: own `label`, else `text` (`{ label, value }` needs no accessor). |
|
|
1850
1917
|
| `itemValue` | `ItemAccessor<Item> \| undefined` | `own `value`, else the whole item` | | Path to item property for value or function to extract it. Unset: own `value`, even `null`. |
|
|
1851
|
-
| `knownItems` | `(
|
|
1918
|
+
| `knownItems` | `([Known] extends [undefined] ? BbSelectKnownItems : Known) \| undefined` | | | `{ value, label }` rows naming the value the app already holds, whatever the options' shape: the activator's `text` with no request until the first open (`prefill: true` still loads). Not options: accessors never run on them; slots get one as `item`, `known: true`, until the list brings its own. |
|
|
1852
1919
|
| `loading` | `boolean \| undefined` | `false` | | Display the loading state styles. |
|
|
1853
1920
|
| `loadingText` | `string \| undefined` | | | Message shown while items are being loaded. |
|
|
1854
1921
|
| `max` | `number \| undefined` | `Infinity` | | Maximum number of selectable items (limits selection when `multiple` is true). |
|
|
@@ -1915,11 +1982,11 @@ States are listed in precedence order: when two are on at once and their entries
|
|
|
1915
1982
|
|
|
1916
1983
|
- `activator` — scope: `BbSelectPopoverActivatorSlotProps` `{ clear: () => void; close: () => Promise<void>; focus: () => void; disabled: boolean; loading: boolean; open: () => Promise<void>; props: { ref: (reference: unknown) => void; }; query: string; readonly: boolean; selectedOptions: BbSelectResolvedOption<any>[]; shown: boolean; text: string; toggle: () => Promise<void> }` — Replaces the default trigger element that opens the select popover.
|
|
1917
1984
|
- `empty` — scope: `{ query: string; focus: () => void; error: unknown; }` — Content shown when no options match the query or the list is empty. `error` is what the latest failed load threw, untouched (`null` when none).
|
|
1918
|
-
- `footer` — scope: `BbSelectPopoverPanelSlotProps` `{ close: () => Promise<void>; clear: () => void; focus: () => void; query: string; selectedOptions: BbSelectResolvedOption<any>[] }` — Content pinned to the bottom of the panel, below the options list. Rendered in both the desktop popover and the adaptive sheet.
|
|
1985
|
+
- `footer` — scope: `BbSelectPopoverPanelSlotProps` `{ close: () => Promise<void>; clear: () => void; focus: () => void; query: string; selectedOptions: BbSelectResolvedOption<any>[]; titleId: string }` — Content pinned to the bottom of the panel, below the options list. Rendered in both the desktop popover and the adaptive sheet.
|
|
1919
1986
|
- `group` — scope: `BbSelectPopoverGroupSlotProps<Item>` `{ disabled: boolean; index: number; item: Item; length: number; text: string }` — Replaces the default group header rendered above grouped options. Not called for rows with no group (`group-by` gives `null`/`undefined`, known rows): they are listed without a header.
|
|
1920
|
-
- `header` — scope: `BbSelectPopoverPanelSlotProps` `{ close: () => Promise<void>; clear: () => void; focus: () => void; query: string; selectedOptions: BbSelectResolvedOption<any>[] }` — Content pinned to the top of the panel, above the search field. Rendered in both the desktop popover and the adaptive sheet.
|
|
1987
|
+
- `header` — scope: `BbSelectPopoverPanelSlotProps` `{ close: () => Promise<void>; clear: () => void; focus: () => void; query: string; selectedOptions: BbSelectResolvedOption<any>[]; titleId: string }` — Content pinned to the top of the panel, above the search field. Rendered in both the desktop popover and the adaptive sheet.
|
|
1921
1988
|
- `loading` — scope: `{ query: string; }` — Content shown inside the options dropdown while items are loading.
|
|
1922
|
-
- `option` — scope: `BbSelectPopoverOptionSlotProps<Item>` `{ disabled: boolean; focused: boolean; index: number;
|
|
1989
|
+
- `option` — scope: `BbSelectPopoverOptionSlotProps<Item, Known>` `{ known: boolean; item: BbSelectKnownItem \| Item; disabled: boolean; focused: boolean; index: number; loading: boolean; selected: boolean; text: string; value: any; description: string }` — Replaces the default rendering of each option row in the dropdown. With `known-items` bound, a row the list has not brought yet is the known `{ value, label }` row, `known: true`: check `known` before reading an option field off `item`.
|
|
1923
1990
|
|
|
1924
1991
|
## CSS custom properties
|
|
1925
1992
|
|
|
@@ -1942,7 +2009,7 @@ Set these on the element, or on a class you put on it, to retune this component
|
|
|
1942
2009
|
- Listed nodes are the ones `BbSelectPopover`'s API reaches or that declare a documented CSS variable; the rest fold into "also mounts". The complete tree, repeats and undocumented locals included, is `manifest/components/BbSelectPopover.tree.json`.
|
|
1943
2010
|
|
|
1944
2011
|
- `BbSelectPopover` _(this component)_ — its own template binds: `input` → `input.bb-select-popover__input`, `clear` → `ClearableButton`, `panel` → `CommonPopover`, `root` → `CommonPopover`, `header` → `div.bb-select-popover__header`, `footer` → `div.bb-select-popover__footer`; hands `BbOffCanvas` the pt map `{ header: 'header', footer: 'footer', panel: 'root', sheet: 'root' }` (ours → theirs)
|
|
1945
|
-
- `BbBadge` _(public — [contract](./BbBadge.md))_ — its own pt parts (`BbBadge`): `spinner` → `BbSpinner`, `icon` → `BbIcon`, `clear` → `button.bb-badge__clear`; documented CSS variables: `--bg`, `--fg`, `--bw`, `--ring-color`, `--ring-size`, `--min-size-md`, `--min-size`, `--elev`, `--r`, `--fs`, `--icon-size`, `--gap`, `--px`, `--clear-size`, `--bg-disabled`, `--fg-disabled`, `--border-disabled`, `--pad-left`; also mounts `BbIcon`, `BbSpinner`, `BadgeBodyContent`
|
|
2012
|
+
- `BbBadge` _(public — [contract](./BbBadge.md))_ — its own pt parts (`BbBadge`): `spinner` → `BbSpinner`, `icon` → `span.bb-badge__append-icon`, `icon` → `BbIcon`, `clear` → `button.bb-badge__clear`; documented CSS variables: `--bg`, `--fg`, `--bw`, `--ring-color`, `--ring-size`, `--min-size-md`, `--min-size`, `--elev`, `--r`, `--fs`, `--icon-size`, `--gap`, `--px`, `--clear-size`, `--bg-disabled`, `--fg-disabled`, `--border-disabled`, `--pad-left`; also mounts `BbIcon`, `BbSpinner`, `BadgeBodyContent`
|
|
1946
2013
|
- `BbOffCanvas` _(public — [contract](./BbOffCanvas.md))_ — its own pt parts (`BbOffCanvas`): `header` → `div.bb-offcanvas__header`, `title` → `span.bb-offcanvas__title`, `description` → `p.bb-offcanvas__description`, `close` → `CloseButton`, `content` → `div.bb-offcanvas__content`, `footer` → `div.bb-offcanvas__footer`; documented CSS variables: `--stack-x`, `--snap-y`, `--stack-fill`, `--stack-transition-duration`, `--px`, `--handle-w`, `--handle-h`, `--handle-bg`, `--safe-top`, `--close-size`
|
|
1947
2014
|
- `CloseButton` _(internal — not importable, reach it through `BbOffCanvas`)_ — documented CSS variables: `--size`, `--p`
|
|
1948
2015
|
- `ListBox` _(internal — not importable, reach it through `BbSelectPopover`)_
|
package/dist/ai/BbSwitch.md
CHANGED
|
@@ -674,7 +674,7 @@ const settings = reactive<Setting[]>([
|
|
|
674
674
|
</script>
|
|
675
675
|
```
|
|
676
676
|
|
|
677
|
-
An attribute in `attrs` wins over ours. The
|
|
677
|
+
An attribute in `attrs` wins over ours. The invisible native input under the glyph is
|
|
678
678
|
not a part — plain attributes on the component land on the root. A listener in `attrs` runs after the control's own
|
|
679
679
|
handler, never instead of it. The full grammar, the merge rules and the global
|
|
680
680
|
map are in the [passthrough guide](./guides/passthrough.md).
|
package/dist/ai/BbSwitchGroup.md
CHANGED
|
@@ -41,6 +41,27 @@
|
|
|
41
41
|
| `--inset` | `pt:icon` | `BbBaseSwitchIcon` | Equal gap around the thumb — centres it vertically by construction, and is reused as the resting left/right inset. |
|
|
42
42
|
| `--travel` | `pt:icon` | `BbBaseSwitchIcon` | How far the thumb slides between off and on (inset ↔ inset). |
|
|
43
43
|
| `--ctrl-line` | `pt:label` | `CommonField` | Where the control's first line is centred, from the top of the control column (half the box height by default); the label's first line aligns to it in side-by-side layouts. |
|
|
44
|
+
| `--list-bg` | `pt:list`, `pt:item`, `pt:label`, `pt:itemDescription` | `OptionsContainer` | The strip behind the triggers |
|
|
45
|
+
| `--list-border` | `pt:list`, `pt:item`, `pt:label`, `pt:itemDescription` | `OptionsContainer` | The strip's edge line, --bb-border-w thick, painted inside the strip: under the triggers (beside them when vertical). `pill` draws none; `line` sets it to --bb-border |
|
|
46
|
+
| `--p` | `pt:list`, `pt:item`, `pt:label`, `pt:itemDescription` | `OptionsContainer` | strip inner padding — the gutter the indicator sits in, and the scroll inset |
|
|
47
|
+
| `--list-r` | `pt:list`, `pt:item`, `pt:label`, `pt:itemDescription` | `OptionsContainer` | strip corners |
|
|
48
|
+
| `--list-h` | `pt:list`, `pt:item`, `pt:label`, `pt:itemDescription` | `OptionsContainer` | strip min height |
|
|
49
|
+
| `--fs` | `pt:list`, `pt:item`, `pt:label`, `pt:itemDescription` | `OptionsContainer` | trigger label size |
|
|
50
|
+
| `--trigger-gap` | `pt:list`, `pt:item`, `pt:label`, `pt:itemDescription` | `OptionsContainer` | space between triggers |
|
|
51
|
+
| `--trigger-px` | `pt:list`, `pt:item`, `pt:label`, `pt:itemDescription` | `OptionsContainer` | trigger side padding |
|
|
52
|
+
| `--trigger-r` | `pt:list`, `pt:item`, `pt:label`, `pt:itemDescription` | `OptionsContainer` | Trigger corners, concentric inside --list-r |
|
|
53
|
+
| `--trigger-min-h` | `pt:list`, `pt:item`, `pt:label`, `pt:itemDescription` | `OptionsContainer` | Trigger height inside the padded strip |
|
|
54
|
+
| `--list-fg` | `pt:list`, `pt:item`, `pt:label`, `pt:itemDescription` | `OptionsContainer` | unchecked trigger label |
|
|
55
|
+
| `--hover-fg` | `pt:list`, `pt:item`, `pt:label`, `pt:itemDescription` | `OptionsContainer` | hovered trigger label |
|
|
56
|
+
| `--active-fg` | `pt:list`, `pt:item`, `pt:label`, `pt:itemDescription` | `OptionsContainer` | checked trigger label |
|
|
57
|
+
| `--active-fw` | `pt:list`, `pt:item`, `pt:label`, `pt:itemDescription` | `OptionsContainer` | checked trigger label weight (unchecked labels are 500) |
|
|
58
|
+
| `--indicator-bg` | `pt:list`, `pt:item`, `pt:label`, `pt:itemDescription` | `OptionsContainer` | the indicator's fill |
|
|
59
|
+
| `--indicator-border` | `pt:list`, `pt:item`, `pt:label`, `pt:itemDescription` | `OptionsContainer` | The indicator's edge |
|
|
60
|
+
| `--indicator-r` | `pt:list`, `pt:item`, `pt:label`, `pt:itemDescription` | `OptionsContainer` | The indicator's corners — the pill's, concentric inside --list-r |
|
|
61
|
+
| `--indicator-h` | `pt:list`, `pt:item`, `pt:label`, `pt:itemDescription` | `OptionsContainer` | The indicator's thickness: its height, its width on a vertical strip. `initial` fills the whole trigger box — the pill; a bar is `2px`, on the trigger's bottom edge (inline-end edge when vertical) |
|
|
62
|
+
| `--indicator-inset` | `pt:list`, `pt:item`, `pt:label`, `pt:itemDescription` | `OptionsContainer` | Inset of the indicator from the trigger box — shrinks the pill; a bar keeps its thickness, shortens by it at both ends and floats it above the edge |
|
|
63
|
+
| `--elev` | `pt:list`, `pt:item`, `pt:label`, `pt:itemDescription` | `OptionsContainer` | The theme's resting lift, composed UNDER the indicator's own shadow |
|
|
64
|
+
| `--indicator-shadow` | `pt:list`, `pt:item`, `pt:label`, `pt:itemDescription` | `OptionsContainer` | Indicator lift, painted on top of --elev |
|
|
44
65
|
|
|
45
66
|
## Usage & Guidelines
|
|
46
67
|
|
|
@@ -624,6 +645,12 @@ that list is a type error and an ESLint error.
|
|
|
624
645
|
The notification channels above, restyled as option tiles: `pt:item` is a
|
|
625
646
|
broadcast over every row, `pt:item:checked` resolves per row.
|
|
626
647
|
|
|
648
|
+
In `list-layout="tiles"` the whole tile is the switch's click and hover
|
|
649
|
+
target, padding included; a link or a button inside a tile keeps its own
|
|
650
|
+
click. A side hidden with the library's or Tailwind's hiding classes
|
|
651
|
+
(`pt:icon="hidden"`, `hide-label`, `pt:label="sr-only"`) takes its gap with
|
|
652
|
+
it, so the other side stays centred.
|
|
653
|
+
|
|
627
654
|
**pt:item — notification tiles, the selected ones accented**
|
|
628
655
|
|
|
629
656
|
```vue
|
|
@@ -686,7 +713,7 @@ ours, an attribute in `attrs` wins over ours. The full grammar, the merge rules
|
|
|
686
713
|
and the global map are in the [passthrough guide](./guides/passthrough.md).
|
|
687
714
|
|
|
688
715
|
A `pt` value written in `<script>` (a constant, a preset, a wrapper's
|
|
689
|
-
`pt` prop) is typed as `BbSwitchGroupProps<Row>['pt']`, or `BbSwitchGroupProps['pt']`
|
|
716
|
+
`pt` prop) is typed as `BbSwitchGroupProps<Row>['pt']`, or `BbSwitchGroupProps<object>['pt']`
|
|
690
717
|
for a preset that fits any row type (never `<any>`), not an imported
|
|
691
718
|
`PtValue`: see
|
|
692
719
|
[passthrough § Typing `pt` in `<script>`](./guides/passthrough.md#typing-pt-in-script).
|
|
@@ -739,7 +766,7 @@ for a preset that fits any row type (never `<any>`), not an imported
|
|
|
739
766
|
|
|
740
767
|
| Prop | Type | Default | Required | Description |
|
|
741
768
|
| --- | --- | --- | --- | --- |
|
|
742
|
-
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `description`, `hint`, `icon`, `item`, `itemDescription`, `label`, `legend`, `list`, `message`, `root`. States: `disabled`, `errors`, `hasValue`, `loading`, `readonly`, `warnings`, `checked`, `focused`, `focusVisible`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. In `<script>` a `pt` value is typed `BbSwitchGroupProps<Row>['pt']` (`BbSwitchGroupProps['pt']` for a preset that fits any row type, never `<any>`) (`PtValue` is not exported): § Typing `pt` in `<script>`. |
|
|
769
|
+
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `description`, `hint`, `icon`, `item`, `itemDescription`, `label`, `legend`, `list`, `message`, `root`. States: `disabled`, `errors`, `hasValue`, `loading`, `readonly`, `warnings`, `checked`, `focused`, `focusVisible`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. In `<script>` a `pt` value is typed `BbSwitchGroupProps<Row>['pt']` (`BbSwitchGroupProps<object>['pt']` for a preset that fits any row type, never `<any>`) (`PtValue` is not exported): § Typing `pt` in `<script>`. |
|
|
743
770
|
| `autofocus` | `Booleanish \| undefined` | | | Focuses the field when it mounts (a dialog already open included), unless the user is typing in another field. |
|
|
744
771
|
| `compact` | `boolean \| undefined` | `false` | | Compact density. Swaps `--bb-label-spacing-y` for `--bb-label-spacing-y-compact`, so tune a compact group's label gap with the `-compact` token, not the base one. |
|
|
745
772
|
| `dependencies` | `unknown[] \| undefined` | | | Defines an array of dependencies that will trigger actions in the component upon change. |
|
|
@@ -865,7 +892,7 @@ Set these on the element, or on a class you put on it, to retune this component
|
|
|
865
892
|
|
|
866
893
|
- `BbSwitchGroup` _(this component)_ — its own template binds: `icon` → `BbBaseSwitchIcon`
|
|
867
894
|
- `CommonField` _(internal — not importable, reach it through `BbSwitchGroup`)_ — `BbSwitchGroup`'s pt parts land here: `root` → `div.bb-field`, `label` → `component`, `description` → `span.bb-field__description`, `hint` → `span.bb-field__hint`, `counter` → `span.bb-field__counter`, `message` → `div.bb-field__message`; documented CSS variables: `--ctrl-line`; also mounts `BbAsterisk`
|
|
868
|
-
- `OptionsContainer` _(internal — not importable, reach it through `BbSwitchGroup`)_ — `BbSwitchGroup`'s pt parts land here: `list` → `span`, `item` → `label`, `label` → `span`, `itemDescription` → `span`
|
|
895
|
+
- `OptionsContainer` _(internal — not importable, reach it through `BbSwitchGroup`)_ — `BbSwitchGroup`'s pt parts land here: `list` → `span`, `item` → `label`, `label` → `span`, `itemDescription` → `span`; documented CSS variables: `--list-bg`, `--list-border`, `--p`, `--list-r`, `--list-h`, `--fs`, `--trigger-gap`, `--trigger-px`, `--trigger-r`, `--trigger-min-h`, `--list-fg`, `--hover-fg`, `--active-fg`, `--active-fw`, `--indicator-bg`, `--indicator-border`, `--indicator-r`, `--indicator-h`, `--indicator-inset`, `--elev`, `--indicator-shadow`
|
|
869
896
|
- Also mounts `BbBaseSwitchIcon`
|
|
870
897
|
|
|
871
898
|
## See Also
|
package/dist/ai/BbTable.md
CHANGED
|
@@ -93,17 +93,24 @@ needs is declared here, not in markup:
|
|
|
93
93
|
for about three, fitted to the room the sized columns leave. Values a line
|
|
94
94
|
break would harm stay whole: a short name or status ("Poltrona 10", "In
|
|
95
95
|
attesa di verifica"), an amount with its currency, a range or pair ("0,00 € /
|
|
96
|
-
450,00 €"), a date or code ("16/10/2026", a grouped IBAN).
|
|
97
|
-
|
|
96
|
+
450,00 €"), a date or code ("16/10/2026", a grouped IBAN). The floors are
|
|
97
|
+
estimated on the server and then refined in the browser from the text as it
|
|
98
|
+
actually renders (its font, weight, letter-spacing, text-transform, numeric
|
|
99
|
+
features and size), so a value the table keeps on one line stays whole in
|
|
100
|
+
any font, including a web font that loads late. When room runs short,
|
|
101
|
+
longer values wrap first, then prose narrows, then a long heading of
|
|
98
102
|
several words takes two lines; a table that scrolls sideways anyway keeps
|
|
99
103
|
all of those whole. Only a table that would otherwise _start_ scrolling
|
|
100
104
|
wraps them, and long-form text never runs wider than a readable measure.
|
|
101
|
-
You rarely need `whitespace-nowrap` in a `td-class
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
105
|
+
You rarely need `whitespace-nowrap` in a `td-class`, in any font. It
|
|
106
|
+
overrides the table's choice: the value stays whole even where the table
|
|
107
|
+
would wrap it to spare a sideways scroll. The header is always part of
|
|
108
|
+
that floor, so a heading never clips. (On a server-rendered page the
|
|
109
|
+
server cannot know the width: a table whose headings need two lines takes
|
|
110
|
+
them, once, when the page hydrates.) The floors read every row up to
|
|
111
|
+
2,000; past that, the first 1,000 and a sample across the rest, and a value
|
|
112
|
+
only the unread rows show may wrap (a `virtual` table has no floors at
|
|
113
|
+
all). No floor on `fixed` or
|
|
107
114
|
`virtual` tables, slot columns, or under a custom `#thead`, so never slot a
|
|
108
115
|
column only to restyle its blank: use [`--placeholder`](#empty-cells-value-and-placeholder). A grid keyword or function is the track as written:
|
|
109
116
|
`'auto'`, `'2fr'`, `'minmax(0, 1fr)'` (a share that may shrink below its
|
|
@@ -4068,7 +4075,7 @@ The full grammar, the merge rules and the global map are in the
|
|
|
4068
4075
|
[passthrough guide](./guides/passthrough.md).
|
|
4069
4076
|
|
|
4070
4077
|
A `pt` value written in `<script>` (a constant, a preset, a wrapper's
|
|
4071
|
-
`pt` prop) is typed as `BbTableProps<Row>['pt']`, or `BbTableProps['pt']`
|
|
4078
|
+
`pt` prop) is typed as `BbTableProps<Row>['pt']`, or `BbTableProps<object>['pt']`
|
|
4072
4079
|
for a preset that fits any row type (never `<any>`), not an imported
|
|
4073
4080
|
`PtValue`: see
|
|
4074
4081
|
[passthrough § Typing `pt` in `<script>`](./guides/passthrough.md#typing-pt-in-script).
|
|
@@ -4234,7 +4241,7 @@ for a preset that fits any row type (never `<any>`), not an imported
|
|
|
4234
4241
|
|
|
4235
4242
|
| Prop | Type | Default | Required | Description |
|
|
4236
4243
|
| --- | --- | --- | --- | --- |
|
|
4237
|
-
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `body`, `caption`, `cell`, `cellColumnHeader`, `dragHandle`, `dragIcon`, `expand`, `firstRow`, `foot`, `head`, `headerRow`, `lastRow`, `root`, `row`, `selectIcon`, `sortIcon`, `table`. States: `disabled`, `empty`, `expanded`, `highlighted`, `indeterminate`, `loading`, `placeholder`, `selected`, `sorted`, `sortedDesc`, `value`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. In `<script>` a `pt` value is typed `BbTableProps<Row>['pt']` (`BbTableProps['pt']` for a preset that fits any row type, never `<any>`) (`PtValue` is not exported): § Typing `pt` in `<script>`. |
|
|
4244
|
+
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `body`, `caption`, `cell`, `cellColumnHeader`, `dragHandle`, `dragIcon`, `expand`, `firstRow`, `foot`, `head`, `headerRow`, `lastRow`, `root`, `row`, `selectIcon`, `sortIcon`, `table`. States: `disabled`, `empty`, `expanded`, `highlighted`, `indeterminate`, `loading`, `placeholder`, `selected`, `sorted`, `sortedDesc`, `value`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. In `<script>` a `pt` value is typed `BbTableProps<Row>['pt']` (`BbTableProps<object>['pt']` for a preset that fits any row type, never `<any>`) (`PtValue` is not exported): § Typing `pt` in `<script>`. |
|
|
4238
4245
|
| `accessibleLabel` | `((columns: MappedCell[], item: any) => string) \| undefined` | | | The label of each row's selection checkbox, from `(columns, item)`. Unset: the row's name in the locale's select template (its `rowHeader` cells, else its first column: "Select INV-1041"). The cells arrive in render order: look one up by `key`, never by position. |
|
|
4239
4246
|
| `actionsText` | `string \| undefined` | | | Label used in the header of the actions column. |
|
|
4240
4247
|
| `align` | `"left" \| "center" \| "right" \| undefined` | `"left"` | | Text alignment of the columns. |
|
package/dist/ai/BbTabs.md
CHANGED
|
@@ -649,7 +649,9 @@ every variant. Three ship:
|
|
|
649
649
|
|
|
650
650
|
- **`pill`** (default) — the segmented strip: a muted rounded bar with a raised
|
|
651
651
|
pill sliding under the active trigger. Reach for it to switch _views of the
|
|
652
|
-
same content_ (Board / Table, Code / Preview).
|
|
652
|
+
same content_ (Board / Table, Code / Preview). Switch views → `BbTabs`;
|
|
653
|
+
pick a value a form or a filter submits → a segmented `BbRadioGroup`
|
|
654
|
+
(BbRadioGroup § Segmented control), even when the two look alike.
|
|
653
655
|
- **`line`** — triggers on a thin baseline that runs the full width of the
|
|
654
656
|
strip's container, a sliding underline under the active one (on the side edge
|
|
655
657
|
when `direction="vertical"`), active label bold. Reach
|
|
@@ -1838,7 +1840,7 @@ A `pt` value written in `<script>` (a constant, a preset, a wrapper's
|
|
|
1838
1840
|
|
|
1839
1841
|
| Prop | Type | Default | Required | Description |
|
|
1840
1842
|
| --- | --- | --- | --- | --- |
|
|
1841
|
-
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `indicator`, `item`, `list`, `panel`, `panels`, `root`, `wrapper`. States: `active`, `disabled`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. In `<script>` a `pt` value is typed `BbTabsProps['pt']` (`PtValue` is not exported): § Typing `pt` in `<script>`. |
|
|
1843
|
+
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `indicator`, `item`, `list`, `panel`, `panels`, `root`, `wrapper`. States: `active`, `disabled`, `line`, `none`, `pill`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. In `<script>` a `pt` value is typed `BbTabsProps['pt']` (`PtValue` is not exported): § Typing `pt` in `<script>`. |
|
|
1842
1844
|
| `block` | `boolean \| undefined` | `false` | | Displays the component as full width. |
|
|
1843
1845
|
| `compact` | `boolean \| undefined` | `false` | | Adds a CSS class that applies a compact style to the component. |
|
|
1844
1846
|
| `direction` | `"horizontal" \| "vertical" \| undefined` | `"horizontal"` | | Direction of the tabs component. |
|
|
@@ -1887,6 +1889,9 @@ States are listed in precedence order: when two are on at once and their entries
|
|
|
1887
1889
|
| --- | --- |
|
|
1888
1890
|
| `disabled` | On every part while the whole tabs is `disabled`; per node on `item`: a tab that is disabled. |
|
|
1889
1891
|
| `active` | Per node, on `item` and `panel`: the selected tab's trigger and its shown panel. |
|
|
1892
|
+
| `line` | On the strip's parts: `variant: 'line'`. Below the real states, like every variant. |
|
|
1893
|
+
| `none` | On the strip's parts: `variant: 'none'`. Below the real states, like every variant. |
|
|
1894
|
+
| `pill` | On the strip's parts: `variant: 'pill'`. Merged after the part's base entry and before its states, so the real states still win. |
|
|
1890
1895
|
|
|
1891
1896
|
## Events
|
|
1892
1897
|
|
|
@@ -1941,7 +1946,7 @@ Set these on the element, or on a class you put on it, to retune this component
|
|
|
1941
1946
|
- **CSS custom properties** listed on a node are declared on THAT node's root and read by elements inside it. Set one on that node's root or on the element inside it that reads it — the pt part that lands there is how you reach it (`pt:box="[--border-color:…]"` on a text input) — never on `BbTabs`'s root, where the node's own declaration masks it (design-tokens guide, _Overriding one from a consumer app_, rule 0).
|
|
1942
1947
|
- Listed nodes are the ones `BbTabs`'s API reaches or that declare a documented CSS variable; the rest fold into "also mounts". The complete tree, repeats and undocumented locals included, is `manifest/components/BbTabs.tree.json`.
|
|
1943
1948
|
|
|
1944
|
-
- `BbTabs` _(this component)_ — hands `BbTabsList` the pt map `passthrough.forwardInstance(LIST_PARTS)` (ours → theirs); hands `BbTabsPanels` the pt map `passthrough.forwardInstance(PANELS_PARTS)` (ours → theirs)
|
|
1949
|
+
- `BbTabs` _(this component)_ — hands `BbTabsList` the pt map `passthrough.forwardInstance(LIST_PARTS, LIST_STATES)` (ours → theirs); hands `BbTabsPanels` the pt map `passthrough.forwardInstance(PANELS_PARTS)` (ours → theirs)
|
|
1945
1950
|
- `BbTabsList` _(public — [contract](./BbTabsList.md))_ — `BbTabs`'s pt parts land here: `list` → `ul.bb-tabs-list__list`, `indicator` → `li.bb-tabs-list__indicator`, `item` → `BbBaseButton`
|
|
1946
1951
|
- `BbBaseButton` _(public — [contract](./BbBaseButton.md))_ — its own pt parts (`BbBaseButton`): `root` → `RouterComponent`, `root` → `a`, `root` → `component`; also mounts `RouterComponent`
|
|
1947
1952
|
- `BbTabsPanels` _(public — [contract](./BbTabsPanels.md))_ — `BbTabs`'s pt parts land here: `panel` → `section.bb-tabs__panel`
|
package/dist/ai/BbTabsList.md
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
| Prop | Type | Default | Required | Description |
|
|
22
22
|
| --- | --- | --- | --- | --- |
|
|
23
|
-
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `indicator`, `item`, `list`, `root`. States: `active`, `disabled`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. In `<script>` a `pt` value is typed `BbTabsListProps['pt']` (`PtValue` is not exported): § Typing `pt` in `<script>`. |
|
|
23
|
+
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `indicator`, `item`, `list`, `root`. States: `active`, `disabled`, `line`, `none`, `pill`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. In `<script>` a `pt` value is typed `BbTabsListProps['pt']` (`PtValue` is not exported): § Typing `pt` in `<script>`. |
|
|
24
24
|
| `variant` | `'none'` \| `'pill'` \| `'line'` | | | Look of this strip — the `variant` of the owning `BbTabs` / `BbTabsRoot` unless set here. See `BbTabsProps.variant` for the values. |
|
|
25
25
|
|
|
26
26
|
## Passthrough parts and states
|
|
@@ -40,6 +40,9 @@ States are listed in precedence order: when two are on at once and their entries
|
|
|
40
40
|
| --- | --- |
|
|
41
41
|
| `disabled` | On every part while the whole tabs is `disabled`; per node on `item`: a tab that is disabled. |
|
|
42
42
|
| `active` | Per node, on `item` and `panel`: the selected tab's trigger and its shown panel. |
|
|
43
|
+
| `line` | On the strip's parts: `variant: 'line'`. Below the real states, like every variant. |
|
|
44
|
+
| `none` | On the strip's parts: `variant: 'none'`. Below the real states, like every variant. |
|
|
45
|
+
| `pill` | On the strip's parts: `variant: 'pill'`. Merged after the part's base entry and before its states, so the real states still win. |
|
|
43
46
|
|
|
44
47
|
## Events
|
|
45
48
|
|
package/dist/ai/BbTag.md
CHANGED
|
@@ -493,7 +493,7 @@ only sets the label's text alignment.
|
|
|
493
493
|
|
|
494
494
|
| Prop | Type | Default | Required | Description |
|
|
495
495
|
| --- | --- | --- | --- | --- |
|
|
496
|
-
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `badge`, `box`, `clear`, `comma`, `description`, `hint`, `icon`, `input`, `label`, `message`, `prefix`, `root`, `spinner`, `suffix`. States: `disabled`, `errors`, `hasValue`, `highlighted`, `loading`, `readonly`, `warnings`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. In `<script>` a `pt` value is typed `BbTagProps['pt']` (`PtValue` is not exported): § Typing `pt` in `<script>`. |
|
|
496
|
+
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `badge`, `box`, `clear`, `comma`, `description`, `hint`, `icon`, `input`, `label`, `message`, `prefix`, `root`, `spinner`, `suffix`. States: `disabled`, `errors`, `hasValue`, `highlighted`, `loading`, `readonly`, `warnings`, `ghost`, `outline`, `secondary`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. In `<script>` a `pt` value is typed `BbTagProps['pt']` (`PtValue` is not exported): § Typing `pt` in `<script>`. |
|
|
497
497
|
| `append:icon` | `string \| undefined` | | | Name of the icon to be added at the end of the input. |
|
|
498
498
|
| `autocomplete` | `string \| undefined` | `"off"` | | Guides to the browser as to the type of information expected in the field. |
|
|
499
499
|
| `autofocus` | `Booleanish \| undefined` | | | Focuses the field when it mounts (a dialog already open included), unless the user is typing in another field. |
|
|
@@ -565,6 +565,9 @@ States are listed in precedence order: when two are on at once and their entries
|
|
|
565
565
|
| `errors` | Component-wide: the control is in its error state (`errors` / `has-errors`, or its validation) — the message line and the box turn red. |
|
|
566
566
|
| `highlighted` | Per node, on `badge` / `comma`: the tag the arrow keys are on (`bb-badge--highlighted` / `bb-tag__comma--highlighted`). A cursor, not focus: focus stays in the text input. |
|
|
567
567
|
| `loading` | Component-wide: `loading` is on; the box shows its `spinner`. |
|
|
568
|
+
| `ghost` | On the field's parts: `variant: 'ghost'`. Below the real states, like every variant. |
|
|
569
|
+
| `outline` | On the field's parts: `variant: 'outline'`. Merged after the part's base entry and before its states, so the real states still win. |
|
|
570
|
+
| `secondary` | On the field's parts: `variant: 'secondary'`. Below the real states, like every variant. |
|
|
568
571
|
|
|
569
572
|
## Events
|
|
570
573
|
|
|
@@ -619,7 +622,7 @@ Set these on the element, or on a class you put on it, to retune this component
|
|
|
619
622
|
- `CommonField` _(internal — not importable, reach it through `BbTag`)_ — `BbTag`'s pt parts land here: `root` → `div.bb-field`, `label` → `component`, `description` → `span.bb-field__description`, `hint` → `span.bb-field__hint`, `counter` → `span.bb-field__counter`, `message` → `div.bb-field__message`; documented CSS variables: `--ctrl-line`; also mounts `BbAsterisk`
|
|
620
623
|
- `CommonFieldInput` _(internal — not importable, reach it through `BbTag`)_ — `BbTag`'s pt parts land here: `box` → `span.bb-field-input__box`, `prefix` → `span.bb-field-input__prefix`, `icon` → `BbIcon`, `clear` → `ClearableButton`, `spinner` → `BbSpinner`, `suffix` → `span.bb-field-input__suffix`; documented CSS variables: `--bg`, `--bg-hover`, `--bg-focus`, `--bg-disabled`, `--fg-disabled`, `--border-color`, `--border-focus`, `--ring-size`, `--ring-color`, `--elev`, `--frost`, `--inside-label-clearance`; also mounts `ErrorIcon`, `WarningIcon`, `ClearableButton`, `BbIcon`, `BbSpinner`
|
|
621
624
|
- `ChipsBox` _(internal — not importable, reach it through `BbTag`)_ — `BbTag`'s pt parts land here: `badge` → `BbBadge`
|
|
622
|
-
- `BbBadge` _(public — [contract](./BbBadge.md))_ — its own pt parts (`BbBadge`): `spinner` → `BbSpinner`, `icon` → `BbIcon`, `clear` → `button.bb-badge__clear`; documented CSS variables: `--bg`, `--fg`, `--bw`, `--ring-color`, `--ring-size`, `--min-size-md`, `--min-size`, `--elev`, `--r`, `--fs`, `--icon-size`, `--gap`, `--px`, `--clear-size`, `--bg-disabled`, `--fg-disabled`, `--border-disabled`, `--pad-left`; also mounts `BbIcon`, `BbSpinner`, `BadgeBodyContent`
|
|
625
|
+
- `BbBadge` _(public — [contract](./BbBadge.md))_ — its own pt parts (`BbBadge`): `spinner` → `BbSpinner`, `icon` → `span.bb-badge__append-icon`, `icon` → `BbIcon`, `clear` → `button.bb-badge__clear`; documented CSS variables: `--bg`, `--fg`, `--bw`, `--ring-color`, `--ring-size`, `--min-size-md`, `--min-size`, `--elev`, `--r`, `--fs`, `--icon-size`, `--gap`, `--px`, `--clear-size`, `--bg-disabled`, `--fg-disabled`, `--border-disabled`, `--pad-left`; also mounts `BbIcon`, `BbSpinner`, `BadgeBodyContent`
|
|
623
626
|
- `CommaBox` _(internal — not importable, reach it through `BbTag`)_ — `BbTag`'s pt parts land here: `comma` → `span.bb-tag__comma`
|
|
624
627
|
- Also mounts `BbSmoothHeight`
|
|
625
628
|
|
package/dist/ai/BbTextInput.md
CHANGED
|
@@ -1267,7 +1267,7 @@ A `pt` value written in `<script>` (a constant, a preset, a wrapper's
|
|
|
1267
1267
|
|
|
1268
1268
|
| Prop | Type | Default | Required | Description |
|
|
1269
1269
|
| --- | --- | --- | --- | --- |
|
|
1270
|
-
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `box`, `clear`, `counter`, `description`, `hint`, `icon`, `input`, `label`, `message`, `prefix`, `root`, `spinner`, `suffix`. States: `atLimit`, `disabled`, `errors`, `hasValue`, `loading`, `nearLimit`, `readonly`, `warnings`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. In `<script>` a `pt` value is typed `BbTextInputProps['pt']` (`PtValue` is not exported): § Typing `pt` in `<script>`. |
|
|
1270
|
+
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `box`, `clear`, `counter`, `description`, `hint`, `icon`, `input`, `label`, `message`, `prefix`, `root`, `spinner`, `suffix`. States: `atLimit`, `disabled`, `errors`, `ghost`, `hasValue`, `loading`, `nearLimit`, `outline`, `readonly`, `secondary`, `warnings`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. In `<script>` a `pt` value is typed `BbTextInputProps['pt']` (`PtValue` is not exported): § Typing `pt` in `<script>`. |
|
|
1271
1271
|
| `append:icon` | `string \| undefined` | | | Name of the icon to be added at the end of the input. |
|
|
1272
1272
|
| `autocomplete` | `string \| undefined` | | | Guides to the browser as to the type of information expected in the field. |
|
|
1273
1273
|
| `autofocus` | `Booleanish \| undefined` | | | Focuses the field when it mounts (a dialog already open included), unless the user is typing in another field. |
|
|
@@ -1341,6 +1341,9 @@ States are listed in precedence order: when two are on at once and their entries
|
|
|
1341
1341
|
| `warnings` | Component-wide: the control is in its warning state (`warnings` / `has-warnings`) and not in an error state — errors win, so the two are never on together. |
|
|
1342
1342
|
| `errors` | Component-wide: the control is in its error state (`errors` / `has-errors`, or its validation) — the message line and the box turn red. |
|
|
1343
1343
|
| `loading` | Component-wide: `loading` is on; the box shows its `spinner`. |
|
|
1344
|
+
| `ghost` | On the field's parts: `variant: 'ghost'`. Below the real states, like every variant. |
|
|
1345
|
+
| `outline` | On the field's parts: `variant: 'outline'`. Merged after the part's base entry and before its states, so the real states still win. |
|
|
1346
|
+
| `secondary` | On the field's parts: `variant: 'secondary'`. Below the real states, like every variant. |
|
|
1344
1347
|
|
|
1345
1348
|
## Events
|
|
1346
1349
|
|
package/dist/ai/BbTextarea.md
CHANGED
|
@@ -1026,7 +1026,7 @@ A `pt` value written in `<script>` (a constant, a preset, a wrapper's
|
|
|
1026
1026
|
|
|
1027
1027
|
| Prop | Type | Default | Required | Description |
|
|
1028
1028
|
| --- | --- | --- | --- | --- |
|
|
1029
|
-
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `box`, `clear`, `counter`, `description`, `hint`, `icon`, `input`, `label`, `message`, `prefix`, `root`, `spinner`, `suffix`. States: `atLimit`, `disabled`, `errors`, `hasValue`, `loading`, `nearLimit`, `readonly`, `warnings`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. In `<script>` a `pt` value is typed `BbTextareaProps['pt']` (`PtValue` is not exported): § Typing `pt` in `<script>`. |
|
|
1029
|
+
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `box`, `clear`, `counter`, `description`, `hint`, `icon`, `input`, `label`, `message`, `prefix`, `root`, `spinner`, `suffix`. States: `atLimit`, `disabled`, `errors`, `ghost`, `hasValue`, `loading`, `nearLimit`, `outline`, `readonly`, `secondary`, `warnings`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. In `<script>` a `pt` value is typed `BbTextareaProps['pt']` (`PtValue` is not exported): § Typing `pt` in `<script>`. |
|
|
1030
1030
|
| `append:icon` | `string \| undefined` | | | Name of the icon to be added at the end of the input. |
|
|
1031
1031
|
| `autocomplete` | `string \| undefined` | | | Guides to the browser as to the type of information expected in the field. |
|
|
1032
1032
|
| `autofocus` | `Booleanish \| undefined` | | | Focuses the field when it mounts (a dialog already open included), unless the user is typing in another field. |
|
|
@@ -1098,6 +1098,9 @@ States are listed in precedence order: when two are on at once and their entries
|
|
|
1098
1098
|
| `warnings` | Component-wide: the control is in its warning state (`warnings` / `has-warnings`) and not in an error state — errors win, so the two are never on together. |
|
|
1099
1099
|
| `errors` | Component-wide: the control is in its error state (`errors` / `has-errors`, or its validation) — the message line and the box turn red. |
|
|
1100
1100
|
| `loading` | Component-wide: `loading` is on; the box shows its `spinner`. |
|
|
1101
|
+
| `ghost` | On the field's parts: `variant: 'ghost'`. Below the real states, like every variant. |
|
|
1102
|
+
| `outline` | On the field's parts: `variant: 'outline'`. Merged after the part's base entry and before its states, so the real states still win. |
|
|
1103
|
+
| `secondary` | On the field's parts: `variant: 'secondary'`. Below the real states, like every variant. |
|
|
1101
1104
|
|
|
1102
1105
|
## Events
|
|
1103
1106
|
|
package/dist/ai/BbTimePicker.md
CHANGED
|
@@ -165,7 +165,8 @@ On mobile the columns open in a bottom off-canvas sheet instead of a floating
|
|
|
165
165
|
popover (`adaptive`, on by default via `config.adaptive`; forward extra sheet
|
|
166
166
|
props with `offCanvasProps`). Position the desktop popover with `placement`,
|
|
167
167
|
`offset`, `padding`, `boundary`, and `disableFlip` — the same knobs as the other
|
|
168
|
-
overlays
|
|
168
|
+
overlays (`placement` is read at open: a change while open applies at the next
|
|
169
|
+
open). Escape and backdrop clicks close it; focus returns to the activator.
|
|
169
170
|
|
|
170
171
|
The sheet can be **dragged down to dismiss** and shows **no ✕** — picking,
|
|
171
172
|
drag, backdrop tap and Escape close it. The time wheels are no-drag zones: a
|
|
@@ -304,7 +304,7 @@ Messages _also_ render in an `aria-live="polite"` region.
|
|
|
304
304
|
|
|
305
305
|
| Prop | Type | Default | Required | Description |
|
|
306
306
|
| --- | --- | --- | --- | --- |
|
|
307
|
-
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `activator`, `box`, `cellColumnHeader`, `clear`, `description`, `header`, `hint`, `icon`, `input`, `item`, `label`, `message`, `panel`, `prefix`, `root`, `sheet`, `spinner`, `suffix`. States: `disabled`, `errors`, `hasValue`, `loading`, `open`, `readonly`, `selected`, `warnings`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. In `<script>` a `pt` value is typed `BbTimePickerInputProps['pt']` (`PtValue` is not exported): § Typing `pt` in `<script>`. |
|
|
307
|
+
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `activator`, `box`, `cellColumnHeader`, `clear`, `description`, `header`, `hint`, `icon`, `input`, `item`, `label`, `message`, `panel`, `prefix`, `root`, `sheet`, `spinner`, `suffix`. States: `disabled`, `errors`, `ghost`, `hasValue`, `loading`, `open`, `outline`, `readonly`, `secondary`, `selected`, `warnings`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. In `<script>` a `pt` value is typed `BbTimePickerInputProps['pt']` (`PtValue` is not exported): § Typing `pt` in `<script>`. |
|
|
308
308
|
| `adaptive` | `boolean \| undefined` | ``config.adaptive` (`true`)` | | On mobile the time columns open inside a bottom off-canvas sheet instead of a floating popover. When unset, falls back to the global `config.adaptive`. |
|
|
309
309
|
| `ampm` | `boolean \| undefined` | `false` | | 12-hour display with an AM/PM segment. Purely a field-composition concern: the model stays 24-hour. Type `A`/`P` (or ArrowUp/Down) to set the meridiem. |
|
|
310
310
|
| `append:icon` | `string \| undefined` | | | Name of the icon to be added at the end of the input. |
|
|
@@ -387,6 +387,9 @@ States are listed in precedence order: when two are on at once and their entries
|
|
|
387
387
|
| `errors` | Component-wide: the control is in its error state (`errors` / `has-errors`, or its validation) — the message line and the box turn red. |
|
|
388
388
|
| `open` | Component-wide: the panel is showing — `pt:activator:open` styles the trigger while it is. |
|
|
389
389
|
| `loading` | Component-wide: `loading` is on; the box shows its `spinner`. |
|
|
390
|
+
| `ghost` | On the field's parts: `variant: 'ghost'`. Below the real states, like every variant. |
|
|
391
|
+
| `outline` | On the field's parts: `variant: 'outline'`. Merged after the part's base entry and before its states, so the real states still win. |
|
|
392
|
+
| `secondary` | On the field's parts: `variant: 'secondary'`. Below the real states, like every variant. |
|
|
390
393
|
|
|
391
394
|
## Events
|
|
392
395
|
|
package/dist/ai/BbToast.md
CHANGED
|
@@ -772,7 +772,7 @@ The map is typed where you write it by `definePt`, never with an imported
|
|
|
772
772
|
|
|
773
773
|
| Prop | Type | Default | Required | Description |
|
|
774
774
|
| --- | --- | --- | --- | --- |
|
|
775
|
-
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `action`, `close`, `content`, `footer`, `icon`, `panel`, `root`, `text`, `title`. States: `loading`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. In `<script>` a `pt` value is typed `BbToastProps['pt']` (`PtValue` is not exported): § Typing `pt` in `<script>`. |
|
|
775
|
+
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `action`, `close`, `content`, `footer`, `icon`, `panel`, `root`, `text`, `title`. States: `default`, `destructive`, `info`, `loading`, `success`, `warning`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. In `<script>` a `pt` value is typed `BbToastProps['pt']` (`PtValue` is not exported): § Typing `pt` in `<script>`. |
|
|
776
776
|
|
|
777
777
|
## Passthrough parts and states
|
|
778
778
|
|
|
@@ -795,6 +795,11 @@ States are listed in precedence order: when two are on at once and their entries
|
|
|
795
795
|
| State | When it is on |
|
|
796
796
|
| --- | --- |
|
|
797
797
|
| `loading` | Per toast, on its card parts (every part but `root`): the toast is `loading` (the spinner shows in its `icon`). |
|
|
798
|
+
| `default` | Per toast, on its card parts: `variant: 'default'`. Merged after the part's base entry and before its states, so the real states still win. |
|
|
799
|
+
| `destructive` | Per toast, on its card parts: `variant: 'destructive'`. Below the real states, like every variant. |
|
|
800
|
+
| `info` | Per toast, on its card parts: `variant: 'info'`. Below the real states, like every variant. |
|
|
801
|
+
| `success` | Per toast, on its card parts: `variant: 'success'`. Below the real states, like every variant. |
|
|
802
|
+
| `warning` | Per toast, on its card parts: `variant: 'warning'`. Below the real states, like every variant. |
|
|
798
803
|
|
|
799
804
|
## Events
|
|
800
805
|
|
|
@@ -822,7 +827,8 @@ Set these on the element, or on a class you put on it, to retune this component
|
|
|
822
827
|
| `--r` | `.bb-toast__panel` | `min(var(--bb-radius), 10px)` | Card corners. `border-radius` caps whatever lands here again, at 14px. |
|
|
823
828
|
| `--ring-size` | `.bb-toast__panel` | `2px` | focus ring on the close button |
|
|
824
829
|
| `--bg` | `.bb-toast__panel` | `var(--bb-panel)` | card fill, and the close button's own fill |
|
|
825
|
-
| `--border-color` | `.bb-toast__panel` | `var(--bb-border)` |
|
|
830
|
+
| `--border-color` | `.bb-toast__panel` | `var(--bb-border)` | card edge |
|
|
831
|
+
| `--bw` | `.bb-toast__panel` | `var(--bb-border-w)` | Edge width: a real `border`, counted in the measured height; the inner padding and the × take it back, so the card keeps its size. |
|
|
826
832
|
| `--fg` | `.bb-toast__panel` | `var(--bb-text)` | title, text and close glyph |
|
|
827
833
|
| `--icon-color` | `.bb-toast__panel` | `var(--bb-text)` | The status glyph only — the variants below re-point this and nothing else |
|
|
828
834
|
| `--icon-color` | `.bb-toast__panel--success` | `var(--bb-success)` | |
|
|
@@ -843,7 +849,7 @@ Set these on the element, or on a class you put on it, to retune this component
|
|
|
843
849
|
- `BbToast` _(this component)_
|
|
844
850
|
- `BbToastRegion` _(internal — not importable, reach it through `BbToast`)_ — `BbToast`'s pt parts land here: `root` → `ol.bb-toast`
|
|
845
851
|
- `BbToastMessage` _(internal — not importable, reach it through `BbToast`)_ — also mounts `BbIcon`, `BbSpinner`
|
|
846
|
-
- `BbButton` _(public — [contract](./BbButton.md))_ — its own pt parts (`BbButton`): `root` → `BbBaseButton`, `spinner` → `BbSpinner`, `icon` → `BbIcon`, `text` → `span.bb-button__text`; documented CSS variables: `--h-xs`, `--h`, `--icon-size`, `--px`, `--fs`, `--r`, `--gap`, `--bg`, `--bg-hover`, `--bg-pressed`, `--fg`, `--border-color`, `--ring-color`, `--ring-size`, `--bw`, `--fg-hover`, `--border-hover`, `--fg-pressed`, `--border-pressed`, `--bg-disabled`, `--fg-disabled`, `--border-disabled`, `--opacity-disabled`, `--elev-tier`, `--elev`; also mounts `BbIcon`, `BbSpinner`
|
|
852
|
+
- `BbButton` _(public — [contract](./BbButton.md))_ — its own pt parts (`BbButton`): `root` → `BbBaseButton`, `spinner` → `BbSpinner`, `icon` → `span.bb-button__icon`, `icon` → `BbIcon`, `icon` → `span.bb-button__prepend-icon`, `text` → `span.bb-button__text`, `icon` → `span.bb-button__append-icon`; documented CSS variables: `--h-xs`, `--h`, `--icon-size`, `--px`, `--fs`, `--r`, `--gap`, `--bg`, `--bg-hover`, `--bg-pressed`, `--fg`, `--border-color`, `--ring-color`, `--ring-size`, `--bw`, `--fg-hover`, `--border-hover`, `--fg-pressed`, `--border-pressed`, `--bg-disabled`, `--fg-disabled`, `--border-disabled`, `--opacity-disabled`, `--elev-tier`, `--elev`; also mounts `BbIcon`, `BbSpinner`
|
|
847
853
|
- `BbBaseButton` _(public — [contract](./BbBaseButton.md))_ — its own pt parts (`BbBaseButton`): `root` → `RouterComponent`, `root` → `a`, `root` → `component`; also mounts `RouterComponent`
|
|
848
854
|
|
|
849
855
|
## See Also
|