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
|
@@ -94,6 +94,7 @@ import {
|
|
|
94
94
|
} from '@/utils/overlayEscapeStack';
|
|
95
95
|
import { useUntil } from '../../composables/useUntil';
|
|
96
96
|
import { useOverlayYield } from '@/composables/useOverlayYield';
|
|
97
|
+
import { isWarm, markHidden, markShown } from './tooltipWarmup';
|
|
97
98
|
import { removedPropsFor } from '@/deprecation/removedProps';
|
|
98
99
|
import { warnRemovedAttrs } from '@/utilities/functions/warnRemovedAttrs';
|
|
99
100
|
import CommonPopover from '../CommonPopover/CommonPopover.vue';
|
|
@@ -126,7 +127,7 @@ const props = withDefaults(defineProps<BbTooltipProps>(), {
|
|
|
126
127
|
placement: 'top',
|
|
127
128
|
variant: 'default',
|
|
128
129
|
transitionDuration: transitions.medium,
|
|
129
|
-
delay:
|
|
130
|
+
delay: 100,
|
|
130
131
|
});
|
|
131
132
|
|
|
132
133
|
const slots = defineSlots<BbTooltipSlots>();
|
|
@@ -245,14 +246,33 @@ const scheduleClose = () => {
|
|
|
245
246
|
_closeTimeout = setTimeout(forceClose, 50);
|
|
246
247
|
};
|
|
247
248
|
|
|
249
|
+
/**
|
|
250
|
+
* A pointer arriving: wait `delay` (it filters a pointer passing over on its
|
|
251
|
+
* way elsewhere), unless another tooltip is showing or closed within the skip
|
|
252
|
+
* window (`tooltipWarmup.ts`), when the user is reading hint after hint.
|
|
253
|
+
*/
|
|
248
254
|
const scheduleOpen = () => {
|
|
249
255
|
cancelClose();
|
|
250
256
|
if (open.value || props.disabled || blocked()) return;
|
|
251
|
-
_openTimeout = setTimeout(
|
|
252
|
-
|
|
253
|
-
|
|
257
|
+
_openTimeout = setTimeout(
|
|
258
|
+
() => {
|
|
259
|
+
if (!blocked()) open.value = true;
|
|
260
|
+
},
|
|
261
|
+
isWarm() ? 0 : props.delay
|
|
262
|
+
);
|
|
263
|
+
};
|
|
264
|
+
|
|
265
|
+
/** Keyboard focus is never accidental: it shows the hint at once, whatever `delay` says. */
|
|
266
|
+
const openNow = () => {
|
|
267
|
+
cancelClose();
|
|
268
|
+
clearTimeout(_openTimeout);
|
|
269
|
+
if (open.value || props.disabled || blocked()) return;
|
|
270
|
+
open.value = true;
|
|
254
271
|
};
|
|
255
272
|
|
|
273
|
+
/** Set while a close is a yield (Q63.7), read by the warm-up bookkeeping below. */
|
|
274
|
+
let yielding = false;
|
|
275
|
+
|
|
256
276
|
// Tooltips give way to anything the user opened deliberately (Q63.7), like
|
|
257
277
|
// hover cards: no showing while a menu, popover, dialog, select or picker is
|
|
258
278
|
// open — unless the trigger is inside it — and a shown one hides. Only the
|
|
@@ -261,7 +281,12 @@ const scheduleOpen = () => {
|
|
|
261
281
|
const { blocked } = useOverlayYield(
|
|
262
282
|
() => activatorEl.value,
|
|
263
283
|
() => popoverDom.value,
|
|
264
|
-
|
|
284
|
+
() => {
|
|
285
|
+
// Giving way to a menu or dialog is not the user moving on: it doesn't
|
|
286
|
+
// warm the next tooltip up.
|
|
287
|
+
yielding = true;
|
|
288
|
+
forceClose();
|
|
289
|
+
}
|
|
265
290
|
);
|
|
266
291
|
|
|
267
292
|
/** A press on the trigger (a click, a right-click opening a menu) hides it at once. */
|
|
@@ -289,7 +314,7 @@ const onEsc = (event: KeyboardEvent) => {
|
|
|
289
314
|
*/
|
|
290
315
|
const onActivatorFocus = (event: FocusEvent) => {
|
|
291
316
|
const el = event.currentTarget as HTMLElement | null;
|
|
292
|
-
if (el?.matches(':focus-visible'))
|
|
317
|
+
if (el?.matches(':focus-visible')) openNow();
|
|
293
318
|
};
|
|
294
319
|
|
|
295
320
|
/**
|
|
@@ -297,7 +322,18 @@ const onActivatorFocus = (event: FocusEvent) => {
|
|
|
297
322
|
* it also works when the tooltip is opened via `v-model`, and never lingers
|
|
298
323
|
* on the document after an external close.
|
|
299
324
|
*/
|
|
325
|
+
/** Whether this tooltip counts as showing in the shared skip window. */
|
|
326
|
+
let counted = false;
|
|
327
|
+
|
|
300
328
|
watch(open, (isOpen) => {
|
|
329
|
+
if (isOpen && !counted) {
|
|
330
|
+
counted = true;
|
|
331
|
+
markShown();
|
|
332
|
+
} else if (!isOpen && counted) {
|
|
333
|
+
counted = false;
|
|
334
|
+
markHidden(!yielding);
|
|
335
|
+
}
|
|
336
|
+
yielding = false;
|
|
301
337
|
if (isOpen) {
|
|
302
338
|
// Transient: a shown tooltip never makes another surface give way.
|
|
303
339
|
pushEscapeEntry(escapeKey, {
|
|
@@ -438,6 +474,11 @@ onBeforeUnmount(() => {
|
|
|
438
474
|
describedByHost = null;
|
|
439
475
|
}
|
|
440
476
|
forceClose();
|
|
477
|
+
// Unmounting is not the user moving on: release the count, no warm-up.
|
|
478
|
+
if (counted) {
|
|
479
|
+
counted = false;
|
|
480
|
+
markHidden(false);
|
|
481
|
+
}
|
|
441
482
|
// The open watcher may not flush during teardown — drop the listener (and
|
|
442
483
|
// the stack entry, which would otherwise wedge Escape page-wide) directly.
|
|
443
484
|
removeEscapeEntry(escapeKey);
|
|
@@ -630,9 +671,14 @@ export type BbTooltipProps = {
|
|
|
630
671
|
*/
|
|
631
672
|
variant?: BbTooltipVariant;
|
|
632
673
|
/**
|
|
633
|
-
*
|
|
674
|
+
* How long, in milliseconds, a pointer has to rest on the activator before
|
|
675
|
+
* the tooltip shows; it keeps hints from flashing under a pointer passing
|
|
676
|
+
* by. Keyboard focus shows it at once whatever this says, and so does a
|
|
677
|
+
* pointer arriving while another tooltip shows or within 300 ms of one
|
|
678
|
+
* closing (the skip delay, shared by every tooltip). `0` shows it on hover
|
|
679
|
+
* at once.
|
|
634
680
|
*
|
|
635
|
-
* @defaultValue `
|
|
681
|
+
* @defaultValue `100`
|
|
636
682
|
*/
|
|
637
683
|
delay?: number;
|
|
638
684
|
/**
|
package/dist/ai/source/BbTree.md
CHANGED
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
<script setup lang="ts" generic="Meta">
|
|
28
28
|
import { removedPropsFor } from '@/deprecation/removedProps';
|
|
29
29
|
import { warnRemovedAttrs } from '@/utilities/functions/warnRemovedAttrs';
|
|
30
|
-
import { provide, useAttrs, watch } from 'vue';
|
|
30
|
+
import { provide, reactive, useAttrs, watch } from 'vue';
|
|
31
31
|
import BbTreeLevel from './BbTreeLevel.vue';
|
|
32
32
|
import { BbTreeContextKey, type BbTreeContext } from './context';
|
|
33
33
|
import { usePassthrough } from '@/composables/usePassthrough';
|
|
@@ -113,9 +113,27 @@ if (process.env.NODE_ENV !== 'production')
|
|
|
113
113
|
),
|
|
114
114
|
});
|
|
115
115
|
|
|
116
|
+
/*
|
|
117
|
+
* Q44.22 (B): the open state per node. A reactive Set tracks `has(hash)` per
|
|
118
|
+
* key, so a level's nodes depend on their own entries only: toggling one
|
|
119
|
+
* branch re-renders the level that holds it, not every level of the tree
|
|
120
|
+
* (the shared index object used to invalidate them all). Kept in sync with
|
|
121
|
+
* the model synchronously, before any render reads it.
|
|
122
|
+
*/
|
|
123
|
+
const expandedHashes = reactive(new Set<string>());
|
|
124
|
+
watch(
|
|
125
|
+
expandedItemsIndexedByHash,
|
|
126
|
+
(index) => {
|
|
127
|
+
for (const key of expandedHashes)
|
|
128
|
+
if (!(key in index)) expandedHashes.delete(key);
|
|
129
|
+
for (const key of Object.keys(index)) expandedHashes.add(key);
|
|
130
|
+
},
|
|
131
|
+
{ immediate: true, flush: 'sync' }
|
|
132
|
+
);
|
|
133
|
+
|
|
116
134
|
/* Leaves have nothing to hide, so they always count as expanded. */
|
|
117
135
|
const isExpanded = (item: BbTreeItem<Meta>) =>
|
|
118
|
-
!item.children?.length || hashFor(item)
|
|
136
|
+
!item.children?.length || expandedHashes.has(hashFor(item));
|
|
119
137
|
|
|
120
138
|
const toggleExpanded = (item: BbTreeItem<Meta>) => {
|
|
121
139
|
const value = valueFor(item);
|
|
@@ -399,7 +417,7 @@ export type BbTreeLevelProps<Meta = any> = {
|
|
|
399
417
|
|
|
400
418
|
> .bb-tree__children {
|
|
401
419
|
overflow: hidden;
|
|
402
|
-
padding-
|
|
420
|
+
padding-inline-start: var(--indent);
|
|
403
421
|
|
|
404
422
|
> .bb-tree__item:first-child {
|
|
405
423
|
margin-top: var(--gap);
|
|
@@ -930,7 +930,7 @@ export type CommonFieldSlots = {
|
|
|
930
930
|
}
|
|
931
931
|
|
|
932
932
|
.bb-field__label {
|
|
933
|
-
|
|
933
|
+
inset-inline-start: var(--bb-input-px);
|
|
934
934
|
top: 5px;
|
|
935
935
|
}
|
|
936
936
|
|
|
@@ -957,7 +957,7 @@ export type CommonFieldSlots = {
|
|
|
957
957
|
/* Keep inside labels single-line and clipped in crowded layouts. */
|
|
958
958
|
display: -webkit-box;
|
|
959
959
|
font-size: var(--bb-label-fs-sm);
|
|
960
|
-
|
|
960
|
+
inset-inline-start: var(--inside-label-offset-l);
|
|
961
961
|
-webkit-line-clamp: 1;
|
|
962
962
|
line-height: var(--bb-label-lh-sm);
|
|
963
963
|
max-width: calc(
|
|
@@ -1086,7 +1086,7 @@ export type CommonFieldSlots = {
|
|
|
1086
1086
|
It shrinks to the small size only when it rises to the border. */
|
|
1087
1087
|
font-size: var(--bb-label-fs);
|
|
1088
1088
|
font-weight: var(--bb-label-weight);
|
|
1089
|
-
|
|
1089
|
+
inset-inline-start: 0;
|
|
1090
1090
|
line-height: 1;
|
|
1091
1091
|
max-width: calc(100% - var(--fl-rest-l) - var(--fl-rest-r));
|
|
1092
1092
|
opacity: 0.6;
|
|
@@ -1310,12 +1310,14 @@ export type CommonFieldSlots = {
|
|
|
1310
1310
|
transition-timing-function: var(--bb-ease);
|
|
1311
1311
|
|
|
1312
1312
|
&--left {
|
|
1313
|
+
/* stylelint-disable-next-line declaration-property-value-disallowed-list -- geometry: the `labelPosition` prop names a physical side */
|
|
1313
1314
|
text-align: left;
|
|
1314
1315
|
}
|
|
1315
1316
|
&--center {
|
|
1316
1317
|
text-align: center;
|
|
1317
1318
|
}
|
|
1318
1319
|
&--right {
|
|
1320
|
+
/* stylelint-disable-next-line declaration-property-value-disallowed-list -- geometry: the `labelPosition` prop names a physical side */
|
|
1319
1321
|
text-align: right;
|
|
1320
1322
|
}
|
|
1321
1323
|
&--hidden {
|
|
@@ -1485,7 +1487,7 @@ export type CommonFieldSlots = {
|
|
|
1485
1487
|
&.bb-field--inside-label.bb-field--description {
|
|
1486
1488
|
.bb-field__description {
|
|
1487
1489
|
font-size: var(--bb-description-fs-sm);
|
|
1488
|
-
|
|
1490
|
+
inset-inline-start: var(--inside-label-offset-l);
|
|
1489
1491
|
line-height: var(--bb-description-lh-sm);
|
|
1490
1492
|
margin-top: 0;
|
|
1491
1493
|
max-width: calc(
|
|
@@ -47,12 +47,17 @@
|
|
|
47
47
|
}"
|
|
48
48
|
>
|
|
49
49
|
<Transition appear name="bb-field-input-icon">
|
|
50
|
+
<!-- `@mousedown.prevent` keeps focus in the field: the ✕ shows while
|
|
51
|
+
the field has focus, and WebKit does not focus a button on mousedown,
|
|
52
|
+
so the press blurred the field and hid the ✕ before the click landed
|
|
53
|
+
(clear-webkit; BbSelectPopover does the same). -->
|
|
50
54
|
<!-- eslint-disable vue/attributes-order -- `pt` binds LAST so a consumer listener runs after ours (PASSTHROUGH.md T17) -->
|
|
51
55
|
<ClearableButton
|
|
52
56
|
v-if="shouldShowClearVisible"
|
|
53
57
|
key="clear"
|
|
54
58
|
class="bb-field-input__clear"
|
|
55
59
|
@click="onClickClear"
|
|
60
|
+
@mousedown.prevent
|
|
56
61
|
v-bind="passthrough?.clear"
|
|
57
62
|
/>
|
|
58
63
|
<!-- eslint-enable vue/attributes-order -->
|
|
@@ -550,8 +555,8 @@ export type CommonFieldInputSlots = {
|
|
|
550
555
|
min-height: calc(var(--bb-input-h) + var(--inside-label-clearance));
|
|
551
556
|
min-width: 0;
|
|
552
557
|
overflow: clip;
|
|
553
|
-
padding-
|
|
554
|
-
padding-
|
|
558
|
+
padding-inline-end: var(--bb-input-px);
|
|
559
|
+
padding-inline-start: var(--bb-input-px);
|
|
555
560
|
padding-top: var(--inside-label-clearance);
|
|
556
561
|
|
|
557
562
|
/* Enumerated, not `all`: background-color (disabled), border-color +
|
|
@@ -611,14 +616,14 @@ export type CommonFieldInputSlots = {
|
|
|
611
616
|
}
|
|
612
617
|
|
|
613
618
|
.bb-button:first-child {
|
|
614
|
-
margin-
|
|
619
|
+
margin-inline-start: clamp(
|
|
615
620
|
calc(var(--bb-input-px) * -1),
|
|
616
621
|
calc(((var(--bb-input-h) - var(--h)) / 2) - var(--bb-input-px)),
|
|
617
622
|
0px
|
|
618
623
|
);
|
|
619
624
|
}
|
|
620
625
|
.bb-button:last-child {
|
|
621
|
-
margin-
|
|
626
|
+
margin-inline-end: clamp(
|
|
622
627
|
calc(var(--bb-input-px) * -1),
|
|
623
628
|
calc(((var(--bb-input-h) - var(--h)) / 2) - var(--bb-input-px)),
|
|
624
629
|
0px
|
|
@@ -629,7 +634,7 @@ export type CommonFieldInputSlots = {
|
|
|
629
634
|
&__prepend-icon {
|
|
630
635
|
color: var(--bb-text-muted);
|
|
631
636
|
flex-shrink: 0;
|
|
632
|
-
margin-
|
|
637
|
+
margin-inline-start: calc(var(--bb-input-px) * 0.4 * -1);
|
|
633
638
|
}
|
|
634
639
|
|
|
635
640
|
/* The field's own icons are BbIcons: size them through BbIcon's `--size`
|
|
@@ -646,7 +651,7 @@ export type CommonFieldInputSlots = {
|
|
|
646
651
|
display: grid;
|
|
647
652
|
flex-shrink: 0;
|
|
648
653
|
height: var(--bb-input-icon);
|
|
649
|
-
margin-
|
|
654
|
+
margin-inline-end: calc(var(--bb-input-px) * 0.4 * -1);
|
|
650
655
|
place-items: center;
|
|
651
656
|
width: var(--bb-input-icon);
|
|
652
657
|
|
|
@@ -698,14 +703,14 @@ export type CommonFieldInputSlots = {
|
|
|
698
703
|
the same rhythm on both sides. It used to sit half that from the border. */
|
|
699
704
|
&__prefix {
|
|
700
705
|
justify-content: end;
|
|
701
|
-
margin-
|
|
702
|
-
padding-
|
|
706
|
+
margin-inline-start: calc(var(--bb-input-px) * -1);
|
|
707
|
+
padding-inline-start: var(--bb-input-px);
|
|
703
708
|
}
|
|
704
709
|
|
|
705
710
|
&__suffix {
|
|
706
711
|
justify-content: start;
|
|
707
|
-
margin-
|
|
708
|
-
padding-
|
|
712
|
+
margin-inline-end: calc(var(--bb-input-px) * -1);
|
|
713
|
+
padding-inline-end: var(--bb-input-px);
|
|
709
714
|
}
|
|
710
715
|
|
|
711
716
|
/* Disabled — after the variants and the inner hover/focus rules so it wins
|
|
@@ -443,7 +443,9 @@ const closePopover = () => {
|
|
|
443
443
|
.bb-common-popover__arrow {
|
|
444
444
|
border-bottom: calc(var(--arrow-h) * var(--bb-arrow)) solid
|
|
445
445
|
var(--border-color);
|
|
446
|
+
/* stylelint-disable-next-line property-disallowed-list -- geometry: the arrow follows the side Floating UI placed the panel on */
|
|
446
447
|
border-left: calc(var(--arrow-w) / 2 * var(--bb-arrow)) solid transparent;
|
|
448
|
+
/* stylelint-disable-next-line property-disallowed-list -- geometry: the arrow follows the side Floating UI placed the panel on */
|
|
447
449
|
border-right: calc(var(--arrow-w) / 2 * var(--bb-arrow)) solid transparent;
|
|
448
450
|
height: 0;
|
|
449
451
|
position: relative;
|
|
@@ -451,8 +453,10 @@ const closePopover = () => {
|
|
|
451
453
|
|
|
452
454
|
&::after {
|
|
453
455
|
border-bottom: calc(var(--arrow-h) * var(--bb-arrow)) solid var(--bg);
|
|
456
|
+
/* stylelint-disable-next-line property-disallowed-list -- geometry: the arrow follows the side Floating UI placed the panel on */
|
|
454
457
|
border-left: calc(var(--arrow-w) / 2 * var(--bb-arrow)) solid
|
|
455
458
|
transparent;
|
|
459
|
+
/* stylelint-disable-next-line property-disallowed-list -- geometry: the arrow follows the side Floating UI placed the panel on */
|
|
456
460
|
border-right: calc(var(--arrow-w) / 2 * var(--bb-arrow)) solid
|
|
457
461
|
transparent;
|
|
458
462
|
content: '';
|
|
@@ -491,6 +495,7 @@ const closePopover = () => {
|
|
|
491
495
|
.bb-common-popover__arrow {
|
|
492
496
|
border-bottom: calc(var(--arrow-w) / 2 * var(--bb-arrow)) solid
|
|
493
497
|
transparent;
|
|
498
|
+
/* stylelint-disable-next-line property-disallowed-list -- geometry: the arrow follows the side Floating UI placed the panel on */
|
|
494
499
|
border-left: calc(var(--arrow-h) * var(--bb-arrow)) solid
|
|
495
500
|
var(--border-color);
|
|
496
501
|
border-top: calc(var(--arrow-w) / 2 * var(--bb-arrow)) solid transparent;
|
|
@@ -501,6 +506,7 @@ const closePopover = () => {
|
|
|
501
506
|
&::after {
|
|
502
507
|
border-bottom: calc(var(--arrow-w) / 2 * var(--bb-arrow)) solid
|
|
503
508
|
transparent;
|
|
509
|
+
/* stylelint-disable-next-line property-disallowed-list -- geometry: the arrow follows the side Floating UI placed the panel on */
|
|
504
510
|
border-left: calc(var(--arrow-h) * var(--bb-arrow)) solid var(--bg);
|
|
505
511
|
border-top: calc(var(--arrow-w) / 2 * var(--bb-arrow)) solid transparent;
|
|
506
512
|
content: '';
|
|
@@ -520,17 +520,17 @@ export type TimeUnit = 'hour' | 'minute' | 'second' | 'meridiem';
|
|
|
520
520
|
row; only the painted knob matches the calendar's. */
|
|
521
521
|
--time-mark: 24px;
|
|
522
522
|
|
|
523
|
-
border-
|
|
523
|
+
border-inline-start: var(--bb-border-w) solid var(--bb-border);
|
|
524
524
|
bottom: 0;
|
|
525
525
|
display: flex;
|
|
526
526
|
flex-direction: column;
|
|
527
|
+
inset-inline-end: 0;
|
|
527
528
|
/* Mirror the calendar body's vertical padding (--py, 8px) top AND bottom:
|
|
528
529
|
the readout then sits level with the month/year controls, the headers level
|
|
529
530
|
with the weekday initials, and — because the middle scroll flexes — the last
|
|
530
531
|
row anchors on the calendar's bottom edge. 12px left gutter for the divider. */
|
|
531
532
|
padding: 8px 8px 8px 12px;
|
|
532
533
|
position: absolute;
|
|
533
|
-
right: 0;
|
|
534
534
|
top: 0;
|
|
535
535
|
width: calc(var(--rail-w, 252px) - 12px);
|
|
536
536
|
|
|
@@ -634,6 +634,7 @@ export type TimeUnit = 'hour' | 'minute' | 'second' | 'meridiem';
|
|
|
634
634
|
border-radius: var(--bb-radius-sm);
|
|
635
635
|
content: '';
|
|
636
636
|
height: var(--time-mark);
|
|
637
|
+
/* stylelint-disable-next-line property-disallowed-list -- geometry: centred with a physical translate */
|
|
637
638
|
left: 50%;
|
|
638
639
|
position: absolute;
|
|
639
640
|
top: 50%;
|
|
@@ -696,8 +697,8 @@ export type TimeUnit = 'hour' | 'minute' | 'second' | 'meridiem';
|
|
|
696
697
|
position: relative;
|
|
697
698
|
|
|
698
699
|
.bb-time-selector {
|
|
699
|
-
border-
|
|
700
|
-
padding-
|
|
700
|
+
border-inline-start: 0;
|
|
701
|
+
padding-inline-start: 0;
|
|
701
702
|
padding-top: 8px;
|
|
702
703
|
position: static;
|
|
703
704
|
width: auto;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useLogger as e } from "../../composables/useLogger.js";
|
|
2
|
-
import t from "
|
|
3
|
-
import
|
|
4
|
-
import r from "
|
|
2
|
+
import { useBadgeHost as t } from "./badgeButtonContext.js";
|
|
3
|
+
import n from "./BadgeBodyContent.vue.js";
|
|
4
|
+
import r from "../BbBaseButton/BbBaseButton.vue.js";
|
|
5
5
|
import { computed as i, createBlock as a, createVNode as o, defineComponent as s, mergeProps as c, openBlock as l, renderSlot as u, useAttrs as d, withCtx as f } from "vue";
|
|
6
6
|
//#region src/components/BbBadge/BbBadgeButton.vue?vue&type=script&setup=true&lang.ts
|
|
7
7
|
var p = /*@__PURE__*/ s({
|
|
@@ -65,13 +65,15 @@ var p = /*@__PURE__*/ s({
|
|
|
65
65
|
viewTransition: { type: Boolean }
|
|
66
66
|
},
|
|
67
67
|
setup(s) {
|
|
68
|
-
let p = s, m =
|
|
68
|
+
let p = s, m = t();
|
|
69
69
|
m || e().throw("[BbBadgeButton] must be rendered inside a <BbBadge> default slot.");
|
|
70
70
|
let h = d(), g = i(() => !!m?.loading.value), _ = i(() => {
|
|
71
71
|
let { onClick: e, ...t } = h, n = [].concat(e ?? []).filter((e) => typeof e == "function");
|
|
72
72
|
return c(t, p, {
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
...g.value ? {
|
|
74
|
+
"aria-disabled": !0,
|
|
75
|
+
tabindex: -1
|
|
76
|
+
} : {},
|
|
75
77
|
onClick: (e) => {
|
|
76
78
|
if (g.value) {
|
|
77
79
|
e.preventDefault();
|
|
@@ -81,8 +83,8 @@ var p = /*@__PURE__*/ s({
|
|
|
81
83
|
}
|
|
82
84
|
});
|
|
83
85
|
});
|
|
84
|
-
return (e,
|
|
85
|
-
default: f(() => [o(
|
|
86
|
+
return (e, t) => (l(), a(r, c({ class: "bb-badge__body" }, _.value), {
|
|
87
|
+
default: f(() => [o(n, null, {
|
|
86
88
|
default: f(() => [u(e.$slots, "default")]),
|
|
87
89
|
_: 3
|
|
88
90
|
})]),
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { usePassthrough as e } from "../../composables/usePassthrough.js";
|
|
2
2
|
import { useConfig as t } from "../../composables/useConfig.js";
|
|
3
3
|
import { useHydrated as n } from "../../composables/useHydrated.js";
|
|
4
|
-
import {
|
|
5
|
-
import i from "
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
4
|
+
import { BB_BASE_BUTTON_PT as r } from "./types.js";
|
|
5
|
+
import { useFrameworkDetection as i } from "../../composables/useFrameworkDetection.js";
|
|
6
|
+
import a from "./RouterComponent.vue.js";
|
|
7
|
+
import { useInertiaPage as o } from "../../composables/useInertiaPage.js";
|
|
8
8
|
import { computed as s, createBlock as c, createElementBlock as l, createTextVNode as u, defineComponent as d, mergeProps as f, openBlock as p, renderSlot as m, resolveDynamicComponent as h, toDisplayString as g, unref as _, useAttrs as v, withCtx as y } from "vue";
|
|
9
9
|
//#region src/components/BbBaseButton/BbBaseButton.vue?vue&type=script&setup=true&lang.ts
|
|
10
10
|
var b = "http://localhost", x = /*@__PURE__*/ d({
|
|
@@ -70,10 +70,10 @@ var b = "http://localhost", x = /*@__PURE__*/ d({
|
|
|
70
70
|
component: "BbBaseButton",
|
|
71
71
|
attrs: v(),
|
|
72
72
|
props: x,
|
|
73
|
-
parts:
|
|
74
|
-
states:
|
|
73
|
+
parts: r.parts,
|
|
74
|
+
states: r.states,
|
|
75
75
|
active: { disabled: () => !!x.disabled }
|
|
76
|
-
}), C = t(), { isInertia: w, isNuxt: T } =
|
|
76
|
+
}), C = t(), { isInertia: w, isNuxt: T } = i(), { isHydrated: E } = n(), { getPageUrl: D } = o(), O = typeof window < "u", k = O ? window.location.origin : null, A = (e, t) => {
|
|
77
77
|
let n = e.trim();
|
|
78
78
|
if (!n) return !1;
|
|
79
79
|
if (n.startsWith("#") || n.startsWith("//")) return !0;
|
|
@@ -185,7 +185,7 @@ var b = "http://localhost", x = /*@__PURE__*/ d({
|
|
|
185
185
|
...$.value,
|
|
186
186
|
...Y()
|
|
187
187
|
} : ee.value);
|
|
188
|
-
return (e, t) => V.value ? (p(), c(
|
|
188
|
+
return (e, t) => V.value ? (p(), c(a, f({
|
|
189
189
|
key: 0,
|
|
190
190
|
class: G.value
|
|
191
191
|
}, f(te.value, _(S).forwardAttrs, _(S).root)), {
|