bitboss-ui 3.0.0-beta.25 → 3.0.0-beta.26
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 +68 -4
- package/bin/bitboss-ui.mjs +1 -1
- package/dist/ai/BbAccordion.md +109 -5
- package/dist/ai/BbAlert.md +74 -1
- package/dist/ai/BbAsterisk.md +28 -1
- package/dist/ai/BbAvatar.md +90 -6
- package/dist/ai/BbBadge.md +168 -20
- package/dist/ai/BbBadgeButton.md +35 -20
- package/dist/ai/BbBaseButton.md +45 -0
- package/dist/ai/BbBaseCheckboxIcon.md +47 -8
- package/dist/ai/BbBaseRadioIcon.md +46 -7
- package/dist/ai/BbBaseSwitchIcon.md +48 -9
- package/dist/ai/BbBreadcrumbs.md +149 -7
- package/dist/ai/BbButton.md +91 -1
- package/dist/ai/BbCheckbox.md +152 -4
- package/dist/ai/BbCheckboxGroup.md +107 -6
- package/dist/ai/BbCollapsible.md +114 -4
- package/dist/ai/BbColorInput.md +202 -7
- package/dist/ai/BbColorPalette.md +171 -4
- package/dist/ai/BbConfirm.md +126 -1
- package/dist/ai/BbDatePicker.md +135 -3
- package/dist/ai/BbDatePickerInput.md +177 -12
- package/dist/ai/BbDialog.md +169 -9
- package/dist/ai/BbDropdown.md +151 -4
- package/dist/ai/BbDropdownButton.md +118 -1
- package/dist/ai/BbDropdownGroup.md +1 -1
- package/dist/ai/BbDropzone.md +91 -2
- package/dist/ai/BbIcon.md +28 -1
- package/dist/ai/BbIndicator.md +35 -1
- package/dist/ai/BbNumberInput.md +138 -15
- package/dist/ai/BbOffCanvas.md +159 -16
- package/dist/ai/BbPagination.md +107 -1
- package/dist/ai/BbPopover.md +132 -0
- package/dist/ai/BbProgress.md +33 -1
- package/dist/ai/BbRadio.md +156 -4
- package/dist/ai/BbRadioGroup.md +138 -15
- package/dist/ai/BbRating.md +87 -3
- package/dist/ai/BbSelect.md +162 -8
- package/dist/ai/BbSelectPopover.md +147 -2
- package/dist/ai/BbSlider.md +153 -14
- package/dist/ai/BbSmoothHeight.md +111 -0
- package/dist/ai/BbSpinner.md +40 -0
- package/dist/ai/BbSwitch.md +143 -4
- package/dist/ai/BbSwitchGroup.md +122 -4
- package/dist/ai/BbTable.md +114 -6
- package/dist/ai/BbTabs.md +141 -3
- package/dist/ai/BbTabsList.md +21 -1
- package/dist/ai/BbTabsPanes.md +1 -1
- package/dist/ai/BbTabsRoot.md +2 -1
- package/dist/ai/BbTag.md +149 -4
- package/dist/ai/BbTextInput.md +287 -17
- package/dist/ai/BbTextarea.md +179 -6
- package/dist/ai/BbTimePicker.md +87 -0
- package/dist/ai/BbTimePickerInput.md +157 -4
- package/dist/ai/BbToast.md +101 -1
- package/dist/ai/BbToastPortal.md +1 -1
- package/dist/ai/BbTooltip.md +108 -1
- package/dist/ai/BbTree.md +155 -1
- package/dist/ai/ChipsBox.md +40 -0
- package/dist/ai/ClearableButton.md +12 -0
- package/dist/ai/CommaBox.md +1 -0
- package/dist/ai/{BbBaseInputContainer.md → CommonField.md} +8 -7
- package/dist/ai/CommonFieldInput.md +90 -0
- package/dist/ai/CommonPopover.md +6 -1
- package/dist/ai/CommonTimeSelector.md +61 -0
- package/dist/ai/ErrorIcon.md +13 -1
- package/dist/ai/FlatListBox.md +27 -0
- package/dist/ai/GroupedListBox.md +27 -0
- package/dist/ai/ListBox.md +31 -0
- package/dist/ai/OptionsContainer.md +3 -2
- package/dist/ai/WarningIcon.md +13 -1
- package/dist/ai/changelog.json +623 -22
- package/dist/ai/components.json +31543 -10433
- package/dist/ai/guides/agent-contract.md +40 -1
- package/dist/ai/guides/ai-router.md +22 -14
- package/dist/ai/guides/design-language.md +21 -20
- package/dist/ai/guides/design-tokens.md +43 -7
- package/dist/ai/guides/installation-and-plugin-setup.md +165 -11
- package/dist/ai/guides/migration/components/bb-accordion.md +29 -0
- package/dist/ai/guides/migration/components/bb-breadcrumbs.md +8 -7
- package/dist/ai/guides/migration/components/bb-button.md +1 -1
- package/dist/ai/guides/migration/components/bb-checkbox-group.md +32 -29
- package/dist/ai/guides/migration/components/bb-checkbox.md +10 -9
- package/dist/ai/guides/migration/components/bb-collapsible.md +5 -5
- package/dist/ai/guides/migration/components/bb-date-picker-input.md +33 -29
- package/dist/ai/guides/migration/components/bb-dropdown.md +10 -9
- package/dist/ai/guides/migration/components/bb-popover.md +12 -11
- package/dist/ai/guides/migration/components/bb-rating.md +23 -19
- package/dist/ai/guides/migration/components/bb-select.md +1 -1
- package/dist/ai/guides/migration/components/bb-tabs.md +2 -2
- package/dist/ai/guides/migration/components/bb-text-input.md +4 -4
- package/dist/ai/guides/migration/v2-to-v3.md +140 -90
- package/dist/ai/guides/passthrough.md +428 -0
- package/dist/ai/index.md +10 -25
- package/dist/ai/recipes/inertia/ownership-atlas.md +11 -9
- package/dist/ai/source/BbAccordion.md +75 -21
- package/dist/ai/source/BbAlert.md +51 -4
- package/dist/ai/source/BbAsterisk.md +50 -4
- package/dist/ai/source/BbAvatar.md +47 -4
- package/dist/ai/source/BbBadge.md +67 -4
- package/dist/ai/source/BbBadgeButton.md +35 -0
- package/dist/ai/source/BbBaseButton.md +81 -5
- package/dist/ai/source/BbBaseCheckboxIcon.md +119 -28
- package/dist/ai/source/BbBaseRadioIcon.md +88 -7
- package/dist/ai/source/BbBaseSwitchIcon.md +103 -12
- package/dist/ai/source/BbBreadcrumbs.md +177 -59
- package/dist/ai/source/BbButton.md +140 -26
- package/dist/ai/source/BbCheckbox.md +399 -60
- package/dist/ai/source/BbCheckboxGroup.md +669 -80
- package/dist/ai/source/BbCollapsible.md +75 -7
- package/dist/ai/source/BbColorInput.md +452 -56
- package/dist/ai/source/BbColorPalette.md +1065 -42
- package/dist/ai/source/BbConfirm.md +112 -2
- package/dist/ai/source/BbConfirmPortal.md +63 -0
- package/dist/ai/source/BbDatePicker.md +1171 -50
- package/dist/ai/source/BbDatePickerInput.md +1887 -99
- package/dist/ai/source/BbDialog.md +124 -8
- package/dist/ai/source/BbDropdown.md +178 -62
- package/dist/ai/source/BbDropdownButton.md +195 -69
- package/dist/ai/source/BbDropdownGroup.md +82 -8
- package/dist/ai/source/BbDropzone.md +68 -9
- package/dist/ai/source/BbIcon.md +48 -6
- package/dist/ai/source/BbIndicator.md +48 -4
- package/dist/ai/source/BbNumberInput.md +538 -71
- package/dist/ai/source/BbOffCanvas.md +100 -11
- package/dist/ai/source/BbPagination.md +74 -8
- package/dist/ai/source/BbPopover.md +160 -65
- package/dist/ai/source/BbProgress.md +42 -2
- package/dist/ai/source/BbRadio.md +335 -53
- package/dist/ai/source/BbRadioGroup.md +653 -94
- package/dist/ai/source/BbRating.md +606 -74
- package/dist/ai/source/BbSelect.md +743 -75
- package/dist/ai/source/BbSelectPopover.md +119 -12
- package/dist/ai/source/BbSlider.md +1145 -81
- package/dist/ai/source/BbSmoothHeight.md +46 -2
- package/dist/ai/source/BbSpinner.md +56 -4
- package/dist/ai/source/BbSwitch.md +243 -56
- package/dist/ai/source/BbSwitchGroup.md +539 -77
- package/dist/ai/source/BbTable.md +258 -39
- package/dist/ai/source/BbTabs.md +114 -82
- package/dist/ai/source/BbTabsList.md +127 -79
- package/dist/ai/source/BbTabsPanes.md +118 -78
- package/dist/ai/source/BbTabsRoot.md +109 -77
- package/dist/ai/source/BbTag.md +625 -74
- package/dist/ai/source/BbTextInput.md +403 -57
- package/dist/ai/source/BbTextarea.md +447 -52
- package/dist/ai/source/BbTimePicker.md +136 -15
- package/dist/ai/source/BbTimePickerInput.md +1033 -86
- package/dist/ai/source/BbToast.md +42 -2
- package/dist/ai/source/BbToastPortal.md +27 -0
- package/dist/ai/source/BbTooltip.md +48 -2
- package/dist/ai/source/BbTree.md +45 -3
- package/dist/ai/source/ChipsBox.md +11 -1
- package/dist/ai/source/CommaBox.md +9 -1
- package/dist/ai/source/{BbBaseInputContainer.md → CommonField.md} +172 -183
- package/dist/ai/source/{CommonInputWrapper.md → CommonFieldInput.md} +140 -79
- package/dist/ai/source/CommonPopover.md +64 -13
- package/dist/ai/source/CommonTimeSelector.md +637 -0
- package/dist/ai/source/FlatListBox.md +61 -4
- package/dist/ai/source/GroupedListBox.md +76 -4
- package/dist/ai/source/ListBox.md +12 -0
- package/dist/ai/source/OptionsContainer.md +134 -26
- package/dist/components/BbAccordion/BbAccordion.vue_vue_type_script_setup_true_lang.js +49 -32
- package/dist/components/BbAccordion/types.d.ts +24 -1
- package/dist/components/BbAccordion/types.js +11 -0
- package/dist/components/BbAlert/BbAlert.vue_vue_type_script_setup_true_lang.js +46 -30
- package/dist/components/BbAlert/types.d.ts +17 -0
- package/dist/components/BbAlert/types.js +13 -0
- package/dist/components/BbAsterisk/BbAsterisk.vue.d.ts +3 -1
- package/dist/components/BbAsterisk/BbAsterisk.vue_vue_type_script_setup_true_lang.js +23 -8
- package/dist/components/BbAsterisk/types.d.ts +14 -0
- package/dist/components/BbAsterisk/types.js +7 -0
- package/dist/components/BbAvatar/BbAvatar.vue_vue_type_script_setup_true_lang.js +57 -44
- package/dist/components/BbAvatar/types.d.ts +17 -0
- package/dist/components/BbAvatar/types.js +7 -0
- package/dist/components/BbBadge/BadgeBodyContent.vue_vue_type_script_setup_true_lang.js +17 -17
- package/dist/components/BbBadge/BbBadge.vue_vue_type_script_setup_true_lang.js +77 -55
- package/dist/components/BbBadge/BbBadgeButton.vue_vue_type_script_setup_true_lang.js +3 -0
- package/dist/components/BbBadge/badgeButtonContext.d.ts +4 -0
- package/dist/components/BbBadge/types.d.ts +26 -0
- package/dist/components/BbBadge/types.js +13 -0
- package/dist/components/BbBaseButton/BbBaseButton.vue_vue_type_script_setup_true_lang.js +110 -97
- package/dist/components/BbBaseButton/RouterComponent.vue_vue_type_script_setup_true_lang.js +7 -7
- package/dist/components/BbBaseButton/types.d.ts +19 -0
- package/dist/components/BbBaseButton/types.js +9 -2
- package/dist/components/BbBaseCheckboxIcon/BbBaseCheckboxIcon.vue_vue_type_script_setup_true_lang.js +50 -18
- package/dist/components/BbBaseCheckboxIcon/types.d.ts +26 -2
- package/dist/components/BbBaseCheckboxIcon/types.js +8 -0
- package/dist/components/BbBaseRadioIcon/BbBaseRadioIcon.vue_vue_type_script_setup_true_lang.js +45 -15
- package/dist/components/BbBaseRadioIcon/types.d.ts +26 -2
- package/dist/components/BbBaseRadioIcon/types.js +8 -0
- package/dist/components/BbBaseSwitchIcon/BbBaseSwitchIcon.vue_vue_type_script_setup_true_lang.js +48 -16
- package/dist/components/BbBaseSwitchIcon/types.d.ts +26 -2
- package/dist/components/BbBaseSwitchIcon/types.js +8 -0
- package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue_vue_type_script_setup_true_lang.js +176 -135
- package/dist/components/BbBreadcrumbs/types.d.ts +19 -0
- package/dist/components/BbBreadcrumbs/types.js +12 -0
- package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +108 -85
- package/dist/components/BbButton/types.d.ts +27 -0
- package/dist/components/BbButton/types.js +12 -0
- package/dist/components/BbCheckbox/BbCheckbox.vue.d.ts +1 -1
- package/dist/components/BbCheckbox/BbCheckbox.vue_vue_type_script_setup_true_lang.js +190 -69
- package/dist/components/BbCheckbox/types.d.ts +151 -10
- package/dist/components/BbCheckbox/types.js +8 -0
- package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue.d.ts +3 -3
- package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +298 -82
- package/dist/components/BbCheckboxGroup/types.d.ts +118 -10
- package/dist/components/BbCheckboxGroup/types.js +10 -0
- package/dist/components/BbCollapsible/BbCollapsible.vue.d.ts +2 -1
- package/dist/components/BbCollapsible/BbCollapsible.vue_vue_type_script_setup_true_lang.js +41 -19
- package/dist/components/BbCollapsible/types.d.ts +29 -0
- package/dist/components/BbCollapsible/types.js +7 -0
- package/dist/components/BbColorInput/BbColorInput.vue.d.ts +10 -0
- package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +292 -84
- package/dist/components/BbColorInput/types.d.ts +163 -7
- package/dist/components/BbColorInput/types.js +23 -0
- package/dist/components/BbColorPalette/BbColorPalette.vue.d.ts +8 -0
- package/dist/components/BbColorPalette/BbColorPalette.vue_vue_type_script_setup_true_lang.js +495 -101
- package/dist/components/BbColorPalette/types.d.ts +40 -3
- package/dist/components/BbColorPalette/types.js +11 -0
- package/dist/components/BbConfirm/BbConfirm.vue.d.ts +2 -1
- package/dist/components/BbConfirm/BbConfirm.vue_vue_type_script_setup_true_lang.js +115 -76
- package/dist/components/BbConfirm/types.d.ts +29 -0
- package/dist/components/BbConfirm/types.js +17 -0
- package/dist/components/BbDatePicker/BbDatePicker.vue.d.ts +11 -4
- package/dist/components/BbDatePicker/BbDatePicker.vue_vue_type_script_setup_true_lang.js +595 -175
- package/dist/components/BbDatePicker/DatePickerMonthPanel.vue.js +5 -0
- package/dist/components/BbDatePicker/DatePickerMonthPanel.vue_vue_type_script_setup_true_lang.js +124 -0
- package/dist/components/BbDatePicker/DatePickerYearPanel.vue.js +5 -0
- package/dist/components/BbDatePicker/DatePickerYearPanel.vue_vue_type_script_setup_true_lang.js +125 -0
- package/dist/components/BbDatePicker/types.d.ts +45 -4
- package/dist/components/BbDatePicker/types.js +30 -0
- package/dist/components/BbDatePicker/useCalendarGrid.d.ts +208 -0
- package/dist/components/BbDatePicker/useCalendarGrid.js +269 -0
- package/dist/components/{BbBaseDatePicker → BbDatePicker}/useDatePickerContext.d.ts +7 -4
- package/dist/components/BbDatePicker/useDatePickerContext.js +11 -0
- package/dist/components/BbDatePicker/useDayGrid.d.ts +79 -0
- package/dist/components/BbDatePicker/useDayGrid.js +203 -0
- package/dist/components/BbDatePickerInput/BbDatePickerInput.vue.d.ts +14 -2
- package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +1126 -83
- package/dist/components/BbDatePickerInput/types.d.ts +132 -11
- package/dist/components/BbDatePickerInput/types.js +37 -0
- package/dist/components/BbDialog/BbDialog.vue.d.ts +3 -3
- package/dist/components/BbDialog/BbDialog.vue_vue_type_script_setup_true_lang.js +178 -139
- package/dist/components/BbDialog/types.d.ts +19 -0
- package/dist/components/BbDialog/types.js +16 -0
- package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +53 -46
- package/dist/components/BbDropdown/BbDropdown.vue.d.ts +8 -0
- package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +225 -173
- package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +213 -216
- package/dist/components/BbDropdown/types.d.ts +35 -1
- package/dist/components/BbDropdown/types.js +19 -2
- package/dist/components/BbDropdown/useDropdownContext.d.ts +7 -1
- package/dist/components/BbDropdownButton/BbDropdownButton.vue.d.ts +13 -3
- package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +118 -35
- package/dist/components/BbDropdownButton/types.d.ts +39 -1
- package/dist/components/BbDropdownButton/types.js +22 -0
- package/dist/components/BbDropzone/BbDropzone.vue_vue_type_script_setup_true_lang.js +167 -136
- package/dist/components/BbDropzone/types.d.ts +20 -1
- package/dist/components/BbDropzone/types.js +16 -0
- package/dist/components/BbIcon/BbIcon.vue_vue_type_script_setup_true_lang.js +54 -42
- package/dist/components/BbIcon/types.d.ts +21 -2
- package/dist/components/BbIcon/types.js +7 -0
- package/dist/components/BbIndicator/BbIndicator.vue_vue_type_script_setup_true_lang.js +33 -20
- package/dist/components/BbIndicator/types.d.ts +17 -0
- package/dist/components/BbIndicator/types.js +7 -0
- package/dist/components/BbNumberInput/BbNumberInput.vue.d.ts +5 -0
- package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +267 -84
- package/dist/components/BbNumberInput/types.d.ts +153 -12
- package/dist/components/BbNumberInput/types.js +8 -0
- package/dist/components/BbOffCanvas/BbOffCanvas.vue.d.ts +3 -3
- package/dist/components/BbOffCanvas/BbOffCanvas.vue_vue_type_script_setup_true_lang.js +215 -192
- package/dist/components/BbOffCanvas/types.d.ts +21 -0
- package/dist/components/BbOffCanvas/types.js +15 -0
- package/dist/components/BbPagination/BbPagination.vue_vue_type_script_setup_true_lang.js +119 -96
- package/dist/components/BbPagination/types.d.ts +19 -0
- package/dist/components/BbPagination/types.js +11 -0
- package/dist/components/BbPopover/BbPopover.vue.d.ts +3 -3
- package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +180 -154
- package/dist/components/BbPopover/types.d.ts +19 -0
- package/dist/components/BbPopover/types.js +14 -0
- package/dist/components/BbProgress/BbProgress.vue_vue_type_script_setup_true_lang.js +27 -15
- package/dist/components/BbProgress/types.d.ts +17 -0
- package/dist/components/BbProgress/types.js +7 -0
- package/dist/components/BbRadio/BbRadio.vue.d.ts +1 -1
- package/dist/components/BbRadio/BbRadio.vue_vue_type_script_setup_true_lang.js +162 -58
- package/dist/components/BbRadio/types.d.ts +124 -10
- package/dist/components/BbRadio/types.js +8 -0
- package/dist/components/BbRadioGroup/BbRadioGroup.vue.d.ts +2 -2
- package/dist/components/BbRadioGroup/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +280 -84
- package/dist/components/BbRadioGroup/types.d.ts +120 -12
- package/dist/components/BbRadioGroup/types.js +10 -0
- package/dist/components/BbRating/BbRating.vue.d.ts +4 -2
- package/dist/components/BbRating/BbRating.vue_vue_type_script_setup_true_lang.js +241 -73
- package/dist/components/BbRating/types.d.ts +117 -7
- package/dist/components/BbRating/types.js +21 -0
- package/dist/components/BbSelect/BbSelect.vue.d.ts +3 -3
- package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +446 -80
- package/dist/components/BbSelect/types.d.ts +48 -7
- package/dist/components/BbSelect/types.js +25 -0
- package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +416 -348
- package/dist/components/BbSelectPopover/types.d.ts +30 -3
- package/dist/components/BbSelectPopover/types.js +22 -0
- package/dist/components/BbSlider/BbSlider.vue.d.ts +9 -3
- package/dist/components/BbSlider/BbSlider.vue_vue_type_script_setup_true_lang.js +392 -92
- package/dist/components/BbSlider/types.d.ts +142 -7
- package/dist/components/BbSlider/types.js +21 -0
- package/dist/components/BbSmoothHeight/BbSmoothHeight.vue.d.ts +1 -1
- package/dist/components/BbSmoothHeight/BbSmoothHeight.vue_vue_type_script_setup_true_lang.js +60 -48
- package/dist/components/BbSmoothHeight/types.d.ts +17 -0
- package/dist/components/BbSmoothHeight/types.js +7 -0
- package/dist/components/BbSpinner/BbSpinner.vue_vue_type_script_setup_true_lang.js +27 -14
- package/dist/components/BbSpinner/types.d.ts +17 -0
- package/dist/components/BbSpinner/types.js +7 -0
- package/dist/components/BbSwitch/BbSwitch.vue.d.ts +1 -1
- package/dist/components/BbSwitch/BbSwitch.vue_vue_type_script_setup_true_lang.js +199 -78
- package/dist/components/BbSwitch/types.d.ts +12 -11
- package/dist/components/BbSwitch/types.js +5 -0
- package/dist/components/BbSwitchGroup/BbSwitchGroup.vue.d.ts +2 -2
- package/dist/components/BbSwitchGroup/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +298 -82
- package/dist/components/BbSwitchGroup/types.d.ts +14 -7
- package/dist/components/BbSwitchGroup/types.js +5 -0
- package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +912 -836
- package/dist/components/BbTable/BbTableDataRow.d.ts +8 -1
- package/dist/components/BbTable/BbTableDataRow.js +70 -73
- package/dist/components/BbTable/BbTableSelectToggle.d.ts +103 -0
- package/dist/components/BbTable/BbTableSelectToggle.js +114 -0
- package/dist/components/BbTable/types.d.ts +19 -0
- package/dist/components/BbTable/types.js +18 -0
- package/dist/components/BbTabs/BbTabs.vue_vue_type_script_setup_true_lang.js +30 -19
- package/dist/components/BbTabs/BbTabsList.vue_vue_type_script_setup_true_lang.js +18 -14
- package/dist/components/BbTabs/BbTabsPanes.vue_vue_type_script_setup_true_lang.js +14 -13
- package/dist/components/BbTabs/BbTabsRoot.vue_vue_type_script_setup_true_lang.js +10 -0
- package/dist/components/BbTabs/types.d.ts +25 -1
- package/dist/components/BbTabs/types.js +11 -0
- package/dist/components/BbTag/BbTag.vue.d.ts +6 -3
- package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +344 -91
- package/dist/components/BbTag/types.d.ts +60 -6
- package/dist/components/BbTag/types.js +8 -0
- package/dist/components/BbTextInput/BbTextInput.vue.d.ts +3 -1
- package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +239 -83
- package/dist/components/BbTextInput/types.d.ts +122 -7
- package/dist/components/BbTextInput/types.js +8 -0
- package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +247 -74
- package/dist/components/BbTextarea/types.d.ts +109 -7
- package/dist/components/BbTextarea/types.js +8 -0
- package/dist/components/BbTimePicker/BbTimePicker.vue.d.ts +9 -1
- package/dist/components/BbTimePicker/BbTimePicker.vue_vue_type_script_setup_true_lang.js +143 -108
- package/dist/components/BbTimePicker/types.d.ts +29 -2
- package/dist/components/BbTimePicker/types.js +11 -0
- package/dist/components/BbTimePickerInput/BbTimePickerInput.vue.d.ts +12 -2
- package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +666 -66
- package/dist/components/BbTimePickerInput/types.d.ts +67 -11
- package/dist/components/BbTimePickerInput/types.js +22 -0
- package/dist/components/BbToast/BbToast.vue_vue_type_script_setup_true_lang.js +51 -28
- package/dist/components/BbToast/BbToastMessage.vue.d.ts +3 -0
- package/dist/components/BbToast/BbToastMessage.vue_vue_type_script_setup_true_lang.js +43 -42
- package/dist/components/BbToast/BbToastRegion.vue.d.ts +3 -0
- package/dist/components/BbToast/BbToastRegion.vue_vue_type_script_setup_true_lang.js +5 -2
- package/dist/components/BbToast/types.d.ts +19 -0
- package/dist/components/BbToast/types.js +13 -0
- package/dist/components/BbTooltip/BbTooltip.vue_vue_type_script_setup_true_lang.js +72 -59
- package/dist/components/BbTooltip/types.d.ts +19 -0
- package/dist/components/BbTooltip/types.js +7 -0
- package/dist/components/BbTree/BbTree.vue.d.ts +11 -1
- package/dist/components/BbTree/BbTree.vue_vue_type_script_setup_true_lang.js +44 -28
- package/dist/components/BbTree/BbTreeLevel.vue_vue_type_script_setup_true_lang.js +13 -12
- package/dist/components/BbTree/context.d.ts +4 -1
- package/dist/components/BbTree/types.d.ts +20 -1
- package/dist/components/BbTree/types.js +7 -0
- package/dist/components/ChipsBox/ChipsBox.vue_vue_type_script_setup_true_lang.js +23 -21
- package/dist/components/ChipsBox/types.d.ts +6 -0
- package/dist/components/CommaBox/CommaBox.vue_vue_type_script_setup_true_lang.js +10 -6
- package/dist/components/CommaBox/types.d.ts +6 -0
- package/dist/components/{BbBaseInputContainer/BbBaseInputContainer.vue.d.ts → CommonField/CommonField.vue.d.ts} +3 -3
- package/dist/components/{BbBaseRadio/BbBaseRadio.vue.js → CommonField/CommonField.vue.js} +2 -2
- package/dist/components/CommonField/CommonField.vue_vue_type_script_setup_true_lang.js +178 -0
- package/dist/components/CommonField/messageHeightMatrix.d.ts +2 -0
- package/dist/components/{BbBaseInputContainer → CommonField}/types.d.ts +20 -11
- package/dist/components/{CommonInputWrapper/CommonInputWrapper.vue.d.ts → CommonFieldInput/CommonFieldInput.vue.d.ts} +4 -4
- package/dist/components/{BbBaseRadioGroup/BbBaseRadioGroup.vue.js → CommonFieldInput/CommonFieldInput.vue.js} +2 -2
- package/dist/components/CommonFieldInput/CommonFieldInput.vue_vue_type_script_setup_true_lang.js +116 -0
- package/dist/components/CommonFieldInput/boxBorderMatrix.d.ts +10 -0
- package/dist/components/{CommonInputWrapper → CommonFieldInput}/types.d.ts +15 -6
- package/dist/components/CommonPopover/CommonPopover.vue.d.ts +11 -2
- package/dist/components/CommonPopover/CommonPopover.vue_vue_type_script_setup_true_lang.js +63 -52
- package/dist/components/CommonPopover/types.d.ts +27 -8
- package/dist/components/{BbBaseDatePickerInput/BbBaseDatePickerTimeSelector.vue.d.ts → CommonTimeSelector/CommonTimeSelector.vue.d.ts} +4 -1
- package/dist/components/{CommonInputWrapper/CommonInputWrapper.vue.js → CommonTimeSelector/CommonTimeSelector.vue.js} +2 -2
- package/dist/components/CommonTimeSelector/CommonTimeSelector.vue_vue_type_script_setup_true_lang.js +206 -0
- package/dist/components/CommonTimeSelector/types.d.ts +6 -0
- package/dist/components/FlatListBox/FlatListBox.vue_vue_type_script_setup_true_lang.js +100 -74
- package/dist/components/FlatListBox/types.d.ts +6 -0
- package/dist/components/GroupedListBox/GroupedListBox.vue_vue_type_script_setup_true_lang.js +98 -72
- package/dist/components/GroupedListBox/types.d.ts +6 -0
- package/dist/components/ListBox/ListBox.vue_vue_type_script_setup_true_lang.js +5 -0
- package/dist/components/ListBox/types.d.ts +6 -0
- package/dist/components/OptionsContainer/OptionsContainer.vue_vue_type_script_setup_true_lang.js +76 -43
- package/dist/components/OptionsContainer/types.d.ts +24 -5
- package/dist/composables/useBbTabsContext.d.ts +10 -2
- package/dist/composables/useBbTabsContext.js +155 -145
- package/dist/composables/useConfig.d.ts +2 -2
- package/dist/composables/useConfig.js +9 -7
- package/dist/composables/usePassthrough.d.ts +164 -0
- package/dist/composables/usePassthrough.js +182 -0
- package/dist/composables/usePrefill.d.ts +1 -0
- package/dist/composables/usePrefill.js +18 -8
- package/dist/composables/useSegmentedFields.d.ts +2 -2
- package/dist/composables/useToggleInput.d.ts +44 -0
- package/dist/composables/useToggleInput.js +39 -0
- package/dist/deprecation/ai-deprecations.json.d.ts +231 -0
- package/dist/deprecation/ai-deprecations.json.js +1 -1
- package/dist/i18n/locales/cs.json +2 -2
- package/dist/i18n/locales/da.json +2 -2
- package/dist/i18n/locales/de.json +2 -2
- package/dist/i18n/locales/el.json +2 -2
- package/dist/i18n/locales/en.json +2 -2
- package/dist/i18n/locales/es.json +2 -2
- package/dist/i18n/locales/fi.json +2 -2
- package/dist/i18n/locales/fr.json +2 -2
- package/dist/i18n/locales/hu.json +2 -2
- package/dist/i18n/locales/it.json +2 -2
- package/dist/i18n/locales/ja.json +2 -2
- package/dist/i18n/locales/ko.json +2 -2
- package/dist/i18n/locales/nb.json +2 -2
- package/dist/i18n/locales/nl.json +2 -2
- package/dist/i18n/locales/pl.json +2 -2
- package/dist/i18n/locales/pt.json +2 -2
- package/dist/i18n/locales/ro.json +2 -2
- package/dist/i18n/locales/ru.json +2 -2
- package/dist/i18n/locales/sv.json +2 -2
- package/dist/i18n/locales/tr.json +2 -2
- package/dist/i18n/locales/uk.json +2 -2
- package/dist/i18n/locales/zh-cn.json +2 -2
- package/dist/index.d.ts +8 -2
- package/dist/llms-full.txt +7431 -1967
- package/dist/llms-medium.txt +251 -49
- package/dist/llms.txt +4 -2
- package/dist/locale-blueprint.json +2 -2
- package/dist/passthrough-deduper.js +5 -0
- package/dist/plugin.d.ts +2 -2
- package/dist/styles.css +1 -1
- package/dist/types/ColumnName.d.ts +1 -1
- package/dist/types/CommonProps.d.ts +2 -2
- package/dist/types/Config.d.ts +16 -0
- package/dist/types/InputVariant.d.ts +1 -1
- package/dist/types/ItemProps.d.ts +13 -0
- package/dist/types/passthrough.d.ts +200 -0
- package/dist/types/passthrough.js +77 -0
- package/dist/utilities/functions/itemProps.d.ts +1 -1
- package/dist/utilities/functions/slotKey.d.ts +5 -5
- package/dist/utilities/functions/slotKey.js +1 -1
- package/dist/utilities/functions/toggleInput.d.ts +98 -0
- package/dist/utilities/functions/toggleInput.js +56 -0
- package/dist/utils/passthrough.d.ts +26 -0
- package/dist/utils/passthrough.js +76 -0
- package/dist/utils/passthroughDeduper.d.ts +2 -0
- package/dist/utils/passthroughTestKit.d.ts +54 -0
- package/dist/utils/swipeTestKit.d.ts +9 -0
- package/dist/validated/BbCheckbox.vue_vue_type_script_setup_true_lang.js +56 -1
- package/dist/validated/BbCheckboxGroup.vue.d.ts +115 -2
- package/dist/validated/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +77 -1
- package/dist/validated/BbColorInput.vue_vue_type_script_setup_true_lang.js +109 -1
- package/dist/validated/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +370 -1
- package/dist/validated/BbDropzone.vue_vue_type_script_setup_true_lang.js +17 -1
- package/dist/validated/BbNumberInput.vue_vue_type_script_setup_true_lang.js +86 -1
- package/dist/validated/BbRadioGroup.vue.d.ts +114 -2
- package/dist/validated/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +77 -1
- package/dist/validated/BbRating.vue_vue_type_script_setup_true_lang.js +44 -1
- package/dist/validated/BbSelect.vue.d.ts +221 -2
- package/dist/validated/BbSelect.vue_vue_type_script_setup_true_lang.js +164 -1
- package/dist/validated/BbSlider.vue_vue_type_script_setup_true_lang.js +44 -1
- package/dist/validated/BbSwitch.vue_vue_type_script_setup_true_lang.js +56 -1
- package/dist/validated/BbSwitchGroup.vue.d.ts +115 -2
- package/dist/validated/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +77 -1
- package/dist/validated/BbTag.vue_vue_type_script_setup_true_lang.js +93 -1
- package/dist/validated/BbTextInput.vue_vue_type_script_setup_true_lang.js +86 -1
- package/dist/validated/BbTextarea.vue_vue_type_script_setup_true_lang.js +86 -1
- package/dist/validated/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +137 -1
- package/dist/vite-plugin.d.ts +81 -12
- package/dist/vite.js +383 -257
- package/llms.txt +4 -2
- package/package.json +4 -3
- package/scripts/lib/component-tree.ts +611 -0
- package/scripts/lib/eslint-plugin.d.ts +5 -1
- package/scripts/lib/eslint-plugin.mjs +445 -0
- package/scripts/lib/validate-bb-markup.mjs +56 -18
- package/dist/ai/BbBaseCheckbox.md +0 -50
- package/dist/ai/BbBaseCheckboxGroup.md +0 -65
- package/dist/ai/BbBaseColorInput.md +0 -67
- package/dist/ai/BbBaseColorPalette.md +0 -39
- package/dist/ai/BbBaseDatePicker.md +0 -57
- package/dist/ai/BbBaseDatePickerInput.md +0 -84
- package/dist/ai/BbBaseNumberInput.md +0 -73
- package/dist/ai/BbBaseRadio.md +0 -47
- package/dist/ai/BbBaseRadioGroup.md +0 -65
- package/dist/ai/BbBaseRating.md +0 -63
- package/dist/ai/BbBaseSelect.md +0 -99
- package/dist/ai/BbBaseSlider.md +0 -84
- package/dist/ai/BbBaseSwitch.md +0 -50
- package/dist/ai/BbBaseSwitchGroup.md +0 -65
- package/dist/ai/BbBaseTag.md +0 -80
- package/dist/ai/BbBaseTextInput.md +0 -77
- package/dist/ai/BbBaseTextarea.md +0 -74
- package/dist/ai/BbBaseTimePickerInput.md +0 -63
- package/dist/ai/CommonInputWrapper.md +0 -60
- package/dist/ai/source/BbBaseCheckbox.md +0 -466
- package/dist/ai/source/BbBaseCheckboxGroup.md +0 -620
- package/dist/ai/source/BbBaseColorInput.md +0 -453
- package/dist/ai/source/BbBaseColorPalette.md +0 -942
- package/dist/ai/source/BbBaseDatePicker.md +0 -1450
- package/dist/ai/source/BbBaseDatePickerInput.md +0 -1951
- package/dist/ai/source/BbBaseNumberInput.md +0 -629
- package/dist/ai/source/BbBaseRadio.md +0 -386
- package/dist/ai/source/BbBaseRadioGroup.md +0 -605
- package/dist/ai/source/BbBaseRating.md +0 -614
- package/dist/ai/source/BbBaseSelect.md +0 -1035
- package/dist/ai/source/BbBaseSlider.md +0 -1181
- package/dist/ai/source/BbBaseSwitch.md +0 -247
- package/dist/ai/source/BbBaseSwitchGroup.md +0 -347
- package/dist/ai/source/BbBaseTag.md +0 -714
- package/dist/ai/source/BbBaseTextInput.md +0 -523
- package/dist/ai/source/BbBaseTextarea.md +0 -520
- package/dist/ai/source/BbBaseTimePickerInput.md +0 -1048
- package/dist/components/BbBaseCheckbox/BbBaseCheckbox.vue.d.ts +0 -40
- package/dist/components/BbBaseCheckbox/BbBaseCheckbox.vue.js +0 -6
- package/dist/components/BbBaseCheckbox/BbBaseCheckbox.vue_vue_type_script_setup_true_lang.js +0 -147
- package/dist/components/BbBaseCheckbox/types.d.ts +0 -228
- package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue.d.ts +0 -19
- package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue.js +0 -6
- package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue_vue_type_script_setup_true_lang.js +0 -197
- package/dist/components/BbBaseCheckboxGroup/types.d.ts +0 -278
- package/dist/components/BbBaseColorInput/BbBaseColorInput.vue.d.ts +0 -43
- package/dist/components/BbBaseColorInput/BbBaseColorInput.vue.js +0 -6
- package/dist/components/BbBaseColorInput/BbBaseColorInput.vue_vue_type_script_setup_true_lang.js +0 -190
- package/dist/components/BbBaseColorInput/types.d.ts +0 -228
- package/dist/components/BbBaseColorPalette/BbBaseColorPalette.vue.d.ts +0 -13
- package/dist/components/BbBaseColorPalette/BbBaseColorPalette.vue.js +0 -6
- package/dist/components/BbBaseColorPalette/BbBaseColorPalette.vue_vue_type_script_setup_true_lang.js +0 -395
- package/dist/components/BbBaseColorPalette/types.d.ts +0 -40
- package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue.d.ts +0 -20
- package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue.js +0 -6
- package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue_vue_type_script_setup_true_lang.js +0 -407
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue.d.ts +0 -47
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue.js +0 -5
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue_vue_type_script_setup_true_lang.js +0 -318
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue.js +0 -5
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue_vue_type_script_setup_true_lang.js +0 -115
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerYearSelector.vue.js +0 -5
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerYearSelector.vue_vue_type_script_setup_true_lang.js +0 -116
- package/dist/components/BbBaseDatePicker/types.d.ts +0 -108
- package/dist/components/BbBaseDatePicker/useDatePickerContext.js +0 -11
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue.d.ts +0 -31
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue.js +0 -6
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue_vue_type_script_setup_true_lang.js +0 -740
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerTimeSelector.vue.js +0 -6
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerTimeSelector.vue_vue_type_script_setup_true_lang.js +0 -204
- package/dist/components/BbBaseDatePickerInput/types.d.ts +0 -330
- package/dist/components/BbBaseInputContainer/BbBaseInputContainer.vue.js +0 -6
- package/dist/components/BbBaseInputContainer/BbBaseInputContainer.vue_vue_type_script_setup_true_lang.js +0 -199
- package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue.d.ts +0 -52
- package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue.js +0 -6
- package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue_vue_type_script_setup_true_lang.js +0 -221
- package/dist/components/BbBaseNumberInput/types.d.ts +0 -220
- package/dist/components/BbBaseRadio/BbBaseRadio.vue.d.ts +0 -33
- package/dist/components/BbBaseRadio/BbBaseRadio.vue_vue_type_script_setup_true_lang.js +0 -115
- package/dist/components/BbBaseRadio/types.d.ts +0 -183
- package/dist/components/BbBaseRadioGroup/BbBaseRadioGroup.vue.d.ts +0 -19
- package/dist/components/BbBaseRadioGroup/BbBaseRadioGroup.vue_vue_type_script_setup_true_lang.js +0 -186
- package/dist/components/BbBaseRadioGroup/types.d.ts +0 -244
- package/dist/components/BbBaseRating/BbBaseRating.vue.d.ts +0 -38
- package/dist/components/BbBaseRating/BbBaseRating.vue.js +0 -6
- package/dist/components/BbBaseRating/BbBaseRating.vue_vue_type_script_setup_true_lang.js +0 -192
- package/dist/components/BbBaseRating/types.d.ts +0 -176
- package/dist/components/BbBaseSelect/BbBaseSelect.vue.d.ts +0 -19
- package/dist/components/BbBaseSelect/BbBaseSelect.vue.js +0 -6
- package/dist/components/BbBaseSelect/BbBaseSelect.vue_vue_type_script_setup_true_lang.js +0 -332
- package/dist/components/BbBaseSelect/types.d.ts +0 -348
- package/dist/components/BbBaseSlider/BbBaseSlider.vue.d.ts +0 -35
- package/dist/components/BbBaseSlider/BbBaseSlider.vue.js +0 -6
- package/dist/components/BbBaseSlider/BbBaseSlider.vue_vue_type_script_setup_true_lang.js +0 -340
- package/dist/components/BbBaseSlider/types.d.ts +0 -200
- package/dist/components/BbBaseSwitch/BbBaseSwitch.vue.d.ts +0 -35
- package/dist/components/BbBaseSwitch/BbBaseSwitch.vue.js +0 -6
- package/dist/components/BbBaseSwitch/BbBaseSwitch.vue_vue_type_script_setup_true_lang.js +0 -148
- package/dist/components/BbBaseSwitch/types.d.ts +0 -10
- package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue.d.ts +0 -19
- package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue.js +0 -6
- package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue_vue_type_script_setup_true_lang.js +0 -197
- package/dist/components/BbBaseSwitchGroup/types.d.ts +0 -8
- package/dist/components/BbBaseTag/BbBaseTag.vue.d.ts +0 -50
- package/dist/components/BbBaseTag/BbBaseTag.vue.js +0 -6
- package/dist/components/BbBaseTag/BbBaseTag.vue_vue_type_script_setup_true_lang.js +0 -272
- package/dist/components/BbBaseTag/types.d.ts +0 -169
- package/dist/components/BbBaseTextInput/BbBaseTextInput.vue.d.ts +0 -45
- package/dist/components/BbBaseTextInput/BbBaseTextInput.vue.js +0 -6
- package/dist/components/BbBaseTextInput/BbBaseTextInput.vue_vue_type_script_setup_true_lang.js +0 -206
- package/dist/components/BbBaseTextInput/types.d.ts +0 -218
- package/dist/components/BbBaseTextarea/BbBaseTextarea.vue.d.ts +0 -39
- package/dist/components/BbBaseTextarea/BbBaseTextarea.vue.js +0 -6
- package/dist/components/BbBaseTextarea/BbBaseTextarea.vue_vue_type_script_setup_true_lang.js +0 -193
- package/dist/components/BbBaseTextarea/types.d.ts +0 -179
- package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue.d.ts +0 -27
- package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue.js +0 -6
- package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue_vue_type_script_setup_true_lang.js +0 -522
- package/dist/components/BbBaseTimePickerInput/types.d.ts +0 -156
- package/dist/components/CommonInputWrapper/CommonInputWrapper.vue_vue_type_script_setup_true_lang.js +0 -109
- /package/dist/components/{BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue.d.ts → BbDatePicker/DatePickerMonthPanel.vue.d.ts} +0 -0
- /package/dist/components/{BbBaseDatePicker/BbBaseDatePickerYearSelector.vue.d.ts → BbDatePicker/DatePickerYearPanel.vue.d.ts} +0 -0
- /package/dist/{components/BbBaseDatePicker/typeahead.d.ts → composables/useTypeahead.d.ts} +0 -0
- /package/dist/{components/BbBaseDatePicker/typeahead.js → composables/useTypeahead.js} +0 -0
package/README.md
CHANGED
|
@@ -60,11 +60,12 @@ Full detail: `ai/guides/installation-and-plugin-setup.md`.
|
|
|
60
60
|
`Bb*DirectivePlugin` for each, for app-level registration. Prefer the directive
|
|
61
61
|
over the component for simple no-slot cases.
|
|
62
62
|
|
|
63
|
-
###
|
|
63
|
+
### Internal building blocks
|
|
64
64
|
|
|
65
|
-
The
|
|
66
|
-
|
|
67
|
-
|
|
65
|
+
The shared field chrome (`CommonField`, `CommonFieldInput` — label,
|
|
66
|
+
prepend/append, prefix/suffix, clear button, spacing) and the other `Common*`
|
|
67
|
+
pieces are **internal and are not exported**; every form control renders them
|
|
68
|
+
itself. Use the full
|
|
68
69
|
public inputs (`BbTextInput`, `BbSelect`, …); pass `hideLabel` for a
|
|
69
70
|
bare/inline control. The exported primitives are **`BbBaseButton`** and the
|
|
70
71
|
presentational glyphs **`BbBaseCheckboxIcon`**, **`BbBaseRadioIcon`**,
|
|
@@ -81,6 +82,25 @@ Product-ready components with labels, hints, errors, and consistent styling:
|
|
|
81
82
|
- **Data:** `BbTable`, `BbTree`
|
|
82
83
|
- **Media & files:** `BbAvatar`, `BbDropzone`, `BbIcon`
|
|
83
84
|
|
|
85
|
+
### Passthrough (`pt`)
|
|
86
|
+
|
|
87
|
+
Every component names a short list of **parts** and **states**, and a
|
|
88
|
+
`pt:<part>` / `pt:<part>:<state>` prop reaches that part with a class list —
|
|
89
|
+
or, in the object form, a style and attributes — typed and linted in the
|
|
90
|
+
attribute form, on top of any variant. Classes append to ours, attributes win, listeners run after the
|
|
91
|
+
component's own handler. A build-time `pt` map in the Vite / Nuxt plugin seeds
|
|
92
|
+
every instance. Grammar, merge rules and the per-component vocabulary:
|
|
93
|
+
[`ai/guides/passthrough.md`](ai/guides/passthrough.md).
|
|
94
|
+
|
|
95
|
+
```vue
|
|
96
|
+
<BbButton
|
|
97
|
+
prepend:icon="lucide:save"
|
|
98
|
+
pt:icon="text-emerald-600"
|
|
99
|
+
pt:icon:loading="animate-pulse"
|
|
100
|
+
>Save</BbButton>
|
|
101
|
+
<BbTable :items="rows" pt:row:highlighted="bg-amber-50" />
|
|
102
|
+
```
|
|
103
|
+
|
|
84
104
|
### Exported component types
|
|
85
105
|
|
|
86
106
|
For the public **Bb\*** components, the package exports matching **props**, **events**, and (where relevant) **slots** types (for example `BbSelectProps`, `BbTableEvents`), plus supporting shapes like `BbDropdownItem` and `DropdownGroupItemsGetter`. Use them for typed wrappers and design-system layers; the docs list the full set per component.
|
|
@@ -375,6 +395,50 @@ is left alone. For a bulk sweep of a v2 codebase, opt into the fix:
|
|
|
375
395
|
`assumeV2` is off by default because the two readings produce opposite
|
|
376
396
|
layouts — turn it on only for files you know came from v2, then turn it off.
|
|
377
397
|
|
|
398
|
+
#### Glyph state colours: `no-state-text-color`
|
|
399
|
+
|
|
400
|
+
`bitboss-ui/no-state-text-color` flags a colour-shade text utility —
|
|
401
|
+
`text-red-800`, not `text-xs` — in a toggle glyph's state entry:
|
|
402
|
+
`pt:icon:errors` / `warnings` / `disabled` on `BbCheckbox`, `BbRadio`,
|
|
403
|
+
`BbSwitch` and their groups, or `pt:root:<state>` on their standalone glyphs. Those states paint
|
|
404
|
+
from the glyph's own `--accent`, never from `color`, so the class lands and
|
|
405
|
+
paints nothing. CSS cannot let a state entry's colour win while a resting
|
|
406
|
+
`pt:icon` colour loses — both are just a `color` utility by then — so the rule
|
|
407
|
+
says so where the class is written, and for errors and warnings offers the
|
|
408
|
+
spelling that works:
|
|
409
|
+
|
|
410
|
+
```vue
|
|
411
|
+
<!-- warns: paints nothing -->
|
|
412
|
+
<BbCheckbox pt:icon="text-blue-500" pt:icon:errors="text-red-800" />
|
|
413
|
+
<!-- blue at rest, red-800 while erroring -->
|
|
414
|
+
<BbCheckbox
|
|
415
|
+
pt:icon="text-blue-500"
|
|
416
|
+
pt:icon:errors="[--accent:var(--color-red-800)]"
|
|
417
|
+
/>
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
It reads literal classes only (the attribute, a bound string or `{ class }`,
|
|
421
|
+
and a literal `:pt` object); a dynamic value is not checked.
|
|
422
|
+
|
|
423
|
+
#### Field box borders: `no-box-border-color`
|
|
424
|
+
|
|
425
|
+
`bitboss-ui/no-box-border-color` flags a colour-shade border utility —
|
|
426
|
+
`border-green-500`, not `border-2` — in the **base** `pt:box` of a text-like
|
|
427
|
+
control. The box paints its errors / warnings frame over the resting border,
|
|
428
|
+
but a border utility sets `border-color` itself and wins, so the field keeps
|
|
429
|
+
looking valid. The rule suggests the resting-border token instead; a state
|
|
430
|
+
entry is the state itself and is never reported:
|
|
431
|
+
|
|
432
|
+
```vue
|
|
433
|
+
<!-- errors: hides the error frame -->
|
|
434
|
+
<BbTextInput pt:box="border-green-500" />
|
|
435
|
+
<!-- green at rest, the error frame while erroring, red-800 as the error style -->
|
|
436
|
+
<BbTextInput
|
|
437
|
+
pt:box="[--border-color:var(--color-green-500)]"
|
|
438
|
+
pt:box:errors="border-red-800"
|
|
439
|
+
/>
|
|
440
|
+
```
|
|
441
|
+
|
|
378
442
|
#### The one rule that reads CSS: `no-unknown-token`
|
|
379
443
|
|
|
380
444
|
`bitboss-ui/no-unknown-token` flags a bare `var(--bb-…)` naming a token the
|
package/bin/bitboss-ui.mjs
CHANGED
|
@@ -96,7 +96,7 @@ function coreRules(version) {
|
|
|
96
96
|
|
|
97
97
|
1. **Start at the AI Router**: \`${ROUTER}\` — which file to open next (do not dump the full catalogue into context).
|
|
98
98
|
2. **Obey the agent contract**: \`${CONTRACT}\`.
|
|
99
|
-
3. **Prefer \`Bb*\` consumer components**; never use entries marked "Reference Only - Internal" unless the user explicitly asks for internals. (\`BbBaseButton\`
|
|
99
|
+
3. **Prefer \`Bb*\` consumer components**; never use entries marked "Reference Only - Internal" unless the user explicitly asks for internals. (\`BbBaseButton\` and the \`BbBase*Icon\` glyphs are consumer API; the \`Common*\` building blocks are not.)
|
|
100
100
|
4. **Never invent prop/event/slot names** — open \`${KNOWLEDGE_BASE}/<ComponentName>.md\` (Usage & Guidelines first) or validate against \`${KNOWLEDGE_BASE}/components.json\`.
|
|
101
101
|
5. **Icons**: discover names first; never invent them (\`${KNOWLEDGE_BASE}/guides/icons-policy.md\`).
|
|
102
102
|
6. **Item-driven components**: declarative \`items\` / \`item-text\` / \`item-value\`, \`dependencies\`, \`enforce-coherence\` — no manual watchers for coherence.
|
package/dist/ai/BbAccordion.md
CHANGED
|
@@ -8,6 +8,14 @@
|
|
|
8
8
|
- Usage rule: Prefer this component for consumer-facing implementations.
|
|
9
9
|
- Implementation source (only when the contract below is not enough): [source/BbAccordion.md](./source/BbAccordion.md)
|
|
10
10
|
|
|
11
|
+
## Reachable through `BbAccordion`
|
|
12
|
+
|
|
13
|
+
`BbAccordion` mounts other components (all of them: _Component tree_, near the end). These are the parts of its API that land inside them. Use them — never `:deep()` on an inner class, never an import of an internal component.
|
|
14
|
+
|
|
15
|
+
| pt part | Lands on | In |
|
|
16
|
+
| --- | --- | --- |
|
|
17
|
+
| `pt:header` | the root of `BbBaseButton` | `BbBaseButton` ([contract](./BbBaseButton.md)) |
|
|
18
|
+
|
|
11
19
|
## Usage & Guidelines
|
|
12
20
|
|
|
13
21
|
### When to use
|
|
@@ -38,9 +46,9 @@ Everything else is composition.
|
|
|
38
46
|
|
|
39
47
|
The classic pricing-page FAQ is independent panels — each with its own boolean.
|
|
40
48
|
The `header` slot is rendered **inside the header button** — so put text and an
|
|
41
|
-
indicator there, never a nested `<button>`/`<a>`.
|
|
42
|
-
|
|
43
|
-
|
|
49
|
+
indicator there, never a nested `<button>`/`<a>`. The panel is a block box
|
|
50
|
+
inside the collapsing region, so padding, a border or a background on it —
|
|
51
|
+
through `pt:panel` or `.bb-accordion__panel` — collapses with the body.
|
|
44
52
|
|
|
45
53
|
**A pricing-page FAQ of independent panels**
|
|
46
54
|
|
|
@@ -481,6 +489,90 @@ references): the body region gets your id and the header gets `<id>_header`,
|
|
|
481
489
|
already cross-wired via `aria-controls`/`aria-labelledby`. Omitted, a unique id
|
|
482
490
|
is generated for you.
|
|
483
491
|
|
|
492
|
+
### Restyling with passthrough
|
|
493
|
+
|
|
494
|
+
`pt` reaches a named part with a class list — or, in the object form, a
|
|
495
|
+
style and attributes — optionally only while a state is on. Parts: `root`,
|
|
496
|
+
`header` (the trigger button) and `panel` (the region the header controls). State:
|
|
497
|
+
`open`. There is no chevron of ours — the header is your slot markup — so there
|
|
498
|
+
is no `icon`.
|
|
499
|
+
|
|
500
|
+
The pricing-page FAQ above, restyled through those parts: layout, type and
|
|
501
|
+
hover on `pt:header` (children are click-transparent, so hover belongs on the
|
|
502
|
+
button), a heavier weight on `pt:header:open`, join lines on `pt:root`. Padding
|
|
503
|
+
can go on `pt:panel`: the panel sits inside the collapsing region, so it
|
|
504
|
+
collapses with the body.
|
|
505
|
+
|
|
506
|
+
**pt:header — the FAQ trigger, a wash while open**
|
|
507
|
+
|
|
508
|
+
```vue
|
|
509
|
+
<template>
|
|
510
|
+
<div
|
|
511
|
+
class="max-w-2xl overflow-hidden rounded-(--bb-radius) border border-(--bb-border)"
|
|
512
|
+
>
|
|
513
|
+
<BbAccordion
|
|
514
|
+
v-for="(faq, index) in faqs"
|
|
515
|
+
:key="faq.question"
|
|
516
|
+
v-model="faq.open"
|
|
517
|
+
pt:header="flex items-center justify-between gap-2 px-3 py-2 text-left text-sm font-medium hover:underline"
|
|
518
|
+
pt:header:open="font-semibold"
|
|
519
|
+
pt:panel="text-sm"
|
|
520
|
+
:pt:root="index ? 'border-t border-(--bb-border)' : ''"
|
|
521
|
+
>
|
|
522
|
+
<template #header="{ value }">
|
|
523
|
+
<span>{{ faq.question }}</span>
|
|
524
|
+
<span
|
|
525
|
+
class="shrink-0 text-(--bb-text-muted) transition-transform duration-200"
|
|
526
|
+
:class="value ? 'rotate-180' : ''"
|
|
527
|
+
>
|
|
528
|
+
<BbIcon icon="lucide:chevron-down" size="sm" />
|
|
529
|
+
</span>
|
|
530
|
+
</template>
|
|
531
|
+
|
|
532
|
+
<p class="px-3 pb-2.5 text-(--bb-text-muted)">
|
|
533
|
+
{{ faq.answer }}
|
|
534
|
+
</p>
|
|
535
|
+
</BbAccordion>
|
|
536
|
+
</div>
|
|
537
|
+
</template>
|
|
538
|
+
|
|
539
|
+
<script setup lang="ts">
|
|
540
|
+
import { ref } from 'vue';
|
|
541
|
+
import { BbAccordion, BbIcon } from 'bitboss-ui';
|
|
542
|
+
|
|
543
|
+
type Faq = { question: string; answer: string; open: boolean };
|
|
544
|
+
|
|
545
|
+
// Same pricing-page FAQ as `FaqList.vue`, restyled through passthrough:
|
|
546
|
+
// layout and hover on `pt:header`, a heavier weight on `pt:header:open`,
|
|
547
|
+
// join lines on `pt:root`. Padding may go on `pt:panel` or the slotted body
|
|
548
|
+
// alike: the panel is inside the collapsing region, so both collapse.
|
|
549
|
+
const faqs = ref<Faq[]>([
|
|
550
|
+
{
|
|
551
|
+
question: 'Can I change plans mid-cycle?',
|
|
552
|
+
answer:
|
|
553
|
+
'Yes. Upgrades take effect immediately and are prorated; downgrades apply at the next renewal.',
|
|
554
|
+
open: true,
|
|
555
|
+
},
|
|
556
|
+
{
|
|
557
|
+
question: 'Do you offer annual billing?',
|
|
558
|
+
answer:
|
|
559
|
+
'Annual plans are billed once per year at a 20% discount versus monthly.',
|
|
560
|
+
open: false,
|
|
561
|
+
},
|
|
562
|
+
{
|
|
563
|
+
question: 'What happens when I exceed my seat limit?',
|
|
564
|
+
answer:
|
|
565
|
+
'New invites pause until you add seats or free an existing one. Usage never auto-charges.',
|
|
566
|
+
open: false,
|
|
567
|
+
},
|
|
568
|
+
]);
|
|
569
|
+
</script>
|
|
570
|
+
```
|
|
571
|
+
|
|
572
|
+
A listener on `pt:header` runs after the toggle, never instead of it. The full
|
|
573
|
+
grammar, the merge rules and the global map are in the
|
|
574
|
+
[passthrough guide](./guides/passthrough.md).
|
|
575
|
+
|
|
484
576
|
### Works well with
|
|
485
577
|
|
|
486
578
|
- `BbIcon` — a rotating chevron in the header, driven by the slot's `value` (see
|
|
@@ -499,8 +591,6 @@ is generated for you.
|
|
|
499
591
|
belong in the body.
|
|
500
592
|
- **Don't build a group wrapper** with watchers that force-close siblings —
|
|
501
593
|
derive `model-value` from one active key instead (single-open above).
|
|
502
|
-
- **Don't put padding/borders on the panel itself** expecting them to collapse —
|
|
503
|
-
the collapsed state zeroes them; style the slotted content.
|
|
504
594
|
- **Don't add `v-if`/`v-show` around the body** to "optimize" — deferred
|
|
505
595
|
mounting is already the default; `eager` is the explicit opt-out.
|
|
506
596
|
- **Hover styles on non-interactive header children won't fire** (they are
|
|
@@ -527,6 +617,7 @@ is generated for you.
|
|
|
527
617
|
|
|
528
618
|
| Prop | Type | Default | Required | Description |
|
|
529
619
|
| --- | --- | --- | --- | --- |
|
|
620
|
+
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `header`, `panel`, `root`. States: `open`. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. |
|
|
530
621
|
| `eager` | `boolean \| undefined` | `false` | | Prevents rendering content before it's made visible. |
|
|
531
622
|
| `id` | `string \| undefined` | | | The identifier of the component. |
|
|
532
623
|
| `modelValue` | `boolean \| undefined` | `false` | | Used by v-model to trigger opening / closing the collapsible. An accordion with no `v-model` starts closed. |
|
|
@@ -541,6 +632,19 @@ is generated for you.
|
|
|
541
632
|
- `default` — scope: `BbAccordionToggleSlotProps` — The collapsible body content shown when the accordion is open.
|
|
542
633
|
- `header` — scope: `BbAccordionToggleSlotProps` — Content rendered inside the accordion header button.
|
|
543
634
|
|
|
635
|
+
## Component tree
|
|
636
|
+
|
|
637
|
+
`BbAccordion` is not one component: rendering it mounts every component below, and each one is live inside it. **Read this before styling, theming or debugging `BbAccordion`, and before concluding a part, a token or a behaviour does not exist** — it may live on a component further down. How to read it:
|
|
638
|
+
|
|
639
|
+
- **_internal_** nodes are building blocks with no API of their own: you reach them only through `BbAccordion`. A pt part listed as landing there is set on `BbAccordion` (`pt:<part>`).
|
|
640
|
+
- **_public_** nodes are components with their own contract. `BbAccordion` reaches one only through a pt part of its own that lands on it (shown on the parent node as `part → Component`, e.g. `spinner → BbSpinner`) or through a pt map it hands it (shown as "hands … the pt map", in `BbAccordion`'s words → the child's). The child's other props and parts are not exposed; its contract explains what it renders.
|
|
641
|
+
- **CSS custom properties** listed on a node are declared on THAT node's root and read by elements inside it. Set one on that node's root or on the element inside it that reads it — the pt part that lands there is how you reach it (`pt:box="[--border-color:…]"` on a text input) — never on `BbAccordion`'s root, where the node's own declaration masks it (design-tokens guide, _Overriding one from a consumer app_, rule 0).
|
|
642
|
+
- Listed nodes are the ones `BbAccordion`'s API reaches or that declare a documented CSS variable; the rest fold into "also mounts". The complete tree, repeats and undocumented locals included, is the `tree` field of this component in `components.json`.
|
|
643
|
+
|
|
644
|
+
- `BbAccordion` _(this component)_ — its own template binds: `header` → `BbBaseButton`, `panel` → `div.bb-accordion__panel`
|
|
645
|
+
- `BbBaseButton` _(public — [contract](./BbBaseButton.md))_ — its own pt parts (`BbBaseButton`): `root` → `RouterComponent`, `root` → `a`, `root` → `component`; also mounts `RouterComponent`
|
|
646
|
+
- `BbCollapsible` _(public — [contract](./BbCollapsible.md))_ — its own pt parts (`BbCollapsible`): `content` → `component.bb-collapsible__content`
|
|
647
|
+
|
|
544
648
|
## See Also
|
|
545
649
|
|
|
546
650
|
- [BbCollapsible](./BbCollapsible.md) — Toggles visibility of collapsible content blocks.
|
package/dist/ai/BbAlert.md
CHANGED
|
@@ -8,6 +8,21 @@
|
|
|
8
8
|
- Usage rule: Prefer this component for consumer-facing implementations.
|
|
9
9
|
- Implementation source (only when the contract below is not enough): [source/BbAlert.md](./source/BbAlert.md)
|
|
10
10
|
|
|
11
|
+
## Reachable through `BbAlert`
|
|
12
|
+
|
|
13
|
+
`BbAlert` mounts other components (all of them: _Component tree_, near the end). These are the parts of its API that land inside them. Use them — never `:deep()` on an inner class, never an import of an internal component.
|
|
14
|
+
|
|
15
|
+
| pt part | Lands on | In |
|
|
16
|
+
| --- | --- | --- |
|
|
17
|
+
| `pt:icon` | the root of `BbIcon` | `BbIcon` ([contract](./BbIcon.md)) |
|
|
18
|
+
| `pt:close` | the root of `ClearableButton` | `ClearableButton` _(internal)_ |
|
|
19
|
+
|
|
20
|
+
**CSS variables you can set through those parts** — declared deeper in the tree, so set one on the part that reads it (`pt:<part>="[--name:value]"`), never on `BbAlert`'s root:
|
|
21
|
+
|
|
22
|
+
| Variable | Set through | Declared by | What it is |
|
|
23
|
+
| --- | --- | --- | --- |
|
|
24
|
+
| `--w` | `pt:icon` | `BbIcon` | `--w` is set inline by BbIcon from the size prop. The `initial` default seals it: without it an ancestor's `--w` (e.g. a dropdown's width bridge) would inherit in and size the icon. The `--size` indir… |
|
|
25
|
+
|
|
11
26
|
## Usage & Guidelines
|
|
12
27
|
|
|
13
28
|
### When to use
|
|
@@ -344,6 +359,51 @@ const publish = () => {
|
|
|
344
359
|
</script>
|
|
345
360
|
```
|
|
346
361
|
|
|
362
|
+
### Restyling with passthrough
|
|
363
|
+
|
|
364
|
+
`pt` reaches a named part with a class list — or, in the object form, a
|
|
365
|
+
style and attributes. Parts: `root` (the box), `icon` (the leading glyph),
|
|
366
|
+
`title` (the heading), `text` (the body copy), `close` (the ✕). The column
|
|
367
|
+
that wraps title and text is layout, not a part. No states — an alert is
|
|
368
|
+
either mounted or gone.
|
|
369
|
+
|
|
370
|
+
An overdue invoice banner, restyled through those parts: a hair of top offset
|
|
371
|
+
on `pt:icon` so the glyph sits with wrapped copy, `text-sm` on `pt:text`, a
|
|
372
|
+
tighter tracking on `pt:title`.
|
|
373
|
+
`hide-close` — this is page state until the invoice is paid, not a snooze.
|
|
374
|
+
|
|
375
|
+
**pt:icon / pt:title / pt:text — invoice overdue**
|
|
376
|
+
|
|
377
|
+
```vue
|
|
378
|
+
<template>
|
|
379
|
+
<div class="max-w-2xl">
|
|
380
|
+
<BbAlert
|
|
381
|
+
hide-close
|
|
382
|
+
icon="lucide:triangle-alert"
|
|
383
|
+
pt:icon="mt-0.5"
|
|
384
|
+
pt:text="text-sm"
|
|
385
|
+
pt:title="tracking-tight"
|
|
386
|
+
text="Globex · €2,400 due 4 Sep. Record a payment or send a reminder — dunning is paused while this stays open."
|
|
387
|
+
title="INV-1043 is 7 days overdue"
|
|
388
|
+
variant="warning"
|
|
389
|
+
/>
|
|
390
|
+
</div>
|
|
391
|
+
</template>
|
|
392
|
+
|
|
393
|
+
<script setup lang="ts">
|
|
394
|
+
import { BbAlert } from 'bitboss-ui';
|
|
395
|
+
|
|
396
|
+
// Invoice-record overdue banner, restyled through passthrough: a hair of
|
|
397
|
+
// top offset on `pt:icon` so the glyph sits with wrapped copy, `text-sm` on
|
|
398
|
+
// `pt:text` and a tighter tracking on `pt:title`. `hide-close` — this is page state,
|
|
399
|
+
// not a snooze; the ✕ is a different part, taught with a listener.
|
|
400
|
+
</script>
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
A listener on `pt:close` runs after the alert closes, never instead of it. The
|
|
404
|
+
full grammar, the merge rules and the global map are in the
|
|
405
|
+
[passthrough guide](./guides/passthrough.md).
|
|
406
|
+
|
|
347
407
|
### Works well with
|
|
348
408
|
|
|
349
409
|
- `BbToast` — pair them: the toast confirms _the action_ ("Saved"), the alert
|
|
@@ -388,6 +448,7 @@ const publish = () => {
|
|
|
388
448
|
|
|
389
449
|
| Prop | Type | Default | Required | Description |
|
|
390
450
|
| --- | --- | --- | --- | --- |
|
|
451
|
+
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `close`, `icon`, `root`, `text`, `title`. States: . `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. |
|
|
391
452
|
| `ariaLive` | `"off" \| "polite" \| "assertive" \| undefined` | | | ARIA live region politeness. Defaults to `'assertive'` for destructive/warning variants, otherwise `'polite'`. |
|
|
392
453
|
| `closeLabel` | `string \| undefined` | | | Visually hidden string used to label the close button. |
|
|
393
454
|
| `hideClose` | `boolean \| undefined` | `false` | | Defines whether to hide the close button. |
|
|
@@ -412,7 +473,7 @@ const publish = () => {
|
|
|
412
473
|
|
|
413
474
|
## CSS custom properties
|
|
414
475
|
|
|
415
|
-
Set these on the element, or on a class you put on it, to retune this component alone — the sanctioned alternative to reaching past the API with `:deep()`. They are this component's own locals; the global `--bb-*` theme tokens are a separate tier (see the [design-tokens guide](./guides/design-tokens.md), or the MCP `list_tokens` tool).
|
|
476
|
+
Set these on the element, or on a class you put on it, to retune this component alone — the sanctioned alternative to reaching past the API with `:deep()`. They are this component's own locals — a **Set on** of `pt:<part>` means the local lives on that part's element, so set it through that entry (`pt:box="[--border-color:var(--color-green-500)]"`); the global `--bb-*` theme tokens are a separate tier (see the [design-tokens guide](./guides/design-tokens.md), or the MCP `list_tokens` tool).
|
|
416
477
|
|
|
417
478
|
| Property | Default | What it is |
|
|
418
479
|
| --- | --- | --- |
|
|
@@ -430,6 +491,18 @@ Set these on the element, or on a class you put on it, to retune this component
|
|
|
430
491
|
| `--border-color` | `color-mix(in oklab, var(--bb-text) 15%, transparent)` | Plate border |
|
|
431
492
|
| `--elev` | `var(--bb-elev)` | Resting lift. A local, so a page that already sits on a card can flatten one alert (`<BbAlert style="--elev: none">`) without unsetting the theme's lift everywhere. |
|
|
432
493
|
|
|
494
|
+
## Component tree
|
|
495
|
+
|
|
496
|
+
`BbAlert` is not one component: rendering it mounts every component below, and each one is live inside it. **Read this before styling, theming or debugging `BbAlert`, and before concluding a part, a token or a behaviour does not exist** — it may live on a component further down. How to read it:
|
|
497
|
+
|
|
498
|
+
- **_internal_** nodes are building blocks with no API of their own: you reach them only through `BbAlert`. A pt part listed as landing there is set on `BbAlert` (`pt:<part>`).
|
|
499
|
+
- **_public_** nodes are components with their own contract. `BbAlert` reaches one only through a pt part of its own that lands on it (shown on the parent node as `part → Component`, e.g. `spinner → BbSpinner`) or through a pt map it hands it (shown as "hands … the pt map", in `BbAlert`'s words → the child's). The child's other props and parts are not exposed; its contract explains what it renders.
|
|
500
|
+
- **CSS custom properties** listed on a node are declared on THAT node's root and read by elements inside it. Set one on that node's root or on the element inside it that reads it — the pt part that lands there is how you reach it (`pt:box="[--border-color:…]"` on a text input) — never on `BbAlert`'s root, where the node's own declaration masks it (design-tokens guide, _Overriding one from a consumer app_, rule 0).
|
|
501
|
+
- Listed nodes are the ones `BbAlert`'s API reaches or that declare a documented CSS variable; the rest fold into "also mounts". The complete tree, repeats and undocumented locals included, is the `tree` field of this component in `components.json`.
|
|
502
|
+
|
|
503
|
+
- `BbAlert` _(this component)_ — its own template binds: `icon` → `BbIcon`, `close` → `ClearableButton`, `title` → `div.bb-alert__title`, `text` → `div.bb-alert__text`
|
|
504
|
+
- Also mounts `BbIcon`, `ClearableButton`
|
|
505
|
+
|
|
433
506
|
## See Also
|
|
434
507
|
|
|
435
508
|
- [BbToast](./BbToast.md) — Shows transient notification messages (includes the co-located BbToastPortal export).
|
package/dist/ai/BbAsterisk.md
CHANGED
|
@@ -50,9 +50,36 @@ perceive), and never assume the asterisk is doing accessibility work.
|
|
|
50
50
|
with `requiredAsterisk: false` there is no way to render the marker through
|
|
51
51
|
them at all — placing `BbAsterisk` by hand is then the only route.
|
|
52
52
|
|
|
53
|
+
### Restyling with passthrough
|
|
54
|
+
|
|
55
|
+
`pt` reaches the one part with a class list — or, in the object form, a
|
|
56
|
+
style and attributes. Part: `root` (the marker span — its only props are the passthrough ones). No states — nothing it paints is a
|
|
57
|
+
state.
|
|
58
|
+
|
|
59
|
+
With one part, `pt:root` is plain `class` with extra letters: write `class`
|
|
60
|
+
/ `style` on the tag, as on any element. `pt:root` stays for uniformity —
|
|
61
|
+
the global map, the object form and a wrapper that spreads props address
|
|
62
|
+
every component the same way.
|
|
63
|
+
|
|
64
|
+
The default paint is `--bb-danger`; `class` is how you retint it. The
|
|
65
|
+
control's `required` still carries the requirement.
|
|
66
|
+
|
|
67
|
+
**class — a softened required marker**
|
|
68
|
+
|
|
69
|
+
```vue
|
|
70
|
+
<span
|
|
71
|
+
class="text-sm font-medium"
|
|
72
|
+
>Workspace name<BbAsterisk class="text-(--bb-warn)" /></span>
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
The full grammar, the merge rules and the global map are in the
|
|
76
|
+
[passthrough guide](./guides/passthrough.md).
|
|
77
|
+
|
|
53
78
|
## Props
|
|
54
79
|
|
|
55
|
-
|
|
80
|
+
| Prop | Type | Default | Required | Description |
|
|
81
|
+
| --- | --- | --- | --- | --- |
|
|
82
|
+
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `root`. States: . `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. |
|
|
56
83
|
|
|
57
84
|
## Events
|
|
58
85
|
|
package/dist/ai/BbAvatar.md
CHANGED
|
@@ -8,6 +8,20 @@
|
|
|
8
8
|
- Usage rule: Prefer this component for consumer-facing implementations.
|
|
9
9
|
- Implementation source (only when the contract below is not enough): [source/BbAvatar.md](./source/BbAvatar.md)
|
|
10
10
|
|
|
11
|
+
## Reachable through `BbAvatar`
|
|
12
|
+
|
|
13
|
+
`BbAvatar` mounts other components (all of them: _Component tree_, near the end). These are the parts of its API that land inside them. Use them — never `:deep()` on an inner class, never an import of an internal component.
|
|
14
|
+
|
|
15
|
+
| pt part | Lands on | In |
|
|
16
|
+
| --- | --- | --- |
|
|
17
|
+
| `pt:icon` | the root of `BbIcon` | `BbIcon` ([contract](./BbIcon.md)) |
|
|
18
|
+
|
|
19
|
+
**CSS variables you can set through those parts** — declared deeper in the tree, so set one on the part that reads it (`pt:<part>="[--name:value]"`), never on `BbAvatar`'s root:
|
|
20
|
+
|
|
21
|
+
| Variable | Set through | Declared by | What it is |
|
|
22
|
+
| --- | --- | --- | --- |
|
|
23
|
+
| `--w` | `pt:icon` | `BbIcon` | `--w` is set inline by BbIcon from the size prop. The `initial` default seals it: without it an ancestor's `--w` (e.g. a dropdown's width bridge) would inherit in and size the icon. The `--size` indir… |
|
|
24
|
+
|
|
11
25
|
## Usage & Guidelines
|
|
12
26
|
|
|
13
27
|
### When to use
|
|
@@ -499,6 +513,62 @@ Platform notes: the component is SSR-safe (Nuxt/Inertia) with no client-only
|
|
|
499
513
|
markup; the only global config it reads is `iconDefaultSizes` for the size
|
|
500
514
|
keys.
|
|
501
515
|
|
|
516
|
+
### Restyling with passthrough
|
|
517
|
+
|
|
518
|
+
`pt` reaches each part with a class list — or, in the object form, a
|
|
519
|
+
style and attributes. Parts: `root` (the avatar frame) and `icon` (the default
|
|
520
|
+
user glyph). No states — nothing it paints is a state.
|
|
521
|
+
|
|
522
|
+
`icon` exists only while the fallback shows (no image, or it failed) and the
|
|
523
|
+
default slot is not overridden; when a photo or your own initials render,
|
|
524
|
+
`pt:icon` lands nowhere. For the frame, `pt:root` is plain `class` with extra
|
|
525
|
+
letters: write `class` / `style` on the tag, as on any element. `pt:root`
|
|
526
|
+
stays for uniformity — the global map, the object form and a wrapper that
|
|
527
|
+
spreads props address every component the same way.
|
|
528
|
+
|
|
529
|
+
A design-review stack, restyled with plain `class`: a panel-colored ring on
|
|
530
|
+
`class` keeps overlapped edges readable, and every avatar after the first
|
|
531
|
+
pulls in. The image and the fallback wrapper are not parts — don't reach for
|
|
532
|
+
`:deep(.bb-avatar)`.
|
|
533
|
+
|
|
534
|
+
**class — reviewer stack ring**
|
|
535
|
+
|
|
536
|
+
```vue
|
|
537
|
+
<template>
|
|
538
|
+
<div class="flex">
|
|
539
|
+
<BbAvatar
|
|
540
|
+
v-for="(reviewer, index) in reviewers"
|
|
541
|
+
:key="reviewer.name"
|
|
542
|
+
:alt="reviewer.name"
|
|
543
|
+
:pt:root="
|
|
544
|
+
index ? '-ml-3 ring-2 ring-(--bb-panel)' : 'ring-2 ring-(--bb-panel)'
|
|
545
|
+
"
|
|
546
|
+
size="40"
|
|
547
|
+
>{{ reviewer.initials }}</BbAvatar
|
|
548
|
+
>
|
|
549
|
+
</div>
|
|
550
|
+
</template>
|
|
551
|
+
|
|
552
|
+
<script setup lang="ts">
|
|
553
|
+
import { BbAvatar } from 'bitboss-ui';
|
|
554
|
+
|
|
555
|
+
type Reviewer = { name: string; initials: string };
|
|
556
|
+
|
|
557
|
+
// Design-review stack, restyled through passthrough: a panel-colored ring on
|
|
558
|
+
// `pt:root` (the frame) so overlapped edges stay readable, pull-in on every
|
|
559
|
+
// avatar after the first. The image and fallback are not parts.
|
|
560
|
+
const reviewers: Reviewer[] = [
|
|
561
|
+
{ name: 'Ada Lovelace', initials: 'AL' },
|
|
562
|
+
{ name: 'Grace Hopper', initials: 'GH' },
|
|
563
|
+
{ name: 'Alan Turing', initials: 'AT' },
|
|
564
|
+
{ name: '2 more reviewers', initials: '+2' },
|
|
565
|
+
];
|
|
566
|
+
</script>
|
|
567
|
+
```
|
|
568
|
+
|
|
569
|
+
The full grammar, the merge rules and the global map are in the
|
|
570
|
+
[passthrough guide](./guides/passthrough.md).
|
|
571
|
+
|
|
502
572
|
### Works well with
|
|
503
573
|
|
|
504
574
|
- [`BbIndicator`](./BbIndicator.md) — floating presence dots and counts (see above).
|
|
@@ -544,6 +614,7 @@ available in visible text or an adjacent label.
|
|
|
544
614
|
|
|
545
615
|
| Prop | Type | Default | Required | Description |
|
|
546
616
|
| --- | --- | --- | --- | --- |
|
|
617
|
+
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `icon`, `root`. States: . `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. |
|
|
547
618
|
| `alt` | `string \| undefined` | `""` | | Alternative text for the image, used for accessibility. |
|
|
548
619
|
| `size` | `number \| ({ size?: any; } & string) \| keyof Sizes \| undefined` | `"md"` | | Defines the component size. Accepted values: - A key from the provided size map (`keyof T`), e.g. `'sm' \| 'md' \| 'lg'` - A custom CSS size string (e.g. `'20px'`, `'1.5rem'`, `'2em'`) - A number, typically interpreted as pixels by size par… |
|
|
549
620
|
| `sizes` | `string \| undefined` | | | Sizes attribute for the image, used with `srcset`. |
|
|
@@ -561,13 +632,26 @@ available in visible text or an adjacent label.
|
|
|
561
632
|
|
|
562
633
|
## CSS custom properties
|
|
563
634
|
|
|
564
|
-
Set these on the element, or on a class you put on it, to retune this component alone — the sanctioned alternative to reaching past the API with `:deep()`. They are this component's own locals; the global `--bb-*` theme tokens are a separate tier (see the [design-tokens guide](./guides/design-tokens.md), or the MCP `list_tokens` tool).
|
|
635
|
+
Set these on the element, or on a class you put on it, to retune this component alone — the sanctioned alternative to reaching past the API with `:deep()`. They are this component's own locals — a **Set on** of `pt:<part>` means the local lives on that part's element, so set it through that entry (`pt:box="[--border-color:var(--color-green-500)]"`); the global `--bb-*` theme tokens are a separate tier (see the [design-tokens guide](./guides/design-tokens.md), or the MCP `list_tokens` tool).
|
|
565
636
|
|
|
566
|
-
| Property | Default | What it is |
|
|
567
|
-
| --- | --- | --- |
|
|
568
|
-
| `--bg` | `var(--bb-primary)` | fallback surface (an image covers it) |
|
|
569
|
-
| `--fg` | `var(--bb-primary-fg)` | Initials; the built-in icon is an 80/20 mix of this toward --bg |
|
|
570
|
-
| `--default-icon-size` | `clamp(14px, calc(var(--size) * 0.7), 48px)` | Built-in fallback icon: 70% of the avatar, floored at 14px and capped at 48px. `--size` is the avatar's own box, set inline from the `size` prop. |
|
|
637
|
+
| Property | Set on | Default | What it is |
|
|
638
|
+
| --- | --- | --- | --- |
|
|
639
|
+
| `--bg` | `.bb-avatar` | `var(--bb-primary)` | fallback surface (an image covers it) |
|
|
640
|
+
| `--fg` | `.bb-avatar` | `var(--bb-primary-fg)` | Initials; the built-in icon is an 80/20 mix of this toward --bg |
|
|
641
|
+
| `--default-icon-size` | `.bb-avatar` | `clamp(14px, calc(var(--size) * 0.7), 48px)` | Built-in fallback icon: 70% of the avatar, floored at 14px and capped at 48px. `--size` is the avatar's own box, set inline from the `size` prop. |
|
|
642
|
+
| `--size` | `.bb-avatar__default-icon` | `var(--default-icon-size)` | |
|
|
643
|
+
|
|
644
|
+
## Component tree
|
|
645
|
+
|
|
646
|
+
`BbAvatar` is not one component: rendering it mounts every component below, and each one is live inside it. **Read this before styling, theming or debugging `BbAvatar`, and before concluding a part, a token or a behaviour does not exist** — it may live on a component further down. How to read it:
|
|
647
|
+
|
|
648
|
+
- **_internal_** nodes are building blocks with no API of their own: you reach them only through `BbAvatar`. A pt part listed as landing there is set on `BbAvatar` (`pt:<part>`).
|
|
649
|
+
- **_public_** nodes are components with their own contract. `BbAvatar` reaches one only through a pt part of its own that lands on it (shown on the parent node as `part → Component`, e.g. `spinner → BbSpinner`) or through a pt map it hands it (shown as "hands … the pt map", in `BbAvatar`'s words → the child's). The child's other props and parts are not exposed; its contract explains what it renders.
|
|
650
|
+
- **CSS custom properties** listed on a node are declared on THAT node's root and read by elements inside it. Set one on that node's root or on the element inside it that reads it — the pt part that lands there is how you reach it (`pt:box="[--border-color:…]"` on a text input) — never on `BbAvatar`'s root, where the node's own declaration masks it (design-tokens guide, _Overriding one from a consumer app_, rule 0).
|
|
651
|
+
- Listed nodes are the ones `BbAvatar`'s API reaches or that declare a documented CSS variable; the rest fold into "also mounts". The complete tree, repeats and undocumented locals included, is the `tree` field of this component in `components.json`.
|
|
652
|
+
|
|
653
|
+
- `BbAvatar` _(this component)_ — its own template binds: `icon` → `BbIcon`
|
|
654
|
+
- Also mounts `BbIcon`
|
|
571
655
|
|
|
572
656
|
## See Also
|
|
573
657
|
|