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/components/BbDropdown/DropdownPipelineResolver.vue_vue_type_script_setup_true_lang.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { BB_BASE_BUTTON_PROP_KEYS as e } from "../BbBaseButton/types.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { useLocale as t } from "../../composables/useLocale.js";
|
|
3
|
+
import { matchAnyKey as n } from "../../utilities/functions/matchAnyKey.js";
|
|
4
|
+
import { slotKey as r } from "../../utilities/functions/slotKey.js";
|
|
5
5
|
import { useDropdownContext as i } from "./useDropdownContext.js";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
6
|
+
import { hash as a } from "../../utilities/functions/hash.js";
|
|
7
|
+
import { useArray as o } from "../../composables/useArray.js";
|
|
8
|
+
import { useItemsGetter as ee } from "../../composables/useItemsGetter.js";
|
|
9
|
+
import { useItemText as te } from "../../composables/useItemText.js";
|
|
10
|
+
import { useItemValue as s } from "../../composables/useItemValue.js";
|
|
11
11
|
import { useHashedWatcher as c } from "../../composables/useHashedWatcher.js";
|
|
12
12
|
import { useDropdownGroupRegistry as l } from "./useDropdownGroupRegistry.js";
|
|
13
13
|
import { computed as u, defineComponent as d, getCurrentInstance as f, onUnmounted as p, ref as m, renderSlot as h, watch as g, watchEffect as _ } from "vue";
|
|
@@ -27,40 +27,40 @@ var v = "__bb-dropdown-group:loading__", y = "__bb-dropdown-group:no-data__", b
|
|
|
27
27
|
"append:icon",
|
|
28
28
|
"variant",
|
|
29
29
|
"onClick"
|
|
30
|
-
], S = l(), C = i(), w = f().uid, T = u(() => S?.configFor(b.id)), { t: E } =
|
|
30
|
+
], S = l(), C = i(), w = f().uid, T = u(() => S?.configFor(b.id)), { t: E } = t(), D = E("common.loadingText"), ne = E("common.noDataText"), re = E("select.searchToStart"), O = u(() => !!T.value?.searchable), k = u(() => C.queryFor(b.id)), ie = u(() => T.value?.filterBy ?? []), A = u(() => T.value?.prefill ?? "interaction"), j = u(() => A.value === !1), M = () => S?.modelValueFor(b.id), N = (e, t) => {
|
|
31
31
|
let n = e ? G : W;
|
|
32
32
|
return O.value ? n(k.value, t, M()) : n(t, M());
|
|
33
|
-
}, P = m(!1), F = u(() => !!T.value?.stash), { array: I, add: L } =
|
|
33
|
+
}, P = m(!1), F = u(() => !!T.value?.stash), { array: I, add: L } = o(), { getItemText: R } = te(), { getItemValue: z } = s(), B = (e) => z(e, T.value?.itemValue), V = (e) => R(e, T.value?.itemText), H = (e) => {
|
|
34
34
|
if (Array.isArray(e)) return e.map((e) => H(e));
|
|
35
35
|
if (!e || typeof e != "object") return e;
|
|
36
36
|
let t = e;
|
|
37
37
|
return Object.keys(t).sort().reduce((e, n) => (e[n] = H(t[n]), e), {});
|
|
38
38
|
}, U = (e) => {
|
|
39
|
-
if (typeof e == "string") return
|
|
40
|
-
if (e == null || typeof e == "number" || typeof e == "boolean") return
|
|
39
|
+
if (typeof e == "string") return r(e);
|
|
40
|
+
if (e == null || typeof e == "number" || typeof e == "boolean") return r(String(e));
|
|
41
41
|
try {
|
|
42
|
-
return
|
|
42
|
+
return r(JSON.stringify(H(e)) ?? String(e));
|
|
43
43
|
} catch {
|
|
44
|
-
return
|
|
44
|
+
return r(String(e));
|
|
45
45
|
}
|
|
46
|
-
}, { getter: W, debouncedGetter: G, items: K, loading: q } =
|
|
46
|
+
}, { getter: W, debouncedGetter: G, items: K, loading: q } = ee({
|
|
47
47
|
items: u(() => T.value?.items),
|
|
48
48
|
debounce: C.queryDebounceTime.value
|
|
49
49
|
}), J = u(() => {
|
|
50
50
|
let e = /* @__PURE__ */ new Map();
|
|
51
|
-
for (let t of K.value) e.set(
|
|
51
|
+
for (let t of K.value) e.set(a(B(t)), t);
|
|
52
52
|
return e;
|
|
53
53
|
}), ae = u(() => {
|
|
54
54
|
let e = K.value;
|
|
55
55
|
if (!F.value || !I.value.length) return e;
|
|
56
|
-
let t = new Set(e.map((e) =>
|
|
56
|
+
let t = new Set(e.map((e) => a(B(e)))), n = I.value.filter((e) => !t.has(a(B(e))));
|
|
57
57
|
return n.length ? [...e, ...n] : e;
|
|
58
58
|
});
|
|
59
59
|
_(() => {
|
|
60
60
|
if (!F.value) return;
|
|
61
61
|
let e = S?.selectionFor(b.id) ?? [];
|
|
62
62
|
if (!e.length) return;
|
|
63
|
-
let t = new Set(I.value.map((e) =>
|
|
63
|
+
let t = new Set(I.value.map((e) => a(B(e))));
|
|
64
64
|
for (let n of e) {
|
|
65
65
|
if (t.has(n)) continue;
|
|
66
66
|
let e = J.value.get(n);
|
|
@@ -70,13 +70,13 @@ var v = "__bb-dropdown-group:loading__", y = "__bb-dropdown-group:no-data__", b
|
|
|
70
70
|
let Y = u(() => ae.value.map((e) => ({
|
|
71
71
|
item: e,
|
|
72
72
|
value: B(e),
|
|
73
|
-
key:
|
|
73
|
+
key: a(B(e)),
|
|
74
74
|
slotToken: U(B(e)),
|
|
75
75
|
text: V(e)
|
|
76
76
|
}))), oe = u(() => {
|
|
77
77
|
if (!O.value || !k.value) return Y.value;
|
|
78
|
-
let e = k.value.trim(),
|
|
79
|
-
return Y.value.filter((r) =>
|
|
78
|
+
let e = k.value.trim(), t = ie.value;
|
|
79
|
+
return Y.value.filter((r) => t.length ? n(r.item, t, e) : n({ text: r.text }, ["text"], e));
|
|
80
80
|
}), X = u(() => {
|
|
81
81
|
let e = /* @__PURE__ */ new Map();
|
|
82
82
|
for (let t of Y.value) e.set(t.key, t.value);
|
|
@@ -187,11 +187,14 @@ export type InternalGroup = DropdownEntryBase & {
|
|
|
187
187
|
* predictable size regardless of row content. A `number` is pixels; a `string`
|
|
188
188
|
* is any CSS length (`'50vh'`, `'20rem'`). `'none'` (or `0`) removes the cap.
|
|
189
189
|
*
|
|
190
|
-
* `searchable` groups default to `280` (≈ 10 rows of 28px)
|
|
191
|
-
* list is usually long; set your own value to tweak, or
|
|
192
|
-
*
|
|
190
|
+
* `searchable` groups default to `280` (≈ 10 rows of 28px) **on the flyout**,
|
|
191
|
+
* since a searched list is usually long; set your own value to tweak, or
|
|
192
|
+
* `'none'` to uncap. The adaptive sheet ignores the cap so the OffCanvas
|
|
193
|
+
* body stays the only scroller (nested group overflow trapped swipes that
|
|
194
|
+
* started on a row). Non-searchable flyout groups are uncapped unless you
|
|
195
|
+
* set this.
|
|
193
196
|
*
|
|
194
|
-
* @defaultValue `280` for `searchable` groups, otherwise unset
|
|
197
|
+
* @defaultValue `280` for `searchable` flyout groups, otherwise unset
|
|
195
198
|
*/
|
|
196
199
|
maxHeight?: number | string;
|
|
197
200
|
/**
|
|
@@ -345,6 +348,17 @@ export type BbDropdownProps = {
|
|
|
345
348
|
* @defaultValue `config.adaptive` (`true`)
|
|
346
349
|
*/
|
|
347
350
|
adaptive?: boolean;
|
|
351
|
+
/**
|
|
352
|
+
* Apply the compact density variant — the same ladder `BbSelect` uses, on
|
|
353
|
+
* both surfaces: flyout rows go 28px → 24px, sheet rows 44px → 36px. The
|
|
354
|
+
* label size does not change; density here is height, as it is for a select.
|
|
355
|
+
*
|
|
356
|
+
* A menu row is a touch target in a way a select option is not quite — a
|
|
357
|
+
* mis-tap fires the neighbouring COMMAND rather than picking the wrong value
|
|
358
|
+
* — so the compact sheet stops at 36px and never follows the flyout down to
|
|
359
|
+
* 24px. That is the same floor the select's sheet holds.
|
|
360
|
+
*/
|
|
361
|
+
compact?: boolean;
|
|
348
362
|
/**
|
|
349
363
|
* Element the panel positions itself against, when it should differ from the
|
|
350
364
|
* activator — e.g. a wrapper that the activator is only a part of, so the menu
|
|
@@ -424,7 +438,8 @@ export type BbDropdownProps = {
|
|
|
424
438
|
padding?: number;
|
|
425
439
|
/**
|
|
426
440
|
* Position of the dropdown relative to the activator.
|
|
427
|
-
* Use `'cursor'` to anchor at the mouse/touch coordinates
|
|
441
|
+
* Use `'cursor'` to anchor at the mouse/touch coordinates.
|
|
442
|
+
* (No arrow is drawn either way — arrows are tooltip-only in v3.)
|
|
428
443
|
*
|
|
429
444
|
* @defaultValue `'bottom'`
|
|
430
445
|
*/
|
package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js
CHANGED
|
@@ -2,8 +2,8 @@ import { removedPropsFor as e } from "../../deprecation/removedProps.js";
|
|
|
2
2
|
import { warnRemovedAttrs as t } from "../../utilities/functions/warnRemovedAttrs.js";
|
|
3
3
|
import { useLocale as n } from "../../composables/useLocale.js";
|
|
4
4
|
import { groupItemsAsArray as r, isGroup as i } from "../BbDropdown/types.js";
|
|
5
|
-
import a from "../
|
|
6
|
-
import o from "../
|
|
5
|
+
import a from "../BbButton/BbButton.vue.js";
|
|
6
|
+
import o from "../BbDropdown/BbDropdown.vue.js";
|
|
7
7
|
import "../../assets/svgs/chevron_down.svg_raw.js";
|
|
8
8
|
import { computed as s, createElementBlock as c, createSlots as l, createVNode as u, defineComponent as d, guardReactiveProps as f, mergeProps as p, normalizeClass as m, normalizeProps as h, openBlock as g, renderList as _, renderSlot as v, unref as y, useTemplateRef as b, withCtx as x } from "vue";
|
|
9
9
|
//#region src/components/BbDropdownButton/BbDropdownButton.vue?vue&type=script&setup=true&lang.ts
|
|
@@ -43,7 +43,7 @@ var S = /*@__PURE__*/ d({
|
|
|
43
43
|
ref_key: "root",
|
|
44
44
|
ref: T,
|
|
45
45
|
class: m(["bb-dropdown-button", { "bb-dropdown-button--block": e.block }])
|
|
46
|
-
}, [u(
|
|
46
|
+
}, [u(a, p(M.value, {
|
|
47
47
|
"append:icon": S["append:icon"],
|
|
48
48
|
class: "bb-dropdown-button__main-btn",
|
|
49
49
|
"disable-auto-loading": e.disableAutoLoading,
|
|
@@ -61,7 +61,7 @@ var S = /*@__PURE__*/ d({
|
|
|
61
61
|
"prepend:icon",
|
|
62
62
|
"size",
|
|
63
63
|
"variant"
|
|
64
|
-
]), u(
|
|
64
|
+
]), u(o, {
|
|
65
65
|
id: e.id,
|
|
66
66
|
ref_key: "dropdown",
|
|
67
67
|
ref: E,
|
|
@@ -75,7 +75,7 @@ var S = /*@__PURE__*/ d({
|
|
|
75
75
|
"transition-duration": e.transitionDuration,
|
|
76
76
|
width: e.width
|
|
77
77
|
}, l({
|
|
78
|
-
activator: x(({ props: t, open: n }) => [u(
|
|
78
|
+
activator: x(({ props: t, open: n }) => [u(a, p({
|
|
79
79
|
"aria-label": D.value,
|
|
80
80
|
class: "bb-dropdown-button__dropdown-btn",
|
|
81
81
|
"disable-auto-loading": "",
|
|
@@ -1,70 +1,70 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
1
|
+
import { useConfig as e } from "../../composables/useConfig.js";
|
|
2
|
+
import { removedPropsFor as t } from "../../deprecation/removedProps.js";
|
|
3
|
+
import { useLogger as n } from "../../composables/useLogger.js";
|
|
4
|
+
import { warnRemovedAttrs as r } from "../../utilities/functions/warnRemovedAttrs.js";
|
|
5
|
+
import { parseSize as i } from "../../utilities/functions/parseSize.js";
|
|
6
|
+
import { ICONS_INJECTION_KEY as a } from "../../utilities/misc/iconsInjectionKey.js";
|
|
7
|
+
import { EMPTY_ICON as o, cacheKeyFor as s, parseIcon as c, parsedIcons as l } from "./iconCache.js";
|
|
8
|
+
import { computed as u, createElementBlock as d, defineComponent as f, inject as p, mergeProps as m, onBeforeMount as h, onServerPrefetch as g, openBlock as _, ref as v, watch as y } from "vue";
|
|
8
9
|
//#region src/components/BbIcon/BbIcon.vue?vue&type=script&setup=true&lang.ts
|
|
9
|
-
var
|
|
10
|
+
var b = ["innerHTML"], x = /*@__PURE__*/ f({
|
|
10
11
|
__name: "BbIcon",
|
|
11
12
|
props: {
|
|
12
13
|
label: {},
|
|
13
14
|
icon: {},
|
|
14
15
|
size: { default: "md" }
|
|
15
16
|
},
|
|
16
|
-
setup(
|
|
17
|
-
let
|
|
18
|
-
process.env.NODE_ENV !== "production" &&
|
|
19
|
-
let
|
|
20
|
-
|
|
21
|
-
},
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
17
|
+
setup(f) {
|
|
18
|
+
let x = f, S = e();
|
|
19
|
+
process.env.NODE_ENV !== "production" && r("BbIcon", t("BbIcon"));
|
|
20
|
+
let C = n(), w = v(), T = () => {
|
|
21
|
+
w.value = p(a) ?? p("icons"), w.value || C.throw("Failed to load icons. Make sure the plugin for your platform (Vue, Nuxt, or Inertia) is installed.");
|
|
22
|
+
}, E = (e) => /<svg[\s>]/i.test(e), D = /* @__PURE__ */ RegExp("<(?:[^>\"']|\"[^\"]*\"|'[^']*')*[\\s/]on[a-z]+\\s*=", "i"), O = /<script[\s/>]/i, k = (e) => D.test(e) ? "inline event handler attributes" : O.test(e) ? "an embedded <script> element" : null, A = (e) => s(e, E(e)), j = v(l.get(A(x.icon)) ?? null), M = async () => {
|
|
23
|
+
let e = A(x.icon), t = l.get(e);
|
|
24
|
+
if (t) {
|
|
25
|
+
j.value = t;
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
if (E(x.icon)) {
|
|
29
|
+
let t = k(x.icon);
|
|
30
|
+
if (t) {
|
|
31
|
+
j.value = o, C.warn(`Inline SVG icon rejected: it carries ${t} and did not pass sanitation, so the icon was dropped. bitboss-ui never sanitizes inline SVG — pass trusted markup (e.g. an import with \`?raw\`), never a string from a CMS, an API, or user input.`);
|
|
26
32
|
return;
|
|
27
33
|
}
|
|
28
|
-
|
|
34
|
+
j.value = l.set(e, c(x.icon)).get(e);
|
|
29
35
|
return;
|
|
30
36
|
}
|
|
31
|
-
|
|
32
|
-
let
|
|
33
|
-
|
|
37
|
+
w.value || C.throw("Icons have not been loaded");
|
|
38
|
+
let n = w.value[e];
|
|
39
|
+
n || C.throw(`Icon "${e}" does not exist.`);
|
|
40
|
+
let r = await n();
|
|
41
|
+
j.value = l.set(e, c(r)).get(e);
|
|
34
42
|
};
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}),
|
|
38
|
-
!
|
|
39
|
-
}),
|
|
40
|
-
let
|
|
43
|
+
g(async () => {
|
|
44
|
+
E(x.icon) || T(), await M();
|
|
45
|
+
}), h(async () => {
|
|
46
|
+
!w.value && !E(x.icon) && T(), j.value || await M();
|
|
47
|
+
}), y(() => x.icon, M);
|
|
48
|
+
let N = u(() => {
|
|
41
49
|
try {
|
|
42
|
-
return
|
|
50
|
+
return i(x.size, S.iconDefaultSizes);
|
|
43
51
|
} catch {
|
|
44
|
-
return
|
|
45
|
-
}
|
|
46
|
-
}), k = o(() => {
|
|
47
|
-
let e = { "bb-icon": !0 }, t = { "--w": O.value }, n = {};
|
|
48
|
-
if (b.value) {
|
|
49
|
-
let e = b.value.match(/<svg((?:[^>"']|"[^"]*"|'[^']*')*)>/i);
|
|
50
|
-
if (e) {
|
|
51
|
-
let t = /([\w-]+)="([^"]*)"/g, r;
|
|
52
|
-
for (; (r = t.exec(e[1])) !== null;) n[r[1]] = r[2];
|
|
53
|
-
}
|
|
52
|
+
return C.warn(`Invalid size: "${x.size}" in BbIcon. Falling back to "md".`), `${S.iconDefaultSizes.md}px`;
|
|
54
53
|
}
|
|
55
|
-
|
|
54
|
+
}), P = u(() => {
|
|
55
|
+
let e = { "bb-icon": !0 }, t = { "--w": N.value }, n = {
|
|
56
56
|
viewBox: "0 0 1 1",
|
|
57
|
-
...
|
|
57
|
+
...j.value?.attributes ?? {},
|
|
58
58
|
class: e,
|
|
59
59
|
style: t
|
|
60
60
|
};
|
|
61
|
-
return
|
|
61
|
+
return x.label ? (n.role = "img", n["aria-label"] = x.label.trim()) : n["aria-hidden"] = "true", n.focusable = "false", n;
|
|
62
62
|
});
|
|
63
|
-
return (e, t) => (
|
|
63
|
+
return (e, t) => (_(), d("svg", m(P.value, {
|
|
64
64
|
"data-allow-mismatch": "",
|
|
65
|
-
innerHTML:
|
|
66
|
-
}), null, 16,
|
|
65
|
+
innerHTML: j.value?.content
|
|
66
|
+
}), null, 16, b));
|
|
67
67
|
}
|
|
68
68
|
});
|
|
69
69
|
//#endregion
|
|
70
|
-
export {
|
|
70
|
+
export { x as default };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Module-wide store of icons this page has already resolved.
|
|
3
|
+
*
|
|
4
|
+
* MUST live in its own module: a `const` at the top of a `<script setup>` block
|
|
5
|
+
* compiles into `setup()` and is therefore per-instance state, not module
|
|
6
|
+
* state — the same trap that once gave every `BbDropdown` pipeline resolver the
|
|
7
|
+
* same uid.
|
|
8
|
+
*
|
|
9
|
+
* What it saves, per mounted icon:
|
|
10
|
+
*
|
|
11
|
+
* 1. **A render pass.** `icons[key]` is an `import()`; even for a module the
|
|
12
|
+
* bundler already holds, the promise settles a microtask later, so an icon
|
|
13
|
+
* rendered an empty `<svg>` first and patched its content in on a second
|
|
14
|
+
* pass. Two icons in a table row is two wasted passes per row, on every
|
|
15
|
+
* window move of a virtualized body.
|
|
16
|
+
* 2. **Four regex passes over a full SVG string** — three to strip the wrapper
|
|
17
|
+
* tag, one to read the wrapper's attributes back off. Both results are pure
|
|
18
|
+
* functions of the source markup, and the source for a given key never
|
|
19
|
+
* changes within a page, so they are derived exactly once.
|
|
20
|
+
*/
|
|
21
|
+
export type ParsedIcon = {
|
|
22
|
+
/** Inner markup for `v-html`, or `null` to render nothing at all. */
|
|
23
|
+
content: string | null;
|
|
24
|
+
/** Attributes copied from the source's root `<svg>` element. */
|
|
25
|
+
attributes: Record<string, string>;
|
|
26
|
+
};
|
|
27
|
+
/** Keyed by registry key (`lucide:x`, `local:y`) or, for inline SVG, its markup. */
|
|
28
|
+
export declare const parsedIcons: Map<string, ParsedIcon>;
|
|
29
|
+
/** The "no icon at all" outcome: a rejected payload, or a value we never got. */
|
|
30
|
+
export declare const EMPTY_ICON: ParsedIcon;
|
|
31
|
+
export declare const parseIcon: (source: string) => ParsedIcon;
|
|
32
|
+
/** Registry key for a name, or the markup itself for an inline payload. */
|
|
33
|
+
export declare const cacheKeyFor: (value: string, isInlineSvg: boolean) => string;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region src/components/BbIcon/iconCache.ts
|
|
2
|
+
var e = /* @__PURE__ */ new Map(), t = {
|
|
3
|
+
content: null,
|
|
4
|
+
attributes: {}
|
|
5
|
+
}, n = (e) => {
|
|
6
|
+
let t = e.replace(/<\?xml[^?]*\?>/gi, "").replace(/<!DOCTYPE[^>]*>/gi, "").replace(/<\/?svg(?:[^>"']|"[^"]*"|'[^']*')*>/gi, ""), n = {}, r = e.match(/<svg((?:[^>"']|"[^"]*"|'[^']*')*)>/i);
|
|
7
|
+
if (r) {
|
|
8
|
+
let e = /([\w-]+)="([^"]*)"/g, t;
|
|
9
|
+
for (; (t = e.exec(r[1])) !== null;) n[t[1]] = t[2];
|
|
10
|
+
}
|
|
11
|
+
return {
|
|
12
|
+
content: t,
|
|
13
|
+
attributes: n
|
|
14
|
+
};
|
|
15
|
+
}, r = (e, t) => t || e.includes(":") ? e : `local:${e}`;
|
|
16
|
+
//#endregion
|
|
17
|
+
export { t as EMPTY_ICON, r as cacheKeyFor, n as parseIcon, e as parsedIcons };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BbNumberInputProps, BbNumberInputEvents, BbNumberInputSlots } from './types';
|
|
2
|
-
export type { BbNumberInputProps, BbNumberInputEvents, BbNumberInputSlots };
|
|
3
2
|
type __VLS_Slots = BbNumberInputSlots;
|
|
3
|
+
export type { BbNumberInputProps, BbNumberInputEvents, BbNumberInputSlots };
|
|
4
4
|
declare const __VLS_base: import('vue').DefineComponent<BbNumberInputProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
5
5
|
input: (event: Event) => any;
|
|
6
6
|
click: (event: MouseEvent) => any;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import t from "
|
|
3
|
-
import n from "../
|
|
4
|
-
import
|
|
1
|
+
import { useConfig as e } from "../../composables/useConfig.js";
|
|
2
|
+
import { isNotNil as t } from "../../utilities/functions/isNotNil.js";
|
|
3
|
+
import n from "../BbBaseInputContainer/BbBaseInputContainer.vue.js";
|
|
4
|
+
import r from "../BbBaseNumberInput/BbBaseNumberInput.vue.js";
|
|
5
5
|
import { computed as i, createBlock as a, createSlots as o, createVNode as s, defineComponent as c, guardReactiveProps as l, mergeProps as u, normalizeProps as d, openBlock as f, ref as p, renderSlot as m, withCtx as h } from "vue";
|
|
6
6
|
//#region src/components/BbNumberInput/BbNumberInput.vue?vue&type=script&setup=true&lang.ts
|
|
7
7
|
var g = /*@__PURE__*/ c({
|
|
@@ -57,9 +57,9 @@ var g = /*@__PURE__*/ c({
|
|
|
57
57
|
"update:modelValue"
|
|
58
58
|
],
|
|
59
59
|
setup(c, { emit: g }) {
|
|
60
|
-
let _ = c, v = g, y = p(!1),
|
|
60
|
+
let _ = c, v = g, y = e(), b = p(!1), x = i(() => _.persistentHint || b.value), S = i(() => t(_.modelValue)), C = i(() => !!_.clearable && S.value), w = i(() => _.labelMode ?? y.defaultInputLabelMode), T = {
|
|
61
61
|
onBlur: (e) => {
|
|
62
|
-
|
|
62
|
+
b.value = !1, v("blur", e);
|
|
63
63
|
},
|
|
64
64
|
onChange: (e) => v("change", e),
|
|
65
65
|
onClick: (e) => v("click", e),
|
|
@@ -67,7 +67,7 @@ var g = /*@__PURE__*/ c({
|
|
|
67
67
|
onCompositionstart: (e) => v("compositionstart", e),
|
|
68
68
|
onDecrease: (e) => v("decrease", e),
|
|
69
69
|
onFocus: (e) => {
|
|
70
|
-
|
|
70
|
+
b.value = !0, v("focus", e);
|
|
71
71
|
},
|
|
72
72
|
onIncrease: (e) => v("increase", e),
|
|
73
73
|
onInput: (e) => v("input", e),
|
|
@@ -78,33 +78,33 @@ var g = /*@__PURE__*/ c({
|
|
|
78
78
|
onPaste: (e) => v("paste", e),
|
|
79
79
|
"onUpdate:modelValue": (e) => v("update:modelValue", e)
|
|
80
80
|
};
|
|
81
|
-
return (e,
|
|
81
|
+
return (e, t) => (f(), a(n, {
|
|
82
82
|
id: e.id,
|
|
83
83
|
class: "bb-number-input",
|
|
84
|
-
clearable:
|
|
84
|
+
clearable: C.value,
|
|
85
85
|
compact: e.compact,
|
|
86
86
|
description: e.description,
|
|
87
87
|
direction: e.direction,
|
|
88
88
|
disabled: e.disabled,
|
|
89
89
|
errors: e.errors,
|
|
90
90
|
"has-errors": e.hasErrors,
|
|
91
|
-
"has-value":
|
|
91
|
+
"has-value": S.value,
|
|
92
92
|
"has-warning": e.hasWarning,
|
|
93
93
|
"hide-label": e.hideLabel,
|
|
94
94
|
hint: e.hint,
|
|
95
95
|
label: e.label,
|
|
96
|
-
"label-mode":
|
|
96
|
+
"label-mode": w.value,
|
|
97
97
|
"label-position": e.labelPosition,
|
|
98
98
|
loading: e.loading,
|
|
99
99
|
"model-value": e.modelValue,
|
|
100
100
|
name: e.name,
|
|
101
101
|
readonly: e.readonly,
|
|
102
102
|
reverse: e.reverse,
|
|
103
|
-
"show-hint":
|
|
103
|
+
"show-hint": x.value,
|
|
104
104
|
warnings: e.warnings
|
|
105
105
|
}, {
|
|
106
106
|
label: h((t) => [m(e.$slots, "label", d(l(t)))]),
|
|
107
|
-
input: h(({ id: t, hasErrors:
|
|
107
|
+
input: h(({ id: t, hasErrors: n, hasWarning: i, ariaDescribedby: a }) => [s(r, u({
|
|
108
108
|
id: t,
|
|
109
109
|
"append:icon": _["append:icon"],
|
|
110
110
|
"aria-describedby": a,
|
|
@@ -113,7 +113,7 @@ var g = /*@__PURE__*/ c({
|
|
|
113
113
|
clearable: e.clearable,
|
|
114
114
|
compact: e.compact,
|
|
115
115
|
disabled: e.disabled,
|
|
116
|
-
"has-errors":
|
|
116
|
+
"has-errors": n,
|
|
117
117
|
"has-warning": i,
|
|
118
118
|
loading: e.loading,
|
|
119
119
|
max: e.max,
|
|
@@ -126,7 +126,7 @@ var g = /*@__PURE__*/ c({
|
|
|
126
126
|
readonly: e.readonly,
|
|
127
127
|
required: e.required,
|
|
128
128
|
step: e.step
|
|
129
|
-
},
|
|
129
|
+
}, T), o({
|
|
130
130
|
"append-outer": h((t) => [m(e.$slots, "append-outer", d(l(t)))]),
|
|
131
131
|
append: h((t) => [m(e.$slots, "append", d(l(t)))]),
|
|
132
132
|
prepend: h((t) => [m(e.$slots, "prepend", d(l(t)))]),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BbOffCanvasProps, BbOffCanvasEvents, BbOffCanvasSlots, Sizes } from './types';
|
|
2
|
-
export type { BbOffCanvasProps, BbOffCanvasEvents, BbOffCanvasSlots, Sizes };
|
|
3
2
|
type __VLS_Props = BbOffCanvasProps;
|
|
4
3
|
type __VLS_Slots = BbOffCanvasSlots;
|
|
4
|
+
export type { BbOffCanvasProps, BbOffCanvasEvents, BbOffCanvasSlots, Sizes };
|
|
5
5
|
type __VLS_ModelProps = {
|
|
6
6
|
/**
|
|
7
7
|
* Used by v-model to open / close the panel. A panel with no `v-model`
|