bitboss-ui 2.1.134 → 3.0.0-alpha.1
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/LICENSE +21 -0
- package/README.md +244 -21
- package/bin/bitboss-ui-mcp.mjs +557 -0
- package/bin/bitboss-ui.mjs +626 -0
- package/dist/ai/BbAccordion.md +522 -113
- package/dist/ai/BbAlert.md +377 -197
- package/dist/ai/BbAsterisk.md +46 -0
- package/dist/ai/BbAvatar.md +454 -178
- package/dist/ai/BbBadge.md +695 -225
- package/dist/ai/BbBadgeButton.md +54 -0
- package/dist/ai/BbBaseButton.md +489 -0
- package/dist/ai/BbBaseCheckbox.md +49 -0
- package/dist/ai/BbBaseCheckboxGroup.md +64 -0
- package/dist/ai/BbBaseCheckboxIcon.md +174 -0
- package/dist/ai/BbBaseColorInput.md +64 -0
- package/dist/ai/BbBaseColorPalette.md +39 -0
- package/dist/ai/BbBaseDatePicker.md +42 -0
- package/dist/ai/BbBaseDatePickerInput.md +73 -0
- package/dist/ai/BbBaseInputContainer.md +48 -0
- package/dist/ai/BbBaseNumberInput.md +71 -0
- package/dist/ai/BbBaseRadio.md +46 -0
- package/dist/ai/BbBaseRadioGroup.md +63 -0
- package/dist/ai/BbBaseRadioIcon.md +187 -0
- package/dist/ai/BbBaseRating.md +51 -0
- package/dist/ai/BbBaseSelect.md +88 -0
- package/dist/ai/BbBaseSlider.md +56 -0
- package/dist/ai/BbBaseSwitch.md +49 -0
- package/dist/ai/BbBaseSwitchGroup.md +64 -0
- package/dist/ai/BbBaseSwitchIcon.md +184 -0
- package/dist/ai/BbBaseTag.md +68 -0
- package/dist/ai/BbBaseTextInput.md +75 -0
- package/dist/ai/BbBaseTextarea.md +62 -0
- package/dist/ai/BbBaseTimePickerInput.md +62 -0
- package/dist/ai/BbBreadcrumbs.md +542 -503
- package/dist/ai/BbButton.md +767 -636
- package/dist/ai/BbCheckbox.md +572 -254
- package/dist/ai/BbCheckboxGroup.md +561 -361
- package/dist/ai/BbCollapsible.md +419 -103
- package/dist/ai/BbColorInput.md +529 -323
- package/dist/ai/BbColorPalette.md +565 -330
- package/dist/ai/BbConfirm.md +612 -136
- package/dist/ai/BbConfirmPortal.md +28 -0
- package/dist/ai/BbDatePicker.md +244 -0
- package/dist/ai/BbDatePickerInput.md +706 -388
- package/dist/ai/BbDialog.md +770 -99
- package/dist/ai/BbDropdown.md +1054 -763
- package/dist/ai/BbDropdownButton.md +511 -615
- package/dist/ai/BbDropdownGroup.md +34 -0
- package/dist/ai/BbDropzone.md +1148 -436
- package/dist/ai/BbForm.md +239 -0
- package/dist/ai/BbIcon.md +379 -212
- package/dist/ai/BbIndicator.md +283 -0
- package/dist/ai/BbNumberInput.md +713 -355
- package/dist/ai/BbOffCanvas.md +875 -498
- package/dist/ai/BbPagination.md +483 -535
- package/dist/ai/BbPopover.md +583 -546
- package/dist/ai/BbProgress.md +456 -69
- package/dist/ai/BbRadio.md +343 -229
- package/dist/ai/BbRadioGroup.md +426 -353
- package/dist/ai/BbRating.md +361 -226
- package/dist/ai/BbSelect.md +1380 -536
- package/dist/ai/BbSelectPopover.md +1240 -1579
- package/dist/ai/BbSlider.md +478 -257
- package/dist/ai/BbSmoothHeight.md +472 -139
- package/dist/ai/BbSpinner.md +718 -131
- package/dist/ai/BbSwitch.md +549 -119
- package/dist/ai/BbSwitchGroup.md +503 -214
- package/dist/ai/BbTable.md +1956 -2358
- package/dist/ai/BbTabs.md +1113 -0
- package/dist/ai/BbTabsList.md +29 -0
- package/dist/ai/BbTabsPanes.md +27 -0
- package/dist/ai/BbTabsRoot.md +57 -0
- package/dist/ai/BbTag.md +393 -292
- package/dist/ai/BbTextInput.md +852 -333
- package/dist/ai/BbTextarea.md +836 -255
- package/dist/ai/BbTimePicker.md +231 -0
- package/dist/ai/BbTimePickerInput.md +196 -0
- package/dist/ai/BbToast.md +624 -196
- package/dist/ai/BbToastPortal.md +28 -0
- package/dist/ai/BbTooltip.md +443 -346
- package/dist/ai/BbTree.md +984 -235
- package/dist/ai/ChipsBox.md +27 -199
- package/dist/ai/ClearableButton.md +21 -55
- package/dist/ai/CommaBox.md +25 -200
- package/dist/ai/CommonInputWrapper.md +42 -0
- package/dist/ai/CommonPopover.md +30 -510
- package/dist/ai/ErrorIcon.md +19 -56
- package/dist/ai/FlatListBox.md +35 -379
- package/dist/ai/GroupedListBox.md +37 -535
- package/dist/ai/GuidesComponent.md +21 -0
- package/dist/ai/ListBox.md +38 -231
- package/dist/ai/OptionsContainer.md +34 -253
- package/dist/ai/WarningIcon.md +21 -0
- package/dist/ai/components.json +15883 -0
- package/dist/ai/composables/useBbConfig.md +80 -0
- package/dist/ai/composables/useBbFormContext.md +110 -0
- package/dist/ai/composables/useBbTableContext.md +164 -0
- package/dist/ai/composables/useBbTabsContext.md +118 -0
- package/dist/ai/composables/useBroadcastChannelInstance.md +97 -0
- package/dist/ai/composables/useConfirm.md +306 -0
- package/dist/ai/composables/useCountdown.md +84 -0
- package/dist/ai/composables/useId.md +60 -0
- package/dist/ai/composables/useMobile.md +85 -0
- package/dist/ai/composables/useToast.md +230 -0
- package/dist/ai/guides/agent-contract.md +108 -0
- package/dist/ai/guides/ai-router.md +111 -0
- package/dist/ai/guides/app-layout.md +295 -0
- package/dist/ai/guides/coherence-playbook.md +136 -0
- package/dist/ai/guides/component-picker.md +195 -0
- package/dist/ai/guides/design-language.md +461 -0
- package/dist/ai/guides/design-tokens.md +424 -0
- package/dist/ai/guides/fetch-items-playbook.md +161 -0
- package/dist/ai/guides/floating-bottom-panel.md +191 -0
- package/dist/ai/guides/icons-policy.md +257 -0
- package/dist/ai/guides/inertia-helpers.md +1394 -0
- package/dist/ai/guides/inline-edit-playbook.md +258 -0
- package/dist/ai/guides/installation-and-plugin-setup.md +377 -0
- package/dist/ai/guides/migration/components/bb-alert.md +37 -0
- package/dist/ai/guides/migration/components/bb-avatar.md +24 -0
- package/dist/ai/guides/migration/components/bb-badge.md +110 -0
- package/dist/ai/guides/migration/components/bb-breadcrumbs.md +26 -0
- package/dist/ai/guides/migration/components/bb-button.md +55 -0
- package/dist/ai/guides/migration/components/bb-checkbox-group.md +54 -0
- package/dist/ai/guides/migration/components/bb-checkbox.md +45 -0
- package/dist/ai/guides/migration/components/bb-chip.md +35 -0
- package/dist/ai/guides/migration/components/bb-collapsible.md +26 -0
- package/dist/ai/guides/migration/components/bb-color-input.md +23 -0
- package/dist/ai/guides/migration/components/bb-color-palette.md +31 -0
- package/dist/ai/guides/migration/components/bb-date-picker-input.md +84 -0
- package/dist/ai/guides/migration/components/bb-dialog.md +46 -0
- package/dist/ai/guides/migration/components/bb-dropdown-button.md +31 -0
- package/dist/ai/guides/migration/components/bb-dropdown.md +36 -0
- package/dist/ai/guides/migration/components/bb-dropzone.md +27 -0
- package/dist/ai/guides/migration/components/bb-icon.md +27 -0
- package/dist/ai/guides/migration/components/bb-off-canvas.md +25 -0
- package/dist/ai/guides/migration/components/bb-offcanvas.md +54 -0
- package/dist/ai/guides/migration/components/bb-pagination.md +24 -0
- package/dist/ai/guides/migration/components/bb-popover.md +52 -0
- package/dist/ai/guides/migration/components/bb-rating.md +24 -0
- package/dist/ai/guides/migration/components/bb-select-popover.md +58 -0
- package/dist/ai/guides/migration/components/bb-select.md +68 -0
- package/dist/ai/guides/migration/components/bb-slider.md +25 -0
- package/dist/ai/guides/migration/components/bb-smooth-height.md +45 -0
- package/dist/ai/guides/migration/components/bb-spinner.md +23 -0
- package/dist/ai/guides/migration/components/bb-table.md +66 -0
- package/dist/ai/guides/migration/components/bb-tabs.md +47 -0
- package/dist/ai/guides/migration/components/bb-tag.md +29 -0
- package/dist/ai/guides/migration/components/bb-text-input.md +37 -0
- package/dist/ai/guides/migration/components/bb-toast.md +47 -0
- package/dist/ai/guides/migration/components/bb-tooltip.md +34 -0
- package/dist/ai/guides/migration/components/bb-tree.md +77 -0
- package/dist/ai/guides/migration/components/use-confirm.md +46 -0
- package/dist/ai/guides/migration/v2-to-v3.md +649 -0
- package/dist/ai/guides/options-items-playbook.md +222 -0
- package/dist/ai/guides/page-shell.md +314 -0
- package/dist/ai/guides/validated-forms.md +177 -0
- package/dist/ai/index.md +156 -32
- package/dist/ai/recipes/inertia/approvals-inbox.md +1598 -0
- package/dist/ai/recipes/inertia/inline-edit-workspace.md +1733 -0
- package/dist/ai/recipes/inertia/onboarding.md +1765 -0
- package/dist/ai/recipes/inertia/ownership-atlas.md +1281 -0
- package/dist/ai/recipes/inertia/record-form.md +1442 -0
- package/dist/ai/recipes/inertia/records-workspace.md +1328 -0
- package/dist/ai/recipes/inertia/upload-center.md +1926 -0
- package/dist/ai/recipes/inertia/wizard-form.md +1477 -0
- package/dist/ai/recipes/nuxt/approvals-inbox.md +1561 -0
- package/dist/ai/recipes/nuxt/inline-edit-workspace.md +1690 -0
- package/dist/ai/recipes/nuxt/onboarding.md +1698 -0
- package/dist/ai/recipes/nuxt/record-form.md +1456 -0
- package/dist/ai/recipes/nuxt/records-workspace.md +1314 -0
- package/dist/ai/recipes/nuxt/upload-center.md +1847 -0
- package/dist/ai/recipes/nuxt/wizard-form.md +1486 -0
- package/dist/ai/recipes/vue/approvals-inbox.md +1479 -0
- package/dist/ai/recipes/vue/inline-edit-workspace.md +1581 -0
- package/dist/ai/recipes/vue/onboarding.md +1653 -0
- package/dist/ai/recipes/vue/record-form.md +1540 -0
- package/dist/ai/recipes/vue/records-workspace.md +1230 -0
- package/dist/ai/recipes/vue/upload-center.md +1806 -0
- package/dist/ai/recipes/vue/wizard-form.md +1418 -0
- package/dist/ai/source/BbAccordion.md +122 -0
- package/dist/ai/source/BbAlert.md +396 -0
- package/dist/ai/source/BbAsterisk.md +32 -0
- package/dist/ai/source/BbAvatar.md +256 -0
- package/dist/ai/source/BbBadge.md +560 -0
- package/dist/ai/source/BbBadgeButton.md +490 -0
- package/dist/ai/source/BbBaseButton.md +682 -0
- package/dist/ai/source/BbBaseCheckbox.md +459 -0
- package/dist/ai/source/BbBaseCheckboxGroup.md +554 -0
- package/dist/ai/source/BbBaseCheckboxIcon.md +201 -0
- package/dist/ai/source/BbBaseColorInput.md +413 -0
- package/dist/ai/source/BbBaseColorPalette.md +934 -0
- package/dist/ai/source/BbBaseDatePicker.md +1001 -0
- package/dist/ai/source/BbBaseDatePickerInput.md +1781 -0
- package/dist/ai/source/BbBaseInputContainer.md +1148 -0
- package/dist/ai/source/BbBaseNumberInput.md +615 -0
- package/dist/ai/source/BbBaseRadio.md +377 -0
- package/dist/ai/source/BbBaseRadioGroup.md +499 -0
- package/dist/ai/source/BbBaseRadioIcon.md +153 -0
- package/dist/ai/source/BbBaseRating.md +573 -0
- package/dist/ai/source/BbBaseSelect.md +895 -0
- package/dist/ai/source/BbBaseSlider.md +1085 -0
- package/dist/ai/source/BbBaseSwitch.md +246 -0
- package/dist/ai/source/BbBaseSwitchGroup.md +302 -0
- package/dist/ai/source/BbBaseSwitchIcon.md +206 -0
- package/dist/ai/source/BbBaseTag.md +688 -0
- package/dist/ai/source/BbBaseTextInput.md +511 -0
- package/dist/ai/source/BbBaseTextarea.md +480 -0
- package/dist/ai/source/BbBaseTimePickerInput.md +1013 -0
- package/dist/ai/source/BbBreadcrumbs.md +811 -0
- package/dist/ai/source/BbButton.md +990 -0
- package/dist/ai/source/BbCheckbox.md +319 -0
- package/dist/ai/source/BbCheckboxGroup.md +412 -0
- package/dist/ai/source/BbCollapsible.md +133 -0
- package/dist/ai/source/BbColorInput.md +315 -0
- package/dist/ai/source/BbColorPalette.md +361 -0
- package/dist/ai/source/BbConfirm.md +173 -0
- package/dist/ai/source/BbConfirmPortal.md +74 -0
- package/dist/ai/source/BbDatePicker.md +725 -0
- package/dist/ai/source/BbDatePickerInput.md +518 -0
- package/dist/ai/source/BbDialog.md +812 -0
- package/dist/ai/source/BbDropdown.md +2369 -0
- package/dist/ai/source/BbDropdownButton.md +313 -0
- package/dist/ai/source/BbDropdownGroup.md +1249 -0
- package/dist/ai/source/BbDropzone.md +749 -0
- package/dist/ai/source/BbForm.md +100 -0
- package/dist/ai/source/BbIcon.md +212 -0
- package/dist/ai/source/BbIndicator.md +298 -0
- package/dist/ai/source/BbNumberInput.md +365 -0
- package/dist/ai/source/BbOffCanvas.md +1260 -0
- package/dist/ai/source/BbPagination.md +829 -0
- package/dist/ai/source/BbPopover.md +853 -0
- package/dist/ai/source/BbProgress.md +140 -0
- package/dist/ai/source/BbRadio.md +294 -0
- package/dist/ai/source/BbRadioGroup.md +401 -0
- package/dist/ai/source/BbRating.md +362 -0
- package/dist/ai/source/BbSelect.md +681 -0
- package/dist/ai/source/BbSelectPopover.md +2209 -0
- package/dist/ai/source/BbSlider.md +371 -0
- package/dist/ai/source/BbSmoothHeight.md +261 -0
- package/dist/ai/source/BbSpinner.md +127 -0
- package/dist/ai/source/BbSwitch.md +175 -0
- package/dist/ai/source/BbSwitchGroup.md +240 -0
- package/dist/ai/source/BbTable.md +3348 -0
- package/dist/ai/source/BbTabs.md +403 -0
- package/dist/ai/source/BbTabsList.md +578 -0
- package/dist/ai/source/BbTabsPanes.md +368 -0
- package/dist/ai/source/BbTabsRoot.md +372 -0
- package/dist/ai/source/BbTag.md +383 -0
- package/dist/ai/source/BbTextInput.md +345 -0
- package/dist/ai/source/BbTextarea.md +330 -0
- package/dist/ai/source/BbTimePicker.md +591 -0
- package/dist/ai/source/BbTimePickerInput.md +367 -0
- package/dist/ai/source/BbToast.md +524 -0
- package/dist/ai/source/BbToastPortal.md +482 -0
- package/dist/ai/source/BbTooltip.md +508 -0
- package/dist/ai/source/BbTree.md +319 -0
- package/dist/ai/source/ChipsBox.md +201 -0
- package/dist/ai/source/ClearableButton.md +70 -0
- package/dist/ai/source/CommaBox.md +202 -0
- package/dist/ai/source/CommonInputWrapper.md +554 -0
- package/dist/ai/source/CommonPopover.md +606 -0
- package/dist/ai/source/ErrorIcon.md +43 -0
- package/dist/ai/source/FlatListBox.md +396 -0
- package/dist/ai/source/GroupedListBox.md +540 -0
- package/dist/ai/source/GuidesComponent.md +383 -0
- package/dist/ai/source/ListBox.md +238 -0
- package/dist/ai/source/OptionsContainer.md +191 -0
- package/dist/ai/source/WarningIcon.md +47 -0
- package/dist/alert-variants.d.ts +12 -0
- package/dist/assets/css/reset.css_inline.js +4 -0
- package/dist/assets/svgs/alert.svg_raw.js +4 -0
- package/dist/assets/svgs/calendar.svg_raw.js +4 -0
- package/dist/assets/svgs/check_stroke.svg_raw.js +4 -0
- package/dist/assets/svgs/chevron_down.svg_raw.js +4 -0
- package/dist/assets/svgs/chevron_right.svg_raw.js +4 -0
- package/dist/assets/svgs/clear.svg_raw.js +4 -0
- package/dist/assets/svgs/clock.svg_raw.js +4 -0
- package/dist/assets/svgs/error.svg_raw.js +4 -0
- package/dist/assets/svgs/search.svg_raw.js +4 -0
- package/dist/assets/svgs/sort.svg_raw.js +4 -0
- package/dist/assets/svgs/spinner.svg_raw.js +4 -0
- package/dist/assets/svgs/user.svg_raw.js +4 -0
- package/dist/badge-variants.d.ts +18 -0
- package/dist/button-variants.d.ts +15 -0
- package/dist/components/BbAccordion/BbAccordion.vue.d.ts +9 -3
- package/dist/components/BbAccordion/BbAccordion.vue.js +6 -0
- package/dist/components/BbAccordion/BbAccordion.vue_vue_type_script_setup_true_lang.js +66 -0
- package/dist/components/BbAccordion/types.d.ts +10 -7
- package/dist/components/BbAlert/BbAlert.vue.d.ts +12 -3
- package/dist/components/BbAlert/BbAlert.vue.js +6 -0
- package/dist/components/BbAlert/BbAlert.vue_vue_type_script_setup_true_lang.js +65 -0
- package/dist/components/BbAlert/types.d.ts +51 -12
- package/dist/components/BbAsterisk/BbAsterisk.vue.d.ts +3 -0
- package/dist/components/BbAsterisk/BbAsterisk.vue.js +6 -0
- package/dist/components/BbAsterisk/BbAsterisk.vue_vue_type_script_setup_true_lang.js +13 -0
- package/dist/components/BbAvatar/BbAvatar.vue.d.ts +5 -0
- package/dist/components/BbAvatar/BbAvatar.vue.js +6 -0
- package/dist/components/BbAvatar/BbAvatar.vue_vue_type_script_setup_true_lang.js +78 -0
- package/dist/components/BbAvatar/types.d.ts +4 -5
- package/dist/components/BbBadge/BadgeAppendIcon.vue.d.ts +3 -0
- package/dist/components/BbBadge/BadgeAppendIcon.vue.js +5 -0
- package/dist/components/BbBadge/BadgeAppendIcon.vue_vue_type_script_setup_true_lang.js +22 -0
- package/dist/components/BbBadge/BadgeBodyContent.vue.d.ts +15 -0
- package/dist/components/BbBadge/BadgeBodyContent.vue.js +5 -0
- package/dist/components/BbBadge/BadgeBodyContent.vue_vue_type_script_setup_true_lang.js +34 -0
- package/dist/components/BbBadge/BbBadge.vue.d.ts +8 -1
- package/dist/components/BbBadge/BbBadge.vue.js +6 -0
- package/dist/components/BbBadge/BbBadge.vue_vue_type_script_setup_true_lang.js +83 -0
- package/dist/components/BbBadge/BbBadgeButton.vue.d.ts +12 -0
- package/dist/components/BbBadge/BbBadgeButton.vue.js +5 -0
- package/dist/components/BbBadge/BbBadgeButton.vue_vue_type_script_setup_true_lang.js +54 -0
- package/dist/components/BbBadge/badgeButtonContext.d.ts +27 -0
- package/dist/components/BbBadge/badgeButtonContext.js +5 -0
- package/dist/components/BbBadge/types.d.ts +61 -16
- package/dist/components/BbBaseButton/BbBaseButton.vue.d.ts +13 -0
- package/dist/components/BbBaseButton/BbBaseButton.vue.js +6 -0
- package/dist/components/BbBaseButton/BbBaseButton.vue_vue_type_script_setup_true_lang.js +171 -0
- package/dist/components/BbBaseButton/RouterComponent.vue.js +5 -0
- package/dist/components/BbBaseButton/RouterComponent.vue_vue_type_script_setup_true_lang.js +28 -0
- package/dist/components/BbBaseButton/types.d.ts +191 -0
- package/dist/components/BbBaseButton/types.js +33 -0
- package/dist/components/BbBaseCheckbox/BbBaseCheckbox.vue.d.ts +40 -0
- package/dist/components/BbBaseCheckbox/BbBaseCheckbox.vue.js +6 -0
- package/dist/components/BbBaseCheckbox/BbBaseCheckbox.vue_vue_type_script_setup_true_lang.js +145 -0
- package/dist/components/BbBaseCheckbox/types.d.ts +222 -0
- package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue.d.ts +19 -0
- package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue.js +6 -0
- package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue_vue_type_script_setup_true_lang.js +190 -0
- package/dist/components/BbBaseCheckboxGroup/types.d.ts +257 -0
- package/dist/components/BbBaseCheckboxIcon/BbBaseCheckboxIcon.vue.d.ts +4 -0
- package/dist/components/BbBaseCheckboxIcon/BbBaseCheckboxIcon.vue.js +6 -0
- package/dist/components/BbBaseCheckboxIcon/BbBaseCheckboxIcon.vue_vue_type_script_setup_true_lang.js +43 -0
- package/dist/components/BbBaseCheckboxIcon/types.d.ts +47 -0
- package/dist/components/BbBaseColorInput/BbBaseColorInput.vue.d.ts +42 -0
- package/dist/components/BbBaseColorInput/BbBaseColorInput.vue.js +6 -0
- package/dist/components/BbBaseColorInput/BbBaseColorInput.vue_vue_type_script_setup_true_lang.js +178 -0
- package/dist/components/BbBaseColorInput/types.d.ts +207 -0
- package/dist/components/BbBaseColorPalette/BbBaseColorPalette.vue.d.ts +13 -0
- package/dist/components/BbBaseColorPalette/BbBaseColorPalette.vue.js +6 -0
- package/dist/components/BbBaseColorPalette/BbBaseColorPalette.vue_vue_type_script_setup_true_lang.js +395 -0
- package/dist/components/BbBaseColorPalette/types.d.ts +40 -0
- package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue.js +6 -0
- package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue_vue_type_script_setup_true_lang.js +300 -0
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue.d.ts +44 -0
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue.js +5 -0
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue_vue_type_script_setup_true_lang.js +310 -0
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue.d.ts +5 -0
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue.js +5 -0
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue_vue_type_script_setup_true_lang.js +63 -0
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerYearSelector.vue.d.ts +5 -0
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerYearSelector.vue.js +5 -0
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerYearSelector.vue_vue_type_script_setup_true_lang.js +75 -0
- package/dist/components/BbBaseDatePicker/typeahead.d.ts +112 -0
- package/dist/components/BbBaseDatePicker/typeahead.js +37 -0
- package/dist/components/BbBaseDatePicker/types.d.ts +97 -0
- package/dist/components/BbBaseDatePicker/useDatePickerContext.d.ts +58 -0
- package/dist/components/BbBaseDatePicker/useDatePickerContext.js +11 -0
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue.d.ts +30 -0
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue.js +6 -0
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue_vue_type_script_setup_true_lang.js +713 -0
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerTimeSelector.vue.d.ts +30 -0
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerTimeSelector.vue.js +6 -0
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerTimeSelector.vue_vue_type_script_setup_true_lang.js +204 -0
- package/dist/components/BbBaseDatePickerInput/types.d.ts +309 -0
- package/dist/components/BbBaseInputContainer/BbBaseInputContainer.vue.d.ts +17 -0
- package/dist/components/BbBaseInputContainer/BbBaseInputContainer.vue.js +6 -0
- package/dist/components/BbBaseInputContainer/BbBaseInputContainer.vue_vue_type_script_setup_true_lang.js +184 -0
- package/dist/components/BbBaseInputContainer/types.d.ts +185 -0
- package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue.d.ts +52 -0
- package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue.js +6 -0
- package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue_vue_type_script_setup_true_lang.js +211 -0
- package/dist/components/BbBaseNumberInput/types.d.ts +211 -0
- package/dist/components/BbBaseRadio/BbBaseRadio.vue.d.ts +33 -0
- package/dist/components/BbBaseRadio/BbBaseRadio.vue.js +6 -0
- package/dist/components/BbBaseRadio/BbBaseRadio.vue_vue_type_script_setup_true_lang.js +114 -0
- package/dist/components/BbBaseRadio/types.d.ts +179 -0
- package/dist/components/BbBaseRadioGroup/BbBaseRadioGroup.vue.d.ts +19 -0
- package/dist/components/BbBaseRadioGroup/BbBaseRadioGroup.vue.js +6 -0
- package/dist/components/BbBaseRadioGroup/BbBaseRadioGroup.vue_vue_type_script_setup_true_lang.js +172 -0
- package/dist/components/BbBaseRadioGroup/types.d.ts +215 -0
- package/dist/components/BbBaseRadioIcon/BbBaseRadioIcon.vue.d.ts +4 -0
- package/dist/components/BbBaseRadioIcon/BbBaseRadioIcon.vue.js +6 -0
- package/dist/components/BbBaseRadioIcon/BbBaseRadioIcon.vue_vue_type_script_setup_true_lang.js +28 -0
- package/dist/components/BbBaseRadioIcon/types.d.ts +41 -0
- package/dist/components/BbBaseRating/BbBaseRating.vue.d.ts +38 -0
- package/dist/components/BbBaseRating/BbBaseRating.vue.js +6 -0
- package/dist/components/BbBaseRating/BbBaseRating.vue_vue_type_script_setup_true_lang.js +184 -0
- package/dist/components/BbBaseRating/types.d.ts +168 -0
- package/dist/components/BbBaseSelect/BbBaseSelect.vue.d.ts +19 -0
- package/dist/components/BbBaseSelect/BbBaseSelect.vue.js +6 -0
- package/dist/components/BbBaseSelect/BbBaseSelect.vue_vue_type_script_setup_true_lang.js +307 -0
- package/dist/components/BbBaseSelect/types.d.ts +294 -0
- package/dist/components/BbBaseSlider/BbBaseSlider.vue.d.ts +35 -0
- package/dist/components/BbBaseSlider/BbBaseSlider.vue.js +6 -0
- package/dist/components/BbBaseSlider/BbBaseSlider.vue_vue_type_script_setup_true_lang.js +324 -0
- package/dist/components/BbBaseSlider/types.d.ts +200 -0
- package/dist/components/BbBaseSwitch/BbBaseSwitch.vue.d.ts +35 -0
- package/dist/components/BbBaseSwitch/BbBaseSwitch.vue.js +6 -0
- package/dist/components/BbBaseSwitch/BbBaseSwitch.vue_vue_type_script_setup_true_lang.js +146 -0
- package/dist/components/BbBaseSwitch/types.d.ts +10 -0
- package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue.d.ts +19 -0
- package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue.js +6 -0
- package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue_vue_type_script_setup_true_lang.js +190 -0
- package/dist/components/BbBaseSwitchGroup/types.d.ts +8 -0
- package/dist/components/BbBaseSwitchIcon/BbBaseSwitchIcon.vue.d.ts +4 -0
- package/dist/components/BbBaseSwitchIcon/BbBaseSwitchIcon.vue.js +6 -0
- package/dist/components/BbBaseSwitchIcon/BbBaseSwitchIcon.vue_vue_type_script_setup_true_lang.js +30 -0
- package/dist/components/BbBaseSwitchIcon/types.d.ts +48 -0
- package/dist/components/BbBaseTag/BbBaseTag.vue.d.ts +50 -0
- package/dist/components/BbBaseTag/BbBaseTag.vue.js +6 -0
- package/dist/components/BbBaseTag/BbBaseTag.vue_vue_type_script_setup_true_lang.js +266 -0
- package/dist/components/BbBaseTag/types.d.ts +160 -0
- package/dist/components/BbBaseTextInput/BbBaseTextInput.vue.d.ts +45 -0
- package/dist/components/BbBaseTextInput/BbBaseTextInput.vue.js +6 -0
- package/dist/components/BbBaseTextInput/BbBaseTextInput.vue_vue_type_script_setup_true_lang.js +200 -0
- package/dist/components/BbBaseTextInput/types.d.ts +209 -0
- package/dist/components/BbBaseTextarea/BbBaseTextarea.vue.d.ts +39 -0
- package/dist/components/BbBaseTextarea/BbBaseTextarea.vue.js +6 -0
- package/dist/components/BbBaseTextarea/BbBaseTextarea.vue_vue_type_script_setup_true_lang.js +175 -0
- package/dist/components/BbBaseTextarea/types.d.ts +170 -0
- package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue.d.ts +27 -0
- package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue.js +6 -0
- package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue_vue_type_script_setup_true_lang.js +517 -0
- package/dist/components/BbBaseTimePickerInput/types.d.ts +151 -0
- package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue.d.ts +0 -1
- package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue.js +6 -0
- package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue_vue_type_script_setup_true_lang.js +224 -0
- package/dist/components/BbBreadcrumbs/estimateBreadcrumbItemWidth.js +47 -0
- package/dist/components/BbBreadcrumbs/types.d.ts +33 -22
- package/dist/components/BbButton/BbButton.vue.d.ts +6 -5
- package/dist/components/BbButton/BbButton.vue.js +6 -0
- package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +177 -0
- package/dist/components/BbButton/types.d.ts +48 -47
- package/dist/components/BbCheckbox/BbCheckbox.vue.d.ts +4 -3
- package/dist/components/BbCheckbox/BbCheckbox.vue.js +6 -0
- package/dist/components/BbCheckbox/BbCheckbox.vue_vue_type_script_setup_true_lang.js +146 -0
- package/dist/components/BbCheckbox/types.d.ts +24 -10
- package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue.d.ts +2 -13
- package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue.js +6 -0
- package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +190 -0
- package/dist/components/BbCheckboxGroup/types.d.ts +44 -23
- package/dist/components/BbCollapsible/BbCollapsible.vue.d.ts +2 -1
- package/dist/components/BbCollapsible/BbCollapsible.vue.js +6 -0
- package/dist/components/BbCollapsible/BbCollapsible.vue_vue_type_script_setup_true_lang.js +31 -0
- package/dist/components/BbCollapsible/types.d.ts +10 -9
- package/dist/components/BbColorInput/BbColorInput.vue.d.ts +10 -1
- package/dist/components/BbColorInput/BbColorInput.vue.js +6 -0
- package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +177 -0
- package/dist/components/BbColorInput/types.d.ts +37 -11
- package/dist/components/BbColorPalette/BbColorPalette.vue.d.ts +5 -8
- package/dist/components/BbColorPalette/BbColorPalette.vue.js +5 -0
- package/dist/components/BbColorPalette/BbColorPalette.vue_vue_type_script_setup_true_lang.js +125 -0
- package/dist/components/BbColorPalette/types.d.ts +66 -53
- package/dist/components/BbConfirm/BbConfirm.vue.js +6 -0
- package/dist/components/BbConfirm/BbConfirm.vue_vue_type_script_setup_true_lang.js +130 -0
- package/dist/components/BbConfirm/BbConfirmPortal.vue.d.ts +5 -6
- package/dist/components/BbConfirm/BbConfirmPortal.vue.js +5 -0
- package/dist/components/BbConfirm/BbConfirmPortal.vue_vue_type_script_setup_true_lang.js +19 -0
- package/dist/components/BbDatePicker/BbDatePicker.vue.d.ts +37 -0
- package/dist/components/BbDatePicker/BbDatePicker.vue.js +6 -0
- package/dist/components/BbDatePicker/BbDatePicker.vue_vue_type_script_setup_true_lang.js +319 -0
- package/dist/components/BbDatePicker/types.d.ts +155 -0
- package/dist/components/BbDatePickerInput/BbDatePickerInput.vue.d.ts +3 -1
- package/dist/components/BbDatePickerInput/BbDatePickerInput.vue.js +6 -0
- package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +179 -0
- package/dist/components/BbDatePickerInput/types.d.ts +127 -16
- package/dist/components/BbDialog/BbDialog.vue.d.ts +8 -6
- package/dist/components/BbDialog/BbDialog.vue.js +6 -0
- package/dist/components/BbDialog/BbDialog.vue_vue_type_script_setup_true_lang.js +214 -0
- package/dist/components/BbDialog/types.d.ts +146 -1
- package/dist/components/BbDialog/useDialogStack.d.ts +5 -0
- package/dist/components/BbDialog/useDialogStack.js +20 -0
- package/dist/components/BbDropdown/AdaptiveDropdown.vue.d.ts +18 -0
- package/dist/components/BbDropdown/AdaptiveDropdown.vue.js +6 -0
- package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +116 -0
- package/dist/components/BbDropdown/BbDropdown.vue.d.ts +14 -7
- package/dist/components/BbDropdown/BbDropdown.vue.js +6 -0
- package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +560 -0
- package/dist/components/BbDropdown/BbDropdownGroup.vue.d.ts +44 -0
- package/dist/components/BbDropdown/BbDropdownGroup.vue.js +5 -0
- package/dist/components/BbDropdown/BbDropdownGroup.vue_vue_type_script_setup_true_lang.js +36 -0
- package/dist/components/BbDropdown/BbDropdownList.vue.d.ts +27 -0
- package/dist/components/BbDropdown/BbDropdownList.vue.js +6 -0
- package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +464 -0
- package/dist/components/BbDropdown/DropdownPipelineResolver.vue.d.ts +16 -0
- package/dist/components/BbDropdown/DropdownPipelineResolver.vue.js +5 -0
- package/dist/components/BbDropdown/DropdownPipelineResolver.vue_vue_type_script_setup_true_lang.js +168 -0
- package/dist/components/BbDropdown/normalizeGroups.d.ts +18 -0
- package/dist/components/BbDropdown/normalizeGroups.js +46 -0
- package/dist/components/BbDropdown/types.d.ts +457 -45
- package/dist/components/BbDropdown/types.js +4 -0
- package/dist/components/BbDropdown/useDropdownContext.d.ts +89 -0
- package/dist/components/BbDropdown/useDropdownContext.js +9 -0
- package/dist/components/BbDropdown/useDropdownGroupRegistry.d.ts +108 -0
- package/dist/components/BbDropdown/useDropdownGroupRegistry.js +5 -0
- package/dist/components/BbDropdownButton/BbDropdownButton.vue.d.ts +3 -3
- package/dist/components/BbDropdownButton/BbDropdownButton.vue.js +6 -0
- package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +119 -0
- package/dist/components/BbDropdownButton/types.d.ts +45 -52
- package/dist/components/BbDropzone/BbDropzone.vue.d.ts +5 -4
- package/dist/components/BbDropzone/BbDropzone.vue.js +6 -0
- package/dist/components/BbDropzone/BbDropzone.vue_vue_type_script_setup_true_lang.js +284 -0
- package/dist/components/BbDropzone/types.d.ts +55 -7
- package/dist/components/BbIcon/BbIcon.vue.d.ts +3 -2
- package/dist/components/BbIcon/BbIcon.vue.js +6 -0
- package/dist/components/BbIcon/BbIcon.vue_vue_type_script_setup_true_lang.js +65 -0
- package/dist/components/BbIcon/types.d.ts +6 -19
- package/dist/components/BbIndicator/BbIndicator.vue.d.ts +14 -0
- package/dist/components/BbIndicator/BbIndicator.vue.js +6 -0
- package/dist/components/BbIndicator/BbIndicator.vue_vue_type_script_setup_true_lang.js +56 -0
- package/dist/components/BbIndicator/types.d.ts +49 -0
- package/dist/components/BbNumberInput/BbNumberInput.vue.d.ts +12 -6
- package/dist/components/BbNumberInput/BbNumberInput.vue.js +6 -0
- package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +194 -0
- package/dist/components/BbNumberInput/types.d.ts +31 -4
- package/dist/components/BbOffCanvas/BbOffCanvas.vue.d.ts +10 -10
- package/dist/components/BbOffCanvas/BbOffCanvas.vue.js +6 -0
- package/dist/components/BbOffCanvas/BbOffCanvas.vue_vue_type_script_setup_true_lang.js +284 -0
- package/dist/components/BbOffCanvas/types.d.ts +71 -39
- package/dist/components/BbOffCanvas/useOffCanvasStack.d.ts +25 -0
- package/dist/components/BbOffCanvas/useOffCanvasStack.js +68 -0
- package/dist/components/BbPagination/BbPagination.vue.d.ts +3 -4
- package/dist/components/BbPagination/BbPagination.vue.js +6 -0
- package/dist/components/BbPagination/BbPagination.vue_vue_type_script_setup_true_lang.js +244 -0
- package/dist/components/BbPagination/paginationFit.d.ts +38 -0
- package/dist/components/BbPagination/paginationFit.js +13 -0
- package/dist/components/BbPagination/types.d.ts +51 -16
- package/dist/components/BbPopover/BbPopover.vue.d.ts +10 -15
- package/dist/components/BbPopover/BbPopover.vue.js +6 -0
- package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +310 -0
- package/dist/components/BbPopover/escapeStack.d.ts +6 -0
- package/dist/components/BbPopover/escapeStack.js +10 -0
- package/dist/components/BbPopover/types.d.ts +84 -31
- package/dist/components/BbProgress/BbProgress.vue.d.ts +1 -0
- package/dist/components/BbProgress/BbProgress.vue.js +6 -0
- package/dist/components/BbProgress/BbProgress.vue_vue_type_script_setup_true_lang.js +36 -0
- package/dist/components/BbProgress/types.d.ts +15 -1
- package/dist/components/BbRadio/BbRadio.vue.d.ts +5 -3
- package/dist/components/BbRadio/BbRadio.vue.js +6 -0
- package/dist/components/BbRadio/BbRadio.vue_vue_type_script_setup_true_lang.js +133 -0
- package/dist/components/BbRadio/types.d.ts +23 -9
- package/dist/components/BbRadioGroup/BbRadioGroup.vue.d.ts +4 -14
- package/dist/components/BbRadioGroup/BbRadioGroup.vue.js +6 -0
- package/dist/components/BbRadioGroup/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +184 -0
- package/dist/components/BbRadioGroup/types.d.ts +41 -22
- package/dist/components/BbRating/BbRating.vue.d.ts +4 -1
- package/dist/components/BbRating/BbRating.vue.js +6 -0
- package/dist/components/BbRating/BbRating.vue_vue_type_script_setup_true_lang.js +150 -0
- package/dist/components/BbRating/types.d.ts +37 -10
- package/dist/components/BbSelect/BbSelect.vue.d.ts +2 -11
- package/dist/components/BbSelect/BbSelect.vue.js +6 -0
- package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +241 -0
- package/dist/components/BbSelect/types.d.ts +105 -59
- package/dist/components/BbSelectPopover/BbSelectPopover.vue.d.ts +1 -10
- package/dist/components/BbSelectPopover/BbSelectPopover.vue.js +6 -0
- package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +637 -0
- package/dist/components/BbSelectPopover/types.d.ts +189 -102
- package/dist/components/BbSlider/BbSlider.vue.d.ts +3 -6
- package/dist/components/BbSlider/BbSlider.vue.js +6 -0
- package/dist/components/BbSlider/BbSlider.vue_vue_type_script_setup_true_lang.js +166 -0
- package/dist/components/BbSlider/types.d.ts +37 -13
- package/dist/components/BbSmoothHeight/BbSmoothHeight.vue.d.ts +3 -1
- package/dist/components/BbSmoothHeight/BbSmoothHeight.vue.js +6 -0
- package/dist/components/BbSmoothHeight/BbSmoothHeight.vue_vue_type_script_setup_true_lang.js +79 -0
- package/dist/components/BbSmoothHeight/types.d.ts +13 -2
- package/dist/components/BbSpinner/BbSpinner.vue.d.ts +1 -1
- package/dist/components/BbSpinner/BbSpinner.vue.js +6 -0
- package/dist/components/BbSpinner/BbSpinner.vue_vue_type_script_setup_true_lang.js +30 -0
- package/dist/components/BbSpinner/types.d.ts +10 -3
- package/dist/components/BbSwitch/BbSwitch.vue.d.ts +5 -3
- package/dist/components/BbSwitch/BbSwitch.vue.js +6 -0
- package/dist/components/BbSwitch/BbSwitch.vue_vue_type_script_setup_true_lang.js +142 -0
- package/dist/components/BbSwitch/types.d.ts +3 -1
- package/dist/components/BbSwitchGroup/BbSwitchGroup.vue.d.ts +4 -14
- package/dist/components/BbSwitchGroup/BbSwitchGroup.vue.js +6 -0
- package/dist/components/BbSwitchGroup/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +190 -0
- package/dist/components/BbSwitchGroup/types.d.ts +3 -22
- package/dist/components/BbTable/BbTable.vue.d.ts +53 -31
- package/dist/components/BbTable/BbTable.vue.js +6 -0
- package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +889 -0
- package/dist/components/BbTable/types.d.ts +176 -37
- package/dist/components/BbTable/utils.d.ts +9 -1
- package/dist/components/BbTable/utils.js +53 -0
- package/dist/components/BbTabs/BbTabs.vue.d.ts +20 -0
- package/dist/components/BbTabs/BbTabs.vue.js +6 -0
- package/dist/components/BbTabs/BbTabs.vue_vue_type_script_setup_true_lang.js +64 -0
- package/dist/components/BbTabs/BbTabsList.vue.d.ts +19 -0
- package/dist/components/BbTabs/BbTabsList.vue.js +6 -0
- package/dist/components/BbTabs/BbTabsList.vue_vue_type_script_setup_true_lang.js +123 -0
- package/dist/components/BbTabs/BbTabsPanes.vue.d.ts +16 -0
- package/dist/components/BbTabs/BbTabsPanes.vue.js +6 -0
- package/dist/components/BbTabs/BbTabsPanes.vue_vue_type_script_setup_true_lang.js +35 -0
- package/dist/components/BbTabs/BbTabsRoot.vue.d.ts +20 -0
- package/dist/components/BbTabs/BbTabsRoot.vue.js +5 -0
- package/dist/components/BbTabs/BbTabsRoot.vue_vue_type_script_setup_true_lang.js +55 -0
- package/dist/components/BbTabs/types.d.ts +264 -0
- package/dist/components/BbTag/BbTag.vue.d.ts +19 -6
- package/dist/components/BbTag/BbTag.vue.js +6 -0
- package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +187 -0
- package/dist/components/BbTag/types.d.ts +48 -17
- package/dist/components/BbTextInput/BbTextInput.vue.d.ts +10 -1
- package/dist/components/BbTextInput/BbTextInput.vue.js +6 -0
- package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +195 -0
- package/dist/components/BbTextInput/types.d.ts +24 -4
- package/dist/components/BbTextarea/BbTextarea.vue.d.ts +10 -1
- package/dist/components/BbTextarea/BbTextarea.vue.js +6 -0
- package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +178 -0
- package/dist/components/BbTextarea/types.d.ts +26 -2
- package/dist/components/BbTimePicker/BbTimePicker.vue.d.ts +33 -0
- package/dist/components/BbTimePicker/BbTimePicker.vue.js +6 -0
- package/dist/components/BbTimePicker/BbTimePicker.vue_vue_type_script_setup_true_lang.js +244 -0
- package/dist/components/BbTimePicker/types.d.ts +129 -0
- package/dist/components/BbTimePickerInput/BbTimePickerInput.vue.d.ts +25 -0
- package/dist/components/BbTimePickerInput/BbTimePickerInput.vue.js +6 -0
- package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +157 -0
- package/dist/components/BbTimePickerInput/types.d.ts +165 -0
- package/dist/components/BbToast/BbToast.vue.d.ts +2 -3
- package/dist/components/BbToast/BbToast.vue.js +6 -0
- package/dist/components/BbToast/BbToast.vue_vue_type_script_setup_true_lang.js +35 -0
- package/dist/components/BbToast/BbToastMessage.vue.d.ts +17 -8
- package/dist/components/BbToast/BbToastMessage.vue.js +5 -0
- package/dist/components/BbToast/BbToastMessage.vue_vue_type_script_setup_true_lang.js +170 -0
- package/dist/components/BbToast/BbToastPortal.vue.d.ts +30 -0
- package/dist/components/BbToast/BbToastPortal.vue.js +5 -0
- package/dist/components/BbToast/BbToastPortal.vue_vue_type_script_setup_true_lang.js +19 -0
- package/dist/components/BbToast/BbToastRegion.vue.d.ts +8 -0
- package/dist/components/BbToast/BbToastRegion.vue.js +5 -0
- package/dist/components/BbToast/BbToastRegion.vue_vue_type_script_setup_true_lang.js +100 -0
- package/dist/components/BbToast/types.d.ts +69 -5
- package/dist/components/BbTooltip/BbTooltip.vue.d.ts +4 -3
- package/dist/components/BbTooltip/BbTooltip.vue.js +6 -0
- package/dist/components/BbTooltip/BbTooltip.vue_vue_type_script_setup_true_lang.js +160 -0
- package/dist/components/BbTooltip/types.d.ts +61 -11
- package/dist/components/BbTree/BbTree.vue.d.ts +26 -13
- package/dist/components/BbTree/BbTree.vue.js +6 -0
- package/dist/components/BbTree/BbTree.vue_vue_type_script_setup_true_lang.js +55 -0
- package/dist/components/BbTree/BbTreeLevel.vue.d.ts +19 -0
- package/dist/components/BbTree/BbTreeLevel.vue.js +5 -0
- package/dist/components/BbTree/BbTreeLevel.vue_vue_type_script_setup_true_lang.js +94 -0
- package/dist/components/BbTree/context.d.ts +17 -0
- package/dist/components/BbTree/context.js +4 -0
- package/dist/components/BbTree/types.d.ts +93 -42
- package/dist/components/ChipsBox/ChipsBox.vue.d.ts +2 -1
- package/dist/components/ChipsBox/ChipsBox.vue.js +5 -0
- package/dist/components/ChipsBox/ChipsBox.vue_vue_type_script_setup_true_lang.js +98 -0
- package/dist/components/ChipsBox/types.d.ts +12 -5
- package/dist/components/ClearableButton/ClearableButton.vue.d.ts +2 -1
- package/dist/components/ClearableButton/ClearableButton.vue.js +6 -0
- package/dist/components/ClearableButton/ClearableButton.vue_vue_type_script_setup_true_lang.js +19 -0
- package/dist/components/ClearableButton/types.d.ts +7 -1
- package/dist/components/CloseIcon/CloseButton.vue.d.ts +5 -0
- package/dist/components/CloseIcon/CloseButton.vue.js +7 -0
- package/dist/components/CloseIcon/CloseButton.vue_vue_type_script_setup_true_lang.js +23 -0
- package/dist/components/CloseIcon/types.d.ts +2 -0
- package/dist/components/CommaBox/CommaBox.vue.d.ts +2 -1
- package/dist/components/CommaBox/CommaBox.vue.js +6 -0
- package/dist/components/CommaBox/CommaBox.vue_vue_type_script_setup_true_lang.js +81 -0
- package/dist/components/CommaBox/types.d.ts +6 -7
- package/dist/components/CommonInputWrapper/CommonInputWrapper.vue.d.ts +19 -0
- package/dist/components/CommonInputWrapper/CommonInputWrapper.vue.js +6 -0
- package/dist/components/CommonInputWrapper/CommonInputWrapper.vue_vue_type_script_setup_true_lang.js +107 -0
- package/dist/components/CommonInputWrapper/types.d.ts +96 -0
- package/dist/components/CommonPopover/CommonPopover.vue.d.ts +3 -3
- package/dist/components/CommonPopover/CommonPopover.vue.js +6 -0
- package/dist/components/CommonPopover/CommonPopover.vue_vue_type_script_setup_true_lang.js +160 -0
- package/dist/components/CommonPopover/types.d.ts +61 -16
- package/dist/components/ErrorIcon/ErrorIcon.vue.d.ts +2 -0
- package/dist/components/ErrorIcon/ErrorIcon.vue.js +6 -0
- package/dist/components/ErrorIcon/ErrorIcon.vue_vue_type_script_setup_true_lang.js +16 -0
- package/dist/components/FlatListBox/FlatListBox.vue.d.ts +2 -5
- package/dist/components/FlatListBox/FlatListBox.vue.js +5 -0
- package/dist/components/FlatListBox/FlatListBox.vue_vue_type_script_setup_true_lang.js +167 -0
- package/dist/components/FlatListBox/types.d.ts +1 -1
- package/dist/components/GroupedListBox/GroupedListBox.vue.d.ts +2 -5
- package/dist/components/GroupedListBox/GroupedListBox.vue.js +5 -0
- package/dist/components/GroupedListBox/GroupedListBox.vue_vue_type_script_setup_true_lang.js +218 -0
- package/dist/components/ListBox/ListBox.vue.d.ts +3 -6
- package/dist/components/ListBox/ListBox.vue.js +5 -0
- package/dist/components/ListBox/ListBox.vue_vue_type_script_setup_true_lang.js +112 -0
- package/dist/components/ListBox/types.d.ts +1 -1
- package/dist/components/OptionsContainer/OptionsContainer.vue.d.ts +1 -0
- package/dist/components/OptionsContainer/OptionsContainer.vue.js +5 -0
- package/dist/components/OptionsContainer/OptionsContainer.vue_vue_type_script_setup_true_lang.js +52 -0
- package/dist/components/OptionsContainer/types.d.ts +14 -24
- package/dist/components/Transitions/ScaleFade.vue.js +5 -0
- package/dist/components/Transitions/ScaleFade.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/components/Transitions/Slide.vue.js +7 -0
- package/dist/components/Transitions/Slide.vue_vue_type_script_setup_true_lang.js +28 -0
- package/dist/components/WarningIcon/WarningIcon.vue.d.ts +5 -0
- package/dist/components/WarningIcon/WarningIcon.vue.js +6 -0
- package/dist/components/WarningIcon/WarningIcon.vue_vue_type_script_setup_true_lang.js +16 -0
- package/dist/components/WarningIcon/types.d.ts +3 -0
- package/dist/composables/__testResets.d.ts +1 -0
- package/dist/composables/useActiveInactiveState.d.ts +4 -0
- package/dist/composables/useActiveInactiveState.js +21 -0
- package/dist/composables/useBaseOptions.d.ts +3 -3
- package/dist/composables/useBaseOptions.js +31 -0
- package/dist/composables/useBbConfig.d.ts +8 -37
- package/dist/composables/useBbConfig.js +5 -0
- package/dist/composables/useBbDropdownContext.d.ts +89 -0
- package/dist/composables/useBbDropdownContext.js +46 -0
- package/dist/composables/useBbFormContext.d.ts +90 -0
- package/dist/composables/useBbFormContext.js +69 -0
- package/dist/composables/useBbTableContext.d.ts +195 -0
- package/dist/composables/useBbTableContext.js +208 -0
- package/dist/composables/useBbTabsContext.d.ts +111 -0
- package/dist/composables/useBbTabsContext.js +219 -0
- package/dist/composables/useBreakpoint.d.ts +13 -0
- package/dist/composables/useBreakpoint.js +39 -0
- package/dist/composables/useBroadcastChannelInstance.d.ts +1 -3
- package/dist/composables/useBroadcastChannelInstance.js +39 -0
- package/dist/composables/useCancelableFunction.js +37 -0
- package/dist/composables/useCoherence.js +16 -0
- package/dist/composables/useConfirm.d.ts +257 -67
- package/dist/composables/useConfirm.js +122 -0
- package/dist/composables/useCountdown.js +42 -0
- package/dist/composables/useHashedWatcher.d.ts +17 -0
- package/dist/composables/useHashedWatcher.js +14 -0
- package/dist/composables/useId.d.ts +3 -2
- package/dist/composables/useIndexById.js +16 -0
- package/dist/composables/useInertiaPage.d.ts +10 -0
- package/dist/composables/useInertiaPage.js +8 -0
- package/dist/composables/useItemText.js +17 -0
- package/dist/composables/useItemValue.js +9 -0
- package/dist/composables/useItemsGetter.d.ts +1 -1
- package/dist/composables/useItemsGetter.js +30 -0
- package/dist/composables/useListboxFocus.js +66 -0
- package/dist/composables/useLocale.d.ts +1 -1
- package/dist/composables/useLocale.js +11 -0
- package/dist/composables/useLogger.d.ts +1 -1
- package/dist/composables/useLogger.js +10 -0
- package/dist/composables/useMinimalQueue.d.ts +1 -1
- package/dist/composables/useMobile.js +7 -0
- package/dist/composables/useOnFalsy.d.ts +2 -0
- package/dist/composables/useOnFalsy.js +9 -0
- package/dist/composables/useOnTruthy.d.ts +7 -0
- package/dist/composables/useOnTruthy.js +9 -0
- package/dist/composables/usePrefill.d.ts +2 -1
- package/dist/composables/usePrefill.js +24 -0
- package/dist/composables/useQuery.d.ts +15 -3
- package/dist/composables/useQuery.js +42 -0
- package/dist/composables/useRoute.js +11 -0
- package/dist/composables/useRouter.js +8 -0
- package/dist/composables/useSafeArea.d.ts +51 -0
- package/dist/composables/useSafeArea.js +16 -0
- package/dist/composables/useSegmentedFields.d.ts +103 -0
- package/dist/composables/useSegmentedFields.js +152 -0
- package/dist/composables/useTableWidthContext.d.ts +5 -0
- package/dist/composables/useTableWidthContext.js +42 -0
- package/dist/composables/useToast.d.ts +17 -73
- package/dist/composables/useToast.js +49 -0
- package/dist/composables/useTopLayer.d.ts +9 -0
- package/dist/composables/useTopLayer.js +7 -0
- package/dist/composables/useUntil.js +13 -0
- package/dist/composables/useViewportWidth.d.ts +17 -0
- package/dist/composables/useViewportWidth.js +6 -0
- package/dist/confirm-variants.d.ts +10 -0
- package/dist/deprecation/ai-deprecations.json.d.ts +784 -0
- package/dist/deprecation/ai-deprecations.json.js +4 -0
- package/dist/deprecation/removedProps.d.ts +3 -0
- package/dist/deprecation/removedProps.js +13 -0
- package/dist/directives/bbColor.d.ts +65 -0
- package/dist/directives/bbColor.js +24 -0
- package/dist/directives/bbDate.d.ts +66 -0
- package/dist/directives/bbDate.js +24 -0
- package/dist/directives/bbDropdown.d.ts +15 -11
- package/dist/directives/bbDropdown.js +23 -0
- package/dist/directives/bbTime.d.ts +64 -0
- package/dist/directives/bbTime.js +24 -0
- package/dist/directives/bbTooltip.d.ts +16 -11
- package/dist/directives/bbTooltip.js +24 -0
- package/dist/dropdown-item-variants.d.ts +10 -0
- package/dist/i18n/index.d.ts +51 -3
- package/dist/i18n/index.js +27 -0
- package/dist/i18n/locales/cs.json +115 -0
- package/dist/i18n/locales/da.json +115 -0
- package/dist/i18n/locales/de.json +115 -0
- package/dist/i18n/locales/el.json +115 -0
- package/dist/i18n/locales/en.json +115 -0
- package/dist/i18n/locales/es.json +115 -0
- package/dist/i18n/locales/fi.json +115 -0
- package/dist/i18n/locales/fr.json +115 -0
- package/dist/i18n/locales/hu.json +115 -0
- package/dist/i18n/locales/it.json +115 -0
- package/dist/i18n/locales/ja.json +115 -0
- package/dist/i18n/locales/ko.json +115 -0
- package/dist/i18n/locales/nb.json +115 -0
- package/dist/i18n/locales/nl.json +115 -0
- package/dist/i18n/locales/pl.json +115 -0
- package/dist/i18n/locales/pt.json +115 -0
- package/dist/i18n/locales/ro.json +115 -0
- package/dist/i18n/locales/ru.json +115 -0
- package/dist/i18n/locales/sv.json +115 -0
- package/dist/i18n/locales/tr.json +115 -0
- package/dist/i18n/locales/uk.json +115 -0
- package/dist/i18n/locales/zh-cn.json +115 -0
- package/dist/icons-whitelist.d.ts +8 -0
- package/dist/index.d.ts +94 -79
- package/dist/index.js +76 -82
- package/dist/indicator-variants.d.ts +13 -0
- package/dist/llms-full.txt +77073 -0
- package/dist/llms-medium.txt +1334 -0
- package/dist/llms.txt +103 -0
- package/dist/locale-blueprint.json +141 -0
- package/dist/nuxt-module.d.ts +3 -0
- package/dist/nuxt.js +19 -0
- package/dist/plugin.d.ts +4 -0
- package/dist/plugin.js +22 -0
- package/dist/reset.css +1 -0
- package/dist/reset.d.ts +0 -0
- package/dist/runtime/nuxt-plugin.d.ts +2 -0
- package/dist/runtime/nuxt-plugin.js +24 -0
- package/dist/styles.css +2 -0
- package/dist/styles.d.ts +0 -0
- package/dist/toast-variants.d.ts +13 -0
- package/dist/tooltip-variants.d.ts +10 -0
- package/dist/types/ActionButton.d.ts +32 -0
- package/dist/types/AlertVariant.d.ts +16 -0
- package/dist/types/BadgeVariant.d.ts +16 -0
- package/dist/types/ButtonVariant.d.ts +17 -0
- package/dist/types/Classes.d.ts +1 -1
- package/dist/types/ColumnName.d.ts +1 -1
- package/dist/types/CommonProps.d.ts +66 -279
- package/dist/types/Config.d.ts +84 -0
- package/dist/types/ConfirmVariant.d.ts +15 -0
- package/dist/types/DropdownItemVariant.d.ts +18 -0
- package/dist/types/Icon.d.ts +5 -7
- package/dist/types/IndicatorVariant.d.ts +16 -0
- package/dist/types/InputDirection.d.ts +15 -0
- package/dist/types/ItemAccessor.d.ts +21 -0
- package/dist/types/Placement.d.ts +6 -0
- package/dist/types/ResponsiveSize.d.ts +20 -0
- package/dist/types/SizeScale.d.ts +8 -0
- package/dist/types/ToastVariant.d.ts +17 -0
- package/dist/types/TooltipVariant.d.ts +18 -0
- package/dist/utilities/functions/bytesToUnit.d.ts +2 -0
- package/dist/utilities/functions/bytesToUnit.js +18 -0
- package/dist/utilities/functions/clampPrecision.js +10 -0
- package/dist/utilities/functions/convertDateValue.d.ts +23 -10
- package/dist/utilities/functions/convertDateValue.js +12 -0
- package/dist/utilities/functions/deburr.js +5 -0
- package/dist/utilities/functions/empty.js +5 -0
- package/dist/utilities/functions/flattenTree.d.ts +1 -1
- package/dist/utilities/functions/hash.js +5 -0
- package/dist/utilities/functions/isDateDisabled.d.ts +1 -0
- package/dist/utilities/functions/isDateDisabled.js +20 -0
- package/dist/utilities/functions/isEqual.js +5 -0
- package/dist/utilities/functions/isNotEmpty.js +5 -0
- package/dist/utilities/functions/matchAnyKey.d.ts +1 -1
- package/dist/utilities/functions/matchAnyKey.js +15 -0
- package/dist/utilities/functions/parseSize.d.ts +1 -1
- package/dist/utilities/functions/parseSize.js +15 -0
- package/dist/utilities/functions/percentage.js +11 -0
- package/dist/utilities/functions/pipe.d.ts +1 -1
- package/dist/utilities/functions/reject.d.ts +25 -0
- package/dist/utilities/functions/reject.js +28 -0
- package/dist/utilities/functions/resolveEnumProp.d.ts +19 -0
- package/dist/utilities/functions/resolveEnumProp.js +5 -0
- package/dist/utilities/functions/slotKey.d.ts +13 -0
- package/dist/utilities/functions/slotKey.js +4 -0
- package/dist/utilities/functions/sort.d.ts +2 -2
- package/dist/utilities/functions/sort.js +19 -0
- package/dist/utilities/functions/throttle.js +5 -0
- package/dist/utilities/functions/waitFor.d.ts +9 -2
- package/dist/utilities/functions/waitFor.js +14 -0
- package/dist/utilities/functions/warnRemovedAttrs.d.ts +11 -0
- package/dist/utilities/functions/warnRemovedAttrs.js +20 -0
- package/dist/utilities/functions/when.js +5 -0
- package/dist/utilities/misc/iconsInjectionKey.d.ts +15 -0
- package/dist/utilities/misc/iconsInjectionKey.js +4 -0
- package/dist/utilities/misc/transitions.d.ts +5 -0
- package/dist/utilities/misc/transitions.js +8 -0
- package/dist/utils/injectLibraryStyles.d.ts +6 -0
- package/dist/utils/injectLibraryStyles.js +38 -0
- package/dist/validated/BbCheckbox.vue.d.ts +29 -0
- package/dist/validated/BbCheckbox.vue.js +5 -0
- package/dist/validated/BbCheckbox.vue_vue_type_script_setup_true_lang.js +75 -0
- package/dist/validated/BbCheckboxGroup.vue.d.ts +34 -0
- package/dist/validated/BbCheckboxGroup.vue.js +5 -0
- package/dist/validated/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +76 -0
- package/dist/validated/BbColorInput.vue.d.ts +36 -0
- package/dist/validated/BbColorInput.vue.js +5 -0
- package/dist/validated/BbColorInput.vue_vue_type_script_setup_true_lang.js +71 -0
- package/dist/validated/BbDatePickerInput.vue.d.ts +40 -0
- package/dist/validated/BbDatePickerInput.vue.js +5 -0
- package/dist/validated/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +87 -0
- package/dist/validated/BbDropzone.vue.d.ts +24 -0
- package/dist/validated/BbDropzone.vue.js +5 -0
- package/dist/validated/BbDropzone.vue_vue_type_script_setup_true_lang.js +45 -0
- package/dist/validated/BbForm.vue.d.ts +28 -0
- package/dist/validated/BbForm.vue.js +5 -0
- package/dist/validated/BbForm.vue_vue_type_script_setup_true_lang.js +42 -0
- package/dist/validated/BbNumberInput.vue.d.ts +36 -0
- package/dist/validated/BbNumberInput.vue.js +5 -0
- package/dist/validated/BbNumberInput.vue_vue_type_script_setup_true_lang.js +72 -0
- package/dist/validated/BbRadioGroup.vue.d.ts +34 -0
- package/dist/validated/BbRadioGroup.vue.js +5 -0
- package/dist/validated/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +75 -0
- package/dist/validated/BbRating.vue.d.ts +30 -0
- package/dist/validated/BbRating.vue.js +5 -0
- package/dist/validated/BbRating.vue_vue_type_script_setup_true_lang.js +63 -0
- package/dist/validated/BbSelect.vue.d.ts +46 -0
- package/dist/validated/BbSelect.vue.js +5 -0
- package/dist/validated/BbSelect.vue_vue_type_script_setup_true_lang.js +100 -0
- package/dist/validated/BbSlider.vue.d.ts +36 -0
- package/dist/validated/BbSlider.vue.js +5 -0
- package/dist/validated/BbSlider.vue_vue_type_script_setup_true_lang.js +69 -0
- package/dist/validated/BbSwitch.vue.d.ts +29 -0
- package/dist/validated/BbSwitch.vue.js +5 -0
- package/dist/validated/BbSwitch.vue_vue_type_script_setup_true_lang.js +75 -0
- package/dist/validated/BbSwitchGroup.vue.d.ts +34 -0
- package/dist/validated/BbSwitchGroup.vue.js +5 -0
- package/dist/validated/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +76 -0
- package/dist/validated/BbTag.vue.d.ts +36 -0
- package/dist/validated/BbTag.vue.js +5 -0
- package/dist/validated/BbTag.vue_vue_type_script_setup_true_lang.js +72 -0
- package/dist/validated/BbTextInput.vue.d.ts +36 -0
- package/dist/validated/BbTextInput.vue.js +5 -0
- package/dist/validated/BbTextInput.vue_vue_type_script_setup_true_lang.js +72 -0
- package/dist/validated/BbTextarea.vue.d.ts +36 -0
- package/dist/validated/BbTextarea.vue.js +5 -0
- package/dist/validated/BbTextarea.vue_vue_type_script_setup_true_lang.js +70 -0
- package/dist/validated/BbTimePickerInput.vue.d.ts +36 -0
- package/dist/validated/BbTimePickerInput.vue.js +5 -0
- package/dist/validated/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +78 -0
- package/dist/validated/index.d.ts +29 -0
- package/dist/validated/useValidatedField.d.ts +52 -0
- package/dist/validated/useValidatedField.js +51 -0
- package/dist/validated.js +21 -0
- package/dist/vite-plugin.d.ts +217 -0
- package/dist/vite.js +530 -0
- package/llms.txt +105 -0
- package/package.json +161 -59
- package/scripts/lib/__fixtures__/validated-manifest.json +65 -0
- package/scripts/lib/ensure-manifest.mjs +39 -0
- package/scripts/lib/eslint-plugin-autofix.node.test.mjs +109 -0
- package/scripts/lib/eslint-plugin.mjs +285 -0
- package/scripts/lib/eslint-plugin.node.test.mjs +161 -0
- package/scripts/lib/html-attributes.mjs +191 -0
- package/scripts/lib/mcp-config.mjs +126 -0
- package/scripts/lib/migrate-fix.mjs +115 -0
- package/scripts/lib/validate-bb-markup.mjs +421 -0
- package/dist/ai/BaseButton.md +0 -449
- package/dist/ai/BaseCheckbox.md +0 -512
- package/dist/ai/BaseCheckboxGroup.md +0 -597
- package/dist/ai/BaseColorInput.md +0 -461
- package/dist/ai/BaseDatePicker.md +0 -739
- package/dist/ai/BaseDatePickerInput.md +0 -1517
- package/dist/ai/BaseDialog.md +0 -610
- package/dist/ai/BaseInputContainer.md +0 -570
- package/dist/ai/BaseNumberInput.md +0 -509
- package/dist/ai/BaseRadio.md +0 -405
- package/dist/ai/BaseRadioGroup.md +0 -535
- package/dist/ai/BaseRating.md +0 -489
- package/dist/ai/BaseSelect.md +0 -1742
- package/dist/ai/BaseSlider.md +0 -871
- package/dist/ai/BaseSwitch.md +0 -322
- package/dist/ai/BaseSwitchGroup.md +0 -298
- package/dist/ai/BaseTag.md +0 -623
- package/dist/ai/BaseTextInput.md +0 -392
- package/dist/ai/BaseTextarea.md +0 -398
- package/dist/ai/BbChip.md +0 -147
- package/dist/ai/BbIntersection.md +0 -120
- package/dist/ai/BbRatio.md +0 -61
- package/dist/ai/BbRows.md +0 -307
- package/dist/ai/BbTab.md +0 -950
- package/dist/ai/CommonInputInnerContainer.md +0 -414
- package/dist/ai/CommonInputOuterContainer.md +0 -55
- package/dist/components/BaseButton/BaseButton.vue.d.ts +0 -14
- package/dist/components/BaseButton/types.d.ts +0 -159
- package/dist/components/BaseCheckbox/BaseCheckbox.vue.d.ts +0 -39
- package/dist/components/BaseCheckbox/types.d.ts +0 -213
- package/dist/components/BaseCheckboxGroup/BaseCheckboxGroup.vue.d.ts +0 -30
- package/dist/components/BaseCheckboxGroup/types.d.ts +0 -282
- package/dist/components/BaseColorInput/BaseColorInput.vue.d.ts +0 -35
- package/dist/components/BaseColorInput/ColorPalette.vue.d.ts +0 -13
- package/dist/components/BaseColorInput/types.d.ts +0 -233
- package/dist/components/BaseDatePicker/BaseDatePickerHeader.vue.d.ts +0 -15
- package/dist/components/BaseDatePicker/BaseDatePickerInputDaySelector.vue.d.ts +0 -58
- package/dist/components/BaseDatePicker/BaseDatePickerMonthSelector.vue.d.ts +0 -12
- package/dist/components/BaseDatePicker/BaseDatePickerYearSelector.vue.d.ts +0 -12
- package/dist/components/BaseDatePicker/types.d.ts +0 -100
- package/dist/components/BaseDatePickerInput/BaseDatePickerInput.vue.d.ts +0 -26
- package/dist/components/BaseDatePickerInput/types.d.ts +0 -206
- package/dist/components/BaseDialog/BaseDialog.vue.d.ts +0 -37
- package/dist/components/BaseDialog/types.d.ts +0 -180
- package/dist/components/BaseInputContainer/BaseInputContainer.vue.d.ts +0 -18
- package/dist/components/BaseInputContainer/types.d.ts +0 -126
- package/dist/components/BaseNumberInput/BaseNumberInput.vue.d.ts +0 -46
- package/dist/components/BaseNumberInput/types.d.ts +0 -191
- package/dist/components/BaseRadio/BaseRadio.vue.d.ts +0 -31
- package/dist/components/BaseRadio/types.d.ts +0 -173
- package/dist/components/BaseRadioGroup/BaseRadioGroup.vue.d.ts +0 -30
- package/dist/components/BaseRadioGroup/types.d.ts +0 -240
- package/dist/components/BaseRating/BaseRating.vue.d.ts +0 -35
- package/dist/components/BaseRating/types.d.ts +0 -144
- package/dist/components/BaseSelect/BaseSelect.vue.d.ts +0 -28
- package/dist/components/BaseSelect/types.d.ts +0 -470
- package/dist/components/BaseSlider/BaseSlider.vue.d.ts +0 -38
- package/dist/components/BaseSlider/types.d.ts +0 -201
- package/dist/components/BaseSwitch/BaseSwitch.vue.d.ts +0 -34
- package/dist/components/BaseSwitch/types.d.ts +0 -25
- package/dist/components/BaseSwitchGroup/BaseSwitchGroup.vue.d.ts +0 -30
- package/dist/components/BaseSwitchGroup/types.d.ts +0 -8
- package/dist/components/BaseTag/BaseTag.vue.d.ts +0 -37
- package/dist/components/BaseTag/types.d.ts +0 -136
- package/dist/components/BaseTextInput/BaseTextInput.vue.d.ts +0 -33
- package/dist/components/BaseTextInput/types.d.ts +0 -166
- package/dist/components/BaseTextarea/BaseTextarea.vue.d.ts +0 -31
- package/dist/components/BaseTextarea/types.d.ts +0 -151
- package/dist/components/BbChip/BbChip.vue.d.ts +0 -17
- package/dist/components/BbChip/types.d.ts +0 -23
- package/dist/components/BbIntersection/BbIntersection.vue.d.ts +0 -23
- package/dist/components/BbIntersection/types.d.ts +0 -36
- package/dist/components/BbRatio/BbRatio.vue.d.ts +0 -14
- package/dist/components/BbRatio/types.d.ts +0 -15
- package/dist/components/BbRows/BbRows.vue.d.ts +0 -62
- package/dist/components/BbRows/types.d.ts +0 -21
- package/dist/components/BbTab/BbTab.vue.d.ts +0 -27
- package/dist/components/BbTab/types.d.ts +0 -186
- package/dist/components/CommonInputInnerContainer/CommonInputInnerContainer.vue.d.ts +0 -15
- package/dist/components/CommonInputInnerContainer/types.d.ts +0 -47
- package/dist/components/CommonInputOuterContainer/CommonInputOuterContainer.vue.d.ts +0 -11
- package/dist/components/CommonInputOuterContainer/types.d.ts +0 -16
- package/dist/composables/useModalsState.d.ts +0 -5
- package/dist/composables/useQueue.d.ts +0 -58
- package/dist/composables/useWizard.d.ts +0 -85
- package/dist/i18n/en.d.ts +0 -67
- package/dist/i18n/it.d.ts +0 -67
- package/dist/index.css +0 -2
- package/dist/index100.js +0 -6
- package/dist/index101.js +0 -300
- package/dist/index102.js +0 -16
- package/dist/index103.js +0 -16
- package/dist/index104.js +0 -27
- package/dist/index109.js +0 -19
- package/dist/index11.js +0 -42
- package/dist/index110.js +0 -12
- package/dist/index111.js +0 -19
- package/dist/index112.js +0 -25
- package/dist/index114.js +0 -7
- package/dist/index115.js +0 -241
- package/dist/index116.js +0 -5
- package/dist/index117.js +0 -42
- package/dist/index118.js +0 -5
- package/dist/index119.js +0 -53
- package/dist/index120.js +0 -5
- package/dist/index121.js +0 -32
- package/dist/index122.js +0 -5
- package/dist/index124.js +0 -52
- package/dist/index125.js +0 -5
- package/dist/index126.js +0 -223
- package/dist/index128.js +0 -6
- package/dist/index129.js +0 -162
- package/dist/index13.js +0 -92
- package/dist/index130.js +0 -25
- package/dist/index131.js +0 -51
- package/dist/index132.js +0 -5
- package/dist/index133.js +0 -607
- package/dist/index135.js +0 -6
- package/dist/index136.js +0 -14
- package/dist/index137.js +0 -153
- package/dist/index139.js +0 -6
- package/dist/index14.js +0 -306
- package/dist/index140.js +0 -224
- package/dist/index141.js +0 -5
- package/dist/index143.js +0 -128
- package/dist/index145.js +0 -6
- package/dist/index146.js +0 -8
- package/dist/index147.js +0 -182
- package/dist/index149.js +0 -6
- package/dist/index15.js +0 -10
- package/dist/index151.js +0 -4
- package/dist/index152.js +0 -95
- package/dist/index154.js +0 -6
- package/dist/index155.js +0 -168
- package/dist/index157.js +0 -6
- package/dist/index158.js +0 -145
- package/dist/index16.js +0 -59
- package/dist/index160.js +0 -6
- package/dist/index161.js +0 -53
- package/dist/index163.js +0 -6
- package/dist/index164.js +0 -16
- package/dist/index166.js +0 -35
- package/dist/index168.js +0 -6
- package/dist/index169.js +0 -89
- package/dist/index171.js +0 -6
- package/dist/index172.js +0 -82
- package/dist/index174.js +0 -6
- package/dist/index175.js +0 -38
- package/dist/index176.js +0 -461
- package/dist/index177.js +0 -28
- package/dist/index178.js +0 -66
- package/dist/index18.js +0 -35
- package/dist/index180.js +0 -162
- package/dist/index181.js +0 -5
- package/dist/index182.js +0 -217
- package/dist/index183.js +0 -5
- package/dist/index184.js +0 -112
- package/dist/index185.js +0 -5
- package/dist/index186.js +0 -459
- package/dist/index188.js +0 -6
- package/dist/index19.js +0 -4
- package/dist/index192.js +0 -268
- package/dist/index194.js +0 -6
- package/dist/index195.js +0 -124
- package/dist/index197.js +0 -6
- package/dist/index198.js +0 -174
- package/dist/index2.js +0 -20
- package/dist/index20.js +0 -9
- package/dist/index200.js +0 -6
- package/dist/index201.js +0 -224
- package/dist/index203.js +0 -6
- package/dist/index204.js +0 -135
- package/dist/index206.js +0 -6
- package/dist/index207.js +0 -5
- package/dist/index208.js +0 -170
- package/dist/index21.js +0 -35
- package/dist/index210.js +0 -6
- package/dist/index211.js +0 -37
- package/dist/index213.js +0 -6
- package/dist/index214.js +0 -63
- package/dist/index216.js +0 -6
- package/dist/index217.js +0 -74
- package/dist/index219.js +0 -6
- package/dist/index22.js +0 -6
- package/dist/index220.js +0 -65
- package/dist/index222.js +0 -6
- package/dist/index223.js +0 -67
- package/dist/index225.js +0 -6
- package/dist/index226.js +0 -41
- package/dist/index228.js +0 -6
- package/dist/index229.js +0 -10
- package/dist/index23.js +0 -7
- package/dist/index230.js +0 -22
- package/dist/index232.js +0 -8
- package/dist/index233.js +0 -297
- package/dist/index235.js +0 -6
- package/dist/index236.js +0 -47
- package/dist/index237.js +0 -165
- package/dist/index239.js +0 -6
- package/dist/index24.js +0 -9
- package/dist/index241.js +0 -159
- package/dist/index243.js +0 -6
- package/dist/index244.js +0 -134
- package/dist/index246.js +0 -6
- package/dist/index247.js +0 -167
- package/dist/index249.js +0 -6
- package/dist/index25.js +0 -24
- package/dist/index250.js +0 -147
- package/dist/index252.js +0 -6
- package/dist/index253.js +0 -35
- package/dist/index255.js +0 -6
- package/dist/index256.js +0 -65
- package/dist/index258.js +0 -6
- package/dist/index259.js +0 -19
- package/dist/index260.js +0 -5
- package/dist/index261.js +0 -160
- package/dist/index263.js +0 -6
- package/dist/index264.js +0 -60
- package/dist/index266.js +0 -6
- package/dist/index267.js +0 -134
- package/dist/index269.js +0 -6
- package/dist/index27.js +0 -4
- package/dist/index271.js +0 -206
- package/dist/index273.js +0 -6
- package/dist/index274.js +0 -85
- package/dist/index275.js +0 -5
- package/dist/index276.js +0 -55
- package/dist/index277.js +0 -5
- package/dist/index278.js +0 -164
- package/dist/index28.js +0 -8
- package/dist/index280.js +0 -6
- package/dist/index281.js +0 -145
- package/dist/index283.js +0 -6
- package/dist/index284.js +0 -11
- package/dist/index285.js +0 -200
- package/dist/index287.js +0 -6
- package/dist/index288.js +0 -241
- package/dist/index29.js +0 -7
- package/dist/index290.js +0 -6
- package/dist/index291.js +0 -21
- package/dist/index293.js +0 -6
- package/dist/index294.js +0 -125
- package/dist/index296.js +0 -6
- package/dist/index297.js +0 -161
- package/dist/index299.js +0 -6
- package/dist/index30.js +0 -118
- package/dist/index300.js +0 -127
- package/dist/index302.js +0 -6
- package/dist/index303.js +0 -20
- package/dist/index305.js +0 -6
- package/dist/index306.js +0 -116
- package/dist/index307.js +0 -5
- package/dist/index308.js +0 -507
- package/dist/index31.js +0 -10
- package/dist/index310.js +0 -6
- package/dist/index311.js +0 -196
- package/dist/index313.js +0 -6
- package/dist/index314.js +0 -142
- package/dist/index316.js +0 -6
- package/dist/index317.js +0 -134
- package/dist/index319.js +0 -6
- package/dist/index32.js +0 -28
- package/dist/index320.js +0 -162
- package/dist/index322.js +0 -6
- package/dist/index323.js +0 -319
- package/dist/index325.js +0 -6
- package/dist/index326.js +0 -40
- package/dist/index327.js +0 -43
- package/dist/index328.js +0 -665
- package/dist/index33.js +0 -5
- package/dist/index330.js +0 -6
- package/dist/index331.js +0 -155
- package/dist/index333.js +0 -6
- package/dist/index334.js +0 -142
- package/dist/index336.js +0 -6
- package/dist/index337.js +0 -155
- package/dist/index339.js +0 -6
- package/dist/index34.js +0 -112
- package/dist/index340.js +0 -58
- package/dist/index341.js +0 -5
- package/dist/index342.js +0 -20
- package/dist/index344.js +0 -6
- package/dist/index345.js +0 -142
- package/dist/index347.js +0 -6
- package/dist/index349.js +0 -109
- package/dist/index351.js +0 -6
- package/dist/index353.js +0 -24
- package/dist/index354.js +0 -23
- package/dist/index355.js +0 -839
- package/dist/index356.js +0 -474
- package/dist/index357.js +0 -52
- package/dist/index358.js +0 -7
- package/dist/index36.js +0 -6
- package/dist/index38.js +0 -63
- package/dist/index39.js +0 -63
- package/dist/index40.js +0 -9
- package/dist/index42.js +0 -8
- package/dist/index43.js +0 -179
- package/dist/index44.js +0 -21
- package/dist/index46.js +0 -385
- package/dist/index48.js +0 -6
- package/dist/index49.js +0 -33
- package/dist/index5.js +0 -34
- package/dist/index50.js +0 -12
- package/dist/index51.js +0 -8
- package/dist/index52.js +0 -106
- package/dist/index53.js +0 -330
- package/dist/index54.js +0 -97
- package/dist/index55.js +0 -328
- package/dist/index56.js +0 -28
- package/dist/index57.js +0 -102
- package/dist/index58.js +0 -157
- package/dist/index6.js +0 -38
- package/dist/index60.js +0 -6
- package/dist/index61.js +0 -131
- package/dist/index62.js +0 -5
- package/dist/index65.js +0 -35
- package/dist/index66.js +0 -26
- package/dist/index68.js +0 -6
- package/dist/index69.js +0 -54
- package/dist/index7.js +0 -58
- package/dist/index71.js +0 -6
- package/dist/index72.js +0 -14
- package/dist/index74.js +0 -6
- package/dist/index75.js +0 -159
- package/dist/index77.js +0 -6
- package/dist/index78.js +0 -4
- package/dist/index79.js +0 -4
- package/dist/index80.js +0 -54
- package/dist/index81.js +0 -5
- package/dist/index82.js +0 -5
- package/dist/index83.js +0 -141
- package/dist/index85.js +0 -6
- package/dist/index86.js +0 -65
- package/dist/index88.js +0 -6
- package/dist/index89.js +0 -30
- package/dist/index9.js +0 -11
- package/dist/index90.js +0 -19
- package/dist/index91.js +0 -17
- package/dist/index92.js +0 -9
- package/dist/index93.js +0 -34
- package/dist/index95.js +0 -16
- package/dist/index96.js +0 -10
- package/dist/index97.js +0 -18
- package/dist/index98.js +0 -189
- package/dist/types/VoidHtmlElements.d.ts +0 -1
- package/dist/utilities/functions/add.d.ts +0 -1
- package/dist/utilities/functions/booleanishToBoolean.d.ts +0 -6
- package/dist/utilities/functions/capitalize.d.ts +0 -4
- package/dist/utilities/functions/cloneDeep.d.ts +0 -1
- package/dist/utilities/functions/debounce.d.ts +0 -1
- package/dist/utilities/functions/drop.d.ts +0 -1
- package/dist/utilities/functions/exceedsPrecision.d.ts +0 -1
- package/dist/utilities/functions/findRight.d.ts +0 -4
- package/dist/utilities/functions/findRightIndex.d.ts +0 -4
- package/dist/utilities/functions/flow.d.ts +0 -1
- package/dist/utilities/functions/getHueFromRGB.d.ts +0 -9
- package/dist/utilities/functions/groupBy.d.ts +0 -6
- package/dist/utilities/functions/gt.d.ts +0 -7
- package/dist/utilities/functions/hexToRGB.d.ts +0 -7
- package/dist/utilities/functions/hslToHex.d.ts +0 -1
- package/dist/utilities/functions/includes.d.ts +0 -1
- package/dist/utilities/functions/initial.d.ts +0 -1
- package/dist/utilities/functions/isCssColor.d.ts +0 -5
- package/dist/utilities/functions/lt.d.ts +0 -7
- package/dist/utilities/functions/makeUrl.d.ts +0 -1
- package/dist/utilities/functions/mapKeys.d.ts +0 -5
- package/dist/utilities/functions/mapValues.d.ts +0 -1
- package/dist/utilities/functions/matchesPropertyInsensitive.d.ts +0 -1
- package/dist/utilities/functions/max.d.ts +0 -2
- package/dist/utilities/functions/mean.d.ts +0 -4
- package/dist/utilities/functions/merge.d.ts +0 -11
- package/dist/utilities/functions/millisecondsTo.d.ts +0 -1
- package/dist/utilities/functions/negate.d.ts +0 -4
- package/dist/utilities/functions/normalizeItemGroups.d.ts +0 -13
- package/dist/utilities/functions/omit.d.ts +0 -2
- package/dist/utilities/functions/overEvery.d.ts +0 -4
- package/dist/utilities/functions/pick.d.ts +0 -1
- package/dist/utilities/functions/replace.d.ts +0 -1
- package/dist/utilities/functions/replaceInTree.d.ts +0 -4
- package/dist/utilities/functions/retry.d.ts +0 -5
- package/dist/utilities/functions/roundToTheNearest.d.ts +0 -8
- package/dist/utilities/functions/set.d.ts +0 -15
- package/dist/utilities/functions/stub.d.ts +0 -6
- package/dist/utilities/functions/transposePercent.d.ts +0 -9
- package/dist/utilities/functions/tryTo.d.ts +0 -2
- package/dist/utilities/functions/uniqBy.d.ts +0 -1
- /package/dist/{index64.js → _virtual/_plugin-vue_export-helper.js} +0 -0
- /package/dist/components/{BaseButton → BbBaseButton}/RouterComponent.vue.d.ts +0 -0
- /package/dist/components/{BaseDatePicker/BaseDatePicker.vue.d.ts → BbBaseDatePicker/BbBaseDatePicker.vue.d.ts} +0 -0
- /package/dist/{index165.js → composables/useArray.js} +0 -0
- /package/dist/{index17.js → composables/useFrameworkDetection.js} +0 -0
- /package/dist/{index12.js → composables/useId.js} +0 -0
- /package/dist/{index352.js → directives/createPopoverDirective.js} +0 -0
- /package/dist/{index107.js → utilities/functions/chunk.js} +0 -0
- /package/dist/{index8.js → utilities/functions/clamp.js} +0 -0
- /package/dist/{index150.js → utilities/functions/curry.js} +0 -0
- /package/dist/{index45.js → utilities/functions/extractDomContainer.js} +0 -0
- /package/dist/{index270.js → utilities/functions/findInTree.js} +0 -0
- /package/dist/{index348.js → utilities/functions/flattenTree.js} +0 -0
- /package/dist/{index41.js → utilities/functions/get.js} +0 -0
- /package/dist/{index189.js → utilities/functions/head.js} +0 -0
- /package/dist/{index108.js → utilities/functions/identity.js} +0 -0
- /package/dist/{index179.js → utilities/functions/indexBy.js} +0 -0
- /package/dist/{index37.js → utilities/functions/isHex.js} +0 -0
- /package/dist/{index94.js → utilities/functions/isNil.js} +0 -0
- /package/dist/{index26.js → utilities/functions/isNotNil.js} +0 -0
- /package/dist/{index105.js → utilities/functions/last.js} +0 -0
- /package/dist/{index142.js → utilities/functions/noop.js} +0 -0
- /package/dist/{index231.js → utilities/functions/parseWidthString.js} +0 -0
- /package/dist/{index240.js → utilities/functions/pickBy.js} +0 -0
- /package/dist/{index123.js → utilities/functions/range.js} +0 -0
- /package/dist/{index190.js → utilities/functions/snapToStep.js} +0 -0
- /package/dist/{index191.js → utilities/functions/transpose.js} +0 -0
- /package/dist/{index106.js → utilities/functions/validateDateFormat.js} +0 -0
- /package/dist/{index10.js → utilities/functions/wait.js} +0 -0
package/dist/ai/BbPagination.md
CHANGED
|
@@ -1,561 +1,509 @@
|
|
|
1
1
|
# BbPagination
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## Agent Contract
|
|
4
|
+
|
|
5
|
+
- Safety level: **Consumer API**
|
|
6
|
+
- Group: **Navigation**
|
|
7
|
+
- Description: Navigates paginated data sets by page index.
|
|
8
|
+
- Usage rule: Prefer this component for consumer-facing implementations.
|
|
9
|
+
- Implementation source (only when the contract below is not enough): [source/BbPagination.md](./source/BbPagination.md)
|
|
10
|
+
|
|
11
|
+
## Usage & Guidelines
|
|
12
|
+
|
|
13
|
+
### When to use
|
|
14
|
+
|
|
15
|
+
Reach for `BbPagination` when a list is too long for one screen and the user
|
|
16
|
+
needs deterministic, jump-anywhere access to any page — search results, an
|
|
17
|
+
invoice ledger, an audit log. Prefer it over infinite scroll whenever people
|
|
18
|
+
need to _find their place again_ or reference "page 4".
|
|
19
|
+
|
|
20
|
+
It is a pure page selector: it does not fetch, slice, or store your data — you
|
|
21
|
+
own that and drive it from the page it reports. For hierarchy use
|
|
22
|
+
`BbBreadcrumbs`; for switching peer views use `BbTabs`.
|
|
23
|
+
|
|
24
|
+
### Control the current page with `v-model`
|
|
25
|
+
|
|
26
|
+
`v-model` is the current page (1-based); `total-pages` sets the range (a number
|
|
27
|
+
or numeric string — handy when it comes straight from an API). The control
|
|
28
|
+
clamps out-of-range pages back into `1..totalPages` (assign `99` and the model
|
|
29
|
+
snaps back), disables _Previous_ on page 1 and _Next_ on the last page, and
|
|
30
|
+
renders the whole range when it fits. With a single page every page button is
|
|
31
|
+
disabled — pagination for one page is inert by design, so consider hiding the
|
|
32
|
+
control instead.
|
|
33
|
+
|
|
34
|
+
**A bound page selector**
|
|
35
|
+
|
|
36
|
+
```vue
|
|
37
|
+
<div class="space-y-2">
|
|
38
|
+
<BbPagination v-model="state.page" :total-pages="24" />
|
|
39
|
+
<p class="text-xs text-gray-500">On page {{ state.page ?? 1 }} of 24.</p>
|
|
40
|
+
</div>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
The only event is `update:modelValue` (the new 1-based page) — everything else
|
|
44
|
+
(which buttons disable, where the ellipses go) is handled internally. Listen to
|
|
45
|
+
the model, not to clicks.
|
|
46
|
+
|
|
47
|
+
### Folding, fit and alignment
|
|
48
|
+
|
|
49
|
+
Long ranges fold around the current page with ellipses — you never compute the
|
|
50
|
+
window yourself. Three knobs shape the strip:
|
|
51
|
+
|
|
52
|
+
- `max-size` (default 6) caps how many **page** buttons show at once — the
|
|
53
|
+
count excludes the ellipses and _Previous_/_Next_, and has a ±1 tolerance so
|
|
54
|
+
odd/even windows stay balanced around the current page.
|
|
55
|
+
- The strip also **fits itself**: a `ResizeObserver` drops page buttons (never
|
|
56
|
+
below 3) when the container is too narrow and adds them back when space
|
|
57
|
+
returns, so `max-size` is a maximum, not a promise.
|
|
58
|
+
- `align` places the control within its full-width row: `right` (default),
|
|
59
|
+
`center`, or `left`.
|
|
60
|
+
- `ellipsis` swaps the `...` placeholder text (the ellipsis buttons themselves
|
|
61
|
+
are always disabled).
|
|
62
|
+
|
|
63
|
+
**Long ranges collapse with an ellipsis**
|
|
64
|
+
|
|
65
|
+
```vue
|
|
66
|
+
<BbPagination
|
|
67
|
+
v-model="state.page"
|
|
68
|
+
align="center"
|
|
69
|
+
:max-size="7"
|
|
70
|
+
:total-pages="42"
|
|
71
|
+
/>
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Wire it to your data
|
|
75
|
+
|
|
76
|
+
Pagination reports the page; your code turns that into the visible slice.
|
|
77
|
+
Give it the count the server reports — either `total-pages` directly, or
|
|
78
|
+
`total-items` with `per-page` and the control computes
|
|
79
|
+
`ceil(totalItems / perPage)` itself (when both are present, the derived count
|
|
80
|
+
wins over `total-pages`). Watch the page and fetch (or slice) when it changes. If you need to freeze the control — no data yet, a
|
|
81
|
+
blocking error, or to stop a user outrunning an in-flight request — set
|
|
82
|
+
`disabled`. Pagination has no `loading` state of its own: it is a page selector,
|
|
83
|
+
not a data-fetching surface, so keep the in-flight/loading affordance on the
|
|
84
|
+
list or table it drives.
|
|
85
|
+
|
|
86
|
+
**Repaginating a list**
|
|
87
|
+
|
|
88
|
+
```vue
|
|
89
|
+
<template>
|
|
90
|
+
<!-- Manual wire-up: the pager reports the page; you slice (or fetch) from it.
|
|
91
|
+
Prefer this over `table-id` when the list is not a BbTable. -->
|
|
92
|
+
<div
|
|
93
|
+
class="max-w-md overflow-hidden rounded-[var(--bb-radius)] border border-[color:var(--bb-border)]"
|
|
94
|
+
>
|
|
95
|
+
<ul class="divide-y divide-[color:var(--bb-border)]">
|
|
96
|
+
<li
|
|
97
|
+
v-for="invoice in pageItems"
|
|
98
|
+
:key="invoice.id"
|
|
99
|
+
class="flex items-center justify-between gap-2 px-3 py-2 text-sm"
|
|
100
|
+
>
|
|
101
|
+
<span class="font-medium tabular-nums">{{ invoice.number }}</span>
|
|
102
|
+
<span class="min-w-0 flex-1 truncate text-gray-500">{{
|
|
103
|
+
invoice.customer
|
|
104
|
+
}}</span>
|
|
105
|
+
<span class="shrink-0 text-xs tabular-nums text-gray-500">{{
|
|
106
|
+
invoice.amount
|
|
107
|
+
}}</span>
|
|
108
|
+
</li>
|
|
109
|
+
</ul>
|
|
110
|
+
<div
|
|
111
|
+
class="flex flex-wrap items-center justify-between gap-2 border-t border-[color:var(--bb-border)] px-3 py-2"
|
|
112
|
+
>
|
|
113
|
+
<p class="text-xs text-gray-500" data-test="range">
|
|
114
|
+
{{ rangeStart }}–{{ rangeEnd }} of {{ invoices.length }}
|
|
115
|
+
</p>
|
|
116
|
+
<BbPagination
|
|
117
|
+
v-model="page"
|
|
118
|
+
label="Invoices pagination"
|
|
119
|
+
:per-page="perPage"
|
|
120
|
+
:total-items="invoices.length"
|
|
121
|
+
/>
|
|
122
|
+
</div>
|
|
123
|
+
</div>
|
|
124
|
+
</template>
|
|
125
|
+
<script setup lang="ts">
|
|
126
|
+
import { computed, ref } from 'vue';
|
|
127
|
+
import { BbPagination } from 'bitboss-ui';
|
|
128
|
+
|
|
129
|
+
type Invoice = { id: number; number: string; customer: string; amount: string };
|
|
130
|
+
|
|
131
|
+
const customers = [
|
|
132
|
+
'Northwind Traders',
|
|
133
|
+
'Globex',
|
|
134
|
+
'Initech',
|
|
135
|
+
'Umbrella',
|
|
136
|
+
'Soylent',
|
|
137
|
+
'Hooli',
|
|
138
|
+
];
|
|
139
|
+
const invoices: Invoice[] = Array.from({ length: 47 }, (_, index) => ({
|
|
140
|
+
id: index + 1,
|
|
141
|
+
number: `INV-${1042 + index}`,
|
|
142
|
+
customer: customers[index % customers.length],
|
|
143
|
+
amount: `€${(480 + index * 35).toLocaleString('en-IE')}.00`,
|
|
144
|
+
}));
|
|
145
|
+
|
|
146
|
+
const perPage = 5;
|
|
147
|
+
const page = ref(1);
|
|
148
|
+
|
|
149
|
+
// The page reported by BbPagination is all we need to slice the data ourselves.
|
|
150
|
+
const rangeStart = computed(() => (page.value - 1) * perPage + 1);
|
|
151
|
+
const rangeEnd = computed(() =>
|
|
152
|
+
Math.min(page.value * perPage, invoices.length)
|
|
153
|
+
);
|
|
154
|
+
const pageItems = computed(() =>
|
|
155
|
+
invoices.slice(rangeStart.value - 1, rangeEnd.value)
|
|
156
|
+
);
|
|
157
|
+
</script>
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Custom button content via slots
|
|
161
|
+
|
|
162
|
+
Four slots restyle the buttons without touching their behavior: `item` receives
|
|
163
|
+
`{ item, active, disabled }` for each page number, `previous` / `next` replace
|
|
164
|
+
the chevrons (no scope — keep the content self-describing for screen readers),
|
|
165
|
+
and `ellipsis` replaces the fold marker. The buttons stay real buttons with all
|
|
166
|
+
their wiring; the slots only swap what is painted inside them.
|
|
167
|
+
|
|
168
|
+
**Wordy controls for a document reader**
|
|
4
169
|
|
|
5
170
|
```vue
|
|
6
171
|
<template>
|
|
7
172
|
<div
|
|
8
|
-
|
|
9
|
-
class="bb-pagination"
|
|
10
|
-
:class="{
|
|
11
|
-
[`bb-pagination--${align}`]: true,
|
|
12
|
-
'bb-pagination--disabled': disabled,
|
|
13
|
-
}"
|
|
173
|
+
class="max-w-sm space-y-2 rounded-[var(--bb-radius)] border border-[color:var(--bb-border)] p-3"
|
|
14
174
|
>
|
|
15
|
-
<
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
</
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
<template v-if="item.ellipsis === true">
|
|
39
|
-
<slot name="ellipsis">
|
|
40
|
-
<span class="bb-pagination__page-label">{{
|
|
41
|
-
props.ellipsis
|
|
42
|
-
}}</span>
|
|
43
|
-
</slot>
|
|
44
|
-
</template>
|
|
45
|
-
<template v-else>
|
|
46
|
-
<slot
|
|
47
|
-
:active="item.active"
|
|
48
|
-
:disabled="item.disabled"
|
|
49
|
-
:item="item.key"
|
|
50
|
-
name="item"
|
|
51
|
-
>
|
|
52
|
-
<span class="bb-pagination__page-label">{{ item.key }}</span>
|
|
53
|
-
</slot>
|
|
54
|
-
</template>
|
|
55
|
-
</BaseButton>
|
|
56
|
-
</li>
|
|
57
|
-
<li>
|
|
58
|
-
<BaseButton v-bind="nextAttributes">
|
|
59
|
-
<slot name="next">
|
|
60
|
-
<span class="bb-pagination__page-label sr-only">{{
|
|
61
|
-
t('pagination.next').value
|
|
62
|
-
}}</span>
|
|
63
|
-
<svg
|
|
64
|
-
class="bb-pagination__page-chevron"
|
|
65
|
-
viewBox="0 0 24 24"
|
|
66
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
67
|
-
>
|
|
68
|
-
<path
|
|
69
|
-
d="M7.41 8.58L12 13.17l4.59-4.59L18 10l-6 6l-6-6z"
|
|
70
|
-
fill="currentColor"
|
|
71
|
-
/>
|
|
72
|
-
</svg>
|
|
73
|
-
</slot>
|
|
74
|
-
</BaseButton>
|
|
75
|
-
</li>
|
|
76
|
-
</ul>
|
|
77
|
-
</nav>
|
|
175
|
+
<div
|
|
176
|
+
class="rounded-[var(--bb-radius)] bg-[color:var(--bb-muted)] px-3 py-8 text-center text-sm text-gray-500"
|
|
177
|
+
>
|
|
178
|
+
Sheet {{ sheet }} of 18 · Q3 board pack
|
|
179
|
+
</div>
|
|
180
|
+
<BbPagination
|
|
181
|
+
v-model="sheet"
|
|
182
|
+
align="left"
|
|
183
|
+
label="Document sheets"
|
|
184
|
+
:max-size="5"
|
|
185
|
+
:total-pages="18"
|
|
186
|
+
>
|
|
187
|
+
<template #previous><span class="px-1 text-xs">Prev</span></template>
|
|
188
|
+
<template #next><span class="px-1 text-xs">Next</span></template>
|
|
189
|
+
<template #item="{ item, active }">
|
|
190
|
+
<span
|
|
191
|
+
class="px-0.5 text-xs"
|
|
192
|
+
:class="active && 'font-semibold underline'"
|
|
193
|
+
>
|
|
194
|
+
{{ item }}
|
|
195
|
+
</span>
|
|
196
|
+
</template>
|
|
197
|
+
</BbPagination>
|
|
78
198
|
</div>
|
|
79
199
|
</template>
|
|
80
200
|
|
|
81
201
|
<script setup lang="ts">
|
|
82
|
-
import {
|
|
83
|
-
import {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
BbPaginationEvents,
|
|
90
|
-
BbPaginationSlots,
|
|
91
|
-
} from './types';
|
|
92
|
-
|
|
93
|
-
const props = withDefaults(defineProps<BbPaginationProps>(), {
|
|
94
|
-
align: 'right',
|
|
95
|
-
ellipsis: '...',
|
|
96
|
-
label: 'Paginazione',
|
|
97
|
-
maxSize: 6,
|
|
98
|
-
querykey: 'page',
|
|
99
|
-
totalPages: 1,
|
|
100
|
-
});
|
|
202
|
+
import { ref } from 'vue';
|
|
203
|
+
import { BbPagination } from 'bitboss-ui';
|
|
204
|
+
|
|
205
|
+
// The reader tracks which sheet is visible; the slots only restyle the buttons.
|
|
206
|
+
const sheet = ref(1);
|
|
207
|
+
</script>
|
|
208
|
+
```
|
|
101
209
|
|
|
102
|
-
|
|
210
|
+
### Pair with a `BbTable` through a shared id
|
|
103
211
|
|
|
104
|
-
|
|
212
|
+
When the list is a `BbTable`, skip the manual wiring: give the table an `id`
|
|
213
|
+
and the pagination the matching `table-id`. Both components publish their
|
|
214
|
+
pagination props into the shared table context (see `useBbTableContext`), so
|
|
215
|
+
the page count is derived automatically and the current page stays two-way
|
|
216
|
+
synced. No `v-model` needed; mount order doesn't matter, and a page already
|
|
217
|
+
present in the context wins at mount.
|
|
105
218
|
|
|
106
|
-
|
|
219
|
+
The props are symmetric: `page`, `per-page`, `total-items`, and `total-pages`
|
|
220
|
+
are accepted by both components, so the server's fields can be passed to
|
|
221
|
+
whichever one is convenient — `total-items` on the table or on the pager both
|
|
222
|
+
end up as the same shared `total`. One rule resolves conflicts: a page count
|
|
223
|
+
derived from a real `total-items` always wins, and `total-pages` (on either
|
|
224
|
+
side) is only a seed for when no row count is known — the common case being an
|
|
225
|
+
externally paged array table, whose rows are one page and no total.
|
|
107
226
|
|
|
108
|
-
|
|
227
|
+
For server paging, read the shared page with `useBbTableContext(id)` and use it
|
|
228
|
+
inside the items provider. A provider table **already treats the shared page as
|
|
229
|
+
a refetch trigger** — so a page turn re-runs the provider on its own; you do
|
|
230
|
+
_not_ list `page` in `dependencies` (that's only for your own filters/sort). The
|
|
231
|
+
table shows its own skeletons while it awaits — no watcher, no `loading` ref of
|
|
232
|
+
your own. Sit the pager in the table footer:
|
|
109
233
|
|
|
110
|
-
|
|
111
|
-
const start = ref(1);
|
|
112
|
-
const maxSize = ref(+props.maxSize);
|
|
113
|
-
|
|
114
|
-
const outercontainer = ref<HTMLElement>();
|
|
115
|
-
const innercontainer = ref<HTMLElement>();
|
|
116
|
-
|
|
117
|
-
const buttonFootprint = ref<number>(Infinity);
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Adjusts how many buttons to show.
|
|
121
|
-
* if current buttons can't fit subtract maxSize until they do or until minimum is reached
|
|
122
|
-
* if more buttons could fit add buttons until the don't
|
|
123
|
-
* If minimum or maximum is reached just quit until next resize
|
|
124
|
-
*/
|
|
125
|
-
const adjustMaxElements = () => {
|
|
126
|
-
if (outercontainer.value && innercontainer.value) {
|
|
127
|
-
/* If some buttons do not fit */
|
|
128
|
-
if (outercontainer.value.clientWidth < innercontainer.value.clientWidth) {
|
|
129
|
-
if (maxSize.value - 1 > 3) {
|
|
130
|
-
maxSize.value--;
|
|
131
|
-
nextTick(adjustMaxElements);
|
|
132
|
-
} else {
|
|
133
|
-
maxSize.value = 3;
|
|
134
|
-
}
|
|
135
|
-
/* If all current buttons do fit */
|
|
136
|
-
} else {
|
|
137
|
-
/* If some buttons have been hidden */
|
|
138
|
-
if (maxSize.value < +props.maxSize) {
|
|
139
|
-
if (
|
|
140
|
-
/* If there is enough space to fit one */
|
|
141
|
-
outercontainer.value.clientWidth - innercontainer.value.clientWidth >
|
|
142
|
-
buttonFootprint.value
|
|
143
|
-
) {
|
|
144
|
-
maxSize.value = Math.min(maxSize.value + 1, +props.maxSize);
|
|
145
|
-
nextTick(adjustMaxElements);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
};
|
|
151
|
-
if (globalThis.ResizeObserver) {
|
|
152
|
-
const observer = new ResizeObserver(debounce(adjustMaxElements, 200));
|
|
153
|
-
onMounted(() => {
|
|
154
|
-
if (outercontainer.value && innercontainer.value) {
|
|
155
|
-
const button = outercontainer.value.querySelectorAll(
|
|
156
|
-
'.bb-pagination__page'
|
|
157
|
-
)[1];
|
|
158
|
-
if (button) {
|
|
159
|
-
/* Compute the footprint necessary to render a new button */
|
|
160
|
-
const gapString = getComputedStyle(innercontainer.value).columnGap;
|
|
161
|
-
const numberAsString = gapString.replaceAll(/\D/g, '');
|
|
162
|
-
const gap = Number(numberAsString);
|
|
163
|
-
buttonFootprint.value = button.clientWidth + gap;
|
|
164
|
-
}
|
|
165
|
-
observer.observe(outercontainer.value);
|
|
166
|
-
}
|
|
167
|
-
});
|
|
168
|
-
onBeforeUnmount(() => {
|
|
169
|
-
observer.disconnect();
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
const range = computed(() => {
|
|
174
|
-
if (
|
|
175
|
-
totalPages.value <= 0 ||
|
|
176
|
-
isNaN(totalPages.value) ||
|
|
177
|
-
totalPages.value > Number.MAX_SAFE_INTEGER
|
|
178
|
-
)
|
|
179
|
-
return [];
|
|
180
|
-
|
|
181
|
-
if (maxSize.value <= 1) return [model.value];
|
|
182
|
-
|
|
183
|
-
if (totalPages.value <= maxSize.value) {
|
|
184
|
-
return createRange(totalPages.value, start.value);
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
const even = maxSize.value % 2 === 0;
|
|
188
|
-
const middle = even ? maxSize.value / 2 : Math.floor(maxSize.value / 2);
|
|
189
|
-
const left = even ? middle : middle + 1;
|
|
190
|
-
const right = totalPages.value - middle;
|
|
191
|
-
|
|
192
|
-
if (left - model.value >= 0) {
|
|
193
|
-
return [
|
|
194
|
-
...createRange(Math.max(1, maxSize.value - 1), start.value),
|
|
195
|
-
props.ellipsis,
|
|
196
|
-
totalPages.value,
|
|
197
|
-
];
|
|
198
|
-
} else if (model.value - right >= (even ? 1 : 0)) {
|
|
199
|
-
const rangeLength = maxSize.value - 1;
|
|
200
|
-
const rangeStart = totalPages.value - rangeLength + start.value;
|
|
201
|
-
return [
|
|
202
|
-
start.value,
|
|
203
|
-
props.ellipsis,
|
|
204
|
-
...createRange(rangeLength, rangeStart),
|
|
205
|
-
];
|
|
206
|
-
} else {
|
|
207
|
-
const rangeLength = Math.max(1, maxSize.value - 3);
|
|
208
|
-
const rangeStart =
|
|
209
|
-
rangeLength === 1
|
|
210
|
-
? model.value
|
|
211
|
-
: model.value - Math.ceil(rangeLength / 2) + start.value;
|
|
212
|
-
return [
|
|
213
|
-
start.value,
|
|
214
|
-
props.ellipsis,
|
|
215
|
-
...createRange(rangeLength, rangeStart),
|
|
216
|
-
props.ellipsis,
|
|
217
|
-
totalPages.value,
|
|
218
|
-
];
|
|
219
|
-
}
|
|
220
|
-
});
|
|
234
|
+
**Server-paged audit log footer**
|
|
221
235
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
236
|
+
```vue
|
|
237
|
+
<template>
|
|
238
|
+
<!-- Server-paged table footer: the shared `audit-log` id pairs the table and
|
|
239
|
+
pager. A provider table auto-refetches when the shared page moves, so no
|
|
240
|
+
`dependencies` wiring is needed — the provider just reads `page` from the
|
|
241
|
+
same context the pager drives. -->
|
|
242
|
+
<div
|
|
243
|
+
class="max-w-md overflow-hidden rounded-[var(--bb-radius)] border border-[color:var(--bb-border)]"
|
|
244
|
+
>
|
|
245
|
+
<BbTable
|
|
246
|
+
id="audit-log"
|
|
247
|
+
caption="Audit log"
|
|
248
|
+
:columns="columns"
|
|
249
|
+
compact
|
|
250
|
+
item-value="id"
|
|
251
|
+
:items="fetchEvents"
|
|
252
|
+
/>
|
|
253
|
+
<div
|
|
254
|
+
class="flex flex-wrap items-center justify-between gap-2 border-t border-[color:var(--bb-border)] px-3 py-2"
|
|
255
|
+
>
|
|
256
|
+
<p class="text-xs text-gray-500">
|
|
257
|
+
{{ rangeStart }}–{{ rangeEnd }} of {{ total }}
|
|
258
|
+
</p>
|
|
259
|
+
<BbPagination label="Audit log pagination" table-id="audit-log" />
|
|
260
|
+
</div>
|
|
261
|
+
</div>
|
|
262
|
+
</template>
|
|
263
|
+
<script setup lang="ts">
|
|
264
|
+
import { computed } from 'vue';
|
|
265
|
+
import { BbPagination, BbTable, useBbTableContext } from 'bitboss-ui';
|
|
266
|
+
import type { BbTableColumn } from 'bitboss-ui';
|
|
267
|
+
|
|
268
|
+
type AuditEvent = { id: number; action: string; actor: string; time: string };
|
|
269
|
+
|
|
270
|
+
const columns: Array<BbTableColumn<AuditEvent>> = [
|
|
271
|
+
{ key: 'action', label: 'Action' },
|
|
272
|
+
{ key: 'actor', label: 'Actor' },
|
|
273
|
+
{ key: 'time', label: 'When', align: 'right', width: 120 },
|
|
274
|
+
];
|
|
275
|
+
|
|
276
|
+
const actions = [
|
|
277
|
+
'member.invited',
|
|
278
|
+
'api_key.created',
|
|
279
|
+
'billing.plan_changed',
|
|
280
|
+
'webhook.updated',
|
|
281
|
+
'sso.login_failed',
|
|
282
|
+
'invoice.exported',
|
|
283
|
+
'role.updated',
|
|
284
|
+
];
|
|
285
|
+
const actors = ['ada@acme.io', 'grace@acme.io', 'linus@acme.io'];
|
|
286
|
+
const events: AuditEvent[] = Array.from({ length: 23 }, (_, index) => ({
|
|
287
|
+
id: index + 1,
|
|
288
|
+
action: actions[index % actions.length],
|
|
289
|
+
actor: actors[index % actors.length],
|
|
290
|
+
time: `2026-07-0${9 - Math.floor(index / 10)} ${String(
|
|
291
|
+
18 - (index % 10)
|
|
292
|
+
).padStart(2, '0')}:${String((index * 7) % 60).padStart(2, '0')}`,
|
|
293
|
+
}));
|
|
294
|
+
|
|
295
|
+
// Same id as the table: seed `perPage` on the context handle so the table
|
|
296
|
+
// reads its page size from the shared context — no `:per-page` prop needed.
|
|
297
|
+
// `page` and `perPage` here are the same refs the pager drives and the table
|
|
298
|
+
// announces.
|
|
299
|
+
const { page, perPage, total } = useBbTableContext('audit-log', { perPage: 5 });
|
|
300
|
+
|
|
301
|
+
const rangeStart = computed(() => (page.value - 1) * perPage.value + 1);
|
|
302
|
+
const rangeEnd = computed(() =>
|
|
303
|
+
Math.min(page.value * perPage.value, total.value)
|
|
304
|
+
);
|
|
305
|
+
|
|
306
|
+
/** Non-query table provider — playbook signature; page/perPage come from context. */
|
|
307
|
+
const fetchEvents = (_prefill: boolean): Promise<AuditEvent[]> =>
|
|
308
|
+
new Promise((resolve) => {
|
|
309
|
+
setTimeout(() => {
|
|
310
|
+
const start = (page.value - 1) * perPage.value;
|
|
311
|
+
total.value = events.length;
|
|
312
|
+
resolve(events.slice(start, start + perPage.value));
|
|
313
|
+
}, 250);
|
|
258
314
|
});
|
|
259
|
-
|
|
315
|
+
</script>
|
|
316
|
+
```
|
|
260
317
|
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
};
|
|
275
|
-
|
|
276
|
-
if (props.navigation) {
|
|
277
|
-
const previousPage = (model.value - 1).toString();
|
|
278
|
-
if (route.value) {
|
|
279
|
-
base.to = {
|
|
280
|
-
path: route.value?.path,
|
|
281
|
-
query: { ...route.value?.query, [props.querykey]: previousPage },
|
|
282
|
-
};
|
|
283
|
-
base.replace = props.replace;
|
|
284
|
-
} else {
|
|
285
|
-
const url = new URL(globalThis.location.href);
|
|
286
|
-
url.searchParams.set(props.querykey, previousPage);
|
|
287
|
-
base.href = url.toString();
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
return base;
|
|
292
|
-
});
|
|
318
|
+
Any other component can join the same rendezvous with
|
|
319
|
+
`useBbTableContext('audit-log')` — read `ctx.page` in a toolbar, reset it after
|
|
320
|
+
a filter change — and the pager follows. Mind the id: a typo doesn't error, it
|
|
321
|
+
just pairs with nothing.
|
|
322
|
+
|
|
323
|
+
### URL-synced pagination
|
|
324
|
+
|
|
325
|
+
Set `navigation` to reflect the current page in the URL, so a page is
|
|
326
|
+
bookmarkable and survives a reload. `query-key` names the query parameter
|
|
327
|
+
(default `page`). Under Vue Router or Nuxt each enabled button becomes a `to`
|
|
328
|
+
link that merges the param into the current route's query (other params
|
|
329
|
+
survive). Without a router it falls back to real `href`s built from
|
|
330
|
+
`window.location`, so the same markup deep-links in a plain SPA too.
|
|
293
331
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
|
|
332
|
+
**Pair `navigation` with `replace`.** Paging is a view control, not a journey:
|
|
333
|
+
without `replace` every page click pushes a history entry, and a user who
|
|
334
|
+
walked to page 12 needs eleven Backs to escape the list. `replace` keeps the
|
|
335
|
+
URL current — still deep-linkable, still reload-proof — while one Back returns
|
|
336
|
+
to wherever they entered the list from.
|
|
337
|
+
|
|
338
|
+
One thing stays yours: **the component does not read the URL at mount** — it
|
|
339
|
+
writes it. Initialize the model from the route once, and `navigation` keeps
|
|
340
|
+
them in sync from then on:
|
|
341
|
+
|
|
342
|
+
**URL-synced exports with replace**
|
|
343
|
+
|
|
344
|
+
```vue
|
|
345
|
+
<template>
|
|
346
|
+
<!-- `navigation` + `replace`: ?page stays deep-linkable; Back leaves the list
|
|
347
|
+
instead of walking every page click. Seed v-model from the route once —
|
|
348
|
+
the control writes the URL, it does not read it at mount. -->
|
|
349
|
+
<div
|
|
350
|
+
class="max-w-md overflow-hidden rounded-[var(--bb-radius)] border border-[color:var(--bb-border)]"
|
|
351
|
+
>
|
|
352
|
+
<ul class="divide-y divide-[color:var(--bb-border)]">
|
|
353
|
+
<li
|
|
354
|
+
v-for="row in pageItems"
|
|
355
|
+
:key="row.id"
|
|
356
|
+
class="flex items-center justify-between gap-2 px-3 py-2 text-sm"
|
|
357
|
+
>
|
|
358
|
+
<span class="font-medium">{{ row.label }}</span>
|
|
359
|
+
<span class="text-xs tabular-nums text-gray-500">{{ row.when }}</span>
|
|
360
|
+
</li>
|
|
361
|
+
</ul>
|
|
362
|
+
<div
|
|
363
|
+
class="flex flex-wrap items-center justify-between gap-2 border-t border-[color:var(--bb-border)] px-3 py-2"
|
|
364
|
+
>
|
|
365
|
+
<p class="text-xs text-gray-500">Page {{ page }} of {{ totalPages }}</p>
|
|
366
|
+
<BbPagination
|
|
367
|
+
v-model="page"
|
|
368
|
+
label="Exports pagination"
|
|
369
|
+
navigation
|
|
370
|
+
query-key="page"
|
|
371
|
+
replace
|
|
372
|
+
:total-pages="totalPages"
|
|
373
|
+
/>
|
|
374
|
+
</div>
|
|
375
|
+
</div>
|
|
376
|
+
</template>
|
|
377
|
+
<script setup lang="ts">
|
|
378
|
+
import { computed, ref } from 'vue';
|
|
379
|
+
import { BbPagination } from 'bitboss-ui';
|
|
380
|
+
|
|
381
|
+
type ExportRow = { id: number; label: string; when: string };
|
|
382
|
+
|
|
383
|
+
const rows: ExportRow[] = [
|
|
384
|
+
{ id: 1, label: 'Invoices CSV · Jul 2026', when: '2 min ago' },
|
|
385
|
+
{ id: 2, label: 'Payments CSV · Q2', when: '1 hr ago' },
|
|
386
|
+
{ id: 3, label: 'Customers JSON', when: 'Yesterday' },
|
|
387
|
+
{ id: 4, label: 'Tax summary PDF', when: 'Jul 18' },
|
|
388
|
+
{ id: 5, label: 'Audit trail CSV', when: 'Jul 12' },
|
|
389
|
+
{ id: 6, label: 'Usage report XLSX', when: 'Jul 03' },
|
|
390
|
+
{ id: 7, label: 'Refunds CSV · Jun', when: 'Jun 28' },
|
|
391
|
+
{ id: 8, label: 'Team roster CSV', when: 'Jun 14' },
|
|
392
|
+
{ id: 9, label: 'Webhooks JSON', when: 'May 30' },
|
|
393
|
+
{ id: 10, label: 'Ledger dump CSV', when: 'May 09' },
|
|
394
|
+
{ id: 11, label: 'Plan changes CSV', when: 'Apr 22' },
|
|
395
|
+
{ id: 12, label: 'API keys CSV', when: 'Apr 02' },
|
|
396
|
+
];
|
|
397
|
+
|
|
398
|
+
const perPage = 4;
|
|
399
|
+
const page = ref(1);
|
|
400
|
+
const totalPages = Math.ceil(rows.length / perPage);
|
|
401
|
+
|
|
402
|
+
const pageItems = computed(() => {
|
|
403
|
+
const start = (page.value - 1) * perPage;
|
|
404
|
+
return rows.slice(start, start + perPage);
|
|
356
405
|
});
|
|
357
406
|
</script>
|
|
358
|
-
|
|
359
|
-
<style lang="postcss">
|
|
360
|
-
@import './index.css';
|
|
361
|
-
</style>
|
|
362
407
|
```
|
|
363
408
|
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
```ts
|
|
367
|
-
import type { CommonProps } from '@/types/CommonProps';
|
|
368
|
-
|
|
369
|
-
export type BbPaginationProps = Pick<CommonProps, 'disabled' | 'loading'> & {
|
|
370
|
-
/**
|
|
371
|
-
* Alignment of the pagination control.
|
|
372
|
-
*
|
|
373
|
-
* @defaultValue `'right'`
|
|
374
|
-
*/
|
|
375
|
-
align?: 'left' | 'right' | 'center';
|
|
376
|
-
/**
|
|
377
|
-
* String of text displayed in place of hidden pages.
|
|
378
|
-
*
|
|
379
|
-
* @defaultValue `'...'`
|
|
380
|
-
*/
|
|
381
|
-
ellipsis?: string;
|
|
382
|
-
/**
|
|
383
|
-
* Label of the pagination navigation landmark.
|
|
384
|
-
*
|
|
385
|
-
* @defaultValue `'Paginazione'`
|
|
386
|
-
*/
|
|
387
|
-
label?: string;
|
|
388
|
-
/**
|
|
389
|
-
* Maximum number of clickable pages displayed at all times.
|
|
390
|
-
* This has a tolerance of +/- 1 for odd / even numbering.
|
|
391
|
-
* It does not include ellipses.
|
|
392
|
-
*
|
|
393
|
-
* @defaultValue `6`
|
|
394
|
-
*/
|
|
395
|
-
maxSize?: number | string;
|
|
396
|
-
/**
|
|
397
|
-
* Synchronizes the current page with the URL.
|
|
398
|
-
*/
|
|
399
|
-
navigation?: boolean;
|
|
400
|
-
|
|
401
|
-
/**
|
|
402
|
-
* Replaces history rather than pushing it when changing page.
|
|
403
|
-
*/
|
|
404
|
-
replace?: boolean;
|
|
405
|
-
/**
|
|
406
|
-
* Defines the query key to reference for maintaining navigation.
|
|
407
|
-
*
|
|
408
|
-
* @defaultValue `'page'`
|
|
409
|
-
*/
|
|
410
|
-
querykey?: string;
|
|
411
|
-
/**
|
|
412
|
-
* Total number of pages.
|
|
413
|
-
*
|
|
414
|
-
* @defaultValue `1`
|
|
415
|
-
*/
|
|
416
|
-
totalPages?: number | string;
|
|
417
|
-
};
|
|
418
|
-
|
|
419
|
-
export type BbPaginationEvents = {
|
|
420
|
-
/** Emitted when the active page changes. Payload is the new page number (1-based). */
|
|
421
|
-
(e: 'update:modelValue', value: number): void;
|
|
422
|
-
};
|
|
423
|
-
|
|
424
|
-
/** Props exposed by the `item` slot. */
|
|
425
|
-
export type BbPaginationItemSlotProps = {
|
|
426
|
-
/** Whether this is the currently active page. */
|
|
427
|
-
active: boolean;
|
|
428
|
-
/** Whether this page button is disabled. */
|
|
429
|
-
disabled: boolean;
|
|
430
|
-
/** The page number this button represents. */
|
|
431
|
-
item: number;
|
|
432
|
-
};
|
|
433
|
-
|
|
434
|
-
export type BbPaginationSlots = {
|
|
435
|
-
/**
|
|
436
|
-
* Replaces the default "previous page" button content.
|
|
437
|
-
*/
|
|
438
|
-
previous?: (props: object) => any;
|
|
439
|
-
/**
|
|
440
|
-
* Replaces the default "next page" button content.
|
|
441
|
-
*/
|
|
442
|
-
next?: (props: object) => any;
|
|
443
|
-
/**
|
|
444
|
-
* Replaces the default page number button content for each individual page.
|
|
445
|
-
*/
|
|
446
|
-
item?: (props: BbPaginationItemSlotProps) => any;
|
|
447
|
-
/**
|
|
448
|
-
* Replaces the default `…` ellipsis shown when pages overflow the visible range.
|
|
449
|
-
*/
|
|
450
|
-
ellipsis?: (props: object) => any;
|
|
451
|
-
};
|
|
452
|
-
```
|
|
409
|
+
Seed from the route in your app (the companion above starts at page 1 for the
|
|
410
|
+
preview; production code reads the query once):
|
|
453
411
|
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
--size: 32px;
|
|
463
|
-
overflow: hidden;
|
|
464
|
-
padding: var(--bb-ring-size) 0px;
|
|
465
|
-
|
|
466
|
-
width: 100%;
|
|
467
|
-
|
|
468
|
-
&--disabled {
|
|
469
|
-
--color: color-mix(in srgb, var(--bb-panel), var(--bb-text) 10%);
|
|
470
|
-
--text-color: color-mix(in srgb, var(--bb-panel), var(--bb-text) 40%);
|
|
471
|
-
--contrasting: color-mix(in srgb, var(--bb-panel), var(--bb-text) 40%);
|
|
472
|
-
}
|
|
473
|
-
|
|
474
|
-
&--left {
|
|
475
|
-
}
|
|
476
|
-
&--right {
|
|
477
|
-
.bb-pagination__pages {
|
|
478
|
-
margin-left: auto;
|
|
479
|
-
}
|
|
480
|
-
}
|
|
481
|
-
&--center {
|
|
482
|
-
.bb-pagination__pages {
|
|
483
|
-
margin-left: auto;
|
|
484
|
-
margin-right: auto;
|
|
485
|
-
}
|
|
486
|
-
}
|
|
487
|
-
|
|
488
|
-
.bb-pagination__pages {
|
|
489
|
-
align-items: center;
|
|
490
|
-
column-gap: 8px;
|
|
491
|
-
display: flex;
|
|
492
|
-
justify-content: center;
|
|
493
|
-
width: max-content;
|
|
494
|
-
|
|
495
|
-
li {
|
|
496
|
-
display: flex;
|
|
497
|
-
|
|
498
|
-
.bb-pagination__page {
|
|
499
|
-
align-items: center;
|
|
500
|
-
border-color: transparent;
|
|
501
|
-
border-radius: var(--radius);
|
|
502
|
-
border-width: 1px;
|
|
503
|
-
color: var(--text-color);
|
|
504
|
-
display: inline-flex;
|
|
505
|
-
font-size: 14px;
|
|
506
|
-
font-weight: 500;
|
|
507
|
-
justify-content: center;
|
|
508
|
-
min-height: var(--size);
|
|
509
|
-
min-width: var(--size);
|
|
510
|
-
padding: 4px;
|
|
511
|
-
|
|
512
|
-
&:not(.bb-pagination__page--active) {
|
|
513
|
-
transition-duration: 0s;
|
|
514
|
-
}
|
|
515
|
-
|
|
516
|
-
&--active {
|
|
517
|
-
background-color: var(--color);
|
|
518
|
-
border-color: var(--color);
|
|
519
|
-
color: var(--contrasting);
|
|
520
|
-
}
|
|
521
|
-
|
|
522
|
-
&--ellipsis {
|
|
523
|
-
}
|
|
524
|
-
|
|
525
|
-
&:hover:not(.bb-pagination__page--active):not(:disabled) {
|
|
526
|
-
--text-color: var(--color);
|
|
527
|
-
background-color: color-mix(in srgb, var(--color), transparent 85%);
|
|
528
|
-
}
|
|
529
|
-
|
|
530
|
-
&:focus-visible {
|
|
531
|
-
background-color: var(--color);
|
|
532
|
-
color: var(--contrasting);
|
|
533
|
-
}
|
|
534
|
-
|
|
535
|
-
&.bb-pagination__page--next,
|
|
536
|
-
&.bb-pagination__page--previous {
|
|
537
|
-
.bb-pagination__page-label {
|
|
538
|
-
}
|
|
539
|
-
}
|
|
540
|
-
|
|
541
|
-
&.bb-pagination__page--previous {
|
|
542
|
-
.bb-pagination__page-chevron {
|
|
543
|
-
rotate: 90deg;
|
|
544
|
-
}
|
|
545
|
-
}
|
|
546
|
-
|
|
547
|
-
&.bb-pagination__page--next {
|
|
548
|
-
.bb-pagination__page-chevron {
|
|
549
|
-
rotate: -90deg;
|
|
550
|
-
}
|
|
551
|
-
}
|
|
552
|
-
|
|
553
|
-
svg {
|
|
554
|
-
display: inline-block;
|
|
555
|
-
width: 20px; /* 1.75rem = 28px */
|
|
556
|
-
}
|
|
557
|
-
}
|
|
558
|
-
}
|
|
559
|
-
}
|
|
560
|
-
}
|
|
412
|
+
```vue
|
|
413
|
+
<script setup lang="ts">
|
|
414
|
+
import { ref } from 'vue';
|
|
415
|
+
import { useRoute } from 'vue-router'; // or '#imports' in Nuxt
|
|
416
|
+
|
|
417
|
+
const route = useRoute();
|
|
418
|
+
const page = ref(Number(route.query.page) || 1);
|
|
419
|
+
</script>
|
|
561
420
|
```
|
|
421
|
+
|
|
422
|
+
Disabled buttons (the current page's _Previous_/_Next_ at the edges, and every
|
|
423
|
+
button while `disabled`) never carry a link, so crawlers and middle-clicks can't
|
|
424
|
+
reach invalid pages.
|
|
425
|
+
|
|
426
|
+
### Works well with
|
|
427
|
+
|
|
428
|
+
- `BbTable` — the shared-id pairing above; `per-page`/`total-items` on either
|
|
429
|
+
component drive the page count.
|
|
430
|
+
- `useBbTableContext` — bulk-action toolbars and filters that reset `page` to 1
|
|
431
|
+
when the query changes.
|
|
432
|
+
- `BbSelect` — a small page-size selector next to the pager; recompute
|
|
433
|
+
`total-pages` and clamp happens for free.
|
|
434
|
+
- `BbBreadcrumbs` / `BbTabs` — siblings, not alternatives: hierarchy and peer
|
|
435
|
+
views respectively. See the component picker.
|
|
436
|
+
|
|
437
|
+
### Gotchas and anti-patterns
|
|
438
|
+
|
|
439
|
+
- **Name the list you're paging.** The `nav` landmark's default label follows
|
|
440
|
+
the configured locale (`pagination.label` → `'Pagination'` / `'Paginazione'`),
|
|
441
|
+
but a generic "Pagination" is a poor landmark when a page has several. Set
|
|
442
|
+
`label` to say _which_ list: `label="Invoices pagination"`.
|
|
443
|
+
- **`navigation` writes the URL, it doesn't read it** — seed `v-model` from the
|
|
444
|
+
route at setup (example above) or a shared link lands on page 1.
|
|
445
|
+
- **`navigation` without `replace` buries the Back button.** Every page click
|
|
446
|
+
becomes a history entry, so leaving a list the user paged through takes one
|
|
447
|
+
Back per page visited. Add `replace`: the URL stays deep-linkable and Back
|
|
448
|
+
goes back to the previous _screen_, which is what the user meant.
|
|
449
|
+
- **Pages are 1-based.** Page `0` is clamped to `1`; your slicing math is
|
|
450
|
+
`(page - 1) * perPage`.
|
|
451
|
+
- **Don't rebuild the window.** No manual ellipsis math, no hiding buttons with
|
|
452
|
+
CSS — `max-size` plus the container-fit behavior already handle it.
|
|
453
|
+
- **Don't fetch inside the pager.** It's a selector; watch the model (or the
|
|
454
|
+
table context) and fetch in your own code.
|
|
455
|
+
- **Don't feed conflicting counts to a paired table and pager.** With a
|
|
456
|
+
`table-id`, both components publish their pagination props into the shared
|
|
457
|
+
context; giving each a different `total-items` (or `total-pages`) is an
|
|
458
|
+
author error the library resolves arbitrarily. Pass each fact to one place.
|
|
459
|
+
|
|
460
|
+
### Accessibility
|
|
461
|
+
|
|
462
|
+
- The control is a labelled `nav` landmark — its default label is locale-aware;
|
|
463
|
+
set `label` to describe _which_ list it paginates (see the gotcha above).
|
|
464
|
+
- Every control is a real `button` (or a link under `navigation`): normal Tab
|
|
465
|
+
order, Enter/Space activation, no custom keyboard model to learn. There is no
|
|
466
|
+
roving focus — each page button is a tab stop.
|
|
467
|
+
- The active page carries `aria-current="page"`; _Previous_ / _Next_ ship
|
|
468
|
+
visually-hidden, locale-aware text labels behind their chevrons. If you
|
|
469
|
+
replace the `previous`/`next` slots, include accessible text (visible or
|
|
470
|
+
`sr-only`) yourself.
|
|
471
|
+
- Reach for `disabled` to freeze the whole control. Pagination has no `loading`
|
|
472
|
+
state — keep the in-flight affordance on the list or table it drives.
|
|
473
|
+
|
|
474
|
+
## v-model
|
|
475
|
+
|
|
476
|
+
- `v-model` — type: `number \| undefined`
|
|
477
|
+
|
|
478
|
+
## Props
|
|
479
|
+
|
|
480
|
+
| Prop | Type | Default | Required | Description |
|
|
481
|
+
| --- | --- | --- | --- | --- |
|
|
482
|
+
| `align` | `"left" \| "center" \| "right" \| undefined` | `"right"` | | Alignment of the pagination control. |
|
|
483
|
+
| `disabled` | `boolean \| undefined` | | | Disables the component |
|
|
484
|
+
| `ellipsis` | `string \| undefined` | `"..."` | | String of text displayed in place of hidden pages. |
|
|
485
|
+
| `label` | `string \| undefined` | | | Label of the pagination navigation landmark. When unset, falls back to the localized `pagination.label` (`'Pagination'` / `'Paginazione'`). |
|
|
486
|
+
| `maxSize` | `string \| number \| undefined` | `6` | | Maximum number of clickable pages displayed at all times. This has a tolerance of +/- 1 for odd / even numbering. It does not include ellipses. |
|
|
487
|
+
| `modelValue` | `number \| undefined` | `1` | | |
|
|
488
|
+
| `navigation` | `boolean \| undefined` | | | Synchronizes the current page with the URL. Pair it with `replace` — see that prop. |
|
|
489
|
+
| `perPage` | `string \| number \| undefined` | | | Number of items per page. Together with `totalItems` it derives the page count (`ceil(totalItems / perPage)`); when unset, one page holds everything. With a `tableId` it is also published to the shared table context, exactly like the table'… |
|
|
490
|
+
| `queryKey` | `string \| undefined` | `"page"` | | Defines the query key to reference for maintaining navigation. |
|
|
491
|
+
| `replace` | `boolean \| undefined` | | | Replaces history rather than pushing it when changing page. Recommended default whenever `navigation` is on: the URL keeps the current page (deep-linkable, survives reload) while Back returns to the page the user came from, instead of stepp… |
|
|
492
|
+
| `tableId` | `string \| undefined` | | | Id of a `BbTable` to pair with through the shared table context (see `useBbTableContext`). The current page is kept two-way synced with the table's context state, and the context's page count drives the control, overriding the local props. … |
|
|
493
|
+
| `totalItems` | `string \| number \| undefined` | | | Total number of items across all pages. When set, the page count is derived as `ceil(totalItems / perPage)` and wins over `totalPages`. With a `tableId` it is also published to the shared table context, exactly like the table's own `total-i… |
|
|
494
|
+
| `totalPages` | `string \| number \| undefined` | | | Total number of pages. A shortcut for when the server reports a page count rather than a row count — a page count derived from `totalItems` (locally or through the shared table context) always wins over it. Falls back to `1` when nothing pr… |
|
|
495
|
+
|
|
496
|
+
## Events
|
|
497
|
+
|
|
498
|
+
- `update:modelValue` — `(event: "update:modelValue", value: number): void`
|
|
499
|
+
|
|
500
|
+
## Slots
|
|
501
|
+
|
|
502
|
+
- `ellipsis` — scope: `Record<string, never>` — Replaces the default `…` ellipsis shown when pages overflow the visible range.
|
|
503
|
+
- `item` — scope: `BbPaginationItemSlotProps` — Replaces the default page number button content for each individual page.
|
|
504
|
+
- `next` — scope: `Record<string, never>` — Replaces the default "next page" button content.
|
|
505
|
+
- `previous` — scope: `Record<string, never>` — Replaces the default "previous page" button content.
|
|
506
|
+
|
|
507
|
+
## See Also
|
|
508
|
+
|
|
509
|
+
- [BbTable](./BbTable.md) — Displays tabular data, configurable columns and data mapper.
|