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
|
@@ -35,7 +35,7 @@ import {
|
|
|
35
35
|
useAttrs,
|
|
36
36
|
watch,
|
|
37
37
|
} from 'vue';
|
|
38
|
-
import { usePassthrough } from '@/composables/usePassthrough';
|
|
38
|
+
import { usePassthrough, variantPt } from '@/composables/usePassthrough';
|
|
39
39
|
import { useConfig } from '@/composables/useConfig';
|
|
40
40
|
import {
|
|
41
41
|
toastState,
|
|
@@ -49,7 +49,11 @@ import type { BbToast, BbToastPosition } from './types';
|
|
|
49
49
|
import BbToastRegion from './BbToastRegion.vue';
|
|
50
50
|
import { BB_TOAST_PT, type BbToastProps } from './types';
|
|
51
51
|
|
|
52
|
-
defineOptions({
|
|
52
|
+
defineOptions({
|
|
53
|
+
// An app's own variants as declared `pt:<part>:<name>` props (Q76.7).
|
|
54
|
+
mixins: [variantPt(BB_TOAST_PT)],
|
|
55
|
+
inheritAttrs: false,
|
|
56
|
+
});
|
|
53
57
|
const props = defineProps<BbToastProps>();
|
|
54
58
|
|
|
55
59
|
/** Passthrough (plans/passthrough/BbToast.md) — handed down to every region and card. */
|
|
@@ -60,6 +64,8 @@ const passthrough = usePassthrough({
|
|
|
60
64
|
parts: BB_TOAST_PT.parts,
|
|
61
65
|
states: BB_TOAST_PT.states,
|
|
62
66
|
active: {},
|
|
67
|
+
// Per toast: each card passes its own variant to `part()`.
|
|
68
|
+
variant: BB_TOAST_PT.variant,
|
|
63
69
|
});
|
|
64
70
|
|
|
65
71
|
const config = useConfig();
|
|
@@ -151,9 +157,14 @@ const regions = computed(() => {
|
|
|
151
157
|
|
|
152
158
|
```ts
|
|
153
159
|
import type { Component } from 'vue';
|
|
154
|
-
import type { PtMap, PtValue } from '@/types/passthrough';
|
|
160
|
+
import type { PtMap, PtValue, PtVariantAttrs } from '@/types/passthrough';
|
|
155
161
|
import type { IconType } from '@/types/Icon';
|
|
156
|
-
import
|
|
162
|
+
import {
|
|
163
|
+
TOAST_VARIANTS,
|
|
164
|
+
type ToastVariantBuiltIn,
|
|
165
|
+
type ToastVariantRegistry,
|
|
166
|
+
type ToastVariantType,
|
|
167
|
+
} from '@/types/ToastVariant';
|
|
157
168
|
import type { ActionButtonConfig } from '@/types/ActionButton';
|
|
158
169
|
|
|
159
170
|
/**
|
|
@@ -324,11 +335,31 @@ export const BB_TOAST_PT = {
|
|
|
324
335
|
'close',
|
|
325
336
|
],
|
|
326
337
|
rowStates: ['loading'],
|
|
338
|
+
// Each toast's `variant` is a state on its card parts (Q76.7), below `loading`.
|
|
339
|
+
variant: {
|
|
340
|
+
names: TOAST_VARIANTS,
|
|
341
|
+
option: 'toastVariants',
|
|
342
|
+
parts: [
|
|
343
|
+
'panel',
|
|
344
|
+
'icon',
|
|
345
|
+
'content',
|
|
346
|
+
'title',
|
|
347
|
+
'text',
|
|
348
|
+
'footer',
|
|
349
|
+
'action',
|
|
350
|
+
'close',
|
|
351
|
+
],
|
|
352
|
+
},
|
|
327
353
|
} as const satisfies {
|
|
328
354
|
parts: readonly BbToastPtPart[];
|
|
329
355
|
states: readonly BbToastPtState[];
|
|
330
356
|
rowParts: readonly BbToastPtPart[];
|
|
331
357
|
rowStates: readonly BbToastPtState[];
|
|
358
|
+
variant: {
|
|
359
|
+
names: readonly ToastVariantBuiltIn[];
|
|
360
|
+
option: string;
|
|
361
|
+
parts: readonly BbToastCardPtPart[];
|
|
362
|
+
};
|
|
332
363
|
};
|
|
333
364
|
|
|
334
365
|
// Spelled INLINE with this component's own union (Vue's SFC type resolver
|
|
@@ -336,18 +367,26 @@ export const BB_TOAST_PT = {
|
|
|
336
367
|
// `loading` is a card state: declared on the card parts, never on `root`.
|
|
337
368
|
// eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style
|
|
338
369
|
export type BbToastProps = {
|
|
339
|
-
[K in
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
370
|
+
[K in
|
|
371
|
+
| `pt:${BbToastPtPart}`
|
|
372
|
+
| `pt:${BbToastCardPtPart}:loading`
|
|
373
|
+
| `pt:${BbToastCardPtPart}:${ToastVariantBuiltIn}`]?: PtValue;
|
|
374
|
+
} & /* @vue-ignore */ PtVariantAttrs<
|
|
375
|
+
BbToastCardPtPart,
|
|
376
|
+
keyof ToastVariantRegistry
|
|
377
|
+
> & {
|
|
378
|
+
/**
|
|
379
|
+
* Passthrough, object form: the same keys as the `pt:*` attributes
|
|
380
|
+
* without the prefix. See the `pt:<part>` row.
|
|
381
|
+
*/
|
|
382
|
+
// Mapped, never `Record` (the SFC resolver reads only the mapped spelling, T23).
|
|
383
|
+
// eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style
|
|
384
|
+
pt?: PtMap<BbToastPtPart, never> & {
|
|
385
|
+
[K in
|
|
386
|
+
| `${BbToastCardPtPart}:loading`
|
|
387
|
+
| `${BbToastCardPtPart}:${ToastVariantBuiltIn | keyof ToastVariantRegistry}`]?: PtValue;
|
|
388
|
+
};
|
|
349
389
|
};
|
|
350
|
-
};
|
|
351
390
|
```
|
|
352
391
|
|
|
353
392
|
## Styles
|
|
@@ -362,7 +401,7 @@ export type BbToastProps = {
|
|
|
362
401
|
* --front-index distance from the front of the pile (0 = newest/front)
|
|
363
402
|
* --height-before combined px height of the toasts in front (expanded layout)
|
|
364
403
|
* --front-height px height of the front toast (collapsed pile sizing)
|
|
365
|
-
* --toast-height px height of this toast's
|
|
404
|
+
* --toast-height px height of this toast's card (content + edge)
|
|
366
405
|
* --z z-index (front toast highest)
|
|
367
406
|
* --swipe-amount live px offset while the user drags to dismiss
|
|
368
407
|
*
|
|
@@ -448,8 +487,10 @@ export type BbToastProps = {
|
|
|
448
487
|
--r: min(var(--bb-radius), 10px);
|
|
449
488
|
--ring-size: 2px; /* focus ring on the close button */
|
|
450
489
|
--bg: var(--bb-panel); /* card fill, and the close button's own fill */
|
|
451
|
-
|
|
452
|
-
|
|
490
|
+
--border-color: var(--bb-border); /* card edge */
|
|
491
|
+
/* Edge width: a real `border`, counted in the measured height; the inner
|
|
492
|
+
padding and the × take it back, so the card keeps its size. */
|
|
493
|
+
--bw: var(--bb-border-w);
|
|
453
494
|
--fg: var(--bb-text); /* title, text and close glyph */
|
|
454
495
|
/* The status glyph only — the variants below re-point this and nothing else */
|
|
455
496
|
--icon-color: var(--bb-text);
|
|
@@ -462,15 +503,12 @@ export type BbToastProps = {
|
|
|
462
503
|
-webkit-backdrop-filter: var(--bb-surface-filter);
|
|
463
504
|
backdrop-filter: var(--bb-surface-filter);
|
|
464
505
|
background-color: var(--bg);
|
|
506
|
+
border: var(--bw) solid var(--border-color);
|
|
465
507
|
border-radius: min(var(--r), 14px);
|
|
466
|
-
/* --bb-shadow like every other floating surface (BbDialog, BbPopover, …)
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
box-shadow:
|
|
471
|
-
var(--bb-shadow),
|
|
472
|
-
inset 0 0 0 var(--bb-border-w) var(--border-color);
|
|
473
|
-
|
|
508
|
+
/* --bb-shadow like every other floating surface (BbDialog, BbPopover, …),
|
|
509
|
+
alone in the property, so `--bb-shadow: none` turns it off and keeps
|
|
510
|
+
the edge. */
|
|
511
|
+
box-shadow: var(--bb-shadow);
|
|
474
512
|
box-sizing: border-box;
|
|
475
513
|
color: var(--fg);
|
|
476
514
|
height: var(--toast-height);
|
|
@@ -559,7 +597,7 @@ export type BbToastProps = {
|
|
|
559
597
|
box-sizing: border-box;
|
|
560
598
|
display: flex;
|
|
561
599
|
gap: 12px;
|
|
562
|
-
padding: 14px 16px;
|
|
600
|
+
padding: calc(14px - var(--bw)) calc(16px - var(--bw));
|
|
563
601
|
transition: opacity 0.3s var(--bb-ease);
|
|
564
602
|
width: 100%;
|
|
565
603
|
}
|
|
@@ -633,12 +671,14 @@ export type BbToastProps = {
|
|
|
633
671
|
cursor: pointer;
|
|
634
672
|
display: flex;
|
|
635
673
|
height: 22px;
|
|
636
|
-
|
|
674
|
+
/* 8px from the card's outer corner: the containing block starts inside
|
|
675
|
+
the edge. */
|
|
676
|
+
inset-inline-end: calc(8px - var(--bw));
|
|
637
677
|
justify-content: center;
|
|
638
678
|
opacity: 0;
|
|
639
679
|
padding: 0;
|
|
640
680
|
position: absolute;
|
|
641
|
-
top: 8px;
|
|
681
|
+
top: calc(8px - var(--bw));
|
|
642
682
|
transition:
|
|
643
683
|
opacity 0.15s var(--bb-ease),
|
|
644
684
|
background-color 0.15s var(--bb-ease);
|
|
@@ -729,10 +769,11 @@ export type BbToastProps = {
|
|
|
729
769
|
&::after {
|
|
730
770
|
--hit: 44px;
|
|
731
771
|
content: '';
|
|
732
|
-
|
|
733
|
-
|
|
772
|
+
/* From inside the edge (the card clips there), bottom unchanged. */
|
|
773
|
+
height: calc(var(--hit) - 2px - var(--bw));
|
|
774
|
+
inset-inline-end: calc(var(--bw) - 8px);
|
|
734
775
|
position: absolute;
|
|
735
|
-
top: -8px;
|
|
776
|
+
top: calc(var(--bw) - 8px);
|
|
736
777
|
width: var(--hit);
|
|
737
778
|
}
|
|
738
779
|
}
|
|
@@ -56,9 +56,14 @@ watchEffect((onCleanup) => {
|
|
|
56
56
|
|
|
57
57
|
```ts
|
|
58
58
|
import type { Component } from 'vue';
|
|
59
|
-
import type { PtMap, PtValue } from '@/types/passthrough';
|
|
59
|
+
import type { PtMap, PtValue, PtVariantAttrs } from '@/types/passthrough';
|
|
60
60
|
import type { IconType } from '@/types/Icon';
|
|
61
|
-
import
|
|
61
|
+
import {
|
|
62
|
+
TOAST_VARIANTS,
|
|
63
|
+
type ToastVariantBuiltIn,
|
|
64
|
+
type ToastVariantRegistry,
|
|
65
|
+
type ToastVariantType,
|
|
66
|
+
} from '@/types/ToastVariant';
|
|
62
67
|
import type { ActionButtonConfig } from '@/types/ActionButton';
|
|
63
68
|
|
|
64
69
|
/**
|
|
@@ -229,11 +234,31 @@ export const BB_TOAST_PT = {
|
|
|
229
234
|
'close',
|
|
230
235
|
],
|
|
231
236
|
rowStates: ['loading'],
|
|
237
|
+
// Each toast's `variant` is a state on its card parts (Q76.7), below `loading`.
|
|
238
|
+
variant: {
|
|
239
|
+
names: TOAST_VARIANTS,
|
|
240
|
+
option: 'toastVariants',
|
|
241
|
+
parts: [
|
|
242
|
+
'panel',
|
|
243
|
+
'icon',
|
|
244
|
+
'content',
|
|
245
|
+
'title',
|
|
246
|
+
'text',
|
|
247
|
+
'footer',
|
|
248
|
+
'action',
|
|
249
|
+
'close',
|
|
250
|
+
],
|
|
251
|
+
},
|
|
232
252
|
} as const satisfies {
|
|
233
253
|
parts: readonly BbToastPtPart[];
|
|
234
254
|
states: readonly BbToastPtState[];
|
|
235
255
|
rowParts: readonly BbToastPtPart[];
|
|
236
256
|
rowStates: readonly BbToastPtState[];
|
|
257
|
+
variant: {
|
|
258
|
+
names: readonly ToastVariantBuiltIn[];
|
|
259
|
+
option: string;
|
|
260
|
+
parts: readonly BbToastCardPtPart[];
|
|
261
|
+
};
|
|
237
262
|
};
|
|
238
263
|
|
|
239
264
|
// Spelled INLINE with this component's own union (Vue's SFC type resolver
|
|
@@ -241,18 +266,26 @@ export const BB_TOAST_PT = {
|
|
|
241
266
|
// `loading` is a card state: declared on the card parts, never on `root`.
|
|
242
267
|
// eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style
|
|
243
268
|
export type BbToastProps = {
|
|
244
|
-
[K in
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
269
|
+
[K in
|
|
270
|
+
| `pt:${BbToastPtPart}`
|
|
271
|
+
| `pt:${BbToastCardPtPart}:loading`
|
|
272
|
+
| `pt:${BbToastCardPtPart}:${ToastVariantBuiltIn}`]?: PtValue;
|
|
273
|
+
} & /* @vue-ignore */ PtVariantAttrs<
|
|
274
|
+
BbToastCardPtPart,
|
|
275
|
+
keyof ToastVariantRegistry
|
|
276
|
+
> & {
|
|
277
|
+
/**
|
|
278
|
+
* Passthrough, object form: the same keys as the `pt:*` attributes
|
|
279
|
+
* without the prefix. See the `pt:<part>` row.
|
|
280
|
+
*/
|
|
281
|
+
// Mapped, never `Record` (the SFC resolver reads only the mapped spelling, T23).
|
|
282
|
+
// eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style
|
|
283
|
+
pt?: PtMap<BbToastPtPart, never> & {
|
|
284
|
+
[K in
|
|
285
|
+
| `${BbToastCardPtPart}:loading`
|
|
286
|
+
| `${BbToastCardPtPart}:${ToastVariantBuiltIn | keyof ToastVariantRegistry}`]?: PtValue;
|
|
287
|
+
};
|
|
254
288
|
};
|
|
255
|
-
};
|
|
256
289
|
```
|
|
257
290
|
|
|
258
291
|
## Styles
|
|
@@ -267,7 +300,7 @@ export type BbToastProps = {
|
|
|
267
300
|
* --front-index distance from the front of the pile (0 = newest/front)
|
|
268
301
|
* --height-before combined px height of the toasts in front (expanded layout)
|
|
269
302
|
* --front-height px height of the front toast (collapsed pile sizing)
|
|
270
|
-
* --toast-height px height of this toast's
|
|
303
|
+
* --toast-height px height of this toast's card (content + edge)
|
|
271
304
|
* --z z-index (front toast highest)
|
|
272
305
|
* --swipe-amount live px offset while the user drags to dismiss
|
|
273
306
|
*
|
|
@@ -353,8 +386,10 @@ export type BbToastProps = {
|
|
|
353
386
|
--r: min(var(--bb-radius), 10px);
|
|
354
387
|
--ring-size: 2px; /* focus ring on the close button */
|
|
355
388
|
--bg: var(--bb-panel); /* card fill, and the close button's own fill */
|
|
356
|
-
|
|
357
|
-
|
|
389
|
+
--border-color: var(--bb-border); /* card edge */
|
|
390
|
+
/* Edge width: a real `border`, counted in the measured height; the inner
|
|
391
|
+
padding and the × take it back, so the card keeps its size. */
|
|
392
|
+
--bw: var(--bb-border-w);
|
|
358
393
|
--fg: var(--bb-text); /* title, text and close glyph */
|
|
359
394
|
/* The status glyph only — the variants below re-point this and nothing else */
|
|
360
395
|
--icon-color: var(--bb-text);
|
|
@@ -367,15 +402,12 @@ export type BbToastProps = {
|
|
|
367
402
|
-webkit-backdrop-filter: var(--bb-surface-filter);
|
|
368
403
|
backdrop-filter: var(--bb-surface-filter);
|
|
369
404
|
background-color: var(--bg);
|
|
405
|
+
border: var(--bw) solid var(--border-color);
|
|
370
406
|
border-radius: min(var(--r), 14px);
|
|
371
|
-
/* --bb-shadow like every other floating surface (BbDialog, BbPopover, …)
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
box-shadow:
|
|
376
|
-
var(--bb-shadow),
|
|
377
|
-
inset 0 0 0 var(--bb-border-w) var(--border-color);
|
|
378
|
-
|
|
407
|
+
/* --bb-shadow like every other floating surface (BbDialog, BbPopover, …),
|
|
408
|
+
alone in the property, so `--bb-shadow: none` turns it off and keeps
|
|
409
|
+
the edge. */
|
|
410
|
+
box-shadow: var(--bb-shadow);
|
|
379
411
|
box-sizing: border-box;
|
|
380
412
|
color: var(--fg);
|
|
381
413
|
height: var(--toast-height);
|
|
@@ -464,7 +496,7 @@ export type BbToastProps = {
|
|
|
464
496
|
box-sizing: border-box;
|
|
465
497
|
display: flex;
|
|
466
498
|
gap: 12px;
|
|
467
|
-
padding: 14px 16px;
|
|
499
|
+
padding: calc(14px - var(--bw)) calc(16px - var(--bw));
|
|
468
500
|
transition: opacity 0.3s var(--bb-ease);
|
|
469
501
|
width: 100%;
|
|
470
502
|
}
|
|
@@ -538,12 +570,14 @@ export type BbToastProps = {
|
|
|
538
570
|
cursor: pointer;
|
|
539
571
|
display: flex;
|
|
540
572
|
height: 22px;
|
|
541
|
-
|
|
573
|
+
/* 8px from the card's outer corner: the containing block starts inside
|
|
574
|
+
the edge. */
|
|
575
|
+
inset-inline-end: calc(8px - var(--bw));
|
|
542
576
|
justify-content: center;
|
|
543
577
|
opacity: 0;
|
|
544
578
|
padding: 0;
|
|
545
579
|
position: absolute;
|
|
546
|
-
top: 8px;
|
|
580
|
+
top: calc(8px - var(--bw));
|
|
547
581
|
transition:
|
|
548
582
|
opacity 0.15s var(--bb-ease),
|
|
549
583
|
background-color 0.15s var(--bb-ease);
|
|
@@ -634,10 +668,11 @@ export type BbToastProps = {
|
|
|
634
668
|
&::after {
|
|
635
669
|
--hit: 44px;
|
|
636
670
|
content: '';
|
|
637
|
-
|
|
638
|
-
|
|
671
|
+
/* From inside the edge (the card clips there), bottom unchanged. */
|
|
672
|
+
height: calc(var(--hit) - 2px - var(--bw));
|
|
673
|
+
inset-inline-end: calc(var(--bw) - 8px);
|
|
639
674
|
position: absolute;
|
|
640
|
-
top: -8px;
|
|
675
|
+
top: calc(var(--bw) - 8px);
|
|
641
676
|
width: var(--hit);
|
|
642
677
|
}
|
|
643
678
|
}
|