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
|
@@ -8,20 +8,21 @@
|
|
|
8
8
|
{"name":"BbDateDirectiveValue","usage":"advanced","component":null,"usedBy":[],"definition":"type BbDateDirectiveValue = Omit<Partial<BbDatePickerProps>, 'activator' | 'modelValue'> & { modelValue: string | string[] | null; 'onUpdate:modelValue'?: (value: string | string[] | null) => void; 'onUpdate:time'?: (value: string | string[] | null) => void; };"},
|
|
9
9
|
{"name":"BbDatePickerSegment","usage":"advanced","component":"BbDatePicker","usedBy":[],"definition":"type BbDatePickerSegment = BbCalendarSegment;","values":["start","end"]},
|
|
10
10
|
{"name":"BbDropdownContext","usage":"advanced","component":null,"usedBy":[],"definition":"type BbDropdownContext = { isReady: ComputedRef<boolean>; open: ComputedRef<boolean>; groups: ComputedRef<Record<string, BbDropdownContextGroup>>; };"},
|
|
11
|
-
{"name":"BbDropdownContextGroup","usage":"advanced","component":null,"usedBy":[],"definition":"type BbDropdownContextGroup = Omit<InternalGroup, 'items' | 'multiple' | 'selectable'> & { value: unknown; selectedOptions: BbDropdownContextOption[]; multiple: boolean; loading: boolean; selectable: boolean; };","fields":["text?: undefined","label?: string","onClick?: ((...args: any[]) => any)","itemText?: string | ((item: any) => string)","
|
|
12
|
-
{"name":"BbDropdownContextOption","usage":"advanced","component":null,"usedBy":[],"definition":"type BbDropdownContextOption = {
|
|
11
|
+
{"name":"BbDropdownContextGroup","usage":"advanced","component":null,"usedBy":[],"definition":"type BbDropdownContextGroup = Omit<InternalGroup, 'items' | 'multiple' | 'selectable' | 'value' | 'key'> & { value: unknown; selectedOptions: BbDropdownContextOption[]; multiple: boolean; loading: boolean; selectable: boolean; };","fields":["text?: undefined","label?: string","id?: string","onClick?: ((...args: any[]) => any)","itemText?: string | ((item: any) => string)","max?: number","prepend:icon?: string","append:icon?: string","dependencies?: unknown[]","meta?: any","variant?: keyof DropdownItemVariantRegistry","depsDebounceTime?: number","enforceCoherence?: boolean","filterBy?: string[]","group?: true","itemProps?: BbDropdownItemProps<any>","itemValue?: string | ((item: any) => any)","loadingText?: string","maxHeight?: string | number","clearable?: boolean","emptyText?: string","failedText?: string","prefill?: boolean | \"interaction\"","searchable?: boolean","searchPlaceholder?: string","stash?: boolean","hideLabel?: boolean","value: unknown","selectedOptions: BbDropdownContextOption[]","multiple: boolean","loading: boolean","selectable: boolean"]},
|
|
12
|
+
{"name":"BbDropdownContextOption","usage":"advanced","component":null,"usedBy":[],"definition":"type BbDropdownContextOption = { label?: string; description?: string; original?: unknown; value?: unknown; };"},
|
|
13
13
|
{"name":"BbDropdownDirectiveValue","usage":"advanced","component":null,"usedBy":[],"definition":"type BbDropdownDirectiveValue = BbDropdownItem[] | (Partial<Omit<BbDropdownProps, 'items'>> & { items: BbDropdownItem[]; });"},
|
|
14
14
|
{"name":"BbDropdownGroupItemsContext","usage":"advanced","component":null,"usedBy":[],"definition":"type BbDropdownGroupItemsContext<M = any> = BbItemsProviderContext<M> & { query?: string; reason: 'initial' | 'search' | 'dependencies'; };"},
|
|
15
|
-
{"name":"BbDropdownGroupModel","usage":"advanced","component":"BbDropdown","usedBy":[],"definition":"type BbDropdownGroupModel<T = any> = T[] | T |
|
|
16
|
-
{"name":"BbDropdownSlotGroup","usage":"advanced","component":"BbDropdown","usedBy":[],"definition":"type BbDropdownSlotGroup = {
|
|
15
|
+
{"name":"BbDropdownGroupModel","usage":"advanced","component":"BbDropdown","usedBy":[],"definition":"type BbDropdownGroupModel<T = any> = T[] | T | null;"},
|
|
16
|
+
{"name":"BbDropdownSlotGroup","usage":"advanced","component":"BbDropdown","usedBy":[],"definition":"type BbDropdownSlotGroup = { id?: string; label?: string; meta?: any; multiple: boolean; selectable: boolean; };"},
|
|
17
17
|
{"name":"BbFormContextHandle","usage":"advanced","component":null,"usedBy":[],"definition":"type BbFormContextHandle = { isReady: ComputedRef<boolean>; valid: ComputedRef<boolean>; dirty: ComputedRef<boolean>; touched: ComputedRef<boolean>; pending: ComputedRef<boolean>; submitting: ComputedRef<boolean>; submitCount: ComputedRef<number>; values: ComputedRef<Record<string, unknown>>; errors: ComputedRef<Record<string, string[]>>; fields: ComputedRef<Record<string, BbFormFieldEntry>>; unmatchedErrors: ComputedRef<Record<string, string[]>>; submit: () => void; reset: () => void; snapshot: (values?: Record<string, unknown>) => void; validate: () => Promise<boolean>; setErrors: (errors: BbFormServerErrors, options?: BbFormSetErrorsOptions) => void; removeField: (path: string) => void; };"},
|
|
18
18
|
{"name":"BbFormContextState","usage":"advanced","component":null,"usedBy":[],"definition":"type BbFormContextState = { valid: boolean; dirty: boolean; touched: boolean; pending: boolean; submitting: boolean; submitCount: number; values: Record<string, unknown>; errors: Record<string, string[]>; fields: Record<string, BbFormFieldEntry>; unmatchedErrors: Record<string, string[]>; };"},
|
|
19
|
-
{"name":"BbFormFieldHandle","usage":"advanced","component":null,"usedBy":[],"definition":"type BbFormFieldHandle<T> = { value: WritableComputedRef<T | undefined>; errors: ComputedRef<string[]>; validate: () => Promise<boolean>; controlAttrs: ComputedRef<Record<string, string | undefined>>; errorAttrs: { id: string; }; };"},
|
|
19
|
+
{"name":"BbFormFieldHandle","usage":"advanced","component":null,"usedBy":[],"definition":"type BbFormFieldHandle<T> = { value: WritableComputedRef<T | undefined>; errors: ComputedRef<string[]>; validate: () => Promise<boolean>; controlAttrs: ComputedRef<Record<string, string | undefined>>; errorAttrs: { id: string; }; readonly: ComputedRef<boolean>; };"},
|
|
20
20
|
{"name":"BbFormFieldOptions","usage":"advanced","component":null,"usedBy":[],"definition":"type BbFormFieldOptions = { name: string; validationLabel?: string; rules?: unknown; };"},
|
|
21
21
|
{"name":"BbHoverCardDirectiveValue","usage":"advanced","component":null,"usedBy":[],"definition":"type BbHoverCardDirectiveValue = string | DirectivePortalComponent | (Partial<Omit<BbHoverCardProps, 'activator'>> & DirectivePortalOptions);"},
|
|
22
22
|
{"name":"BbIconSize","usage":"advanced","component":"BbIcon","usedBy":[],"definition":"type BbIconSize = BbDialogSizes;"},
|
|
23
23
|
{"name":"BbItemsProviderContext","usage":"advanced","component":null,"usedBy":[],"definition":"type BbItemsProviderContext<M = any> = { reason: BbItemsProviderReason; modelValue: M; signal: AbortSignal; };"},
|
|
24
24
|
{"name":"BbItemsProviderReason","usage":"advanced","component":null,"usedBy":[],"definition":"type BbItemsProviderReason = 'search' | 'initial' | 'dependencies' | 'model' | 'reopen' | 'pagination';","values":["search","initial","dependencies","model","reopen","pagination"]},
|
|
25
|
+
{"name":"BbNumberSimpleUnit","usage":"advanced","component":"BbNumberInput","usedBy":[],"definition":"type BbNumberSimpleUnit = 'acre' | 'bit' | 'byte' | 'celsius' | 'centimeter' | 'day' | 'degree' | 'fahrenheit' | 'fluid-ounce' | 'foot' | 'gallon' | 'gigabit' | 'gigabyte' | 'gram' | 'hectare' | 'hour' | 'inch' | 'kilobit' | 'kilobyte' | 'kilogram' | 'kilometer' | 'liter' | 'megabit' | 'megabyte' | 'meter' | 'microsecond' | 'mile' | 'mile-scandinavian' | 'milliliter' | 'millimeter' | 'millisecond' | 'minute' | 'month' | 'nanosecond' | 'ounce' | 'percent' | 'petabyte' | 'pound' | 'second' | 'stone' | 'terabit' | 'terabyte' | 'week' | 'yard' | 'year';","values":["month","year","day","acre","bit","byte","celsius","centimeter","degree","fahrenheit","fluid-ounce","foot","gallon","gigabit","gigabyte","gram","hectare","hour","inch","kilobit","kilobyte","kilogram","kilometer","liter","megabit","megabyte","meter","microsecond","mile","mile-scandinavian","milliliter","millimeter","millisecond","minute","nanosecond","ounce","percent","petabyte","pound","second","stone","terabit","terabyte","week","yard"]},
|
|
25
26
|
{"name":"BbPopoverDirectiveValue","usage":"advanced","component":null,"usedBy":[],"definition":"type BbPopoverDirectiveValue = string | DirectivePortalComponent | (Partial<Omit<BbPopoverProps, 'activator'>> & DirectivePortalOptions);"},
|
|
26
27
|
{"name":"BbSelectResolvedOption","usage":"advanced","component":"BbSelectPopover","usedBy":[],"definition":"type BbSelectResolvedOption<Item = any> = { item: Item; text: string; value: any; selected: boolean; disabled: boolean; };"},
|
|
27
28
|
{"name":"BbSpinnerSizes","usage":"advanced","component":"BbSpinner","usedBy":[],"definition":"type BbSpinnerSizes = BbIconSize;"},
|
|
@@ -34,7 +35,7 @@
|
|
|
34
35
|
{"name":"BbTooltipDirectiveValue","usage":"advanced","component":null,"usedBy":[],"definition":"type BbTooltipDirectiveValue = string | number | (Partial<BbTooltipProps> & { text: string; });"},
|
|
35
36
|
{"name":"BbTooltipVariant","usage":"advanced","component":"BbTooltip","usedBy":[],"definition":"type BbTooltipVariant = TooltipVariantType;","values":["default","destructive"],"extensibleVia":"TooltipVariantRegistry"},
|
|
36
37
|
{"name":"Breakpoint","usage":"advanced","component":null,"usedBy":[],"definition":"type Breakpoint = 'sm' | 'md' | 'lg' | 'xl' | '2xl';","values":["sm","md","lg","xl","2xl"]},
|
|
37
|
-
{"name":"BuiltinLocaleKey","usage":"advanced","component":null,"usedBy":[],"definition":"type BuiltinLocaleKey =
|
|
38
|
+
{"name":"BuiltinLocaleKey","usage":"advanced","component":null,"usedBy":[],"definition":"type BuiltinLocaleKey = keyof typeof LOCALE_TABLE;","values":["cs","da","de","de-CH","el","en","en-GB","es","es-MX","fi","fr","hu","it","ja","ko","nb","nl","pl","pt-BR","pt-PT","ro","ru","sv","tr","uk","zh-CN","zh-HK","zh-TW","de-AT","en-AU","en-CA","en-IE","fr-BE","fr-CA","fr-CH","it-CH","nl-BE","sv-FI"]},
|
|
38
39
|
{"name":"ButtonVariantRegistry","usage":"advanced","component":null,"usedBy":[],"definition":"interface ButtonVariantRegistry { primary: true; outline: true; secondary: true; ghost: true; destructive: true; link: true; }","values":["primary","outline","secondary","ghost","destructive","link"],"extensibleVia":"ButtonVariantRegistry"},
|
|
39
40
|
{"name":"ConfirmButtonConfig","usage":"advanced","component":null,"usedBy":[],"definition":"type ConfirmButtonConfig = ActionButtonConfig;"},
|
|
40
41
|
{"name":"ConfirmVariantRegistry","usage":"advanced","component":null,"usedBy":[],"definition":"interface ConfirmVariantRegistry { default: true; destructive: true; }","values":["default","destructive"],"extensibleVia":"ConfirmVariantRegistry"},
|
|
@@ -45,13 +46,13 @@
|
|
|
45
46
|
{"name":"DropdownGroupItemsGetter","usage":"advanced","component":"BbDropdown","usedBy":[],"definition":"type DropdownGroupItemsGetter = ((context: BbDropdownGroupItemsContext) => any[] | Promise<any[]>) | ((context: BbDropdownGroupItemsContext & { query: string; }) => any[] | Promise<any[]>);"},
|
|
46
47
|
{"name":"DropdownItemVariantRegistry","usage":"advanced","component":null,"usedBy":[],"definition":"interface DropdownItemVariantRegistry { default: true; destructive: true; }","values":["default","destructive"],"extensibleVia":"DropdownItemVariantRegistry"},
|
|
47
48
|
{"name":"DropdownItemVariantType","usage":"advanced","component":null,"usedBy":[],"definition":"type DropdownItemVariantType = DropdownItemVariantFromRegistry;","values":["default","destructive"],"extensibleVia":"DropdownItemVariantRegistry"},
|
|
48
|
-
{"name":"DynamicConfig","usage":"advanced","component":null,"usedBy":[],"definition":"type DynamicConfig = Pick<EditableConfig, 'locale'>;","fields":["locale:
|
|
49
|
+
{"name":"DynamicConfig","usage":"advanced","component":null,"usedBy":[],"definition":"type DynamicConfig = Pick<EditableConfig, 'locale'>;","fields":["locale: BuiltinLocaleInput"]},
|
|
49
50
|
{"name":"EmptyStringControlRegistry","usage":"advanced","component":null,"usedBy":[],"definition":"interface EmptyStringControlRegistry { }","extensibleVia":"EmptyStringControlRegistry"},
|
|
50
51
|
{"name":"IconType","usage":"advanced","component":null,"usedBy":[],"definition":"type IconType = string;"},
|
|
51
52
|
{"name":"IndicatorVariantType","usage":"advanced","component":null,"usedBy":[],"definition":"type IndicatorVariantType = IndicatorVariantFromRegistry;","values":["default","success","info","warning","destructive"],"extensibleVia":"IndicatorVariantRegistry"},
|
|
52
53
|
{"name":"InputVariantRegistry","usage":"advanced","component":null,"usedBy":[],"definition":"interface InputVariantRegistry { outline: true; secondary: true; ghost: true; }","values":["outline","secondary","ghost"],"extensibleVia":"InputVariantRegistry"},
|
|
53
|
-
{"name":"Locale","usage":"advanced","component":null,"usedBy":[],"definition":"type Locale = EnJson extends { default: infer D; } ? D : EnJson;","fields":["common: { closeLabel: string; loadingText: string; emptyText: string; failedText: string; clearLabel: string; fieldLabel: string; }","colorInput: { dialogLabel: string; openPicker: string; openPickerSelected: string;
|
|
54
|
-
{"name":"LocaleKey","usage":"advanced","component":null,"usedBy":[],"definition":"type LocaleKey = RegistryKey<LocaleRegistry,
|
|
54
|
+
{"name":"Locale","usage":"advanced","component":null,"usedBy":[],"definition":"type Locale = EnJson extends { default: infer D; } ? D : EnJson;","fields":["common: { closeLabel: string; loadingText: string; emptyText: string; failedText: string; clearLabel: string; fieldLabel: string; }","colorInput: { dialogLabel: string; openPicker: string; openPickerSelected: string; mainCanvasDesc: string; mainCanvasSelectedColor: string; hueCanvasDesc: string; alphaSliderDesc: string; eyeDropper: string; }","datePicker: { monthLabel: string; yearLabel: string; previousMonthLabel: string; nextMonthLabel: string; previousYearLabel: string; nextYearLabel: string; calendarLabel: string; monthSelectorLabel: string; yearSelectorLabel: string; selectingMonth: string; selectingYear: string; selectedLabel: string; hoursLabel: string; minutesLabel: string; secondsLabel: string; selectEndDate: string; openPicker: string; }","datePickerInput: { dateFormat: string; dateFormatSingle: string; dateFormatRange: string; monthFormatSingle: string; monthFormatRange: string; yearFormatSingle: string; yearFormatRange: string; emptyRange: string; changeSelectionRange: string; changeSelection: string; emptySelection: string; dayField: string; monthField: string; yearField: string; hourField: string; minuteField: string; secondField: string; startFieldLabel: string; endFieldLabel: string; timeFormat: string; timeFormatSeconds: string; meridiemField: string; meridiemAm: string; meridiemPm: string; }","dialog: { closeLabel: string; }","dropdown: { back: string; }","dropdownButton: { open: string; }","dropzone: { selectFiles: string; serverFiles: string; }","rating: { singleStar: string; multipleStars: string; clearHint: string; }","select: { multipleMaxReached: string; searchLabel: string; searchToStart: string; triggerLabel: string; }","slider: { minimumThumb: string; maximumThumb: string; }","badge: { clearLabel: string; }","breadcrumbs: { label: string; openHiddenLabelCount: string; }","pagination: { label: string; previous: string; next: string; }","confirm: { ok: string; cancel: string; }","offCanvas: { closeLabel: string; }","table: { actionsText: string; selectAllLabel: string; selectText: string; select: string; selectableLegend: string; reorderInstructions: string; columnMoved: string; resizeInstructions: string; }","timePickerInput: { emptySelection: string; emptyRange: string; changeSelection: string; changeSelectionRange: string; openPicker: string; start: string; end: string; }","counter: { count: string; countOfMax: string; remaining: string; limitReached: string; }"]},
|
|
55
|
+
{"name":"LocaleKey","usage":"advanced","component":null,"usedBy":[],"definition":"type LocaleKey = RegistryKey<LocaleRegistry, BuiltinLocaleInput>;","extensibleVia":"LocaleRegistry"},
|
|
55
56
|
{"name":"LocaleRegistry","usage":"advanced","component":null,"usedBy":[],"definition":"interface LocaleRegistry { }","extensibleVia":"LocaleRegistry"},
|
|
56
57
|
{"name":"PtScopeRegistry","usage":"advanced","component":null,"usedBy":[],"definition":"interface PtScopeRegistry { }","extensibleVia":"PtScopeRegistry"},
|
|
57
58
|
{"name":"SafeAreaSide","usage":"advanced","component":null,"usedBy":[],"definition":"type SafeAreaSide = 'top' | 'right' | 'bottom' | 'left';","values":["top","bottom","left","right"]},
|
|
@@ -2,18 +2,19 @@
|
|
|
2
2
|
"types": [
|
|
3
3
|
{"name":"AlertVariantRegistry","usage":"api","component":null,"usedBy":[{"component":"BbAlert","surface":"prop","name":"variant"}],"definition":"interface AlertVariantRegistry { outline: true; primary: true; destructive: true; warning: true; }","values":["outline","primary","destructive","warning"],"extensibleVia":"AlertVariantRegistry"},
|
|
4
4
|
{"name":"BadgeVariantType","usage":"api","component":null,"usedBy":[{"component":"BbBadge","surface":"prop","name":"variant"}],"definition":"type BadgeVariantType = BadgeVariantFromRegistry | 'none';","values":["primary","secondary","destructive","outline","none"],"extensibleVia":"BadgeVariantRegistry"},
|
|
5
|
-
{"name":"BbBreadcrumbsItem","usage":"api","component":"BbBreadcrumbs","usedBy":[{"component":"BbBreadcrumbs","surface":"prop","name":"items"}],"definition":"type BbBreadcrumbsItem = Omit<BbBaseButtonProps, 'block' | 'tag' | 'type'> & { onClick?: (event: MouseEvent) => void | Promise<void>;
|
|
5
|
+
{"name":"BbBreadcrumbsItem","usage":"api","component":"BbBreadcrumbs","usedBy":[{"component":"BbBreadcrumbs","surface":"prop","name":"items"}],"definition":"type BbBreadcrumbsItem = Omit<BbBaseButtonProps, 'block' | 'tag' | 'type' | 'text'> & { onClick?: (event: MouseEvent) => void | Promise<void>; label?: string; value?: string; key?: never; text?: never; 'prepend:icon'?: IconType; 'append:icon'?: IconType; };"},
|
|
6
6
|
{"name":"BbCalendarSegment","usage":"api","component":"BbCalendar","usedBy":[{"component":"BbCalendar","surface":"prop","name":"activeSegment"},{"component":"BbCalendar","surface":"event","name":"update:activeSegment"},{"component":"BbDatePicker","surface":"prop","name":"activeSegment"},{"component":"BbDatePicker","surface":"event","name":"update:activeSegment"}],"definition":"type BbCalendarSegment = 'start' | 'end';","values":["start","end"]},
|
|
7
7
|
{"name":"BbCheckboxGroupItemsContext","usage":"api","component":null,"usedBy":[{"component":"BbCheckboxGroup","surface":"prop","name":"items"},{"component":"BbSwitchGroup","surface":"prop","name":"items"}],"definition":"type BbCheckboxGroupItemsContext<M = any> = BbItemsProviderContext<M> & { reason: 'initial' | 'dependencies' | 'model'; };"},
|
|
8
8
|
{"name":"BbConfirmPortalSlotProps","usage":"api","component":"BbConfirm","usedBy":[{"component":"BbConfirmPortal","surface":"slot","name":"default"}],"definition":"type BbConfirmPortalSlotProps<P = any> = { props: P; yes: () => void; no: () => void; };"},
|
|
9
9
|
{"name":"BbDialogSizes","usage":"api","component":"BbDialog","usedBy":[{"component":"BbDialog","surface":"prop","name":"size"}],"definition":"type BbDialogSizes = { xs: number; sm: number; md: number; lg: number; xl: number; '2xl': number; };"},
|
|
10
|
-
{"name":"BbDropdownItem","usage":"api","component":"BbDropdown","usedBy":[{"component":"BbDropdown","surface":"prop","name":"items"},{"component":"BbDropdownButton","surface":"prop","name":"items"}],"definition":"type BbDropdownItem = InternalItem | InternalGroup | BbDropdownItem[];","members":{"InternalItem":["
|
|
11
|
-
{"name":"BbDropdownItemSlotProps","usage":"api","component":"BbDropdown","usedBy":[{"component":"BbDropdown","surface":"slot","name":"item:append"},{"component":"BbDropdown","surface":"slot","name":"item:prepend"},{"component":"BbDropdown","surface":"slot","name":"<
|
|
10
|
+
{"name":"BbDropdownItem","usage":"api","component":"BbDropdown","usedBy":[{"component":"BbDropdown","surface":"prop","name":"items"},{"component":"BbDropdownButton","surface":"prop","name":"items"}],"definition":"type BbDropdownItem = InternalItem | InternalGroup | BbDropdownItem[];","members":{"InternalItem":["disabled?: boolean","href?: string","rel?: string","target?: string","activeClass?: string","ariaCurrentValue?: \"page\" | \"step\" | \"location\" | \"date\" | \"time\" | \"true\" | \"false\"","data?: object","exactActiveClass?: string","headers?: object","download?: string | boolean","external?: boolean","method?: \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\"","onBefore?: (() => void)","onCancel?: (() => void)","onCancelToken?: ((cancelToken: unknown) => void)","onFinish?: (() => void)","only?: string[]","onProgress?: ((progress: { percentage: number | undefined; }) => void)","onStart?: (() => void)","onSuccess?: (() => void)","preserveScroll?: boolean | ((props: Record<string, unknown>) => boolean)","preserveState?: boolean | ((props: Record<string, unknown>) => boolean) | null","queryStringArrayFormat?: \"brackets\" | \"indices\"","replace?: boolean","to?: string | RouteLocationAsRelativeGeneric | RouteLocationAsPathGeneric","async?: boolean","cacheFor?: string | number | (string | number)[]","cacheTags?: string | string[]","component?: string","except?: string[]","instant?: boolean","onError?: ((errors: Record<string, string>) => void)","onPrefetched?: (() => void)","onPrefetching?: (() => void)","pageProps?: Record<string, unknown> | ((currentProps: Record<string, unknown>, sharedProps: Record<string, unknown>) => Record<string, unknown>) | null","prefetch?: string | boolean | string[]","preserveUrl?: boolean","viewTransition?: boolean","items?: BbDropdownItem[]","onClick?: ((...args: any[]) => any)","append:icon?: string","meta?: any","prepend:icon?: string","variant?: keyof DropdownItemVariantRegistry","label: string","value?: unknown","keyless?: true","rowKey?: string","domKey?: string","description?: string","placeholder?: \"loading\" | \"empty\" | \"failed\"","error?: unknown","fetched?: true","slotKey?: string"],"InternalGroup":["append:icon?: string","meta?: any","onClick?: ((...args: any[]) => any)","prepend:icon?: string","variant?: keyof DropdownItemVariantRegistry","id?: string","dependencies?: unknown[]","depsDebounceTime?: number","enforceCoherence?: boolean","filterBy?: string[]","group?: true","items: any[] | DropdownGroupItemsGetter | (InternalItem | InternalItem[])[]","itemText?: string | ((item: any) => string)","itemProps?: BbDropdownItemProps<any>","itemValue?: string | ((item: any) => any)","loadingText?: string","max?: number","maxHeight?: string | number","multiple?: boolean","clearable?: boolean","emptyText?: string","failedText?: string","prefill?: boolean | \"interaction\"","searchable?: boolean","searchPlaceholder?: string","selectable?: boolean | ((item: any) => boolean)","stash?: boolean","label?: string","hideLabel?: boolean"]}},
|
|
11
|
+
{"name":"BbDropdownItemSlotProps","usage":"api","component":"BbDropdown","usedBy":[{"component":"BbDropdown","surface":"slot","name":"item:append"},{"component":"BbDropdown","surface":"slot","name":"item:prepend"},{"component":"BbDropdown","surface":"slot","name":"<value>"},{"component":"BbDropdown","surface":"slot","name":"<value>:prepend"},{"component":"BbDropdown","surface":"slot","name":"<value>:append"},{"component":"BbDropdown","surface":"slot","name":"<groupId>:item"},{"component":"BbDropdown","surface":"slot","name":"<groupId>:item:prepend"},{"component":"BbDropdown","surface":"slot","name":"<groupId>:item:append"},{"component":"BbDropdown","surface":"slot","name":"<groupId>"},{"component":"BbDropdown","surface":"slot","name":"<groupId>:prepend"},{"component":"BbDropdown","surface":"slot","name":"<groupId>:append"},{"component":"BbDropdownButton","surface":"slot","name":"<value>"},{"component":"BbDropdownButton","surface":"slot","name":"<value>:prepend"},{"component":"BbDropdownButton","surface":"slot","name":"<value>:append"},{"component":"BbDropdownButton","surface":"slot","name":"<groupId>:item"},{"component":"BbDropdownButton","surface":"slot","name":"<groupId>:item:prepend"},{"component":"BbDropdownButton","surface":"slot","name":"<groupId>:item:append"},{"component":"BbDropdownButton","surface":"slot","name":"<groupId>"},{"component":"BbDropdownButton","surface":"slot","name":"<groupId>:prepend"},{"component":"BbDropdownButton","surface":"slot","name":"<groupId>:append"}],"definition":"type BbDropdownItemSlotProps = { description?: InternalItem['description']; disabled?: InternalItem['disabled']; group: BbDropdownSlotGroup; groupTitle: boolean; level: number; index: number; item: InternalItem; loading: boolean; open: boolean; placement: BbDropdownProps['placement']; selected: boolean; label: InternalItem['label']; };","fields":["description?: string","disabled?: boolean","group: BbDropdownSlotGroup","groupTitle: boolean","level: number","index: number","item: InternalItem","loading: boolean","open: boolean","placement: Placement | \"cursor\"","selected: boolean","label: string"]},
|
|
12
12
|
{"name":"BbFormFieldEntry","usage":"api","component":null,"usedBy":[{"component":"BbForm","surface":"slot","name":"default"}],"definition":"type BbFormFieldEntry = { mounted: boolean; label: string | undefined; validationLabel: string | undefined; errors: string[]; dirty: boolean; touched: boolean; };"},
|
|
13
13
|
{"name":"BbFormInvalidPayload","usage":"api","component":null,"usedBy":[{"component":"BbForm","surface":"event","name":"invalid"}],"definition":"type BbFormInvalidPayload = { errors: Record<string, string[]>; values: Record<string, unknown>; };"},
|
|
14
14
|
{"name":"BbFormServerErrors","usage":"api","component":null,"usedBy":[{"component":"BbForm","surface":"slot","name":"default"}],"definition":"type BbFormServerErrors = Record<string, string | readonly string[] | null | undefined>;"},
|
|
15
15
|
{"name":"BbFormSetErrorsOptions","usage":"api","component":null,"usedBy":[{"component":"BbForm","surface":"slot","name":"default"}],"definition":"type BbFormSetErrorsOptions = { focus?: boolean; };"},
|
|
16
16
|
{"name":"BbHoverCardPortalSlotProps","usage":"api","component":"BbHoverCard","usedBy":[{"component":"BbHoverCardPortal","surface":"slot","name":"default"}],"definition":"type BbHoverCardPortalSlotProps<P = any> = { props: P; close: () => void; };"},
|
|
17
|
+
{"name":"BbNumberUnit","usage":"api","component":"BbNumberInput","usedBy":[{"component":"BbNumberInput","surface":"prop","name":"unit"}],"definition":"type BbNumberUnit = BbNumberSimpleUnit | `${string}-per-${string}`;"},
|
|
17
18
|
{"name":"BbOffCanvasProps","usage":"api","component":"BbOffCanvas","usedBy":[{"component":"BbColorInput","surface":"prop","name":"offCanvasProps"},{"component":"BbColorPalette","surface":"prop","name":"offCanvasProps"},{"component":"BbDatePicker","surface":"prop","name":"offCanvasProps"},{"component":"BbDatePickerInput","surface":"prop","name":"offCanvasProps"},{"component":"BbDialog","surface":"prop","name":"offCanvasProps"},{"component":"BbDropdown","surface":"prop","name":"offCanvasProps"},{"component":"BbDropdownButton","surface":"prop","name":"offCanvasProps"},{"component":"BbPopover","surface":"prop","name":"offCanvasProps"},{"component":"BbSelect","surface":"prop","name":"offCanvasProps"},{"component":"BbSelectPopover","surface":"prop","name":"offCanvasProps"},{"component":"BbTimePicker","surface":"prop","name":"offCanvasProps"},{"component":"BbTimePickerInput","surface":"prop","name":"offCanvasProps"}],"definition":"type BbOffCanvasProps = { [K in `pt:${BbOffCanvasPtPart}` | `pt:${BbOffCanvasPtPart}:${BbOffCanvasPtState}`]?: PtValue; } & { pt?: PtMap<BbOffCanvasPtPart, BbOffCanvasPtState>; description?: string; disabled?: boolean; eager?: boolean; focusTarget?: string; fullscreen?: boolean | 'mobile'; draggable?: boolean; stack?: string; stackGap?: number; persistent?: boolean; hideClose?: boolean; size?: Responsive<OffCanvasSize>; title?: string; transitionDuration?: number; side?: 'left' | 'top' | 'right' | 'bottom'; };","fields":["description?: string","disabled?: boolean","eager?: boolean","focusTarget?: string","fullscreen?: boolean | \"mobile\"","draggable?: boolean","stack?: string","stackGap?: number","persistent?: boolean","hideClose?: boolean","size?: Responsive<OffCanvasSize>","title?: string","transitionDuration?: number","side?: \"top\" | \"bottom\" | \"left\" | \"right\""]},
|
|
18
19
|
{"name":"BbOptionGroupItemProps","usage":"api","component":null,"usedBy":[{"component":"BbCheckboxGroup","surface":"prop","name":"itemProps"},{"component":"BbRadioGroup","surface":"prop","name":"itemProps"},{"component":"BbSwitchGroup","surface":"prop","name":"itemProps"}],"definition":"type BbOptionGroupItemProps<T = any> = ItemProps<T, OptionGroupItemFields>;","fields":["description?: ItemAccessor<T, string | null | undefined>"]},
|
|
19
20
|
{"name":"BbPopoverPortalSlotProps","usage":"api","component":"BbPopover","usedBy":[{"component":"BbPopoverPortal","surface":"slot","name":"default"}],"definition":"type BbPopoverPortalSlotProps<P = any> = { props: P; close: () => void; };"},
|
|
@@ -27,7 +28,7 @@
|
|
|
27
28
|
{"name":"BbTableItemsContext","usage":"api","component":null,"usedBy":[{"component":"BbTable","surface":"prop","name":"items"}],"definition":"type BbTableItemsContext<M = any> = BbItemsProviderContext<M> & { reason: 'initial' | 'dependencies' | 'pagination'; };"},
|
|
28
29
|
{"name":"BbTableRowClasses","usage":"api","component":"BbTable","usedBy":[{"component":"BbTable","surface":"prop","name":"rowClass"}],"definition":"type BbTableRowClasses<Item = any> = Classes | ((item: Item) => Classes | undefined);"},
|
|
29
30
|
{"name":"BbTableSortEntry","usage":"api","component":"BbTable","usedBy":[{"component":"BbTable","surface":"prop","name":"sort"},{"component":"BbTable","surface":"event","name":"update:sort"}],"definition":"type BbTableSortEntry = [ key: string, direction: 'asc' | 'desc' ];"},
|
|
30
|
-
{"name":"BbTabsItem","usage":"api","component":"BbTabs","usedBy":[{"component":"BbTabs","surface":"prop","name":"items"},{"component":"BbTabs","surface":"prop","name":"pt"},{"component":"BbTabs","surface":"prop","name":"pt:item"},{"component":"BbTabsList","surface":"prop","name":"pt"},{"component":"BbTabsList","surface":"prop","name":"pt:item"},{"component":"BbTabsRoot","surface":"prop","name":"items"}],"definition":"type BbTabsItem<K extends string = string> = BbTabsInertiaOptions & { disabled?: boolean; eager?: boolean; href?: string;
|
|
31
|
+
{"name":"BbTabsItem","usage":"api","component":"BbTabs","usedBy":[{"component":"BbTabs","surface":"prop","name":"items"},{"component":"BbTabs","surface":"prop","name":"pt"},{"component":"BbTabs","surface":"prop","name":"pt:item"},{"component":"BbTabsList","surface":"prop","name":"pt"},{"component":"BbTabsList","surface":"prop","name":"pt:item"},{"component":"BbTabsRoot","surface":"prop","name":"items"}],"definition":"type BbTabsItem<K extends string = string> = BbTabsInertiaOptions & { disabled?: boolean; eager?: boolean; href?: string; value: K; key?: never; label?: string; server?: boolean; };"},
|
|
31
32
|
{"name":"BbTimePickerSegment","usage":"api","component":"BbTimePicker","usedBy":[{"component":"BbTimePicker","surface":"prop","name":"activeSegment"},{"component":"BbTimePicker","surface":"event","name":"update:activeSegment"}],"definition":"type BbTimePickerSegment = 'start' | 'end';","values":["start","end"]},
|
|
32
33
|
{"name":"BbToastPosition","usage":"api","component":"BbToast","usedBy":[{"component":"BbToast","surface":"prop","name":"position"}],"definition":"type BbToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';","values":["top-left","top-center","top-right","bottom-left","bottom-center","bottom-right"]},
|
|
33
34
|
{"name":"BbTreeItem","usage":"api","component":"BbTree","usedBy":[{"component":"BbTree","surface":"prop","name":"items"}],"definition":"type BbTreeItem<Meta = any> = { meta: Meta; children?: Array<BbTreeItem<Meta>>; expanded?: boolean; expandable?: BbTreeExpandable<Meta>; };","fields":["meta: Meta","children?: BbTreeItem<Meta>[]","expanded?: boolean","expandable?: BbTreeExpandable<Meta>"]},
|
|
@@ -35,9 +35,8 @@ Sibling recipes: [Vue](../vue/approvals-inbox.md) ·
|
|
|
35
35
|
the peek stack, the close semantics and the sidebar's out-of-flow
|
|
36
36
|
behaviour are all load-bearing here.
|
|
37
37
|
- `<BbConfirm />` and `<BbToast />` mounted once in the `createInertiaApp` render root — never in a page.
|
|
38
|
-
- From the [Inertia Helpers](../../guides/inertia-helpers.md) toolkit
|
|
39
|
-
`
|
|
40
|
-
`useQuery`.
|
|
38
|
+
- From the [Inertia Helpers](../../guides/inertia-helpers.md) toolkit, installed with
|
|
39
|
+
`npx bitboss-ui add useProp useQuery useQueryObject useResourceContext useTableContext`.
|
|
41
40
|
- Controller: `Inertia::render('Approvals/Index', ['expenses' =>
|
|
42
41
|
ExpensePaginator::make(...), 'tabCounts' => [...]])` — `expenses` is a
|
|
43
42
|
standard Laravel paginator (`PaginatedResponse<Expense>`) and `tabCounts`
|
|
@@ -188,10 +187,10 @@ import {
|
|
|
188
187
|
import {
|
|
189
188
|
useTableContext,
|
|
190
189
|
type TableContext,
|
|
191
|
-
} from '@/composables/useTableContext';
|
|
192
|
-
import { useQueryObject } from '@/composables/useQueryObject';
|
|
193
|
-
import { useProp } from '@/composables/useProp';
|
|
194
|
-
import { useQuery } from '@/composables/useQuery';
|
|
190
|
+
} from '@/composables/inertia-helpers/useTableContext';
|
|
191
|
+
import { useQueryObject } from '@/composables/inertia-helpers/useQueryObject';
|
|
192
|
+
import { useProp } from '@/composables/inertia-helpers/useProp';
|
|
193
|
+
import { useQuery } from '@/composables/inertia-helpers/useQuery';
|
|
195
194
|
import type { Expense, ExpenseCategory, ExpenseStatus } from '@/types';
|
|
196
195
|
|
|
197
196
|
/** What the stacked sidebar can show. Clicking a name pushes one of these. */
|
|
@@ -578,9 +577,9 @@ export function useApprovalsInbox(): ApprovalsInboxContext {
|
|
|
578
577
|
<BbBreadcrumbs
|
|
579
578
|
class="min-w-0 flex-auto"
|
|
580
579
|
:items="[
|
|
581
|
-
{
|
|
582
|
-
{
|
|
583
|
-
{
|
|
580
|
+
{ value: 'dashboard', label: 'Dashboard', href: '/dashboard' },
|
|
581
|
+
{ value: 'finance', label: 'Finance', href: '/finance' },
|
|
582
|
+
{ value: 'approvals', label: 'Approvals' },
|
|
584
583
|
]"
|
|
585
584
|
/>
|
|
586
585
|
<BbTextInput
|
|
@@ -614,28 +613,28 @@ export function useApprovalsInbox(): ApprovalsInboxContext {
|
|
|
614
613
|
compact
|
|
615
614
|
:items="[
|
|
616
615
|
{
|
|
617
|
-
|
|
616
|
+
value: 'needsApproval',
|
|
618
617
|
label: `Needs approval · ${ctx.tabCounts.value.needsApproval}`,
|
|
619
618
|
href: tabHref('needsApproval'),
|
|
620
619
|
server: true,
|
|
621
620
|
only: ['expenses', 'tabCounts'],
|
|
622
621
|
},
|
|
623
622
|
{
|
|
624
|
-
|
|
623
|
+
value: 'approved',
|
|
625
624
|
label: `Approved · ${ctx.tabCounts.value.approved}`,
|
|
626
625
|
href: tabHref('approved'),
|
|
627
626
|
server: true,
|
|
628
627
|
only: ['expenses', 'tabCounts'],
|
|
629
628
|
},
|
|
630
629
|
{
|
|
631
|
-
|
|
630
|
+
value: 'rejected',
|
|
632
631
|
label: `Rejected · ${ctx.tabCounts.value.rejected}`,
|
|
633
632
|
href: tabHref('rejected'),
|
|
634
633
|
server: true,
|
|
635
634
|
only: ['expenses', 'tabCounts'],
|
|
636
635
|
},
|
|
637
636
|
{
|
|
638
|
-
|
|
637
|
+
value: 'all',
|
|
639
638
|
label: `All · ${ctx.tabCounts.value.all}`,
|
|
640
639
|
href: tabHref('all'),
|
|
641
640
|
server: true,
|
|
@@ -762,7 +761,7 @@ import {
|
|
|
762
761
|
} from 'bitboss-ui';
|
|
763
762
|
import qs from 'query-string';
|
|
764
763
|
import PageShell from '@/components/layout/PageShell.vue';
|
|
765
|
-
import { useQuery } from '@/composables/useQuery';
|
|
764
|
+
import { useQuery } from '@/composables/inertia-helpers/useQuery';
|
|
766
765
|
import {
|
|
767
766
|
type ApprovalsTab,
|
|
768
767
|
CATEGORY_LABEL,
|
|
@@ -856,7 +855,6 @@ const rowClass = (item: Expense) =>
|
|
|
856
855
|
<BbSelectPopover
|
|
857
856
|
v-model="ctx.filters.categories"
|
|
858
857
|
item-text="text"
|
|
859
|
-
item-value="value"
|
|
860
858
|
:items="CATEGORY_OPTIONS"
|
|
861
859
|
multiple
|
|
862
860
|
>
|
|
@@ -1483,7 +1481,7 @@ const ctx = useApprovalsInbox();
|
|
|
1483
1481
|
<script setup lang="ts">
|
|
1484
1482
|
import { computed, watch } from 'vue';
|
|
1485
1483
|
import { BbBadge, BbBaseButton, BbButton, BbIcon, BbSpinner } from 'bitboss-ui';
|
|
1486
|
-
import { useResourceContext } from '@/composables/useResourceContext';
|
|
1484
|
+
import { useResourceContext } from '@/composables/inertia-helpers/useResourceContext';
|
|
1487
1485
|
import { CATEGORY_LABEL, STATUS_LABEL, useApprovalsInbox } from './context';
|
|
1488
1486
|
import type { ExpenseDetail } from '@/types';
|
|
1489
1487
|
|
|
@@ -1606,7 +1604,7 @@ import {
|
|
|
1606
1604
|
BbButton,
|
|
1607
1605
|
BbSpinner,
|
|
1608
1606
|
} from 'bitboss-ui';
|
|
1609
|
-
import { useResourceContext } from '@/composables/useResourceContext';
|
|
1607
|
+
import { useResourceContext } from '@/composables/inertia-helpers/useResourceContext';
|
|
1610
1608
|
import { STATUS_LABEL, useApprovalsInbox } from './context';
|
|
1611
1609
|
import type { SubmitterDetail } from '@/types';
|
|
1612
1610
|
|
|
@@ -46,9 +46,9 @@ recipe assumes) ·
|
|
|
46
46
|
label state) · [Page Shell](../../guides/page-shell.md) ·
|
|
47
47
|
[Floating Bottom Panel](../../guides/floating-bottom-panel.md).
|
|
48
48
|
|
|
49
|
-
From the [Inertia Helpers](../../guides/inertia-helpers.md) toolkit
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
From the [Inertia Helpers](../../guides/inertia-helpers.md) toolkit, installed
|
|
50
|
+
with `npx bitboss-ui add useProp useQuery useQueryObject useResourceContext useTableContext`.
|
|
51
|
+
`<BbConfirm />` and `<BbToast />` mounted once in the
|
|
52
52
|
`createInertiaApp` render root — never in a page.
|
|
53
53
|
|
|
54
54
|
Controller: `Inertia::render('BacklogWorkspace/Index', ['issues' => …, 'tabCounts'
|
|
@@ -267,10 +267,10 @@ import {
|
|
|
267
267
|
import {
|
|
268
268
|
useTableContext,
|
|
269
269
|
type TableContext,
|
|
270
|
-
} from '@/composables/useTableContext';
|
|
271
|
-
import { useQueryObject } from '@/composables/useQueryObject';
|
|
272
|
-
import { useQuery } from '@/composables/useQuery';
|
|
273
|
-
import { useProp } from '@/composables/useProp';
|
|
270
|
+
} from '@/composables/inertia-helpers/useTableContext';
|
|
271
|
+
import { useQueryObject } from '@/composables/inertia-helpers/useQueryObject';
|
|
272
|
+
import { useQuery } from '@/composables/inertia-helpers/useQuery';
|
|
273
|
+
import { useProp } from '@/composables/inertia-helpers/useProp';
|
|
274
274
|
import type { Issue, IssuePriority, IssueStatus, Member } from '@/types';
|
|
275
275
|
|
|
276
276
|
/**
|
|
@@ -786,9 +786,9 @@ export function useBacklogWorkspace(): BacklogWorkspaceContext {
|
|
|
786
786
|
<BbBreadcrumbs
|
|
787
787
|
class="min-w-0 flex-auto"
|
|
788
788
|
:items="[
|
|
789
|
-
{
|
|
790
|
-
{
|
|
791
|
-
{
|
|
789
|
+
{ value: 'product', label: 'Product', href: '/product' },
|
|
790
|
+
{ value: 'sprints', label: 'Sprints', href: '/sprints' },
|
|
791
|
+
{ value: 'sprint-24', label: 'Sprint 24' },
|
|
792
792
|
]"
|
|
793
793
|
/>
|
|
794
794
|
<div class="flex shrink-0 items-center gap-2">
|
|
@@ -832,21 +832,21 @@ export function useBacklogWorkspace(): BacklogWorkspaceContext {
|
|
|
832
832
|
compact
|
|
833
833
|
:items="[
|
|
834
834
|
{
|
|
835
|
-
|
|
835
|
+
value: 'backlog',
|
|
836
836
|
label: `Backlog · ${ctx.tabCounts.value.backlog}`,
|
|
837
837
|
href: tabHref('backlog'),
|
|
838
838
|
server: true,
|
|
839
839
|
only: ['issues', 'tabCounts'],
|
|
840
840
|
},
|
|
841
841
|
{
|
|
842
|
-
|
|
842
|
+
value: 'current',
|
|
843
843
|
label: `Current sprint · ${ctx.tabCounts.value.current}`,
|
|
844
844
|
href: tabHref('current'),
|
|
845
845
|
server: true,
|
|
846
846
|
only: ['issues', 'tabCounts'],
|
|
847
847
|
},
|
|
848
848
|
{
|
|
849
|
-
|
|
849
|
+
value: 'done',
|
|
850
850
|
label: `Done · ${ctx.tabCounts.value.done}`,
|
|
851
851
|
href: tabHref('done'),
|
|
852
852
|
server: true,
|
|
@@ -999,7 +999,7 @@ import {
|
|
|
999
999
|
} from 'bitboss-ui';
|
|
1000
1000
|
import qs from 'query-string';
|
|
1001
1001
|
import PageShell from '@/components/layout/PageShell.vue';
|
|
1002
|
-
import { useQuery } from '@/composables/useQuery';
|
|
1002
|
+
import { useQuery } from '@/composables/inertia-helpers/useQuery';
|
|
1003
1003
|
import { provideBacklogWorkspace, type SprintTab } from './context';
|
|
1004
1004
|
import AssigneeCell from './AssigneeCell.vue';
|
|
1005
1005
|
import EditableTitleCell from './EditableTitleCell.vue';
|
|
@@ -1068,8 +1068,6 @@ const rowClass = (item: Issue) =>
|
|
|
1068
1068
|
<BbSelectPopover
|
|
1069
1069
|
v-model="ctx.filters.status"
|
|
1070
1070
|
disable-writing
|
|
1071
|
-
item-text="label"
|
|
1072
|
-
item-value="value"
|
|
1073
1071
|
:items="STATUS_OPTIONS"
|
|
1074
1072
|
multiple
|
|
1075
1073
|
>
|
|
@@ -1102,8 +1100,6 @@ const rowClass = (item: Issue) =>
|
|
|
1102
1100
|
<BbSelectPopover
|
|
1103
1101
|
v-model="ctx.filters.priority"
|
|
1104
1102
|
disable-writing
|
|
1105
|
-
item-text="label"
|
|
1106
|
-
item-value="value"
|
|
1107
1103
|
:items="PRIORITY_OPTIONS"
|
|
1108
1104
|
multiple
|
|
1109
1105
|
>
|
|
@@ -1269,8 +1265,6 @@ const commit = (event: Event) => {
|
|
|
1269
1265
|
<BbSelectPopover
|
|
1270
1266
|
compact
|
|
1271
1267
|
disable-writing
|
|
1272
|
-
item-text="label"
|
|
1273
|
-
item-value="value"
|
|
1274
1268
|
:items="STATUS_OPTIONS"
|
|
1275
1269
|
:model-value="status"
|
|
1276
1270
|
width="180px"
|
|
@@ -1347,8 +1341,6 @@ const label = computed(
|
|
|
1347
1341
|
<BbSelectPopover
|
|
1348
1342
|
compact
|
|
1349
1343
|
disable-writing
|
|
1350
|
-
item-text="label"
|
|
1351
|
-
item-value="value"
|
|
1352
1344
|
:items="PRIORITY_OPTIONS"
|
|
1353
1345
|
:model-value="priority"
|
|
1354
1346
|
width="160px"
|
|
@@ -1413,8 +1405,8 @@ const label = computed(
|
|
|
1413
1405
|
<template>
|
|
1414
1406
|
<!-- Provider-backed people picker. The provider is the ONE shared
|
|
1415
1407
|
`searchMembers` — lazy per instance, so a row nobody opens never resolves.
|
|
1416
|
-
The whole member is the value (no item-value
|
|
1417
|
-
stores it. -->
|
|
1408
|
+
The whole member is the value (no item-value, and a Member has no `value`
|
|
1409
|
+
of its own), matching how the row stores it. -->
|
|
1418
1410
|
<BbSelectPopover
|
|
1419
1411
|
compact
|
|
1420
1412
|
item-text="name"
|
|
@@ -1480,20 +1472,20 @@ const assignee = computed(() => ctx.valueOf(props.issue, 'assignee'));
|
|
|
1480
1472
|
:boundary="boundary"
|
|
1481
1473
|
:items="[
|
|
1482
1474
|
{
|
|
1483
|
-
|
|
1484
|
-
|
|
1475
|
+
value: 'duplicate',
|
|
1476
|
+
label: 'Duplicate',
|
|
1485
1477
|
'prepend:icon': 'lucide:copy',
|
|
1486
1478
|
onClick: () => ctx.duplicateIssue(issue),
|
|
1487
1479
|
},
|
|
1488
1480
|
{
|
|
1489
|
-
|
|
1490
|
-
|
|
1481
|
+
value: 'next-sprint',
|
|
1482
|
+
label: 'Move to next sprint',
|
|
1491
1483
|
'prepend:icon': 'lucide:arrow-right',
|
|
1492
1484
|
onClick: () => ctx.moveToNextSprint(issue),
|
|
1493
1485
|
},
|
|
1494
1486
|
{
|
|
1495
|
-
|
|
1496
|
-
|
|
1487
|
+
value: 'delete',
|
|
1488
|
+
label: 'Delete',
|
|
1497
1489
|
'prepend:icon': 'lucide:trash-2',
|
|
1498
1490
|
variant: 'destructive',
|
|
1499
1491
|
onClick: () => ctx.deleteIssue(issue),
|
|
@@ -1538,8 +1530,6 @@ const ctx = useBacklogWorkspace();
|
|
|
1538
1530
|
menu clears the bar. -->
|
|
1539
1531
|
<BbSelectPopover
|
|
1540
1532
|
disable-writing
|
|
1541
|
-
item-text="label"
|
|
1542
|
-
item-value="value"
|
|
1543
1533
|
:items="STATUS_OPTIONS"
|
|
1544
1534
|
:model-value="null"
|
|
1545
1535
|
:offset="8"
|
|
@@ -1722,7 +1712,7 @@ const ctx = useBacklogWorkspace();
|
|
|
1722
1712
|
<script setup lang="ts">
|
|
1723
1713
|
import { watch } from 'vue';
|
|
1724
1714
|
import { BbButton, BbIcon, BbSpinner } from 'bitboss-ui';
|
|
1725
|
-
import { useResourceContext } from '@/composables/useResourceContext';
|
|
1715
|
+
import { useResourceContext } from '@/composables/inertia-helpers/useResourceContext';
|
|
1726
1716
|
import AssigneeCell from './AssigneeCell.vue';
|
|
1727
1717
|
import PriorityCell from './PriorityCell.vue';
|
|
1728
1718
|
import StatusCell from './StatusCell.vue';
|
|
@@ -587,36 +587,36 @@ const warehouseId = ref('denver');
|
|
|
587
587
|
|
|
588
588
|
const accountMenuItems: BbDropdownItem[] = [
|
|
589
589
|
{
|
|
590
|
-
|
|
591
|
-
|
|
590
|
+
value: 'theme',
|
|
591
|
+
label: 'Theme',
|
|
592
592
|
'prepend:icon': 'lucide:sun-moon',
|
|
593
593
|
// A submenu opener (`items`) whose own `items` is one selectable
|
|
594
594
|
// group — `selectable: true` gives single-choice radio semantics and a
|
|
595
595
|
// check on the picked row, with no bordered field anywhere.
|
|
596
596
|
items: [
|
|
597
597
|
{
|
|
598
|
-
|
|
598
|
+
id: 'theme-opts',
|
|
599
599
|
selectable: true,
|
|
600
600
|
items: [
|
|
601
|
-
{
|
|
602
|
-
{
|
|
603
|
-
{
|
|
601
|
+
{ value: 'system', label: 'System' },
|
|
602
|
+
{ value: 'light', label: 'Light' },
|
|
603
|
+
{ value: 'dark', label: 'Dark' },
|
|
604
604
|
],
|
|
605
605
|
},
|
|
606
606
|
],
|
|
607
607
|
},
|
|
608
608
|
{
|
|
609
|
-
|
|
610
|
-
|
|
609
|
+
value: 'warehouse',
|
|
610
|
+
label: 'Warehouse',
|
|
611
611
|
'prepend:icon': 'lucide:warehouse',
|
|
612
612
|
items: [
|
|
613
613
|
{
|
|
614
|
-
|
|
614
|
+
id: 'warehouse-opts',
|
|
615
615
|
selectable: true,
|
|
616
616
|
items: [
|
|
617
|
-
{
|
|
618
|
-
{
|
|
619
|
-
{
|
|
617
|
+
{ value: 'denver', label: 'Denver DC' },
|
|
618
|
+
{ value: 'reno', label: 'Reno DC' },
|
|
619
|
+
{ value: 'columbus', label: 'Columbus DC' },
|
|
620
620
|
],
|
|
621
621
|
},
|
|
622
622
|
],
|
|
@@ -624,14 +624,14 @@ const accountMenuItems: BbDropdownItem[] = [
|
|
|
624
624
|
// A trailing separator section (a nested array) for plain navigation rows.
|
|
625
625
|
[
|
|
626
626
|
{
|
|
627
|
-
|
|
628
|
-
|
|
627
|
+
value: 'settings',
|
|
628
|
+
label: 'Settings',
|
|
629
629
|
'prepend:icon': 'lucide:settings',
|
|
630
630
|
href: '/settings',
|
|
631
631
|
},
|
|
632
632
|
{
|
|
633
|
-
|
|
634
|
-
|
|
633
|
+
value: 'signout',
|
|
634
|
+
label: 'Sign out',
|
|
635
635
|
'prepend:icon': 'lucide:log-out',
|
|
636
636
|
href: '/logout',
|
|
637
637
|
method: 'post',
|
|
@@ -28,8 +28,8 @@ Sibling recipes: [Vue](../vue/onboarding.md) · [Nuxt](../nuxt/onboarding.md).
|
|
|
28
28
|
the peek stack, the close semantics and the sidebar's out-of-flow
|
|
29
29
|
behaviour are all load-bearing here.
|
|
30
30
|
- `<BbConfirm />` and `<BbToast />` mounted once in the `createInertiaApp` render root — never in a page.
|
|
31
|
-
- From the [Inertia Helpers](../../guides/inertia-helpers.md) toolkit
|
|
32
|
-
`
|
|
31
|
+
- From the [Inertia Helpers](../../guides/inertia-helpers.md) toolkit, installed with
|
|
32
|
+
`npx bitboss-ui add usePromiseForm useProp`.
|
|
33
33
|
- Controller: `Inertia::render('Onboarding/Index', ['onboarding' => [
|
|
34
34
|
'steps' => [...], 'connectedIntegrations' => [...], 'workspace' => ...,
|
|
35
35
|
'invites' => [...], 'firstProject' => ..., 'importedCustomers' => ...,
|
|
@@ -156,8 +156,8 @@ import {
|
|
|
156
156
|
usePageShellContext,
|
|
157
157
|
type PageShellContext,
|
|
158
158
|
} from '@/components/layout/usePageShellContext';
|
|
159
|
-
import { useProp } from '@/composables/useProp';
|
|
160
|
-
import { usePromiseForm } from '@/composables/usePromiseForm';
|
|
159
|
+
import { useProp } from '@/composables/inertia-helpers/useProp';
|
|
160
|
+
import { usePromiseForm } from '@/composables/inertia-helpers/usePromiseForm';
|
|
161
161
|
import type {
|
|
162
162
|
InviteRole,
|
|
163
163
|
PendingInvite,
|
|
@@ -697,8 +697,8 @@ export function useOnboardingWorkspace(): OnboardingWorkspaceContext {
|
|
|
697
697
|
<BbBreadcrumbs
|
|
698
698
|
class="min-w-0 flex-auto"
|
|
699
699
|
:items="[
|
|
700
|
-
{
|
|
701
|
-
{
|
|
700
|
+
{ value: 'dashboard', label: 'Dashboard', href: '/dashboard' },
|
|
701
|
+
{ value: 'getting-started', label: 'Getting started' },
|
|
702
702
|
]"
|
|
703
703
|
/>
|
|
704
704
|
<BbButton
|
|
@@ -1063,8 +1063,6 @@ const ctx = useOnboardingWorkspace();
|
|
|
1063
1063
|
v-model="role"
|
|
1064
1064
|
class="w-44"
|
|
1065
1065
|
compact
|
|
1066
|
-
item-text="label"
|
|
1067
|
-
item-value="value"
|
|
1068
1066
|
:items="roles"
|
|
1069
1067
|
label="Role"
|
|
1070
1068
|
label-mode="outside"
|
|
@@ -1427,8 +1425,6 @@ import { BbButton } from 'bitboss-ui';
|
|
|
1427
1425
|
v-if="ctx.reminders.enabled"
|
|
1428
1426
|
class="max-w-72"
|
|
1429
1427
|
compact
|
|
1430
|
-
item-text="label"
|
|
1431
|
-
item-value="value"
|
|
1432
1428
|
:items="cadences"
|
|
1433
1429
|
label="Reminder schedule"
|
|
1434
1430
|
label-mode="outside"
|