bitboss-ui 3.0.0-beta.2 → 3.0.0-beta.20
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 +72 -33
- package/dist/ai/BbAccordion.md +3 -3
- package/dist/ai/BbAlert.md +9 -5
- package/dist/ai/BbAsterisk.md +17 -0
- package/dist/ai/BbAvatar.md +12 -3
- package/dist/ai/BbBadge.md +15 -10
- package/dist/ai/BbBadgeButton.md +16 -16
- package/dist/ai/BbBaseButton.md +16 -16
- package/dist/ai/BbBaseCheckbox.md +8 -8
- package/dist/ai/BbBaseCheckboxGroup.md +13 -13
- package/dist/ai/BbBaseCheckboxIcon.md +26 -9
- package/dist/ai/BbBaseColorInput.md +11 -11
- package/dist/ai/BbBaseDatePicker.md +6 -6
- package/dist/ai/BbBaseDatePickerInput.md +15 -15
- package/dist/ai/BbBaseInputContainer.md +12 -12
- package/dist/ai/BbBaseNumberInput.md +8 -8
- package/dist/ai/BbBaseRadio.md +5 -5
- package/dist/ai/BbBaseRadioGroup.md +7 -7
- package/dist/ai/BbBaseRadioIcon.md +25 -9
- package/dist/ai/BbBaseRating.md +5 -5
- package/dist/ai/BbBaseSelect.md +22 -21
- package/dist/ai/BbBaseSlider.md +9 -9
- package/dist/ai/BbBaseSwitch.md +8 -8
- package/dist/ai/BbBaseSwitchGroup.md +13 -13
- package/dist/ai/BbBaseSwitchIcon.md +28 -10
- package/dist/ai/BbBaseTag.md +10 -10
- package/dist/ai/BbBaseTextInput.md +9 -9
- package/dist/ai/BbBaseTextarea.md +9 -9
- package/dist/ai/BbBaseTimePickerInput.md +13 -13
- package/dist/ai/BbBreadcrumbs.md +2 -2
- package/dist/ai/BbButton.md +15 -15
- package/dist/ai/BbCheckbox.md +18 -17
- package/dist/ai/BbCheckboxGroup.md +15 -14
- package/dist/ai/BbCollapsible.md +11 -9
- package/dist/ai/BbColorInput.md +15 -15
- package/dist/ai/BbColorPalette.md +12 -6
- package/dist/ai/BbConfirm.md +12 -5
- package/dist/ai/BbDatePicker.md +13 -13
- package/dist/ai/BbDatePickerInput.md +20 -20
- package/dist/ai/BbDialog.md +78 -12
- package/dist/ai/BbDropdown.md +132 -22
- package/dist/ai/BbDropdownButton.md +12 -12
- package/dist/ai/BbDropdownGroup.md +1 -1
- package/dist/ai/BbDropzone.md +4 -4
- package/dist/ai/BbForm.md +49 -14
- package/dist/ai/BbIcon.md +6 -0
- package/dist/ai/BbIndicator.md +5 -5
- package/dist/ai/BbNumberInput.md +11 -11
- package/dist/ai/BbOffCanvas.md +90 -20
- package/dist/ai/BbPagination.md +3 -3
- package/dist/ai/BbPopover.md +32 -17
- package/dist/ai/BbProgress.md +7 -4
- package/dist/ai/BbRadio.md +16 -15
- package/dist/ai/BbRadioGroup.md +20 -17
- package/dist/ai/BbRating.md +11 -11
- package/dist/ai/BbSelect.md +138 -37
- package/dist/ai/BbSelectPopover.md +40 -41
- package/dist/ai/BbSlider.md +37 -22
- package/dist/ai/BbSmoothHeight.md +1 -1
- package/dist/ai/BbSwitch.md +25 -10
- package/dist/ai/BbSwitchGroup.md +17 -14
- package/dist/ai/BbTable.md +791 -88
- package/dist/ai/BbTabs.md +28 -14
- package/dist/ai/BbTabsList.md +1 -1
- package/dist/ai/BbTabsPanes.md +1 -1
- package/dist/ai/BbTabsRoot.md +10 -10
- package/dist/ai/BbTag.md +14 -14
- package/dist/ai/BbTextInput.md +16 -15
- package/dist/ai/BbTextarea.md +13 -13
- package/dist/ai/BbTimePicker.md +10 -10
- package/dist/ai/BbTimePickerInput.md +17 -17
- package/dist/ai/BbToast.md +1 -1
- package/dist/ai/BbToastPortal.md +1 -1
- package/dist/ai/BbTooltip.md +12 -10
- package/dist/ai/BbTree.md +1 -1
- package/dist/ai/ChipsBox.md +1 -1
- package/dist/ai/CommonInputWrapper.md +10 -10
- package/dist/ai/CommonPopover.md +6 -6
- package/dist/ai/FlatListBox.md +5 -5
- package/dist/ai/GroupedListBox.md +5 -5
- package/dist/ai/ListBox.md +4 -4
- package/dist/ai/OptionsContainer.md +4 -4
- package/dist/ai/changelog.json +110 -2
- package/dist/ai/components.json +882 -90
- package/dist/ai/composables/useBbConfig.md +72 -11
- package/dist/ai/composables/useConfirm.md +5 -3
- package/dist/ai/guides/ai-router.md +9 -4
- package/dist/ai/guides/component-picker.md +2 -2
- package/dist/ai/guides/design-language.md +14 -14
- package/dist/ai/guides/design-tokens.md +25 -18
- package/dist/ai/guides/fetch-items-playbook.md +1 -1
- package/dist/ai/guides/icons-policy.md +4 -2
- package/dist/ai/guides/installation-and-plugin-setup.md +74 -9
- package/dist/ai/guides/migration/components/bb-checkbox-group.md +30 -0
- package/dist/ai/guides/migration/components/bb-checkbox.md +37 -3
- package/dist/ai/guides/migration/components/bb-collapsible.md +5 -5
- package/dist/ai/guides/migration/components/bb-dialog.md +62 -34
- package/dist/ai/guides/migration/components/bb-offcanvas.md +29 -13
- package/dist/ai/guides/migration/components/bb-rating.md +8 -2
- package/dist/ai/guides/migration/components/bb-select.md +5 -2
- package/dist/ai/guides/migration/components/bb-table.md +446 -28
- package/dist/ai/guides/migration/components/bb-text-input.md +6 -6
- package/dist/ai/guides/migration/v2-to-v3.md +260 -89
- package/dist/ai/guides/ssr-prefill.md +120 -0
- package/dist/ai/index.md +10 -9
- package/dist/ai/recipes/inertia/layout-scaffold.md +5 -1
- package/dist/ai/recipes/inertia/ownership-atlas.md +41 -20
- package/dist/ai/recipes/inertia/records-workspace.md +26 -7
- package/dist/ai/recipes/nuxt/layout-scaffold.md +5 -1
- package/dist/ai/recipes/nuxt/records-workspace.md +26 -7
- package/dist/ai/recipes/vue/layout-scaffold.md +5 -1
- package/dist/ai/recipes/vue/records-workspace.md +26 -7
- package/dist/ai/source/BbAlert.md +60 -2
- package/dist/ai/source/BbAvatar.md +3 -3
- package/dist/ai/source/BbBadge.md +60 -15
- package/dist/ai/source/BbBadgeButton.md +8 -2
- package/dist/ai/source/BbBaseButton.md +3 -1
- package/dist/ai/source/BbBaseCheckboxGroup.md +6 -2
- package/dist/ai/source/BbBaseDatePicker.md +3 -1
- package/dist/ai/source/BbBaseDatePickerInput.md +5 -1
- package/dist/ai/source/BbBaseInputContainer.md +52 -1
- package/dist/ai/source/BbBaseRadioGroup.md +4 -0
- package/dist/ai/source/BbBaseRating.md +3 -1
- package/dist/ai/source/BbBaseSelect.md +71 -16
- package/dist/ai/source/BbBaseSwitchGroup.md +4 -0
- package/dist/ai/source/BbBaseTimePickerInput.md +5 -1
- package/dist/ai/source/BbBreadcrumbs.md +31 -0
- package/dist/ai/source/BbButton.md +51 -24
- package/dist/ai/source/BbCheckbox.md +15 -1
- package/dist/ai/source/BbCheckboxGroup.md +2 -1
- package/dist/ai/source/BbCollapsible.md +7 -1
- package/dist/ai/source/BbColorInput.md +3 -4
- package/dist/ai/source/BbColorPalette.md +3 -4
- package/dist/ai/source/BbDatePicker.md +5 -1
- package/dist/ai/source/BbDatePickerInput.md +5 -1
- package/dist/ai/source/BbDialog.md +175 -19
- package/dist/ai/source/BbDropdown.md +376 -69
- package/dist/ai/source/BbDropdownGroup.md +330 -59
- package/dist/ai/source/BbForm.md +93 -5
- package/dist/ai/source/BbIcon.md +46 -36
- package/dist/ai/source/BbNumberInput.md +3 -4
- package/dist/ai/source/BbOffCanvas.md +474 -194
- package/dist/ai/source/BbPopover.md +24 -17
- package/dist/ai/source/BbProgress.md +2 -2
- package/dist/ai/source/BbRadio.md +15 -1
- package/dist/ai/source/BbRadioGroup.md +3 -1
- package/dist/ai/source/BbSelect.md +50 -2
- package/dist/ai/source/BbSelectPopover.md +171 -23
- package/dist/ai/source/BbSlider.md +3 -4
- package/dist/ai/source/BbSwitch.md +15 -1
- package/dist/ai/source/BbSwitchGroup.md +8 -5
- package/dist/ai/source/BbTable.md +4642 -1387
- package/dist/ai/source/BbTabs.md +6 -7
- package/dist/ai/source/BbTabsList.md +6 -7
- package/dist/ai/source/BbTabsPanes.md +6 -7
- package/dist/ai/source/BbTabsRoot.md +6 -7
- package/dist/ai/source/BbTag.md +3 -4
- package/dist/ai/source/BbTextInput.md +3 -4
- package/dist/ai/source/BbTextarea.md +3 -4
- package/dist/ai/source/BbTimePicker.md +4 -1
- package/dist/ai/source/BbTimePickerInput.md +5 -1
- package/dist/ai/source/BbToast.md +3 -1
- package/dist/ai/source/BbTooltip.md +5 -1
- package/dist/ai/source/CommonInputWrapper.md +4 -0
- package/dist/ai/source/CommonPopover.md +6 -0
- package/dist/ai/source/FlatListBox.md +11 -5
- package/dist/ai/source/GroupedListBox.md +7 -5
- package/dist/components/BbAlert/BbAlert.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/components/BbAlert/types.d.ts +10 -1
- package/dist/components/BbAvatar/BbAvatar.vue.d.ts +1 -1
- package/dist/components/BbAvatar/BbAvatar.vue_vue_type_script_setup_true_lang.js +33 -33
- package/dist/components/BbBadge/BadgeBodyContent.vue_vue_type_script_setup_true_lang.js +22 -16
- package/dist/components/BbBadge/BbBadge.vue_vue_type_script_setup_true_lang.js +36 -15
- package/dist/components/BbBadge/badgeButtonContext.d.ts +21 -8
- package/dist/components/BbBadge/types.d.ts +8 -2
- package/dist/components/BbBaseButton/BbBaseButton.vue_vue_type_script_setup_true_lang.js +47 -47
- package/dist/components/BbBaseButton/RouterComponent.vue_vue_type_script_setup_true_lang.js +14 -14
- package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue_vue_type_script_setup_true_lang.js +30 -28
- package/dist/components/BbBaseCheckboxGroup/types.d.ts +2 -2
- package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue_vue_type_script_setup_true_lang.js +167 -167
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue.d.ts +9 -9
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue_vue_type_script_setup_true_lang.js +78 -78
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue_vue_type_script_setup_true_lang.js +64 -64
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue.d.ts +1 -1
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue_vue_type_script_setup_true_lang.js +138 -138
- package/dist/components/BbBaseInputContainer/BbBaseInputContainer.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/BbBaseRadioGroup/BbBaseRadioGroup.vue_vue_type_script_setup_true_lang.js +24 -22
- package/dist/components/BbBaseRating/BbBaseRating.vue_vue_type_script_setup_true_lang.js +40 -40
- package/dist/components/BbBaseSelect/BbBaseSelect.vue_vue_type_script_setup_true_lang.js +74 -65
- package/dist/components/BbBaseSelect/types.d.ts +22 -0
- package/dist/components/BbBaseSlider/BbBaseSlider.vue_vue_type_script_setup_true_lang.js +5 -5
- package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue_vue_type_script_setup_true_lang.js +30 -28
- package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue.d.ts +1 -1
- package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue_vue_type_script_setup_true_lang.js +104 -104
- package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue_vue_type_script_setup_true_lang.js +35 -35
- package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +85 -81
- package/dist/components/BbCheckboxGroup/types.d.ts +2 -1
- package/dist/components/BbCollapsible/types.d.ts +7 -1
- package/dist/components/BbColorInput/BbColorInput.vue.d.ts +1 -1
- package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +18 -18
- package/dist/components/BbColorPalette/BbColorPalette.vue.d.ts +2 -2
- package/dist/components/BbColorPalette/BbColorPalette.vue_vue_type_script_setup_true_lang.js +50 -50
- package/dist/components/BbConfirm/BbConfirm.vue_vue_type_script_setup_true_lang.js +17 -17
- package/dist/components/BbDatePicker/BbDatePicker.vue.d.ts +1 -1
- package/dist/components/BbDatePicker/BbDatePicker.vue_vue_type_script_setup_true_lang.js +100 -100
- package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +21 -21
- package/dist/components/BbDialog/BbDialog.vue.d.ts +1 -1
- package/dist/components/BbDialog/BbDialog.vue_vue_type_script_setup_true_lang.js +133 -107
- package/dist/components/BbDialog/types.d.ts +29 -2
- package/dist/components/BbDropdown/AdaptiveDropdown.vue.d.ts +2 -0
- package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +99 -100
- package/dist/components/BbDropdown/BbDropdown.vue.d.ts +2 -2
- package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +208 -201
- package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +225 -208
- package/dist/components/BbDropdown/DropdownPipelineResolver.vue_vue_type_script_setup_true_lang.js +21 -21
- package/dist/components/BbDropdown/types.d.ts +20 -5
- package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +5 -5
- package/dist/components/BbIcon/BbIcon.vue_vue_type_script_setup_true_lang.js +46 -46
- package/dist/components/BbIcon/iconCache.d.ts +33 -0
- package/dist/components/BbIcon/iconCache.js +17 -0
- package/dist/components/BbNumberInput/BbNumberInput.vue.d.ts +1 -1
- package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +15 -15
- package/dist/components/BbOffCanvas/BbOffCanvas.vue.d.ts +1 -1
- package/dist/components/BbOffCanvas/BbOffCanvas.vue_vue_type_script_setup_true_lang.js +254 -208
- package/dist/components/BbOffCanvas/types.d.ts +30 -5
- package/dist/components/BbPagination/BbPagination.vue.d.ts +1 -1
- package/dist/components/BbPopover/BbPopover.vue.d.ts +2 -2
- package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +149 -146
- package/dist/components/BbPopover/types.d.ts +3 -2
- package/dist/components/BbRadioGroup/types.d.ts +3 -1
- package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +27 -23
- package/dist/components/BbSelect/types.d.ts +32 -0
- package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +221 -213
- package/dist/components/BbSlider/BbSlider.vue.d.ts +1 -1
- package/dist/components/BbSlider/BbSlider.vue_vue_type_script_setup_true_lang.js +20 -20
- package/dist/components/BbTable/BbTable.vue.d.ts +8 -4
- package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +1319 -616
- package/dist/components/BbTable/BbTableDataRow.d.ts +162 -0
- package/dist/components/BbTable/BbTableDataRow.js +136 -0
- package/dist/components/BbTable/BbTableExpandRow.d.ts +73 -0
- package/dist/components/BbTable/BbTableExpandRow.js +52 -0
- package/dist/components/BbTable/types.d.ts +247 -86
- package/dist/components/BbTable/utils.d.ts +87 -4
- package/dist/components/BbTable/utils.js +71 -36
- package/dist/components/BbTabs/types.d.ts +0 -8
- package/dist/components/BbTag/BbTag.vue.d.ts +1 -1
- package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +18 -18
- package/dist/components/BbTextInput/BbTextInput.vue.d.ts +1 -1
- package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +18 -18
- package/dist/components/BbTextarea/BbTextarea.vue.d.ts +1 -1
- package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +54 -54
- package/dist/components/BbTimePicker/BbTimePicker.vue.d.ts +1 -1
- package/dist/components/BbTimePicker/BbTimePicker.vue_vue_type_script_setup_true_lang.js +80 -80
- package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +61 -61
- package/dist/components/BbToast/BbToast.vue_vue_type_script_setup_true_lang.js +17 -17
- package/dist/components/BbToast/BbToastMessage.vue_vue_type_script_setup_true_lang.js +13 -13
- package/dist/components/BbTooltip/types.d.ts +5 -1
- package/dist/components/ChipsBox/ChipsBox.vue_vue_type_script_setup_true_lang.js +17 -17
- package/dist/components/ClearableButton/ClearableButton.vue_vue_type_script_setup_true_lang.js +5 -5
- package/dist/components/CommonPopover/CommonPopover.vue_vue_type_script_setup_true_lang.js +2 -1
- package/dist/components/FlatListBox/FlatListBox.vue_vue_type_script_setup_true_lang.js +83 -83
- package/dist/components/GroupedListBox/GroupedListBox.vue_vue_type_script_setup_true_lang.js +56 -56
- package/dist/composables/useBaseOptions.js +30 -20
- package/dist/composables/useBbConfig.d.ts +27 -6
- package/dist/composables/useBbConfig.js +8 -2
- package/dist/composables/useConfig.d.ts +59 -0
- package/dist/composables/useConfig.js +9 -0
- package/dist/composables/useItemsGetter.d.ts +11 -0
- package/dist/composables/useItemsGetter.js +44 -18
- package/dist/composables/useLocale.js +10 -7
- package/dist/composables/useMobile.js +5 -5
- package/dist/composables/usePrefill.d.ts +21 -2
- package/dist/composables/usePrefill.js +25 -19
- package/dist/composables/useSsrState.d.ts +20 -0
- package/dist/composables/useSsrState.js +13 -0
- package/dist/composables/useToast.js +5 -5
- package/dist/deprecation/ai-deprecations.json.d.ts +99 -11
- package/dist/deprecation/ai-deprecations.json.js +1 -1
- package/dist/directives/bbDropdown.d.ts +15 -4
- package/dist/directives/bbDropdown.js +31 -9
- package/dist/directives/createPopoverDirective.d.ts +62 -0
- package/dist/directives/createPopoverDirective.js +63 -23
- package/dist/i18n/locales/cs.json +4 -1
- package/dist/i18n/locales/da.json +4 -1
- package/dist/i18n/locales/de.json +4 -1
- package/dist/i18n/locales/el.json +4 -1
- package/dist/i18n/locales/en.json +4 -1
- package/dist/i18n/locales/es.json +4 -1
- package/dist/i18n/locales/fi.json +4 -1
- package/dist/i18n/locales/fr.json +4 -1
- package/dist/i18n/locales/hu.json +4 -1
- package/dist/i18n/locales/it.json +4 -1
- package/dist/i18n/locales/ja.json +4 -1
- package/dist/i18n/locales/ko.json +4 -1
- package/dist/i18n/locales/nb.json +4 -1
- package/dist/i18n/locales/nl.json +4 -1
- package/dist/i18n/locales/pl.json +4 -1
- package/dist/i18n/locales/pt.json +4 -1
- package/dist/i18n/locales/ro.json +4 -1
- package/dist/i18n/locales/ru.json +4 -1
- package/dist/i18n/locales/sv.json +4 -1
- package/dist/i18n/locales/tr.json +4 -1
- package/dist/i18n/locales/uk.json +4 -1
- package/dist/i18n/locales/zh-cn.json +4 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.js +69 -67
- package/dist/llms-full.txt +3712 -1381
- package/dist/llms-medium.txt +113 -43
- package/dist/llms.txt +7 -6
- package/dist/locale-blueprint.json +4 -1
- package/dist/nuxt-auto-imports.d.ts +100 -0
- package/dist/nuxt-auto-imports.js +55 -0
- package/dist/nuxt-module.d.ts +22 -1
- package/dist/nuxt.js +22 -8
- package/dist/plugin.d.ts +10 -1
- package/dist/plugin.js +20 -19
- package/dist/runtime/nuxt-plugin.js +28 -21
- package/dist/styles.css +1 -1
- package/dist/utilities/misc/listboxMetrics.d.ts +3 -3
- package/dist/utilities/misc/listboxMetrics.js +2 -2
- package/dist/utilities/misc/ssrStateInjectionKey.d.ts +42 -0
- package/dist/utilities/misc/ssrStateInjectionKey.js +4 -0
- package/dist/validated/BbForm.vue_vue_type_script_setup_true_lang.js +45 -27
- package/dist/validated/BbSelect.vue.d.ts +2 -0
- package/dist/validated/BbSelect.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/validated/useValidatedField.js +25 -23
- package/dist/vite.js +6 -2
- package/llms.txt +8 -7
- package/package.json +2 -2
- package/scripts/lib/eslint-plugin.d.ts +19 -1
- package/scripts/lib/eslint-plugin.mjs +146 -0
- package/scripts/lib/html-attributes.mjs +91 -0
- package/scripts/lib/validate-bb-markup.mjs +59 -4
- package/dist/assets/svgs/sort.svg_raw.js +0 -4
- package/dist/components/BbBadge/BadgeAppendIcon.vue.d.ts +0 -3
- package/dist/components/BbBadge/BadgeAppendIcon.vue.js +0 -5
- package/dist/components/BbBadge/BadgeAppendIcon.vue_vue_type_script_setup_true_lang.js +0 -22
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ Vue 3 component library used across BitBoss products. It ships typed building bl
|
|
|
6
6
|
|
|
7
7
|
## What’s in the package
|
|
8
8
|
|
|
9
|
-
Published artifacts are **`dist/`** (ESM JavaScript, `.d.ts`, the two stylesheets **`styles.css`** and **`reset.css`**, and the `dist/ai/` knowledge base), plus the **`bin/`** CLI, **`scripts/lib/`** (ESLint plugin and markup validator), the root **`llms.txt`**, and this **README**. The sections below match how the library is organised in code and in the [documentation](https://ui-components
|
|
9
|
+
Published artifacts are **`dist/`** (ESM JavaScript, `.d.ts`, the two stylesheets **`styles.css`** and **`reset.css`**, and the `dist/ai/` knowledge base), plus the **`bin/`** CLI, **`scripts/lib/`** (ESLint plugin and markup validator), the root **`llms.txt`**, and this **README**. The sections below match how the library is organised in code and in the [documentation](https://ui-components.bitboss.it/).
|
|
10
10
|
|
|
11
11
|
### Styles
|
|
12
12
|
|
|
@@ -36,46 +36,53 @@ Full detail: `ai/guides/installation-and-plugin-setup.md`.
|
|
|
36
36
|
|
|
37
37
|
### Composables
|
|
38
38
|
|
|
39
|
-
| Composable
|
|
40
|
-
|
|
|
41
|
-
| `useBbConfig`
|
|
42
|
-
| `
|
|
43
|
-
| `
|
|
44
|
-
| `
|
|
45
|
-
| `
|
|
46
|
-
| `
|
|
47
|
-
| `
|
|
48
|
-
| `
|
|
39
|
+
| Composable | Role |
|
|
40
|
+
| ---------------------- | --------------------------------------------------------------------- |
|
|
41
|
+
| `useBbConfig` | Global options for the kit (locale, defaults, etc.). |
|
|
42
|
+
| `useBbDropdownContext` | Read a `BbDropdown`'s resolved groups/selections from anywhere by id. |
|
|
43
|
+
| `useBbTableContext` | Imperative handle onto a `BbTable` by id. |
|
|
44
|
+
| `useBbTabsContext` | Programmatic tab selection for a `BbTabs` by id. |
|
|
45
|
+
| `useConfirm` | Programmatic confirm / modal flows. |
|
|
46
|
+
| `useCountdown` | Countdown timer state. |
|
|
47
|
+
| `useId` | SSR-safe unique ids. |
|
|
48
|
+
| `useMobile` | Mobile / viewport-oriented behaviour. |
|
|
49
|
+
| `useSafeArea` | Claim a screen edge for a docked panel so toasts avoid it. |
|
|
50
|
+
| `useToast` | Toast notifications API. |
|
|
49
51
|
|
|
50
|
-
###
|
|
52
|
+
### Utilities
|
|
51
53
|
|
|
52
|
-
|
|
54
|
+
- **`slotKey`** — the normalizer behind every dynamic per-item named slot (`BbDropdown`, `BbTable`, `BbTabs`, `BbTree`, `BbBreadcrumbs`). Import it when building slot names programmatically instead of restating the rule.
|
|
53
55
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
### Directives
|
|
57
|
+
|
|
58
|
+
`vBbTooltip`, `vBbDropdown`, `vBbColor`, `vBbDate`, `vBbTime` — plus a
|
|
59
|
+
`Bb*DirectivePlugin` for each, for app-level registration. Prefer the directive
|
|
60
|
+
over the component for simple no-slot cases.
|
|
61
|
+
|
|
62
|
+
### Base\* primitives
|
|
63
|
+
|
|
64
|
+
The styled `Base*` input controls and the input chrome (`BbBaseInputContainer`,
|
|
65
|
+
`CommonInputWrapper` — label, prepend/append, prefix/suffix, clear button,
|
|
66
|
+
spacing) are **internal composition layers and are not exported**. Use the full
|
|
67
|
+
public inputs (`BbTextInput`, `BbSelect`, …); pass `hideLabel` for a
|
|
68
|
+
bare/inline control. The exported primitives are **`BbBaseButton`** and the
|
|
69
|
+
presentational glyphs **`BbBaseCheckboxIcon`**, **`BbBaseRadioIcon`**,
|
|
70
|
+
**`BbBaseSwitchIcon`**.
|
|
60
71
|
|
|
61
72
|
### Bb\* components (composed)
|
|
62
73
|
|
|
63
74
|
Product-ready components with labels, hints, errors, and consistent styling:
|
|
64
75
|
|
|
65
|
-
- **Forms & actions:** `BbTextInput`, `BbTextarea`, `BbNumberInput`, `BbSelect`, `BbCheckbox`, `BbCheckboxGroup`, `BbRadio`, `BbRadioGroup`, `BbSwitch`, `BbSwitchGroup`, `BbSlider`, `BbRating`, `BbColorInput`, `BbDatePickerInput`, `BbButton`, `BbBadge`, `BbIndicator`, `BbTag`, `BbDropdown`, `BbDropdownButton`
|
|
66
|
-
- **Feedback:** `BbAlert`, `BbProgress`, `BbSpinner`, `BbToast`, `BbTooltip`
|
|
67
|
-
- **Layout & navigation:** `BbAccordion`, `BbCollapsible`, `
|
|
76
|
+
- **Forms & actions:** `BbTextInput`, `BbTextarea`, `BbNumberInput`, `BbSelect`, `BbSelectPopover`, `BbCheckbox`, `BbCheckboxGroup`, `BbRadio`, `BbRadioGroup`, `BbSwitch`, `BbSwitchGroup`, `BbSlider`, `BbRating`, `BbColorInput`, `BbColorPalette`, `BbDatePicker`, `BbDatePickerInput`, `BbTimePicker`, `BbTimePickerInput`, `BbButton`, `BbBadge`, `BbBadgeButton`, `BbIndicator`, `BbTag`, `BbDropdown`, `BbDropdownGroup`, `BbDropdownButton`, `BbAsterisk`
|
|
77
|
+
- **Feedback:** `BbAlert`, `BbProgress`, `BbSpinner`, `BbToast`, `BbToastPortal`, `BbTooltip`
|
|
78
|
+
- **Layout & navigation:** `BbAccordion`, `BbCollapsible`, `BbTabs` (+ `BbTabsRoot`, `BbTabsList`, `BbTabsPanes`), `BbBreadcrumbs`, `BbPagination`, `BbSmoothHeight`
|
|
68
79
|
- **Overlays & panels:** `BbDialog`, `BbConfirm`, `BbConfirmPortal`, `BbOffCanvas`, `BbPopover`
|
|
69
80
|
- **Data:** `BbTable`, `BbTree`
|
|
70
81
|
- **Media & files:** `BbAvatar`, `BbDropzone`, `BbIcon`
|
|
71
82
|
|
|
72
|
-
### Shared input shells _(internal layout primitives - not for direct consumer use)_
|
|
73
|
-
|
|
74
|
-
- **`CommonInputWrapper`** — the internal input-chrome primitive (label, prepend/append, prefix/suffix, clear button, spacing) that every `Bb*` input composes. Not exported; use the full public inputs (`BbTextInput`, `BbSelect`, …).
|
|
75
|
-
|
|
76
83
|
### Exported component types
|
|
77
84
|
|
|
78
|
-
For
|
|
85
|
+
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.
|
|
79
86
|
|
|
80
87
|
---
|
|
81
88
|
|
|
@@ -83,7 +90,7 @@ For most **Base\*** and **Bb\*** components, the package exports matching **prop
|
|
|
83
90
|
|
|
84
91
|
**Primary docs (components, props, guides):**
|
|
85
92
|
|
|
86
|
-
- [BitBoss UI documentation](https://ui-components
|
|
93
|
+
- [BitBoss UI documentation](https://ui-components.bitboss.it/) — site with guides and API reference.
|
|
87
94
|
|
|
88
95
|
**For AI coding agents:**
|
|
89
96
|
|
|
@@ -93,10 +100,10 @@ v3 prerelease; pin an exact version (`bitboss-ui@3.0.0-alpha.5`) for stable
|
|
|
93
100
|
links. Sizes grow with the catalogue — treat them as the current order of
|
|
94
101
|
magnitude, not a contract.
|
|
95
102
|
|
|
96
|
-
- [Core knowledge base](https://
|
|
97
|
-
- [Index](https://
|
|
98
|
-
- [components.json](https://
|
|
99
|
-
- [Complete knowledge base](https://
|
|
103
|
+
- [Core knowledge base](https://llms-bitboss-ui.bitboss.it/dist/llms-medium.txt) (~110 KB) — **start here if you can only fetch one file.** Hard rules, setup, component picker, design language, and the full component catalogue.
|
|
104
|
+
- [Index](https://llms-bitboss-ui.bitboss.it/llms.txt) (~19 KB) — link index into every document.
|
|
105
|
+
- [components.json](https://llms-bitboss-ui.bitboss.it/dist/ai/components.json) — machine-readable API surface, for programmatic validation.
|
|
106
|
+
- [Complete knowledge base](https://llms-bitboss-ui.bitboss.it/dist/llms-full.txt) (~3.2 MB) — everything concatenated. Bulk ingestion only; too large to prompt with.
|
|
100
107
|
|
|
101
108
|
Already installed? Prefer the local copy under `node_modules/bitboss-ui/dist/ai/`,
|
|
102
109
|
run `npx bitboss-ui ai-init` to write agent pointers, and
|
|
@@ -321,6 +328,38 @@ migrations — a value that must move to a slot, directive, or CSS — are repor
|
|
|
321
328
|
with a migration-guide link but left for you. Run `eslint --fix`, then the
|
|
322
329
|
remaining reports are exactly the by-hand cases.
|
|
323
330
|
|
|
331
|
+
#### The one v2 break a codemod cannot own: `reverse`
|
|
332
|
+
|
|
333
|
+
`reverse` on `BbCheckbox` / `BbRadio` / `BbSwitch` kept its **name** and
|
|
334
|
+
inverted its **meaning** in v3. Both versions render the same default layout,
|
|
335
|
+
so only explicit values moved:
|
|
336
|
+
|
|
337
|
+
| v2 | v3 |
|
|
338
|
+
| ----------------------------- | --------- |
|
|
339
|
+
| `:reverse="false"` | `reverse` |
|
|
340
|
+
| `reverse` / `:reverse="true"` | delete it |
|
|
341
|
+
|
|
342
|
+
That is invisible to every other check — `:reverse="false"` is a declared prop,
|
|
343
|
+
correctly typed, holding its own default value — and it cannot go in the
|
|
344
|
+
rename table above, because the table is keyed by prop _name_: an entry for
|
|
345
|
+
`reverse` would rewrite the legitimate v3 spellings too.
|
|
346
|
+
|
|
347
|
+
So it has its own rule, `bitboss-ui/no-reverse-false` (in `recommended`). It
|
|
348
|
+
flags only a **literal** `:reverse="false"` and offers both corrections as
|
|
349
|
+
editor suggestions — a dynamic `:reverse="isRtl"` that merely evaluates false
|
|
350
|
+
is left alone. For a bulk sweep of a v2 codebase, opt into the fix:
|
|
351
|
+
|
|
352
|
+
```js
|
|
353
|
+
{
|
|
354
|
+
rules: {
|
|
355
|
+
'bitboss-ui/no-reverse-false': ['error', { assumeV2: true }],
|
|
356
|
+
},
|
|
357
|
+
}
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
`assumeV2` is off by default because the two readings produce opposite
|
|
361
|
+
layouts — turn it on only for files you know came from v2, then turn it off.
|
|
362
|
+
|
|
324
363
|
Every real HTML attribute (plus `aria-*` / `data-*`) falls through untouched, so
|
|
325
364
|
attribute inheritance is never flagged. Escape hatches when you do need one:
|
|
326
365
|
|
|
@@ -399,7 +438,7 @@ MIT — see [`LICENSE`](LICENSE).
|
|
|
399
438
|
|
|
400
439
|
## Support
|
|
401
440
|
|
|
402
|
-
- **Usage and APIs:** see the [documentation](https://ui-components
|
|
441
|
+
- **Usage and APIs:** see the [documentation](https://ui-components.bitboss.it/).
|
|
403
442
|
- **Company / licensing / commercial:** [BitBoss](https://www.bitboss.it/).
|
|
404
443
|
|
|
405
444
|
### Reporting a bug
|
package/dist/ai/BbAccordion.md
CHANGED
|
@@ -529,10 +529,10 @@ is generated for you.
|
|
|
529
529
|
|
|
530
530
|
| Prop | Type | Default | Required | Description |
|
|
531
531
|
| --- | --- | --- | --- | --- |
|
|
532
|
-
| `eager` | `boolean \| undefined` |
|
|
532
|
+
| `eager` | `boolean \| undefined` | `false` | | Prevents rendering content before it's made visible. |
|
|
533
533
|
| `id` | `string \| undefined` | | | The identifier of the component. |
|
|
534
534
|
| `modelValue` | `boolean \| undefined` | `false` | | Used by v-model to trigger opening / closing the collapsible. An accordion with no `v-model` starts closed. |
|
|
535
|
-
| `transitionDuration` | `number \| undefined` | `
|
|
535
|
+
| `transitionDuration` | `number \| undefined` | `250` | | How long the transition has to last in milliseconds |
|
|
536
536
|
|
|
537
537
|
## Events
|
|
538
538
|
|
|
@@ -546,4 +546,4 @@ is generated for you.
|
|
|
546
546
|
## See Also
|
|
547
547
|
|
|
548
548
|
- [BbCollapsible](./BbCollapsible.md) — Toggles visibility of collapsible content blocks.
|
|
549
|
-
- [BbTabs](./BbTabs.md) — Switches between tabbed content views (shadcn-like strip;
|
|
549
|
+
- [BbTabs](./BbTabs.md) — Switches between tabbed content views (shadcn-like strip; the co-located BbTabsRoot / BbTabsList / BbTabsPanes exports enable split layouts).
|
package/dist/ai/BbAlert.md
CHANGED
|
@@ -139,8 +139,12 @@ Bind `v-model` when the visibility matters to you:
|
|
|
139
139
|
</p>
|
|
140
140
|
</div>
|
|
141
141
|
|
|
142
|
+
<!--
|
|
143
|
+
`v-model` alone owns the dismissal, so the alert plays its own leave
|
|
144
|
+
transition. Pairing it with a `v-if` on the SAME element unmounts the
|
|
145
|
+
node the instant the model flips and the animation never runs.
|
|
146
|
+
-->
|
|
142
147
|
<BbAlert
|
|
143
|
-
v-if="showBanner"
|
|
144
148
|
v-model="showBanner"
|
|
145
149
|
close-label="Dismiss email verification reminder"
|
|
146
150
|
icon="lucide:mail"
|
|
@@ -149,7 +153,7 @@ Bind `v-model` when the visibility matters to you:
|
|
|
149
153
|
variant="primary"
|
|
150
154
|
/>
|
|
151
155
|
<BbButton
|
|
152
|
-
v-
|
|
156
|
+
v-if="!showBanner"
|
|
153
157
|
prepend:icon="lucide:mail"
|
|
154
158
|
variant="ghost"
|
|
155
159
|
@click="showBanner = true"
|
|
@@ -392,14 +396,14 @@ const publish = () => {
|
|
|
392
396
|
| --- | --- | --- | --- | --- |
|
|
393
397
|
| `ariaLive` | `"off" \| "polite" \| "assertive" \| undefined` | | | ARIA live region politeness. Defaults to `'assertive'` for destructive/warning variants, otherwise `'polite'`. |
|
|
394
398
|
| `closeLabel` | `string \| undefined` | | | Visually hidden string used to label the close button. |
|
|
395
|
-
| `hideClose` | `boolean \| undefined` |
|
|
399
|
+
| `hideClose` | `boolean \| undefined` | `false` | | Defines whether to hide the close button. |
|
|
396
400
|
| `icon` | `string \| undefined` | | | Name of a registered icon to use, or a full raw `<svg>` string (e.g. an SVG file imported with `?raw`). |
|
|
397
401
|
| `iconSize` | `number \| ({ size?: any; } & string) \| keyof Sizes \| undefined` | `"16"` | | Size of the icon to use. |
|
|
398
402
|
| `modelValue` | `any` | `true` | | Used by v-model, set type to any to avoid Vue casting it as false. Alerts are visible on mount; the model dismisses them. |
|
|
399
403
|
| `role` | `"alert" \| "status" \| undefined` | | | Accessibility role for the alert container. Defaults to `'alert'` for destructive/warning variants, otherwise `'status'`. |
|
|
400
404
|
| `text` | `string \| undefined` | | | Text content of the alert body. |
|
|
401
405
|
| `title` | `string \| undefined` | | | Text content of the alert title. |
|
|
402
|
-
| `transitionDuration` | `number \| undefined` | `
|
|
406
|
+
| `transitionDuration` | `number \| undefined` | `250` | | Transition duration in milliseconds for enter/leave. |
|
|
403
407
|
| `variant` | `keyof AlertVariantRegistry \| undefined` | `"outline"` | | Visual variant of the alert. |
|
|
404
408
|
|
|
405
409
|
## Events
|
|
@@ -414,4 +418,4 @@ const publish = () => {
|
|
|
414
418
|
|
|
415
419
|
## See Also
|
|
416
420
|
|
|
417
|
-
- [BbToast](./BbToast.md) — Shows transient notification messages.
|
|
421
|
+
- [BbToast](./BbToast.md) — Shows transient notification messages (includes the co-located BbToastPortal export).
|
package/dist/ai/BbAsterisk.md
CHANGED
|
@@ -33,6 +33,23 @@ you compose a bespoke label outside those controls.
|
|
|
33
33
|
Wrap it in an element with your own spacing if the default `margin-inline-start`
|
|
34
34
|
doesn't suit the layout; the glyph inherits nothing else from its surroundings.
|
|
35
35
|
|
|
36
|
+
### It is `aria-hidden` — the control carries the requirement
|
|
37
|
+
|
|
38
|
+
The span renders `aria-hidden="true"`, so **screen readers never announce it**.
|
|
39
|
+
That is deliberate: an asterisk read aloud as "star" is noise, and a marker
|
|
40
|
+
placed in a label is not a reliable way to convey a requirement. What actually
|
|
41
|
+
carries mandatoriness to assistive tech is the **`required` attribute on the
|
|
42
|
+
control** — which the library sets from your `required` prop.
|
|
43
|
+
|
|
44
|
+
The practical consequence: the marker is a _visual_ affordance only, and
|
|
45
|
+
`required` is the real thing. Never ship a field that shows the asterisk
|
|
46
|
+
without `required` (sighted users see a requirement that assistive tech cannot
|
|
47
|
+
perceive), and never assume the asterisk is doing accessibility work.
|
|
48
|
+
|
|
49
|
+
`showAsterisk` on the validated controls is also gated on the plugin option, so
|
|
50
|
+
with `requiredAsterisk: false` there is no way to render the marker through
|
|
51
|
+
them at all — placing `BbAsterisk` by hand is then the only route.
|
|
52
|
+
|
|
36
53
|
## Props
|
|
37
54
|
|
|
38
55
|
- None.
|
package/dist/ai/BbAvatar.md
CHANGED
|
@@ -83,8 +83,17 @@ not hero examples.
|
|
|
83
83
|
The fallback surface is **always painted with the primary design token** —
|
|
84
84
|
`--bb-primary` behind, `--bb-primary-fg` for the initials/icon, the same
|
|
85
85
|
pairing as a primary button — so initials stay legible in light and dark and
|
|
86
|
-
every avatar matches your theme automatically.
|
|
87
|
-
|
|
86
|
+
every avatar matches your theme automatically.
|
|
87
|
+
|
|
88
|
+
There is no tinting **prop**, but there are three component locals on
|
|
89
|
+
`.bb-avatar` for the cases the theme cannot cover — a per-tenant or
|
|
90
|
+
per-user colour: `--bg-color` (fallback surface, defaults to `--bb-primary`),
|
|
91
|
+
`--text-color` (initials, `--bb-primary-fg`) and `--default-icon-color` (the
|
|
92
|
+
placeholder glyph). Set them on the avatar or on a class you put on it:
|
|
93
|
+
|
|
94
|
+
```vue
|
|
95
|
+
<BbAvatar text="Acme Studio" :style="{ '--bg-color': tenant.color }" />
|
|
96
|
+
```
|
|
88
97
|
|
|
89
98
|
**The size scale**
|
|
90
99
|
|
|
@@ -512,4 +521,4 @@ available in visible text or an adjacent label.
|
|
|
512
521
|
|
|
513
522
|
## See Also
|
|
514
523
|
|
|
515
|
-
- [BbBadge](./BbBadge.md) — Displays compact status
|
|
524
|
+
- [BbBadge](./BbBadge.md) — Displays a compact inline status counter or label. It sits in the flow — for a bubble or dot anchored OVER another element, use BbIndicator (includes the co-located BbBadgeButton export).
|
package/dist/ai/BbBadge.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
- Safety level: **Consumer API**
|
|
6
6
|
- Group: **Feedback**
|
|
7
|
-
- Description: Displays compact status
|
|
7
|
+
- Description: Displays a compact inline status counter or label. It sits in the flow — for a bubble or dot anchored OVER another element, use BbIndicator (includes the co-located BbBadgeButton export).
|
|
8
8
|
- Usage rule: Prefer this component for consumer-facing implementations.
|
|
9
9
|
- Implementation source (only when the contract below is not enough): [source/BbBadge.md](./source/BbBadge.md)
|
|
10
10
|
|
|
@@ -309,9 +309,12 @@ state in the handler. Prefer `secondary` / `outline` for filter chips; reserve
|
|
|
309
309
|
```
|
|
310
310
|
|
|
311
311
|
The clear button inherits the variant's foreground, so it reads on every surface
|
|
312
|
-
— light on a filled `primary`, dark on a `secondary`/`outline`.
|
|
313
|
-
|
|
314
|
-
|
|
312
|
+
— light on a filled `primary`, dark on a `secondary`/`outline`. By default its
|
|
313
|
+
accessible name composes the localized verb with the badge's own text — a chip
|
|
314
|
+
reading "Italy" announces "Remove Italy", with no per-chip wiring. Set
|
|
315
|
+
`clearable-label` only when that composition is wrong for the context (it
|
|
316
|
+
replaces the whole name). With a `BbBadgeButton` body the composition is
|
|
317
|
+
skipped and the button falls back to the bare localized `badge.clearLabel`.
|
|
315
318
|
|
|
316
319
|
Icons combine with `clearable`: a **`prepend:icon`** stays (it leads the label);
|
|
317
320
|
an **`append:icon`** shares the trailing slot with the clear button — the icon
|
|
@@ -695,8 +698,10 @@ selectors like `.bb-badge > .bb-badge__content`, which no longer match.
|
|
|
695
698
|
- An icon-only badge (`icon`) has no visible text; the default slot is rendered
|
|
696
699
|
as a screen-reader-only label — never leave it empty. In button mode that
|
|
697
700
|
label is also the **button's accessible name**, so it is doubly required.
|
|
698
|
-
- The `clearable` button
|
|
699
|
-
localized `badge.clearLabel`
|
|
701
|
+
- The `clearable` button's accessible name is composed by default: the
|
|
702
|
+
localized `badge.clearLabel` verb plus the badge body's text ("Remove
|
|
703
|
+
Italy"). `clearable-label` replaces the whole name; with a `BbBadgeButton`
|
|
704
|
+
body the composition is skipped (bare verb only).
|
|
700
705
|
- A clickable **and** clearable badge is two tab stops (body, then clear). That
|
|
701
706
|
is intended: two actions, two controls.
|
|
702
707
|
- Keyboard focus on either control rings the whole pill, so the focused target
|
|
@@ -709,10 +714,10 @@ selectors like `.bb-badge > .bb-badge__content`, which no longer match.
|
|
|
709
714
|
| Prop | Type | Default | Required | Description |
|
|
710
715
|
| --- | --- | --- | --- | --- |
|
|
711
716
|
| `append:icon` | `string \| undefined` | | | Icon rendered after the label. On a `clearable` badge it shares the trailing slot with the clear button: the icon shows at rest and the clear button reveals over it on hover/focus. |
|
|
712
|
-
| `clearable` | `boolean \| undefined` |
|
|
713
|
-
| `clearableLabel` | `string \| undefined` | | | Accessible label for the clear button.
|
|
717
|
+
| `clearable` | `boolean \| undefined` | `false` | | Renders a trailing clear button and emits `click:clear` when pressed — turns the badge into a dismissible token (the pattern formerly served by `BbChip`). |
|
|
718
|
+
| `clearableLabel` | `string \| undefined` | | | Accessible label for the clear button. Rarely needed: unset, the name is **composed** from the localized `badge.clearLabel` verb and the badge's own text — "Remove Italy", not a bare "Remove" — which is already the right name in almost ever… |
|
|
714
719
|
| `icon` | `string \| undefined` | | | Renders an icon-only badge. When set, `prepend:icon` / `append:icon` are ignored and the default slot becomes the badge's visually hidden accessible label — always provide it. |
|
|
715
|
-
| `loading` | `boolean \| undefined` |
|
|
720
|
+
| `loading` | `boolean \| undefined` | `false` | | Shows a spinner in place of the leftmost icon, mirroring `BbButton`: it replaces the `icon` glyph or the `prepend:icon` when one is set; when the `append:icon` is the sole icon it replaces that instead (e.g. a select-activator chevron while… |
|
|
716
721
|
| `prepend:icon` | `string \| undefined` | | | Icon rendered before the label. |
|
|
717
722
|
| `size` | `keyof Sizes \| undefined` | `"md"` | | Preset size of the badge. |
|
|
718
723
|
| `variant` | `keyof BadgeVariantRegistry \| undefined` | `"primary"` | | Visual variant: `primary`, `secondary`, `destructive`, or `outline`. Register more via the vite plugin `badgeVariants` option and style `.bb-badge--<variant>` (set `--bg` / `--color`). |
|
|
@@ -727,6 +732,6 @@ selectors like `.bb-badge > .bb-badge__content`, which no longer match.
|
|
|
727
732
|
|
|
728
733
|
## See Also
|
|
729
734
|
|
|
730
|
-
- [BbIndicator](./BbIndicator.md) — Anchors a notification bubble (count/short text) or a dot over a wrapped element
|
|
735
|
+
- [BbIndicator](./BbIndicator.md) — Anchors a notification bubble (count/short text) or a dot over a wrapped element.
|
|
731
736
|
- [BbAvatar](./BbAvatar.md) — Displays an avatar and has a fallback content slot.
|
|
732
737
|
- [BbBadgeButton](./BbBadgeButton.md) — Makes a badge's body interactive: slotted as a direct child of BbBadge it renders the badge body as a real button/link with full BbBaseButton parity, leaving `clearable` free to remain a separate control.
|
package/dist/ai/BbBadgeButton.md
CHANGED
|
@@ -12,21 +12,21 @@
|
|
|
12
12
|
|
|
13
13
|
| Prop | Type | Default | Required | Description |
|
|
14
14
|
| --- | --- | --- | --- | --- |
|
|
15
|
-
| `activeClass` | `string \| undefined` |
|
|
16
|
-
| `ariaCurrentValue` | `"page" \| "step" \| "location" \| "date" \| "time" \| "true" \| "false" \| undefined` |
|
|
17
|
-
| `async` | `boolean \| undefined` |
|
|
15
|
+
| `activeClass` | `string \| undefined` | `'router-link-active'` | | CSS class applied when the component renders as a link and the target of the link is the current route or the url matches partially. Ported for Inertia compatibility. |
|
|
16
|
+
| `ariaCurrentValue` | `"page" \| "step" \| "location" \| "date" \| "time" \| "true" \| "false" \| undefined` | `'page'` | | Value forwarded to the `aria-current` attribute when the component renders as a router link and the target route is an exact match. Use to communicate the current location to assistive technologies. |
|
|
17
|
+
| `async` | `boolean \| undefined` | `false` | | Inertia: runs the visit without blocking — the page stays interactive and several async visits can be in flight at once. |
|
|
18
18
|
| `cacheFor` | `string \| number \| (string \| number)[] \| undefined` | | | Inertia: how long a prefetched response stays fresh before it is re-fetched. A single duration, or `[staleAfter, expiresAfter]`. Typed platform-agnostically (matching BbButton) so the library's types never require `@inertiajs/vue3` to be in… |
|
|
19
19
|
| `cacheTags` | `string \| string[] \| undefined` | | | Inertia: tags to file this visit's prefetch cache under, so a later request can invalidate the whole tagged group. |
|
|
20
20
|
| `component` | `string \| undefined` | | | Inertia: the page component this visit resolves to. Rarely set by hand — the server normally decides it. |
|
|
21
21
|
| `data` | `object \| undefined` | | | Request payload forwarded to Inertia when navigating via `href` in an Inertia-enabled app. Ignored when not using Inertia. |
|
|
22
|
-
| `disabled` | `boolean \| undefined` |
|
|
22
|
+
| `disabled` | `boolean \| undefined` | `false` | | Disables user interaction. - When rendering as a native button, sets the `disabled` attribute. - When rendering as a link (anchor/Inertia), removes `href`, adds `aria-disabled="true"`, and prevents navigation while keeping focusable semanti… |
|
|
23
23
|
| `download` | `string \| boolean \| undefined` | | | Marks an `href` link as a download. Renders a plain `<a download>` doing a native navigation — never an Inertia/router visit — so file downloads (including same-origin, `blob:` and `data:` URLs) work. Pass a string to set the suggested file… |
|
|
24
|
-
| `exactActiveClass` | `string \| undefined` |
|
|
24
|
+
| `exactActiveClass` | `string \| undefined` | `'router-link-exact-active'` | | CSS class applied when the component renders as a link and the target of the link and the url matches exactly. Ported for Inertia compatibility. |
|
|
25
25
|
| `except` | `string[] \| undefined` | | | Inertia: the inverse of `only` — properties to EXCLUDE from a partial reload. Pass one or the other, not both. |
|
|
26
|
-
| `external` | `boolean \| undefined` |
|
|
26
|
+
| `external` | `boolean \| undefined` | `false` | | Forces an `href` link to render as a plain `<a>` (native navigation), bypassing Inertia/router interception — the same intent as Nuxt's `NuxtLink` `external`. Use for links outside the SPA. One of the native-anchor signals alongside `target… |
|
|
27
27
|
| `headers` | `object \| undefined` | | | Additional HTTP headers forwarded to Inertia when navigating via `href` in an Inertia-enabled app. |
|
|
28
28
|
| `href` | `string \| undefined` | | | Hyperlink reference used when rendering as an anchor (or as an Inertia link in Inertia-enabled apps). If provided and not disabled, the component renders as an anchor/Inertia link. |
|
|
29
|
-
| `instant` | `boolean \| undefined` |
|
|
29
|
+
| `instant` | `boolean \| undefined` | `false` | | Inertia: navigate optimistically on click and reconcile when the response lands, instead of waiting for the round trip. |
|
|
30
30
|
| `method` | `"get" \| "post" \| "put" \| "patch" \| "delete" \| undefined` | | | HTTP method used for Inertia navigation when `href` is provided in an Inertia-enabled app. Ignored otherwise. |
|
|
31
31
|
| `onBefore` | `(() => void) \| undefined` | | | Lifecycle hook invoked by Inertia right before the request is sent. |
|
|
32
32
|
| `onCancel` | `(() => void) \| undefined` | | | Lifecycle hook invoked by Inertia when a request is cancelled. |
|
|
@@ -41,17 +41,17 @@
|
|
|
41
41
|
| `onSuccess` | `(() => void) \| undefined` | | | Lifecycle hook invoked by Inertia when a request succeeds. |
|
|
42
42
|
| `pageProps` | `Record<string, unknown> \| ((currentProps: Record<string, unknown>, sharedProps: Record<string, unknown>) => Record<string, unknown>) \| null \| undefined` | | | Inertia: props to merge into the next page optimistically, before the server responds. Either an object or a function of the current props. Typed platform-agnostically (matching BbButton) so the library's types never require `@inertiajs/vue… |
|
|
43
43
|
| `prefetch` | `string \| boolean \| string[] \| undefined` | | | Inertia: fetch and cache this link's page ahead of the click. `true` uses the default trigger; a string or list of strings picks them (`'mount'`, `'hover'`, `'click'`). |
|
|
44
|
-
| `preserveScroll` | `boolean \| ((props: Record<string, unknown>) => boolean) \| undefined` |
|
|
45
|
-
| `preserveState` | `boolean \| ((props: Record<string, unknown>) => boolean) \| null \| undefined` |
|
|
46
|
-
| `preserveUrl` | `boolean \| undefined` |
|
|
47
|
-
| `queryStringArrayFormat` | `"brackets" \| "indices" \| undefined` |
|
|
44
|
+
| `preserveScroll` | `boolean \| ((props: Record<string, unknown>) => boolean) \| undefined` | `false` | | Controls whether Inertia should preserve the current scroll position after navigation. Can be a boolean or a predicate receiving the visit props. |
|
|
45
|
+
| `preserveState` | `boolean \| ((props: Record<string, unknown>) => boolean) \| null \| undefined` | `false` | | Controls whether Inertia should preserve the current state after navigation. Can be a boolean or a predicate receiving the visit props. |
|
|
46
|
+
| `preserveUrl` | `boolean \| undefined` | `false` | | Inertia: keep the current URL in the address bar even though the page content changes. |
|
|
47
|
+
| `queryStringArrayFormat` | `"brackets" \| "indices" \| undefined` | `'brackets'` | | Format to use when serializing array values into the query string for Inertia requests. |
|
|
48
48
|
| `rel` | `string \| undefined` | | | Relationship between the current document and the linked resource. Useful for security when opening new tabs (e.g. `noopener noreferrer`). |
|
|
49
|
-
| `replace` | `boolean \| undefined` |
|
|
50
|
-
| `tag` | `ButtonTag \| undefined` |
|
|
49
|
+
| `replace` | `boolean \| undefined` | `false` | | Uses history replacement instead of push navigation. - With Vue Router (`to`), calls `router.replace`. - With Inertia (`href`), performs a replace visit. |
|
|
50
|
+
| `tag` | `ButtonTag \| undefined` | `'button'` | | Element to render for the plain (non-link, non-router) button: - `'button'` (default) — real button semantics and keyboard behavior - `'div'` / `'span'` — a clickable box nested inside another button or link, where a nested `<button>` would… |
|
|
51
51
|
| `target` | `string \| undefined` | | | Target browsing context for anchor/Inertia links (e.g. `_self`, `_blank`). Ignored when rendering as a native button. |
|
|
52
52
|
| `to` | `string \| wt \| bt \| undefined` | | | Route location to navigate to. When provided (and not disabled), the component renders as a Vue Router link. |
|
|
53
|
-
| `type` | `"button" \| "submit" \| "reset" \| undefined` |
|
|
54
|
-
| `viewTransition` | `boolean \| undefined` |
|
|
53
|
+
| `type` | `"button" \| "submit" \| "reset" \| undefined` | `'button'` | | Native `type` attribute used when rendering as a button (e.g. `button`, `submit`, `reset`). |
|
|
54
|
+
| `viewTransition` | `boolean \| undefined` | `false` | | Inertia: run the page swap inside a View Transition, where the browser supports one. |
|
|
55
55
|
|
|
56
56
|
## Events
|
|
57
57
|
|
|
@@ -63,5 +63,5 @@
|
|
|
63
63
|
|
|
64
64
|
## See Also
|
|
65
65
|
|
|
66
|
-
- [BbBadge](./BbBadge.md) — Displays compact status
|
|
66
|
+
- [BbBadge](./BbBadge.md) — Displays a compact inline status counter or label. It sits in the flow — for a bubble or dot anchored OVER another element, use BbIndicator (includes the co-located BbBadgeButton export).
|
|
67
67
|
- [BbBaseButton](./BbBaseButton.md) — Unstyled button/link primitive: element resolution (button/anchor/router link) and the full navigation engine, with no visual chrome. Use for any clickable or navigable surface that is not a variant-first BbButton — cards, list rows, custom links.
|
package/dist/ai/BbBaseButton.md
CHANGED
|
@@ -455,22 +455,22 @@ const sent = ref(false);
|
|
|
455
455
|
|
|
456
456
|
| Prop | Type | Default | Required | Description |
|
|
457
457
|
| --- | --- | --- | --- | --- |
|
|
458
|
-
| `activeClass` | `string \| undefined` |
|
|
459
|
-
| `ariaCurrentValue` | `"page" \| "step" \| "location" \| "date" \| "time" \| "true" \| "false" \| undefined` |
|
|
460
|
-
| `async` | `boolean \| undefined` |
|
|
461
|
-
| `block` | `boolean \| undefined` |
|
|
458
|
+
| `activeClass` | `string \| undefined` | `'router-link-active'` | | CSS class applied when the component renders as a link and the target of the link is the current route or the url matches partially. Ported for Inertia compatibility. |
|
|
459
|
+
| `ariaCurrentValue` | `"page" \| "step" \| "location" \| "date" \| "time" \| "true" \| "false" \| undefined` | `'page'` | | Value forwarded to the `aria-current` attribute when the component renders as a router link and the target route is an exact match. Use to communicate the current location to assistive technologies. |
|
|
460
|
+
| `async` | `boolean \| undefined` | `false` | | Inertia: runs the visit without blocking — the page stays interactive and several async visits can be in flight at once. |
|
|
461
|
+
| `block` | `boolean \| undefined` | `false` | | Makes the component take the full available width (block-level layout). Adds the `bb-base-button--block` modifier class. |
|
|
462
462
|
| `cacheFor` | `string \| number \| (string \| number)[] \| undefined` | | | Inertia: how long a prefetched response stays fresh before it is re-fetched. A single duration, or `[staleAfter, expiresAfter]`. Typed platform-agnostically (matching BbButton) so the library's types never require `@inertiajs/vue3` to be in… |
|
|
463
463
|
| `cacheTags` | `string \| string[] \| undefined` | | | Inertia: tags to file this visit's prefetch cache under, so a later request can invalidate the whole tagged group. |
|
|
464
464
|
| `component` | `string \| undefined` | | | Inertia: the page component this visit resolves to. Rarely set by hand — the server normally decides it. |
|
|
465
465
|
| `data` | `object \| undefined` | | | Request payload forwarded to Inertia when navigating via `href` in an Inertia-enabled app. Ignored when not using Inertia. |
|
|
466
|
-
| `disabled` | `boolean \| undefined` |
|
|
466
|
+
| `disabled` | `boolean \| undefined` | `false` | | Disables user interaction. - When rendering as a native button, sets the `disabled` attribute. - When rendering as a link (anchor/Inertia), removes `href`, adds `aria-disabled="true"`, and prevents navigation while keeping focusable semanti… |
|
|
467
467
|
| `download` | `string \| boolean \| undefined` | | | Marks an `href` link as a download. Renders a plain `<a download>` doing a native navigation — never an Inertia/router visit — so file downloads (including same-origin, `blob:` and `data:` URLs) work. Pass a string to set the suggested file… |
|
|
468
|
-
| `exactActiveClass` | `string \| undefined` |
|
|
468
|
+
| `exactActiveClass` | `string \| undefined` | `'router-link-exact-active'` | | CSS class applied when the component renders as a link and the target of the link and the url matches exactly. Ported for Inertia compatibility. |
|
|
469
469
|
| `except` | `string[] \| undefined` | | | Inertia: the inverse of `only` — properties to EXCLUDE from a partial reload. Pass one or the other, not both. |
|
|
470
|
-
| `external` | `boolean \| undefined` |
|
|
470
|
+
| `external` | `boolean \| undefined` | `false` | | Forces an `href` link to render as a plain `<a>` (native navigation), bypassing Inertia/router interception — the same intent as Nuxt's `NuxtLink` `external`. Use for links outside the SPA. One of the native-anchor signals alongside `target… |
|
|
471
471
|
| `headers` | `object \| undefined` | | | Additional HTTP headers forwarded to Inertia when navigating via `href` in an Inertia-enabled app. |
|
|
472
472
|
| `href` | `string \| undefined` | | | Hyperlink reference used when rendering as an anchor (or as an Inertia link in Inertia-enabled apps). If provided and not disabled, the component renders as an anchor/Inertia link. |
|
|
473
|
-
| `instant` | `boolean \| undefined` |
|
|
473
|
+
| `instant` | `boolean \| undefined` | `false` | | Inertia: navigate optimistically on click and reconcile when the response lands, instead of waiting for the round trip. |
|
|
474
474
|
| `method` | `"get" \| "post" \| "put" \| "patch" \| "delete" \| undefined` | | | HTTP method used for Inertia navigation when `href` is provided in an Inertia-enabled app. Ignored otherwise. |
|
|
475
475
|
| `onBefore` | `(() => void) \| undefined` | | | Lifecycle hook invoked by Inertia right before the request is sent. |
|
|
476
476
|
| `onCancel` | `(() => void) \| undefined` | | | Lifecycle hook invoked by Inertia when a request is cancelled. |
|
|
@@ -485,18 +485,18 @@ const sent = ref(false);
|
|
|
485
485
|
| `onSuccess` | `(() => void) \| undefined` | | | Lifecycle hook invoked by Inertia when a request succeeds. |
|
|
486
486
|
| `pageProps` | `Record<string, unknown> \| ((currentProps: Record<string, unknown>, sharedProps: Record<string, unknown>) => Record<string, unknown>) \| null \| undefined` | | | Inertia: props to merge into the next page optimistically, before the server responds. Either an object or a function of the current props. Typed platform-agnostically (matching BbButton) so the library's types never require `@inertiajs/vue… |
|
|
487
487
|
| `prefetch` | `string \| boolean \| string[] \| undefined` | | | Inertia: fetch and cache this link's page ahead of the click. `true` uses the default trigger; a string or list of strings picks them (`'mount'`, `'hover'`, `'click'`). |
|
|
488
|
-
| `preserveScroll` | `boolean \| ((props: Record<string, unknown>) => boolean) \| undefined` |
|
|
489
|
-
| `preserveState` | `boolean \| ((props: Record<string, unknown>) => boolean) \| null \| undefined` |
|
|
490
|
-
| `preserveUrl` | `boolean \| undefined` |
|
|
491
|
-
| `queryStringArrayFormat` | `"brackets" \| "indices" \| undefined` |
|
|
488
|
+
| `preserveScroll` | `boolean \| ((props: Record<string, unknown>) => boolean) \| undefined` | `false` | | Controls whether Inertia should preserve the current scroll position after navigation. Can be a boolean or a predicate receiving the visit props. |
|
|
489
|
+
| `preserveState` | `boolean \| ((props: Record<string, unknown>) => boolean) \| null \| undefined` | `false` | | Controls whether Inertia should preserve the current state after navigation. Can be a boolean or a predicate receiving the visit props. |
|
|
490
|
+
| `preserveUrl` | `boolean \| undefined` | `false` | | Inertia: keep the current URL in the address bar even though the page content changes. |
|
|
491
|
+
| `queryStringArrayFormat` | `"brackets" \| "indices" \| undefined` | `'brackets'` | | Format to use when serializing array values into the query string for Inertia requests. |
|
|
492
492
|
| `rel` | `string \| undefined` | | | Relationship between the current document and the linked resource. Useful for security when opening new tabs (e.g. `noopener noreferrer`). |
|
|
493
|
-
| `replace` | `boolean \| undefined` |
|
|
494
|
-
| `tag` | `ButtonTag \| undefined` |
|
|
493
|
+
| `replace` | `boolean \| undefined` | `false` | | Uses history replacement instead of push navigation. - With Vue Router (`to`), calls `router.replace`. - With Inertia (`href`), performs a replace visit. |
|
|
494
|
+
| `tag` | `ButtonTag \| undefined` | `'button'` | | Element to render for the plain (non-link, non-router) button: - `'button'` (default) — real button semantics and keyboard behavior - `'div'` / `'span'` — a clickable box nested inside another button or link, where a nested `<button>` would… |
|
|
495
495
|
| `target` | `string \| undefined` | | | Target browsing context for anchor/Inertia links (e.g. `_self`, `_blank`). Ignored when rendering as a native button. |
|
|
496
496
|
| `text` | `string \| undefined` | | | Fallback text content rendered when no default slot is provided. |
|
|
497
497
|
| `to` | `string \| wt \| bt \| undefined` | | | Route location to navigate to. When provided (and not disabled), the component renders as a Vue Router link. |
|
|
498
498
|
| `type` | `"button" \| "submit" \| "reset" \| undefined` | `"button"` | | Native `type` attribute used when rendering as a button (e.g. `button`, `submit`, `reset`). |
|
|
499
|
-
| `viewTransition` | `boolean \| undefined` |
|
|
499
|
+
| `viewTransition` | `boolean \| undefined` | `false` | | Inertia: run the page swap inside a View Transition, where the browser supports one. |
|
|
500
500
|
|
|
501
501
|
## Events
|
|
502
502
|
|
|
@@ -510,4 +510,4 @@ const sent = ref(false);
|
|
|
510
510
|
|
|
511
511
|
- [BbButton](./BbButton.md) — Button with loading state, tooltip, and icon support.
|
|
512
512
|
- [BbDropdownButton](./BbDropdownButton.md) — A button with primary action and all other actions collected in a dropdown.
|
|
513
|
-
- [BbDropdown](./BbDropdown.md) — Displays contextual action menus and menu content.
|
|
513
|
+
- [BbDropdown](./BbDropdown.md) — Displays contextual action menus and menu content (includes the co-located BbDropdownGroup export, which is how a selectable group is bound).
|
|
@@ -17,19 +17,19 @@
|
|
|
17
17
|
| Prop | Type | Default | Required | Description |
|
|
18
18
|
| --- | --- | --- | --- | --- |
|
|
19
19
|
| `ariaDescribedby` | `string \| undefined` | | | ID of the element that describes this checkbox for assistive technologies. Forwarded to the input as `aria-describedby`. |
|
|
20
|
-
| `autofocus` | `Booleanish \| undefined` |
|
|
20
|
+
| `autofocus` | `Booleanish \| undefined` | `false` | | Automatically focuses the checkbox when the page/component loads. Use sparingly to avoid usability issues. |
|
|
21
21
|
| `checked` | `boolean \| undefined` | `undefined` | | Forces the checkbox checked state (controlled prop). When omitted, the checked state is derived from `modelValue === trueValue`. Deliberately `undefined` rather than `false`, so "unset" stays distinguishable from an explicit `:checked="fals… |
|
|
22
|
-
| `disabled` | `boolean \| undefined` |
|
|
22
|
+
| `disabled` | `boolean \| undefined` | `false` | | Disables user interaction. Also applied when `readonly` is set, since native checkboxes do not support `readonly`. |
|
|
23
23
|
| `falseValue` | `any` | `false` | | Value submitted/emitted when the checkbox is unchecked. Accepts any serializable value. Serialized to a string for form submission. |
|
|
24
|
-
| `hasErrors` | `boolean \| undefined` |
|
|
25
|
-
| `hasWarning` | `boolean \| undefined` |
|
|
24
|
+
| `hasErrors` | `boolean \| undefined` | `false` | | Puts the component into an error state (adds error styling class `bb-base-checkbox--errors`). |
|
|
25
|
+
| `hasWarning` | `boolean \| undefined` | `false` | | Puts the component into a warning state (adds `bb-base-checkbox--warnings`). Errors take priority when both are set. |
|
|
26
26
|
| `id` | `string \| undefined` | | | Identifier forwarded to the input. |
|
|
27
|
-
| `indeterminate` | `boolean \| undefined` |
|
|
27
|
+
| `indeterminate` | `boolean \| undefined` | `false` | | Renders the checkbox in the indeterminate state (neither checked nor unchecked). Note: the native `indeterminate` state resets on user click; this component re-applies it to keep UI and prop aligned. |
|
|
28
28
|
| `modelValue` | `any` | | | Bound value for `v-model`. When it equals `trueValue` the checkbox is considered checked, otherwise unchecked. |
|
|
29
29
|
| `name` | `string \| undefined` | | | Name attribute of the input, used during form submission. |
|
|
30
|
-
| `readonly` | `boolean \| undefined` |
|
|
31
|
-
| `required` | `boolean \| undefined` |
|
|
32
|
-
| `submitWhenFalse` | `boolean \| undefined` |
|
|
30
|
+
| `readonly` | `boolean \| undefined` | `false` | | Puts the input in a read-only state. Since checkboxes do not support native `readonly`, the input is disabled while styled as read-only. |
|
|
31
|
+
| `required` | `boolean \| undefined` | `false` | | Marks the input as required for form validation. |
|
|
32
|
+
| `submitWhenFalse` | `boolean \| undefined` | `false` | | When unchecked, submits a hidden input with `falseValue` so that a value is still posted with the form. When checked, the visible input submits `trueValue` as usual. |
|
|
33
33
|
| `trueValue` | `any` | `true` | | Value submitted/emitted when the checkbox is checked. Accepts any serializable value. Serialized to a string for form submission. |
|
|
34
34
|
|
|
35
35
|
## Events
|
|
@@ -17,34 +17,34 @@
|
|
|
17
17
|
| Prop | Type | Default | Required | Description |
|
|
18
18
|
| --- | --- | --- | --- | --- |
|
|
19
19
|
| `ariaDescribedby` | `string \| undefined` | | | ID of the element that describes the entire checkbox group for assistive technologies. Forwarded to each generated input as `aria-describedby`. |
|
|
20
|
-
| `autofocus` | `Booleanish \| undefined` |
|
|
21
|
-
| `dependencies` | `unknown[] \| undefined` |
|
|
20
|
+
| `autofocus` | `Booleanish \| undefined` | `false` | | Automatically focuses the first checkbox on mount when true. Applied only to the first option. |
|
|
21
|
+
| `dependencies` | `unknown[] \| undefined` | `[]` | | List of reactive values which, when changed, trigger items re-fetching. Useful to reload options based on external inputs. |
|
|
22
22
|
| `depsDebounceTime` | `number \| undefined` | `0` | | Debounce delay (ms) applied when reacting to `dependencies` changes. |
|
|
23
23
|
| `direction` | `"horizontal" \| "vertical" \| undefined` | `"horizontal"` | | Direction of the group layout. - `horizontal`: options flow in rows - `vertical`: options stack in a column |
|
|
24
|
-
| `disabled` | `boolean \| undefined` |
|
|
25
|
-
| `enforceCoherence` | `boolean \| undefined` |
|
|
26
|
-
| `hasErrors` | `boolean \| undefined` |
|
|
27
|
-
| `hasWarning` | `boolean \| undefined` |
|
|
28
|
-
| `hideLabel` | `boolean \| undefined` |
|
|
24
|
+
| `disabled` | `boolean \| undefined` | `false` | | Disables interaction for the whole group. |
|
|
25
|
+
| `enforceCoherence` | `boolean \| undefined` | `false` | | Enforces that `modelValue` contains only values present in `items`. Incoherent values are removed and `update:modelValue` is emitted with a coherent array. Please check out {@link https://ui-components.bitboss.it/it/guides/coherence the doc… |
|
|
26
|
+
| `hasErrors` | `boolean \| undefined` | `false` | | Puts the component into an error state adds the error styling class. |
|
|
27
|
+
| `hasWarning` | `boolean \| undefined` | `false` | | Puts the component into a warning state. Errors take priority when both are set. |
|
|
28
|
+
| `hideLabel` | `boolean \| undefined` | `false` | | Visually hides each option's label text (the text rendered next to every input) while keeping it accessible to screen readers. |
|
|
29
29
|
| `id` | `string \| undefined` | | | Identifier of the group. Used to derive per-option IDs for accessible labeling. |
|
|
30
30
|
| `items` | `T[] \| ((prefill: boolean, modelValue?: any) => T[] \| Promise<T[]>)` | `[]` | yes | Items provider. Can be: - An array of items - A sync/async function `(prefill, modelValue) => items` When a function is provided, it is invoked on prefill and when dependencies change to load options dynamically. |
|
|
31
|
-
| `itemText` | `(T extends object ? string \| ((item: T) => string) : (item: T) => string) \| undefined` |
|
|
32
|
-
| `itemValue` | `(T extends object ? string \| ((item: T) => string) : (item: T) => any) \| undefined` |
|
|
33
|
-
| `loadingText` | `string \| undefined` |
|
|
31
|
+
| `itemText` | `(T extends object ? string \| ((item: T) => string) : (item: T) => string) \| undefined` | `JSON.stringify(item)` | | Defines how to derive the display text from an item. Accepts a nested key path into the item or a function `(item) => string`. |
|
|
32
|
+
| `itemValue` | `(T extends object ? string \| ((item: T) => string) : (item: T) => any) \| undefined` | `JSON.stringify(item)` | | Defines how to derive the value from an item. Accepts a nested key path into the item or a function `(item) => any`. |
|
|
33
|
+
| `loadingText` | `string \| undefined` | `'Loading...'` | | Text displayed while items are loading. |
|
|
34
34
|
| `max` | `number \| undefined` | `Infinity` | | Maximum number of selectable items. |
|
|
35
35
|
| `modelValue` | `any` | | yes | Selected values for the group. Used with `v-model`. Single value when `multiple` is false, array when `multiple` is true. |
|
|
36
36
|
| `modelValueDebounceTime` | `number \| undefined` | `0` | | Debounce delay (ms) applied when reacting to `modelValue` changes. |
|
|
37
37
|
| `multiple` | `boolean \| undefined` | `true` | | Enables multi-selection behavior. When `true`, `modelValue` must be an array and emitted updates are arrays. When `false`, `modelValue` must be a single value (or `null`) and emitted updates are single values. |
|
|
38
38
|
| `name` | `string \| undefined` | | | Name attribute applied to each input for form submission. |
|
|
39
|
-
| `noDataText` | `string \| undefined` |
|
|
40
|
-
| `readonly` | `boolean \| undefined` |
|
|
39
|
+
| `noDataText` | `string \| undefined` | `'No data to display'` | | Text displayed when there are no items to show. |
|
|
40
|
+
| `readonly` | `boolean \| undefined` | `false` | | Makes all checkboxes read-only. Since checkboxes do not support native `readonly`, inputs are disabled while styled as read-only. |
|
|
41
41
|
| `selectable` | `boolean \| ((item: T) => boolean) \| undefined` | `true` | | Defines whether options are selectable. Can be a global boolean that affects all options or a function that accepts an item and returns a boolean that only affects that item. Non-selectable options are rendered disabled. |
|
|
42
42
|
|
|
43
43
|
## Events
|
|
44
44
|
|
|
45
45
|
- `active` — `(e: "active"): void` — Emitted when the group becomes active (focus/click enters it).
|
|
46
46
|
- `blur` — `(e: "blur", event: FocusEvent): void` — Emitted when one of the generated checkbox inputs loses focus. Forwards the original DOM `FocusEvent`.
|
|
47
|
-
- `change` — `(e: "change", event: Event): void` — Emitted when
|
|
47
|
+
- `change` — `(e: "change", event: Event): void` — Emitted when an option is toggled. Forwards the original DOM `Event` from the checkbox input.
|
|
48
48
|
- `click` — `(e: "click", event: MouseEvent): void` — Emitted when one of the generated checkbox inputs is clicked. Forwards the original DOM `MouseEvent`.
|
|
49
49
|
- `focus` — `(e: "focus", event: FocusEvent): void` — Emitted when one of the generated checkbox inputs receives focus. Forwards the original DOM `FocusEvent`.
|
|
50
50
|
- `inactive` — `(e: "inactive"): void` — Emitted when focus/click moves outside the group after it was active. Useful for validation-on-blur flows at group level.
|