bitboss-ui 3.0.0-beta.63 → 3.0.0-beta.64
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 +416 -6
- package/dist/ai/components.json +50 -48
- 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 +79 -49
- 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 +163 -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 +147 -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 +15 -9
- package/dist/ai/helpers/inertia/useConfirmOnRouteLeave.ts +4 -4
- package/dist/ai/helpers/inertia/usePaginatedResponseContext.ts +39 -24
- package/dist/ai/helpers/inertia/useRouteQuery.ts +10 -4
- 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/layout-scaffold.md +19 -6
- package/dist/ai/recipes/inertia/records-workspace.md +49 -13
- 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 +128 -33
- 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 +543 -532
- 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/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 +2300 -543
- 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 +3 -3
- 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/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
|
@@ -21,11 +21,21 @@
|
|
|
21
21
|
:pt="
|
|
22
22
|
passthrough.forward(
|
|
23
23
|
{ main: 'root', icon: 'icon', spinner: 'spinner', text: 'text' },
|
|
24
|
-
|
|
24
|
+
BUTTON_STATES
|
|
25
25
|
)
|
|
26
26
|
"
|
|
27
27
|
>
|
|
28
28
|
<template v-if="slots.default" #default><slot /></template>
|
|
29
|
+
<!-- The main button's icon slots (Q81.4), with its states. -->
|
|
30
|
+
<template v-if="slots.icon" #icon="scope"
|
|
31
|
+
><slot name="icon" v-bind="scope"
|
|
32
|
+
/></template>
|
|
33
|
+
<template v-if="slots['prepend:icon']" #prepend:icon="scope"
|
|
34
|
+
><slot name="prepend:icon" v-bind="scope"
|
|
35
|
+
/></template>
|
|
36
|
+
<template v-if="slots['append:icon']" #append:icon="scope"
|
|
37
|
+
><slot name="append:icon" v-bind="scope"
|
|
38
|
+
/></template>
|
|
29
39
|
</BbButton>
|
|
30
40
|
|
|
31
41
|
<BbDropdown
|
|
@@ -33,6 +43,7 @@
|
|
|
33
43
|
:id="id"
|
|
34
44
|
:adaptive="adaptive"
|
|
35
45
|
:anchor="root"
|
|
46
|
+
:close-on-select="closeOnSelect"
|
|
36
47
|
:compact="compact"
|
|
37
48
|
:disabled="disabled"
|
|
38
49
|
:eager="eager"
|
|
@@ -85,9 +96,12 @@
|
|
|
85
96
|
<script setup lang="ts">
|
|
86
97
|
import { computed, ref, useAttrs, useTemplateRef } from 'vue';
|
|
87
98
|
import BbButton from '../BbButton/BbButton.vue';
|
|
99
|
+
import { useLinkState } from '../BbBaseButton/useLinkState';
|
|
88
100
|
import BbDropdown from '../BbDropdown/BbDropdown.vue';
|
|
89
101
|
import { BB_BUTTON_PT } from '../BbButton/types';
|
|
90
102
|
import { BB_DROPDOWN_PT } from '../BbDropdown/types';
|
|
103
|
+
import { BUTTON_VARIANTS } from '@/types/ButtonVariant';
|
|
104
|
+
import { DROPDOWN_ITEM_VARIANTS } from '@/types/DropdownItemVariant';
|
|
91
105
|
import { useLocale } from '@/composables/useLocale';
|
|
92
106
|
import { removedPropsFor } from '@/deprecation/removedProps';
|
|
93
107
|
import { warnRemovedAttrs } from '@/utilities/functions/warnRemovedAttrs';
|
|
@@ -98,18 +112,28 @@ import {
|
|
|
98
112
|
type BbDropdownButtonProps,
|
|
99
113
|
type BbDropdownButtonSlots,
|
|
100
114
|
} from './types';
|
|
101
|
-
import {
|
|
115
|
+
import {
|
|
116
|
+
registeredVariantNames,
|
|
117
|
+
usePassthrough,
|
|
118
|
+
variantPt,
|
|
119
|
+
} from '@/composables/usePassthrough';
|
|
102
120
|
export type {
|
|
103
121
|
BbDropdownButtonEvents,
|
|
104
122
|
BbDropdownButtonProps,
|
|
105
123
|
BbDropdownButtonSlots,
|
|
106
124
|
};
|
|
107
125
|
|
|
108
|
-
defineOptions({
|
|
126
|
+
defineOptions({
|
|
127
|
+
// An app's own variants as declared `pt:<part>:<name>` props (Q76.7).
|
|
128
|
+
mixins: [variantPt(BB_DROPDOWN_BUTTON_PT)],
|
|
129
|
+
inheritAttrs: false,
|
|
130
|
+
});
|
|
109
131
|
const props = withDefaults(defineProps<BbDropdownButtonProps>(), {
|
|
110
132
|
// Three-state, as on BbDropdown: `undefined` lets the menu fall back to the
|
|
111
133
|
// global `config.adaptive`; a Boolean default would pin it to `false`.
|
|
112
134
|
adaptive: undefined,
|
|
135
|
+
// Unset closes after a single-choice change: a Boolean default would pin it.
|
|
136
|
+
closeOnSelect: undefined,
|
|
113
137
|
size: 'md',
|
|
114
138
|
variant: 'primary',
|
|
115
139
|
});
|
|
@@ -125,7 +149,14 @@ const slots = defineSlots<BbDropdownButtonSlots>();
|
|
|
125
149
|
*/
|
|
126
150
|
// A function, not a computed: the slots object is not reactive, and a
|
|
127
151
|
// conditional consumer slot must be re-read on every render.
|
|
128
|
-
const OWN_SLOTS = new Set([
|
|
152
|
+
const OWN_SLOTS = new Set([
|
|
153
|
+
'activator',
|
|
154
|
+
'default',
|
|
155
|
+
'dropdown',
|
|
156
|
+
'icon',
|
|
157
|
+
'prepend:icon',
|
|
158
|
+
'append:icon',
|
|
159
|
+
]);
|
|
129
160
|
const forwardedSlots = () =>
|
|
130
161
|
Object.keys(slots).filter((name) => !OWN_SLOTS.has(name));
|
|
131
162
|
|
|
@@ -146,6 +177,7 @@ const hasMenu = () => menuItems().length > 0 || !!slots.dropdown;
|
|
|
146
177
|
*/
|
|
147
178
|
const NOT_MAIN = new Set([
|
|
148
179
|
'adaptive',
|
|
180
|
+
'closeOnSelect',
|
|
149
181
|
'compact',
|
|
150
182
|
'eager',
|
|
151
183
|
'id',
|
|
@@ -183,6 +215,12 @@ const splitAttrs = () => {
|
|
|
183
215
|
return { main, root };
|
|
184
216
|
};
|
|
185
217
|
|
|
218
|
+
/**
|
|
219
|
+
* The main button's link state, for the parts resolved here (`root`, `toggle`,
|
|
220
|
+
* the menu surface); the main button resolves its own parts itself.
|
|
221
|
+
*/
|
|
222
|
+
const linkState = useLinkState(props);
|
|
223
|
+
|
|
186
224
|
/**
|
|
187
225
|
* Passthrough (plans/passthrough/BbDropdownButton.md). `icon` / `spinner` / `text` are forwarded to the main button as its own `pt`; `panel` / `input` / `item` and the rows' `itemText` / `itemIcon` / `itemDescription` to the dropdown under the same words.
|
|
188
226
|
*/
|
|
@@ -196,8 +234,29 @@ const passthrough = usePassthrough({
|
|
|
196
234
|
loading: () => !!props.loading,
|
|
197
235
|
disabled: () => !!props.disabled,
|
|
198
236
|
open: () => dropdownOpen.value,
|
|
237
|
+
activeLink: () => linkState.value.activeLink,
|
|
238
|
+
exactActiveLink: () => linkState.value.exactActiveLink,
|
|
199
239
|
},
|
|
240
|
+
variant: [
|
|
241
|
+
{ ...BB_DROPDOWN_BUTTON_PT.variant[0], current: () => props.variant },
|
|
242
|
+
BB_DROPDOWN_BUTTON_PT.variant[1],
|
|
243
|
+
],
|
|
200
244
|
});
|
|
245
|
+
/**
|
|
246
|
+
* Both buttons and the menu resolve the variants themselves (Q76.7), so every
|
|
247
|
+
* registered name passes on under its own word.
|
|
248
|
+
*/
|
|
249
|
+
const BUTTON_STATES = [
|
|
250
|
+
...BB_BUTTON_PT.states,
|
|
251
|
+
...registeredVariantNames(BUTTON_VARIANTS, 'buttonVariants'),
|
|
252
|
+
];
|
|
253
|
+
const ENTRY_STATES = [
|
|
254
|
+
...BB_DROPDOWN_PT.states,
|
|
255
|
+
...registeredVariantNames(DROPDOWN_ITEM_VARIANTS, 'dropdownItemVariants'),
|
|
256
|
+
];
|
|
257
|
+
|
|
258
|
+
/** Resolved here for every part but the main button's and the entries. */
|
|
259
|
+
const LINK_STATES: readonly string[] = ['activeLink', 'exactActiveLink'];
|
|
201
260
|
|
|
202
261
|
/**
|
|
203
262
|
* The menu's `pt`. The rows go with every dropdown state: the dropdown
|
|
@@ -213,16 +272,22 @@ const passthrough = usePassthrough({
|
|
|
213
272
|
* `pt:toggle:loading` means this control's `loading` — so it is resolved here.
|
|
214
273
|
*/
|
|
215
274
|
const toggleButtonPt = () =>
|
|
216
|
-
passthrough.forward({ toggle: 'root' }, [
|
|
275
|
+
passthrough.forward({ toggle: 'root' }, [
|
|
276
|
+
'disabled',
|
|
277
|
+
...registeredVariantNames(BUTTON_VARIANTS, 'buttonVariants'),
|
|
278
|
+
]);
|
|
217
279
|
|
|
218
280
|
const menuPt = () => ({
|
|
219
281
|
...passthrough.forward(
|
|
220
282
|
['panel', 'sheet', 'header', 'footer', 'input'],
|
|
221
|
-
|
|
283
|
+
// The link states too: the surface's are the main button's, from here.
|
|
284
|
+
BB_DROPDOWN_PT.states.filter(
|
|
285
|
+
(state) => state !== 'disabled' && !LINK_STATES.includes(state)
|
|
286
|
+
)
|
|
222
287
|
),
|
|
223
288
|
...passthrough.forward(
|
|
224
289
|
['item', 'itemText', 'itemIcon', 'itemDescription'],
|
|
225
|
-
|
|
290
|
+
ENTRY_STATES
|
|
226
291
|
),
|
|
227
292
|
});
|
|
228
293
|
|
|
@@ -269,9 +334,24 @@ import type {
|
|
|
269
334
|
PtItemFn,
|
|
270
335
|
PtItemResult,
|
|
271
336
|
PtValue,
|
|
337
|
+
PtVariantAttrs,
|
|
272
338
|
} from '@/types/passthrough';
|
|
273
|
-
import
|
|
274
|
-
|
|
339
|
+
import {
|
|
340
|
+
BUTTON_VARIANTS,
|
|
341
|
+
type ButtonVariantBuiltIn,
|
|
342
|
+
type ButtonVariantRegistry,
|
|
343
|
+
type ButtonVariantType,
|
|
344
|
+
} from '@/types/ButtonVariant';
|
|
345
|
+
import {
|
|
346
|
+
DROPDOWN_ITEM_VARIANTS,
|
|
347
|
+
type DropdownItemVariantBuiltIn,
|
|
348
|
+
type DropdownItemVariantRegistry,
|
|
349
|
+
} from '@/types/DropdownItemVariant';
|
|
350
|
+
import type {
|
|
351
|
+
BbButtonIconSlotProps,
|
|
352
|
+
BbButtonOwnProps,
|
|
353
|
+
BbButtonProps,
|
|
354
|
+
} from '../BbButton/types';
|
|
275
355
|
|
|
276
356
|
/**
|
|
277
357
|
* Passthrough parts of `BbDropdownButton` (plans/passthrough/BbDropdownButton.md):
|
|
@@ -284,7 +364,7 @@ import type { BbButtonOwnProps, BbButtonProps } from '../BbButton/types';
|
|
|
284
364
|
* resolve there (the flyout box on desktop, the sheet's menu on a phone). `loading` / `disabled` follow the props; `open` follows the
|
|
285
365
|
* menu; `selected` exists on the entry parts only.
|
|
286
366
|
*
|
|
287
|
-
* Per-item functions: on the instance, an entry part (`item`, `itemText`, `itemIcon`, `itemDescription`) also accepts `({ item, selected, … }) => PtValue | false | null | undefined` — `item` is the menu entry,
|
|
367
|
+
* Per-item functions: on the instance, an entry part (`item`, `itemText`, `itemIcon`, `itemDescription`) also accepts `({ item, selected, … }) => PtValue | false | null | undefined` — `item` is the menu entry, every state a boolean beside it, on for it (`selected`, `disabled`, …), and the entry's `variant` as a string (`default` when it has none) — in the `pt` object or the `:pt:<part>` attribute, never on a `<part>:<state>` key and never in the global map or a scope (they ship as JSON). The function is handed to the `BbDropdown` with the part and called there, per entry; its result is merged last, after every state entry, through the same deduper; a falsy result leaves the entry as it was. See the passthrough guide, _Per-item functions_.
|
|
288
368
|
*/
|
|
289
369
|
export type BbDropdownButtonPtPart =
|
|
290
370
|
| BbDropdownButtonOwnPtPart
|
|
@@ -337,15 +417,18 @@ export type BbDropdownButtonItemPtPart =
|
|
|
337
417
|
| 'itemDescription';
|
|
338
418
|
/**
|
|
339
419
|
* Passthrough states of `BbDropdownButton`: `loading` / `disabled` follow the
|
|
340
|
-
* props
|
|
341
|
-
*
|
|
342
|
-
*
|
|
420
|
+
* props, `open` the menu and `activeLink` / `exactActiveLink` the main
|
|
421
|
+
* button's link, on every part; `selected` (a selectable group's checked
|
|
422
|
+
* entry, resolved by the `BbDropdown`) is declared on the entry parts only —
|
|
423
|
+
* `pt:root:selected` is a type error, not a silent no-op.
|
|
343
424
|
*
|
|
344
425
|
* @state selected - Per node, on the entry parts only (`item`, `itemText`,
|
|
345
426
|
* `itemIcon`, `itemDescription`): a selectable group's checked entry.
|
|
346
427
|
* `pt:root:selected` is a type error, not a silent no-op.
|
|
347
428
|
*/
|
|
348
429
|
export type BbDropdownButtonPtState =
|
|
430
|
+
| 'activeLink'
|
|
431
|
+
| 'exactActiveLink'
|
|
349
432
|
| 'selected'
|
|
350
433
|
| 'loading'
|
|
351
434
|
| 'disabled'
|
|
@@ -358,8 +441,19 @@ export type BbDropdownButtonPtState =
|
|
|
358
441
|
* @state disabled - Component-wide while the control is `disabled`; also per
|
|
359
442
|
* node, on the entry parts: a menu entry that is disabled.
|
|
360
443
|
* @state open - Component-wide: the menu is open.
|
|
444
|
+
* @state activeLink - Component-wide while the main button is a link to the
|
|
445
|
+
* current page or one of its ancestors (its `activeClass` is on); also per
|
|
446
|
+
* node, on the entry parts: a menu entry whose link is. The weakest state.
|
|
447
|
+
* @state exactActiveLink - Component-wide while the main button is a link to
|
|
448
|
+
* the current page itself (its `exactActiveClass` is on); also per node, on
|
|
449
|
+
* the entry parts.
|
|
361
450
|
*/
|
|
362
|
-
export type BbDropdownButtonWidePtState =
|
|
451
|
+
export type BbDropdownButtonWidePtState =
|
|
452
|
+
| 'activeLink'
|
|
453
|
+
| 'exactActiveLink'
|
|
454
|
+
| 'loading'
|
|
455
|
+
| 'disabled'
|
|
456
|
+
| 'open';
|
|
363
457
|
/** The runtime lists the resolver is wired with — kept next to the types so the two cannot drift. */
|
|
364
458
|
export const BB_DROPDOWN_BUTTON_PT = {
|
|
365
459
|
parts: [
|
|
@@ -379,16 +473,57 @@ export const BB_DROPDOWN_BUTTON_PT = {
|
|
|
379
473
|
'itemIcon',
|
|
380
474
|
'itemDescription',
|
|
381
475
|
],
|
|
382
|
-
states: [
|
|
476
|
+
states: [
|
|
477
|
+
'activeLink',
|
|
478
|
+
'exactActiveLink',
|
|
479
|
+
'selected',
|
|
480
|
+
'disabled',
|
|
481
|
+
'open',
|
|
482
|
+
'loading',
|
|
483
|
+
],
|
|
383
484
|
/** `itemStates` are declared on `itemParts` only — the control's own parts never have them. */
|
|
384
485
|
itemParts: ['item', 'itemText', 'itemIcon', 'itemDescription'],
|
|
385
486
|
itemStates: ['selected'],
|
|
487
|
+
// Two variants as states (Q76.7), below the real ones: the button's on the
|
|
488
|
+
// control's parts, and each menu entry's on the entry parts.
|
|
489
|
+
variant: [
|
|
490
|
+
{
|
|
491
|
+
names: BUTTON_VARIANTS,
|
|
492
|
+
option: 'buttonVariants',
|
|
493
|
+
parts: ['root', 'main', 'toggle', 'icon', 'spinner', 'text'],
|
|
494
|
+
},
|
|
495
|
+
{
|
|
496
|
+
names: DROPDOWN_ITEM_VARIANTS,
|
|
497
|
+
option: 'dropdownItemVariants',
|
|
498
|
+
parts: ['item', 'itemText', 'itemIcon', 'itemDescription'],
|
|
499
|
+
},
|
|
500
|
+
],
|
|
386
501
|
} as const satisfies {
|
|
387
502
|
parts: readonly BbDropdownButtonPtPart[];
|
|
388
503
|
states: readonly BbDropdownButtonPtState[];
|
|
389
504
|
itemParts: readonly BbDropdownButtonItemPtPart[];
|
|
390
505
|
itemStates: readonly BbDropdownButtonPtState[];
|
|
506
|
+
variant: readonly [
|
|
507
|
+
{
|
|
508
|
+
names: readonly ButtonVariantBuiltIn[];
|
|
509
|
+
option: string;
|
|
510
|
+
parts: readonly BbDropdownButtonControlPtPart[];
|
|
511
|
+
},
|
|
512
|
+
{
|
|
513
|
+
names: readonly DropdownItemVariantBuiltIn[];
|
|
514
|
+
option: string;
|
|
515
|
+
parts: readonly BbDropdownButtonItemPtPart[];
|
|
516
|
+
},
|
|
517
|
+
];
|
|
391
518
|
};
|
|
519
|
+
/** The split control's own parts: the ones its button `variant` styles. Spelled flat (T20). */
|
|
520
|
+
export type BbDropdownButtonControlPtPart =
|
|
521
|
+
| 'root'
|
|
522
|
+
| 'main'
|
|
523
|
+
| 'toggle'
|
|
524
|
+
| 'icon'
|
|
525
|
+
| 'spinner'
|
|
526
|
+
| 'text';
|
|
392
527
|
|
|
393
528
|
/**
|
|
394
529
|
* The object form of the split control's `pt`: the same keys as its `pt:*`
|
|
@@ -400,13 +535,19 @@ export type BbDropdownButtonPtMap = {
|
|
|
400
535
|
[K in
|
|
401
536
|
| BbDropdownButtonOwnPtPart
|
|
402
537
|
| `${BbDropdownButtonPtPart}:${BbDropdownButtonWidePtState}`
|
|
403
|
-
| `${BbDropdownButtonItemPtPart}:selected`
|
|
538
|
+
| `${BbDropdownButtonItemPtPart}:selected`
|
|
539
|
+
| `${BbDropdownButtonControlPtPart}:${ButtonVariantBuiltIn | keyof ButtonVariantRegistry}`
|
|
540
|
+
| `${BbDropdownButtonItemPtPart}:${DropdownItemVariantBuiltIn | keyof DropdownItemVariantRegistry}`]?: PtValue;
|
|
404
541
|
} & {
|
|
405
542
|
// An entry part's base key also takes a per-item function, called with
|
|
406
543
|
// the menu entry by the `BbDropdown` it is handed to.
|
|
407
544
|
[K in BbDropdownButtonItemPtPart]?:
|
|
408
545
|
| PtValue
|
|
409
|
-
| PtItemFn<
|
|
546
|
+
| PtItemFn<
|
|
547
|
+
InternalItem,
|
|
548
|
+
BbDropdownButtonPtState,
|
|
549
|
+
DropdownItemVariantBuiltIn | keyof DropdownItemVariantRegistry
|
|
550
|
+
>;
|
|
410
551
|
};
|
|
411
552
|
/* eslint-enable @typescript-eslint/consistent-indexed-object-style */
|
|
412
553
|
|
|
@@ -418,22 +559,38 @@ export type BbDropdownButtonProps = {
|
|
|
418
559
|
[K in
|
|
419
560
|
| `pt:${BbDropdownButtonOwnPtPart}`
|
|
420
561
|
| `pt:${BbDropdownButtonPtPart}:${BbDropdownButtonWidePtState}`
|
|
421
|
-
| `pt:${BbDropdownButtonItemPtPart}:selected`
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
/*
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
562
|
+
| `pt:${BbDropdownButtonItemPtPart}:selected`
|
|
563
|
+
| `pt:${BbDropdownButtonControlPtPart}:${ButtonVariantBuiltIn}`
|
|
564
|
+
| `pt:${BbDropdownButtonItemPtPart}:${DropdownItemVariantBuiltIn}`]?: PtValue;
|
|
565
|
+
} & /* @vue-ignore */ PtVariantAttrs<
|
|
566
|
+
BbDropdownButtonControlPtPart,
|
|
567
|
+
keyof ButtonVariantRegistry
|
|
568
|
+
> &
|
|
569
|
+
/* @vue-ignore */ PtVariantAttrs<
|
|
570
|
+
BbDropdownButtonItemPtPart,
|
|
571
|
+
keyof DropdownItemVariantRegistry
|
|
572
|
+
> & {
|
|
573
|
+
// A literal function type, not `PtItemFn` (T23).
|
|
574
|
+
[K in `pt:${BbDropdownButtonItemPtPart}`]?:
|
|
575
|
+
| PtValue
|
|
576
|
+
| ((
|
|
577
|
+
ctx: PtItemCtx<
|
|
578
|
+
InternalItem,
|
|
579
|
+
BbDropdownButtonPtState,
|
|
580
|
+
DropdownItemVariantBuiltIn | keyof DropdownItemVariantRegistry
|
|
581
|
+
>
|
|
582
|
+
) => PtItemResult);
|
|
583
|
+
} & {
|
|
584
|
+
/* eslint-enable @typescript-eslint/consistent-indexed-object-style */
|
|
585
|
+
/**
|
|
586
|
+
* Passthrough, object form: the same keys as the `pt:*` attributes
|
|
587
|
+
* without the prefix. See the `pt:<part>` row.
|
|
588
|
+
*/
|
|
589
|
+
pt?: BbDropdownButtonPtMap;
|
|
590
|
+
} & Pick<
|
|
435
591
|
BbDropdownProps,
|
|
436
592
|
| 'adaptive'
|
|
593
|
+
| 'closeOnSelect'
|
|
437
594
|
| 'compact'
|
|
438
595
|
| 'eager'
|
|
439
596
|
| 'id'
|
|
@@ -573,6 +730,15 @@ export type BbDropdownButtonSlots = {
|
|
|
573
730
|
* The main button's label (falls back to `text`).
|
|
574
731
|
*/
|
|
575
732
|
default?: () => any;
|
|
733
|
+
/**
|
|
734
|
+
* The main button's icon, replacing the `icon` prop; inside its `icon` part
|
|
735
|
+
* (`pt:icon`, `--icon-size`, the loading spinner), with its states.
|
|
736
|
+
*/
|
|
737
|
+
icon?: (props: BbButtonIconSlotProps) => any;
|
|
738
|
+
/** The main button's leading icon, replacing `prepend:icon`. */
|
|
739
|
+
'prepend:icon'?: (props: BbButtonIconSlotProps) => any;
|
|
740
|
+
/** The main button's trailing icon, replacing `append:icon`. */
|
|
741
|
+
'append:icon'?: (props: BbButtonIconSlotProps) => any;
|
|
576
742
|
/**
|
|
577
743
|
* Menu companions, forwarded into the dropdown: a `<BbDropdownGroup>`
|
|
578
744
|
* binding a group of `items` by id. A `#dropdown` slot keeps the toggle even
|