bitboss-ui 3.0.0-beta.4 → 3.0.0-beta.41
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 +317 -98
- package/bin/bitboss-ui-mcp.mjs +1566 -75
- package/bin/bitboss-ui.mjs +716 -72
- package/dist/ai/BbAccordion.md +178 -56
- package/dist/ai/BbAlert.md +140 -28
- package/dist/ai/BbAsterisk.md +61 -4
- package/dist/ai/BbAvatar.md +194 -53
- package/dist/ai/BbBadge.md +250 -50
- package/dist/ai/BbBadgeButton.md +74 -21
- package/dist/ai/BbBaseButton.md +132 -51
- package/dist/ai/BbBaseCheckboxIcon.md +118 -26
- package/dist/ai/BbBaseRadioIcon.md +115 -26
- package/dist/ai/BbBaseSwitchIcon.md +123 -28
- package/dist/ai/BbBreadcrumbs.md +221 -51
- package/dist/ai/BbButton.md +389 -107
- package/dist/ai/BbCalendar.md +667 -0
- package/dist/ai/BbCheckbox.md +242 -80
- package/dist/ai/BbCheckboxGroup.md +575 -66
- package/dist/ai/BbCollapsible.md +158 -39
- package/dist/ai/BbColorInput.md +322 -82
- package/dist/ai/BbColorPalette.md +261 -61
- package/dist/ai/BbConfirm.md +220 -51
- package/dist/ai/BbConfirmPortal.md +1 -1
- package/dist/ai/BbDatePicker.md +272 -37
- package/dist/ai/BbDatePickerInput.md +321 -92
- package/dist/ai/BbDialog.md +492 -87
- package/dist/ai/BbDropdown.md +1182 -104
- package/dist/ai/BbDropdownButton.md +239 -61
- package/dist/ai/BbDropdownGroup.md +5 -5
- package/dist/ai/BbDropzone.md +140 -36
- package/dist/ai/BbForm.md +1165 -40
- package/dist/ai/BbIcon.md +100 -33
- package/dist/ai/BbIndicator.md +79 -12
- package/dist/ai/BbNumberInput.md +257 -87
- package/dist/ai/BbOffCanvas.md +396 -91
- package/dist/ai/BbPagination.md +199 -32
- package/dist/ai/BbPopover.md +219 -54
- package/dist/ai/BbProgress.md +137 -71
- package/dist/ai/BbPtScope.md +136 -0
- package/dist/ai/BbRadio.md +234 -43
- package/dist/ai/BbRadioGroup.md +529 -91
- package/dist/ai/BbRating.md +243 -61
- package/dist/ai/BbSelect.md +690 -120
- package/dist/ai/BbSelectPopover.md +434 -122
- package/dist/ai/BbSlider.md +275 -79
- package/dist/ai/BbSmoothHeight.md +142 -34
- package/dist/ai/BbSpinner.md +179 -81
- package/dist/ai/BbSwitch.md +249 -63
- package/dist/ai/BbSwitchGroup.md +394 -65
- package/dist/ai/BbTable.md +1666 -222
- package/dist/ai/BbTabs.md +898 -178
- package/dist/ai/BbTabsList.md +81 -7
- package/dist/ai/BbTabsPanels.md +77 -0
- package/dist/ai/BbTabsRoot.md +16 -15
- package/dist/ai/BbTag.md +256 -76
- package/dist/ai/BbTextInput.md +480 -102
- package/dist/ai/BbTextarea.md +310 -96
- package/dist/ai/BbTimePicker.md +159 -24
- package/dist/ai/BbTimePickerInput.md +277 -46
- package/dist/ai/BbToast.md +286 -40
- package/dist/ai/BbToastPortal.md +3 -3
- package/dist/ai/BbTooltip.md +187 -34
- package/dist/ai/BbTree.md +260 -85
- package/dist/ai/ChipsBox.md +43 -2
- package/dist/ai/ClearableButton.md +12 -0
- package/dist/ai/CommaBox.md +2 -1
- package/dist/ai/CommonField.md +63 -0
- package/dist/ai/CommonFieldInput.md +90 -0
- package/dist/ai/CommonPopover.md +17 -12
- package/dist/ai/CommonTimeSelector.md +63 -0
- package/dist/ai/ErrorIcon.md +20 -0
- package/dist/ai/FlatListBox.md +41 -11
- package/dist/ai/GroupedListBox.md +42 -12
- package/dist/ai/ListBox.md +46 -11
- package/dist/ai/OptionsContainer.md +13 -10
- package/dist/ai/WarningIcon.md +20 -0
- package/dist/ai/changelog.json +4025 -141
- package/dist/ai/components.json +51872 -10136
- package/dist/ai/composables/useBbConfig.md +72 -11
- package/dist/ai/composables/useBbDropdownContext.md +168 -0
- package/dist/ai/composables/useBbFormContext.md +51 -24
- package/dist/ai/composables/useBbFormField.md +134 -0
- package/dist/ai/composables/useBbTableContext.md +41 -19
- package/dist/ai/composables/useConfirm.md +16 -8
- package/dist/ai/composables/useCountdown.md +1 -1
- package/dist/ai/composables/useId.md +10 -10
- package/dist/ai/composables/useMobile.md +17 -10
- package/dist/ai/composables/useToast.md +25 -19
- package/dist/ai/design-tokens.json +940 -0
- package/dist/ai/design-tokens.manifest.yaml +175 -0
- package/dist/ai/guides/agent-contract.md +168 -22
- package/dist/ai/guides/ai-router.md +79 -40
- package/dist/ai/guides/app-layout.md +8 -4
- package/dist/ai/guides/coherence-playbook.md +8 -8
- package/dist/ai/guides/component-picker.md +42 -34
- package/dist/ai/guides/design-language.md +274 -97
- package/dist/ai/guides/design-tokens.md +493 -105
- package/dist/ai/guides/fetch-items-playbook.md +22 -16
- package/dist/ai/guides/icons-policy.md +67 -35
- package/dist/ai/guides/inertia-helpers.md +4 -1
- package/dist/ai/guides/inline-edit-playbook.md +13 -6
- package/dist/ai/guides/installation-and-plugin-setup.md +817 -73
- package/dist/ai/guides/migration/components/bb-accordion.md +37 -0
- package/dist/ai/guides/migration/components/bb-alert.md +2 -2
- package/dist/ai/guides/migration/components/bb-avatar.md +13 -14
- package/dist/ai/guides/migration/components/bb-badge.md +5 -5
- package/dist/ai/guides/migration/components/bb-breadcrumbs.md +9 -8
- package/dist/ai/guides/migration/components/bb-button.md +80 -20
- package/dist/ai/guides/migration/components/bb-checkbox-group.md +116 -29
- package/dist/ai/guides/migration/components/bb-checkbox.md +53 -10
- package/dist/ai/guides/migration/components/bb-chip.md +6 -6
- package/dist/ai/guides/migration/components/bb-collapsible.md +5 -5
- package/dist/ai/guides/migration/components/bb-color-input.md +5 -5
- package/dist/ai/guides/migration/components/bb-color-palette.md +16 -9
- package/dist/ai/guides/migration/components/bb-date-picker-input.md +45 -35
- package/dist/ai/guides/migration/components/bb-dialog.md +69 -36
- package/dist/ai/guides/migration/components/bb-dropdown-button.md +7 -1
- package/dist/ai/guides/migration/components/bb-dropdown.md +31 -8
- package/dist/ai/guides/migration/components/bb-dropzone.md +8 -0
- package/dist/ai/guides/migration/components/bb-icon.md +7 -7
- package/dist/ai/guides/migration/components/bb-intersection.md +1 -1
- package/dist/ai/guides/migration/components/bb-offcanvas.md +29 -31
- package/dist/ai/guides/migration/components/bb-pagination.md +10 -0
- package/dist/ai/guides/migration/components/bb-popover.md +19 -11
- package/dist/ai/guides/migration/components/bb-radio-group.md +14 -0
- package/dist/ai/guides/migration/components/bb-rating.md +61 -24
- package/dist/ai/guides/migration/components/bb-select-popover.md +9 -1
- package/dist/ai/guides/migration/components/bb-select.md +21 -4
- package/dist/ai/guides/migration/components/bb-slider.md +14 -6
- package/dist/ai/guides/migration/components/bb-switch-group.md +14 -0
- package/dist/ai/guides/migration/components/bb-table.md +574 -33
- package/dist/ai/guides/migration/components/bb-tabs.md +91 -41
- package/dist/ai/guides/migration/components/bb-tag.md +9 -7
- package/dist/ai/guides/migration/components/bb-text-input.md +12 -12
- package/dist/ai/guides/migration/components/bb-toast.md +2 -2
- package/dist/ai/guides/migration/components/bb-tooltip.md +18 -0
- package/dist/ai/guides/migration/components/bb-tree.md +11 -9
- package/dist/ai/guides/migration/components/use-confirm.md +9 -1
- package/dist/ai/guides/migration/v2-to-v3.md +828 -240
- package/dist/ai/guides/migration/v3-beta-css-classes.md +751 -0
- package/dist/ai/guides/migration/v3-beta-tooling.md +119 -0
- package/dist/ai/guides/options-items-playbook.md +161 -12
- package/dist/ai/guides/page-shell.md +1 -1
- package/dist/ai/guides/passthrough.md +958 -0
- package/dist/ai/guides/preset-components.md +361 -0
- package/dist/ai/guides/ssr-prefill.md +127 -0
- package/dist/ai/guides/validated-forms.md +466 -55
- package/dist/ai/guides/validation-libraries.md +171 -0
- package/dist/ai/guides/validation-providers.md +113 -0
- package/dist/ai/index.md +45 -44
- package/dist/ai/recipes/inertia/approvals-inbox.md +26 -10
- package/dist/ai/recipes/inertia/command-palette.md +2 -2
- package/dist/ai/recipes/inertia/inline-edit-workspace.md +46 -30
- package/dist/ai/recipes/inertia/layout-scaffold.md +6 -2
- package/dist/ai/recipes/inertia/onboarding.md +30 -8
- package/dist/ai/recipes/inertia/ownership-atlas.md +72 -49
- package/dist/ai/recipes/inertia/record-form.md +53 -19
- package/dist/ai/recipes/inertia/records-workspace.md +201 -49
- package/dist/ai/recipes/inertia/settings-workspace.md +3809 -0
- package/dist/ai/recipes/inertia/upload-center.md +54 -43
- package/dist/ai/recipes/inertia/wizard-form.md +98 -14
- package/dist/ai/recipes/nuxt/approvals-inbox.md +26 -10
- package/dist/ai/recipes/nuxt/command-palette.md +2 -2
- package/dist/ai/recipes/nuxt/inline-edit-workspace.md +68 -52
- package/dist/ai/recipes/nuxt/layout-scaffold.md +6 -2
- package/dist/ai/recipes/nuxt/onboarding.md +30 -8
- package/dist/ai/recipes/nuxt/record-form.md +66 -22
- package/dist/ai/recipes/nuxt/records-workspace.md +199 -48
- package/dist/ai/recipes/nuxt/settings-workspace.md +3898 -0
- package/dist/ai/recipes/nuxt/upload-center.md +52 -41
- package/dist/ai/recipes/nuxt/wizard-form.md +98 -14
- package/dist/ai/recipes/vue/approvals-inbox.md +28 -12
- package/dist/ai/recipes/vue/command-palette.md +2 -2
- package/dist/ai/recipes/vue/inline-edit-workspace.md +69 -53
- package/dist/ai/recipes/vue/layout-scaffold.md +6 -2
- package/dist/ai/recipes/vue/onboarding.md +32 -8
- package/dist/ai/recipes/vue/record-form.md +81 -54
- package/dist/ai/recipes/vue/records-workspace.md +198 -49
- package/dist/ai/recipes/vue/settings-workspace.md +3836 -0
- package/dist/ai/recipes/vue/upload-center.md +53 -42
- package/dist/ai/recipes/vue/wizard-form.md +97 -14
- package/dist/ai/source/BbAccordion.md +90 -24
- package/dist/ai/source/BbAlert.md +209 -62
- package/dist/ai/source/BbAsterisk.md +54 -4
- package/dist/ai/source/BbAvatar.md +73 -16
- package/dist/ai/source/BbBadge.md +265 -97
- package/dist/ai/source/BbBadgeButton.md +218 -79
- package/dist/ai/source/BbBaseButton.md +108 -12
- package/dist/ai/source/BbBaseCheckboxIcon.md +151 -36
- package/dist/ai/source/BbBaseRadioIcon.md +121 -17
- package/dist/ai/source/BbBaseSwitchIcon.md +138 -28
- package/dist/ai/source/BbBreadcrumbs.md +363 -69
- package/dist/ai/source/BbButton.md +563 -174
- package/dist/ai/source/BbCalendar.md +1744 -0
- package/dist/ai/source/BbCheckbox.md +470 -68
- package/dist/ai/source/BbCheckboxGroup.md +976 -95
- package/dist/ai/source/BbCollapsible.md +96 -8
- package/dist/ai/source/BbColorInput.md +597 -67
- package/dist/ai/source/BbColorPalette.md +1284 -65
- package/dist/ai/source/BbConfirm.md +149 -7
- package/dist/ai/source/BbConfirmPortal.md +89 -3
- package/dist/ai/source/BbDatePicker.md +527 -381
- package/dist/ai/source/BbDatePickerInput.md +2015 -118
- package/dist/ai/source/BbDialog.md +531 -64
- package/dist/ai/source/BbDropdown.md +885 -175
- package/dist/ai/source/BbDropdownButton.md +377 -79
- package/dist/ai/source/BbDropdownGroup.md +687 -96
- package/dist/ai/source/BbDropzone.md +140 -31
- package/dist/ai/source/BbForm.md +875 -17
- package/dist/ai/source/BbIcon.md +130 -52
- package/dist/ai/source/BbIndicator.md +117 -60
- package/dist/ai/source/BbNumberInput.md +667 -84
- package/dist/ai/source/BbOffCanvas.md +1007 -261
- package/dist/ai/source/BbPagination.md +203 -31
- package/dist/ai/source/BbPopover.md +267 -90
- package/dist/ai/source/BbProgress.md +88 -26
- package/dist/ai/source/BbPtScope.md +54 -0
- package/dist/ai/source/BbRadio.md +388 -58
- package/dist/ai/source/BbRadioGroup.md +940 -109
- package/dist/ai/source/BbRating.md +736 -84
- package/dist/ai/source/BbSelect.md +1096 -96
- package/dist/ai/source/BbSelectPopover.md +807 -114
- package/dist/ai/source/BbSlider.md +1390 -98
- package/dist/ai/source/BbSmoothHeight.md +48 -2
- package/dist/ai/source/BbSpinner.md +62 -6
- package/dist/ai/source/BbSwitch.md +297 -60
- package/dist/ai/source/BbSwitchGroup.md +761 -83
- package/dist/ai/source/BbTable.md +6950 -1864
- package/dist/ai/source/BbTabs.md +368 -111
- package/dist/ai/source/BbTabsList.md +503 -146
- package/dist/ai/source/BbTabsPanels.md +625 -0
- package/dist/ai/source/BbTabsRoot.md +319 -100
- package/dist/ai/source/BbTag.md +796 -87
- package/dist/ai/source/BbTextInput.md +497 -68
- package/dist/ai/source/BbTextarea.md +550 -65
- package/dist/ai/source/BbTimePicker.md +395 -69
- package/dist/ai/source/BbTimePickerInput.md +1233 -106
- package/dist/ai/source/BbToast.md +250 -74
- package/dist/ai/source/BbToastPortal.md +210 -66
- package/dist/ai/source/BbTooltip.md +181 -30
- package/dist/ai/source/BbTree.md +76 -11
- package/dist/ai/source/ChipsBox.md +25 -5
- package/dist/ai/source/CommaBox.md +21 -6
- package/dist/ai/source/{BbBaseInputContainer.md → CommonField.md} +467 -250
- package/dist/ai/source/CommonFieldInput.md +848 -0
- package/dist/ai/source/CommonPopover.md +116 -30
- package/dist/ai/source/CommonTimeSelector.md +726 -0
- package/dist/ai/source/ErrorIcon.md +2 -2
- package/dist/ai/source/FlatListBox.md +188 -17
- package/dist/ai/source/GroupedListBox.md +236 -44
- package/dist/ai/source/GuidesComponent.md +14 -7
- package/dist/ai/source/ListBox.md +46 -8
- package/dist/ai/source/OptionsContainer.md +288 -60
- package/dist/ai/source/WarningIcon.md +2 -2
- package/dist/assets/css/reset.css_inline.js +1 -1
- package/dist/assets/svgs/star.svg_raw.js +4 -0
- package/dist/components/BbAccordion/BbAccordion.vue_vue_type_script_setup_true_lang.js +49 -32
- package/dist/components/BbAccordion/types.d.ts +35 -3
- package/dist/components/BbAccordion/types.js +11 -0
- package/dist/components/BbAlert/BbAlert.vue_vue_type_script_setup_true_lang.js +46 -30
- package/dist/components/BbAlert/types.d.ts +37 -3
- package/dist/components/BbAlert/types.js +13 -0
- package/dist/components/BbAsterisk/BbAsterisk.vue.d.ts +3 -1
- package/dist/components/BbAsterisk/BbAsterisk.vue_vue_type_script_setup_true_lang.js +23 -8
- package/dist/components/BbAsterisk/types.d.ts +18 -0
- package/dist/components/BbAsterisk/types.js +7 -0
- package/dist/components/BbAvatar/BbAvatar.vue.d.ts +1 -1
- package/dist/components/BbAvatar/BbAvatar.vue_vue_type_script_setup_true_lang.js +57 -44
- package/dist/components/BbAvatar/types.d.ts +23 -0
- package/dist/components/BbAvatar/types.js +7 -0
- package/dist/components/BbBadge/BadgeBodyContent.vue_vue_type_script_setup_true_lang.js +24 -18
- package/dist/components/BbBadge/BbBadge.vue_vue_type_script_setup_true_lang.js +96 -53
- package/dist/components/BbBadge/BbBadgeButton.vue_vue_type_script_setup_true_lang.js +27 -8
- package/dist/components/BbBadge/badgeButtonContext.d.ts +25 -8
- package/dist/components/BbBadge/types.d.ts +46 -3
- package/dist/components/BbBadge/types.js +13 -0
- package/dist/components/BbBaseButton/BbBaseButton.vue_vue_type_script_setup_true_lang.js +109 -96
- package/dist/components/BbBaseButton/RouterComponent.vue_vue_type_script_setup_true_lang.js +11 -11
- package/dist/components/BbBaseButton/types.d.ts +33 -3
- package/dist/components/BbBaseButton/types.js +9 -2
- package/dist/components/BbBaseCheckboxIcon/BbBaseCheckboxIcon.vue_vue_type_script_setup_true_lang.js +50 -18
- package/dist/components/BbBaseCheckboxIcon/types.d.ts +31 -2
- package/dist/components/BbBaseCheckboxIcon/types.js +8 -0
- package/dist/components/BbBaseRadioIcon/BbBaseRadioIcon.vue_vue_type_script_setup_true_lang.js +45 -15
- package/dist/components/BbBaseRadioIcon/types.d.ts +31 -2
- package/dist/components/BbBaseRadioIcon/types.js +8 -0
- package/dist/components/BbBaseSwitchIcon/BbBaseSwitchIcon.vue_vue_type_script_setup_true_lang.js +48 -16
- package/dist/components/BbBaseSwitchIcon/types.d.ts +31 -2
- package/dist/components/BbBaseSwitchIcon/types.js +8 -0
- package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue_vue_type_script_setup_true_lang.js +187 -132
- package/dist/components/BbBreadcrumbs/types.d.ts +45 -3
- package/dist/components/BbBreadcrumbs/types.js +12 -0
- package/dist/components/BbButton/BbButton.vue.d.ts +5 -0
- package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +107 -81
- package/dist/components/BbButton/types.d.ts +113 -2
- package/dist/components/BbButton/types.js +12 -0
- package/dist/components/BbCalendar/BbCalendar.vue.d.ts +34 -0
- package/dist/components/BbCalendar/BbCalendar.vue.js +6 -0
- package/dist/components/BbCalendar/BbCalendar.vue_vue_type_script_setup_true_lang.js +608 -0
- package/dist/components/BbCalendar/CalendarMonthPanel.vue.js +5 -0
- package/dist/components/BbCalendar/CalendarMonthPanel.vue_vue_type_script_setup_true_lang.js +124 -0
- package/dist/components/BbCalendar/CalendarYearPanel.vue.js +5 -0
- package/dist/components/BbCalendar/CalendarYearPanel.vue_vue_type_script_setup_true_lang.js +126 -0
- package/dist/components/BbCalendar/calendarHost.d.ts +29 -0
- package/dist/components/BbCalendar/calendarHost.js +10 -0
- package/dist/components/BbCalendar/types.d.ts +225 -0
- package/dist/components/BbCalendar/types.js +29 -0
- package/dist/components/{BbBaseDatePicker/useDatePickerContext.d.ts → BbCalendar/useCalendarContext.d.ts} +10 -7
- package/dist/components/BbCalendar/useCalendarContext.js +11 -0
- package/dist/components/BbCalendar/useCalendarGrid.d.ts +208 -0
- package/dist/components/BbCalendar/useCalendarGrid.js +274 -0
- package/dist/components/BbCalendar/useDayGrid.d.ts +79 -0
- package/dist/components/BbCalendar/useDayGrid.js +204 -0
- package/dist/components/BbCalendar/useToday.d.ts +23 -0
- package/dist/components/BbCalendar/useToday.js +21 -0
- package/dist/components/BbCheckbox/BbCheckbox.vue.d.ts +7 -7
- package/dist/components/BbCheckbox/BbCheckbox.vue_vue_type_script_setup_true_lang.js +214 -72
- package/dist/components/BbCheckbox/types.d.ts +180 -13
- package/dist/components/BbCheckbox/types.js +8 -0
- package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue.d.ts +15 -3
- package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +338 -90
- package/dist/components/BbCheckboxGroup/types.d.ts +195 -20
- package/dist/components/BbCheckboxGroup/types.js +10 -0
- package/dist/components/BbCollapsible/BbCollapsible.vue.d.ts +2 -1
- package/dist/components/BbCollapsible/BbCollapsible.vue_vue_type_script_setup_true_lang.js +41 -19
- package/dist/components/BbCollapsible/types.d.ts +44 -1
- package/dist/components/BbCollapsible/types.js +7 -0
- package/dist/components/BbColorInput/BbColorInput.vue.d.ts +17 -7
- package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +330 -86
- package/dist/components/BbColorInput/types.d.ts +230 -12
- package/dist/components/BbColorInput/types.js +24 -0
- package/dist/components/BbColorPalette/BbColorPalette.vue.d.ts +10 -2
- package/dist/components/BbColorPalette/BbColorPalette.vue_vue_type_script_setup_true_lang.js +515 -108
- package/dist/components/BbColorPalette/types.d.ts +76 -7
- package/dist/components/BbColorPalette/types.js +12 -0
- package/dist/components/BbConfirm/BbConfirm.vue.d.ts +2 -1
- package/dist/components/BbConfirm/BbConfirm.vue_vue_type_script_setup_true_lang.js +125 -76
- package/dist/components/BbConfirm/BbConfirmPortal.vue.d.ts +1 -0
- package/dist/components/BbConfirm/types.d.ts +49 -0
- package/dist/components/BbConfirm/types.js +17 -0
- package/dist/components/BbDatePicker/BbDatePicker.vue.d.ts +16 -10
- package/dist/components/BbDatePicker/BbDatePicker.vue_vue_type_script_setup_true_lang.js +320 -223
- package/dist/components/BbDatePicker/types.d.ts +111 -17
- package/dist/components/BbDatePicker/types.js +33 -0
- package/dist/components/BbDatePickerInput/BbDatePickerInput.vue.d.ts +16 -4
- package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +1172 -87
- package/dist/components/BbDatePickerInput/types.d.ts +224 -19
- package/dist/components/BbDatePickerInput/types.js +39 -0
- package/dist/components/BbDialog/BbDialog.vue.d.ts +3 -3
- package/dist/components/BbDialog/BbDialog.vue_vue_type_script_setup_true_lang.js +227 -136
- package/dist/components/BbDialog/types.d.ts +92 -3
- package/dist/components/BbDialog/types.js +16 -0
- package/dist/components/BbDialog/useDialogStack.d.ts +12 -0
- package/dist/components/BbDialog/useDialogStack.js +9 -2
- package/dist/components/BbDropdown/AdaptiveDropdown.vue.d.ts +2 -0
- package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +108 -96
- package/dist/components/BbDropdown/BbDropdown.vue.d.ts +10 -2
- package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +337 -268
- package/dist/components/BbDropdown/BbDropdownGroup.vue.d.ts +5 -1
- package/dist/components/BbDropdown/BbDropdownList.vue.d.ts +8 -2
- package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +377 -293
- package/dist/components/BbDropdown/DropdownPipelineResolver.vue_vue_type_script_setup_true_lang.js +129 -118
- package/dist/components/BbDropdown/normalizeGroups.js +55 -31
- package/dist/components/BbDropdown/types.d.ts +288 -30
- package/dist/components/BbDropdown/types.js +21 -2
- package/dist/components/BbDropdown/useDropdownContext.d.ts +10 -4
- package/dist/components/BbDropdown/useDropdownGroupRegistry.d.ts +1 -0
- package/dist/components/BbDropdownButton/BbDropdownButton.vue.d.ts +18 -3
- package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +172 -40
- package/dist/components/BbDropdownButton/types.d.ts +137 -8
- package/dist/components/BbDropdownButton/types.js +35 -0
- package/dist/components/BbDropzone/BbDropzone.vue.d.ts +2 -2
- package/dist/components/BbDropzone/BbDropzone.vue_vue_type_script_setup_true_lang.js +186 -144
- package/dist/components/BbDropzone/types.d.ts +38 -4
- package/dist/components/BbDropzone/types.js +16 -0
- package/dist/components/BbForm/BbForm.vue.d.ts +94 -0
- package/dist/{validated → components/BbForm}/BbForm.vue.js +1 -1
- package/dist/components/BbForm/BbForm.vue_vue_type_script_setup_true_lang.js +317 -0
- package/dist/components/BbForm/BbFormCustomField.d.ts +14 -0
- package/dist/components/BbForm/BbFormCustomField.js +43 -0
- package/dist/components/BbForm/bindFormField.d.ts +16 -0
- package/dist/components/BbForm/bindFormField.js +85 -0
- package/dist/components/BbForm/formFields.d.ts +64 -0
- package/dist/components/BbForm/formFields.js +11 -0
- package/dist/components/BbForm/formSchema.d.ts +56 -0
- package/dist/components/BbForm/formSchema.js +196 -0
- package/dist/components/BbForm/standardSchema.d.ts +59 -0
- package/dist/components/BbIcon/BbIcon.vue_vue_type_script_setup_true_lang.js +58 -48
- package/dist/components/BbIcon/iconCache.d.ts +63 -0
- package/dist/components/BbIcon/iconCache.js +35 -0
- package/dist/components/BbIcon/types.d.ts +22 -2
- package/dist/components/BbIcon/types.js +7 -0
- package/dist/components/BbIndicator/BbIndicator.vue_vue_type_script_setup_true_lang.js +34 -21
- package/dist/components/BbIndicator/types.d.ts +24 -0
- package/dist/components/BbIndicator/types.js +7 -0
- package/dist/components/BbNumberInput/BbNumberInput.vue.d.ts +12 -8
- package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +308 -85
- package/dist/components/BbNumberInput/types.d.ts +201 -18
- package/dist/components/BbNumberInput/types.js +8 -0
- package/dist/components/BbOffCanvas/BbOffCanvas.vue.d.ts +3 -3
- package/dist/components/BbOffCanvas/BbOffCanvas.vue_vue_type_script_setup_true_lang.js +311 -210
- package/dist/components/BbOffCanvas/types.d.ts +79 -6
- package/dist/components/BbOffCanvas/types.js +15 -0
- package/dist/components/BbPagination/BbPagination.vue.d.ts +2 -2
- package/dist/components/BbPagination/BbPagination.vue_vue_type_script_setup_true_lang.js +125 -90
- package/dist/components/BbPagination/types.d.ts +38 -0
- package/dist/components/BbPagination/types.js +13 -0
- package/dist/components/BbPopover/BbPopover.vue.d.ts +4 -4
- package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +219 -179
- package/dist/components/BbPopover/types.d.ts +51 -5
- package/dist/components/BbPopover/types.js +14 -0
- package/dist/components/BbProgress/BbProgress.vue_vue_type_script_setup_true_lang.js +29 -16
- package/dist/components/BbProgress/types.d.ts +25 -0
- package/dist/components/BbProgress/types.js +7 -0
- package/dist/components/BbPtScope/BbPtScope.vue.d.ts +12 -0
- package/dist/components/BbPtScope/BbPtScope.vue.js +5 -0
- package/dist/components/BbPtScope/BbPtScope.vue_vue_type_script_setup_true_lang.js +13 -0
- package/dist/components/BbPtScope/types.d.ts +15 -0
- package/dist/components/BbRadio/BbRadio.vue.d.ts +7 -7
- package/dist/components/BbRadio/BbRadio.vue_vue_type_script_setup_true_lang.js +172 -59
- package/dist/components/BbRadio/types.d.ts +152 -13
- package/dist/components/BbRadio/types.js +8 -0
- package/dist/components/BbRadioGroup/BbRadioGroup.vue.d.ts +14 -2
- package/dist/components/BbRadioGroup/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +319 -92
- package/dist/components/BbRadioGroup/types.d.ts +198 -22
- package/dist/components/BbRadioGroup/types.js +10 -0
- package/dist/components/BbRating/BbRating.vue.d.ts +10 -8
- package/dist/components/BbRating/BbRating.vue_vue_type_script_setup_true_lang.js +259 -78
- package/dist/components/BbRating/types.d.ts +174 -13
- package/dist/components/BbRating/types.js +21 -0
- package/dist/components/BbSelect/BbSelect.vue.d.ts +17 -3
- package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +553 -83
- package/dist/components/BbSelect/types.d.ts +235 -20
- package/dist/components/BbSelect/types.js +41 -0
- package/dist/components/BbSelectPopover/BbSelectPopover.vue.d.ts +15 -1
- package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +541 -391
- package/dist/components/BbSelectPopover/types.d.ts +124 -8
- package/dist/components/BbSelectPopover/types.js +24 -0
- package/dist/components/BbSlider/BbSlider.vue.d.ts +13 -8
- package/dist/components/BbSlider/BbSlider.vue_vue_type_script_setup_true_lang.js +472 -96
- package/dist/components/BbSlider/types.d.ts +202 -13
- package/dist/components/BbSlider/types.js +26 -0
- package/dist/components/BbSmoothHeight/BbSmoothHeight.vue.d.ts +1 -1
- package/dist/components/BbSmoothHeight/BbSmoothHeight.vue_vue_type_script_setup_true_lang.js +60 -48
- package/dist/components/BbSmoothHeight/types.d.ts +19 -0
- package/dist/components/BbSmoothHeight/types.js +7 -0
- package/dist/components/BbSpinner/BbSpinner.vue_vue_type_script_setup_true_lang.js +27 -14
- package/dist/components/BbSpinner/types.d.ts +22 -1
- package/dist/components/BbSpinner/types.js +7 -0
- package/dist/components/BbSwitch/BbSwitch.vue.d.ts +7 -7
- package/dist/components/BbSwitch/BbSwitch.vue_vue_type_script_setup_true_lang.js +220 -78
- package/dist/components/BbSwitch/types.d.ts +25 -10
- package/dist/components/BbSwitch/types.js +5 -0
- package/dist/components/BbSwitchGroup/BbSwitchGroup.vue.d.ts +14 -2
- package/dist/components/BbSwitchGroup/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +338 -90
- package/dist/components/BbSwitchGroup/types.d.ts +30 -7
- package/dist/components/BbSwitchGroup/types.js +5 -0
- package/dist/components/BbTable/BbTable.vue.d.ts +27 -6
- package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +2013 -685
- package/dist/components/BbTable/BbTableDataRow.d.ts +196 -0
- package/dist/components/BbTable/BbTableDataRow.js +151 -0
- package/dist/components/BbTable/BbTableExpandRow.d.ts +84 -0
- package/dist/components/BbTable/BbTableExpandRow.js +62 -0
- package/dist/components/BbTable/BbTableSelectToggle.d.ts +120 -0
- package/dist/components/BbTable/BbTableSelectToggle.js +122 -0
- package/dist/components/BbTable/gridWidgets.d.ts +30 -0
- package/dist/components/BbTable/gridWidgets.js +14 -0
- package/dist/components/BbTable/types.d.ts +473 -123
- package/dist/components/BbTable/types.js +31 -0
- package/dist/components/BbTable/utils.d.ts +145 -4
- package/dist/components/BbTable/utils.js +154 -37
- package/dist/components/BbTabs/BbTabs.vue.d.ts +3 -1
- package/dist/components/BbTabs/BbTabs.vue_vue_type_script_setup_true_lang.js +62 -26
- package/dist/components/BbTabs/BbTabsList.vue.d.ts +3 -10
- package/dist/components/BbTabs/BbTabsList.vue_vue_type_script_setup_true_lang.js +143 -81
- package/dist/components/BbTabs/BbTabsPanels.vue.d.ts +12 -0
- package/dist/components/{BbBaseSwitch/BbBaseSwitch.vue.js → BbTabs/BbTabsPanels.vue.js} +2 -2
- package/dist/components/BbTabs/BbTabsPanels.vue_vue_type_script_setup_true_lang.js +59 -0
- package/dist/components/BbTabs/BbTabsRoot.vue.d.ts +3 -1
- package/dist/components/BbTabs/BbTabsRoot.vue_vue_type_script_setup_true_lang.js +2 -1
- package/dist/components/BbTabs/types.d.ts +183 -23
- package/dist/components/BbTabs/types.js +34 -0
- package/dist/components/BbTag/BbTag.vue.d.ts +13 -10
- package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +383 -92
- package/dist/components/BbTag/types.d.ts +139 -14
- package/dist/components/BbTag/types.js +22 -0
- package/dist/components/BbTextInput/BbTextInput.vue.d.ts +10 -8
- package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +257 -84
- package/dist/components/BbTextInput/types.d.ts +168 -13
- package/dist/components/BbTextInput/types.js +8 -0
- package/dist/components/BbTextarea/BbTextarea.vue.d.ts +7 -7
- package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +291 -94
- package/dist/components/BbTextarea/types.d.ts +158 -14
- package/dist/components/BbTextarea/types.js +8 -0
- package/dist/components/BbTimePicker/BbTimePicker.vue.d.ts +12 -4
- package/dist/components/BbTimePicker/BbTimePicker.vue_vue_type_script_setup_true_lang.js +199 -122
- package/dist/components/BbTimePicker/types.d.ts +94 -7
- package/dist/components/BbTimePicker/types.js +18 -0
- package/dist/components/BbTimePickerInput/BbTimePickerInput.vue.d.ts +14 -4
- package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +749 -86
- package/dist/components/BbTimePickerInput/types.d.ts +171 -22
- package/dist/components/BbTimePickerInput/types.js +25 -0
- package/dist/components/BbToast/BbToast.vue_vue_type_script_setup_true_lang.js +63 -25
- package/dist/components/BbToast/BbToastMessage.vue.d.ts +4 -1
- package/dist/components/BbToast/BbToastMessage.vue_vue_type_script_setup_true_lang.js +79 -76
- package/dist/components/BbToast/BbToastPortal.vue.d.ts +1 -0
- package/dist/components/BbToast/BbToastRegion.vue.d.ts +4 -1
- package/dist/components/BbToast/BbToastRegion.vue_vue_type_script_setup_true_lang.js +72 -64
- package/dist/components/BbToast/types.d.ts +54 -1
- package/dist/components/BbToast/types.js +28 -0
- package/dist/components/BbTooltip/BbTooltip.vue_vue_type_script_setup_true_lang.js +104 -87
- package/dist/components/BbTooltip/types.d.ts +40 -2
- package/dist/components/BbTooltip/types.js +7 -0
- package/dist/components/BbTree/BbTree.vue.d.ts +15 -3
- package/dist/components/BbTree/BbTree.vue_vue_type_script_setup_true_lang.js +51 -29
- package/dist/components/BbTree/BbTreeLevel.vue.d.ts +1 -1
- package/dist/components/BbTree/BbTreeLevel.vue_vue_type_script_setup_true_lang.js +17 -16
- package/dist/components/BbTree/context.d.ts +9 -1
- package/dist/components/BbTree/types.d.ts +40 -5
- package/dist/components/BbTree/types.js +7 -0
- package/dist/components/ChipsBox/ChipsBox.vue_vue_type_script_setup_true_lang.js +46 -44
- package/dist/components/ChipsBox/types.d.ts +7 -0
- package/dist/components/ClearableButton/ClearableButton.vue_vue_type_script_setup_true_lang.js +5 -5
- package/dist/components/CommaBox/CommaBox.vue_vue_type_script_setup_true_lang.js +11 -7
- package/dist/components/CommaBox/types.d.ts +7 -0
- package/dist/components/{BbBaseInputContainer/BbBaseInputContainer.vue.d.ts → CommonField/CommonField.vue.d.ts} +5 -5
- package/dist/components/{BbBaseRadio/BbBaseRadio.vue.js → CommonField/CommonField.vue.js} +2 -2
- package/dist/components/CommonField/CommonField.vue_vue_type_script_setup_true_lang.js +189 -0
- package/dist/components/CommonField/messageHeightMatrix.d.ts +2 -0
- package/dist/components/{BbBaseInputContainer → CommonField}/types.d.ts +52 -16
- package/dist/components/{CommonInputWrapper/CommonInputWrapper.vue.d.ts → CommonFieldInput/CommonFieldInput.vue.d.ts} +5 -4
- package/dist/components/{BbBaseRadioGroup/BbBaseRadioGroup.vue.js → CommonFieldInput/CommonFieldInput.vue.js} +2 -2
- package/dist/components/CommonFieldInput/CommonFieldInput.vue_vue_type_script_setup_true_lang.js +120 -0
- package/dist/components/CommonFieldInput/boxBorderMatrix.d.ts +10 -0
- package/dist/components/{CommonInputWrapper → CommonFieldInput}/types.d.ts +27 -8
- package/dist/components/CommonPopover/CommonPopover.vue.d.ts +11 -2
- package/dist/components/CommonPopover/CommonPopover.vue_vue_type_script_setup_true_lang.js +76 -63
- package/dist/components/CommonPopover/types.d.ts +27 -8
- package/dist/components/{BbBaseDatePickerInput/BbBaseDatePickerTimeSelector.vue.d.ts → CommonTimeSelector/CommonTimeSelector.vue.d.ts} +21 -2
- package/dist/components/{BbBaseColorPalette/BbBaseColorPalette.vue.js → CommonTimeSelector/CommonTimeSelector.vue.js} +2 -2
- package/dist/components/CommonTimeSelector/CommonTimeSelector.vue_vue_type_script_setup_true_lang.js +232 -0
- package/dist/components/CommonTimeSelector/types.d.ts +6 -0
- package/dist/components/FlatListBox/FlatListBox.vue.d.ts +5 -1
- package/dist/components/FlatListBox/FlatListBox.vue_vue_type_script_setup_true_lang.js +165 -95
- package/dist/components/FlatListBox/types.d.ts +24 -2
- package/dist/components/GroupedListBox/GroupedListBox.vue.d.ts +5 -1
- package/dist/components/GroupedListBox/GroupedListBox.vue_vue_type_script_setup_true_lang.js +217 -134
- package/dist/components/GroupedListBox/types.d.ts +24 -2
- package/dist/components/ListBox/ListBox.vue.d.ts +5 -1
- package/dist/components/ListBox/ListBox.vue_vue_type_script_setup_true_lang.js +95 -69
- package/dist/components/ListBox/types.d.ts +24 -2
- package/dist/components/OptionsContainer/OptionsContainer.vue.d.ts +1 -1
- package/dist/components/OptionsContainer/OptionsContainer.vue_vue_type_script_setup_true_lang.js +109 -37
- package/dist/components/OptionsContainer/types.d.ts +53 -9
- package/dist/components/Transitions/ScaleFade.vue_vue_type_script_setup_true_lang.js +8 -8
- package/dist/components/Transitions/Slide.vue.js +1 -1
- package/dist/composables/useBaseOptions.d.ts +12 -1
- package/dist/composables/useBaseOptions.js +77 -37
- package/dist/composables/useBbConfig.d.ts +27 -6
- package/dist/composables/useBbConfig.js +8 -2
- package/dist/composables/useBbDropdownContext.d.ts +5 -0
- package/dist/composables/useBbFormContext.d.ts +131 -8
- package/dist/composables/useBbFormContext.js +49 -30
- package/dist/composables/useBbFormField.d.ts +40 -0
- package/dist/composables/useBbFormField.js +39 -0
- package/dist/composables/useBbTableContext.d.ts +45 -1
- package/dist/composables/useBbTableContext.js +93 -87
- package/dist/composables/useBbTabsContext.d.ts +15 -9
- package/dist/composables/useBbTabsContext.js +121 -90
- package/dist/composables/useClosingInert.d.ts +4 -4
- package/dist/composables/useCoarsePointer.js +7 -10
- package/dist/composables/useCoherence.js +1 -1
- package/dist/composables/useConfig.d.ts +59 -0
- package/dist/composables/useConfig.js +15 -0
- package/dist/composables/useConfirm.d.ts +39 -7
- package/dist/composables/useConfirm.js +50 -41
- package/dist/composables/useEscapeStackEntry.d.ts +13 -0
- package/dist/composables/useEscapeStackEntry.js +16 -0
- package/dist/composables/useFormBinding.d.ts +116 -0
- package/dist/composables/useFormBinding.js +34 -0
- package/dist/composables/useHydrated.d.ts +18 -0
- package/dist/composables/useHydrated.js +13 -7
- package/dist/composables/useId.d.ts +4 -3
- package/dist/composables/useId.js +1 -7
- package/dist/composables/useItemsGetter.d.ts +11 -0
- package/dist/composables/useItemsGetter.js +44 -18
- package/dist/composables/useKeyboardInset.d.ts +28 -0
- package/dist/composables/useKeyboardInset.js +32 -0
- package/dist/composables/useLocale.js +10 -7
- package/dist/composables/useMobile.js +7 -10
- package/dist/composables/usePassthrough.d.ts +228 -0
- package/dist/composables/usePassthrough.js +247 -0
- package/dist/composables/usePrefill.d.ts +22 -2
- package/dist/composables/usePrefill.js +35 -19
- package/dist/composables/useSafeAreaInternal.js +1 -1
- package/dist/composables/useSegmentedFields.d.ts +2 -2
- 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.d.ts +18 -1
- package/dist/composables/useToast.js +31 -18
- package/dist/composables/useToggleInput.d.ts +44 -0
- package/dist/composables/useToggleInput.js +39 -0
- package/dist/composables/useViewportWidth.d.ts +5 -25
- package/dist/composables/useViewportWidth.js +14 -7
- package/dist/deprecation/ai-deprecations.json.d.ts +1977 -289
- package/dist/deprecation/ai-deprecations.json.js +1 -1
- package/dist/deprecation/removedProps.js +9 -4
- package/dist/directives/bbDropdown.d.ts +15 -4
- package/dist/directives/bbDropdown.js +31 -9
- package/dist/directives/bbTooltip.d.ts +6 -0
- package/dist/directives/createPopoverDirective.d.ts +62 -0
- package/dist/directives/createPopoverDirective.js +92 -37
- package/dist/i18n/index.d.ts +10 -16
- package/dist/i18n/locales/cs.json +9 -5
- package/dist/i18n/locales/da.json +9 -5
- package/dist/i18n/locales/de.json +9 -5
- package/dist/i18n/locales/el.json +9 -5
- package/dist/i18n/locales/en.json +9 -5
- package/dist/i18n/locales/es.json +9 -5
- package/dist/i18n/locales/fi.json +9 -5
- package/dist/i18n/locales/fr.json +9 -5
- package/dist/i18n/locales/hu.json +9 -5
- package/dist/i18n/locales/it.json +9 -5
- package/dist/i18n/locales/ja.json +9 -5
- package/dist/i18n/locales/ko.json +9 -5
- package/dist/i18n/locales/nb.json +9 -5
- package/dist/i18n/locales/nl.json +9 -5
- package/dist/i18n/locales/pl.json +9 -5
- package/dist/i18n/locales/pt.json +9 -5
- package/dist/i18n/locales/ro.json +9 -5
- package/dist/i18n/locales/ru.json +9 -5
- package/dist/i18n/locales/sv.json +9 -5
- package/dist/i18n/locales/tr.json +9 -5
- package/dist/i18n/locales/uk.json +9 -5
- package/dist/i18n/locales/zh-cn.json +9 -5
- package/dist/icon-scan.d.ts +276 -0
- package/dist/icon-scan.js +485 -0
- package/dist/icons-whitelist.d.ts +5 -4
- package/dist/index.d.ts +40 -21
- package/dist/index.js +78 -71
- package/dist/llms-full.txt +61164 -27972
- package/dist/llms-medium.txt +1482 -366
- package/dist/llms.txt +32 -15
- package/dist/locale-blueprint.json +9 -5
- package/dist/nuxt-auto-imports.d.ts +76 -0
- package/dist/nuxt-auto-imports.js +32 -0
- package/dist/nuxt-module.d.ts +30 -15
- package/dist/nuxt.js +35 -9
- package/dist/passthrough-deduper.js +5 -0
- package/dist/plugin.d.ts +10 -1
- package/dist/plugin.js +29 -19
- package/dist/project-dts.d.ts +84 -0
- package/dist/project-dts.js +170 -0
- package/dist/reset.css +1 -1
- package/dist/runtime/nuxt-plugin.js +34 -21
- package/dist/styles.css +3 -2
- package/dist/types/AlertVariant.d.ts +10 -1
- package/dist/types/BadgeVariant.d.ts +16 -5
- package/dist/types/ButtonVariant.d.ts +12 -1
- package/dist/types/ColumnName.d.ts +30 -3
- package/dist/types/CommonProps.d.ts +2 -2
- package/dist/types/Config.d.ts +94 -1
- package/dist/types/ConfirmVariant.d.ts +8 -1
- package/dist/types/DropdownItemVariant.d.ts +8 -1
- package/dist/types/FieldLayout.d.ts +32 -0
- package/dist/types/IndicatorVariant.d.ts +11 -1
- package/dist/types/InputVariant.d.ts +30 -0
- package/dist/types/ItemProps.d.ts +50 -0
- package/dist/types/Option.d.ts +6 -0
- package/dist/types/PtScope.d.ts +15 -0
- package/dist/types/RegistryKey.d.ts +10 -0
- package/dist/types/TabsVariant.d.ts +25 -0
- package/dist/types/ToastVariant.d.ts +12 -2
- package/dist/types/TooltipVariant.d.ts +8 -1
- package/dist/types/passthrough.d.ts +362 -0
- package/dist/types/passthrough.js +78 -0
- package/dist/types/ptComponentMap.d.ts +62 -0
- package/dist/utilities/functions/hasVnodeListener.d.ts +16 -0
- package/dist/utilities/functions/hasVnodeListener.js +12 -0
- package/dist/utilities/functions/isImeComposing.d.ts +7 -0
- package/dist/utilities/functions/isImeComposing.js +4 -0
- package/dist/utilities/functions/itemProps.d.ts +46 -0
- package/dist/utilities/functions/itemProps.js +47 -0
- package/dist/utilities/functions/slotKey.d.ts +13 -8
- package/dist/utilities/functions/slotKey.js +78 -2
- package/dist/utilities/functions/snapToStep.js +2 -1
- package/dist/utilities/functions/toggleInput.d.ts +98 -0
- package/dist/utilities/functions/toggleInput.js +56 -0
- package/dist/utilities/functions/warnRemovedAttrs.d.ts +27 -1
- package/dist/utilities/functions/warnRemovedAttrs.js +75 -14
- package/dist/utilities/misc/listboxMetrics.d.ts +9 -3
- package/dist/utilities/misc/listboxMetrics.js +5 -2
- package/dist/utilities/misc/ssrStateInjectionKey.d.ts +42 -0
- package/dist/utilities/misc/ssrStateInjectionKey.js +4 -0
- package/dist/utils/cssLayers.d.ts +91 -0
- package/dist/utils/cssLayers.js +43 -0
- package/dist/utils/injectLibraryStyles.d.ts +3 -1
- package/dist/utils/injectLibraryStyles.js +24 -23
- package/dist/utils/overlayEscapeStack.d.ts +10 -0
- package/dist/utils/overlayEscapeStack.js +5 -3
- package/dist/utils/passthrough.d.ts +67 -0
- package/dist/utils/passthrough.js +100 -0
- package/dist/utils/passthroughDeduper.d.ts +2 -0
- package/dist/utils/ptScope.d.ts +8 -0
- package/dist/utils/ptScope.js +4 -0
- package/dist/utils/versionCheck.d.ts +19 -0
- package/dist/utils/versionCheck.js +18 -0
- package/dist/vite-plugin.d.ts +301 -53
- package/dist/vite.js +547 -375
- package/llms.txt +33 -16
- package/package.json +49 -27
- package/scripts/lib/check-fix.mjs +129 -0
- package/scripts/lib/component-attr-targets.ts +123 -0
- package/scripts/lib/component-tree.ts +648 -0
- package/scripts/lib/css-class-check.mjs +326 -0
- package/scripts/lib/css-class-surface.mjs +292 -0
- package/scripts/lib/css-color-resolve.mjs +172 -0
- package/scripts/lib/css-local-check.mjs +267 -0
- package/scripts/lib/design-token-manifest.mjs +499 -0
- package/scripts/lib/doc-sections.mjs +248 -0
- package/scripts/lib/ensure-manifest.mjs +28 -5
- package/scripts/lib/eslint-disable.mjs +141 -0
- package/scripts/lib/eslint-plugin.d.ts +64 -1
- package/scripts/lib/eslint-plugin.mjs +1285 -30
- package/scripts/lib/hand-imported-styles.mjs +326 -0
- package/scripts/lib/hand-roll-hints.mjs +50 -6
- package/scripts/lib/html-attributes.mjs +353 -0
- package/scripts/lib/local-components.mjs +177 -0
- package/scripts/lib/mcp-config.mjs +87 -58
- package/scripts/lib/migrate-fix.mjs +62 -3
- package/scripts/lib/project-variant-dts.mjs +122 -0
- package/scripts/lib/public-type-exports.mjs +273 -0
- package/scripts/lib/slot-key.mjs +147 -0
- package/scripts/lib/slot-renames.mjs +46 -0
- package/scripts/lib/squashed-slot-words.mjs +133 -0
- package/scripts/lib/validate-bb-markup.mjs +2213 -76
- package/scripts/lib/wrapper-props.mjs +188 -0
- package/dist/ai/BbBaseCheckbox.md +0 -49
- package/dist/ai/BbBaseCheckboxGroup.md +0 -64
- package/dist/ai/BbBaseColorInput.md +0 -65
- package/dist/ai/BbBaseColorPalette.md +0 -39
- package/dist/ai/BbBaseDatePicker.md +0 -43
- package/dist/ai/BbBaseDatePickerInput.md +0 -73
- package/dist/ai/BbBaseInputContainer.md +0 -48
- package/dist/ai/BbBaseNumberInput.md +0 -71
- package/dist/ai/BbBaseRadio.md +0 -46
- package/dist/ai/BbBaseRadioGroup.md +0 -64
- package/dist/ai/BbBaseRating.md +0 -52
- package/dist/ai/BbBaseSelect.md +0 -88
- package/dist/ai/BbBaseSlider.md +0 -56
- package/dist/ai/BbBaseSwitch.md +0 -49
- package/dist/ai/BbBaseSwitchGroup.md +0 -64
- package/dist/ai/BbBaseTag.md +0 -68
- package/dist/ai/BbBaseTextInput.md +0 -75
- package/dist/ai/BbBaseTextarea.md +0 -62
- package/dist/ai/BbBaseTimePickerInput.md +0 -62
- package/dist/ai/BbTabsPanes.md +0 -27
- package/dist/ai/CommonInputWrapper.md +0 -42
- package/dist/ai/source/BbBaseCheckbox.md +0 -461
- package/dist/ai/source/BbBaseCheckboxGroup.md +0 -554
- package/dist/ai/source/BbBaseColorInput.md +0 -431
- package/dist/ai/source/BbBaseColorPalette.md +0 -942
- package/dist/ai/source/BbBaseDatePicker.md +0 -1448
- package/dist/ai/source/BbBaseDatePickerInput.md +0 -1940
- package/dist/ai/source/BbBaseNumberInput.md +0 -617
- package/dist/ai/source/BbBaseRadio.md +0 -381
- package/dist/ai/source/BbBaseRadioGroup.md +0 -539
- package/dist/ai/source/BbBaseRating.md +0 -607
- package/dist/ai/source/BbBaseSelect.md +0 -945
- package/dist/ai/source/BbBaseSlider.md +0 -1144
- package/dist/ai/source/BbBaseSwitch.md +0 -246
- package/dist/ai/source/BbBaseSwitchGroup.md +0 -302
- package/dist/ai/source/BbBaseTag.md +0 -694
- package/dist/ai/source/BbBaseTextInput.md +0 -511
- package/dist/ai/source/BbBaseTextarea.md +0 -504
- package/dist/ai/source/BbBaseTimePickerInput.md +0 -1037
- package/dist/ai/source/BbTabsPanes.md +0 -377
- package/dist/ai/source/CommonInputWrapper.md +0 -584
- package/dist/alert-variants.d.ts +0 -19
- package/dist/assets/svgs/sort.svg_raw.js +0 -4
- package/dist/badge-variants.d.ts +0 -19
- package/dist/button-variants.d.ts +0 -21
- 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/BbBaseCheckbox/BbBaseCheckbox.vue.d.ts +0 -40
- package/dist/components/BbBaseCheckbox/BbBaseCheckbox.vue.js +0 -6
- package/dist/components/BbBaseCheckbox/BbBaseCheckbox.vue_vue_type_script_setup_true_lang.js +0 -145
- package/dist/components/BbBaseCheckbox/types.d.ts +0 -224
- package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue.d.ts +0 -19
- package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue.js +0 -6
- package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue_vue_type_script_setup_true_lang.js +0 -190
- package/dist/components/BbBaseCheckboxGroup/types.d.ts +0 -257
- package/dist/components/BbBaseColorInput/BbBaseColorInput.vue.d.ts +0 -43
- package/dist/components/BbBaseColorInput/BbBaseColorInput.vue.js +0 -6
- package/dist/components/BbBaseColorInput/BbBaseColorInput.vue_vue_type_script_setup_true_lang.js +0 -184
- package/dist/components/BbBaseColorInput/types.d.ts +0 -219
- package/dist/components/BbBaseColorPalette/BbBaseColorPalette.vue.d.ts +0 -13
- package/dist/components/BbBaseColorPalette/BbBaseColorPalette.vue_vue_type_script_setup_true_lang.js +0 -395
- package/dist/components/BbBaseColorPalette/types.d.ts +0 -40
- package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue.d.ts +0 -20
- package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue.js +0 -6
- package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue_vue_type_script_setup_true_lang.js +0 -407
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue.d.ts +0 -47
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue.js +0 -5
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue_vue_type_script_setup_true_lang.js +0 -318
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue.js +0 -5
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue_vue_type_script_setup_true_lang.js +0 -115
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerYearSelector.vue.js +0 -5
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerYearSelector.vue_vue_type_script_setup_true_lang.js +0 -116
- package/dist/components/BbBaseDatePicker/types.d.ts +0 -108
- package/dist/components/BbBaseDatePicker/useDatePickerContext.js +0 -11
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue.d.ts +0 -31
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue.js +0 -6
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue_vue_type_script_setup_true_lang.js +0 -737
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerTimeSelector.vue.js +0 -6
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerTimeSelector.vue_vue_type_script_setup_true_lang.js +0 -204
- package/dist/components/BbBaseDatePickerInput/types.d.ts +0 -325
- package/dist/components/BbBaseInputContainer/BbBaseInputContainer.vue.js +0 -6
- package/dist/components/BbBaseInputContainer/BbBaseInputContainer.vue_vue_type_script_setup_true_lang.js +0 -190
- package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue.d.ts +0 -52
- package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue.js +0 -6
- package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue_vue_type_script_setup_true_lang.js +0 -215
- package/dist/components/BbBaseNumberInput/types.d.ts +0 -211
- package/dist/components/BbBaseRadio/BbBaseRadio.vue.d.ts +0 -33
- package/dist/components/BbBaseRadio/BbBaseRadio.vue_vue_type_script_setup_true_lang.js +0 -113
- package/dist/components/BbBaseRadio/types.d.ts +0 -179
- package/dist/components/BbBaseRadioGroup/BbBaseRadioGroup.vue.d.ts +0 -19
- package/dist/components/BbBaseRadioGroup/BbBaseRadioGroup.vue_vue_type_script_setup_true_lang.js +0 -179
- package/dist/components/BbBaseRadioGroup/types.d.ts +0 -223
- package/dist/components/BbBaseRating/BbBaseRating.vue.d.ts +0 -38
- package/dist/components/BbBaseRating/BbBaseRating.vue.js +0 -6
- package/dist/components/BbBaseRating/BbBaseRating.vue_vue_type_script_setup_true_lang.js +0 -192
- package/dist/components/BbBaseRating/types.d.ts +0 -176
- package/dist/components/BbBaseSelect/BbBaseSelect.vue.d.ts +0 -19
- package/dist/components/BbBaseSelect/BbBaseSelect.vue.js +0 -6
- package/dist/components/BbBaseSelect/BbBaseSelect.vue_vue_type_script_setup_true_lang.js +0 -311
- package/dist/components/BbBaseSelect/types.d.ts +0 -297
- package/dist/components/BbBaseSlider/BbBaseSlider.vue.d.ts +0 -35
- package/dist/components/BbBaseSlider/BbBaseSlider.vue.js +0 -6
- package/dist/components/BbBaseSlider/BbBaseSlider.vue_vue_type_script_setup_true_lang.js +0 -340
- package/dist/components/BbBaseSlider/types.d.ts +0 -200
- package/dist/components/BbBaseSwitch/BbBaseSwitch.vue.d.ts +0 -35
- package/dist/components/BbBaseSwitch/BbBaseSwitch.vue_vue_type_script_setup_true_lang.js +0 -146
- package/dist/components/BbBaseSwitch/types.d.ts +0 -10
- package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue.d.ts +0 -19
- package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue.js +0 -6
- package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue_vue_type_script_setup_true_lang.js +0 -190
- package/dist/components/BbBaseSwitchGroup/types.d.ts +0 -8
- package/dist/components/BbBaseTag/BbBaseTag.vue.d.ts +0 -50
- package/dist/components/BbBaseTag/BbBaseTag.vue.js +0 -6
- package/dist/components/BbBaseTag/BbBaseTag.vue_vue_type_script_setup_true_lang.js +0 -266
- package/dist/components/BbBaseTag/types.d.ts +0 -160
- package/dist/components/BbBaseTextInput/BbBaseTextInput.vue.d.ts +0 -45
- package/dist/components/BbBaseTextInput/BbBaseTextInput.vue.js +0 -6
- package/dist/components/BbBaseTextInput/BbBaseTextInput.vue_vue_type_script_setup_true_lang.js +0 -200
- package/dist/components/BbBaseTextInput/types.d.ts +0 -209
- package/dist/components/BbBaseTextarea/BbBaseTextarea.vue.d.ts +0 -39
- package/dist/components/BbBaseTextarea/BbBaseTextarea.vue.js +0 -6
- package/dist/components/BbBaseTextarea/BbBaseTextarea.vue_vue_type_script_setup_true_lang.js +0 -187
- package/dist/components/BbBaseTextarea/types.d.ts +0 -170
- package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue.d.ts +0 -27
- package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue.js +0 -6
- package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue_vue_type_script_setup_true_lang.js +0 -519
- package/dist/components/BbBaseTimePickerInput/types.d.ts +0 -151
- package/dist/components/BbTabs/BbTabsPanes.vue.d.ts +0 -16
- package/dist/components/BbTabs/BbTabsPanes.vue.js +0 -6
- package/dist/components/BbTabs/BbTabsPanes.vue_vue_type_script_setup_true_lang.js +0 -35
- package/dist/components/CommonInputWrapper/CommonInputWrapper.vue.js +0 -6
- package/dist/components/CommonInputWrapper/CommonInputWrapper.vue_vue_type_script_setup_true_lang.js +0 -107
- package/dist/confirm-variants.d.ts +0 -17
- package/dist/dropdown-item-variants.d.ts +0 -17
- package/dist/indicator-variants.d.ts +0 -20
- package/dist/locale-registry.d.ts +0 -37
- package/dist/toast-variants.d.ts +0 -20
- package/dist/tooltip-variants.d.ts +0 -17
- package/dist/types/InputDirection.d.ts +0 -15
- package/dist/validated/BbCheckbox.vue.d.ts +0 -29
- package/dist/validated/BbCheckbox.vue.js +0 -5
- package/dist/validated/BbCheckbox.vue_vue_type_script_setup_true_lang.js +0 -75
- package/dist/validated/BbCheckboxGroup.vue.d.ts +0 -34
- package/dist/validated/BbCheckboxGroup.vue.js +0 -5
- package/dist/validated/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +0 -82
- package/dist/validated/BbColorInput.vue.d.ts +0 -37
- package/dist/validated/BbColorInput.vue.js +0 -5
- package/dist/validated/BbColorInput.vue_vue_type_script_setup_true_lang.js +0 -75
- package/dist/validated/BbDatePickerInput.vue.d.ts +0 -41
- package/dist/validated/BbDatePickerInput.vue.js +0 -5
- package/dist/validated/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +0 -90
- package/dist/validated/BbDropzone.vue.d.ts +0 -24
- package/dist/validated/BbDropzone.vue.js +0 -5
- package/dist/validated/BbDropzone.vue_vue_type_script_setup_true_lang.js +0 -45
- package/dist/validated/BbForm.vue.d.ts +0 -28
- package/dist/validated/BbForm.vue_vue_type_script_setup_true_lang.js +0 -42
- package/dist/validated/BbNumberInput.vue.d.ts +0 -36
- package/dist/validated/BbNumberInput.vue.js +0 -5
- package/dist/validated/BbNumberInput.vue_vue_type_script_setup_true_lang.js +0 -72
- package/dist/validated/BbRadioGroup.vue.d.ts +0 -34
- package/dist/validated/BbRadioGroup.vue.js +0 -5
- package/dist/validated/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +0 -78
- package/dist/validated/BbRating.vue.d.ts +0 -30
- package/dist/validated/BbRating.vue.js +0 -5
- package/dist/validated/BbRating.vue_vue_type_script_setup_true_lang.js +0 -63
- package/dist/validated/BbSelect.vue.d.ts +0 -46
- package/dist/validated/BbSelect.vue.js +0 -5
- package/dist/validated/BbSelect.vue_vue_type_script_setup_true_lang.js +0 -109
- package/dist/validated/BbSlider.vue.d.ts +0 -36
- package/dist/validated/BbSlider.vue.js +0 -5
- package/dist/validated/BbSlider.vue_vue_type_script_setup_true_lang.js +0 -69
- package/dist/validated/BbSwitch.vue.d.ts +0 -29
- package/dist/validated/BbSwitch.vue.js +0 -5
- package/dist/validated/BbSwitch.vue_vue_type_script_setup_true_lang.js +0 -75
- package/dist/validated/BbSwitchGroup.vue.d.ts +0 -34
- package/dist/validated/BbSwitchGroup.vue.js +0 -5
- package/dist/validated/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +0 -82
- package/dist/validated/BbTag.vue.d.ts +0 -36
- package/dist/validated/BbTag.vue.js +0 -5
- package/dist/validated/BbTag.vue_vue_type_script_setup_true_lang.js +0 -72
- package/dist/validated/BbTextInput.vue.d.ts +0 -36
- package/dist/validated/BbTextInput.vue.js +0 -5
- package/dist/validated/BbTextInput.vue_vue_type_script_setup_true_lang.js +0 -72
- package/dist/validated/BbTextarea.vue.d.ts +0 -36
- package/dist/validated/BbTextarea.vue.js +0 -5
- package/dist/validated/BbTextarea.vue_vue_type_script_setup_true_lang.js +0 -70
- package/dist/validated/BbTimePickerInput.vue.d.ts +0 -37
- package/dist/validated/BbTimePickerInput.vue.js +0 -5
- package/dist/validated/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +0 -81
- package/dist/validated/index.d.ts +0 -43
- package/dist/validated/useValidatedField.d.ts +0 -93
- package/dist/validated/useValidatedField.js +0 -51
- package/dist/validated.js +0 -21
- /package/dist/components/{BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue.d.ts → BbCalendar/CalendarMonthPanel.vue.d.ts} +0 -0
- /package/dist/components/{BbBaseDatePicker/BbBaseDatePickerYearSelector.vue.d.ts → BbCalendar/CalendarYearPanel.vue.d.ts} +0 -0
- /package/dist/{components/BbBaseDatePicker/typeahead.d.ts → composables/useTypeahead.d.ts} +0 -0
- /package/dist/{components/BbBaseDatePicker/typeahead.js → composables/useTypeahead.js} +0 -0
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { BbBaseButtonProps } from '../BbBaseButton/types';
|
|
2
|
+
import { PtItemCtx, PtItemMap, PtItemResult, PtValue } from '../../types/passthrough';
|
|
2
3
|
import { Placement } from '../../types/Placement';
|
|
3
4
|
import { IconType } from '../../types/Icon';
|
|
4
5
|
import { DropdownItemVariantType } from '../../types/DropdownItemVariant';
|
|
5
6
|
import { BbOffCanvasProps } from '../BbOffCanvas/types';
|
|
7
|
+
import { ItemProps } from '../../types/ItemProps';
|
|
6
8
|
export type { DropdownItemVariantType };
|
|
7
9
|
export type DropdownTrigger = 'click' | 'contextMenu';
|
|
8
10
|
/**
|
|
@@ -12,15 +14,33 @@ export type DropdownTrigger = 'click' | 'contextMenu';
|
|
|
12
14
|
*/
|
|
13
15
|
type DropdownEntryBase = {
|
|
14
16
|
/**
|
|
15
|
-
* Icon to be displayed after the text.
|
|
16
|
-
* submenu (
|
|
17
|
+
* Icon to be displayed after the text. Not shown when the item opens a
|
|
18
|
+
* submenu (the chevron is), when it is the selected row of a selectable
|
|
19
|
+
* group (the check is), or when an append slot fills the region.
|
|
17
20
|
*/
|
|
18
21
|
'append:icon'?: IconType;
|
|
19
22
|
/**
|
|
20
|
-
* Key used to identify the entry.
|
|
21
|
-
*
|
|
23
|
+
* Key used to identify the entry. REQUIRED when anything outside the menu
|
|
24
|
+
* reads it: a row in a `selectable` group (the v-model holds it), a row or
|
|
25
|
+
* group with its own slot (`#<key>` is named by it), a group bound by a
|
|
26
|
+
* `<BbDropdownGroup id>` or selectable. Optional on a plain action row (it
|
|
27
|
+
* runs its `onClick`) and a layout-only group: the dropdown then derives an
|
|
28
|
+
* internal identity from the text that nothing outside ever sees. A keyless
|
|
29
|
+
* row in a selectable group renders but can't be selected. Load-bearing
|
|
30
|
+
* identifiers are written, never derived — `bitboss-ui check` flags a
|
|
31
|
+
* missing required key where the items are in the same file.
|
|
22
32
|
*/
|
|
23
|
-
key
|
|
33
|
+
key?: string;
|
|
34
|
+
/** @internal Set by the dropdown on a row it derived a key for (Q53.17). */
|
|
35
|
+
keyless?: true;
|
|
36
|
+
/**
|
|
37
|
+
* Your own data for this entry, carried untouched to its slots (as
|
|
38
|
+
* `item.meta`) and to per-item `pt` functions. The dropdown never reads it
|
|
39
|
+
* and never puts it on the DOM. Typically the record the entry stands for,
|
|
40
|
+
* e.g. `{ key: clinic.id, text: clinic.name, meta: clinic }`; a fetched
|
|
41
|
+
* group sets it through `itemProps` (`(clinic) => ({ meta: clinic })`).
|
|
42
|
+
*/
|
|
43
|
+
meta?: any;
|
|
24
44
|
/** Click handler. */
|
|
25
45
|
onClick?: (...args: any[]) => any;
|
|
26
46
|
/** Icon to be displayed before the text. */
|
|
@@ -33,6 +53,22 @@ type DropdownEntryBase = {
|
|
|
33
53
|
*/
|
|
34
54
|
variant?: DropdownItemVariantType;
|
|
35
55
|
};
|
|
56
|
+
/**
|
|
57
|
+
* The `itemProps` fields of a fetched (pipeline) dropdown group: everything a
|
|
58
|
+
* hand-written row accepts except its identity and structure (`key`, `text`,
|
|
59
|
+
* `items`, `group`) and `disabled`. See {@link InternalGroup.itemProps}.
|
|
60
|
+
*/
|
|
61
|
+
export type DropdownItemFields = Omit<BbBaseButtonProps, 'block' | 'tag' | 'type' | 'text' | 'disabled'> & Omit<DropdownEntryBase, 'key'> & {
|
|
62
|
+
/** Muted second line under the row text. */
|
|
63
|
+
description: string;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* `itemProps` of a fetched (pipeline) dropdown group — the ADDITIONAL fields of
|
|
67
|
+
* each fetched row (never its text or value). Public: type a standalone mapper
|
|
68
|
+
* with it, e.g.
|
|
69
|
+
* `const memberProps: BbDropdownItemProps<Member> = { description: 'email' }`.
|
|
70
|
+
*/
|
|
71
|
+
export type BbDropdownItemProps<T = any> = ItemProps<T, DropdownItemFields>;
|
|
36
72
|
/**
|
|
37
73
|
* A single actionable menu entry. Extends BbBaseButton (minus layout props) and
|
|
38
74
|
* can open a recursive submenu via `items`.
|
|
@@ -89,11 +125,18 @@ export type InternalItem = Omit<BbBaseButtonProps, 'block' | 'tag' | 'type'> & S
|
|
|
89
125
|
multiple?: never;
|
|
90
126
|
/**
|
|
91
127
|
* Marks a synthetic placeholder row produced for a pipeline group while its
|
|
92
|
-
* async items load (`'loading'`) or when it resolved empty (`'
|
|
128
|
+
* async items load (`'loading'`) or when it resolved empty (`'empty'`).
|
|
93
129
|
* Rendered as a non-interactive row that shows `text` or, when provided, the
|
|
94
|
-
* dropdown's `loading` / `
|
|
130
|
+
* dropdown's `loading` / `empty` slot. Internal — set by `BbDropdownGroup`.
|
|
131
|
+
*/
|
|
132
|
+
placeholder?: 'loading' | 'empty';
|
|
133
|
+
/**
|
|
134
|
+
* Marks a row built by the pipeline resolver from a fetched item. Its
|
|
135
|
+
* `selectable` predicate already ran against the RAW item there, so
|
|
136
|
+
* `normalizeGroups` must not run it again against this row object.
|
|
137
|
+
* Internal.
|
|
95
138
|
*/
|
|
96
|
-
|
|
139
|
+
fetched?: true;
|
|
97
140
|
/**
|
|
98
141
|
* Optional slot token used to resolve per-item named slots. Primarily set
|
|
99
142
|
* by the pipeline resolver so slot names can be derived from the resolved
|
|
@@ -167,12 +210,36 @@ export type InternalGroup = DropdownEntryBase & {
|
|
|
167
210
|
/**
|
|
168
211
|
* Pipeline groups only. Path/getter producing each item's display text.
|
|
169
212
|
* Defaults to `JSON.stringify(item)` (or the string itself for strings).
|
|
213
|
+
*
|
|
214
|
+
* @defaultValue `JSON.stringify(item)`
|
|
170
215
|
*/
|
|
171
216
|
itemText?: string | ((item: any) => string);
|
|
217
|
+
/**
|
|
218
|
+
* Pipeline groups only. The ADDITIONAL fields of each fetched row — never its
|
|
219
|
+
* text or value, which stay on `itemText` / `itemValue`. A fetched row takes
|
|
220
|
+
* every field a hand-written row accepts except its identity and structure
|
|
221
|
+
* (`key`, `text`, `items`, `group`) and `disabled`: `description`, the icons,
|
|
222
|
+
* `variant`, `onClick`, `href` / `to` and the rest of the link and Inertia
|
|
223
|
+
* options.
|
|
224
|
+
*
|
|
225
|
+
* Either an object with a path or getter per field
|
|
226
|
+
* (`{ description: 'email', href: 'url' }`) or one function returning the
|
|
227
|
+
* fields (`(user) => ({ description: user.email, href: user.url })`). In
|
|
228
|
+
* the object form a function is always a getter, so a handler field returns
|
|
229
|
+
* the handler: `onClick: (user) => () => open(user)`.
|
|
230
|
+
*
|
|
231
|
+
* Nothing is read off the raw item implicitly — without `itemProps` a row
|
|
232
|
+
* has only its text. An empty value means the field is absent. To disable
|
|
233
|
+
* individual rows use a `selectable` predicate on the group; fetched groups
|
|
234
|
+
* are for selection (see plans/ITEM-DESCRIPTION.md v2.4).
|
|
235
|
+
*/
|
|
236
|
+
itemProps?: BbDropdownItemProps;
|
|
172
237
|
/**
|
|
173
238
|
* Pipeline groups only. Path/getter producing each item's value — what
|
|
174
239
|
* `v-model` surfaces; its hash is the internal selection key. Defaults to the
|
|
175
240
|
* whole item (so the key is the hash of the entire object).
|
|
241
|
+
*
|
|
242
|
+
* @defaultValue the whole item
|
|
176
243
|
*/
|
|
177
244
|
itemValue?: string | ((item: any) => any);
|
|
178
245
|
/** Pipeline groups only. Placeholder row text while async items load. */
|
|
@@ -187,11 +254,14 @@ export type InternalGroup = DropdownEntryBase & {
|
|
|
187
254
|
* predictable size regardless of row content. A `number` is pixels; a `string`
|
|
188
255
|
* is any CSS length (`'50vh'`, `'20rem'`). `'none'` (or `0`) removes the cap.
|
|
189
256
|
*
|
|
190
|
-
* `searchable` groups default to `280` (≈ 10 rows of 28px)
|
|
191
|
-
* list is usually long; set your own value to tweak, or
|
|
192
|
-
*
|
|
257
|
+
* `searchable` groups default to `280` (≈ 10 rows of 28px) **on the flyout**,
|
|
258
|
+
* since a searched list is usually long; set your own value to tweak, or
|
|
259
|
+
* `'none'` to uncap. The adaptive sheet ignores the cap so the OffCanvas
|
|
260
|
+
* body stays the only scroller (nested group overflow trapped swipes that
|
|
261
|
+
* started on a row). Non-searchable flyout groups are uncapped unless you
|
|
262
|
+
* set this.
|
|
193
263
|
*
|
|
194
|
-
* @defaultValue `280` for `searchable` groups, otherwise unset
|
|
264
|
+
* @defaultValue `280` for `searchable` flyout groups, otherwise unset
|
|
195
265
|
*/
|
|
196
266
|
maxHeight?: number | string;
|
|
197
267
|
/**
|
|
@@ -200,8 +270,17 @@ export type InternalGroup = DropdownEntryBase & {
|
|
|
200
270
|
* @defaultValue `false`
|
|
201
271
|
*/
|
|
202
272
|
multiple?: boolean;
|
|
273
|
+
/**
|
|
274
|
+
* Single selectable groups only: re-clicking the selected row clears the
|
|
275
|
+
* group (`item:unselected`, `v-model` → `null`). Without it a single group
|
|
276
|
+
* behaves like a radio group, and a re-click keeps the pick. Means nothing
|
|
277
|
+
* on a `multiple` group, where a checkbox always unchecks.
|
|
278
|
+
*
|
|
279
|
+
* @defaultValue `false`
|
|
280
|
+
*/
|
|
281
|
+
clearable?: boolean;
|
|
203
282
|
/** Pipeline groups only. Placeholder row text when there are no items. */
|
|
204
|
-
|
|
283
|
+
emptyText?: string;
|
|
205
284
|
/**
|
|
206
285
|
* Pipeline groups only. When the group's async items are fetched — same
|
|
207
286
|
* three-state contract as `BbSelect`'s `prefill`:
|
|
@@ -228,10 +307,20 @@ export type InternalGroup = DropdownEntryBase & {
|
|
|
228
307
|
/** Placeholder for this group's search field. Defaults to the localized label. */
|
|
229
308
|
searchPlaceholder?: string;
|
|
230
309
|
/**
|
|
231
|
-
* When
|
|
232
|
-
*
|
|
310
|
+
* When set, items act as selectable options that render a check on the right
|
|
311
|
+
* and keep the menu open when toggled.
|
|
312
|
+
*
|
|
313
|
+
* Pass a function `(item) => boolean` to gate individual rows — the same
|
|
314
|
+
* contract as `BbSelect` and the option groups. The group is still a
|
|
315
|
+
* selectable group; a row the function rejects renders disabled (clicks do
|
|
316
|
+
* nothing, keyboard navigation skips it), and the lock holds on a row that is
|
|
317
|
+
* already selected. `max` stays a soft cap on top. The function receives the
|
|
318
|
+
* raw fetched item in a fetched group, the row object in a hand-written one.
|
|
319
|
+
*
|
|
320
|
+
* This is how a fetched row is disabled: fetched groups are for selection, so
|
|
321
|
+
* their `itemProps` has no `disabled` (see the guide).
|
|
233
322
|
*/
|
|
234
|
-
selectable?: boolean;
|
|
323
|
+
selectable?: boolean | ((item: any) => boolean);
|
|
235
324
|
/**
|
|
236
325
|
* Searchable pipeline groups only. Accumulate the items behind *selected* keys
|
|
237
326
|
* so they stay resolvable across searches. Without it, selecting an item in one
|
|
@@ -282,23 +371,43 @@ export type FlatItem<T> = T extends Array<infer U> ? U : T;
|
|
|
282
371
|
* item's `items` is a submenu array). Without this last case such an entry would
|
|
283
372
|
* be treated as a plain item and its function `items` iterated ("not iterable").
|
|
284
373
|
*/
|
|
374
|
+
/**
|
|
375
|
+
* Whether a declared group is selectable: `selectable` set (a boolean, or a
|
|
376
|
+
* predicate — which counts as `true`), or `multiple` given an explicit value.
|
|
377
|
+
* Both unset ⇒ non-selectable. Value-based, not key presence: companion merges
|
|
378
|
+
* write `multiple: undefined` keys that must not read as selectable.
|
|
379
|
+
*/
|
|
380
|
+
export declare const isSelectableGroup: (entry: Pick<InternalGroup, "selectable" | "multiple">) => boolean;
|
|
381
|
+
/** The group's per-row `selectable` predicate, when it passed one. */
|
|
382
|
+
export declare const selectablePredicateOf: (entry: Pick<InternalGroup, "selectable">) => ((item: any) => boolean) | undefined;
|
|
285
383
|
export declare const isGroup: (entry: Item) => entry is InternalGroup;
|
|
286
384
|
/**
|
|
287
385
|
* A group after normalization: anonymous arrays and loose items become
|
|
288
386
|
* non-selectable groups; {@link InternalGroup} objects keep their metadata. Selection
|
|
289
387
|
* defaults are resolved here. Produced by `normalizeGroups`.
|
|
290
388
|
*/
|
|
389
|
+
/**
|
|
390
|
+
* A row after normalization: its `key` is always set — the consumer's, or one
|
|
391
|
+
* the dropdown derived for a keyless action row (`keyless`, Q53.17).
|
|
392
|
+
*/
|
|
393
|
+
export type KeyedItem = InternalItem & {
|
|
394
|
+
key: string;
|
|
395
|
+
};
|
|
291
396
|
export type NormalizedGroup = {
|
|
292
397
|
'append:icon'?: IconType;
|
|
398
|
+
/** Single groups: a re-click on the selected row clears it. */
|
|
399
|
+
clearable?: boolean;
|
|
293
400
|
/** Whether a divider is rendered before this group. */
|
|
294
401
|
divider: boolean;
|
|
295
402
|
/** Keys matched against each raw item when searching (empty ⇒ match text). */
|
|
296
403
|
filterBy?: string[];
|
|
297
|
-
items:
|
|
404
|
+
items: KeyedItem[];
|
|
298
405
|
/** Group key (when it originated from a {@link InternalGroup} object). */
|
|
299
406
|
key?: string;
|
|
300
407
|
/** Fixed max-height (px number or CSS length) of this group's item region. */
|
|
301
408
|
maxHeight?: number | string;
|
|
409
|
+
/** The group's own `meta`, untouched. */
|
|
410
|
+
meta?: any;
|
|
302
411
|
multiple: boolean;
|
|
303
412
|
onClick?: (...args: any[]) => any;
|
|
304
413
|
'prepend:icon'?: IconType;
|
|
@@ -325,7 +434,68 @@ export type MappedItem = InternalItem & {
|
|
|
325
434
|
*/
|
|
326
435
|
onKeydown: (event: KeyboardEvent) => void;
|
|
327
436
|
};
|
|
437
|
+
/**
|
|
438
|
+
* Passthrough parts of `BbDropdown` (plans/passthrough/BbDropdown.md). Groups,
|
|
439
|
+
* headings and dividers are not parts.
|
|
440
|
+
*
|
|
441
|
+
* Per-item functions: on the instance, an entry part (`item`, `itemText`, `itemIcon`, `itemDescription`) also accepts `({ item, selected, … }) => PtValue | false | null | undefined` — `item` is the menu entry (an `Item`: its `text`, `key`, `description`, whatever else you put on it), and every state a boolean beside it, on for it (`selected`, `disabled`, …) — in the `pt` object or the `:pt:<part>` attribute, never on a `<part>:<state>` key and never in the global map or a scope (they ship as JSON). Its result is merged last, after every state entry, through the same deduper; a falsy result leaves the entry as it was. See the passthrough guide, _Per-item functions_.
|
|
442
|
+
*
|
|
443
|
+
* @part root - The floating element — an invisible positioning wrapper; a
|
|
444
|
+
* `class` on the component lands here. No node on the phone sheet: style
|
|
445
|
+
* what you see with `panel`.
|
|
446
|
+
* @part panel - The menu surface you see — the bordered flyout box on
|
|
447
|
+
* desktop, the sheet itself on a phone.
|
|
448
|
+
* @part sheet - The bottom sheet the menu becomes on a phone (the
|
|
449
|
+
* `BbOffCanvas` root) — never the desktop surface. Applied after `panel`, so it wins a conflict there.
|
|
450
|
+
* @part header - The menu's header band.
|
|
451
|
+
* @part footer - The menu's footer band.
|
|
452
|
+
* @part input - A searchable group's search field — a broadcast: it lands on
|
|
453
|
+
* every searchable group's field, desktop and phone alike. Its magnifier
|
|
454
|
+
* glyph is chrome.
|
|
455
|
+
* @part list - The top-level items container between the bands — the node
|
|
456
|
+
* that lays the entries out (a flex column with a 1px gap; on a phone, the
|
|
457
|
+
* sheet's items container). A submenu's list is not reached. Groups,
|
|
458
|
+
* headings and dividers are not parts.
|
|
459
|
+
* @part item - One menu entry, submenus included — a broadcast resolved per
|
|
460
|
+
* entry. Also takes a per-item function, called with the entry.
|
|
461
|
+
* @part itemText - An entry's label (its `text`) — resolved with that
|
|
462
|
+
* entry's states. A per-entry `#<key>` slot replaces it. Also takes a
|
|
463
|
+
* per-item function.
|
|
464
|
+
* @part itemIcon - An entry's prepend / append icons — resolved with that
|
|
465
|
+
* entry's states. Also takes a per-item function.
|
|
466
|
+
* @part itemDescription - An entry's muted second line (its `description`) —
|
|
467
|
+
* resolved with that entry's states. A per-entry `#<key>` slot replaces it.
|
|
468
|
+
* Also takes a per-item function.
|
|
469
|
+
*/
|
|
470
|
+
export type BbDropdownPtPart = 'root' | 'panel' | 'sheet' | 'header' | 'footer' | 'input' | 'list' | 'item' | 'itemText' | 'itemIcon' | 'itemDescription';
|
|
471
|
+
/** The surface parts — they take a `PtValue` only. Spelled flat (T20). */
|
|
472
|
+
export type BbDropdownSurfacePtPart = 'root' | 'panel' | 'sheet' | 'header' | 'footer' | 'input' | 'list';
|
|
473
|
+
/** The entry parts — broadcasts resolved per entry; their base key also takes a per-item function. Spelled flat (T20). */
|
|
474
|
+
export type BbDropdownItemPtPart = 'item' | 'itemText' | 'itemIcon' | 'itemDescription';
|
|
475
|
+
/**
|
|
476
|
+
* Passthrough states of `BbDropdown`, true while the matching `--` modifier is on.
|
|
477
|
+
*
|
|
478
|
+
* @state selected - Per node, on the entry parts: a selectable group's
|
|
479
|
+
* checked entry.
|
|
480
|
+
* @state disabled - Per node, on the entry parts: an entry that is disabled.
|
|
481
|
+
* @state open - Component-wide: the menu is open.
|
|
482
|
+
*/
|
|
483
|
+
export type BbDropdownPtState = 'open' | 'selected' | 'disabled';
|
|
484
|
+
/** The runtime lists the resolver is wired with — kept next to the types so the two cannot drift. */
|
|
485
|
+
export declare const BB_DROPDOWN_PT: {
|
|
486
|
+
readonly parts: readonly ["root", "panel", "sheet", "header", "footer", "input", "list", "item", "itemText", "itemIcon", "itemDescription"];
|
|
487
|
+
readonly states: readonly ["selected", "disabled", "open"];
|
|
488
|
+
};
|
|
328
489
|
export type BbDropdownProps = {
|
|
490
|
+
[K in `pt:${BbDropdownSurfacePtPart}` | `pt:${BbDropdownPtPart}:${BbDropdownPtState}`]?: PtValue;
|
|
491
|
+
} & {
|
|
492
|
+
[K in `pt:${BbDropdownItemPtPart}`]?: PtValue | ((ctx: PtItemCtx<InternalItem, BbDropdownPtState>) => PtItemResult);
|
|
493
|
+
} & {
|
|
494
|
+
/**
|
|
495
|
+
* Passthrough, object form: the same keys as the `pt:*` attributes
|
|
496
|
+
* without the prefix. See the `pt:<part>` row.
|
|
497
|
+
*/
|
|
498
|
+
pt?: PtItemMap<BbDropdownPtPart, BbDropdownItemPtPart, BbDropdownPtState, InternalItem>;
|
|
329
499
|
/**
|
|
330
500
|
* External activator element or component ref.
|
|
331
501
|
* When provided, the activator slot is not rendered and event listeners
|
|
@@ -345,6 +515,17 @@ export type BbDropdownProps = {
|
|
|
345
515
|
* @defaultValue `config.adaptive` (`true`)
|
|
346
516
|
*/
|
|
347
517
|
adaptive?: boolean;
|
|
518
|
+
/**
|
|
519
|
+
* Apply the compact density variant — the same ladder `BbSelect` uses, on
|
|
520
|
+
* both surfaces: flyout rows go 28px → 24px, sheet rows 44px → 36px. The
|
|
521
|
+
* label size does not change; density here is height, as it is for a select.
|
|
522
|
+
*
|
|
523
|
+
* A menu row is a touch target in a way a select option is not quite — a
|
|
524
|
+
* mis-tap fires the neighbouring COMMAND rather than picking the wrong value
|
|
525
|
+
* — so the compact sheet stops at 36px and never follows the flyout down to
|
|
526
|
+
* 24px. That is the same floor the select's sheet holds.
|
|
527
|
+
*/
|
|
528
|
+
compact?: boolean;
|
|
348
529
|
/**
|
|
349
530
|
* Element the panel positions itself against, when it should differ from the
|
|
350
531
|
* activator — e.g. a wrapper that the activator is only a part of, so the menu
|
|
@@ -376,7 +557,9 @@ export type BbDropdownProps = {
|
|
|
376
557
|
*/
|
|
377
558
|
enforceCoherence?: boolean;
|
|
378
559
|
/**
|
|
379
|
-
*
|
|
560
|
+
* Names this dropdown: the activator's id (unless it already has one),
|
|
561
|
+
* the menu's `menu_<id>`, and the key `useBbDropdownContext(id)` and a
|
|
562
|
+
* companion `BbDropdownGroup` pair by. Generated when omitted.
|
|
380
563
|
*/
|
|
381
564
|
id?: string;
|
|
382
565
|
/**
|
|
@@ -399,21 +582,31 @@ export type BbDropdownProps = {
|
|
|
399
582
|
loadingText?: string;
|
|
400
583
|
/**
|
|
401
584
|
* Default placeholder text shown when a pipeline group resolves to no items.
|
|
402
|
-
* A group's own `
|
|
403
|
-
* `common.
|
|
585
|
+
* A group's own `emptyText` overrides this; both fall back to the localized
|
|
586
|
+
* `common.emptyText` (`'No data to display'`).
|
|
404
587
|
*/
|
|
405
|
-
|
|
588
|
+
emptyText?: string;
|
|
406
589
|
/**
|
|
590
|
+
* Props for the phone sheet. A `pt` inside it, object or colon keys, styles
|
|
591
|
+
* only that sheet.
|
|
592
|
+
*
|
|
407
593
|
* Overrides forwarded to the underlying `BbOffCanvas` when `adaptive` renders
|
|
408
594
|
* the sheet on mobile. Merged over the adaptive defaults
|
|
409
|
-
* (`
|
|
595
|
+
* (`side: 'bottom'`, `size: 'auto'`, `draggable: true`). Ignored when
|
|
410
596
|
* `adaptive` is `false`.
|
|
597
|
+
*
|
|
598
|
+
* A `pt` inside it styles ONLY the sheet, in `BbOffCanvas`'s part words
|
|
599
|
+
* (`root`, `header`, `title`, `description`, `content`, `footer`, `close`;
|
|
600
|
+
* state `open`), object (`{ pt: { header: '…' } }`) or colon keys
|
|
601
|
+
* (`{ 'pt:header': '…' }`) alike. It merges after what this component
|
|
602
|
+
* forwards to its sheet, so it wins a conflict and drops nothing — see the
|
|
603
|
+
* passthrough guide § Inside the sheet.
|
|
411
604
|
*/
|
|
412
605
|
offCanvasProps?: Partial<BbOffCanvasProps>;
|
|
413
606
|
/**
|
|
414
607
|
* Space the floating container will maintain from the activator.
|
|
415
608
|
*
|
|
416
|
-
* @defaultValue `
|
|
609
|
+
* @defaultValue `4`
|
|
417
610
|
*/
|
|
418
611
|
offset?: number;
|
|
419
612
|
/**
|
|
@@ -424,7 +617,8 @@ export type BbDropdownProps = {
|
|
|
424
617
|
padding?: number;
|
|
425
618
|
/**
|
|
426
619
|
* Position of the dropdown relative to the activator.
|
|
427
|
-
* Use `'cursor'` to anchor at the mouse/touch coordinates
|
|
620
|
+
* Use `'cursor'` to anchor at the mouse/touch coordinates.
|
|
621
|
+
* (No arrow is drawn either way — arrows are tooltip-only in v3.)
|
|
428
622
|
*
|
|
429
623
|
* @defaultValue `'bottom'`
|
|
430
624
|
*/
|
|
@@ -438,7 +632,9 @@ export type BbDropdownProps = {
|
|
|
438
632
|
queryDebounceTime?: number;
|
|
439
633
|
/**
|
|
440
634
|
* How long the transition has to last in milliseconds. Menus use the fast
|
|
441
|
-
* transition rather than the medium one the other popovers
|
|
635
|
+
* transition (150) rather than the medium one (250) the other popovers
|
|
636
|
+
* default to: a menu is opened to pick one command and is gone again, so
|
|
637
|
+
* it answers faster than a panel the user reads or edits in.
|
|
442
638
|
*
|
|
443
639
|
* @defaultValue `150`
|
|
444
640
|
*/
|
|
@@ -460,6 +656,14 @@ export type BbDropdownProps = {
|
|
|
460
656
|
width?: number | string;
|
|
461
657
|
};
|
|
462
658
|
export type BbDropdownEvents = {
|
|
659
|
+
/** Emitted as soon as the menu (the popover, or the sheet on a phone) starts to open. */
|
|
660
|
+
(e: 'show'): void;
|
|
661
|
+
/** Emitted once the menu is open and its open transition has finished. */
|
|
662
|
+
(e: 'shown'): void;
|
|
663
|
+
/** Emitted as soon as the menu starts to close. */
|
|
664
|
+
(e: 'hide'): void;
|
|
665
|
+
/** Emitted once the menu has finished closing. */
|
|
666
|
+
(e: 'hidden'): void;
|
|
463
667
|
/**
|
|
464
668
|
* Fired when an item in any selectable group becomes selected. The payload is
|
|
465
669
|
* the item's resolved value (its `item-value` for pipeline groups, else its
|
|
@@ -502,12 +706,44 @@ export type BbDropdownEdgeSlotProps = {
|
|
|
502
706
|
/** The current placement of the dropdown panel. */
|
|
503
707
|
placement: BbDropdownProps['placement'];
|
|
504
708
|
};
|
|
709
|
+
/**
|
|
710
|
+
* The group a slot renders in, as item slots see it. Anonymous groups (loose
|
|
711
|
+
* items, plain arrays) have no `key` and no `label`.
|
|
712
|
+
*/
|
|
713
|
+
export type BbDropdownSlotGroup = {
|
|
714
|
+
/** The group's key, when it was declared as a group object. */
|
|
715
|
+
key?: string;
|
|
716
|
+
/** The group's label, when it has one (also when `hideLabel` hides it). */
|
|
717
|
+
label?: string;
|
|
718
|
+
/** The group's own `meta`. */
|
|
719
|
+
meta?: any;
|
|
720
|
+
/** Whether the group is multi-select. */
|
|
721
|
+
multiple: boolean;
|
|
722
|
+
/** Whether the group's rows are choices. */
|
|
723
|
+
selectable: boolean;
|
|
724
|
+
};
|
|
505
725
|
/** Props exposed by the `item:prepend` and `item:append` slots, and named item slots. */
|
|
506
726
|
export type BbDropdownItemSlotProps = {
|
|
507
727
|
/** The item's muted description line, when set. */
|
|
508
728
|
description?: InternalItem['description'];
|
|
509
729
|
/** Whether this item is disabled. */
|
|
510
730
|
disabled?: InternalItem['disabled'];
|
|
731
|
+
/**
|
|
732
|
+
* The group this row sits in. On a group's title line (`groupTitle`), the
|
|
733
|
+
* group itself.
|
|
734
|
+
*/
|
|
735
|
+
group: BbDropdownSlotGroup;
|
|
736
|
+
/**
|
|
737
|
+
* `true` when the slot is drawing a group's title line rather than a row.
|
|
738
|
+
* The shared `item:prepend` / `item:append` slots run for both, with the
|
|
739
|
+
* group passed as `item` on a title line.
|
|
740
|
+
*/
|
|
741
|
+
groupTitle: boolean;
|
|
742
|
+
/**
|
|
743
|
+
* Nesting depth of the menu the slot renders in: `0` for the root menu,
|
|
744
|
+
* `1` for a submenu, and so on — the same on the flyout and the phone sheet.
|
|
745
|
+
*/
|
|
746
|
+
level: number;
|
|
511
747
|
/** The zero-based index of this item among the flattened items. */
|
|
512
748
|
index: number;
|
|
513
749
|
/** The raw item object from the `items` prop. */
|
|
@@ -526,13 +762,32 @@ export type BbDropdownItemSlotProps = {
|
|
|
526
762
|
/** The resolved display text for this item. */
|
|
527
763
|
text: InternalItem['text'];
|
|
528
764
|
};
|
|
529
|
-
/** Props exposed by the `loading` and `
|
|
765
|
+
/** Props exposed by the `loading` and `empty` placeholder slots. */
|
|
530
766
|
export type BbDropdownPlaceholderSlotProps = {
|
|
531
767
|
/** Key of the group this placeholder belongs to. */
|
|
532
768
|
groupKey?: string;
|
|
533
|
-
/** Resolved placeholder text (group `loadingText`/`
|
|
769
|
+
/** Resolved placeholder text (group `loadingText`/`emptyText` → dropdown default). */
|
|
534
770
|
text: string;
|
|
535
771
|
};
|
|
772
|
+
/**
|
|
773
|
+
* Besides the fixed slots, every entry gets named slots from its key run
|
|
774
|
+
* through `slotKey` (`'practice-switcher'` → `practice_switcher`). The most
|
|
775
|
+
* specific slot a row has wins: its own, then its group's, then the shared
|
|
776
|
+
* `item:prepend` / `item:append`. Each edge has ONE occupant: a slot replaces
|
|
777
|
+
* the `prepend:icon` / `append:icon`. On the trailing edge the selected row's
|
|
778
|
+
* check beats every slot, a row's own `#<key>:append` beats the submenu
|
|
779
|
+
* chevron, and the chevron beats the group-wide and shared slots.
|
|
780
|
+
*
|
|
781
|
+
* @dynamicSlot `<key>` {BbDropdownItemSlotProps} - One row's content (text and description), by its key; in a fetched group, by its resolved `itemValue`.
|
|
782
|
+
* @dynamicSlot `<key>:prepend` {BbDropdownItemSlotProps} - One row's leading region; replaces its `prepend:icon`.
|
|
783
|
+
* @dynamicSlot `<key>:append` {BbDropdownItemSlotProps} - One row's trailing region; replaces its `append:icon` and its submenu chevron. The check takes its place on the selected row.
|
|
784
|
+
* @dynamicSlot `<groupKey>:item` {BbDropdownItemSlotProps} - The content of every row of that group, and no other; a row's own `#<key>` still wins.
|
|
785
|
+
* @dynamicSlot `<groupKey>:item:prepend` {BbDropdownItemSlotProps} - The leading region of every row of that group — e.g. an avatar per record, drawn from `item.meta`, while other rows keep their `prepend:icon`.
|
|
786
|
+
* @dynamicSlot `<groupKey>:item:append` {BbDropdownItemSlotProps} - The trailing region of every row of that group; replaces their `append:icon`. The check takes its place on the selected row.
|
|
787
|
+
* @dynamicSlot `<groupKey>` {BbDropdownItemSlotProps} - That group's title line (the group is passed as `item`, `groupTitle` is `true`).
|
|
788
|
+
* @dynamicSlot `<groupKey>:prepend` {BbDropdownItemSlotProps} - The leading region of that group's title line.
|
|
789
|
+
* @dynamicSlot `<groupKey>:append` {BbDropdownItemSlotProps} - The trailing region of that group's title line.
|
|
790
|
+
*/
|
|
536
791
|
export type BbDropdownSlots = {
|
|
537
792
|
/**
|
|
538
793
|
* Hosts `<BbDropdownGroup>` companions. They register their group with the
|
|
@@ -548,7 +803,7 @@ export type BbDropdownSlots = {
|
|
|
548
803
|
* Replaces the default "no data" placeholder row shown in a pipeline group
|
|
549
804
|
* that resolved to no items. Rendered once per empty group.
|
|
550
805
|
*/
|
|
551
|
-
|
|
806
|
+
empty?: (props: BbDropdownPlaceholderSlotProps) => any;
|
|
552
807
|
/**
|
|
553
808
|
* The element that triggers the dropdown to open. Spread `props` onto your trigger element.
|
|
554
809
|
*/
|
|
@@ -560,11 +815,14 @@ export type BbDropdownSlots = {
|
|
|
560
815
|
*/
|
|
561
816
|
header?: (props: BbDropdownEdgeSlotProps) => any;
|
|
562
817
|
/**
|
|
563
|
-
*
|
|
818
|
+
* The leading region of every row (and group title line), replacing its
|
|
819
|
+
* `prepend:icon`. A row's own or its group's named slot wins over it.
|
|
564
820
|
*/
|
|
565
821
|
'item:prepend'?: (props: BbDropdownItemSlotProps) => any;
|
|
566
822
|
/**
|
|
567
|
-
*
|
|
823
|
+
* The trailing region of every row (and group title line), replacing its
|
|
824
|
+
* `append:icon`. A named slot wins over it; the submenu chevron and the
|
|
825
|
+
* check on a selected row take its place.
|
|
568
826
|
*/
|
|
569
827
|
'item:append'?: (props: BbDropdownItemSlotProps) => any;
|
|
570
828
|
/**
|
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
//#region src/components/BbDropdown/types.ts
|
|
2
|
-
var e = (e) => Array.isArray(e) ? e : [], t = (e) => !Array.isArray(e) && (e.group === !0 || "selectable" in e || "multiple" in e || typeof e.items == "function")
|
|
2
|
+
var e = (e) => Array.isArray(e) ? e : [], t = (e) => e.selectable == null ? e.multiple != null : !!e.selectable, n = (e) => typeof e.selectable == "function" ? e.selectable : void 0, r = (e) => !Array.isArray(e) && (e.group === !0 || "selectable" in e || "multiple" in e || typeof e.items == "function"), i = {
|
|
3
|
+
parts: [
|
|
4
|
+
"root",
|
|
5
|
+
"panel",
|
|
6
|
+
"sheet",
|
|
7
|
+
"header",
|
|
8
|
+
"footer",
|
|
9
|
+
"input",
|
|
10
|
+
"list",
|
|
11
|
+
"item",
|
|
12
|
+
"itemText",
|
|
13
|
+
"itemIcon",
|
|
14
|
+
"itemDescription"
|
|
15
|
+
],
|
|
16
|
+
states: [
|
|
17
|
+
"selected",
|
|
18
|
+
"disabled",
|
|
19
|
+
"open"
|
|
20
|
+
]
|
|
21
|
+
};
|
|
3
22
|
//#endregion
|
|
4
|
-
export { e as groupItemsAsArray,
|
|
23
|
+
export { i as BB_DROPDOWN_PT, e as groupItemsAsArray, r as isGroup, t as isSelectableGroup, n as selectablePredicateOf };
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import { ComputedRef, Ref, Slots } from 'vue';
|
|
2
|
-
import { BbDropdownProps,
|
|
2
|
+
import { BbDropdownProps, KeyedItem, NormalizedGroup, BbDropdownPtPart, BbDropdownPtState } from './types';
|
|
3
|
+
import { PassthroughBindings } from '../../composables/usePassthrough';
|
|
3
4
|
/**
|
|
4
5
|
* Shared state and actions published by `BbDropdown` to every (recursive)
|
|
5
6
|
* `BbDropdownList`. Passing it through provide/inject keeps the recursive
|
|
6
7
|
* panel free of prop-drilling across submenu levels.
|
|
7
8
|
*/
|
|
8
9
|
export type DropdownContext = {
|
|
10
|
+
/**
|
|
11
|
+
* The dropdown's passthrough resolver: the lists resolve `item` (and its `itemText` / `itemIcon` / `itemDescription`) per entry
|
|
12
|
+
* with `part()`, the adaptive sheet forwards `root` / `header` / `footer`.
|
|
13
|
+
*/
|
|
14
|
+
passthrough: PassthroughBindings<BbDropdownPtPart, BbDropdownPtState>;
|
|
9
15
|
/** Root component id, used to derive item ids and the activator selector. */
|
|
10
16
|
rootId: string;
|
|
11
17
|
/**
|
|
@@ -25,7 +31,7 @@ export type DropdownContext = {
|
|
|
25
31
|
/** Dropdown-level default placeholder text while a pipeline group loads. */
|
|
26
32
|
loadingText: ComputedRef<string | undefined>;
|
|
27
33
|
/** Dropdown-level default placeholder text when a pipeline group is empty. */
|
|
28
|
-
|
|
34
|
+
emptyText: ComputedRef<string | undefined>;
|
|
29
35
|
/** Dropdown-level default for pipeline-group selection coherence enforcement. */
|
|
30
36
|
enforceCoherence: ComputedRef<boolean | undefined>;
|
|
31
37
|
/** Live search query for a searchable group, by group key ('' when none). */
|
|
@@ -73,7 +79,7 @@ export type DropdownContext = {
|
|
|
73
79
|
* `item:selected`/`item:unselected` events and handling the top-level
|
|
74
80
|
* single-group radio auto-close.
|
|
75
81
|
*/
|
|
76
|
-
toggleSelect: (group: NormalizedGroup, item:
|
|
82
|
+
toggleSelect: (group: NormalizedGroup, item: KeyedItem) => void;
|
|
77
83
|
/** Whether `item`'s async `onClick` is currently in flight (per item key). */
|
|
78
84
|
isItemLoading: (key: string) => boolean;
|
|
79
85
|
/**
|
|
@@ -83,7 +89,7 @@ export type DropdownContext = {
|
|
|
83
89
|
* Without `close` (selectable items) the menu stays open and the item is
|
|
84
90
|
* flagged as loading until the handler settles.
|
|
85
91
|
*/
|
|
86
|
-
runItemAction: (item:
|
|
92
|
+
runItemAction: (item: KeyedItem, event: Event, options?: {
|
|
87
93
|
close?: boolean;
|
|
88
94
|
}) => Promise<void>;
|
|
89
95
|
/** `BbDropdown`'s slots, forwarded so any level can render named item slots. */
|
|
@@ -62,6 +62,7 @@ export type DropdownGroupRegistry = {
|
|
|
62
62
|
valueByKey: Map<string, any>;
|
|
63
63
|
itemByKey: Map<string, any>;
|
|
64
64
|
textByKey: Map<string, string>;
|
|
65
|
+
descriptionByKey: Map<string, string>;
|
|
65
66
|
} | null) => void;
|
|
66
67
|
/**
|
|
67
68
|
* Published by the internal pipeline resolver: whether a re-fetch is running
|
|
@@ -1,8 +1,23 @@
|
|
|
1
|
-
import { BbDropdownButtonProps, BbDropdownButtonSlots } from './types';
|
|
2
|
-
export type { BbDropdownButtonProps, BbDropdownButtonSlots };
|
|
1
|
+
import { BbDropdownButtonEvents, BbDropdownButtonProps, BbDropdownButtonSlots } from './types';
|
|
2
|
+
export type { BbDropdownButtonEvents, BbDropdownButtonProps, BbDropdownButtonSlots, };
|
|
3
3
|
type __VLS_Slots = BbDropdownButtonSlots;
|
|
4
|
-
declare const __VLS_base: import('vue').DefineComponent<BbDropdownButtonProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}
|
|
4
|
+
declare const __VLS_base: import('vue').DefineComponent<BbDropdownButtonProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
5
|
+
"item:selected": (value: any) => any;
|
|
6
|
+
"item:unselected": (value: any) => any;
|
|
7
|
+
show: () => any;
|
|
8
|
+
shown: () => any;
|
|
9
|
+
hide: () => any;
|
|
10
|
+
hidden: () => any;
|
|
11
|
+
}, string, import('vue').PublicProps, Readonly<BbDropdownButtonProps> & Readonly<{
|
|
12
|
+
"onItem:selected"?: ((value: any) => any) | undefined;
|
|
13
|
+
"onItem:unselected"?: ((value: any) => any) | undefined;
|
|
14
|
+
onShow?: (() => any) | undefined;
|
|
15
|
+
onShown?: (() => any) | undefined;
|
|
16
|
+
onHide?: (() => any) | undefined;
|
|
17
|
+
onHidden?: (() => any) | undefined;
|
|
18
|
+
}>, {
|
|
5
19
|
size: import('../..').Responsive<"sm" | "md" | "lg" | "xl" | "2xl" | "xs">;
|
|
20
|
+
adaptive: boolean;
|
|
6
21
|
variant: import('../..').ButtonVariantType;
|
|
7
22
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
8
23
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|