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
|
@@ -1,28 +1,34 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { useConfig as e } from "../../composables/useConfig.js";
|
|
2
|
+
import { useId as t } from "../../composables/useId.js";
|
|
3
|
+
import { useUntil as ee } from "../../composables/useUntil.js";
|
|
4
|
+
import { removedPropsFor as te } from "../../deprecation/removedProps.js";
|
|
5
|
+
import { useLogger as ne } from "../../composables/useLogger.js";
|
|
6
|
+
import { warnRemovedAttrs as re } from "../../utilities/functions/warnRemovedAttrs.js";
|
|
5
7
|
import { transitions as n } from "../../utilities/misc/transitions.js";
|
|
6
|
-
import { overlaySurfaceIsolation as
|
|
7
|
-
import { isTopEscapeEntry as
|
|
8
|
-
import { useMobile as
|
|
9
|
-
import { wait as
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import { useBreakpoint as
|
|
8
|
+
import { overlaySurfaceIsolation as ie } from "../../utils/overlaySurfaceIsolation.js";
|
|
9
|
+
import { isTopEscapeEntry as ae, pushEscapeEntry as oe, removeEscapeEntry as se } from "../../utils/overlayEscapeStack.js";
|
|
10
|
+
import { useMobile as ce } from "../../composables/useMobile.js";
|
|
11
|
+
import { wait as le } from "../../utilities/functions/wait.js";
|
|
12
|
+
import { useLocale as ue } from "../../composables/useLocale.js";
|
|
13
|
+
import { parseSize as de } from "../../utilities/functions/parseSize.js";
|
|
14
|
+
import { useBreakpoint as fe } from "../../composables/useBreakpoint.js";
|
|
13
15
|
import r from "../CloseIcon/CloseButton.vue.js";
|
|
14
|
-
import { registerTopLayerHost as
|
|
15
|
-
import
|
|
16
|
-
import { useDialogStack as
|
|
17
|
-
import {
|
|
18
|
-
import { Fragment as me, computed as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, createSlots as he, createTextVNode as ge, defineComponent as u, guardReactiveProps as d, mergeModels as f, mergeProps as p, nextTick as _e, normalizeProps as m, onBeforeUnmount as ve, onMounted as ye, openBlock as h, ref as g, renderSlot as _, toDisplayString as be, toHandlers as xe, unref as v, useModel as Se, watch as y, withCtx as b, withModifiers as Ce } from "vue";
|
|
16
|
+
import { registerTopLayerHost as pe } from "../../composables/useTopLayer.js";
|
|
17
|
+
import me from "../BbOffCanvas/BbOffCanvas.vue.js";
|
|
18
|
+
import { useDialogStack as he } from "./useDialogStack.js";
|
|
19
|
+
import { Fragment as ge, computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createSlots as _e, createTextVNode as l, defineComponent as u, guardReactiveProps as d, mergeModels as f, mergeProps as p, nextTick as m, normalizeProps as h, onBeforeUnmount as ve, onMounted as ye, openBlock as g, ref as _, renderSlot as v, toDisplayString as be, toHandlers as xe, unref as y, useModel as Se, useSlots as Ce, watch as b, withCtx as x, withModifiers as we } from "vue";
|
|
19
20
|
//#region src/components/BbDialog/BbDialog.vue?vue&type=script&setup=true&lang.ts
|
|
20
|
-
var
|
|
21
|
+
var Te = [
|
|
22
|
+
"aria-describedby",
|
|
23
|
+
"aria-labelledby",
|
|
24
|
+
"inert"
|
|
25
|
+
], Ee = {
|
|
21
26
|
key: 0,
|
|
22
27
|
class: "bb-dialog__header"
|
|
23
|
-
},
|
|
28
|
+
}, De = { class: "bb-dialog__body scrollbar-border" }, Oe = { class: "bb-dialog__body-content" }, ke = { class: "bb-dialog__footer" }, Ae = 4, S = /*@__PURE__*/ u({
|
|
24
29
|
__name: "BbDialog",
|
|
25
30
|
props: /*@__PURE__*/ f({
|
|
31
|
+
description: {},
|
|
26
32
|
disabled: { type: Boolean },
|
|
27
33
|
eager: { type: Boolean },
|
|
28
34
|
focusTarget: {},
|
|
@@ -52,13 +58,14 @@ var we = ["aria-labelledby", "inert"], Te = {
|
|
|
52
58
|
"hidden"
|
|
53
59
|
], ["update:modelValue"]),
|
|
54
60
|
setup(n, { emit: u }) {
|
|
55
|
-
let f = Se(n, "modelValue"), S = n, C = u;
|
|
56
|
-
process.env.NODE_ENV !== "production" &&
|
|
57
|
-
let { t:
|
|
58
|
-
|
|
59
|
-
f.value || (
|
|
61
|
+
let f = Se(n, "modelValue"), S = n, C = u, w = Ce(), T = e();
|
|
62
|
+
process.env.NODE_ENV !== "production" && re("BbDialog", te("BbDialog"));
|
|
63
|
+
let { t: E } = ue(), { isMobile: D } = ce(), { resolve: je } = fe(), O = () => (S.adaptive ?? T.adaptive) && D.value ? "canvas" : "dialog", k = _(O());
|
|
64
|
+
b([() => S.adaptive, D], () => {
|
|
65
|
+
f.value || (k.value = O());
|
|
60
66
|
});
|
|
61
|
-
let
|
|
67
|
+
let Me = i(() => ({
|
|
68
|
+
description: S.description,
|
|
62
69
|
disabled: S.disabled,
|
|
63
70
|
eager: S.eager,
|
|
64
71
|
focusTarget: S.focusTarget,
|
|
@@ -72,140 +79,159 @@ var we = ["aria-labelledby", "inert"], Te = {
|
|
|
72
79
|
draggable: !0,
|
|
73
80
|
size: "auto",
|
|
74
81
|
...S.offCanvasProps
|
|
75
|
-
})),
|
|
76
|
-
|
|
77
|
-
},
|
|
78
|
-
|
|
82
|
+
})), A = _(null), j = `title_${t().id.value}`, M = `desc_${t().id.value}`, N = () => !!S.description || !!w.description, P = () => !!S.title || !!w.title, F = () => P() || N(), I = ee(() => f.value || S.eager, { initialValue: f.value || S.eager }), L = i(() => S.fullscreen === !0 || S.fullscreen === "mobile" && D.value), R = () => typeof document < "u", Ne = i(() => !!(S.disabled || S.persistent)), z = _(!1), B = _(null), V = () => {
|
|
83
|
+
B.value = null;
|
|
84
|
+
}, Pe = (e) => {
|
|
85
|
+
B.value = {
|
|
79
86
|
startX: e.clientX,
|
|
80
87
|
startY: e.clientY,
|
|
81
88
|
startedOnBackdrop: e.target === e.currentTarget
|
|
82
89
|
};
|
|
83
|
-
},
|
|
84
|
-
let t =
|
|
85
|
-
|
|
86
|
-
},
|
|
87
|
-
clearTimeout(
|
|
88
|
-
|
|
90
|
+
}, Fe = (e) => {
|
|
91
|
+
let t = B.value;
|
|
92
|
+
V(), !(t && !t.startedOnBackdrop) && (t && (Math.abs(e.clientX - t.startX) > Ae || Math.abs(e.clientY - t.startY) > Ae) || Ge(e));
|
|
93
|
+
}, H, U = (e) => {
|
|
94
|
+
clearTimeout(H), z.value = !0, H = setTimeout(() => {
|
|
95
|
+
z.value = !1;
|
|
89
96
|
}, e);
|
|
90
|
-
},
|
|
91
|
-
|
|
92
|
-
},
|
|
93
|
-
|
|
94
|
-
},
|
|
97
|
+
}, W = Symbol("bb-dialog-escape"), Ie = () => {
|
|
98
|
+
oe(W), R() && document.addEventListener("keydown", K, { capture: !0 });
|
|
99
|
+
}, G = () => {
|
|
100
|
+
se(W), R() && document.removeEventListener("keydown", K, { capture: !0 });
|
|
101
|
+
}, Le = () => {
|
|
95
102
|
if (!S.focusTarget) return;
|
|
96
|
-
let e =
|
|
103
|
+
let e = A.value?.querySelector(S.focusTarget);
|
|
97
104
|
e instanceof HTMLElement && e.focus();
|
|
98
|
-
},
|
|
99
|
-
if (e.key === "Escape" && !
|
|
100
|
-
},
|
|
101
|
-
S.stack &&
|
|
102
|
-
},
|
|
103
|
-
S.stack &&
|
|
104
|
-
},
|
|
105
|
+
}, K = (e) => {
|
|
106
|
+
if (e.key === "Escape" && !Z.value && ae(W) && (e.stopImmediatePropagation(), Ne.value)) return e.preventDefault(), U(200), !1;
|
|
107
|
+
}, q = _(0), J = _(!1), Y = Symbol("bb-dialog"), { stacks: Re, enter: ze, leave: Be } = he(), Ve = () => {
|
|
108
|
+
S.stack && ze(S.stack, Y);
|
|
109
|
+
}, X = () => {
|
|
110
|
+
S.stack && Be(S.stack, Y);
|
|
111
|
+
}, Z = i(() => {
|
|
105
112
|
if (!S.stack) return !1;
|
|
106
|
-
let e =
|
|
107
|
-
return !e || !e.includes(
|
|
108
|
-
}),
|
|
109
|
-
if (e) C("show"),
|
|
113
|
+
let e = Re.value[S.stack];
|
|
114
|
+
return !e || !e.includes(Y) ? !1 : e[e.length - 1] !== Y;
|
|
115
|
+
}), Q = null, He = async (e) => {
|
|
116
|
+
if (e) C("show"), q.value++, R() && !document.documentElement.style.getPropertyValue("--scrollbar-width") && document.documentElement.style.setProperty("--scrollbar-width", `${qe()}px`), Ie(), await m(), J.value = !0, A.value && !A.value.open && A.value.showModal(), Ve(), A.value && (Q = pe(A.value)), Le(), C("shown");
|
|
110
117
|
else {
|
|
111
118
|
C("hide");
|
|
112
|
-
let e =
|
|
113
|
-
if (await
|
|
114
|
-
|
|
119
|
+
let e = q.value;
|
|
120
|
+
if (await le(S.transitionDuration), e !== q.value) return;
|
|
121
|
+
G(), X(), A.value?.close(), Q?.(), Q = null, J.value = !1, C("hidden");
|
|
115
122
|
}
|
|
123
|
+
}, Ue = () => {
|
|
124
|
+
process.env.NODE_ENV !== "production" && (!w.header || S.title || m(() => {
|
|
125
|
+
!A.value || document.getElementById(j) || ne().warn(`BbDialog: the #header slot does not contain an element with id="${j}", so aria-labelledby points at nothing and the dialog announces as unnamed. Bind the slot's \`titleId\` to your heading: <template #header="{ titleId }"><h2 :id="titleId">…</h2></template>.`);
|
|
126
|
+
}));
|
|
116
127
|
};
|
|
117
|
-
|
|
118
|
-
e && (
|
|
128
|
+
b(f, (e) => {
|
|
129
|
+
e && (k.value = O()), k.value === "dialog" && He(e);
|
|
119
130
|
}), ye(() => {
|
|
120
|
-
f.value &&
|
|
131
|
+
f.value && k.value === "dialog" && He(!0), Ue();
|
|
121
132
|
}), ve(() => {
|
|
122
|
-
clearTimeout(
|
|
133
|
+
clearTimeout(H), G(), X(), Q?.(), Q = null;
|
|
123
134
|
});
|
|
124
|
-
let
|
|
125
|
-
if (e.preventDefault(),
|
|
126
|
-
|
|
127
|
-
}, Q = () => {
|
|
128
|
-
f.value = !1;
|
|
135
|
+
let We = i(() => L.value ? "100%" : de(je(S.size), T.dialogDefaultSizes)), Ge = (e) => {
|
|
136
|
+
if (e.preventDefault(), Ne.value) return U(300), !1;
|
|
137
|
+
$();
|
|
129
138
|
}, $ = () => {
|
|
139
|
+
f.value = !1;
|
|
140
|
+
}, Ke = () => {
|
|
130
141
|
if (S.disabled) {
|
|
131
|
-
|
|
142
|
+
U(300);
|
|
132
143
|
return;
|
|
133
144
|
}
|
|
134
|
-
|
|
135
|
-
},
|
|
136
|
-
return (e, t) =>
|
|
145
|
+
$();
|
|
146
|
+
}, qe = () => R() ? window.innerWidth - document.documentElement.clientWidth : 0;
|
|
147
|
+
return (e, t) => k.value === "canvas" ? (g(), a(me, p({
|
|
137
148
|
key: 0,
|
|
138
149
|
modelValue: f.value,
|
|
139
150
|
"onUpdate:modelValue": t[0] ||= (e) => f.value = e
|
|
140
|
-
},
|
|
151
|
+
}, Me.value, {
|
|
141
152
|
onHidden: t[1] ||= (e) => C("hidden"),
|
|
142
153
|
onHide: t[2] ||= (e) => C("hide"),
|
|
143
154
|
onShow: t[3] ||= (e) => C("show"),
|
|
144
155
|
onShown: t[4] ||= (e) => C("shown")
|
|
145
|
-
}),
|
|
156
|
+
}), _e({ _: 2 }, [
|
|
146
157
|
e.$slots.default ? {
|
|
147
158
|
name: "default",
|
|
148
|
-
fn:
|
|
159
|
+
fn: x((t) => [v(e.$slots, "default", h(d(t)))]),
|
|
149
160
|
key: "0"
|
|
150
161
|
} : void 0,
|
|
151
162
|
e.$slots.header ? {
|
|
152
163
|
name: "header",
|
|
153
|
-
fn:
|
|
164
|
+
fn: x((t) => [v(e.$slots, "header", h(d(t)))]),
|
|
154
165
|
key: "1"
|
|
155
166
|
} : void 0,
|
|
156
167
|
e.$slots.title ? {
|
|
157
168
|
name: "title",
|
|
158
|
-
fn:
|
|
169
|
+
fn: x((t) => [v(e.$slots, "title", h(d(t)))]),
|
|
159
170
|
key: "2"
|
|
160
171
|
} : void 0,
|
|
172
|
+
e.$slots.description ? {
|
|
173
|
+
name: "description",
|
|
174
|
+
fn: x((t) => [v(e.$slots, "description", h(d(t)))]),
|
|
175
|
+
key: "3"
|
|
176
|
+
} : void 0,
|
|
161
177
|
e.$slots.footer ? {
|
|
162
178
|
name: "footer",
|
|
163
|
-
fn:
|
|
164
|
-
key: "
|
|
179
|
+
fn: x(() => [v(e.$slots, "footer")]),
|
|
180
|
+
key: "4"
|
|
165
181
|
} : void 0
|
|
166
|
-
]), 1040, ["modelValue"])) : (
|
|
182
|
+
]), 1040, ["modelValue"])) : (g(), s("dialog", p({
|
|
167
183
|
key: 1,
|
|
168
184
|
ref_key: "dialog",
|
|
169
|
-
ref:
|
|
170
|
-
"aria-
|
|
185
|
+
ref: A,
|
|
186
|
+
"aria-describedby": y(I) && N() ? M : void 0,
|
|
187
|
+
"aria-labelledby": y(I) && (P() || e.$slots.header) ? j : void 0,
|
|
171
188
|
class: ["bb-dialog", {
|
|
172
189
|
"bb-dialog--open": f.value,
|
|
173
|
-
"bb-dialog--visible":
|
|
174
|
-
"bb-dialog--fullscreen":
|
|
175
|
-
"bb-dialog--mobile":
|
|
176
|
-
"bb-dialog--deny-close":
|
|
177
|
-
"bb-dialog--covered":
|
|
190
|
+
"bb-dialog--visible": J.value,
|
|
191
|
+
"bb-dialog--fullscreen": L.value,
|
|
192
|
+
"bb-dialog--mobile": y(D),
|
|
193
|
+
"bb-dialog--deny-close": z.value,
|
|
194
|
+
"bb-dialog--covered": Z.value
|
|
178
195
|
}],
|
|
179
|
-
inert: !f.value && !
|
|
196
|
+
inert: !f.value && !J.value || Z.value,
|
|
180
197
|
style: {
|
|
181
|
-
"--max-width":
|
|
198
|
+
"--max-width": We.value,
|
|
182
199
|
"--transition-duration": `${S.transitionDuration}ms`
|
|
183
200
|
}
|
|
184
|
-
}, xe(
|
|
185
|
-
onCancel:
|
|
186
|
-
onClick:
|
|
187
|
-
onPointercancel:
|
|
188
|
-
onPointerdown:
|
|
189
|
-
}), [
|
|
190
|
-
|
|
191
|
-
close:
|
|
201
|
+
}, xe(y(ie), !0), {
|
|
202
|
+
onCancel: Ge,
|
|
203
|
+
onClick: we(Fe, ["self"]),
|
|
204
|
+
onPointercancel: V,
|
|
205
|
+
onPointerdown: Pe
|
|
206
|
+
}), [y(I) ? (g(), s(ge, { key: 0 }, [
|
|
207
|
+
F() || e.$slots.header ? (g(), s("div", Ee, [v(e.$slots, "header", {
|
|
208
|
+
close: $,
|
|
192
209
|
title: e.title,
|
|
193
|
-
titleId:
|
|
194
|
-
}, () => [
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
"
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
210
|
+
titleId: j
|
|
211
|
+
}, () => [
|
|
212
|
+
P() ? (g(), s("span", {
|
|
213
|
+
key: 0,
|
|
214
|
+
id: j,
|
|
215
|
+
class: "bb-dialog__title"
|
|
216
|
+
}, [v(e.$slots, "title", { text: e.title }, () => [l(be(e.title), 1)])])) : o("", !0),
|
|
217
|
+
N() ? (g(), s("p", {
|
|
218
|
+
key: 1,
|
|
219
|
+
id: M,
|
|
220
|
+
class: "bb-dialog__description"
|
|
221
|
+
}, [v(e.$slots, "description", { text: e.description }, () => [l(be(e.description), 1)])])) : o("", !0),
|
|
222
|
+
e.hideClose ? o("", !0) : (g(), a(r, {
|
|
223
|
+
key: 2,
|
|
224
|
+
"aria-label": y(E)("dialog.closeLabel").value,
|
|
225
|
+
onClick: Ke
|
|
226
|
+
}, null, 8, ["aria-label"]))
|
|
227
|
+
])])) : o("", !0),
|
|
228
|
+
c("div", De, [c("div", Oe, [!F() && !e.$slots.header && !e.hideClose ? (g(), a(r, {
|
|
203
229
|
key: 0,
|
|
204
|
-
"aria-label":
|
|
205
|
-
onClick:
|
|
206
|
-
}, null, 8, ["aria-label"])) :
|
|
207
|
-
|
|
208
|
-
], 64)) :
|
|
230
|
+
"aria-label": y(E)("dialog.closeLabel").value,
|
|
231
|
+
onClick: Ke
|
|
232
|
+
}, null, 8, ["aria-label"])) : o("", !0), v(e.$slots, "default", { close: $ })])]),
|
|
233
|
+
c("div", ke, [v(e.$slots, "footer")])
|
|
234
|
+
], 64)) : o("", !0)], 16, Te));
|
|
209
235
|
}
|
|
210
236
|
});
|
|
211
237
|
//#endregion
|
|
@@ -7,6 +7,18 @@ export type { Sizes };
|
|
|
7
7
|
* Props controlling the BbDialog appearance, accessibility, and closing behaviour.
|
|
8
8
|
*/
|
|
9
9
|
export type BbDialogProps = {
|
|
10
|
+
/**
|
|
11
|
+
* One short line under the title, in the header — the shadcn
|
|
12
|
+
* `DialogDescription` shape: same block as the title, lower hierarchy,
|
|
13
|
+
* muted.
|
|
14
|
+
*
|
|
15
|
+
* It is also what `aria-describedby` points at. That wiring was dropped in
|
|
16
|
+
* v3 along with the old `description` prop, on the reasoning that pointing
|
|
17
|
+
* it at arbitrary body content would read whole forms aloud — true, and the
|
|
18
|
+
* reason it aims at THIS element only. Keep it to a sentence; anything
|
|
19
|
+
* longer belongs in the body.
|
|
20
|
+
*/
|
|
21
|
+
description?: string;
|
|
10
22
|
/**
|
|
11
23
|
* Disable EVERY user-initiated dismissal: backdrop click, Escape AND the
|
|
12
24
|
* header close (×) button (denied attempts play the deny nudge). Use it
|
|
@@ -40,7 +52,7 @@ export type BbDialogProps = {
|
|
|
40
52
|
/**
|
|
41
53
|
* Overrides merged over the offcanvas (mobile) surface's props. The drawer
|
|
42
54
|
* defaults to a bottom, draggable, content-sized sheet
|
|
43
|
-
* (`
|
|
55
|
+
* (`side: 'bottom'`, `draggable: true`, `size: 'auto'`); use this to
|
|
44
56
|
* override those, set other drawer-only options (`stackGap`), or override
|
|
45
57
|
* shared props whose meaning differs on the drawer (`stack`). Ignored on the
|
|
46
58
|
* desktop dialog surface.
|
|
@@ -111,11 +123,22 @@ export type BbDialogHeaderSlotProps = {
|
|
|
111
123
|
title: BbDialogProps['title'];
|
|
112
124
|
};
|
|
113
125
|
/** Props exposed by the `title` slot. */
|
|
126
|
+
/** Props exposed by the `description` slot. */
|
|
127
|
+
export type BbDialogDescriptionSlotProps = {
|
|
128
|
+
/** The `description` prop value. */
|
|
129
|
+
text: BbDialogProps['description'];
|
|
130
|
+
};
|
|
114
131
|
export type BbDialogTitleSlotProps = {
|
|
115
132
|
/** The `title` prop value. */
|
|
116
133
|
text: BbDialogProps['title'];
|
|
117
134
|
};
|
|
118
135
|
export type BbDialogSlots = {
|
|
136
|
+
/**
|
|
137
|
+
* Replaces the description text under the title. Renders the header even
|
|
138
|
+
* when `title` and `description` are unset — a slotted description is a
|
|
139
|
+
* description, the same rule `#title` follows.
|
|
140
|
+
*/
|
|
141
|
+
description?: (props: BbDialogDescriptionSlotProps) => any;
|
|
119
142
|
/** Primary body content of the dialog, rendered in the scrollable body area. */
|
|
120
143
|
default?: (props: BbDialogDefaultSlotProps) => any;
|
|
121
144
|
/** Content rendered in the dialog footer, below the body area. Typically used for action buttons. */
|
|
@@ -135,7 +158,11 @@ export type BbDialogSlots = {
|
|
|
135
158
|
* width, or it renders squeezed against the left edge.
|
|
136
159
|
*/
|
|
137
160
|
header?: (props: BbDialogHeaderSlotProps) => any;
|
|
138
|
-
/**
|
|
161
|
+
/**
|
|
162
|
+
* Replaces the default title text inside the header. Remains linked to the
|
|
163
|
+
* dialog through `aria-labelledby`. Providing this slot renders the header
|
|
164
|
+
* even when `title` is unset — a slotted title is a title.
|
|
165
|
+
*/
|
|
139
166
|
title?: (props: BbDialogTitleSlotProps) => any;
|
|
140
167
|
};
|
|
141
168
|
/** @deprecated Use `BbDialogProps` instead. */
|
|
@@ -4,6 +4,8 @@ type __VLS_Props = {
|
|
|
4
4
|
rootGroups: NormalizedGroup[];
|
|
5
5
|
/** Bindings forwarded to `BbOffCanvas` (direction, size, draggable, …). */
|
|
6
6
|
offCanvasProps?: Record<string, unknown>;
|
|
7
|
+
/** The dropdown's density, forwarded so the sheet reads the same ladder. */
|
|
8
|
+
compact?: boolean;
|
|
7
9
|
};
|
|
8
10
|
type __VLS_ModelProps = {
|
|
9
11
|
/**
|