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
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
{"name":"items","type":"T[] | ((context: BbSelectItemsContext) => T[] | Promise<T[]>)","required":true,"description":"The options: an array, or a provider called with a `BbSelectItemsContext` (`query`, `reason`, `modelValue`, `signal`), sync or async. Branch on `reason !== 'search'` to resolve the selection by id. A provider fails by THROWING, never by returning `[]`."},
|
|
39
39
|
{"name":"itemText","common":true},
|
|
40
40
|
{"name":"itemValue","common":true},
|
|
41
|
-
{"name":"knownItems","type":"(
|
|
41
|
+
{"name":"knownItems","type":"([Known] extends [undefined] ? BbSelectKnownItems : Known)","description":"`{ value, label }` rows naming the value the app already holds, whatever the options' shape: no request until the first open (`prefill: true` still loads). Not options; the options' accessors never run on them; slots get the row as `item`, with `known: true`, until the list brings its own."},
|
|
42
42
|
{"name":"label","type":"string","required":true,"description":"Text content of the label of the element."},
|
|
43
43
|
{"name":"labelAlign","common":true},
|
|
44
44
|
{"name":"labelMode","common":true},
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
{"name":"placeholder","type":"string","description":"Text shown in the field while nothing is picked (an empty list has `emptyText`)."},
|
|
58
58
|
{"name":"prefill","type":"boolean | \"interaction\"","default":"'interaction'","description":"When the options first load: `'interaction'` on first open, `true` on mount, `false` only once the user types (on open with `disable-writing`). An array `items` or a seeded model always loads at once."},
|
|
59
59
|
{"name":"prepend:icon","common":true},
|
|
60
|
-
{"name":"pt","type":"PtItemMap<BbSelectPtPart, BbSelectOptionPtPart, BbSelectPtState, T>","description":"Passthrough, object form: the same keys as the `pt:*` attributes without the prefix. See the `pt:<part>` row."},
|
|
60
|
+
{"name":"pt","type":"({ root?: PtValue | undefined; header?: PtValue | undefined; icon?: PtValue | undefined; panel?: PtValue | undefined; \"root:open\"?: PtValue | undefined; \"header:open\"?: PtValue | undefined; \"icon:open\"?: PtValue | undefined; \"panel:open\"?: PtValue | undefined; spinner?: PtValue | undefined; clear?: PtValue | undefined; \"root:loading\"?: PtValue | undefined; \"icon:loading\"?: PtValue | undefined; \"spinner:loading\"?: PtValue | undefined; \"clear:loading\"?: PtValue | undefined; \"root:disabled\"?: PtValue | undefined; label?: PtValue | undefined; \"root:errors\"?: PtValue | undefined; \"root:warnings\"?: PtValue | undefined; \"root:readonly\"?: PtValue | undefined; \"icon:disabled\"?: PtValue | undefined; \"spinner:disabled\"?: PtValue | undefined; \"root:selected\"?: PtValue | undefined; \"header:disabled\"?: PtValue | undefined; \"header:selected\"?: PtValue | undefined; description?: PtValue | undefined; message?: PtValue | undefined; hint?: PtValue | undefined; \"icon:errors\"?: PtValue | undefined; \"icon:warnings\"?: PtValue | undefined; \"icon:readonly\"?: PtValue | undefined; \"label:disabled\"?: PtValue | undefined; \"label:errors\"?: PtValue | undefined; \"label:warnings\"?: PtValue | undefined; \"label:readonly\"?: PtValue | undefined; \"description:disabled\"?: PtValue | undefined; \"description:errors\"?: PtValue | undefined; \"description:warnings\"?: PtValue | undefined; \"description:readonly\"?: PtValue | undefined; \"message:disabled\"?: PtValue | undefined; \"message:errors\"?: PtValue | undefined; \"message:warnings\"?: PtValue | undefined; \"message:readonly\"?: PtValue | undefined; \"hint:disabled\"?: PtValue | undefined; \"hint:errors\"?: PtValue | undefined; \"hint:warnings\"?: PtValue | undefined; \"hint:readonly\"?: PtValue | undefined; input?: PtValue | undefined; list?: PtValue | undefined; \"root:hasValue\"?: PtValue | undefined; \"description:loading\"?: PtValue | undefined; \"description:hasValue\"?: PtValue | undefined; \"message:loading\"?: PtValue | undefined; \"message:hasValue\"?: PtValue | undefined; \"hint:loading\"?: PtValue | undefined; \"hint:hasValue\"?: PtValue | undefined; \"list:loading\"?: PtValue | undefined; \"list:disabled\"?: PtValue | undefined; \"list:errors\"?: PtValue | undefined; \"list:warnings\"?: PtValue | undefined; \"list:readonly\"?: PtValue | undefined; \"list:hasValue\"?: PtValue | undefined; \"icon:hasValue\"?: PtValue | undefined; \"label:loading\"?: PtValue | undefined; \"label:hasValue\"?: PtValue | undefined; \"itemDescription:loading\"?: PtValue | undefined; \"itemDescription:disabled\"?: PtValue | undefined; \"itemDescription:errors\"?: PtValue | undefined; \"itemDescription:warnings\"?: PtValue | undefined; \"itemDescription:readonly\"?: PtValue | undefined; \"itemDescription:hasValue\"?: PtValue | undefined; box?: PtValue | undefined; prefix?: PtValue | undefined; suffix?: PtValue | undefined; sheet?: PtValue | undefined; \"panel:loading\"?: PtValue | undefined; \"panel:disabled\"?: PtValue | undefined; \"panel:errors\"?: PtValue | undefined; \"panel:warnings\"?: PtValue | undefined; \"panel:readonly\"?: PtValue | undefined; \"panel:hasValue\"?: PtValue | undefined; \"spinner:errors\"?: PtValue | undefined; \"spinner:warnings\"?: PtValue | undefined; \"spinner:readonly\"?: PtValue | undefined; \"spinner:hasValue\"?: PtValue | undefined; \"clear:disabled\"?: PtValue | undefined; \"clear:errors\"?: PtValue | undefined; \"clear:warnings\"?: PtValue | undefined; \"clear:readonly\"?: PtValue | undefined; \"clear:hasValue\"?: PtValue | undefined; \"input:loading\"?: PtValue | undefined; \"input:disabled\"?: PtValue | undefined; \"input:errors\"?: PtValue | undefined; \"input:warnings\"?: PtValue | undefined; \"input:readonly\"?: PtValue | undefined; \"input:hasValue\"?: PtValue | undefined; \"box:loading\"?: PtValue | undefined; \"box:disabled\"?: PtValue | undefined; \"box:errors\"?: PtValue | undefined; \"box:warnings\"?: PtValue | undefined; \"box:readonly\"?: PtValue | undefined; \"box:hasValue\"?: PtValue | undefined; \"prefix:loading\"?: PtValue | undefined; \"prefix:disabled\"?: PtValue | undefined; \"prefix:errors\"?: PtValue | undefined; \"prefix:warnings\"?: PtValue | undefined; \"prefix:readonly\"?: PtValue | undefined; \"prefix:hasValue\"?: PtValue | undefined; \"suffix:loading\"?: PtValue | undefined; \"suffix:disabled\"?: PtValue | undefined; \"suffix:errors\"?: PtValue | undefined; \"suffix:warnings\"?: PtValue | undefined; \"suffix:readonly\"?: PtValue | undefined; \"suffix:hasValue\"?: PtValue | undefined; \"sheet:loading\"?: PtValue | undefined; \"sheet:disabled\"?: PtValue | undefined; \"sheet:errors\"?: PtValue | undefined; \"sheet:warnings\"?: PtValue | undefined; \"sheet:readonly\"?: PtValue | undefined; \"sheet:hasValue\"?: PtValue | undefined; footer?: PtValue | undefined; activator?: PtValue | undefined; \"sheet:open\"?: PtValue | undefined; \"footer:open\"?: PtValue | undefined; \"panel:selected\"?: PtValue | undefined; \"sheet:selected\"?: PtValue | undefined; \"header:loading\"?: PtValue | undefined; \"header:errors\"?: PtValue | undefined; \"header:warnings\"?: PtValue | undefined; \"header:readonly\"?: PtValue | undefined; \"header:hasValue\"?: PtValue | undefined; \"icon:selected\"?: PtValue | undefined; \"spinner:open\"?: PtValue | undefined; \"spinner:selected\"?: PtValue | undefined; \"clear:open\"?: PtValue | undefined; \"clear:selected\"?: PtValue | undefined; \"label:open\"?: PtValue | undefined; \"label:selected\"?: PtValue | undefined; \"description:open\"?: PtValue | undefined; \"description:selected\"?: PtValue | undefined; \"message:open\"?: PtValue | undefined; \"message:selected\"?: PtValue | undefined; \"hint:open\"?: PtValue | undefined; \"hint:selected\"?: PtValue | undefined; \"input:open\"?: PtValue | undefined; \"input:selected\"?: PtValue | undefined; \"box:open\"?: PtValue | undefined; \"box:selected\"?: PtValue | undefined; \"prefix:open\"?: PtValue | undefined; \"prefix:selected\"?: PtValue | undefined; \"suffix:open\"?: PtValue | undefined; \"suffix:selected\"?: PtValue | undefined; \"activator:open\"?: PtValue | undefined; \"activator:selected\"?: PtValue | undefined; \"activator:loading\"?: PtValue | undefined; \"activator:disabled\"?: PtValue | undefined; \"activator:errors\"?: PtValue | undefined; \"activator:warnings\"?: PtValue | undefined; \"activator:readonly\"?: PtValue | undefined; \"activator:hasValue\"?: PtValue | undefined; \"list:open\"?: PtValue | undefined; \"list:selected\"?: PtValue | undefined; \"itemDescription:open\"?: PtValue | undefined; \"itemDescription:selected\"?: PtValue | undefined; \"itemText:open\"?: PtValue | undefined; \"itemText:disabled\"?: PtValue | undefined; \"itemText:selected\"?: PtValue | undefined; \"footer:disabled\"?: PtValue | undefined; \"footer:selected\"?: PtValue | undefined; \"itemIcon:open\"?: PtValue | undefined; \"itemIcon:disabled\"?: PtValue | undefined; \"itemIcon:selected\"?: PtValue | undefined; \"footer:loading\"?: PtValue | undefined; \"itemText:loading\"?: PtValue | undefined; \"itemIcon:loading\"?: PtValue | undefined; \"itemText:errors\"?: PtValue | undefined; \"itemText:warnings\"?: PtValue | undefined; \"itemText:readonly\"?: PtValue | undefined; \"itemText:hasValue\"?: PtValue | undefined; \"footer:errors\"?: PtValue | undefined; \"footer:warnings\"?: PtValue | undefined; \"footer:readonly\"?: PtValue | undefined; \"footer:hasValue\"?: PtValue | undefined; \"itemIcon:errors\"?: PtValue | undefined; \"itemIcon:warnings\"?: PtValue | undefined; \"itemIcon:readonly\"?: PtValue | undefined; \"itemIcon:hasValue\"?: PtValue | undefined; \"option:open\"?: PtValue | undefined; \"option:selected\"?: PtValue | undefined; \"option:loading\"?: PtValue | undefined; \"option:disabled\"?: PtValue | undefined; \"option:errors\"?: PtValue | undefined; \"option:warnings\"?: PtValue | undefined; \"option:readonly\"?: PtValue | undefined; \"option:hasValue\"?: PtValue | undefined; \"badge:open\"?: PtValue | undefined; \"badge:selected\"?: PtValue | undefined; \"badge:loading\"?: PtValue | undefined; \"badge:disabled\"?: PtValue | undefined; \"badge:errors\"?: PtValue | undefined; \"badge:warnings\"?: PtValue | undefined; \"badge:readonly\"?: PtValue | undefined; \"badge:hasValue\"?: PtValue | undefined; \"comma:open\"?: PtValue | undefined; \"comma:selected\"?: PtValue | undefined; \"comma:loading\"?: PtValue | undefined; \"comma:disabled\"?: PtValue | undefined; \"comma:errors\"?: PtValue | undefined; \"comma:warnings\"?: PtValue | undefined; \"comma:readonly\"?: PtValue | undefined; \"comma:hasValue\"?: PtValue | undefined; } & { itemDescription?: PtValue | PtItemFn<T, BbSelectPtState, never, BbSelectSlotRow<T, Known>> | undefined; itemText?: PtValue | PtItemFn<T, BbSelectPtState, never, BbSelectSlotRow<T, Known>> | undefined; itemIcon?: PtValue | PtItemFn<T, BbSelectPtState, never, BbSelectSlotRow<T, Known>> | undefined; option?: PtValue | PtItemFn<T, BbSelectPtState, never, BbSelectSlotRow<T, Known>> | undefined; badge?: PtValue | PtItemFn<T, BbSelectPtState, never, BbSelectSlotRow<T, Known>> | undefined; comma?: PtValue | PtItemFn<T, BbSelectPtState, never, BbSelectSlotRow<T, Known>> | undefined; } & { \"root:outline\"?: PtValue | undefined; \"icon:outline\"?: PtValue | undefined; \"root:secondary\"?: PtValue | undefined; \"icon:secondary\"?: PtValue | undefined; \"spinner:outline\"?: PtValue | undefined; \"spinner:secondary\"?: PtValue | undefined; \"clear:outline\"?: PtValue | undefined; \"clear:secondary\"?: PtValue | undefined; \"root:ghost\"?: PtValue | undefined; \"icon:ghost\"?: PtValue | undefined; \"spinner:ghost\"?: PtValue | undefined; \"clear:ghost\"?: PtValue | undefined; \"label:outline\"?: PtValue | undefined; \"label:secondary\"?: PtValue | undefined; \"label:ghost\"?: PtValue | undefined; \"description:outline\"?: PtValue | undefined; \"description:secondary\"?: PtValue | undefined; \"description:ghost\"?: PtValue | undefined; \"message:outline\"?: PtValue | undefined; \"message:secondary\"?: PtValue | undefined; \"message:ghost\"?: PtValue | undefined; \"hint:outline\"?: PtValue | undefined; \"hint:secondary\"?: PtValue | undefined; \"hint:ghost\"?: PtValue | undefined; \"box:outline\"?: PtValue | undefined; \"box:secondary\"?: PtValue | undefined; \"box:ghost\"?: PtValue | undefined; \"prefix:outline\"?: PtValue | undefined; \"prefix:secondary\"?: PtValue | undefined; \"prefix:ghost\"?: PtValue | undefined; \"suffix:outline\"?: PtValue | undefined; \"suffix:secondary\"?: PtValue | undefined; \"suffix:ghost\"?: PtValue | undefined; \"activator:outline\"?: PtValue | undefined; \"activator:secondary\"?: PtValue | undefined; \"activator:ghost\"?: PtValue | undefined; })","description":"Passthrough, object form: the same keys as the `pt:*` attributes without the prefix. See the `pt:<part>` row."},
|
|
61
61
|
{"name":"queryDebounceTime","type":"number","default":"500","description":"Time to wait when the user stops writing in the input before querying data."},
|
|
62
62
|
{"name":"readonly","common":true},
|
|
63
63
|
{"name":"required","common":true},
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
"slots": [
|
|
91
91
|
{"name":"append","type":"{ query: string; focus: () => void; close: () => Promise<void>; }","description":"Content appended inside the input field, after the value area."},
|
|
92
92
|
{"name":"append:outer","type":"{ query: string; close: () => Promise<void>; }","description":"Content appended outside the input field wrapper."},
|
|
93
|
-
{"name":"chip","type":"BbSelectChipSlotProps<T>","fields":["item: T","text: string","value: any","disabled: boolean","deselect: () => void"],"description":"Replaces the default badge rendered for each selection in `multiple` mode. Not called in `comma` mode, nor for the collapsed \"+N\" summary."},
|
|
93
|
+
{"name":"chip","type":"BbSelectChipSlotProps<T, Known>","fields":["known: boolean","item: BbSelectKnownItem | T","text: string","value: any","disabled: boolean","deselect: () => void"],"description":"Replaces the default badge rendered for each selection in `multiple` mode. Not called in `comma` mode, nor for the collapsed \"+N\" summary. With `known-items` bound, `item` is the known `{ value, label }` row (`known: true`) until the list brings the real one."},
|
|
94
94
|
{"name":"description","type":"BbSelectDescriptionSlotProps","fields":["text: string","hasErrors: boolean","hasWarnings: boolean"],"description":"Replaces the description text. Provided alone (no `description` prop) it still renders the description region and wires it into `aria-describedby`."},
|
|
95
95
|
{"name":"empty","type":"{ query: string; focus: () => void; error: unknown; }","description":"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)."},
|
|
96
96
|
{"name":"footer","type":"BbSelectPanelSlotProps","fields":["close: () => Promise<void>","clear: () => void","focus: () => void","query: string","selectedOptions: BbSelectResolvedOption[]"],"description":"Content pinned to the bottom of the options panel, below the options list. Rendered in both the desktop popover and the adaptive sheet."},
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
{"name":"header","type":"BbSelectPanelSlotProps","fields":["close: () => Promise<void>","clear: () => void","focus: () => void","query: string","selectedOptions: BbSelectResolvedOption[]"],"description":"Content pinned to the top of the options panel, above the search field. Rendered in both the desktop popover and the adaptive sheet."},
|
|
99
99
|
{"name":"label","type":"BbSelectLabelSlotProps","fields":["showAsterisk?: boolean","text: string","hasErrors: boolean","hasWarnings: boolean"],"description":"Replaces the default label text rendered above the input."},
|
|
100
100
|
{"name":"loading","type":"{ query: string; }","description":"Content shown inside the options dropdown while items are loading."},
|
|
101
|
-
{"name":"option","type":"BbSelectOptionSlotProps<T>","fields":["disabled: boolean","focused: boolean","index: number","hasErrors?: boolean","
|
|
101
|
+
{"name":"option","type":"BbSelectOptionSlotProps<T, Known>","fields":["known: boolean","item: T | BbSelectKnownItem","disabled: boolean","focused: boolean","index: number","hasErrors?: boolean","loading: boolean","selected: boolean","text: string","value: any","description: string"],"description":"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`."},
|
|
102
102
|
{"name":"prefix","type":"object","description":"Content rendered as an inline prefix inside the input field."},
|
|
103
103
|
{"name":"prepend","type":"{ query: string; focus: () => void; close: () => Promise<void>; }","description":"Content prepended inside the input field, before the value area."},
|
|
104
104
|
{"name":"prepend:outer","type":"{ query: string; close: () => Promise<void>; }","description":"Content prepended outside the input field wrapper."},
|
|
@@ -117,23 +117,23 @@
|
|
|
117
117
|
{"name":"hint","common":true},
|
|
118
118
|
{"name":"box","common":true},
|
|
119
119
|
{"name":"activator","description":"The button you act on to open the options — the field's control (not a text field: `data-test` fits here, `autocomplete` does not). The chevron is chrome. It is `activator`, not the family's `input`: the field itself is a button (the date / time inputs' trigger is the same word)."},
|
|
120
|
-
{"name":"input","description":"The search field inside the options surface, when it shows one (see `disable-writing`) — handed to the `BbSelectPopover` as its own `pt:input`. Its ✕ is chrome."},
|
|
120
|
+
{"name":"input","description":"The search field inside the options surface, when it shows one (see `disable-writing`) — handed to the `BbSelectPopover` as its own `pt:input`. Its ✕ is chrome.","states":["disabled","errors","hasValue","loading","open","readonly","selected","warnings"]},
|
|
121
121
|
{"name":"icon","common":true},
|
|
122
122
|
{"name":"spinner","common":true},
|
|
123
123
|
{"name":"prefix","common":true},
|
|
124
124
|
{"name":"suffix","common":true},
|
|
125
125
|
{"name":"clear","description":"The ✕ in the field that empties the selection (`clearable`) — one node, never a chip's own ✕."},
|
|
126
|
-
{"name":"panel","description":"The options surface — the popover's painted bubble on desktop, the sheet itself on a phone."},
|
|
127
|
-
{"name":"sheet","description":"The bottom sheet the options open in on a phone only."},
|
|
128
|
-
{"name":"header","description":"The band around your `#header` slot: at the top of the flyout on desktop, the sheet's header on a phone."},
|
|
129
|
-
{"name":"footer","description":"The band around your `#footer` slot: at the bottom of the flyout on desktop, the sheet's footer on a phone."},
|
|
130
|
-
{"name":"list","description":"The `role=\"listbox\"` node that holds the options. Virtualised: its height is written inline and its rows are positioned by the list, which limits what a layout utility can do there. The listbox's groups and the chips are not parts."},
|
|
131
|
-
{"name":"option","description":"One listbox option — a broadcast resolved per option. Also takes a per-item function, called with the option's raw item.","rowType":"PtValue | ((ctx: PtItemCtx<T, BbSelectPtState
|
|
132
|
-
{"name":"itemText","description":"An option's label — resolved with that option's states. A custom `#option` slot replaces it. Also takes a per-item function.","rowType":"PtValue | ((ctx: PtItemCtx<T, BbSelectPtState
|
|
133
|
-
{"name":"itemIcon","description":"An option's prepend / append icons (`itemProps`) — resolved with that option's states. Also takes a per-item function.","rowType":"PtValue | ((ctx: PtItemCtx<T, BbSelectPtState
|
|
134
|
-
{"name":"itemDescription","description":"An option's second line (its description) — resolved with that option's states. A custom `#option` slot replaces it. Also takes a per-item function.","rowType":"PtValue | ((ctx: PtItemCtx<T, BbSelectPtState
|
|
135
|
-
{"name":"badge","description":"Each selected value's `BbBadge` root with `multiple` — a broadcast resolved per value, on the field's chips and on the phone sheet's. The badge's own ✕ is chrome, never `clear`. In the field, not rendered when the `#chip` slot replaces it, nor in `comma` mode; the sheet's chips are always badges.","rowType":"PtValue | ((ctx: PtItemCtx<T, BbSelectPtState
|
|
136
|
-
{"name":"comma","description":"Each selected value with `multiple` and `comma` — a broadcast resolved per value.","rowType":"PtValue | ((ctx: PtItemCtx<T, BbSelectPtState
|
|
126
|
+
{"name":"panel","description":"The options surface — the popover's painted bubble on desktop, the sheet itself on a phone.","states":["disabled","errors","hasValue","loading","open","readonly","selected","warnings"]},
|
|
127
|
+
{"name":"sheet","description":"The bottom sheet the options open in on a phone only.","states":["disabled","errors","hasValue","loading","open","readonly","selected","warnings"]},
|
|
128
|
+
{"name":"header","description":"The band around your `#header` slot: at the top of the flyout on desktop, the sheet's header on a phone.","states":["disabled","errors","hasValue","loading","open","readonly","selected","warnings"]},
|
|
129
|
+
{"name":"footer","description":"The band around your `#footer` slot: at the bottom of the flyout on desktop, the sheet's footer on a phone.","states":["disabled","errors","hasValue","loading","open","readonly","selected","warnings"]},
|
|
130
|
+
{"name":"list","description":"The `role=\"listbox\"` node that holds the options. Virtualised: its height is written inline and its rows are positioned by the list, which limits what a layout utility can do there. The listbox's groups and the chips are not parts.","states":["disabled","errors","hasValue","loading","open","readonly","selected","warnings"]},
|
|
131
|
+
{"name":"option","description":"One listbox option — a broadcast resolved per option. Also takes a per-item function, called with the option's raw item.","states":["disabled","errors","hasValue","loading","open","readonly","selected","warnings"],"rowType":"PtValue | ((ctx: PtItemCtx<T, BbSelectPtState, never, BbSelectSlotRow<T, Known>>) => PtItemResult) | undefined"},
|
|
132
|
+
{"name":"itemText","description":"An option's label — resolved with that option's states. A custom `#option` slot replaces it. Also takes a per-item function.","states":["disabled","errors","hasValue","loading","open","readonly","selected","warnings"],"rowType":"PtValue | ((ctx: PtItemCtx<T, BbSelectPtState, never, BbSelectSlotRow<T, Known>>) => PtItemResult) | undefined"},
|
|
133
|
+
{"name":"itemIcon","description":"An option's prepend / append icons (`itemProps`) — resolved with that option's states. Also takes a per-item function.","states":["disabled","errors","hasValue","loading","open","readonly","selected","warnings"],"rowType":"PtValue | ((ctx: PtItemCtx<T, BbSelectPtState, never, BbSelectSlotRow<T, Known>>) => PtItemResult) | undefined"},
|
|
134
|
+
{"name":"itemDescription","description":"An option's second line (its description) — resolved with that option's states. A custom `#option` slot replaces it. Also takes a per-item function.","states":["disabled","errors","hasValue","loading","open","readonly","selected","warnings"],"rowType":"PtValue | ((ctx: PtItemCtx<T, BbSelectPtState, never, BbSelectSlotRow<T, Known>>) => PtItemResult) | undefined"},
|
|
135
|
+
{"name":"badge","description":"Each selected value's `BbBadge` root with `multiple` — a broadcast resolved per value, on the field's chips and on the phone sheet's. The badge's own ✕ is chrome, never `clear`. In the field, not rendered when the `#chip` slot replaces it, nor in `comma` mode; the sheet's chips are always badges.","states":["disabled","errors","hasValue","loading","open","readonly","selected","warnings"],"rowType":"PtValue | ((ctx: PtItemCtx<T, BbSelectPtState, never, BbSelectSlotRow<T, Known>>) => PtItemResult) | undefined"},
|
|
136
|
+
{"name":"comma","description":"Each selected value with `multiple` and `comma` — a broadcast resolved per value.","states":["disabled","errors","hasValue","loading","open","readonly","selected","warnings"],"rowType":"PtValue | ((ctx: PtItemCtx<T, BbSelectPtState, never, BbSelectSlotRow<T, Known>>) => PtItemResult) | undefined"}
|
|
137
137
|
],
|
|
138
138
|
"states": [
|
|
139
139
|
{"name":"hasValue","description":"Component-wide: the control holds a value, by its own rule (`0` counts on `BbNumberInput`, `''` on `BbColorInput`)."},
|
|
@@ -143,7 +143,10 @@
|
|
|
143
143
|
{"name":"warnings","description":"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."},
|
|
144
144
|
{"name":"errors","description":"Component-wide: the control is in its error state (`errors` / `has-errors`, or its validation) — the message line and the box turn red."},
|
|
145
145
|
{"name":"open","description":"Component-wide: the options surface is showing."},
|
|
146
|
-
{"name":"loading","description":"Component-wide: `loading` is on; the box shows its `spinner`."}
|
|
146
|
+
{"name":"loading","description":"Component-wide: `loading` is on; the box shows its `spinner`."},
|
|
147
|
+
{"name":"ghost","description":"On the field's parts: `variant: 'ghost'`. Below the real states, like every variant."},
|
|
148
|
+
{"name":"outline","description":"On the field's parts: `variant: 'outline'`. Merged after the part's base entry and before its states, so the real states still win."},
|
|
149
|
+
{"name":"secondary","description":"On the field's parts: `variant: 'secondary'`. Below the real states, like every variant."}
|
|
147
150
|
]
|
|
148
151
|
},
|
|
149
152
|
"attrTargets": [
|
|
@@ -154,7 +157,7 @@
|
|
|
154
157
|
{"name":"BbOffCanvasProps","usedAs":["prop offCanvasProps"]},
|
|
155
158
|
{"name":"BbSelectItemProps","usedAs":["prop itemProps"],"definition":"type BbSelectItemProps<T = any> = ItemProps<T, SelectItemFields>;","fields":["description?: ItemAccessor<T, string | null | undefined>","prepend:icon?: ItemAccessor<T, string | null | undefined>","append:icon?: ItemAccessor<T, string | null | undefined>"]},
|
|
156
159
|
{"name":"BbSelectItemsContext","usedAs":["prop items"],"definition":"type BbSelectItemsContext<M = any> = BbItemsProviderContext<M> & { query: string; reason: 'search' | 'initial' | 'dependencies' | 'model' | 'reopen'; };"},
|
|
157
|
-
{"name":"
|
|
160
|
+
{"name":"BbSelectSlotRow","usedAs":["prop pt","prop pt:badge","prop pt:comma","prop pt:itemDescription","prop pt:itemIcon","prop pt:itemText","prop pt:option"],"definition":"type BbSelectSlotRow<Item, Known extends BbSelectKnownItems | undefined = BbSelectKnownItems> = [ Known ] extends [ undefined ] ? { known: false; item: Item; } : { known: true; item: BbSelectKnownItem; } | { known: false; item: Item; };"},
|
|
158
161
|
{"name":"FieldLayout","usedAs":["prop layout"],"definition":"type FieldLayout = 'auto' | 'horizontal' | 'vertical' | 'label-fill' | 'input-fill' | `${string} ${string}`;"},
|
|
159
162
|
{"name":"InputVariantType","usedAs":["prop variant"],"definition":"type InputVariantType = InputVariantFromRegistry | 'none';","values":["outline","secondary","ghost","none"],"extensibleVia":"InputVariantRegistry"},
|
|
160
163
|
{"name":"Responsive","usedAs":["prop layout"],"definition":"type Responsive<V> = V | Partial<Record<Breakpoint | 'default', V>>;"},
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
"nodes": [
|
|
18
18
|
{"name":"CommonField","kind":"internal","vocabulary":"BbSelect","bindings":[{"part":"root","target":"div.bb-field"},{"part":"label","target":"component"},{"part":"description","target":"span.bb-field__description"},{"part":"hint","target":"span.bb-field__hint"},{"part":"counter","target":"span.bb-field__counter"},{"part":"message","target":"div.bb-field__message"}],"cssProps":[{"name":"--ctrl-line","documented":true,"readBy":["bb-field__label","bb-field__input-wrapper"]}],"children":[{"name":"BbAsterisk","kind":"public"}]},
|
|
19
19
|
{"name":"CommonFieldInput","kind":"internal","vocabulary":"BbSelect","bindings":[{"part":"box","target":"span.bb-field-input__box"},{"part":"prefix","target":"span.bb-field-input__prefix"},{"part":"icon","target":"BbIcon"},{"part":"clear","target":"ClearableButton"},{"part":"spinner","target":"BbSpinner"},{"part":"suffix","target":"span.bb-field-input__suffix"}],"cssProps":[{"name":"--bg","documented":true,"readBy":["bb-field-input","bb-field-input__box"]},{"name":"--bg-hover","documented":true,"readBy":["bb-field-input__box"]},{"name":"--bg-focus","documented":true,"readBy":["bb-field-input__box"]},{"name":"--bg-disabled","documented":true,"readBy":["bb-field-input__box"]},{"name":"--fg-disabled","documented":true,"readBy":["bb-field-input__box","bb-field-input__prefix","bb-field-input__suffix","bb-field-input__prepend-icon","bb-field-input__append-icon"]},{"name":"--border-color","documented":true,"readBy":["bb-field-input","bb-field-input__box"]},{"name":"--border-focus","documented":true,"readBy":["bb-field-input__box"]},{"name":"--ring-size","documented":true,"readBy":["bb-field-input__box"]},{"name":"--ring-color","documented":true,"readBy":["bb-field-input__box"]},{"name":"--elev","documented":true,"readBy":["bb-field-input__box"]},{"name":"--frost","documented":true,"readBy":["bb-field-input__box"]},{"name":"--inside-label-clearance","documented":true,"readBy":["bb-field-input__box","bb-field-input__prefix","bb-field-input__suffix"]}],"children":[{"name":"ErrorIcon","kind":"internal","cssProps":[{"name":"--accent","documented":false,"readBy":["bb-error-icon"]}],"children":[{"name":"BbIcon","kind":"public","cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]}]},{"name":"WarningIcon","kind":"internal","cssProps":[{"name":"--accent","documented":false,"readBy":["bb-warning-icon"]}],"children":[{"name":"BbIcon","kind":"public","repeated":true,"cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]}]},{"name":"ClearableButton","kind":"internal","children":[{"name":"BbIcon","kind":"public","repeated":true,"cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]}]},{"name":"BbIcon","kind":"public","repeated":true,"cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]},{"name":"BbSpinner","kind":"public","children":[{"name":"BbIcon","kind":"public","repeated":true,"cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]}]}]},
|
|
20
|
-
{"name":"BbBadge","kind":"public","vocabulary":"BbBadge","bindings":[{"part":"spinner","target":"BbSpinner"},{"part":"icon","target":"BbIcon"},{"part":"clear","target":"button.bb-badge__clear"}],"cssProps":[{"name":"--bg","documented":true,"readBy":["bb-badge"]},{"name":"--fg","documented":true,"readBy":["bb-badge","bb-badge__clear"]},{"name":"--bw","documented":true,"readBy":["bb-badge","bb-badge__clear"]},{"name":"--border-color","documented":false,"readBy":["bb-badge"]},{"name":"--ring-color","documented":true,"readBy":["bb-badge","bb-badge__clear","bb-badge__body","bb-badge--highlighted"]},{"name":"--ring-size","documented":true,"readBy":["bb-badge","bb-badge__clear","bb-badge__body","bb-badge--highlighted"]},{"name":"--min-size-md","documented":true,"readBy":["bb-badge"]},{"name":"--min-size","documented":true,"readBy":["bb-badge"]},{"name":"--elev","documented":true,"readBy":["bb-badge","bb-badge__clear","bb-badge__body","bb-badge--highlighted"]},{"name":"--r","documented":true,"readBy":["bb-badge","bb-badge__body","bb-badge__trailing","bb-badge__clear"]},{"name":"--fs","documented":true,"readBy":["bb-badge"]},{"name":"--icon-size","documented":true,"readBy":["bb-badge__icon","bb-badge__prepend-icon","bb-badge__append-icon","bb-badge__clear"]},{"name":"--gap","documented":true,"readBy":["bb-badge","bb-badge__body","bb-badge__trailing","bb-badge__clear"]},{"name":"--px","documented":true,"readBy":["bb-badge","bb-badge--icon","bb-badge__prepend-icon","bb-badge__append-icon","bb-badge--clearable"]},{"name":"--clear-size","documented":true,"readBy":["bb-badge__clear","bb-icon"]},{"name":"--bg-disabled","documented":true,"readBy":["bb-badge__body","bb-base-button--disabled","bb-badge--loading"]},{"name":"--fg-disabled","documented":true,"readBy":["bb-badge__body","bb-base-button--disabled","bb-badge--loading"]},{"name":"--border-disabled","documented":true,"readBy":["bb-badge__body","bb-base-button--disabled","bb-badge--loading"]},{"name":"--pad-left","documented":true,"readBy":["bb-badge__body"]},{"name":"--pad-right","documented":false,"readBy":["bb-badge__body","bb-badge__clear"]},{"name":"--size","documented":false}],"children":[{"name":"BbIcon","kind":"public","repeated":true,"cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]},{"name":"BbSpinner","kind":"public","repeated":true},{"name":"BadgeBodyContent","kind":"internal","children":[{"name":"BbIcon","kind":"public","repeated":true,"cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]},{"name":"BbSpinner","kind":"public","repeated":true}]}]},
|
|
21
|
-
{"name":"BbSelectPopover","kind":"public","vocabulary":"BbSelectPopover","bindings":[{"part":"input","target":"input.bb-select-popover__input"},{"part":"clear","target":"ClearableButton"},{"part":"panel","target":"CommonPopover"},{"part":"root","target":"CommonPopover"},{"part":"header","target":"div.bb-select-popover__header"},{"part":"footer","target":"div.bb-select-popover__footer"}],"forwards":[{"to":"BbOffCanvas","mapping":"{ header: 'header', footer: 'footer', panel: 'root', sheet: 'root' }"}],"cssProps":[{"name":"--bg","documented":false,"readBy":["bb-listbox__outer-container"]},{"name":"--min-size","documented":false},{"name":"--px","documented":false},{"name":"--clear-size","documented":false}],"children":[{"name":"BbBadge","kind":"public","repeated":true,"cssProps":[{"name":"--bg","documented":true,"readBy":["bb-badge"]},{"name":"--fg","documented":true,"readBy":["bb-badge","bb-badge__clear"]},{"name":"--bw","documented":true,"readBy":["bb-badge","bb-badge__clear"]},{"name":"--border-color","documented":false,"readBy":["bb-badge"]},{"name":"--ring-color","documented":true,"readBy":["bb-badge","bb-badge__clear","bb-badge__body","bb-badge--highlighted"]},{"name":"--ring-size","documented":true,"readBy":["bb-badge","bb-badge__clear","bb-badge__body","bb-badge--highlighted"]},{"name":"--min-size-md","documented":true,"readBy":["bb-badge"]},{"name":"--min-size","documented":true,"readBy":["bb-badge"]},{"name":"--elev","documented":true,"readBy":["bb-badge","bb-badge__clear","bb-badge__body","bb-badge--highlighted"]},{"name":"--r","documented":true,"readBy":["bb-badge","bb-badge__body","bb-badge__trailing","bb-badge__clear"]},{"name":"--fs","documented":true,"readBy":["bb-badge"]},{"name":"--icon-size","documented":true,"readBy":["bb-badge__icon","bb-badge__prepend-icon","bb-badge__append-icon","bb-badge__clear"]},{"name":"--gap","documented":true,"readBy":["bb-badge","bb-badge__body","bb-badge__trailing","bb-badge__clear"]},{"name":"--px","documented":true,"readBy":["bb-badge","bb-badge--icon","bb-badge__prepend-icon","bb-badge__append-icon","bb-badge--clearable"]},{"name":"--clear-size","documented":true,"readBy":["bb-badge__clear","bb-icon"]},{"name":"--bg-disabled","documented":true,"readBy":["bb-badge__body","bb-base-button--disabled","bb-badge--loading"]},{"name":"--fg-disabled","documented":true,"readBy":["bb-badge__body","bb-base-button--disabled","bb-badge--loading"]},{"name":"--border-disabled","documented":true,"readBy":["bb-badge__body","bb-base-button--disabled","bb-badge--loading"]},{"name":"--pad-left","documented":true,"readBy":["bb-badge__body"]},{"name":"--pad-right","documented":false,"readBy":["bb-badge__body","bb-badge__clear"]},{"name":"--size","documented":false}]},{"name":"BbIcon","kind":"public","repeated":true,"cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]},{"name":"BbOffCanvas","kind":"public","vocabulary":"BbOffCanvas","bindings":[{"part":"header","target":"div.bb-offcanvas__header"},{"part":"title","target":"span.bb-offcanvas__title"},{"part":"description","target":"p.bb-offcanvas__description"},{"part":"close","target":"CloseButton"},{"part":"content","target":"div.bb-offcanvas__content"},{"part":"footer","target":"div.bb-offcanvas__footer"}],"cssProps":[{"name":"--translate-x","documented":false,"readBy":["bb-offcanvas"]},{"name":"--translate-y","documented":false,"readBy":["bb-offcanvas"]},{"name":"--translate","documented":false,"readBy":["bb-offcanvas"]},{"name":"--stack-x","documented":true,"readBy":["bb-offcanvas"]},{"name":"--stack-y","documented":false,"readBy":["bb-offcanvas"]},{"name":"--snap-y","documented":true,"readBy":["bb-offcanvas","bb-offcanvas__footer","bb-offcanvas--snap","bb-offcanvas--bottom"]},{"name":"--snap-floor","documented":false,"readBy":["bb-offcanvas__footer"]},{"name":"--stack-fill","documented":true,"readBy":["bb-offcanvas","bb-offcanvas--right","bb-offcanvas--left","bb-offcanvas--top","bb-offcanvas--bottom"]},{"name":"--stack-transition-duration","documented":true,"readBy":["bb-offcanvas"]},{"name":"--px","documented":true,"readBy":["bb-offcanvas__header","bb-close-button","bb-offcanvas__content","bb-offcanvas__footer"]},{"name":"--py","documented":false,"readBy":["bb-offcanvas__footer","bb-offcanvas__content","bb-offcanvas__header","bb-close-button"]},{"name":"--handle-w","documented":true,"readBy":["bb-offcanvas__handle"]},{"name":"--handle-h","documented":true,"readBy":["bb-offcanvas__handle"]},{"name":"--handle-bg","documented":true,"readBy":["bb-offcanvas__handle"]},{"name":"--transition-timing-function","documented":false,"readBy":["bb-offcanvas","bb-offcanvas--open"]},{"name":"--bg","documented":false,"readBy":["bb-offcanvas","bb-offcanvas--snap","bb-offcanvas--bottom"]},{"name":"--fg","documented":false,"readBy":["bb-offcanvas"]},{"name":"--safe-top","documented":true,"readBy":["bb-offcanvas","bb-offcanvas--left","bb-offcanvas--right","bb-offcanvas--top","bb-offcanvas--fullscreen"]},{"name":"--safe-right","documented":false,"readBy":["bb-offcanvas","bb-offcanvas--right","bb-offcanvas--top","bb-offcanvas--bottom","bb-offcanvas--fullscreen"]},{"name":"--safe-bottom","documented":false,"readBy":["bb-offcanvas","bb-offcanvas--left","bb-offcanvas--right","bb-offcanvas--bottom","bb-offcanvas--fullscreen"]},{"name":"--safe-left","documented":false,"readBy":["bb-offcanvas","bb-offcanvas--left","bb-offcanvas--top","bb-offcanvas--bottom","bb-offcanvas--fullscreen"]},{"name":"--inset-top","documented":false,"readBy":["bb-offcanvas__content","bb-offcanvas__header"]},{"name":"--inset-right","documented":false,"readBy":["bb-offcanvas__header","bb-offcanvas__content","bb-offcanvas__footer"]},{"name":"--inset-bottom","documented":false,"readBy":["bb-offcanvas__footer","bb-offcanvas__content"]},{"name":"--inset-left","documented":false,"readBy":["bb-offcanvas__header","bb-offcanvas__content","bb-offcanvas__footer"]},{"name":"--close-size","documented":true,"readBy":["bb-close-button"]},{"name":"--gap","documented":false,"readBy":["bb-offcanvas__footer"]}],"children":[{"name":"CloseButton","kind":"internal","cssProps":[{"name":"--size","documented":true,"readBy":["bb-close-button"]},{"name":"--p","documented":true,"readBy":["bb-close-button"]}]}]},{"name":"ClearableButton","kind":"internal","repeated":true},{"name":"CommonPopover","kind":"internal"},{"name":"ErrorIcon","kind":"internal","repeated":true,"cssProps":[{"name":"--accent","documented":false,"readBy":["bb-error-icon"]}]},{"name":"WarningIcon","kind":"internal","repeated":true,"cssProps":[{"name":"--accent","documented":false,"readBy":["bb-warning-icon"]}]},{"name":"ListBox","kind":"internal","children":[{"name":"FlatListBox","kind":"internal","vocabulary":"BbSelectPopover","bindings":[{"part":"list","target":"span.bb-listbox__list"},{"part":"option","target":"span.bb-listbox__option"},{"part":"itemIcon","target":"BbIcon"},{"part":"itemText","target":"span.bb-listbox__item-text"},{"part":"itemDescription","target":"span.bb-listbox__item-description"}],"children":[{"name":"BbIcon","kind":"public","repeated":true,"cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]},{"name":"ErrorIcon","kind":"internal","repeated":true,"cssProps":[{"name":"--accent","documented":false,"readBy":["bb-error-icon"]}]}]},{"name":"GroupedListBox","kind":"internal","vocabulary":"BbSelectPopover","bindings":[{"part":"list","target":"span.bb-listbox__list"},{"part":"option","target":"span.bb-listbox__option"},{"part":"itemIcon","target":"BbIcon"},{"part":"itemText","target":"span.bb-listbox__item-text"},{"part":"itemDescription","target":"span.bb-listbox__item-description"}],"children":[{"name":"BbIcon","kind":"public","repeated":true,"cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]},{"name":"ErrorIcon","kind":"internal","repeated":true,"cssProps":[{"name":"--accent","documented":false,"readBy":["bb-error-icon"]}]}]}]},{"name":"BbSmoothHeight","kind":"public"}]}
|
|
20
|
+
{"name":"BbBadge","kind":"public","vocabulary":"BbBadge","bindings":[{"part":"spinner","target":"BbSpinner"},{"part":"icon","target":"span.bb-badge__append-icon"},{"part":"icon","target":"BbIcon"},{"part":"clear","target":"button.bb-badge__clear"}],"cssProps":[{"name":"--bg","documented":true,"readBy":["bb-badge"]},{"name":"--fg","documented":true,"readBy":["bb-badge","bb-badge__clear"]},{"name":"--bw","documented":true,"readBy":["bb-badge","bb-badge__clear"]},{"name":"--border-color","documented":false,"readBy":["bb-badge"]},{"name":"--ring-color","documented":true,"readBy":["bb-badge","bb-badge__clear","bb-badge__body","bb-badge--highlighted"]},{"name":"--ring-size","documented":true,"readBy":["bb-badge","bb-badge__clear","bb-badge__body","bb-badge--highlighted"]},{"name":"--min-size-md","documented":true,"readBy":["bb-badge"]},{"name":"--min-size","documented":true,"readBy":["bb-badge"]},{"name":"--elev","documented":true,"readBy":["bb-badge","bb-badge__clear","bb-badge__body","bb-badge--highlighted"]},{"name":"--r","documented":true,"readBy":["bb-badge","bb-badge__body","bb-badge__trailing","bb-badge__clear"]},{"name":"--fs","documented":true,"readBy":["bb-badge"]},{"name":"--icon-size","documented":true,"readBy":["bb-badge__icon","bb-badge__prepend-icon","bb-badge__append-icon","bb-badge__icon-slot","bb-icon","bb-badge__clear"]},{"name":"--gap","documented":true,"readBy":["bb-badge","bb-badge__body","bb-badge__trailing","bb-badge__clear"]},{"name":"--px","documented":true,"readBy":["bb-badge","bb-badge--icon","bb-badge__prepend-icon","bb-badge__append-icon","bb-badge--clearable"]},{"name":"--clear-size","documented":true,"readBy":["bb-badge__clear","bb-icon"]},{"name":"--bg-disabled","documented":true,"readBy":["bb-badge__body","bb-base-button--disabled","bb-badge--loading"]},{"name":"--fg-disabled","documented":true,"readBy":["bb-badge__body","bb-base-button--disabled","bb-badge--loading"]},{"name":"--border-disabled","documented":true,"readBy":["bb-badge__body","bb-base-button--disabled","bb-badge--loading"]},{"name":"--pad-left","documented":true,"readBy":["bb-badge__body"]},{"name":"--pad-right","documented":false,"readBy":["bb-badge__body","bb-badge__clear"]},{"name":"--size","documented":false}],"children":[{"name":"BbIcon","kind":"public","repeated":true,"cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]},{"name":"BbSpinner","kind":"public","repeated":true},{"name":"BadgeBodyContent","kind":"internal","children":[{"name":"BbIcon","kind":"public","repeated":true,"cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]},{"name":"BbSpinner","kind":"public","repeated":true}]}]},
|
|
21
|
+
{"name":"BbSelectPopover","kind":"public","vocabulary":"BbSelectPopover","bindings":[{"part":"input","target":"input.bb-select-popover__input"},{"part":"clear","target":"ClearableButton"},{"part":"panel","target":"CommonPopover"},{"part":"root","target":"CommonPopover"},{"part":"header","target":"div.bb-select-popover__header"},{"part":"footer","target":"div.bb-select-popover__footer"}],"forwards":[{"to":"BbOffCanvas","mapping":"{ header: 'header', footer: 'footer', panel: 'root', sheet: 'root' }"}],"cssProps":[{"name":"--bg","documented":false,"readBy":["bb-listbox__outer-container"]},{"name":"--min-size","documented":false},{"name":"--px","documented":false},{"name":"--clear-size","documented":false}],"children":[{"name":"BbBadge","kind":"public","repeated":true,"cssProps":[{"name":"--bg","documented":true,"readBy":["bb-badge"]},{"name":"--fg","documented":true,"readBy":["bb-badge","bb-badge__clear"]},{"name":"--bw","documented":true,"readBy":["bb-badge","bb-badge__clear"]},{"name":"--border-color","documented":false,"readBy":["bb-badge"]},{"name":"--ring-color","documented":true,"readBy":["bb-badge","bb-badge__clear","bb-badge__body","bb-badge--highlighted"]},{"name":"--ring-size","documented":true,"readBy":["bb-badge","bb-badge__clear","bb-badge__body","bb-badge--highlighted"]},{"name":"--min-size-md","documented":true,"readBy":["bb-badge"]},{"name":"--min-size","documented":true,"readBy":["bb-badge"]},{"name":"--elev","documented":true,"readBy":["bb-badge","bb-badge__clear","bb-badge__body","bb-badge--highlighted"]},{"name":"--r","documented":true,"readBy":["bb-badge","bb-badge__body","bb-badge__trailing","bb-badge__clear"]},{"name":"--fs","documented":true,"readBy":["bb-badge"]},{"name":"--icon-size","documented":true,"readBy":["bb-badge__icon","bb-badge__prepend-icon","bb-badge__append-icon","bb-badge__icon-slot","bb-icon","bb-badge__clear"]},{"name":"--gap","documented":true,"readBy":["bb-badge","bb-badge__body","bb-badge__trailing","bb-badge__clear"]},{"name":"--px","documented":true,"readBy":["bb-badge","bb-badge--icon","bb-badge__prepend-icon","bb-badge__append-icon","bb-badge--clearable"]},{"name":"--clear-size","documented":true,"readBy":["bb-badge__clear","bb-icon"]},{"name":"--bg-disabled","documented":true,"readBy":["bb-badge__body","bb-base-button--disabled","bb-badge--loading"]},{"name":"--fg-disabled","documented":true,"readBy":["bb-badge__body","bb-base-button--disabled","bb-badge--loading"]},{"name":"--border-disabled","documented":true,"readBy":["bb-badge__body","bb-base-button--disabled","bb-badge--loading"]},{"name":"--pad-left","documented":true,"readBy":["bb-badge__body"]},{"name":"--pad-right","documented":false,"readBy":["bb-badge__body","bb-badge__clear"]},{"name":"--size","documented":false}]},{"name":"BbIcon","kind":"public","repeated":true,"cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]},{"name":"BbOffCanvas","kind":"public","vocabulary":"BbOffCanvas","bindings":[{"part":"header","target":"div.bb-offcanvas__header"},{"part":"title","target":"span.bb-offcanvas__title"},{"part":"description","target":"p.bb-offcanvas__description"},{"part":"close","target":"CloseButton"},{"part":"content","target":"div.bb-offcanvas__content"},{"part":"footer","target":"div.bb-offcanvas__footer"}],"cssProps":[{"name":"--translate-x","documented":false,"readBy":["bb-offcanvas"]},{"name":"--translate-y","documented":false,"readBy":["bb-offcanvas"]},{"name":"--translate","documented":false,"readBy":["bb-offcanvas"]},{"name":"--stack-x","documented":true,"readBy":["bb-offcanvas"]},{"name":"--stack-y","documented":false,"readBy":["bb-offcanvas"]},{"name":"--snap-y","documented":true,"readBy":["bb-offcanvas","bb-offcanvas__footer","bb-offcanvas--snap","bb-offcanvas--bottom"]},{"name":"--snap-floor","documented":false,"readBy":["bb-offcanvas__footer"]},{"name":"--stack-fill","documented":true,"readBy":["bb-offcanvas","bb-offcanvas--right","bb-offcanvas--left","bb-offcanvas--top","bb-offcanvas--bottom"]},{"name":"--stack-transition-duration","documented":true,"readBy":["bb-offcanvas"]},{"name":"--px","documented":true,"readBy":["bb-offcanvas__header","bb-close-button","bb-offcanvas__content","bb-offcanvas__footer"]},{"name":"--py","documented":false,"readBy":["bb-offcanvas__footer","bb-offcanvas__content","bb-offcanvas__header","bb-close-button"]},{"name":"--handle-w","documented":true,"readBy":["bb-offcanvas__handle"]},{"name":"--handle-h","documented":true,"readBy":["bb-offcanvas__handle"]},{"name":"--handle-bg","documented":true,"readBy":["bb-offcanvas__handle"]},{"name":"--transition-timing-function","documented":false,"readBy":["bb-offcanvas","bb-offcanvas--open"]},{"name":"--bg","documented":false,"readBy":["bb-offcanvas","bb-offcanvas--snap","bb-offcanvas--bottom"]},{"name":"--fg","documented":false,"readBy":["bb-offcanvas"]},{"name":"--safe-top","documented":true,"readBy":["bb-offcanvas","bb-offcanvas--left","bb-offcanvas--right","bb-offcanvas--top","bb-offcanvas--fullscreen"]},{"name":"--safe-right","documented":false,"readBy":["bb-offcanvas","bb-offcanvas--right","bb-offcanvas--top","bb-offcanvas--bottom","bb-offcanvas--fullscreen"]},{"name":"--safe-bottom","documented":false,"readBy":["bb-offcanvas","bb-offcanvas--left","bb-offcanvas--right","bb-offcanvas--bottom","bb-offcanvas--fullscreen"]},{"name":"--safe-left","documented":false,"readBy":["bb-offcanvas","bb-offcanvas--left","bb-offcanvas--top","bb-offcanvas--bottom","bb-offcanvas--fullscreen"]},{"name":"--inset-top","documented":false,"readBy":["bb-offcanvas__content","bb-offcanvas__header"]},{"name":"--inset-right","documented":false,"readBy":["bb-offcanvas__header","bb-offcanvas__content","bb-offcanvas__footer"]},{"name":"--inset-bottom","documented":false,"readBy":["bb-offcanvas__footer","bb-offcanvas__content"]},{"name":"--inset-left","documented":false,"readBy":["bb-offcanvas__header","bb-offcanvas__content","bb-offcanvas__footer"]},{"name":"--close-size","documented":true,"readBy":["bb-close-button"]},{"name":"--gap","documented":false,"readBy":["bb-offcanvas__footer"]}],"children":[{"name":"CloseButton","kind":"internal","cssProps":[{"name":"--size","documented":true,"readBy":["bb-close-button"]},{"name":"--p","documented":true,"readBy":["bb-close-button"]}]}]},{"name":"ClearableButton","kind":"internal","repeated":true},{"name":"CommonPopover","kind":"internal"},{"name":"ErrorIcon","kind":"internal","repeated":true,"cssProps":[{"name":"--accent","documented":false,"readBy":["bb-error-icon"]}]},{"name":"WarningIcon","kind":"internal","repeated":true,"cssProps":[{"name":"--accent","documented":false,"readBy":["bb-warning-icon"]}]},{"name":"ListBox","kind":"internal","children":[{"name":"FlatListBox","kind":"internal","vocabulary":"BbSelectPopover","bindings":[{"part":"list","target":"span.bb-listbox__list"},{"part":"option","target":"span.bb-listbox__option"},{"part":"itemIcon","target":"BbIcon"},{"part":"itemText","target":"span.bb-listbox__item-text"},{"part":"itemDescription","target":"span.bb-listbox__item-description"}],"children":[{"name":"BbIcon","kind":"public","repeated":true,"cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]},{"name":"ErrorIcon","kind":"internal","repeated":true,"cssProps":[{"name":"--accent","documented":false,"readBy":["bb-error-icon"]}]}]},{"name":"GroupedListBox","kind":"internal","vocabulary":"BbSelectPopover","bindings":[{"part":"list","target":"span.bb-listbox__list"},{"part":"option","target":"span.bb-listbox__option"},{"part":"itemIcon","target":"BbIcon"},{"part":"itemText","target":"span.bb-listbox__item-text"},{"part":"itemDescription","target":"span.bb-listbox__item-description"}],"children":[{"name":"BbIcon","kind":"public","repeated":true,"cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]},{"name":"ErrorIcon","kind":"internal","repeated":true,"cssProps":[{"name":"--accent","documented":false,"readBy":["bb-error-icon"]}]}]}]},{"name":"BbSmoothHeight","kind":"public"}]}
|
|
22
22
|
]
|
|
23
23
|
},
|
|
24
24
|
"css": {
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
{"name":"items","type":"Item[] | ((context: BbSelectPopoverItemsContext) => Item[] | Promise<Item[]>)","required":true,"default":"[]","description":"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 `[]`."},
|
|
36
36
|
{"name":"itemText","type":"ItemAccessor<Item, string>","default":"own `label`, else `text`, else `JSON.stringify(item)`","description":"Path to item property for display text or function to extract it.\n\nUnset: own `label`, else `text` (`{ label, value }` needs no accessor)."},
|
|
37
37
|
{"name":"itemValue","type":"ItemAccessor<Item>","default":"own `value`, else the whole item","description":"Path to item property for value or function to extract it.\n\nUnset: own `value`, even `null`."},
|
|
38
|
-
{"name":"knownItems","type":"(
|
|
38
|
+
{"name":"knownItems","type":"([Known] extends [undefined] ? BbSelectKnownItems : Known)","description":"`{ 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."},
|
|
39
39
|
{"name":"loading","type":"boolean","default":"false","description":"Display the loading state styles."},
|
|
40
40
|
{"name":"loadingText","type":"string","description":"Message shown while items are being loaded."},
|
|
41
41
|
{"name":"max","type":"number","default":"Infinity","description":"Maximum number of selectable items (limits selection when `multiple` is true)."},
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
{"name":"padding","type":"number","default":"10","description":"Minimum page padding used by floating shift middleware."},
|
|
48
48
|
{"name":"placement","type":"Placement","default":"\"bottom\"","values":["top","bottom","left","right","top-start","top-end","right-start","right-end","bottom-start","bottom-end","left-start","left-end"],"description":"Floating placement of the popover."},
|
|
49
49
|
{"name":"prefill","type":"boolean | \"interaction\"","default":"\"interaction\"","description":"When the options first load: `'interaction'` on first open, `true` on mount (and in SSR), `false` once the user types (on open with `disable-writing` or a non-empty model). An array `items` always resolves on mount; else a seeded model's text waits for the first open."},
|
|
50
|
-
{"name":"pt","type":"PtItemMap<BbSelectPopoverPtPart, BbSelectPopoverOptionPtPart, BbSelectPopoverPtState, Item
|
|
50
|
+
{"name":"pt","type":"PtItemMap<BbSelectPopoverPtPart, BbSelectPopoverOptionPtPart, BbSelectPopoverPtState, Item, never, BbSelectSlotRow<Item, Known>>","description":"Passthrough, object form: the same keys as the `pt:*` attributes without the prefix. See the `pt:<part>` row."},
|
|
51
51
|
{"name":"queryDebounceTime","type":"number","default":"500","description":"Debounce delay (ms) before triggering search queries after user input stops."},
|
|
52
52
|
{"name":"readonly","type":"boolean","default":"false","description":"Prevents opening the popover while keeping the activator accessible."},
|
|
53
53
|
{"name":"searchInputAriaLabel","type":"string","default":"`t('select.searchLabel')` (`'Search options'`)","description":"Accessible label used by the search input rendered inside the popover. Falls back to the localized `select.searchLabel` key when omitted."},
|
|
@@ -74,11 +74,11 @@
|
|
|
74
74
|
"slots": [
|
|
75
75
|
{"name":"activator","type":"BbSelectPopoverActivatorSlotProps","fields":["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>"],"description":"Replaces the default trigger element that opens the select popover."},
|
|
76
76
|
{"name":"empty","type":"{ query: string; focus: () => void; error: unknown; }","description":"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)."},
|
|
77
|
-
{"name":"footer","type":"BbSelectPopoverPanelSlotProps","fields":["close: () => Promise<void>","clear: () => void","focus: () => void","query: string","selectedOptions: BbSelectResolvedOption<any>[]"],"description":"Content pinned to the bottom of the panel, below the options list. Rendered in both the desktop popover and the adaptive sheet."},
|
|
77
|
+
{"name":"footer","type":"BbSelectPopoverPanelSlotProps","fields":["close: () => Promise<void>","clear: () => void","focus: () => void","query: string","selectedOptions: BbSelectResolvedOption<any>[]","titleId: string"],"description":"Content pinned to the bottom of the panel, below the options list. Rendered in both the desktop popover and the adaptive sheet."},
|
|
78
78
|
{"name":"group","type":"BbSelectPopoverGroupSlotProps<Item>","fields":["disabled: boolean","index: number","item: Item","length: number","text: string"],"description":"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."},
|
|
79
|
-
{"name":"header","type":"BbSelectPopoverPanelSlotProps","fields":["close: () => Promise<void>","clear: () => void","focus: () => void","query: string","selectedOptions: BbSelectResolvedOption<any>[]"],"description":"Content pinned to the top of the panel, above the search field. Rendered in both the desktop popover and the adaptive sheet."},
|
|
79
|
+
{"name":"header","type":"BbSelectPopoverPanelSlotProps","fields":["close: () => Promise<void>","clear: () => void","focus: () => void","query: string","selectedOptions: BbSelectResolvedOption<any>[]","titleId: string"],"description":"Content pinned to the top of the panel, above the search field. Rendered in both the desktop popover and the adaptive sheet."},
|
|
80
80
|
{"name":"loading","type":"{ query: string; }","description":"Content shown inside the options dropdown while items are loading."},
|
|
81
|
-
{"name":"option","type":"BbSelectPopoverOptionSlotProps<Item>","fields":["
|
|
81
|
+
{"name":"option","type":"BbSelectPopoverOptionSlotProps<Item, Known>","fields":["known: boolean","item: BbSelectKnownItem | Item","disabled: boolean","focused: boolean","index: number","loading: boolean","selected: boolean","text: string","value: any","description: string"],"description":"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`."}
|
|
82
82
|
],
|
|
83
83
|
"exposed": [],
|
|
84
84
|
"models": [
|
|
@@ -92,10 +92,10 @@
|
|
|
92
92
|
{"name":"input","description":"The search field."},
|
|
93
93
|
{"name":"clear","description":"The ✕ that empties the search field."},
|
|
94
94
|
{"name":"list","description":"The `role=\"listbox\"` node that holds the options. Virtualised: its height is written inline and its rows are positioned by the list, which limits what a layout utility can do there. The listbox's groups and the chips are not parts."},
|
|
95
|
-
{"name":"option","description":"One listbox option — a broadcast resolved per option. Also takes a per-item function, called with the option's raw item.","rowType":"PtValue | ((ctx: PtItemCtx<Item, BbSelectPopoverPtState
|
|
96
|
-
{"name":"itemText","description":"An option's label — resolved with that option's states. A custom `#option` slot replaces it. Also takes a per-item function.","rowType":"PtValue | ((ctx: PtItemCtx<Item, BbSelectPopoverPtState
|
|
97
|
-
{"name":"itemIcon","description":"An option's prepend / append icons (`itemProps`) — resolved with that option's states. Also takes a per-item function.","rowType":"PtValue | ((ctx: PtItemCtx<Item, BbSelectPopoverPtState
|
|
98
|
-
{"name":"itemDescription","description":"An option's second line (its description) — resolved with that option's states. A custom `#option` slot replaces it. Also takes a per-item function.","rowType":"PtValue | ((ctx: PtItemCtx<Item, BbSelectPopoverPtState
|
|
95
|
+
{"name":"option","description":"One listbox option — a broadcast resolved per option. Also takes a per-item function, called with the option's raw item.","rowType":"PtValue | ((ctx: PtItemCtx<Item, BbSelectPopoverPtState, never, BbSelectSlotRow<Item, Known>>) => PtItemResult) | undefined"},
|
|
96
|
+
{"name":"itemText","description":"An option's label — resolved with that option's states. A custom `#option` slot replaces it. Also takes a per-item function.","rowType":"PtValue | ((ctx: PtItemCtx<Item, BbSelectPopoverPtState, never, BbSelectSlotRow<Item, Known>>) => PtItemResult) | undefined"},
|
|
97
|
+
{"name":"itemIcon","description":"An option's prepend / append icons (`itemProps`) — resolved with that option's states. Also takes a per-item function.","rowType":"PtValue | ((ctx: PtItemCtx<Item, BbSelectPopoverPtState, never, BbSelectSlotRow<Item, Known>>) => PtItemResult) | undefined"},
|
|
98
|
+
{"name":"itemDescription","description":"An option's second line (its description) — resolved with that option's states. A custom `#option` slot replaces it. Also takes a per-item function.","rowType":"PtValue | ((ctx: PtItemCtx<Item, BbSelectPopoverPtState, never, BbSelectSlotRow<Item, Known>>) => PtItemResult) | undefined"},
|
|
99
99
|
{"name":"header","description":"The flyout's header band."},
|
|
100
100
|
{"name":"footer","description":"The flyout's footer band."}
|
|
101
101
|
],
|
|
@@ -108,8 +108,8 @@
|
|
|
108
108
|
"types": [
|
|
109
109
|
{"name":"BbOffCanvasProps","usedAs":["prop offCanvasProps"]},
|
|
110
110
|
{"name":"BbSelectItemProps","usedAs":["prop itemProps"],"definition":"type BbSelectItemProps<T = any> = ItemProps<T, SelectItemFields>;","fields":["description?: ItemAccessor<T, string | null | undefined>","prepend:icon?: ItemAccessor<T, string | null | undefined>","append:icon?: ItemAccessor<T, string | null | undefined>"]},
|
|
111
|
-
{"name":"BbSelectKnownItem","usedAs":["prop knownItems"],"definition":"type BbSelectKnownItem = { value: unknown; label: string; };"},
|
|
112
111
|
{"name":"BbSelectPopoverItemsContext","usedAs":["prop items"],"definition":"type BbSelectPopoverItemsContext<M = any> = BbSelectItemsContext<M>;"},
|
|
112
|
+
{"name":"BbSelectSlotRow","usedAs":["prop pt","prop pt:itemDescription","prop pt:itemIcon","prop pt:itemText","prop pt:option"],"definition":"type BbSelectSlotRow<Item, Known extends BbSelectKnownItems | undefined = BbSelectKnownItems> = [ Known ] extends [ undefined ] ? { known: false; item: Item; } : { known: true; item: BbSelectKnownItem; } | { known: false; item: Item; };"},
|
|
113
113
|
{"name":"Placement","usedAs":["prop placement"],"definition":"type Placement = 'top' | 'top-start' | 'top-end' | 'right' | 'right-start' | 'right-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end';","values":["top","bottom","left","right","top-start","top-end","right-start","right-end","bottom-start","bottom-end","left-start","left-end"]}
|
|
114
114
|
]
|
|
115
115
|
}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
{"to":"BbOffCanvas","mapping":"{ header: 'header', footer: 'footer', panel: 'root', sheet: 'root' }"}
|
|
14
14
|
],
|
|
15
15
|
"nodes": [
|
|
16
|
-
{"name":"BbBadge","kind":"public","vocabulary":"BbBadge","bindings":[{"part":"spinner","target":"BbSpinner"},{"part":"icon","target":"BbIcon"},{"part":"clear","target":"button.bb-badge__clear"}],"cssProps":[{"name":"--bg","documented":true,"readBy":["bb-badge"]},{"name":"--fg","documented":true,"readBy":["bb-badge","bb-badge__clear"]},{"name":"--bw","documented":true,"readBy":["bb-badge","bb-badge__clear"]},{"name":"--border-color","documented":false,"readBy":["bb-badge"]},{"name":"--ring-color","documented":true,"readBy":["bb-badge","bb-badge__clear","bb-badge__body","bb-badge--highlighted"]},{"name":"--ring-size","documented":true,"readBy":["bb-badge","bb-badge__clear","bb-badge__body","bb-badge--highlighted"]},{"name":"--min-size-md","documented":true,"readBy":["bb-badge"]},{"name":"--min-size","documented":true,"readBy":["bb-badge"]},{"name":"--elev","documented":true,"readBy":["bb-badge","bb-badge__clear","bb-badge__body","bb-badge--highlighted"]},{"name":"--r","documented":true,"readBy":["bb-badge","bb-badge__body","bb-badge__trailing","bb-badge__clear"]},{"name":"--fs","documented":true,"readBy":["bb-badge"]},{"name":"--icon-size","documented":true,"readBy":["bb-badge__icon","bb-badge__prepend-icon","bb-badge__append-icon","bb-badge__clear"]},{"name":"--gap","documented":true,"readBy":["bb-badge","bb-badge__body","bb-badge__trailing","bb-badge__clear"]},{"name":"--px","documented":true,"readBy":["bb-badge","bb-badge--icon","bb-badge__prepend-icon","bb-badge__append-icon","bb-badge--clearable"]},{"name":"--clear-size","documented":true,"readBy":["bb-badge__clear","bb-icon"]},{"name":"--bg-disabled","documented":true,"readBy":["bb-badge__body","bb-base-button--disabled","bb-badge--loading"]},{"name":"--fg-disabled","documented":true,"readBy":["bb-badge__body","bb-base-button--disabled","bb-badge--loading"]},{"name":"--border-disabled","documented":true,"readBy":["bb-badge__body","bb-base-button--disabled","bb-badge--loading"]},{"name":"--pad-left","documented":true,"readBy":["bb-badge__body"]},{"name":"--pad-right","documented":false,"readBy":["bb-badge__body","bb-badge__clear"]},{"name":"--size","documented":false}],"children":[{"name":"BbIcon","kind":"public","cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]},{"name":"BbSpinner","kind":"public","children":[{"name":"BbIcon","kind":"public","repeated":true,"cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]}]},{"name":"BadgeBodyContent","kind":"internal","children":[{"name":"BbIcon","kind":"public","repeated":true,"cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]},{"name":"BbSpinner","kind":"public","repeated":true}]}]},
|
|
16
|
+
{"name":"BbBadge","kind":"public","vocabulary":"BbBadge","bindings":[{"part":"spinner","target":"BbSpinner"},{"part":"icon","target":"span.bb-badge__append-icon"},{"part":"icon","target":"BbIcon"},{"part":"clear","target":"button.bb-badge__clear"}],"cssProps":[{"name":"--bg","documented":true,"readBy":["bb-badge"]},{"name":"--fg","documented":true,"readBy":["bb-badge","bb-badge__clear"]},{"name":"--bw","documented":true,"readBy":["bb-badge","bb-badge__clear"]},{"name":"--border-color","documented":false,"readBy":["bb-badge"]},{"name":"--ring-color","documented":true,"readBy":["bb-badge","bb-badge__clear","bb-badge__body","bb-badge--highlighted"]},{"name":"--ring-size","documented":true,"readBy":["bb-badge","bb-badge__clear","bb-badge__body","bb-badge--highlighted"]},{"name":"--min-size-md","documented":true,"readBy":["bb-badge"]},{"name":"--min-size","documented":true,"readBy":["bb-badge"]},{"name":"--elev","documented":true,"readBy":["bb-badge","bb-badge__clear","bb-badge__body","bb-badge--highlighted"]},{"name":"--r","documented":true,"readBy":["bb-badge","bb-badge__body","bb-badge__trailing","bb-badge__clear"]},{"name":"--fs","documented":true,"readBy":["bb-badge"]},{"name":"--icon-size","documented":true,"readBy":["bb-badge__icon","bb-badge__prepend-icon","bb-badge__append-icon","bb-badge__icon-slot","bb-icon","bb-badge__clear"]},{"name":"--gap","documented":true,"readBy":["bb-badge","bb-badge__body","bb-badge__trailing","bb-badge__clear"]},{"name":"--px","documented":true,"readBy":["bb-badge","bb-badge--icon","bb-badge__prepend-icon","bb-badge__append-icon","bb-badge--clearable"]},{"name":"--clear-size","documented":true,"readBy":["bb-badge__clear","bb-icon"]},{"name":"--bg-disabled","documented":true,"readBy":["bb-badge__body","bb-base-button--disabled","bb-badge--loading"]},{"name":"--fg-disabled","documented":true,"readBy":["bb-badge__body","bb-base-button--disabled","bb-badge--loading"]},{"name":"--border-disabled","documented":true,"readBy":["bb-badge__body","bb-base-button--disabled","bb-badge--loading"]},{"name":"--pad-left","documented":true,"readBy":["bb-badge__body"]},{"name":"--pad-right","documented":false,"readBy":["bb-badge__body","bb-badge__clear"]},{"name":"--size","documented":false}],"children":[{"name":"BbIcon","kind":"public","cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]},{"name":"BbSpinner","kind":"public","children":[{"name":"BbIcon","kind":"public","repeated":true,"cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]}]},{"name":"BadgeBodyContent","kind":"internal","children":[{"name":"BbIcon","kind":"public","repeated":true,"cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]},{"name":"BbSpinner","kind":"public","repeated":true}]}]},
|
|
17
17
|
{"name":"BbIcon","kind":"public","repeated":true,"cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]},
|
|
18
18
|
{"name":"BbOffCanvas","kind":"public","vocabulary":"BbOffCanvas","bindings":[{"part":"header","target":"div.bb-offcanvas__header"},{"part":"title","target":"span.bb-offcanvas__title"},{"part":"description","target":"p.bb-offcanvas__description"},{"part":"close","target":"CloseButton"},{"part":"content","target":"div.bb-offcanvas__content"},{"part":"footer","target":"div.bb-offcanvas__footer"}],"cssProps":[{"name":"--translate-x","documented":false,"readBy":["bb-offcanvas"]},{"name":"--translate-y","documented":false,"readBy":["bb-offcanvas"]},{"name":"--translate","documented":false,"readBy":["bb-offcanvas"]},{"name":"--stack-x","documented":true,"readBy":["bb-offcanvas"]},{"name":"--stack-y","documented":false,"readBy":["bb-offcanvas"]},{"name":"--snap-y","documented":true,"readBy":["bb-offcanvas","bb-offcanvas__footer","bb-offcanvas--snap","bb-offcanvas--bottom"]},{"name":"--snap-floor","documented":false,"readBy":["bb-offcanvas__footer"]},{"name":"--stack-fill","documented":true,"readBy":["bb-offcanvas","bb-offcanvas--right","bb-offcanvas--left","bb-offcanvas--top","bb-offcanvas--bottom"]},{"name":"--stack-transition-duration","documented":true,"readBy":["bb-offcanvas"]},{"name":"--px","documented":true,"readBy":["bb-offcanvas__header","bb-close-button","bb-offcanvas__content","bb-offcanvas__footer"]},{"name":"--py","documented":false,"readBy":["bb-offcanvas__footer","bb-offcanvas__content","bb-offcanvas__header","bb-close-button"]},{"name":"--handle-w","documented":true,"readBy":["bb-offcanvas__handle"]},{"name":"--handle-h","documented":true,"readBy":["bb-offcanvas__handle"]},{"name":"--handle-bg","documented":true,"readBy":["bb-offcanvas__handle"]},{"name":"--transition-timing-function","documented":false,"readBy":["bb-offcanvas","bb-offcanvas--open"]},{"name":"--bg","documented":false,"readBy":["bb-offcanvas","bb-offcanvas--snap","bb-offcanvas--bottom"]},{"name":"--fg","documented":false,"readBy":["bb-offcanvas"]},{"name":"--safe-top","documented":true,"readBy":["bb-offcanvas","bb-offcanvas--left","bb-offcanvas--right","bb-offcanvas--top","bb-offcanvas--fullscreen"]},{"name":"--safe-right","documented":false,"readBy":["bb-offcanvas","bb-offcanvas--right","bb-offcanvas--top","bb-offcanvas--bottom","bb-offcanvas--fullscreen"]},{"name":"--safe-bottom","documented":false,"readBy":["bb-offcanvas","bb-offcanvas--left","bb-offcanvas--right","bb-offcanvas--bottom","bb-offcanvas--fullscreen"]},{"name":"--safe-left","documented":false,"readBy":["bb-offcanvas","bb-offcanvas--left","bb-offcanvas--top","bb-offcanvas--bottom","bb-offcanvas--fullscreen"]},{"name":"--inset-top","documented":false,"readBy":["bb-offcanvas__content","bb-offcanvas__header"]},{"name":"--inset-right","documented":false,"readBy":["bb-offcanvas__header","bb-offcanvas__content","bb-offcanvas__footer"]},{"name":"--inset-bottom","documented":false,"readBy":["bb-offcanvas__footer","bb-offcanvas__content"]},{"name":"--inset-left","documented":false,"readBy":["bb-offcanvas__header","bb-offcanvas__content","bb-offcanvas__footer"]},{"name":"--close-size","documented":true,"readBy":["bb-close-button"]},{"name":"--gap","documented":false,"readBy":["bb-offcanvas__footer"]}],"children":[{"name":"CloseButton","kind":"internal","cssProps":[{"name":"--size","documented":true,"readBy":["bb-close-button"]},{"name":"--p","documented":true,"readBy":["bb-close-button"]}]}]},
|
|
19
19
|
{"name":"ClearableButton","kind":"internal","children":[{"name":"BbIcon","kind":"public","repeated":true,"cssProps":[{"name":"--w","documented":true,"readBy":["bb-icon"]},{"name":"--size","documented":false,"readBy":["bb-icon"]}]}]},
|
|
@@ -58,7 +58,8 @@
|
|
|
58
58
|
"__option-check",
|
|
59
59
|
"__option-content",
|
|
60
60
|
"__option-prepend-icon",
|
|
61
|
-
"__outer-container"
|
|
61
|
+
"__outer-container",
|
|
62
|
+
"__status"
|
|
62
63
|
],
|
|
63
64
|
"bb-select-known-items": [
|
|
64
65
|
""
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
{"name":"description","description":"The muted line under the legend (the `description` prop).","states":["disabled","errors","hasValue","loading","readonly","warnings"]},
|
|
91
91
|
{"name":"message","description":"The errors / warnings line. A node of its own: it can show at the same time as `hint`.","states":["disabled","errors","hasValue","loading","readonly","warnings"]},
|
|
92
92
|
{"name":"hint","common":true,"states":["disabled","errors","hasValue","loading","readonly","warnings"]},
|
|
93
|
-
{"name":"list","
|
|
93
|
+
{"name":"list","description":"The node that lays the rows out (flex + wrap, gaps on `--gap` / `--row-gap`): `pt:list=\"grid grid-cols-3\"` re-lays them, `pt:list=\"[--gap:8px]\"` tightens them. Takes the group-wide states only.","states":["disabled","errors","hasValue","loading","readonly","warnings"]},
|
|
94
94
|
{"name":"item","description":"One option row — a broadcast, resolved per option with its own `checked` / `disabled` / focus. Takes a per-item function.","rowType":"PtValue | ((ctx: PtItemCtx<T, GroupPtState>) => PtItemResult) | undefined"},
|
|
95
95
|
{"name":"icon","description":"One row's drawn glyph — the default one: a consumer `icon` slot replaces it. Takes a per-item function.","rowType":"PtValue | ((ctx: PtItemCtx<T, GroupPtState>) => PtItemResult) | undefined"},
|
|
96
96
|
{"name":"label","description":"One option's label text (the `label` slot's default). Takes a per-item function.","rowType":"PtValue | ((ctx: PtItemCtx<T, GroupPtState>) => PtItemResult) | undefined"},
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
],
|
|
7
7
|
"nodes": [
|
|
8
8
|
{"name":"CommonField","kind":"internal","vocabulary":"BbSwitchGroup","bindings":[{"part":"root","target":"div.bb-field"},{"part":"label","target":"component"},{"part":"description","target":"span.bb-field__description"},{"part":"hint","target":"span.bb-field__hint"},{"part":"counter","target":"span.bb-field__counter"},{"part":"message","target":"div.bb-field__message"}],"cssProps":[{"name":"--ctrl-line","documented":true,"readBy":["bb-field__label","bb-field__input-wrapper"]}],"children":[{"name":"BbAsterisk","kind":"public"}]},
|
|
9
|
-
{"name":"OptionsContainer","kind":"internal","vocabulary":"BbSwitchGroup","bindings":[{"part":"list","target":"span"},{"part":"item","target":"label"},{"part":"label","target":"span"},{"part":"itemDescription","target":"span"}]},
|
|
9
|
+
{"name":"OptionsContainer","kind":"internal","vocabulary":"BbSwitchGroup","bindings":[{"part":"list","target":"span"},{"part":"item","target":"label"},{"part":"label","target":"span"},{"part":"itemDescription","target":"span"}],"cssProps":[{"name":"--list-bg","documented":true},{"name":"--list-border","documented":true},{"name":"--p","documented":true,"readBy":["bb-radio-group__list--strip","bb-checkbox-group__list--strip","bb-checkbox-group__item"]},{"name":"--list-r","documented":true,"readBy":["bb-radio-group__list--strip","bb-checkbox-group__list--strip"]},{"name":"--list-h","documented":true,"readBy":["bb-radio-group__list--strip","bb-checkbox-group__list--strip"]},{"name":"--fs","documented":true,"readBy":["bb-checkbox-group__item"]},{"name":"--trigger-gap","documented":true},{"name":"--trigger-px","documented":true,"readBy":["bb-checkbox-group__item"]},{"name":"--trigger-r","documented":true,"readBy":["bb-radio-group__list--strip","bb-checkbox-group__list--strip","bb-checkbox-group__item"]},{"name":"--trigger-min-h","documented":true,"readBy":["bb-checkbox-group__item"]},{"name":"--list-fg","documented":true,"readBy":["bb-checkbox-group__item"]},{"name":"--hover-fg","documented":true},{"name":"--active-fg","documented":true,"readBy":["bb-checkbox-group__item--selected"]},{"name":"--active-fw","documented":true,"readBy":["bb-checkbox-group__item--selected"]},{"name":"--indicator-bg","documented":true,"readBy":["bb-checkbox-group__indicator","bb-checkbox-group__item--selected"]},{"name":"--indicator-border","documented":true,"readBy":["bb-checkbox-group__indicator"]},{"name":"--indicator-r","documented":true,"readBy":["bb-checkbox-group__indicator"]},{"name":"--indicator-h","documented":true,"readBy":["bb-checkbox-group__indicator","bb-checkbox-group__item--selected"]},{"name":"--indicator-inset","documented":true,"readBy":["bb-checkbox-group__indicator"]},{"name":"--elev","documented":true,"readBy":["bb-checkbox-group__indicator","bb-checkbox-group__item--selected"]},{"name":"--indicator-shadow","documented":true,"readBy":["bb-checkbox-group__indicator","bb-checkbox-group__item--selected"]},{"name":"--list-bg","documented":false},{"name":"--list-border","documented":false},{"name":"--p","documented":false,"readBy":["bb-radio-group__list--strip","bb-checkbox-group__list--strip","bb-checkbox-group__item"]},{"name":"--list-r","documented":false,"readBy":["bb-radio-group__list--strip","bb-checkbox-group__list--strip"]},{"name":"--trigger-r","documented":false,"readBy":["bb-radio-group__list--strip","bb-checkbox-group__list--strip","bb-checkbox-group__item"]},{"name":"--active-fw","documented":false,"readBy":["bb-checkbox-group__item--selected"]},{"name":"--indicator-bg","documented":false,"readBy":["bb-checkbox-group__indicator","bb-checkbox-group__item--selected"]},{"name":"--indicator-border","documented":false,"readBy":["bb-checkbox-group__indicator"]},{"name":"--indicator-r","documented":false,"readBy":["bb-checkbox-group__indicator"]},{"name":"--indicator-h","documented":false,"readBy":["bb-checkbox-group__indicator","bb-checkbox-group__item--selected"]},{"name":"--indicator-shadow","documented":false,"readBy":["bb-checkbox-group__indicator","bb-checkbox-group__item--selected"]},{"name":"--elev","documented":false,"readBy":["bb-checkbox-group__indicator","bb-checkbox-group__item--selected"]}]},
|
|
10
10
|
{"name":"BbBaseSwitchIcon","kind":"public","cssProps":[{"name":"--accent","documented":true,"readBy":["bb-base-switch-icon","bb-base-switch-icon--errors","bb-base-switch-icon--checked","bb-base-switch-icon--indeterminate","bb-base-switch-icon--warnings","bb-base-switch-icon--disabled"]},{"name":"--bg","documented":true,"readBy":["bb-base-switch-icon"]},{"name":"--ring-color","documented":true,"readBy":["bb-base-switch-icon--focus-visible"]},{"name":"--r","documented":true,"readBy":["bb-base-switch-icon","bb-base-switch-icon__thumb"]},{"name":"--bw","documented":true,"readBy":["bb-base-switch-icon","bb-base-switch-icon__thumb"]},{"name":"--h","documented":true,"readBy":["bb-base-switch-icon"]},{"name":"--w","documented":true,"readBy":["bb-base-switch-icon"]},{"name":"--thumb","documented":true,"readBy":["bb-base-switch-icon","bb-base-switch-icon__thumb"]},{"name":"--inset","documented":true,"readBy":["bb-base-switch-icon","bb-base-switch-icon__thumb"]},{"name":"--travel","documented":true,"readBy":["bb-base-switch-icon__thumb"]}]}
|
|
11
11
|
]
|
|
12
12
|
},
|
|
@@ -38,6 +38,8 @@
|
|
|
38
38
|
"__list",
|
|
39
39
|
"__list--*",
|
|
40
40
|
"__list--errors",
|
|
41
|
+
"__list--no-transition",
|
|
42
|
+
"__list--strip",
|
|
41
43
|
"__list--tiles",
|
|
42
44
|
"__list--warnings",
|
|
43
45
|
"__loading"
|
|
@@ -20,6 +20,9 @@
|
|
|
20
20
|
},
|
|
21
21
|
"css": {
|
|
22
22
|
"classes": {
|
|
23
|
+
"bb-ruler-line": [
|
|
24
|
+
""
|
|
25
|
+
],
|
|
23
26
|
"bb-sr-only": [
|
|
24
27
|
""
|
|
25
28
|
],
|
|
@@ -54,10 +57,16 @@
|
|
|
54
57
|
"__cell--edge-end",
|
|
55
58
|
"__cell--edge-start",
|
|
56
59
|
"__cell--fluid",
|
|
60
|
+
"__cell--line",
|
|
57
61
|
"__cell--nowrap",
|
|
62
|
+
"__cell--outlier",
|
|
63
|
+
"__cell--placeholder",
|
|
58
64
|
"__cell--resized",
|
|
59
65
|
"__cell--row-drag",
|
|
60
66
|
"__cell--select",
|
|
67
|
+
"__cell--token",
|
|
68
|
+
"__cell--value",
|
|
69
|
+
"__cell--word",
|
|
61
70
|
"__cell-column-header",
|
|
62
71
|
"__cell-column-header--*",
|
|
63
72
|
"__cell-column-header--actions",
|
|
@@ -98,7 +107,8 @@
|
|
|
98
107
|
"__row-reorder-status",
|
|
99
108
|
"__select-icon",
|
|
100
109
|
"__sort-icon",
|
|
101
|
-
"__table"
|
|
110
|
+
"__table",
|
|
111
|
+
"__table--hold-*"
|
|
102
112
|
],
|
|
103
113
|
"bb-table-check": [
|
|
104
114
|
"",
|
|
@@ -149,6 +159,9 @@
|
|
|
149
159
|
"bb-table-row-ghost": [
|
|
150
160
|
""
|
|
151
161
|
],
|
|
162
|
+
"bb-table-ruler": [
|
|
163
|
+
""
|
|
164
|
+
],
|
|
152
165
|
"bb-table-skeleton": [
|
|
153
166
|
"__avatar",
|
|
154
167
|
"__avatar-text",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
{"name":"onSuccess","type":"(() => void)","description":"Inertia lifecycle hook — fired when the visit completes successfully."},
|
|
31
31
|
{"name":"preserveScroll","type":"boolean | ((props: Record<string, unknown>) => boolean)","description":"Controls whether Inertia preserves the scroll position after navigation. Only meaningful in an Inertia context."},
|
|
32
32
|
{"name":"preserveState","type":"boolean | ((props: Record<string, unknown>) => boolean) | null","description":"Controls whether Inertia preserves the current component state after navigation. Only meaningful in an Inertia context."},
|
|
33
|
-
{"name":"pt","type":"
|
|
33
|
+
{"name":"pt","type":"({ root?: PtValue | undefined; panel?: PtValue | undefined; \"root:disabled\"?: PtValue | undefined; \"root:active\"?: PtValue | undefined; \"item:disabled\"?: PtValue | undefined; \"item:active\"?: PtValue | undefined; list?: PtValue | undefined; indicator?: PtValue | undefined; \"list:disabled\"?: PtValue | undefined; \"indicator:disabled\"?: PtValue | undefined; \"item:pill\"?: PtValue | undefined; \"item:line\"?: PtValue | undefined; \"panel:disabled\"?: PtValue | undefined; \"panel:active\"?: PtValue | undefined; wrapper?: PtValue | undefined; panels?: PtValue | undefined; \"list:active\"?: PtValue | undefined; \"indicator:active\"?: PtValue | undefined; \"wrapper:disabled\"?: PtValue | undefined; \"wrapper:active\"?: PtValue | undefined; \"panels:disabled\"?: PtValue | undefined; \"panels:active\"?: PtValue | undefined; \"item:none\"?: PtValue | undefined; } & { item?: PtValue | PtItemFn<BbTabsItem<K>, BbTabsPtState, \"none\" | \"pill\" | \"line\", { readonly item: BbTabsItem<K>; }> | undefined; } & { \"indicator:pill\"?: PtValue | undefined; \"indicator:line\"?: PtValue | undefined; \"item:pill\"?: PtValue | undefined; \"item:line\"?: PtValue | undefined; \"list:pill\"?: PtValue | undefined; \"list:line\"?: PtValue | undefined; \"item:none\"?: PtValue | undefined; \"list:none\"?: PtValue | undefined; \"indicator:none\"?: PtValue | undefined; \"wrapper:none\"?: PtValue | undefined; \"wrapper:pill\"?: PtValue | undefined; \"wrapper:line\"?: PtValue | undefined; })","description":"Passthrough, object form: the same keys as the `pt:*` attributes without the prefix. See the `pt:<part>` row."},
|
|
34
34
|
{"name":"queryKey","type":"string","default":"\"tab\"","description":"Defines the query key used for URL-based navigation."},
|
|
35
35
|
{"name":"replace","type":"boolean","default":"false","description":"Replaces the history entry instead of pushing one when the tab changes. Recommended with `navigation`: the query keeps the tab while Back leaves the page. Leave it off when a tab is a destination of its own (a `server` visit)."},
|
|
36
36
|
{"name":"server","type":"boolean","default":"false","description":"When true and in an Inertia context, triggers a real server-side Inertia visit instead of a client-only `history.pushState`."},
|
|
@@ -52,17 +52,20 @@
|
|
|
52
52
|
],
|
|
53
53
|
"pt": {
|
|
54
54
|
"parts": [
|
|
55
|
-
{"name":"root","description":"The tabs' outer element, around the strip and the panels."},
|
|
55
|
+
{"name":"root","description":"The tabs' outer element, around the strip and the panels.","states":["active","disabled"]},
|
|
56
56
|
{"name":"wrapper","description":"The strip's outer element: the `wrapper:prepend` slot, the triggers, the `wrapper:append` slot. `BbTabsList`'s root in a split layout."},
|
|
57
57
|
{"name":"list","description":"The `role=\"tablist\"` row the triggers sit in — it scrolls when they overflow, and the indicator slides inside it."},
|
|
58
|
-
{"name":"item","description":"One tab trigger — a broadcast resolved per tab with its own `active` / `disabled`. Also takes a per-item function, called with the tab's descriptor.","rowType":"PtValue | ((ctx: PtItemCtx<BbTabsItem<K>, BbTabsPtState>) => PtItemResult) | undefined"},
|
|
58
|
+
{"name":"item","description":"One tab trigger — a broadcast resolved per tab with its own `active` / `disabled`. Also takes a per-item function, called with the tab's descriptor.","rowType":"PtValue | ((ctx: PtItemCtx<BbTabsItem<K>, BbTabsPtState, \"none\" | \"pill\" | \"line\">) => PtItemResult) | undefined"},
|
|
59
59
|
{"name":"indicator","description":"The marker sliding under the active trigger: the pill, or the bar of the `line` variant. Its position and size are measured."},
|
|
60
|
-
{"name":"panels","description":"The element around the panels. `BbTabsPanels`'s root in a split layout."},
|
|
61
|
-
{"name":"panel","description":"One tab panel — a broadcast; `panel:active` is the panel on show. Takes no function."}
|
|
60
|
+
{"name":"panels","description":"The element around the panels. `BbTabsPanels`'s root in a split layout.","states":["active","disabled"]},
|
|
61
|
+
{"name":"panel","description":"One tab panel — a broadcast; `panel:active` is the panel on show. Takes no function.","states":["active","disabled"]}
|
|
62
62
|
],
|
|
63
63
|
"states": [
|
|
64
64
|
{"name":"disabled","description":"On every part while the whole tabs is `disabled`; per node on `item`: a tab that is disabled."},
|
|
65
|
-
{"name":"active","description":"Per node, on `item` and `panel`: the selected tab's trigger and its shown panel."}
|
|
65
|
+
{"name":"active","description":"Per node, on `item` and `panel`: the selected tab's trigger and its shown panel."},
|
|
66
|
+
{"name":"line","description":"On the strip's parts: `variant: 'line'`. Below the real states, like every variant."},
|
|
67
|
+
{"name":"none","description":"On the strip's parts: `variant: 'none'`. Below the real states, like every variant."},
|
|
68
|
+
{"name":"pill","description":"On the strip's parts: `variant: 'pill'`. Merged after the part's base entry and before its states, so the real states still win."}
|
|
66
69
|
]
|
|
67
70
|
},
|
|
68
71
|
"attrTargets": [
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "BbTabs",
|
|
3
3
|
"tree": {
|
|
4
4
|
"forwards": [
|
|
5
|
-
{"to":"BbTabsList","mapping":"passthrough.forwardInstance(LIST_PARTS)"},
|
|
5
|
+
{"to":"BbTabsList","mapping":"passthrough.forwardInstance(LIST_PARTS, LIST_STATES)"},
|
|
6
6
|
{"to":"BbTabsPanels","mapping":"passthrough.forwardInstance(PANELS_PARTS)"}
|
|
7
7
|
],
|
|
8
8
|
"nodes": [
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"contract": "ai/BbTabsList.md",
|
|
8
8
|
"source": "ai/source/BbTabsList.md",
|
|
9
9
|
"props": [
|
|
10
|
-
{"name":"pt","type":"
|
|
10
|
+
{"name":"pt","type":"({ root?: PtValue | undefined; \"root:disabled\"?: PtValue | undefined; \"root:active\"?: PtValue | undefined; \"item:disabled\"?: PtValue | undefined; \"item:active\"?: PtValue | undefined; list?: PtValue | undefined; indicator?: PtValue | undefined; \"list:disabled\"?: PtValue | undefined; \"indicator:disabled\"?: PtValue | undefined; \"item:pill\"?: PtValue | undefined; \"item:line\"?: PtValue | undefined; \"list:active\"?: PtValue | undefined; \"indicator:active\"?: PtValue | undefined; \"item:none\"?: PtValue | undefined; } & { item?: PtValue | PtItemFn<BbTabsItem<string>, BbTabsPtState, \"none\" | \"pill\" | \"line\", { readonly item: BbTabsItem<string>; }> | undefined; } & { \"indicator:pill\"?: PtValue | undefined; \"indicator:line\"?: PtValue | undefined; \"root:pill\"?: PtValue | undefined; \"root:line\"?: PtValue | undefined; \"item:pill\"?: PtValue | undefined; \"item:line\"?: PtValue | undefined; \"list:pill\"?: PtValue | undefined; \"list:line\"?: PtValue | undefined; \"item:none\"?: PtValue | undefined; \"list:none\"?: PtValue | undefined; \"indicator:none\"?: PtValue | undefined; \"root:none\"?: PtValue | undefined; })","description":"Passthrough, object form: the same keys as the `pt:*` attributes without the prefix. See the `pt:<part>` row."},
|
|
11
11
|
{"name":"variant","type":"keyof TabsVariantRegistry","values":["none","pill","line"],"description":"Look of this strip — the `variant` of the owning `BbTabs` / `BbTabsRoot` unless set here. See `BbTabsProps.variant` for the values."}
|
|
12
12
|
],
|
|
13
13
|
"events": [],
|
|
@@ -23,12 +23,15 @@
|
|
|
23
23
|
"parts": [
|
|
24
24
|
{"name":"root","description":"The strip's outer element: the `wrapper:prepend` slot, the triggers, the `wrapper:append` slot (`BbTabs`'s `wrapper`)."},
|
|
25
25
|
{"name":"list","description":"The `role=\"tablist\"` row the triggers sit in."},
|
|
26
|
-
{"name":"item","description":"One tab trigger, per tab with its own `active` / `disabled`. Also takes a per-item function, called with the tab's descriptor.","rowType":"PtValue | ((ctx: PtItemCtx<BbTabsItem<string>, BbTabsPtState>) => PtItemResult) | undefined"},
|
|
26
|
+
{"name":"item","description":"One tab trigger, per tab with its own `active` / `disabled`. Also takes a per-item function, called with the tab's descriptor.","rowType":"PtValue | ((ctx: PtItemCtx<BbTabsItem<string>, BbTabsPtState, \"none\" | \"pill\" | \"line\">) => PtItemResult) | undefined"},
|
|
27
27
|
{"name":"indicator","description":"The marker sliding under the active trigger."}
|
|
28
28
|
],
|
|
29
29
|
"states": [
|
|
30
30
|
{"name":"disabled","description":"On every part while the whole tabs is `disabled`; per node on `item`: a tab that is disabled."},
|
|
31
|
-
{"name":"active","description":"Per node, on `item` and `panel`: the selected tab's trigger and its shown panel."}
|
|
31
|
+
{"name":"active","description":"Per node, on `item` and `panel`: the selected tab's trigger and its shown panel."},
|
|
32
|
+
{"name":"line","description":"On the strip's parts: `variant: 'line'`. Below the real states, like every variant."},
|
|
33
|
+
{"name":"none","description":"On the strip's parts: `variant: 'none'`. Below the real states, like every variant."},
|
|
34
|
+
{"name":"pill","description":"On the strip's parts: `variant: 'pill'`. Merged after the part's base entry and before its states, so the real states still win."}
|
|
32
35
|
]
|
|
33
36
|
},
|
|
34
37
|
"attrTargets": [
|