bitboss-ui 3.0.0-beta.2 → 3.0.0-beta.21
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 +72 -33
- package/dist/ai/BbAccordion.md +3 -3
- package/dist/ai/BbAlert.md +9 -5
- package/dist/ai/BbAsterisk.md +17 -0
- package/dist/ai/BbAvatar.md +12 -3
- package/dist/ai/BbBadge.md +15 -10
- package/dist/ai/BbBadgeButton.md +16 -16
- package/dist/ai/BbBaseButton.md +16 -16
- package/dist/ai/BbBaseCheckbox.md +8 -8
- package/dist/ai/BbBaseCheckboxGroup.md +13 -13
- package/dist/ai/BbBaseCheckboxIcon.md +26 -9
- package/dist/ai/BbBaseColorInput.md +11 -11
- package/dist/ai/BbBaseDatePicker.md +6 -6
- package/dist/ai/BbBaseDatePickerInput.md +15 -15
- package/dist/ai/BbBaseInputContainer.md +12 -12
- package/dist/ai/BbBaseNumberInput.md +8 -8
- package/dist/ai/BbBaseRadio.md +5 -5
- package/dist/ai/BbBaseRadioGroup.md +7 -7
- package/dist/ai/BbBaseRadioIcon.md +25 -9
- package/dist/ai/BbBaseRating.md +5 -5
- package/dist/ai/BbBaseSelect.md +22 -21
- package/dist/ai/BbBaseSlider.md +9 -9
- package/dist/ai/BbBaseSwitch.md +8 -8
- package/dist/ai/BbBaseSwitchGroup.md +13 -13
- package/dist/ai/BbBaseSwitchIcon.md +28 -10
- package/dist/ai/BbBaseTag.md +10 -10
- package/dist/ai/BbBaseTextInput.md +9 -9
- package/dist/ai/BbBaseTextarea.md +9 -9
- package/dist/ai/BbBaseTimePickerInput.md +13 -13
- package/dist/ai/BbBreadcrumbs.md +2 -2
- package/dist/ai/BbButton.md +15 -15
- package/dist/ai/BbCheckbox.md +18 -17
- package/dist/ai/BbCheckboxGroup.md +15 -14
- package/dist/ai/BbCollapsible.md +11 -9
- package/dist/ai/BbColorInput.md +15 -15
- package/dist/ai/BbColorPalette.md +12 -6
- package/dist/ai/BbConfirm.md +12 -5
- package/dist/ai/BbDatePicker.md +13 -13
- package/dist/ai/BbDatePickerInput.md +20 -20
- package/dist/ai/BbDialog.md +78 -12
- package/dist/ai/BbDropdown.md +132 -22
- package/dist/ai/BbDropdownButton.md +12 -12
- package/dist/ai/BbDropdownGroup.md +1 -1
- package/dist/ai/BbDropzone.md +4 -4
- package/dist/ai/BbForm.md +49 -14
- package/dist/ai/BbIcon.md +6 -0
- package/dist/ai/BbIndicator.md +5 -5
- package/dist/ai/BbNumberInput.md +11 -11
- package/dist/ai/BbOffCanvas.md +90 -20
- package/dist/ai/BbPagination.md +3 -3
- package/dist/ai/BbPopover.md +32 -17
- package/dist/ai/BbProgress.md +7 -4
- package/dist/ai/BbRadio.md +16 -15
- package/dist/ai/BbRadioGroup.md +20 -17
- package/dist/ai/BbRating.md +11 -11
- package/dist/ai/BbSelect.md +138 -37
- package/dist/ai/BbSelectPopover.md +40 -41
- package/dist/ai/BbSlider.md +37 -22
- package/dist/ai/BbSmoothHeight.md +1 -1
- package/dist/ai/BbSwitch.md +25 -10
- package/dist/ai/BbSwitchGroup.md +17 -14
- package/dist/ai/BbTable.md +920 -109
- package/dist/ai/BbTabs.md +28 -14
- package/dist/ai/BbTabsList.md +1 -1
- package/dist/ai/BbTabsPanes.md +1 -1
- package/dist/ai/BbTabsRoot.md +10 -10
- package/dist/ai/BbTag.md +14 -14
- package/dist/ai/BbTextInput.md +16 -15
- package/dist/ai/BbTextarea.md +13 -13
- package/dist/ai/BbTimePicker.md +10 -10
- package/dist/ai/BbTimePickerInput.md +17 -17
- package/dist/ai/BbToast.md +1 -1
- package/dist/ai/BbToastPortal.md +1 -1
- package/dist/ai/BbTooltip.md +12 -10
- package/dist/ai/BbTree.md +1 -1
- package/dist/ai/ChipsBox.md +1 -1
- package/dist/ai/CommonInputWrapper.md +10 -10
- package/dist/ai/CommonPopover.md +6 -6
- package/dist/ai/FlatListBox.md +5 -5
- package/dist/ai/GroupedListBox.md +5 -5
- package/dist/ai/ListBox.md +4 -4
- package/dist/ai/OptionsContainer.md +4 -4
- package/dist/ai/changelog.json +128 -2
- package/dist/ai/components.json +917 -100
- package/dist/ai/composables/useBbConfig.md +72 -11
- package/dist/ai/composables/useConfirm.md +5 -3
- package/dist/ai/guides/ai-router.md +9 -4
- package/dist/ai/guides/component-picker.md +18 -18
- package/dist/ai/guides/design-language.md +14 -14
- package/dist/ai/guides/design-tokens.md +25 -18
- package/dist/ai/guides/fetch-items-playbook.md +1 -1
- package/dist/ai/guides/icons-policy.md +11 -5
- package/dist/ai/guides/installation-and-plugin-setup.md +85 -23
- package/dist/ai/guides/migration/components/bb-checkbox-group.md +30 -0
- package/dist/ai/guides/migration/components/bb-checkbox.md +37 -3
- package/dist/ai/guides/migration/components/bb-collapsible.md +5 -5
- package/dist/ai/guides/migration/components/bb-dialog.md +62 -34
- package/dist/ai/guides/migration/components/bb-offcanvas.md +29 -13
- package/dist/ai/guides/migration/components/bb-rating.md +8 -2
- package/dist/ai/guides/migration/components/bb-select.md +5 -2
- package/dist/ai/guides/migration/components/bb-table.md +560 -28
- package/dist/ai/guides/migration/components/bb-text-input.md +6 -6
- package/dist/ai/guides/migration/v2-to-v3.md +260 -89
- package/dist/ai/guides/ssr-prefill.md +120 -0
- package/dist/ai/index.md +10 -9
- package/dist/ai/recipes/inertia/approvals-inbox.md +0 -1
- package/dist/ai/recipes/inertia/inline-edit-workspace.md +0 -1
- package/dist/ai/recipes/inertia/layout-scaffold.md +5 -1
- package/dist/ai/recipes/inertia/ownership-atlas.md +49 -29
- package/dist/ai/recipes/inertia/record-form.md +0 -1
- package/dist/ai/recipes/inertia/records-workspace.md +26 -8
- package/dist/ai/recipes/inertia/upload-center.md +0 -1
- package/dist/ai/recipes/nuxt/approvals-inbox.md +0 -1
- package/dist/ai/recipes/nuxt/inline-edit-workspace.md +0 -1
- package/dist/ai/recipes/nuxt/layout-scaffold.md +5 -1
- package/dist/ai/recipes/nuxt/record-form.md +0 -1
- package/dist/ai/recipes/nuxt/records-workspace.md +26 -8
- package/dist/ai/recipes/nuxt/upload-center.md +0 -1
- package/dist/ai/recipes/vue/approvals-inbox.md +0 -1
- package/dist/ai/recipes/vue/inline-edit-workspace.md +0 -1
- package/dist/ai/recipes/vue/layout-scaffold.md +5 -1
- package/dist/ai/recipes/vue/records-workspace.md +26 -8
- package/dist/ai/recipes/vue/upload-center.md +0 -1
- package/dist/ai/source/BbAlert.md +60 -2
- package/dist/ai/source/BbAvatar.md +3 -3
- package/dist/ai/source/BbBadge.md +60 -15
- package/dist/ai/source/BbBadgeButton.md +8 -2
- package/dist/ai/source/BbBaseButton.md +3 -1
- package/dist/ai/source/BbBaseCheckboxGroup.md +6 -2
- package/dist/ai/source/BbBaseDatePicker.md +3 -1
- package/dist/ai/source/BbBaseDatePickerInput.md +5 -1
- package/dist/ai/source/BbBaseInputContainer.md +52 -1
- package/dist/ai/source/BbBaseRadioGroup.md +4 -0
- package/dist/ai/source/BbBaseRating.md +3 -1
- package/dist/ai/source/BbBaseSelect.md +71 -16
- package/dist/ai/source/BbBaseSwitchGroup.md +4 -0
- package/dist/ai/source/BbBaseTimePickerInput.md +5 -1
- package/dist/ai/source/BbBreadcrumbs.md +31 -0
- package/dist/ai/source/BbButton.md +51 -24
- package/dist/ai/source/BbCheckbox.md +15 -1
- package/dist/ai/source/BbCheckboxGroup.md +2 -1
- package/dist/ai/source/BbCollapsible.md +7 -1
- package/dist/ai/source/BbColorInput.md +3 -4
- package/dist/ai/source/BbColorPalette.md +3 -4
- package/dist/ai/source/BbDatePicker.md +5 -1
- package/dist/ai/source/BbDatePickerInput.md +5 -1
- package/dist/ai/source/BbDialog.md +175 -19
- package/dist/ai/source/BbDropdown.md +376 -69
- package/dist/ai/source/BbDropdownGroup.md +330 -59
- package/dist/ai/source/BbForm.md +93 -5
- package/dist/ai/source/BbIcon.md +46 -36
- package/dist/ai/source/BbNumberInput.md +3 -4
- package/dist/ai/source/BbOffCanvas.md +474 -194
- package/dist/ai/source/BbPopover.md +24 -17
- package/dist/ai/source/BbProgress.md +2 -2
- package/dist/ai/source/BbRadio.md +15 -1
- package/dist/ai/source/BbRadioGroup.md +3 -1
- package/dist/ai/source/BbSelect.md +50 -2
- package/dist/ai/source/BbSelectPopover.md +171 -23
- package/dist/ai/source/BbSlider.md +3 -4
- package/dist/ai/source/BbSwitch.md +15 -1
- package/dist/ai/source/BbSwitchGroup.md +8 -5
- package/dist/ai/source/BbTable.md +5092 -1446
- package/dist/ai/source/BbTabs.md +6 -7
- package/dist/ai/source/BbTabsList.md +6 -7
- package/dist/ai/source/BbTabsPanes.md +6 -7
- package/dist/ai/source/BbTabsRoot.md +6 -7
- package/dist/ai/source/BbTag.md +3 -4
- package/dist/ai/source/BbTextInput.md +3 -4
- package/dist/ai/source/BbTextarea.md +3 -4
- package/dist/ai/source/BbTimePicker.md +4 -1
- package/dist/ai/source/BbTimePickerInput.md +5 -1
- package/dist/ai/source/BbToast.md +3 -1
- package/dist/ai/source/BbTooltip.md +5 -1
- package/dist/ai/source/CommonInputWrapper.md +4 -0
- package/dist/ai/source/CommonPopover.md +6 -0
- package/dist/ai/source/FlatListBox.md +11 -5
- package/dist/ai/source/GroupedListBox.md +7 -5
- package/dist/components/BbAlert/BbAlert.vue_vue_type_script_setup_true_lang.js +4 -4
- package/dist/components/BbAlert/types.d.ts +10 -1
- package/dist/components/BbAvatar/BbAvatar.vue.d.ts +1 -1
- package/dist/components/BbAvatar/BbAvatar.vue_vue_type_script_setup_true_lang.js +33 -33
- package/dist/components/BbBadge/BadgeBodyContent.vue_vue_type_script_setup_true_lang.js +22 -16
- package/dist/components/BbBadge/BbBadge.vue_vue_type_script_setup_true_lang.js +36 -15
- package/dist/components/BbBadge/badgeButtonContext.d.ts +21 -8
- package/dist/components/BbBadge/types.d.ts +8 -2
- package/dist/components/BbBaseButton/BbBaseButton.vue_vue_type_script_setup_true_lang.js +47 -47
- package/dist/components/BbBaseButton/RouterComponent.vue_vue_type_script_setup_true_lang.js +14 -14
- package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue_vue_type_script_setup_true_lang.js +30 -28
- package/dist/components/BbBaseCheckboxGroup/types.d.ts +2 -2
- package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue_vue_type_script_setup_true_lang.js +167 -167
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue.d.ts +9 -9
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue_vue_type_script_setup_true_lang.js +78 -78
- package/dist/components/BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue_vue_type_script_setup_true_lang.js +64 -64
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue.d.ts +1 -1
- package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue_vue_type_script_setup_true_lang.js +138 -138
- package/dist/components/BbBaseInputContainer/BbBaseInputContainer.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/BbBaseRadioGroup/BbBaseRadioGroup.vue_vue_type_script_setup_true_lang.js +24 -22
- package/dist/components/BbBaseRating/BbBaseRating.vue_vue_type_script_setup_true_lang.js +40 -40
- package/dist/components/BbBaseSelect/BbBaseSelect.vue_vue_type_script_setup_true_lang.js +74 -65
- package/dist/components/BbBaseSelect/types.d.ts +22 -0
- package/dist/components/BbBaseSlider/BbBaseSlider.vue_vue_type_script_setup_true_lang.js +5 -5
- package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue_vue_type_script_setup_true_lang.js +30 -28
- package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue.d.ts +1 -1
- package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue_vue_type_script_setup_true_lang.js +104 -104
- package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue_vue_type_script_setup_true_lang.js +35 -35
- package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +85 -81
- package/dist/components/BbCheckboxGroup/types.d.ts +2 -1
- package/dist/components/BbCollapsible/types.d.ts +7 -1
- package/dist/components/BbColorInput/BbColorInput.vue.d.ts +1 -1
- package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +18 -18
- package/dist/components/BbColorPalette/BbColorPalette.vue.d.ts +2 -2
- package/dist/components/BbColorPalette/BbColorPalette.vue_vue_type_script_setup_true_lang.js +50 -50
- package/dist/components/BbConfirm/BbConfirm.vue_vue_type_script_setup_true_lang.js +17 -17
- package/dist/components/BbDatePicker/BbDatePicker.vue.d.ts +1 -1
- package/dist/components/BbDatePicker/BbDatePicker.vue_vue_type_script_setup_true_lang.js +100 -100
- package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +21 -21
- package/dist/components/BbDialog/BbDialog.vue.d.ts +1 -1
- package/dist/components/BbDialog/BbDialog.vue_vue_type_script_setup_true_lang.js +133 -107
- package/dist/components/BbDialog/types.d.ts +29 -2
- package/dist/components/BbDropdown/AdaptiveDropdown.vue.d.ts +2 -0
- package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +99 -100
- package/dist/components/BbDropdown/BbDropdown.vue.d.ts +2 -2
- package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +208 -201
- package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +225 -208
- package/dist/components/BbDropdown/DropdownPipelineResolver.vue_vue_type_script_setup_true_lang.js +21 -21
- package/dist/components/BbDropdown/types.d.ts +20 -5
- package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +5 -5
- package/dist/components/BbIcon/BbIcon.vue_vue_type_script_setup_true_lang.js +46 -46
- package/dist/components/BbIcon/iconCache.d.ts +33 -0
- package/dist/components/BbIcon/iconCache.js +17 -0
- package/dist/components/BbNumberInput/BbNumberInput.vue.d.ts +1 -1
- package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +15 -15
- package/dist/components/BbOffCanvas/BbOffCanvas.vue.d.ts +1 -1
- package/dist/components/BbOffCanvas/BbOffCanvas.vue_vue_type_script_setup_true_lang.js +254 -208
- package/dist/components/BbOffCanvas/types.d.ts +30 -5
- package/dist/components/BbPagination/BbPagination.vue.d.ts +1 -1
- package/dist/components/BbPopover/BbPopover.vue.d.ts +2 -2
- package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +149 -146
- package/dist/components/BbPopover/types.d.ts +3 -2
- package/dist/components/BbRadioGroup/types.d.ts +3 -1
- package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +27 -23
- package/dist/components/BbSelect/types.d.ts +32 -0
- package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +221 -213
- package/dist/components/BbSlider/BbSlider.vue.d.ts +1 -1
- package/dist/components/BbSlider/BbSlider.vue_vue_type_script_setup_true_lang.js +20 -20
- package/dist/components/BbTable/BbTable.vue.d.ts +10 -4
- package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +1433 -600
- package/dist/components/BbTable/BbTableDataRow.d.ts +162 -0
- package/dist/components/BbTable/BbTableDataRow.js +136 -0
- package/dist/components/BbTable/BbTableExpandRow.d.ts +73 -0
- package/dist/components/BbTable/BbTableExpandRow.js +52 -0
- package/dist/components/BbTable/types.d.ts +324 -111
- package/dist/components/BbTable/utils.d.ts +92 -4
- package/dist/components/BbTable/utils.js +71 -36
- package/dist/components/BbTabs/types.d.ts +0 -8
- package/dist/components/BbTag/BbTag.vue.d.ts +1 -1
- package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +18 -18
- package/dist/components/BbTextInput/BbTextInput.vue.d.ts +1 -1
- package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +18 -18
- package/dist/components/BbTextarea/BbTextarea.vue.d.ts +1 -1
- package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +54 -54
- package/dist/components/BbTimePicker/BbTimePicker.vue.d.ts +1 -1
- package/dist/components/BbTimePicker/BbTimePicker.vue_vue_type_script_setup_true_lang.js +80 -80
- package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +61 -61
- package/dist/components/BbToast/BbToast.vue_vue_type_script_setup_true_lang.js +17 -17
- package/dist/components/BbToast/BbToastMessage.vue_vue_type_script_setup_true_lang.js +13 -13
- package/dist/components/BbTooltip/types.d.ts +5 -1
- package/dist/components/ChipsBox/ChipsBox.vue_vue_type_script_setup_true_lang.js +17 -17
- package/dist/components/ClearableButton/ClearableButton.vue_vue_type_script_setup_true_lang.js +5 -5
- package/dist/components/CommonPopover/CommonPopover.vue_vue_type_script_setup_true_lang.js +2 -1
- package/dist/components/FlatListBox/FlatListBox.vue_vue_type_script_setup_true_lang.js +83 -83
- package/dist/components/GroupedListBox/GroupedListBox.vue_vue_type_script_setup_true_lang.js +56 -56
- package/dist/composables/useBaseOptions.js +30 -20
- package/dist/composables/useBbConfig.d.ts +27 -6
- package/dist/composables/useBbConfig.js +8 -2
- package/dist/composables/useConfig.d.ts +59 -0
- package/dist/composables/useConfig.js +9 -0
- package/dist/composables/useItemsGetter.d.ts +11 -0
- package/dist/composables/useItemsGetter.js +44 -18
- package/dist/composables/useLocale.js +10 -7
- package/dist/composables/useMobile.js +5 -5
- package/dist/composables/usePrefill.d.ts +21 -2
- package/dist/composables/usePrefill.js +25 -19
- package/dist/composables/useSsrState.d.ts +20 -0
- package/dist/composables/useSsrState.js +13 -0
- package/dist/composables/useTableWidthContext.d.ts +24 -4
- package/dist/composables/useTableWidthContext.js +31 -28
- package/dist/composables/useToast.js +5 -5
- package/dist/deprecation/ai-deprecations.json.d.ts +121 -11
- package/dist/deprecation/ai-deprecations.json.js +1 -1
- package/dist/directives/bbDropdown.d.ts +15 -4
- package/dist/directives/bbDropdown.js +31 -9
- package/dist/directives/createPopoverDirective.d.ts +62 -0
- package/dist/directives/createPopoverDirective.js +63 -23
- package/dist/i18n/locales/cs.json +4 -1
- package/dist/i18n/locales/da.json +4 -1
- package/dist/i18n/locales/de.json +4 -1
- package/dist/i18n/locales/el.json +4 -1
- package/dist/i18n/locales/en.json +4 -1
- package/dist/i18n/locales/es.json +4 -1
- package/dist/i18n/locales/fi.json +4 -1
- package/dist/i18n/locales/fr.json +4 -1
- package/dist/i18n/locales/hu.json +4 -1
- package/dist/i18n/locales/it.json +4 -1
- package/dist/i18n/locales/ja.json +4 -1
- package/dist/i18n/locales/ko.json +4 -1
- package/dist/i18n/locales/nb.json +4 -1
- package/dist/i18n/locales/nl.json +4 -1
- package/dist/i18n/locales/pl.json +4 -1
- package/dist/i18n/locales/pt.json +4 -1
- package/dist/i18n/locales/ro.json +4 -1
- package/dist/i18n/locales/ru.json +4 -1
- package/dist/i18n/locales/sv.json +4 -1
- package/dist/i18n/locales/tr.json +4 -1
- package/dist/i18n/locales/uk.json +4 -1
- package/dist/i18n/locales/zh-cn.json +4 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.js +69 -67
- package/dist/llms-full.txt +3997 -1458
- package/dist/llms-medium.txt +140 -73
- package/dist/llms.txt +7 -6
- package/dist/locale-blueprint.json +4 -1
- package/dist/nuxt-auto-imports.d.ts +100 -0
- package/dist/nuxt-auto-imports.js +55 -0
- package/dist/nuxt-module.d.ts +22 -1
- package/dist/nuxt.js +22 -8
- package/dist/plugin.d.ts +10 -1
- package/dist/plugin.js +20 -19
- package/dist/runtime/nuxt-plugin.js +28 -21
- package/dist/styles.css +1 -1
- package/dist/utilities/misc/listboxMetrics.d.ts +3 -3
- package/dist/utilities/misc/listboxMetrics.js +2 -2
- package/dist/utilities/misc/ssrStateInjectionKey.d.ts +42 -0
- package/dist/utilities/misc/ssrStateInjectionKey.js +4 -0
- package/dist/validated/BbForm.vue_vue_type_script_setup_true_lang.js +45 -27
- package/dist/validated/BbSelect.vue.d.ts +2 -0
- package/dist/validated/BbSelect.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/validated/useValidatedField.js +25 -23
- package/dist/vite.js +7 -3
- package/llms.txt +8 -7
- package/package.json +2 -2
- package/scripts/lib/eslint-plugin.d.ts +19 -1
- package/scripts/lib/eslint-plugin.mjs +155 -14
- package/scripts/lib/html-attributes.mjs +91 -0
- package/scripts/lib/validate-bb-markup.mjs +59 -11
- package/dist/assets/svgs/sort.svg_raw.js +0 -4
- package/dist/components/BbBadge/BadgeAppendIcon.vue.d.ts +0 -3
- package/dist/components/BbBadge/BadgeAppendIcon.vue.js +0 -5
- package/dist/components/BbBadge/BadgeAppendIcon.vue_vue_type_script_setup_true_lang.js +0 -22
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { MappedItem } from './types';
|
|
2
|
+
import { PropType, Slots, VNode } from 'vue';
|
|
3
|
+
/**
|
|
4
|
+
* Everything a body row needs from the table that is NOT about the row itself.
|
|
5
|
+
* It is assembled ONCE, in a computed, so its identity survives a render of the
|
|
6
|
+
* table — which is the whole point of this component (see below).
|
|
7
|
+
*
|
|
8
|
+
* Shared with `BbTableExpandRow`, which needs the same identity for the same
|
|
9
|
+
* reason. It keeps the data row's name because that is where the shape and the
|
|
10
|
+
* reasoning live; the expand row uses the four fields it needs and ignores the
|
|
11
|
+
* rest.
|
|
12
|
+
*/
|
|
13
|
+
export type DataRowContext = {
|
|
14
|
+
/** The table's own slot bag, forwarded by reference. See the note below. */
|
|
15
|
+
slots: Slots;
|
|
16
|
+
selectable: boolean | ((item: any) => boolean) | undefined;
|
|
17
|
+
multiple: boolean;
|
|
18
|
+
readonly: boolean;
|
|
19
|
+
actions: boolean;
|
|
20
|
+
keyboardNavigation: boolean;
|
|
21
|
+
contentInert: boolean;
|
|
22
|
+
/** `aria-rowindex` is only meaningful once the pager facts are known. */
|
|
23
|
+
hasRowIndex: boolean;
|
|
24
|
+
/** Tracks a full-width row spans — the expand row's `aria-colspan`. */
|
|
25
|
+
columnSpan: number;
|
|
26
|
+
/** Shared `name` for the radio group. */
|
|
27
|
+
inputName: string;
|
|
28
|
+
/** Passed through verbatim — a `ColumnClasses` may legitimately be a function. */
|
|
29
|
+
tdClass: unknown;
|
|
30
|
+
/**
|
|
31
|
+
* The width-driven state classes of each column's data cells, already
|
|
32
|
+
* joined — the table works out `--resized` / `--nowrap` / `--clip` once per
|
|
33
|
+
* column so the row does one `Map` lookup per cell instead of three
|
|
34
|
+
* membership tests.
|
|
35
|
+
*/
|
|
36
|
+
cellClasses: Map<string, string>;
|
|
37
|
+
sortOrders: Map<string, 'asc' | 'desc'>;
|
|
38
|
+
/** The virtualizer's measurer, or a no-op on a plain table. */
|
|
39
|
+
measureRow: (el: unknown) => void;
|
|
40
|
+
onInputChange: (item: MappedItem) => void;
|
|
41
|
+
onRowFocus: (index: number) => void;
|
|
42
|
+
onRowKeydown: (event: KeyboardEvent, index: number) => void;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* One data row — the same markup the table used to render inline, moved behind
|
|
46
|
+
* a component boundary so that a row which has not changed does NO WORK when
|
|
47
|
+
* the table re-renders.
|
|
48
|
+
*
|
|
49
|
+
* WHY THIS EXISTS. A `virtual` table re-renders its body on every window move,
|
|
50
|
+
* and the body's `v-for` re-renders EVERY mounted row, not just the one or two
|
|
51
|
+
* that arrived: a notch scroll moves the window by ~2 rows and used to rebuild
|
|
52
|
+
* all 30, sixteen cells and a consumer slot call each, ~300 child-component
|
|
53
|
+
* prop updates in all. The window moving is not even the only trigger — a
|
|
54
|
+
* table's parent re-renders for reasons of its own, and any prop of the table
|
|
55
|
+
* whose identity changed (an array or object literal in the parent's template)
|
|
56
|
+
* forces the same full-body render with nothing at all to show for it.
|
|
57
|
+
*
|
|
58
|
+
* With the row as a component, that render costs one small vnode per row and a
|
|
59
|
+
* handful of `!==` comparisons: every prop here is either the row's own
|
|
60
|
+
* projection (`item`, stable until the item's state changes) or the shared
|
|
61
|
+
* `context` (one computed, stable until a table-level setting changes), so
|
|
62
|
+
* Vue's `shouldUpdateComponent` bails and the subtree is never touched. The
|
|
63
|
+
* rows that DID change — the ones that arrived, the one focus moved to, the
|
|
64
|
+
* one that was selected — re-render exactly as before.
|
|
65
|
+
*
|
|
66
|
+
* WHY NOT `v-memo`, which is the usual answer to "skip an unchanged row": its
|
|
67
|
+
* cache is indexed by POSITION in the `v-for`, and a window that moves shifts
|
|
68
|
+
* every row's position, so every entry misses. And it would be wrong here even
|
|
69
|
+
* if it hit: the cells call the CONSUMER's slots, whose reactive dependencies
|
|
70
|
+
* we cannot enumerate into a memo key — a slot reading a ref of its own would
|
|
71
|
+
* freeze. A component boundary has no such problem, because the slot runs
|
|
72
|
+
* inside THIS component's render effect and that effect subscribes to whatever
|
|
73
|
+
* the slot happens to read.
|
|
74
|
+
*
|
|
75
|
+
* WHY THE SLOTS COME IN AS A PROP rather than as this component's own slots:
|
|
76
|
+
* forwarding them (`<template v-for="(_, name) in $slots" #[name]>`) compiles
|
|
77
|
+
* to dynamic slots, and a vnode with dynamic slots is FORCED to update — it
|
|
78
|
+
* would defeat the only thing this component is for. `renderSlot` does not
|
|
79
|
+
* care whose bag it is handed.
|
|
80
|
+
*/
|
|
81
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
82
|
+
context: {
|
|
83
|
+
type: PropType<DataRowContext>;
|
|
84
|
+
required: true;
|
|
85
|
+
};
|
|
86
|
+
item: {
|
|
87
|
+
type: PropType<MappedItem>;
|
|
88
|
+
required: true;
|
|
89
|
+
};
|
|
90
|
+
/** Index into the item list — what the keyboard grammar counts in. */
|
|
91
|
+
index: {
|
|
92
|
+
type: NumberConstructor;
|
|
93
|
+
required: true;
|
|
94
|
+
};
|
|
95
|
+
/** Index into the flat row list — `data-index`, what the virtualizer reads. */
|
|
96
|
+
virtualIndex: {
|
|
97
|
+
type: NumberConstructor;
|
|
98
|
+
required: true;
|
|
99
|
+
};
|
|
100
|
+
/** This row is the body's single tab stop. */
|
|
101
|
+
active: {
|
|
102
|
+
type: BooleanConstructor;
|
|
103
|
+
default: boolean;
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* Selection resolved by the table (`selectAll` and the unselected set
|
|
107
|
+
* included), passed as a value so the row does not re-derive it per cell.
|
|
108
|
+
*/
|
|
109
|
+
selected: {
|
|
110
|
+
type: BooleanConstructor;
|
|
111
|
+
default: boolean;
|
|
112
|
+
};
|
|
113
|
+
/** `isSelectToggleBlocked`, likewise resolved once by the table. */
|
|
114
|
+
selectBlocked: {
|
|
115
|
+
type: BooleanConstructor;
|
|
116
|
+
default: boolean;
|
|
117
|
+
};
|
|
118
|
+
}>, () => VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
119
|
+
[key: string]: any;
|
|
120
|
+
}>, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
121
|
+
context: {
|
|
122
|
+
type: PropType<DataRowContext>;
|
|
123
|
+
required: true;
|
|
124
|
+
};
|
|
125
|
+
item: {
|
|
126
|
+
type: PropType<MappedItem>;
|
|
127
|
+
required: true;
|
|
128
|
+
};
|
|
129
|
+
/** Index into the item list — what the keyboard grammar counts in. */
|
|
130
|
+
index: {
|
|
131
|
+
type: NumberConstructor;
|
|
132
|
+
required: true;
|
|
133
|
+
};
|
|
134
|
+
/** Index into the flat row list — `data-index`, what the virtualizer reads. */
|
|
135
|
+
virtualIndex: {
|
|
136
|
+
type: NumberConstructor;
|
|
137
|
+
required: true;
|
|
138
|
+
};
|
|
139
|
+
/** This row is the body's single tab stop. */
|
|
140
|
+
active: {
|
|
141
|
+
type: BooleanConstructor;
|
|
142
|
+
default: boolean;
|
|
143
|
+
};
|
|
144
|
+
/**
|
|
145
|
+
* Selection resolved by the table (`selectAll` and the unselected set
|
|
146
|
+
* included), passed as a value so the row does not re-derive it per cell.
|
|
147
|
+
*/
|
|
148
|
+
selected: {
|
|
149
|
+
type: BooleanConstructor;
|
|
150
|
+
default: boolean;
|
|
151
|
+
};
|
|
152
|
+
/** `isSelectToggleBlocked`, likewise resolved once by the table. */
|
|
153
|
+
selectBlocked: {
|
|
154
|
+
type: BooleanConstructor;
|
|
155
|
+
default: boolean;
|
|
156
|
+
};
|
|
157
|
+
}>> & Readonly<{}>, {
|
|
158
|
+
selected: boolean;
|
|
159
|
+
active: boolean;
|
|
160
|
+
selectBlocked: boolean;
|
|
161
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
162
|
+
export default _default;
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import e from "../BbBaseCheckbox/BbBaseCheckbox.vue.js";
|
|
2
|
+
import t from "../BbBaseRadio/BbBaseRadio.vue.js";
|
|
3
|
+
import { createTextVNode as n, defineComponent as r, h as i, renderSlot as a, toDisplayString as o } from "vue";
|
|
4
|
+
//#region src/components/BbTable/BbTableDataRow.ts
|
|
5
|
+
var s = r({
|
|
6
|
+
name: "BbTableDataRow",
|
|
7
|
+
props: {
|
|
8
|
+
context: {
|
|
9
|
+
type: Object,
|
|
10
|
+
required: !0
|
|
11
|
+
},
|
|
12
|
+
item: {
|
|
13
|
+
type: Object,
|
|
14
|
+
required: !0
|
|
15
|
+
},
|
|
16
|
+
index: {
|
|
17
|
+
type: Number,
|
|
18
|
+
required: !0
|
|
19
|
+
},
|
|
20
|
+
virtualIndex: {
|
|
21
|
+
type: Number,
|
|
22
|
+
required: !0
|
|
23
|
+
},
|
|
24
|
+
active: {
|
|
25
|
+
type: Boolean,
|
|
26
|
+
default: !1
|
|
27
|
+
},
|
|
28
|
+
selected: {
|
|
29
|
+
type: Boolean,
|
|
30
|
+
default: !1
|
|
31
|
+
},
|
|
32
|
+
selectBlocked: {
|
|
33
|
+
type: Boolean,
|
|
34
|
+
default: !1
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
setup(r) {
|
|
38
|
+
let s = () => r.context.onRowFocus(r.index), c = (e) => r.context.onRowKeydown(e, r.index), l = () => r.context.onInputChange(r.item), u = () => {
|
|
39
|
+
let { context: n, item: o } = r;
|
|
40
|
+
return i("div", {
|
|
41
|
+
class: ["bb-table-data__cell bb-table-data__cell--select", n.tdClass],
|
|
42
|
+
role: "cell"
|
|
43
|
+
}, a(n.slots, "select", {
|
|
44
|
+
checked: r.selected,
|
|
45
|
+
disabled: r.selectBlocked,
|
|
46
|
+
inputName: n.inputName,
|
|
47
|
+
item: o.item,
|
|
48
|
+
readonly: !!n.readonly,
|
|
49
|
+
toggleSelected: o.toggleSelected,
|
|
50
|
+
value: o.value
|
|
51
|
+
}, () => [n.multiple ? i("label", { class: ["bb-table-check__label", { "bb-table-check__label--disabled": o.disabled }] }, [i(e, {
|
|
52
|
+
checked: r.selected,
|
|
53
|
+
class: "bb-table-check",
|
|
54
|
+
disabled: o.disabled,
|
|
55
|
+
readonly: n.readonly,
|
|
56
|
+
onChange: l
|
|
57
|
+
}), i("span", { class: "bb-table-check__label-text sr-only" }, o.accessibleLabel)]) : i("label", { class: ["bb-table-radio__label", { "bb-table-radio__label--disabled": o.disabled }] }, [i(t, {
|
|
58
|
+
checked: o.selected,
|
|
59
|
+
class: "bb-table-radio",
|
|
60
|
+
disabled: o.disabled,
|
|
61
|
+
name: n.inputName,
|
|
62
|
+
readonly: n.readonly,
|
|
63
|
+
value: o.value,
|
|
64
|
+
onChange: l
|
|
65
|
+
}), i("span", { class: "bb-table-radio__label-text sr-only" }, o.accessibleLabel)])]));
|
|
66
|
+
}, d = () => {
|
|
67
|
+
let { context: e, item: t } = r, s = t.cols.length - 1;
|
|
68
|
+
return t.cols.map((c, l) => i("div", {
|
|
69
|
+
key: c.key,
|
|
70
|
+
class: [
|
|
71
|
+
"bb-table-data__cell",
|
|
72
|
+
c.classes,
|
|
73
|
+
e.cellClasses.get(c.key),
|
|
74
|
+
{
|
|
75
|
+
"bb-table-data__cell--edge-start": l === 0,
|
|
76
|
+
"bb-table-data__cell--edge-end": l === s
|
|
77
|
+
}
|
|
78
|
+
],
|
|
79
|
+
role: "cell"
|
|
80
|
+
}, a(e.slots, c.slotName, {
|
|
81
|
+
classes: c.classes,
|
|
82
|
+
content: c.content,
|
|
83
|
+
expandProps: t.expandProps,
|
|
84
|
+
expanded: t.expanded,
|
|
85
|
+
highlighted: t.highlighted,
|
|
86
|
+
item: t.item,
|
|
87
|
+
selected: r.selected,
|
|
88
|
+
sortOrder: e.sortOrders.get(c.key) ?? null,
|
|
89
|
+
toggleExpanded: t.toggleExpanded,
|
|
90
|
+
toggleHighlighted: t.toggleHighlighted,
|
|
91
|
+
toggleSelected: t.toggleSelected,
|
|
92
|
+
value: t.value
|
|
93
|
+
}, () => [n(o(c.content))])));
|
|
94
|
+
}, f = () => {
|
|
95
|
+
let { context: e, item: t } = r;
|
|
96
|
+
return i("div", {
|
|
97
|
+
class: ["bb-table__cell bb-table__cell--actions", e.tdClass],
|
|
98
|
+
role: "cell"
|
|
99
|
+
}, a(e.slots, "actions", {
|
|
100
|
+
expandProps: t.expandProps,
|
|
101
|
+
expanded: t.expanded,
|
|
102
|
+
highlighted: t.highlighted,
|
|
103
|
+
item: t.item,
|
|
104
|
+
selected: r.selected,
|
|
105
|
+
toggleExpanded: t.toggleExpanded,
|
|
106
|
+
toggleHighlighted: t.toggleHighlighted,
|
|
107
|
+
toggleSelected: t.toggleSelected,
|
|
108
|
+
value: t.value
|
|
109
|
+
}));
|
|
110
|
+
};
|
|
111
|
+
return () => {
|
|
112
|
+
let { context: e, item: t } = r, n = [];
|
|
113
|
+
return e.selectable && n.push(u()), n.push(...d()), e.actions && n.push(f()), i("div", {
|
|
114
|
+
ref: e.measureRow,
|
|
115
|
+
"aria-current": t.highlighted ? "true" : void 0,
|
|
116
|
+
"aria-rowindex": e.hasRowIndex && t.rowIndex ? t.rowIndex : void 0,
|
|
117
|
+
class: [
|
|
118
|
+
"bb-table-data__row",
|
|
119
|
+
t.rowClasses,
|
|
120
|
+
{ "bb-table-data__row--highlighted": t.highlighted }
|
|
121
|
+
],
|
|
122
|
+
"data-index": r.virtualIndex,
|
|
123
|
+
inert: e.contentInert,
|
|
124
|
+
role: "row",
|
|
125
|
+
tabindex: e.keyboardNavigation ? r.active ? 0 : -1 : void 0,
|
|
126
|
+
onClick: t.onRowClick,
|
|
127
|
+
onContextmenu: t.onRowContextMenu,
|
|
128
|
+
onDblclick: t.onRowDblClick,
|
|
129
|
+
onFocus: s,
|
|
130
|
+
onKeydown: c
|
|
131
|
+
}, n);
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
//#endregion
|
|
136
|
+
export { s as default };
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { DataRowContext } from './BbTableDataRow';
|
|
2
|
+
import { MappedItem } from './types';
|
|
3
|
+
import { PropType, VNode } from 'vue';
|
|
4
|
+
/**
|
|
5
|
+
* One expand row — the row an open item drops below itself, holding the
|
|
6
|
+
* consumer's `#expand` slot.
|
|
7
|
+
*
|
|
8
|
+
* WHY THIS EXISTS: the same reason `BbTableDataRow` does, for the row kind that
|
|
9
|
+
* did not get the treatment. Data rows moved behind a component boundary so
|
|
10
|
+
* that a table render costs an unchanged row nothing; the expand row stayed in
|
|
11
|
+
* the table's own render function, so every one of those renders re-invoked the
|
|
12
|
+
* CONSUMER's `#expand` slot for every open row on screen — and what that slot
|
|
13
|
+
* usually contains is a whole nested table. Measured on the playground with
|
|
14
|
+
* three rows open, dragging: 57 invocations across 20 scroll steps, i.e. all
|
|
15
|
+
* three nested tables rebuilt their vnode trees on essentially every step,
|
|
16
|
+
* having changed in no way whatsoever. (A `virtual` table re-renders its body
|
|
17
|
+
* on every window move, and there are one and a half to two of those per step.)
|
|
18
|
+
*
|
|
19
|
+
* Its props are the same shape and the same identities as the data row's, so
|
|
20
|
+
* `shouldUpdateComponent` bails for exactly the same reason: `context` is one
|
|
21
|
+
* computed, `item` comes from `mappedItemAt`'s memo, and the rest are scalars.
|
|
22
|
+
*
|
|
23
|
+
* The slot bag arrives inside `context` rather than as this component's own
|
|
24
|
+
* slots — forwarding would compile to dynamic slots, and a vnode with those is
|
|
25
|
+
* forced to update, which would defeat the whole point. See the long note at
|
|
26
|
+
* the top of `BbTableDataRow`.
|
|
27
|
+
*
|
|
28
|
+
* The markup is the table's, not the consumer's: a full-width row whose single
|
|
29
|
+
* cell spans every column, carrying the `id` that the expand controller's
|
|
30
|
+
* `aria-controls` points at.
|
|
31
|
+
*/
|
|
32
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
33
|
+
context: {
|
|
34
|
+
type: PropType<DataRowContext>;
|
|
35
|
+
required: true;
|
|
36
|
+
};
|
|
37
|
+
item: {
|
|
38
|
+
type: PropType<MappedItem>;
|
|
39
|
+
required: true;
|
|
40
|
+
};
|
|
41
|
+
/** Index into the flat row list — `data-index`, what the virtualizer reads. */
|
|
42
|
+
virtualIndex: {
|
|
43
|
+
type: NumberConstructor;
|
|
44
|
+
required: true;
|
|
45
|
+
};
|
|
46
|
+
/** Selection resolved by the table, as on the data row. */
|
|
47
|
+
selected: {
|
|
48
|
+
type: BooleanConstructor;
|
|
49
|
+
default: boolean;
|
|
50
|
+
};
|
|
51
|
+
}>, () => VNode, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
52
|
+
context: {
|
|
53
|
+
type: PropType<DataRowContext>;
|
|
54
|
+
required: true;
|
|
55
|
+
};
|
|
56
|
+
item: {
|
|
57
|
+
type: PropType<MappedItem>;
|
|
58
|
+
required: true;
|
|
59
|
+
};
|
|
60
|
+
/** Index into the flat row list — `data-index`, what the virtualizer reads. */
|
|
61
|
+
virtualIndex: {
|
|
62
|
+
type: NumberConstructor;
|
|
63
|
+
required: true;
|
|
64
|
+
};
|
|
65
|
+
/** Selection resolved by the table, as on the data row. */
|
|
66
|
+
selected: {
|
|
67
|
+
type: BooleanConstructor;
|
|
68
|
+
default: boolean;
|
|
69
|
+
};
|
|
70
|
+
}>> & Readonly<{}>, {
|
|
71
|
+
selected: boolean;
|
|
72
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
73
|
+
export default _default;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { defineComponent as e, h as t, renderSlot as n } from "vue";
|
|
2
|
+
//#region src/components/BbTable/BbTableExpandRow.ts
|
|
3
|
+
var r = e({
|
|
4
|
+
name: "BbTableExpandRow",
|
|
5
|
+
props: {
|
|
6
|
+
context: {
|
|
7
|
+
type: Object,
|
|
8
|
+
required: !0
|
|
9
|
+
},
|
|
10
|
+
item: {
|
|
11
|
+
type: Object,
|
|
12
|
+
required: !0
|
|
13
|
+
},
|
|
14
|
+
virtualIndex: {
|
|
15
|
+
type: Number,
|
|
16
|
+
required: !0
|
|
17
|
+
},
|
|
18
|
+
selected: {
|
|
19
|
+
type: Boolean,
|
|
20
|
+
default: !1
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
setup(e) {
|
|
24
|
+
return () => {
|
|
25
|
+
let { context: r, item: i } = e;
|
|
26
|
+
return t("div", {
|
|
27
|
+
"aria-rowindex": r.hasRowIndex && i.rowIndex ? i.rowIndex + 1 : void 0,
|
|
28
|
+
class: ["bb-table-expand__row", { "bb-table-expand__row--highlighted": i.highlighted }],
|
|
29
|
+
"data-index": e.virtualIndex,
|
|
30
|
+
id: `expanded_${i.valueHash}`,
|
|
31
|
+
ref: r.measureRow,
|
|
32
|
+
role: "row"
|
|
33
|
+
}, [t("div", {
|
|
34
|
+
"aria-colspan": r.columnSpan,
|
|
35
|
+
class: "bb-table-expand__cell",
|
|
36
|
+
role: "cell"
|
|
37
|
+
}, n(r.slots, "expand", {
|
|
38
|
+
expandProps: i.expandProps,
|
|
39
|
+
expanded: i.expanded,
|
|
40
|
+
highlighted: i.highlighted,
|
|
41
|
+
item: i.item,
|
|
42
|
+
selected: e.selected,
|
|
43
|
+
toggleExpanded: i.toggleExpanded,
|
|
44
|
+
toggleHighlighted: i.toggleHighlighted,
|
|
45
|
+
toggleSelected: i.toggleSelected,
|
|
46
|
+
value: i.value
|
|
47
|
+
}))]);
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
//#endregion
|
|
52
|
+
export { r as default };
|