bitboss-ui 3.0.0-beta.47 → 3.0.0-beta.49
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 +24 -7
- package/bin/bitboss-ui-mcp.mjs +15 -3
- package/bin/bitboss-ui.mjs +167 -14
- package/dist/ai/BbAccordion.md +1 -1
- package/dist/ai/BbAvatar.md +1 -1
- package/dist/ai/BbBreadcrumbs.md +65 -65
- package/dist/ai/BbButton.md +28 -8
- package/dist/ai/BbCheckbox.md +0 -2
- package/dist/ai/BbCheckboxGroup.md +13 -20
- package/dist/ai/BbCollapsible.md +1 -1
- package/dist/ai/BbColorPalette.md +1 -1
- package/dist/ai/BbConfirm.md +8 -0
- package/dist/ai/BbConfirmPortal.md +1 -1
- package/dist/ai/BbDatePickerInput.md +4 -2
- package/dist/ai/BbDialog.md +1 -8
- package/dist/ai/BbDropdown.md +231 -220
- package/dist/ai/BbDropdownButton.md +65 -65
- package/dist/ai/BbDropdownGroup.md +2 -2
- package/dist/ai/BbDropzone.md +10 -10
- package/dist/ai/BbForm.md +43 -52
- package/dist/ai/BbHoverCard.md +19 -7
- package/dist/ai/BbHoverCardPortal.md +1 -1
- package/dist/ai/BbNumberInput.md +88 -21
- package/dist/ai/BbPopover.md +47 -40
- package/dist/ai/BbPopoverPortal.md +1 -1
- package/dist/ai/BbProgress.md +48 -22
- package/dist/ai/BbRadioGroup.md +13 -19
- package/dist/ai/BbSelect.md +16 -36
- package/dist/ai/BbSelectPopover.md +14 -30
- package/dist/ai/BbSmoothHeight.md +0 -2
- package/dist/ai/BbSwitchGroup.md +13 -20
- package/dist/ai/BbTable.md +11 -10
- package/dist/ai/BbTabs.md +107 -106
- package/dist/ai/BbTabsList.md +2 -2
- package/dist/ai/BbTabsPanels.md +1 -1
- package/dist/ai/BbTabsRoot.md +3 -3
- package/dist/ai/BbTooltip.md +29 -13
- package/dist/ai/BbTree.md +14 -11
- package/dist/ai/CommonPopover.md +1 -1
- package/dist/ai/changelog.json +297 -6
- package/dist/ai/components.json +50 -45
- package/dist/ai/composables/useBbDropdownContext.md +16 -16
- package/dist/ai/composables/useBbFormField.md +5 -1
- package/dist/ai/composables/useBbTabsContext.md +14 -14
- package/dist/ai/guides/agent-contract.md +27 -27
- package/dist/ai/guides/ai-router.md +1 -1
- package/dist/ai/guides/component-picker.md +3 -3
- package/dist/ai/guides/fetch-items-playbook.md +1 -1
- package/dist/ai/guides/icons-policy.md +10 -10
- package/dist/ai/guides/inertia-helpers.md +120 -67
- package/dist/ai/guides/installation-and-plugin-setup.md +45 -15
- package/dist/ai/guides/migration/components/bb-breadcrumbs.md +3 -2
- package/dist/ai/guides/migration/components/bb-checkbox-group.md +16 -16
- package/dist/ai/guides/migration/components/bb-dropdown-button.md +9 -8
- package/dist/ai/guides/migration/components/bb-dropdown.md +15 -14
- package/dist/ai/guides/migration/components/bb-radio-group.md +2 -1
- package/dist/ai/guides/migration/components/bb-select-popover.md +6 -1
- package/dist/ai/guides/migration/components/bb-select.md +10 -2
- package/dist/ai/guides/migration/components/bb-switch-group.md +2 -1
- package/dist/ai/guides/migration/components/bb-tabs.md +9 -8
- package/dist/ai/guides/migration/components/bb-tooltip.md +1 -1
- package/dist/ai/guides/migration/v2-to-v3.md +143 -28
- package/dist/ai/guides/migration/v3-beta-css-classes.md +29 -27
- package/dist/ai/guides/migration/v3-beta-tooling.md +11 -0
- package/dist/ai/guides/options-items-playbook.md +30 -24
- package/dist/ai/guides/passthrough.md +4 -4
- package/dist/ai/guides/preset-components.md +18 -3
- package/dist/ai/guides/typescript-generic-components.md +1 -1
- package/dist/ai/guides/validated-forms.md +11 -22
- package/dist/ai/guides/validation-providers.md +4 -3
- 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 +6 -6
- package/dist/ai/manifest/components/BbAccordion.json +1 -1
- package/dist/ai/manifest/components/BbBreadcrumbs.json +10 -6
- package/dist/ai/manifest/components/BbBreadcrumbs.tree.json +1 -1
- package/dist/ai/manifest/components/BbButton.json +2 -1
- package/dist/ai/manifest/components/BbButton.tree.json +1 -1
- package/dist/ai/manifest/components/BbCheckboxGroup.json +2 -2
- package/dist/ai/manifest/components/BbCollapsible.json +1 -1
- package/dist/ai/manifest/components/BbColorPalette.json +1 -1
- package/dist/ai/manifest/components/BbConfirmPortal.json +5 -2
- package/dist/ai/manifest/components/BbDropdown.json +23 -20
- package/dist/ai/manifest/components/BbDropdown.tree.json +2 -2
- package/dist/ai/manifest/components/BbDropdownButton.json +22 -19
- package/dist/ai/manifest/components/BbDropdownButton.tree.json +1 -1
- package/dist/ai/manifest/components/BbDropdownGroup.json +2 -2
- package/dist/ai/manifest/components/BbForm.json +1 -0
- package/dist/ai/manifest/components/BbHoverCard.json +1 -1
- package/dist/ai/manifest/components/BbHoverCardPortal.json +2 -2
- package/dist/ai/manifest/components/BbNumberInput.json +6 -1
- package/dist/ai/manifest/components/BbNumberInput.tree.json +2 -1
- package/dist/ai/manifest/components/BbPopover.json +2 -1
- package/dist/ai/manifest/components/BbPopoverPortal.json +2 -2
- package/dist/ai/manifest/components/BbProgress.json +6 -6
- package/dist/ai/manifest/components/BbProgress.tree.json +1 -0
- package/dist/ai/manifest/components/BbRadioGroup.json +2 -2
- package/dist/ai/manifest/components/BbSelect.json +2 -2
- package/dist/ai/manifest/components/BbSelect.tree.json +2 -2
- package/dist/ai/manifest/components/BbSelectPopover.json +2 -2
- package/dist/ai/manifest/components/BbSelectPopover.tree.json +1 -1
- package/dist/ai/manifest/components/BbSwitchGroup.json +2 -2
- package/dist/ai/manifest/components/BbTabs.json +8 -7
- package/dist/ai/manifest/components/BbTabsList.json +3 -3
- package/dist/ai/manifest/components/BbTabsPanels.json +1 -1
- package/dist/ai/manifest/components/BbTabsRoot.json +6 -5
- package/dist/ai/manifest/components/BbTag.tree.json +1 -1
- package/dist/ai/manifest/components/BbTooltip.json +2 -2
- package/dist/ai/manifest/components/ChipsBox.tree.json +1 -1
- package/dist/ai/manifest/components/CommonPopover.json +1 -1
- package/dist/ai/manifest/index.json +2 -2
- package/dist/ai/manifest/meta.json +5 -0
- package/dist/ai/manifest/types.advanced.json +10 -9
- package/dist/ai/manifest/types.api.json +8 -5
- package/dist/ai/manifest/types.wrapper.json +1 -0
- package/dist/ai/recipes/inertia/approvals-inbox.md +16 -18
- package/dist/ai/recipes/inertia/inline-edit-workspace.md +23 -33
- package/dist/ai/recipes/inertia/layout-scaffold.md +16 -16
- package/dist/ai/recipes/inertia/onboarding.md +6 -10
- package/dist/ai/recipes/inertia/ownership-atlas.md +15 -18
- package/dist/ai/recipes/inertia/record-form.md +11 -11
- package/dist/ai/recipes/inertia/records-workspace.md +38 -41
- package/dist/ai/recipes/inertia/settings-workspace.md +26 -38
- package/dist/ai/recipes/inertia/upload-center.md +31 -39
- package/dist/ai/recipes/inertia/wizard-form.md +10 -19
- package/dist/ai/recipes/nuxt/approvals-inbox.md +7 -8
- package/dist/ai/recipes/nuxt/inline-edit-workspace.md +14 -24
- package/dist/ai/recipes/nuxt/layout-scaffold.md +16 -16
- package/dist/ai/recipes/nuxt/onboarding.md +2 -6
- package/dist/ai/recipes/nuxt/ownership-atlas.md +7 -9
- package/dist/ai/recipes/nuxt/record-form.md +5 -5
- package/dist/ai/recipes/nuxt/records-workspace.md +29 -31
- package/dist/ai/recipes/nuxt/settings-workspace.md +22 -34
- package/dist/ai/recipes/nuxt/upload-center.md +22 -29
- package/dist/ai/recipes/nuxt/wizard-form.md +3 -11
- package/dist/ai/recipes/vue/approvals-inbox.md +7 -8
- package/dist/ai/recipes/vue/inline-edit-workspace.md +14 -24
- package/dist/ai/recipes/vue/layout-scaffold.md +16 -16
- package/dist/ai/recipes/vue/onboarding.md +2 -6
- package/dist/ai/recipes/vue/ownership-atlas.md +7 -9
- package/dist/ai/recipes/vue/record-form.md +5 -5
- package/dist/ai/recipes/vue/records-workspace.md +29 -31
- package/dist/ai/recipes/vue/settings-workspace.md +22 -34
- package/dist/ai/recipes/vue/upload-center.md +22 -29
- package/dist/ai/recipes/vue/wizard-form.md +3 -11
- package/dist/ai/source/BbAccordion.md +1 -1
- package/dist/ai/source/BbAlert.md +3 -3
- package/dist/ai/source/BbBadge.md +14 -10
- package/dist/ai/source/BbBadgeButton.md +17 -12
- package/dist/ai/source/BbBaseButton.md +1 -1
- package/dist/ai/source/BbBaseRadioIcon.md +1 -0
- package/dist/ai/source/BbBaseSwitchIcon.md +1 -0
- package/dist/ai/source/BbBreadcrumbs.md +63 -42
- package/dist/ai/source/BbButton.md +84 -38
- package/dist/ai/source/BbCalendar.md +17 -16
- package/dist/ai/source/BbCheckbox.md +3 -2
- package/dist/ai/source/BbCheckboxGroup.md +11 -4
- package/dist/ai/source/BbCollapsible.md +2 -1
- package/dist/ai/source/BbColorInput.md +10 -9
- package/dist/ai/source/BbColorPalette.md +2 -1
- package/dist/ai/source/BbConfirm.md +18 -1
- package/dist/ai/source/BbConfirmPortal.md +20 -6
- package/dist/ai/source/BbDatePicker.md +2 -2
- package/dist/ai/source/BbDatePickerInput.md +47 -20
- package/dist/ai/source/BbDialog.md +5 -5
- package/dist/ai/source/BbDropdown.md +231 -158
- package/dist/ai/source/BbDropdownButton.md +19 -12
- package/dist/ai/source/BbDropdownGroup.md +127 -93
- package/dist/ai/source/BbForm.md +25 -1
- package/dist/ai/source/BbHoverCard.md +30 -3
- package/dist/ai/source/BbHoverCardPortal.md +18 -3
- package/dist/ai/source/BbIndicator.md +4 -0
- package/dist/ai/source/BbNumberInput.md +855 -19
- package/dist/ai/source/BbOffCanvas.md +27 -11
- package/dist/ai/source/BbPagination.md +3 -3
- package/dist/ai/source/BbPopover.md +185 -12
- package/dist/ai/source/BbPopoverPortal.md +30 -3
- package/dist/ai/source/BbProgress.md +82 -18
- package/dist/ai/source/BbRadioGroup.md +12 -5
- package/dist/ai/source/BbRating.md +11 -9
- package/dist/ai/source/BbSelect.md +16 -10
- package/dist/ai/source/BbSelectPopover.md +29 -23
- package/dist/ai/source/BbSlider.md +12 -6
- package/dist/ai/source/BbSwitch.md +3 -2
- package/dist/ai/source/BbSwitchGroup.md +5 -2
- package/dist/ai/source/BbTable.md +102 -18
- package/dist/ai/source/BbTabs.md +30 -24
- package/dist/ai/source/BbTabsList.md +29 -23
- package/dist/ai/source/BbTabsPanels.md +29 -23
- package/dist/ai/source/BbTabsRoot.md +28 -22
- package/dist/ai/source/BbTag.md +10 -9
- package/dist/ai/source/BbTextInput.md +5 -4
- package/dist/ai/source/BbTextarea.md +6 -5
- package/dist/ai/source/BbTimePicker.md +1 -1
- package/dist/ai/source/BbTimePickerInput.md +46 -9
- package/dist/ai/source/BbToast.md +10 -7
- package/dist/ai/source/BbToastPortal.md +10 -7
- package/dist/ai/source/BbTooltip.md +88 -11
- package/dist/ai/source/BbTree.md +21 -3
- package/dist/ai/source/CommonField.md +6 -4
- package/dist/ai/source/CommonFieldInput.md +15 -10
- package/dist/ai/source/CommonPopover.md +8 -1
- package/dist/ai/source/CommonTimeSelector.md +5 -4
- package/dist/components/BbBadge/BbBadgeButton.vue_vue_type_script_setup_true_lang.js +10 -8
- package/dist/components/BbBaseButton/BbBaseButton.vue_vue_type_script_setup_true_lang.js +8 -8
- package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue_vue_type_script_setup_true_lang.js +45 -45
- package/dist/components/BbBreadcrumbs/types.d.ts +25 -17
- package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +88 -70
- package/dist/components/BbButton/toggleRoving.d.ts +6 -0
- package/dist/components/BbButton/toggleRoving.js +45 -0
- package/dist/components/BbButton/types.d.ts +12 -4
- package/dist/components/BbButton/types.js +5 -1
- package/dist/components/BbCalendar/BbCalendar.vue_vue_type_script_setup_true_lang.js +178 -178
- package/dist/components/BbCalendar/CalendarMonthPanel.vue_vue_type_script_setup_true_lang.js +15 -15
- package/dist/components/BbCalendar/CalendarYearPanel.vue_vue_type_script_setup_true_lang.js +28 -28
- package/dist/components/BbCalendar/useCalendarGrid.js +141 -139
- package/dist/components/BbCalendar/useDayjsLocale.d.ts +38 -15
- package/dist/components/BbCalendar/useDayjsLocale.js +31 -30
- package/dist/components/BbCheckbox/BbCheckbox.vue_vue_type_script_setup_true_lang.js +48 -48
- package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +81 -80
- package/dist/components/BbCheckboxGroup/types.d.ts +6 -2
- package/dist/components/BbCollapsible/types.d.ts +2 -1
- package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +69 -69
- package/dist/components/BbColorPalette/types.d.ts +2 -1
- package/dist/components/BbConfirm/BbConfirmPortal.vue.d.ts +2 -5
- package/dist/components/BbConfirm/types.d.ts +15 -0
- package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +363 -349
- package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +91 -86
- package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +298 -289
- package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +322 -356
- package/dist/components/BbDropdown/DropdownPipelineResolver.vue_vue_type_script_setup_true_lang.js +17 -15
- 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 +60 -46
- package/dist/components/BbDropdown/types.d.ts +120 -88
- package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +11 -2
- package/dist/components/BbDropdownButton/types.d.ts +2 -2
- package/dist/components/BbForm/BbForm.vue.d.ts +9 -0
- package/dist/components/BbForm/BbForm.vue_vue_type_script_setup_true_lang.js +114 -105
- package/dist/components/BbForm/BbFormCustomField.js +1 -1
- package/dist/components/BbForm/bindFormField.js +2 -1
- package/dist/components/BbForm/formFields.d.ts +5 -0
- package/dist/components/BbHoverCard/BbHoverCard.vue_vue_type_script_setup_true_lang.js +145 -142
- package/dist/components/BbHoverCard/BbHoverCardPortal.vue.d.ts +2 -2
- package/dist/components/BbHoverCard/types.d.ts +14 -1
- package/dist/components/BbNumberInput/BbNumberInput.vue.d.ts +0 -1
- package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +452 -125
- package/dist/components/BbNumberInput/numberDisplay.d.ts +256 -0
- package/dist/components/BbNumberInput/numberDisplay.js +499 -0
- package/dist/components/BbNumberInput/types.d.ts +54 -1
- 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/BbPagination/BbPagination.vue_vue_type_script_setup_true_lang.js +7 -7
- package/dist/components/BbPopover/BbPopover.vue.d.ts +1 -0
- package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +207 -162
- package/dist/components/BbPopover/BbPopoverPortal.vue.d.ts +2 -2
- package/dist/components/BbPopover/types.d.ts +26 -1
- package/dist/components/BbProgress/BbProgress.vue_vue_type_script_setup_true_lang.js +15 -7
- package/dist/components/BbProgress/types.d.ts +23 -7
- package/dist/components/BbProgress/types.js +1 -1
- package/dist/components/BbRadioGroup/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +102 -101
- package/dist/components/BbRadioGroup/types.d.ts +6 -2
- package/dist/components/BbRating/BbRating.vue_vue_type_script_setup_true_lang.js +63 -63
- package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +156 -154
- package/dist/components/BbSelect/types.d.ts +6 -2
- package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +2 -1
- package/dist/components/BbSelectPopover/types.d.ts +6 -2
- package/dist/components/BbSlider/BbSlider.vue_vue_type_script_setup_true_lang.js +153 -153
- package/dist/components/BbSwitch/BbSwitch.vue_vue_type_script_setup_true_lang.js +62 -62
- package/dist/components/BbSwitchGroup/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +131 -130
- package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +711 -676
- package/dist/components/BbTabs/BbTabs.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/BbTabs/BbTabsList.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/BbTabs/types.d.ts +28 -22
- package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +76 -76
- package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +58 -58
- package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +82 -82
- package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +246 -236
- package/dist/components/BbTooltip/BbTooltip.vue_vue_type_script_setup_true_lang.js +99 -86
- package/dist/components/BbTooltip/tooltipWarmup.d.ts +23 -0
- package/dist/components/BbTooltip/tooltipWarmup.js +7 -0
- package/dist/components/BbTooltip/types.d.ts +10 -3
- package/dist/components/BbTree/BbTree.vue_vue_type_script_setup_true_lang.js +29 -21
- package/dist/components/BbTree/BbTreeLevel.vue_vue_type_script_setup_true_lang.js +10 -7
- package/dist/components/CommonFieldInput/CommonFieldInput.vue_vue_type_script_setup_true_lang.js +37 -36
- package/dist/components/CommonPopover/types.d.ts +2 -1
- package/dist/components/CommonTimeSelector/CommonTimeSelector.vue_vue_type_script_setup_true_lang.js +9 -9
- package/dist/composables/formSubmitLock.d.ts +6 -0
- package/dist/composables/formSubmitLock.js +4 -0
- package/dist/composables/useBaseOptions.d.ts +7 -1
- package/dist/composables/useBaseOptions.js +32 -32
- package/dist/composables/useBbDropdownContext.d.ts +8 -8
- package/dist/composables/useBbFormField.d.ts +9 -0
- package/dist/composables/useBbFormField.js +5 -3
- package/dist/composables/useBbTabsContext.d.ts +10 -10
- package/dist/composables/useBbTabsContext.js +18 -18
- package/dist/composables/useFormBinding.d.ts +11 -0
- package/dist/composables/useFormBinding.js +15 -13
- 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/useLocale.js +10 -9
- package/dist/deprecation/ai-deprecations.json.d.ts +130 -0
- package/dist/deprecation/ai-deprecations.json.js +1 -1
- package/dist/deprecation/removedProps.js +1 -1
- package/dist/directives/bbDropdown.js +1 -1
- package/dist/directives/directivePortal.d.ts +13 -7
- package/dist/directives/directivePortal.js +1 -4
- package/dist/i18n/index.d.ts +7 -12
- package/dist/i18n/locales/cs.json +11 -14
- package/dist/i18n/locales/da.json +13 -16
- package/dist/i18n/locales/de-CH.json +137 -0
- package/dist/i18n/locales/de.json +14 -17
- package/dist/i18n/locales/el.json +10 -13
- package/dist/i18n/locales/en-GB.json +137 -0
- package/dist/i18n/locales/en.json +8 -11
- package/dist/i18n/locales/es-MX.json +137 -0
- package/dist/i18n/locales/es.json +16 -19
- package/dist/i18n/locales/fi.json +8 -11
- package/dist/i18n/locales/fr.json +23 -26
- package/dist/i18n/locales/hu.json +8 -11
- package/dist/i18n/locales/it.json +12 -15
- package/dist/i18n/locales/ja.json +13 -16
- package/dist/i18n/locales/ko.json +10 -13
- package/dist/i18n/locales/nb.json +13 -16
- package/dist/i18n/locales/nl.json +21 -24
- package/dist/i18n/locales/pl.json +10 -13
- package/dist/i18n/locales/{pt.json → pt-BR.json} +19 -22
- package/dist/i18n/locales/pt-PT.json +137 -0
- package/dist/i18n/locales/ro.json +22 -25
- package/dist/i18n/locales/ru.json +11 -14
- package/dist/i18n/locales/sv.json +16 -19
- package/dist/i18n/locales/tr.json +14 -17
- package/dist/i18n/locales/uk.json +11 -14
- package/dist/i18n/locales/{zh-cn.json → zh-CN.json} +10 -13
- 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/index.d.ts +4 -4
- package/dist/index.js +4 -4
- package/dist/llms-full.txt +1914 -1714
- package/dist/llms-medium.txt +76 -46
- package/dist/llms.txt +7 -7
- package/dist/locale-blueprint.json +16 -13
- package/dist/styles.css +2 -2
- package/dist/types/passthrough.d.ts +1 -1
- package/dist/types/ptComponentMap.d.ts +2 -2
- package/dist/utilities/functions/slotKey.d.ts +2 -2
- package/dist/utils/versionCheck.js +1 -1
- package/dist/vite-plugin.d.ts +22 -19
- package/dist/vite.js +309 -297
- package/llms.txt +7 -7
- package/package.json +5 -3
- package/scripts/lib/agent-manifest.mjs +2 -1
- package/scripts/lib/eslint-disable.mjs +17 -4
- package/scripts/lib/eslint-plugin.d.ts +9 -1
- package/scripts/lib/eslint-plugin.mjs +256 -6
- package/scripts/lib/helper-canon.mjs +176 -0
- package/scripts/lib/helpers-add.mjs +1303 -0
- package/scripts/lib/local-components.mjs +33 -4
- package/scripts/lib/locale-check.mjs +165 -0
- package/scripts/lib/portal-names.mjs +458 -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 +2 -2
- package/scripts/lib/slot-renames.mjs +1 -1
- package/scripts/lib/unimported-components.mjs +5 -2
- package/scripts/lib/validate-bb-markup.mjs +123 -56
- package/dist/i18n/index.js +0 -27
package/README.md
CHANGED
|
@@ -327,13 +327,13 @@ part you need.
|
|
|
327
327
|
|
|
328
328
|
### CLI commands
|
|
329
329
|
|
|
330
|
-
| Command | What it does
|
|
331
|
-
| ------------------------------------------------------------------------- |
|
|
332
|
-
| `npx bitboss-ui ai-init [--update] [--no-mcp]` | Writes the agent pointer files and registers the MCP server (installs its optional peers).
|
|
333
|
-
| `npx bitboss-ui check [paths… \| --changed] [--fix] [--json]` | Validates `Bb*` markup in `.vue` / `.md` files against the installed version; `--fix` applies the v2 → v3
|
|
334
|
-
| `npx bitboss-ui changelog --since <version> [--until <version>] [--json]` | Lists the **breaking** changes between the version you are on and the installed one — what breaks if you bump.
|
|
335
|
-
| `npx bitboss-ui mcp` | Starts the MCP server on stdio (harnesses launch it for you after `ai-init`).
|
|
336
|
-
| `npx bitboss-ui --help` | Every command and flag.
|
|
330
|
+
| Command | What it does |
|
|
331
|
+
| ------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
332
|
+
| `npx bitboss-ui ai-init [--update] [--no-mcp]` | Writes the agent pointer files and registers the MCP server (installs its optional peers). |
|
|
333
|
+
| `npx bitboss-ui check [paths… \| --changed] [--fix] [--json]` | Validates `Bb*` markup in `.vue` / `.md` files against the installed version; `--fix` applies the library's renames first (v2 → v3, and between 3.0 betas); `--changed` checks only the files git sees changed vs HEAD (plus untracked). |
|
|
334
|
+
| `npx bitboss-ui changelog --since <version> [--until <version>] [--json]` | Lists the **breaking** changes between the version you are on and the installed one — what breaks if you bump. |
|
|
335
|
+
| `npx bitboss-ui mcp` | Starts the MCP server on stdio (harnesses launch it for you after `ai-init`). |
|
|
336
|
+
| `npx bitboss-ui --help` | Every command and flag. |
|
|
337
337
|
|
|
338
338
|
### ESLint plugin
|
|
339
339
|
|
|
@@ -533,6 +533,23 @@ const draft = reactive({ name: '' });
|
|
|
533
533
|
|
|
534
534
|
`bitboss-ui check` reports the same as `form-v-model`.
|
|
535
535
|
|
|
536
|
+
#### Item fields: `no-renamed-item-field` and `no-redundant-item-accessor`
|
|
537
|
+
|
|
538
|
+
Dropdown, tab and breadcrumb items take `value` and `label` (dropdown groups:
|
|
539
|
+
`id`). `bitboss-ui/no-renamed-item-field` (error) rewrites an item literal still
|
|
540
|
+
spelled the old way: `{ key: 'edit', text: 'Edit' }` → `{ value: 'edit', label:
|
|
541
|
+
'Edit' }` on a `BbDropdown` / `BbDropdownButton` row or a crumb, a tab's `key` →
|
|
542
|
+
`value`, a dropdown group's `key` → `id`.
|
|
543
|
+
|
|
544
|
+
Object items are read by their own `label` (else `text`) and `value`, so an
|
|
545
|
+
accessor naming those fields restates the default.
|
|
546
|
+
`bitboss-ui/no-redundant-item-accessor` (warn) deletes it: `item-text="label"`,
|
|
547
|
+
`item-value="value"`, and `item-text="text"` when no item has a `label`. It only
|
|
548
|
+
reports what removing cannot change.
|
|
549
|
+
|
|
550
|
+
`bitboss-ui check` reports the same as `renamed-item-field` and
|
|
551
|
+
`redundant-item-accessor`.
|
|
552
|
+
|
|
536
553
|
#### Rating star colours: `no-star-color`
|
|
537
554
|
|
|
538
555
|
`bitboss-ui/no-star-color` flags any colour utility in `BbRating`'s `pt:item`,
|
package/bin/bitboss-ui-mcp.mjs
CHANGED
|
@@ -2852,7 +2852,7 @@ const SERVER_INSTRUCTIONS = [
|
|
|
2852
2852
|
'- Which component: search_components (empty query = the whole catalog). One component: get_component({ name }), one line per member; members: [names] for whole rows, sections for prose.',
|
|
2853
2853
|
'- A type in a props table (BbTableColumn, ButtonVariantType): get_component({ name }) returns its definition and values.',
|
|
2854
2854
|
'- After writing markup: validate. Before custom CSS: list_tokens.',
|
|
2855
|
-
'- An old name (v2 or earlier-beta prop, slot, pt key, class) that stopped working: search_docs(the old name). What a bump breaks: list_changes({ since: <your version> }), one line per change.',
|
|
2855
|
+
'- An old name (v2 or earlier-beta prop, slot, item field, pt key, class) that stopped working: search_docs(the old name). What a bump breaks: list_changes({ since: <your version> }), one line per change.',
|
|
2856
2856
|
"- pt in <script> (a const, a wrapper's prop): type it <Name>Props['pt']; Pt* types are not exported.",
|
|
2857
2857
|
'- Composables: get_composable. Whole pages: list_recipes, get_recipe (prose + files). Long docs answer with an outline: pass sections.',
|
|
2858
2858
|
].join('\n');
|
|
@@ -3018,9 +3018,21 @@ function buildServer() {
|
|
|
3018
3018
|
.optional()
|
|
3019
3019
|
.describe("Only this component's breaks, e.g. 'BbSelect'."),
|
|
3020
3020
|
surface: z
|
|
3021
|
-
.enum([
|
|
3021
|
+
.enum([
|
|
3022
|
+
'prop',
|
|
3023
|
+
'slot',
|
|
3024
|
+
'pt',
|
|
3025
|
+
'cssVar',
|
|
3026
|
+
'class',
|
|
3027
|
+
'option',
|
|
3028
|
+
'method',
|
|
3029
|
+
'event',
|
|
3030
|
+
'item',
|
|
3031
|
+
])
|
|
3022
3032
|
.optional()
|
|
3023
|
-
.describe(
|
|
3033
|
+
.describe(
|
|
3034
|
+
'Only renames of this surface (`item` = a field of an `items` entry, e.g. a dropdown row `key` → `value`).'
|
|
3035
|
+
),
|
|
3024
3036
|
kind: z
|
|
3025
3037
|
.enum(['rename', 'behaviour'])
|
|
3026
3038
|
.optional()
|
package/bin/bitboss-ui.mjs
CHANGED
|
@@ -37,6 +37,9 @@
|
|
|
37
37
|
* it may never have been one anywhere. `printFindingLegend` says
|
|
38
38
|
* so in the output, because two migrating fleets each spent real
|
|
39
39
|
* time discovering it the hard way.
|
|
40
|
+
* add Copy Inertia helpers into the app as files it owns
|
|
41
|
+
* (scripts/lib/helpers-add.mjs); `helpers list|diff|update`
|
|
42
|
+
* reports on them and refreshes the ones the app has not edited.
|
|
40
43
|
* changelog Breaking changes between two releases — `--since <version>`
|
|
41
44
|
* answers "what breaks if I bump", without MCP. Reads the
|
|
42
45
|
* installed `dist/ai/changelog.json`.
|
|
@@ -78,6 +81,11 @@ import {
|
|
|
78
81
|
import { applyBitbossFixes } from '../scripts/lib/check-fix.mjs';
|
|
79
82
|
import { stringControlsFor } from '../scripts/lib/text-null-value.mjs';
|
|
80
83
|
import { projectResolution } from '../scripts/lib/unimported-components.mjs';
|
|
84
|
+
import {
|
|
85
|
+
MAY_HAVE_PORTALS,
|
|
86
|
+
portalFindings,
|
|
87
|
+
projectPortalIndex,
|
|
88
|
+
} from '../scripts/lib/portal-names.mjs';
|
|
81
89
|
import { cssClassFindings } from '../scripts/lib/css-class-check.mjs';
|
|
82
90
|
import {
|
|
83
91
|
cssLocalFindings,
|
|
@@ -88,6 +96,7 @@ import {
|
|
|
88
96
|
HAND_IMPORTED_STYLES_EXTENSIONS,
|
|
89
97
|
handImportedStylesFindings,
|
|
90
98
|
} from '../scripts/lib/hand-imported-styles.mjs';
|
|
99
|
+
import { unknownLocaleFindings } from '../scripts/lib/locale-check.mjs';
|
|
91
100
|
import { syncProjectVariantDts } from '../scripts/lib/project-variant-dts.mjs';
|
|
92
101
|
import { refuseLinkedTarget } from '../scripts/lib/linked-target.mjs';
|
|
93
102
|
import {
|
|
@@ -143,7 +152,7 @@ function coreRules(version) {
|
|
|
143
152
|
3. **Prefer \`Bb*\` consumer components**; never use entries marked "Reference Only - Internal" unless the user explicitly asks for internals. (\`BbBaseButton\` and the \`BbBase*Icon\` glyphs are consumer API; the \`Common*\` building blocks are not.)
|
|
144
153
|
4. **Never invent prop/event/slot names** — open \`${KNOWLEDGE_BASE}/<ComponentName>.md\` (Usage & Guidelines first) or its API file \`${KNOWLEDGE_BASE}/manifest/components/<ComponentName>.json\` (one member per line; the list is \`${KNOWLEDGE_BASE}/manifest/index.json\`). Never read \`components.json\` whole: it is the 1.2 MB file the tools use.
|
|
145
154
|
5. **Icons**: discover names first; never invent them (\`${KNOWLEDGE_BASE}/guides/icons-policy.md\`).
|
|
146
|
-
6. **Item-driven components**: declarative \`items\`
|
|
155
|
+
6. **Item-driven components**: declarative \`items\` (an object row reads its own \`label\` and \`value\`; \`item-text\` / \`item-value\` only for other field names, never to restate those two), \`dependencies\`, \`enforce-coherence\` — no manual watchers for coherence.
|
|
147
156
|
7. **Whole pages**: one recipe under \`${KNOWLEDGE_BASE}/recipes/{vue|nuxt|inertia}/\` (see the router table).
|
|
148
157
|
8. **CSS near components**: \`${KNOWLEDGE_BASE}/guides/design-language.md\`. Paint as data is \`${KNOWLEDGE_BASE}/design-tokens.json\` and \`design-tokens.manifest.yaml\` (DESIGN.md-shaped). Grep \`--bb-*\`, not \`--color-*\` or \`--radius-*\`. A repo-root DESIGN.md is not this library. Two token tiers, and reaching for the wrong one is why apps end up re-skinning by class: \`--bb-*\` is the small GLOBAL theme tier (brand knobs, no numeric ramp — there is no \`--bb-primary-800\`), while each component declares its own **unprefixed** \`--*\` tokens for its look (\`.bb-table { --cell-h: 32px }\`). A missing \`--bb-*\` name is not a gap in the library — it means the knob you want is a component token. Set it on the element that DECLARES it (grep \`${KNOWLEDGE_BASE}/source/<ComponentName>.md\`); a value set further out is masked, not inherited. Prefer tokens, variants and \`pt\`; CSS on \`.bb-*__*\` internals is allowed for fine-tuning but unsupported: it can break on upgrade. \`.bb-common-*\` / \`.bb-field*\` internals: expect it to break. (\`.bb-base-button\` and the three \`.bb-base-*-icon\` glyph classes are consumer API — a supported hook, not an internal.) An override on an internal is a signal to check for a \`pt\` part or request one. A Tailwind utility on a \`Bb*\` component that does nothing is rule 9, not a library bug. One primary action per view region.
|
|
149
158
|
9. **Tailwind v4 app: turn on cascade layers when you set bitboss-ui up**, not later when a class "doesn't work". In the build plugin: \`import { bitbossUi, TAILWIND_V4_LAYERS } from 'bitboss-ui/vite'\` and \`bitbossUi({ cssLayers: TAILWIND_V4_LAYERS })\` (Nuxt: \`bitboss: { cssLayers: TAILWIND_V4_LAYERS }\`, same import). Tailwind v4 emits layered CSS; without this the library's CSS is unlayered and beats every utility you put on a \`Bb*\` component or a \`pt:*\` part, whatever the specificity. With it, your utilities win. You still need the runtime plugin (\`app.use(bitbossUiPlugin)\`; Nuxt does it for you): it is what injects the sheet, into that layer. **Do not also \`@import 'bitboss-ui/styles.css'\`**: a hand import adds a second, unlayered copy and undoes the setting. Tailwind v3 or plain CSS: leave it unset. Details: \`${KNOWLEDGE_BASE}/guides/installation-and-plugin-setup.md\` § Cascade layers.
|
|
@@ -152,8 +161,9 @@ function coreRules(version) {
|
|
|
152
161
|
12. **Never name your own components \`Bb…\`** — that prefix is bitboss-ui's. Use your app's prefix (\`App…\`, \`Acme…\`). \`check\` leaves an app's own \`Bb*\` component alone but warns: a future bitboss-ui component could take the name.
|
|
153
162
|
13. **Set \`locale\` explicitly** in the build plugin (\`bitbossUi({ locale: 'it' })\` / nuxt \`bitboss: { locale: 'it' }\`) for any app that is not English: the built-in strings default to English (\`'en'\`, since 3.0.0-beta.41; it was \`'it'\`).
|
|
154
163
|
14. **After writing bitboss-ui markup**, run \`npx bitboss-ui check\` — validates \`Bb*\` usage against the installed \`components.json\` and catches invented/removed props before review. In an edit loop, \`npx bitboss-ui check --changed\` checks only the files git sees changed; run the full check before you finish.
|
|
164
|
+
15. **Inertia apps: install the app-side helpers with \`npx bitboss-ui add <name>\`** (\`useQueryObject\`, \`usePromiseForm\`, \`useTableContext\`, …; \`npx bitboss-ui helpers list\` names them). Never paste them from the guide. If \`add\` or \`helpers update\` refuses, stop and show the user its output and \`npx bitboss-ui helpers diff <name>\`; never edit \`bitboss-ui.lock.json\`, and never delete a helper file to get past a refusal.
|
|
155
165
|
|
|
156
|
-
After upgrading bitboss-ui, re-run: \`npx bitboss-ui ai-init
|
|
166
|
+
After upgrading bitboss-ui, re-run: \`npx bitboss-ui ai-init\` (Inertia apps: then \`npx bitboss-ui helpers update\`)`;
|
|
157
167
|
}
|
|
158
168
|
|
|
159
169
|
// A blank line after the start marker and before the end marker: an HTML
|
|
@@ -1083,6 +1093,43 @@ async function checkCommand(
|
|
|
1083
1093
|
}
|
|
1084
1094
|
}
|
|
1085
1095
|
|
|
1096
|
+
// Q63.8: portal names, judged against the whole project's declarations
|
|
1097
|
+
// and call sites (scripts too: `confirm({ portal })` lives there). A full
|
|
1098
|
+
// run reads every source file; explicit paths / `--changed`, only those.
|
|
1099
|
+
// Markdown fences are never read: a doc names portals it never declares.
|
|
1100
|
+
{
|
|
1101
|
+
const portalIndex = projectPortalIndex(projectRoot);
|
|
1102
|
+
const PORTAL_SOURCE = /\.(?:vue|[cm]?[jt]sx?)$/;
|
|
1103
|
+
const TEST_FILE = /\.(?:test|spec)(?:-d)?\.[cm]?[jt]sx?$/;
|
|
1104
|
+
const portalScope = (
|
|
1105
|
+
changed ? changed.all : globs.length ? files : projectSources
|
|
1106
|
+
).filter(
|
|
1107
|
+
(path) =>
|
|
1108
|
+
PORTAL_SOURCE.test(path) &&
|
|
1109
|
+
!path.endsWith('.d.ts') &&
|
|
1110
|
+
!TEST_FILE.test(path)
|
|
1111
|
+
);
|
|
1112
|
+
for (const path of portalScope) {
|
|
1113
|
+
let content;
|
|
1114
|
+
try {
|
|
1115
|
+
content = readText(path);
|
|
1116
|
+
} catch {
|
|
1117
|
+
continue;
|
|
1118
|
+
}
|
|
1119
|
+
if (!MAY_HAVE_PORTALS.test(content)) continue;
|
|
1120
|
+
const isDisabled = disabledChecker(content);
|
|
1121
|
+
for (const finding of portalFindings(content, path, portalIndex)) {
|
|
1122
|
+
if (isDisabled(finding.line, ruleForFinding(finding))) {
|
|
1123
|
+
suppressed++;
|
|
1124
|
+
continue;
|
|
1125
|
+
}
|
|
1126
|
+
const entry = { file: relative(projectRoot, path), ...finding };
|
|
1127
|
+
if (finding.severity === 'warning') warnings.push(entry);
|
|
1128
|
+
else findings.push(entry);
|
|
1129
|
+
}
|
|
1130
|
+
}
|
|
1131
|
+
}
|
|
1132
|
+
|
|
1086
1133
|
for (const [name, file] of projectLocal) warnLocal(name, file);
|
|
1087
1134
|
// Q60.6: a `vue-tsc` below 3, read from package.json. One line, never
|
|
1088
1135
|
// fatal. (A missing `checkUnknownComponents` is no longer warned about:
|
|
@@ -1105,6 +1152,16 @@ async function checkCommand(
|
|
|
1105
1152
|
readText
|
|
1106
1153
|
)
|
|
1107
1154
|
);
|
|
1155
|
+
// A locale the library does not ship, in the build config and in
|
|
1156
|
+
// `setConfig({ locale })` (owner 2026-10-07: `en-UK` → `en-GB`).
|
|
1157
|
+
findings.push(
|
|
1158
|
+
...unknownLocaleFindings(
|
|
1159
|
+
projectRoot,
|
|
1160
|
+
styleScan.map((path) => ({ path, relPath: relative(projectRoot, path) })),
|
|
1161
|
+
manifest,
|
|
1162
|
+
readText
|
|
1163
|
+
)
|
|
1164
|
+
);
|
|
1108
1165
|
// Q46.5: `.bb-*` selectors in the app's stylesheets (the `.vue` `<style>`
|
|
1109
1166
|
// blocks are read by the validator above).
|
|
1110
1167
|
for (const path of styleScan) {
|
|
@@ -1298,6 +1355,37 @@ Commands:
|
|
|
1298
1355
|
tsconfig unless it is already named (Nuxt: says where).
|
|
1299
1356
|
\`--no-mcp\` skips the server and the install. Idempotent —
|
|
1300
1357
|
safe to re-run after upgrades.
|
|
1358
|
+
add <id…> | --all [--dir <path>] [--dry-run] [--json]
|
|
1359
|
+
Copy Inertia helpers (\`helpers list\`; --all for every
|
|
1360
|
+
one) into the app as
|
|
1361
|
+
files it owns, with every file they import, and record
|
|
1362
|
+
them in bitboss-ui.lock.json. Creates missing files and
|
|
1363
|
+
adopts identical ones; never changes an existing file.
|
|
1364
|
+
Prints the install line for missing npm packages; never
|
|
1365
|
+
runs it. First run: --dir, else
|
|
1366
|
+
resources/js/composables/inertia-helpers (Laravel) or
|
|
1367
|
+
src/composables/inertia-helpers.
|
|
1368
|
+
helpers [list] [--json]
|
|
1369
|
+
Every helper id, what it does, its files and packages,
|
|
1370
|
+
and its state in this app.
|
|
1371
|
+
helpers diff [id…] [--json]
|
|
1372
|
+
The state of every installed helper file; with ids, the
|
|
1373
|
+
difference between your copy and this bitboss-ui's.
|
|
1374
|
+
Exit 1 when something differs. Comments never count as
|
|
1375
|
+
edits: a stale file's comments are replaced by update.
|
|
1376
|
+
helpers update [id…] [--dry-run] [--json]
|
|
1377
|
+
Replace helper files that hold an older bitboss-ui
|
|
1378
|
+
version (formatting does not matter); keep the files
|
|
1379
|
+
you edited; refuse a group of helpers where you edited a
|
|
1380
|
+
file bitboss-ui also changed. \`npm update bitboss-ui\`
|
|
1381
|
+
does not touch your copies: run this after upgrading.
|
|
1382
|
+
add/helpers exit codes: 0 done or nothing to do; 1 usage
|
|
1383
|
+
error or diff found a difference; 2 refused (add wrote
|
|
1384
|
+
nothing); 3 a precondition failed, nothing written; 4 a
|
|
1385
|
+
write failed and was rolled back. No --force: to take
|
|
1386
|
+
bitboss-ui's copy over your edit, delete the file and
|
|
1387
|
+
run add again. --yes is accepted and does nothing (the
|
|
1388
|
+
commands never prompt).
|
|
1301
1389
|
check [glob…] [--changed] [--json] [--allow-empty] [--allow-component <Name>]
|
|
1302
1390
|
[--no-hints] [--manifest <path>] [--fix]
|
|
1303
1391
|
Validate \`Bb*\` markup in .vue/.md files against the
|
|
@@ -1330,8 +1418,8 @@ Commands:
|
|
|
1330
1418
|
under \`--manifest\`.
|
|
1331
1419
|
|
|
1332
1420
|
\`--fix\` first applies the ESLint plugin's fixes (the
|
|
1333
|
-
registered v2→v3
|
|
1334
|
-
remaps) to the matched .vue files with ONLY the
|
|
1421
|
+
registered renames — v2→v3 and between 3.0 betas, item
|
|
1422
|
+
fields included — polarity flips and value remaps) to the matched .vue files with ONLY the
|
|
1335
1423
|
bitboss-ui rules — your own ESLint config is not used —
|
|
1336
1424
|
then reports what is left. Needs \`eslint\` and
|
|
1337
1425
|
\`vue-eslint-parser\` in the project.
|
|
@@ -1388,9 +1476,18 @@ Commands:
|
|
|
1388
1476
|
\`dist/\`), \`not-exported-type\` (a \`Pt*\` pt type
|
|
1389
1477
|
imported from bitboss-ui: type pt through
|
|
1390
1478
|
\`<Component>Props['pt']\` instead),
|
|
1391
|
-
\`missing-
|
|
1392
|
-
|
|
1393
|
-
|
|
1479
|
+
\`missing-value\` / \`missing-id\` /
|
|
1480
|
+
\`duplicate-row-label\` (a BbDropdown row in a
|
|
1481
|
+
selectable group without a \`value\`, a selectable
|
|
1482
|
+
group without an \`id\`, or two value-less rows with
|
|
1483
|
+
the same \`label\` in one group; before
|
|
1484
|
+
3.0.0-beta.49 \`missing-key\` / \`duplicate-row-text\`),
|
|
1485
|
+
\`renamed-item-field\` (a dropdown row \`key\` /
|
|
1486
|
+
\`text\`, a dropdown group \`key\`, a tab \`key\` or a
|
|
1487
|
+
crumb \`key\` / \`text\` in an inline or same-file
|
|
1488
|
+
items array: rows and crumbs take \`value\` /
|
|
1489
|
+
\`label\`, tabs \`value\`, groups \`id\`; \`--fix\`
|
|
1490
|
+
rewrites it),
|
|
1394
1491
|
\`unknown-variant\` (a variant name from another
|
|
1395
1492
|
library, e.g. \`danger\` on BbAlert / BbBadge; the
|
|
1396
1493
|
message names ours),
|
|
@@ -1410,6 +1507,13 @@ Commands:
|
|
|
1410
1507
|
\`v-bb-hover-card="user-card"\` without the inner
|
|
1411
1508
|
quotes: an expression, not a portal name; write
|
|
1412
1509
|
\`"'user-card'"\`),
|
|
1510
|
+
\`unknown-portal\` (\`v-bb-hover-card\` /
|
|
1511
|
+
\`v-bb-popover\` / \`confirm()\` names a portal no
|
|
1512
|
+
\`<…Portal name>\` in the project declares; did-you-mean
|
|
1513
|
+
in the message), \`portal-family-mismatch\` (a
|
|
1514
|
+
hover-card portal opened by \`v-bb-popover\`, or the
|
|
1515
|
+
other way round; literal names only, a \`:name\`
|
|
1516
|
+
binding or a non-literal call site is never judged),
|
|
1413
1517
|
\`positional-provider\` (an \`items\` provider with
|
|
1414
1518
|
positional arguments: it receives one object,
|
|
1415
1519
|
\`({ query, reason, modelValue, signal })\`),
|
|
@@ -1439,17 +1543,23 @@ Commands:
|
|
|
1439
1543
|
\`--fix\` rewrites it), \`missing-partner-prop\`,
|
|
1440
1544
|
\`partner-prop\`,
|
|
1441
1545
|
\`validated-only-prop\`, \`object-items-without-text\`
|
|
1442
|
-
(object \`items\` with
|
|
1546
|
+
(object \`items\` with neither a \`label\` nor a
|
|
1547
|
+
\`text\` field and no \`item-text\`; reads only
|
|
1443
1548
|
an inline array, or a \`const\` array, \`ref([…])\` or
|
|
1444
1549
|
\`reactive([…])\` in the same file's
|
|
1445
|
-
\`<script setup>\`), \`reserved-key\` (a
|
|
1446
|
-
whose slot name is one of
|
|
1447
|
-
e.g. a BbTable column keyed
|
|
1448
|
-
manifest, same-file
|
|
1550
|
+
\`<script setup>\`), \`reserved-key\` (a column
|
|
1551
|
+
\`key\` or item \`value\` whose slot name is one of
|
|
1552
|
+
the component's own slots, e.g. a BbTable column keyed
|
|
1553
|
+
\`actions\`; read from the manifest, same-file items
|
|
1554
|
+
only), \`hand-imported-styles\`
|
|
1449
1555
|
(\`bitboss-ui/styles.css\` imported in CSS, a script or
|
|
1450
1556
|
Nuxt's \`css\` while \`injectStyles\` is on: delete it;
|
|
1451
1557
|
read only when vite.config / nuxt.config says so),
|
|
1452
|
-
\`unknown-
|
|
1558
|
+
\`unknown-locale\` (a \`locale\` / \`enabledLocales\`
|
|
1559
|
+
literal in vite.config / nuxt.config, or a
|
|
1560
|
+
\`setConfig({ locale })\`, that bitboss-ui does not
|
|
1561
|
+
ship; \`suggestion\` is the nearest one: en-UK →
|
|
1562
|
+
en-GB), \`unknown-class\` (a selector on a \`.bb-*\` class the
|
|
1453
1563
|
library does not render, in a stylesheet or a
|
|
1454
1564
|
\`<style>\` block; \`suggestion\` is the nearest real
|
|
1455
1565
|
one), \`renamed-class\` (a class the library renamed;
|
|
@@ -1470,7 +1580,9 @@ Commands:
|
|
|
1470
1580
|
component uses the \`Bb\` prefix; rename it),
|
|
1471
1581
|
\`single-reason\` (an \`items\` provider that tests
|
|
1472
1582
|
\`reason\` against one cause other than \`'search'\`;
|
|
1473
|
-
check \`reason !== 'search'\`), \`
|
|
1583
|
+
check \`reason !== 'search'\`), \`unused-portal\` (a
|
|
1584
|
+
\`<…Portal name>\` nothing opens: no call site and the
|
|
1585
|
+
name in no string of the project), \`vue-tsc-major\`
|
|
1474
1586
|
(\`vue-tsc\` below 3 in package.json: the generic
|
|
1475
1587
|
components' props go unchecked).
|
|
1476
1588
|
changelog [--since <version>] [--until <version>] [--json]
|
|
@@ -1615,6 +1727,47 @@ switch (command) {
|
|
|
1615
1727
|
await main();
|
|
1616
1728
|
break;
|
|
1617
1729
|
}
|
|
1730
|
+
case 'add':
|
|
1731
|
+
case 'helpers': {
|
|
1732
|
+
const { values, positionals } = parseCommandArgs(
|
|
1733
|
+
command,
|
|
1734
|
+
commandArgs,
|
|
1735
|
+
{
|
|
1736
|
+
json: { type: 'boolean' },
|
|
1737
|
+
'dry-run': { type: 'boolean' },
|
|
1738
|
+
yes: { type: 'boolean', short: 'y' },
|
|
1739
|
+
...(command === 'add'
|
|
1740
|
+
? { dir: { type: 'string' }, all: { type: 'boolean' } }
|
|
1741
|
+
: {}),
|
|
1742
|
+
},
|
|
1743
|
+
{ allowPositionals: true }
|
|
1744
|
+
);
|
|
1745
|
+
const [sub, ...rest] =
|
|
1746
|
+
command === 'add' ? ['add', ...positionals] : positionals;
|
|
1747
|
+
const subcommand = command === 'add' ? 'add' : (sub ?? 'list');
|
|
1748
|
+
if (subcommand === 'list' && values['dry-run']) {
|
|
1749
|
+
console.error(
|
|
1750
|
+
'[bitboss-ui] helpers list: --dry-run applies to add and update'
|
|
1751
|
+
);
|
|
1752
|
+
process.exit(1);
|
|
1753
|
+
}
|
|
1754
|
+
const { runHelpers } = await import('../scripts/lib/helpers-add.mjs');
|
|
1755
|
+
const result = await runHelpers({
|
|
1756
|
+
command: subcommand,
|
|
1757
|
+
ids: command === 'add' ? positionals : rest,
|
|
1758
|
+
options: {
|
|
1759
|
+
dir: values.dir,
|
|
1760
|
+
dryRun: values['dry-run'] ?? false,
|
|
1761
|
+
all: values.all ?? false,
|
|
1762
|
+
},
|
|
1763
|
+
cwd: process.cwd(),
|
|
1764
|
+
packageRoot: PACKAGE_ROOT,
|
|
1765
|
+
});
|
|
1766
|
+
if (values.json) console.log(JSON.stringify(result.report));
|
|
1767
|
+
else (result.stderr ? console.error : console.log)(result.lines.join('\n'));
|
|
1768
|
+
process.exitCode = result.code;
|
|
1769
|
+
break;
|
|
1770
|
+
}
|
|
1618
1771
|
case 'help':
|
|
1619
1772
|
case '--help':
|
|
1620
1773
|
case '-h':
|
package/dist/ai/BbAccordion.md
CHANGED
|
@@ -643,7 +643,7 @@ A `pt` value written in `<script>` (a constant, a preset, a wrapper's
|
|
|
643
643
|
| Prop | Type | Default | Required | Description |
|
|
644
644
|
| --- | --- | --- | --- | --- |
|
|
645
645
|
| `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: `header`, `panel`, `root`. States: `open`. 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`. In `<script>` a `pt` value is typed `BbAccordionProps['pt']` (`PtValue` is not exported): § Typing `pt` in `<script>`. |
|
|
646
|
-
| `eager` | `boolean \| undefined` | `false` | |
|
|
646
|
+
| `eager` | `boolean \| undefined` | `false` | | Renders the content at mount, while closed, instead of on the first open. Closed content is `inert` and `aria-hidden` either way. |
|
|
647
647
|
| `headingLevel` | `1 \| 2 \| 3 \| 4 \| 5 \| 6 \| undefined` | | | Wraps the header button in a heading of this level (`<h1>`–`<h6>`), the APG accordion shape, so the header joins the page's outline. Match the level to where the accordion sits (a section under an `<h2>` takes `3`). No visual change: the heading's margins and font are reset. Omitted, there is no heading. |
|
|
648
648
|
| `id` | `string \| undefined` | | | The root's `id`; the header button's id (`<id>_header`) derives from it. Generated when omitted. |
|
|
649
649
|
| `modelValue` | `boolean \| undefined` | `false` | | Used by v-model to trigger opening / closing the collapsible. An accordion with no `v-model` starts closed. |
|