bitboss-ui 3.0.0-beta.64 → 3.0.0-beta.66
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +78 -16
- package/bin/bitboss-ui-mcp.mjs +8 -8
- package/bin/bitboss-ui.mjs +73 -12
- package/dist/ai/BbAccordion.md +4 -3
- package/dist/ai/BbAlert.md +1 -1
- package/dist/ai/BbBadge.md +1 -0
- package/dist/ai/BbBadgeButton.md +4 -3
- package/dist/ai/BbBaseButton.md +25 -20
- package/dist/ai/BbBaseCheckboxIcon.md +1 -0
- package/dist/ai/BbBaseRadioIcon.md +1 -0
- package/dist/ai/BbBaseSwitchIcon.md +1 -0
- package/dist/ai/BbBreadcrumbs.md +8 -0
- package/dist/ai/BbButton.md +67 -21
- package/dist/ai/BbCalendar.md +56 -3
- package/dist/ai/BbCheckbox.md +1 -1
- package/dist/ai/BbCheckboxGroup.md +44 -8
- package/dist/ai/BbColorInput.md +3 -2
- package/dist/ai/BbColorPalette.md +7 -3
- package/dist/ai/BbConfirm.md +36 -80
- package/dist/ai/BbConfirmPortal.md +1 -1
- package/dist/ai/BbDatePicker.md +41 -5
- package/dist/ai/BbDatePickerInput.md +38 -6
- package/dist/ai/BbDialog.md +63 -58
- package/dist/ai/BbDropdown.md +25 -24
- package/dist/ai/BbDropdownButton.md +5 -12
- package/dist/ai/BbDropzone.md +2 -3
- package/dist/ai/BbForm.md +66 -42
- package/dist/ai/BbHost.md +29 -41
- package/dist/ai/BbIcon.md +3 -0
- package/dist/ai/BbNumberInput.md +2 -2
- package/dist/ai/BbOffCanvas.md +16 -9
- package/dist/ai/BbPagination.md +17 -17
- package/dist/ai/BbPopover.md +8 -3
- package/dist/ai/BbPtScope.md +5 -5
- package/dist/ai/BbRadio.md +1 -1
- package/dist/ai/BbRadioGroup.md +44 -7
- package/dist/ai/BbRating.md +1 -0
- package/dist/ai/BbSelect.md +146 -21
- package/dist/ai/BbSelectPopover.md +16 -12
- package/dist/ai/BbSlider.md +5 -3
- package/dist/ai/BbSwitch.md +1 -1
- package/dist/ai/BbTable.md +51 -39
- package/dist/ai/BbTabs.md +127 -63
- package/dist/ai/BbTabsList.md +4 -2
- package/dist/ai/BbTabsPanels.md +3 -1
- package/dist/ai/BbTabsRoot.md +4 -4
- package/dist/ai/BbTag.md +2 -2
- package/dist/ai/BbTextInput.md +23 -9
- package/dist/ai/BbTextarea.md +3 -3
- package/dist/ai/BbTimePicker.md +5 -4
- package/dist/ai/BbTimePickerInput.md +3 -3
- package/dist/ai/BbToast.md +33 -87
- package/dist/ai/BbToastPortal.md +1 -1
- package/dist/ai/CommonFieldInput.md +2 -1
- package/dist/ai/FlatListBox.md +1 -1
- package/dist/ai/GroupedListBox.md +1 -1
- package/dist/ai/ListBox.md +1 -1
- package/dist/ai/OptionsContainer.md +1 -1
- package/dist/ai/changelog.json +444 -4
- package/dist/ai/components.json +87 -83
- package/dist/ai/composables/useBbConfig.md +8 -1
- package/dist/ai/composables/{useBbDialogContext.md → useBbDialog.md} +18 -18
- package/dist/ai/composables/{useBbDropdownContext.md → useBbDropdown.md} +31 -31
- package/dist/ai/composables/{useBbFormContext.md → useBbForm.md} +11 -11
- package/dist/ai/composables/useBbFormField.md +2 -2
- package/dist/ai/composables/{useBbOffCanvasContext.md → useBbOffCanvas.md} +13 -13
- package/dist/ai/composables/{useBbTableContext.md → useBbTable.md} +20 -20
- package/dist/ai/composables/{useBbTabsContext.md → useBbTabs.md} +12 -12
- package/dist/ai/composables/useConfirm.md +42 -54
- package/dist/ai/composables/useToast.md +9 -26
- package/dist/ai/guides/agent-contract.md +57 -43
- package/dist/ai/guides/ai-router.md +1 -1
- package/dist/ai/guides/app-layout.md +32 -23
- package/dist/ai/guides/coherence-playbook.md +4 -2
- package/dist/ai/guides/component-picker.md +35 -32
- package/dist/ai/guides/design-language.md +26 -12
- package/dist/ai/guides/design-tokens.md +73 -32
- package/dist/ai/guides/eslint-rules.md +8 -4
- package/dist/ai/guides/fetch-items-playbook.md +3 -3
- package/dist/ai/guides/floating-bottom-panel.md +1 -1
- package/dist/ai/guides/inertia-helpers.md +1640 -337
- package/dist/ai/guides/installation-and-plugin-setup.md +6 -3
- package/dist/ai/guides/migration/adoption-checklist.md +44 -2
- package/dist/ai/guides/migration/components/bb-dialog.md +13 -13
- package/dist/ai/guides/migration/components/bb-dropdown.md +16 -16
- package/dist/ai/guides/migration/components/bb-host.md +15 -14
- package/dist/ai/guides/migration/components/bb-offcanvas.md +10 -10
- package/dist/ai/guides/migration/components/bb-pagination.md +9 -9
- package/dist/ai/guides/migration/components/bb-select.md +1 -1
- package/dist/ai/guides/migration/components/bb-table.md +12 -12
- package/dist/ai/guides/migration/components/bb-tabs.md +1 -1
- package/dist/ai/guides/migration/from-async-validator.md +9 -9
- package/dist/ai/guides/migration/v2-to-v3.md +206 -13
- package/dist/ai/guides/options-items-playbook.md +2 -2
- package/dist/ai/guides/page-shell.md +15 -3
- package/dist/ai/guides/passthrough.md +13 -7
- package/dist/ai/guides/preset-components.md +102 -43
- package/dist/ai/guides/typescript-generic-components.md +21 -5
- package/dist/ai/guides/validated-forms.md +20 -11
- package/dist/ai/guides/validation-providers.md +3 -3
- package/dist/ai/helpers/definePreset.json +11 -4
- package/dist/ai/helpers/definePreset.ts +98 -41
- package/dist/ai/helpers/inertia/manifest.json +332 -91
- package/dist/ai/helpers/inertia/messages.ts +33 -0
- package/dist/ai/helpers/inertia/useConfirmOnRouteLeave.ts +133 -21
- package/dist/ai/helpers/inertia/useHasChanged.ts +34 -16
- package/dist/ai/helpers/inertia/useLazyProp.ts +102 -36
- package/dist/ai/helpers/inertia/useLazyPropGetter.ts +3 -1
- package/dist/ai/helpers/inertia/usePaginatedResponseContext.ts +129 -24
- package/dist/ai/helpers/inertia/usePromiseForm.ts +38 -44
- package/dist/ai/helpers/inertia/usePromiseRouter.ts +295 -0
- package/dist/ai/helpers/inertia/useQuery.ts +133 -11
- package/dist/ai/helpers/inertia/useQueryObject.ts +104 -66
- package/dist/ai/helpers/inertia/useResourceContext.ts +60 -14
- package/dist/ai/helpers/inertia/useRouteQuery.ts +57 -33
- package/dist/ai/helpers/inertia/useScreenSizes.ts +9 -7
- package/dist/ai/helpers/inertia/useTableContext.ts +5 -2
- package/dist/ai/helpers/inertia/utils.ts +57 -0
- package/dist/ai/index.md +15 -15
- package/dist/ai/manifest/common.json +2 -1
- package/dist/ai/manifest/components/BbAccordion.tree.json +3 -1
- package/dist/ai/manifest/components/BbAlert.json +1 -1
- package/dist/ai/manifest/components/BbBadge.tree.json +3 -1
- package/dist/ai/manifest/components/BbBadgeButton.json +9 -4
- package/dist/ai/manifest/components/BbBadgeButton.tree.json +1 -0
- package/dist/ai/manifest/components/BbBaseButton.json +9 -4
- package/dist/ai/manifest/components/BbBaseCheckboxIcon.tree.json +3 -1
- package/dist/ai/manifest/components/BbBaseRadioIcon.tree.json +3 -1
- package/dist/ai/manifest/components/BbBaseSwitchIcon.tree.json +3 -1
- package/dist/ai/manifest/components/BbBreadcrumbs.tree.json +7 -3
- package/dist/ai/manifest/components/BbButton.json +9 -4
- package/dist/ai/manifest/components/BbButton.tree.json +5 -3
- package/dist/ai/manifest/components/BbCalendar.json +4 -3
- package/dist/ai/manifest/components/BbCalendar.tree.json +10 -1
- package/dist/ai/manifest/components/BbCheckbox.json +1 -1
- package/dist/ai/manifest/components/BbCheckbox.tree.json +1 -1
- package/dist/ai/manifest/components/BbCheckboxGroup.json +1 -1
- package/dist/ai/manifest/components/BbCheckboxGroup.tree.json +62 -3
- package/dist/ai/manifest/components/BbCollapsible.json +4 -1
- package/dist/ai/manifest/components/BbColorInput.json +1 -1
- package/dist/ai/manifest/components/BbColorInput.tree.json +5 -3
- package/dist/ai/manifest/components/BbColorPalette.json +3 -0
- package/dist/ai/manifest/components/BbColorPalette.tree.json +7 -2
- package/dist/ai/manifest/components/BbConfirm.tree.json +2 -2
- package/dist/ai/manifest/components/BbDatePicker.json +7 -3
- package/dist/ai/manifest/components/BbDatePicker.tree.json +3 -4
- package/dist/ai/manifest/components/BbDatePickerInput.json +4 -3
- package/dist/ai/manifest/components/BbDatePickerInput.tree.json +5 -3
- package/dist/ai/manifest/components/BbDialog.json +1 -1
- package/dist/ai/manifest/components/BbDialog.tree.json +2 -2
- package/dist/ai/manifest/components/BbDropdown.json +3 -3
- package/dist/ai/manifest/components/BbDropdown.tree.json +2 -2
- package/dist/ai/manifest/components/BbDropdownButton.json +11 -6
- package/dist/ai/manifest/components/BbDropdownButton.tree.json +2 -3
- package/dist/ai/manifest/components/BbDropzone.json +4 -1
- package/dist/ai/manifest/components/BbForm.json +2 -2
- package/dist/ai/manifest/components/BbHost.json +1 -1
- package/dist/ai/manifest/components/BbHost.tree.json +1 -1
- package/dist/ai/manifest/components/BbHoverCard.json +1 -1
- package/dist/ai/manifest/components/BbNumberInput.json +1 -1
- package/dist/ai/manifest/components/BbNumberInput.tree.json +1 -1
- package/dist/ai/manifest/components/BbOffCanvas.json +1 -1
- package/dist/ai/manifest/components/BbOffCanvas.tree.json +3 -1
- package/dist/ai/manifest/components/BbPagination.json +4 -4
- package/dist/ai/manifest/components/BbPagination.tree.json +2 -1
- package/dist/ai/manifest/components/BbPopover.json +1 -1
- package/dist/ai/manifest/components/BbPopover.tree.json +1 -1
- package/dist/ai/manifest/components/BbProgress.json +4 -1
- package/dist/ai/manifest/components/BbRadio.json +1 -1
- package/dist/ai/manifest/components/BbRadio.tree.json +1 -1
- package/dist/ai/manifest/components/BbRadioGroup.json +5 -5
- package/dist/ai/manifest/components/BbRadioGroup.tree.json +62 -3
- package/dist/ai/manifest/components/BbRating.tree.json +3 -1
- package/dist/ai/manifest/components/BbSelect.json +5 -5
- package/dist/ai/manifest/components/BbSelect.tree.json +3 -3
- package/dist/ai/manifest/components/BbSelectPopover.json +7 -3
- package/dist/ai/manifest/components/BbSelectPopover.tree.json +2 -2
- package/dist/ai/manifest/components/BbSlider.json +3 -3
- package/dist/ai/manifest/components/BbSlider.tree.json +3 -0
- package/dist/ai/manifest/components/BbSmoothHeight.json +4 -1
- package/dist/ai/manifest/components/BbSwitch.json +1 -1
- package/dist/ai/manifest/components/BbSwitch.tree.json +1 -1
- package/dist/ai/manifest/components/BbSwitchGroup.tree.json +1 -1
- package/dist/ai/manifest/components/BbTable.json +6 -2
- package/dist/ai/manifest/components/BbTable.tree.json +4 -1
- package/dist/ai/manifest/components/BbTabs.json +9 -12
- package/dist/ai/manifest/components/BbTabs.tree.json +4 -1
- package/dist/ai/manifest/components/BbTabsList.json +4 -7
- package/dist/ai/manifest/components/BbTabsList.tree.json +4 -1
- package/dist/ai/manifest/components/BbTabsPanels.json +1 -1
- package/dist/ai/manifest/components/BbTabsPanels.tree.json +4 -1
- package/dist/ai/manifest/components/BbTabsRoot.json +5 -5
- package/dist/ai/manifest/components/BbTag.json +1 -1
- package/dist/ai/manifest/components/BbTag.tree.json +2 -2
- package/dist/ai/manifest/components/BbTextInput.json +4 -4
- package/dist/ai/manifest/components/BbTextInput.tree.json +1 -1
- package/dist/ai/manifest/components/BbTextarea.json +2 -2
- package/dist/ai/manifest/components/BbTextarea.tree.json +1 -1
- package/dist/ai/manifest/components/BbTimePicker.json +4 -1
- package/dist/ai/manifest/components/BbTimePicker.tree.json +5 -3
- package/dist/ai/manifest/components/BbTimePickerInput.json +2 -2
- package/dist/ai/manifest/components/BbTimePickerInput.tree.json +5 -3
- package/dist/ai/manifest/components/BbToast.json +1 -1
- package/dist/ai/manifest/components/BbToast.tree.json +3 -1
- package/dist/ai/manifest/components/BbTooltip.json +3 -0
- package/dist/ai/manifest/components/ChipsBox.tree.json +1 -1
- package/dist/ai/manifest/components/CommonField.tree.json +1 -0
- package/dist/ai/manifest/components/CommonFieldInput.tree.json +4 -2
- package/dist/ai/manifest/components/CommonTimeSelector.tree.json +1 -0
- package/dist/ai/manifest/components/FlatListBox.json +1 -1
- package/dist/ai/manifest/components/GroupedListBox.json +1 -1
- package/dist/ai/manifest/components/ListBox.json +1 -1
- package/dist/ai/manifest/components/OptionsContainer.json +2 -2
- package/dist/ai/manifest/index.json +3 -3
- package/dist/ai/manifest/meta.json +31 -16
- package/dist/ai/manifest/types.advanced.json +15 -11
- package/dist/ai/manifest/types.api.json +2 -2
- package/dist/ai/recipes/inertia/approvals-inbox.md +87 -116
- package/dist/ai/recipes/inertia/inline-edit-workspace.md +113 -121
- package/dist/ai/recipes/inertia/layout-scaffold.md +15 -4
- package/dist/ai/recipes/inertia/onboarding.md +76 -58
- package/dist/ai/recipes/inertia/ownership-atlas.md +75 -106
- package/dist/ai/recipes/inertia/record-form.md +18 -7
- package/dist/ai/recipes/inertia/records-workspace.md +107 -128
- package/dist/ai/recipes/inertia/settings-workspace.md +131 -73
- package/dist/ai/recipes/inertia/upload-center.md +98 -122
- package/dist/ai/recipes/inertia/wizard-form.md +25 -15
- package/dist/ai/recipes/nuxt/approvals-inbox.md +67 -48
- package/dist/ai/recipes/nuxt/inline-edit-workspace.md +73 -58
- package/dist/ai/recipes/nuxt/layout-scaffold.md +15 -4
- package/dist/ai/recipes/nuxt/onboarding.md +27 -10
- package/dist/ai/recipes/nuxt/ownership-atlas.md +40 -22
- package/dist/ai/recipes/nuxt/record-form.md +20 -7
- package/dist/ai/recipes/nuxt/records-workspace.md +120 -96
- package/dist/ai/recipes/nuxt/settings-workspace.md +36 -23
- package/dist/ai/recipes/nuxt/upload-center.md +63 -37
- package/dist/ai/recipes/nuxt/wizard-form.md +28 -16
- package/dist/ai/recipes/vue/approvals-inbox.md +74 -46
- package/dist/ai/recipes/vue/inline-edit-workspace.md +83 -56
- package/dist/ai/recipes/vue/layout-scaffold.md +15 -4
- package/dist/ai/recipes/vue/onboarding.md +27 -10
- package/dist/ai/recipes/vue/ownership-atlas.md +40 -22
- package/dist/ai/recipes/vue/record-form.md +20 -7
- package/dist/ai/recipes/vue/records-workspace.md +132 -95
- package/dist/ai/recipes/vue/settings-workspace.md +36 -23
- package/dist/ai/recipes/vue/upload-center.md +73 -37
- package/dist/ai/recipes/vue/wizard-form.md +28 -16
- package/dist/ai/source/BbAccordion.md +36 -6
- package/dist/ai/source/BbAlert.md +11 -5
- package/dist/ai/source/BbAsterisk.md +4 -1
- package/dist/ai/source/BbAvatar.md +11 -5
- package/dist/ai/source/BbBadge.md +42 -11
- package/dist/ai/source/BbBadgeButton.md +41 -8
- package/dist/ai/source/BbBaseButton.md +57 -15
- package/dist/ai/source/BbBaseCheckboxIcon.md +37 -13
- package/dist/ai/source/BbBaseRadioIcon.md +32 -9
- package/dist/ai/source/BbBaseSwitchIcon.md +31 -7
- package/dist/ai/source/BbBreadcrumbs.md +32 -9
- package/dist/ai/source/BbButton.md +91 -27
- package/dist/ai/source/BbCalendar.md +571 -300
- package/dist/ai/source/BbCheckbox.md +18 -7
- package/dist/ai/source/BbCheckboxGroup.md +16 -5
- package/dist/ai/source/BbCollapsible.md +15 -6
- package/dist/ai/source/BbColorInput.md +68 -20
- package/dist/ai/source/BbColorPalette.md +107 -23
- package/dist/ai/source/BbConfirmPortal.md +1 -1
- package/dist/ai/source/BbDatePicker.md +106 -25
- package/dist/ai/source/BbDatePickerInput.md +105 -42
- package/dist/ai/source/BbDialog.md +60 -44
- package/dist/ai/source/BbDropdown.md +44 -32
- package/dist/ai/source/BbDropdownButton.md +26 -20
- package/dist/ai/source/BbDropdownGroup.md +5 -5
- package/dist/ai/source/BbDropzone.md +53 -16
- package/dist/ai/source/BbForm.md +18 -7
- package/dist/ai/source/BbHost.md +25 -12
- package/dist/ai/source/BbHoverCard.md +20 -9
- package/dist/ai/source/BbIcon.md +9 -3
- package/dist/ai/source/BbIndicator.md +11 -4
- package/dist/ai/source/BbNumberInput.md +23 -6
- package/dist/ai/source/BbOffCanvas.md +73 -32
- package/dist/ai/source/BbPagination.md +59 -31
- package/dist/ai/source/BbPopover.md +28 -16
- package/dist/ai/source/BbProgress.md +13 -5
- package/dist/ai/source/BbRadio.md +16 -9
- package/dist/ai/source/BbRadioGroup.md +15 -4
- package/dist/ai/source/BbRating.md +51 -10
- package/dist/ai/source/BbSelect.md +56 -27
- package/dist/ai/source/BbSelectPopover.md +106 -36
- package/dist/ai/source/BbSlider.md +111 -33
- package/dist/ai/source/BbSmoothHeight.md +16 -7
- package/dist/ai/source/BbSpinner.md +9 -3
- package/dist/ai/source/BbSwitch.md +16 -9
- package/dist/ai/source/BbSwitchGroup.md +18 -7
- package/dist/ai/source/BbTable.md +172 -38
- package/dist/ai/source/BbTabs.md +58 -40
- package/dist/ai/source/BbTabsList.md +109 -50
- package/dist/ai/source/BbTabsPanels.md +65 -31
- package/dist/ai/source/BbTabsRoot.md +35 -24
- package/dist/ai/source/BbTag.md +18 -4
- package/dist/ai/source/BbTextInput.md +20 -3
- package/dist/ai/source/BbTextarea.md +15 -1
- package/dist/ai/source/BbTimePicker.md +81 -21
- package/dist/ai/source/BbTimePickerInput.md +63 -15
- package/dist/ai/source/BbToast.md +20 -3
- package/dist/ai/source/BbToastPortal.md +21 -4
- package/dist/ai/source/BbTooltip.md +16 -8
- package/dist/ai/source/BbTree.md +10 -3
- package/dist/ai/source/ClearableButton.md +5 -1
- package/dist/ai/source/CommonField.md +65 -9
- package/dist/ai/source/CommonFieldInput.md +61 -27
- package/dist/ai/source/CommonPopover.md +17 -6
- package/dist/ai/source/CommonTimeSelector.md +21 -2
- package/dist/ai/source/ErrorIcon.md +4 -0
- package/dist/ai/source/ListBox.md +9 -1
- package/dist/ai/source/OptionsContainer.md +5 -1
- package/dist/ai/source/WarningIcon.md +4 -0
- package/dist/components/BbAccordion/BbAccordion.vue.d.ts +2 -1
- package/dist/components/BbAccordion/BbAccordion.vue_vue_type_script_setup_true_lang.js +6 -6
- package/dist/components/BbAlert/BbAlert.vue.d.ts +2 -1
- package/dist/components/BbAlert/BbAlert.vue_vue_type_script_setup_true_lang.js +10 -10
- package/dist/components/BbAsterisk/BbAsterisk.vue.d.ts +3 -1
- package/dist/components/BbAvatar/BbAvatar.vue.d.ts +3 -1
- package/dist/components/BbAvatar/BbAvatar.vue_vue_type_script_setup_true_lang.js +7 -7
- package/dist/components/BbBadge/BbBadge.vue.d.ts +5 -3
- package/dist/components/BbBadge/BbBadge.vue_vue_type_script_setup_true_lang.js +7 -7
- package/dist/components/BbBadge/BbBadgeButton.vue.d.ts +3 -1
- package/dist/components/BbBadge/BbBadgeButton.vue_vue_type_script_setup_true_lang.js +7 -7
- package/dist/components/BbBaseButton/BbBaseButton.vue.d.ts +3 -1
- package/dist/components/BbBaseButton/BbBaseButton.vue_vue_type_script_setup_true_lang.js +85 -85
- package/dist/components/BbBaseButton/types.d.ts +8 -5
- package/dist/components/BbBaseButton/useLinkState.d.ts +2 -0
- package/dist/components/BbBaseButton/useLinkState.js +21 -20
- package/dist/components/BbBaseCheckboxIcon/BbBaseCheckboxIcon.vue.d.ts +3 -1
- package/dist/components/BbBaseRadioIcon/BbBaseRadioIcon.vue.d.ts +3 -1
- package/dist/components/BbBaseSwitchIcon/BbBaseSwitchIcon.vue.d.ts +3 -1
- package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue.d.ts +3 -1
- package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue_vue_type_script_setup_true_lang.js +7 -7
- package/dist/components/BbButton/BbButton.vue.d.ts +2 -1
- package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +93 -93
- package/dist/components/BbButton/types.d.ts +7 -4
- package/dist/components/BbCalendar/BbCalendar.vue.d.ts +157 -30
- package/dist/components/BbCalendar/BbCalendar.vue_vue_type_script_setup_true_lang.js +364 -331
- package/dist/components/BbCalendar/CalendarMonthPanel.vue_vue_type_script_setup_true_lang.js +5 -5
- package/dist/components/BbCalendar/types.d.ts +36 -8
- package/dist/components/BbCalendar/useCalendarGrid.d.ts +133 -0
- package/dist/components/BbCalendar/useCalendarGrid.js +193 -183
- package/dist/components/BbCalendar/useDayGrid.d.ts +24 -19
- package/dist/components/BbCalendar/useDayGrid.js +105 -102
- package/dist/components/BbCheckbox/BbCheckbox.vue.d.ts +4 -2
- package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue.d.ts +327 -2
- package/dist/components/BbCollapsible/BbCollapsible.vue.d.ts +3 -1
- package/dist/components/BbCollapsible/BbCollapsible.vue_vue_type_script_setup_true_lang.js +6 -6
- package/dist/components/BbColorInput/BbColorInput.vue.d.ts +8 -5
- package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +5 -5
- package/dist/components/BbColorInput/types.d.ts +2 -0
- package/dist/components/BbColorPalette/BbColorPalette.vue.d.ts +7 -5
- package/dist/components/BbColorPalette/BbColorPalette.vue_vue_type_script_setup_true_lang.js +216 -215
- package/dist/components/BbConfirm/BbConfirm.vue_vue_type_script_setup_true_lang.js +25 -25
- package/dist/components/BbDatePicker/BbDatePicker.vue.d.ts +206 -41
- package/dist/components/BbDatePicker/BbDatePicker.vue_vue_type_script_setup_true_lang.js +112 -106
- package/dist/components/BbDatePicker/types.d.ts +27 -8
- package/dist/components/BbDatePickerInput/BbDatePickerInput.vue.d.ts +519 -37
- package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +11 -8
- package/dist/components/BbDatePickerInput/types.d.ts +31 -9
- package/dist/components/BbDialog/BbDialog.vue.d.ts +6 -5
- package/dist/components/BbDialog/BbDialog.vue_vue_type_script_setup_true_lang.js +231 -233
- package/dist/components/BbDialog/types.d.ts +7 -7
- package/dist/components/BbDialog/useDialogStack.d.ts +2 -0
- package/dist/components/BbDialog/useDialogStack.js +6 -2
- package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +25 -25
- package/dist/components/BbDropdown/BbDropdown.vue.d.ts +8 -6
- package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +226 -225
- package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +49 -49
- package/dist/components/BbDropdown/DropdownPipelineResolver.vue_vue_type_script_setup_true_lang.js +7 -7
- package/dist/components/BbDropdown/normalizeGroups.js +14 -14
- package/dist/components/BbDropdown/types.d.ts +5 -5
- package/dist/components/BbDropdown/useDropdownContext.js +1 -1
- package/dist/components/BbDropdown/useDropdownGroupRegistry.d.ts +1 -1
- package/dist/components/BbDropdownButton/BbDropdownButton.vue.d.ts +6 -4
- package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +36 -38
- package/dist/components/BbDropdownButton/types.js +4 -4
- package/dist/components/BbDropzone/BbDropzone.vue.d.ts +57 -22
- package/dist/components/BbDropzone/BbDropzone.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/components/BbDropzone/types.d.ts +16 -4
- package/dist/components/BbForm/BbForm.vue.d.ts +52 -4
- package/dist/components/BbForm/BbForm.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/BbHost/BbHost.vue_vue_type_script_setup_true_lang.js +19 -23
- package/dist/components/BbHost/BbHostOpening.js +1 -1
- package/dist/components/BbHoverCard/BbHoverCard.vue.d.ts +5 -4
- package/dist/components/BbHoverCard/BbHoverCard.vue_vue_type_script_setup_true_lang.js +116 -116
- package/dist/components/BbIcon/BbIcon.vue.d.ts +3 -1
- package/dist/components/BbIcon/BbIcon.vue_vue_type_script_setup_true_lang.js +7 -7
- package/dist/components/BbIndicator/BbIndicator.vue.d.ts +3 -1
- package/dist/components/BbNumberInput/BbNumberInput.vue.d.ts +6 -3
- package/dist/components/BbNumberInput/types.d.ts +2 -0
- package/dist/components/BbOffCanvas/BbOffCanvas.vue.d.ts +5 -4
- package/dist/components/BbOffCanvas/BbOffCanvas.vue_vue_type_script_setup_true_lang.js +366 -369
- package/dist/components/BbOffCanvas/sheetAttrs.d.ts +9 -0
- package/dist/components/BbOffCanvas/sheetAttrs.js +10 -0
- package/dist/components/BbOffCanvas/types.d.ts +7 -7
- package/dist/components/BbOffCanvas/useOffCanvasStack.d.ts +2 -0
- package/dist/components/BbOffCanvas/useOffCanvasStack.js +7 -3
- package/dist/components/BbPagination/BbPagination.vue.d.ts +2 -1
- package/dist/components/BbPagination/BbPagination.vue_vue_type_script_setup_true_lang.js +8 -8
- package/dist/components/BbPagination/types.d.ts +5 -5
- package/dist/components/BbPopover/BbPopover.vue.d.ts +5 -4
- package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +92 -91
- package/dist/components/BbProgress/BbProgress.vue.d.ts +6 -1
- package/dist/components/BbRadio/BbRadio.vue.d.ts +4 -2
- package/dist/components/BbRadioGroup/BbRadioGroup.vue.d.ts +281 -1
- package/dist/components/BbRating/BbRating.vue.d.ts +4 -2
- package/dist/components/BbRating/BbRating.vue_vue_type_script_setup_true_lang.js +7 -7
- package/dist/components/BbSelect/BbSelect.vue.d.ts +575 -4
- package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +7 -7
- package/dist/components/BbSelect/types.d.ts +12 -2
- package/dist/components/BbSelectPopover/BbSelectPopover.vue.d.ts +105 -3
- package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +695 -680
- package/dist/components/BbSelectPopover/types.d.ts +9 -1
- package/dist/components/BbSlider/BbSlider.vue.d.ts +135 -33
- package/dist/components/BbSlider/BbSlider.vue_vue_type_script_setup_true_lang.js +5 -5
- package/dist/components/BbSlider/types.d.ts +19 -4
- package/dist/components/BbSmoothHeight/BbSmoothHeight.vue.d.ts +3 -1
- package/dist/components/BbSpinner/BbSpinner.vue.d.ts +3 -1
- package/dist/components/BbSwitch/BbSwitch.vue.d.ts +4 -2
- package/dist/components/BbSwitchGroup/BbSwitchGroup.vue.d.ts +131 -1
- package/dist/components/BbTable/BbTable.vue.d.ts +5 -2
- package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +593 -578
- package/dist/components/BbTable/types.d.ts +14 -1
- package/dist/components/BbTable/utils.d.ts +2 -1
- package/dist/components/BbTable/utils.js +37 -38
- package/dist/components/BbTabs/BbTabs.vue.d.ts +96 -2
- package/dist/components/BbTabs/BbTabs.vue_vue_type_script_setup_true_lang.js +8 -6
- package/dist/components/BbTabs/BbTabsList.vue.d.ts +11 -1
- package/dist/components/BbTabs/BbTabsList.vue_vue_type_script_setup_true_lang.js +102 -92
- package/dist/components/BbTabs/BbTabsPanels.vue.d.ts +9 -1
- package/dist/components/BbTabs/BbTabsPanels.vue_vue_type_script_setup_true_lang.js +20 -17
- package/dist/components/BbTabs/BbTabsRoot.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/BbTabs/types.d.ts +34 -23
- package/dist/components/BbTag/BbTag.vue.d.ts +5 -2
- package/dist/components/BbTag/types.d.ts +2 -0
- package/dist/components/BbTextInput/BbTextInput.vue.d.ts +195 -2
- package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +5 -5
- package/dist/components/BbTextInput/types.d.ts +2 -0
- package/dist/components/BbTextarea/BbTextarea.vue.d.ts +193 -2
- package/dist/components/BbTextarea/types.d.ts +2 -0
- package/dist/components/BbTimePicker/BbTimePicker.vue.d.ts +78 -38
- package/dist/components/BbTimePicker/BbTimePicker.vue_vue_type_script_setup_true_lang.js +138 -137
- package/dist/components/BbTimePicker/types.d.ts +18 -4
- package/dist/components/BbTimePickerInput/BbTimePickerInput.vue.d.ts +272 -33
- package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +16 -16
- package/dist/components/BbTimePickerInput/types.d.ts +20 -5
- package/dist/components/BbToast/BbToastMessage.vue_vue_type_script_setup_true_lang.js +6 -6
- package/dist/components/BbToast/BbToastRegion.vue_vue_type_script_setup_true_lang.js +20 -20
- package/dist/components/BbTooltip/BbTooltip.vue.d.ts +3 -2
- package/dist/components/BbTooltip/BbTooltip.vue_vue_type_script_setup_true_lang.js +109 -109
- package/dist/components/BbTree/BbTree.vue.d.ts +1 -1
- package/dist/components/ClearableButton/ClearableButton.vue.d.ts +3 -1
- package/dist/components/CloseIcon/CloseButton.vue.d.ts +3 -1
- package/dist/components/CloseIcon/CloseButton.vue.js +1 -1
- package/dist/components/CommonField/CommonField.vue.d.ts +3 -1
- package/dist/components/CommonFieldInput/CommonFieldInput.vue.d.ts +5 -3
- package/dist/components/CommonPopover/CommonPopover.vue.d.ts +5 -4
- package/dist/components/CommonPopover/CommonPopover.vue_vue_type_script_setup_true_lang.js +55 -55
- package/dist/components/ErrorIcon/ErrorIcon.vue.d.ts +3 -1
- package/dist/components/FlatListBox/FlatListBox.vue_vue_type_script_setup_true_lang.js +124 -124
- package/dist/components/GroupedListBox/GroupedListBox.vue_vue_type_script_setup_true_lang.js +71 -71
- package/dist/components/ListBox/ListBox.vue.d.ts +1 -1
- package/dist/components/OptionsContainer/OptionsContainer.vue.d.ts +1 -1
- package/dist/components/OptionsContainer/OptionsContainer.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/components/Transitions/Slide.vue.d.ts +1 -1
- package/dist/components/WarningIcon/WarningIcon.vue.d.ts +3 -1
- package/dist/composables/autoHost.d.ts +22 -0
- package/dist/composables/autoHost.js +20 -0
- package/dist/composables/hostOpenings.d.ts +3 -3
- package/dist/composables/hostOpenings.js +1 -1
- package/dist/composables/hostRegistry.d.ts +10 -2
- package/dist/composables/hostRegistry.js +5 -3
- package/dist/composables/overlayRegistry.d.ts +1 -1
- package/dist/composables/overlayRegistry.js +2 -2
- package/dist/composables/useBbConfig.d.ts +1 -0
- package/dist/composables/useBbConfig.js +11 -7
- package/dist/composables/{useBbDialogContext.d.ts → useBbDialog.d.ts} +9 -9
- package/dist/composables/{useBbDialogContext.js → useBbDialog.js} +4 -4
- package/dist/composables/{useBbDropdownContext.d.ts → useBbDropdown.d.ts} +14 -14
- package/dist/composables/{useBbDropdownContext.js → useBbDropdown.js} +2 -2
- package/dist/composables/{useBbFormContext.d.ts → useBbForm.d.ts} +8 -8
- package/dist/composables/{useBbFormContext.js → useBbForm.js} +3 -3
- package/dist/composables/useBbOffCanvas.d.ts +23 -0
- package/dist/composables/{useBbOffCanvasContext.js → useBbOffCanvas.js} +3 -3
- package/dist/composables/{useBbTableContext.d.ts → useBbTable.d.ts} +29 -29
- package/dist/composables/{useBbTableContext.js → useBbTable.js} +2 -2
- package/dist/composables/{useBbTabsContext.d.ts → useBbTabs.d.ts} +19 -3
- package/dist/composables/useBbTabs.js +266 -0
- package/dist/composables/useConfirm.d.ts +6 -7
- package/dist/composables/useConfirm.js +1 -1
- package/dist/composables/useOnDemandOpener.d.ts +4 -4
- package/dist/composables/useOnDemandOpener.js +1 -1
- package/dist/composables/useToast.d.ts +4 -5
- package/dist/composables/useToast.js +1 -1
- package/dist/directives/bbDialog.d.ts +1 -1
- package/dist/directives/bbDropdown.js +3 -3
- package/dist/directives/bbOffCanvas.d.ts +1 -1
- package/dist/directives/overlayTrigger.js +18 -18
- package/dist/index.d.ts +15 -15
- package/dist/index.js +55 -55
- package/dist/llms-full.txt +5397 -2894
- package/dist/llms-medium.txt +127 -93
- package/dist/llms.txt +12 -12
- package/dist/nuxt-auto-imports.js +6 -6
- package/dist/nuxt.js +1 -1
- package/dist/plugin.js +30 -28
- package/dist/runtime/nuxt-plugin.js +30 -28
- package/dist/styles.css +2 -2
- package/dist/types/ShapeErased.d.ts +15 -0
- package/dist/types/fallthrough.d.ts +134 -0
- package/dist/utilities/functions/normalizeDateBound.d.ts +7 -5
- package/dist/utilities/functions/normalizeDateBound.js +9 -9
- package/dist/utils/versionCheck.js +1 -1
- package/llms.txt +12 -12
- package/package.json +3 -2
- package/scripts/lib/adoption-checklist.json +2 -1
- package/scripts/lib/css-class-surface.mjs +39 -3
- package/scripts/lib/eslint-disable.mjs +9 -1
- package/scripts/lib/eslint-plugin.d.ts +7 -1
- package/scripts/lib/eslint-plugin.mjs +280 -3
- package/scripts/lib/form-v-model.mjs +2 -2
- package/scripts/lib/helper-canon.mjs +34 -2
- package/scripts/lib/helpers-add.mjs +106 -15
- package/scripts/lib/hidden-label-placeholder.mjs +138 -0
- package/scripts/lib/html-attributes.mjs +82 -0
- package/scripts/lib/idiom-scan.mjs +175 -2
- package/scripts/lib/portal-names.mjs +3 -3
- package/scripts/lib/prefer-v-bb-dialog.mjs +1 -1
- package/scripts/lib/tab-links.mjs +209 -0
- package/scripts/lib/token-color-mix.mjs +114 -0
- package/scripts/lib/toolchain-check.mjs +34 -3
- package/scripts/lib/unstyled-variants.mjs +57 -0
- package/scripts/lib/validate-bb-markup.mjs +72 -1
- package/dist/composables/useBbOffCanvasContext.d.ts +0 -23
- package/dist/composables/useBbTabsContext.js +0 -252
package/dist/ai/BbConfirm.md
CHANGED
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
| `--gap` | `pt:action` | `BbButton` | between icon and label |
|
|
30
30
|
| `--bg` | `pt:action` | `BbButton` | the plate |
|
|
31
31
|
| `--bg-hover` | `pt:action` | `BbButton` | also the focus-visible fill; no change by default |
|
|
32
|
-
| `--bg-pressed` | `pt:action` | `BbButton` | fill while
|
|
32
|
+
| `--bg-pressed` | `pt:action` | `BbButton` | fill while pressed, or open (aria-expanded) |
|
|
33
33
|
| `--fg` | `pt:action` | `BbButton` | label and icons (icons paint currentColor) |
|
|
34
34
|
| `--border-color` | `pt:action` | `BbButton` | the frame; its width is --bw |
|
|
35
35
|
| `--ring-color` | `pt:action` | `BbButton` | focus ring colour, per variant |
|
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
| `--bw` | `pt:action` | `BbButton` | border width |
|
|
38
38
|
| `--fg-hover` | `pt:action` | `BbButton` | label and icons on hover (and focus-visible) |
|
|
39
39
|
| `--border-hover` | `pt:action` | `BbButton` | the frame on hover (and focus-visible) |
|
|
40
|
-
| `--fg-pressed` | `pt:action` | `BbButton` | label and icons while
|
|
41
|
-
| `--border-pressed` | `pt:action` | `BbButton` | the frame while
|
|
40
|
+
| `--fg-pressed` | `pt:action` | `BbButton` | label and icons while pressed or open |
|
|
41
|
+
| `--border-pressed` | `pt:action` | `BbButton` | the frame while pressed or open |
|
|
42
42
|
| `--bg-disabled` | `pt:action` | `BbButton` | the plate while disabled (not loading) |
|
|
43
43
|
| `--fg-disabled` | `pt:action` | `BbButton` | label and icons while disabled |
|
|
44
44
|
| `--border-disabled` | `pt:action` | `BbButton` | the frame while disabled |
|
|
@@ -69,17 +69,22 @@ first — this is that gate.
|
|
|
69
69
|
|
|
70
70
|
### Setup
|
|
71
71
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
and
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
72
|
+
There is nothing to mount: the plugin (`app.use(bitbossUiPlugin)`, the Nuxt
|
|
73
|
+
module) renders the app's `<BbHost />`, which renders every confirm.
|
|
74
|
+
`confirm()` can be called from anywhere, components and stores alike.
|
|
75
|
+
**Every call opens its own dialog**, and a new one covers the open one, which
|
|
76
|
+
stays pending and comes back when the newer one closes (see
|
|
77
|
+
[Several confirms at once](#several-confirms-at-once)). A host that unmounts
|
|
78
|
+
while its dialog is open (an area layout the user navigated out of) gets one
|
|
79
|
+
second to come back; after that the open confirm resolves `false` without
|
|
80
|
+
running a callback, so it never hangs.
|
|
81
|
+
|
|
82
|
+
```ts
|
|
83
|
+
const { confirm } = useConfirm();
|
|
84
|
+
if (await confirm({ title: 'Delete this file?', variant: 'destructive' })) {
|
|
85
|
+
await remove();
|
|
86
|
+
}
|
|
87
|
+
```
|
|
83
88
|
|
|
84
89
|
**Areas with their own look.** A confirm takes the passthrough scope and the
|
|
85
90
|
tokens of the component that called `useConfirm()`, wherever the host is
|
|
@@ -88,21 +93,6 @@ gets confirms in its area's look with nothing to set up. A component portal
|
|
|
88
93
|
injects from that component's tree too. A `useConfirm()` called outside a
|
|
89
94
|
component (a store, module level) takes the host's.
|
|
90
95
|
|
|
91
|
-
```vue
|
|
92
|
-
<template>
|
|
93
|
-
<RouterView />
|
|
94
|
-
<BbHost />
|
|
95
|
-
</template>
|
|
96
|
-
|
|
97
|
-
<script setup lang="ts">
|
|
98
|
-
import { BbHost } from 'bitboss-ui';
|
|
99
|
-
</script>
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
**Every example on this page mounts its own `<BbHost />` only because a
|
|
103
|
-
standalone example has no app root to mount it in.** In a real app the host is
|
|
104
|
-
already mounted at the root; a page that calls `confirm()` mounts nothing.
|
|
105
|
-
|
|
106
96
|
Everything — content, buttons, behavior — travels in the message you pass to
|
|
107
97
|
`confirm()`; the width every confirm defaults to is the plugin's
|
|
108
98
|
`confirm.defaultSize` (see [Size, fullscreen and focus](#size-fullscreen-and-focus)).
|
|
@@ -111,8 +101,10 @@ otherwise).
|
|
|
111
101
|
|
|
112
102
|
### The destructive flow
|
|
113
103
|
|
|
114
|
-
|
|
115
|
-
|
|
104
|
+
Pick by where the work runs. A server call or a visit goes in Yes's `onClick`
|
|
105
|
+
(next section): it spins there, and a failure rejects `confirm()`. A local,
|
|
106
|
+
instant step (removing a row you hold, leaving a page) is `await confirm(...)`,
|
|
107
|
+
then act only on a truthy result, as below. Set `variant: 'destructive'` so the dialog reads as dangerous and the Yes button
|
|
116
108
|
inherits the destructive button style automatically. Everything after the
|
|
117
109
|
`await` is your normal code — the dialog has already resolved. A `BbButton`
|
|
118
110
|
whose click awaits `confirm()` spins until it is answered, like any async
|
|
@@ -148,18 +140,11 @@ click; `disable-auto-loading` on that button turns it off.
|
|
|
148
140
|
<p v-if="keys.length === 0" class="text-xs text-(--bb-text-muted)">
|
|
149
141
|
No active keys.
|
|
150
142
|
</p>
|
|
151
|
-
|
|
152
|
-
<!--
|
|
153
|
-
Standalone example: it mounts its own host because it has no app root.
|
|
154
|
-
A real app mounts exactly one <BbHost /> at the app root, and pages
|
|
155
|
-
mount none. See ai/guides/agent-contract.md § Global Host Rule.
|
|
156
|
-
-->
|
|
157
|
-
<BbHost />
|
|
158
143
|
</div>
|
|
159
144
|
</template>
|
|
160
145
|
<script setup lang="ts">
|
|
161
146
|
import { ref } from 'vue';
|
|
162
|
-
import { BbButton,
|
|
147
|
+
import { BbButton, useConfirm } from 'bitboss-ui';
|
|
163
148
|
|
|
164
149
|
type ApiKey = { id: string; label: string; masked: string; created: string };
|
|
165
150
|
|
|
@@ -210,15 +195,16 @@ plain string still works for one-offs) — you provide the
|
|
|
210
195
|
|
|
211
196
|
### Async actions and busy state
|
|
212
197
|
|
|
213
|
-
For work that
|
|
198
|
+
For server work (anything that can fail or take time), put it in the button's
|
|
214
199
|
`onClick` instead of after the `await`: the button shows a spinner while the
|
|
215
200
|
promise runs, the opposite button is disabled, the X is hidden and dismissal
|
|
216
201
|
is blocked until it settles. Add `returning: true` to resolve with the
|
|
217
202
|
callback's own return value rather than a plain boolean. One sharp edge:
|
|
218
203
|
`confirm()` **rejects** when a button's `onClick` throws — wrap the await in
|
|
219
|
-
`try/catch` when the work can fail. An Inertia visit returns no promise:
|
|
220
|
-
it
|
|
221
|
-
|
|
204
|
+
`try/catch` when the work can fail. An Inertia visit returns no promise: make
|
|
205
|
+
it with the Inertia helpers' `usePromiseRouter`, whose promise rejects with the
|
|
206
|
+
error bag itself on a validation error (not `{ errors }`), rather than calling
|
|
207
|
+
`close()` from its callbacks (`ai/composables/useConfirm.md` § Async work).
|
|
222
208
|
|
|
223
209
|
**Async publish with a spinner**
|
|
224
210
|
|
|
@@ -236,17 +222,11 @@ it, as in `ai/composables/useConfirm.md` § async work, rather than calling
|
|
|
236
222
|
Publish article
|
|
237
223
|
</BbButton>
|
|
238
224
|
</div>
|
|
239
|
-
<!--
|
|
240
|
-
Standalone example: it mounts its own host because it has no app root.
|
|
241
|
-
A real app mounts exactly one <BbHost /> at the app root, and pages
|
|
242
|
-
mount none. See ai/guides/agent-contract.md § Global Host Rule.
|
|
243
|
-
-->
|
|
244
|
-
<BbHost />
|
|
245
225
|
</div>
|
|
246
226
|
</template>
|
|
247
227
|
<script setup lang="ts">
|
|
248
228
|
import { ref } from 'vue';
|
|
249
|
-
import { BbButton,
|
|
229
|
+
import { BbButton, useConfirm } from 'bitboss-ui';
|
|
250
230
|
|
|
251
231
|
const status = ref('Draft');
|
|
252
232
|
|
|
@@ -333,17 +313,11 @@ the array (`as const` keeps the literal types; without it each handler infers
|
|
|
333
313
|
Close editor
|
|
334
314
|
</BbButton>
|
|
335
315
|
</div>
|
|
336
|
-
<!--
|
|
337
|
-
Standalone example: it mounts its own host because it has no app root.
|
|
338
|
-
A real app mounts exactly one <BbHost /> at the app root, and pages
|
|
339
|
-
mount none. See ai/guides/agent-contract.md § Global Host Rule.
|
|
340
|
-
-->
|
|
341
|
-
<BbHost />
|
|
342
316
|
</div>
|
|
343
317
|
</template>
|
|
344
318
|
<script setup lang="ts">
|
|
345
319
|
import { ref } from 'vue';
|
|
346
|
-
import { BbButton,
|
|
320
|
+
import { BbButton, useConfirm } from 'bitboss-ui';
|
|
347
321
|
|
|
348
322
|
const decision = ref('none yet');
|
|
349
323
|
|
|
@@ -457,17 +431,11 @@ edits, so every implicit way out is blocked and the user answers with a button.
|
|
|
457
431
|
<BbButton variant="primary" @click="save">Save</BbButton>
|
|
458
432
|
<BbButton variant="ghost" @click="cancel">Cancel</BbButton>
|
|
459
433
|
</div>
|
|
460
|
-
<!--
|
|
461
|
-
Standalone example: it mounts its own host because it has no app root.
|
|
462
|
-
A real app mounts exactly one <BbHost /> at the app root, and pages
|
|
463
|
-
mount none. See ai/guides/agent-contract.md § Global Host Rule.
|
|
464
|
-
-->
|
|
465
|
-
<BbHost />
|
|
466
434
|
</div>
|
|
467
435
|
</template>
|
|
468
436
|
<script setup lang="ts">
|
|
469
437
|
import { ref } from 'vue';
|
|
470
|
-
import { BbButton,
|
|
438
|
+
import { BbButton, BbTextInput, useConfirm } from 'bitboss-ui';
|
|
471
439
|
|
|
472
440
|
const saved = ref('Ada Lovelace');
|
|
473
441
|
const draft = ref<string | null>(saved.value);
|
|
@@ -541,17 +509,11 @@ By default the dialog closes as soon as the promise settles. Set
|
|
|
541
509
|
<p class="text-center text-sm">{{ progressText }}</p>
|
|
542
510
|
</template>
|
|
543
511
|
</BbConfirmPortal>
|
|
544
|
-
<!--
|
|
545
|
-
Standalone example: it mounts its own host because it has no app root.
|
|
546
|
-
A real app mounts exactly one <BbHost /> at the app root, and pages
|
|
547
|
-
mount none. See ai/guides/agent-contract.md § Global Host Rule.
|
|
548
|
-
-->
|
|
549
|
-
<BbHost />
|
|
550
512
|
</div>
|
|
551
513
|
</template>
|
|
552
514
|
<script setup lang="ts">
|
|
553
515
|
import { ref } from 'vue';
|
|
554
|
-
import { BbButton,
|
|
516
|
+
import { BbButton, BbConfirmPortal, useConfirm } from 'bitboss-ui';
|
|
555
517
|
|
|
556
518
|
const status = ref('No export yet');
|
|
557
519
|
const progressText = ref('Everything in this workspace is bundled into a ZIP.');
|
|
@@ -658,17 +620,11 @@ portal never renders.
|
|
|
658
620
|
</div>
|
|
659
621
|
</template>
|
|
660
622
|
</BbConfirmPortal>
|
|
661
|
-
<!--
|
|
662
|
-
Standalone example: it mounts its own host because it has no app root.
|
|
663
|
-
A real app mounts exactly one <BbHost /> at the app root, and pages
|
|
664
|
-
mount none. See ai/guides/agent-contract.md § Global Host Rule.
|
|
665
|
-
-->
|
|
666
|
-
<BbHost />
|
|
667
623
|
</div>
|
|
668
624
|
</template>
|
|
669
625
|
<script setup lang="ts">
|
|
670
626
|
import { ref } from 'vue';
|
|
671
|
-
import { BbButton,
|
|
627
|
+
import { BbButton, BbConfirmPortal, useConfirm } from 'bitboss-ui';
|
|
672
628
|
|
|
673
629
|
const result = ref('Member of Acme since 2024');
|
|
674
630
|
|
|
@@ -728,8 +684,8 @@ custom `actions` entry — at the button's root (a listener runs after the
|
|
|
728
684
|
button's own). State `open`. Backdrop is `::backdrop` — CSS, not pt.
|
|
729
685
|
|
|
730
686
|
`<BbHost />` takes no `pt`: every confirm is styled from the build plugin's
|
|
731
|
-
global map, under `BbConfirm` (or a named scope's,
|
|
732
|
-
|
|
687
|
+
global map, under `BbConfirm` (or a named scope's, for a confirm called
|
|
688
|
+
inside a `<BbPtScope>`). A muted wash on `header`, Yes/No spread on `footer`, a muted ✕ on
|
|
733
689
|
`close`, a primary ring with offset while `root:open`:
|
|
734
690
|
|
|
735
691
|
```ts
|
package/dist/ai/BbDatePicker.md
CHANGED
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
|
|
15
15
|
| pt part | Lands on | In |
|
|
16
16
|
| --- | --- | --- |
|
|
17
|
-
| `pt:panel` | the root of `CommonPopover` | `CommonPopover` _(internal)_ |
|
|
18
17
|
| `pt:panel` | `pt:root` of `BbOffCanvas` | `BbOffCanvas` ([contract](./BbOffCanvas.md)) |
|
|
19
18
|
| `pt:sheet` | `pt:root` of `BbOffCanvas` | `BbOffCanvas` ([contract](./BbOffCanvas.md)) |
|
|
20
19
|
|
|
@@ -220,6 +219,42 @@ const time = ref<string | null>(null);
|
|
|
220
219
|
</template>
|
|
221
220
|
```
|
|
222
221
|
|
|
222
|
+
### Several months
|
|
223
|
+
|
|
224
|
+
`:number-of-months="2"` puts two months side by side in the popover. It is the
|
|
225
|
+
calendar's prop (`BbCalendar`), passed through: arrows and buttons page all the
|
|
226
|
+
months at once, and the keyboard crosses from one month into the next. A
|
|
227
|
+
popover too narrow for them all wraps the months onto the next row; the phone
|
|
228
|
+
sheet always shows one month.
|
|
229
|
+
|
|
230
|
+
**A trip across the month line**
|
|
231
|
+
|
|
232
|
+
```vue
|
|
233
|
+
<template>
|
|
234
|
+
<BbDatePicker
|
|
235
|
+
v-model="trip"
|
|
236
|
+
floating
|
|
237
|
+
label="Trip dates"
|
|
238
|
+
:number-of-months="2"
|
|
239
|
+
range
|
|
240
|
+
>
|
|
241
|
+
<template #activator="{ props, text }">
|
|
242
|
+
<BbButton v-bind="props" append:icon="lucide:calendar" variant="outline">
|
|
243
|
+
{{ text || 'Pick your trip' }}
|
|
244
|
+
</BbButton>
|
|
245
|
+
</template>
|
|
246
|
+
</BbDatePicker>
|
|
247
|
+
</template>
|
|
248
|
+
|
|
249
|
+
<script setup lang="ts">
|
|
250
|
+
import { ref } from 'vue';
|
|
251
|
+
import { BbButton, BbDatePicker } from 'bitboss-ui';
|
|
252
|
+
|
|
253
|
+
/** Two months in the popover; the phone sheet still shows one. */
|
|
254
|
+
const trip = ref<string[]>([]);
|
|
255
|
+
</script>
|
|
256
|
+
```
|
|
257
|
+
|
|
223
258
|
### Decorating days
|
|
224
259
|
|
|
225
260
|
The picker passes its day slots straight to the calendar inside it, so the four
|
|
@@ -434,12 +469,13 @@ and digit typeahead; the time rail exposes labelled columns. Always pass a
|
|
|
434
469
|
| `max` | `string \| undefined` | | | Maximum selectable value, in this `type`'s shape. A finer bound is accepted and ceiled to the unit, with a warning. |
|
|
435
470
|
| `min` | `string \| undefined` | | | Minimum selectable value, in this `type`'s shape — `YYYY-MM-DD` (`YYYY-MM-DDTHH:mm` with `datetime`, `YYYY-MM` with `month`, `YYYY` with `year`). A finer bound is accepted and floored to the unit, with a warning. |
|
|
436
471
|
| `modelValue` | `string \| string[] \| null` | | yes | v-model: `null` when empty, a string, a `[start, end]` pair with `range`, or a sorted array with `multiple`. The string is `YYYY-MM-DD` when `floating` (`YYYY-MM` / `YYYY` for `month` / `year`), otherwise a zoned ISO instant (carrying the time under `datetime`). |
|
|
437
|
-
| `multiple` | `boolean
|
|
472
|
+
| `multiple` | `boolean` | `false` | | Multi-selection: each pick toggles a value in a sorted array (days, months or years), and the panel stays open until dismissed. Needs an array `modelValue` (`[]` when empty, never `null`). Throws with `range` or `type="datetime"`. |
|
|
473
|
+
| `numberOfMonths` | `number \| undefined` | `1` | | How many months the popover shows side by side (day grids only); the phone sheet always shows one. Too narrow for them all, the months wrap. |
|
|
438
474
|
| `offCanvasProps` | `Partial<BbOffCanvasProps> \| undefined` | | | Props for the phone sheet (the `BbOffCanvas` that `adaptive` renders on mobile), spread over its defaults. A `pt` inside it styles only the sheet (passthrough guide § Inside the sheet). The sheet hides its ✕; `{ hideClose: false }` brings it back. |
|
|
439
475
|
| `offset` | `number \| undefined` | `4` | | Space the popover keeps from the activator. |
|
|
440
476
|
| `padding` | `number \| undefined` | | | Minimum empty space to keep from the edge of the page. |
|
|
441
477
|
| `placement` | `'top'` \| `'bottom'` \| `'left'` \| `'right'` \| `'top-start'` \| `'top-end'` \| `'right-start'` \| `'right-end'` \| `'bottom-start'` \| `'bottom-end'` \| `'left-start'` \| `'left-end'` | | | Position of the popover relative to the activator/anchor. |
|
|
442
|
-
| `range` | `boolean
|
|
478
|
+
| `range` | `boolean` | `false` | | Enables range selection (`[start, end]`). |
|
|
443
479
|
| `readonly` | `boolean \| undefined` | `false` | | Prevents opening while keeping the activator visible. |
|
|
444
480
|
| `seconds` | `boolean \| undefined` | `false` | | Adds the seconds column (requires `type="datetime"`). |
|
|
445
481
|
| `selectable` | `((date: string) => boolean) \| undefined` | | | Predicate invoked per candidate; return `false` to disable it. Receives the value in this `type`'s shape — `YYYY-MM` under `month`, `YYYY` under `year`. |
|
|
@@ -456,7 +492,7 @@ and digit typeahead; the time rail exposes labelled columns. Always pass a
|
|
|
456
492
|
| Part | What it is |
|
|
457
493
|
| --- | --- |
|
|
458
494
|
| `root` | The floating element — an invisible positioning wrapper; a `class` on the component lands here. No node on the phone sheet: style what you see with `panel`. |
|
|
459
|
-
| `header` | The navigation bar: the previous / next arrows and the month / year headings. |
|
|
495
|
+
| `header` | The navigation bar: the previous / next arrows and the month / year headings. With `number-of-months`, every month's header row (the later ones caption their month). |
|
|
460
496
|
| `arrow` | The previous / next buttons — a broadcast. |
|
|
461
497
|
| `month` | The month heading button; it opens the month panel. |
|
|
462
498
|
| `year` | The year heading button; it opens the year panel. |
|
|
@@ -537,7 +573,7 @@ Set these on the element, or on a class you put on it, to retune this component
|
|
|
537
573
|
- **CSS custom properties** listed on a node are declared on THAT node's root and read by elements inside it. Set one on that node's root or on the element inside it that reads it — the pt part that lands there is how you reach it (`pt:box="[--border-color:…]"` on a text input) — never on `BbDatePicker`'s root, where the node's own declaration masks it (design-tokens guide, _Overriding one from a consumer app_, rule 0).
|
|
538
574
|
- Listed nodes are the ones `BbDatePicker`'s API reaches or that declare a documented CSS variable; the rest fold into "also mounts". The complete tree, repeats and undocumented locals included, is `manifest/components/BbDatePicker.tree.json`.
|
|
539
575
|
|
|
540
|
-
- `BbDatePicker` _(this component)_ — its own template binds: `panel` → `div
|
|
576
|
+
- `BbDatePicker` _(this component)_ — its own template binds: `panel` → `div`; hands `BbCalendar` the pt map ` passthrough.forward(DATE_PICKER_CALENDAR_PARTS, BB_CALENDAR_PT.states) ` (ours → theirs); hands `BbOffCanvas` the pt map `{ panel: 'root', sheet: 'root' }` (ours → theirs)
|
|
541
577
|
- `BbCalendar` _(public — [contract](./BbCalendar.md))_ — its own pt parts (`BbCalendar`): `header` → `div.bb-calendar__header`, `arrow` → `BbBaseButton`, `month` → `BbBaseButton`, `year` → `BbBaseButton`, `day` → `div.bb-calendar__day`, `dayButton` → `button.bb-calendar__day-button`; documented CSS variables: `--cell`, `--unit-row`; also mounts `ScaleFade`, `Slide`, `CalendarMonthPanel`, `CalendarYearPanel`
|
|
542
578
|
- `BbBaseButton` _(public — [contract](./BbBaseButton.md))_ — its own pt parts (`BbBaseButton`): `root` → `RouterComponent`, `root` → `a`, `root` → `component`; also mounts `RouterComponent`
|
|
543
579
|
- `CommonTimeSelector` _(internal — not importable, reach it through `BbCalendar`)_ — its own pt parts (`BbCalendar`): `header` → `div.bb-time-selector__header`, `cellColumnHeader` → `div.bb-time-selector__cell-column-header`, `item` → `BbBaseButton`; documented CSS variables: `--time-mark`; also mounts `BbBaseButton`
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
| `--border-focus` | `pt:box` | `CommonFieldInput` | frame while focused, or --active |
|
|
41
41
|
| `--ring-size` | `pt:box` | `CommonFieldInput` | ring width; 0 is a variant declining the ring |
|
|
42
42
|
| `--ring-color` | `pt:box` | `CommonFieldInput` | ring colour; state owns it, not variants |
|
|
43
|
-
| `--elev` | `pt:box` | `CommonFieldInput` | Resting lift,
|
|
43
|
+
| `--elev` | `pt:box` | `CommonFieldInput` | Resting lift, alone in `box-shadow`: the ring is the box's outline (Q81.6), so a theme's `--elev: none` never takes the ring with it. |
|
|
44
44
|
| `--frost` | `pt:box` | `CommonFieldInput` | Plate frost — a full `backdrop-filter` value (see --bb-surface-filter). Routed through a local rather than read from the token directly, so a chrome-less variant can decline it: frosting a ghost field gives it the plate it is contractually not supposed to have. |
|
|
45
45
|
| `--inside-label-clearance` | `pt:box`, `pt:prefix`, `pt:suffix` | `CommonFieldInput` | Height and top padding added above the text for a label rendered inside the box. Zero here; the `--inside-label` rules at the bottom of this file raise it to one label line, or two with a description. |
|
|
46
46
|
| `--w` | `pt:icon` | `BbIcon` | `--w` is set inline by BbIcon from the size prop. The `initial` default seals it: without it an ancestor's `--w` (e.g. a dropdown's width bridge) would inherit in and size the icon. The `--size` indirection stays so higher-specificity rules (e.g. `.bb-badge .bb-icon`) can re-point it. |
|
|
@@ -176,6 +176,36 @@ The value is typed `string | string[] | null` in either mode, so `v-model`
|
|
|
176
176
|
needs nothing, and an explicit `@update:model-value` handler narrows in one
|
|
177
177
|
line: `if (!Array.isArray(value)) return;` before treating it as the range.
|
|
178
178
|
|
|
179
|
+
For a window that often crosses the month line, `:number-of-months="2"` shows
|
|
180
|
+
two months side by side in the popover (one in the phone sheet). If the
|
|
181
|
+
popover doesn't have room for both, the second month wraps under the first.
|
|
182
|
+
|
|
183
|
+
**Booking — two months in the popover**
|
|
184
|
+
|
|
185
|
+
```vue
|
|
186
|
+
<template>
|
|
187
|
+
<BbDatePickerInput
|
|
188
|
+
v-model="booking"
|
|
189
|
+
class="max-w-sm"
|
|
190
|
+
floating
|
|
191
|
+
label="Check-in → check-out"
|
|
192
|
+
:min="today"
|
|
193
|
+
:number-of-months="2"
|
|
194
|
+
range
|
|
195
|
+
/>
|
|
196
|
+
</template>
|
|
197
|
+
|
|
198
|
+
<script setup lang="ts">
|
|
199
|
+
import { ref } from 'vue';
|
|
200
|
+
import dayjs from 'dayjs';
|
|
201
|
+
import { BbDatePickerInput } from 'bitboss-ui';
|
|
202
|
+
|
|
203
|
+
const today = dayjs().format('YYYY-MM-DD');
|
|
204
|
+
/** Typed or picked: the popover shows this month and the next. */
|
|
205
|
+
const booking = ref<string[]>([]);
|
|
206
|
+
</script>
|
|
207
|
+
```
|
|
208
|
+
|
|
179
209
|
Range mode still lets the user **type** both the start and end dates directly —
|
|
180
210
|
it does not force the field read-only. If a range comes in reversed (end before
|
|
181
211
|
start) it is swapped for you on commit (see _Invalid input_). To prevent typing
|
|
@@ -613,7 +643,8 @@ the single tab stop). Once focused:
|
|
|
613
643
|
|
|
614
644
|
- **arrow keys** move by day (←/→) and week (↑/↓);
|
|
615
645
|
- **Home** / **End** jump to the week's edges, **PageUp** / **PageDown** change
|
|
616
|
-
month, and type-ahead jumps within the
|
|
646
|
+
month, and type-ahead jumps within the focused month (with
|
|
647
|
+
`number-of-months`, every key crosses into the next month on show);
|
|
617
648
|
- **Enter** / **Space** select the focused day and close the surface;
|
|
618
649
|
- the month and year headings open their own pick panels (Enter toggles them).
|
|
619
650
|
|
|
@@ -896,7 +927,7 @@ label>')` matches nothing; query each segment by its own label instead. See
|
|
|
896
927
|
| `formless` | `boolean \| undefined` | `false` | | Keep this control out of the enclosing `BbForm` entirely: not submitted, not dirty, not reset, not validated. For a control that is not form data (a filter, a "show advanced" switch). |
|
|
897
928
|
| `hasErrors` | `boolean \| undefined` | `false` | | Define if the component should be in an error state. It usually attaches a CSS class for styling purposes. |
|
|
898
929
|
| `hasWarnings` | `boolean \| undefined` | `false` | | Define if the component should be in a warning state. Same chrome as errors with `--bb-warn`; errors take priority. |
|
|
899
|
-
| `hideLabel` | `boolean \| undefined` | `false` | | Visually hides the label of the input while maintaining accessibility. |
|
|
930
|
+
| `hideLabel` | `boolean \| undefined` | `false` | | Visually hides the label of the input while maintaining accessibility. Pair it with a `placeholder`: an empty field otherwise shows nothing saying what it is for. |
|
|
900
931
|
| `hint` | `string \| undefined` | | | Text box to be displayed near the input, usually to indicate instructions. |
|
|
901
932
|
| `id` | `string \| undefined` | | | The `id` of the native control; the label's `for` and the description and message ids derive from it. Generated when omitted. |
|
|
902
933
|
| `inputAlign` | `'top'` \| `'center'` \| `'bottom'` | | | Vertical position of the control in a side-by-side row; not `inputPosition`, the horizontal one. Omitted, the control's first line meets the label's. |
|
|
@@ -910,11 +941,12 @@ label>')` matches nothing; query each segment by its own label instead. See
|
|
|
910
941
|
| `min` | `string \| undefined` | | | Minimum selectable date in `YYYY-MM-DD` format — or, with `type="datetime"`, `YYYY-MM-DDTHH:mm` to tighten the boundary day to a minute. Values outside both patterns throw during setup to surface configuration mistakes. |
|
|
911
942
|
| `modelValue` | `string \| string[] \| null \| undefined` | | | Used by v-model. Can be null, a single string, or an array of strings based on whether a range or single date is needed. |
|
|
912
943
|
| `name` | `string \| undefined` | | | Defines the name of the input. |
|
|
944
|
+
| `numberOfMonths` | `number \| undefined` | `1` | | How many months the calendar popover shows side by side (day grids only); the phone sheet always shows one. Too narrow for them all, the months wrap. |
|
|
913
945
|
| `offCanvasProps` | `Partial<BbOffCanvasProps> \| undefined` | | | Props for the phone sheet (the `BbOffCanvas` that `adaptive` renders on mobile), spread over its defaults. A `pt` inside it styles only the sheet (passthrough guide § Inside the sheet). The sheet hides its ✕; `{ hideClose: false }` brings it back. |
|
|
914
946
|
| `persistentHint` | `boolean \| undefined` | `false` | | Keeps the hint displayed. |
|
|
915
947
|
| `placeholder` | `string \| undefined` | | | Text shown while the field is empty. |
|
|
916
948
|
| `prepend:icon` | `string \| undefined` | | | Name of the icon to be added at the start of the input. |
|
|
917
|
-
| `range` | `boolean
|
|
949
|
+
| `range` | `boolean` | `false` | | Selects a range of dates between two dates. It selects all of the days between start and end. |
|
|
918
950
|
| `readonly` | `boolean \| undefined` | `false` | | Sets the input in a readonly state. |
|
|
919
951
|
| `required` | `boolean \| undefined` | `false` | | Sets the input as required. |
|
|
920
952
|
| `reverse` | `boolean \| undefined` | `false` | | Reverses the layout. Applicable in every direction the order of the label and the input is swapped. |
|
|
@@ -952,7 +984,7 @@ label>')` matches nothing; query each segment by its own label instead. See
|
|
|
952
984
|
| `activator` | The button in the box that opens the calendar. Merged after the picker's own activator props and handlers, so a listener of yours runs after ours. Its glyph is not a part. |
|
|
953
985
|
| `panel` | The calendar surface — the popover's painted bubble on desktop, the sheet itself on a phone. It carries the calendar's sizing tokens (`pt:panel="[--cell:36px]"`). |
|
|
954
986
|
| `sheet` | The bottom sheet around the calendar on a phone only. |
|
|
955
|
-
| `header` | The navigation bar: the previous / next arrows and the month / year headings. |
|
|
987
|
+
| `header` | The navigation bar: the previous / next arrows and the month / year headings. With `number-of-months`, every month's header row (the later ones caption their month). |
|
|
956
988
|
| `arrow` | The previous / next buttons — a broadcast. |
|
|
957
989
|
| `month` | The month heading button; it opens the month panel. |
|
|
958
990
|
| `year` | The year heading button; it opens the year panel. |
|
|
@@ -1032,7 +1064,7 @@ Set these on the element, or on a class you put on it, to retune this component
|
|
|
1032
1064
|
- Listed nodes are the ones `BbDatePickerInput`'s API reaches or that declare a documented CSS variable; the rest fold into "also mounts". The complete tree, repeats and undocumented locals included, is `manifest/components/BbDatePickerInput.tree.json`.
|
|
1033
1065
|
|
|
1034
1066
|
- `BbDatePickerInput` _(this component)_ — its own template binds: `controlAttrs` → `input.bb-segmented-field__input`, `input` → `input.bb-segmented-field__input`, `activator` → `button.bb-segmented-field__activator`, `suffix` → `span.bb-field-input__suffix`; hands `BbDatePicker` the pt map `passthrough.forward(PICKER_PARTS, BB_DATE_PICKER_PT.states)` (ours → theirs)
|
|
1035
|
-
- `BbDatePicker` _(public — [contract](./BbDatePicker.md))_ — its own pt parts (`BbDatePicker`): `panel` → `div
|
|
1067
|
+
- `BbDatePicker` _(public — [contract](./BbDatePicker.md))_ — its own pt parts (`BbDatePicker`): `panel` → `div`; hands `BbCalendar` the pt map ` passthrough.forward(DATE_PICKER_CALENDAR_PARTS, BB_CALENDAR_PT.states) ` (ours → theirs); hands `BbOffCanvas` the pt map `{ panel: 'root', sheet: 'root' }` (ours → theirs); documented CSS variables: `--cell`, `--unit-row`; also mounts `CommonPopover`
|
|
1036
1068
|
- `BbCalendar` _(public — [contract](./BbCalendar.md))_ — its own pt parts (`BbCalendar`): `header` → `div.bb-calendar__header`, `arrow` → `BbBaseButton`, `month` → `BbBaseButton`, `year` → `BbBaseButton`, `day` → `div.bb-calendar__day`, `dayButton` → `button.bb-calendar__day-button`; documented CSS variables: `--cell`, `--unit-row`; also mounts `ScaleFade`, `Slide`, `CalendarMonthPanel`, `CalendarYearPanel`
|
|
1037
1069
|
- `BbBaseButton` _(public — [contract](./BbBaseButton.md))_ — its own pt parts (`BbBaseButton`): `root` → `RouterComponent`, `root` → `a`, `root` → `component`; also mounts `RouterComponent`
|
|
1038
1070
|
- `CommonTimeSelector` _(internal — not importable, reach it through `BbCalendar`)_ — its own pt parts (`BbCalendar`): `header` → `div.bb-time-selector__header`, `cellColumnHeader` → `div.bb-time-selector__cell-column-header`, `item` → `BbBaseButton`; documented CSS variables: `--time-mark`; also mounts `BbBaseButton`
|