bitboss-ui 3.0.0-beta.5 → 3.0.0-beta.50
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 +388 -99
- package/bin/bitboss-ui-mcp.mjs +2684 -124
- package/bin/bitboss-ui.mjs +1034 -80
- package/dist/ai/BbAccordion.md +202 -58
- package/dist/ai/BbAlert.md +150 -32
- package/dist/ai/BbAsterisk.md +65 -4
- package/dist/ai/BbAvatar.md +202 -56
- package/dist/ai/BbBadge.md +256 -50
- package/dist/ai/BbBadgeButton.md +77 -21
- package/dist/ai/BbBaseButton.md +132 -51
- package/dist/ai/BbBaseCheckboxIcon.md +118 -26
- package/dist/ai/BbBaseRadioIcon.md +115 -26
- package/dist/ai/BbBaseSwitchIcon.md +123 -28
- package/dist/ai/BbBreadcrumbs.md +280 -104
- package/dist/ai/BbButton.md +445 -111
- package/dist/ai/BbCalendar.md +686 -0
- package/dist/ai/BbCheckbox.md +258 -82
- package/dist/ai/BbCheckboxGroup.md +597 -83
- package/dist/ai/BbCollapsible.md +158 -39
- package/dist/ai/BbColorInput.md +327 -82
- package/dist/ai/BbColorPalette.md +273 -67
- package/dist/ai/BbConfirm.md +228 -51
- package/dist/ai/BbConfirmPortal.md +2 -2
- package/dist/ai/BbDatePicker.md +275 -40
- package/dist/ai/BbDatePickerInput.md +357 -111
- package/dist/ai/BbDialog.md +510 -108
- package/dist/ai/BbDropdown.md +1335 -206
- package/dist/ai/BbDropdownButton.md +290 -107
- package/dist/ai/BbDropdownGroup.md +6 -6
- package/dist/ai/BbDropzone.md +380 -72
- package/dist/ai/BbForm.md +1261 -46
- package/dist/ai/BbHoverCard.md +527 -0
- package/dist/ai/BbHoverCardPortal.md +29 -0
- package/dist/ai/BbIcon.md +125 -40
- package/dist/ai/BbIndicator.md +79 -12
- package/dist/ai/BbNumberInput.md +345 -100
- package/dist/ai/BbOffCanvas.md +403 -96
- package/dist/ai/BbPagination.md +204 -34
- package/dist/ai/BbPopover.md +360 -64
- package/dist/ai/BbPopoverPortal.md +29 -0
- package/dist/ai/BbProgress.md +182 -90
- package/dist/ai/BbPtScope.md +136 -0
- package/dist/ai/BbRadio.md +242 -43
- package/dist/ai/BbRadioGroup.md +550 -111
- package/dist/ai/BbRating.md +256 -62
- package/dist/ai/BbSelect.md +1121 -289
- package/dist/ai/BbSelectPopover.md +676 -192
- package/dist/ai/BbSlider.md +285 -80
- package/dist/ai/BbSmoothHeight.md +144 -37
- package/dist/ai/BbSpinner.md +179 -81
- package/dist/ai/BbSwitch.md +276 -63
- package/dist/ai/BbSwitchGroup.md +421 -87
- package/dist/ai/BbTable.md +1941 -296
- package/dist/ai/BbTabs.md +992 -231
- package/dist/ai/BbTabsList.md +81 -7
- package/dist/ai/BbTabsPanels.md +77 -0
- package/dist/ai/BbTabsRoot.md +18 -16
- package/dist/ai/BbTag.md +271 -80
- package/dist/ai/BbTextInput.md +535 -105
- package/dist/ai/BbTextarea.md +414 -138
- package/dist/ai/BbTimePicker.md +166 -27
- package/dist/ai/BbTimePickerInput.md +290 -49
- package/dist/ai/BbToast.md +287 -40
- package/dist/ai/BbToastPortal.md +3 -3
- package/dist/ai/BbTooltip.md +231 -46
- package/dist/ai/BbTree.md +272 -94
- package/dist/ai/ChipsBox.md +46 -2
- package/dist/ai/ClearableButton.md +12 -0
- package/dist/ai/CommaBox.md +2 -1
- package/dist/ai/CommonField.md +75 -0
- package/dist/ai/CommonFieldInput.md +91 -0
- package/dist/ai/CommonPopover.md +17 -12
- package/dist/ai/CommonTimeSelector.md +63 -0
- package/dist/ai/ErrorIcon.md +20 -0
- package/dist/ai/FlatListBox.md +42 -11
- package/dist/ai/GroupedListBox.md +43 -12
- package/dist/ai/ListBox.md +47 -11
- package/dist/ai/OptionsContainer.md +17 -10
- package/dist/ai/WarningIcon.md +20 -0
- package/dist/ai/changelog.json +5750 -141
- package/dist/ai/components.json +475 -16272
- package/dist/ai/composables/useBbConfig.md +72 -11
- package/dist/ai/composables/useBbDropdownContext.md +168 -0
- package/dist/ai/composables/useBbFormContext.md +51 -24
- package/dist/ai/composables/useBbFormField.md +149 -0
- package/dist/ai/composables/useBbTableContext.md +41 -19
- package/dist/ai/composables/useBbTabsContext.md +14 -14
- package/dist/ai/composables/useConfirm.md +16 -8
- package/dist/ai/composables/useCountdown.md +1 -1
- package/dist/ai/composables/useId.md +10 -10
- package/dist/ai/composables/useMobile.md +17 -10
- package/dist/ai/composables/useToast.md +25 -19
- package/dist/ai/design-tokens.json +967 -0
- package/dist/ai/design-tokens.manifest.yaml +175 -0
- package/dist/ai/guides/agent-contract.md +182 -23
- package/dist/ai/guides/ai-router.md +87 -43
- package/dist/ai/guides/app-layout.md +8 -4
- package/dist/ai/guides/coherence-playbook.md +25 -21
- package/dist/ai/guides/component-picker.md +60 -46
- package/dist/ai/guides/design-language.md +280 -99
- package/dist/ai/guides/design-tokens.md +600 -117
- package/dist/ai/guides/fetch-items-playbook.md +127 -81
- package/dist/ai/guides/icons-policy.md +75 -45
- package/dist/ai/guides/inertia-helpers.md +201 -82
- package/dist/ai/guides/inline-edit-playbook.md +13 -6
- package/dist/ai/guides/installation-and-plugin-setup.md +912 -91
- package/dist/ai/guides/migration/components/bb-accordion.md +37 -0
- package/dist/ai/guides/migration/components/bb-alert.md +2 -2
- package/dist/ai/guides/migration/components/bb-avatar.md +13 -14
- package/dist/ai/guides/migration/components/bb-badge.md +5 -5
- package/dist/ai/guides/migration/components/bb-breadcrumbs.md +13 -10
- package/dist/ai/guides/migration/components/bb-button.md +80 -20
- package/dist/ai/guides/migration/components/bb-checkbox-group.md +116 -29
- package/dist/ai/guides/migration/components/bb-checkbox.md +53 -10
- package/dist/ai/guides/migration/components/bb-chip.md +6 -6
- package/dist/ai/guides/migration/components/bb-collapsible.md +5 -5
- package/dist/ai/guides/migration/components/bb-color-input.md +5 -5
- package/dist/ai/guides/migration/components/bb-color-palette.md +16 -9
- package/dist/ai/guides/migration/components/bb-date-picker-input.md +51 -38
- package/dist/ai/guides/migration/components/bb-dialog.md +69 -36
- package/dist/ai/guides/migration/components/bb-dropdown-button.md +15 -8
- package/dist/ai/guides/migration/components/bb-dropdown.md +33 -9
- package/dist/ai/guides/migration/components/bb-dropzone.md +8 -0
- package/dist/ai/guides/migration/components/bb-icon.md +7 -7
- package/dist/ai/guides/migration/components/bb-intersection.md +1 -1
- package/dist/ai/guides/migration/components/bb-offcanvas.md +29 -31
- package/dist/ai/guides/migration/components/bb-pagination.md +10 -0
- package/dist/ai/guides/migration/components/bb-popover.md +19 -11
- package/dist/ai/guides/migration/components/bb-radio-group.md +15 -0
- package/dist/ai/guides/migration/components/bb-rating.md +61 -24
- package/dist/ai/guides/migration/components/bb-select-popover.md +20 -2
- package/dist/ai/guides/migration/components/bb-select.md +39 -8
- package/dist/ai/guides/migration/components/bb-slider.md +19 -6
- package/dist/ai/guides/migration/components/bb-switch-group.md +15 -0
- package/dist/ai/guides/migration/components/bb-table.md +586 -33
- package/dist/ai/guides/migration/components/bb-tabs.md +94 -43
- package/dist/ai/guides/migration/components/bb-tag.md +9 -7
- package/dist/ai/guides/migration/components/bb-text-input.md +12 -12
- package/dist/ai/guides/migration/components/bb-toast.md +2 -2
- package/dist/ai/guides/migration/components/bb-tooltip.md +19 -1
- package/dist/ai/guides/migration/components/bb-tree.md +11 -9
- package/dist/ai/guides/migration/components/use-confirm.md +9 -1
- package/dist/ai/guides/migration/v2-to-v3.md +1203 -277
- package/dist/ai/guides/migration/v3-beta-css-classes.md +753 -0
- package/dist/ai/guides/migration/v3-beta-tooling.md +208 -0
- package/dist/ai/guides/options-items-playbook.md +177 -22
- package/dist/ai/guides/page-shell.md +13 -7
- package/dist/ai/guides/passthrough.md +968 -0
- package/dist/ai/guides/preset-components.md +387 -0
- package/dist/ai/guides/ssr-prefill.md +150 -0
- package/dist/ai/guides/typescript-generic-components.md +87 -0
- package/dist/ai/guides/validated-forms.md +460 -55
- package/dist/ai/guides/validation-libraries.md +174 -0
- package/dist/ai/guides/validation-providers.md +127 -0
- package/dist/ai/helpers/inertia/manifest.json +636 -0
- package/dist/ai/helpers/inertia/types.ts +15 -0
- package/dist/ai/helpers/inertia/useAsyncFn.ts +110 -0
- package/dist/ai/helpers/inertia/useConfirmOnRouteLeave.ts +102 -0
- package/dist/ai/helpers/inertia/useDeleteCmd.ts +30 -0
- package/dist/ai/helpers/inertia/useHasChanged.ts +36 -0
- package/dist/ai/helpers/inertia/useIndexById.ts +23 -0
- package/dist/ai/helpers/inertia/useLazyProp.ts +148 -0
- package/dist/ai/helpers/inertia/useLazyPropGetter.ts +50 -0
- package/dist/ai/helpers/inertia/useLoading.ts +20 -0
- package/dist/ai/helpers/inertia/usePaginatedResponseContext.ts +88 -0
- package/dist/ai/helpers/inertia/usePromiseForm.ts +62 -0
- package/dist/ai/helpers/inertia/useProp.ts +63 -0
- package/dist/ai/helpers/inertia/useQuery.ts +19 -0
- package/dist/ai/helpers/inertia/useQueryObject.ts +116 -0
- package/dist/ai/helpers/inertia/useResourceContext.ts +69 -0
- package/dist/ai/helpers/inertia/useRouteQuery.ts +54 -0
- package/dist/ai/helpers/inertia/useScreenSizes.ts +23 -0
- package/dist/ai/helpers/inertia/useTableContext.ts +34 -0
- package/dist/ai/helpers/inertia/useTableSelectionContext.ts +48 -0
- package/dist/ai/helpers/inertia/useUntil.ts +33 -0
- package/dist/ai/helpers/inertia/utils.ts +24 -0
- package/dist/ai/index.md +61 -57
- package/dist/ai/manifest/components/BbAccordion.json +42 -0
- package/dist/ai/manifest/components/BbAccordion.tree.json +26 -0
- package/dist/ai/manifest/components/BbAlert.json +56 -0
- package/dist/ai/manifest/components/BbAlert.tree.json +80 -0
- package/dist/ai/manifest/components/BbAsterisk.json +26 -0
- package/dist/ai/manifest/components/BbAsterisk.tree.json +13 -0
- package/dist/ai/manifest/components/BbAvatar.json +38 -0
- package/dist/ai/manifest/components/BbAvatar.tree.json +39 -0
- package/dist/ai/manifest/components/BbBadge.json +50 -0
- package/dist/ai/manifest/components/BbBadge.tree.json +86 -0
- package/dist/ai/manifest/components/BbBadgeButton.json +67 -0
- package/dist/ai/manifest/components/BbBadgeButton.tree.json +32 -0
- package/dist/ai/manifest/components/BbBaseButton.json +69 -0
- package/dist/ai/manifest/components/BbBaseButton.tree.json +25 -0
- package/dist/ai/manifest/components/BbBaseCheckboxIcon.json +46 -0
- package/dist/ai/manifest/components/BbBaseCheckboxIcon.tree.json +41 -0
- package/dist/ai/manifest/components/BbBaseRadioIcon.json +44 -0
- package/dist/ai/manifest/components/BbBaseRadioIcon.tree.json +36 -0
- package/dist/ai/manifest/components/BbBaseSwitchIcon.json +46 -0
- package/dist/ai/manifest/components/BbBaseSwitchIcon.tree.json +44 -0
- package/dist/ai/manifest/components/BbBreadcrumbs.json +56 -0
- package/dist/ai/manifest/components/BbBreadcrumbs.tree.json +45 -0
- package/dist/ai/manifest/components/BbButton.json +102 -0
- package/dist/ai/manifest/components/BbButton.tree.json +206 -0
- package/dist/ai/manifest/components/BbCalendar.json +86 -0
- package/dist/ai/manifest/components/BbCalendar.tree.json +99 -0
- package/dist/ai/manifest/components/BbCheckbox.json +99 -0
- package/dist/ai/manifest/components/BbCheckbox.tree.json +22 -0
- package/dist/ai/manifest/components/BbCheckboxGroup.json +133 -0
- package/dist/ai/manifest/components/BbCheckboxGroup.tree.json +61 -0
- package/dist/ai/manifest/components/BbCollapsible.json +32 -0
- package/dist/ai/manifest/components/BbCollapsible.tree.json +17 -0
- package/dist/ai/manifest/components/BbColorInput.json +133 -0
- package/dist/ai/manifest/components/BbColorInput.tree.json +37 -0
- package/dist/ai/manifest/components/BbColorPalette.json +73 -0
- package/dist/ai/manifest/components/BbColorPalette.tree.json +55 -0
- package/dist/ai/manifest/components/BbConfirm.json +34 -0
- package/dist/ai/manifest/components/BbConfirm.tree.json +30 -0
- package/dist/ai/manifest/components/BbConfirmPortal.json +21 -0
- package/dist/ai/manifest/components/BbDatePicker.json +108 -0
- package/dist/ai/manifest/components/BbDatePicker.tree.json +54 -0
- package/dist/ai/manifest/components/BbDatePickerInput.json +167 -0
- package/dist/ai/manifest/components/BbDatePickerInput.tree.json +50 -0
- package/dist/ai/manifest/components/BbDialog.json +76 -0
- package/dist/ai/manifest/components/BbDialog.tree.json +74 -0
- package/dist/ai/manifest/components/BbDropdown.json +102 -0
- package/dist/ai/manifest/components/BbDropdown.tree.json +122 -0
- package/dist/ai/manifest/components/BbDropdownButton.json +107 -0
- package/dist/ai/manifest/components/BbDropdownButton.tree.json +28 -0
- package/dist/ai/manifest/components/BbDropdownGroup.json +25 -0
- package/dist/ai/manifest/components/BbDropzone.json +68 -0
- package/dist/ai/manifest/components/BbDropzone.tree.json +36 -0
- package/dist/ai/manifest/components/BbForm.json +42 -0
- package/dist/ai/manifest/components/BbHoverCard.json +63 -0
- package/dist/ai/manifest/components/BbHoverCard.tree.json +31 -0
- package/dist/ai/manifest/components/BbHoverCardPortal.json +21 -0
- package/dist/ai/manifest/components/BbIcon.json +33 -0
- package/dist/ai/manifest/components/BbIcon.tree.json +19 -0
- package/dist/ai/manifest/components/BbIndicator.json +39 -0
- package/dist/ai/manifest/components/BbIndicator.tree.json +67 -0
- package/dist/ai/manifest/components/BbNumberInput.json +128 -0
- package/dist/ai/manifest/components/BbNumberInput.tree.json +28 -0
- package/dist/ai/manifest/components/BbOffCanvas.json +72 -0
- package/dist/ai/manifest/components/BbOffCanvas.tree.json +115 -0
- package/dist/ai/manifest/components/BbPagination.json +61 -0
- package/dist/ai/manifest/components/BbPagination.tree.json +69 -0
- package/dist/ai/manifest/components/BbPopover.json +82 -0
- package/dist/ai/manifest/components/BbPopover.tree.json +36 -0
- package/dist/ai/manifest/components/BbPopoverPortal.json +21 -0
- package/dist/ai/manifest/components/BbProgress.json +31 -0
- package/dist/ai/manifest/components/BbProgress.tree.json +26 -0
- package/dist/ai/manifest/components/BbPtScope.json +21 -0
- package/dist/ai/manifest/components/BbRadio.json +88 -0
- package/dist/ai/manifest/components/BbRadio.tree.json +22 -0
- package/dist/ai/manifest/components/BbRadioGroup.json +132 -0
- package/dist/ai/manifest/components/BbRadioGroup.tree.json +61 -0
- package/dist/ai/manifest/components/BbRating.json +100 -0
- package/dist/ai/manifest/components/BbRating.tree.json +55 -0
- package/dist/ai/manifest/components/BbSelect.json +174 -0
- package/dist/ai/manifest/components/BbSelect.tree.json +53 -0
- package/dist/ai/manifest/components/BbSelectPopover.json +124 -0
- package/dist/ai/manifest/components/BbSelectPopover.tree.json +112 -0
- package/dist/ai/manifest/components/BbSlider.json +109 -0
- package/dist/ai/manifest/components/BbSlider.tree.json +89 -0
- package/dist/ai/manifest/components/BbSmoothHeight.json +31 -0
- package/dist/ai/manifest/components/BbSmoothHeight.tree.json +16 -0
- package/dist/ai/manifest/components/BbSpinner.json +31 -0
- package/dist/ai/manifest/components/BbSpinner.tree.json +31 -0
- package/dist/ai/manifest/components/BbSwitch.json +99 -0
- package/dist/ai/manifest/components/BbSwitch.tree.json +22 -0
- package/dist/ai/manifest/components/BbSwitchGroup.json +133 -0
- package/dist/ai/manifest/components/BbSwitchGroup.tree.json +61 -0
- package/dist/ai/manifest/components/BbTable.json +163 -0
- package/dist/ai/manifest/components/BbTable.tree.json +214 -0
- package/dist/ai/manifest/components/BbTabs.json +86 -0
- package/dist/ai/manifest/components/BbTabs.tree.json +88 -0
- package/dist/ai/manifest/components/BbTabsList.json +48 -0
- package/dist/ai/manifest/components/BbTabsList.tree.json +94 -0
- package/dist/ai/manifest/components/BbTabsPanels.json +32 -0
- package/dist/ai/manifest/components/BbTabsPanels.tree.json +69 -0
- package/dist/ai/manifest/components/BbTabsRoot.json +63 -0
- package/dist/ai/manifest/components/BbTag.json +130 -0
- package/dist/ai/manifest/components/BbTag.tree.json +40 -0
- package/dist/ai/manifest/components/BbTextInput.json +129 -0
- package/dist/ai/manifest/components/BbTextInput.tree.json +27 -0
- package/dist/ai/manifest/components/BbTextarea.json +124 -0
- package/dist/ai/manifest/components/BbTextarea.tree.json +37 -0
- package/dist/ai/manifest/components/BbTimePicker.json +76 -0
- package/dist/ai/manifest/components/BbTimePicker.tree.json +37 -0
- package/dist/ai/manifest/components/BbTimePickerInput.json +133 -0
- package/dist/ai/manifest/components/BbTimePickerInput.tree.json +44 -0
- package/dist/ai/manifest/components/BbToast.json +43 -0
- package/dist/ai/manifest/components/BbToast.tree.json +91 -0
- package/dist/ai/manifest/components/BbToastPortal.json +18 -0
- package/dist/ai/manifest/components/BbTooltip.json +60 -0
- package/dist/ai/manifest/components/BbTooltip.tree.json +41 -0
- package/dist/ai/manifest/components/BbTree.json +51 -0
- package/dist/ai/manifest/components/BbTree.tree.json +31 -0
- package/dist/ai/manifest/components/ChipsBox.json +32 -0
- package/dist/ai/manifest/components/ChipsBox.tree.json +11 -0
- package/dist/ai/manifest/components/ClearableButton.json +19 -0
- package/dist/ai/manifest/components/ClearableButton.tree.json +19 -0
- package/dist/ai/manifest/components/CommaBox.json +30 -0
- package/dist/ai/manifest/components/CommonField.json +56 -0
- package/dist/ai/manifest/components/CommonField.tree.json +110 -0
- package/dist/ai/manifest/components/CommonFieldInput.json +47 -0
- package/dist/ai/manifest/components/CommonFieldInput.tree.json +95 -0
- package/dist/ai/manifest/components/CommonPopover.json +44 -0
- package/dist/ai/manifest/components/CommonPopover.tree.json +26 -0
- package/dist/ai/manifest/components/CommonTimeSelector.json +31 -0
- package/dist/ai/manifest/components/CommonTimeSelector.tree.json +43 -0
- package/dist/ai/manifest/components/ErrorIcon.json +17 -0
- package/dist/ai/manifest/components/ErrorIcon.tree.json +22 -0
- package/dist/ai/manifest/components/FlatListBox.json +43 -0
- package/dist/ai/manifest/components/FlatListBox.tree.json +16 -0
- package/dist/ai/manifest/components/GroupedListBox.json +45 -0
- package/dist/ai/manifest/components/GroupedListBox.tree.json +16 -0
- package/dist/ai/manifest/components/GuidesComponent.json +17 -0
- package/dist/ai/manifest/components/ListBox.json +43 -0
- package/dist/ai/manifest/components/ListBox.tree.json +9 -0
- package/dist/ai/manifest/components/OptionsContainer.json +45 -0
- package/dist/ai/manifest/components/WarningIcon.json +17 -0
- package/dist/ai/manifest/components/WarningIcon.tree.json +22 -0
- package/dist/ai/manifest/index.json +121 -0
- package/dist/ai/manifest/meta.json +456 -0
- package/dist/ai/manifest/types.advanced.json +66 -0
- package/dist/ai/manifest/types.api.json +52 -0
- package/dist/ai/manifest/types.wrapper.json +119 -0
- package/dist/ai/recipes/inertia/approvals-inbox.md +206 -139
- package/dist/ai/recipes/inertia/inline-edit-workspace.md +218 -143
- package/dist/ai/recipes/inertia/layout-scaffold.md +93 -58
- package/dist/ai/recipes/inertia/onboarding.md +114 -87
- package/dist/ai/recipes/inertia/ownership-atlas.md +322 -322
- package/dist/ai/recipes/inertia/record-form.md +407 -218
- package/dist/ai/recipes/inertia/records-workspace.md +600 -219
- package/dist/ai/recipes/inertia/settings-workspace.md +3098 -0
- package/dist/ai/recipes/inertia/upload-center.md +189 -177
- package/dist/ai/recipes/inertia/wizard-form.md +233 -100
- package/dist/ai/recipes/nuxt/approvals-inbox.md +272 -158
- package/dist/ai/recipes/nuxt/inline-edit-workspace.md +298 -166
- package/dist/ai/recipes/nuxt/layout-scaffold.md +94 -59
- package/dist/ai/recipes/nuxt/onboarding.md +178 -117
- package/dist/ai/recipes/nuxt/ownership-atlas.md +1406 -0
- package/dist/ai/recipes/nuxt/record-form.md +506 -223
- package/dist/ai/recipes/nuxt/records-workspace.md +653 -206
- package/dist/ai/recipes/nuxt/settings-workspace.md +3189 -0
- package/dist/ai/recipes/nuxt/upload-center.md +282 -190
- package/dist/ai/recipes/nuxt/wizard-form.md +251 -102
- package/dist/ai/recipes/vue/approvals-inbox.md +248 -146
- package/dist/ai/recipes/vue/inline-edit-workspace.md +278 -157
- package/dist/ai/recipes/vue/layout-scaffold.md +93 -58
- package/dist/ai/recipes/vue/onboarding.md +112 -83
- package/dist/ai/recipes/vue/ownership-atlas.md +1360 -0
- package/dist/ai/recipes/vue/record-form.md +251 -130
- package/dist/ai/recipes/vue/records-workspace.md +609 -191
- package/dist/ai/recipes/vue/settings-workspace.md +3130 -0
- package/dist/ai/recipes/vue/upload-center.md +229 -176
- package/dist/ai/recipes/vue/wizard-form.md +190 -85
- package/dist/ai/source/BbAccordion.md +130 -32
- package/dist/ai/source/BbAlert.md +211 -64
- package/dist/ai/source/BbAsterisk.md +54 -4
- package/dist/ai/source/BbAvatar.md +73 -16
- package/dist/ai/source/BbBadge.md +305 -99
- package/dist/ai/source/BbBadgeButton.md +259 -81
- package/dist/ai/source/BbBaseButton.md +109 -13
- package/dist/ai/source/BbBaseCheckboxIcon.md +153 -36
- package/dist/ai/source/BbBaseRadioIcon.md +124 -18
- package/dist/ai/source/BbBaseSwitchIcon.md +146 -33
- package/dist/ai/source/BbBreadcrumbs.md +437 -95
- package/dist/ai/source/BbButton.md +695 -188
- package/dist/ai/source/BbCalendar.md +1884 -0
- package/dist/ai/source/BbCheckbox.md +509 -68
- package/dist/ai/source/BbCheckboxGroup.md +1132 -98
- package/dist/ai/source/BbCollapsible.md +99 -10
- package/dist/ai/source/BbColorInput.md +645 -68
- package/dist/ai/source/BbColorPalette.md +1337 -70
- package/dist/ai/source/BbConfirm.md +167 -8
- package/dist/ai/source/BbConfirmPortal.md +109 -9
- package/dist/ai/source/BbDatePicker.md +532 -383
- package/dist/ai/source/BbDatePickerInput.md +2166 -123
- package/dist/ai/source/BbDialog.md +557 -70
- package/dist/ai/source/BbDropdown.md +1320 -331
- package/dist/ai/source/BbDropdownButton.md +438 -93
- package/dist/ai/source/BbDropdownGroup.md +1023 -203
- package/dist/ai/source/BbDropzone.md +219 -38
- package/dist/ai/source/BbForm.md +1006 -18
- package/dist/ai/source/BbHoverCard.md +975 -0
- package/dist/ai/source/BbHoverCardPortal.md +314 -0
- package/dist/ai/source/BbIcon.md +139 -53
- package/dist/ai/source/BbIndicator.md +121 -60
- package/dist/ai/source/BbNumberInput.md +1571 -91
- package/dist/ai/source/BbOffCanvas.md +1057 -274
- package/dist/ai/source/BbPagination.md +231 -35
- package/dist/ai/source/BbPopover.md +491 -115
- package/dist/ai/source/BbPopoverPortal.md +387 -0
- package/dist/ai/source/BbProgress.md +156 -30
- package/dist/ai/source/BbPtScope.md +54 -0
- package/dist/ai/source/BbRadio.md +407 -58
- package/dist/ai/source/BbRadioGroup.md +1078 -112
- package/dist/ai/source/BbRating.md +775 -86
- package/dist/ai/source/BbSelect.md +1187 -104
- package/dist/ai/source/BbSelectPopover.md +1209 -205
- package/dist/ai/source/BbSlider.md +1422 -103
- package/dist/ai/source/BbSmoothHeight.md +59 -4
- package/dist/ai/source/BbSpinner.md +62 -6
- package/dist/ai/source/BbSwitch.md +322 -60
- package/dist/ai/source/BbSwitchGroup.md +834 -84
- package/dist/ai/source/BbTable.md +7684 -1945
- package/dist/ai/source/BbTabs.md +409 -124
- package/dist/ai/source/BbTabsList.md +538 -159
- package/dist/ai/source/BbTabsPanels.md +647 -0
- package/dist/ai/source/BbTabsRoot.md +360 -113
- package/dist/ai/source/BbTag.md +866 -89
- package/dist/ai/source/BbTextInput.md +615 -73
- package/dist/ai/source/BbTextarea.md +631 -70
- package/dist/ai/source/BbTimePicker.md +396 -70
- package/dist/ai/source/BbTimePickerInput.md +1353 -107
- package/dist/ai/source/BbToast.md +259 -80
- package/dist/ai/source/BbToastPortal.md +219 -72
- package/dist/ai/source/BbTooltip.md +303 -42
- package/dist/ai/source/BbTree.md +109 -14
- package/dist/ai/source/ChipsBox.md +25 -5
- package/dist/ai/source/CommaBox.md +21 -6
- package/dist/ai/source/CommonField.md +1707 -0
- package/dist/ai/source/CommonFieldInput.md +880 -0
- package/dist/ai/source/CommonPopover.md +141 -34
- package/dist/ai/source/CommonTimeSelector.md +744 -0
- package/dist/ai/source/ErrorIcon.md +2 -2
- package/dist/ai/source/FlatListBox.md +218 -18
- package/dist/ai/source/GroupedListBox.md +266 -45
- package/dist/ai/source/GuidesComponent.md +14 -7
- package/dist/ai/source/ListBox.md +57 -8
- package/dist/ai/source/OptionsContainer.md +346 -61
- package/dist/ai/source/WarningIcon.md +2 -2
- package/dist/assets/css/reset.css_inline.js +1 -1
- package/dist/assets/svgs/star.svg_raw.js +4 -0
- package/dist/components/BbAccordion/BbAccordion.vue_vue_type_script_setup_true_lang.js +59 -38
- package/dist/components/BbAccordion/types.d.ts +43 -3
- package/dist/components/BbAccordion/types.js +11 -0
- package/dist/components/BbAlert/BbAlert.vue.d.ts +1 -3
- package/dist/components/BbAlert/BbAlert.vue_vue_type_script_setup_true_lang.js +46 -30
- package/dist/components/BbAlert/types.d.ts +37 -3
- package/dist/components/BbAlert/types.js +13 -0
- package/dist/components/BbAsterisk/BbAsterisk.vue.d.ts +3 -1
- package/dist/components/BbAsterisk/BbAsterisk.vue_vue_type_script_setup_true_lang.js +23 -8
- package/dist/components/BbAsterisk/types.d.ts +18 -0
- package/dist/components/BbAsterisk/types.js +7 -0
- package/dist/components/BbAvatar/BbAvatar.vue.d.ts +2 -4
- package/dist/components/BbAvatar/BbAvatar.vue_vue_type_script_setup_true_lang.js +57 -44
- package/dist/components/BbAvatar/types.d.ts +23 -0
- package/dist/components/BbAvatar/types.js +7 -0
- package/dist/components/BbBadge/BadgeBodyContent.vue_vue_type_script_setup_true_lang.js +24 -18
- package/dist/components/BbBadge/BbBadge.vue_vue_type_script_setup_true_lang.js +96 -53
- package/dist/components/BbBadge/BbBadgeButton.vue_vue_type_script_setup_true_lang.js +32 -11
- package/dist/components/BbBadge/badgeButtonContext.d.ts +25 -8
- package/dist/components/BbBadge/types.d.ts +46 -3
- package/dist/components/BbBadge/types.js +13 -0
- package/dist/components/BbBaseButton/BbBaseButton.vue_vue_type_script_setup_true_lang.js +109 -96
- package/dist/components/BbBaseButton/RouterComponent.vue_vue_type_script_setup_true_lang.js +11 -11
- package/dist/components/BbBaseButton/types.d.ts +33 -3
- package/dist/components/BbBaseButton/types.js +9 -2
- package/dist/components/BbBaseCheckboxIcon/BbBaseCheckboxIcon.vue_vue_type_script_setup_true_lang.js +50 -18
- package/dist/components/BbBaseCheckboxIcon/types.d.ts +31 -2
- package/dist/components/BbBaseCheckboxIcon/types.js +8 -0
- package/dist/components/BbBaseRadioIcon/BbBaseRadioIcon.vue_vue_type_script_setup_true_lang.js +45 -15
- package/dist/components/BbBaseRadioIcon/types.d.ts +31 -2
- package/dist/components/BbBaseRadioIcon/types.js +8 -0
- package/dist/components/BbBaseSwitchIcon/BbBaseSwitchIcon.vue_vue_type_script_setup_true_lang.js +48 -16
- package/dist/components/BbBaseSwitchIcon/types.d.ts +31 -2
- package/dist/components/BbBaseSwitchIcon/types.js +8 -0
- package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue_vue_type_script_setup_true_lang.js +197 -140
- package/dist/components/BbBreadcrumbs/types.d.ts +62 -12
- package/dist/components/BbBreadcrumbs/types.js +12 -0
- package/dist/components/BbButton/BbButton.vue.d.ts +5 -0
- package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +145 -101
- package/dist/components/BbButton/toggleRoving.d.ts +6 -0
- package/dist/components/BbButton/toggleRoving.js +45 -0
- package/dist/components/BbButton/types.d.ts +122 -3
- package/dist/components/BbButton/types.js +16 -0
- package/dist/components/BbCalendar/BbCalendar.vue.d.ts +33 -0
- package/dist/components/BbCalendar/BbCalendar.vue.js +6 -0
- package/dist/components/BbCalendar/BbCalendar.vue_vue_type_script_setup_true_lang.js +614 -0
- package/dist/components/BbCalendar/CalendarMonthPanel.vue.js +5 -0
- package/dist/components/BbCalendar/CalendarMonthPanel.vue_vue_type_script_setup_true_lang.js +124 -0
- package/dist/components/BbCalendar/CalendarYearPanel.vue.js +5 -0
- package/dist/components/BbCalendar/CalendarYearPanel.vue_vue_type_script_setup_true_lang.js +129 -0
- package/dist/components/BbCalendar/calendarHost.d.ts +29 -0
- package/dist/components/BbCalendar/calendarHost.js +10 -0
- package/dist/components/BbCalendar/types.d.ts +231 -0
- package/dist/components/BbCalendar/types.js +29 -0
- package/dist/components/{BbBaseDatePicker/useDatePickerContext.d.ts → BbCalendar/useCalendarContext.d.ts} +10 -7
- package/dist/components/BbCalendar/useCalendarContext.js +11 -0
- package/dist/components/BbCalendar/useCalendarGrid.d.ts +211 -0
- package/dist/components/BbCalendar/useCalendarGrid.js +282 -0
- package/dist/components/BbCalendar/useDayGrid.d.ts +82 -0
- package/dist/components/BbCalendar/useDayGrid.js +246 -0
- package/dist/components/BbCalendar/useDayjsLocale.d.ts +64 -0
- package/dist/components/BbCalendar/useDayjsLocale.js +35 -0
- package/dist/components/BbCalendar/useToday.d.ts +23 -0
- package/dist/components/BbCalendar/useToday.js +21 -0
- package/dist/components/BbCheckbox/BbCheckbox.vue.d.ts +7 -7
- package/dist/components/BbCheckbox/BbCheckbox.vue_vue_type_script_setup_true_lang.js +224 -72
- package/dist/components/BbCheckbox/types.d.ts +192 -13
- package/dist/components/BbCheckbox/types.js +8 -0
- package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue.d.ts +15 -3
- package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +350 -106
- package/dist/components/BbCheckboxGroup/types.d.ts +256 -23
- package/dist/components/BbCheckboxGroup/types.js +10 -0
- package/dist/components/BbCollapsible/BbCollapsible.vue.d.ts +2 -1
- package/dist/components/BbCollapsible/BbCollapsible.vue_vue_type_script_setup_true_lang.js +41 -19
- package/dist/components/BbCollapsible/types.d.ts +46 -2
- package/dist/components/BbCollapsible/types.js +7 -0
- package/dist/components/BbColorInput/BbColorInput.vue.d.ts +17 -7
- package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +339 -87
- package/dist/components/BbColorInput/types.d.ts +242 -12
- package/dist/components/BbColorInput/types.js +24 -0
- package/dist/components/BbColorPalette/BbColorPalette.vue.d.ts +10 -2
- package/dist/components/BbColorPalette/BbColorPalette.vue_vue_type_script_setup_true_lang.js +530 -108
- package/dist/components/BbColorPalette/types.d.ts +88 -11
- package/dist/components/BbColorPalette/types.js +12 -0
- package/dist/components/BbConfirm/BbConfirm.vue.d.ts +2 -1
- package/dist/components/BbConfirm/BbConfirm.vue_vue_type_script_setup_true_lang.js +125 -76
- package/dist/components/BbConfirm/BbConfirmPortal.vue.d.ts +3 -5
- package/dist/components/BbConfirm/types.d.ts +64 -0
- package/dist/components/BbConfirm/types.js +17 -0
- package/dist/components/BbDatePicker/BbDatePicker.vue.d.ts +15 -10
- package/dist/components/BbDatePicker/BbDatePicker.vue_vue_type_script_setup_true_lang.js +324 -224
- package/dist/components/BbDatePicker/types.d.ts +114 -18
- package/dist/components/BbDatePicker/types.js +33 -0
- package/dist/components/BbDatePickerInput/BbDatePickerInput.vue.d.ts +16 -4
- package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +1225 -88
- package/dist/components/BbDatePickerInput/dateFieldLayout.d.ts +23 -0
- package/dist/components/BbDatePickerInput/dateFieldLayout.js +38 -0
- package/dist/components/BbDatePickerInput/types.d.ts +241 -21
- package/dist/components/BbDatePickerInput/types.js +39 -0
- package/dist/components/BbDialog/BbDialog.vue.d.ts +3 -3
- package/dist/components/BbDialog/BbDialog.vue_vue_type_script_setup_true_lang.js +230 -133
- package/dist/components/BbDialog/types.d.ts +98 -4
- package/dist/components/BbDialog/types.js +16 -0
- package/dist/components/BbDialog/useDialogStack.d.ts +12 -0
- package/dist/components/BbDialog/useDialogStack.js +9 -2
- package/dist/components/BbDropdown/AdaptiveDropdown.vue.d.ts +2 -0
- package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +132 -107
- package/dist/components/BbDropdown/BbDropdown.vue.d.ts +10 -2
- package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +448 -328
- package/dist/components/BbDropdown/BbDropdownGroup.vue.d.ts +16 -5
- package/dist/components/BbDropdown/BbDropdownGroup.vue_vue_type_script_setup_true_lang.js +48 -19
- package/dist/components/BbDropdown/BbDropdownList.vue.d.ts +8 -2
- package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +396 -340
- package/dist/components/BbDropdown/DropdownPipelineResolver.vue_vue_type_script_setup_true_lang.js +152 -122
- package/dist/components/BbDropdown/DropdownRow.vue.d.ts +40 -0
- package/dist/components/BbDropdown/DropdownRow.vue.js +5 -0
- package/dist/components/BbDropdown/DropdownRow.vue_vue_type_script_setup_true_lang.js +60 -0
- package/dist/components/BbDropdown/normalizeGroups.d.ts +8 -2
- package/dist/components/BbDropdown/normalizeGroups.js +70 -32
- package/dist/components/BbDropdown/types.d.ts +437 -102
- package/dist/components/BbDropdown/types.js +21 -2
- package/dist/components/BbDropdown/useDropdownContext.d.ts +12 -4
- package/dist/components/BbDropdown/useDropdownGroupRegistry.d.ts +62 -0
- package/dist/components/BbDropdownButton/BbDropdownButton.vue.d.ts +18 -3
- package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +193 -43
- package/dist/components/BbDropdownButton/types.d.ts +139 -10
- package/dist/components/BbDropdownButton/types.js +35 -0
- package/dist/components/BbDropzone/BbDropzone.vue.d.ts +2 -2
- package/dist/components/BbDropzone/BbDropzone.vue_vue_type_script_setup_true_lang.js +211 -143
- package/dist/components/BbDropzone/types.d.ts +54 -5
- package/dist/components/BbDropzone/types.js +17 -0
- package/dist/components/BbForm/BbForm.vue.d.ts +121 -0
- package/dist/{validated → components/BbForm}/BbForm.vue.js +1 -1
- package/dist/components/BbForm/BbForm.vue_vue_type_script_setup_true_lang.js +360 -0
- package/dist/components/BbForm/BbFormCustomField.d.ts +14 -0
- package/dist/components/BbForm/BbFormCustomField.js +49 -0
- package/dist/components/BbForm/bindFormField.d.ts +43 -0
- package/dist/components/BbForm/bindFormField.js +88 -0
- package/dist/components/BbForm/formFields.d.ts +77 -0
- package/dist/components/BbForm/formFields.js +11 -0
- package/dist/components/BbForm/formSchema.d.ts +56 -0
- package/dist/components/BbForm/formSchema.js +196 -0
- package/dist/components/BbForm/standardSchema.d.ts +59 -0
- package/dist/components/BbHoverCard/BbHoverCard.vue.d.ts +43 -0
- package/dist/components/{BbBaseRadio/BbBaseRadio.vue.js → BbHoverCard/BbHoverCard.vue.js} +2 -2
- package/dist/components/BbHoverCard/BbHoverCard.vue_vue_type_script_setup_true_lang.js +300 -0
- package/dist/components/BbHoverCard/BbHoverCardPortal.vue.d.ts +23 -0
- package/dist/components/BbHoverCard/BbHoverCardPortal.vue.js +5 -0
- package/dist/components/BbHoverCard/BbHoverCardPortal.vue_vue_type_script_setup_true_lang.js +13 -0
- package/dist/components/BbHoverCard/hoverCardFocus.d.ts +29 -0
- package/dist/components/BbHoverCard/hoverCardFocus.js +29 -0
- package/dist/components/BbHoverCard/types.d.ts +188 -0
- package/dist/components/BbHoverCard/types.js +13 -0
- package/dist/components/BbIcon/BbIcon.vue.d.ts +1 -3
- package/dist/components/BbIcon/BbIcon.vue_vue_type_script_setup_true_lang.js +59 -48
- package/dist/components/BbIcon/iconCache.d.ts +63 -0
- package/dist/components/BbIcon/iconCache.js +35 -0
- package/dist/components/BbIcon/types.d.ts +22 -2
- package/dist/components/BbIcon/types.js +7 -0
- package/dist/components/BbIndicator/BbIndicator.vue_vue_type_script_setup_true_lang.js +34 -21
- package/dist/components/BbIndicator/types.d.ts +24 -0
- package/dist/components/BbIndicator/types.js +7 -0
- package/dist/components/BbNumberInput/BbNumberInput.vue.d.ts +11 -8
- package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +667 -87
- package/dist/components/BbNumberInput/numberDisplay.d.ts +256 -0
- package/dist/components/BbNumberInput/numberDisplay.js +499 -0
- package/dist/components/BbNumberInput/types.d.ts +268 -19
- package/dist/components/BbNumberInput/types.js +8 -0
- package/dist/components/BbNumberInput/warroom/corpus.d.ts +58 -0
- package/dist/components/BbNumberInput/warroom/currency-verify.rows.d.ts +28 -0
- package/dist/components/BbNumberInput/warroom/currency.rows.d.ts +2 -0
- package/dist/components/BbNumberInput/warroom/harness.d.ts +217 -0
- package/dist/components/BbNumberInput/warroom/oracle.d.ts +150 -0
- package/dist/components/BbOffCanvas/BbOffCanvas.vue.d.ts +4 -6
- package/dist/components/BbOffCanvas/BbOffCanvas.vue_vue_type_script_setup_true_lang.js +311 -204
- package/dist/components/BbOffCanvas/hostCloseLabel.d.ts +3 -0
- package/dist/components/BbOffCanvas/hostCloseLabel.js +8 -0
- package/dist/components/BbOffCanvas/types.d.ts +85 -7
- package/dist/components/BbOffCanvas/types.js +15 -0
- package/dist/components/BbPagination/BbPagination.vue.d.ts +2 -2
- package/dist/components/BbPagination/BbPagination.vue_vue_type_script_setup_true_lang.js +146 -110
- package/dist/components/BbPagination/types.d.ts +38 -0
- package/dist/components/BbPagination/types.js +13 -0
- package/dist/components/BbPopover/BbPopover.vue.d.ts +5 -4
- package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +285 -193
- package/dist/components/BbPopover/BbPopoverPortal.vue.d.ts +23 -0
- package/dist/components/BbPopover/BbPopoverPortal.vue.js +5 -0
- package/dist/components/BbPopover/BbPopoverPortal.vue_vue_type_script_setup_true_lang.js +13 -0
- package/dist/components/BbPopover/types.d.ts +77 -6
- package/dist/components/BbPopover/types.js +14 -0
- package/dist/components/BbProgress/BbProgress.vue_vue_type_script_setup_true_lang.js +38 -17
- package/dist/components/BbProgress/types.d.ts +41 -0
- package/dist/components/BbProgress/types.js +7 -0
- package/dist/components/BbPtScope/BbPtScope.vue.d.ts +12 -0
- package/dist/components/BbPtScope/BbPtScope.vue.js +5 -0
- package/dist/components/BbPtScope/BbPtScope.vue_vue_type_script_setup_true_lang.js +13 -0
- package/dist/components/BbPtScope/types.d.ts +15 -0
- package/dist/components/BbRadio/BbRadio.vue.d.ts +7 -7
- package/dist/components/BbRadio/BbRadio.vue_vue_type_script_setup_true_lang.js +178 -59
- package/dist/components/BbRadio/types.d.ts +164 -13
- package/dist/components/BbRadio/types.js +8 -0
- package/dist/components/BbRadioGroup/BbRadioGroup.vue.d.ts +14 -2
- package/dist/components/BbRadioGroup/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +333 -108
- package/dist/components/BbRadioGroup/types.d.ts +258 -25
- package/dist/components/BbRadioGroup/types.js +10 -0
- package/dist/components/BbRating/BbRating.vue.d.ts +10 -8
- package/dist/components/BbRating/BbRating.vue_vue_type_script_setup_true_lang.js +269 -78
- package/dist/components/BbRating/types.d.ts +188 -13
- package/dist/components/BbRating/types.js +21 -0
- package/dist/components/BbSelect/BbSelect.vue.d.ts +17 -3
- package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +565 -108
- package/dist/components/BbSelect/types.d.ts +302 -23
- package/dist/components/BbSelect/types.js +41 -0
- package/dist/components/BbSelectPopover/BbSelectPopover.vue.d.ts +15 -1
- package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +587 -362
- package/dist/components/BbSelectPopover/sheetChipAttrs.d.ts +18 -0
- package/dist/components/BbSelectPopover/sheetChipAttrs.js +5 -0
- package/dist/components/BbSelectPopover/types.d.ts +177 -15
- package/dist/components/BbSelectPopover/types.js +24 -0
- package/dist/components/BbSlider/BbSlider.vue.d.ts +13 -8
- package/dist/components/BbSlider/BbSlider.vue_vue_type_script_setup_true_lang.js +477 -97
- package/dist/components/BbSlider/types.d.ts +214 -17
- package/dist/components/BbSlider/types.js +26 -0
- package/dist/components/BbSmoothHeight/BbSmoothHeight.vue.d.ts +1 -1
- package/dist/components/BbSmoothHeight/BbSmoothHeight.vue_vue_type_script_setup_true_lang.js +60 -48
- package/dist/components/BbSmoothHeight/types.d.ts +19 -0
- package/dist/components/BbSmoothHeight/types.js +7 -0
- package/dist/components/BbSpinner/BbSpinner.vue.d.ts +1 -3
- package/dist/components/BbSpinner/BbSpinner.vue_vue_type_script_setup_true_lang.js +27 -14
- package/dist/components/BbSpinner/types.d.ts +22 -1
- package/dist/components/BbSpinner/types.js +7 -0
- package/dist/components/BbSwitch/BbSwitch.vue.d.ts +7 -7
- package/dist/components/BbSwitch/BbSwitch.vue_vue_type_script_setup_true_lang.js +230 -78
- package/dist/components/BbSwitch/types.d.ts +25 -10
- package/dist/components/BbSwitch/types.js +5 -0
- package/dist/components/BbSwitchGroup/BbSwitchGroup.vue.d.ts +14 -2
- package/dist/components/BbSwitchGroup/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +350 -106
- package/dist/components/BbSwitchGroup/types.d.ts +36 -8
- package/dist/components/BbSwitchGroup/types.js +5 -0
- package/dist/components/BbTable/BbTable.vue.d.ts +31 -50
- package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +2217 -685
- package/dist/components/BbTable/BbTableDataRow.d.ts +198 -0
- package/dist/components/BbTable/BbTableDataRow.js +151 -0
- package/dist/components/BbTable/BbTableEdgeRow.d.ts +110 -0
- package/dist/components/BbTable/BbTableEdgeRow.js +65 -0
- package/dist/components/BbTable/BbTableExpandRow.d.ts +84 -0
- package/dist/components/BbTable/BbTableExpandRow.js +62 -0
- package/dist/components/BbTable/BbTableSelectToggle.d.ts +128 -0
- package/dist/components/BbTable/BbTableSelectToggle.js +131 -0
- package/dist/components/BbTable/gridWidgets.d.ts +30 -0
- package/dist/components/BbTable/gridWidgets.js +14 -0
- package/dist/components/BbTable/types.d.ts +571 -151
- package/dist/components/BbTable/types.js +33 -0
- package/dist/components/BbTable/utils.d.ts +145 -4
- package/dist/components/BbTable/utils.js +161 -37
- package/dist/components/BbTabs/BbTabs.vue.d.ts +3 -1
- package/dist/components/BbTabs/BbTabs.vue_vue_type_script_setup_true_lang.js +66 -26
- package/dist/components/BbTabs/BbTabsList.vue.d.ts +3 -10
- package/dist/components/BbTabs/BbTabsList.vue_vue_type_script_setup_true_lang.js +143 -81
- package/dist/components/BbTabs/BbTabsPanels.vue.d.ts +12 -0
- package/dist/components/{BbBaseSwitch/BbBaseSwitch.vue.js → BbTabs/BbTabsPanels.vue.js} +2 -2
- package/dist/components/BbTabs/BbTabsPanels.vue_vue_type_script_setup_true_lang.js +59 -0
- package/dist/components/BbTabs/BbTabsRoot.vue.d.ts +3 -1
- package/dist/components/BbTabs/BbTabsRoot.vue_vue_type_script_setup_true_lang.js +6 -1
- package/dist/components/BbTabs/types.d.ts +221 -39
- package/dist/components/BbTabs/types.js +34 -0
- package/dist/components/BbTag/BbTag.vue.d.ts +13 -10
- package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +404 -93
- package/dist/components/BbTag/types.d.ts +153 -15
- package/dist/components/BbTag/types.js +22 -0
- package/dist/components/BbTextInput/BbTextInput.vue.d.ts +31 -37
- package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +312 -107
- package/dist/components/BbTextInput/types.d.ts +204 -14
- package/dist/components/BbTextInput/types.js +12 -0
- package/dist/components/BbTextarea/BbTextarea.vue.d.ts +31 -37
- package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +342 -114
- package/dist/components/BbTextarea/types.d.ts +194 -15
- package/dist/components/BbTextarea/types.js +12 -0
- package/dist/components/BbTimePicker/BbTimePicker.vue.d.ts +12 -4
- package/dist/components/BbTimePicker/BbTimePicker.vue_vue_type_script_setup_true_lang.js +199 -122
- package/dist/components/BbTimePicker/types.d.ts +94 -7
- package/dist/components/BbTimePicker/types.js +18 -0
- package/dist/components/BbTimePickerInput/BbTimePickerInput.vue.d.ts +14 -4
- package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +779 -86
- package/dist/components/BbTimePickerInput/types.d.ts +183 -22
- package/dist/components/BbTimePickerInput/types.js +25 -0
- package/dist/components/BbToast/BbToast.vue_vue_type_script_setup_true_lang.js +63 -25
- package/dist/components/BbToast/BbToastMessage.vue.d.ts +4 -1
- package/dist/components/BbToast/BbToastMessage.vue_vue_type_script_setup_true_lang.js +79 -76
- package/dist/components/BbToast/BbToastPortal.vue.d.ts +1 -0
- package/dist/components/BbToast/BbToastRegion.vue.d.ts +4 -1
- package/dist/components/BbToast/BbToastRegion.vue_vue_type_script_setup_true_lang.js +72 -64
- package/dist/components/BbToast/types.d.ts +54 -1
- package/dist/components/BbToast/types.js +28 -0
- package/dist/components/BbTooltip/BbTooltip.vue_vue_type_script_setup_true_lang.js +127 -92
- package/dist/components/BbTooltip/tooltipWarmup.d.ts +23 -0
- package/dist/components/BbTooltip/tooltipWarmup.js +7 -0
- package/dist/components/BbTooltip/types.d.ts +50 -5
- package/dist/components/BbTooltip/types.js +7 -0
- package/dist/components/BbTree/BbTree.vue.d.ts +15 -3
- package/dist/components/BbTree/BbTree.vue_vue_type_script_setup_true_lang.js +57 -29
- package/dist/components/BbTree/BbTreeLevel.vue.d.ts +1 -1
- package/dist/components/BbTree/BbTreeLevel.vue_vue_type_script_setup_true_lang.js +24 -20
- package/dist/components/BbTree/context.d.ts +9 -1
- package/dist/components/BbTree/types.d.ts +40 -5
- package/dist/components/BbTree/types.js +7 -0
- package/dist/components/ChipsBox/ChipsBox.vue_vue_type_script_setup_true_lang.js +46 -44
- package/dist/components/ChipsBox/types.d.ts +7 -0
- package/dist/components/ClearableButton/ClearableButton.vue_vue_type_script_setup_true_lang.js +5 -5
- package/dist/components/CommaBox/CommaBox.vue_vue_type_script_setup_true_lang.js +11 -7
- package/dist/components/CommaBox/types.d.ts +7 -0
- package/dist/components/{BbBaseInputContainer/BbBaseInputContainer.vue.d.ts → CommonField/CommonField.vue.d.ts} +5 -5
- package/dist/components/{BbTabs/BbTabsPanes.vue.js → CommonField/CommonField.vue.js} +2 -2
- package/dist/components/CommonField/CommonField.vue_vue_type_script_setup_true_lang.js +231 -0
- package/dist/components/CommonField/messageHeightMatrix.d.ts +2 -0
- package/dist/components/{BbBaseInputContainer → CommonField}/types.d.ts +78 -16
- package/dist/components/{CommonInputWrapper/CommonInputWrapper.vue.d.ts → CommonFieldInput/CommonFieldInput.vue.d.ts} +5 -4
- package/dist/components/{BbBaseRadioGroup/BbBaseRadioGroup.vue.js → CommonFieldInput/CommonFieldInput.vue.js} +2 -2
- package/dist/components/CommonFieldInput/CommonFieldInput.vue_vue_type_script_setup_true_lang.js +121 -0
- package/dist/components/CommonFieldInput/boxBorderMatrix.d.ts +10 -0
- package/dist/components/{CommonInputWrapper → CommonFieldInput}/types.d.ts +27 -8
- package/dist/components/CommonPopover/CommonPopover.vue.d.ts +11 -2
- package/dist/components/CommonPopover/CommonPopover.vue_vue_type_script_setup_true_lang.js +80 -65
- package/dist/components/CommonPopover/types.d.ts +29 -9
- package/dist/components/CommonTimeSelector/CommonTimeSelector.vue.d.ts +49 -0
- package/dist/components/{BbBaseColorPalette/BbBaseColorPalette.vue.js → CommonTimeSelector/CommonTimeSelector.vue.js} +2 -2
- package/dist/components/CommonTimeSelector/CommonTimeSelector.vue_vue_type_script_setup_true_lang.js +241 -0
- package/dist/components/CommonTimeSelector/types.d.ts +6 -0
- package/dist/components/CommonTimeSelector/useMeridiem.d.ts +19 -0
- package/dist/components/CommonTimeSelector/useMeridiem.js +41 -0
- package/dist/components/FlatListBox/FlatListBox.vue.d.ts +5 -1
- package/dist/components/FlatListBox/FlatListBox.vue_vue_type_script_setup_true_lang.js +176 -98
- package/dist/components/FlatListBox/types.d.ts +33 -2
- package/dist/components/GroupedListBox/GroupedListBox.vue.d.ts +5 -1
- package/dist/components/GroupedListBox/GroupedListBox.vue_vue_type_script_setup_true_lang.js +237 -146
- package/dist/components/GroupedListBox/types.d.ts +33 -2
- package/dist/components/ListBox/ListBox.vue.d.ts +5 -1
- package/dist/components/ListBox/ListBox.vue_vue_type_script_setup_true_lang.js +100 -69
- package/dist/components/ListBox/types.d.ts +33 -2
- package/dist/components/OptionsContainer/OptionsContainer.vue.d.ts +1 -1
- package/dist/components/OptionsContainer/OptionsContainer.vue_vue_type_script_setup_true_lang.js +117 -37
- package/dist/components/OptionsContainer/types.d.ts +79 -10
- package/dist/components/Transitions/ScaleFade.vue_vue_type_script_setup_true_lang.js +8 -8
- package/dist/components/Transitions/Slide.vue.js +1 -1
- package/dist/composables/formSubmitLock.d.ts +8 -0
- package/dist/composables/formSubmitLock.js +4 -0
- package/dist/composables/ssrMarker.d.ts +15 -0
- package/dist/composables/ssrMarker.js +19 -0
- package/dist/composables/useBaseOptions.d.ts +18 -1
- package/dist/composables/useBaseOptions.js +83 -37
- package/dist/composables/useBbConfig.d.ts +27 -6
- package/dist/composables/useBbConfig.js +8 -2
- package/dist/composables/useBbDropdownContext.d.ts +13 -8
- package/dist/composables/useBbFormContext.d.ts +142 -8
- package/dist/composables/useBbFormContext.js +62 -30
- package/dist/composables/useBbFormField.d.ts +60 -0
- package/dist/composables/useBbFormField.js +57 -0
- package/dist/composables/useBbTableContext.d.ts +45 -1
- package/dist/composables/useBbTableContext.js +93 -87
- package/dist/composables/useBbTabsContext.d.ts +24 -18
- package/dist/composables/useBbTabsContext.js +154 -112
- package/dist/composables/useCharacterCounter.d.ts +33 -0
- package/dist/composables/useCharacterCounter.js +29 -0
- package/dist/composables/useClosingInert.d.ts +4 -4
- package/dist/composables/useCoarsePointer.js +7 -10
- package/dist/composables/useCoherence.js +1 -1
- package/dist/composables/useConfig.d.ts +59 -0
- package/dist/composables/useConfig.js +15 -0
- package/dist/composables/useConfirm.d.ts +39 -7
- package/dist/composables/useConfirm.js +50 -41
- package/dist/composables/useEscapeStackEntry.d.ts +13 -0
- package/dist/composables/useEscapeStackEntry.js +16 -0
- package/dist/composables/useFormBinding.d.ts +135 -0
- package/dist/composables/useFormBinding.js +46 -0
- package/dist/composables/useHydrated.d.ts +30 -0
- package/dist/composables/useHydrated.js +31 -7
- package/dist/composables/useId.d.ts +4 -3
- package/dist/composables/useId.js +1 -7
- package/dist/composables/useItemText.d.ts +5 -1
- package/dist/composables/useItemText.js +8 -3
- package/dist/composables/useItemValue.d.ts +5 -1
- package/dist/composables/useItemValue.js +8 -3
- package/dist/composables/useItemsGetter.d.ts +73 -2
- package/dist/composables/useItemsGetter.js +81 -21
- package/dist/composables/useKeyboardInset.d.ts +28 -0
- package/dist/composables/useKeyboardInset.js +32 -0
- package/dist/composables/useLocale.js +13 -9
- package/dist/composables/useMobile.js +7 -10
- package/dist/composables/useOverlayYield.d.ts +23 -0
- package/dist/composables/useOverlayYield.js +20 -0
- package/dist/composables/usePassthrough.d.ts +228 -0
- package/dist/composables/usePassthrough.js +247 -0
- package/dist/composables/usePrefill.d.ts +26 -5
- package/dist/composables/usePrefill.js +36 -19
- package/dist/composables/useSafeAreaInternal.js +1 -1
- package/dist/composables/useSegmentedFields.d.ts +2 -2
- package/dist/composables/useSegmentedFields.js +4 -4
- package/dist/composables/useServerPrefetch.d.ts +28 -0
- package/dist/composables/useServerPrefetch.js +9 -0
- package/dist/composables/useSsrState.d.ts +28 -0
- package/dist/composables/useSsrState.js +13 -0
- package/dist/composables/useTableWidthContext.d.ts +24 -4
- package/dist/composables/useTableWidthContext.js +31 -28
- package/dist/composables/useToast.d.ts +18 -1
- package/dist/composables/useToast.js +31 -18
- package/dist/composables/useToggleInput.d.ts +44 -0
- package/dist/composables/useToggleInput.js +39 -0
- package/dist/composables/useViewportWidth.d.ts +5 -25
- package/dist/composables/useViewportWidth.js +14 -7
- package/dist/deprecation/ai-deprecations.json.d.ts +2259 -263
- package/dist/deprecation/ai-deprecations.json.js +1 -1
- package/dist/deprecation/removedProps.js +9 -4
- package/dist/directives/bbDropdown.d.ts +15 -4
- package/dist/directives/bbDropdown.js +42 -10
- package/dist/directives/bbHoverCard.d.ts +59 -0
- package/dist/directives/bbHoverCard.js +33 -0
- package/dist/directives/bbPopover.d.ts +60 -0
- package/dist/directives/bbPopover.js +40 -0
- package/dist/directives/bbTooltip.d.ts +8 -0
- package/dist/directives/createPopoverDirective.d.ts +86 -0
- package/dist/directives/createPopoverDirective.js +111 -33
- package/dist/directives/directivePortal.d.ts +75 -0
- package/dist/directives/directivePortal.js +37 -0
- package/dist/directives/renderingInstance.d.ts +2 -0
- package/dist/directives/renderingInstance.js +25 -0
- package/dist/i18n/index.d.ts +14 -25
- package/dist/i18n/locales/cs.json +28 -18
- package/dist/i18n/locales/da.json +31 -21
- package/dist/i18n/locales/de-CH.json +137 -0
- package/dist/i18n/locales/de.json +30 -20
- package/dist/i18n/locales/el.json +28 -18
- package/dist/i18n/locales/en-GB.json +137 -0
- package/dist/i18n/locales/en.json +25 -15
- package/dist/i18n/locales/es-MX.json +137 -0
- package/dist/i18n/locales/es.json +34 -24
- package/dist/i18n/locales/fi.json +26 -16
- package/dist/i18n/locales/fr.json +36 -26
- package/dist/i18n/locales/hu.json +26 -16
- package/dist/i18n/locales/it.json +29 -19
- package/dist/i18n/locales/ja.json +31 -21
- package/dist/i18n/locales/ko.json +28 -18
- package/dist/i18n/locales/nb.json +31 -21
- package/dist/i18n/locales/nl.json +39 -29
- package/dist/i18n/locales/pl.json +27 -17
- package/dist/i18n/locales/{pt.json → pt-BR.json} +36 -26
- package/dist/i18n/locales/pt-PT.json +137 -0
- package/dist/i18n/locales/ro.json +40 -30
- package/dist/i18n/locales/ru.json +27 -17
- package/dist/i18n/locales/sv.json +34 -24
- package/dist/i18n/locales/tr.json +32 -22
- package/dist/i18n/locales/uk.json +27 -17
- package/dist/i18n/locales/{zh-cn.json → zh-CN.json} +28 -18
- package/dist/i18n/locales/zh-HK.json +137 -0
- package/dist/i18n/locales/zh-TW.json +137 -0
- package/dist/i18n/regionHints.d.ts +16 -0
- package/dist/i18n/regionHints.js +49 -0
- package/dist/i18n/regions.d.ts +286 -0
- package/dist/i18n/regions.js +265 -0
- package/dist/icon-scan.d.ts +276 -0
- package/dist/icon-scan.js +485 -0
- package/dist/icons-whitelist.d.ts +5 -4
- package/dist/index.d.ts +61 -23
- package/dist/index.js +84 -72
- package/dist/llms-full.txt +98740 -60296
- package/dist/llms-medium.txt +1617 -393
- package/dist/llms.txt +40 -23
- package/dist/locale-blueprint.json +33 -17
- package/dist/nuxt-auto-imports.d.ts +76 -0
- package/dist/nuxt-auto-imports.js +32 -0
- package/dist/nuxt-module.d.ts +30 -15
- package/dist/nuxt.js +35 -9
- package/dist/passthrough-deduper.js +5 -0
- package/dist/plugin.d.ts +10 -1
- package/dist/plugin.js +33 -19
- package/dist/project-dts.d.ts +92 -0
- package/dist/project-dts.js +173 -0
- package/dist/reset.css +1 -1
- package/dist/runtime/nuxt-plugin.js +36 -21
- package/dist/styles.css +3 -2
- package/dist/types/AlertVariant.d.ts +10 -1
- package/dist/types/BadgeVariant.d.ts +16 -5
- package/dist/types/ButtonVariant.d.ts +12 -1
- package/dist/types/ColumnName.d.ts +30 -3
- package/dist/types/CommonProps.d.ts +15 -5
- package/dist/types/Config.d.ts +112 -1
- package/dist/types/ConfirmVariant.d.ts +8 -1
- package/dist/types/DropdownItemVariant.d.ts +8 -1
- package/dist/types/FieldLayout.d.ts +39 -0
- package/dist/types/FieldLayout.js +8 -0
- package/dist/types/IndicatorVariant.d.ts +11 -1
- package/dist/types/InputVariant.d.ts +30 -0
- package/dist/types/ItemProps.d.ts +50 -0
- package/dist/types/ItemsProvider.d.ts +94 -0
- package/dist/types/Option.d.ts +6 -0
- package/dist/types/PtScope.d.ts +15 -0
- package/dist/types/RegistryKey.d.ts +10 -0
- package/dist/types/TabsVariant.d.ts +25 -0
- package/dist/types/ToastVariant.d.ts +12 -2
- package/dist/types/TooltipVariant.d.ts +8 -1
- package/dist/types/passthrough.d.ts +378 -0
- package/dist/types/passthrough.js +78 -0
- package/dist/types/ptComponentMap.d.ts +63 -0
- package/dist/utilities/functions/animationsSettled.d.ts +7 -0
- package/dist/utilities/functions/animationsSettled.js +6 -0
- package/dist/utilities/functions/elementLabel.d.ts +8 -0
- package/dist/utilities/functions/elementLabel.js +6 -0
- package/dist/utilities/functions/hasVnodeListener.d.ts +16 -0
- package/dist/utilities/functions/hasVnodeListener.js +12 -0
- package/dist/utilities/functions/isImeComposing.d.ts +7 -0
- package/dist/utilities/functions/isImeComposing.js +4 -0
- package/dist/utilities/functions/itemProps.d.ts +46 -0
- package/dist/utilities/functions/itemProps.js +47 -0
- package/dist/utilities/functions/parseSize.d.ts +2 -1
- package/dist/utilities/functions/readableValue.d.ts +6 -0
- package/dist/utilities/functions/readableValue.js +4 -0
- package/dist/utilities/functions/settlesVisible.d.ts +20 -0
- package/dist/utilities/functions/settlesVisible.js +18 -0
- package/dist/utilities/functions/slotKey.d.ts +13 -8
- package/dist/utilities/functions/slotKey.js +78 -2
- package/dist/utilities/functions/snapToStep.js +2 -1
- package/dist/utilities/functions/throttle.d.ts +1 -4
- package/dist/utilities/functions/throttle.js +1 -4
- package/dist/utilities/functions/toggleInput.d.ts +114 -0
- package/dist/utilities/functions/toggleInput.js +61 -0
- package/dist/utilities/functions/warnRemovedAttrs.d.ts +39 -1
- package/dist/utilities/functions/warnRemovedAttrs.js +85 -14
- package/dist/utilities/misc/listboxMetrics.d.ts +9 -3
- package/dist/utilities/misc/listboxMetrics.js +5 -2
- package/dist/utilities/misc/ssrStateInjectionKey.d.ts +47 -0
- package/dist/utilities/misc/ssrStateInjectionKey.js +4 -0
- package/dist/utilities/misc/ssrValue.d.ts +20 -0
- package/dist/utilities/misc/ssrValue.js +7 -0
- package/dist/utils/cssLayers.d.ts +91 -0
- package/dist/utils/cssLayers.js +43 -0
- package/dist/utils/injectLibraryStyles.d.ts +3 -1
- package/dist/utils/injectLibraryStyles.js +24 -23
- package/dist/utils/overlayEscapeStack.d.ts +39 -1
- package/dist/utils/overlayEscapeStack.js +19 -8
- package/dist/utils/passthrough.d.ts +67 -0
- package/dist/utils/passthrough.js +100 -0
- package/dist/utils/passthroughDeduper.d.ts +2 -0
- package/dist/utils/ptScope.d.ts +8 -0
- package/dist/utils/ptScope.js +4 -0
- package/dist/utils/versionCheck.d.ts +19 -0
- package/dist/utils/versionCheck.js +18 -0
- package/dist/vite-plugin.d.ts +324 -71
- package/dist/vite.js +577 -385
- package/llms.txt +41 -24
- package/package.json +74 -38
- package/scripts/README.md +35 -33
- package/scripts/lib/agent-manifest.mjs +510 -0
- package/scripts/lib/check-fix.mjs +129 -0
- package/scripts/lib/component-attr-targets.ts +123 -0
- package/scripts/lib/component-tree.ts +648 -0
- package/scripts/lib/css-class-check.mjs +329 -0
- package/scripts/lib/css-class-surface.mjs +292 -0
- package/scripts/lib/css-color-resolve.mjs +296 -0
- package/scripts/lib/css-local-check.mjs +432 -0
- package/scripts/lib/design-token-manifest.mjs +506 -0
- package/scripts/lib/doc-sections.mjs +250 -0
- package/scripts/lib/ensure-manifest.mjs +106 -10
- package/scripts/lib/eslint-disable.mjs +167 -0
- package/scripts/lib/eslint-plugin.d.ts +84 -1
- package/scripts/lib/eslint-plugin.mjs +2190 -33
- package/scripts/lib/example-checks.mjs +337 -0
- package/scripts/lib/form-v-model.mjs +190 -0
- package/scripts/lib/guide-claims.mjs +452 -0
- package/scripts/lib/hand-imported-styles.mjs +362 -0
- package/scripts/lib/hand-roll-hints.mjs +50 -6
- package/scripts/lib/helper-canon.mjs +176 -0
- package/scripts/lib/helpers-add.mjs +1303 -0
- package/scripts/lib/html-attributes.mjs +353 -0
- package/scripts/lib/items-provider-context.mjs +842 -0
- package/scripts/lib/linked-target.mjs +30 -0
- package/scripts/lib/local-components.mjs +206 -0
- package/scripts/lib/locale-check.mjs +182 -0
- package/scripts/lib/manifest-pointers.mjs +71 -0
- package/scripts/lib/mcp-config.mjs +93 -58
- package/scripts/lib/migrate-fix.mjs +62 -3
- package/scripts/lib/portal-names.mjs +458 -0
- package/scripts/lib/project-variant-dts.mjs +144 -0
- package/scripts/lib/public-type-exports.mjs +273 -0
- package/scripts/lib/reactive-v-model.mjs +221 -0
- package/scripts/lib/redundant-item-accessor.mjs +398 -0
- package/scripts/lib/renamed-item-field.mjs +343 -0
- package/scripts/lib/slot-key.mjs +147 -0
- package/scripts/lib/slot-renames.mjs +45 -0
- package/scripts/lib/squashed-slot-words.mjs +133 -0
- package/scripts/lib/text-null-value.mjs +260 -0
- package/scripts/lib/toolchain-check.mjs +217 -0
- package/scripts/lib/unimported-components.mjs +263 -0
- package/scripts/lib/validate-bb-markup.mjs +2932 -100
- package/scripts/lib/wrapper-props.mjs +188 -0
- package/dist/ai/BbBaseCheckbox.md +0 -49
- package/dist/ai/BbBaseCheckboxGroup.md +0 -64
- package/dist/ai/BbBaseColorInput.md +0 -65
- package/dist/ai/BbBaseColorPalette.md +0 -39
- package/dist/ai/BbBaseDatePicker.md +0 -43
- package/dist/ai/BbBaseDatePickerInput.md +0 -73
- package/dist/ai/BbBaseInputContainer.md +0 -48
- package/dist/ai/BbBaseNumberInput.md +0 -71
- package/dist/ai/BbBaseRadio.md +0 -46
- package/dist/ai/BbBaseRadioGroup.md +0 -64
- package/dist/ai/BbBaseRating.md +0 -52
- package/dist/ai/BbBaseSelect.md +0 -88
- package/dist/ai/BbBaseSlider.md +0 -56
- package/dist/ai/BbBaseSwitch.md +0 -49
- package/dist/ai/BbBaseSwitchGroup.md +0 -64
- package/dist/ai/BbBaseTag.md +0 -68
- package/dist/ai/BbBaseTextInput.md +0 -75
- package/dist/ai/BbBaseTextarea.md +0 -62
- package/dist/ai/BbBaseTimePickerInput.md +0 -62
- package/dist/ai/BbTabsPanes.md +0 -27
- package/dist/ai/CommonInputWrapper.md +0 -42
- package/dist/ai/recipes/inertia/command-palette.md +0 -311
- package/dist/ai/recipes/nuxt/command-palette.md +0 -300
- package/dist/ai/recipes/vue/command-palette.md +0 -297
- package/dist/ai/source/BbBaseCheckbox.md +0 -461
- package/dist/ai/source/BbBaseCheckboxGroup.md +0 -554
- package/dist/ai/source/BbBaseColorInput.md +0 -431
- package/dist/ai/source/BbBaseColorPalette.md +0 -942
- package/dist/ai/source/BbBaseDatePicker.md +0 -1448
- package/dist/ai/source/BbBaseDatePickerInput.md +0 -1940
- package/dist/ai/source/BbBaseInputContainer.md +0 -1211
- package/dist/ai/source/BbBaseNumberInput.md +0 -617
- package/dist/ai/source/BbBaseRadio.md +0 -381
- package/dist/ai/source/BbBaseRadioGroup.md +0 -539
- package/dist/ai/source/BbBaseRating.md +0 -607
- package/dist/ai/source/BbBaseSelect.md +0 -945
- package/dist/ai/source/BbBaseSlider.md +0 -1144
- package/dist/ai/source/BbBaseSwitch.md +0 -246
- package/dist/ai/source/BbBaseSwitchGroup.md +0 -302
- package/dist/ai/source/BbBaseTag.md +0 -694
- package/dist/ai/source/BbBaseTextInput.md +0 -511
- package/dist/ai/source/BbBaseTextarea.md +0 -504
- package/dist/ai/source/BbBaseTimePickerInput.md +0 -1037
- package/dist/ai/source/BbTabsPanes.md +0 -377
- package/dist/ai/source/CommonInputWrapper.md +0 -584
- package/dist/alert-variants.d.ts +0 -19
- package/dist/assets/svgs/sort.svg_raw.js +0 -4
- package/dist/badge-variants.d.ts +0 -19
- package/dist/button-variants.d.ts +0 -21
- package/dist/components/BbBadge/BadgeAppendIcon.vue.d.ts +0 -3
- package/dist/components/BbBadge/BadgeAppendIcon.vue.js +0 -5
- package/dist/components/BbBadge/BadgeAppendIcon.vue_vue_type_script_setup_true_lang.js +0 -22
- package/dist/components/BbBaseCheckbox/BbBaseCheckbox.vue.d.ts +0 -40
- package/dist/components/BbBaseCheckbox/BbBaseCheckbox.vue.js +0 -6
- package/dist/components/BbBaseCheckbox/BbBaseCheckbox.vue_vue_type_script_setup_true_lang.js +0 -145
- package/dist/components/BbBaseCheckbox/types.d.ts +0 -224
- package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue.d.ts +0 -19
- package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue.js +0 -6
- package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue_vue_type_script_setup_true_lang.js +0 -190
- package/dist/components/BbBaseCheckboxGroup/types.d.ts +0 -257
- package/dist/components/BbBaseColorInput/BbBaseColorInput.vue.d.ts +0 -43
- package/dist/components/BbBaseColorInput/BbBaseColorInput.vue.js +0 -6
- package/dist/components/BbBaseColorInput/BbBaseColorInput.vue_vue_type_script_setup_true_lang.js +0 -184
- package/dist/components/BbBaseColorInput/types.d.ts +0 -219
- package/dist/components/BbBaseColorPalette/BbBaseColorPalette.vue.d.ts +0 -13
- package/dist/components/BbBaseColorPalette/BbBaseColorPalette.vue_vue_type_script_setup_true_lang.js +0 -395
- package/dist/components/BbBaseColorPalette/types.d.ts +0 -40
- package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue.d.ts +0 -20
- package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue.js +0 -6
- package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue_vue_type_script_setup_true_lang.js +0 -407
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue.d.ts +0 -47
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue.js +0 -5
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue_vue_type_script_setup_true_lang.js +0 -318
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue.js +0 -5
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue_vue_type_script_setup_true_lang.js +0 -115
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerYearSelector.vue.js +0 -5
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerYearSelector.vue_vue_type_script_setup_true_lang.js +0 -116
- package/dist/components/BbBaseDatePicker/types.d.ts +0 -108
- package/dist/components/BbBaseDatePicker/useDatePickerContext.js +0 -11
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue.d.ts +0 -31
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue.js +0 -6
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue_vue_type_script_setup_true_lang.js +0 -737
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerTimeSelector.vue.d.ts +0 -30
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerTimeSelector.vue.js +0 -6
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerTimeSelector.vue_vue_type_script_setup_true_lang.js +0 -204
- package/dist/components/BbBaseDatePickerInput/types.d.ts +0 -325
- package/dist/components/BbBaseInputContainer/BbBaseInputContainer.vue.js +0 -6
- package/dist/components/BbBaseInputContainer/BbBaseInputContainer.vue_vue_type_script_setup_true_lang.js +0 -190
- package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue.d.ts +0 -52
- package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue.js +0 -6
- package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue_vue_type_script_setup_true_lang.js +0 -215
- package/dist/components/BbBaseNumberInput/types.d.ts +0 -211
- package/dist/components/BbBaseRadio/BbBaseRadio.vue.d.ts +0 -33
- package/dist/components/BbBaseRadio/BbBaseRadio.vue_vue_type_script_setup_true_lang.js +0 -113
- package/dist/components/BbBaseRadio/types.d.ts +0 -179
- package/dist/components/BbBaseRadioGroup/BbBaseRadioGroup.vue.d.ts +0 -19
- package/dist/components/BbBaseRadioGroup/BbBaseRadioGroup.vue_vue_type_script_setup_true_lang.js +0 -179
- package/dist/components/BbBaseRadioGroup/types.d.ts +0 -223
- package/dist/components/BbBaseRating/BbBaseRating.vue.d.ts +0 -38
- package/dist/components/BbBaseRating/BbBaseRating.vue.js +0 -6
- package/dist/components/BbBaseRating/BbBaseRating.vue_vue_type_script_setup_true_lang.js +0 -192
- package/dist/components/BbBaseRating/types.d.ts +0 -176
- package/dist/components/BbBaseSelect/BbBaseSelect.vue.d.ts +0 -19
- package/dist/components/BbBaseSelect/BbBaseSelect.vue.js +0 -6
- package/dist/components/BbBaseSelect/BbBaseSelect.vue_vue_type_script_setup_true_lang.js +0 -311
- package/dist/components/BbBaseSelect/types.d.ts +0 -297
- package/dist/components/BbBaseSlider/BbBaseSlider.vue.d.ts +0 -35
- package/dist/components/BbBaseSlider/BbBaseSlider.vue.js +0 -6
- package/dist/components/BbBaseSlider/BbBaseSlider.vue_vue_type_script_setup_true_lang.js +0 -340
- package/dist/components/BbBaseSlider/types.d.ts +0 -200
- package/dist/components/BbBaseSwitch/BbBaseSwitch.vue.d.ts +0 -35
- package/dist/components/BbBaseSwitch/BbBaseSwitch.vue_vue_type_script_setup_true_lang.js +0 -146
- package/dist/components/BbBaseSwitch/types.d.ts +0 -10
- package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue.d.ts +0 -19
- package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue.js +0 -6
- package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue_vue_type_script_setup_true_lang.js +0 -190
- package/dist/components/BbBaseSwitchGroup/types.d.ts +0 -8
- package/dist/components/BbBaseTag/BbBaseTag.vue.d.ts +0 -50
- package/dist/components/BbBaseTag/BbBaseTag.vue.js +0 -6
- package/dist/components/BbBaseTag/BbBaseTag.vue_vue_type_script_setup_true_lang.js +0 -266
- package/dist/components/BbBaseTag/types.d.ts +0 -160
- package/dist/components/BbBaseTextInput/BbBaseTextInput.vue.d.ts +0 -45
- package/dist/components/BbBaseTextInput/BbBaseTextInput.vue.js +0 -6
- package/dist/components/BbBaseTextInput/BbBaseTextInput.vue_vue_type_script_setup_true_lang.js +0 -200
- package/dist/components/BbBaseTextInput/types.d.ts +0 -209
- package/dist/components/BbBaseTextarea/BbBaseTextarea.vue.d.ts +0 -39
- package/dist/components/BbBaseTextarea/BbBaseTextarea.vue.js +0 -6
- package/dist/components/BbBaseTextarea/BbBaseTextarea.vue_vue_type_script_setup_true_lang.js +0 -187
- package/dist/components/BbBaseTextarea/types.d.ts +0 -170
- package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue.d.ts +0 -27
- package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue.js +0 -6
- package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue_vue_type_script_setup_true_lang.js +0 -519
- package/dist/components/BbBaseTimePickerInput/types.d.ts +0 -151
- package/dist/components/BbTabs/BbTabsPanes.vue.d.ts +0 -16
- package/dist/components/BbTabs/BbTabsPanes.vue_vue_type_script_setup_true_lang.js +0 -35
- package/dist/components/CommonInputWrapper/CommonInputWrapper.vue.js +0 -6
- package/dist/components/CommonInputWrapper/CommonInputWrapper.vue_vue_type_script_setup_true_lang.js +0 -107
- package/dist/confirm-variants.d.ts +0 -17
- package/dist/dropdown-item-variants.d.ts +0 -17
- package/dist/i18n/index.js +0 -27
- package/dist/indicator-variants.d.ts +0 -20
- package/dist/locale-registry.d.ts +0 -37
- package/dist/toast-variants.d.ts +0 -20
- package/dist/tooltip-variants.d.ts +0 -17
- package/dist/types/InputDirection.d.ts +0 -15
- package/dist/validated/BbCheckbox.vue.d.ts +0 -29
- package/dist/validated/BbCheckbox.vue.js +0 -5
- package/dist/validated/BbCheckbox.vue_vue_type_script_setup_true_lang.js +0 -75
- package/dist/validated/BbCheckboxGroup.vue.d.ts +0 -34
- package/dist/validated/BbCheckboxGroup.vue.js +0 -5
- package/dist/validated/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +0 -82
- package/dist/validated/BbColorInput.vue.d.ts +0 -37
- package/dist/validated/BbColorInput.vue.js +0 -5
- package/dist/validated/BbColorInput.vue_vue_type_script_setup_true_lang.js +0 -75
- package/dist/validated/BbDatePickerInput.vue.d.ts +0 -41
- package/dist/validated/BbDatePickerInput.vue.js +0 -5
- package/dist/validated/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +0 -90
- package/dist/validated/BbDropzone.vue.d.ts +0 -24
- package/dist/validated/BbDropzone.vue.js +0 -5
- package/dist/validated/BbDropzone.vue_vue_type_script_setup_true_lang.js +0 -45
- package/dist/validated/BbForm.vue.d.ts +0 -28
- package/dist/validated/BbForm.vue_vue_type_script_setup_true_lang.js +0 -42
- package/dist/validated/BbNumberInput.vue.d.ts +0 -36
- package/dist/validated/BbNumberInput.vue.js +0 -5
- package/dist/validated/BbNumberInput.vue_vue_type_script_setup_true_lang.js +0 -72
- package/dist/validated/BbRadioGroup.vue.d.ts +0 -34
- package/dist/validated/BbRadioGroup.vue.js +0 -5
- package/dist/validated/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +0 -78
- package/dist/validated/BbRating.vue.d.ts +0 -30
- package/dist/validated/BbRating.vue.js +0 -5
- package/dist/validated/BbRating.vue_vue_type_script_setup_true_lang.js +0 -63
- package/dist/validated/BbSelect.vue.d.ts +0 -46
- package/dist/validated/BbSelect.vue.js +0 -5
- package/dist/validated/BbSelect.vue_vue_type_script_setup_true_lang.js +0 -109
- package/dist/validated/BbSlider.vue.d.ts +0 -36
- package/dist/validated/BbSlider.vue.js +0 -5
- package/dist/validated/BbSlider.vue_vue_type_script_setup_true_lang.js +0 -69
- package/dist/validated/BbSwitch.vue.d.ts +0 -29
- package/dist/validated/BbSwitch.vue.js +0 -5
- package/dist/validated/BbSwitch.vue_vue_type_script_setup_true_lang.js +0 -75
- package/dist/validated/BbSwitchGroup.vue.d.ts +0 -34
- package/dist/validated/BbSwitchGroup.vue.js +0 -5
- package/dist/validated/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +0 -82
- package/dist/validated/BbTag.vue.d.ts +0 -36
- package/dist/validated/BbTag.vue.js +0 -5
- package/dist/validated/BbTag.vue_vue_type_script_setup_true_lang.js +0 -72
- package/dist/validated/BbTextInput.vue.d.ts +0 -36
- package/dist/validated/BbTextInput.vue.js +0 -5
- package/dist/validated/BbTextInput.vue_vue_type_script_setup_true_lang.js +0 -72
- package/dist/validated/BbTextarea.vue.d.ts +0 -36
- package/dist/validated/BbTextarea.vue.js +0 -5
- package/dist/validated/BbTextarea.vue_vue_type_script_setup_true_lang.js +0 -70
- package/dist/validated/BbTimePickerInput.vue.d.ts +0 -37
- package/dist/validated/BbTimePickerInput.vue.js +0 -5
- package/dist/validated/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +0 -81
- package/dist/validated/index.d.ts +0 -43
- package/dist/validated/useValidatedField.d.ts +0 -93
- package/dist/validated/useValidatedField.js +0 -51
- package/dist/validated.js +0 -21
- /package/dist/components/{BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue.d.ts → BbCalendar/CalendarMonthPanel.vue.d.ts} +0 -0
- /package/dist/components/{BbBaseDatePicker/BbBaseDatePickerYearSelector.vue.d.ts → BbCalendar/CalendarYearPanel.vue.d.ts} +0 -0
- /package/dist/{components/BbBaseDatePicker/typeahead.d.ts → composables/useTypeahead.d.ts} +0 -0
- /package/dist/{components/BbBaseDatePicker/typeahead.js → composables/useTypeahead.js} +0 -0
|
@@ -18,10 +18,11 @@
|
|
|
18
18
|
:style="{
|
|
19
19
|
'--transition-duration': `${props.transitionDuration}ms`,
|
|
20
20
|
}"
|
|
21
|
+
v-bind="passthrough.rootAttrs"
|
|
21
22
|
>
|
|
22
23
|
<!-- The inner measuring element mirrors `tag`, so the pair is always
|
|
23
24
|
div-in-div or span-in-span — both valid. `.bb-smooth-height__content`
|
|
24
|
-
forces `display:
|
|
25
|
+
forces `display: flow-root`, so a span measures the same as a div. This is
|
|
25
26
|
why `tag` is limited to those two: any element with a restricted content
|
|
26
27
|
model would nest invalidly inside itself. -->
|
|
27
28
|
<component :is="props.tag" ref="content" class="bb-smooth-height__content">
|
|
@@ -32,10 +33,16 @@
|
|
|
32
33
|
|
|
33
34
|
<script setup lang="ts">
|
|
34
35
|
import { transitions } from '@/utilities/misc/transitions';
|
|
35
|
-
import
|
|
36
|
+
import {
|
|
37
|
+
BB_SMOOTH_HEIGHT_PT,
|
|
38
|
+
type BbSmoothHeightProps,
|
|
39
|
+
type BbSmoothHeightSlots,
|
|
40
|
+
} from './types';
|
|
41
|
+
import { usePassthrough } from '@/composables/usePassthrough';
|
|
36
42
|
export type { BbSmoothHeightProps, BbSmoothHeightSlots };
|
|
37
|
-
import {
|
|
43
|
+
import { onBeforeUnmount, onMounted, ref, useAttrs, watch } from 'vue';
|
|
38
44
|
|
|
45
|
+
defineOptions({ inheritAttrs: false });
|
|
39
46
|
const props = withDefaults(defineProps<BbSmoothHeightProps>(), {
|
|
40
47
|
transitionDuration: transitions.medium,
|
|
41
48
|
disabled: false,
|
|
@@ -46,6 +53,18 @@ const props = withDefaults(defineProps<BbSmoothHeightProps>(), {
|
|
|
46
53
|
|
|
47
54
|
defineSlots<BbSmoothHeightSlots>();
|
|
48
55
|
|
|
56
|
+
/**
|
|
57
|
+
* Passthrough (plans/passthrough/BbSmoothHeight.md). `root` only — the component is one element and everything it paints is configuration, not state.
|
|
58
|
+
*/
|
|
59
|
+
const passthrough = usePassthrough({
|
|
60
|
+
component: 'BbSmoothHeight',
|
|
61
|
+
attrs: useAttrs(),
|
|
62
|
+
props,
|
|
63
|
+
parts: BB_SMOOTH_HEIGHT_PT.parts,
|
|
64
|
+
states: BB_SMOOTH_HEIGHT_PT.states,
|
|
65
|
+
active: {},
|
|
66
|
+
});
|
|
67
|
+
|
|
49
68
|
const container = ref<HTMLElement | null>(null);
|
|
50
69
|
const content = ref<HTMLElement | null>(null);
|
|
51
70
|
const observer = ref<ResizeObserver | MutationObserver | null>(null);
|
|
@@ -187,8 +206,35 @@ onBeforeUnmount(() => {
|
|
|
187
206
|
|
|
188
207
|
```ts
|
|
189
208
|
import type { LayoutElementTag } from '@/types/CommonProps';
|
|
209
|
+
import type { PtMap, PtValue } from '@/types/passthrough';
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Passthrough parts of `BbSmoothHeight` (plans/passthrough/BbSmoothHeight.md). `root` is the animating box. Nothing it paints is a state.
|
|
213
|
+
*
|
|
214
|
+
* @part root - The box whose height animates.
|
|
215
|
+
*/
|
|
216
|
+
export type BbSmoothHeightPtPart = 'root';
|
|
217
|
+
/** The runtime lists the resolver is wired with — no states: nothing this component paints is a state. */
|
|
218
|
+
export const BB_SMOOTH_HEIGHT_PT = {
|
|
219
|
+
parts: ['root'],
|
|
220
|
+
states: [],
|
|
221
|
+
} as const satisfies {
|
|
222
|
+
parts: readonly BbSmoothHeightPtPart[];
|
|
223
|
+
states: readonly never[];
|
|
224
|
+
};
|
|
190
225
|
|
|
226
|
+
// Spelled INLINE with this component's own union (Vue's SFC type resolver
|
|
227
|
+
// does not substitute a generic alias's type parameters — PASSTHROUGH.md T20).
|
|
228
|
+
// No state axis: a `never` state does not resolve to finite keys.
|
|
229
|
+
// eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style
|
|
191
230
|
export type BbSmoothHeightProps = {
|
|
231
|
+
[K in `pt:${BbSmoothHeightPtPart}`]?: PtValue;
|
|
232
|
+
} & {
|
|
233
|
+
/**
|
|
234
|
+
* Passthrough, object form: the same keys as the `pt:*` attributes
|
|
235
|
+
* without the prefix. See the `pt:<part>` row.
|
|
236
|
+
*/
|
|
237
|
+
pt?: PtMap<BbSmoothHeightPtPart, never>;
|
|
192
238
|
/**
|
|
193
239
|
* Disable smooth-height behavior and allow natural content height.
|
|
194
240
|
*
|
|
@@ -235,6 +281,11 @@ export type BbSmoothHeightSlots = {
|
|
|
235
281
|
/* @inherit --transition-duration — set inline by the component */
|
|
236
282
|
.bb-smooth-height {
|
|
237
283
|
display: block;
|
|
284
|
+
/* The reset's `interpolate-size: allow-keywords` would make the first px
|
|
285
|
+
height (set at mount, from `auto`) a real transition: every mount animated,
|
|
286
|
+
and anything measured in that window read a box mid-way (Q61.17). Only
|
|
287
|
+
px → px changes animate. */
|
|
288
|
+
interpolate-size: numeric-only;
|
|
238
289
|
/* Clip only the vertical axis so height can animate without hiding content
|
|
239
290
|
that legitimately overflows horizontally (shadows, focus rings, tooltips,
|
|
240
291
|
popovers). `visible` paired with `clip` is the one mix the spec leaves
|
|
@@ -252,8 +303,12 @@ export type BbSmoothHeightSlots = {
|
|
|
252
303
|
transition: none;
|
|
253
304
|
}
|
|
254
305
|
|
|
306
|
+
/* `flow-root`, not `block`: a new formatting context CONTAINS the slot's
|
|
307
|
+
vertical margins. As a plain block, a child's margin collapsed through it,
|
|
308
|
+
`scrollHeight` left the margin out and the clip cut off whatever sat in
|
|
309
|
+
it (Q56.18). It is still block-level, so a span measures like a div. */
|
|
255
310
|
&__content {
|
|
256
|
-
display:
|
|
311
|
+
display: flow-root;
|
|
257
312
|
}
|
|
258
313
|
}
|
|
259
314
|
|
|
@@ -7,22 +7,49 @@
|
|
|
7
7
|
```vue
|
|
8
8
|
<template>
|
|
9
9
|
<span v-if="label" role="status">
|
|
10
|
-
<BbIcon
|
|
11
|
-
|
|
10
|
+
<BbIcon
|
|
11
|
+
class="bb-spinner"
|
|
12
|
+
:icon="spinnerSvg"
|
|
13
|
+
:size="size"
|
|
14
|
+
v-bind="passthrough.rootAttrs"
|
|
15
|
+
/>
|
|
16
|
+
<span class="bb-sr-only">{{ label }}</span>
|
|
12
17
|
</span>
|
|
13
|
-
<BbIcon
|
|
18
|
+
<BbIcon
|
|
19
|
+
v-else
|
|
20
|
+
class="bb-spinner"
|
|
21
|
+
:icon="spinnerSvg"
|
|
22
|
+
:size="size"
|
|
23
|
+
v-bind="passthrough.rootAttrs"
|
|
24
|
+
/>
|
|
14
25
|
</template>
|
|
15
26
|
|
|
16
27
|
<script setup lang="ts">
|
|
17
28
|
import spinnerSvg from '@/assets/svgs/spinner.svg?raw';
|
|
18
29
|
import { removedPropsFor } from '@/deprecation/removedProps';
|
|
19
30
|
import { warnRemovedAttrs } from '@/utilities/functions/warnRemovedAttrs';
|
|
20
|
-
import type
|
|
31
|
+
import { BB_SPINNER_PT, type BbSpinnerProps } from './types';
|
|
32
|
+
import { usePassthrough } from '@/composables/usePassthrough';
|
|
21
33
|
import BbIcon from '../BbIcon/BbIcon.vue';
|
|
34
|
+
import { useAttrs } from 'vue';
|
|
22
35
|
|
|
23
|
-
|
|
36
|
+
defineOptions({ inheritAttrs: false });
|
|
37
|
+
const props = withDefaults(defineProps<BbSpinnerProps>(), {
|
|
24
38
|
size: 'md',
|
|
25
39
|
});
|
|
40
|
+
/**
|
|
41
|
+
* Passthrough (plans/passthrough/BbSpinner.md). `root` is the glyph in both
|
|
42
|
+
* branches, and so is everything bound on the component — a `class` included —
|
|
43
|
+
* so a labelled spinner styles the same node as a bare one.
|
|
44
|
+
*/
|
|
45
|
+
const passthrough = usePassthrough({
|
|
46
|
+
component: 'BbSpinner',
|
|
47
|
+
attrs: useAttrs(),
|
|
48
|
+
props,
|
|
49
|
+
parts: BB_SPINNER_PT.parts,
|
|
50
|
+
states: BB_SPINNER_PT.states,
|
|
51
|
+
active: {},
|
|
52
|
+
});
|
|
26
53
|
|
|
27
54
|
if (process.env.NODE_ENV !== 'production')
|
|
28
55
|
warnRemovedAttrs('BbSpinner', removedPropsFor('BbSpinner'));
|
|
@@ -37,6 +64,7 @@ if (process.env.NODE_ENV !== 'production')
|
|
|
37
64
|
|
|
38
65
|
```ts
|
|
39
66
|
import type { BbIconProps, BbIconSize as IconSize } from '../BbIcon/types';
|
|
67
|
+
import type { PtMap, PtValue } from '@/types/passthrough';
|
|
40
68
|
|
|
41
69
|
/**
|
|
42
70
|
* Maps size key strings to pixel dimensions. Re-exported for consumers that
|
|
@@ -44,10 +72,38 @@ import type { BbIconProps, BbIconSize as IconSize } from '../BbIcon/types';
|
|
|
44
72
|
*/
|
|
45
73
|
export type Size = IconSize;
|
|
46
74
|
|
|
75
|
+
/**
|
|
76
|
+
* Passthrough parts of `BbSpinner` (plans/passthrough/BbSpinner.md). Nothing it
|
|
77
|
+
* paints is a state.
|
|
78
|
+
*
|
|
79
|
+
* @part root - The spinning glyph. With a `label`, the status wrapper around
|
|
80
|
+
* it is not a part.
|
|
81
|
+
*/
|
|
82
|
+
export type BbSpinnerPtPart = 'root';
|
|
83
|
+
/** The runtime lists the resolver is wired with — no states: nothing this component paints is a state. */
|
|
84
|
+
export const BB_SPINNER_PT = {
|
|
85
|
+
parts: ['root'],
|
|
86
|
+
states: [],
|
|
87
|
+
} as const satisfies {
|
|
88
|
+
parts: readonly BbSpinnerPtPart[];
|
|
89
|
+
states: readonly never[];
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
// Spelled INLINE with this component's own union (Vue's SFC type resolver
|
|
93
|
+
// does not substitute a generic alias's type parameters — PASSTHROUGH.md T20).
|
|
94
|
+
// No state axis: a `never` state does not resolve to finite keys.
|
|
95
|
+
// eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style
|
|
47
96
|
export type BbSpinnerProps = Pick<BbIconProps, 'size'> & {
|
|
97
|
+
[K in `pt:${BbSpinnerPtPart}`]?: PtValue;
|
|
98
|
+
} & {
|
|
99
|
+
/**
|
|
100
|
+
* Passthrough, object form: the same keys as the `pt:*` attributes
|
|
101
|
+
* without the prefix. See the `pt:<part>` row.
|
|
102
|
+
*/
|
|
103
|
+
pt?: PtMap<BbSpinnerPtPart, never>;
|
|
48
104
|
/**
|
|
49
105
|
* Accessible loading announcement. When set, the spinner is wrapped in a
|
|
50
|
-
* `role="status"` element containing this text rendered `sr-only`, so
|
|
106
|
+
* `role="status"` element containing this text rendered `bb-sr-only`, so
|
|
51
107
|
* screen readers announce the loading state. When omitted the markup is
|
|
52
108
|
* unchanged and the spinner is purely decorative.
|
|
53
109
|
*/
|
|
@@ -6,97 +6,315 @@
|
|
|
6
6
|
|
|
7
7
|
```vue
|
|
8
8
|
<template>
|
|
9
|
-
<
|
|
9
|
+
<CommonField
|
|
10
10
|
:id="id"
|
|
11
11
|
class="bb-switch"
|
|
12
|
+
:compact="compact"
|
|
12
13
|
:description="description"
|
|
13
|
-
:
|
|
14
|
-
:errors="
|
|
14
|
+
:disabled="disabled"
|
|
15
|
+
:errors="fieldErrors"
|
|
15
16
|
:has-errors="hasErrors"
|
|
16
|
-
:has-
|
|
17
|
+
:has-warnings="hasWarnings"
|
|
17
18
|
:hide-label="hideLabel"
|
|
18
19
|
:hint="hint"
|
|
20
|
+
:input-align="inputAlign"
|
|
19
21
|
:input-position="inputPosition"
|
|
20
22
|
:label="label"
|
|
23
|
+
:label-align="labelAlign"
|
|
21
24
|
:label-position="labelPosition"
|
|
22
25
|
label-tag="span"
|
|
26
|
+
:layout="layout"
|
|
23
27
|
:name="name"
|
|
28
|
+
:passthrough="passthrough"
|
|
29
|
+
:readonly="fieldReadonly"
|
|
24
30
|
:reverse="reverse"
|
|
31
|
+
:show-asterisk="showAsterisk"
|
|
25
32
|
:show-hint="showHint"
|
|
26
33
|
tag="label"
|
|
27
34
|
:warnings="warnings"
|
|
35
|
+
v-bind="passthrough.forwardAttrs"
|
|
28
36
|
>
|
|
29
37
|
<template #label="data"><slot name="label" v-bind="data"></slot></template>
|
|
30
|
-
<template
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
:
|
|
36
|
-
:
|
|
37
|
-
:
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
38
|
+
<template v-if="$slots.description" #description="data"
|
|
39
|
+
><slot name="description" v-bind="data"></slot
|
|
40
|
+
></template>
|
|
41
|
+
<template
|
|
42
|
+
#input="{
|
|
43
|
+
id: fieldId,
|
|
44
|
+
hasErrors: fieldHasErrors,
|
|
45
|
+
hasWarnings: fieldHasWarnings,
|
|
46
|
+
ariaDescribedby,
|
|
47
|
+
ariaLabelledby,
|
|
48
|
+
}"
|
|
49
|
+
>
|
|
50
|
+
<input
|
|
51
|
+
v-if="!paintedChecked && submitWhenFalse && !arrayModel"
|
|
52
|
+
v-bind="
|
|
53
|
+
hiddenSubmitAttrs({ disabled, falseValue: resolvedFalseValue, name })
|
|
54
|
+
"
|
|
55
|
+
/>
|
|
56
|
+
<input
|
|
57
|
+
ref="switchInput"
|
|
58
|
+
v-bind="inputAttrs(fieldId, ariaDescribedby, ariaLabelledby)"
|
|
59
|
+
/>
|
|
60
|
+
<slot
|
|
61
|
+
name="icon"
|
|
62
|
+
v-bind="iconSlotProps(fieldId, fieldHasErrors, fieldHasWarnings)"
|
|
63
|
+
:text="label"
|
|
48
64
|
>
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
65
|
+
<!-- eslint-disable vue/attributes-order -- `pt:icon` binds LAST (PASSTHROUGH.md T17) -->
|
|
66
|
+
<BbBaseSwitchIcon
|
|
67
|
+
:checked="paintedChecked"
|
|
68
|
+
:disabled="!!disabled"
|
|
69
|
+
:focus-visible="focusVisible"
|
|
70
|
+
:focused="focused"
|
|
71
|
+
:has-errors="!!fieldHasErrors"
|
|
72
|
+
:has-warnings="!!fieldHasWarnings && !fieldHasErrors"
|
|
73
|
+
:indeterminate="!!indeterminate"
|
|
74
|
+
:readonly="!!fieldReadonly"
|
|
75
|
+
v-bind="passthrough.icon"
|
|
76
|
+
/>
|
|
77
|
+
<!-- eslint-enable vue/attributes-order -->
|
|
78
|
+
</slot>
|
|
53
79
|
</template>
|
|
54
|
-
</
|
|
80
|
+
</CommonField>
|
|
55
81
|
</template>
|
|
56
82
|
|
|
57
83
|
<script setup lang="ts">
|
|
58
|
-
import
|
|
59
|
-
import
|
|
60
|
-
import {
|
|
61
|
-
|
|
84
|
+
import CommonField from '../CommonField/CommonField.vue';
|
|
85
|
+
import BbBaseSwitchIcon from '../BbBaseSwitchIcon/BbBaseSwitchIcon.vue';
|
|
86
|
+
import {
|
|
87
|
+
formControlPtActive,
|
|
88
|
+
pickActive,
|
|
89
|
+
usePassthrough,
|
|
90
|
+
} from '@/composables/usePassthrough';
|
|
91
|
+
import {
|
|
92
|
+
usePaintedChecked,
|
|
93
|
+
useToggleFocus,
|
|
94
|
+
} from '@/composables/useToggleInput';
|
|
95
|
+
import { isEqual } from '@/utilities/functions/isEqual';
|
|
96
|
+
import {
|
|
97
|
+
hiddenSubmitAttrs,
|
|
98
|
+
preventReadonlyClick,
|
|
99
|
+
preventReadonlyKeydown,
|
|
100
|
+
revertReadonlyChange,
|
|
101
|
+
syncCheckedToData,
|
|
102
|
+
syncIndeterminate,
|
|
103
|
+
toggleInputAttrs,
|
|
104
|
+
toggleInputValue,
|
|
105
|
+
isMembershipModel,
|
|
106
|
+
toggleModelChecked,
|
|
107
|
+
nextToggleModel,
|
|
108
|
+
} from '@/utilities/functions/toggleInput';
|
|
109
|
+
import { computed, ref, useAttrs } from 'vue';
|
|
110
|
+
import {
|
|
111
|
+
BB_SWITCH_PT,
|
|
112
|
+
type BbSwitchIconSlotProps,
|
|
113
|
+
type BbSwitchProps,
|
|
114
|
+
type BbSwitchEvents,
|
|
115
|
+
type BbSwitchSlots,
|
|
116
|
+
} from './types';
|
|
117
|
+
import { useFormBinding } from '@/composables/useFormBinding';
|
|
62
118
|
export type { BbSwitchProps, BbSwitchEvents, BbSwitchSlots };
|
|
63
119
|
|
|
64
|
-
|
|
120
|
+
defineOptions({ inheritAttrs: false });
|
|
121
|
+
const declaredProps = withDefaults(defineProps<BbSwitchProps>(), {
|
|
65
122
|
// booleanish `checked` — default: undefined so an unset prop isn't coerced to
|
|
66
|
-
// `false
|
|
123
|
+
// `false`; the checked state then derives from `modelValue`.
|
|
67
124
|
checked: undefined,
|
|
68
|
-
|
|
125
|
+
layout: 'auto',
|
|
69
126
|
// Control-first: always left-align, like BbCheckbox/BbRadio (never right, even
|
|
70
127
|
// in a horizontal layout).
|
|
71
128
|
inputPosition: 'left',
|
|
72
129
|
});
|
|
73
130
|
|
|
74
|
-
const
|
|
75
|
-
|
|
131
|
+
const declaredEmit = defineEmits<BbSwitchEvents>();
|
|
76
132
|
defineSlots<BbSwitchSlots>();
|
|
133
|
+
// Inside a BbForm the field joins it (Q54.4): `props` / `emit` are bound.
|
|
134
|
+
const {
|
|
135
|
+
props,
|
|
136
|
+
emit,
|
|
137
|
+
showAsterisk,
|
|
138
|
+
errors: fieldErrors,
|
|
139
|
+
ariaRequired: fieldAriaRequired,
|
|
140
|
+
readonly: fieldReadonly,
|
|
141
|
+
} = useFormBinding(declaredProps, declaredEmit, {
|
|
142
|
+
componentName: 'BbSwitch',
|
|
143
|
+
identifierFallback: () => declaredProps.label,
|
|
144
|
+
leaveOn: 'blur',
|
|
145
|
+
commits: true,
|
|
146
|
+
});
|
|
147
|
+
/**
|
|
148
|
+
* `trueValue` / `falseValue` default to `true` / `false`, applied where they
|
|
149
|
+
* are read rather than in `withDefaults`: a literal `true` default there would
|
|
150
|
+
* make the `true-value` attribute shorthand a silent no-op (check-api's
|
|
151
|
+
* boolean-default-true rule). `=== undefined` is exactly when Vue would have
|
|
152
|
+
* applied a default.
|
|
153
|
+
*/
|
|
154
|
+
const resolvedTrueValue = computed(() =>
|
|
155
|
+
props.trueValue === undefined ? true : props.trueValue
|
|
156
|
+
);
|
|
157
|
+
const resolvedFalseValue = computed(() =>
|
|
158
|
+
props.falseValue === undefined ? false : props.falseValue
|
|
159
|
+
);
|
|
77
160
|
|
|
78
|
-
const
|
|
79
|
-
|
|
161
|
+
const switchInput = ref<HTMLInputElement | null>(null);
|
|
162
|
+
|
|
163
|
+
/** The native input's focus, and whether it is keyboard-visible — the glyph draws its ring from these. */
|
|
164
|
+
const { focused, focusVisible, onFocus, onBlur } = useToggleFocus();
|
|
165
|
+
const showHint = computed(() => props.persistentHint || focused.value);
|
|
80
166
|
// We use the negative to avoid the awkward syntax of :reverse="false" from outside
|
|
81
167
|
const reverse = computed(() => !props.reverse);
|
|
82
168
|
|
|
83
|
-
|
|
169
|
+
/**
|
|
170
|
+
* The checked state the control PAINTS. Controlled (a `modelValue` or
|
|
171
|
+
* `checked` is passed), it is exactly what the data says: a click emits the
|
|
172
|
+
* change and the control moves only when the parent applies it. Uncontrolled
|
|
173
|
+
* (neither is passed — a plain form field), the control keeps the click
|
|
174
|
+
* itself, as a native input does.
|
|
175
|
+
*/
|
|
176
|
+
const toggleValues = computed(() => ({
|
|
177
|
+
trueValue: resolvedTrueValue.value,
|
|
178
|
+
falseValue: resolvedFalseValue.value,
|
|
179
|
+
}));
|
|
180
|
+
/** An array model with scalar values: one member of a list, like Vue's native checkbox (Q56.28). */
|
|
181
|
+
const arrayModel = computed(() =>
|
|
182
|
+
isMembershipModel(props.modelValue, toggleValues.value)
|
|
183
|
+
);
|
|
184
|
+
|
|
185
|
+
const controlled = computed(
|
|
186
|
+
() => props.checked !== undefined || props.modelValue !== undefined
|
|
187
|
+
);
|
|
188
|
+
const paintedChecked = usePaintedChecked(
|
|
189
|
+
() =>
|
|
190
|
+
props.checked !== undefined
|
|
191
|
+
? props.checked
|
|
192
|
+
: toggleModelChecked(props.modelValue, toggleValues.value, isEqual),
|
|
193
|
+
{ indeterminate: () => props.indeterminate, input: switchInput }
|
|
194
|
+
);
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Passthrough (plans/passthrough/BbSwitch.md). Resolved here, where the states
|
|
198
|
+
* are known, and handed DOWN as bindings to the container and the glyph.
|
|
199
|
+
* `checked` is the checked state the switch paints; `focused` is the native
|
|
200
|
+
* input's focus (any focus — T19).
|
|
201
|
+
*/
|
|
202
|
+
const passthrough = usePassthrough({
|
|
203
|
+
component: 'BbSwitch',
|
|
204
|
+
attrs: useAttrs(),
|
|
205
|
+
props,
|
|
206
|
+
parts: BB_SWITCH_PT.parts,
|
|
207
|
+
states: BB_SWITCH_PT.states,
|
|
208
|
+
active: {
|
|
209
|
+
...pickActive(formControlPtActive(props), [
|
|
210
|
+
'errors',
|
|
211
|
+
'warnings',
|
|
212
|
+
'disabled',
|
|
213
|
+
'readonly',
|
|
214
|
+
]),
|
|
215
|
+
checked: () => paintedChecked.value,
|
|
216
|
+
focused: () => focused.value,
|
|
217
|
+
focusVisible: () => focusVisible.value,
|
|
218
|
+
indeterminate: () => !!props.indeterminate,
|
|
219
|
+
},
|
|
220
|
+
});
|
|
221
|
+
|
|
222
|
+
const inputListeners = {
|
|
84
223
|
onBlur: (event: FocusEvent) => {
|
|
85
|
-
|
|
224
|
+
onBlur();
|
|
86
225
|
emit('blur', event);
|
|
87
226
|
},
|
|
88
|
-
onChange: (event: Event) =>
|
|
89
|
-
|
|
227
|
+
onChange: (event: Event) => {
|
|
228
|
+
if (!(event.target instanceof HTMLInputElement)) return;
|
|
229
|
+
if (
|
|
230
|
+
revertReadonlyChange(event.target, props.readonly, paintedChecked.value)
|
|
231
|
+
) {
|
|
232
|
+
syncIndeterminate(switchInput.value, props.indeterminate);
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
if (!controlled.value) paintedChecked.value = event.target.checked;
|
|
236
|
+
syncIndeterminate(switchInput.value, props.indeterminate);
|
|
237
|
+
emit('change', event);
|
|
238
|
+
emit(
|
|
239
|
+
'update:modelValue',
|
|
240
|
+
nextToggleModel(
|
|
241
|
+
props.modelValue,
|
|
242
|
+
event.target.checked,
|
|
243
|
+
toggleValues.value,
|
|
244
|
+
isEqual
|
|
245
|
+
)
|
|
246
|
+
);
|
|
247
|
+
if (controlled.value) {
|
|
248
|
+
syncCheckedToData(
|
|
249
|
+
() => switchInput.value,
|
|
250
|
+
() => paintedChecked.value,
|
|
251
|
+
() => props.indeterminate
|
|
252
|
+
);
|
|
253
|
+
}
|
|
254
|
+
},
|
|
90
255
|
onFocus: (event: FocusEvent) => {
|
|
91
|
-
|
|
256
|
+
onFocus(event);
|
|
92
257
|
emit('focus', event);
|
|
93
258
|
},
|
|
259
|
+
onClick: (event: MouseEvent) => {
|
|
260
|
+
preventReadonlyClick(event, props.readonly);
|
|
261
|
+
emit('click', event);
|
|
262
|
+
},
|
|
94
263
|
onInput: (event: Event) => emit('input', event),
|
|
95
|
-
onKeydown: (event: KeyboardEvent) =>
|
|
264
|
+
onKeydown: (event: KeyboardEvent) => {
|
|
265
|
+
preventReadonlyKeydown(event, props.readonly);
|
|
266
|
+
emit('keydown', event);
|
|
267
|
+
},
|
|
96
268
|
onMousedown: (event: MouseEvent) => emit('mousedown', event),
|
|
97
269
|
onMouseup: (event: MouseEvent) => emit('mouseup', event),
|
|
98
|
-
'onUpdate:modelValue': (value: any) => emit('update:modelValue', value),
|
|
99
270
|
};
|
|
271
|
+
|
|
272
|
+
/** The native input: the frame's resolved id and ARIA wiring, our state, our listeners. */
|
|
273
|
+
const inputAttrs = (
|
|
274
|
+
fieldId: string,
|
|
275
|
+
ariaDescribedby: string | undefined,
|
|
276
|
+
ariaLabelledby: string | undefined
|
|
277
|
+
) => ({
|
|
278
|
+
...toggleInputAttrs('switch', {
|
|
279
|
+
ariaDescribedby,
|
|
280
|
+
ariaLabelledby,
|
|
281
|
+
autofocus: props.autofocus,
|
|
282
|
+
checked: paintedChecked.value,
|
|
283
|
+
disabled: props.disabled,
|
|
284
|
+
id: fieldId,
|
|
285
|
+
indeterminate: props.indeterminate,
|
|
286
|
+
name: props.name,
|
|
287
|
+
readonly: props.readonly,
|
|
288
|
+
required: props.required,
|
|
289
|
+
ariaRequired: fieldAriaRequired.value,
|
|
290
|
+
value: resolvedTrueValue.value,
|
|
291
|
+
}),
|
|
292
|
+
...inputListeners,
|
|
293
|
+
});
|
|
294
|
+
|
|
295
|
+
/** The `icon` slot payload (the label text is added in the template). */
|
|
296
|
+
const iconSlotProps = (
|
|
297
|
+
fieldId: string,
|
|
298
|
+
fieldHasErrors: boolean,
|
|
299
|
+
fieldHasWarnings: boolean
|
|
300
|
+
): Omit<BbSwitchIconSlotProps, 'text'> => ({
|
|
301
|
+
checked: paintedChecked.value,
|
|
302
|
+
disabled: !!props.disabled,
|
|
303
|
+
falseValue: resolvedFalseValue.value,
|
|
304
|
+
focused: focused.value,
|
|
305
|
+
focusVisible: focusVisible.value,
|
|
306
|
+
hasErrors: !!fieldHasErrors,
|
|
307
|
+
hasWarnings: Boolean(fieldHasWarnings) && !fieldHasErrors,
|
|
308
|
+
id: fieldId,
|
|
309
|
+
indeterminate: props.indeterminate,
|
|
310
|
+
name: props.name,
|
|
311
|
+
parsedValue: toggleInputValue('switch', resolvedTrueValue.value),
|
|
312
|
+
readonly: !!props.readonly,
|
|
313
|
+
trueValue: resolvedTrueValue.value,
|
|
314
|
+
value: paintedChecked.value
|
|
315
|
+
? resolvedTrueValue.value
|
|
316
|
+
: resolvedFalseValue.value,
|
|
317
|
+
});
|
|
100
318
|
</script>
|
|
101
319
|
|
|
102
320
|
<style lang="postcss">
|
|
@@ -107,8 +325,15 @@ const eventListeners = {
|
|
|
107
325
|
## Types
|
|
108
326
|
|
|
109
327
|
```ts
|
|
110
|
-
import
|
|
111
|
-
|
|
328
|
+
import {
|
|
329
|
+
BB_CHECKBOX_PT,
|
|
330
|
+
type BbCheckboxEvents,
|
|
331
|
+
type BbCheckboxIconSlotProps,
|
|
332
|
+
type BbCheckboxProps,
|
|
333
|
+
} from '../BbCheckbox/types';
|
|
334
|
+
|
|
335
|
+
/** `BbSwitch` shares `BbCheckbox`'s passthrough vocabulary (its props are the same type). */
|
|
336
|
+
export const BB_SWITCH_PT = BB_CHECKBOX_PT;
|
|
112
337
|
|
|
113
338
|
/** Re-export of BbCheckboxProps for the switch variant. */
|
|
114
339
|
export type BbSwitchProps = BbCheckboxProps;
|
|
@@ -116,6 +341,16 @@ export type BbSwitchProps = BbCheckboxProps;
|
|
|
116
341
|
/** Re-export for consumers importing events type from BbSwitch. */
|
|
117
342
|
export type BbSwitchEvents = BbCheckboxEvents;
|
|
118
343
|
|
|
344
|
+
/** Props exposed by the `description` slot. */
|
|
345
|
+
export type BbSwitchDescriptionSlotProps = {
|
|
346
|
+
/** The `description` prop value (empty when only the slot is provided). */
|
|
347
|
+
text: string;
|
|
348
|
+
/** Whether the field is in an error state. */
|
|
349
|
+
hasErrors: boolean;
|
|
350
|
+
/** Whether the field is in a warning state (suppressed when errors win). */
|
|
351
|
+
hasWarnings: boolean;
|
|
352
|
+
};
|
|
353
|
+
|
|
119
354
|
/** Props exposed by the `label` slot. */
|
|
120
355
|
export type BbSwitchLabelSlotProps = {
|
|
121
356
|
/** The `label` prop value. */
|
|
@@ -123,14 +358,11 @@ export type BbSwitchLabelSlotProps = {
|
|
|
123
358
|
/** Whether the switch is in an error state. */
|
|
124
359
|
hasErrors: boolean;
|
|
125
360
|
/** Whether the switch is in a warning state (suppressed when errors). */
|
|
126
|
-
|
|
361
|
+
hasWarnings: boolean;
|
|
127
362
|
};
|
|
128
363
|
|
|
129
|
-
/** Props exposed by the `icon` slot
|
|
130
|
-
export type BbSwitchIconSlotProps =
|
|
131
|
-
/** The `label` prop value. */
|
|
132
|
-
text: string;
|
|
133
|
-
};
|
|
364
|
+
/** Props exposed by the `icon` slot: the switch state plus the label text (the same payload as BbCheckbox's). */
|
|
365
|
+
export type BbSwitchIconSlotProps = BbCheckboxIconSlotProps;
|
|
134
366
|
|
|
135
367
|
export type BbSwitchSlots = {
|
|
136
368
|
/**
|
|
@@ -138,8 +370,13 @@ export type BbSwitchSlots = {
|
|
|
138
370
|
*/
|
|
139
371
|
label?: (props: BbSwitchLabelSlotProps) => any;
|
|
140
372
|
/**
|
|
141
|
-
* Replaces the
|
|
142
|
-
*
|
|
373
|
+
* Replaces the description text. Provided alone (no `description` prop) it still
|
|
374
|
+
* renders the description region and wires it into `aria-describedby`.
|
|
375
|
+
*/
|
|
376
|
+
description?: (props: BbSwitchDescriptionSlotProps) => any;
|
|
377
|
+
/**
|
|
378
|
+
* Replaces the default toggle track visual inside the switch. Receives the
|
|
379
|
+
* switch state plus the label text.
|
|
143
380
|
*/
|
|
144
381
|
icon?: (props: BbSwitchIconSlotProps) => any;
|
|
145
382
|
};
|
|
@@ -149,7 +386,15 @@ export type BbSwitchSlots = {
|
|
|
149
386
|
|
|
150
387
|
```css
|
|
151
388
|
.bb-switch {
|
|
152
|
-
|
|
389
|
+
/* `grid-auto-flow: column` keeps a multi-node `icon` slot in ONE row (the
|
|
390
|
+
glyph and a badge beside it sit side by side, not stacked). The column
|
|
391
|
+
stays a grid because `justify-items` is the only `input-position` lever
|
|
392
|
+
(see the described-row note below, Q20.2). */
|
|
393
|
+
.bb-field__input-wrapper {
|
|
394
|
+
grid-auto-flow: column;
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
.bb-field__layout {
|
|
153
398
|
cursor: pointer;
|
|
154
399
|
|
|
155
400
|
&--horizontal {
|
|
@@ -160,13 +405,30 @@ export type BbSwitchSlots = {
|
|
|
160
405
|
|
|
161
406
|
/* With a description the label block spans two lines: align the switch with
|
|
162
407
|
the first line (the label text) instead of centering on the block. */
|
|
163
|
-
&.bb-
|
|
164
|
-
.
|
|
408
|
+
&.bb-field--description {
|
|
409
|
+
/* Only while neither `labelAlign` nor `inputAlign` is set (Q56.45):
|
|
410
|
+
either prop aims the columns itself, and the pin would hold the
|
|
411
|
+
control on the first line against it. */
|
|
412
|
+
.bb-field__layout--horizontal:not(.bb-field__layout--aligned) {
|
|
165
413
|
align-items: flex-start;
|
|
166
414
|
|
|
167
|
-
|
|
415
|
+
/*
|
|
416
|
+
* `align-items` + `min-height` are what pin the control to the
|
|
417
|
+
* LABEL'S FIRST LINE instead of the block centre — measured: with a
|
|
418
|
+
* 4-line label the control's mid sits exactly on the first line's
|
|
419
|
+
* mid, and 28px above the block centre.
|
|
420
|
+
*
|
|
421
|
+
* There used to be a `display: inline-flex` here too, and it was
|
|
422
|
+
* doing none of that vertical work — but it silently killed
|
|
423
|
+
* `input-position`, whose only lever is `justify-items` (a grid
|
|
424
|
+
* property, inert on a flex container). So a described row with
|
|
425
|
+
* `input-position="right"` painted its control at the START of the
|
|
426
|
+
* column: 166px out on a 198px column (Q20.2). Removing the one
|
|
427
|
+
* declaration restores left/center/right and leaves the vertical
|
|
428
|
+
* geometry byte-identical.
|
|
429
|
+
*/
|
|
430
|
+
.bb-field__input-wrapper {
|
|
168
431
|
align-items: center;
|
|
169
|
-
display: inline-flex;
|
|
170
432
|
min-height: var(--bb-label-lh);
|
|
171
433
|
}
|
|
172
434
|
}
|