bitboss-ui 3.0.0-beta.48 → 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 +115 -13
- package/dist/ai/BbAvatar.md +1 -1
- package/dist/ai/BbBreadcrumbs.md +65 -65
- package/dist/ai/BbButton.md +16 -5
- package/dist/ai/BbCheckbox.md +0 -2
- package/dist/ai/BbCheckboxGroup.md +13 -20
- 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 +4 -2
- package/dist/ai/BbNumberInput.md +88 -21
- package/dist/ai/BbPopover.md +29 -23
- 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 +106 -105
- package/dist/ai/BbTabsList.md +2 -2
- package/dist/ai/BbTabsPanels.md +1 -1
- package/dist/ai/BbTabsRoot.md +2 -2
- package/dist/ai/BbTooltip.md +24 -10
- package/dist/ai/BbTree.md +14 -11
- package/dist/ai/changelog.json +256 -5
- package/dist/ai/components.json +36 -34
- 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 +43 -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 +114 -17
- 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 +2 -2
- 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/BbBreadcrumbs.json +10 -6
- package/dist/ai/manifest/components/BbBreadcrumbs.tree.json +1 -1
- package/dist/ai/manifest/components/BbButton.json +1 -1
- package/dist/ai/manifest/components/BbCheckboxGroup.json +2 -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/BbNumberInput.json +6 -1
- package/dist/ai/manifest/components/BbNumberInput.tree.json +2 -1
- package/dist/ai/manifest/components/BbPopover.json +1 -0
- 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/BbSelectPopover.json +2 -2
- package/dist/ai/manifest/components/BbSwitchGroup.json +2 -2
- package/dist/ai/manifest/components/BbTabs.json +7 -6
- 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 +5 -4
- package/dist/ai/manifest/components/BbTooltip.json +1 -1
- package/dist/ai/manifest/index.json +2 -2
- package/dist/ai/manifest/meta.json +2 -0
- package/dist/ai/manifest/types.advanced.json +10 -9
- package/dist/ai/manifest/types.api.json +5 -4
- 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 +2 -2
- package/dist/ai/source/BbBadgeButton.md +5 -4
- 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 +71 -33
- 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/BbColorInput.md +10 -9
- package/dist/ai/source/BbConfirm.md +1 -1
- package/dist/ai/source/BbConfirmPortal.md +1 -1
- 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 +230 -158
- package/dist/ai/source/BbDropdownButton.md +19 -12
- package/dist/ai/source/BbDropdownGroup.md +126 -93
- package/dist/ai/source/BbForm.md +25 -1
- 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 +152 -8
- package/dist/ai/source/BbPopoverPortal.md +11 -0
- 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 +27 -23
- package/dist/ai/source/BbTabsList.md +26 -22
- package/dist/ai/source/BbTabsPanels.md +26 -22
- package/dist/ai/source/BbTabsRoot.md +25 -21
- 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 +54 -8
- 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 +6 -0
- 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 +84 -71
- package/dist/components/BbButton/toggleRoving.d.ts +6 -0
- package/dist/components/BbButton/toggleRoving.js +45 -0
- package/dist/components/BbButton/types.d.ts +4 -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/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +69 -69
- 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 +119 -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/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 -164
- package/dist/components/BbPopover/types.d.ts +11 -0
- 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 +25 -21
- 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 +102 -97
- package/dist/components/BbTooltip/tooltipWarmup.d.ts +23 -0
- package/dist/components/BbTooltip/tooltipWarmup.js +7 -0
- package/dist/components/BbTooltip/types.d.ts +7 -2
- 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/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/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 +1 -1
- package/dist/index.js +4 -4
- package/dist/llms-full.txt +1785 -1637
- package/dist/llms-medium.txt +74 -46
- package/dist/llms.txt +7 -7
- package/dist/locale-blueprint.json +16 -13
- package/dist/styles.css +2 -2
- package/dist/types/ptComponentMap.d.ts +1 -1
- 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 +12 -4
- package/scripts/lib/eslint-plugin.d.ts +5 -1
- package/scripts/lib/eslint-plugin.mjs +187 -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/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/validate-bb-markup.mjs +123 -56
- package/dist/i18n/index.js +0 -27
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
:layout="layout"
|
|
28
28
|
:name="resolvedName"
|
|
29
29
|
:passthrough="passthrough"
|
|
30
|
-
:readonly="
|
|
30
|
+
:readonly="fieldReadonly"
|
|
31
31
|
:reverse="reverse"
|
|
32
32
|
:show-asterisk="showAsterisk"
|
|
33
33
|
:show-hint="showHint"
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
'bb-rating__stars--errors': fieldHasErrors,
|
|
60
60
|
'bb-rating__stars--warnings':
|
|
61
61
|
Boolean(fieldHasWarnings) && !fieldHasErrors,
|
|
62
|
-
'bb-rating__stars--readonly':
|
|
62
|
+
'bb-rating__stars--readonly': fieldReadonly,
|
|
63
63
|
'bb-rating__stars--forced-clear': suppressHoverPreview,
|
|
64
64
|
}"
|
|
65
65
|
data-bb-no-drag
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
>
|
|
69
69
|
<span
|
|
70
70
|
:aria-labelledby="hasLegend() ? `${fieldId}__label` : undefined"
|
|
71
|
-
:aria-readonly="groupRole() &&
|
|
71
|
+
:aria-readonly="groupRole() && fieldReadonly ? true : undefined"
|
|
72
72
|
:aria-required="groupRole() ? fieldAriaRequired : undefined"
|
|
73
73
|
class="bb-rating__options"
|
|
74
74
|
:role="groupRole()"
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
'bb-rating__item--filled': option.filled,
|
|
86
86
|
'bb-rating__item--empty': !option.filled,
|
|
87
87
|
'bb-rating__item--disabled': option.disabled,
|
|
88
|
-
'bb-rating__item--readonly':
|
|
88
|
+
'bb-rating__item--readonly': fieldReadonly,
|
|
89
89
|
}"
|
|
90
90
|
v-bind="
|
|
91
91
|
passthrough.part('item', {
|
|
@@ -107,7 +107,7 @@
|
|
|
107
107
|
class="bb-sr-only"
|
|
108
108
|
:disabled="option.disabled"
|
|
109
109
|
:name="option.name"
|
|
110
|
-
:required="
|
|
110
|
+
:required="fieldReadonly ? undefined : fieldRequired || undefined"
|
|
111
111
|
type="radio"
|
|
112
112
|
:value="option.value"
|
|
113
113
|
v-bind="eventListeners"
|
|
@@ -181,6 +181,7 @@ const {
|
|
|
181
181
|
required: fieldRequired,
|
|
182
182
|
ariaRequired: fieldAriaRequired,
|
|
183
183
|
model: fieldModel,
|
|
184
|
+
readonly: fieldReadonly,
|
|
184
185
|
} = useFormBinding(declaredProps, declaredEmit, {
|
|
185
186
|
componentName: 'BbRating',
|
|
186
187
|
identifierFallback: () => declaredProps.legend,
|
|
@@ -913,8 +914,8 @@ export type BbRatingSlots = {
|
|
|
913
914
|
cursor: pointer;
|
|
914
915
|
display: flex;
|
|
915
916
|
justify-content: center;
|
|
916
|
-
padding-
|
|
917
|
-
padding-
|
|
917
|
+
padding-inline-end: 2px;
|
|
918
|
+
padding-inline-start: 2px;
|
|
918
919
|
|
|
919
920
|
&:has(:focus-visible) {
|
|
920
921
|
box-shadow: 0px 0px 0px var(--bb-ring-size) var(--ring-color);
|
|
@@ -959,8 +960,8 @@ export type BbRatingSlots = {
|
|
|
959
960
|
background-color: var(--bg);
|
|
960
961
|
border: var(--bb-border-w) solid var(--bb-field-border);
|
|
961
962
|
border-radius: var(--bb-radius);
|
|
962
|
-
padding-
|
|
963
|
-
padding-
|
|
963
|
+
padding-inline-end: var(--bb-input-px);
|
|
964
|
+
padding-inline-start: var(--bb-input-px);
|
|
964
965
|
padding-top: calc(var(--bb-label-lh-sm) + var(--bb-input-py));
|
|
965
966
|
position: relative;
|
|
966
967
|
transition:
|
|
@@ -1016,6 +1017,7 @@ export type BbRatingSlots = {
|
|
|
1016
1017
|
|
|
1017
1018
|
.bb-field__layout--horizontal {
|
|
1018
1019
|
.bb-field__label {
|
|
1020
|
+
/* stylelint-disable-next-line declaration-property-value-disallowed-list -- support: `float: inline-start` needs Chrome 118, above the 114 floor */
|
|
1019
1021
|
float: left;
|
|
1020
1022
|
}
|
|
1021
1023
|
}
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
:mobile="isMobile"
|
|
30
30
|
:name="name"
|
|
31
31
|
:passthrough="passthrough"
|
|
32
|
-
:readonly="
|
|
32
|
+
:readonly="fieldReadonly"
|
|
33
33
|
:reverse="reverse"
|
|
34
34
|
:show-asterisk="showAsterisk"
|
|
35
35
|
:show-hint="showHint"
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
:prefill="computedPrefill"
|
|
82
82
|
:pt="popoverPt()"
|
|
83
83
|
:query-debounce-time="queryDebounceTime"
|
|
84
|
-
:readonly="
|
|
84
|
+
:readonly="fieldReadonly"
|
|
85
85
|
:selectable="selectable"
|
|
86
86
|
:stash="stash"
|
|
87
87
|
:transition-duration="transitionDuration"
|
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
:class="{
|
|
111
111
|
'bb-select__field--shown': shown,
|
|
112
112
|
'bb-select__field--disabled': disabled,
|
|
113
|
-
'bb-select__field--readonly':
|
|
113
|
+
'bb-select__field--readonly': fieldReadonly,
|
|
114
114
|
}"
|
|
115
115
|
:clearable="clearable"
|
|
116
116
|
:compact="compact"
|
|
@@ -121,7 +121,7 @@
|
|
|
121
121
|
:loading="activatorLoading"
|
|
122
122
|
:passthrough="boxRowPassthrough(activatorLoading)"
|
|
123
123
|
:prepend:icon="declaredProps['prepend:icon']"
|
|
124
|
-
:readonly="
|
|
124
|
+
:readonly="fieldReadonly"
|
|
125
125
|
:variant="variant"
|
|
126
126
|
@click:clear="
|
|
127
127
|
() => {
|
|
@@ -145,6 +145,7 @@
|
|
|
145
145
|
<input
|
|
146
146
|
:id="fieldId"
|
|
147
147
|
:aria-labelledby="`${fieldId}__label ${fieldId}__selection`"
|
|
148
|
+
:aria-readonly="fieldReadonly || undefined"
|
|
148
149
|
:aria-required="activatorAriaRequired"
|
|
149
150
|
:autofocus="autofocus"
|
|
150
151
|
class="bb-select__activator"
|
|
@@ -388,6 +389,7 @@ const {
|
|
|
388
389
|
ariaRequired: fieldAriaRequired,
|
|
389
390
|
required: fieldRequired,
|
|
390
391
|
model: fieldModel,
|
|
392
|
+
readonly: fieldReadonly,
|
|
391
393
|
} = useFormBinding(declaredProps, declaredEmit, {
|
|
392
394
|
componentName: 'BbSelect',
|
|
393
395
|
identifierFallback: () => declaredProps.label,
|
|
@@ -1205,7 +1207,9 @@ export type BbSelectProps<T> = {
|
|
|
1205
1207
|
* Defines a path that returns a property of the object to use as text or a function
|
|
1206
1208
|
* that returns a string.
|
|
1207
1209
|
*
|
|
1208
|
-
*
|
|
1210
|
+
* Unset: own `label`, else `text` (`{ label, value }` needs no accessor).
|
|
1211
|
+
*
|
|
1212
|
+
* @defaultValue own `label`, else `text`, else `JSON.stringify(item)`
|
|
1209
1213
|
*/
|
|
1210
1214
|
itemText?: ItemAccessor<T, string>;
|
|
1211
1215
|
|
|
@@ -1235,7 +1239,9 @@ export type BbSelectProps<T> = {
|
|
|
1235
1239
|
* Defines a path that returns a property of the object to use as value or a function
|
|
1236
1240
|
* that returns any value.
|
|
1237
1241
|
*
|
|
1238
|
-
*
|
|
1242
|
+
* Unset: own `value`, even `null`.
|
|
1243
|
+
*
|
|
1244
|
+
* @defaultValue own `value`, else the whole item
|
|
1239
1245
|
*/
|
|
1240
1246
|
itemValue?: ItemAccessor<T>;
|
|
1241
1247
|
|
|
@@ -1651,7 +1657,7 @@ export type BbSelectSlots<T> = {
|
|
|
1651
1657
|
it smoothly couples with the border */
|
|
1652
1658
|
&:not(:has(.bb-field-input__prepend-icon)) {
|
|
1653
1659
|
.bb-select__chips-row--chips {
|
|
1654
|
-
margin-
|
|
1660
|
+
margin-inline-start: calc(
|
|
1655
1661
|
var(--bb-input-px) * var(--compensation-multiplier) * -1
|
|
1656
1662
|
);
|
|
1657
1663
|
}
|
|
@@ -1681,7 +1687,7 @@ export type BbSelectSlots<T> = {
|
|
|
1681
1687
|
min-width: 0;
|
|
1682
1688
|
pointer-events: none;
|
|
1683
1689
|
position: relative;
|
|
1684
|
-
text-align:
|
|
1690
|
+
text-align: start;
|
|
1685
1691
|
|
|
1686
1692
|
& input[type='button'] {
|
|
1687
1693
|
pointer-events: auto;
|
|
@@ -1694,7 +1700,8 @@ export type BbSelectSlots<T> = {
|
|
|
1694
1700
|
display: flex;
|
|
1695
1701
|
flex: 1 1 auto;
|
|
1696
1702
|
flex-wrap: nowrap;
|
|
1697
|
-
|
|
1703
|
+
inset-inline-end: 0;
|
|
1704
|
+
inset-inline-start: 0;
|
|
1698
1705
|
min-width: 0;
|
|
1699
1706
|
overflow: hidden;
|
|
1700
1707
|
/* Sits above the absolute activator overlay (later in DOM), so re-enable
|
|
@@ -1703,7 +1710,6 @@ export type BbSelectSlots<T> = {
|
|
|
1703
1710
|
The activator stays behind purely as the keyboard/focus target. */
|
|
1704
1711
|
pointer-events: auto;
|
|
1705
1712
|
position: absolute;
|
|
1706
|
-
right: 0;
|
|
1707
1713
|
top: 0;
|
|
1708
1714
|
|
|
1709
1715
|
&--hidden {
|
|
@@ -1166,13 +1166,14 @@ const { options } = useBaseOptions({
|
|
|
1166
1166
|
itemText: props.itemText,
|
|
1167
1167
|
itemProps: toRef(props, 'itemProps'),
|
|
1168
1168
|
itemValue: props.itemValue,
|
|
1169
|
+
optionDefaults: true,
|
|
1169
1170
|
// A ref, not the setup-time number: a runtime `:max` change must re-gate rows.
|
|
1170
1171
|
max: toRef(props, 'max'),
|
|
1171
1172
|
selectable: toRef(props, 'selectable'),
|
|
1172
1173
|
selectedIndexedByHash: modelValueIndexedByHash,
|
|
1173
1174
|
});
|
|
1174
1175
|
|
|
1175
|
-
const {
|
|
1176
|
+
const { getOptionValue } = useItemValue();
|
|
1176
1177
|
|
|
1177
1178
|
// `stash` holds SELECTED items only, so it follows the model: a list unselect,
|
|
1178
1179
|
// a field-chip ✕ and a parent write (a form reset) all end here. Without it a
|
|
@@ -1181,7 +1182,8 @@ const { getItemValue } = useItemValue();
|
|
|
1181
1182
|
watch(modelValueIndexedByHash, (selected) => {
|
|
1182
1183
|
if (!props.stash || !innerStash.value.length) return;
|
|
1183
1184
|
removeFromStash(
|
|
1184
|
-
(item) =>
|
|
1185
|
+
(item) =>
|
|
1186
|
+
selected[hash(getOptionValue(item, props.itemValue))] !== undefined
|
|
1185
1187
|
);
|
|
1186
1188
|
});
|
|
1187
1189
|
|
|
@@ -1216,7 +1218,7 @@ const fetchedValueHashes = computed(
|
|
|
1216
1218
|
() =>
|
|
1217
1219
|
new Set(
|
|
1218
1220
|
internalItems.value.map((item) =>
|
|
1219
|
-
hash(
|
|
1221
|
+
hash(getOptionValue(item, props.itemValue))
|
|
1220
1222
|
)
|
|
1221
1223
|
)
|
|
1222
1224
|
);
|
|
@@ -2477,7 +2479,9 @@ export type BbSelectPopoverProps<Item> = {
|
|
|
2477
2479
|
/**
|
|
2478
2480
|
* Path to item property for display text or function to extract it.
|
|
2479
2481
|
*
|
|
2480
|
-
*
|
|
2482
|
+
* Unset: own `label`, else `text` (`{ label, value }` needs no accessor).
|
|
2483
|
+
*
|
|
2484
|
+
* @defaultValue own `label`, else `text`, else `JSON.stringify(item)`
|
|
2481
2485
|
*/
|
|
2482
2486
|
itemText?: ItemAccessor<Item, string>;
|
|
2483
2487
|
/**
|
|
@@ -2504,7 +2508,9 @@ export type BbSelectPopoverProps<Item> = {
|
|
|
2504
2508
|
/**
|
|
2505
2509
|
* Path to item property for value or function to extract it.
|
|
2506
2510
|
*
|
|
2507
|
-
*
|
|
2511
|
+
* Unset: own `value`, even `null`.
|
|
2512
|
+
*
|
|
2513
|
+
* @defaultValue own `value`, else the whole item
|
|
2508
2514
|
*/
|
|
2509
2515
|
itemValue?: ItemAccessor<Item>;
|
|
2510
2516
|
/**
|
|
@@ -2820,7 +2826,7 @@ export type BbSelectPopoverSlots<Item> = {
|
|
|
2820
2826
|
elements, which declare both on the panel */
|
|
2821
2827
|
.bb-select-popover {
|
|
2822
2828
|
overflow: visible;
|
|
2823
|
-
text-align:
|
|
2829
|
+
text-align: start;
|
|
2824
2830
|
width: var(--w, 320px);
|
|
2825
2831
|
|
|
2826
2832
|
.bb-common-popover__bubble {
|
|
@@ -2855,10 +2861,10 @@ export type BbSelectPopoverSlots<Item> = {
|
|
|
2855
2861
|
.bb-select-popover__clear {
|
|
2856
2862
|
color: var(--bb-text-muted);
|
|
2857
2863
|
flex-shrink: 0;
|
|
2864
|
+
inset-inline-end: 0.75rem;
|
|
2858
2865
|
opacity: 0;
|
|
2859
2866
|
pointer-events: none;
|
|
2860
2867
|
position: absolute;
|
|
2861
|
-
right: 0.75rem;
|
|
2862
2868
|
top: 50%;
|
|
2863
2869
|
transform: translateY(-50%);
|
|
2864
2870
|
transition:
|
|
@@ -2882,7 +2888,7 @@ export type BbSelectPopoverSlots<Item> = {
|
|
|
2882
2888
|
}
|
|
2883
2889
|
|
|
2884
2890
|
.bb-select-popover__clear {
|
|
2885
|
-
|
|
2891
|
+
inset-inline-end: calc(0.75rem - 3px);
|
|
2886
2892
|
}
|
|
2887
2893
|
|
|
2888
2894
|
.bb-select-popover__clear:hover {
|
|
@@ -2898,7 +2904,7 @@ export type BbSelectPopoverSlots<Item> = {
|
|
|
2898
2904
|
line-height: var(--bb-leading);
|
|
2899
2905
|
outline: none;
|
|
2900
2906
|
padding: 0;
|
|
2901
|
-
padding-
|
|
2907
|
+
padding-inline-end: calc(var(--bb-input-icon) + 0.5rem);
|
|
2902
2908
|
width: 100%;
|
|
2903
2909
|
|
|
2904
2910
|
/* Same cue BbDropdown's group search uses — empty field still reads as
|
|
@@ -3028,7 +3034,7 @@ export type BbSelectPopoverSlots<Item> = {
|
|
|
3028
3034
|
min-height: var(--option-h);
|
|
3029
3035
|
opacity: 0;
|
|
3030
3036
|
padding: 0.125rem 0.5rem;
|
|
3031
|
-
text-align:
|
|
3037
|
+
text-align: start;
|
|
3032
3038
|
transition: opacity calc(var(--transition-duration) * 2);
|
|
3033
3039
|
}
|
|
3034
3040
|
|
|
@@ -3063,7 +3069,7 @@ export type BbSelectPopoverSlots<Item> = {
|
|
|
3063
3069
|
.bb-listbox__inner-container {
|
|
3064
3070
|
.bb-listbox__loading {
|
|
3065
3071
|
display: block;
|
|
3066
|
-
text-align:
|
|
3072
|
+
text-align: start;
|
|
3067
3073
|
}
|
|
3068
3074
|
}
|
|
3069
3075
|
}
|
|
@@ -3096,7 +3102,7 @@ export type BbSelectPopoverSlots<Item> = {
|
|
|
3096
3102
|
overflow: auto;
|
|
3097
3103
|
overflow-x: clip;
|
|
3098
3104
|
padding: 0.25rem;
|
|
3099
|
-
text-align:
|
|
3105
|
+
text-align: start;
|
|
3100
3106
|
|
|
3101
3107
|
.bb-listbox__loading,
|
|
3102
3108
|
.bb-listbox__empty {
|
|
@@ -3114,7 +3120,7 @@ export type BbSelectPopoverSlots<Item> = {
|
|
|
3114
3120
|
|
|
3115
3121
|
.bb-listbox__group {
|
|
3116
3122
|
display: block;
|
|
3117
|
-
|
|
3123
|
+
inset-inline-start: 0;
|
|
3118
3124
|
position: absolute;
|
|
3119
3125
|
top: 0;
|
|
3120
3126
|
width: 100%;
|
|
@@ -3136,7 +3142,7 @@ export type BbSelectPopoverSlots<Item> = {
|
|
|
3136
3142
|
font-size: calc(var(--option-font-size, var(--bb-fs)) - 0.125rem);
|
|
3137
3143
|
font-weight: 500;
|
|
3138
3144
|
overflow: hidden;
|
|
3139
|
-
text-align:
|
|
3145
|
+
text-align: start;
|
|
3140
3146
|
text-overflow: ellipsis;
|
|
3141
3147
|
white-space: nowrap;
|
|
3142
3148
|
}
|
|
@@ -3166,9 +3172,9 @@ export type BbSelectPopoverSlots<Item> = {
|
|
|
3166
3172
|
display: flex;
|
|
3167
3173
|
gap: 0.5rem;
|
|
3168
3174
|
height: var(--option-h);
|
|
3169
|
-
|
|
3170
|
-
padding-
|
|
3171
|
-
padding-
|
|
3175
|
+
inset-inline-start: 0;
|
|
3176
|
+
padding-inline-end: 0.5rem;
|
|
3177
|
+
padding-inline-start: 0.5rem;
|
|
3172
3178
|
position: absolute;
|
|
3173
3179
|
top: 0;
|
|
3174
3180
|
transition: background-color var(--bb-transition-fast)
|
|
@@ -3262,7 +3268,7 @@ export type BbSelectPopoverSlots<Item> = {
|
|
|
3262
3268
|
font-size: var(--option-font-size, var(--bb-fs));
|
|
3263
3269
|
min-width: 0;
|
|
3264
3270
|
overflow: hidden;
|
|
3265
|
-
text-align:
|
|
3271
|
+
text-align: start;
|
|
3266
3272
|
text-overflow: ellipsis;
|
|
3267
3273
|
white-space: nowrap;
|
|
3268
3274
|
}
|
|
@@ -3272,7 +3278,7 @@ export type BbSelectPopoverSlots<Item> = {
|
|
|
3272
3278
|
font-size: calc(var(--option-font-size, var(--bb-fs)) - 2px);
|
|
3273
3279
|
line-height: 1.3;
|
|
3274
3280
|
overflow: hidden;
|
|
3275
|
-
text-align:
|
|
3281
|
+
text-align: start;
|
|
3276
3282
|
text-overflow: ellipsis;
|
|
3277
3283
|
white-space: nowrap;
|
|
3278
3284
|
}
|
|
@@ -3335,7 +3341,7 @@ export type BbSelectPopoverSlots<Item> = {
|
|
|
3335
3341
|
text-align: center;
|
|
3336
3342
|
|
|
3337
3343
|
&:has(~ .bb-close-button) {
|
|
3338
|
-
padding-
|
|
3344
|
+
padding-inline-start: calc(var(--close-size) + 4px);
|
|
3339
3345
|
}
|
|
3340
3346
|
}
|
|
3341
3347
|
|
|
@@ -3377,7 +3383,7 @@ export type BbSelectPopoverSlots<Item> = {
|
|
|
3377
3383
|
the title, not three stacked bands. Inline inset is the OffCanvas
|
|
3378
3384
|
body's `--px`. */
|
|
3379
3385
|
padding: 0 0 0.5rem;
|
|
3380
|
-
text-align:
|
|
3386
|
+
text-align: start;
|
|
3381
3387
|
}
|
|
3382
3388
|
|
|
3383
3389
|
.bb-select-popover__sheet-chips {
|
|
@@ -3443,13 +3449,13 @@ export type BbSelectPopoverSlots<Item> = {
|
|
|
3443
3449
|
otherwise win and swallow the extra 4px. */
|
|
3444
3450
|
span[role='listbox'] .bb-listbox__option,
|
|
3445
3451
|
.bb-listbox__group > .bb-listbox__option {
|
|
3446
|
-
padding-
|
|
3452
|
+
padding-inline-start: calc(0.5rem + 4px);
|
|
3447
3453
|
}
|
|
3448
3454
|
|
|
3449
3455
|
.bb-listbox__group-header,
|
|
3450
3456
|
.bb-listbox__loading,
|
|
3451
3457
|
.bb-listbox__empty {
|
|
3452
|
-
padding-
|
|
3458
|
+
padding-inline-start: calc(0.5rem + 4px);
|
|
3453
3459
|
}
|
|
3454
3460
|
}
|
|
3455
3461
|
}
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
:layout="layout"
|
|
26
26
|
:name="name"
|
|
27
27
|
:passthrough="passthrough"
|
|
28
|
-
:readonly="
|
|
28
|
+
:readonly="fieldReadonly"
|
|
29
29
|
:reverse="reverse"
|
|
30
30
|
:show-asterisk="showAsterisk"
|
|
31
31
|
:show-hint="showHint"
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
'bb-slider__body--errors': fieldHasErrors,
|
|
53
53
|
'bb-slider__body--warnings':
|
|
54
54
|
Boolean(fieldHasWarnings) && !fieldHasErrors,
|
|
55
|
-
'bb-slider__body--readonly':
|
|
55
|
+
'bb-slider__body--readonly': fieldReadonly,
|
|
56
56
|
}"
|
|
57
57
|
>
|
|
58
58
|
<slot :decrease="decrease" :increase="increase" name="prepend"></slot>
|
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
:aria-disabled="disabled ? 'true' : undefined"
|
|
129
129
|
:aria-labelledby="thumbLabelledby(fieldId, 'lower')"
|
|
130
130
|
aria-orientation="horizontal"
|
|
131
|
-
:aria-readonly="
|
|
131
|
+
:aria-readonly="fieldReadonly ? 'true' : undefined"
|
|
132
132
|
:aria-valuemax="max"
|
|
133
133
|
:aria-valuemin="min"
|
|
134
134
|
:aria-valuenow="valueNowLower"
|
|
@@ -170,7 +170,7 @@
|
|
|
170
170
|
:aria-disabled="disabled ? 'true' : undefined"
|
|
171
171
|
:aria-labelledby="thumbLabelledby(fieldId, 'higher')"
|
|
172
172
|
aria-orientation="horizontal"
|
|
173
|
-
:aria-readonly="
|
|
173
|
+
:aria-readonly="fieldReadonly ? 'true' : undefined"
|
|
174
174
|
:aria-valuemax="max"
|
|
175
175
|
:aria-valuemin="min"
|
|
176
176
|
:aria-valuenow="valueNowHigher"
|
|
@@ -279,6 +279,7 @@ const {
|
|
|
279
279
|
emit,
|
|
280
280
|
showAsterisk,
|
|
281
281
|
errors: fieldErrors,
|
|
282
|
+
readonly: fieldReadonly,
|
|
282
283
|
} = useFormBinding(declaredProps, declaredEmit, {
|
|
283
284
|
componentName: 'BbSlider',
|
|
284
285
|
identifierFallback: () => declaredProps.label,
|
|
@@ -1494,9 +1495,9 @@ export type BbSliderSlots = {
|
|
|
1494
1495
|
flex-grow: 1;
|
|
1495
1496
|
min-height: calc(var(--control-h) + var(--inside-label-clearance));
|
|
1496
1497
|
min-width: 100px;
|
|
1498
|
+
padding-inline-end: var(--px);
|
|
1499
|
+
padding-inline-start: var(--px);
|
|
1497
1500
|
padding-bottom: var(--py);
|
|
1498
|
-
padding-left: var(--px);
|
|
1499
|
-
padding-right: var(--px);
|
|
1500
1501
|
padding-top: var(--py);
|
|
1501
1502
|
position: relative;
|
|
1502
1503
|
-webkit-touch-callout: none;
|
|
@@ -1524,8 +1525,10 @@ export type BbSliderSlots = {
|
|
|
1524
1525
|
cursor: pointer;
|
|
1525
1526
|
display: block;
|
|
1526
1527
|
height: var(--track);
|
|
1528
|
+
/* stylelint-disable-next-line property-disallowed-list -- geometry: the thumb and fill are placed by physical percentages set in JS */
|
|
1527
1529
|
left: var(--track-inset);
|
|
1528
1530
|
position: absolute;
|
|
1531
|
+
/* stylelint-disable-next-line property-disallowed-list -- geometry: the thumb and fill are placed by physical percentages set in JS */
|
|
1529
1532
|
right: var(--track-inset);
|
|
1530
1533
|
top: var(--centre);
|
|
1531
1534
|
transform: translateY(-50%);
|
|
@@ -1534,11 +1537,14 @@ export type BbSliderSlots = {
|
|
|
1534
1537
|
/* The bar: the selected span, positioned and sized from JS. */
|
|
1535
1538
|
.bb-slider__bar {
|
|
1536
1539
|
background-color: var(--accent);
|
|
1540
|
+
/* stylelint-disable-next-line property-disallowed-list -- geometry: the thumb and fill are placed by physical percentages set in JS */
|
|
1537
1541
|
border-bottom-left-radius: var(--r);
|
|
1542
|
+
/* stylelint-disable-next-line property-disallowed-list -- geometry: the thumb and fill are placed by physical percentages set in JS */
|
|
1538
1543
|
border-top-left-radius: var(--r);
|
|
1539
1544
|
cursor: pointer;
|
|
1540
1545
|
display: block;
|
|
1541
1546
|
height: 100%;
|
|
1547
|
+
/* stylelint-disable-next-line property-disallowed-list -- geometry: the thumb and fill are placed by physical percentages set in JS */
|
|
1542
1548
|
left: 0;
|
|
1543
1549
|
position: absolute;
|
|
1544
1550
|
top: 0;
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
:layout="layout"
|
|
27
27
|
:name="name"
|
|
28
28
|
:passthrough="passthrough"
|
|
29
|
-
:readonly="
|
|
29
|
+
:readonly="fieldReadonly"
|
|
30
30
|
:reverse="reverse"
|
|
31
31
|
:show-asterisk="showAsterisk"
|
|
32
32
|
:show-hint="showHint"
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
:has-errors="!!fieldHasErrors"
|
|
72
72
|
:has-warnings="!!fieldHasWarnings && !fieldHasErrors"
|
|
73
73
|
:indeterminate="!!indeterminate"
|
|
74
|
-
:readonly="!!
|
|
74
|
+
:readonly="!!fieldReadonly"
|
|
75
75
|
v-bind="passthrough.icon"
|
|
76
76
|
/>
|
|
77
77
|
<!-- eslint-enable vue/attributes-order -->
|
|
@@ -137,6 +137,7 @@ const {
|
|
|
137
137
|
showAsterisk,
|
|
138
138
|
errors: fieldErrors,
|
|
139
139
|
ariaRequired: fieldAriaRequired,
|
|
140
|
+
readonly: fieldReadonly,
|
|
140
141
|
} = useFormBinding(declaredProps, declaredEmit, {
|
|
141
142
|
componentName: 'BbSwitch',
|
|
142
143
|
identifierFallback: () => declaredProps.label,
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
:loading="loading"
|
|
30
30
|
:name="name"
|
|
31
31
|
:passthrough="containerPassthrough"
|
|
32
|
-
:readonly="
|
|
32
|
+
:readonly="fieldReadonly"
|
|
33
33
|
:reverse="reverse"
|
|
34
34
|
:show-asterisk="showAsterisk"
|
|
35
35
|
:show-hint="showHint"
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
:has-errors="!!fieldHasErrors"
|
|
113
113
|
:has-warnings="!!fieldHasWarnings && !fieldHasErrors"
|
|
114
114
|
:indeterminate="false"
|
|
115
|
-
:readonly="!!
|
|
115
|
+
:readonly="!!fieldReadonly"
|
|
116
116
|
v-bind="passthrough.part('icon', rowStates, option.item)"
|
|
117
117
|
/>
|
|
118
118
|
<!-- eslint-enable vue/attributes-order -->
|
|
@@ -197,6 +197,7 @@ const {
|
|
|
197
197
|
emit,
|
|
198
198
|
showAsterisk,
|
|
199
199
|
errors: fieldErrors,
|
|
200
|
+
readonly: fieldReadonly,
|
|
200
201
|
} = useFormBinding(declaredProps, declaredEmit, {
|
|
201
202
|
componentName: 'BbSwitchGroup',
|
|
202
203
|
identifierFallback: () => declaredProps.legend,
|
|
@@ -301,6 +302,7 @@ const { options } = useBaseOptions({
|
|
|
301
302
|
itemText: props.itemText as any,
|
|
302
303
|
itemProps: toRef(props, 'itemProps'),
|
|
303
304
|
itemValue: props.itemValue as any,
|
|
305
|
+
optionDefaults: true,
|
|
304
306
|
// A ref, not the setup-time number: a runtime `:max` change must re-gate rows.
|
|
305
307
|
max: toRef(props, 'max'),
|
|
306
308
|
selectable: toRef(props, 'selectable'),
|
|
@@ -639,6 +641,7 @@ export type BbSwitchGroupSlots<T> = {
|
|
|
639
641
|
.bb-switch-group {
|
|
640
642
|
.bb-field__layout--horizontal {
|
|
641
643
|
.bb-field__label {
|
|
644
|
+
/* stylelint-disable-next-line declaration-property-value-disallowed-list -- support: `float: inline-start` needs Chrome 118, above the 114 floor */
|
|
642
645
|
float: left;
|
|
643
646
|
}
|
|
644
647
|
}
|