diff --git a/packages/oruga/src/components/carousel/Carousel.vue b/packages/oruga/src/components/carousel/Carousel.vue index e0eb94f41..b70011ab1 100644 --- a/packages/oruga/src/components/carousel/Carousel.vue +++ b/packages/oruga/src/components/carousel/Carousel.vue @@ -88,6 +88,7 @@ function restartTimer(): void { startTimer(); } +// provided data is a computed ref to enjure reactivity const provideData = computed(() => ({ restartTimer, itemWidth: itemWidth.value, @@ -96,8 +97,8 @@ const provideData = computed(() => ({ setActive: (index: number): void => switchTo(index), })); -/** Provide functionalities and data to child item components */ -const { childItems } = useProviderParent(rootRef, { data: provideData }); +/** provide functionalities and data to child item components */ +const { childItems } = useProviderParent({ rootRef, data: provideData }); const activeIndex = defineModel({ default: 0 }); const scrollIndex = ref(props.modelValue); @@ -471,6 +472,7 @@ function indicatorItemAppliedClasses(index: number): ClassBind[] { --> + diff --git a/packages/oruga/src/components/carousel/CarouselItem.vue b/packages/oruga/src/components/carousel/CarouselItem.vue index 39a801a69..ce0eb859e 100644 --- a/packages/oruga/src/components/carousel/CarouselItem.vue +++ b/packages/oruga/src/components/carousel/CarouselItem.vue @@ -23,7 +23,7 @@ const props = withDefaults(defineProps(), { ariaRole: () => getDefault("carousel.ariaRole", "option"), }); -// Inject functionalities and data from the parent carousel component +/** inject functionalities and data from the parent component */ const { parent, item } = useProviderChild(); const isActive = computed(() => parent.value.activeIndex === item.value.index); @@ -54,8 +54,8 @@ const itemClasses = defineClasses( v-if="parent" :class="itemClasses" :style="itemStyle" - :data-id="`carousel-${item.identifier}`" data-oruga="carousel-item" + :data-id="`carousel-${item.identifier}`" :role="ariaRole" aria-roledescription="item" :aria-selected="isActive" diff --git a/packages/oruga/src/components/dropdown/Dropdown.vue b/packages/oruga/src/components/dropdown/Dropdown.vue index df2b0a54d..a8baa1bc0 100644 --- a/packages/oruga/src/components/dropdown/Dropdown.vue +++ b/packages/oruga/src/components/dropdown/Dropdown.vue @@ -343,7 +343,7 @@ function selectItem(value: T): void { } } -// Provided data is a computed ref to enjure reactivity. +// provided data is a computed ref to enjure reactivity const provideData = computed>(() => ({ disabled: props.disabled, multiple: isTrueish(props.multiple), @@ -351,8 +351,8 @@ const provideData = computed>(() => ({ selectItem, })); -/** Provide functionalities and data to child item components */ -useProviderParent(contentRef, { data: provideData }); +/** provide functionalities and data to child item components */ +useProviderParent({ data: provideData }); // --- Computed Component Classes --- diff --git a/packages/oruga/src/components/dropdown/DropdownItem.vue b/packages/oruga/src/components/dropdown/DropdownItem.vue index 5b30d9b97..3a7569ab6 100644 --- a/packages/oruga/src/components/dropdown/DropdownItem.vue +++ b/packages/oruga/src/components/dropdown/DropdownItem.vue @@ -39,8 +39,8 @@ const emits = defineEmits<{ click: [value: T, event: Event]; }>(); -// Inject functionalities and data from the parent component -const { parent } = useProviderChild>(); +/** inject functionalities and data from the parent component */ +const { parent, item } = useProviderChild>(); const isClickable = computed( () => !parent.value.disabled && !props.disabled && props.clickable, @@ -81,12 +81,14 @@ const rootClasses = defineClasses( + @click="selectItem" + @keypress.enter="selectItem"> diff --git a/packages/oruga/src/components/menu/Menu.vue b/packages/oruga/src/components/menu/Menu.vue index 684578a9f..951db9755 100644 --- a/packages/oruga/src/components/menu/Menu.vue +++ b/packages/oruga/src/components/menu/Menu.vue @@ -46,7 +46,8 @@ const provideData = computed(() => ({ })); /** provide functionalities and data to child item components */ -const { childItems } = useProviderParent(rootRef, { +const { childItems } = useProviderParent({ + rootRef, data: provideData, }); diff --git a/packages/oruga/src/components/menu/MenuItem.vue b/packages/oruga/src/components/menu/MenuItem.vue index d19f788de..970c91d60 100644 --- a/packages/oruga/src/components/menu/MenuItem.vue +++ b/packages/oruga/src/components/menu/MenuItem.vue @@ -60,12 +60,12 @@ const providedData = computed(() => ({ reset, })); -// inject functionalities and data from the parent menu component +/** inject functionalities and data from the parent menu component */ const { parent, item } = useProviderChild({ data: providedData, }); -// inject functionalities and data from the parent menu-item component +/** inject functionalities and data from the parent menu-item component */ const providedItem = useProviderChild({ key: "menu-item", needParent: false, @@ -114,7 +114,7 @@ const provideData = computed(() => ({ })); /** provide functionalities and data to child item components */ -useProviderParent(rootRef, { key: "menu-item", data: provideData }); +useProviderParent({ rootRef, key: "menu-item", data: provideData }); // --- Computed Component Classes --- @@ -148,8 +148,8 @@ const submenuClasses = defineClasses([ ref="rootElement" :role="ariaRole" :class="itemClasses" - :data-id="identifier" data-oruga="menu-item" + :data-id="identifier" aria-roledescription="item"> (() => ({ max: props.max, min: props.min, })); -/** Provide functionalities and data to child item components */ -useProviderParent(undefined, { data: provideData }); +/** provide functionalities and data to child item components */ +useProviderParent({ data: provideData }); const valueStart = ref(0); const valueEnd = ref(0); diff --git a/packages/oruga/src/components/slider/SliderTick.vue b/packages/oruga/src/components/slider/SliderTick.vue index 005cf7508..5fb9f8896 100644 --- a/packages/oruga/src/components/slider/SliderTick.vue +++ b/packages/oruga/src/components/slider/SliderTick.vue @@ -37,8 +37,8 @@ const props = defineProps({ }, }); -// Inject functionalities and data from the parent carousel component -const { parent } = useProviderChild(); +/** inject functionalities and data from the parent component */ +const { parent } = useProviderChild({ register: false }); const position = computed(() => { const pos = diff --git a/packages/oruga/src/components/steps/StepItem.vue b/packages/oruga/src/components/steps/StepItem.vue index 41f138981..1928f6e9b 100644 --- a/packages/oruga/src/components/steps/StepItem.vue +++ b/packages/oruga/src/components/steps/StepItem.vue @@ -47,6 +47,7 @@ const itemValue = props.value || useId(); const slots = useSlots(); +// provided data is a computed ref to enjure reactivity const providedData = computed>(() => ({ ...props, value: itemValue, @@ -60,7 +61,7 @@ const providedData = computed>(() => ({ deactivate, })); -// inject functionalities and data from the parent carousel component +/** inject functionalities and data from the parent component */ const { parent, item } = useProviderChild({ data: providedData, }); @@ -180,8 +181,8 @@ const panelClasses = defineClasses(["stepPanelClass", "o-steps__panel"]); v-bind="$attrs" :id="`tabpanel-${item.identifier}`" :class="panelClasses" - :data-id="`steps-${item.identifier}`" data-oruga="steps-item" + :data-id="`steps-${item.identifier}`" :aria-labelledby="`tab-${item.identifier}`" aria-roledescription="item">