bitboss-ui 3.0.0-beta.2 → 3.0.0-beta.21
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 +920 -109
- 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 +128 -2
- package/dist/ai/components.json +917 -100
- 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 +18 -18
- 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 +11 -5
- package/dist/ai/guides/installation-and-plugin-setup.md +85 -23
- 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 +560 -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/approvals-inbox.md +0 -1
- package/dist/ai/recipes/inertia/inline-edit-workspace.md +0 -1
- package/dist/ai/recipes/inertia/layout-scaffold.md +5 -1
- package/dist/ai/recipes/inertia/ownership-atlas.md +49 -29
- package/dist/ai/recipes/inertia/record-form.md +0 -1
- package/dist/ai/recipes/inertia/records-workspace.md +26 -8
- package/dist/ai/recipes/inertia/upload-center.md +0 -1
- package/dist/ai/recipes/nuxt/approvals-inbox.md +0 -1
- package/dist/ai/recipes/nuxt/inline-edit-workspace.md +0 -1
- package/dist/ai/recipes/nuxt/layout-scaffold.md +5 -1
- package/dist/ai/recipes/nuxt/record-form.md +0 -1
- package/dist/ai/recipes/nuxt/records-workspace.md +26 -8
- package/dist/ai/recipes/nuxt/upload-center.md +0 -1
- package/dist/ai/recipes/vue/approvals-inbox.md +0 -1
- package/dist/ai/recipes/vue/inline-edit-workspace.md +0 -1
- package/dist/ai/recipes/vue/layout-scaffold.md +5 -1
- package/dist/ai/recipes/vue/records-workspace.md +26 -8
- package/dist/ai/recipes/vue/upload-center.md +0 -1
- 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 +5092 -1446
- 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 +10 -4
- package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +1433 -600
- 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 +324 -111
- package/dist/components/BbTable/utils.d.ts +92 -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/useTableWidthContext.d.ts +24 -4
- package/dist/composables/useTableWidthContext.js +31 -28
- package/dist/composables/useToast.js +5 -5
- package/dist/deprecation/ai-deprecations.json.d.ts +121 -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 +3997 -1458
- package/dist/llms-medium.txt +140 -73
- 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 +7 -3
- 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 +155 -14
- package/scripts/lib/html-attributes.mjs +91 -0
- package/scripts/lib/validate-bb-markup.mjs +59 -11
- 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/dist/llms-medium.txt
CHANGED
|
@@ -5,16 +5,16 @@
|
|
|
5
5
|
> how to choose a component, and the design language — plus a catalogue
|
|
6
6
|
> of every public component.
|
|
7
7
|
|
|
8
|
-
Canonical URL: https://
|
|
8
|
+
Canonical URL: https://llms-bitboss-ui.bitboss.it/dist/llms-medium.txt
|
|
9
9
|
|
|
10
10
|
Need more? Fetch the specific component contract you need — one hop, not
|
|
11
|
-
the whole catalogue: https://
|
|
12
|
-
Machine-readable API surface: https://
|
|
11
|
+
the whole catalogue: https://llms-bitboss-ui.bitboss.it/dist/ai/<ComponentName>.md
|
|
12
|
+
Machine-readable API surface: https://llms-bitboss-ui.bitboss.it/dist/ai/components.json
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
<!-- dist/ai/guides/ai-router.md -->
|
|
17
|
-
<!-- https://
|
|
17
|
+
<!-- https://llms-bitboss-ui.bitboss.it/dist/ai/guides/ai-router.md -->
|
|
18
18
|
|
|
19
19
|
# AI Router
|
|
20
20
|
|
|
@@ -27,13 +27,18 @@ Knowledge base root (installed package):
|
|
|
27
27
|
Package export entry: `bitboss-ui/ai` → `dist/ai/index.md`.
|
|
28
28
|
Subpaths: `bitboss-ui/ai/components.json`, `bitboss-ui/ai/guides/…`, etc.
|
|
29
29
|
|
|
30
|
-
**Not installed, or can only fetch URLs?** The same files are served
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
[
|
|
30
|
+
**Not installed, or can only fetch URLs?** The same files are served at
|
|
31
|
+
`https://llms-bitboss-ui.bitboss.it/dist/ai/…`. If you can make only one
|
|
32
|
+
request, fetch
|
|
33
|
+
[`/dist/llms-medium.txt`](https://llms-bitboss-ui.bitboss.it/dist/llms-medium.txt)
|
|
34
34
|
— this router plus the agent contract, setup, component picker, design language
|
|
35
35
|
and the full component catalogue, in ~110 KB.
|
|
36
36
|
|
|
37
|
+
That host is a thin proxy in front of the published npm tarball. If it is ever
|
|
38
|
+
unreachable, the same paths work directly against
|
|
39
|
+
`https://cdn.jsdelivr.net/npm/bitboss-ui@beta/…` — one hop further from us, and
|
|
40
|
+
pinned to the prerelease channel rather than following it.
|
|
41
|
+
|
|
37
42
|
---
|
|
38
43
|
|
|
39
44
|
## Mandatory order (every UI task)
|
|
@@ -133,7 +138,7 @@ nothing else); the command names them if they are missing.
|
|
|
133
138
|
---
|
|
134
139
|
|
|
135
140
|
<!-- dist/ai/guides/agent-contract.md -->
|
|
136
|
-
<!-- https://
|
|
141
|
+
<!-- https://llms-bitboss-ui.bitboss.it/dist/ai/guides/agent-contract.md -->
|
|
137
142
|
|
|
138
143
|
# Agent Contract
|
|
139
144
|
|
|
@@ -391,7 +396,7 @@ case is not decidable from markup and has no hint.
|
|
|
391
396
|
---
|
|
392
397
|
|
|
393
398
|
<!-- dist/ai/guides/installation-and-plugin-setup.md -->
|
|
394
|
-
<!-- https://
|
|
399
|
+
<!-- https://llms-bitboss-ui.bitboss.it/dist/ai/guides/installation-and-plugin-setup.md -->
|
|
395
400
|
|
|
396
401
|
# Installation and Plugin Setup
|
|
397
402
|
|
|
@@ -421,19 +426,16 @@ goes stable, so never reach for it here.
|
|
|
421
426
|
|
|
422
427
|
Peer dependency: `vue ^3.5.12` — the only required one. `@inertiajs/vue3` is an **optional** peer, needed only in Inertia apps.
|
|
423
428
|
|
|
424
|
-
`@iconify/collections
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
mean …?" suggestion for a mistyped icon name) never fire — a wrong provider
|
|
435
|
-
icon then surfaces only as `BbIcon`'s generic runtime `Icon "…" does not exist.`
|
|
436
|
-
Nothing else changes: icons that resolve still render, in dev and in production.
|
|
429
|
+
You do **not** need `@iconify/collections`. It is declared as an optional peer
|
|
430
|
+
for one reason only: when it happens to be installed, the dev-overlay message
|
|
431
|
+
for an unknown icon prefix can say for certain whether that prefix is a real
|
|
432
|
+
Iconify set ("requires `@iconify-json/mdi`, run …") or not ("neither an
|
|
433
|
+
installed set nor a known Iconify prefix"). Without it the same overlay fires
|
|
434
|
+
with a hedged wording ("no installed icon set has the prefix `mdi`; if it is an
|
|
435
|
+
Iconify set, run …"). A mistyped name inside a set you **have** installed
|
|
436
|
+
(`lucide:eye-misspelled`) is diagnosed from the set's own data in both cases,
|
|
437
|
+
with a "did you mean …?" suggestion. Nothing else changes: icons that resolve
|
|
438
|
+
still render, in dev and in production.
|
|
437
439
|
|
|
438
440
|
**Known-good toolchain:** TypeScript **5.x or 6.x** if your build gate runs
|
|
439
441
|
`vue-tsc`. Both type-check cleanly against the shipped `.d.ts`; the library
|
|
@@ -540,6 +542,45 @@ export default defineNuxtConfig({
|
|
|
540
542
|
|
|
541
543
|
All options below go under the `bitboss` config key. `nuxtLinkName` controls which globally registered component renders router links (default `'NuxtLink'`).
|
|
542
544
|
|
|
545
|
+
This module supersedes the standalone `@bitboss-dev/bitboss-ui-nuxt` package, which was the v2 Nuxt integration — uninstall it (see [Migration v2 → v3](./migration/v2-to-v3.md)).
|
|
546
|
+
|
|
547
|
+
### `autoImport?: boolean | { components?: boolean; composables?: boolean; validated?: boolean }` (default: `false`, Nuxt only)
|
|
548
|
+
|
|
549
|
+
Registers the library's components and composables with Nuxt's auto-import system, so templates write `<BbButton>` and `useToast()` with no import line:
|
|
550
|
+
|
|
551
|
+
```ts
|
|
552
|
+
// nuxt.config.ts
|
|
553
|
+
export default defineNuxtConfig({
|
|
554
|
+
modules: ['bitboss-ui/nuxt'],
|
|
555
|
+
bitboss: {
|
|
556
|
+
iconDir: './assets/icons',
|
|
557
|
+
autoImport: true,
|
|
558
|
+
},
|
|
559
|
+
});
|
|
560
|
+
```
|
|
561
|
+
|
|
562
|
+
`true` means `{ components: true, composables: true }`. Pass the object form to
|
|
563
|
+
narrow it, or to add `validated: true` — which resolves the form controls from
|
|
564
|
+
[`bitboss-ui/validated`](./validated-forms.md) instead of `bitboss-ui`, so
|
|
565
|
+
`<BbTextInput>` is the vee-validate-bound wrapper and takes `rules`, and adds
|
|
566
|
+
`BbForm`, `BbAsterisk`, `useBbFormContext` and `useValidatedField`. It needs the
|
|
567
|
+
`vee-validate` peer installed.
|
|
568
|
+
|
|
569
|
+
**It is off by default on purpose, and leaving it off is the better setup.**
|
|
570
|
+
Explicit imports are what make `vueCompilerOptions.checkUnknownComponents` (see
|
|
571
|
+
section 9) able to fail the build on a mistyped or unimported `Bb*` tag; with
|
|
572
|
+
auto-imports on, every `Bb*` tag resolves and that gate goes quiet. Reach for it
|
|
573
|
+
when you are moving an app off `@bitboss-dev/bitboss-ui-nuxt`, whose templates
|
|
574
|
+
were written against auto-imported components, and adding the imports is a
|
|
575
|
+
separate commit from the upgrade.
|
|
576
|
+
|
|
577
|
+
Two things it deliberately does not do. It never overrides your own components:
|
|
578
|
+
a `~/components/BbButton.vue` in the app keeps winning, and the library only
|
|
579
|
+
fills names the app has not claimed. And it never registers the library's
|
|
580
|
+
`useId` — Nuxt already auto-imports Vue's, and shadowing it would silently
|
|
581
|
+
redirect every existing `useId()` call in the app; import that one explicitly if
|
|
582
|
+
you want it.
|
|
583
|
+
|
|
543
584
|
## 4) Inertia
|
|
544
585
|
|
|
545
586
|
Inertia apps are Vite apps: configure `bitboss-ui/vite` exactly as in section 2, install `@inertiajs/vue3`, then install the runtime plugin in `createInertiaApp`:
|
|
@@ -659,7 +700,7 @@ utilities. (Same trap as the scoped-`<style>` case above, one level up.)
|
|
|
659
700
|
## 6) Icons
|
|
660
701
|
|
|
661
702
|
- `iconDir` (required) is scanned recursively for `.svg` files; each file becomes `local:<basename>`.
|
|
662
|
-
- Provider icons (`lucide:pencil`, `mdi:home`, …) require the matching `@iconify-json/<prefix>` package installed in the consumer app.
|
|
703
|
+
- Provider icons (`lucide:pencil`, `mdi:home`, …) require the matching `@iconify-json/<prefix>` package installed in the consumer app. In dev, every `prefix:name` the registry does not know produces a Vite error overlay with the fix: a mistyped name inside an installed set gets a "did you mean …?" hint, and an uninstalled prefix gets the list of installed sets plus the `npm install -D @iconify-json/<prefix>` command (the optional `@iconify/collections` peer only sharpens that wording, see [Install](#1-install)). A missing `local:` icon is a missing file in `iconDir` and surfaces as `BbIcon`'s runtime error naming it. Production builds report none of this — the scan simply drops what does not resolve, so a wrong name fails at runtime there.
|
|
663
704
|
- Production builds bundle **only statically referenced** provider icons — write icon names as literal strings (`icon="lucide:trash-2"`), never assemble them dynamically.
|
|
664
705
|
- The plugin also writes `node_modules/.bitboss-ui/local-icons.json` and (in dev, unless `vscodeSettings: false`) wires `.vscode/settings.json` so the Iconify editor extension previews local icons.
|
|
665
706
|
|
|
@@ -753,11 +794,12 @@ bitbossUi({
|
|
|
753
794
|
|
|
754
795
|
This is a **single global default baked in at build time** (it comes from the
|
|
755
796
|
Vite plugin config), so it is the same for every request — it is _not_ a
|
|
756
|
-
per-request value. There is no per-request/per-visitor override
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
audience.
|
|
797
|
+
per-request value. There is no per-request/per-visitor override: the viewport
|
|
798
|
+
signal is a process-wide singleton, so a mobile layout that must be correct on
|
|
799
|
+
the server's first paint (e.g. a modal already open on load) needs a client
|
|
800
|
+
adjustment after hydration, or a fixed `ssrViewportWidth` matching your
|
|
801
|
+
audience. (Unlike `locale`, which **is** per-request — see below. A width
|
|
802
|
+
cannot be derived from a request without UA sniffing; a locale can.)
|
|
761
803
|
|
|
762
804
|
### `defaultInputLabelMode?: 'outside' | 'floating' | 'inside'` (default: `'outside'`)
|
|
763
805
|
|
|
@@ -775,9 +817,32 @@ labels, screen-reader announcements, confirm buttons, …). The library ships
|
|
|
775
817
|
pl, tr, ru, uk, cs, ro, hu, el, sv, da, nb, fi, ja, ko, zh-cn — but shipping ≠
|
|
776
818
|
bundling: only the **enabled** locales enter your build (next option). Runtime
|
|
777
819
|
switching: `useBbConfig().setConfig({ locale })` — to a locale you enabled.
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
per
|
|
820
|
+
|
|
821
|
+
**Per-request locale under SSR** is supported as of 3.0.0-beta.15: the config
|
|
822
|
+
is held per Vue app, and SSR builds one app per request, so pass it where you
|
|
823
|
+
create the app — `app.use(bitbossUiPlugin, { locale: localeFor(request) })`.
|
|
824
|
+
That is correct on the server's first paint, which is what crawlers index and
|
|
825
|
+
what a JS-disabled reader keeps.
|
|
826
|
+
|
|
827
|
+
**In Nuxt, do not call `app.use`** — the module registers the runtime plugin,
|
|
828
|
+
which provides the per-app config itself (fixed in 3.0.0-beta.19, Q20.4;
|
|
829
|
+
before that Nuxt had no per-app config at all and every `setConfig` wrote the
|
|
830
|
+
process-global). Set a per-request locale from your own Nuxt plugin, which
|
|
831
|
+
runs per request on the server:
|
|
832
|
+
`nuxtApp.vueApp.runWithContext(() => useBbConfig().setConfig({ locale }))` —
|
|
833
|
+
the `runWithContext` is what hands the write this app's injection context,
|
|
834
|
+
since a plugin has an app but no component instance.
|
|
835
|
+
|
|
836
|
+
`setConfig` still works for runtime switching; during a server render call it
|
|
837
|
+
from a component's `setup` (or inside `runWithContext`), where it can resolve
|
|
838
|
+
the current app. With neither there is no app to address, the write lands on
|
|
839
|
+
the build-time defaults, and it leaks between concurrent visitors — it warns in
|
|
840
|
+
dev when it sees that, keyed off where the write actually landed rather than
|
|
841
|
+
the call site. See [useBbConfig](../composables/useBbConfig.md).
|
|
842
|
+
|
|
843
|
+
Note this is a **different rule** from `ssrViewportWidth` above, which really
|
|
844
|
+
is a build-time global: a width cannot be known per request without sniffing,
|
|
845
|
+
a locale can.
|
|
781
846
|
|
|
782
847
|
### `enabledLocales?: BuiltinLocaleKey[]` (default: your `locale` + `'en'`)
|
|
783
848
|
|
|
@@ -896,7 +961,7 @@ template emits are already styled by the public `bitboss-ui/styles.css`.
|
|
|
896
961
|
|
|
897
962
|
Add `--mcp` to also register a live MCP server (`npx bitboss-ui@<installed version> mcp`, pinned so npx can never fetch a different version from the registry) the harness launches on demand — it merges the entry (never overwriting other servers) into `.mcp.json` (Claude Code), `.cursor/mcp.json` (Cursor), `.vscode/mcp.json` (VS Code / Copilot), and `~/.codeium/windsurf/mcp_config.json` (Windsurf). **Windsurf's config is global** — it has no per-project scope, so registering it affects every project on the machine; that is why only the explicit `ai-init --mcp` command writes it, while the plugin's `mcp: true` dev-server flag (§7) auto-registers the project-scoped harnesses only. Install the server's optional peers first — `npm i -D @modelcontextprotocol/sdk zod` — they are not dependencies of the library (~12 MB used only by the MCP server); the command warns if they are absent. **`--mcp` is optional and skipping it loses you nothing but the transport** — the server only reads the `dist/ai/` files listed above, so run plain `ai-init` and let the agent read that directory if you cannot add the peers (see `mcp?: boolean` in §7).
|
|
898
963
|
|
|
899
|
-
For a human-in-the-loop (and agent) safety net, add the `bitboss-ui/eslint-plugin` flat-config plugin (`...bitbossUi.configs.recommended`) so unknown/removed `Bb*` props surface as ESLint errors in the editor and CI — the same manifest checks as `bitboss-ui check`, reusing your `eslint-plugin-vue` parser. Real HTML attributes fall through untouched; escape hatches are the standard `<!-- eslint-disable-next-line bitboss-ui/no-unknown-attributes -->` and the rule's `allowAttributes` / `allowComponents` options. **`eslint --fix` also auto-migrates deprecated v2 props** (renames, boolean-polarity inversions like `allowWriting`→`disableWriting`, value remaps like BbToast `placement`→`position`, and deletion of inert removed props); structural migrations that need a slot/directive/CSS are reported but left by hand. **This library is TS-first (recipes ship `<script setup lang="ts">`, some with `generic="T"`), so wire `@typescript-eslint/parser` for both `.ts` and `.vue` files** — without it `vue-eslint-parser` throws a `Parsing error` on those files, which means no rule (including `no-unknown-attributes`) runs on them at all. See the README "ESLint plugin" section for the full config snippet (both parser blocks + the `npm i -D @typescript-eslint/parser` line) and the fix table. `recommended` also enables `bitboss-ui/no-active-class-on-root-link`: `active-class` on a link-capable `Bb*` component (`BbButton`/`BbBaseButton`/`BbBadgeButton`) matches by path PREFIX, so a link whose target is the literal root (`href="/"` / `to="/"`) reads as "active" on every URL — the rule flags that combination and points you at `exact-active-class` instead.
|
|
964
|
+
For a human-in-the-loop (and agent) safety net, add the `bitboss-ui/eslint-plugin` flat-config plugin (`...bitbossUi.configs.recommended`) so unknown/removed `Bb*` props surface as ESLint errors in the editor and CI — the same manifest checks as `bitboss-ui check`, reusing your `eslint-plugin-vue` parser. Real HTML attributes fall through untouched; escape hatches are the standard `<!-- eslint-disable-next-line bitboss-ui/no-unknown-attributes -->` and the rule's `allowAttributes` / `allowComponents` options. **`eslint --fix` also auto-migrates deprecated v2 props** (renames, boolean-polarity inversions like `allowWriting`→`disableWriting`, value remaps like BbToast `placement`→`position`, and deletion of inert removed props); structural migrations that need a slot/directive/CSS are reported but left by hand. One deliberate boundary: the rule's "did you mean `<prop>`?" hints for a mistyped/unknown attribute are advisory message text, not fixes — `eslint --fix` (including an unattended run in a pre-commit hook) never applies them; only the registered v2→v3 migrations above are auto-fixed. A guess applied blind across a codebase would be a silent behavior change, so acting on a hint is always a per-site decision. **This library is TS-first (recipes ship `<script setup lang="ts">`, some with `generic="T"`), so wire `@typescript-eslint/parser` for both `.ts` and `.vue` files** — without it `vue-eslint-parser` throws a `Parsing error` on those files, which means no rule (including `no-unknown-attributes`) runs on them at all. See the README "ESLint plugin" section for the full config snippet (both parser blocks + the `npm i -D @typescript-eslint/parser` line) and the fix table. `recommended` also enables `bitboss-ui/no-active-class-on-root-link`: `active-class` on a link-capable `Bb*` component (`BbButton`/`BbBaseButton`/`BbBadgeButton`) matches by path PREFIX, so a link whose target is the literal root (`href="/"` / `to="/"`) reads as "active" on every URL — the rule flags that combination and points you at `exact-active-class` instead.
|
|
900
965
|
|
|
901
966
|
**The manifest ships with the package** — `dist/ai/components.json` is inside
|
|
902
967
|
the tarball, and the rules resolve it relative to their own file, so a normal
|
|
@@ -906,6 +971,8 @@ nothing), the rules cannot check anything: they now **warn once** saying they
|
|
|
906
971
|
are inactive rather than passing silently. Pass `failClosed: true` to a rule's
|
|
907
972
|
options if you would rather CI stop than under-check.
|
|
908
973
|
|
|
974
|
+
`recommended` also enables **`bitboss-ui/no-reverse-false`**, which covers the one v2 break a rename table cannot: `reverse` on `BbCheckbox` / `BbRadio` / `BbSwitch` kept its NAME and inverted its MEANING in v3, so the v2 spelling `:reverse="false"` (control on the right) is now a no-op that renders the control on the LEFT. Nothing else catches it — it is a declared prop, correctly typed, holding its own default value — and it cannot be expressed as a rename, because a rename entry is keyed by prop name and would rewrite the legitimate v3 spellings too. The rule flags only a LITERAL `:reverse="false"` (a dynamic `:reverse="isRtl"` that evaluates false is left alone) and offers both corrections as editor suggestions; pass `{ assumeV2: true }` to promote the v2-intent rewrite to a real `--fix` for a bulk sweep, then remove it — the two readings produce opposite layouts, so it must never be on by default. See [the migration guide](../guides/migration/components/bb-checkbox.md).
|
|
975
|
+
|
|
909
976
|
It also enables `bitboss-ui/require-partner-prop`: an opt-in prop set without its documented required partner — BbTable `keyboard-navigation` / `v-model:highlighted` without `row-class` (the shipped tint says "current row"; `row-class` says why, and is how you override it), or `loading-text` without `:loading` bound — compiles and mounts clean and just does nothing; the rule names the missing partner and quotes why.
|
|
910
977
|
|
|
911
978
|
## 9) Setup Verification Checklist
|
|
@@ -927,7 +994,7 @@ If one of the checks fails, fix setup before creating component examples.
|
|
|
927
994
|
---
|
|
928
995
|
|
|
929
996
|
<!-- dist/ai/guides/component-picker.md -->
|
|
930
|
-
<!-- https://
|
|
997
|
+
<!-- https://llms-bitboss-ui.bitboss.it/dist/ai/guides/component-picker.md -->
|
|
931
998
|
|
|
932
999
|
# Component Picker
|
|
933
1000
|
|
|
@@ -1157,24 +1224,24 @@ a composable you want is not in this corpus's `composables/` folder — it is no
|
|
|
1157
1224
|
here.** Check this list before inventing a name; if the need is genuinely absent,
|
|
1158
1225
|
compose it or write it yourself.
|
|
1159
1226
|
|
|
1160
|
-
| Assumed component or composable | Reality
|
|
1161
|
-
| -------------------------------------------------------------- |
|
|
1162
|
-
| `BbColumnManager` — show/hide/reorder columns | Does not exist.
|
|
1163
|
-
| `BbKanban` / drag-and-drop board | Does not exist. There is no DnD primitive in the library
|
|
1164
|
-
| `BbModal` | It is [BbDialog](../BbDialog.md).
|
|
1165
|
-
| `BbDrawer` / `BbSheet` | It is [BbOffCanvas](../BbOffCanvas.md).
|
|
1166
|
-
| `BbCombobox` / `BbAutocomplete` | It is [BbSelect](../BbSelect.md) / [BbSelectPopover](../BbSelectPopover.md) — search is built in, see `disable-writing`.
|
|
1167
|
-
| `BbToggle` / `BbToggleGroup` | It is [BbButton](../BbButton.md) with `v-model` (+ `true-value` / `false-value`), which owns `aria-pressed` and the active class.
|
|
1168
|
-
| `TagChip` / colored, read-only tag chip | It is [BbBadge](../BbBadge.md) — [BbTag](../BbTag.md) is a tags-_input_ only, not a display component. Use `BbBadge` with a registered `soft-*` variant for a fixed palette, or a one-off `--bg`/`--color` override per row for arbitrary/data-driven colors (BbBadge.md § One-off colors) — not a registered variant per distinct color.
|
|
1169
|
-
| `BbTab` (singular) | The consumer API is [BbTabs](../BbTabs.md) / `BbTabsRoot`. `BbTab` appears only as the **v2 "before" side** of the migration diffs.
|
|
1170
|
-
| `BbCard` | Does not exist — a card is a `<div>` with tokens. See [design-language](./design-language.md).
|
|
1171
|
-
| `BbList` / `BbListItem` / `BbDescriptionList` | Do not exist — a list row is an `<li>` with tokens, and [BbBaseButton](../BbBaseButton.md) makes the whole row navigable. See the note under Data Display.
|
|
1172
|
-
| `useLiveFeed` / any polling or cross-tab feed helper | Does not exist, and neither does a cross-tab helper — `useBroadcastChannelInstance` was removed (cross-tab messaging is not a UI concern). Use `useBroadcastChannel` from `@vueuse/core`; the polling and the merge are yours.
|
|
1173
|
-
| `BbStepper` / `BbWizard` | Does not exist as a component; the wizard-form recipe composes one.
|
|
1174
|
-
| `BbSkeleton` (standalone) | Only `BbTable` ships skeletons, via the column `skeleton` field.
|
|
1175
|
-
| `BbCommand` / command palette | Does not exist. Compose `BbDialog` + `BbSelectPopover`.
|
|
1176
|
-
| `BbCalendar` (month / scheduling view) | Does not exist. [BbDatePicker](../BbDatePicker.md) is a picker, not a calendar surface.
|
|
1177
|
-
| `BbChart` / `BbGraph`, `BbCarousel`, `BbTimeline`, `BbDivider` | Do not exist. No charting, carousel or timeline primitive ships here.
|
|
1227
|
+
| Assumed component or composable | Reality |
|
|
1228
|
+
| -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
1229
|
+
| `BbColumnManager` — show/hide/reorder columns | Does not exist as a component. Order is `v-model:order` on `BbTable` (an array of keys any panel can write; `reorderable` adds the built-in header drag + keyboard handle); visibility is `hidden: true` on the column definition (the column stays declared and keeps its slot in the order; header slots get a `hideColumn()` that fires `hide:column`). Compose the panel from `BbPopover` + `BbCheckbox`. |
|
|
1230
|
+
| `BbKanban` / drag-and-drop board | Does not exist. There is no reusable DnD primitive in the library (`BbTable`'s header drag is internal to the table) — compose the board from `BbTable` (a table/list view of the same data) or hand-roll the drag-and-drop interaction yourself. |
|
|
1231
|
+
| `BbModal` | It is [BbDialog](../BbDialog.md). |
|
|
1232
|
+
| `BbDrawer` / `BbSheet` | It is [BbOffCanvas](../BbOffCanvas.md). |
|
|
1233
|
+
| `BbCombobox` / `BbAutocomplete` | It is [BbSelect](../BbSelect.md) / [BbSelectPopover](../BbSelectPopover.md) — search is built in, see `disable-writing`. |
|
|
1234
|
+
| `BbToggle` / `BbToggleGroup` | It is [BbButton](../BbButton.md) with `v-model` (+ `true-value` / `false-value`), which owns `aria-pressed` and the active class. |
|
|
1235
|
+
| `TagChip` / colored, read-only tag chip | It is [BbBadge](../BbBadge.md) — [BbTag](../BbTag.md) is a tags-_input_ only, not a display component. Use `BbBadge` with a registered `soft-*` variant for a fixed palette, or a one-off `--bg`/`--color` override per row for arbitrary/data-driven colors (BbBadge.md § One-off colors) — not a registered variant per distinct color. |
|
|
1236
|
+
| `BbTab` (singular) | The consumer API is [BbTabs](../BbTabs.md) / `BbTabsRoot`. `BbTab` appears only as the **v2 "before" side** of the migration diffs. |
|
|
1237
|
+
| `BbCard` | Does not exist — a card is a `<div>` with tokens. See [design-language](./design-language.md). |
|
|
1238
|
+
| `BbList` / `BbListItem` / `BbDescriptionList` | Do not exist — a list row is an `<li>` with tokens, and [BbBaseButton](../BbBaseButton.md) makes the whole row navigable. See the note under Data Display. |
|
|
1239
|
+
| `useLiveFeed` / any polling or cross-tab feed helper | Does not exist, and neither does a cross-tab helper — `useBroadcastChannelInstance` was removed (cross-tab messaging is not a UI concern). Use `useBroadcastChannel` from `@vueuse/core`; the polling and the merge are yours. |
|
|
1240
|
+
| `BbStepper` / `BbWizard` | Does not exist as a component; the wizard-form recipe composes one. |
|
|
1241
|
+
| `BbSkeleton` (standalone) | Only `BbTable` ships skeletons, via the column `skeleton` field. |
|
|
1242
|
+
| `BbCommand` / command palette | Does not exist. Compose `BbDialog` + `BbSelectPopover`. |
|
|
1243
|
+
| `BbCalendar` (month / scheduling view) | Does not exist. [BbDatePicker](../BbDatePicker.md) is a picker, not a calendar surface. |
|
|
1244
|
+
| `BbChart` / `BbGraph`, `BbCarousel`, `BbTimeline`, `BbDivider` | Do not exist. No charting, carousel or timeline primitive ships here. |
|
|
1178
1245
|
|
|
1179
1246
|
App chrome — an app shell, sidebar, page header, selection dock — is
|
|
1180
1247
|
deliberately **not** a component: it is yours to own. The per-platform
|
|
@@ -1202,7 +1269,7 @@ See:
|
|
|
1202
1269
|
---
|
|
1203
1270
|
|
|
1204
1271
|
<!-- dist/ai/guides/design-language.md -->
|
|
1205
|
-
<!-- https://
|
|
1272
|
+
<!-- https://llms-bitboss-ui.bitboss.it/dist/ai/guides/design-language.md -->
|
|
1206
1273
|
|
|
1207
1274
|
# Design Language
|
|
1208
1275
|
|
|
@@ -1254,20 +1321,20 @@ naming rules, the emphasis ladder) lives in
|
|
|
1254
1321
|
|
|
1255
1322
|
### Surfaces & structure
|
|
1256
1323
|
|
|
1257
|
-
| Token | Meaning
|
|
1258
|
-
| --------------------- |
|
|
1259
|
-
| `--bb-panel` | Surface/background color of panels, popovers, dialogs
|
|
1260
|
-
| `--bb-muted` | Subtle/disabled surface (derived, neutral)
|
|
1261
|
-
| `--bb-hover` | Hover fill for **affordances** (buttons, links, controls)
|
|
1262
|
-
| `--bb-surface-hover` | Hover fill for **passive surfaces** (rows, cells, days) — fainter
|
|
1263
|
-
| `--bb-pressed` | Neutral pressed/active fill
|
|
1264
|
-
| `--bb-border` | Border color; pair with `--bb-border-w` (1px)
|
|
1265
|
-
| `--bb-radius` | Corner radius of controls (8px)
|
|
1266
|
-
| `--bb-radius-surface` | Corner radius of large surfaces (derived, ×1.8)
|
|
1267
|
-
| `--bb-radius-sm` | Corner radius of small nested elements (derived)
|
|
1268
|
-
| `--bb-shadow` | Global elevation shadow
|
|
1269
|
-
| `--bb-panel-p` | Content padding of large surfaces (dialog, off-canvas)
|
|
1270
|
-
| `--bb-z-overlay` | Z-index for overlays (10)
|
|
1324
|
+
| Token | Meaning |
|
|
1325
|
+
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
|
|
1326
|
+
| `--bb-panel` | Surface/background color of panels, popovers, dialogs |
|
|
1327
|
+
| `--bb-muted` | Subtle/disabled surface (derived, neutral) |
|
|
1328
|
+
| `--bb-hover` | Hover fill for **affordances** (buttons, links, controls) |
|
|
1329
|
+
| `--bb-surface-hover` | Hover fill for **passive surfaces** (rows, cells, days) — fainter |
|
|
1330
|
+
| `--bb-pressed` | Neutral pressed/active fill |
|
|
1331
|
+
| `--bb-border` | Border color; pair with `--bb-border-w` (1px) |
|
|
1332
|
+
| `--bb-radius` | Corner radius of controls (8px) |
|
|
1333
|
+
| `--bb-radius-surface` | Corner radius of large surfaces (derived, ×1.8) |
|
|
1334
|
+
| `--bb-radius-sm` | Corner radius of small nested elements (derived) |
|
|
1335
|
+
| `--bb-shadow` | Global elevation shadow |
|
|
1336
|
+
| `--bb-panel-p` | Content padding of large surfaces (dialog, off-canvas); axis split via the locals `--px`/`--py` on `.bb-dialog` / `.bb-offcanvas` |
|
|
1337
|
+
| `--bb-z-overlay` | Z-index for overlays (10) |
|
|
1271
1338
|
|
|
1272
1339
|
### Color semantics
|
|
1273
1340
|
|
|
@@ -1787,13 +1854,13 @@ text, `--bb-label-weight`
|
|
|
1787
1854
|
|
|
1788
1855
|
## Component catalogue
|
|
1789
1856
|
|
|
1790
|
-
Every public component. Open one contract at `https://
|
|
1857
|
+
Every public component. Open one contract at `https://llms-bitboss-ui.bitboss.it/dist/ai/<Name>.md` before using it — never guess a prop name.
|
|
1791
1858
|
|
|
1792
1859
|
- **BbAccordion** — Expands and collapses a content panel.
|
|
1793
1860
|
- **BbAlert** — Shows contextual status messages.
|
|
1794
1861
|
- **BbAsterisk** — Presentational required-field marker (red "*"). No props/slots/events; placed in custom label content.
|
|
1795
1862
|
- **BbAvatar** — Displays an avatar and has a fallback content slot.
|
|
1796
|
-
- **BbBadge** — Displays compact status
|
|
1863
|
+
- **BbBadge** — 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).
|
|
1797
1864
|
- **BbBadgeButton** — 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.
|
|
1798
1865
|
- **BbBaseButton** — 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.
|
|
1799
1866
|
- **BbBaseCheckboxIcon** — Standalone checkbox glyph (box + checkmark SVG). Presentational only — no input, no events. Compose it into a fully custom checkbox design, or let BbCheckbox/BbBaseCheckbox render it.
|
|
@@ -1811,13 +1878,13 @@ Every public component. Open one contract at `https://cdn.jsdelivr.net/npm/bitbo
|
|
|
1811
1878
|
- **BbDatePicker** — Opens an anchored calendar (and optional time rail) popover on a trigger you own — the date analog of BbColorPalette; also the v-bb-date directive.
|
|
1812
1879
|
- **BbDatePickerInput** — Combines date selection with text input behavior.
|
|
1813
1880
|
- **BbDialog** — Presents modal dialogs for focused user interactions.
|
|
1814
|
-
- **BbDropdown** — Displays contextual action menus and menu content.
|
|
1881
|
+
- **BbDropdown** — Displays contextual action menus and menu content (includes the co-located BbDropdownGroup export, which is how a selectable group is bound).
|
|
1815
1882
|
- **BbDropdownButton** — A button with primary action and all other actions collected in a dropdown.
|
|
1816
1883
|
- **BbDropdownGroup** — Renderless v-model companion for a group declared in BbDropdown.items, bound by id.
|
|
1817
1884
|
- **BbDropzone** — Supports drag-and-drop file input flows.
|
|
1818
1885
|
- **BbForm** — Form host for `bitboss-ui/validated`: owns the vee-validate form (useForm), validates every field on submit, and emits `submit` with the collected values only when the form is valid.
|
|
1819
1886
|
- **BbIcon** — Renders an icon either from the local icon folder or from a provider.
|
|
1820
|
-
- **BbIndicator** — Anchors a notification bubble (count/short text) or a dot over a wrapped element
|
|
1887
|
+
- **BbIndicator** — Anchors a notification bubble (count/short text) or a dot over a wrapped element.
|
|
1821
1888
|
- **BbNumberInput** — Captures and validates numeric form values, emits a number value.
|
|
1822
1889
|
- **BbOffCanvas** — Shows side-panel overlay content outside normal layout flow.
|
|
1823
1890
|
- **BbPagination** — Navigates paginated data sets by page index.
|
|
@@ -1834,7 +1901,7 @@ Every public component. Open one contract at `https://cdn.jsdelivr.net/npm/bitbo
|
|
|
1834
1901
|
- **BbSwitch** — Toggles two-state values with switch semantics.
|
|
1835
1902
|
- **BbSwitchGroup** — Manages grouped switch options with shared behavior.
|
|
1836
1903
|
- **BbTable** — Displays tabular data, configurable columns and data mapper.
|
|
1837
|
-
- **BbTabs** — Switches between tabbed content views (shadcn-like strip;
|
|
1904
|
+
- **BbTabs** — Switches between tabbed content views (shadcn-like strip; the co-located BbTabsRoot / BbTabsList / BbTabsPanes exports enable split layouts).
|
|
1838
1905
|
- **BbTabsList** — The trigger strip of a split BbTabsRoot layout (renders the tab buttons only).
|
|
1839
1906
|
- **BbTabsPanes** — The pane host of a split BbTabsRoot layout (renders the tab content only).
|
|
1840
1907
|
- **BbTabsRoot** — Provide/inject root that lets BbTabsList and BbTabsPanes live in separate layout slots.
|
|
@@ -1843,7 +1910,7 @@ Every public component. Open one contract at `https://cdn.jsdelivr.net/npm/bitbo
|
|
|
1843
1910
|
- **BbTextInput** — Captures single-line text values.
|
|
1844
1911
|
- **BbTimePicker** — Opens hour/minute(/second) columns in a popover on a trigger you own — the time analog of BbDatePicker; also the v-bb-time directive.
|
|
1845
1912
|
- **BbTimePickerInput** — Segmented time field with hour/minute columns; 24-hour string model.
|
|
1846
|
-
- **BbToast** — Shows transient notification messages.
|
|
1913
|
+
- **BbToast** — Shows transient notification messages (includes the co-located BbToastPortal export).
|
|
1847
1914
|
- **BbToastPortal** — Registers named slot content that toast() renders via `portal`.
|
|
1848
1915
|
- **BbTooltip** — Displays contextual helper text on interaction.
|
|
1849
1916
|
- **BbTree** — Renders hierarchical expandable tree structures.
|
package/dist/llms.txt
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
## AI Knowledge Base
|
|
6
6
|
|
|
7
|
-
- [Core knowledge base](https://
|
|
8
|
-
- [Complete knowledge base](https://
|
|
7
|
+
- [Core knowledge base](https://llms-bitboss-ui.bitboss.it/dist/llms-medium.txt): **Fetch this if you can only fetch one file** — hard rules, setup, component picker, design language, and the full component catalogue in ~70 KB.
|
|
8
|
+
- [Complete knowledge base](https://llms-bitboss-ui.bitboss.it/dist/llms-full.txt): Everything concatenated (~2 MB). Bulk ingestion only — too large to prompt with.
|
|
9
9
|
- [AI Router](ai/guides/ai-router.md): **Start here** — tiny hop map for any coding agent (which file to open next).
|
|
10
10
|
- [Component index](ai/index.md): Full component catalogue with agent rules, grouped by category. Each entry links a typed contract (props/events/slots/v-model).
|
|
11
11
|
- [Component manifest](ai/components.json): Machine-readable API surface of every component, for programmatic validation.
|
|
@@ -32,17 +32,17 @@
|
|
|
32
32
|
- [Migration v2→v3: BbCheckbox / BbRadio / BbSwitch](ai/guides/migration/components/bb-checkbox.md): reverse polarity inverted (explicit values flip, default layout unchanged), checked narrowed to boolean, color removed, BbRadio's name no longer required.
|
|
33
33
|
- [Migration v2→v3: BbCheckboxGroup / BbRadioGroup / BbSwitchGroup](ai/guides/migration/components/bb-checkbox-group.md): labelPosition renamed legendPosition, per-item disabled is now inert (use selectable), color and the option affix slots removed, BbRadioGroup's name no longer required, and the shared bb-cr-container CSS block split into one per group.
|
|
34
34
|
- [Migration v2→v3: BbChip (removed)](ai/guides/migration/components/bb-chip.md): BbChip is gone — BbBadge with clearable is the replacement; non-clearable chips were badges all along.
|
|
35
|
-
- [Migration v2→v3: BbCollapsible](ai/guides/migration/components/bb-collapsible.md): The tag prop is removed; the root is always a
|
|
35
|
+
- [Migration v2→v3: BbCollapsible](ai/guides/migration/components/bb-collapsible.md): The tag prop is removed; the root is always a span.
|
|
36
36
|
- [Migration v2→v3: BbColorInput](ai/guides/migration/components/bb-color-input.md): picker renamed to eyeDropper.
|
|
37
37
|
- [Migration v2→v3: BbColorPalette](ai/guides/migration/components/bb-color-palette.md): flip inverted to disableFlip, showArrow removed, picker renamed eyeDropper, update:open dropped, model updates never emit null.
|
|
38
38
|
- [Migration v2→v3: BbDatePickerInput](ai/guides/migration/components/bb-date-picker-input.md): allowWriting inverted to disableWriting and hidePopover renamed to disableCalendar, both with a changed token set; the width prop is removed; adaptive mobile sheet by default; non-floating output carries the local offset instead of UTC `Z` (new `utc` prop restores v2 output).
|
|
39
|
-
- [Migration v2→v3: BbDialog](ai/guides/migration/components/bb-dialog.md): showClose inverted to hideClose,
|
|
39
|
+
- [Migration v2→v3: BbDialog](ai/guides/migration/components/bb-dialog.md): showClose inverted to hideClose, #close removed (description restored in beta.19), default widths changed, adaptive bottom sheet on mobile by default, --bb-dialog-* tokens replaced by --bb-panel-p plus locals.
|
|
40
40
|
- [Migration v2→v3: BbDropdown](ai/guides/migration/components/bb-dropdown.md): Items now expect text as the label and can carry variants/submenus; arrowPadding removed; adaptive mobile sheet on by default.
|
|
41
41
|
- [Migration v2→v3: BbDropdownButton](ai/guides/migration/components/bb-dropdown-button.md): autoLoading renamed to disableAutoLoading, disabledWhileLoading and theme removed.
|
|
42
42
|
- [Migration v2→v3: BbDropzone](ai/guides/migration/components/bb-dropzone.md): modelValue is typed, accept no longer throws and takes bare tokens, and the hidden native-submit input only renders when name is set.
|
|
43
43
|
- [Migration v2→v3: BbIcon](ai/guides/migration/components/bb-icon.md): The required prop is renamed type→icon, color is removed, and the xxl size key becomes 2xl.
|
|
44
44
|
- [Migration v2→v3: BbIntersection](ai/guides/migration/components/bb-intersection.md): Removed with no replacement — it wrapped IntersectionObserver and carried no styling; use @vueuse/core's useIntersectionObserver.
|
|
45
|
-
- [Migration v2→v3: BbOffCanvas](ai/guides/migration/components/bb-offcanvas.md): direction→side; showClose→hideClose;
|
|
45
|
+
- [Migration v2→v3: BbOffCanvas](ai/guides/migration/components/bb-offcanvas.md): direction→side; showClose→hideClose; #close removed (description restored in beta.19); size defaults change; adaptive drawer configs unify on offCanvasProps.
|
|
46
46
|
- [Migration v2→v3: BbPagination](ai/guides/migration/components/bb-pagination.md): querykey renamed to queryKey; the loading prop is removed.
|
|
47
47
|
- [Migration v2→v3: BbPopover](ai/guides/migration/components/bb-popover.md): Built-in close button, restoreFocus, theme, and the arrow are gone; close affordances move into your content.
|
|
48
48
|
- [Migration v2→v3: BbRating](ai/guides/migration/components/bb-rating.md): color removed; name no longer required; the star state modifier renamed --highlighted to --filled/--empty; --bb-rating-size demoted to a local --size; input-position finally works.
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
- [Migration v2→v3: BbSlider](ai/guides/migration/components/bb-slider.md): thumbTranslate inverted to disableThumbTranslate; string model values and color removed.
|
|
52
52
|
- [Migration v2→v3: BbSmoothHeight](ai/guides/migration/components/bb-smooth-height.md): The `tag` prop is narrowed to `div | span`, and the inner measuring element now mirrors it instead of always being a `<div>`.
|
|
53
53
|
- [Migration v2→v3: BbSpinner](ai/guides/migration/components/bb-spinner.md): The color prop is removed; spinners follow currentColor.
|
|
54
|
-
- [Migration v2→v3: BbTable](ai/guides/migration/components/bb-table.md): allowSelectAll inverted to disableSelectAll; loading no longer blanks populated tables and now inerts rows; #loading is first-load-only; #no-data fills a full-width
|
|
54
|
+
- [Migration v2→v3: BbTable](ai/guides/migration/components/bb-table.md): The table renders as a CSS grid of divs with ARIA roles, not a <table> — every element selector (table/thead/tbody/tr/th/td) under .bb-table matches nothing, #thead/#tbody/#tfoot take role-complete div rows, --fill/--natural-width are gone, column widths drift within documented bounds, copy-to-spreadsheet and print header repetition degrade; allowSelectAll inverted to disableSelectAll; loading no longer blanks populated tables and now inerts rows; #loading is first-load-only; #no-data fills a full-width cell instead of replacing the row; row events drop the selected argument; columns gained sortable + rowClass, which collide with same-named consumer fields.
|
|
55
55
|
- [Migration v2→v3: BbTabs (was BbTab)](ai/guides/migration/components/bb-tabs.md): Component renamed; querykey→queryKey; animations default on; label slots renamed and all dynamic names/URL slugs normalized; the entire .bb-tab BEM tree renamed to .bb-tabs / .bb-tabs-list / .bb-tabs-panes.
|
|
56
56
|
- [Migration v2→v3: BbTag](ai/guides/migration/components/bb-tag.md): modelValue is strictly string[] now, multiple is removed, and duplicates are rejected case-insensitively by default.
|
|
57
57
|
- [Migration v2→v3: BbTextInput](ai/guides/migration/components/bb-text-input.md): The type prop narrows to the text-like input types — number/date values must move to their dedicated components; a bare `floating` attribute was never a prop, the spelling is label-mode="floating".
|
|
@@ -61,6 +61,7 @@
|
|
|
61
61
|
- [Migration v2→v3: confirm() / useConfirm](ai/guides/migration/components/use-confirm.md): yesText/onYes/noText/onNo collapse into yes/no configs, actions becomes an array-or-false, theme→variant, timeout→duration, autoClose flips to default-true, labels are localized, footer buttons default md.
|
|
62
62
|
- [Migration v2→v3: useBroadcastChannelInstance](ai/guides/migration/components/use-broadcast-channel-instance.md): Removed — cross-tab messaging is not a UI concern; use useBroadcastChannel from @vueuse/core.
|
|
63
63
|
- [Page Shell](ai/guides/page-shell.md): App-side page layout — topbar, content, and a right details sidebar driven by a stack-based context (push a record to peek it, pop to go back). The implementation ships in the per-platform Layout Scaffold recipe; this guide covers when and how to use it.
|
|
64
|
+
- [ssr-prefill](ai/guides/ssr-prefill.md): Guide for ssr-prefill usage and decision-making context.
|
|
64
65
|
- [Validated Forms (vee-validate)](ai/guides/validated-forms.md): The `bitboss-ui/validated` entrypoint — form controls pre-wired to vee-validate. Global rules give an effort-free `rules="required|email"` string syntax; BbForm hosts the form; requiredAsterisk marks required fields.
|
|
65
66
|
|
|
66
67
|
## Recipes (Page-Level Assemblies)
|
|
@@ -138,7 +138,10 @@
|
|
|
138
138
|
"selectAllLabel": "Select all items on this page",
|
|
139
139
|
"selectText": "Select an item",
|
|
140
140
|
"select": "Select",
|
|
141
|
-
"selectableLegend": "Select items"
|
|
141
|
+
"selectableLegend": "Select items",
|
|
142
|
+
"reorderInstructions": "Use the left and right arrow keys to move between columns; hold Shift to move the column, with Home and End for the ends. Enter sorts a sortable column.",
|
|
143
|
+
"columnMoved": "{0} moved to position {1} of {2}",
|
|
144
|
+
"resizeInstructions": "Alt + left or right arrow resizes the column; double-click its edge to restore the declared width."
|
|
142
145
|
},
|
|
143
146
|
"baseTimePickerInput": {
|
|
144
147
|
"emptySelection": "Select a time",
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The name registry behind the `bitboss-ui/nuxt` module's `autoImport` option.
|
|
3
|
+
*
|
|
4
|
+
* v3's default stance is EXPLICIT imports: nothing is globally registered, so
|
|
5
|
+
* `vueCompilerOptions.checkUnknownComponents` turns a typo'd or unimported
|
|
6
|
+
* `<BbTabs>` into a `vue-tsc` error instead of a silently missing widget (see
|
|
7
|
+
* ai/guides/installation-and-plugin-setup.md). `autoImport` deliberately trades
|
|
8
|
+
* that gate away for Nuxt's zero-import ergonomics — it exists so an app coming
|
|
9
|
+
* from `@bitboss-dev/bitboss-ui-nuxt`, whose templates were written against
|
|
10
|
+
* auto-imported components, does not have to add ~60 imports per page in the
|
|
11
|
+
* same commit that moves it to v3.
|
|
12
|
+
*
|
|
13
|
+
* Nuxt needs the names at config time and the published package is `dist/` —
|
|
14
|
+
* there is no source tree to read them from — so they are written out here.
|
|
15
|
+
* `nuxt-auto-imports.node.test.ts` diffs these lists against the actual exports
|
|
16
|
+
* of `src/index.ts` and `src/validated/index.ts` on every run, so a component
|
|
17
|
+
* added to the library and not to this file fails the suite rather than
|
|
18
|
+
* quietly never auto-importing.
|
|
19
|
+
*/
|
|
20
|
+
/** The entrypoints an auto-imported name can be pulled from. */
|
|
21
|
+
export declare const CORE_ENTRYPOINT: "bitboss-ui";
|
|
22
|
+
export declare const VALIDATED_ENTRYPOINT: "bitboss-ui/validated";
|
|
23
|
+
export type AutoImportEntrypoint = typeof CORE_ENTRYPOINT | typeof VALIDATED_ENTRYPOINT;
|
|
24
|
+
/**
|
|
25
|
+
* Every component `bitboss-ui` exports. Mirrors the `export { default as … }`
|
|
26
|
+
* lines of `src/index.ts`, in the order Nuxt will see them (sorted).
|
|
27
|
+
*/
|
|
28
|
+
export declare const CORE_COMPONENTS: readonly string[];
|
|
29
|
+
/**
|
|
30
|
+
* Every component `bitboss-ui/validated` exports — the vee-validate-bound form
|
|
31
|
+
* controls, their `BbForm` host, and `BbAsterisk` (re-exported there so a
|
|
32
|
+
* validated app gets the required marker from the same entrypoint as the
|
|
33
|
+
* controls that render it).
|
|
34
|
+
*
|
|
35
|
+
* With `validated: true` these SHADOW their core namesakes: `<BbTextInput>` in
|
|
36
|
+
* a template resolves to the validated wrapper, which is the whole point — the
|
|
37
|
+
* template stays identical and gains `rules` / `vid` / `validateOn`.
|
|
38
|
+
*/
|
|
39
|
+
export declare const VALIDATED_COMPONENTS: readonly string[];
|
|
40
|
+
/**
|
|
41
|
+
* Composables `bitboss-ui` exports that are deliberately NOT auto-imported.
|
|
42
|
+
*
|
|
43
|
+
* `useId` collides head-on with the `useId` Nuxt already auto-imports from Vue.
|
|
44
|
+
* Registering ours would silently redirect every `useId()` call in the app —
|
|
45
|
+
* including ones written long before bitboss-ui was installed — to a different
|
|
46
|
+
* generator. Apps that want the library's still `import { useId } from
|
|
47
|
+
* 'bitboss-ui'` explicitly.
|
|
48
|
+
*/
|
|
49
|
+
export declare const EXCLUDED_COMPOSABLES: readonly string[];
|
|
50
|
+
/** Composables auto-imported from `bitboss-ui`. */
|
|
51
|
+
export declare const CORE_COMPOSABLES: readonly string[];
|
|
52
|
+
/** Composables auto-imported from `bitboss-ui/validated` under `validated`. */
|
|
53
|
+
export declare const VALIDATED_COMPOSABLES: readonly string[];
|
|
54
|
+
/**
|
|
55
|
+
* `autoImport` as written in `nuxt.config.ts`. `true` is shorthand for
|
|
56
|
+
* `{ components: true, composables: true }` — validated wrappers are opt-in on
|
|
57
|
+
* top, because swapping them in changes what a `<BbTextInput>` tag resolves to.
|
|
58
|
+
*/
|
|
59
|
+
export type BitbossAutoImportOptions = {
|
|
60
|
+
/**
|
|
61
|
+
* Register every `bitboss-ui` component with Nuxt so templates can use them
|
|
62
|
+
* without an import.
|
|
63
|
+
*
|
|
64
|
+
* @defaultValue `true` when `autoImport` is enabled
|
|
65
|
+
*/
|
|
66
|
+
components?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Add the library's composables to Nuxt's auto-import presets.
|
|
69
|
+
*
|
|
70
|
+
* @defaultValue `true` when `autoImport` is enabled
|
|
71
|
+
*/
|
|
72
|
+
composables?: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Resolve the form controls from `bitboss-ui/validated` instead of
|
|
75
|
+
* `bitboss-ui`, and add `BbForm`, `BbAsterisk`, `useBbFormContext` and
|
|
76
|
+
* `useValidatedField`. Requires the `vee-validate` peer.
|
|
77
|
+
*
|
|
78
|
+
* @defaultValue `false`
|
|
79
|
+
*/
|
|
80
|
+
validated?: boolean;
|
|
81
|
+
};
|
|
82
|
+
export type BitbossAutoImport = boolean | BitbossAutoImportOptions;
|
|
83
|
+
/** One resolved registration: the name Nuxt registers and where it comes from. */
|
|
84
|
+
export type AutoImportEntry = {
|
|
85
|
+
name: string;
|
|
86
|
+
from: AutoImportEntrypoint;
|
|
87
|
+
};
|
|
88
|
+
export type ResolvedAutoImports = {
|
|
89
|
+
components: AutoImportEntry[];
|
|
90
|
+
composables: AutoImportEntry[];
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* Turn the `autoImport` option into the exact list of names the Nuxt module
|
|
94
|
+
* hands to `addComponent` / `addImports`.
|
|
95
|
+
*
|
|
96
|
+
* Kept a pure function — no `@nuxt/kit`, no I/O — so the mapping that decides
|
|
97
|
+
* whether `<BbTextInput>` is the plain or the validated control is testable on
|
|
98
|
+
* its own, without booting Nuxt.
|
|
99
|
+
*/
|
|
100
|
+
export declare const resolveAutoImports: (autoImport: BitbossAutoImport | undefined) => ResolvedAutoImports;
|