bitboss-ui 2.1.135 → 3.0.0-alpha.4
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 +274 -24
- package/bin/bitboss-ui-mcp.mjs +662 -0
- package/bin/bitboss-ui.mjs +710 -0
- package/bin/bitboss-ui.node.test.mjs +113 -0
- package/dist/ai/BbAccordion.md +528 -113
- package/dist/ai/BbAlert.md +380 -197
- package/dist/ai/BbAsterisk.md +46 -0
- package/dist/ai/BbAvatar.md +458 -178
- package/dist/ai/BbBadge.md +697 -225
- package/dist/ai/BbBadgeButton.md +54 -0
- package/dist/ai/BbBaseButton.md +491 -0
- package/dist/ai/BbBaseCheckbox.md +49 -0
- package/dist/ai/BbBaseCheckboxGroup.md +64 -0
- package/dist/ai/BbBaseCheckboxIcon.md +176 -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 +64 -0
- package/dist/ai/BbBaseRadioIcon.md +191 -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 +186 -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 +553 -503
- package/dist/ai/BbButton.md +841 -636
- package/dist/ai/BbCheckbox.md +585 -254
- package/dist/ai/BbCheckboxGroup.md +573 -361
- package/dist/ai/BbCollapsible.md +425 -103
- package/dist/ai/BbColorInput.md +536 -323
- package/dist/ai/BbColorPalette.md +569 -330
- package/dist/ai/BbConfirm.md +659 -136
- package/dist/ai/BbConfirmPortal.md +28 -0
- package/dist/ai/BbDatePicker.md +244 -0
- package/dist/ai/BbDatePickerInput.md +720 -388
- package/dist/ai/BbDialog.md +778 -99
- package/dist/ai/BbDropdown.md +1072 -763
- package/dist/ai/BbDropdownButton.md +525 -614
- package/dist/ai/BbDropdownGroup.md +34 -0
- package/dist/ai/BbDropzone.md +1206 -436
- package/dist/ai/BbForm.md +239 -0
- package/dist/ai/BbIcon.md +382 -212
- package/dist/ai/BbIndicator.md +283 -0
- package/dist/ai/BbNumberInput.md +717 -355
- package/dist/ai/BbOffCanvas.md +897 -498
- package/dist/ai/BbPagination.md +489 -535
- package/dist/ai/BbPopover.md +591 -546
- package/dist/ai/BbProgress.md +462 -69
- package/dist/ai/BbRadio.md +352 -229
- package/dist/ai/BbRadioGroup.md +437 -353
- package/dist/ai/BbRating.md +372 -225
- package/dist/ai/BbSelect.md +1399 -536
- package/dist/ai/BbSelectPopover.md +1255 -1578
- package/dist/ai/BbSlider.md +500 -256
- package/dist/ai/BbSmoothHeight.md +485 -139
- package/dist/ai/BbSpinner.md +718 -131
- package/dist/ai/BbSwitch.md +573 -119
- package/dist/ai/BbSwitchGroup.md +521 -214
- package/dist/ai/BbTable.md +1996 -2365
- package/dist/ai/BbTabs.md +1147 -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 +416 -292
- package/dist/ai/BbTextInput.md +878 -333
- package/dist/ai/BbTextarea.md +850 -255
- package/dist/ai/BbTimePicker.md +231 -0
- package/dist/ai/BbTimePickerInput.md +200 -0
- package/dist/ai/BbToast.md +669 -196
- package/dist/ai/BbToastPortal.md +28 -0
- package/dist/ai/BbTooltip.md +453 -346
- package/dist/ai/BbTree.md +993 -234
- 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 +15897 -0
- package/dist/ai/composables/useBbConfig.md +80 -0
- package/dist/ai/composables/useBbFormContext.md +110 -0
- package/dist/ai/composables/useBbTableContext.md +167 -0
- package/dist/ai/composables/useBbTabsContext.md +118 -0
- package/dist/ai/composables/useBroadcastChannelInstance.md +97 -0
- package/dist/ai/composables/useConfirm.md +313 -0
- package/dist/ai/composables/useCountdown.md +86 -0
- package/dist/ai/composables/useId.md +60 -0
- package/dist/ai/composables/useMobile.md +85 -0
- package/dist/ai/composables/useToast.md +238 -0
- package/dist/ai/guides/agent-contract.md +165 -0
- package/dist/ai/guides/ai-router.md +113 -0
- package/dist/ai/guides/app-layout.md +318 -0
- package/dist/ai/guides/coherence-playbook.md +136 -0
- package/dist/ai/guides/component-picker.md +236 -0
- package/dist/ai/guides/design-language.md +478 -0
- package/dist/ai/guides/design-tokens.md +450 -0
- package/dist/ai/guides/fetch-items-playbook.md +161 -0
- package/dist/ai/guides/floating-bottom-panel.md +130 -0
- package/dist/ai/guides/icons-policy.md +257 -0
- package/dist/ai/guides/inertia-helpers.md +1443 -0
- package/dist/ai/guides/inline-edit-playbook.md +267 -0
- package/dist/ai/guides/installation-and-plugin-setup.md +440 -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-offcanvas.md +63 -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 +59 -0
- package/dist/ai/guides/migration/components/bb-select.md +69 -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 +113 -0
- package/dist/ai/guides/validated-forms.md +177 -0
- package/dist/ai/index.md +158 -32
- package/dist/ai/recipes/inertia/approvals-inbox.md +1635 -0
- package/dist/ai/recipes/inertia/inline-edit-workspace.md +1765 -0
- package/dist/ai/recipes/inertia/layout-scaffold.md +385 -0
- package/dist/ai/recipes/inertia/onboarding.md +1791 -0
- package/dist/ai/recipes/inertia/ownership-atlas.md +1327 -0
- package/dist/ai/recipes/inertia/record-form.md +1489 -0
- package/dist/ai/recipes/inertia/records-workspace.md +1416 -0
- package/dist/ai/recipes/inertia/upload-center.md +2003 -0
- package/dist/ai/recipes/inertia/wizard-form.md +1500 -0
- package/dist/ai/recipes/nuxt/approvals-inbox.md +1578 -0
- package/dist/ai/recipes/nuxt/inline-edit-workspace.md +1703 -0
- package/dist/ai/recipes/nuxt/layout-scaffold.md +385 -0
- package/dist/ai/recipes/nuxt/onboarding.md +1724 -0
- package/dist/ai/recipes/nuxt/record-form.md +1502 -0
- package/dist/ai/recipes/nuxt/records-workspace.md +1329 -0
- package/dist/ai/recipes/nuxt/upload-center.md +1886 -0
- package/dist/ai/recipes/nuxt/wizard-form.md +1509 -0
- package/dist/ai/recipes/vue/approvals-inbox.md +1496 -0
- package/dist/ai/recipes/vue/inline-edit-workspace.md +1594 -0
- package/dist/ai/recipes/vue/layout-scaffold.md +385 -0
- package/dist/ai/recipes/vue/onboarding.md +1679 -0
- package/dist/ai/recipes/vue/record-form.md +1586 -0
- package/dist/ai/recipes/vue/records-workspace.md +1245 -0
- package/dist/ai/recipes/vue/upload-center.md +1845 -0
- package/dist/ai/recipes/vue/wizard-form.md +1441 -0
- package/dist/ai/source/BbAccordion.md +123 -0
- package/dist/ai/source/BbAlert.md +401 -0
- package/dist/ai/source/BbAsterisk.md +32 -0
- package/dist/ai/source/BbAvatar.md +258 -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 +461 -0
- package/dist/ai/source/BbBaseCheckboxGroup.md +554 -0
- package/dist/ai/source/BbBaseCheckboxIcon.md +201 -0
- package/dist/ai/source/BbBaseColorInput.md +416 -0
- package/dist/ai/source/BbBaseColorPalette.md +934 -0
- package/dist/ai/source/BbBaseDatePicker.md +1001 -0
- package/dist/ai/source/BbBaseDatePickerInput.md +1785 -0
- package/dist/ai/source/BbBaseInputContainer.md +1210 -0
- package/dist/ai/source/BbBaseNumberInput.md +617 -0
- package/dist/ai/source/BbBaseRadio.md +377 -0
- package/dist/ai/source/BbBaseRadioGroup.md +533 -0
- package/dist/ai/source/BbBaseRadioIcon.md +153 -0
- package/dist/ai/source/BbBaseRating.md +573 -0
- package/dist/ai/source/BbBaseSelect.md +898 -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 +694 -0
- package/dist/ai/source/BbBaseTextInput.md +511 -0
- package/dist/ai/source/BbBaseTextarea.md +480 -0
- package/dist/ai/source/BbBaseTimePickerInput.md +1031 -0
- package/dist/ai/source/BbBreadcrumbs.md +815 -0
- package/dist/ai/source/BbButton.md +1006 -0
- package/dist/ai/source/BbCheckbox.md +326 -0
- package/dist/ai/source/BbCheckboxGroup.md +419 -0
- package/dist/ai/source/BbCollapsible.md +137 -0
- package/dist/ai/source/BbColorInput.md +322 -0
- package/dist/ai/source/BbColorPalette.md +371 -0
- package/dist/ai/source/BbConfirm.md +193 -0
- package/dist/ai/source/BbConfirmPortal.md +74 -0
- package/dist/ai/source/BbDatePicker.md +729 -0
- package/dist/ai/source/BbDatePickerInput.md +525 -0
- package/dist/ai/source/BbDialog.md +818 -0
- package/dist/ai/source/BbDropdown.md +2387 -0
- package/dist/ai/source/BbDropdownButton.md +315 -0
- package/dist/ai/source/BbDropdownGroup.md +1259 -0
- package/dist/ai/source/BbDropzone.md +864 -0
- package/dist/ai/source/BbForm.md +100 -0
- package/dist/ai/source/BbIcon.md +214 -0
- package/dist/ai/source/BbIndicator.md +298 -0
- package/dist/ai/source/BbNumberInput.md +374 -0
- package/dist/ai/source/BbOffCanvas.md +1266 -0
- package/dist/ai/source/BbPagination.md +835 -0
- package/dist/ai/source/BbPopover.md +860 -0
- package/dist/ai/source/BbProgress.md +140 -0
- package/dist/ai/source/BbRadio.md +303 -0
- package/dist/ai/source/BbRadioGroup.md +420 -0
- package/dist/ai/source/BbRating.md +369 -0
- package/dist/ai/source/BbSelect.md +688 -0
- package/dist/ai/source/BbSelectPopover.md +2234 -0
- package/dist/ai/source/BbSlider.md +378 -0
- package/dist/ai/source/BbSmoothHeight.md +265 -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 +3433 -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 +390 -0
- package/dist/ai/source/BbTextInput.md +352 -0
- package/dist/ai/source/BbTextarea.md +337 -0
- package/dist/ai/source/BbTimePicker.md +595 -0
- package/dist/ai/source/BbTimePickerInput.md +376 -0
- package/dist/ai/source/BbToast.md +525 -0
- package/dist/ai/source/BbToastPortal.md +482 -0
- package/dist/ai/source/BbTooltip.md +522 -0
- package/dist/ai/source/BbTree.md +323 -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 +616 -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 +19 -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 +19 -0
- package/dist/button-variants.d.ts +21 -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 +12 -8
- 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 +56 -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 +6 -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 +29 -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 +224 -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 +210 -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 +716 -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 +311 -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 +191 -0
- package/dist/components/BbBaseInputContainer/types.d.ts +197 -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 +215 -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 +177 -0
- package/dist/components/BbBaseRadioGroup/types.d.ts +223 -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 +297 -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 +522 -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 +37 -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 +181 -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 +31 -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 +51 -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 +13 -8
- 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 +44 -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 +126 -0
- package/dist/components/BbColorPalette/types.d.ts +71 -52
- package/dist/components/BbConfirm/BbConfirm.vue.js +6 -0
- package/dist/components/BbConfirm/BbConfirm.vue_vue_type_script_setup_true_lang.js +138 -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 +159 -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 +134 -16
- package/dist/components/BbDialog/BbDialog.vue.d.ts +14 -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 +24 -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 +561 -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 +31 -0
- package/dist/components/BbDropdown/BbDropdownList.vue.js +6 -0
- package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +470 -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 +468 -46
- 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 +47 -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 +308 -0
- package/dist/components/BbDropzone/types.d.ts +77 -8
- 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 +40 -4
- package/dist/components/BbOffCanvas/BbOffCanvas.vue.d.ts +16 -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 +9 -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 +16 -15
- package/dist/components/BbPopover/BbPopover.vue.js +6 -0
- package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +309 -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 +90 -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 +32 -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 +186 -0
- package/dist/components/BbRadioGroup/types.d.ts +48 -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 +44 -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 +112 -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 +639 -0
- package/dist/components/BbSelectPopover/types.d.ts +197 -105
- 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 +44 -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 +17 -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 +58 -31
- package/dist/components/BbTable/BbTable.vue.js +6 -0
- package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +900 -0
- package/dist/components/BbTable/types.d.ts +213 -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 +55 -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 +31 -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 +33 -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 +133 -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 +174 -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 +39 -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 +10 -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 +69 -11
- package/dist/components/BbTree/BbTree.vue.d.ts +28 -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 +94 -41
- 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 +9 -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 +65 -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.d.ts +2 -2
- 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.d.ts +15 -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 +225 -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/useClosingInert.d.ts +28 -0
- package/dist/composables/useClosingInert.js +23 -0
- package/dist/composables/useCoherence.js +16 -0
- package/dist/composables/useConfirm.d.ts +278 -68
- package/dist/composables/useConfirm.js +130 -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 +104 -0
- package/dist/composables/useSegmentedFields.js +159 -0
- package/dist/composables/useTableWidthContext.d.ts +5 -0
- package/dist/composables/useTableWidthContext.js +42 -0
- package/dist/composables/useToast.d.ts +40 -70
- package/dist/composables/useToast.js +58 -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 +17 -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/directives/createPopoverDirective.js +54 -0
- package/dist/dropdown-item-variants.d.ts +17 -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 +96 -79
- package/dist/index.js +76 -82
- package/dist/indicator-variants.d.ts +20 -0
- package/dist/llms-full.txt +79703 -0
- package/dist/llms-medium.txt +1514 -0
- package/dist/llms.txt +105 -0
- package/dist/locale-blueprint.json +141 -0
- package/dist/locale-registry.d.ts +37 -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 +20 -0
- package/dist/tooltip-variants.d.ts +17 -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 +68 -277
- 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 +82 -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 +41 -0
- package/dist/validated/BbDatePickerInput.vue.js +5 -0
- package/dist/validated/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +90 -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 +78 -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 +109 -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 +82 -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 +37 -0
- package/dist/validated/BbTimePickerInput.vue.js +5 -0
- package/dist/validated/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +81 -0
- package/dist/validated/index.d.ts +29 -0
- package/dist/validated/useValidatedField.d.ts +93 -0
- package/dist/validated/useValidatedField.js +51 -0
- package/dist/validated.js +21 -0
- package/dist/vite-plugin.d.ts +261 -0
- package/dist/vite.js +603 -0
- package/llms.txt +107 -0
- package/package.json +181 -60
- 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-recommended.node.test.mjs +87 -0
- package/scripts/lib/eslint-plugin-slots.node.test.mjs +271 -0
- package/scripts/lib/eslint-plugin.mjs +702 -0
- package/scripts/lib/eslint-plugin.node.test.mjs +193 -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 +488 -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/index352.js +0 -55
- 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/{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
|
@@ -1,408 +1,740 @@
|
|
|
1
1
|
# BbDatePickerInput
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## Agent Contract
|
|
4
|
+
|
|
5
|
+
- Safety level: **Consumer API**
|
|
6
|
+
- Group: **Inputs**
|
|
7
|
+
- Description: Combines date selection with text input behavior.
|
|
8
|
+
- Usage rule: Prefer this component for consumer-facing implementations.
|
|
9
|
+
- Implementation source (only when the contract below is not enough): [source/BbDatePickerInput.md](./source/BbDatePickerInput.md)
|
|
10
|
+
|
|
11
|
+
## Usage & Guidelines
|
|
12
|
+
|
|
13
|
+
### When to use
|
|
14
|
+
|
|
15
|
+
Use `BbDatePickerInput` for any calendar date the user picks — invoice due dates,
|
|
16
|
+
report / filter ranges, appointments, trip windows. It renders a **segmented**
|
|
17
|
+
day / month / year text field plus a calendar popover, parses and formats with
|
|
18
|
+
[dayjs](https://day.js.org), and keeps the two in sync — typing a date moves the
|
|
19
|
+
calendar and vice versa. It shares the input-family chrome (`label`,
|
|
20
|
+
`description`, `hint`, `errors`, affixes, `clearable`, `loading`) with the rest
|
|
21
|
+
of the form.
|
|
22
|
+
|
|
23
|
+
Prefer it over a raw `<input type="date">` for consistent styling, range
|
|
24
|
+
selection, per-day gating and mobile behaviour. If you only need a
|
|
25
|
+
month/quarter/year from a short fixed list, a `BbSelect` is simpler.
|
|
26
|
+
|
|
27
|
+
By default `v-model` holds a full **ISO string with the local offset**
|
|
28
|
+
(`2026-07-02T00:00:00+02:00`); set `floating` to store the shorter `YYYY-MM-DD`
|
|
29
|
+
form instead (see _Output format_). Set `datetime` to pick a time alongside the
|
|
30
|
+
date (see _Time selection_). `label` is required.
|
|
31
|
+
|
|
32
|
+
### Label & messaging
|
|
33
|
+
|
|
34
|
+
The shared surface applies:
|
|
35
|
+
|
|
36
|
+
- **`label`** (required) doubles as the default `name`; **`hideLabel`** hides it
|
|
37
|
+
visually while keeping the accessible name; **`labelPosition`** aligns it; the
|
|
38
|
+
**`label` slot** replaces it with `{ text, hasErrors }`.
|
|
39
|
+
- **`labelMode`** — `outside` / `floating` / `inside`. When unset it falls back
|
|
40
|
+
to the project-wide `config.defaultInputLabelMode` (library default:
|
|
41
|
+
`outside`), the same resolution as `BbTextInput` and `BbNumberInput`.
|
|
42
|
+
- **`description`** (always visible), **`hint`** (shows while the control is
|
|
43
|
+
active; `persistentHint` pins it), and **`errors`** + **`hasErrors`**
|
|
44
|
+
(`aria-live` region, `aria-describedby`, `aria-invalid`) behave as everywhere
|
|
45
|
+
else. The segment inputs merge the container's ids with their own format
|
|
46
|
+
description, so nothing is dropped or duplicated.
|
|
47
|
+
- **`warnings`** is the amber counterpart of `errors`: a string or string array
|
|
48
|
+
rendered below the field in its own `aria-live="polite"` region — and
|
|
49
|
+
referenced from `aria-describedby` while displayed — for a
|
|
50
|
+
valid-but-noteworthy value. A non-empty `warnings` implies the warning state
|
|
51
|
+
(just as `errors` implies the error state), painting the same chrome as
|
|
52
|
+
`hasErrors` but in amber (`--bb-warn`, a warning icon in the append stack).
|
|
53
|
+
**`hasWarning`** forces that chrome without a message, the parallel of
|
|
54
|
+
`hasErrors`. Unlike `hasErrors`, neither sets `aria-invalid` — a soft "needs a
|
|
55
|
+
second look" state. `hasErrors` wins when both are set, and the warning
|
|
56
|
+
messages are suppressed, so the field never shows amber while it has an error.
|
|
57
|
+
- **`required`** marks the segment inputs required to the browser.
|
|
58
|
+
|
|
59
|
+
**Label, description and a persistent hint**
|
|
60
|
+
|
|
61
|
+
```vue
|
|
62
|
+
<BbDatePickerInput
|
|
63
|
+
v-model="state.issuedAt"
|
|
64
|
+
label="Issue date"
|
|
65
|
+
description="When the invoice is issued."
|
|
66
|
+
hint="Type it or pick from the calendar."
|
|
67
|
+
persistentHint
|
|
68
|
+
prepend:icon="lucide:calendar"
|
|
69
|
+
/>
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Single date vs range
|
|
73
|
+
|
|
74
|
+
Bind a `string | null` for a single date. Set `range` and bind a `string[]`
|
|
75
|
+
(`[start, end]`) to pick a window — the calendar highlights every day between the
|
|
76
|
+
two clicks, and the field grows a second day/month/year trio joined by an
|
|
77
|
+
en-dash.
|
|
78
|
+
|
|
79
|
+
> **`range` requires an array modelValue.** In range mode the value must always
|
|
80
|
+
> be an array — use `[]` for "no selection", never `null` or `undefined`.
|
|
81
|
+
> Binding a non-array throws _"Date picker is set to select multiple dates but
|
|
82
|
+
> modelValue is not an array."_ at setup. If you model an empty filter as `null`
|
|
83
|
+
> elsewhere, seed and clear this field to `[]` instead (and test emptiness with
|
|
84
|
+
> `value.length === 0`). Clearing the field emits `[]`, so the array shape round-trips. The classic case is a stay or trip window: bound below by `min` so past
|
|
85
|
+
> check-ins can't be picked, with a nights summary derived from the two dates.
|
|
86
|
+
|
|
87
|
+
**Stay dates — range with a nights summary**
|
|
4
88
|
|
|
5
89
|
```vue
|
|
6
90
|
<template>
|
|
7
|
-
<
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
<
|
|
25
|
-
<
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
:compact="compact"
|
|
34
|
-
:disabled="disabled"
|
|
35
|
-
:first-day-of-week="firstDayOfWeek"
|
|
36
|
-
:floating="floating"
|
|
37
|
-
:has-errors="hasErrors"
|
|
38
|
-
:hide-popover="hidePopover"
|
|
39
|
-
:loading="loading"
|
|
40
|
-
:max="max"
|
|
41
|
-
:min="min"
|
|
42
|
-
:model-value="modelValue"
|
|
43
|
-
:name="name"
|
|
44
|
-
:placeholder="placeholder"
|
|
45
|
-
:prepend:icon="$props['prepend:icon']"
|
|
46
|
-
:range="range"
|
|
47
|
-
:readonly="readonly"
|
|
48
|
-
:required="required"
|
|
49
|
-
:selectable="selectable"
|
|
50
|
-
:width="width"
|
|
51
|
-
v-bind="eventListeners"
|
|
52
|
-
>
|
|
53
|
-
<template #prepend-outer><slot name="prepend-outer"></slot></template>
|
|
54
|
-
<template #prepend><slot name="prepend"></slot></template>
|
|
55
|
-
<template #prefix><slot name="prefix"></slot></template>
|
|
56
|
-
<template #suffix><slot name="suffix"></slot></template>
|
|
57
|
-
<template #append><slot name="append"></slot></template>
|
|
58
|
-
<template #append-outer><slot name="append-outer"></slot></template>
|
|
59
|
-
</BaseDatePickerInput>
|
|
60
|
-
</template>
|
|
61
|
-
</BaseInputContainer>
|
|
91
|
+
<div class="grid max-w-sm gap-3 rounded-[var(--bb-radius)] border p-4">
|
|
92
|
+
<div>
|
|
93
|
+
<p class="text-sm font-medium">Book your stay</p>
|
|
94
|
+
<p class="text-xs text-[color:var(--bb-text-muted)]">
|
|
95
|
+
Seaside Loft · Lisbon
|
|
96
|
+
</p>
|
|
97
|
+
</div>
|
|
98
|
+
<BbDatePickerInput
|
|
99
|
+
v-model="stay"
|
|
100
|
+
compact
|
|
101
|
+
floating
|
|
102
|
+
label="Stay dates"
|
|
103
|
+
:min="today"
|
|
104
|
+
placeholder="Check-in → check-out"
|
|
105
|
+
prepend:icon="lucide:calendar"
|
|
106
|
+
range
|
|
107
|
+
/>
|
|
108
|
+
<p class="text-xs text-[color:var(--bb-text-muted)]">
|
|
109
|
+
<template v-if="stay.length === 2">
|
|
110
|
+
{{ stay[0] }} → {{ stay[1] }} · {{ nights }} night{{
|
|
111
|
+
nights === 1 ? '' : 's'
|
|
112
|
+
}}
|
|
113
|
+
</template>
|
|
114
|
+
<template v-else>No dates selected</template>
|
|
115
|
+
</p>
|
|
116
|
+
</div>
|
|
62
117
|
</template>
|
|
118
|
+
<script setup lang="ts">
|
|
119
|
+
import { computed, ref } from 'vue';
|
|
120
|
+
import dayjs from 'dayjs';
|
|
121
|
+
import { BbDatePickerInput } from 'bitboss-ui';
|
|
122
|
+
|
|
123
|
+
const stay = ref<string[]>([]);
|
|
124
|
+
const today = dayjs().format('YYYY-MM-DD');
|
|
125
|
+
|
|
126
|
+
const nights = computed(() =>
|
|
127
|
+
stay.value.length === 2
|
|
128
|
+
? dayjs(stay.value[1]).diff(dayjs(stay.value[0]), 'day')
|
|
129
|
+
: 0
|
|
130
|
+
);
|
|
131
|
+
</script>
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Range mode still lets the user **type** both the start and end dates directly —
|
|
135
|
+
it does not force the field read-only. If a range comes in reversed (end before
|
|
136
|
+
start) it is swapped for you on commit (see _Invalid input_). To prevent typing
|
|
137
|
+
entirely, reach for `disableWriting` (below), not `range`.
|
|
138
|
+
|
|
139
|
+
### The segmented field & typing
|
|
63
140
|
|
|
141
|
+
The value is edited as three separate inputs — day, month, year — not one free
|
|
142
|
+
string. Their **order follows `config.locale`**: `en` renders `MM / DD / YYYY`,
|
|
143
|
+
every other locale (e.g. `it`) renders `DD / MM / YYYY`. Typing is forgiving:
|
|
144
|
+
|
|
145
|
+
- digits **auto-advance** to the next segment when a segment fills (or can't
|
|
146
|
+
take another digit — e.g. `4` in a day segment becomes `04` and moves on);
|
|
147
|
+
- `/`, `-` or space also advances; **Backspace** at the start of a segment (and
|
|
148
|
+
**←** / **→** at the edges) moves between segments;
|
|
149
|
+
- focusing a segment selects it for quick replacement;
|
|
150
|
+
- **pasting** `01/02/2024` (or a whole `01/02/2024 - 03/04/2025` range)
|
|
151
|
+
distributes the digits across the remaining segments regardless of separators;
|
|
152
|
+
- impossible dates self-correct — typing Feb 31 snaps to Feb 28/29 on commit.
|
|
153
|
+
|
|
154
|
+
An incomplete date is never emitted: the model updates only once a segment
|
|
155
|
+
parses to a real date, and a half-typed segment is restored to the last coherent
|
|
156
|
+
value when focus leaves the control.
|
|
157
|
+
|
|
158
|
+
### Bounds & per-day gating
|
|
159
|
+
|
|
160
|
+
`min` and `max` (each a `YYYY-MM-DD` string) constrain the selectable window;
|
|
161
|
+
days outside it render disabled in the calendar, and a typed out-of-range date is
|
|
162
|
+
snapped back on commit. **Malformed `min`/`max` throw during setup** on purpose,
|
|
163
|
+
to catch config mistakes early — always pass the `YYYY-MM-DD` shape.
|
|
164
|
+
|
|
165
|
+
For non-contiguous rules (no weekends, no holidays, only in-stock slots), pass a
|
|
166
|
+
`selectable` predicate: it receives each date string and returns `false` to
|
|
167
|
+
disable that day. `firstDayOfWeek` shifts the calendar grid (`0` = Sunday …
|
|
168
|
+
`6` = Saturday).
|
|
169
|
+
|
|
170
|
+
The example below combines a rolling `min`/`max` window, a weekdays-only
|
|
171
|
+
predicate, `floating` output, and the `append:day` slot to dot specific days.
|
|
172
|
+
|
|
173
|
+
**Bounded, weekdays-only, with event dots**
|
|
174
|
+
|
|
175
|
+
```vue
|
|
176
|
+
<template>
|
|
177
|
+
<div class="grid max-w-sm gap-3 rounded-[var(--bb-radius)] border p-4">
|
|
178
|
+
<div>
|
|
179
|
+
<p class="text-sm font-medium">Book a demo</p>
|
|
180
|
+
<p class="text-xs text-[color:var(--bb-text-muted)]">
|
|
181
|
+
30 minutes. Dotted days still have open slots.
|
|
182
|
+
</p>
|
|
183
|
+
</div>
|
|
184
|
+
<BbDatePickerInput
|
|
185
|
+
v-model="appointment"
|
|
186
|
+
compact
|
|
187
|
+
floating
|
|
188
|
+
hint="Weekdays only, within the next 30 days."
|
|
189
|
+
label="Demo date"
|
|
190
|
+
:max="max"
|
|
191
|
+
:min="min"
|
|
192
|
+
persistent-hint
|
|
193
|
+
placeholder="YYYY-MM-DD"
|
|
194
|
+
prepend:icon="lucide:calendar-check"
|
|
195
|
+
:selectable="isWeekday"
|
|
196
|
+
>
|
|
197
|
+
<template #append:day="{ item }">
|
|
198
|
+
<span
|
|
199
|
+
v-if="hasOpenSlots(item)"
|
|
200
|
+
class="mx-auto mt-0.5 block h-1 w-1 rounded-full bg-current opacity-70"
|
|
201
|
+
/>
|
|
202
|
+
</template>
|
|
203
|
+
</BbDatePickerInput>
|
|
204
|
+
<p class="text-xs text-[color:var(--bb-text-muted)]">
|
|
205
|
+
{{ appointment ? `Booked for ${appointment}` : 'No date chosen yet.' }}
|
|
206
|
+
</p>
|
|
207
|
+
</div>
|
|
208
|
+
</template>
|
|
64
209
|
<script setup lang="ts">
|
|
65
|
-
import
|
|
66
|
-
import
|
|
67
|
-
import
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
const active = ref(false);
|
|
85
|
-
const showHint = computed(() => props.persistentHint || active.value);
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* These events are just propagated
|
|
89
|
-
*/
|
|
90
|
-
const eventListeners = {
|
|
91
|
-
onError: (error: DatePickerInputError) => emit('error', error),
|
|
92
|
-
onFocus: (event: FocusEvent) => emit('focus', event),
|
|
93
|
-
onActive: () => {
|
|
94
|
-
active.value = true;
|
|
95
|
-
emit('active');
|
|
96
|
-
},
|
|
97
|
-
onInactive: () => {
|
|
98
|
-
active.value = false;
|
|
99
|
-
emit('inactive');
|
|
100
|
-
},
|
|
101
|
-
'onUpdate:modelValue': (value: BbDatePickerInputProps['modelValue']) =>
|
|
102
|
-
emit('update:modelValue', value),
|
|
210
|
+
import { ref } from 'vue';
|
|
211
|
+
import dayjs, { type Dayjs } from 'dayjs';
|
|
212
|
+
import { BbDatePickerInput } from 'bitboss-ui';
|
|
213
|
+
|
|
214
|
+
const appointment = ref<string | null>(null);
|
|
215
|
+
|
|
216
|
+
const min = dayjs().format('YYYY-MM-DD');
|
|
217
|
+
const max = dayjs().add(30, 'day').format('YYYY-MM-DD');
|
|
218
|
+
|
|
219
|
+
// Days that still have open demo slots — dotted via the `append:day` slot.
|
|
220
|
+
const openSlots = [3, 5, 8, 12].map((offset) =>
|
|
221
|
+
dayjs().add(offset, 'day').format('YYYY-MM-DD')
|
|
222
|
+
);
|
|
223
|
+
const hasOpenSlots = (item: Dayjs) =>
|
|
224
|
+
openSlots.includes(item.format('YYYY-MM-DD'));
|
|
225
|
+
|
|
226
|
+
const isWeekday = (date: string) => {
|
|
227
|
+
const day = dayjs(date).day();
|
|
228
|
+
return day !== 0 && day !== 6;
|
|
103
229
|
};
|
|
104
230
|
</script>
|
|
105
|
-
|
|
106
|
-
<style lang="postcss">
|
|
107
|
-
@import './index.css';
|
|
108
|
-
</style>
|
|
109
231
|
```
|
|
110
232
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
} from '../BaseDatePickerInput/types';
|
|
120
|
-
|
|
121
|
-
export type { DatePickerInputError };
|
|
122
|
-
|
|
123
|
-
export type BbDatePickerInputProps = {
|
|
124
|
-
/**
|
|
125
|
-
* Allows typing into the input.
|
|
126
|
-
*
|
|
127
|
-
* @defaultValue `true`
|
|
128
|
-
*/
|
|
129
|
-
allowWriting?: boolean | 'not-mobile';
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Name of the icon to be added at the end of the input.
|
|
133
|
-
*/
|
|
134
|
-
// eslint-disable-next-line vue/prop-name-casing
|
|
135
|
-
'append:icon'?: IconType;
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* Guides the browser as to the type of information expected in the field.
|
|
139
|
-
*/
|
|
140
|
-
autocomplete?: InputHTMLAttributes['autocomplete'];
|
|
141
|
-
|
|
142
|
-
/**
|
|
143
|
-
* Sets autofocus on page load.
|
|
144
|
-
*/
|
|
145
|
-
autofocus?: InputHTMLAttributes['autofocus'];
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* Displays a clear button when the input has a value and is being interacted with.
|
|
149
|
-
*/
|
|
150
|
-
clearable?: boolean;
|
|
151
|
-
|
|
152
|
-
/**
|
|
153
|
-
* Sets the component in a compact state.
|
|
154
|
-
*/
|
|
155
|
-
compact?: boolean;
|
|
156
|
-
|
|
157
|
-
/**
|
|
158
|
-
* Direction of the layout of the component. Can either be a predefined value or a pattern separated by a space like `xx xxxxx`.
|
|
159
|
-
*/
|
|
160
|
-
direction?: 'horizontal' | 'vertical' | 'auto' | string;
|
|
161
|
-
|
|
162
|
-
/**
|
|
163
|
-
* Disables the component.
|
|
164
|
-
*/
|
|
165
|
-
disabled?: boolean;
|
|
166
|
-
|
|
167
|
-
/**
|
|
168
|
-
* Can be a string or an array of string containing the messages to display.
|
|
169
|
-
*/
|
|
170
|
-
errors?: string | string[];
|
|
171
|
-
|
|
172
|
-
/**
|
|
173
|
-
* Defines the first day of the week with `0` meaning Sunday and `6` meaning Saturday.
|
|
174
|
-
*/
|
|
175
|
-
firstDayOfWeek?: 0 | 1 | 6 | 3 | 2 | 4 | 5;
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
* If true the date will have a format YYYY-MM-DD instead of the default ISO string.
|
|
179
|
-
*/
|
|
180
|
-
floating?: boolean;
|
|
181
|
-
|
|
182
|
-
/**
|
|
183
|
-
* Define if the component should be in an error state.
|
|
184
|
-
* It usually attaches a CSS class for styling purposes.
|
|
185
|
-
*/
|
|
186
|
-
hasErrors?: boolean;
|
|
187
|
-
|
|
188
|
-
/**
|
|
189
|
-
* Hides the calendar trigger button and prevents the popover from opening.
|
|
190
|
-
* Use `'not-mobile'` to hide on desktop and keep visible on mobile,
|
|
191
|
-
* complementing `allowWriting: 'not-mobile'` for platform-specific interaction modes.
|
|
192
|
-
*/
|
|
193
|
-
hidePopover?: boolean | 'not-mobile';
|
|
194
|
-
|
|
195
|
-
/**
|
|
196
|
-
* Visually hides the label of the input while maintaining accessibility.
|
|
197
|
-
*/
|
|
198
|
-
hideLabel?: boolean;
|
|
199
|
-
|
|
200
|
-
/**
|
|
201
|
-
* Text box to be displayed near the input, usually to indicate instructions.
|
|
202
|
-
*/
|
|
203
|
-
hint?: string;
|
|
204
|
-
|
|
205
|
-
/**
|
|
206
|
-
* The identifier of the component.
|
|
207
|
-
*/
|
|
208
|
-
id?: HTMLAttributes['id'];
|
|
209
|
-
|
|
210
|
-
/**
|
|
211
|
-
* Text content of the label of the element.
|
|
212
|
-
*/
|
|
213
|
-
label: string;
|
|
214
|
-
|
|
215
|
-
/**
|
|
216
|
-
* Sets the text alignment of the label.
|
|
217
|
-
*/
|
|
218
|
-
labelPosition?: 'left' | 'center' | 'right';
|
|
219
|
-
|
|
220
|
-
/**
|
|
221
|
-
* Sets the component in a loading state, usually triggering some visual styles.
|
|
222
|
-
*/
|
|
223
|
-
loading?: boolean;
|
|
224
|
-
|
|
225
|
-
/**
|
|
226
|
-
* Maximum selectable date in `YYYY-MM-DD` format.
|
|
227
|
-
* Values outside the pattern throw during setup to surface configuration mistakes.
|
|
228
|
-
*/
|
|
229
|
-
max?: string;
|
|
230
|
-
|
|
231
|
-
/**
|
|
232
|
-
* Minimum selectable date in `YYYY-MM-DD` format.
|
|
233
|
-
* Values outside the pattern throw during setup to surface configuration mistakes.
|
|
234
|
-
*/
|
|
235
|
-
min?: string;
|
|
236
|
-
|
|
237
|
-
/**
|
|
238
|
-
* Used by v-model. Can be null, a single string, or an array of strings based on whether a range or single date is needed.
|
|
239
|
-
*/
|
|
240
|
-
modelValue: string | string[] | null;
|
|
241
|
-
|
|
242
|
-
/**
|
|
243
|
-
* Defines the name of the input.
|
|
244
|
-
*/
|
|
245
|
-
name?: InputHTMLAttributes['name'];
|
|
246
|
-
|
|
247
|
-
/**
|
|
248
|
-
* Keeps the hint displayed.
|
|
249
|
-
*/
|
|
250
|
-
persistentHint?: boolean;
|
|
251
|
-
|
|
252
|
-
/**
|
|
253
|
-
* String displayed when there's no data.
|
|
254
|
-
*/
|
|
255
|
-
placeholder?: InputHTMLAttributes['placeholder'];
|
|
256
|
-
|
|
257
|
-
/**
|
|
258
|
-
* Name of the icon to be added at the start of the input.
|
|
259
|
-
*/
|
|
260
|
-
// eslint-disable-next-line vue/prop-name-casing
|
|
261
|
-
'prepend:icon'?: IconType;
|
|
262
|
-
|
|
263
|
-
/**
|
|
264
|
-
* Selects a range of dates between two dates. It selects all of the days between start and end.
|
|
265
|
-
*/
|
|
266
|
-
range?: boolean;
|
|
267
|
-
|
|
268
|
-
/**
|
|
269
|
-
* Sets the input in a readonly state.
|
|
270
|
-
*/
|
|
271
|
-
readonly?: boolean;
|
|
272
|
-
|
|
273
|
-
/**
|
|
274
|
-
* Sets the input as required.
|
|
275
|
-
*/
|
|
276
|
-
required?: boolean;
|
|
277
|
-
|
|
278
|
-
/**
|
|
279
|
-
* Reverses the layout. Applicable in every direction the order of the label and the input is swapped.
|
|
280
|
-
*/
|
|
281
|
-
reverse?: boolean;
|
|
282
|
-
|
|
283
|
-
/**
|
|
284
|
-
* Function that accepts a `string` object and returns a boolean. `false` meaning the date cannot be selected.
|
|
285
|
-
*/
|
|
286
|
-
selectable?: (date: string) => boolean;
|
|
287
|
-
|
|
288
|
-
/**
|
|
289
|
-
* Width of the calendar.
|
|
290
|
-
*/
|
|
291
|
-
width?: number | string;
|
|
292
|
-
};
|
|
233
|
+
### Output format
|
|
234
|
+
|
|
235
|
+
By default the model is a full ISO timestamp **carrying the local offset**
|
|
236
|
+
(`2026-07-02T00:00:00+02:00`) — the emitted digits always match what the user
|
|
237
|
+
sees in the fields. If your backend expects UTC `Z` strings, add `utc`: it
|
|
238
|
+
switches emission to `toISOString()` and changes nothing else. Reading accepts
|
|
239
|
+
both forms (and naked local strings) either way, so adding or removing `utc`
|
|
240
|
+
never requires migrating stored values.
|
|
293
241
|
|
|
294
|
-
|
|
295
|
-
|
|
242
|
+
When you only care about the calendar day — and want a value that's trivial to
|
|
243
|
+
compare, store or send to an API — set `floating` and the model becomes a plain
|
|
244
|
+
`YYYY-MM-DD` string (as in the appointment example above). `floating` + `utc`
|
|
245
|
+
is incoherent (a plain date has no zone) and `utc` is ignored with a DEV
|
|
246
|
+
warning. Pick one format per field and stick to it; `min` / `max` are
|
|
247
|
+
`YYYY-MM-DD` regardless of `floating` (plus an optional `THH:mm` with
|
|
248
|
+
`datetime` — see below).
|
|
296
249
|
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
250
|
+
Floating output shines in filters. The invoice issue-date bar below — the shape
|
|
251
|
+
every records workspace uses — stores plain `YYYY-MM-DD` strings, so the preset
|
|
252
|
+
buttons can write straight into the model and the values go into an API query
|
|
253
|
+
untouched. `max` pins the window to today, and `hideLabel` keeps the accessible
|
|
254
|
+
name while the field reads as toolbar chrome.
|
|
255
|
+
|
|
256
|
+
**Issue-date range filter with presets**
|
|
257
|
+
|
|
258
|
+
```vue
|
|
259
|
+
<template>
|
|
260
|
+
<div class="grid max-w-md gap-3 rounded-[var(--bb-radius)] border p-4">
|
|
261
|
+
<div class="flex flex-wrap items-center justify-between gap-2">
|
|
262
|
+
<div>
|
|
263
|
+
<p class="text-sm font-medium">Issue date</p>
|
|
264
|
+
<p class="text-xs text-[color:var(--bb-text-muted)]">
|
|
265
|
+
Filter the invoice list
|
|
266
|
+
</p>
|
|
267
|
+
</div>
|
|
268
|
+
<div class="flex gap-1.5">
|
|
269
|
+
<BbButton size="xs" variant="outline" @click="setPreset(7)">
|
|
270
|
+
Last 7 days
|
|
271
|
+
</BbButton>
|
|
272
|
+
<BbButton size="xs" variant="outline" @click="setPreset(30)">
|
|
273
|
+
Last 30 days
|
|
274
|
+
</BbButton>
|
|
275
|
+
<BbButton size="xs" variant="outline" @click="setPreset(90)">
|
|
276
|
+
Last quarter
|
|
277
|
+
</BbButton>
|
|
278
|
+
</div>
|
|
279
|
+
</div>
|
|
280
|
+
<BbDatePickerInput
|
|
281
|
+
v-model="period"
|
|
282
|
+
clearable
|
|
283
|
+
compact
|
|
284
|
+
floating
|
|
285
|
+
hide-label
|
|
286
|
+
label="Issue date range"
|
|
287
|
+
:max="today"
|
|
288
|
+
placeholder="Start → end"
|
|
289
|
+
prepend:icon="lucide:calendar-range"
|
|
290
|
+
range
|
|
291
|
+
/>
|
|
292
|
+
<p class="text-xs text-[color:var(--bb-text-muted)]">
|
|
293
|
+
{{
|
|
294
|
+
period.length === 2
|
|
295
|
+
? `Showing invoices from ${period[0]} to ${period[1]}`
|
|
296
|
+
: 'Pick a period or use a preset.'
|
|
297
|
+
}}
|
|
298
|
+
</p>
|
|
299
|
+
</div>
|
|
300
|
+
</template>
|
|
301
|
+
<script setup lang="ts">
|
|
302
|
+
import { ref } from 'vue';
|
|
303
|
+
import dayjs from 'dayjs';
|
|
304
|
+
import { BbButton, BbDatePickerInput } from 'bitboss-ui';
|
|
305
|
+
|
|
306
|
+
const today = dayjs().format('YYYY-MM-DD');
|
|
307
|
+
const period = ref<string[]>([]);
|
|
308
|
+
|
|
309
|
+
// `floating` keeps the model as plain YYYY-MM-DD strings, so presets can
|
|
310
|
+
// write straight into it — no ISO conversion on either side.
|
|
311
|
+
const setPreset = (days: number) => {
|
|
312
|
+
period.value = [
|
|
313
|
+
dayjs()
|
|
314
|
+
.subtract(days - 1, 'day')
|
|
315
|
+
.format('YYYY-MM-DD'),
|
|
316
|
+
today,
|
|
317
|
+
];
|
|
303
318
|
};
|
|
319
|
+
</script>
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
### Time selection
|
|
323
|
+
|
|
324
|
+
Set `datetime` and the field grows 24-hour `HH:mm` segments after the date
|
|
325
|
+
(auto-advance and paste distribution included), and the calendar gains hour /
|
|
326
|
+
minute columns beside the grid. A picked or typed date with a blank time
|
|
327
|
+
commits at `00:00` — the panel stays open after a day click so the user can
|
|
328
|
+
still pick a time, and the time columns stay disabled until a date exists.
|
|
329
|
+
|
|
330
|
+
**Date and time**
|
|
331
|
+
|
|
332
|
+
```vue
|
|
333
|
+
<BbDatePickerInput
|
|
334
|
+
v-model="state.startsAt"
|
|
335
|
+
datetime
|
|
336
|
+
label="Starts at"
|
|
337
|
+
prepend:icon="lucide:calendar-clock"
|
|
338
|
+
/>
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
Tuning knobs, all inert without `datetime` (DEV warning):
|
|
342
|
+
|
|
343
|
+
- **`seconds`** adds the `:ss` segment. Without it, an incoming value carrying
|
|
344
|
+
seconds displays truncated and zeroes out on the next user commit — precision
|
|
345
|
+
never rides along invisibly.
|
|
346
|
+
- **`step`** (minutes, default `1`) shapes the minute column — `:step="15"`
|
|
347
|
+
renders 00/15/30/45 — and constrains what the panel _produces_, never what
|
|
348
|
+
the field _accepts_: a typed `10:07` is emitted verbatim, and no column row
|
|
349
|
+
highlights for it.
|
|
350
|
+
- **`ampm`** switches the display to 12-hour with an AM/PM segment (type `A` /
|
|
351
|
+
`P`, or cycle with ArrowUp/Down). Purely visual: the model stays 24-hour.
|
|
352
|
+
- **`min` / `max`** additionally accept `YYYY-MM-DDTHH:mm` to tighten the
|
|
353
|
+
boundary day to a minute; date-only bounds keep working day-granular, so any
|
|
354
|
+
time inside the boundary day is fine.
|
|
355
|
+
|
|
356
|
+
#### The `time` companion model
|
|
304
357
|
|
|
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
|
-
|
|
358
|
+
`v-model:time` carries the time part as a 24-hour `HH:mm` (or `HH:mm:ss`)
|
|
359
|
+
string — an array in range mode. It emits alongside every value change:
|
|
360
|
+
|
|
361
|
+
- **Non-floating**: the time already lives inside `modelValue`; the mirror has
|
|
362
|
+
the _same digits_, and writing to it rewrites the model's time part. Bind it
|
|
363
|
+
only if you want the time as a separate piece of state.
|
|
364
|
+
- **`floating`**: the date string stays plain `YYYY-MM-DD`, so `v-model:time`
|
|
365
|
+
is the **only** carrier of the time — bind it or the time is lost.
|
|
366
|
+
|
|
367
|
+
**Floating date + separate time**
|
|
368
|
+
|
|
369
|
+
```vue
|
|
370
|
+
<BbDatePickerInput
|
|
371
|
+
v-model="state.reminderDate"
|
|
372
|
+
v-model:time="state.reminderTime"
|
|
373
|
+
datetime
|
|
374
|
+
floating
|
|
375
|
+
label="Reminder"
|
|
376
|
+
/>
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
In `range` mode each end has its own time; a same-day range whose end time
|
|
380
|
+
precedes its start swaps on blur (the usual `end_before_start` error fires).
|
|
381
|
+
The panel's time columns edit the segment whose fields you focused last.
|
|
382
|
+
|
|
383
|
+
### Invalid input & the error event
|
|
384
|
+
|
|
385
|
+
Typing (not calendar-clicking, which can only pick valid days) can produce a
|
|
386
|
+
date that's disabled or a reversed range. On commit the component **normalises**
|
|
387
|
+
the value and emits an `error` event describing what it did, so you can surface a
|
|
388
|
+
message. It never silently keeps an invalid value.
|
|
389
|
+
|
|
390
|
+
The payload is a discriminated union on `code`:
|
|
391
|
+
|
|
392
|
+
| `code` | Trigger | `normalized` |
|
|
393
|
+
| ---------------------- | ----------------------------- | ----------------------------------------------------------------- |
|
|
394
|
+
| `disabled_date` | Typed single date is disabled | Snapped to `min`/`max`, or `null` if only `selectable` blocked it |
|
|
395
|
+
| `disabled_range_start` | Typed range start is disabled | Snapped range, or `null` |
|
|
396
|
+
| `disabled_range_end` | Typed range end is disabled | Range with end snapped, or `[start]` |
|
|
397
|
+
| `end_before_start` | Typed end is before start | `[end, start]` — the swapped pair |
|
|
398
|
+
|
|
399
|
+
Each payload also carries `original` (what the user typed). Turn it into a
|
|
400
|
+
user-visible message via `errors` + `hasErrors`. The invoice due-date card below
|
|
401
|
+
bounds the field with `:min="issuedAt"` — typing an earlier day snaps to the
|
|
402
|
+
issue date and surfaces the normalisation.
|
|
403
|
+
|
|
404
|
+
**Invoice due date with bounds error**
|
|
405
|
+
|
|
406
|
+
```vue
|
|
407
|
+
<template>
|
|
408
|
+
<div class="grid max-w-sm gap-3 rounded-[var(--bb-radius)] border p-4">
|
|
409
|
+
<div class="flex items-start justify-between gap-3">
|
|
410
|
+
<div>
|
|
411
|
+
<p class="text-sm font-medium">INV-2048</p>
|
|
412
|
+
<p class="text-xs text-[color:var(--bb-text-muted)]">
|
|
413
|
+
Acme Studio · $2,400.00
|
|
414
|
+
</p>
|
|
415
|
+
</div>
|
|
416
|
+
<p class="text-xs text-[color:var(--bb-text-muted)]">Draft</p>
|
|
417
|
+
</div>
|
|
418
|
+
<BbDatePickerInput
|
|
419
|
+
v-model="dueDate"
|
|
420
|
+
compact
|
|
421
|
+
:errors="dueError"
|
|
422
|
+
floating
|
|
423
|
+
:has-errors="!!dueError"
|
|
424
|
+
hint="Must be on or after the issue date."
|
|
425
|
+
label="Due date"
|
|
426
|
+
:min="issuedAt"
|
|
427
|
+
persistent-hint
|
|
428
|
+
placeholder="YYYY-MM-DD"
|
|
429
|
+
prepend:icon="lucide:calendar"
|
|
430
|
+
@error="onError"
|
|
431
|
+
@update:model-value="dueError = ''"
|
|
432
|
+
/>
|
|
433
|
+
<p class="text-xs text-[color:var(--bb-text-muted)]">
|
|
434
|
+
Issued {{ issuedAt }} · Net 30 from issue
|
|
435
|
+
</p>
|
|
436
|
+
</div>
|
|
437
|
+
</template>
|
|
438
|
+
<script setup lang="ts">
|
|
439
|
+
import { ref } from 'vue';
|
|
440
|
+
import { BbDatePickerInput, type DatePickerInputError } from 'bitboss-ui';
|
|
441
|
+
|
|
442
|
+
const issuedAt = '2026-03-01';
|
|
443
|
+
const dueDate = ref<string | null>('2026-03-31');
|
|
444
|
+
const dueError = ref('');
|
|
445
|
+
|
|
446
|
+
// Typing a day before the issue date snaps to `min` and fires `error` —
|
|
447
|
+
// surface that normalisation through `errors` + `hasErrors`.
|
|
448
|
+
const onError = (error: DatePickerInputError) => {
|
|
449
|
+
dueError.value =
|
|
450
|
+
error.code === 'disabled_date'
|
|
451
|
+
? "Due date can't be before the issue date — adjusted."
|
|
452
|
+
: 'That date was adjusted to stay valid.';
|
|
334
453
|
};
|
|
454
|
+
</script>
|
|
335
455
|
```
|
|
336
456
|
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
display: inline-flex;
|
|
371
|
-
&--disabled {
|
|
372
|
-
}
|
|
373
|
-
&--errors {
|
|
374
|
-
}
|
|
375
|
-
&--loading {
|
|
376
|
-
}
|
|
377
|
-
&--readonly {
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
.bb-common-input-inner-container {
|
|
381
|
-
> input {
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
&__prepend-icon,
|
|
385
|
-
&__append-icon {
|
|
386
|
-
}
|
|
387
|
-
.bb-spinner {
|
|
388
|
-
}
|
|
389
|
-
.bb-error-icon {
|
|
390
|
-
}
|
|
391
|
-
&__prefix,
|
|
392
|
-
&__suffix {
|
|
393
|
-
}
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
}
|
|
397
|
-
|
|
398
|
-
&__hint-container {
|
|
399
|
-
.bb-base-input-container__hint {
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
&__errors {
|
|
403
|
-
}
|
|
404
|
-
&__error {
|
|
405
|
-
}
|
|
406
|
-
}
|
|
407
|
-
}
|
|
457
|
+
### Platform-aware interaction
|
|
458
|
+
|
|
459
|
+
The picker adapts to touch vs pointer, and you can steer that explicitly:
|
|
460
|
+
|
|
461
|
+
- **`adaptive`** (defaults to the project's `config.adaptive`): on mobile the
|
|
462
|
+
calendar opens in a bottom `BbOffCanvas` sheet instead of a floating popover.
|
|
463
|
+
The surface is **latched** when the panel opens, so a mid-session resize never
|
|
464
|
+
swaps a live popover into a sheet. Forward sheet options via `offCanvasProps`
|
|
465
|
+
(e.g. `title`, `size`, `persistent`, `draggable`). Set `:adaptive="false"` to
|
|
466
|
+
force the floating popover on every viewport (deterministic in tests).
|
|
467
|
+
- **`disableWriting`**: block typing so the calendar is the only way in. Use
|
|
468
|
+
`'mobile'` / `'desktop'` to disable typing on just one platform.
|
|
469
|
+
- **`disableCalendar`**: hide the calendar trigger entirely. Use `'mobile'` /
|
|
470
|
+
`'desktop'` to disable it on just one platform. Pair
|
|
471
|
+
`disableWriting: 'mobile'` with `disableCalendar: 'desktop'` to get "type on
|
|
472
|
+
desktop, tap the calendar on mobile".
|
|
473
|
+
|
|
474
|
+
Guard rail: a configuration that leaves a platform with **no** way to enter a
|
|
475
|
+
date (e.g. `disableWriting: true` **and** `disableCalendar: true`) **throws
|
|
476
|
+
during setup** — every platform must keep at least one interaction method.
|
|
477
|
+
|
|
478
|
+
**Typed-only on desktop**
|
|
479
|
+
|
|
480
|
+
```vue
|
|
481
|
+
<BbDatePickerInput
|
|
482
|
+
v-model="state.dueDate"
|
|
483
|
+
label="Due date"
|
|
484
|
+
disableWriting="mobile"
|
|
485
|
+
hint="Type it, or pick from the calendar."
|
|
486
|
+
persistentHint
|
|
487
|
+
prepend:icon="lucide:calendar"
|
|
488
|
+
placeholder="YYYY-MM-DD"
|
|
489
|
+
/>
|
|
408
490
|
```
|
|
491
|
+
|
|
492
|
+
### Decorating days
|
|
493
|
+
|
|
494
|
+
The `day` slot **replaces** a day's contents; the `append:day` slot **adds**
|
|
495
|
+
below it (badges, event dots, price tags). Both receive the day's state — `label`
|
|
496
|
+
(the day number), `selected`, `highlighted`, `first` / `middle` / `last` (range
|
|
497
|
+
edges) and `item` (the underlying dayjs object, for formatting or lookups). Keep
|
|
498
|
+
decorations lightweight; they render for every visible cell. The appointment
|
|
499
|
+
example above uses `append:day` for event dots.
|
|
500
|
+
|
|
501
|
+
### Calendar keyboard navigation
|
|
502
|
+
|
|
503
|
+
The calendar grid is a `role="grid"` with a roving tabindex (the current day is
|
|
504
|
+
the single tab stop). Once focused:
|
|
505
|
+
|
|
506
|
+
- **arrow keys** move by day (←/→) and week (↑/↓);
|
|
507
|
+
- **Home** / **End** jump to the week's edges, **PageUp** / **PageDown** change
|
|
508
|
+
month, and type-ahead jumps within the visible month;
|
|
509
|
+
- **Enter** / **Space** select the focused day and close the surface;
|
|
510
|
+
- the month and year headings open their own pick panels (Enter toggles them).
|
|
511
|
+
|
|
512
|
+
Today carries `aria-current="date"`, the selection carries `aria-selected`, and
|
|
513
|
+
each day button has a full spoken date label — so don't add your own key
|
|
514
|
+
handlers.
|
|
515
|
+
|
|
516
|
+
### Icons, affixes, clearable, loading & states
|
|
517
|
+
|
|
518
|
+
`prepend:icon` / `append:icon`, and the `prefix` / `suffix` / `prepend` /
|
|
519
|
+
`append` / `prepend-outer` / `append-outer` slots work as across the family. The
|
|
520
|
+
append slot sits alongside the calendar trigger button.
|
|
521
|
+
|
|
522
|
+
`clearable` shows a clear button when a value is present and interactive; it
|
|
523
|
+
emits `null` for a single field and `[]` for a range. `loading` shows a spinner
|
|
524
|
+
(visual only). `disabled` blocks everything including the calendar trigger
|
|
525
|
+
(`aria-disabled`); `readonly` keeps the value readable and copyable but blocks
|
|
526
|
+
typing and the calendar (`aria-readonly`).
|
|
527
|
+
|
|
528
|
+
**Clearable contract start and a readonly created stamp**
|
|
529
|
+
|
|
530
|
+
```vue
|
|
531
|
+
<template>
|
|
532
|
+
<div class="grid max-w-sm gap-3 rounded-[var(--bb-radius)] border p-4">
|
|
533
|
+
<div>
|
|
534
|
+
<p class="text-sm font-medium">Contract dates</p>
|
|
535
|
+
<p class="text-xs text-[color:var(--bb-text-muted)]">
|
|
536
|
+
Clear the start date, or copy the locked created stamp.
|
|
537
|
+
</p>
|
|
538
|
+
</div>
|
|
539
|
+
<BbDatePickerInput
|
|
540
|
+
v-model="from"
|
|
541
|
+
clearable
|
|
542
|
+
compact
|
|
543
|
+
floating
|
|
544
|
+
label="Contract start"
|
|
545
|
+
placeholder="YYYY-MM-DD"
|
|
546
|
+
prepend:icon="lucide:calendar"
|
|
547
|
+
/>
|
|
548
|
+
<BbDatePickerInput
|
|
549
|
+
compact
|
|
550
|
+
floating
|
|
551
|
+
label="Created"
|
|
552
|
+
model-value="2026-06-02"
|
|
553
|
+
prepend:icon="lucide:calendar"
|
|
554
|
+
readonly
|
|
555
|
+
/>
|
|
556
|
+
</div>
|
|
557
|
+
</template>
|
|
558
|
+
<script setup lang="ts">
|
|
559
|
+
import { ref } from 'vue';
|
|
560
|
+
import { BbDatePickerInput } from 'bitboss-ui';
|
|
561
|
+
|
|
562
|
+
// Clearable emits `null` when the user hits the clear button.
|
|
563
|
+
const from = ref<string | null>('2026-05-01');
|
|
564
|
+
</script>
|
|
565
|
+
```
|
|
566
|
+
|
|
567
|
+
### Events & v-model
|
|
568
|
+
|
|
569
|
+
Because the control is a composite (segmented fields + calendar + optional
|
|
570
|
+
sheet), its events differ from a plain input:
|
|
571
|
+
|
|
572
|
+
- `update:modelValue` — `null` / single string / `[start, end]` per mode and
|
|
573
|
+
`floating`.
|
|
574
|
+
- `error` — a `DatePickerInputError` on every normalisation (see _Invalid
|
|
575
|
+
input_).
|
|
576
|
+
- `active` / `inactive` — fire when focus enters / leaves the whole control
|
|
577
|
+
(not per-field); these gate the `hint`'s show-on-focus behaviour. Use them
|
|
578
|
+
instead of `blur`, which is not forwarded at this level.
|
|
579
|
+
- `focus` — forwarded when a segment input gains focus.
|
|
580
|
+
|
|
581
|
+
### Density, layout, config & platforms
|
|
582
|
+
|
|
583
|
+
- `compact` reduces height; `direction` works whenever the resolved label mode
|
|
584
|
+
is `'outside'` (the config default) — `direction="horizontal"` lays the label
|
|
585
|
+
beside the field. With `labelMode="floating"` or `"inside"` (prop or
|
|
586
|
+
`config.defaultInputLabelMode`) the label is embedded in the field, so the
|
|
587
|
+
layout is forced vertical and `direction` is ignored — same rule as
|
|
588
|
+
`BbTextInput`/`BbSelect`/`BbNumberInput`.
|
|
589
|
+
- **`config.locale`** drives both the segment order (`en` → month-first) and the
|
|
590
|
+
calendar's month/weekday names via dayjs (`it` and `en` locales are bundled).
|
|
591
|
+
- The calendar popover / sheet is **teleported** to the top layer, so its DOM
|
|
592
|
+
isn't a child of the field — account for that in tests (query `document.body`)
|
|
593
|
+
and z-index reasoning. The field itself is SSR-safe; the popover mounts client
|
|
594
|
+
side.
|
|
595
|
+
|
|
596
|
+
```vue
|
|
597
|
+
<!-- Inertia: bind server validation; store the floating YYYY-MM-DD form -->
|
|
598
|
+
<BbDatePickerInput
|
|
599
|
+
v-model="form.dueDate"
|
|
600
|
+
label="Due date"
|
|
601
|
+
floating
|
|
602
|
+
:min="today"
|
|
603
|
+
:errors="form.errors.dueDate"
|
|
604
|
+
:has-errors="!!form.errors.dueDate"
|
|
605
|
+
/>
|
|
606
|
+
```
|
|
607
|
+
|
|
608
|
+
### Works well with
|
|
609
|
+
|
|
610
|
+
- `BbTextInput` / `BbTextarea` / `BbNumberInput` — same chrome; mix in one form.
|
|
611
|
+
The `BbTextInput` invoice example composes all four, including a `range` date
|
|
612
|
+
field for a service period and a `min`-bounded due date.
|
|
613
|
+
- `BbSelect` — when a date is really a choice from a short fixed list
|
|
614
|
+
(month, quarter), a select is simpler.
|
|
615
|
+
- `BbOffCanvas` — the adaptive mobile surface; tune it through `offCanvasProps`.
|
|
616
|
+
- `useToast` — confirm a booking once the date is committed.
|
|
617
|
+
|
|
618
|
+
### Gotchas & anti-patterns
|
|
619
|
+
|
|
620
|
+
- `min` / `max` must be `YYYY-MM-DD` — other shapes **throw at setup**.
|
|
621
|
+
- Disabling _both_ typing and the popover on a platform **throws** — always
|
|
622
|
+
leave one interaction path.
|
|
623
|
+
- Don't gate dates with a custom click handler on top of `selectable`/`min`/`max`
|
|
624
|
+
— disabled days are already communicated to assistive tech; a parallel handler
|
|
625
|
+
desyncs them.
|
|
626
|
+
- Don't listen for `blur` here — use `inactive` (the composite tracks focus
|
|
627
|
+
across its fields and teleported calendar manually).
|
|
628
|
+
- Range mode requires an **array** modelValue (`[start, end]`, or `[]` when
|
|
629
|
+
empty). Binding `null`/`undefined` or a bare string throws at setup — model the
|
|
630
|
+
empty state as `[]`, not `null`.
|
|
631
|
+
- Pick one of ISO or `floating` per field and store it consistently; don't mix
|
|
632
|
+
formats for the same value.
|
|
633
|
+
|
|
634
|
+
### Accessibility
|
|
635
|
+
|
|
636
|
+
- Always provide `label`; hide it visually with `hideLabel` rather than dropping
|
|
637
|
+
it.
|
|
638
|
+
- Keep `min` / `max` and `selectable` authoritative — disabled days are exposed
|
|
639
|
+
to assistive tech; don't also gate via custom handlers.
|
|
640
|
+
- The `error` event fires when a typed value is invalid or out of bounds; surface
|
|
641
|
+
that through `errors` + `hasErrors` rather than failing silently.
|
|
642
|
+
- The calendar exposes `role="grid"`, `aria-current="date"` on today,
|
|
643
|
+
`aria-selected` on the selection and spoken date labels on each day; the
|
|
644
|
+
trigger button carries `aria-haspopup="dialog"` and `aria-expanded`.
|
|
645
|
+
- **Driving this field from a test:** each segment input carries its own
|
|
646
|
+
localized `aria-label` ("Month"/"Day"/"Year", …) that overrides the field's
|
|
647
|
+
own `label` for the accessible-name computation — `getByLabel('<field
|
|
648
|
+
label>')` matches nothing; query each segment by its own label instead. See
|
|
649
|
+
[Agent Contract](./guides/agent-contract.md) § Testing Against bitboss-ui.
|
|
650
|
+
|
|
651
|
+
## v-model
|
|
652
|
+
|
|
653
|
+
- `v-model` — type: `string \| string[] \| null`
|
|
654
|
+
- `v-model:time` — type: `string \| string[] \| null \| undefined`
|
|
655
|
+
|
|
656
|
+
## Props
|
|
657
|
+
|
|
658
|
+
| Prop | Type | Default | Required | Description |
|
|
659
|
+
| --- | --- | --- | --- | --- |
|
|
660
|
+
| `adaptive` | `boolean \| undefined` | `undefined` | | On mobile the calendar opens inside a bottom off-canvas sheet instead of a floating popover, mirroring the adaptive behaviour of `BbPopover`/`BbSelect`. When unset, falls back to the global `config.adaptive`. |
|
|
661
|
+
| `ampm` | `boolean \| undefined` | | | 12-hour display with an AM/PM segment (requires `datetime`). Purely a field-composition concern: `modelValue` and the `time` model stay 24-hour regardless. Type `A`/`P` (or ArrowUp/Down) to set the meridiem. |
|
|
662
|
+
| `append:icon` | `string \| undefined` | | | Name of the icon to be added at the end of the input. |
|
|
663
|
+
| `autocomplete` | `string \| undefined` | | | Guides the browser as to the type of information expected in the field. |
|
|
664
|
+
| `autofocus` | `Booleanish \| undefined` | | | Sets autofocus on page load. |
|
|
665
|
+
| `clearable` | `boolean \| undefined` | | | Displays a clear button when the input has a value and is being interacted with. |
|
|
666
|
+
| `compact` | `boolean \| undefined` | | | Sets the component in a compact state. |
|
|
667
|
+
| `datetime` | `boolean \| undefined` | | | Adds time selection beside date selection: `HH:mm` segments in the text field (24-hour) and time columns under the calendar. A picked or typed date with a blank time commits at `00:00`. Non-floating values carry the time inside `modelValue`… |
|
|
668
|
+
| `description` | `string \| undefined` | | | Descriptive text displayed below the label and above the input. Unlike the hint it is always visible, and it is linked to the input via `aria-describedby` (after any `errors` / `warnings`, before the `hint`). |
|
|
669
|
+
| `direction` | `InputDirection \| undefined` | | | Direction of the layout of the component. Can either be a predefined value or a pattern separated by a space like `xx xxxxx`. |
|
|
670
|
+
| `disableCalendar` | `boolean \| "mobile" \| "desktop" \| undefined` | | | Disables the calendar: hides the trigger button and prevents the popover from opening. Use `'desktop'` to disable it on desktop only (keeping the calendar for mobile, complementing `disableWriting: 'mobile'`) or `'mobile'` to disable it on … |
|
|
671
|
+
| `disabled` | `boolean \| undefined` | | | Disables the component. |
|
|
672
|
+
| `disableWriting` | `boolean \| "mobile" \| "desktop" \| undefined` | | | Disables typing into the input. Use `'mobile'` to disable typing only on mobile, `'desktop'` to disable typing only on desktop. |
|
|
673
|
+
| `errors` | `string \| string[] \| undefined` | | | Can be a string or an array of string containing the messages to display. They render in an `aria-live="polite"` region (announced when they appear) and, while the list is non-empty, are referenced FIRST from the control's `aria-describedby… |
|
|
674
|
+
| `firstDayOfWeek` | `0 \| 1 \| 2 \| 3 \| 4 \| 5 \| 6 \| undefined` | | | Defines the first day of the week with `0` meaning Sunday and `6` meaning Saturday. |
|
|
675
|
+
| `floating` | `boolean \| undefined` | | | If true the date will have a format YYYY-MM-DD instead of the default ISO string. |
|
|
676
|
+
| `hasErrors` | `boolean \| undefined` | | | Define if the component should be in an error state. It usually attaches a CSS class for styling purposes. |
|
|
677
|
+
| `hasWarning` | `boolean \| undefined` | | | Define if the component should be in a warning state. Same chrome as errors with `--bb-warn`; errors take priority. |
|
|
678
|
+
| `hideLabel` | `boolean \| undefined` | | | Visually hides the label of the input while maintaining accessibility. |
|
|
679
|
+
| `hint` | `string \| undefined` | | | Text box to be displayed near the input, usually to indicate instructions. |
|
|
680
|
+
| `id` | `string \| undefined` | | | The identifier of the component. |
|
|
681
|
+
| `label` | `string` | | yes | Text content of the label of the element. |
|
|
682
|
+
| `labelMode` | `"floating" \| "outside" \| "inside" \| undefined` | | | Label rendering mode. |
|
|
683
|
+
| `labelPosition` | `"left" \| "center" \| "right" \| undefined` | | | Sets the text alignment of the label. |
|
|
684
|
+
| `loading` | `boolean \| undefined` | | | Sets the component in a loading state, usually triggering some visual styles. |
|
|
685
|
+
| `max` | `string \| undefined` | | | Maximum selectable date in `YYYY-MM-DD` format — or, with `datetime`, `YYYY-MM-DDTHH:mm` to tighten the boundary day to a minute. Values outside both patterns throw during setup to surface configuration mistakes. |
|
|
686
|
+
| `min` | `string \| undefined` | | | Minimum selectable date in `YYYY-MM-DD` format — or, with `datetime`, `YYYY-MM-DDTHH:mm` to tighten the boundary day to a minute. Values outside both patterns throw during setup to surface configuration mistakes. |
|
|
687
|
+
| `modelValue` | `string \| string[] \| null` | | yes | Used by v-model. Can be null, a single string, or an array of strings based on whether a range or single date is needed. |
|
|
688
|
+
| `name` | `string \| undefined` | | | Defines the name of the input. |
|
|
689
|
+
| `offCanvasProps` | `Partial<BbOffCanvasProps> \| undefined` | | | Extra props forwarded to the `BbOffCanvas` sheet when `adaptive` is active on mobile (e.g. `title`, `size`, `persistent`). |
|
|
690
|
+
| `persistentHint` | `boolean \| undefined` | | | Keeps the hint displayed. |
|
|
691
|
+
| `placeholder` | `string \| undefined` | | | String displayed when there's no data. |
|
|
692
|
+
| `prepend:icon` | `string \| undefined` | | | Name of the icon to be added at the start of the input. |
|
|
693
|
+
| `range` | `boolean \| undefined` | | | Selects a range of dates between two dates. It selects all of the days between start and end. |
|
|
694
|
+
| `readonly` | `boolean \| undefined` | | | Sets the input in a readonly state. |
|
|
695
|
+
| `required` | `boolean \| undefined` | | | Sets the input as required. |
|
|
696
|
+
| `reverse` | `boolean \| undefined` | | | Reverses the layout. Applicable in every direction the order of the label and the input is swapped. |
|
|
697
|
+
| `seconds` | `boolean \| undefined` | | | Adds the seconds segment (requires `datetime`). Without it, an incoming value carrying seconds displays truncated and is left untouched until the user commits an edit, at which point seconds zero out. |
|
|
698
|
+
| `selectable` | `((date: string) => boolean) \| undefined` | | | Function that accepts a `string` object and returns a boolean. `false` meaning the date cannot be selected. |
|
|
699
|
+
| `step` | `number \| undefined` | | | Minute granularity for the calendar's minute column and arrow stepping (requires `datetime`). Constrains what the component produces, never what it accepts: a typed off-grid value (e.g. `10:07` with `step: 15`) is emitted verbatim, and no c… |
|
|
700
|
+
| `time` | `string \| string[] \| null \| undefined` | | | Companion model for the time part (`v-model:time`), always 24-hour `HH:mm` / `HH:mm:ss` regardless of display. With `floating` it is the only carrier of the time; otherwise it mirrors the time inside `modelValue` (same digits) and writing i… |
|
|
701
|
+
| `transitionDuration` | `number \| undefined` | | | Transition duration, in milliseconds, for the popover appearance. |
|
|
702
|
+
| `utc` | `boolean \| undefined` | | | Emits values as UTC ISO strings (`...Z`) instead of ISO strings carrying the local offset (`...+01:00`). Emission-only: incoming values are parsed identically either way, so the prop can be added or removed without touching stored values. F… |
|
|
703
|
+
| `warnings` | `string \| string[] \| undefined` | | | Warning messages to display beneath the field, in their own `aria-live` region and amber (`--bb-warn`). A string or array; a non-empty list implies the warning state. Errors suppress warnings when both are set. While displayed they are also… |
|
|
704
|
+
|
|
705
|
+
## Events
|
|
706
|
+
|
|
707
|
+
- `active` — `(event: "active"): void`
|
|
708
|
+
- `error` — `(event: "error", error: DatePickerInputError): void`
|
|
709
|
+
- `focus` — `(event: "focus", event: FocusEvent): void`
|
|
710
|
+
- `inactive` — `(event: "inactive"): void`
|
|
711
|
+
- `update:modelValue` — `(event: "update:modelValue", value: string \| string[] \| null): void`
|
|
712
|
+
- `update:time` — `(event: "update:time", value: string \| string[] \| null): void`
|
|
713
|
+
|
|
714
|
+
## Slots
|
|
715
|
+
|
|
716
|
+
- `append` — scope: `object` — Content rendered after the date fields, at the end of the inner container (before the calendar toggle button).
|
|
717
|
+
- `append-outer` — scope: `object` — Content rendered after the entire date picker control, outside the input chrome.
|
|
718
|
+
- `append:day` — scope: `{ first: boolean; highlighted: boolean; item: Dayjs; label: string; last: boolean; middle: boolean; selected: boolean; }` — Appends content below each calendar day.
|
|
719
|
+
- `day` — scope: `{ first: boolean; highlighted: boolean; item: Dayjs; label: string; last: boolean; middle: boolean; selected: boolean; }` — Replaces the day button label inside each calendar day.
|
|
720
|
+
- `label` — scope: `BbDatePickerInputLabelSlotProps` — Replaces the default label text rendered above the date picker.
|
|
721
|
+
- `prefix` — scope: `object` — Inline content rendered at the start of the input field area, before the date fields.
|
|
722
|
+
- `prepend` — scope: `object` — Content rendered before the date fields, at the start of the inner container.
|
|
723
|
+
- `prepend-outer` — scope: `object` — Content rendered before the entire date picker control, outside the input chrome.
|
|
724
|
+
- `suffix` — scope: `object` — Inline content rendered at the end of the input field area, after the date fields.
|
|
725
|
+
|
|
726
|
+
## Validated variant
|
|
727
|
+
|
|
728
|
+
Importing this component from `bitboss-ui/validated` instead of `bitboss-ui` binds it to a vee-validate field. Same props, same events, same slots — plus the ones below. Requires the `vee-validate` peer dependency and a `<BbForm>` (or `useForm()`) ancestor. Full guide: [validated-forms](./guides/validated-forms.md).
|
|
729
|
+
|
|
730
|
+
| Prop | Type | Description |
|
|
731
|
+
| --- | --- | --- |
|
|
732
|
+
| `rules` | `RuleExpression<string \| string[] \| null>` | vee-validate rules for this field. |
|
|
733
|
+
| `validateOn` | `ValidateTiming[] \| undefined` | Which interactions trigger validation (see `ValidatedFieldProps.validateOn` for the timing vocabulary). |
|
|
734
|
+
| `vid` | `string \| undefined` | Explicit vee-validate field name. **Usually omit it** — the name is derived automatically from the control's `label`/`legend`. Only set `vid` when that derivation wouldn't be unique (e.g. v-for rows, or array `v-model`s that share a label).… |
|
|
735
|
+
|
|
736
|
+
## See Also
|
|
737
|
+
|
|
738
|
+
- [BbDatePicker](./BbDatePicker.md) — Opens an anchored calendar (and optional time rail) popover on a trigger you own — the date analog of BbColorPalette; also the v-bb-date directive.
|
|
739
|
+
- [BbTextInput](./BbTextInput.md) — Captures single-line text values.
|
|
740
|
+
- [BbTimePickerInput](./BbTimePickerInput.md) — Segmented time field with hour/minute columns; 24-hour string model.
|