@adyen/bento-mcp 0.6.0 → 0.7.0
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/CHANGELOG.md +11 -0
- package/README.md +7 -6
- package/bin/add-skill.js +12 -1
- package/dist/assets/components/anchor-scroller/anchor-scroller.vue +1 -1
- package/dist/assets/components/anchor-scroller/components/anchor-scroller-list/anchor-scroller-list.types.ts +1 -1
- package/dist/assets/components/anchor-scroller/components/anchor-scroller-list/anchor-scroller-list.vue +1 -1
- package/dist/assets/components/button/button.docs.mdx +24 -0
- package/dist/assets/components/button/button.vue +1 -1
- package/dist/assets/components/button/components/button-actions/button-actions.docs.mdx +14 -1
- package/dist/assets/components/date-range-picker/date-range-picker.vue +1 -1
- package/dist/assets/components/draggable/components/draggable-handle/draggable-handle.vue +1 -1
- package/dist/assets/components/dropdown/components/dropdown-options-container/dropdown-options-container.vue +1 -1
- package/dist/assets/components/dropdown/dropdown.docs.mdx +58 -0
- package/dist/assets/components/dropdown/dropdown.stories.ts +1 -1
- package/dist/assets/components/dropdown/dropdown.vue +1 -1
- package/dist/assets/components/filter-bar/components/range-filter/range-filter.types.ts +1 -0
- package/dist/assets/components/filter-bar/components/range-filter/range-filter.vue +1 -1
- package/dist/assets/components/filter-bar/filter-bar.docs.mdx +74 -1
- package/dist/assets/components/filter-bar/filter-bar.stories.ts +1 -1
- package/dist/assets/components/filter-bar/filter-bar.types.ts +1 -1
- package/dist/assets/components/filter-bar/filter-bar.vue +1 -1
- package/dist/assets/components/header/header.docs.mdx +8 -0
- package/dist/assets/components/header-with-views/header-with-views.docs.mdx +12 -0
- package/dist/assets/components/input-field/input-field.vue +1 -1
- package/dist/assets/components/internal/listbox/components/listbox-lazy-load/listbox-lazy-load.types.ts +1 -0
- package/dist/assets/components/internal/listbox/components/listbox-lazy-load/listbox-lazy-load.vue +1 -0
- package/dist/assets/components/internal/listbox/components/listbox-multi-select/components/listbox-multi-select-options/components/listbox-multi-select-category/listbox-multi-select-category.vue +1 -1
- package/dist/assets/components/internal/listbox/components/listbox-multi-select/components/listbox-multi-select-options/components/listbox-multi-select-nested-lazy-load/listbox-multi-select-nested-lazy-load.types.ts +1 -0
- package/dist/assets/components/internal/listbox/components/listbox-multi-select/components/listbox-multi-select-options/components/listbox-multi-select-nested-lazy-load/listbox-multi-select-nested-lazy-load.vue +1 -0
- package/dist/assets/components/internal/listbox/components/listbox-multi-select/components/listbox-multi-select-options/listbox-multi-select-options.vue +1 -1
- package/dist/assets/components/internal/listbox/components/listbox-multi-select/listbox-multi-select.vue +1 -1
- package/dist/assets/components/internal/listbox/components/listbox-single-select/listbox-single-select.vue +1 -1
- package/dist/assets/components/internal/listbox/listbox.vue +1 -1
- package/dist/assets/components/table-of-contents/components/table-of-contents-list/table-of-contents-list.types.ts +1 -0
- package/dist/assets/components/table-of-contents/components/table-of-contents-list/table-of-contents-list.vue +1 -0
- package/dist/assets/components/table-of-contents/table-of-contents.docs.mdx +34 -0
- package/dist/assets/components/table-of-contents/table-of-contents.stories.ts +1 -0
- package/dist/assets/components/table-of-contents/table-of-contents.types.ts +1 -0
- package/dist/assets/components/table-of-contents/table-of-contents.vue +1 -0
- package/dist/assets/components.json +1 -0
- package/dist/assets/composables/use-numeric-input/use-numeric-input.types.ts +1 -0
- package/dist/assets/composables/use-section-navigation-keyboard/use-section-navigation-keyboard.types.ts +1 -0
- package/dist/assets/deprecations.md +136 -136
- package/dist/assets/index.ts +1 -1
- package/dist/assets/usage.json +80 -79
- package/dist/assets/utils/ts/scroll-to-section/scroll-to-section.types.ts +1 -0
- package/dist/main.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
<template> <div :id="id" ref="listboxRef" v-bento-keyboard-navigation-directive class="b-listbox" tabindex="-1" v-bind="listboxContainerAttributes" :style="containerProps?.style" data-testid="listbox-container" @scroll="onListboxContainerScroll" > <div v-bind="wrapperProps"> <!-- Loading filtered items loading --> <div v-if="componentLoading" class="b-listbox__loading-filtered-items"> <bento-loading-indicator /> </div> <!-- Empty search message --> <div v-else-if="isSearchResultEmpty" class="b-listbox__empty-search-message"> <bento-empty-state v-if="emptyState" v-bind="limitedEmptyStateProps" /> <bento-typography v-else el="span">{{ noResultsMessage }}</bento-typography> </div> <template v-else> <!-- Multi select --> <template v-if="multiple"> <bento-listbox-multi-select ref="listboxItemRef" :has-more-items="hasMoreItems" v-bind="ariaAttributes" :items="items" :lazy-load-type="lazyLoadType" :static-categories="staticCategories" :selected-values="selectedValue" :searching="searching" :is-option-disabled="isOptionDisabled" v-on="listboxListeners" > <template v-for="(_, innerSlot) of slots" #[innerSlot]="scope"> <slot :name="innerSlot" v-bind="scope" /> </template> </bento-listbox-multi-select> </template> <!-- Single select --> <template v-else> <bento-listbox-single-select ref="listboxItemRef" :items="virtualisedItems" :total-item-count="totalItemCount" :scroll-to-index="scrollToIndex" :virtual-scroll-start-index="virtualScrollStartIndex" v-bind="ariaAttributes" :selected-value="selectedValue" :static-categories="staticCategories" :is-option-disabled="isOptionDisabled" v-on="listboxListeners" > <template v-for="(_, innerSlot) of slots" #[innerSlot]="scope"> <slot :name="innerSlot" v-bind="scope" /> </template> </bento-listbox-single-select> </template> <!-- Lazy Loading --> <div v-if="shouldDisplayShowMoreButton" class="b-listbox__lazy-load"> <bento-loading-button :state="loadingButtonState" variant="secondary" @click.capture="emitShowMore"> {{ showMoreButtonText }} </bento-loading-button> </div> <div v-else-if="loading" class="b-listbox__lazy-load"> <bento-loading-indicator /> </div> </template> </div> </div> </template> <script lang="ts"> import { computed, defineComponent, type PropType, ref, toRef } from 'vue'; import { type BentoListboxEmptyStateProps, BentoListboxEvent, type BentoListboxIsOptionDisabled, BentoListboxLazyLoadType, type BentoListboxOptionItem, type BentoListboxOptions, type BentoListboxVirtulisationOptions, } from '@/types/listbox'; import { BentoKeyboardNavigationKeyDownEvent } from '@/types/keyboard-navigation'; import { BentoKeyboardNavigationDirective } from '@/directives'; import { BentoListboxSingleSelect } from './components/listbox-single-select'; import { BentoListboxMultiSelect } from './components/listbox-multi-select'; import { BentoTypography } from '@/components/typography'; import { BentoLoadingIndicator } from '@/components/loading-indicator'; import { BentoLoadingButton, BentoLoadingButtonState } from '@/components/button'; import { BentoEmptyState } from '@/components/empty-state'; import { useI18n } from '@/utils/ts/i18n'; import { debounce } from '@/utils/ts/debounce'; import { useVirtualList } from '@/composables/use-virtual-list'; import type { HTMLAttributes } from 'vue/types/jsx.d.ts'; import messages from './messages.json'; type MessageSchema = (typeof messages)['en-US']; const DEFAULT_DROPDOWN_ITEM_HEIGHT = 36; /** * Listbox container. * It lists all the available options. * * @example * <bento-listbox * v-slot="{label, value}" * :id="listboxOptionsContainerId" * :aria-label="ariaLabel" * :disabled="disabled" * :multiple="multiple" * :selected="value" * :isOptionDisabled="option => option.value === 2" * :items="[{ * { label: 'Option 1', value: 1 }, * { label: 'Option 2', value: 2 }, * }]" * @select="onOptionSelected" * > * </bento-listbox> */ export default defineComponent({ name: 'bento-listbox', components: { BentoEmptyState, BentoListboxSingleSelect, BentoListboxMultiSelect, BentoTypography, BentoLoadingIndicator, BentoLoadingButton, }, directives: { BentoKeyboardNavigationDirective }, i18n: { messages }, props: { /** * Defines a string value that labels an interactive element. */ ariaLabel: { type: String, default: null }, /** * Empty state props that will be used with the inner empty state component to be displayed when no search results are found. */ emptyState: { type: Object as PropType<BentoListboxEmptyStateProps>, default: undefined, }, /** * Indicates whether there are more items to load */ hasMoreItems: { type: Boolean, default: false }, /** * Identifies the listbox whose contents are controlled by the the combobox on which the aria-controls attribute is set. */ id: { type: String, required: true }, /** * Function that allows the options to be disabled * * @type {BentoListboxIsOptionDisabled} * @param {BentoListboxOptionItem} option - Listbox option object * @param {string} option.label - Option's label text * @param {string|number} option.value - Option's value * @param {unknown} option.data - Option's extra data to be passed to the default slot */ isOptionDisabled: { type: Function as PropType<BentoListboxIsOptionDisabled>, default: () => undefined, }, /** * The option elements to populate the listbox with. * It must be an array of {@see BentoListboxOptionItem } * * @property {string} value.label - Text to be displayed in the option * * @property {string,number} value.value - Value of the option */ items: { type: Array as PropType<BentoListboxOptions>, required: true, }, /** * Indicates if new options are lazy loading. */ loading: { type: Boolean, default: false }, /** * The type of `Lazy Load`. * Type "automatic" will enable infinite scrolling * Type "button" will enable lazy loading with "Show more" button */ lazyLoadType: { type: String as PropType<BentoListboxLazyLoadType | `${BentoListboxLazyLoadType}`>, default: BentoListboxLazyLoadType.NONE, validator: (value: BentoListboxLazyLoadType) => Object.values(BentoListboxLazyLoadType).includes(value), }, /** * Indicates the listbox is loading filtered items. */ componentLoading: { type: Boolean, default: false }, /** * If enabled, the user will be able to select multiple items. */ multiple: { type: Boolean, default: false }, /** * If enabled, dropdown will display non-selectable, static categories */ staticCategories: { type: Boolean, default: false }, /** * Messaged displayed when no items are listed in the listbox */ noResultsMessage: { type: String, required: true }, /** * Flag that indicates that an external search it's being made * to filter out the items inside the the multi-select listbox * * If enabled, hides the "Select all" checkbox in "multiple" mode. */ searching: BentoListboxMultiSelect.props.searching, /** * The `input` value. * Providing an empty string or empty array will select no options. * Set to an empty string `''` if you don't want any of the available options to be selected for single select */ selectedValue: { type: Array as PropType<BentoListboxOptions>, default: () => [], }, /** * Enables virtual scrolling if set to true or by providing an object with itemHeight function. * The itemHeight function is used to calculate the height of rendered item given it's index. */ virtualScroll: { type: [Boolean, Object] as PropType<BentoListboxVirtulisationOptions>, default: false, }, }, emits: [ BentoListboxEvent.SELECT, BentoListboxEvent.SPACE, BentoListboxEvent.SHOW_MORE, BentoListboxEvent.ENTER, BentoListboxEvent.ESCAPE, BentoListboxEvent.TAB, ], setup(props, { emit, slots }) { const listboxItemRef = ref([]); const items = toRef(props, 'items'); const { t } = useI18n<{ message: MessageSchema }>({ messages }); const isLazyLoadListbox = computed(() => props.lazyLoadType !== BentoListboxLazyLoadType.AUTOMATIC); const hasAutomaticLazyLoader = computed(() => props.lazyLoadType === BentoListboxLazyLoadType.AUTOMATIC); // Virtual scrolling const virtualScrollItemHeight = () => { if (typeof props?.virtualScroll === 'object' && props?.virtualScroll?.itemHeight) { return props.virtualScroll.itemHeight; } return DEFAULT_DROPDOWN_ITEM_HEIGHT; }; const isVirtualScrollEnabled = !props?.multiple && props?.virtualScroll !== false && props?.lazyLoadType === 'none'; const { containerRef: listboxRef, containerProps, onScroll: onContainerScroll, list: virtualisedItems, wrapperProps, scrollToIndex, startIndex: virtualScrollStartIndex, } = useVirtualList<BentoListboxOptionItem>(items, { itemHeight: virtualScrollItemHeight(), // Disable virtual scrolling if not enabled or if lazy loading is enabled or if multi-select disabled: !isVirtualScrollEnabled, }); const totalItemCount = computed(() => (isVirtualScrollEnabled ? items.value.length : 0)); // Aria a11y const ariaAtomic = computed<HTMLAttributes['aria-atomic']>(() => props.componentLoading !== undefined || isLazyLoadListbox.value ? 'true' : undefined ); const ariaBusy = computed<HTMLAttributes['aria-busy']>(() => (isLazyLoadListbox.value && props.loading) || props.componentLoading ? 'true' : 'false' ); const ariaLive = computed<HTMLAttributes['aria-live']>(() => isLazyLoadListbox.value || props.componentLoading !== undefined ? 'polite' : undefined ); const ariaAttributes = computed( () => ({ 'aria-label': props.ariaLabel, 'aria-busy': ariaBusy.value, 'aria-atomic': ariaAtomic.value, 'aria-live': ariaLive.value, }) as HTMLAttributes ); const listboxContainerAttributes = computed( () => (props.componentLoading ? { ...ariaAttributes.value, role: 'alert', } : {}) as HTMLAttributes ); const onOptionSelected = eventName => (selectedItem: BentoListboxOptions) => { emit(eventName, selectedItem); }; const emitShowMore = () => { emit(BentoListboxEvent.SHOW_MORE); }; const emitShowMoreOnScrollEnd = debounce(() => { const container = listboxRef.value; if (!container) { return; } const isAtBottom = Math.round(container.scrollTop) + container.clientHeight >= container.scrollHeight; if (props.hasMoreItems && isAtBottom && !props.loading) { emitShowMore(); } }); const onListboxContainerScroll = () => { if (hasAutomaticLazyLoader.value) { emitShowMoreOnScrollEnd(); } else { onContainerScroll(); } }; const isSearchResultEmpty = computed(() => props.items?.length === 0); const shouldDisplayShowMoreButton = computed( () => props.lazyLoadType === BentoListboxLazyLoadType.BUTTON && props.hasMoreItems ); const loadingButtonState = computed(() => props.loading ? BentoLoadingButtonState.LOADING : BentoLoadingButtonState.START ); const showMoreButtonText = computed(() => (props.loading ? t('loading') : t('showMore'))); const limitedEmptyStateProps = computed<InstanceType<typeof BentoEmptyState>['$props']>(() => ({ ...props.emptyState, variant: 'condensed', })); const listboxListeners = { [BentoListboxEvent.SELECT]: onOptionSelected(BentoListboxEvent.SELECT), [BentoListboxEvent.SPACE]: onOptionSelected(BentoListboxEvent.SPACE), [BentoListboxEvent.TAB]: onOptionSelected(BentoListboxEvent.TAB), [BentoListboxEvent.ENTER]: onOptionSelected(BentoListboxEvent.ENTER), }; return { // Refs listboxRef, listboxItemRef, // a11y ariaAttributes, listboxContainerAttributes, // Values containerProps, isSearchResultEmpty, limitedEmptyStateProps, loadingButtonState, slots, shouldDisplayShowMoreButton, showMoreButtonText, virtualisedItems, wrapperProps, // Virtual scroll totalItemCount, scrollToIndex, virtualScrollStartIndex, // Enums BentoKeyboardNavigationKeyDownEvent, BentoListboxEvent, // Methods onListboxContainerScroll, onOptionSelected, emitShowMore, listboxListeners, }; }, }); </script> <style lang="scss" scoped src="./listbox.scss" />
|
|
1
|
+
<template> <div :id="id" ref="listboxRef" v-bento-keyboard-navigation-directive class="b-listbox" tabindex="-1" v-bind="listboxContainerAttributes" :style="containerProps?.style" data-testid="listbox-container" @scroll="onListboxContainerScroll" > <div v-bind="wrapperProps"> <!-- Loading filtered items loading --> <div v-if="componentLoading" class="b-listbox__loading-filtered-items"> <bento-loading-indicator /> </div> <!-- Empty search message --> <div v-else-if="isSearchResultEmpty" class="b-listbox__empty-search-message"> <bento-empty-state v-if="emptyState" v-bind="limitedEmptyStateProps" /> <bento-typography v-else el="span">{{ noResultsMessage }}</bento-typography> </div> <template v-else> <!-- Multi select --> <template v-if="multiple"> <bento-listbox-multi-select ref="listboxItemRef" :has-more-items="hasMoreItems" v-bind="ariaAttributes" :items="items" :lazy-load-type="lazyLoadType" :static-categories="staticCategories" :selected-values="selectedValue" :searching="searching" :is-option-disabled="isOptionDisabled" v-on="listboxListeners" > <template v-for="(_, innerSlot) of slots" #[innerSlot]="scope"> <slot :name="innerSlot" v-bind="scope" /> </template> </bento-listbox-multi-select> </template> <!-- Single select --> <template v-else> <bento-listbox-single-select ref="listboxItemRef" :items="virtualisedItems" :total-item-count="totalItemCount" :scroll-to-index="scrollToIndex" :virtual-scroll-start-index="virtualScrollStartIndex" v-bind="ariaAttributes" :selected-value="selectedValue" :static-categories="staticCategories" :is-option-disabled="isOptionDisabled" v-on="listboxListeners" > <template v-for="(_, innerSlot) of slots" #[innerSlot]="scope"> <slot :name="innerSlot" v-bind="scope" /> </template> </bento-listbox-single-select> </template> <!-- Lazy Loading --> <bento-listbox-lazy-load v-if="lazyLoadType !== 'none'" :has-more-items="hasMoreItems" :loading="loading" :type="lazyLoadType" @show-more="emitShowMore" /> </template> </div> </div> </template> <script lang="ts"> import { computed, defineComponent, type PropType, ref, toRef } from 'vue'; import { type BentoListboxEmptyStateProps, BentoListboxEvent, type BentoListboxIsOptionDisabled, BentoListboxLazyLoadType, type BentoListboxOptionItem, type BentoListboxOptions, type BentoListboxVirtulisationOptions, } from '@/types/listbox'; import { BentoKeyboardNavigationKeyDownEvent } from '@/types/keyboard-navigation'; import { BentoKeyboardNavigationDirective } from '@/directives'; import { BentoListboxSingleSelect } from './components/listbox-single-select'; import { BentoListboxMultiSelect } from './components/listbox-multi-select'; import { BentoTypography } from '@/components/typography'; import { BentoLoadingIndicator } from '@/components/loading-indicator'; import { BentoListboxLazyLoad } from './components/listbox-lazy-load'; import { BentoLoadingButtonState } from '@/components/button'; import { BentoEmptyState } from '@/components/empty-state'; import { debounce } from '@/utils/ts/debounce'; import { useVirtualList } from '@/composables/use-virtual-list'; import type { HTMLAttributes } from 'vue/types/jsx.d.ts'; const DEFAULT_DROPDOWN_ITEM_HEIGHT = 36; /** * Listbox container. * It lists all the available options. * * @example * <bento-listbox * v-slot="{label, value}" * :id="listboxOptionsContainerId" * :aria-label="ariaLabel" * :disabled="disabled" * :multiple="multiple" * :selected="value" * :isOptionDisabled="option => option.value === 2" * :items="[{ * { label: 'Option 1', value: 1 }, * { label: 'Option 2', value: 2 }, * }]" * @select="onOptionSelected" * > * </bento-listbox> */ export default defineComponent({ name: 'bento-listbox', components: { BentoEmptyState, BentoListboxSingleSelect, BentoListboxMultiSelect, BentoTypography, BentoLoadingIndicator, BentoListboxLazyLoad, }, directives: { BentoKeyboardNavigationDirective }, props: { /** * Defines a string value that labels an interactive element. */ ariaLabel: { type: String, default: null }, /** * Empty state props that will be used with the inner empty state component to be displayed when no search results are found. */ emptyState: { type: Object as PropType<BentoListboxEmptyStateProps>, default: undefined, }, /** * Indicates whether there are more items to load */ hasMoreItems: { type: Boolean, default: false }, /** * Identifies the listbox whose contents are controlled by the the combobox on which the aria-controls attribute is set. */ id: { type: String, required: true }, /** * Function that allows the options to be disabled * * @type {BentoListboxIsOptionDisabled} * @param {BentoListboxOptionItem} option - Listbox option object * @param {string} option.label - Option's label text * @param {string|number} option.value - Option's value * @param {unknown} option.data - Option's extra data to be passed to the default slot */ isOptionDisabled: { type: Function as PropType<BentoListboxIsOptionDisabled>, default: () => undefined, }, /** * The option elements to populate the listbox with. * It must be an array of {@see BentoListboxOptionItem } * * @property {string} value.label - Text to be displayed in the option * * @property {string,number} value.value - Value of the option */ items: { type: Array as PropType<BentoListboxOptions>, required: true, }, /** * Indicates if new options are lazy loading. */ loading: { type: Boolean, default: false }, /** * The type of `Lazy Load`. * Type "automatic" will enable infinite scrolling * Type "button" will enable lazy loading with "Show more" button */ lazyLoadType: { type: String as PropType<BentoListboxLazyLoadType | `${BentoListboxLazyLoadType}`>, default: BentoListboxLazyLoadType.NONE, validator: (value: BentoListboxLazyLoadType) => Object.values(BentoListboxLazyLoadType).includes(value), }, /** * Indicates the listbox is loading filtered items. */ componentLoading: { type: Boolean, default: false }, /** * If enabled, the user will be able to select multiple items. */ multiple: { type: Boolean, default: false }, /** * If enabled, dropdown will display non-selectable, static categories */ staticCategories: { type: Boolean, default: false }, /** * Messaged displayed when no items are listed in the listbox */ noResultsMessage: { type: String, required: true }, /** * Flag that indicates that an external search it's being made * to filter out the items inside the the multi-select listbox * * If enabled, hides the "Select all" checkbox in "multiple" mode. */ searching: BentoListboxMultiSelect.props.searching, /** * The `input` value. * Providing an empty string or empty array will select no options. * Set to an empty string `''` if you don't want any of the available options to be selected for single select */ selectedValue: { type: Array as PropType<BentoListboxOptions>, default: () => [], }, /** * Enables virtual scrolling if set to true or by providing an object with itemHeight function. * The itemHeight function is used to calculate the height of rendered item given it's index. */ virtualScroll: { type: [Boolean, Object] as PropType<BentoListboxVirtulisationOptions>, default: false, }, }, emits: [ BentoListboxEvent.SELECT, BentoListboxEvent.SPACE, BentoListboxEvent.SHOW_MORE, BentoListboxEvent.ENTER, BentoListboxEvent.ESCAPE, BentoListboxEvent.TAB, ], setup(props, { emit, slots, expose }) { const listboxItemRef = ref([]); const items = toRef(props, 'items'); const isLazyLoadListbox = computed(() => props.lazyLoadType !== BentoListboxLazyLoadType.AUTOMATIC); const hasAutomaticLazyLoader = computed(() => props.lazyLoadType === BentoListboxLazyLoadType.AUTOMATIC); // Virtual scrolling const virtualScrollItemHeight = () => { if (typeof props?.virtualScroll === 'object' && props?.virtualScroll?.itemHeight) { return props.virtualScroll.itemHeight; } return DEFAULT_DROPDOWN_ITEM_HEIGHT; }; const isVirtualScrollEnabled = !props?.multiple && props?.virtualScroll !== false && props?.lazyLoadType === 'none'; const { containerRef: listboxRef, containerProps, onScroll: onContainerScroll, list: virtualisedItems, wrapperProps, scrollToIndex, startIndex: virtualScrollStartIndex, } = useVirtualList<BentoListboxOptionItem>(items, { itemHeight: virtualScrollItemHeight(), // Disable virtual scrolling if not enabled or if lazy loading is enabled or if multi-select disabled: !isVirtualScrollEnabled, }); const totalItemCount = computed(() => (isVirtualScrollEnabled ? items.value.length : 0)); // Aria a11y const ariaAtomic = computed<HTMLAttributes['aria-atomic']>(() => props.componentLoading !== undefined || isLazyLoadListbox.value ? 'true' : undefined ); const ariaBusy = computed<HTMLAttributes['aria-busy']>(() => (isLazyLoadListbox.value && props.loading) || props.componentLoading ? 'true' : 'false' ); const ariaLive = computed<HTMLAttributes['aria-live']>(() => isLazyLoadListbox.value || props.componentLoading !== undefined ? 'polite' : undefined ); const ariaAttributes = computed( () => ({ 'aria-label': props.ariaLabel, 'aria-busy': ariaBusy.value, 'aria-atomic': ariaAtomic.value, 'aria-live': ariaLive.value, }) as HTMLAttributes ); const listboxContainerAttributes = computed( () => (props.componentLoading ? { ...ariaAttributes.value, role: 'alert', } : {}) as HTMLAttributes ); const onOptionSelected = eventName => (selectedItem: BentoListboxOptions) => { emit(eventName, selectedItem); }; const emitShowMore = () => { emit(BentoListboxEvent.SHOW_MORE); }; const emitShowMoreOnScrollEnd = debounce(() => { const container = listboxRef.value; if (!container) { return; } const isAtBottom = Math.round(container.scrollTop) + container.clientHeight >= container.scrollHeight; if (props.hasMoreItems && isAtBottom && !props.loading) { emitShowMore(); } }); const onListboxContainerScroll = () => { if (hasAutomaticLazyLoader.value) { emitShowMoreOnScrollEnd(); } else { onContainerScroll(); } }; const isSearchResultEmpty = computed(() => props.items?.length === 0); const shouldDisplayShowMoreButton = computed( () => props.lazyLoadType === BentoListboxLazyLoadType.BUTTON && props.hasMoreItems ); const loadingButtonState = computed(() => props.loading ? BentoLoadingButtonState.LOADING : BentoLoadingButtonState.START ); const limitedEmptyStateProps = computed<InstanceType<typeof BentoEmptyState>['$props']>(() => ({ ...props.emptyState, variant: 'condensed', })); const listboxListeners = { [BentoListboxEvent.SELECT]: onOptionSelected(BentoListboxEvent.SELECT), [BentoListboxEvent.SPACE]: onOptionSelected(BentoListboxEvent.SPACE), [BentoListboxEvent.TAB]: onOptionSelected(BentoListboxEvent.TAB), [BentoListboxEvent.ENTER]: onOptionSelected(BentoListboxEvent.ENTER), }; expose({ listboxRef, listboxItemRef }); return { // Refs listboxRef, listboxItemRef, // a11y ariaAttributes, listboxContainerAttributes, // Values containerProps, isSearchResultEmpty, limitedEmptyStateProps, loadingButtonState, slots, shouldDisplayShowMoreButton, virtualisedItems, wrapperProps, // Virtual scroll totalItemCount, scrollToIndex, virtualScrollStartIndex, // Enums BentoKeyboardNavigationKeyDownEvent, BentoListboxEvent, // Methods onListboxContainerScroll, onOptionSelected, emitShowMore, listboxListeners, }; }, }); </script> <style lang="scss" scoped src="./listbox.scss" />
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import type { BentoTableOfContentsItems } from '../../table-of-contents.types'; export interface TableOfContentsListProps { /** * Currently active section fragment href. */ activeSectionHref?: string; /** * Index used for the initial roving focus position. */ initialFocusIndex?: number; /** * Table of contents items to render. */ items: BentoTableOfContentsItems; /** * Vertical offset in pixels applied before scrolling to a section. */ scrollOffset?: number; }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<template> <ol class="b-table-of-contents__toc" @keydown="onKeydownNavigation"> <li v-for="(item, index) in items" :key="index" class="b-table-of-contents__item" :class="getItemClasses(item)"> <a ref="navigationItemRefs" class="b-table-of-contents__item-title" :href="getSectionHref(item.elementRef)" :aria-current="isActiveItem(item) ? 'location' : undefined" :tabindex="isFocusable(index) ? null : -1" @click.prevent="onScrollToSection(item.elementRef)" @keydown.enter.prevent="onScrollToSection(item.elementRef)" > <bento-typography el="span" variant="body" stronger class="b-table-of-contents__item-label">{{ item.title }}</bento-typography> </a> <div v-if="index !== items.length - 1" class="b-table-of-contents__item-separator"></div> </li> </ol> </template> <script setup lang="ts"> import { computed } from 'vue'; import { BentoTypography } from '@/components/typography'; import { useSectionNavigationKeyboard } from '@/composables/use-section-navigation-keyboard'; import { getElementFragmentHref, scrollToSection, type ScrollToSectionTarget } from '@/utils/ts/scroll-to-section'; import { type BentoTableOfContentsItem, TableOfContentsClass } from '../../table-of-contents.types'; import type { TableOfContentsListProps } from './table-of-contents-list.types'; const props = withDefaults(defineProps<TableOfContentsListProps>(), { activeSectionHref: undefined, initialFocusIndex: -1, scrollOffset: undefined, }); const getSectionFragmentHref = (elementRef?: BentoTableOfContentsItem['elementRef']) => getElementFragmentHref(elementRef as ScrollToSectionTarget); const getSectionHref = (elementRef?: BentoTableOfContentsItem['elementRef']) => getSectionFragmentHref(elementRef) ?? '#'; const isActiveItem = (item: BentoTableOfContentsItem) => !!props.activeSectionHref && getSectionFragmentHref(item.elementRef) === props.activeSectionHref; const getItemClasses = (item: BentoTableOfContentsItem) => ({ [`b-table-of-contents__item--${TableOfContentsClass.ACTIVE}`]: isActiveItem(item), [`b-table-of-contents__item--level-${Math.min(Math.max(item.level ?? 1, 1), 4)}`]: true, }); const onScrollToSection = (elementRef: BentoTableOfContentsItem['elementRef']) => scrollToSection(elementRef, { scrollOffset: props.scrollOffset, updateHash: true, warningPrefix: 'bento-table-of-contents', }); const { isFocusable, navigationItemRefs, onKeydownNavigation } = useSectionNavigationKeyboard( computed(() => props.items), { initialIndex: computed(() => props.initialFocusIndex), } ); </script> <style lang="scss" scoped src="./table-of-contents-list.scss" />
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Canvas, Meta, Controls } from '@storybook/blocks';
|
|
2
|
+
import * as TableOfContentsStories from './table-of-contents.stories';
|
|
3
|
+
|
|
4
|
+
<Meta of={TableOfContentsStories} />
|
|
5
|
+
|
|
6
|
+
# Table of Contents
|
|
7
|
+
|
|
8
|
+
The Table of Contents component provides a landmark navigation list for pages with multiple sections. It helps users
|
|
9
|
+
understand the page structure and jump to relevant content.
|
|
10
|
+
|
|
11
|
+
<Canvas of={TableOfContentsStories.Default} />
|
|
12
|
+
|
|
13
|
+
## Use Cases
|
|
14
|
+
|
|
15
|
+
Use Table of Contents when:
|
|
16
|
+
|
|
17
|
+
- a page contains several content sections;
|
|
18
|
+
- users benefit from quick in-page navigation;
|
|
19
|
+
- the content is primarily text-based or document-like.
|
|
20
|
+
|
|
21
|
+
## Props
|
|
22
|
+
|
|
23
|
+
<Controls />
|
|
24
|
+
|
|
25
|
+
## Accessibility
|
|
26
|
+
|
|
27
|
+
Adhering to the [WAI-ARIA 2.2 standard](https://www.w3.org/WAI/WCAG22/Techniques/) we follow the
|
|
28
|
+
[table of contents pattern](https://www.w3.org/WAI/WCAG22/Techniques/general/G64) documentation.
|
|
29
|
+
|
|
30
|
+
- The component renders a named `<nav>` landmark.
|
|
31
|
+
- Section links use native anchor semantics.
|
|
32
|
+
- The active section is exposed with `aria-current="location"`.
|
|
33
|
+
- Linked section targets should have an `id` so the links can expose document fragment URLs.
|
|
34
|
+
- The navigation title defaults to the translated "On this page" label and can be overridden with the `title` prop.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import { isVue2 } from 'vue-demi'; import { storybookDocsParameter } from '@/utils/ts/storybook'; import { computed, ref } from 'vue'; import type { Meta, StoryObj } from '@storybook/vue'; import BentoTableOfContents from './table-of-contents.vue'; import TableOfContentsDefaultExample from './__tests__/table-of-contents-default-example.vue?raw'; import BentoTypography from '../typography/typography.vue'; import './table-of-contents.stories.scss?module'; const meta: Meta = { title: 'Table of Contents', component: BentoTableOfContents, }; export default meta; type Story = StoryObj<typeof BentoTableOfContents>; export const Default: Story = { render: (_args, { argTypes }) => ({ components: { BentoTableOfContents, BentoTypography }, props: Object.keys(argTypes), template: ` <div class="b-toc-story"> <div class="b-toc-story__layout"> <div class="b-toc-story__sidebar"> <div class="b-toc-story__sidebar-inner"> <bento-table-of-contents :active-index="args.activeIndex" :items="sections" :scroll-offset="args.scrollOffset" :title="args.title" /> </div> </div> <div class="b-toc-story__content"> <section ref="section1" id="section-1" class="b-toc-story__section b-toc-story__section--medium" > <bento-typography el="h2" variant="title">Section 1</bento-typography> <bento-typography>This is the content for the first section.</bento-typography> </section> <section ref="section2" id="section-2" class="b-toc-story__section" > <bento-typography el="h2" variant="title">Section 2</bento-typography> <bento-typography>This section is shorter.</bento-typography> </section> <section ref="section21" id="section-2-1" class="b-toc-story__section" > <bento-typography el="h2" variant="title">Section 2.1</bento-typography> <bento-typography>This is nested under Section 2.</bento-typography> </section> <section ref="section22" id="section-2-2" class="b-toc-story__section" > <bento-typography el="h2" variant="title">Section 2.2</bento-typography> <bento-typography>This is another level 2 section.</bento-typography> </section> <section ref="section211" id="section-2-1-1" class="b-toc-story__section" > <bento-typography el="h2" variant="title">Section 2.1.1</bento-typography> <bento-typography>This is nested under Section 2.1.</bento-typography> </section> <section ref="section2111" id="section-2-1-1-1" class="b-toc-story__section" > <bento-typography el="h2" variant="title">Section 2.1.1.1</bento-typography> <bento-typography>This is nested under Section 2.1.1.</bento-typography> </section> <section ref="section212" id="section-2-1-2" class="b-toc-story__section" > <bento-typography el="h2" variant="title">Section 2.1.2</bento-typography> <bento-typography>This is another level 3 section.</bento-typography> </section> <section ref="section3" id="section-3" class="b-toc-story__section b-toc-story__section--large" > <bento-typography el="h2" variant="title">Section 3</bento-typography> <bento-typography>This is a tall section to demonstrate scrolling.</bento-typography> </section> </div> </div> </div> `, setup(props) { const args = isVue2 ? props : _args; const section1 = ref(null); const section2 = ref(null); const section21 = ref(null); const section22 = ref(null); const section211 = ref(null); const section2111 = ref(null); const section212 = ref(null); const section3 = ref(null); const sections = computed(() => [ { title: 'Section 1', elementRef: section1, level: 1 }, { title: 'Section 2', elementRef: section2, level: 1 }, { title: 'Section 2.1', elementRef: section21, level: 2 }, { title: 'Section 2.2', elementRef: section22, level: 2 }, { title: 'Section 2.1.1', elementRef: section211, level: 3 }, { title: 'Section 2.1.1.1', elementRef: section2111, level: 4 }, { title: 'Section 2.1.2', elementRef: section212, level: 3 }, { title: 'Section 3', elementRef: section3, level: 1 }, ]); return { args, section1, section2, section21, section22, section211, section2111, section212, section3, sections, }; }, }), args: { scrollOffset: 8, }, parameters: storybookDocsParameter(TableOfContentsDefaultExample), };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import { type SectionNavigationItem } from '@/types/section-navigation'; export type BentoTableOfContentsItem = SectionNavigationItem; export type BentoTableOfContentsItems = Array<BentoTableOfContentsItem>; export interface BentoTableOfContentsProps { /** * An array containing all the items in the table of contents. */ items: BentoTableOfContentsItems; /** * The index of the currently active item. Can be used to programmatically set the active item. * @default undefined */ activeIndex?: number; /** * Offset in pixels applied before scrolling to a section. * @default undefined */ scrollOffset?: number; /** * Table of contents title. Defaults to the translated "On this page" label. * @default undefined */ title?: string; } export enum TableOfContentsClass { ACTIVE = 'active', }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<template> <nav class="b-table-of-contents" :aria-labelledby="titleId"> <bento-typography :id="titleId" el="h2" variant="body" stronger class="b-table-of-contents__header">{{ computedTitle }}</bento-typography> <table-of-contents-list :items="items" :active-section-href="activeSectionHref" :initial-focus-index="controlledActiveIndex" :scroll-offset="scrollOffset" /> </nav> </template> <script setup lang="ts"> import { computed } from 'vue'; import { BentoTypography } from '@/components/typography'; import { TableOfContentsList } from './components'; import { generateUid } from '@/core/utils/ts'; import { useScrollSpy } from '@/composables/use-scroll-spy'; import { getElementFragmentHref, type ScrollToSectionTarget } from '@/utils/ts/scroll-to-section'; import { unrefElement } from '@/directives/click-outside/utils'; import { useI18n } from '@/utils/ts/i18n'; import messages from './messages.json'; import type { BentoTableOfContentsItem, BentoTableOfContentsProps } from './table-of-contents.types'; type MessageSchema = (typeof messages)['en-US']; const { t } = useI18n<{ message: MessageSchema }>({ messages }); const props = withDefaults(defineProps<BentoTableOfContentsProps>(), { activeIndex: undefined, scrollOffset: undefined, title: undefined, }); const titleId = generateUid('table-of-contents-title'); const computedTitle = computed(() => props.title ?? t('onThisPage')); const resolvedItems = computed(() => props.items .map((item, originalIndex) => ({ element: unrefElement(item.elementRef), originalIndex, })) .filter((item): item is { element: Element; originalIndex: number } => !!item.element) ); const sectionTargetElements = computed(() => resolvedItems.value.map(item => item.element)); const controlledActiveIndex = computed(() => props.activeIndex ?? -1); const scrollSpyDefaultIndex = computed(() => props.activeIndex === undefined ? -1 : resolvedItems.value.findIndex(({ originalIndex }) => originalIndex === props.activeIndex) ); const getSectionFragmentHref = (elementRef?: BentoTableOfContentsItem['elementRef']) => getElementFragmentHref(elementRef as ScrollToSectionTarget); const { activeIndex: scrollSpyActiveIndex } = useScrollSpy(sectionTargetElements, { default: scrollSpyDefaultIndex, }); const currentActiveIndex = computed(() => { if (props.activeIndex !== undefined) { return props.activeIndex; } return resolvedItems.value[scrollSpyActiveIndex.value]?.originalIndex ?? -1; }); const activeSectionHref = computed(() => getSectionFragmentHref(props.items[currentActiveIndex.value]?.elementRef)); </script> <script lang="ts"> /** * This is a navigational component that serves as a list outlining * the structure and hierarchy of content on a page. It allows users * to find the content in a page more quickly with anchor links in * the content. * * ARIA: https://www.w3.org/TR/dpub-aria-1.1/#doc-toc * * @usage * import { BentoTableOfContents } from '@adyen/bento-vue2'; * * export default { * components: { BentoTableOfContents }, * template: ` * <bento-table-of-contents * :items="[{ title: 'Section text', elementRef: sectionRef }]" * /> * `, * setup() { * const sectionRef = ref(null); * return { * sectionRef, * } * } * } */ export default { name: 'bento-table-of-contents', i18n: { messages }, }; </script> <style lang="scss" scoped src="./table-of-contents.scss" />
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import type { Ref } from 'vue'; type MaybeRef<T> = T | Ref<T>; export type NumericInputEvent = Event | string | { target?: { value?: string } }; export type NumericKeyDownEvent = | KeyboardEvent | { key?: string; target?: { value?: string; selectionStart?: number | null; selectionEnd?: number | null }; preventDefault?: () => void; }; export interface UseNumericInputOptions { value: Ref<number | null>; prettyOutput?: MaybeRef<boolean>; onInput?: (value: number | null) => void; }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import type { Ref } from 'vue'; export interface UseSectionNavigationKeyboardOptions<Item = unknown, Target = unknown> { focusTarget?: (target: Target) => boolean; getFocusableElement?: (target: Target) => HTMLElement | null; initialIndex?: Ref<number | undefined>; isDisabled?: (item: Item) => boolean | undefined; } export interface UseSectionNavigationKeyboardReturn<Target = unknown> { focusedIndex: Ref<number>; isFocusable: (index: number) => boolean; navigationItemRefs: Ref<Array<Target>>; onKeydownNavigation: (e: KeyboardEvent) => void; }
|
|
@@ -6,6 +6,14 @@ This file contains a list of all deprecated components, properties, and features
|
|
|
6
6
|
|
|
7
7
|
### Deprecation Found
|
|
8
8
|
|
|
9
|
+
- string) {
|
|
10
|
+
- ../vue2/src/utils/ts/deprecate.ts- // If the message is already showing, dont show it again
|
|
11
|
+
- ../vue2/src/utils/ts/deprecate.ts- if (!shownMessages.has(title)) {
|
|
12
|
+
- \x1b[0m ${title}`, DEPRECATION_STYLES);
|
|
13
|
+
- ../vue2/src/utils/ts/deprecate.ts- // Format multi-line descriptions with the backtick
|
|
14
|
+
- ../vue2/src/utils/ts/deprecate.ts- printDevelopmentWarning(`${deprecationMessage.replaceAll( , ).trim()}`);
|
|
15
|
+
### Deprecation Found
|
|
16
|
+
|
|
9
17
|
- deprecate(TITLE, MESSAGE, VERSION);
|
|
10
18
|
- ../vue2/src/utils/ts/deprecate.test.ts-
|
|
11
19
|
- ../vue2/src/utils/ts/deprecate.test.ts- expect(warnSpy).toHaveBeenCalledTimes(EXPECTED_CALLS.length);
|
|
@@ -36,14 +44,6 @@ This file contains a list of all deprecated components, properties, and features
|
|
|
36
44
|
- ../vue2/src/utils/ts/deprecate.test.ts- EXPECTED_CALLS[0]
|
|
37
45
|
### Deprecation Found
|
|
38
46
|
|
|
39
|
-
- string) {
|
|
40
|
-
- ../vue2/src/utils/ts/deprecate.ts- // If the message is already showing, dont show it again
|
|
41
|
-
- ../vue2/src/utils/ts/deprecate.ts- if (!shownMessages.has(title)) {
|
|
42
|
-
- \x1b[0m ${title}`, DEPRECATION_STYLES);
|
|
43
|
-
- ../vue2/src/utils/ts/deprecate.ts- // Format multi-line descriptions with the backtick
|
|
44
|
-
- ../vue2/src/utils/ts/deprecate.ts- printDevelopmentWarning(`${deprecationMessage.replaceAll( , ).trim()}`);
|
|
45
|
-
### Deprecation Found
|
|
46
|
-
|
|
47
47
|
- deprecate(
|
|
48
48
|
- ../vue2/src/install.ts- Using default setting withDesignTokensCSSInjection set to true in BentoVue plugin
|
|
49
49
|
- //adyen-bento.netlify.app/?path=/docs/welcome-getting-started--docs#import-css-variables
|
|
@@ -61,83 +61,11 @@ This file contains a list of all deprecated components, properties, and features
|
|
|
61
61
|
### Deprecation Found
|
|
62
62
|
|
|
63
63
|
- deprecate(
|
|
64
|
-
- ../vue2/src/components/
|
|
65
|
-
- ../vue2/src/components/
|
|
66
|
-
- ../vue2/src/components/
|
|
67
|
-
- ../vue2/src/components/
|
|
68
|
-
- ../vue2/src/components/
|
|
69
|
-
### Deprecation Found
|
|
70
|
-
|
|
71
|
-
- deprecate(
|
|
72
|
-
- ../vue2/src/components/filter-bar/components/boolean-filter/boolean-filter.vue- Boolean filter BentoFilterItemType.BOOLEAN
|
|
73
|
-
- ../vue2/src/components/filter-bar/components/boolean-filter/boolean-filter.vue- `Use the Radio group filter type BentoFilterItemType.RADIO_GROUP instead.`
|
|
74
|
-
- ../vue2/src/components/filter-bar/components/boolean-filter/boolean-filter.vue- 2.0.0
|
|
75
|
-
- ../vue2/src/components/filter-bar/components/boolean-filter/boolean-filter.vue- );
|
|
76
|
-
- ../vue2/src/components/filter-bar/components/boolean-filter/boolean-filter.vue- });
|
|
77
|
-
### Deprecation Found
|
|
78
|
-
|
|
79
|
-
- deprecate(
|
|
80
|
-
- ../vue2/src/components/filter-bar/components/input-filter/input-filter.vue- BentoInputFilter options property
|
|
81
|
-
- ../vue2/src/components/filter-bar/components/input-filter/input-filter.vue- `BentoInputFilter options no longer supports dropdown, dropdownPosition or variant attributes.
|
|
82
|
-
- ../vue2/src/components/filter-bar/components/input-filter/input-filter.vue- Use the BentoFilterItemType.INPUT_DROPDOWN instead of BentoFilterItemType.INPUT
|
|
83
|
-
- ../vue2/src/components/filter-bar/components/input-filter/input-filter.vue- <bento-filter-bar
|
|
84
|
-
- config=[{
|
|
85
|
-
### Deprecation Found
|
|
86
|
-
|
|
87
|
-
- deprecate(
|
|
88
|
-
- ../vue2/src/components/filter-bar/components/select-filter/select-filter.vue- BentoFilterBar filter of type BentoFilterItemType.SELECT options message property
|
|
89
|
-
- ../vue2/src/components/filter-bar/components/select-filter/select-filter.vue- `Please remove the options.messages property from this filter, it is not required any more for persistent filters.
|
|
90
|
-
- ../vue2/src/components/filter-bar/components/select-filter/select-filter.vue- This will be the default behavior in the v2 and options.messages will be removed.`
|
|
91
|
-
- ../vue2/src/components/filter-bar/components/select-filter/select-filter.vue- 2.0.0
|
|
92
|
-
- ../vue2/src/components/filter-bar/components/select-filter/select-filter.vue- );
|
|
93
|
-
### Deprecation Found
|
|
94
|
-
|
|
95
|
-
- deprecate(
|
|
96
|
-
- ../vue2/src/components/filter-bar/components/select-filter/variants/select-country-filter/select-country-filter.vue- BentoSelectCountryFilter type with `options.variant===custom`
|
|
97
|
-
- ../vue2/src/components/filter-bar/components/select-filter/variants/select-country-filter/select-country-filter.vue- Use any of the other BentoSelectCountryFilter variants instead OR use BentoSelectFilter type for custom labels
|
|
98
|
-
- ../vue2/src/components/filter-bar/components/select-filter/variants/select-country-filter/select-country-filter.vue- 2.0.0
|
|
99
|
-
- ../vue2/src/components/filter-bar/components/select-filter/variants/select-country-filter/select-country-filter.vue- );
|
|
100
|
-
- ../vue2/src/components/filter-bar/components/select-filter/variants/select-country-filter/select-country-filter.vue- }
|
|
101
|
-
### Deprecation Found
|
|
102
|
-
|
|
103
|
-
- deprecate(
|
|
104
|
-
- ../vue2/src/components/input-field-phone-number/input-field-phone-number.vue- BentoInputFieldPhoneNumber value property
|
|
105
|
-
- ../vue2/src/components/input-field-phone-number/input-field-phone-number.vue- `The use of value prop in BentoInputFieldPhoneNumber is no longer supported.
|
|
106
|
-
- ../vue2/src/components/input-field-phone-number/input-field-phone-number.vue- Use the v-model or model-value property instead.`
|
|
107
|
-
- ../vue2/src/components/input-field-phone-number/input-field-phone-number.vue- 2.0.0
|
|
108
|
-
- ../vue2/src/components/input-field-phone-number/input-field-phone-number.vue- );
|
|
109
|
-
### Deprecation Found
|
|
110
|
-
|
|
111
|
-
- deprecate(
|
|
112
|
-
- ../vue2/src/components/input-field-password/input-field-password.vue- BentoInputFieldPassword value property
|
|
113
|
-
- ../vue2/src/components/input-field-password/input-field-password.vue- `The use of value prop in BentoInputFieldPassword is no longer supported.
|
|
114
|
-
- ../vue2/src/components/input-field-password/input-field-password.vue- Use the v-model or model-value property instead.`
|
|
115
|
-
- ../vue2/src/components/input-field-password/input-field-password.vue- 2.0.0
|
|
116
|
-
- ../vue2/src/components/input-field-password/input-field-password.vue- );
|
|
117
|
-
### Deprecation Found
|
|
118
|
-
|
|
119
|
-
- deprecate(
|
|
120
|
-
- ../vue2/src/components/card/card.vue- BentoCard @click property
|
|
121
|
-
- ../vue2/src/components/card/card.vue- `Use the BentoCard @click with the clickable property to enable accessible styles.`
|
|
122
|
-
- ../vue2/src/components/card/card.vue- 2.0.0
|
|
123
|
-
- ../vue2/src/components/card/card.vue- );
|
|
124
|
-
- ../vue2/src/components/card/card.vue- }
|
|
125
|
-
### Deprecation Found
|
|
126
|
-
|
|
127
|
-
- deprecate(
|
|
128
|
-
- ../vue2/src/components/date-picker/date-picker.vue- BentoDatePicker value property
|
|
129
|
-
- ../vue2/src/components/date-picker/date-picker.vue- `The use of value prop in BentoDatePicker is no longer supported. Use the v-model or model-value property instead.`
|
|
130
|
-
- ../vue2/src/components/date-picker/date-picker.vue- 2.0.0
|
|
131
|
-
- ../vue2/src/components/date-picker/date-picker.vue- );
|
|
132
|
-
- ../vue2/src/components/date-picker/date-picker.vue- }
|
|
133
|
-
### Deprecation Found
|
|
134
|
-
|
|
135
|
-
- deprecate(
|
|
136
|
-
- ../vue2/src/components/typography/typography.vue- BentoTypography subtitle variant (BentoTypographyVariant.SUBTITLE)
|
|
137
|
-
- ../vue2/src/components/typography/typography.vue- `Use the title or BentoTypographyVariant.TITLE variant and (optionally) combine it with a size property. e.g. medium / large.
|
|
138
|
-
- variant=BentoTypographyVariant.TITLE medium>`
|
|
139
|
-
- ../vue2/src/components/typography/typography.vue- 2.0.0
|
|
140
|
-
- ../vue2/src/components/typography/typography.vue- );
|
|
64
|
+
- ../vue2/src/components/country/country.vue- BentoCountry custom variant and label prop
|
|
65
|
+
- ../vue2/src/components/country/country.vue- Use any of the other BentoCountry variants instead OR BentoTypography component for custom text
|
|
66
|
+
- ../vue2/src/components/country/country.vue- 2.0.0
|
|
67
|
+
- ../vue2/src/components/country/country.vue- );
|
|
68
|
+
- ../vue2/src/components/country/country.vue- }
|
|
141
69
|
### Deprecation Found
|
|
142
70
|
|
|
143
71
|
- deprecate(
|
|
@@ -162,14 +90,6 @@ This file contains a list of all deprecated components, properties, and features
|
|
|
162
90
|
- ../vue2/src/components/dropdown/dropdown.vue- );
|
|
163
91
|
### Deprecation Found
|
|
164
92
|
|
|
165
|
-
- deprecate(
|
|
166
|
-
- ../vue2/src/components/dropdown/components/variants/dropdown-payment-method/dropdown-payment-method.vue- BentoDropdownPaymentMethod value property
|
|
167
|
-
- ../vue2/src/components/dropdown/components/variants/dropdown-payment-method/dropdown-payment-method.vue- `The use of value prop in BentoDropdownPaymentMethod is no longer supported.
|
|
168
|
-
- ../vue2/src/components/dropdown/components/variants/dropdown-payment-method/dropdown-payment-method.vue- Use the v-model or model-value property instead.`
|
|
169
|
-
- ../vue2/src/components/dropdown/components/variants/dropdown-payment-method/dropdown-payment-method.vue- 2.0.0
|
|
170
|
-
- ../vue2/src/components/dropdown/components/variants/dropdown-payment-method/dropdown-payment-method.vue- );
|
|
171
|
-
### Deprecation Found
|
|
172
|
-
|
|
173
93
|
- deprecate(
|
|
174
94
|
- ../vue2/src/components/dropdown/components/variants/dropdown-avatar/dropdown-avatar.vue- BentoDropdownAvatar value property
|
|
175
95
|
- ../vue2/src/components/dropdown/components/variants/dropdown-avatar/dropdown-avatar.vue- `The use of value prop in BentoDropdownAvatar is no longer supported.
|
|
@@ -178,6 +98,14 @@ This file contains a list of all deprecated components, properties, and features
|
|
|
178
98
|
- ../vue2/src/components/dropdown/components/variants/dropdown-avatar/dropdown-avatar.vue- );
|
|
179
99
|
### Deprecation Found
|
|
180
100
|
|
|
101
|
+
- deprecate(
|
|
102
|
+
- ../vue2/src/components/dropdown/components/variants/dropdown-payment-method/dropdown-payment-method.vue- BentoDropdownPaymentMethod value property
|
|
103
|
+
- ../vue2/src/components/dropdown/components/variants/dropdown-payment-method/dropdown-payment-method.vue- `The use of value prop in BentoDropdownPaymentMethod is no longer supported.
|
|
104
|
+
- ../vue2/src/components/dropdown/components/variants/dropdown-payment-method/dropdown-payment-method.vue- Use the v-model or model-value property instead.`
|
|
105
|
+
- ../vue2/src/components/dropdown/components/variants/dropdown-payment-method/dropdown-payment-method.vue- 2.0.0
|
|
106
|
+
- ../vue2/src/components/dropdown/components/variants/dropdown-payment-method/dropdown-payment-method.vue- );
|
|
107
|
+
### Deprecation Found
|
|
108
|
+
|
|
181
109
|
- deprecate(
|
|
182
110
|
- ../vue2/src/components/dropdown/components/variants/dropdown-tag/dropdown-tag.vue- BentoDropdownTag value property
|
|
183
111
|
- ../vue2/src/components/dropdown/components/variants/dropdown-tag/dropdown-tag.vue- `The use of value prop in BentoDropdownTag is no longer supported.
|
|
@@ -210,6 +138,38 @@ This file contains a list of all deprecated components, properties, and features
|
|
|
210
138
|
- ../vue2/src/components/dropdown/components/variants/dropdown-currency/dropdown-currency.vue- );
|
|
211
139
|
### Deprecation Found
|
|
212
140
|
|
|
141
|
+
- deprecate(
|
|
142
|
+
- ../vue2/src/components/date-range-picker/date-range-picker.vue- BentoDateRangePicker hasActions property
|
|
143
|
+
- ../vue2/src/components/date-range-picker/date-range-picker.vue- `Set the BentoDateRangePicker hasActions property true which will display the Apply and Cancel buttons.
|
|
144
|
+
- ../vue2/src/components/date-range-picker/date-range-picker.vue- This will be the default behavior in the v2 and hasActions will be removed.`
|
|
145
|
+
- ../vue2/src/components/date-range-picker/date-range-picker.vue- 2.0.0
|
|
146
|
+
- ../vue2/src/components/date-range-picker/date-range-picker.vue- );
|
|
147
|
+
### Deprecation Found
|
|
148
|
+
|
|
149
|
+
- deprecate(
|
|
150
|
+
- ../vue2/src/components/date-range-picker/date-range-picker.vue- BentoDateRangePicker value property
|
|
151
|
+
- ../vue2/src/components/date-range-picker/date-range-picker.vue- The use of value prop in BentoDateRangePicker is no longer supported. Use the v-model or model-value property instead.
|
|
152
|
+
- ../vue2/src/components/date-range-picker/date-range-picker.vue- 2.0.0
|
|
153
|
+
- ../vue2/src/components/date-range-picker/date-range-picker.vue- );
|
|
154
|
+
- ../vue2/src/components/date-range-picker/date-range-picker.vue- }
|
|
155
|
+
### Deprecation Found
|
|
156
|
+
|
|
157
|
+
- deprecate(
|
|
158
|
+
- ../vue2/src/components/currency/currency.vue- BentoCurrency default slot
|
|
159
|
+
- ../vue2/src/components/currency/currency.vue- `The use of default slot in BentoCurrency is no longer supported as it causes issues with dynamic content.
|
|
160
|
+
- ../vue2/src/components/currency/currency.vue- Use the value property instead.
|
|
161
|
+
- value=12345.67 currency=USD major-units=false />`
|
|
162
|
+
- ../vue2/src/components/currency/currency.vue- 2.0.0
|
|
163
|
+
### Deprecation Found
|
|
164
|
+
|
|
165
|
+
- deprecate(
|
|
166
|
+
- ../vue2/src/components/date-picker/date-picker.vue- BentoDatePicker value property
|
|
167
|
+
- ../vue2/src/components/date-picker/date-picker.vue- `The use of value prop in BentoDatePicker is no longer supported. Use the v-model or model-value property instead.`
|
|
168
|
+
- ../vue2/src/components/date-picker/date-picker.vue- 2.0.0
|
|
169
|
+
- ../vue2/src/components/date-picker/date-picker.vue- );
|
|
170
|
+
- ../vue2/src/components/date-picker/date-picker.vue- }
|
|
171
|
+
### Deprecation Found
|
|
172
|
+
|
|
213
173
|
- deprecate(
|
|
214
174
|
- string | Array<string> | File | Array<File>
|
|
215
175
|
- ../vue2/src/components/file-uploader/file-uploader.vue- Use FileList instead.
|
|
@@ -219,11 +179,27 @@ This file contains a list of all deprecated components, properties, and features
|
|
|
219
179
|
### Deprecation Found
|
|
220
180
|
|
|
221
181
|
- deprecate(
|
|
222
|
-
- ../vue2/src/components/
|
|
223
|
-
- ../vue2/src/components/
|
|
224
|
-
-
|
|
225
|
-
- ../vue2/src/components/
|
|
226
|
-
- ../vue2/src/components/
|
|
182
|
+
- ../vue2/src/components/typography/typography.vue- BentoTypography subtitle variant (BentoTypographyVariant.SUBTITLE)
|
|
183
|
+
- ../vue2/src/components/typography/typography.vue- `Use the title or BentoTypographyVariant.TITLE variant and (optionally) combine it with a size property. e.g. medium / large.
|
|
184
|
+
- variant=BentoTypographyVariant.TITLE medium>`
|
|
185
|
+
- ../vue2/src/components/typography/typography.vue- 2.0.0
|
|
186
|
+
- ../vue2/src/components/typography/typography.vue- );
|
|
187
|
+
### Deprecation Found
|
|
188
|
+
|
|
189
|
+
- deprecate(
|
|
190
|
+
- ../vue2/src/components/checkbox/components/checkbox-group/checkbox-group.vue- BentoCheckboxGroup hasError property
|
|
191
|
+
- ../vue2/src/components/checkbox/components/checkbox-group/checkbox-group.vue- `Use the BentoCheckboxGroup errorMessage property instead to indicate that there is a modifier error.
|
|
192
|
+
- ../vue2/src/components/checkbox/components/checkbox-group/checkbox-group.vue- Having the field as undefined will hide/remove the error.
|
|
193
|
+
- ../vue2/src/components/checkbox/components/checkbox-group/checkbox-group.vue- <bento-checkbox-group errorMessage=Error message text />`
|
|
194
|
+
- ../vue2/src/components/checkbox/components/checkbox-group/checkbox-group.vue- 2.0.0
|
|
195
|
+
### Deprecation Found
|
|
196
|
+
|
|
197
|
+
- deprecate(
|
|
198
|
+
- ../vue2/src/components/input-field-phone-number/input-field-phone-number.vue- BentoInputFieldPhoneNumber value property
|
|
199
|
+
- ../vue2/src/components/input-field-phone-number/input-field-phone-number.vue- `The use of value prop in BentoInputFieldPhoneNumber is no longer supported.
|
|
200
|
+
- ../vue2/src/components/input-field-phone-number/input-field-phone-number.vue- Use the v-model or model-value property instead.`
|
|
201
|
+
- ../vue2/src/components/input-field-phone-number/input-field-phone-number.vue- 2.0.0
|
|
202
|
+
- ../vue2/src/components/input-field-phone-number/input-field-phone-number.vue- );
|
|
227
203
|
### Deprecation Found
|
|
228
204
|
|
|
229
205
|
- deprecate(
|
|
@@ -259,19 +235,27 @@ This file contains a list of all deprecated components, properties, and features
|
|
|
259
235
|
### Deprecation Found
|
|
260
236
|
|
|
261
237
|
- deprecate(
|
|
262
|
-
- ../vue2/src/components/
|
|
263
|
-
- ../vue2/src/components/
|
|
264
|
-
- ../vue2/src/components/
|
|
265
|
-
- ../vue2/src/components/
|
|
266
|
-
- ../vue2/src/components/
|
|
238
|
+
- ../vue2/src/components/modal/modal.vue- BentoModal overflow-visible property
|
|
239
|
+
- ../vue2/src/components/modal/modal.vue- `overflow-visible property was made redundant. BentoModal can work correctly without the need to pass the propery.
|
|
240
|
+
- ../vue2/src/components/modal/modal.vue- Remove the overflow-visible prop from BentoModal to remove this error.`
|
|
241
|
+
- ../vue2/src/components/modal/modal.vue- 2.0.0
|
|
242
|
+
- ../vue2/src/components/modal/modal.vue- );
|
|
267
243
|
### Deprecation Found
|
|
268
244
|
|
|
269
245
|
- deprecate(
|
|
270
|
-
- ../vue2/src/components/
|
|
271
|
-
- ../vue2/src/components/
|
|
272
|
-
- ../vue2/src/components/
|
|
273
|
-
- ../vue2/src/components/
|
|
274
|
-
- ../vue2/src/components/
|
|
246
|
+
- ../vue2/src/components/input-field-password/input-field-password.vue- BentoInputFieldPassword value property
|
|
247
|
+
- ../vue2/src/components/input-field-password/input-field-password.vue- `The use of value prop in BentoInputFieldPassword is no longer supported.
|
|
248
|
+
- ../vue2/src/components/input-field-password/input-field-password.vue- Use the v-model or model-value property instead.`
|
|
249
|
+
- ../vue2/src/components/input-field-password/input-field-password.vue- 2.0.0
|
|
250
|
+
- ../vue2/src/components/input-field-password/input-field-password.vue- );
|
|
251
|
+
### Deprecation Found
|
|
252
|
+
|
|
253
|
+
- deprecate(
|
|
254
|
+
- ../vue2/src/components/card/card.vue- BentoCard @click property
|
|
255
|
+
- ../vue2/src/components/card/card.vue- `Use the BentoCard @click with the clickable property to enable accessible styles.`
|
|
256
|
+
- ../vue2/src/components/card/card.vue- 2.0.0
|
|
257
|
+
- ../vue2/src/components/card/card.vue- );
|
|
258
|
+
- ../vue2/src/components/card/card.vue- }
|
|
275
259
|
### Deprecation Found
|
|
276
260
|
|
|
277
261
|
- deprecate(
|
|
@@ -282,14 +266,6 @@ This file contains a list of all deprecated components, properties, and features
|
|
|
282
266
|
- ../vue2/src/components/radio-group/radio-group.vue- 2.0.0
|
|
283
267
|
### Deprecation Found
|
|
284
268
|
|
|
285
|
-
- deprecate(
|
|
286
|
-
- ../vue2/src/components/currency/currency.vue- BentoCurrency default slot
|
|
287
|
-
- ../vue2/src/components/currency/currency.vue- `The use of default slot in BentoCurrency is no longer supported as it causes issues with dynamic content.
|
|
288
|
-
- ../vue2/src/components/currency/currency.vue- Use the value property instead.
|
|
289
|
-
- value=12345.67 currency=USD major-units=false />`
|
|
290
|
-
- ../vue2/src/components/currency/currency.vue- 2.0.0
|
|
291
|
-
### Deprecation Found
|
|
292
|
-
|
|
293
269
|
- deprecate(
|
|
294
270
|
- The property \`label\` will always be rendered by default.`
|
|
295
271
|
- ../vue2/src/components/internal/controls-group/controls-group.vue- `After version 2.0.0, the label will be shown by default.
|
|
@@ -299,35 +275,59 @@ This file contains a list of all deprecated components, properties, and features
|
|
|
299
275
|
### Deprecation Found
|
|
300
276
|
|
|
301
277
|
- deprecate(
|
|
302
|
-
- ../vue2/src/components/
|
|
303
|
-
- ../vue2/src/components/
|
|
304
|
-
- ../vue2/src/components/
|
|
305
|
-
- ../vue2/src/components/
|
|
306
|
-
- ../vue2/src/components/
|
|
278
|
+
- ../vue2/src/components/sidepanel/sidepanel.vue- BentoSidepanel isDismissible property’s behavior
|
|
279
|
+
- ../vue2/src/components/sidepanel/sidepanel.vue- BentoSidepanel isDismissible will no longer hide the close button. Use hideCloseButton=true instead.
|
|
280
|
+
- ../vue2/src/components/sidepanel/sidepanel.vue- 2.0.0
|
|
281
|
+
- ../vue2/src/components/sidepanel/sidepanel.vue- );
|
|
282
|
+
- ../vue2/src/components/sidepanel/sidepanel.vue- }
|
|
307
283
|
### Deprecation Found
|
|
308
284
|
|
|
309
285
|
- deprecate(
|
|
310
|
-
- ../vue2/src/components/
|
|
311
|
-
- ../vue2/src/components/
|
|
312
|
-
- ../vue2/src/components/
|
|
313
|
-
- ../vue2/src/components/
|
|
314
|
-
- ../vue2/src/components/
|
|
286
|
+
- ../vue2/src/components/timeline/components/timeline-item/timeline-item.vue- BentoTimelineItem variant property
|
|
287
|
+
- ../vue2/src/components/timeline/components/timeline-item/timeline-item.vue- `Use the BentoTimelineItem status modifier instead to modify the color of the timeline icon.
|
|
288
|
+
- ../vue2/src/components/timeline/components/timeline-item/timeline-item.vue- <bento-timeline-item status=red />`
|
|
289
|
+
- ../vue2/src/components/timeline/components/timeline-item/timeline-item.vue- 2.0.0
|
|
290
|
+
- ../vue2/src/components/timeline/components/timeline-item/timeline-item.vue- );
|
|
315
291
|
### Deprecation Found
|
|
316
292
|
|
|
317
293
|
- deprecate(
|
|
318
|
-
- ../vue2/src/components/
|
|
319
|
-
- ../vue2/src/components/
|
|
320
|
-
- ../vue2/src/components/
|
|
321
|
-
- ../vue2/src/components/
|
|
322
|
-
- ../vue2/src/components/
|
|
294
|
+
- ../vue2/src/components/textarea/textarea.vue- BentoTextarea value property
|
|
295
|
+
- ../vue2/src/components/textarea/textarea.vue- `The use of value prop in BentoTextarea is no longer supported.
|
|
296
|
+
- ../vue2/src/components/textarea/textarea.vue- Use the v-model or model-value property instead.`
|
|
297
|
+
- ../vue2/src/components/textarea/textarea.vue- 2.0.0
|
|
298
|
+
- ../vue2/src/components/textarea/textarea.vue- );
|
|
323
299
|
### Deprecation Found
|
|
324
300
|
|
|
325
301
|
- deprecate(
|
|
326
|
-
- ../vue2/src/components/
|
|
327
|
-
- ../vue2/src/components/
|
|
328
|
-
- ../vue2/src/components/
|
|
329
|
-
- ../vue2/src/components/
|
|
330
|
-
- ../vue2/src/components/
|
|
302
|
+
- ../vue2/src/components/filter-bar/components/select-filter/select-filter.vue- BentoFilterBar filter of type BentoFilterItemType.SELECT options message property
|
|
303
|
+
- ../vue2/src/components/filter-bar/components/select-filter/select-filter.vue- `Please remove the options.messages property from this filter, it is not required any more for persistent filters.
|
|
304
|
+
- ../vue2/src/components/filter-bar/components/select-filter/select-filter.vue- This will be the default behavior in the v2 and options.messages will be removed.`
|
|
305
|
+
- ../vue2/src/components/filter-bar/components/select-filter/select-filter.vue- 2.0.0
|
|
306
|
+
- ../vue2/src/components/filter-bar/components/select-filter/select-filter.vue- );
|
|
307
|
+
### Deprecation Found
|
|
308
|
+
|
|
309
|
+
- deprecate(
|
|
310
|
+
- ../vue2/src/components/filter-bar/components/select-filter/variants/select-country-filter/select-country-filter.vue- BentoSelectCountryFilter type with `options.variant===custom`
|
|
311
|
+
- ../vue2/src/components/filter-bar/components/select-filter/variants/select-country-filter/select-country-filter.vue- Use any of the other BentoSelectCountryFilter variants instead OR use BentoSelectFilter type for custom labels
|
|
312
|
+
- ../vue2/src/components/filter-bar/components/select-filter/variants/select-country-filter/select-country-filter.vue- 2.0.0
|
|
313
|
+
- ../vue2/src/components/filter-bar/components/select-filter/variants/select-country-filter/select-country-filter.vue- );
|
|
314
|
+
- ../vue2/src/components/filter-bar/components/select-filter/variants/select-country-filter/select-country-filter.vue- }
|
|
315
|
+
### Deprecation Found
|
|
316
|
+
|
|
317
|
+
- deprecate(
|
|
318
|
+
- ../vue2/src/components/filter-bar/components/boolean-filter/boolean-filter.vue- Boolean filter BentoFilterItemType.BOOLEAN
|
|
319
|
+
- ../vue2/src/components/filter-bar/components/boolean-filter/boolean-filter.vue- `Use the Radio group filter type BentoFilterItemType.RADIO_GROUP instead.`
|
|
320
|
+
- ../vue2/src/components/filter-bar/components/boolean-filter/boolean-filter.vue- 2.0.0
|
|
321
|
+
- ../vue2/src/components/filter-bar/components/boolean-filter/boolean-filter.vue- );
|
|
322
|
+
- ../vue2/src/components/filter-bar/components/boolean-filter/boolean-filter.vue- });
|
|
323
|
+
### Deprecation Found
|
|
324
|
+
|
|
325
|
+
- deprecate(
|
|
326
|
+
- ../vue2/src/components/filter-bar/components/input-filter/input-filter.vue- BentoInputFilter options property
|
|
327
|
+
- ../vue2/src/components/filter-bar/components/input-filter/input-filter.vue- `BentoInputFilter options no longer supports dropdown, dropdownPosition or variant attributes.
|
|
328
|
+
- ../vue2/src/components/filter-bar/components/input-filter/input-filter.vue- Use the BentoFilterItemType.INPUT_DROPDOWN instead of BentoFilterItemType.INPUT
|
|
329
|
+
- ../vue2/src/components/filter-bar/components/input-filter/input-filter.vue- <bento-filter-bar
|
|
330
|
+
- config=[{
|
|
331
331
|
|
|
332
332
|
---
|
|
333
333
|
|
package/dist/assets/index.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import BentoVue from './install'; export * from './components/accordion'; export * from './components/action-bar'; export * from './components/ai-tag'; export * from './components/alert'; export * from './components/anchor-scroller'; export * from './components/avatar'; export * from './components/button'; export * from './components/dashed-underline'; export * from './components/data-grid'; export * from './components/card'; export * from './components/date-picker'; export * from './components/date-range-picker'; export * from './components/date-time-picker'; export * from './components/draggable'; export * from './components/draggable/components/draggable-handle'; export * from './components/drawer'; export * from './components/dropdown'; export * from './components/checkbox'; export * from './components/chip'; export * from './components/click-outside'; export * from './components/code-snippet'; export * from './components/country'; export * from './components/currency'; export * from './components/date'; export * from './components/divider'; export * from './components/empty-state'; export * from './components/file-uploader'; export * from './components/filter-bar'; export * from './components/form-layout'; export * from './components/header-with-views'; export * from './components/image'; export * from './components/info-icon'; export * from './components/input-field'; export * from './components/input-field-password'; export * from './components/input-field-phone-number'; export * from './components/input-time'; export * from './components/inspector'; export * from './components/layout'; export * from './components/list'; export * from './components/loading-indicator'; export * from './components/link'; export * from './components/menu'; export * from './components/modal'; export * from './components/modal-fullscreen'; export * from './components/navigation-menu'; export * from './components/header'; export * from './components/pagination'; export * from './components/payment-method'; export * from './components/popover'; export * from './components/promo-banner'; export * from './components/radio-group'; export * from './components/rich-text-editor'; export * from './components/search-bar'; export * from './components/secondary-nav'; export * from './components/selection-card'; export * from './components/segmented-control'; export * from './components/sidepanel'; export * from './components/status'; export * from './components/stepper'; export * from './components/structured-list'; export * from './components/summary-grid'; export * from './components/tabs'; export * from './components/tag'; export * from './components/textarea'; export * from './components/timeline'; export * from './components/toast'; export * from './components/toggle'; export * from './components/tutorial'; export * from './components/typography'; // Export Composables export * from './composables/use-bento-base-filter'; export * from './composables/use-bento-currency'; export * from './composables/use-bento-theme'; export * from './composables/use-bento-toast-controller'; export * from './composables/use-click-outside'; export * from './composables/use-form-validate'; export * from './composables/use-bento-delayed-hover'; // Export Templates export * from './templates/dashboard-template'; export * from './templates/data-grid-template'; // Export Types export * from './types'; // Export Directives export * from './directives'; // AdlVue Plugin export default BentoVue; export { BentoTheme } from './install';
|
|
1
|
+
import BentoVue from './install'; export * from './components/accordion'; export * from './components/action-bar'; export * from './components/ai-tag'; export * from './components/alert'; export * from './components/anchor-scroller'; export * from './components/avatar'; export * from './components/button'; export * from './components/dashed-underline'; export * from './components/data-grid'; export * from './components/card'; export * from './components/date-picker'; export * from './components/date-range-picker'; export * from './components/date-time-picker'; export * from './components/draggable'; export * from './components/draggable/components/draggable-handle'; export * from './components/drawer'; export * from './components/dropdown'; export * from './components/checkbox'; export * from './components/chip'; export * from './components/click-outside'; export * from './components/code-snippet'; export * from './components/country'; export * from './components/currency'; export * from './components/date'; export * from './components/divider'; export * from './components/empty-state'; export * from './components/file-uploader'; export * from './components/filter-bar'; export * from './components/form-layout'; export * from './components/header-with-views'; export * from './components/image'; export * from './components/info-icon'; export * from './components/input-field'; export * from './components/input-field-password'; export * from './components/input-field-phone-number'; export * from './components/input-time'; export * from './components/inspector'; export * from './components/layout'; export * from './components/list'; export * from './components/loading-indicator'; export * from './components/link'; export * from './components/menu'; export * from './components/modal'; export * from './components/modal-fullscreen'; export * from './components/navigation-menu'; export * from './components/header'; export * from './components/pagination'; export * from './components/payment-method'; export * from './components/popover'; export * from './components/promo-banner'; export * from './components/radio-group'; export * from './components/rich-text-editor'; export * from './components/search-bar'; export * from './components/secondary-nav'; export * from './components/selection-card'; export * from './components/segmented-control'; export * from './components/sidepanel'; export * from './components/status'; export * from './components/stepper'; export * from './components/structured-list'; export * from './components/summary-grid'; export * from './components/tabs'; export * from './components/table-of-contents'; export * from './components/tag'; export * from './components/textarea'; export * from './components/timeline'; export * from './components/toast'; export * from './components/toggle'; export * from './components/tutorial'; export * from './components/typography'; // Export Composables export * from './composables/use-bento-base-filter'; export * from './composables/use-bento-currency'; export * from './composables/use-bento-theme'; export * from './composables/use-bento-toast-controller'; export * from './composables/use-click-outside'; export * from './composables/use-form-validate'; export * from './composables/use-bento-delayed-hover'; // Export Templates export * from './templates/dashboard-template'; export * from './templates/data-grid-template'; // Export Types export * from './types'; // Export Directives export * from './directives'; // AdlVue Plugin export default BentoVue; export { BentoTheme } from './install';
|