bitboss-ui 3.0.0-beta.31 → 3.0.0-beta.33
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 +28 -27
- package/dist/ai/BbAsterisk.md +3 -2
- package/dist/ai/BbAvatar.md +1 -0
- package/dist/ai/BbBadge.md +2 -2
- package/dist/ai/BbBadgeButton.md +2 -2
- package/dist/ai/BbBaseCheckboxIcon.md +3 -3
- package/dist/ai/BbBaseRadioIcon.md +3 -3
- package/dist/ai/BbBaseSwitchIcon.md +3 -3
- package/dist/ai/BbBreadcrumbs.md +1 -1
- package/dist/ai/BbButton.md +22 -1
- package/dist/ai/BbCalendar.md +18 -18
- package/dist/ai/BbCheckbox.md +9 -6
- package/dist/ai/BbCheckboxGroup.md +275 -27
- package/dist/ai/BbColorInput.md +7 -7
- package/dist/ai/BbColorPalette.md +9 -1
- package/dist/ai/BbConfirm.md +4 -2
- package/dist/ai/BbDatePicker.md +20 -20
- package/dist/ai/BbDatePickerInput.md +25 -25
- package/dist/ai/BbDialog.md +15 -6
- package/dist/ai/BbDropdown.md +105 -28
- package/dist/ai/BbDropdownButton.md +20 -12
- package/dist/ai/BbDropzone.md +1 -1
- package/dist/ai/BbNumberInput.md +12 -12
- package/dist/ai/BbOffCanvas.md +29 -8
- package/dist/ai/BbPagination.md +31 -17
- package/dist/ai/BbPopover.md +2 -2
- package/dist/ai/BbProgress.md +20 -11
- package/dist/ai/BbRadio.md +7 -5
- package/dist/ai/BbRadioGroup.md +182 -72
- package/dist/ai/BbRating.md +4 -4
- package/dist/ai/BbSelect.md +29 -22
- package/dist/ai/BbSelectPopover.md +20 -12
- package/dist/ai/BbSlider.md +2 -2
- package/dist/ai/BbSmoothHeight.md +2 -2
- package/dist/ai/BbSwitch.md +20 -21
- package/dist/ai/BbSwitchGroup.md +89 -22
- package/dist/ai/BbTable.md +11 -16
- package/dist/ai/BbTabs.md +3 -3
- package/dist/ai/BbTabsList.md +1 -1
- package/dist/ai/BbTabsPanes.md +1 -1
- package/dist/ai/BbTabsRoot.md +1 -1
- package/dist/ai/BbTag.md +9 -7
- package/dist/ai/BbTextInput.md +17 -12
- package/dist/ai/BbTextarea.md +8 -8
- package/dist/ai/BbTimePicker.md +1 -1
- package/dist/ai/BbTimePickerInput.md +20 -5
- package/dist/ai/BbTree.md +7 -0
- package/dist/ai/ChipsBox.md +2 -2
- package/dist/ai/CommonField.md +2 -2
- package/dist/ai/FlatListBox.md +4 -4
- package/dist/ai/GroupedListBox.md +4 -4
- package/dist/ai/ListBox.md +7 -7
- package/dist/ai/OptionsContainer.md +5 -3
- package/dist/ai/changelog.json +196 -4
- package/dist/ai/components.json +2924 -1048
- package/dist/ai/composables/useBbDropdownContext.md +168 -0
- package/dist/ai/composables/useBbFormContext.md +15 -1
- package/dist/ai/composables/useBbTableContext.md +30 -14
- package/dist/ai/composables/useConfirm.md +2 -1
- package/dist/ai/composables/useMobile.md +17 -10
- package/dist/ai/composables/useToast.md +3 -0
- package/dist/ai/guides/agent-contract.md +5 -3
- package/dist/ai/guides/design-language.md +9 -6
- package/dist/ai/guides/design-tokens.md +12 -11
- package/dist/ai/guides/inline-edit-playbook.md +6 -1
- package/dist/ai/guides/installation-and-plugin-setup.md +4 -4
- package/dist/ai/guides/migration/components/bb-checkbox-group.md +43 -29
- package/dist/ai/guides/migration/components/bb-checkbox.md +1 -0
- package/dist/ai/guides/migration/components/bb-color-input.md +5 -5
- package/dist/ai/guides/migration/components/bb-date-picker-input.md +10 -9
- package/dist/ai/guides/migration/components/bb-dropdown.md +1 -1
- package/dist/ai/guides/migration/components/bb-dropzone.md +8 -0
- package/dist/ai/guides/migration/components/bb-intersection.md +1 -1
- package/dist/ai/guides/migration/components/bb-rating.md +8 -7
- package/dist/ai/guides/migration/components/bb-select-popover.md +1 -1
- package/dist/ai/guides/migration/components/bb-select.md +2 -1
- package/dist/ai/guides/migration/components/bb-slider.md +7 -6
- package/dist/ai/guides/migration/components/bb-tag.md +1 -0
- package/dist/ai/guides/migration/components/bb-text-input.md +6 -6
- package/dist/ai/guides/migration/components/bb-toast.md +1 -1
- package/dist/ai/guides/migration/components/bb-tree.md +8 -8
- package/dist/ai/guides/migration/components/use-confirm.md +8 -0
- package/dist/ai/guides/migration/v2-to-v3.md +83 -79
- package/dist/ai/guides/options-items-playbook.md +13 -5
- package/dist/ai/guides/page-shell.md +1 -1
- package/dist/ai/guides/passthrough.md +138 -101
- package/dist/ai/guides/validated-forms.md +8 -2
- package/dist/ai/index.md +2 -1
- package/dist/ai/recipes/inertia/approvals-inbox.md +21 -4
- package/dist/ai/recipes/inertia/inline-edit-workspace.md +20 -3
- package/dist/ai/recipes/inertia/onboarding.md +26 -4
- package/dist/ai/recipes/inertia/ownership-atlas.md +1 -0
- package/dist/ai/recipes/inertia/record-form.md +9 -1
- package/dist/ai/recipes/inertia/records-workspace.md +52 -25
- package/dist/ai/recipes/inertia/upload-center.md +14 -2
- package/dist/ai/recipes/inertia/wizard-form.md +16 -3
- package/dist/ai/recipes/nuxt/approvals-inbox.md +21 -4
- package/dist/ai/recipes/nuxt/inline-edit-workspace.md +20 -3
- package/dist/ai/recipes/nuxt/onboarding.md +26 -4
- package/dist/ai/recipes/nuxt/record-form.md +22 -4
- package/dist/ai/recipes/nuxt/records-workspace.md +48 -24
- package/dist/ai/recipes/nuxt/upload-center.md +14 -2
- package/dist/ai/recipes/nuxt/wizard-form.md +16 -3
- package/dist/ai/recipes/vue/approvals-inbox.md +21 -4
- package/dist/ai/recipes/vue/inline-edit-workspace.md +20 -3
- package/dist/ai/recipes/vue/onboarding.md +28 -4
- package/dist/ai/recipes/vue/record-form.md +22 -4
- package/dist/ai/recipes/vue/records-workspace.md +53 -25
- package/dist/ai/recipes/vue/upload-center.md +14 -2
- package/dist/ai/recipes/vue/wizard-form.md +18 -3
- package/dist/ai/source/BbAccordion.md +4 -1
- package/dist/ai/source/BbAvatar.md +4 -0
- package/dist/ai/source/BbBadge.md +14 -12
- package/dist/ai/source/BbBadgeButton.md +14 -12
- package/dist/ai/source/BbBaseCheckboxIcon.md +1 -1
- package/dist/ai/source/BbBaseRadioIcon.md +1 -1
- package/dist/ai/source/BbBaseSwitchIcon.md +1 -1
- package/dist/ai/source/BbButton.md +29 -4
- package/dist/ai/source/BbCalendar.md +47 -41
- package/dist/ai/source/BbCheckbox.md +11 -8
- package/dist/ai/source/BbCheckboxGroup.md +219 -77
- package/dist/ai/source/BbColorInput.md +11 -8
- package/dist/ai/source/BbColorPalette.md +22 -8
- package/dist/ai/source/BbDatePicker.md +9 -9
- package/dist/ai/source/BbDatePickerInput.md +40 -26
- package/dist/ai/source/BbDialog.md +56 -3
- package/dist/ai/source/BbDropdown.md +37 -22
- package/dist/ai/source/BbDropdownButton.md +32 -25
- package/dist/ai/source/BbDropdownGroup.md +30 -20
- package/dist/ai/source/BbDropzone.md +24 -5
- package/dist/ai/source/BbIndicator.md +5 -0
- package/dist/ai/source/BbNumberInput.md +13 -7
- package/dist/ai/source/BbOffCanvas.md +184 -13
- package/dist/ai/source/BbPagination.md +46 -18
- package/dist/ai/source/BbProgress.md +23 -11
- package/dist/ai/source/BbRadio.md +11 -8
- package/dist/ai/source/BbRadioGroup.md +212 -75
- package/dist/ai/source/BbRating.md +25 -11
- package/dist/ai/source/BbSelect.md +43 -32
- package/dist/ai/source/BbSelectPopover.md +156 -30
- package/dist/ai/source/BbSlider.md +23 -9
- package/dist/ai/source/BbSwitch.md +5 -5
- package/dist/ai/source/BbSwitchGroup.md +184 -67
- package/dist/ai/source/BbTable.md +11 -2
- package/dist/ai/source/BbTabs.md +1 -1
- package/dist/ai/source/BbTabsList.md +13 -4
- package/dist/ai/source/BbTabsPanes.md +1 -1
- package/dist/ai/source/BbTabsRoot.md +1 -1
- package/dist/ai/source/BbTag.md +10 -7
- package/dist/ai/source/BbTextInput.md +25 -24
- package/dist/ai/source/BbTextarea.md +8 -6
- package/dist/ai/source/BbTimePicker.md +11 -4
- package/dist/ai/source/BbTimePickerInput.md +8 -5
- package/dist/ai/source/BbTooltip.md +32 -6
- package/dist/ai/source/CommonField.md +121 -38
- package/dist/ai/source/CommonFieldInput.md +3 -0
- package/dist/ai/source/CommonTimeSelector.md +3 -1
- package/dist/ai/source/FlatListBox.md +6 -6
- package/dist/ai/source/GroupedListBox.md +86 -91
- package/dist/ai/source/ListBox.md +1 -1
- package/dist/ai/source/OptionsContainer.md +152 -97
- package/dist/components/BbAccordion/BbAccordion.vue_vue_type_script_setup_true_lang.js +8 -8
- package/dist/components/BbBaseCheckboxIcon/BbBaseCheckboxIcon.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/BbBaseCheckboxIcon/types.d.ts +1 -1
- package/dist/components/BbBaseRadioIcon/BbBaseRadioIcon.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/BbBaseRadioIcon/types.d.ts +1 -1
- package/dist/components/BbBaseSwitchIcon/BbBaseSwitchIcon.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/BbBaseSwitchIcon/types.d.ts +1 -1
- package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +5 -4
- package/dist/components/BbCalendar/BbCalendar.vue_vue_type_script_setup_true_lang.js +63 -63
- package/dist/components/BbCalendar/CalendarMonthPanel.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/components/BbCalendar/CalendarYearPanel.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/components/BbCalendar/types.d.ts +16 -16
- package/dist/components/BbCalendar/types.js +7 -7
- package/dist/components/BbCalendar/useCalendarContext.d.ts +1 -1
- package/dist/components/BbCalendar/useCalendarGrid.d.ts +1 -1
- package/dist/components/BbCalendar/useCalendarGrid.js +21 -21
- package/dist/components/BbCalendar/useDayGrid.js +14 -14
- package/dist/components/BbCheckbox/BbCheckbox.vue.d.ts +1 -1
- package/dist/components/BbCheckbox/BbCheckbox.vue_vue_type_script_setup_true_lang.js +10 -10
- package/dist/components/BbCheckbox/types.d.ts +7 -4
- package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +100 -94
- package/dist/components/BbCheckboxGroup/types.d.ts +36 -13
- package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +19 -19
- package/dist/components/BbColorInput/types.d.ts +7 -4
- package/dist/components/BbColorInput/types.js +1 -1
- package/dist/components/BbColorPalette/BbColorPalette.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/BbDatePicker/BbDatePicker.vue_vue_type_script_setup_true_lang.js +68 -68
- package/dist/components/BbDatePicker/types.d.ts +3 -3
- package/dist/components/BbDatePicker/types.js +7 -7
- package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +151 -151
- package/dist/components/BbDatePickerInput/types.d.ts +10 -7
- package/dist/components/BbDatePickerInput/types.js +8 -8
- package/dist/components/BbDialog/BbDialog.vue_vue_type_script_setup_true_lang.js +138 -138
- package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +289 -289
- package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +333 -305
- package/dist/components/BbDropdown/types.d.ts +12 -10
- package/dist/components/BbDropdown/types.js +3 -3
- package/dist/components/BbDropdown/useDropdownContext.d.ts +1 -1
- package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +38 -37
- package/dist/components/BbDropdownButton/types.d.ts +7 -7
- package/dist/components/BbDropdownButton/types.js +6 -6
- package/dist/components/BbDropzone/BbDropzone.vue_vue_type_script_setup_true_lang.js +143 -140
- package/dist/components/BbDropzone/types.d.ts +2 -1
- package/dist/components/BbIcon/iconCache.js +2 -2
- package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +16 -16
- package/dist/components/BbNumberInput/types.d.ts +7 -4
- package/dist/components/BbOffCanvas/BbOffCanvas.vue_vue_type_script_setup_true_lang.js +217 -211
- package/dist/components/BbPagination/BbPagination.vue_vue_type_script_setup_true_lang.js +59 -55
- package/dist/components/BbPagination/types.d.ts +16 -10
- package/dist/components/BbPagination/types.js +2 -0
- package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +11 -11
- package/dist/components/BbProgress/BbProgress.vue_vue_type_script_setup_true_lang.js +13 -12
- package/dist/components/BbProgress/types.d.ts +6 -3
- package/dist/components/BbProgress/types.js +1 -1
- package/dist/components/BbRadio/BbRadio.vue.d.ts +1 -1
- package/dist/components/BbRadio/BbRadio.vue_vue_type_script_setup_true_lang.js +10 -10
- package/dist/components/BbRadio/types.d.ts +7 -4
- package/dist/components/BbRadioGroup/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +60 -54
- package/dist/components/BbRadioGroup/types.d.ts +36 -13
- package/dist/components/BbRating/BbRating.vue_vue_type_script_setup_true_lang.js +13 -10
- package/dist/components/BbRating/types.d.ts +9 -6
- package/dist/components/BbRating/types.js +1 -1
- package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +213 -209
- package/dist/components/BbSelect/types.d.ts +11 -9
- package/dist/components/BbSelect/types.js +4 -4
- package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +454 -420
- package/dist/components/BbSelectPopover/types.d.ts +10 -9
- package/dist/components/BbSelectPopover/types.js +3 -3
- package/dist/components/BbSlider/BbSlider.vue_vue_type_script_setup_true_lang.js +9 -6
- package/dist/components/BbSlider/types.d.ts +6 -4
- package/dist/components/BbSwitch/BbSwitch.vue.d.ts +1 -1
- package/dist/components/BbSwitch/BbSwitch.vue_vue_type_script_setup_true_lang.js +10 -10
- package/dist/components/BbSwitch/types.d.ts +1 -1
- package/dist/components/BbSwitchGroup/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +100 -94
- package/dist/components/BbSwitchGroup/types.d.ts +4 -4
- package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +103 -100
- package/dist/components/BbTable/types.d.ts +1 -1
- package/dist/components/BbTabs/BbTabsList.vue_vue_type_script_setup_true_lang.js +21 -21
- package/dist/components/BbTabs/types.d.ts +1 -1
- package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +104 -104
- package/dist/components/BbTag/types.d.ts +7 -5
- package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +21 -28
- package/dist/components/BbTextInput/types.d.ts +7 -5
- package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +15 -15
- package/dist/components/BbTextarea/types.d.ts +7 -5
- package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +19 -19
- package/dist/components/BbTimePickerInput/types.d.ts +7 -4
- package/dist/components/BbTimePickerInput/types.js +1 -1
- package/dist/components/BbTooltip/BbTooltip.vue_vue_type_script_setup_true_lang.js +91 -90
- package/dist/components/CommonField/CommonField.vue.d.ts +1 -1
- package/dist/components/CommonField/CommonField.vue_vue_type_script_setup_true_lang.js +60 -53
- package/dist/components/CommonField/types.d.ts +7 -6
- package/dist/components/CommonFieldInput/CommonFieldInput.vue.d.ts +1 -1
- package/dist/components/CommonFieldInput/CommonFieldInput.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/FlatListBox/FlatListBox.vue_vue_type_script_setup_true_lang.js +5 -5
- package/dist/components/FlatListBox/types.d.ts +1 -1
- package/dist/components/GroupedListBox/GroupedListBox.vue_vue_type_script_setup_true_lang.js +142 -129
- package/dist/components/GroupedListBox/types.d.ts +1 -1
- package/dist/components/ListBox/types.d.ts +1 -1
- package/dist/components/OptionsContainer/OptionsContainer.vue_vue_type_script_setup_true_lang.js +49 -33
- package/dist/components/OptionsContainer/types.d.ts +17 -5
- package/dist/composables/useBaseOptions.js +47 -39
- package/dist/composables/useBbTableContext.js +7 -6
- package/dist/composables/useBbTabsContext.js +64 -64
- package/dist/composables/useClosingInert.d.ts +4 -4
- package/dist/composables/useCoherence.js +1 -1
- package/dist/composables/useConfirm.js +48 -42
- package/dist/composables/useKeyboardInset.d.ts +28 -0
- package/dist/composables/useKeyboardInset.js +32 -0
- package/dist/composables/usePassthrough.d.ts +2 -2
- package/dist/composables/usePassthrough.js +21 -14
- package/dist/deprecation/ai-deprecations.json.d.ts +221 -0
- package/dist/deprecation/ai-deprecations.json.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/llms-full.txt +2228 -904
- package/dist/llms-medium.txt +19 -14
- package/dist/llms.txt +4 -3
- package/dist/styles.css +1 -1
- package/dist/types/FieldLayout.d.ts +32 -0
- package/dist/types/passthrough.d.ts +43 -38
- package/dist/types/passthrough.js +8 -8
- package/dist/types/ptComponentMap.d.ts +25 -25
- package/dist/utilities/functions/isImeComposing.d.ts +7 -0
- package/dist/utilities/functions/isImeComposing.js +4 -0
- package/dist/utils/overlayEscapeStack.d.ts +10 -0
- package/dist/utils/overlayEscapeStack.js +5 -3
- package/dist/utils/passthrough.d.ts +1 -4
- package/dist/validated/BbCheckbox.vue_vue_type_script_setup_true_lang.js +7 -7
- package/dist/validated/BbCheckboxGroup.vue.d.ts +26 -24
- package/dist/validated/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +26 -24
- package/dist/validated/BbColorInput.vue_vue_type_script_setup_true_lang.js +17 -17
- package/dist/validated/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +145 -145
- package/dist/validated/BbNumberInput.vue_vue_type_script_setup_true_lang.js +13 -13
- package/dist/validated/BbRadioGroup.vue.d.ts +26 -24
- package/dist/validated/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +26 -24
- package/dist/validated/BbRating.vue_vue_type_script_setup_true_lang.js +7 -7
- package/dist/validated/BbSelect.vue.d.ts +44 -44
- package/dist/validated/BbSelect.vue_vue_type_script_setup_true_lang.js +44 -44
- package/dist/validated/BbSlider.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/validated/BbSwitch.vue_vue_type_script_setup_true_lang.js +7 -7
- package/dist/validated/BbSwitchGroup.vue.d.ts +26 -24
- package/dist/validated/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +26 -24
- package/dist/validated/BbTag.vue_vue_type_script_setup_true_lang.js +14 -14
- package/dist/validated/BbTextInput.vue_vue_type_script_setup_true_lang.js +13 -13
- package/dist/validated/BbTextarea.vue_vue_type_script_setup_true_lang.js +13 -13
- package/dist/validated/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +17 -17
- package/dist/vite-plugin.d.ts +8 -0
- package/dist/vite.js +115 -98
- package/llms.txt +4 -3
- package/package.json +4 -4
- package/scripts/lib/component-attr-targets.ts +117 -0
- package/scripts/lib/component-tree.ts +44 -7
- package/scripts/lib/html-attributes.mjs +220 -0
- package/scripts/lib/validate-bb-markup.mjs +25 -4
- package/dist/types/InputDirection.d.ts +0 -15
- package/dist/utils/passthroughTestKit.d.ts +0 -54
- package/dist/utils/swipeTestKit.d.ts +0 -9
package/README.md
CHANGED
|
@@ -17,9 +17,10 @@ Published artifacts are **`dist/`** (ESM JavaScript, `.d.ts`, the two stylesheet
|
|
|
17
17
|
### TypeScript: use `vue-tsc` 3
|
|
18
18
|
|
|
19
19
|
Use **`vue-tsc` 3 or newer**. Under `vue-tsc` 2 the template type-checker
|
|
20
|
-
silently checks **nothing** about the props of the nine components
|
|
21
|
-
|
|
22
|
-
`BbTabsRoot`, `BbTree`, `BbRadioGroup`, `BbCheckboxGroup`,
|
|
20
|
+
silently checks **nothing** about the props of the nine public components that
|
|
21
|
+
use `<script setup generic="…">` — `BbSelect`, `BbSelectPopover`, `BbTable`,
|
|
22
|
+
`BbTabs`, `BbTabsRoot`, `BbTree`, `BbRadioGroup`, `BbCheckboxGroup`,
|
|
23
|
+
`BbSwitchGroup` —
|
|
23
24
|
because they emit as generic functions rather than `DefineComponent<…>`, a shape
|
|
24
25
|
Vue Language Tools 2 cannot read props out of.
|
|
25
26
|
|
|
@@ -39,7 +40,7 @@ Full detail: `ai/guides/installation-and-plugin-setup.md`.
|
|
|
39
40
|
|
|
40
41
|
| Composable | Role |
|
|
41
42
|
| ---------------------- | --------------------------------------------------------------------- |
|
|
42
|
-
| `useBbConfig` |
|
|
43
|
+
| `useBbConfig` | `setConfig()` patches the one runtime-editable kit option: `locale`. |
|
|
43
44
|
| `useBbDropdownContext` | Read a `BbDropdown`'s resolved groups/selections from anywhere by id. |
|
|
44
45
|
| `useBbTableContext` | Imperative handle onto a `BbTable` by id. |
|
|
45
46
|
| `useBbTabsContext` | Programmatic tab selection for a `BbTabs` by id. |
|
|
@@ -116,15 +117,15 @@ For the public **Bb\*** components, the package exports matching **props**, **ev
|
|
|
116
117
|
**For AI coding agents:**
|
|
117
118
|
|
|
118
119
|
The same knowledge base the npm package ships is served publicly over a CDN, so
|
|
119
|
-
an agent can read it before anything is installed. `@
|
|
120
|
-
v3 prerelease; pin an exact version (`bitboss-ui@3.0.0-
|
|
120
|
+
an agent can read it before anything is installed. `@beta` tracks the latest
|
|
121
|
+
v3 prerelease; pin an exact version (`bitboss-ui@3.0.0-beta.32`) for stable
|
|
121
122
|
links. Sizes grow with the catalogue — treat them as the current order of
|
|
122
123
|
magnitude, not a contract.
|
|
123
124
|
|
|
124
|
-
- [Core knowledge base](https://llms-bitboss-ui.bitboss.it/dist/llms-medium.txt) (~
|
|
125
|
-
- [Index](https://llms-bitboss-ui.bitboss.it/llms.txt) (~
|
|
125
|
+
- [Core knowledge base](https://llms-bitboss-ui.bitboss.it/dist/llms-medium.txt) (~190 KB) — **start here if you can only fetch one file.** Hard rules, setup, component picker, design language, and the full component catalogue.
|
|
126
|
+
- [Index](https://llms-bitboss-ui.bitboss.it/llms.txt) (~22 KB) — link index into every document.
|
|
126
127
|
- [components.json](https://llms-bitboss-ui.bitboss.it/dist/ai/components.json) — machine-readable API surface, for programmatic validation.
|
|
127
|
-
- [Complete knowledge base](https://llms-bitboss-ui.bitboss.it/dist/llms-full.txt) (~3
|
|
128
|
+
- [Complete knowledge base](https://llms-bitboss-ui.bitboss.it/dist/llms-full.txt) (~4.3 MB) — everything concatenated. Bulk ingestion only; too large to prompt with.
|
|
128
129
|
|
|
129
130
|
Already installed? Prefer the local copy under `node_modules/bitboss-ui/dist/ai/`,
|
|
130
131
|
run `npx bitboss-ui ai-init` to write agent pointers, and
|
|
@@ -142,24 +143,24 @@ This package is developed and maintained by [BitBoss](https://www.bitboss.it/),
|
|
|
142
143
|
|
|
143
144
|
## Installation
|
|
144
145
|
|
|
145
|
-
**v3 is a prerelease: the `@
|
|
146
|
+
**v3 is a prerelease: the `@beta` tag is required.** A bare
|
|
146
147
|
`npm install bitboss-ui` resolves to the v2 line, which has no build plugin and
|
|
147
148
|
no `dist/ai` knowledge base — if you are following the v3 docs, that install
|
|
148
149
|
will not work.
|
|
149
150
|
|
|
150
151
|
```bash
|
|
151
|
-
npm install bitboss-ui@
|
|
152
|
+
npm install bitboss-ui@beta
|
|
152
153
|
```
|
|
153
154
|
|
|
154
155
|
```bash
|
|
155
|
-
pnpm add bitboss-ui@
|
|
156
|
+
pnpm add bitboss-ui@beta
|
|
156
157
|
```
|
|
157
158
|
|
|
158
159
|
```bash
|
|
159
|
-
yarn add bitboss-ui@
|
|
160
|
+
yarn add bitboss-ui@beta
|
|
160
161
|
```
|
|
161
162
|
|
|
162
|
-
Verify with `npm ls bitboss-ui` — it must report `3.0.0-
|
|
163
|
+
Verify with `npm ls bitboss-ui` — it must report `3.0.0-beta.*`.
|
|
163
164
|
|
|
164
165
|
---
|
|
165
166
|
|
|
@@ -501,17 +502,17 @@ A standard `llms.txt` discovery file is also published at:
|
|
|
501
502
|
|
|
502
503
|
### Knowledge-base layout
|
|
503
504
|
|
|
504
|
-
| Path | Contents
|
|
505
|
-
| ------------------------------------- |
|
|
506
|
-
| `dist/ai/guides/ai-router.md` | **Start here** — which file to open next
|
|
507
|
-
| `dist/ai/index.md` | Full catalogue + agent rules
|
|
508
|
-
| `dist/ai/components.json` | Machine-readable API (props/events/slots)
|
|
509
|
-
| `dist/ai/<ComponentName>.md` | Guide-first contract per component
|
|
510
|
-
| `dist/ai/composables/<name>.md` | Composable docs
|
|
511
|
-
| `dist/ai/guides/agent-contract.md` | Mandatory agent rules
|
|
512
|
-
| `dist/ai/guides/*-playbook.md` | Coherence / fetch / options / inline-edit
|
|
513
|
-
| `dist/ai/guides/migration/` | v2 → v3 upgrade corpus
|
|
514
|
-
| `dist/ai/recipes/{vue,nuxt,inertia}/` | Page-level assemblies (
|
|
505
|
+
| Path | Contents |
|
|
506
|
+
| ------------------------------------- | ------------------------------------------------------------------------------------ |
|
|
507
|
+
| `dist/ai/guides/ai-router.md` | **Start here** — which file to open next |
|
|
508
|
+
| `dist/ai/index.md` | Full catalogue + agent rules |
|
|
509
|
+
| `dist/ai/components.json` | Machine-readable API (props/events/slots) |
|
|
510
|
+
| `dist/ai/<ComponentName>.md` | Guide-first contract per component |
|
|
511
|
+
| `dist/ai/composables/<name>.md` | Composable docs |
|
|
512
|
+
| `dist/ai/guides/agent-contract.md` | Mandatory agent rules |
|
|
513
|
+
| `dist/ai/guides/*-playbook.md` | Coherence / fetch / options / inline-edit |
|
|
514
|
+
| `dist/ai/guides/migration/` | v2 → v3 upgrade corpus |
|
|
515
|
+
| `dist/ai/recipes/{vue,nuxt,inertia}/` | Page-level assemblies (9 vue / 9 nuxt / 10 inertia; Ownership Atlas is inertia-only) |
|
|
515
516
|
|
|
516
517
|
### Package exports
|
|
517
518
|
|
|
@@ -571,8 +572,8 @@ To make a report actionable, include:
|
|
|
571
572
|
- whether it reproduces in dev, in a production build, or only under SSR
|
|
572
573
|
- the smallest component snippet that shows it
|
|
573
574
|
|
|
574
|
-
v3 ships as a prerelease (`npm i bitboss-ui@
|
|
575
|
-
between
|
|
575
|
+
v3 ships as a prerelease (`npm i bitboss-ui@beta`). Expect breaking changes
|
|
576
|
+
between prereleases; each one is recorded in the migration guides under
|
|
576
577
|
[`ai/guides/migration/`](ai/guides/migration/).
|
|
577
578
|
|
|
578
579
|
---
|
package/dist/ai/BbAsterisk.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
- Safety level: **Consumer API**
|
|
6
6
|
- Group: **Other**
|
|
7
|
-
- Description: Presentational required-field marker (red "*"). No props/slots/events; placed in custom label content.
|
|
7
|
+
- Description: Presentational required-field marker (red "*"). No behaviour props/slots/events (only `pt`); placed in custom label content.
|
|
8
8
|
- Usage rule: Prefer this component for consumer-facing implementations.
|
|
9
9
|
- Implementation source (only when the contract below is not enough): [source/BbAsterisk.md](./source/BbAsterisk.md)
|
|
10
10
|
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
### When to use
|
|
14
14
|
|
|
15
15
|
`BbAsterisk` is the small red `*` that marks a field as required. It is purely
|
|
16
|
-
presentational — it has no props, slots, or events
|
|
16
|
+
presentational — it has no behaviour props, slots, or events (only `pt` to
|
|
17
|
+
restyle its root), and it does not read
|
|
17
18
|
`required` or drive validation. You render it yourself wherever you build custom
|
|
18
19
|
label content, so the marker matches the library's styling (`--bb-danger`).
|
|
19
20
|
|
package/dist/ai/BbAvatar.md
CHANGED
|
@@ -648,6 +648,7 @@ Set these on the element, or on a class you put on it, to retune this component
|
|
|
648
648
|
| `--bg` | `.bb-avatar` | `var(--bb-primary)` | fallback surface (an image covers it) |
|
|
649
649
|
| `--fg` | `.bb-avatar` | `var(--bb-primary-fg)` | Initials; the built-in icon is an 80/20 mix of this toward --bg |
|
|
650
650
|
| `--default-icon-size` | `.bb-avatar` | `clamp(14px, calc(var(--size) * 0.7), 48px)` | Built-in fallback icon: 70% of the avatar, floored at 14px and capped at 48px. `--size` is the avatar's own box, set inline from the `size` prop. |
|
|
651
|
+
| `--elev` | `.bb-avatar` | `var(--bb-elev-sm)` | The theme's resting lift on small chrome (Q44.15), declared here so an ancestor's `--elev` cannot reach in; `--elev: none` flattens one. |
|
|
651
652
|
| `--size` | `.bb-avatar__default-icon` | `var(--default-icon-size)` | |
|
|
652
653
|
|
|
653
654
|
## Component tree
|
package/dist/ai/BbBadge.md
CHANGED
|
@@ -891,11 +891,11 @@ Set these on the element, or on a class you put on it, to retune this component
|
|
|
891
891
|
| `--border-width` | `.bb-badge` | `0px` | Pill border. The `border` shorthand is always present, so the width is what turns it on — the filled variants leave it at 0 and the bordered ones (secondary/destructive/outline) step up to `--bb-border-w-sm`. Nothing compensates for it: the… |
|
|
892
892
|
| `--border-color` | `.bb-badge` | `transparent` | |
|
|
893
893
|
| `--ring` | `.bb-badge` | `var(--bb-primary-ring)` | focus ring, per variant |
|
|
894
|
-
| `--min-size-md` | `.bb-badge` | `16px` |
|
|
894
|
+
| `--min-size-md` | `.bb-badge` | `calc(var(--bb-control-h) - 16px)` | 16px at the default |
|
|
895
895
|
| `--min-size` | `.bb-badge` | `var(--min-size-md)` | pill min height and min width |
|
|
896
896
|
| `--elev` | `.bb-badge` | `var(--bb-elev-sm)` | Resting lift. Invisible while `--bb-elev` is its default transparent layer. A chip is small enough that a theme wanting a different lift here than on a button sets `--elev` on this class. |
|
|
897
897
|
| `--r` | `.bb-badge` | `calc(var(--bb-radius) * 0.5)` | Pill corners; the body and trailing wrappers round their outer edges to match |
|
|
898
|
-
| `--font-size` | `.bb-badge` | `
|
|
898
|
+
| `--font-size` | `.bb-badge` | `calc(var(--bb-fs) - 4px)` | Label. Sizes are offsets from the density masters (--bb-fs, --bb-control-h), like BbButton's, so a denser theme scales the pill. |
|
|
899
899
|
| `--icon-size` | `.bb-badge` | `12px` | leading/append icons (passed to BbIcon as --size) |
|
|
900
900
|
| `--gap` | `.bb-badge` | `3px` | space between label, icons and the trailing side |
|
|
901
901
|
| `--padding-inline` | `.bb-badge` | `6px` | base side padding; the modifiers below scale it per side |
|
package/dist/ai/BbBadgeButton.md
CHANGED
|
@@ -87,11 +87,11 @@ Set these on the element, or on a class you put on it, to retune this component
|
|
|
87
87
|
| `--border-width` | `.bb-badge` | `0px` | Pill border. The `border` shorthand is always present, so the width is what turns it on — the filled variants leave it at 0 and the bordered ones (secondary/destructive/outline) step up to `--bb-border-w-sm`. Nothing compensates for it: the… |
|
|
88
88
|
| `--border-color` | `.bb-badge` | `transparent` | |
|
|
89
89
|
| `--ring` | `.bb-badge` | `var(--bb-primary-ring)` | focus ring, per variant |
|
|
90
|
-
| `--min-size-md` | `.bb-badge` | `16px` |
|
|
90
|
+
| `--min-size-md` | `.bb-badge` | `calc(var(--bb-control-h) - 16px)` | 16px at the default |
|
|
91
91
|
| `--min-size` | `.bb-badge` | `var(--min-size-md)` | pill min height and min width |
|
|
92
92
|
| `--elev` | `.bb-badge` | `var(--bb-elev-sm)` | Resting lift. Invisible while `--bb-elev` is its default transparent layer. A chip is small enough that a theme wanting a different lift here than on a button sets `--elev` on this class. |
|
|
93
93
|
| `--r` | `.bb-badge` | `calc(var(--bb-radius) * 0.5)` | Pill corners; the body and trailing wrappers round their outer edges to match |
|
|
94
|
-
| `--font-size` | `.bb-badge` | `
|
|
94
|
+
| `--font-size` | `.bb-badge` | `calc(var(--bb-fs) - 4px)` | Label. Sizes are offsets from the density masters (--bb-fs, --bb-control-h), like BbButton's, so a denser theme scales the pill. |
|
|
95
95
|
| `--icon-size` | `.bb-badge` | `12px` | leading/append icons (passed to BbIcon as --size) |
|
|
96
96
|
| `--gap` | `.bb-badge` | `3px` | space between label, icons and the trailing side |
|
|
97
97
|
| `--padding-inline` | `.bb-badge` | `6px` | base side padding; the modifiers below scale it per side |
|
|
@@ -157,7 +157,7 @@ from an ancestor — so `--size` set on a wrapper `div` is simply ignored
|
|
|
157
157
|
### Restyling with passthrough
|
|
158
158
|
|
|
159
159
|
`pt` reaches the one part with a class list — or, in the object form, a
|
|
160
|
-
style and attributes. Part: `root` (the drawn glyph). States: `checked`, `indeterminate`, `readonly`, `disabled`, `warnings`, `errors`, `focused`, `
|
|
160
|
+
style and attributes. Part: `root` (the drawn glyph). States: `checked`, `indeterminate`, `readonly`, `disabled`, `warnings`, `errors`, `focused`, `focusVisible` — each
|
|
161
161
|
true exactly while the glyph paints it, so they follow its own rules:
|
|
162
162
|
`warnings` is off while `errors` is on.
|
|
163
163
|
|
|
@@ -202,7 +202,7 @@ The full grammar, the merge rules and the global map are in the
|
|
|
202
202
|
|
|
203
203
|
| Prop | Type | Default | Required | Description |
|
|
204
204
|
| --- | --- | --- | --- | --- |
|
|
205
|
-
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `root`. States: `checked`, `disabled`, `errors`, `
|
|
205
|
+
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `root`. States: `checked`, `disabled`, `errors`, `focused`, `focusVisible`, `indeterminate`, `readonly`, `warnings`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. |
|
|
206
206
|
| `checked` | `boolean \| undefined` | `false` | | Renders the checked state (fills the box and draws the checkmark). |
|
|
207
207
|
| `disabled` | `boolean \| undefined` | `false` | | Disables the glyph (muted fill, not-allowed cursor). Purely visual. |
|
|
208
208
|
| `focused` | `boolean \| undefined` | `false` | | Whether the paired native input has focus — any focus, mouse included. Paints `--focused`, the hook the `focused` passthrough state aliases (T19); draws nothing by itself — the ring stays on `focusVisible`. |
|
|
@@ -231,7 +231,7 @@ States are listed in precedence order: when two are on at once and their entries
|
|
|
231
231
|
| `warnings` | Component-wide: the toggle shows warnings and no errors. |
|
|
232
232
|
| `errors` | Component-wide: the toggle shows errors — the glyph and the message line turn red. |
|
|
233
233
|
| `focused` | Component-wide: the native input has focus — any focus, mouse included, like the `focused` slot prop. |
|
|
234
|
-
| `
|
|
234
|
+
| `focusVisible` | Component-wide: that focus is keyboard-visible — where a focus ring belongs. |
|
|
235
235
|
|
|
236
236
|
## Events
|
|
237
237
|
|
|
@@ -171,7 +171,7 @@ from an ancestor — so `--size` set on a wrapper `div` is simply ignored
|
|
|
171
171
|
### Restyling with passthrough
|
|
172
172
|
|
|
173
173
|
`pt` reaches the one part with a class list — or, in the object form, a
|
|
174
|
-
style and attributes. Part: `root` (the drawn glyph). States: `checked`, `readonly`, `disabled`, `warnings`, `errors`, `focused`, `
|
|
174
|
+
style and attributes. Part: `root` (the drawn glyph). States: `checked`, `readonly`, `disabled`, `warnings`, `errors`, `focused`, `focusVisible` — each
|
|
175
175
|
true exactly while the glyph paints it, so they follow its own rules:
|
|
176
176
|
`warnings` is off while `errors` is on.
|
|
177
177
|
|
|
@@ -217,7 +217,7 @@ The full grammar, the merge rules and the global map are in the
|
|
|
217
217
|
|
|
218
218
|
| Prop | Type | Default | Required | Description |
|
|
219
219
|
| --- | --- | --- | --- | --- |
|
|
220
|
-
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `root`. States: `checked`, `disabled`, `errors`, `
|
|
220
|
+
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `root`. States: `checked`, `disabled`, `errors`, `focused`, `focusVisible`, `readonly`, `warnings`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. |
|
|
221
221
|
| `checked` | `boolean \| undefined` | `false` | | Renders the checked state (grows the inner dot). |
|
|
222
222
|
| `disabled` | `boolean \| undefined` | `false` | | Disables the glyph (muted fill, not-allowed cursor). Purely visual. |
|
|
223
223
|
| `focused` | `boolean \| undefined` | `false` | | Whether the paired native input has focus — any focus, mouse included. Paints `--focused`, the hook the `focused` passthrough state aliases (T19); draws nothing by itself — the ring stays on `focusVisible`. |
|
|
@@ -244,7 +244,7 @@ States are listed in precedence order: when two are on at once and their entries
|
|
|
244
244
|
| `warnings` | Component-wide: the toggle shows warnings and no errors. |
|
|
245
245
|
| `errors` | Component-wide: the toggle shows errors — the glyph and the message line turn red. |
|
|
246
246
|
| `focused` | Component-wide: the native input has focus — any focus, mouse included, like the `focused` slot prop. |
|
|
247
|
-
| `
|
|
247
|
+
| `focusVisible` | Component-wide: that focus is keyboard-visible — where a focus ring belongs. |
|
|
248
248
|
|
|
249
249
|
## Events
|
|
250
250
|
|
|
@@ -167,7 +167,7 @@ from an ancestor — so `--w` set on a wrapper `div` is simply ignored
|
|
|
167
167
|
### Restyling with passthrough
|
|
168
168
|
|
|
169
169
|
`pt` reaches the one part with a class list — or, in the object form, a
|
|
170
|
-
style and attributes. Part: `root` (the drawn glyph). States: `checked`, `indeterminate`, `readonly`, `disabled`, `warnings`, `errors`, `focused`, `
|
|
170
|
+
style and attributes. Part: `root` (the drawn glyph). States: `checked`, `indeterminate`, `readonly`, `disabled`, `warnings`, `errors`, `focused`, `focusVisible` — each
|
|
171
171
|
true exactly while the glyph paints it, so they follow its own rules:
|
|
172
172
|
`warnings` is off while `errors` is on.
|
|
173
173
|
|
|
@@ -213,7 +213,7 @@ The full grammar, the merge rules and the global map are in the
|
|
|
213
213
|
|
|
214
214
|
| Prop | Type | Default | Required | Description |
|
|
215
215
|
| --- | --- | --- | --- | --- |
|
|
216
|
-
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `root`. States: `checked`, `disabled`, `errors`, `
|
|
216
|
+
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `root`. States: `checked`, `disabled`, `errors`, `focused`, `focusVisible`, `indeterminate`, `readonly`, `warnings`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. |
|
|
217
217
|
| `checked` | `boolean \| undefined` | `false` | | Renders the checked state (fills the track and slides the thumb to the end). |
|
|
218
218
|
| `disabled` | `boolean \| undefined` | `false` | | Disables the glyph (muted track, not-allowed cursor). Purely visual. |
|
|
219
219
|
| `focused` | `boolean \| undefined` | `false` | | Whether the paired native input has focus — any focus, mouse included. Paints `--focused`, the hook the `focused` passthrough state aliases (T19); draws nothing by itself — the ring stays on `focusVisible`. |
|
|
@@ -242,7 +242,7 @@ States are listed in precedence order: when two are on at once and their entries
|
|
|
242
242
|
| `warnings` | Component-wide: the toggle shows warnings and no errors. |
|
|
243
243
|
| `errors` | Component-wide: the toggle shows errors — the glyph and the message line turn red. |
|
|
244
244
|
| `focused` | Component-wide: the native input has focus — any focus, mouse included, like the `focused` slot prop. |
|
|
245
|
-
| `
|
|
245
|
+
| `focusVisible` | Component-wide: that focus is keyboard-visible — where a focus ring belongs. |
|
|
246
246
|
|
|
247
247
|
## Events
|
|
248
248
|
|
package/dist/ai/BbBreadcrumbs.md
CHANGED
|
@@ -726,7 +726,7 @@ States are listed in precedence order: when two are on at once and their entries
|
|
|
726
726
|
- `BbDropdownList` _(internal — not importable, reach it through `BbDropdown`)_ — also mounts `BbBaseButton`, `BbIcon`, `CommonPopover`, `BbDropdownList`
|
|
727
727
|
- `BbBadge` _(public — [contract](./BbBadge.md))_ — its own pt parts (`BbBadge`): `spinner` → `BbSpinner`, `icon` → `BbIcon`, `clear` → `button.bb-badge__clear-button`; documented CSS variables: `--bg`, `--fg`, `--border-width`, `--ring`, `--min-size-md`, `--min-size`, `--elev`, `--r`, `--font-size`, `--icon-size`, `--gap`, `--padding-inline`, `--clear-size`, `--pad-left`; also mounts `BbIcon`, `BbSpinner`, `BadgeBodyContent`
|
|
728
728
|
- `AdaptiveDropdown` _(internal — not importable, reach it through `BbDropdown`)_ — hands `BbOffCanvas` the pt map `{ header: 'header', footer: 'footer', panel: 'root', sheet: 'root' }` (ours → theirs); also mounts `BbSmoothHeight`, `BbDropdownList`
|
|
729
|
-
- `BbOffCanvas` _(public — [contract](./BbOffCanvas.md))_ — its own pt parts (`BbOffCanvas`): `header` → `div.bb-offcanvas__header`, `title` → `span.bb-offcanvas__title`, `description` → `p.bb-offcanvas__description`, `close` → `CloseButton`, `content` → `div.bb-offcanvas__body`, `footer` → `div.bb-offcanvas__footer`; documented CSS variables: `--stack-x`, `--stack-fill`, `--stack-transition-duration`, `--px`, `--handle-w`, `--handle-h`, `--handle-bg`, `--close-size`
|
|
729
|
+
- `BbOffCanvas` _(public — [contract](./BbOffCanvas.md))_ — its own pt parts (`BbOffCanvas`): `header` → `div.bb-offcanvas__header`, `title` → `span.bb-offcanvas__title`, `description` → `p.bb-offcanvas__description`, `close` → `CloseButton`, `content` → `div.bb-offcanvas__body`, `footer` → `div.bb-offcanvas__footer`; documented CSS variables: `--stack-x`, `--stack-fill`, `--stack-transition-duration`, `--px`, `--handle-w`, `--handle-h`, `--handle-bg`, `--safe-top`, `--close-size`
|
|
730
730
|
- `CloseButton` _(internal — not importable, reach it through `BbOffCanvas`)_ — documented CSS variables: `--size`, `--p`
|
|
731
731
|
- `BbButton` _(public — [contract](./BbButton.md))_ — its own pt parts (`BbButton`): `root` → `BbBaseButton`, `spinner` → `BbSpinner`, `icon` → `BbIcon`, `text` → `span.bb-button__content`; documented CSS variables: `--h-xs`, `--h`, `--icon-size`, `--px`, `--fs`, `--r`, `--gap`, `--bg`, `--bg-hover`, `--bg-pressed`, `--fg`, `--border-color`, `--ring`, `--bw`, `--fg-hover`, `--border-hover`, `--fg-pressed`, `--border-pressed`, `--bg-disabled`, `--fg-disabled`, `--border-disabled`, `--opacity-disabled`, `--elev-tier`, `--elev`; also mounts `BbIcon`, `BbBaseButton`, `BbSpinner`
|
|
732
732
|
- Also mounts `BbIcon`
|
package/dist/ai/BbButton.md
CHANGED
|
@@ -590,7 +590,9 @@ Escape hatches, when the default isn't right:
|
|
|
590
590
|
handler opens a dialog and you don't want a spinner flash).
|
|
591
591
|
- `interactive-while-loading` — keeps the button clickable while it shows the
|
|
592
592
|
loading state, for controls that must stay interactive (this is how the
|
|
593
|
-
`BbDropdownButton` caret stays usable while the primary action runs).
|
|
593
|
+
`BbDropdownButton` caret stays usable while the primary action runs). The
|
|
594
|
+
soft-disable is dropped whole: no `aria-disabled`, the button stays in the tab
|
|
595
|
+
order, and the pointer still reaches it.
|
|
594
596
|
|
|
595
597
|
The visually-hidden loading announcement is localized via the plugin's `locale`
|
|
596
598
|
option. `disabled` and `loading` are independent props, and setting both is
|
|
@@ -848,6 +850,25 @@ never instead of it. The full grammar, the merge rules and the global map are
|
|
|
848
850
|
in the [passthrough guide](./guides/passthrough.md); a look several
|
|
849
851
|
buttons share is a `variant`, not a `pt`.
|
|
850
852
|
|
|
853
|
+
**Padding, radius, font size and gap are the button's own.** `root` declares
|
|
854
|
+
`padding-left` / `padding-right`, `border-radius`, `font-size` and `gap`,
|
|
855
|
+
reading them from the active locals `--px`, `--r`, `--fs` and `--gap`, which
|
|
856
|
+
the size class (`.bb-button--md` by default) sets. So in the default,
|
|
857
|
+
unlayered build `pt:root="px-6 rounded-lg text-lg gap-2"` changes nothing, and
|
|
858
|
+
`p-4` half-applies (top and bottom only) — measured in
|
|
859
|
+
[Installation](./guides/installation-and-plugin-setup.md) § _What "the utility
|
|
860
|
+
loses" actually means_. An arbitrary-property class (`[--r:12px]`) loses the
|
|
861
|
+
same way: the size class out-specifies it. The object prop above, like any
|
|
862
|
+
such class, only lands with `cssLayers: TAILWIND_V4_LAYERS`, where every
|
|
863
|
+
utility wins. What works in every build:
|
|
864
|
+
|
|
865
|
+
- a different `size` step, which moves height, padding, font, radius and icon
|
|
866
|
+
together;
|
|
867
|
+
- the locals as an inline style, which nothing in the sheet outranks —
|
|
868
|
+
`:pt:root="{ style: { '--r': '9999px', '--px': '20px' } }"`;
|
|
869
|
+
- a utility with Tailwind's important suffix (`px-6!`, `[--r:12px]!`), or a
|
|
870
|
+
rule of your own on `.bb-button` that out-specifies the size class.
|
|
871
|
+
|
|
851
872
|
### Works well with
|
|
852
873
|
|
|
853
874
|
- `BbDropdownButton` — escalate to it when a primary action grows close
|
package/dist/ai/BbCalendar.md
CHANGED
|
@@ -470,20 +470,20 @@ and attributes — optionally only while a state is on. Parts: `root` (the
|
|
|
470
470
|
calendar's box, where a consumer `class` lands too; it carries the sizing
|
|
471
471
|
tokens, so `pt:root="[--pad-x:2px]"` tightens the padding and the grid width
|
|
472
472
|
follows), `header` (the navigation bar), `arrow` (the previous / next
|
|
473
|
-
buttons), `month` and `year` (the heading buttons), `
|
|
474
|
-
weekday letter), `day` (one whole day cell) and `
|
|
475
|
-
inside it), `
|
|
473
|
+
buttons), `month` and `year` (the heading buttons), `columnHeader` (each
|
|
474
|
+
weekday letter), `day` (one whole day cell) and `dayButton` (the button
|
|
475
|
+
inside it), `monthItem` and `yearItem` (one button of the month / year
|
|
476
476
|
panel).
|
|
477
477
|
|
|
478
478
|
States: `root` is `disabled` while the calendar is; `arrow` is `disabled` at a
|
|
479
479
|
`min` / `max` bound; `month` and `year` are `active` while their panel is
|
|
480
|
-
open. The cells resolve per node — on `day` and `
|
|
480
|
+
open. The cells resolve per node — on `day` and `dayButton`: `selected`,
|
|
481
481
|
`disabled`, `today`, `outside` (a day of the previous or next month),
|
|
482
|
-
`
|
|
482
|
+
`rangeStart` / `rangeEnd` / `inRange` (a committed range) and `highlighted`
|
|
483
483
|
(the keyboard cursor). The panel items carry the same set without `today` and
|
|
484
484
|
`outside`.
|
|
485
485
|
|
|
486
|
-
`day` is the whole cell and `
|
|
486
|
+
`day` is the whole cell and `dayButton` the rounded mark inside it: a
|
|
487
487
|
background on `pt:day` paints the full cell square, so restyle the mark on
|
|
488
488
|
`pt:day-button`. The time rail is not a part.
|
|
489
489
|
|
|
@@ -522,7 +522,7 @@ the page is `BbDatePicker`.
|
|
|
522
522
|
|
|
523
523
|
| Prop | Type | Default | Required | Description |
|
|
524
524
|
| --- | --- | --- | --- | --- |
|
|
525
|
-
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `arrow`, `
|
|
525
|
+
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `arrow`, `columnHeader`, `day`, `dayButton`, `header`, `month`, `monthItem`, `root`, `year`, `yearItem`. States: `active`, `disabled`, `highlighted`, `inRange`, `outside`, `rangeEnd`, `rangeStart`, `selected`, `today`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. |
|
|
526
526
|
| `activeSegment` | `BbCalendarSegment \| undefined` | | | Which end the time rail edits in range + `type="datetime"` (`v-model:active-segment`). Standalone use manages this internally; an embedding host (the date input) drives it from its focused field. Ignored outside range + datetime. |
|
|
527
527
|
| `ampm` | `boolean \| undefined` | `false` | | 12-hour display with an AM/PM column (requires `type="datetime"`); emits stay 24h. |
|
|
528
528
|
| `disabled` | `boolean \| undefined` | `false` | | Disables every cell, the navigation and the time rail. |
|
|
@@ -552,22 +552,22 @@ the page is `BbDatePicker`.
|
|
|
552
552
|
| `arrow` | The previous / next buttons — a broadcast. |
|
|
553
553
|
| `month` | The month heading button; it opens the month panel. |
|
|
554
554
|
| `year` | The year heading button; it opens the year panel. |
|
|
555
|
-
| `
|
|
556
|
-
| `day` | One whole day cell — a broadcast resolved per day. A background here paints the full cell square; restyle the round mark on `
|
|
557
|
-
| `
|
|
558
|
-
| `
|
|
559
|
-
| `
|
|
555
|
+
| `columnHeader` | Each weekday letter above the grid — a broadcast. |
|
|
556
|
+
| `day` | One whole day cell — a broadcast resolved per day. A background here paints the full cell square; restyle the round mark on `dayButton`. |
|
|
557
|
+
| `dayButton` | The button inside a day cell — the mark that shows selection. A broadcast resolved per day. |
|
|
558
|
+
| `monthItem` | One month button of the month panel (the home grid of `type="month"`) — a broadcast resolved per month. |
|
|
559
|
+
| `yearItem` | One year button of the year list — a broadcast resolved per year. |
|
|
560
560
|
|
|
561
561
|
States are listed in precedence order: when two are on at once and their entries conflict, the later one wins.
|
|
562
562
|
|
|
563
563
|
| State | When it is on |
|
|
564
564
|
| --- | --- |
|
|
565
|
-
| `outside` | Per node, on `day` / `
|
|
566
|
-
| `today` | Per node, on `day` / `
|
|
567
|
-
| `
|
|
565
|
+
| `outside` | Per node, on `day` / `dayButton`: a day of the previous or next month, shown to fill the grid. |
|
|
566
|
+
| `today` | Per node, on `day` / `dayButton`: today. |
|
|
567
|
+
| `inRange` | Per node, on the cells (`day`, `dayButton`, `monthItem`, `yearItem`): inside a committed range, between its ends. |
|
|
568
568
|
| `selected` | Per node, on the cells: a chosen day, month or year. |
|
|
569
|
-
| `
|
|
570
|
-
| `
|
|
569
|
+
| `rangeStart` | Per node, on the cells: a committed range's first day, month or year. |
|
|
570
|
+
| `rangeEnd` | Per node, on the cells: a committed range's last day, month or year. |
|
|
571
571
|
| `disabled` | Component-wide while the calendar is `disabled`. Also per node: on the cells, one outside `min` / `max` or refused by `selectable`; on `arrow`, at a bound or while the month / year panel is open. |
|
|
572
572
|
| `active` | Per node, on `month` / `year`: its panel is open. |
|
|
573
573
|
| `highlighted` | Per node, on the cells: the keyboard cursor. |
|
|
@@ -610,7 +610,7 @@ Set these on the element, or on a class you put on it, to retune this component
|
|
|
610
610
|
- **CSS custom properties** listed on a node are declared on THAT node's root and read by elements inside it. Set one on that node's root or on the element inside it that reads it — the pt part that lands there is how you reach it (`pt:box="[--border-color:…]"` on a text input) — never on `BbCalendar`'s root, where the node's own declaration masks it (design-tokens guide, _Overriding one from a consumer app_, rule 0).
|
|
611
611
|
- Listed nodes are the ones `BbCalendar`'s API reaches or that declare a documented CSS variable; the rest fold into "also mounts". The complete tree, repeats and undocumented locals included, is the `tree` field of this component in `components.json`.
|
|
612
612
|
|
|
613
|
-
- `BbCalendar` _(this component)_ — its own template binds: `header` → `div.bb-calendar__controls`, `arrow` → `BbBaseButton`, `month` → `BbBaseButton`, `year` → `BbBaseButton`, `day` → `div.bb-calendar__date`, `
|
|
613
|
+
- `BbCalendar` _(this component)_ — its own template binds: `header` → `div.bb-calendar__controls`, `arrow` → `BbBaseButton`, `month` → `BbBaseButton`, `year` → `BbBaseButton`, `day` → `div.bb-calendar__date`, `dayButton` → `button.bb-calendar__date-button`
|
|
614
614
|
- `BbBaseButton` _(public — [contract](./BbBaseButton.md))_ — its own pt parts (`BbBaseButton`): `root` → `RouterComponent`, `root` → `a`, `root` → `component`; also mounts `RouterComponent`
|
|
615
615
|
- `CommonTimeSelector` _(internal — not importable, reach it through `BbCalendar`)_ — documented CSS variables: `--time-mark`; also mounts `BbBaseButton`
|
|
616
616
|
- Also mounts `ScaleFade`, `Slide`, `CalendarMonthPanel`, `CalendarYearPanel`
|
package/dist/ai/BbCheckbox.md
CHANGED
|
@@ -476,12 +476,15 @@ const toggleAll = (checked: boolean) => {
|
|
|
476
476
|
</script>
|
|
477
477
|
```
|
|
478
478
|
|
|
479
|
-
### Layout:
|
|
479
|
+
### Layout: `layout`, alignment, `reverse`
|
|
480
480
|
|
|
481
|
-
- `
|
|
481
|
+
- `layout` defaults to `'auto'` (label and box size to their content, on one
|
|
482
482
|
line). `'horizontal'` splits label/box 50-50; `'vertical'` stacks them; a
|
|
483
483
|
two-token pattern like `"x xxxxxxx"` splits proportionally by token length —
|
|
484
484
|
the first token sizes the **visually first** element, the second the other.
|
|
485
|
+
`'label-fill'` hands the label the free space and keeps the box at its own
|
|
486
|
+
size; with `reverse` that is the settings row — label on the left, box on
|
|
487
|
+
the trailing edge. `'input-fill'` is the other way round.
|
|
485
488
|
- The box renders **before** the label by default — the conventional checkbox
|
|
486
489
|
arrangement. Setting `reverse` swaps the label in front of the box. It is an
|
|
487
490
|
ordinary opt-in boolean: unset and `:reverse="false"` both give box-first,
|
|
@@ -490,7 +493,7 @@ const toggleAll = (checked: boolean) => {
|
|
|
490
493
|
invisible from outside. Earlier revisions of this guide described that
|
|
491
494
|
negation as a consumer-facing quirk — it is not.)
|
|
492
495
|
- `input-position` / `label-position` (`'left' | 'center' | 'right'`) align box
|
|
493
|
-
and label text inside their columns — useful with
|
|
496
|
+
and label text inside their columns — useful with ratio layouts.
|
|
494
497
|
- `hide-label` keeps the label for screen readers but hides it visually — only
|
|
495
498
|
for dense composites where visible text lives elsewhere.
|
|
496
499
|
- `id` is auto-generated for the label→input wiring; pass your own only when
|
|
@@ -670,11 +673,10 @@ map are in the [passthrough guide](./guides/passthrough.md).
|
|
|
670
673
|
|
|
671
674
|
| Prop | Type | Default | Required | Description |
|
|
672
675
|
| --- | --- | --- | --- | --- |
|
|
673
|
-
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `description`, `hint`, `icon`, `label`, `message`, `root`. States: `checked`, `disabled`, `errors`, `
|
|
676
|
+
| `pt:<part>`, `pt:<part>:<state>`, `pt` | `PtValue` | | | Passthrough — a class list, or `{ class, style, attrs }`, bound to one named part of the component; the state form applies only while that state is on. Parts: `description`, `hint`, `icon`, `label`, `message`, `root`. States: `checked`, `disabled`, `errors`, `focused`, `focusVisible`, `indeterminate`, `readonly`, `warnings`. What each one is: _Passthrough parts and states_ below. `pt` is the object form with the same keys minus the prefix (`{ icon: '…', 'icon:loading': '…' }`). See `guides/passthrough.md`. |
|
|
674
677
|
| `autofocus` | `Booleanish \| undefined` | | | Sets autofocus on page load. |
|
|
675
678
|
| `checked` | `boolean \| undefined` | `undefined` | | Defines the input as checked. |
|
|
676
679
|
| `description` | `string \| undefined` | | | Descriptive text displayed below the label and above the input. Unlike the hint it is always visible, and it is linked to the input via `aria-describedby` (after any `errors` / `warnings`, before the `hint`). |
|
|
677
|
-
| `direction` | `InputDirection \| undefined` | `"auto"` | | Direction of the layout of the component. Can either be a predefined value or a pattern separated by a space like `xx xxxxx`. |
|
|
678
680
|
| `disabled` | `boolean \| undefined` | `false` | | Disables the component. |
|
|
679
681
|
| `errors` | `string \| string[] \| undefined` | | | Can be a string or an array of string containing the messages to display. They render in an `aria-live="polite"` region (announced when they appear) and, while the list is non-empty, are referenced FIRST from the control's `aria-describedby… |
|
|
680
682
|
| `falseValue` | `any` | | | Value of the input when unchecked. It handles any kind of serializable object. |
|
|
@@ -687,6 +689,7 @@ map are in the [passthrough guide](./guides/passthrough.md).
|
|
|
687
689
|
| `inputPosition` | `"left" \| "center" \| "right" \| undefined` | `"left"` | | Sets the alignment of the input. Since inputs are inline block they can be aligned just as text can. |
|
|
688
690
|
| `label` | `string` | | yes | Text content of the label of the element. |
|
|
689
691
|
| `labelPosition` | `"left" \| "center" \| "right" \| undefined` | | | Sets the text alignment of the label. |
|
|
692
|
+
| `layout` | `FieldLayout \| undefined` | `"auto"` | | How the label and the input sit together: `'vertical'`, `'horizontal'` (50/50), `'auto'`, `'label-fill'` (the label takes the free space, the input keeps its size), `'input-fill'` (the other way round), or a two-word ratio pattern like `'xx… |
|
|
690
693
|
| `modelValue` | `any` | | | Used by v-model. Can be any serializable type. |
|
|
691
694
|
| `name` | `string \| undefined` | | | Defines the name of the input. |
|
|
692
695
|
| `persistentHint` | `boolean \| undefined` | `false` | | Keeps the hint displayed. |
|
|
@@ -721,7 +724,7 @@ States are listed in precedence order: when two are on at once and their entries
|
|
|
721
724
|
| `warnings` | Component-wide: the toggle shows warnings and no errors. |
|
|
722
725
|
| `errors` | Component-wide: the toggle shows errors — the glyph and the message line turn red. |
|
|
723
726
|
| `focused` | Component-wide: the native input has focus — any focus, mouse included, like the `focused` slot prop. |
|
|
724
|
-
| `
|
|
727
|
+
| `focusVisible` | Component-wide: that focus is keyboard-visible — where a focus ring belongs. |
|
|
725
728
|
|
|
726
729
|
## Events
|
|
727
730
|
|