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
|
@@ -189,3 +189,94 @@ export function isFallthroughAttr(name) {
|
|
|
189
189
|
HTML_ATTRIBUTES.has(lower)
|
|
190
190
|
);
|
|
191
191
|
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* DOM events a consumer may legitimately listen for on a `Bb*` component and
|
|
195
|
+
* expect to reach its root element through Vue's listener fall-through.
|
|
196
|
+
*
|
|
197
|
+
* The event gate needs this for the same reason the attribute gate needs
|
|
198
|
+
* `HTML_ATTRIBUTES`: a component's manifest lists only the events it EMITS, so
|
|
199
|
+
* `@click` on `BbButton` — which declares just `update:modelValue` — is
|
|
200
|
+
* perfectly good markup that would otherwise read as a typo. Anything here is
|
|
201
|
+
* accepted on any component without consulting the manifest.
|
|
202
|
+
*
|
|
203
|
+
* Deliberately not exhaustive over the whole DOM: media, sensor and
|
|
204
|
+
* legacy-IE events are omitted until something needs them, because every name
|
|
205
|
+
* added here is a name the gate stops checking.
|
|
206
|
+
*/
|
|
207
|
+
export const NATIVE_DOM_EVENTS = new Set([
|
|
208
|
+
// pointer / mouse
|
|
209
|
+
'auxclick',
|
|
210
|
+
'click',
|
|
211
|
+
'contextmenu',
|
|
212
|
+
'dblclick',
|
|
213
|
+
'mousedown',
|
|
214
|
+
'mouseenter',
|
|
215
|
+
'mouseleave',
|
|
216
|
+
'mousemove',
|
|
217
|
+
'mouseout',
|
|
218
|
+
'mouseover',
|
|
219
|
+
'mouseup',
|
|
220
|
+
'wheel',
|
|
221
|
+
'pointercancel',
|
|
222
|
+
'pointerdown',
|
|
223
|
+
'pointerenter',
|
|
224
|
+
'pointerleave',
|
|
225
|
+
'pointermove',
|
|
226
|
+
'pointerout',
|
|
227
|
+
'pointerover',
|
|
228
|
+
'pointerup',
|
|
229
|
+
// touch
|
|
230
|
+
'touchcancel',
|
|
231
|
+
'touchend',
|
|
232
|
+
'touchmove',
|
|
233
|
+
'touchstart',
|
|
234
|
+
// keyboard
|
|
235
|
+
'keydown',
|
|
236
|
+
'keypress',
|
|
237
|
+
'keyup',
|
|
238
|
+
// focus
|
|
239
|
+
'blur',
|
|
240
|
+
'focus',
|
|
241
|
+
'focusin',
|
|
242
|
+
'focusout',
|
|
243
|
+
// form
|
|
244
|
+
'beforeinput',
|
|
245
|
+
'change',
|
|
246
|
+
'input',
|
|
247
|
+
'invalid',
|
|
248
|
+
'reset',
|
|
249
|
+
'search',
|
|
250
|
+
'select',
|
|
251
|
+
'submit',
|
|
252
|
+
// clipboard + composition
|
|
253
|
+
'copy',
|
|
254
|
+
'cut',
|
|
255
|
+
'paste',
|
|
256
|
+
'compositionend',
|
|
257
|
+
'compositionstart',
|
|
258
|
+
'compositionupdate',
|
|
259
|
+
// drag and drop
|
|
260
|
+
'drag',
|
|
261
|
+
'dragend',
|
|
262
|
+
'dragenter',
|
|
263
|
+
'dragleave',
|
|
264
|
+
'dragover',
|
|
265
|
+
'dragstart',
|
|
266
|
+
'drop',
|
|
267
|
+
// scroll / resize / visibility
|
|
268
|
+
'error',
|
|
269
|
+
'load',
|
|
270
|
+
'scroll',
|
|
271
|
+
'scrollend',
|
|
272
|
+
'toggle',
|
|
273
|
+
// animation
|
|
274
|
+
'animationcancel',
|
|
275
|
+
'animationend',
|
|
276
|
+
'animationiteration',
|
|
277
|
+
'animationstart',
|
|
278
|
+
'transitioncancel',
|
|
279
|
+
'transitionend',
|
|
280
|
+
'transitionrun',
|
|
281
|
+
'transitionstart',
|
|
282
|
+
]);
|
|
@@ -17,7 +17,7 @@ import { existsSync, readFileSync } from 'node:fs';
|
|
|
17
17
|
import { dirname, join } from 'node:path';
|
|
18
18
|
import { fileURLToPath } from 'node:url';
|
|
19
19
|
import { parse } from 'vue/compiler-sfc';
|
|
20
|
-
import { isFallthroughAttr } from './html-attributes.mjs';
|
|
20
|
+
import { isFallthroughAttr, NATIVE_DOM_EVENTS } from './html-attributes.mjs';
|
|
21
21
|
|
|
22
22
|
const HERE = dirname(fileURLToPath(import.meta.url));
|
|
23
23
|
const DEFAULT_MANIFEST = join(HERE, '../../dist/ai/components.json');
|
|
@@ -286,7 +286,7 @@ const INTENT_ALIASES = {
|
|
|
286
286
|
* @typedef {{ name: string, new?: string | null, since?: string, migration?: string, silent?: boolean }} RemovedEntry
|
|
287
287
|
* @typedef {{ name: string, props: Array<{ name: string }>, models: Array<{ name: string }>, referenceOnly?: boolean, removed?: RemovedEntry[], renamed?: Array<{ from: string, to: string }> }} ComponentSurface
|
|
288
288
|
* @typedef {Map<string, ComponentSurface>} ManifestMap
|
|
289
|
-
* @typedef {{ component: string, attr: string, line?: number, kind: 'unknown-prop' | 'unknown-model' | 'removed-prop' | 'unknown-slot', message: string, hint?: string }} Finding
|
|
289
|
+
* @typedef {{ component: string, attr: string, line?: number, kind: 'unknown-prop' | 'unknown-model' | 'removed-prop' | 'unknown-slot' | 'unknown-event', message: string, hint?: string }} Finding
|
|
290
290
|
*/
|
|
291
291
|
|
|
292
292
|
/**
|
|
@@ -401,7 +401,7 @@ export function validateVueSnippet(code, manifest, options = {}) {
|
|
|
401
401
|
}
|
|
402
402
|
|
|
403
403
|
/**
|
|
404
|
-
* @typedef {{ attr: string, kind: 'unknown-prop' | 'unknown-model' | 'removed-prop' | 'unknown-slot', message: string, hint?: string }} AttrFinding
|
|
404
|
+
* @typedef {{ attr: string, kind: 'unknown-prop' | 'unknown-model' | 'removed-prop' | 'unknown-slot' | 'unknown-event', message: string, hint?: string }} AttrFinding
|
|
405
405
|
*/
|
|
406
406
|
|
|
407
407
|
/**
|
|
@@ -663,6 +663,53 @@ export function createComponentChecker(surface, options = {}) {
|
|
|
663
663
|
if (declaredList.length === 0) return false;
|
|
664
664
|
return !declaredList.some((s) => s.name === 'default');
|
|
665
665
|
},
|
|
666
|
+
/**
|
|
667
|
+
* Q10.12 — an `@event` on a `Bb*` tag must name something real.
|
|
668
|
+
*
|
|
669
|
+
* Nothing checked these. The beta.9 rename `resize` → `resize:column`
|
|
670
|
+
* left our own `examples/ResizableColumns.vue` on `@resize` and every
|
|
671
|
+
* gate stayed green: doc-drift skips `@event` in prose by design, the
|
|
672
|
+
* ESLint rule reads attributes and props only, and `vue-tsc` reports
|
|
673
|
+
* unknown component events only under `strictTemplates`. A consumer's
|
|
674
|
+
* migration report found it.
|
|
675
|
+
*
|
|
676
|
+
* Accepted without consulting the manifest: any NATIVE DOM event, since
|
|
677
|
+
* Vue passes an undeclared listener through to the root element —
|
|
678
|
+
* `@click` on BbButton is good markup even though BbButton emits only
|
|
679
|
+
* `update:modelValue`.
|
|
680
|
+
*
|
|
681
|
+
* Silent when the component declares no events at all: that is true of
|
|
682
|
+
* reference-only surfaces and of anything whose manifest entry predates
|
|
683
|
+
* event extraction, and guessing there would cry wolf — the same guard
|
|
684
|
+
* `checkSlot` uses.
|
|
685
|
+
*/
|
|
686
|
+
checkEvent(rawName) {
|
|
687
|
+
if (!rawName) return null;
|
|
688
|
+
// `@click.stop.prevent` → `click`. Modifiers are Vue's, not ours.
|
|
689
|
+
const name = rawName.split('.')[0];
|
|
690
|
+
if (!name) return null;
|
|
691
|
+
if (NATIVE_DOM_EVENTS.has(name)) return null;
|
|
692
|
+
|
|
693
|
+
const declaredList = surface.events ?? [];
|
|
694
|
+
if (declaredList.length === 0) return null;
|
|
695
|
+
const declared = new Set(declaredList.map((e) => e.name));
|
|
696
|
+
if (declared.has(name)) return null;
|
|
697
|
+
|
|
698
|
+
// `update:foo` for a real model, in case a surface lists models but
|
|
699
|
+
// not their update events.
|
|
700
|
+
if (name.startsWith('update:') && modelKeys.has(toCamel(name.slice(7))))
|
|
701
|
+
return null;
|
|
702
|
+
|
|
703
|
+
const near = nearestName(name, declared);
|
|
704
|
+
return {
|
|
705
|
+
attr: `@${rawName}`,
|
|
706
|
+
kind: 'unknown-event',
|
|
707
|
+
message: `event \`${name}\` is not emitted by ${surface.name}`,
|
|
708
|
+
hint: near
|
|
709
|
+
? `did you mean \`@${near}\`?`
|
|
710
|
+
: `emitted events: ${[...declared].sort().join(', ')}`,
|
|
711
|
+
};
|
|
712
|
+
},
|
|
666
713
|
checkSlot(rawName) {
|
|
667
714
|
if (!rawName) return null;
|
|
668
715
|
|
|
@@ -837,13 +884,6 @@ export function checkNavAttrFallthrough(manifest, name, attrName) {
|
|
|
837
884
|
* `check` alone shipped orphan slots believing the markup was clean (SWP-015).
|
|
838
885
|
*/
|
|
839
886
|
export const TABLE_SLOT_PROP_PAIRS = [
|
|
840
|
-
{
|
|
841
|
-
slot: 'actions',
|
|
842
|
-
prop: 'actions',
|
|
843
|
-
missing: 'the `actions` prop is not set',
|
|
844
|
-
explain: 'the actions cell — and this slot — never renders',
|
|
845
|
-
action: 'Set the `actions` prop',
|
|
846
|
-
},
|
|
847
887
|
{
|
|
848
888
|
slot: 'select',
|
|
849
889
|
prop: 'selectable',
|
|
@@ -1137,7 +1177,15 @@ function validateElement(node, manifest, findings) {
|
|
|
1137
1177
|
findings.push({ component: name, ...finding, line: propLine(prop) });
|
|
1138
1178
|
continue;
|
|
1139
1179
|
}
|
|
1140
|
-
if (prop.name
|
|
1180
|
+
if (prop.name === 'on') {
|
|
1181
|
+
// Dynamic handler name (`@[evt]`) cannot be checked statically.
|
|
1182
|
+
if (!prop.arg || !prop.arg.isStatic) continue;
|
|
1183
|
+
const finding = checker.checkEvent(prop.arg.content);
|
|
1184
|
+
if (finding)
|
|
1185
|
+
findings.push({ component: name, ...finding, line: propLine(prop) });
|
|
1186
|
+
continue;
|
|
1187
|
+
}
|
|
1188
|
+
if (prop.name !== 'bind') continue; // v-if/for/show/slot, …
|
|
1141
1189
|
if (!prop.arg || !prop.arg.isStatic) continue; // v-bind="obj", :[dyn]
|
|
1142
1190
|
const finding =
|
|
1143
1191
|
checker.checkAttr(prop.arg.content) ??
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
//#region src/assets/svgs/sort.svg?raw
|
|
2
|
-
var e = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1em\" height=\"1em\" viewBox=\"0 0 24 24\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path class=\"sort-icon__asc\" fill=\"currentColor\" d=\"M6.293 4.293a1 1 0 0 1 1.414 0l4 4a1 1 0 0 1-1.414 1.414L8 7.414V19a1 1 0 1 1-2 0V7.414L3.707 9.707a1 1 0 0 1-1.414-1.414z\" />\n <path class=\"sort-icon__desc\" fill=\"currentColor\" d=\"M16 16.586V5a1 1 0 1 1 2 0v11.586l2.293-2.293a1 1 0 0 1 1.414 1.414l-4 4a1 1 0 0 1-1.414 0l-4-4a1 1 0 0 1 1.414-1.414z\" />\n</svg>\n";
|
|
3
|
-
//#endregion
|
|
4
|
-
export { e as default };
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
declare const __VLS_export: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
2
|
-
declare const _default: typeof __VLS_export;
|
|
3
|
-
export default _default;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { useLogger as e } from "../../composables/useLogger.js";
|
|
2
|
-
import t from "../BbIcon/BbIcon.vue.js";
|
|
3
|
-
import n from "../BbSpinner/BbSpinner.vue.js";
|
|
4
|
-
import { useBadgeHost as r } from "./badgeButtonContext.js";
|
|
5
|
-
import { createBlock as i, createCommentVNode as a, defineComponent as o, openBlock as s, unref as c } from "vue";
|
|
6
|
-
//#region src/components/BbBadge/BadgeAppendIcon.vue?vue&type=script&setup=true&lang.ts
|
|
7
|
-
var l = /*@__PURE__*/ o({
|
|
8
|
-
__name: "BadgeAppendIcon",
|
|
9
|
-
setup(o) {
|
|
10
|
-
let l = r() ?? e().throw("[BbBadge] internal append renderer mounted outside a badge — this is a bug.");
|
|
11
|
-
return (e, r) => c(l).spinnerTrails.value ? (s(), i(n, {
|
|
12
|
-
key: 0,
|
|
13
|
-
class: "bb-badge__append-icon"
|
|
14
|
-
})) : c(l).appendIcon.value ? (s(), i(t, {
|
|
15
|
-
key: 1,
|
|
16
|
-
class: "bb-badge__append-icon",
|
|
17
|
-
icon: c(l).appendIcon.value
|
|
18
|
-
}, null, 8, ["icon"])) : a("", !0);
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
//#endregion
|
|
22
|
-
export { l as default };
|