bitboss-ui 2.1.134 → 3.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +244 -21
- package/bin/bitboss-ui-mcp.mjs +557 -0
- package/bin/bitboss-ui.mjs +626 -0
- package/dist/ai/BbAccordion.md +522 -113
- package/dist/ai/BbAlert.md +377 -197
- package/dist/ai/BbAsterisk.md +46 -0
- package/dist/ai/BbAvatar.md +454 -178
- package/dist/ai/BbBadge.md +695 -225
- package/dist/ai/BbBadgeButton.md +54 -0
- package/dist/ai/BbBaseButton.md +489 -0
- package/dist/ai/BbBaseCheckbox.md +49 -0
- package/dist/ai/BbBaseCheckboxGroup.md +64 -0
- package/dist/ai/BbBaseCheckboxIcon.md +174 -0
- package/dist/ai/BbBaseColorInput.md +64 -0
- package/dist/ai/BbBaseColorPalette.md +39 -0
- package/dist/ai/BbBaseDatePicker.md +42 -0
- package/dist/ai/BbBaseDatePickerInput.md +73 -0
- package/dist/ai/BbBaseInputContainer.md +48 -0
- package/dist/ai/BbBaseNumberInput.md +71 -0
- package/dist/ai/BbBaseRadio.md +46 -0
- package/dist/ai/BbBaseRadioGroup.md +63 -0
- package/dist/ai/BbBaseRadioIcon.md +187 -0
- package/dist/ai/BbBaseRating.md +51 -0
- package/dist/ai/BbBaseSelect.md +88 -0
- package/dist/ai/BbBaseSlider.md +56 -0
- package/dist/ai/BbBaseSwitch.md +49 -0
- package/dist/ai/BbBaseSwitchGroup.md +64 -0
- package/dist/ai/BbBaseSwitchIcon.md +184 -0
- package/dist/ai/BbBaseTag.md +68 -0
- package/dist/ai/BbBaseTextInput.md +75 -0
- package/dist/ai/BbBaseTextarea.md +62 -0
- package/dist/ai/BbBaseTimePickerInput.md +62 -0
- package/dist/ai/BbBreadcrumbs.md +542 -503
- package/dist/ai/BbButton.md +767 -636
- package/dist/ai/BbCheckbox.md +572 -254
- package/dist/ai/BbCheckboxGroup.md +561 -361
- package/dist/ai/BbCollapsible.md +419 -103
- package/dist/ai/BbColorInput.md +529 -323
- package/dist/ai/BbColorPalette.md +565 -330
- package/dist/ai/BbConfirm.md +612 -136
- package/dist/ai/BbConfirmPortal.md +28 -0
- package/dist/ai/BbDatePicker.md +244 -0
- package/dist/ai/BbDatePickerInput.md +706 -388
- package/dist/ai/BbDialog.md +770 -99
- package/dist/ai/BbDropdown.md +1054 -763
- package/dist/ai/BbDropdownButton.md +511 -615
- package/dist/ai/BbDropdownGroup.md +34 -0
- package/dist/ai/BbDropzone.md +1148 -436
- package/dist/ai/BbForm.md +239 -0
- package/dist/ai/BbIcon.md +379 -212
- package/dist/ai/BbIndicator.md +283 -0
- package/dist/ai/BbNumberInput.md +713 -355
- package/dist/ai/BbOffCanvas.md +875 -498
- package/dist/ai/BbPagination.md +483 -535
- package/dist/ai/BbPopover.md +583 -546
- package/dist/ai/BbProgress.md +456 -69
- package/dist/ai/BbRadio.md +343 -229
- package/dist/ai/BbRadioGroup.md +426 -353
- package/dist/ai/BbRating.md +361 -226
- package/dist/ai/BbSelect.md +1380 -536
- package/dist/ai/BbSelectPopover.md +1240 -1579
- package/dist/ai/BbSlider.md +478 -257
- package/dist/ai/BbSmoothHeight.md +472 -139
- package/dist/ai/BbSpinner.md +718 -131
- package/dist/ai/BbSwitch.md +549 -119
- package/dist/ai/BbSwitchGroup.md +503 -214
- package/dist/ai/BbTable.md +1956 -2358
- package/dist/ai/BbTabs.md +1113 -0
- package/dist/ai/BbTabsList.md +29 -0
- package/dist/ai/BbTabsPanes.md +27 -0
- package/dist/ai/BbTabsRoot.md +57 -0
- package/dist/ai/BbTag.md +393 -292
- package/dist/ai/BbTextInput.md +852 -333
- package/dist/ai/BbTextarea.md +836 -255
- package/dist/ai/BbTimePicker.md +231 -0
- package/dist/ai/BbTimePickerInput.md +196 -0
- package/dist/ai/BbToast.md +624 -196
- package/dist/ai/BbToastPortal.md +28 -0
- package/dist/ai/BbTooltip.md +443 -346
- package/dist/ai/BbTree.md +984 -235
- package/dist/ai/ChipsBox.md +27 -199
- package/dist/ai/ClearableButton.md +21 -55
- package/dist/ai/CommaBox.md +25 -200
- package/dist/ai/CommonInputWrapper.md +42 -0
- package/dist/ai/CommonPopover.md +30 -510
- package/dist/ai/ErrorIcon.md +19 -56
- package/dist/ai/FlatListBox.md +35 -379
- package/dist/ai/GroupedListBox.md +37 -535
- package/dist/ai/GuidesComponent.md +21 -0
- package/dist/ai/ListBox.md +38 -231
- package/dist/ai/OptionsContainer.md +34 -253
- package/dist/ai/WarningIcon.md +21 -0
- package/dist/ai/components.json +15883 -0
- package/dist/ai/composables/useBbConfig.md +80 -0
- package/dist/ai/composables/useBbFormContext.md +110 -0
- package/dist/ai/composables/useBbTableContext.md +164 -0
- package/dist/ai/composables/useBbTabsContext.md +118 -0
- package/dist/ai/composables/useBroadcastChannelInstance.md +97 -0
- package/dist/ai/composables/useConfirm.md +306 -0
- package/dist/ai/composables/useCountdown.md +84 -0
- package/dist/ai/composables/useId.md +60 -0
- package/dist/ai/composables/useMobile.md +85 -0
- package/dist/ai/composables/useToast.md +230 -0
- package/dist/ai/guides/agent-contract.md +108 -0
- package/dist/ai/guides/ai-router.md +111 -0
- package/dist/ai/guides/app-layout.md +295 -0
- package/dist/ai/guides/coherence-playbook.md +136 -0
- package/dist/ai/guides/component-picker.md +195 -0
- package/dist/ai/guides/design-language.md +461 -0
- package/dist/ai/guides/design-tokens.md +424 -0
- package/dist/ai/guides/fetch-items-playbook.md +161 -0
- package/dist/ai/guides/floating-bottom-panel.md +191 -0
- package/dist/ai/guides/icons-policy.md +257 -0
- package/dist/ai/guides/inertia-helpers.md +1394 -0
- package/dist/ai/guides/inline-edit-playbook.md +258 -0
- package/dist/ai/guides/installation-and-plugin-setup.md +377 -0
- package/dist/ai/guides/migration/components/bb-alert.md +37 -0
- package/dist/ai/guides/migration/components/bb-avatar.md +24 -0
- package/dist/ai/guides/migration/components/bb-badge.md +110 -0
- package/dist/ai/guides/migration/components/bb-breadcrumbs.md +26 -0
- package/dist/ai/guides/migration/components/bb-button.md +55 -0
- package/dist/ai/guides/migration/components/bb-checkbox-group.md +54 -0
- package/dist/ai/guides/migration/components/bb-checkbox.md +45 -0
- package/dist/ai/guides/migration/components/bb-chip.md +35 -0
- package/dist/ai/guides/migration/components/bb-collapsible.md +26 -0
- package/dist/ai/guides/migration/components/bb-color-input.md +23 -0
- package/dist/ai/guides/migration/components/bb-color-palette.md +31 -0
- package/dist/ai/guides/migration/components/bb-date-picker-input.md +84 -0
- package/dist/ai/guides/migration/components/bb-dialog.md +46 -0
- package/dist/ai/guides/migration/components/bb-dropdown-button.md +31 -0
- package/dist/ai/guides/migration/components/bb-dropdown.md +36 -0
- package/dist/ai/guides/migration/components/bb-dropzone.md +27 -0
- package/dist/ai/guides/migration/components/bb-icon.md +27 -0
- package/dist/ai/guides/migration/components/bb-off-canvas.md +25 -0
- package/dist/ai/guides/migration/components/bb-offcanvas.md +54 -0
- package/dist/ai/guides/migration/components/bb-pagination.md +24 -0
- package/dist/ai/guides/migration/components/bb-popover.md +52 -0
- package/dist/ai/guides/migration/components/bb-rating.md +24 -0
- package/dist/ai/guides/migration/components/bb-select-popover.md +58 -0
- package/dist/ai/guides/migration/components/bb-select.md +68 -0
- package/dist/ai/guides/migration/components/bb-slider.md +25 -0
- package/dist/ai/guides/migration/components/bb-smooth-height.md +45 -0
- package/dist/ai/guides/migration/components/bb-spinner.md +23 -0
- package/dist/ai/guides/migration/components/bb-table.md +66 -0
- package/dist/ai/guides/migration/components/bb-tabs.md +47 -0
- package/dist/ai/guides/migration/components/bb-tag.md +29 -0
- package/dist/ai/guides/migration/components/bb-text-input.md +37 -0
- package/dist/ai/guides/migration/components/bb-toast.md +47 -0
- package/dist/ai/guides/migration/components/bb-tooltip.md +34 -0
- package/dist/ai/guides/migration/components/bb-tree.md +77 -0
- package/dist/ai/guides/migration/components/use-confirm.md +46 -0
- package/dist/ai/guides/migration/v2-to-v3.md +649 -0
- package/dist/ai/guides/options-items-playbook.md +222 -0
- package/dist/ai/guides/page-shell.md +314 -0
- package/dist/ai/guides/validated-forms.md +177 -0
- package/dist/ai/index.md +156 -32
- package/dist/ai/recipes/inertia/approvals-inbox.md +1598 -0
- package/dist/ai/recipes/inertia/inline-edit-workspace.md +1733 -0
- package/dist/ai/recipes/inertia/onboarding.md +1765 -0
- package/dist/ai/recipes/inertia/ownership-atlas.md +1281 -0
- package/dist/ai/recipes/inertia/record-form.md +1442 -0
- package/dist/ai/recipes/inertia/records-workspace.md +1328 -0
- package/dist/ai/recipes/inertia/upload-center.md +1926 -0
- package/dist/ai/recipes/inertia/wizard-form.md +1477 -0
- package/dist/ai/recipes/nuxt/approvals-inbox.md +1561 -0
- package/dist/ai/recipes/nuxt/inline-edit-workspace.md +1690 -0
- package/dist/ai/recipes/nuxt/onboarding.md +1698 -0
- package/dist/ai/recipes/nuxt/record-form.md +1456 -0
- package/dist/ai/recipes/nuxt/records-workspace.md +1314 -0
- package/dist/ai/recipes/nuxt/upload-center.md +1847 -0
- package/dist/ai/recipes/nuxt/wizard-form.md +1486 -0
- package/dist/ai/recipes/vue/approvals-inbox.md +1479 -0
- package/dist/ai/recipes/vue/inline-edit-workspace.md +1581 -0
- package/dist/ai/recipes/vue/onboarding.md +1653 -0
- package/dist/ai/recipes/vue/record-form.md +1540 -0
- package/dist/ai/recipes/vue/records-workspace.md +1230 -0
- package/dist/ai/recipes/vue/upload-center.md +1806 -0
- package/dist/ai/recipes/vue/wizard-form.md +1418 -0
- package/dist/ai/source/BbAccordion.md +122 -0
- package/dist/ai/source/BbAlert.md +396 -0
- package/dist/ai/source/BbAsterisk.md +32 -0
- package/dist/ai/source/BbAvatar.md +256 -0
- package/dist/ai/source/BbBadge.md +560 -0
- package/dist/ai/source/BbBadgeButton.md +490 -0
- package/dist/ai/source/BbBaseButton.md +682 -0
- package/dist/ai/source/BbBaseCheckbox.md +459 -0
- package/dist/ai/source/BbBaseCheckboxGroup.md +554 -0
- package/dist/ai/source/BbBaseCheckboxIcon.md +201 -0
- package/dist/ai/source/BbBaseColorInput.md +413 -0
- package/dist/ai/source/BbBaseColorPalette.md +934 -0
- package/dist/ai/source/BbBaseDatePicker.md +1001 -0
- package/dist/ai/source/BbBaseDatePickerInput.md +1781 -0
- package/dist/ai/source/BbBaseInputContainer.md +1148 -0
- package/dist/ai/source/BbBaseNumberInput.md +615 -0
- package/dist/ai/source/BbBaseRadio.md +377 -0
- package/dist/ai/source/BbBaseRadioGroup.md +499 -0
- package/dist/ai/source/BbBaseRadioIcon.md +153 -0
- package/dist/ai/source/BbBaseRating.md +573 -0
- package/dist/ai/source/BbBaseSelect.md +895 -0
- package/dist/ai/source/BbBaseSlider.md +1085 -0
- package/dist/ai/source/BbBaseSwitch.md +246 -0
- package/dist/ai/source/BbBaseSwitchGroup.md +302 -0
- package/dist/ai/source/BbBaseSwitchIcon.md +206 -0
- package/dist/ai/source/BbBaseTag.md +688 -0
- package/dist/ai/source/BbBaseTextInput.md +511 -0
- package/dist/ai/source/BbBaseTextarea.md +480 -0
- package/dist/ai/source/BbBaseTimePickerInput.md +1013 -0
- package/dist/ai/source/BbBreadcrumbs.md +811 -0
- package/dist/ai/source/BbButton.md +990 -0
- package/dist/ai/source/BbCheckbox.md +319 -0
- package/dist/ai/source/BbCheckboxGroup.md +412 -0
- package/dist/ai/source/BbCollapsible.md +133 -0
- package/dist/ai/source/BbColorInput.md +315 -0
- package/dist/ai/source/BbColorPalette.md +361 -0
- package/dist/ai/source/BbConfirm.md +173 -0
- package/dist/ai/source/BbConfirmPortal.md +74 -0
- package/dist/ai/source/BbDatePicker.md +725 -0
- package/dist/ai/source/BbDatePickerInput.md +518 -0
- package/dist/ai/source/BbDialog.md +812 -0
- package/dist/ai/source/BbDropdown.md +2369 -0
- package/dist/ai/source/BbDropdownButton.md +313 -0
- package/dist/ai/source/BbDropdownGroup.md +1249 -0
- package/dist/ai/source/BbDropzone.md +749 -0
- package/dist/ai/source/BbForm.md +100 -0
- package/dist/ai/source/BbIcon.md +212 -0
- package/dist/ai/source/BbIndicator.md +298 -0
- package/dist/ai/source/BbNumberInput.md +365 -0
- package/dist/ai/source/BbOffCanvas.md +1260 -0
- package/dist/ai/source/BbPagination.md +829 -0
- package/dist/ai/source/BbPopover.md +853 -0
- package/dist/ai/source/BbProgress.md +140 -0
- package/dist/ai/source/BbRadio.md +294 -0
- package/dist/ai/source/BbRadioGroup.md +401 -0
- package/dist/ai/source/BbRating.md +362 -0
- package/dist/ai/source/BbSelect.md +681 -0
- package/dist/ai/source/BbSelectPopover.md +2209 -0
- package/dist/ai/source/BbSlider.md +371 -0
- package/dist/ai/source/BbSmoothHeight.md +261 -0
- package/dist/ai/source/BbSpinner.md +127 -0
- package/dist/ai/source/BbSwitch.md +175 -0
- package/dist/ai/source/BbSwitchGroup.md +240 -0
- package/dist/ai/source/BbTable.md +3348 -0
- package/dist/ai/source/BbTabs.md +403 -0
- package/dist/ai/source/BbTabsList.md +578 -0
- package/dist/ai/source/BbTabsPanes.md +368 -0
- package/dist/ai/source/BbTabsRoot.md +372 -0
- package/dist/ai/source/BbTag.md +383 -0
- package/dist/ai/source/BbTextInput.md +345 -0
- package/dist/ai/source/BbTextarea.md +330 -0
- package/dist/ai/source/BbTimePicker.md +591 -0
- package/dist/ai/source/BbTimePickerInput.md +367 -0
- package/dist/ai/source/BbToast.md +524 -0
- package/dist/ai/source/BbToastPortal.md +482 -0
- package/dist/ai/source/BbTooltip.md +508 -0
- package/dist/ai/source/BbTree.md +319 -0
- package/dist/ai/source/ChipsBox.md +201 -0
- package/dist/ai/source/ClearableButton.md +70 -0
- package/dist/ai/source/CommaBox.md +202 -0
- package/dist/ai/source/CommonInputWrapper.md +554 -0
- package/dist/ai/source/CommonPopover.md +606 -0
- package/dist/ai/source/ErrorIcon.md +43 -0
- package/dist/ai/source/FlatListBox.md +396 -0
- package/dist/ai/source/GroupedListBox.md +540 -0
- package/dist/ai/source/GuidesComponent.md +383 -0
- package/dist/ai/source/ListBox.md +238 -0
- package/dist/ai/source/OptionsContainer.md +191 -0
- package/dist/ai/source/WarningIcon.md +47 -0
- package/dist/alert-variants.d.ts +12 -0
- package/dist/assets/css/reset.css_inline.js +4 -0
- package/dist/assets/svgs/alert.svg_raw.js +4 -0
- package/dist/assets/svgs/calendar.svg_raw.js +4 -0
- package/dist/assets/svgs/check_stroke.svg_raw.js +4 -0
- package/dist/assets/svgs/chevron_down.svg_raw.js +4 -0
- package/dist/assets/svgs/chevron_right.svg_raw.js +4 -0
- package/dist/assets/svgs/clear.svg_raw.js +4 -0
- package/dist/assets/svgs/clock.svg_raw.js +4 -0
- package/dist/assets/svgs/error.svg_raw.js +4 -0
- package/dist/assets/svgs/search.svg_raw.js +4 -0
- package/dist/assets/svgs/sort.svg_raw.js +4 -0
- package/dist/assets/svgs/spinner.svg_raw.js +4 -0
- package/dist/assets/svgs/user.svg_raw.js +4 -0
- package/dist/badge-variants.d.ts +18 -0
- package/dist/button-variants.d.ts +15 -0
- package/dist/components/BbAccordion/BbAccordion.vue.d.ts +9 -3
- package/dist/components/BbAccordion/BbAccordion.vue.js +6 -0
- package/dist/components/BbAccordion/BbAccordion.vue_vue_type_script_setup_true_lang.js +66 -0
- package/dist/components/BbAccordion/types.d.ts +10 -7
- package/dist/components/BbAlert/BbAlert.vue.d.ts +12 -3
- package/dist/components/BbAlert/BbAlert.vue.js +6 -0
- package/dist/components/BbAlert/BbAlert.vue_vue_type_script_setup_true_lang.js +65 -0
- package/dist/components/BbAlert/types.d.ts +51 -12
- package/dist/components/BbAsterisk/BbAsterisk.vue.d.ts +3 -0
- package/dist/components/BbAsterisk/BbAsterisk.vue.js +6 -0
- package/dist/components/BbAsterisk/BbAsterisk.vue_vue_type_script_setup_true_lang.js +13 -0
- package/dist/components/BbAvatar/BbAvatar.vue.d.ts +5 -0
- package/dist/components/BbAvatar/BbAvatar.vue.js +6 -0
- package/dist/components/BbAvatar/BbAvatar.vue_vue_type_script_setup_true_lang.js +78 -0
- package/dist/components/BbAvatar/types.d.ts +4 -5
- package/dist/components/BbBadge/BadgeAppendIcon.vue.d.ts +3 -0
- package/dist/components/BbBadge/BadgeAppendIcon.vue.js +5 -0
- package/dist/components/BbBadge/BadgeAppendIcon.vue_vue_type_script_setup_true_lang.js +22 -0
- package/dist/components/BbBadge/BadgeBodyContent.vue.d.ts +15 -0
- package/dist/components/BbBadge/BadgeBodyContent.vue.js +5 -0
- package/dist/components/BbBadge/BadgeBodyContent.vue_vue_type_script_setup_true_lang.js +34 -0
- package/dist/components/BbBadge/BbBadge.vue.d.ts +8 -1
- package/dist/components/BbBadge/BbBadge.vue.js +6 -0
- package/dist/components/BbBadge/BbBadge.vue_vue_type_script_setup_true_lang.js +83 -0
- package/dist/components/BbBadge/BbBadgeButton.vue.d.ts +12 -0
- package/dist/components/BbBadge/BbBadgeButton.vue.js +5 -0
- package/dist/components/BbBadge/BbBadgeButton.vue_vue_type_script_setup_true_lang.js +54 -0
- package/dist/components/BbBadge/badgeButtonContext.d.ts +27 -0
- package/dist/components/BbBadge/badgeButtonContext.js +5 -0
- package/dist/components/BbBadge/types.d.ts +61 -16
- package/dist/components/BbBaseButton/BbBaseButton.vue.d.ts +13 -0
- package/dist/components/BbBaseButton/BbBaseButton.vue.js +6 -0
- package/dist/components/BbBaseButton/BbBaseButton.vue_vue_type_script_setup_true_lang.js +171 -0
- package/dist/components/BbBaseButton/RouterComponent.vue.js +5 -0
- package/dist/components/BbBaseButton/RouterComponent.vue_vue_type_script_setup_true_lang.js +28 -0
- package/dist/components/BbBaseButton/types.d.ts +191 -0
- package/dist/components/BbBaseButton/types.js +33 -0
- package/dist/components/BbBaseCheckbox/BbBaseCheckbox.vue.d.ts +40 -0
- package/dist/components/BbBaseCheckbox/BbBaseCheckbox.vue.js +6 -0
- package/dist/components/BbBaseCheckbox/BbBaseCheckbox.vue_vue_type_script_setup_true_lang.js +145 -0
- package/dist/components/BbBaseCheckbox/types.d.ts +222 -0
- package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue.d.ts +19 -0
- package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue.js +6 -0
- package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue_vue_type_script_setup_true_lang.js +190 -0
- package/dist/components/BbBaseCheckboxGroup/types.d.ts +257 -0
- package/dist/components/BbBaseCheckboxIcon/BbBaseCheckboxIcon.vue.d.ts +4 -0
- package/dist/components/BbBaseCheckboxIcon/BbBaseCheckboxIcon.vue.js +6 -0
- package/dist/components/BbBaseCheckboxIcon/BbBaseCheckboxIcon.vue_vue_type_script_setup_true_lang.js +43 -0
- package/dist/components/BbBaseCheckboxIcon/types.d.ts +47 -0
- package/dist/components/BbBaseColorInput/BbBaseColorInput.vue.d.ts +42 -0
- package/dist/components/BbBaseColorInput/BbBaseColorInput.vue.js +6 -0
- package/dist/components/BbBaseColorInput/BbBaseColorInput.vue_vue_type_script_setup_true_lang.js +178 -0
- package/dist/components/BbBaseColorInput/types.d.ts +207 -0
- package/dist/components/BbBaseColorPalette/BbBaseColorPalette.vue.d.ts +13 -0
- package/dist/components/BbBaseColorPalette/BbBaseColorPalette.vue.js +6 -0
- package/dist/components/BbBaseColorPalette/BbBaseColorPalette.vue_vue_type_script_setup_true_lang.js +395 -0
- package/dist/components/BbBaseColorPalette/types.d.ts +40 -0
- package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue.js +6 -0
- package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue_vue_type_script_setup_true_lang.js +300 -0
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue.d.ts +44 -0
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue.js +5 -0
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue_vue_type_script_setup_true_lang.js +310 -0
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue.d.ts +5 -0
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue.js +5 -0
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue_vue_type_script_setup_true_lang.js +63 -0
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerYearSelector.vue.d.ts +5 -0
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerYearSelector.vue.js +5 -0
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerYearSelector.vue_vue_type_script_setup_true_lang.js +75 -0
- package/dist/components/BbBaseDatePicker/typeahead.d.ts +112 -0
- package/dist/components/BbBaseDatePicker/typeahead.js +37 -0
- package/dist/components/BbBaseDatePicker/types.d.ts +97 -0
- package/dist/components/BbBaseDatePicker/useDatePickerContext.d.ts +58 -0
- package/dist/components/BbBaseDatePicker/useDatePickerContext.js +11 -0
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue.d.ts +30 -0
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue.js +6 -0
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue_vue_type_script_setup_true_lang.js +713 -0
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerTimeSelector.vue.d.ts +30 -0
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerTimeSelector.vue.js +6 -0
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerTimeSelector.vue_vue_type_script_setup_true_lang.js +204 -0
- package/dist/components/BbBaseDatePickerInput/types.d.ts +309 -0
- package/dist/components/BbBaseInputContainer/BbBaseInputContainer.vue.d.ts +17 -0
- package/dist/components/BbBaseInputContainer/BbBaseInputContainer.vue.js +6 -0
- package/dist/components/BbBaseInputContainer/BbBaseInputContainer.vue_vue_type_script_setup_true_lang.js +184 -0
- package/dist/components/BbBaseInputContainer/types.d.ts +185 -0
- package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue.d.ts +52 -0
- package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue.js +6 -0
- package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue_vue_type_script_setup_true_lang.js +211 -0
- package/dist/components/BbBaseNumberInput/types.d.ts +211 -0
- package/dist/components/BbBaseRadio/BbBaseRadio.vue.d.ts +33 -0
- package/dist/components/BbBaseRadio/BbBaseRadio.vue.js +6 -0
- package/dist/components/BbBaseRadio/BbBaseRadio.vue_vue_type_script_setup_true_lang.js +114 -0
- package/dist/components/BbBaseRadio/types.d.ts +179 -0
- package/dist/components/BbBaseRadioGroup/BbBaseRadioGroup.vue.d.ts +19 -0
- package/dist/components/BbBaseRadioGroup/BbBaseRadioGroup.vue.js +6 -0
- package/dist/components/BbBaseRadioGroup/BbBaseRadioGroup.vue_vue_type_script_setup_true_lang.js +172 -0
- package/dist/components/BbBaseRadioGroup/types.d.ts +215 -0
- package/dist/components/BbBaseRadioIcon/BbBaseRadioIcon.vue.d.ts +4 -0
- package/dist/components/BbBaseRadioIcon/BbBaseRadioIcon.vue.js +6 -0
- package/dist/components/BbBaseRadioIcon/BbBaseRadioIcon.vue_vue_type_script_setup_true_lang.js +28 -0
- package/dist/components/BbBaseRadioIcon/types.d.ts +41 -0
- package/dist/components/BbBaseRating/BbBaseRating.vue.d.ts +38 -0
- package/dist/components/BbBaseRating/BbBaseRating.vue.js +6 -0
- package/dist/components/BbBaseRating/BbBaseRating.vue_vue_type_script_setup_true_lang.js +184 -0
- package/dist/components/BbBaseRating/types.d.ts +168 -0
- package/dist/components/BbBaseSelect/BbBaseSelect.vue.d.ts +19 -0
- package/dist/components/BbBaseSelect/BbBaseSelect.vue.js +6 -0
- package/dist/components/BbBaseSelect/BbBaseSelect.vue_vue_type_script_setup_true_lang.js +307 -0
- package/dist/components/BbBaseSelect/types.d.ts +294 -0
- package/dist/components/BbBaseSlider/BbBaseSlider.vue.d.ts +35 -0
- package/dist/components/BbBaseSlider/BbBaseSlider.vue.js +6 -0
- package/dist/components/BbBaseSlider/BbBaseSlider.vue_vue_type_script_setup_true_lang.js +324 -0
- package/dist/components/BbBaseSlider/types.d.ts +200 -0
- package/dist/components/BbBaseSwitch/BbBaseSwitch.vue.d.ts +35 -0
- package/dist/components/BbBaseSwitch/BbBaseSwitch.vue.js +6 -0
- package/dist/components/BbBaseSwitch/BbBaseSwitch.vue_vue_type_script_setup_true_lang.js +146 -0
- package/dist/components/BbBaseSwitch/types.d.ts +10 -0
- package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue.d.ts +19 -0
- package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue.js +6 -0
- package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue_vue_type_script_setup_true_lang.js +190 -0
- package/dist/components/BbBaseSwitchGroup/types.d.ts +8 -0
- package/dist/components/BbBaseSwitchIcon/BbBaseSwitchIcon.vue.d.ts +4 -0
- package/dist/components/BbBaseSwitchIcon/BbBaseSwitchIcon.vue.js +6 -0
- package/dist/components/BbBaseSwitchIcon/BbBaseSwitchIcon.vue_vue_type_script_setup_true_lang.js +30 -0
- package/dist/components/BbBaseSwitchIcon/types.d.ts +48 -0
- package/dist/components/BbBaseTag/BbBaseTag.vue.d.ts +50 -0
- package/dist/components/BbBaseTag/BbBaseTag.vue.js +6 -0
- package/dist/components/BbBaseTag/BbBaseTag.vue_vue_type_script_setup_true_lang.js +266 -0
- package/dist/components/BbBaseTag/types.d.ts +160 -0
- package/dist/components/BbBaseTextInput/BbBaseTextInput.vue.d.ts +45 -0
- package/dist/components/BbBaseTextInput/BbBaseTextInput.vue.js +6 -0
- package/dist/components/BbBaseTextInput/BbBaseTextInput.vue_vue_type_script_setup_true_lang.js +200 -0
- package/dist/components/BbBaseTextInput/types.d.ts +209 -0
- package/dist/components/BbBaseTextarea/BbBaseTextarea.vue.d.ts +39 -0
- package/dist/components/BbBaseTextarea/BbBaseTextarea.vue.js +6 -0
- package/dist/components/BbBaseTextarea/BbBaseTextarea.vue_vue_type_script_setup_true_lang.js +175 -0
- package/dist/components/BbBaseTextarea/types.d.ts +170 -0
- package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue.d.ts +27 -0
- package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue.js +6 -0
- package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue_vue_type_script_setup_true_lang.js +517 -0
- package/dist/components/BbBaseTimePickerInput/types.d.ts +151 -0
- package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue.d.ts +0 -1
- package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue.js +6 -0
- package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue_vue_type_script_setup_true_lang.js +224 -0
- package/dist/components/BbBreadcrumbs/estimateBreadcrumbItemWidth.js +47 -0
- package/dist/components/BbBreadcrumbs/types.d.ts +33 -22
- package/dist/components/BbButton/BbButton.vue.d.ts +6 -5
- package/dist/components/BbButton/BbButton.vue.js +6 -0
- package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +177 -0
- package/dist/components/BbButton/types.d.ts +48 -47
- package/dist/components/BbCheckbox/BbCheckbox.vue.d.ts +4 -3
- package/dist/components/BbCheckbox/BbCheckbox.vue.js +6 -0
- package/dist/components/BbCheckbox/BbCheckbox.vue_vue_type_script_setup_true_lang.js +146 -0
- package/dist/components/BbCheckbox/types.d.ts +24 -10
- package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue.d.ts +2 -13
- package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue.js +6 -0
- package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +190 -0
- package/dist/components/BbCheckboxGroup/types.d.ts +44 -23
- package/dist/components/BbCollapsible/BbCollapsible.vue.d.ts +2 -1
- package/dist/components/BbCollapsible/BbCollapsible.vue.js +6 -0
- package/dist/components/BbCollapsible/BbCollapsible.vue_vue_type_script_setup_true_lang.js +31 -0
- package/dist/components/BbCollapsible/types.d.ts +10 -9
- package/dist/components/BbColorInput/BbColorInput.vue.d.ts +10 -1
- package/dist/components/BbColorInput/BbColorInput.vue.js +6 -0
- package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +177 -0
- package/dist/components/BbColorInput/types.d.ts +37 -11
- package/dist/components/BbColorPalette/BbColorPalette.vue.d.ts +5 -8
- package/dist/components/BbColorPalette/BbColorPalette.vue.js +5 -0
- package/dist/components/BbColorPalette/BbColorPalette.vue_vue_type_script_setup_true_lang.js +125 -0
- package/dist/components/BbColorPalette/types.d.ts +66 -53
- package/dist/components/BbConfirm/BbConfirm.vue.js +6 -0
- package/dist/components/BbConfirm/BbConfirm.vue_vue_type_script_setup_true_lang.js +130 -0
- package/dist/components/BbConfirm/BbConfirmPortal.vue.d.ts +5 -6
- package/dist/components/BbConfirm/BbConfirmPortal.vue.js +5 -0
- package/dist/components/BbConfirm/BbConfirmPortal.vue_vue_type_script_setup_true_lang.js +19 -0
- package/dist/components/BbDatePicker/BbDatePicker.vue.d.ts +37 -0
- package/dist/components/BbDatePicker/BbDatePicker.vue.js +6 -0
- package/dist/components/BbDatePicker/BbDatePicker.vue_vue_type_script_setup_true_lang.js +319 -0
- package/dist/components/BbDatePicker/types.d.ts +155 -0
- package/dist/components/BbDatePickerInput/BbDatePickerInput.vue.d.ts +3 -1
- package/dist/components/BbDatePickerInput/BbDatePickerInput.vue.js +6 -0
- package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +179 -0
- package/dist/components/BbDatePickerInput/types.d.ts +127 -16
- package/dist/components/BbDialog/BbDialog.vue.d.ts +8 -6
- package/dist/components/BbDialog/BbDialog.vue.js +6 -0
- package/dist/components/BbDialog/BbDialog.vue_vue_type_script_setup_true_lang.js +214 -0
- package/dist/components/BbDialog/types.d.ts +146 -1
- package/dist/components/BbDialog/useDialogStack.d.ts +5 -0
- package/dist/components/BbDialog/useDialogStack.js +20 -0
- package/dist/components/BbDropdown/AdaptiveDropdown.vue.d.ts +18 -0
- package/dist/components/BbDropdown/AdaptiveDropdown.vue.js +6 -0
- package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +116 -0
- package/dist/components/BbDropdown/BbDropdown.vue.d.ts +14 -7
- package/dist/components/BbDropdown/BbDropdown.vue.js +6 -0
- package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +560 -0
- package/dist/components/BbDropdown/BbDropdownGroup.vue.d.ts +44 -0
- package/dist/components/BbDropdown/BbDropdownGroup.vue.js +5 -0
- package/dist/components/BbDropdown/BbDropdownGroup.vue_vue_type_script_setup_true_lang.js +36 -0
- package/dist/components/BbDropdown/BbDropdownList.vue.d.ts +27 -0
- package/dist/components/BbDropdown/BbDropdownList.vue.js +6 -0
- package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +464 -0
- package/dist/components/BbDropdown/DropdownPipelineResolver.vue.d.ts +16 -0
- package/dist/components/BbDropdown/DropdownPipelineResolver.vue.js +5 -0
- package/dist/components/BbDropdown/DropdownPipelineResolver.vue_vue_type_script_setup_true_lang.js +168 -0
- package/dist/components/BbDropdown/normalizeGroups.d.ts +18 -0
- package/dist/components/BbDropdown/normalizeGroups.js +46 -0
- package/dist/components/BbDropdown/types.d.ts +457 -45
- package/dist/components/BbDropdown/types.js +4 -0
- package/dist/components/BbDropdown/useDropdownContext.d.ts +89 -0
- package/dist/components/BbDropdown/useDropdownContext.js +9 -0
- package/dist/components/BbDropdown/useDropdownGroupRegistry.d.ts +108 -0
- package/dist/components/BbDropdown/useDropdownGroupRegistry.js +5 -0
- package/dist/components/BbDropdownButton/BbDropdownButton.vue.d.ts +3 -3
- package/dist/components/BbDropdownButton/BbDropdownButton.vue.js +6 -0
- package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +119 -0
- package/dist/components/BbDropdownButton/types.d.ts +45 -52
- package/dist/components/BbDropzone/BbDropzone.vue.d.ts +5 -4
- package/dist/components/BbDropzone/BbDropzone.vue.js +6 -0
- package/dist/components/BbDropzone/BbDropzone.vue_vue_type_script_setup_true_lang.js +284 -0
- package/dist/components/BbDropzone/types.d.ts +55 -7
- package/dist/components/BbIcon/BbIcon.vue.d.ts +3 -2
- package/dist/components/BbIcon/BbIcon.vue.js +6 -0
- package/dist/components/BbIcon/BbIcon.vue_vue_type_script_setup_true_lang.js +65 -0
- package/dist/components/BbIcon/types.d.ts +6 -19
- package/dist/components/BbIndicator/BbIndicator.vue.d.ts +14 -0
- package/dist/components/BbIndicator/BbIndicator.vue.js +6 -0
- package/dist/components/BbIndicator/BbIndicator.vue_vue_type_script_setup_true_lang.js +56 -0
- package/dist/components/BbIndicator/types.d.ts +49 -0
- package/dist/components/BbNumberInput/BbNumberInput.vue.d.ts +12 -6
- package/dist/components/BbNumberInput/BbNumberInput.vue.js +6 -0
- package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +194 -0
- package/dist/components/BbNumberInput/types.d.ts +31 -4
- package/dist/components/BbOffCanvas/BbOffCanvas.vue.d.ts +10 -10
- package/dist/components/BbOffCanvas/BbOffCanvas.vue.js +6 -0
- package/dist/components/BbOffCanvas/BbOffCanvas.vue_vue_type_script_setup_true_lang.js +284 -0
- package/dist/components/BbOffCanvas/types.d.ts +71 -39
- package/dist/components/BbOffCanvas/useOffCanvasStack.d.ts +25 -0
- package/dist/components/BbOffCanvas/useOffCanvasStack.js +68 -0
- package/dist/components/BbPagination/BbPagination.vue.d.ts +3 -4
- package/dist/components/BbPagination/BbPagination.vue.js +6 -0
- package/dist/components/BbPagination/BbPagination.vue_vue_type_script_setup_true_lang.js +244 -0
- package/dist/components/BbPagination/paginationFit.d.ts +38 -0
- package/dist/components/BbPagination/paginationFit.js +13 -0
- package/dist/components/BbPagination/types.d.ts +51 -16
- package/dist/components/BbPopover/BbPopover.vue.d.ts +10 -15
- package/dist/components/BbPopover/BbPopover.vue.js +6 -0
- package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +310 -0
- package/dist/components/BbPopover/escapeStack.d.ts +6 -0
- package/dist/components/BbPopover/escapeStack.js +10 -0
- package/dist/components/BbPopover/types.d.ts +84 -31
- package/dist/components/BbProgress/BbProgress.vue.d.ts +1 -0
- package/dist/components/BbProgress/BbProgress.vue.js +6 -0
- package/dist/components/BbProgress/BbProgress.vue_vue_type_script_setup_true_lang.js +36 -0
- package/dist/components/BbProgress/types.d.ts +15 -1
- package/dist/components/BbRadio/BbRadio.vue.d.ts +5 -3
- package/dist/components/BbRadio/BbRadio.vue.js +6 -0
- package/dist/components/BbRadio/BbRadio.vue_vue_type_script_setup_true_lang.js +133 -0
- package/dist/components/BbRadio/types.d.ts +23 -9
- package/dist/components/BbRadioGroup/BbRadioGroup.vue.d.ts +4 -14
- package/dist/components/BbRadioGroup/BbRadioGroup.vue.js +6 -0
- package/dist/components/BbRadioGroup/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +184 -0
- package/dist/components/BbRadioGroup/types.d.ts +41 -22
- package/dist/components/BbRating/BbRating.vue.d.ts +4 -1
- package/dist/components/BbRating/BbRating.vue.js +6 -0
- package/dist/components/BbRating/BbRating.vue_vue_type_script_setup_true_lang.js +150 -0
- package/dist/components/BbRating/types.d.ts +37 -10
- package/dist/components/BbSelect/BbSelect.vue.d.ts +2 -11
- package/dist/components/BbSelect/BbSelect.vue.js +6 -0
- package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +241 -0
- package/dist/components/BbSelect/types.d.ts +105 -59
- package/dist/components/BbSelectPopover/BbSelectPopover.vue.d.ts +1 -10
- package/dist/components/BbSelectPopover/BbSelectPopover.vue.js +6 -0
- package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +637 -0
- package/dist/components/BbSelectPopover/types.d.ts +189 -102
- package/dist/components/BbSlider/BbSlider.vue.d.ts +3 -6
- package/dist/components/BbSlider/BbSlider.vue.js +6 -0
- package/dist/components/BbSlider/BbSlider.vue_vue_type_script_setup_true_lang.js +166 -0
- package/dist/components/BbSlider/types.d.ts +37 -13
- package/dist/components/BbSmoothHeight/BbSmoothHeight.vue.d.ts +3 -1
- package/dist/components/BbSmoothHeight/BbSmoothHeight.vue.js +6 -0
- package/dist/components/BbSmoothHeight/BbSmoothHeight.vue_vue_type_script_setup_true_lang.js +79 -0
- package/dist/components/BbSmoothHeight/types.d.ts +13 -2
- package/dist/components/BbSpinner/BbSpinner.vue.d.ts +1 -1
- package/dist/components/BbSpinner/BbSpinner.vue.js +6 -0
- package/dist/components/BbSpinner/BbSpinner.vue_vue_type_script_setup_true_lang.js +30 -0
- package/dist/components/BbSpinner/types.d.ts +10 -3
- package/dist/components/BbSwitch/BbSwitch.vue.d.ts +5 -3
- package/dist/components/BbSwitch/BbSwitch.vue.js +6 -0
- package/dist/components/BbSwitch/BbSwitch.vue_vue_type_script_setup_true_lang.js +142 -0
- package/dist/components/BbSwitch/types.d.ts +3 -1
- package/dist/components/BbSwitchGroup/BbSwitchGroup.vue.d.ts +4 -14
- package/dist/components/BbSwitchGroup/BbSwitchGroup.vue.js +6 -0
- package/dist/components/BbSwitchGroup/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +190 -0
- package/dist/components/BbSwitchGroup/types.d.ts +3 -22
- package/dist/components/BbTable/BbTable.vue.d.ts +53 -31
- package/dist/components/BbTable/BbTable.vue.js +6 -0
- package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +889 -0
- package/dist/components/BbTable/types.d.ts +176 -37
- package/dist/components/BbTable/utils.d.ts +9 -1
- package/dist/components/BbTable/utils.js +53 -0
- package/dist/components/BbTabs/BbTabs.vue.d.ts +20 -0
- package/dist/components/BbTabs/BbTabs.vue.js +6 -0
- package/dist/components/BbTabs/BbTabs.vue_vue_type_script_setup_true_lang.js +64 -0
- package/dist/components/BbTabs/BbTabsList.vue.d.ts +19 -0
- package/dist/components/BbTabs/BbTabsList.vue.js +6 -0
- package/dist/components/BbTabs/BbTabsList.vue_vue_type_script_setup_true_lang.js +123 -0
- package/dist/components/BbTabs/BbTabsPanes.vue.d.ts +16 -0
- package/dist/components/BbTabs/BbTabsPanes.vue.js +6 -0
- package/dist/components/BbTabs/BbTabsPanes.vue_vue_type_script_setup_true_lang.js +35 -0
- package/dist/components/BbTabs/BbTabsRoot.vue.d.ts +20 -0
- package/dist/components/BbTabs/BbTabsRoot.vue.js +5 -0
- package/dist/components/BbTabs/BbTabsRoot.vue_vue_type_script_setup_true_lang.js +55 -0
- package/dist/components/BbTabs/types.d.ts +264 -0
- package/dist/components/BbTag/BbTag.vue.d.ts +19 -6
- package/dist/components/BbTag/BbTag.vue.js +6 -0
- package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +187 -0
- package/dist/components/BbTag/types.d.ts +48 -17
- package/dist/components/BbTextInput/BbTextInput.vue.d.ts +10 -1
- package/dist/components/BbTextInput/BbTextInput.vue.js +6 -0
- package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +195 -0
- package/dist/components/BbTextInput/types.d.ts +24 -4
- package/dist/components/BbTextarea/BbTextarea.vue.d.ts +10 -1
- package/dist/components/BbTextarea/BbTextarea.vue.js +6 -0
- package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +178 -0
- package/dist/components/BbTextarea/types.d.ts +26 -2
- package/dist/components/BbTimePicker/BbTimePicker.vue.d.ts +33 -0
- package/dist/components/BbTimePicker/BbTimePicker.vue.js +6 -0
- package/dist/components/BbTimePicker/BbTimePicker.vue_vue_type_script_setup_true_lang.js +244 -0
- package/dist/components/BbTimePicker/types.d.ts +129 -0
- package/dist/components/BbTimePickerInput/BbTimePickerInput.vue.d.ts +25 -0
- package/dist/components/BbTimePickerInput/BbTimePickerInput.vue.js +6 -0
- package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +157 -0
- package/dist/components/BbTimePickerInput/types.d.ts +165 -0
- package/dist/components/BbToast/BbToast.vue.d.ts +2 -3
- package/dist/components/BbToast/BbToast.vue.js +6 -0
- package/dist/components/BbToast/BbToast.vue_vue_type_script_setup_true_lang.js +35 -0
- package/dist/components/BbToast/BbToastMessage.vue.d.ts +17 -8
- package/dist/components/BbToast/BbToastMessage.vue.js +5 -0
- package/dist/components/BbToast/BbToastMessage.vue_vue_type_script_setup_true_lang.js +170 -0
- package/dist/components/BbToast/BbToastPortal.vue.d.ts +30 -0
- package/dist/components/BbToast/BbToastPortal.vue.js +5 -0
- package/dist/components/BbToast/BbToastPortal.vue_vue_type_script_setup_true_lang.js +19 -0
- package/dist/components/BbToast/BbToastRegion.vue.d.ts +8 -0
- package/dist/components/BbToast/BbToastRegion.vue.js +5 -0
- package/dist/components/BbToast/BbToastRegion.vue_vue_type_script_setup_true_lang.js +100 -0
- package/dist/components/BbToast/types.d.ts +69 -5
- package/dist/components/BbTooltip/BbTooltip.vue.d.ts +4 -3
- package/dist/components/BbTooltip/BbTooltip.vue.js +6 -0
- package/dist/components/BbTooltip/BbTooltip.vue_vue_type_script_setup_true_lang.js +160 -0
- package/dist/components/BbTooltip/types.d.ts +61 -11
- package/dist/components/BbTree/BbTree.vue.d.ts +26 -13
- package/dist/components/BbTree/BbTree.vue.js +6 -0
- package/dist/components/BbTree/BbTree.vue_vue_type_script_setup_true_lang.js +55 -0
- package/dist/components/BbTree/BbTreeLevel.vue.d.ts +19 -0
- package/dist/components/BbTree/BbTreeLevel.vue.js +5 -0
- package/dist/components/BbTree/BbTreeLevel.vue_vue_type_script_setup_true_lang.js +94 -0
- package/dist/components/BbTree/context.d.ts +17 -0
- package/dist/components/BbTree/context.js +4 -0
- package/dist/components/BbTree/types.d.ts +93 -42
- package/dist/components/ChipsBox/ChipsBox.vue.d.ts +2 -1
- package/dist/components/ChipsBox/ChipsBox.vue.js +5 -0
- package/dist/components/ChipsBox/ChipsBox.vue_vue_type_script_setup_true_lang.js +98 -0
- package/dist/components/ChipsBox/types.d.ts +12 -5
- package/dist/components/ClearableButton/ClearableButton.vue.d.ts +2 -1
- package/dist/components/ClearableButton/ClearableButton.vue.js +6 -0
- package/dist/components/ClearableButton/ClearableButton.vue_vue_type_script_setup_true_lang.js +19 -0
- package/dist/components/ClearableButton/types.d.ts +7 -1
- package/dist/components/CloseIcon/CloseButton.vue.d.ts +5 -0
- package/dist/components/CloseIcon/CloseButton.vue.js +7 -0
- package/dist/components/CloseIcon/CloseButton.vue_vue_type_script_setup_true_lang.js +23 -0
- package/dist/components/CloseIcon/types.d.ts +2 -0
- package/dist/components/CommaBox/CommaBox.vue.d.ts +2 -1
- package/dist/components/CommaBox/CommaBox.vue.js +6 -0
- package/dist/components/CommaBox/CommaBox.vue_vue_type_script_setup_true_lang.js +81 -0
- package/dist/components/CommaBox/types.d.ts +6 -7
- package/dist/components/CommonInputWrapper/CommonInputWrapper.vue.d.ts +19 -0
- package/dist/components/CommonInputWrapper/CommonInputWrapper.vue.js +6 -0
- package/dist/components/CommonInputWrapper/CommonInputWrapper.vue_vue_type_script_setup_true_lang.js +107 -0
- package/dist/components/CommonInputWrapper/types.d.ts +96 -0
- package/dist/components/CommonPopover/CommonPopover.vue.d.ts +3 -3
- package/dist/components/CommonPopover/CommonPopover.vue.js +6 -0
- package/dist/components/CommonPopover/CommonPopover.vue_vue_type_script_setup_true_lang.js +160 -0
- package/dist/components/CommonPopover/types.d.ts +61 -16
- package/dist/components/ErrorIcon/ErrorIcon.vue.d.ts +2 -0
- package/dist/components/ErrorIcon/ErrorIcon.vue.js +6 -0
- package/dist/components/ErrorIcon/ErrorIcon.vue_vue_type_script_setup_true_lang.js +16 -0
- package/dist/components/FlatListBox/FlatListBox.vue.d.ts +2 -5
- package/dist/components/FlatListBox/FlatListBox.vue.js +5 -0
- package/dist/components/FlatListBox/FlatListBox.vue_vue_type_script_setup_true_lang.js +167 -0
- package/dist/components/FlatListBox/types.d.ts +1 -1
- package/dist/components/GroupedListBox/GroupedListBox.vue.d.ts +2 -5
- package/dist/components/GroupedListBox/GroupedListBox.vue.js +5 -0
- package/dist/components/GroupedListBox/GroupedListBox.vue_vue_type_script_setup_true_lang.js +218 -0
- package/dist/components/ListBox/ListBox.vue.d.ts +3 -6
- package/dist/components/ListBox/ListBox.vue.js +5 -0
- package/dist/components/ListBox/ListBox.vue_vue_type_script_setup_true_lang.js +112 -0
- package/dist/components/ListBox/types.d.ts +1 -1
- package/dist/components/OptionsContainer/OptionsContainer.vue.d.ts +1 -0
- package/dist/components/OptionsContainer/OptionsContainer.vue.js +5 -0
- package/dist/components/OptionsContainer/OptionsContainer.vue_vue_type_script_setup_true_lang.js +52 -0
- package/dist/components/OptionsContainer/types.d.ts +14 -24
- package/dist/components/Transitions/ScaleFade.vue.js +5 -0
- package/dist/components/Transitions/ScaleFade.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/components/Transitions/Slide.vue.js +7 -0
- package/dist/components/Transitions/Slide.vue_vue_type_script_setup_true_lang.js +28 -0
- package/dist/components/WarningIcon/WarningIcon.vue.d.ts +5 -0
- package/dist/components/WarningIcon/WarningIcon.vue.js +6 -0
- package/dist/components/WarningIcon/WarningIcon.vue_vue_type_script_setup_true_lang.js +16 -0
- package/dist/components/WarningIcon/types.d.ts +3 -0
- package/dist/composables/__testResets.d.ts +1 -0
- package/dist/composables/useActiveInactiveState.d.ts +4 -0
- package/dist/composables/useActiveInactiveState.js +21 -0
- package/dist/composables/useBaseOptions.d.ts +3 -3
- package/dist/composables/useBaseOptions.js +31 -0
- package/dist/composables/useBbConfig.d.ts +8 -37
- package/dist/composables/useBbConfig.js +5 -0
- package/dist/composables/useBbDropdownContext.d.ts +89 -0
- package/dist/composables/useBbDropdownContext.js +46 -0
- package/dist/composables/useBbFormContext.d.ts +90 -0
- package/dist/composables/useBbFormContext.js +69 -0
- package/dist/composables/useBbTableContext.d.ts +195 -0
- package/dist/composables/useBbTableContext.js +208 -0
- package/dist/composables/useBbTabsContext.d.ts +111 -0
- package/dist/composables/useBbTabsContext.js +219 -0
- package/dist/composables/useBreakpoint.d.ts +13 -0
- package/dist/composables/useBreakpoint.js +39 -0
- package/dist/composables/useBroadcastChannelInstance.d.ts +1 -3
- package/dist/composables/useBroadcastChannelInstance.js +39 -0
- package/dist/composables/useCancelableFunction.js +37 -0
- package/dist/composables/useCoherence.js +16 -0
- package/dist/composables/useConfirm.d.ts +257 -67
- package/dist/composables/useConfirm.js +122 -0
- package/dist/composables/useCountdown.js +42 -0
- package/dist/composables/useHashedWatcher.d.ts +17 -0
- package/dist/composables/useHashedWatcher.js +14 -0
- package/dist/composables/useId.d.ts +3 -2
- package/dist/composables/useIndexById.js +16 -0
- package/dist/composables/useInertiaPage.d.ts +10 -0
- package/dist/composables/useInertiaPage.js +8 -0
- package/dist/composables/useItemText.js +17 -0
- package/dist/composables/useItemValue.js +9 -0
- package/dist/composables/useItemsGetter.d.ts +1 -1
- package/dist/composables/useItemsGetter.js +30 -0
- package/dist/composables/useListboxFocus.js +66 -0
- package/dist/composables/useLocale.d.ts +1 -1
- package/dist/composables/useLocale.js +11 -0
- package/dist/composables/useLogger.d.ts +1 -1
- package/dist/composables/useLogger.js +10 -0
- package/dist/composables/useMinimalQueue.d.ts +1 -1
- package/dist/composables/useMobile.js +7 -0
- package/dist/composables/useOnFalsy.d.ts +2 -0
- package/dist/composables/useOnFalsy.js +9 -0
- package/dist/composables/useOnTruthy.d.ts +7 -0
- package/dist/composables/useOnTruthy.js +9 -0
- package/dist/composables/usePrefill.d.ts +2 -1
- package/dist/composables/usePrefill.js +24 -0
- package/dist/composables/useQuery.d.ts +15 -3
- package/dist/composables/useQuery.js +42 -0
- package/dist/composables/useRoute.js +11 -0
- package/dist/composables/useRouter.js +8 -0
- package/dist/composables/useSafeArea.d.ts +51 -0
- package/dist/composables/useSafeArea.js +16 -0
- package/dist/composables/useSegmentedFields.d.ts +103 -0
- package/dist/composables/useSegmentedFields.js +152 -0
- package/dist/composables/useTableWidthContext.d.ts +5 -0
- package/dist/composables/useTableWidthContext.js +42 -0
- package/dist/composables/useToast.d.ts +17 -73
- package/dist/composables/useToast.js +49 -0
- package/dist/composables/useTopLayer.d.ts +9 -0
- package/dist/composables/useTopLayer.js +7 -0
- package/dist/composables/useUntil.js +13 -0
- package/dist/composables/useViewportWidth.d.ts +17 -0
- package/dist/composables/useViewportWidth.js +6 -0
- package/dist/confirm-variants.d.ts +10 -0
- package/dist/deprecation/ai-deprecations.json.d.ts +784 -0
- package/dist/deprecation/ai-deprecations.json.js +4 -0
- package/dist/deprecation/removedProps.d.ts +3 -0
- package/dist/deprecation/removedProps.js +13 -0
- package/dist/directives/bbColor.d.ts +65 -0
- package/dist/directives/bbColor.js +24 -0
- package/dist/directives/bbDate.d.ts +66 -0
- package/dist/directives/bbDate.js +24 -0
- package/dist/directives/bbDropdown.d.ts +15 -11
- package/dist/directives/bbDropdown.js +23 -0
- package/dist/directives/bbTime.d.ts +64 -0
- package/dist/directives/bbTime.js +24 -0
- package/dist/directives/bbTooltip.d.ts +16 -11
- package/dist/directives/bbTooltip.js +24 -0
- package/dist/dropdown-item-variants.d.ts +10 -0
- package/dist/i18n/index.d.ts +51 -3
- package/dist/i18n/index.js +27 -0
- package/dist/i18n/locales/cs.json +115 -0
- package/dist/i18n/locales/da.json +115 -0
- package/dist/i18n/locales/de.json +115 -0
- package/dist/i18n/locales/el.json +115 -0
- package/dist/i18n/locales/en.json +115 -0
- package/dist/i18n/locales/es.json +115 -0
- package/dist/i18n/locales/fi.json +115 -0
- package/dist/i18n/locales/fr.json +115 -0
- package/dist/i18n/locales/hu.json +115 -0
- package/dist/i18n/locales/it.json +115 -0
- package/dist/i18n/locales/ja.json +115 -0
- package/dist/i18n/locales/ko.json +115 -0
- package/dist/i18n/locales/nb.json +115 -0
- package/dist/i18n/locales/nl.json +115 -0
- package/dist/i18n/locales/pl.json +115 -0
- package/dist/i18n/locales/pt.json +115 -0
- package/dist/i18n/locales/ro.json +115 -0
- package/dist/i18n/locales/ru.json +115 -0
- package/dist/i18n/locales/sv.json +115 -0
- package/dist/i18n/locales/tr.json +115 -0
- package/dist/i18n/locales/uk.json +115 -0
- package/dist/i18n/locales/zh-cn.json +115 -0
- package/dist/icons-whitelist.d.ts +8 -0
- package/dist/index.d.ts +94 -79
- package/dist/index.js +76 -82
- package/dist/indicator-variants.d.ts +13 -0
- package/dist/llms-full.txt +77073 -0
- package/dist/llms-medium.txt +1334 -0
- package/dist/llms.txt +103 -0
- package/dist/locale-blueprint.json +141 -0
- package/dist/nuxt-module.d.ts +3 -0
- package/dist/nuxt.js +19 -0
- package/dist/plugin.d.ts +4 -0
- package/dist/plugin.js +22 -0
- package/dist/reset.css +1 -0
- package/dist/reset.d.ts +0 -0
- package/dist/runtime/nuxt-plugin.d.ts +2 -0
- package/dist/runtime/nuxt-plugin.js +24 -0
- package/dist/styles.css +2 -0
- package/dist/styles.d.ts +0 -0
- package/dist/toast-variants.d.ts +13 -0
- package/dist/tooltip-variants.d.ts +10 -0
- package/dist/types/ActionButton.d.ts +32 -0
- package/dist/types/AlertVariant.d.ts +16 -0
- package/dist/types/BadgeVariant.d.ts +16 -0
- package/dist/types/ButtonVariant.d.ts +17 -0
- package/dist/types/Classes.d.ts +1 -1
- package/dist/types/ColumnName.d.ts +1 -1
- package/dist/types/CommonProps.d.ts +66 -279
- package/dist/types/Config.d.ts +84 -0
- package/dist/types/ConfirmVariant.d.ts +15 -0
- package/dist/types/DropdownItemVariant.d.ts +18 -0
- package/dist/types/Icon.d.ts +5 -7
- package/dist/types/IndicatorVariant.d.ts +16 -0
- package/dist/types/InputDirection.d.ts +15 -0
- package/dist/types/ItemAccessor.d.ts +21 -0
- package/dist/types/Placement.d.ts +6 -0
- package/dist/types/ResponsiveSize.d.ts +20 -0
- package/dist/types/SizeScale.d.ts +8 -0
- package/dist/types/ToastVariant.d.ts +17 -0
- package/dist/types/TooltipVariant.d.ts +18 -0
- package/dist/utilities/functions/bytesToUnit.d.ts +2 -0
- package/dist/utilities/functions/bytesToUnit.js +18 -0
- package/dist/utilities/functions/clampPrecision.js +10 -0
- package/dist/utilities/functions/convertDateValue.d.ts +23 -10
- package/dist/utilities/functions/convertDateValue.js +12 -0
- package/dist/utilities/functions/deburr.js +5 -0
- package/dist/utilities/functions/empty.js +5 -0
- package/dist/utilities/functions/flattenTree.d.ts +1 -1
- package/dist/utilities/functions/hash.js +5 -0
- package/dist/utilities/functions/isDateDisabled.d.ts +1 -0
- package/dist/utilities/functions/isDateDisabled.js +20 -0
- package/dist/utilities/functions/isEqual.js +5 -0
- package/dist/utilities/functions/isNotEmpty.js +5 -0
- package/dist/utilities/functions/matchAnyKey.d.ts +1 -1
- package/dist/utilities/functions/matchAnyKey.js +15 -0
- package/dist/utilities/functions/parseSize.d.ts +1 -1
- package/dist/utilities/functions/parseSize.js +15 -0
- package/dist/utilities/functions/percentage.js +11 -0
- package/dist/utilities/functions/pipe.d.ts +1 -1
- package/dist/utilities/functions/reject.d.ts +25 -0
- package/dist/utilities/functions/reject.js +28 -0
- package/dist/utilities/functions/resolveEnumProp.d.ts +19 -0
- package/dist/utilities/functions/resolveEnumProp.js +5 -0
- package/dist/utilities/functions/slotKey.d.ts +13 -0
- package/dist/utilities/functions/slotKey.js +4 -0
- package/dist/utilities/functions/sort.d.ts +2 -2
- package/dist/utilities/functions/sort.js +19 -0
- package/dist/utilities/functions/throttle.js +5 -0
- package/dist/utilities/functions/waitFor.d.ts +9 -2
- package/dist/utilities/functions/waitFor.js +14 -0
- package/dist/utilities/functions/warnRemovedAttrs.d.ts +11 -0
- package/dist/utilities/functions/warnRemovedAttrs.js +20 -0
- package/dist/utilities/functions/when.js +5 -0
- package/dist/utilities/misc/iconsInjectionKey.d.ts +15 -0
- package/dist/utilities/misc/iconsInjectionKey.js +4 -0
- package/dist/utilities/misc/transitions.d.ts +5 -0
- package/dist/utilities/misc/transitions.js +8 -0
- package/dist/utils/injectLibraryStyles.d.ts +6 -0
- package/dist/utils/injectLibraryStyles.js +38 -0
- package/dist/validated/BbCheckbox.vue.d.ts +29 -0
- package/dist/validated/BbCheckbox.vue.js +5 -0
- package/dist/validated/BbCheckbox.vue_vue_type_script_setup_true_lang.js +75 -0
- package/dist/validated/BbCheckboxGroup.vue.d.ts +34 -0
- package/dist/validated/BbCheckboxGroup.vue.js +5 -0
- package/dist/validated/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +76 -0
- package/dist/validated/BbColorInput.vue.d.ts +36 -0
- package/dist/validated/BbColorInput.vue.js +5 -0
- package/dist/validated/BbColorInput.vue_vue_type_script_setup_true_lang.js +71 -0
- package/dist/validated/BbDatePickerInput.vue.d.ts +40 -0
- package/dist/validated/BbDatePickerInput.vue.js +5 -0
- package/dist/validated/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +87 -0
- package/dist/validated/BbDropzone.vue.d.ts +24 -0
- package/dist/validated/BbDropzone.vue.js +5 -0
- package/dist/validated/BbDropzone.vue_vue_type_script_setup_true_lang.js +45 -0
- package/dist/validated/BbForm.vue.d.ts +28 -0
- package/dist/validated/BbForm.vue.js +5 -0
- package/dist/validated/BbForm.vue_vue_type_script_setup_true_lang.js +42 -0
- package/dist/validated/BbNumberInput.vue.d.ts +36 -0
- package/dist/validated/BbNumberInput.vue.js +5 -0
- package/dist/validated/BbNumberInput.vue_vue_type_script_setup_true_lang.js +72 -0
- package/dist/validated/BbRadioGroup.vue.d.ts +34 -0
- package/dist/validated/BbRadioGroup.vue.js +5 -0
- package/dist/validated/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +75 -0
- package/dist/validated/BbRating.vue.d.ts +30 -0
- package/dist/validated/BbRating.vue.js +5 -0
- package/dist/validated/BbRating.vue_vue_type_script_setup_true_lang.js +63 -0
- package/dist/validated/BbSelect.vue.d.ts +46 -0
- package/dist/validated/BbSelect.vue.js +5 -0
- package/dist/validated/BbSelect.vue_vue_type_script_setup_true_lang.js +100 -0
- package/dist/validated/BbSlider.vue.d.ts +36 -0
- package/dist/validated/BbSlider.vue.js +5 -0
- package/dist/validated/BbSlider.vue_vue_type_script_setup_true_lang.js +69 -0
- package/dist/validated/BbSwitch.vue.d.ts +29 -0
- package/dist/validated/BbSwitch.vue.js +5 -0
- package/dist/validated/BbSwitch.vue_vue_type_script_setup_true_lang.js +75 -0
- package/dist/validated/BbSwitchGroup.vue.d.ts +34 -0
- package/dist/validated/BbSwitchGroup.vue.js +5 -0
- package/dist/validated/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +76 -0
- package/dist/validated/BbTag.vue.d.ts +36 -0
- package/dist/validated/BbTag.vue.js +5 -0
- package/dist/validated/BbTag.vue_vue_type_script_setup_true_lang.js +72 -0
- package/dist/validated/BbTextInput.vue.d.ts +36 -0
- package/dist/validated/BbTextInput.vue.js +5 -0
- package/dist/validated/BbTextInput.vue_vue_type_script_setup_true_lang.js +72 -0
- package/dist/validated/BbTextarea.vue.d.ts +36 -0
- package/dist/validated/BbTextarea.vue.js +5 -0
- package/dist/validated/BbTextarea.vue_vue_type_script_setup_true_lang.js +70 -0
- package/dist/validated/BbTimePickerInput.vue.d.ts +36 -0
- package/dist/validated/BbTimePickerInput.vue.js +5 -0
- package/dist/validated/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +78 -0
- package/dist/validated/index.d.ts +29 -0
- package/dist/validated/useValidatedField.d.ts +52 -0
- package/dist/validated/useValidatedField.js +51 -0
- package/dist/validated.js +21 -0
- package/dist/vite-plugin.d.ts +217 -0
- package/dist/vite.js +530 -0
- package/llms.txt +105 -0
- package/package.json +161 -59
- package/scripts/lib/__fixtures__/validated-manifest.json +65 -0
- package/scripts/lib/ensure-manifest.mjs +39 -0
- package/scripts/lib/eslint-plugin-autofix.node.test.mjs +109 -0
- package/scripts/lib/eslint-plugin.mjs +285 -0
- package/scripts/lib/eslint-plugin.node.test.mjs +161 -0
- package/scripts/lib/html-attributes.mjs +191 -0
- package/scripts/lib/mcp-config.mjs +126 -0
- package/scripts/lib/migrate-fix.mjs +115 -0
- package/scripts/lib/validate-bb-markup.mjs +421 -0
- package/dist/ai/BaseButton.md +0 -449
- package/dist/ai/BaseCheckbox.md +0 -512
- package/dist/ai/BaseCheckboxGroup.md +0 -597
- package/dist/ai/BaseColorInput.md +0 -461
- package/dist/ai/BaseDatePicker.md +0 -739
- package/dist/ai/BaseDatePickerInput.md +0 -1517
- package/dist/ai/BaseDialog.md +0 -610
- package/dist/ai/BaseInputContainer.md +0 -570
- package/dist/ai/BaseNumberInput.md +0 -509
- package/dist/ai/BaseRadio.md +0 -405
- package/dist/ai/BaseRadioGroup.md +0 -535
- package/dist/ai/BaseRating.md +0 -489
- package/dist/ai/BaseSelect.md +0 -1742
- package/dist/ai/BaseSlider.md +0 -871
- package/dist/ai/BaseSwitch.md +0 -322
- package/dist/ai/BaseSwitchGroup.md +0 -298
- package/dist/ai/BaseTag.md +0 -623
- package/dist/ai/BaseTextInput.md +0 -392
- package/dist/ai/BaseTextarea.md +0 -398
- package/dist/ai/BbChip.md +0 -147
- package/dist/ai/BbIntersection.md +0 -120
- package/dist/ai/BbRatio.md +0 -61
- package/dist/ai/BbRows.md +0 -307
- package/dist/ai/BbTab.md +0 -950
- package/dist/ai/CommonInputInnerContainer.md +0 -414
- package/dist/ai/CommonInputOuterContainer.md +0 -55
- package/dist/components/BaseButton/BaseButton.vue.d.ts +0 -14
- package/dist/components/BaseButton/types.d.ts +0 -159
- package/dist/components/BaseCheckbox/BaseCheckbox.vue.d.ts +0 -39
- package/dist/components/BaseCheckbox/types.d.ts +0 -213
- package/dist/components/BaseCheckboxGroup/BaseCheckboxGroup.vue.d.ts +0 -30
- package/dist/components/BaseCheckboxGroup/types.d.ts +0 -282
- package/dist/components/BaseColorInput/BaseColorInput.vue.d.ts +0 -35
- package/dist/components/BaseColorInput/ColorPalette.vue.d.ts +0 -13
- package/dist/components/BaseColorInput/types.d.ts +0 -233
- package/dist/components/BaseDatePicker/BaseDatePickerHeader.vue.d.ts +0 -15
- package/dist/components/BaseDatePicker/BaseDatePickerInputDaySelector.vue.d.ts +0 -58
- package/dist/components/BaseDatePicker/BaseDatePickerMonthSelector.vue.d.ts +0 -12
- package/dist/components/BaseDatePicker/BaseDatePickerYearSelector.vue.d.ts +0 -12
- package/dist/components/BaseDatePicker/types.d.ts +0 -100
- package/dist/components/BaseDatePickerInput/BaseDatePickerInput.vue.d.ts +0 -26
- package/dist/components/BaseDatePickerInput/types.d.ts +0 -206
- package/dist/components/BaseDialog/BaseDialog.vue.d.ts +0 -37
- package/dist/components/BaseDialog/types.d.ts +0 -180
- package/dist/components/BaseInputContainer/BaseInputContainer.vue.d.ts +0 -18
- package/dist/components/BaseInputContainer/types.d.ts +0 -126
- package/dist/components/BaseNumberInput/BaseNumberInput.vue.d.ts +0 -46
- package/dist/components/BaseNumberInput/types.d.ts +0 -191
- package/dist/components/BaseRadio/BaseRadio.vue.d.ts +0 -31
- package/dist/components/BaseRadio/types.d.ts +0 -173
- package/dist/components/BaseRadioGroup/BaseRadioGroup.vue.d.ts +0 -30
- package/dist/components/BaseRadioGroup/types.d.ts +0 -240
- package/dist/components/BaseRating/BaseRating.vue.d.ts +0 -35
- package/dist/components/BaseRating/types.d.ts +0 -144
- package/dist/components/BaseSelect/BaseSelect.vue.d.ts +0 -28
- package/dist/components/BaseSelect/types.d.ts +0 -470
- package/dist/components/BaseSlider/BaseSlider.vue.d.ts +0 -38
- package/dist/components/BaseSlider/types.d.ts +0 -201
- package/dist/components/BaseSwitch/BaseSwitch.vue.d.ts +0 -34
- package/dist/components/BaseSwitch/types.d.ts +0 -25
- package/dist/components/BaseSwitchGroup/BaseSwitchGroup.vue.d.ts +0 -30
- package/dist/components/BaseSwitchGroup/types.d.ts +0 -8
- package/dist/components/BaseTag/BaseTag.vue.d.ts +0 -37
- package/dist/components/BaseTag/types.d.ts +0 -136
- package/dist/components/BaseTextInput/BaseTextInput.vue.d.ts +0 -33
- package/dist/components/BaseTextInput/types.d.ts +0 -166
- package/dist/components/BaseTextarea/BaseTextarea.vue.d.ts +0 -31
- package/dist/components/BaseTextarea/types.d.ts +0 -151
- package/dist/components/BbChip/BbChip.vue.d.ts +0 -17
- package/dist/components/BbChip/types.d.ts +0 -23
- package/dist/components/BbIntersection/BbIntersection.vue.d.ts +0 -23
- package/dist/components/BbIntersection/types.d.ts +0 -36
- package/dist/components/BbRatio/BbRatio.vue.d.ts +0 -14
- package/dist/components/BbRatio/types.d.ts +0 -15
- package/dist/components/BbRows/BbRows.vue.d.ts +0 -62
- package/dist/components/BbRows/types.d.ts +0 -21
- package/dist/components/BbTab/BbTab.vue.d.ts +0 -27
- package/dist/components/BbTab/types.d.ts +0 -186
- package/dist/components/CommonInputInnerContainer/CommonInputInnerContainer.vue.d.ts +0 -15
- package/dist/components/CommonInputInnerContainer/types.d.ts +0 -47
- package/dist/components/CommonInputOuterContainer/CommonInputOuterContainer.vue.d.ts +0 -11
- package/dist/components/CommonInputOuterContainer/types.d.ts +0 -16
- package/dist/composables/useModalsState.d.ts +0 -5
- package/dist/composables/useQueue.d.ts +0 -58
- package/dist/composables/useWizard.d.ts +0 -85
- package/dist/i18n/en.d.ts +0 -67
- package/dist/i18n/it.d.ts +0 -67
- package/dist/index.css +0 -2
- package/dist/index100.js +0 -6
- package/dist/index101.js +0 -300
- package/dist/index102.js +0 -16
- package/dist/index103.js +0 -16
- package/dist/index104.js +0 -27
- package/dist/index109.js +0 -19
- package/dist/index11.js +0 -42
- package/dist/index110.js +0 -12
- package/dist/index111.js +0 -19
- package/dist/index112.js +0 -25
- package/dist/index114.js +0 -7
- package/dist/index115.js +0 -241
- package/dist/index116.js +0 -5
- package/dist/index117.js +0 -42
- package/dist/index118.js +0 -5
- package/dist/index119.js +0 -53
- package/dist/index120.js +0 -5
- package/dist/index121.js +0 -32
- package/dist/index122.js +0 -5
- package/dist/index124.js +0 -52
- package/dist/index125.js +0 -5
- package/dist/index126.js +0 -223
- package/dist/index128.js +0 -6
- package/dist/index129.js +0 -162
- package/dist/index13.js +0 -92
- package/dist/index130.js +0 -25
- package/dist/index131.js +0 -51
- package/dist/index132.js +0 -5
- package/dist/index133.js +0 -607
- package/dist/index135.js +0 -6
- package/dist/index136.js +0 -14
- package/dist/index137.js +0 -153
- package/dist/index139.js +0 -6
- package/dist/index14.js +0 -306
- package/dist/index140.js +0 -224
- package/dist/index141.js +0 -5
- package/dist/index143.js +0 -128
- package/dist/index145.js +0 -6
- package/dist/index146.js +0 -8
- package/dist/index147.js +0 -182
- package/dist/index149.js +0 -6
- package/dist/index15.js +0 -10
- package/dist/index151.js +0 -4
- package/dist/index152.js +0 -95
- package/dist/index154.js +0 -6
- package/dist/index155.js +0 -168
- package/dist/index157.js +0 -6
- package/dist/index158.js +0 -145
- package/dist/index16.js +0 -59
- package/dist/index160.js +0 -6
- package/dist/index161.js +0 -53
- package/dist/index163.js +0 -6
- package/dist/index164.js +0 -16
- package/dist/index166.js +0 -35
- package/dist/index168.js +0 -6
- package/dist/index169.js +0 -89
- package/dist/index171.js +0 -6
- package/dist/index172.js +0 -82
- package/dist/index174.js +0 -6
- package/dist/index175.js +0 -38
- package/dist/index176.js +0 -461
- package/dist/index177.js +0 -28
- package/dist/index178.js +0 -66
- package/dist/index18.js +0 -35
- package/dist/index180.js +0 -162
- package/dist/index181.js +0 -5
- package/dist/index182.js +0 -217
- package/dist/index183.js +0 -5
- package/dist/index184.js +0 -112
- package/dist/index185.js +0 -5
- package/dist/index186.js +0 -459
- package/dist/index188.js +0 -6
- package/dist/index19.js +0 -4
- package/dist/index192.js +0 -268
- package/dist/index194.js +0 -6
- package/dist/index195.js +0 -124
- package/dist/index197.js +0 -6
- package/dist/index198.js +0 -174
- package/dist/index2.js +0 -20
- package/dist/index20.js +0 -9
- package/dist/index200.js +0 -6
- package/dist/index201.js +0 -224
- package/dist/index203.js +0 -6
- package/dist/index204.js +0 -135
- package/dist/index206.js +0 -6
- package/dist/index207.js +0 -5
- package/dist/index208.js +0 -170
- package/dist/index21.js +0 -35
- package/dist/index210.js +0 -6
- package/dist/index211.js +0 -37
- package/dist/index213.js +0 -6
- package/dist/index214.js +0 -63
- package/dist/index216.js +0 -6
- package/dist/index217.js +0 -74
- package/dist/index219.js +0 -6
- package/dist/index22.js +0 -6
- package/dist/index220.js +0 -65
- package/dist/index222.js +0 -6
- package/dist/index223.js +0 -67
- package/dist/index225.js +0 -6
- package/dist/index226.js +0 -41
- package/dist/index228.js +0 -6
- package/dist/index229.js +0 -10
- package/dist/index23.js +0 -7
- package/dist/index230.js +0 -22
- package/dist/index232.js +0 -8
- package/dist/index233.js +0 -297
- package/dist/index235.js +0 -6
- package/dist/index236.js +0 -47
- package/dist/index237.js +0 -165
- package/dist/index239.js +0 -6
- package/dist/index24.js +0 -9
- package/dist/index241.js +0 -159
- package/dist/index243.js +0 -6
- package/dist/index244.js +0 -134
- package/dist/index246.js +0 -6
- package/dist/index247.js +0 -167
- package/dist/index249.js +0 -6
- package/dist/index25.js +0 -24
- package/dist/index250.js +0 -147
- package/dist/index252.js +0 -6
- package/dist/index253.js +0 -35
- package/dist/index255.js +0 -6
- package/dist/index256.js +0 -65
- package/dist/index258.js +0 -6
- package/dist/index259.js +0 -19
- package/dist/index260.js +0 -5
- package/dist/index261.js +0 -160
- package/dist/index263.js +0 -6
- package/dist/index264.js +0 -60
- package/dist/index266.js +0 -6
- package/dist/index267.js +0 -134
- package/dist/index269.js +0 -6
- package/dist/index27.js +0 -4
- package/dist/index271.js +0 -206
- package/dist/index273.js +0 -6
- package/dist/index274.js +0 -85
- package/dist/index275.js +0 -5
- package/dist/index276.js +0 -55
- package/dist/index277.js +0 -5
- package/dist/index278.js +0 -164
- package/dist/index28.js +0 -8
- package/dist/index280.js +0 -6
- package/dist/index281.js +0 -145
- package/dist/index283.js +0 -6
- package/dist/index284.js +0 -11
- package/dist/index285.js +0 -200
- package/dist/index287.js +0 -6
- package/dist/index288.js +0 -241
- package/dist/index29.js +0 -7
- package/dist/index290.js +0 -6
- package/dist/index291.js +0 -21
- package/dist/index293.js +0 -6
- package/dist/index294.js +0 -125
- package/dist/index296.js +0 -6
- package/dist/index297.js +0 -161
- package/dist/index299.js +0 -6
- package/dist/index30.js +0 -118
- package/dist/index300.js +0 -127
- package/dist/index302.js +0 -6
- package/dist/index303.js +0 -20
- package/dist/index305.js +0 -6
- package/dist/index306.js +0 -116
- package/dist/index307.js +0 -5
- package/dist/index308.js +0 -507
- package/dist/index31.js +0 -10
- package/dist/index310.js +0 -6
- package/dist/index311.js +0 -196
- package/dist/index313.js +0 -6
- package/dist/index314.js +0 -142
- package/dist/index316.js +0 -6
- package/dist/index317.js +0 -134
- package/dist/index319.js +0 -6
- package/dist/index32.js +0 -28
- package/dist/index320.js +0 -162
- package/dist/index322.js +0 -6
- package/dist/index323.js +0 -319
- package/dist/index325.js +0 -6
- package/dist/index326.js +0 -40
- package/dist/index327.js +0 -43
- package/dist/index328.js +0 -665
- package/dist/index33.js +0 -5
- package/dist/index330.js +0 -6
- package/dist/index331.js +0 -155
- package/dist/index333.js +0 -6
- package/dist/index334.js +0 -142
- package/dist/index336.js +0 -6
- package/dist/index337.js +0 -155
- package/dist/index339.js +0 -6
- package/dist/index34.js +0 -112
- package/dist/index340.js +0 -58
- package/dist/index341.js +0 -5
- package/dist/index342.js +0 -20
- package/dist/index344.js +0 -6
- package/dist/index345.js +0 -142
- package/dist/index347.js +0 -6
- package/dist/index349.js +0 -109
- package/dist/index351.js +0 -6
- package/dist/index353.js +0 -24
- package/dist/index354.js +0 -23
- package/dist/index355.js +0 -839
- package/dist/index356.js +0 -474
- package/dist/index357.js +0 -52
- package/dist/index358.js +0 -7
- package/dist/index36.js +0 -6
- package/dist/index38.js +0 -63
- package/dist/index39.js +0 -63
- package/dist/index40.js +0 -9
- package/dist/index42.js +0 -8
- package/dist/index43.js +0 -179
- package/dist/index44.js +0 -21
- package/dist/index46.js +0 -385
- package/dist/index48.js +0 -6
- package/dist/index49.js +0 -33
- package/dist/index5.js +0 -34
- package/dist/index50.js +0 -12
- package/dist/index51.js +0 -8
- package/dist/index52.js +0 -106
- package/dist/index53.js +0 -330
- package/dist/index54.js +0 -97
- package/dist/index55.js +0 -328
- package/dist/index56.js +0 -28
- package/dist/index57.js +0 -102
- package/dist/index58.js +0 -157
- package/dist/index6.js +0 -38
- package/dist/index60.js +0 -6
- package/dist/index61.js +0 -131
- package/dist/index62.js +0 -5
- package/dist/index65.js +0 -35
- package/dist/index66.js +0 -26
- package/dist/index68.js +0 -6
- package/dist/index69.js +0 -54
- package/dist/index7.js +0 -58
- package/dist/index71.js +0 -6
- package/dist/index72.js +0 -14
- package/dist/index74.js +0 -6
- package/dist/index75.js +0 -159
- package/dist/index77.js +0 -6
- package/dist/index78.js +0 -4
- package/dist/index79.js +0 -4
- package/dist/index80.js +0 -54
- package/dist/index81.js +0 -5
- package/dist/index82.js +0 -5
- package/dist/index83.js +0 -141
- package/dist/index85.js +0 -6
- package/dist/index86.js +0 -65
- package/dist/index88.js +0 -6
- package/dist/index89.js +0 -30
- package/dist/index9.js +0 -11
- package/dist/index90.js +0 -19
- package/dist/index91.js +0 -17
- package/dist/index92.js +0 -9
- package/dist/index93.js +0 -34
- package/dist/index95.js +0 -16
- package/dist/index96.js +0 -10
- package/dist/index97.js +0 -18
- package/dist/index98.js +0 -189
- package/dist/types/VoidHtmlElements.d.ts +0 -1
- package/dist/utilities/functions/add.d.ts +0 -1
- package/dist/utilities/functions/booleanishToBoolean.d.ts +0 -6
- package/dist/utilities/functions/capitalize.d.ts +0 -4
- package/dist/utilities/functions/cloneDeep.d.ts +0 -1
- package/dist/utilities/functions/debounce.d.ts +0 -1
- package/dist/utilities/functions/drop.d.ts +0 -1
- package/dist/utilities/functions/exceedsPrecision.d.ts +0 -1
- package/dist/utilities/functions/findRight.d.ts +0 -4
- package/dist/utilities/functions/findRightIndex.d.ts +0 -4
- package/dist/utilities/functions/flow.d.ts +0 -1
- package/dist/utilities/functions/getHueFromRGB.d.ts +0 -9
- package/dist/utilities/functions/groupBy.d.ts +0 -6
- package/dist/utilities/functions/gt.d.ts +0 -7
- package/dist/utilities/functions/hexToRGB.d.ts +0 -7
- package/dist/utilities/functions/hslToHex.d.ts +0 -1
- package/dist/utilities/functions/includes.d.ts +0 -1
- package/dist/utilities/functions/initial.d.ts +0 -1
- package/dist/utilities/functions/isCssColor.d.ts +0 -5
- package/dist/utilities/functions/lt.d.ts +0 -7
- package/dist/utilities/functions/makeUrl.d.ts +0 -1
- package/dist/utilities/functions/mapKeys.d.ts +0 -5
- package/dist/utilities/functions/mapValues.d.ts +0 -1
- package/dist/utilities/functions/matchesPropertyInsensitive.d.ts +0 -1
- package/dist/utilities/functions/max.d.ts +0 -2
- package/dist/utilities/functions/mean.d.ts +0 -4
- package/dist/utilities/functions/merge.d.ts +0 -11
- package/dist/utilities/functions/millisecondsTo.d.ts +0 -1
- package/dist/utilities/functions/negate.d.ts +0 -4
- package/dist/utilities/functions/normalizeItemGroups.d.ts +0 -13
- package/dist/utilities/functions/omit.d.ts +0 -2
- package/dist/utilities/functions/overEvery.d.ts +0 -4
- package/dist/utilities/functions/pick.d.ts +0 -1
- package/dist/utilities/functions/replace.d.ts +0 -1
- package/dist/utilities/functions/replaceInTree.d.ts +0 -4
- package/dist/utilities/functions/retry.d.ts +0 -5
- package/dist/utilities/functions/roundToTheNearest.d.ts +0 -8
- package/dist/utilities/functions/set.d.ts +0 -15
- package/dist/utilities/functions/stub.d.ts +0 -6
- package/dist/utilities/functions/transposePercent.d.ts +0 -9
- package/dist/utilities/functions/tryTo.d.ts +0 -2
- package/dist/utilities/functions/uniqBy.d.ts +0 -1
- /package/dist/{index64.js → _virtual/_plugin-vue_export-helper.js} +0 -0
- /package/dist/components/{BaseButton → BbBaseButton}/RouterComponent.vue.d.ts +0 -0
- /package/dist/components/{BaseDatePicker/BaseDatePicker.vue.d.ts → BbBaseDatePicker/BbBaseDatePicker.vue.d.ts} +0 -0
- /package/dist/{index165.js → composables/useArray.js} +0 -0
- /package/dist/{index17.js → composables/useFrameworkDetection.js} +0 -0
- /package/dist/{index12.js → composables/useId.js} +0 -0
- /package/dist/{index352.js → directives/createPopoverDirective.js} +0 -0
- /package/dist/{index107.js → utilities/functions/chunk.js} +0 -0
- /package/dist/{index8.js → utilities/functions/clamp.js} +0 -0
- /package/dist/{index150.js → utilities/functions/curry.js} +0 -0
- /package/dist/{index45.js → utilities/functions/extractDomContainer.js} +0 -0
- /package/dist/{index270.js → utilities/functions/findInTree.js} +0 -0
- /package/dist/{index348.js → utilities/functions/flattenTree.js} +0 -0
- /package/dist/{index41.js → utilities/functions/get.js} +0 -0
- /package/dist/{index189.js → utilities/functions/head.js} +0 -0
- /package/dist/{index108.js → utilities/functions/identity.js} +0 -0
- /package/dist/{index179.js → utilities/functions/indexBy.js} +0 -0
- /package/dist/{index37.js → utilities/functions/isHex.js} +0 -0
- /package/dist/{index94.js → utilities/functions/isNil.js} +0 -0
- /package/dist/{index26.js → utilities/functions/isNotNil.js} +0 -0
- /package/dist/{index105.js → utilities/functions/last.js} +0 -0
- /package/dist/{index142.js → utilities/functions/noop.js} +0 -0
- /package/dist/{index231.js → utilities/functions/parseWidthString.js} +0 -0
- /package/dist/{index240.js → utilities/functions/pickBy.js} +0 -0
- /package/dist/{index123.js → utilities/functions/range.js} +0 -0
- /package/dist/{index190.js → utilities/functions/snapToStep.js} +0 -0
- /package/dist/{index191.js → utilities/functions/transpose.js} +0 -0
- /package/dist/{index106.js → utilities/functions/validateDateFormat.js} +0 -0
- /package/dist/{index10.js → utilities/functions/wait.js} +0 -0
|
@@ -0,0 +1,424 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Design Tokens
|
|
3
|
+
summary: The token architecture of bitboss-ui — tiers, naming rules, the emphasis ladder, and the theming contract.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Design Tokens
|
|
7
|
+
|
|
8
|
+
This is the spec for how every visual value in the library is expressed. It is
|
|
9
|
+
deliberately small: we are not shipping a design system, we are shipping
|
|
10
|
+
**affordances**. A token earns its place only when overriding it is a decision
|
|
11
|
+
a real consumer would make. Everything else is a formula.
|
|
12
|
+
|
|
13
|
+
## Principles
|
|
14
|
+
|
|
15
|
+
1. **Cheap by default.** Reuse an existing token (possibly through `calc()` /
|
|
16
|
+
`color-mix()`) before minting a new one. The `:root` block is the public
|
|
17
|
+
API surface _and_ what crowds the devtools console — it must stay readable
|
|
18
|
+
in one screen.
|
|
19
|
+
2. **Elastic derivation.** Secondary values derive from primary knobs
|
|
20
|
+
(`calc(var(--bb-radius) - var(--p))`, `calc(var(--bb-control-h) - 4px)`).
|
|
21
|
+
Turning one knob retunes the whole library coherently — this is the theme
|
|
22
|
+
builder contract.
|
|
23
|
+
3. **Two names, two tiers.**
|
|
24
|
+
- `--bb-*` — theme tokens. Global, defined in `variables.css`, themable.
|
|
25
|
+
- `--*` (no prefix) — component tokens. Defined on the component's root
|
|
26
|
+
class, in the component's own CSS file. Never in `:root`.
|
|
27
|
+
`--bb-tab-card-radius-md` must never exist.
|
|
28
|
+
4. **One accent at a time.** A component resolves _which_ color it is using
|
|
29
|
+
(primary, danger, a variant color) into a local token once, then every
|
|
30
|
+
state derives from that local via the emphasis ladder.
|
|
31
|
+
5. **Grays stay gray: primary tint means _selected_.** Neutral chrome —
|
|
32
|
+
hovers, pressed fills, secondary buttons, scrollbars — derives from
|
|
33
|
+
text/panel, never from primary. Primary appears only where the state is
|
|
34
|
+
genuinely brand-selected (solid primary buttons, links, rings, calendar
|
|
35
|
+
selected day/range, focused chips, today marker). This is what makes a
|
|
36
|
+
yellow theme produce gray hovers and yellow selections instead of a
|
|
37
|
+
yellow-washed UI.
|
|
38
|
+
6. **Mixes interpolate in `oklab`.** Perceptually even steps; srgb muddies
|
|
39
|
+
saturated brand colors. Enforced by the checker.
|
|
40
|
+
|
|
41
|
+
## Tier 1 — theme tokens (`--bb-*`)
|
|
42
|
+
|
|
43
|
+
The complete inventory. If a value is not here, it is not globally themable —
|
|
44
|
+
that is a feature.
|
|
45
|
+
|
|
46
|
+
### Brand knobs (what a theme builder sets)
|
|
47
|
+
|
|
48
|
+
| Token | Default (light) | Dark | Meaning |
|
|
49
|
+
| ------------------- | ------------------ | ------------------ | --------------------------------------------------------------------- |
|
|
50
|
+
| `--bb-primary` | `rgb(0 0 0)` | `white` | Brand accent |
|
|
51
|
+
| `--bb-primary-fg` | `white` (fallback) | `black` (fallback) | Text/icons **on** primary — **auto-contrasts** (see note) |
|
|
52
|
+
| `--bb-danger` | `rgb(217 59 48)` | same | Errors, destructive intent |
|
|
53
|
+
| `--bb-warn` | `rgb(240 131 88)` | same | Warning **input state** (`hasWarning`) — amber, ranks below danger |
|
|
54
|
+
| `--bb-panel` | `rgb(255 255 255)` | `#313638` | Raised surfaces (cards, inputs, popovers, dialogs) |
|
|
55
|
+
| `--bb-text` | `rgb(0 0 0)` | `white` | Foreground |
|
|
56
|
+
| `--bb-border` | zinc-300 | zinc-600 | Hairlines; pair with `--bb-border-w` |
|
|
57
|
+
| `--bb-ring-opacity` | `25%` | `40%` | Ring strength; `--bb-ring`/`--bb-ring-danger`/`--bb-ring-warn` follow |
|
|
58
|
+
|
|
59
|
+
**`--bb-warn` is the only shared status token besides `--bb-danger`.** It exists
|
|
60
|
+
solely to color the **warning input state** — every form control takes `warnings`
|
|
61
|
+
(amber messages in an `aria-live` region) and `hasWarning` (force the chrome),
|
|
62
|
+
mirroring `errors`/`hasErrors` but in amber; `errors` win and suppress warnings
|
|
63
|
+
when both are set. It is deliberately **not** a badge/button `warning` _variant_
|
|
64
|
+
(those stay locked — see design-language.md); there is still no
|
|
65
|
+
`--bb-success`/`--bb-info`. Same value in both themes, like `--bb-danger`.
|
|
66
|
+
|
|
67
|
+
**`--bb-primary-fg` auto-contrasts.** Where the browser supports CSS
|
|
68
|
+
`contrast-color()`, `--bb-primary-fg` is derived to black or white — whichever
|
|
69
|
+
reads on `--bb-primary` — so setting only `--bb-primary` still yields legible
|
|
70
|
+
text/icons on primary fills. The light/dark values in the table are the
|
|
71
|
+
**fallback** used when `contrast-color()` is unsupported; a theme that targets
|
|
72
|
+
those browsers should set a matching fallback for its brand color. Setting
|
|
73
|
+
`--bb-primary-fg` explicitly always wins over both (normal cascade), so a theme
|
|
74
|
+
can pin an exact foreground.
|
|
75
|
+
|
|
76
|
+
### Derived colors (follow the knobs automatically; still overridable)
|
|
77
|
+
|
|
78
|
+
| Token | Formula (all `in oklab`) | Used for |
|
|
79
|
+
| -------------------- | ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
80
|
+
| `--bb-muted` | `mix(var(--bb-text) 6%, var(--bb-panel))` | Static subtle fills: disabled surfaces |
|
|
81
|
+
| `--bb-track` | `mix(var(--bb-text) 15%, var(--bb-panel))` | Recessed control-track surface (switch/slider rails, input wells) — a distinct surface that must contrast a panel-coloured thumb, so it sits **above** the 2/4/6/8 chrome fills |
|
|
82
|
+
| `--bb-hover` | `mix(var(--bb-text) 4%, var(--bb-panel))` | Hover fill for **affordances** — ghost/outline buttons, pagination, nav links |
|
|
83
|
+
| `--bb-surface-hover` | `mix(var(--bb-text) 2%, var(--bb-panel))` | Hover fill for **passive surfaces** — table rows, list items, picker day cells (fainter) |
|
|
84
|
+
| `--bb-pressed` | `mix(var(--bb-text) 8%, var(--bb-panel))` | Neutral pressed/active fill |
|
|
85
|
+
| `--bb-text-muted` | `mix(var(--bb-text) 60%, transparent)` | Secondary text, icons, placeholders, hints |
|
|
86
|
+
| `--bb-text-faint` | `mix(var(--bb-text) 45%, transparent)` | Disabled foregrounds |
|
|
87
|
+
| `--bb-ring` | `mix(var(--bb-primary) var(--bb-ring-opacity), transparent)` | Focus ring — primary & link variants |
|
|
88
|
+
| `--bb-ring-danger` | same formula over `--bb-danger` | Focus ring in error states (destructive) |
|
|
89
|
+
| `--bb-ring-warn` | same formula over `--bb-warn` | Focus ring in the warning input state (`hasWarning`) |
|
|
90
|
+
| `--bb-ring-neutral` | same formula over `--bb-text` | Focus ring for the neutral variants (secondary/outline/ghost) — grey, never primary-tinted |
|
|
91
|
+
|
|
92
|
+
These neutral-chrome percentages (2/4/6/8) are deliberately off the emphasis
|
|
93
|
+
ladder: they live only in `variables.css`, which the checker exempts as the
|
|
94
|
+
home of the sanctioned derivation formulas.
|
|
95
|
+
|
|
96
|
+
A theme builder normally never touches these — they track the knobs. They are
|
|
97
|
+
tokens (not inlined formulas) because they are consumed in dozens of places,
|
|
98
|
+
and because each is a **pinnable scale step**: a theme that wants
|
|
99
|
+
Radix-precision grays can override any of them with a hand-tuned value while
|
|
100
|
+
cheap themes keep the derivation. Components with a multi-step neutral
|
|
101
|
+
progression (e.g. the secondary button's rest→hover→pressed) write the raw
|
|
102
|
+
ladder formulas instead of these tokens, so a state name never lies.
|
|
103
|
+
|
|
104
|
+
### Shape & elevation
|
|
105
|
+
|
|
106
|
+
| Token | Default | Notes |
|
|
107
|
+
| --------------------- | ---------------------------------------- | ------------------------------------------------------------------- |
|
|
108
|
+
| `--bb-radius` | `8px` | THE knob — controls tier: buttons, inputs, tab strips |
|
|
109
|
+
| `--bb-radius-surface` | `calc(var(--bb-radius) * 1.8)` | Surfaces tier: dialogs, off-canvas sheets |
|
|
110
|
+
| `--bb-radius-sm` | `max(4px, calc(var(--bb-radius) * 0.6))` | Nested-bits tier: table controls, toast close, calendar footer btns |
|
|
111
|
+
| `--bb-border-w` | `1px` | |
|
|
112
|
+
| `--bb-ring-size` | `2px` | Focus ring thickness |
|
|
113
|
+
| `--bb-shadow` | soft 2-layer | The single elevation shadow |
|
|
114
|
+
|
|
115
|
+
Radius is tiered **by role, not by size**; both extra tiers derive from the
|
|
116
|
+
one knob (still individually pinnable). Two more radius rules: concentric
|
|
117
|
+
nesting is always `outer radius − padding` (the tabs pill), and per-size
|
|
118
|
+
ramps inside a component (badge, chip) derive from `--bb-radius` with
|
|
119
|
+
multipliers — never literals.
|
|
120
|
+
|
|
121
|
+
### Scale
|
|
122
|
+
|
|
123
|
+
| Token | Default | Notes |
|
|
124
|
+
| ---------------- | ------- | ----------------------------------------------------------------------------------------------------------------- |
|
|
125
|
+
| `--bb-control-h` | `32px` | Master control height. Inputs are exactly this; buttons/tabs derive their size scale from it via `calc()` offsets |
|
|
126
|
+
| `--bb-fs` | `14px` | Master font size. Component font sizes derive via `calc()` offsets |
|
|
127
|
+
| `--bb-panel-p` | `16px` | Content padding of large surfaces (dialog, off-canvas; header/footer paddings derive from it) |
|
|
128
|
+
|
|
129
|
+
### Motion
|
|
130
|
+
|
|
131
|
+
| Token | Default |
|
|
132
|
+
| ------------------------ | ------------------------------------------------------ |
|
|
133
|
+
| `--bb-transition-fast` | `150ms` — micro-interactions |
|
|
134
|
+
| `--bb-transition-medium` | `250ms` — overlays, most moves |
|
|
135
|
+
| `--bb-ease` | `cubic-bezier(0.4, 0, 0.2, 1)` — the only easing curve |
|
|
136
|
+
|
|
137
|
+
(`--bb-transition-slow`: `350ms`, for large-surface consumer animations —
|
|
138
|
+
the library itself uses `medium` for those.)
|
|
139
|
+
|
|
140
|
+
### Overlays
|
|
141
|
+
|
|
142
|
+
| Token | Default | Notes |
|
|
143
|
+
| ------------------- | ------------------ | ----------------------------------- |
|
|
144
|
+
| `--bb-overlay` | `rgb(0 0 0 / 0.1)` | Backdrop dim color+opacity in one |
|
|
145
|
+
| `--bb-overlay-blur` | `2px` | Backdrop blur |
|
|
146
|
+
| `--bb-z-overlay` | `10` | Overlay z-index |
|
|
147
|
+
| `--bb-arrow` | `1` | Popover arrows on (`1`) / off (`0`) |
|
|
148
|
+
|
|
149
|
+
### Input family
|
|
150
|
+
|
|
151
|
+
Form controls are ~half the library and must agree with each other, so their
|
|
152
|
+
shared metrics are global — but they derive from the scale knobs:
|
|
153
|
+
|
|
154
|
+
```css
|
|
155
|
+
--bb-input-h: var(--bb-control-h);
|
|
156
|
+
--bb-input-h-compact: calc(var(--bb-control-h) - 4px);
|
|
157
|
+
--bb-input-px: 8px;
|
|
158
|
+
--bb-input-py: 3px;
|
|
159
|
+
--bb-input-py-compact: 2px;
|
|
160
|
+
--bb-input-spacing: 8px; /* gap between the parts of an input */
|
|
161
|
+
--bb-input-icon: 20px; /* prepend/append icon box */
|
|
162
|
+
--bb-input-prefix-w: 20px; /* prefix/suffix column */
|
|
163
|
+
--bb-input-fs: var(--bb-fs);
|
|
164
|
+
--bb-input-fs-mobile: max(var(--bb-input-fs), 16px); /* defeats iOS zoom */
|
|
165
|
+
--bb-leading: calc(var(--bb-input-fs) * 1.5);
|
|
166
|
+
--bb-label-fs: var(--bb-fs);
|
|
167
|
+
--bb-label-fs-sm: calc(var(--bb-fs) - 2px); /* inside & floating labels */
|
|
168
|
+
--bb-label-weight: 500;
|
|
169
|
+
--bb-label-spacing-y: 6px; /* compact derives: - 2px */
|
|
170
|
+
--bb-label-spacing-x: 8px;
|
|
171
|
+
--bb-label-lh: calc(var(--bb-label-fs) + 4px);
|
|
172
|
+
--bb-label-lh-sm: max(16px, calc(var(--bb-label-fs-sm) * 1.5));
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
The theme layer stays small — **89 `--bb-*` tokens** today (the number
|
|
176
|
+
`npm run check:tokens` prints; the canonical, complete list is
|
|
177
|
+
`src/assets/css/variables.css`), down from ~140 in v2. The blocks above show the
|
|
178
|
+
representative groups, not every token.
|
|
179
|
+
|
|
180
|
+
## Tier 2 — component tokens (`--*`)
|
|
181
|
+
|
|
182
|
+
Defined on the component's **root class** in the component's own CSS file.
|
|
183
|
+
Rules:
|
|
184
|
+
|
|
185
|
+
1. **No `--bb-` prefix.** Ever.
|
|
186
|
+
2. **A token must be defined in the same file that consumes it** (usually on
|
|
187
|
+
the root class). Since custom properties inherit, this is what prevents a
|
|
188
|
+
`--gap` set by an outer component from leaking into an inner one — every
|
|
189
|
+
component seals itself.
|
|
190
|
+
3. **Short names are for self-consumption only.** `--h`, `--px`, `--gap`,
|
|
191
|
+
`--fs`, `--r` are fine while the rules using them target the component's
|
|
192
|
+
own boxes. If a value must be read _inside a nested foreign component_
|
|
193
|
+
(e.g. dialog padding positioning the close button, which is itself a
|
|
194
|
+
button defining `--px`), the token gets a distinctive name (`--dialog-px`)
|
|
195
|
+
or — better — the formula moves to an element the component owns.
|
|
196
|
+
4. **Mint only what varies.** A size variant that overrides four locals is
|
|
197
|
+
four tokens, not four × six sizes. Per-size lookup tables
|
|
198
|
+
(`--h-xs … --h-2xl`) are allowed only when a responsive matrix genuinely
|
|
199
|
+
needs to re-point them.
|
|
200
|
+
5. **JS bridges use the same short names.** A value measured/parsed in JS and
|
|
201
|
+
set as an inline style (dropdown width, popover max height, icon size)
|
|
202
|
+
is just another component token: `--w`, `--max-h` — never
|
|
203
|
+
`--dropdown-width`. The component-name prefix bought nothing (a nested
|
|
204
|
+
dropdown inherits `--dropdown-max-height` exactly as easily as `--max-h`);
|
|
205
|
+
what actually protects the name is sealing — consume it with a fallback
|
|
206
|
+
(`var(--max-h, none)`) or declare a default on the root class
|
|
207
|
+
(`--w: initial` on `.bb-icon`), so an ancestor's value can never inherit
|
|
208
|
+
in. Cross-component bridges (ListBox publishing `--option-height` for
|
|
209
|
+
SelectPopover to read) keep a distinctive name per rule 3.
|
|
210
|
+
|
|
211
|
+
Component tokens are still real affordances: a consumer can retune one
|
|
212
|
+
instance (`<BbTabs style="--list-h: 40px">`) or a whole page scope. They are
|
|
213
|
+
just not global namespace.
|
|
214
|
+
|
|
215
|
+
## The emphasis ladder
|
|
216
|
+
|
|
217
|
+
All translucency/tinting goes through **one ladder** of `color-mix()`
|
|
218
|
+
percentages. No other percentages are allowed in a `color-mix()` with a
|
|
219
|
+
semantic color:
|
|
220
|
+
|
|
221
|
+
| Stop | Meaning | Example |
|
|
222
|
+
| ----- | ------------------------------------- | ---------------------------------- |
|
|
223
|
+
| `8%` | Resting tint fill | secondary button bg, tab strip |
|
|
224
|
+
| `15%` | Hover tint fill | secondary/destructive button hover |
|
|
225
|
+
| `25%` | Pressed/selected tint, tinted borders | `aria-pressed` bg, danger border |
|
|
226
|
+
| `45%` | Disabled foreground, placeholder-ish | disabled button text |
|
|
227
|
+
| `60%` | Muted text (= `--bb-text-muted`) | secondary copy, icons |
|
|
228
|
+
| `75%` | Strong-but-secondary foreground | toast icon, alert secondary copy |
|
|
229
|
+
|
|
230
|
+
Two composition modes, chosen by context:
|
|
231
|
+
|
|
232
|
+
```css
|
|
233
|
+
/* Opaque fill — when the element owns its background */
|
|
234
|
+
background: color-mix(in oklab, var(--accent) 8%, var(--bb-panel));
|
|
235
|
+
|
|
236
|
+
/* Translucent fill — when it must sit on an unknown background */
|
|
237
|
+
background: color-mix(in oklab, var(--accent) 8%, transparent);
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
Solid (non-tinted) interactive surfaces darken instead:
|
|
241
|
+
|
|
242
|
+
```css
|
|
243
|
+
&:hover {
|
|
244
|
+
background: color-mix(in oklab, var(--accent) 90%, black);
|
|
245
|
+
}
|
|
246
|
+
&:active {
|
|
247
|
+
background: color-mix(in oklab, var(--accent) 80%, black);
|
|
248
|
+
}
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### The state recipe
|
|
252
|
+
|
|
253
|
+
Every interactive component follows the same four-state progression:
|
|
254
|
+
|
|
255
|
+
| State | Neutral chrome (default) | Tinted variants (danger, selected) | Solid variants | Plus |
|
|
256
|
+
| -------- | ---------------------------------------- | ---------------------------------- | -------------- | ------------------------------------------------------ |
|
|
257
|
+
| rest | transparent (or `8%` if filled) | `8%` | `100%` | |
|
|
258
|
+
| hover | `var(--bb-hover)` | `15%` | `90% + black` | |
|
|
259
|
+
| pressed | `var(--bb-pressed)` | `25%` | `80% + black` | |
|
|
260
|
+
| focused | hover/pressed values | hover values | hover values | `box-shadow: 0 0 0 var(--bb-ring-size) var(--bb-ring)` |
|
|
261
|
+
| disabled | bg `var(--bb-muted)`, fg at the 45% stop | same | same | `cursor: not-allowed` |
|
|
262
|
+
|
|
263
|
+
Per principle 5, the tinted column applies only to states that _mean_
|
|
264
|
+
something — danger variants and brand-selected states — never to plain
|
|
265
|
+
interaction chrome. Error variants swap the accent
|
|
266
|
+
(`--accent: var(--bb-danger)`) and the ring (`--bb-ring-danger`) — nothing
|
|
267
|
+
else changes.
|
|
268
|
+
|
|
269
|
+
## Dark mode
|
|
270
|
+
|
|
271
|
+
One name per token. `:root`/`.light` declares light values; `.dark`
|
|
272
|
+
re-declares **only the knobs that change** (primary, primary-fg, panel, text,
|
|
273
|
+
border, ring opacity). Component tokens and ladder formulas follow
|
|
274
|
+
automatically because they are declared on the components themselves. The
|
|
275
|
+
old `--x-light`/`--x-dark`/`--x` triple is gone.
|
|
276
|
+
|
|
277
|
+
One CSS mechanic to respect: **a custom property resolves its `var()`
|
|
278
|
+
references on the element where it is declared, not where it is consumed.**
|
|
279
|
+
That is why the derived color tokens (`--bb-hover`, `--bb-ring`…) are
|
|
280
|
+
declared on _both_ scheme scopes in variables.css — declared only on
|
|
281
|
+
`:root` they would bake in the light knobs and `.dark` would inherit stale
|
|
282
|
+
values. The same applies to consumers: overriding a knob on an arbitrary
|
|
283
|
+
scope (`.brand { --bb-primary: … }`) does not re-derive them — re-apply the
|
|
284
|
+
`light`/`dark` class on that scope, or override the derived tokens directly.
|
|
285
|
+
Root-level theming (what the theme builder emits) is unaffected.
|
|
286
|
+
|
|
287
|
+
### Animated themes
|
|
288
|
+
|
|
289
|
+
The color knobs (and `--bb-ring-opacity`) are registered with `@property`
|
|
290
|
+
(typed `<color>`, `inherits: true`), which makes them **animatable** and
|
|
291
|
+
fail-soft (an invalid `--bb-panel` falls back to the registered initial
|
|
292
|
+
value instead of detonating every derivation). Add `.theme-animated`
|
|
293
|
+
(main.css) to the element that carries the scheme class or theme overrides:
|
|
294
|
+
|
|
295
|
+
```html
|
|
296
|
+
<html class="theme-animated dark"></html>
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
Scheme toggles and theme-builder changes then crossfade over
|
|
300
|
+
`--bb-transition-medium`; every derived mix re-derives per interpolated
|
|
301
|
+
frame. The class must sit on the same element as the toggle (a transition
|
|
302
|
+
only runs where the property changes), it owns that element's `transition`,
|
|
303
|
+
and the whole subtree repaints while it runs — a deliberate cost for
|
|
304
|
+
toggles/previews, so it stays opt-in. Browsers without `@property` simply
|
|
305
|
+
switch instantly. Component tokens stay unregistered (see "Why not
|
|
306
|
+
`@property`").
|
|
307
|
+
|
|
308
|
+
This is also the theme-builder contract: a theme is _two small blocks of the
|
|
309
|
+
same ~10 declarations_. Changing `--bb-primary`, `--bb-radius`,
|
|
310
|
+
`--bb-control-h`, `--bb-panel`, `--bb-danger` overhauls the entire library
|
|
311
|
+
with no other edits.
|
|
312
|
+
|
|
313
|
+
## Safe areas (occupied edges)
|
|
314
|
+
|
|
315
|
+
Toasts avoid open off-canvas panels: a bottom sheet pushes bottom toasts up,
|
|
316
|
+
a right panel pushes right-anchored toasts left, and so on per edge — in
|
|
317
|
+
step with the panel's slide. The model (implemented in
|
|
318
|
+
`src/composables/useSafeArea.ts`, read by `BbToastRegion`):
|
|
319
|
+
|
|
320
|
+
- **Claims are "occupied up to X px from this screen edge"**, derived from
|
|
321
|
+
the off-canvas stack registry (direction + measured size + stack peeks),
|
|
322
|
+
and composed by `max`, never sum — a claim measures from the screen edge,
|
|
323
|
+
so nothing double-counts.
|
|
324
|
+
- **Priority is one-directional: sheets claim, toasts yield.** A
|
|
325
|
+
deliberately-opened surface never moves for an unsolicited notification.
|
|
326
|
+
- **Last-ditch rule, per axis:** when a claim leaves the stack no room
|
|
327
|
+
(claim + stack extent + margins > viewport), the toast stops yielding on
|
|
328
|
+
that axis and overlaps the sheet instead.
|
|
329
|
+
- **Settle, not per-frame:** claims update on open/close/resize; a live drag
|
|
330
|
+
rides on `transform` and never touches the registry.
|
|
331
|
+
- **Edge scalars, not corner lanes:** a bottom claim spans the whole bottom
|
|
332
|
+
edge. Corner-aware lanes were considered and deferred (every OS insets
|
|
333
|
+
system ships edge scalars; the over-yielding failure mode is mild).
|
|
334
|
+
- Centered dialogs claim nothing. Adaptive picker sheets currently claim
|
|
335
|
+
like any off-canvas — revisit if toasts jumping under open selects proves
|
|
336
|
+
more distracting than overlap.
|
|
337
|
+
|
|
338
|
+
**The rejected public half (recorded so it isn't re-litigated blind):** an
|
|
339
|
+
earlier design published composed totals as `--bb-safe-*` tokens so consumer
|
|
340
|
+
floating UI (a FAB) could dodge sheets and be "gently pushed" by toasts.
|
|
341
|
+
Dropped because every surface here is _modal_ — the backdrop covers and
|
|
342
|
+
inerts the page, so consumer UI can't be interacted with while a claim
|
|
343
|
+
exists; helping it dodge is pointless. Reopen if either lands: non-modal /
|
|
344
|
+
inline docked panels, or persistent floating consumer UI that should dodge
|
|
345
|
+
_toasts_ (Material's snackbar-pushes-FAB rule — toast claims do interact
|
|
346
|
+
with live UI). The public shape would be `--bb-safe-top/right/bottom/left`
|
|
347
|
+
on `:root` defaulting to `env(safe-area-inset-*)`, with explicit claim
|
|
348
|
+
priorities. The mobile keyboard can join as another bottom claimant with no
|
|
349
|
+
API change.
|
|
350
|
+
|
|
351
|
+
Top-layer & inertness note: a modal (`showModal()`) makes everything outside
|
|
352
|
+
itself **inert** — and inertness follows DOM ancestry, not paint order, so a
|
|
353
|
+
body-hosted toast region can render above a modal yet be frozen to input.
|
|
354
|
+
BbToast therefore teleports its regions _into_ the top-most open modal
|
|
355
|
+
(BbDialog and BbOffCanvas register with `useTopLayer`), and each region
|
|
356
|
+
re-shows its popover after the move (a DOM move auto-hides popovers; the
|
|
357
|
+
re-promotion also keeps toasts painted above the host). Regions re-home to
|
|
358
|
+
`<body>` when the last modal starts closing. Being top-layer popovers, they
|
|
359
|
+
escape the host dialog's `overflow: hidden` and centering transform.
|
|
360
|
+
|
|
361
|
+
## Migration from the old tokens
|
|
362
|
+
|
|
363
|
+
| Old | New |
|
|
364
|
+
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
|
|
365
|
+
| primary-tinted hovers/pressed fills (`mix(--bb-primary 8-25%, --bb-panel)`) | `--bb-hover` / `--bb-pressed` (neutral, text-derived) |
|
|
366
|
+
| `color-mix(in srgb, …)` | `color-mix(in oklab, …)` everywhere |
|
|
367
|
+
| dialog/offcanvas `--radius-multiplier` ×1.8, literal `6px`/`8px`/`0.375rem` radii | `--bb-radius-surface` / `--bb-radius-sm` |
|
|
368
|
+
| `--bb-contrasting` | `--bb-primary-fg` |
|
|
369
|
+
| `--bb-easing-bezier` | `--bb-ease` |
|
|
370
|
+
| `--bb-panel-disabled`, `--bb-input-bg-secondary` | `--bb-muted` |
|
|
371
|
+
| `--bb-muted-color`, `--bb-hint`, `--bb-placeholder`, `--bb-icon-color`, `--bb-prefix-color` | `--bb-text-muted` |
|
|
372
|
+
| `--bb-input-color`, `--bb-input-bg` | `--bb-text`, `--bb-panel` |
|
|
373
|
+
| `--bb-input-font-size` / `--bb-input-mobile-font-size` | `--bb-input-fs` / `--bb-input-fs-mobile` |
|
|
374
|
+
| `--bb-input-compact-h` / `--bb-input-compact-py` | `--bb-input-h-compact` / `--bb-input-py-compact` |
|
|
375
|
+
| `--bb-label-size` / `--bb-label-inside-size` / `--bb-label-floating-size` | `--bb-label-fs` / `--bb-label-fs-sm` (merged) |
|
|
376
|
+
| `--bb-label-line-height` / `--bb-label-inside-line-height` | `--bb-label-lh` / `--bb-label-lh-sm` |
|
|
377
|
+
| `--bb-overlay-color` + `--bb-overlay-opacity` | `--bb-overlay` (one color with alpha) |
|
|
378
|
+
| `--bb-overlay-z-index` | `--bb-z-overlay` |
|
|
379
|
+
| inline ring `color-mix()` formulas | `--bb-ring` / `--bb-ring-danger` (strength knob: `--bb-ring-opacity`) |
|
|
380
|
+
| `--bb-dialog-px/pt/pb/gap/…` | `--bb-panel-p` (+ local derivations) |
|
|
381
|
+
| `--bb-button-*`, `--bb-tabs-*`, `--bb-checkbox-*`, `--bb-radio-*`, `--bb-switch-*`, `--bb-rating-*`, `--bb-slider-*`, `--bb-table-cell-h`, `--bb-progress-track` | unprefixed locals in each component's CSS |
|
|
382
|
+
| `--bb-table-offset-*`, `--bb-table-fill`, `--bb-table-natural-width` (JS plumbing) | unprefixed locals on `.bb-table` (`--offset-*`, `--fill`, `--natural-width`) |
|
|
383
|
+
| `--bb-table-{id}-track-{key}` (parent→nested width bridge) | `--table-{id}-track-{key}` (distinctive cross-component name, rule 3) |
|
|
384
|
+
| `--bb-select-option-*`, `--bb-primary-base`, all `--x-light`/`--x-dark` shadows | deleted (dead) |
|
|
385
|
+
|
|
386
|
+
## Enforcement
|
|
387
|
+
|
|
388
|
+
`npm run check:tokens` (see `scripts/check-tokens.mjs`) fails the build when:
|
|
389
|
+
|
|
390
|
+
- a file _introduces_ a `--bb-*` name outside `variables.css` (re-declaring a
|
|
391
|
+
known theme token at a scope is fine — that's theming);
|
|
392
|
+
- a `--bb-*` token is consumed but not declared in `variables.css`;
|
|
393
|
+
- a component CSS file consumes an unprefixed token it never declares and
|
|
394
|
+
without a `var()` fallback (seal-rule violation; tokens that are JS-set or
|
|
395
|
+
inherited by design are annotated with an `/* @inherit --name */` note);
|
|
396
|
+
- a `color-mix()` over a token is not `in oklab`, or uses a percentage off
|
|
397
|
+
the ladder (8/15/25/45/60/75 + 80/90; 0/100 anchors allowed).
|
|
398
|
+
`variables.css` itself is exempt — it hosts the sanctioned derivation
|
|
399
|
+
formulas (`--bb-muted` at 6%, `--bb-hover` at 2%).
|
|
400
|
+
|
|
401
|
+
### Why not `@property`?
|
|
402
|
+
|
|
403
|
+
Registering component tokens (`@property --w { inherits: false; … }`) looks
|
|
404
|
+
like it would replace the seal rule structurally, but it breaks the system:
|
|
405
|
+
|
|
406
|
+
- `inherits: false` stops the root→descendant flow _inside_ a component
|
|
407
|
+
(declare on `.bb-base-switch`, consume on `__icon` — that is inheritance),
|
|
408
|
+
which is also what makes `style="--list-h: 40px"` overrides work. CSS
|
|
409
|
+
cannot express "inherit within my subtree but not into nested components".
|
|
410
|
+
- A registered property always has a value, so `var(--max-h, none)`
|
|
411
|
+
fallbacks never fire again — our sealing pattern dies.
|
|
412
|
+
- Registrations are page-global, one meaning per name per document. Short
|
|
413
|
+
names are deliberate local homonyms here (`--w` is icon width, dropdown
|
|
414
|
+
width, switch width; one must inherit, one must not), and a library
|
|
415
|
+
registering `--w`/`--gap`/`--size` tramples the host page's names.
|
|
416
|
+
|
|
417
|
+
## Open questions (iterate here)
|
|
418
|
+
|
|
419
|
+
- Should `--bb-danger-fg` exist for a future solid-danger button, or is the
|
|
420
|
+
tinted destructive variant the only sanctioned form?
|
|
421
|
+
- Is `--bb-control-h` the right master, or should it be `--bb-density` with
|
|
422
|
+
controls deriving both height and paddings from it?
|
|
423
|
+
- Should `--bb-bg` (page background) exist as a third neutral anchor, so
|
|
424
|
+
page↔panel contrast is a managed relationship? Currently no consumers.
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Fetch Data Items Playbook
|
|
3
|
+
summary: Item-provider signatures as actually invoked per component family, prefill semantics, dependencies-driven refetching, and canonical API request patterns.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Fetch Data Items Playbook
|
|
7
|
+
|
|
8
|
+
Use this playbook when `items` is dynamic: pass a **function** instead of an array and the component runs it, tracks loading, and discards stale responses. Static arrays bypass the provider entirely.
|
|
9
|
+
|
|
10
|
+
Companions: [Options and Items](./options-items-playbook.md) (mapping, seeding), [Coherence](./coherence-playbook.md) (what happens to `modelValue` when fetched options change).
|
|
11
|
+
|
|
12
|
+
## Provider signatures (as implemented)
|
|
13
|
+
|
|
14
|
+
### Query-aware — `BbSelect`, `BbSelectPopover`
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
type QueryItemsProvider<T> = (
|
|
18
|
+
query: string,
|
|
19
|
+
prefill: boolean,
|
|
20
|
+
modelValue: any // your v-model: array when `multiple`, single value otherwise
|
|
21
|
+
) => T[] | Promise<T[]>;
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
`modelValue` is your v-model passed as-is, and the prop declares it `any`: an array in `multiple` mode, the raw model value (possibly `null`) in single mode. Annotate it `any` (or your own model type) and branch on the shape you know you passed.
|
|
25
|
+
|
|
26
|
+
### Non-query — `BbCheckboxGroup`, `BbRadioGroup`, `BbSwitchGroup`, `BbTable`
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
type ItemsProvider<T> = (
|
|
30
|
+
prefill: boolean,
|
|
31
|
+
modelValue?: any // groups: the v-model; BbTable: the current selection
|
|
32
|
+
) => T[] | Promise<T[]>;
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### `BbDropdown` pipeline groups
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
type DropdownGroupItemsGetter = (
|
|
39
|
+
prefill: boolean,
|
|
40
|
+
modelValue?: any // the group's selection: array when `multiple`, single value otherwise
|
|
41
|
+
) => any[] | Promise<any[]>;
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
The same non-query shape as groups and `BbTable`. `modelValue` is the group's current selection — the `<BbDropdownGroup>` `v-model` when there is a companion. Read anything else the request needs (filters, the parent record) from your own refs.
|
|
45
|
+
|
|
46
|
+
## When each provider runs (verified call matrix)
|
|
47
|
+
|
|
48
|
+
| Trigger | `BbSelect` / `BbSelectPopover` | Groups | `BbTable` | Dropdown pipeline group |
|
|
49
|
+
| ---------------------------------- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------- | ----------------------------- | ---------------------------------- |
|
|
50
|
+
| Initial load | `(query, true, modelValue)` — see `prefill` prop below | `(true, modelValue)` on mount | `(true, selected)` on mount | `(true, modelValue)` on first open |
|
|
51
|
+
| User types in the search field | `(query, false, modelValue)`, debounced `query-debounce-time` (default 500ms) | — | — | — |
|
|
52
|
+
| `dependencies` (or `items`) change | `(query, true, modelValue)`, debounced `deps-debounce-time` | `(true, modelValue)`, debounced | `(true, selected)`, debounced | `(true, modelValue)`, debounced |
|
|
53
|
+
| External `modelValue` change | `(query, true, modelValue)` — only when the value is incoherent, debounced `model-value-debounce-time` | `(true, modelValue)` — only when incoherent | — | — |
|
|
54
|
+
|
|
55
|
+
**`prefill === false` means exactly one thing, everywhere: _the user typed_.** Every fetch a component starts itself — mount/first-open load, dependency change, coherence refetch — passes `true`, and expects the current selection to stay resolvable in the response. Components without a search field (groups, `BbTable`, dropdown groups) therefore always pass `true`; the argument is in their signature so one provider can be shared with a `BbSelect` and branch identically.
|
|
56
|
+
|
|
57
|
+
The corollary: **`prefill` cannot tell you an initial load from a dependency refetch.** If a provider must reconcile the selection against a new result set, do it on every call (your provider closes over the filter, so it already knows what it is fetching) — see the `BbTable` pattern below. A dropdown group the user never opens still never fetches.
|
|
58
|
+
|
|
59
|
+
### The `prefill` prop (`BbSelect` / `BbSelectPopover`)
|
|
60
|
+
|
|
61
|
+
`prefill` controls **when** the initial load happens: `'interaction'` (default) waits for the first user interaction, `true` loads on mount (SSR-friendly — it also runs in `onServerPrefetch`), `false` is **search-first** — nothing loads until the user types, so opening the panel fetches nothing and the list shows a "search to begin" hint until the first query. Groups and tables always load on mount.
|
|
62
|
+
|
|
63
|
+
Reach for `false` when the result set is too large or expensive to browse and the query is the only sensible entry point. Note that `false` and `'interaction'` differ **only** on this point: both skip the mount load, but `'interaction'` fetches on open and `false` waits for a query.
|
|
64
|
+
|
|
65
|
+
Four cases ignore `prefill` and load anyway, because deferring would buy nothing or break a promise you made:
|
|
66
|
+
|
|
67
|
+
- **`items` is an array** — there is no request to defer, so the selection resolves on mount and coherence can run immediately.
|
|
68
|
+
- **`enforce-coherence` over a non-empty model** — validating a value is impossible without options. An empty model stays lazy (empty is always coherent).
|
|
69
|
+
- **`false` + writing disabled** — `disable-writing` hides the search field, so a search-first load could never be triggered. Falls back to loading on open.
|
|
70
|
+
- **`false` + a non-empty model** — the selection's text has to resolve to render. Falls back to loading (on mount for `BbSelect`, per the upgrade below).
|
|
71
|
+
|
|
72
|
+
`BbSelect` additionally upgrades any non-empty model to an immediate prefill so the in-field selection can render its text. A standalone `BbSelectPopover` does **not**: with a _provider_ and no `enforce-coherence`, a seeded model stays lazy and resolves on first open. Don't reach for `prefill: true` to fix that — the trigger is yours, so label it from your own state ([BbSelectPopover guide](../BbSelectPopover.md)).
|
|
73
|
+
|
|
74
|
+
## Runtime guarantees
|
|
75
|
+
|
|
76
|
+
- **Race protection**: out-of-order responses are discarded — only the latest request may write `items`.
|
|
77
|
+
- **Loading**: the component tracks in-flight requests itself; don't add your own `loading` ref for option fetching.
|
|
78
|
+
- **Errors**: a rejected provider is logged (`console.error`) and the previous items are kept. Surface fetch failures yourself (e.g. `useToast`) if the user must know.
|
|
79
|
+
- **Dependency comparison is value-based** (hashed), not reference-based — `:dependencies="[filters]"` re-fetches only when the content actually changes, no matter how often the array identity does.
|
|
80
|
+
|
|
81
|
+
## Canonical provider patterns
|
|
82
|
+
|
|
83
|
+
Query components — branch explicitly and return the **same item shape** from every path:
|
|
84
|
+
|
|
85
|
+
```ts
|
|
86
|
+
const searchMembers = async (
|
|
87
|
+
query: string,
|
|
88
|
+
prefill: boolean,
|
|
89
|
+
modelValue: string[]
|
|
90
|
+
): Promise<Member[]> => {
|
|
91
|
+
// Component-initiated: keep the current selection resolvable.
|
|
92
|
+
if (prefill && modelValue.length) {
|
|
93
|
+
return api.members.byIds(modelValue);
|
|
94
|
+
}
|
|
95
|
+
if (!query.trim()) return []; // project-defined idle behavior
|
|
96
|
+
return api.members.search({ query });
|
|
97
|
+
};
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Non-query components (groups, `BbTable`, dropdown groups) — same shape minus `query`, selection-aware. `prefill` is always `true` here; it exists so the provider can be shared with a select:
|
|
101
|
+
|
|
102
|
+
```ts
|
|
103
|
+
const fetchRoles = (_prefill: boolean, selected?: string[]) =>
|
|
104
|
+
api.roles.list({ selectedIds: selected });
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
`BbTable` has no `enforce-coherence`, so reconciling a selection against a refetched result set is the provider's job. Do it unconditionally — `prefill` won't tell you a refetch from the initial load, and the provider already closes over the filter that changed:
|
|
108
|
+
|
|
109
|
+
```ts
|
|
110
|
+
const fetchMembers = async (_prefill: boolean, selectedIds?: string[]) => {
|
|
111
|
+
const rows = await api.members.list({ role: role.value });
|
|
112
|
+
if (selectedIds?.length) {
|
|
113
|
+
selected.value = selectedIds.filter((id) => rows.some((r) => r.id === id));
|
|
114
|
+
}
|
|
115
|
+
return rows;
|
|
116
|
+
};
|
|
117
|
+
// <BbTable v-model="selected" :items="fetchMembers" :dependencies="[role]" ... />
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
`BbTable` on a server-driven screen — forward the page state and refetch via `dependencies` (never a manual `watch`):
|
|
121
|
+
|
|
122
|
+
```ts
|
|
123
|
+
const fetchInvoices = async (): Promise<Invoice[]> => {
|
|
124
|
+
const res = await api.invoices.list({
|
|
125
|
+
search: search.value,
|
|
126
|
+
status: status.value,
|
|
127
|
+
orderBy: sort.value, // the v-model:sort array, forwarded as-is
|
|
128
|
+
page: page.value,
|
|
129
|
+
});
|
|
130
|
+
totalItems.value = res.total;
|
|
131
|
+
return res.data;
|
|
132
|
+
};
|
|
133
|
+
// <BbTable :items="fetchInvoices" :dependencies="[search, status, sort, page]" ... />
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Idle-state decisions (query components)
|
|
137
|
+
|
|
138
|
+
- **Empty query, nothing selected**: return `[]` (explicit empty state) or a default/sample list (guided discovery). Pick one per app and keep it deterministic.
|
|
139
|
+
- **Empty query, values selected**: return at least the selected items (alone or merged with a default list) so the selection is never orphaned. Enabling `stash` on the select keeps already-picked options resolvable across searches without re-including them in every response.
|
|
140
|
+
- Fill the panel states with `loading-text` / `no-data-text` (or the `#loading` / `#no-data` slots).
|
|
141
|
+
|
|
142
|
+
## What's idiomatic now
|
|
143
|
+
|
|
144
|
+
- The `prefill` flag means the same thing in every family: `false` only when the user typed. It is **not** "initial load" — a dependency refetch also passes `true`, so never use it to detect one (see the call matrix).
|
|
145
|
+
- Seed multiple-mode `v-model`s with arrays before wiring a provider — multiple components throw on non-array models ([details](./options-items-playbook.md)).
|
|
146
|
+
- Coherence work belongs to `dependencies` + `enforce-coherence`, not to defensive code inside the provider. Coherence is **lazy**: a component that has not loaded once (an untouched `prefill: 'interaction'` select, an un-searched `prefill: false` one, a never-opened dropdown group) ignores dependency changes until it does — don't duplicate it with eager watchers ([details](./coherence-playbook.md)). Any first load ends the quiet period, including a user's first search.
|
|
147
|
+
|
|
148
|
+
## Anti-patterns
|
|
149
|
+
|
|
150
|
+
- Ad-hoc `watch(filter, refetch)` when `dependencies` already covers it.
|
|
151
|
+
- Different item shapes across the prefill/search/idle branches.
|
|
152
|
+
- Side effects in the provider beyond the fetch itself (navigation, toasts on success, state writes other than pagination totals).
|
|
153
|
+
- Hand-rolled debouncing around the provider — use `query-debounce-time` / `deps-debounce-time` / `model-value-debounce-time`.
|
|
154
|
+
|
|
155
|
+
## Validation checklist
|
|
156
|
+
|
|
157
|
+
- [ ] Provider signature matches the component family (query vs non-query vs dropdown).
|
|
158
|
+
- [ ] `prefill` and the empty query are handled explicitly, with the family's semantics.
|
|
159
|
+
- [ ] All branches return the same item shape.
|
|
160
|
+
- [ ] Field-tied fetching uses `dependencies` (+ `deps-debounce-time`), no manual watchers.
|
|
161
|
+
- [ ] Selected values stay resolvable on component-initiated calls (or `stash` is enabled on selects).
|