Skip to content

Conversation

shruti862
Copy link
Contributor

Description

Updated lib/KListWithOverflow.vue and lib/KBreadcrumbs.vue files

Issue addressed

Addresses issue #693

Addresses #PR# HERE

Before/after screenshots

Changelog

  • Description: Summary of change(s)
  • Products impact: Choose from - none (for internal updates) / bugfix / new API / updated API / removed API. If it's 'none', use "-" for all items below to indicate they are not relevant.
  • Addresses: Link(s) to GH issue(s) addressed. Include KDS links as well as links to related issues in a consumer product repository too.
  • Components: Affected public KDS component. Do not include internal sub-components or documentation components.
  • Breaking: Will this change break something in a consumer? Choose from: yes / no
  • Impacts a11y: Does this change improve a11y or adds new features that can be used to improve it? Choose from: yes / no
  • Guidance: Why and how to introduce this update to a consumer? Required for breaking changes, appreciated for changes with a11y impact, and welcomed for non-breaking changes when relevant.

Steps to test

  1. Step 1
  2. Step 2
  3. ...

(optional) Implementation notes

At a high level, how did you implement this?

Does this introduce any tech-debt items?

Testing checklist

  • Contributor has fully tested the PR manually
  • If there are any front-end changes, before/after screenshots are included
  • Critical and brittle code paths are covered by unit tests
  • The change is described in the changelog section above

Reviewer guidance

  • Is the code clean and well-commented?
  • Are there tests for this change?
  • Are all UI components LTR and RTL compliant (if applicable)?
  • Add other things to check for here

Comments

@MisRob MisRob marked this pull request as draft December 9, 2024 04:41
@MisRob
Copy link
Member

MisRob commented Dec 9, 2024

Converting to draft #693 (comment)

@MisRob
Copy link
Member

MisRob commented Dec 9, 2024

@shruti862 Also referencing @AlexVelezLl's comments that touches on some areas you mentioned, perhaps it helps #693 (comment)

@MisRob MisRob requested a review from AlexVelezLl December 9, 2024 08:54
@MisRob
Copy link
Member

MisRob commented Dec 9, 2024

@AlexVelezLl Hi Alex, @shruti862 continues this work and already followed some of your guidance. @shruti862 experienced some blockers and I asked to elaborate in this PR on some specific places. Would you please be available for giving a direction?

cd730f1

@shruti862
Copy link
Contributor Author

Screenshot from 2024-12-09 14-08-55
1.) Unable to get separators '>' between the items of list
2.) In the dropdown menu ,only the overflowed text is visible, link is not being applied.

@MisRob MisRob added the TODO: needs review Waiting for review label Dec 9, 2024
@AlexVelezLl
Copy link
Member

Thanks @shruti862! I will take a look later today :)

Copy link
Member

@AlexVelezLl AlexVelezLl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @shruti862!! This is a great start! I have left some instructions to solve the issues you were experiencing, along with some other things I noticed. Thank you!!

.more-button-wrapper {
visibility: hidden;
visibility: visible;
order: 0; /* Ensure it remains in its original position for keyboard navigation */
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We cant have this solution for the position of the button, because Keyboard navigation would not be the same. We need to keep the current behaviour in KBreadcrumbs that if the more button appears at the beginning, the keyboard navigation should focus it first, before the rest items.

.more-button-wrapper {
visibility: hidden;
visibility: visible;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm interested to know why is this change needed? The more button starts as hidden because we measure its width first, before doing the next computations, so to avoid it being visible for that first render we initialize its visibility as hidden.

setOverflowItems() {
const { list, listWrapper, moreButtonWrapper } = this.$refs;
// Exit early if necessary refs are not available
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets remove these comments, as the code itself is descriptive

directionIndexes.forEach(i => {
const itemWidth = itemsSizes[i].width;
// If the item dont fit in the available space or if we have already
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets get back these comments that describes a behaviour a little bit more complex

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(Also, lets uncomment this part and work on top of the current implementation ;)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done:)

appearance="raised-button"
>
<template #menu>
<!-- issue :: dropdown menu shows only text of the overflowItems but not the link , I don't know whether i am doing the right way to reference link or not -->
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For this you can add these lines in KDropdownMenu:

https://github.com/shruti862/kolibri-design-system/blob/cd730f1821ceef5becb428b01d392dfdf1ae546c/lib/KDropdownMenu.vue#L20-L25

      <UiMenu 
        ref="menu" 
        :options="options" 
        :hasIcons="hasIcons" 
        @select="handleSelection" 
      >
        <template #option="{ option }">
          <slot name="option" :option="option"/>
        </template>
      </UiMenu>

And then you will be able to customize these dropdown options using this option slot in KDropdownMenu. There we can handle the link behaviour

}
// Add separators between items
return crumbs.flatMap((item, index) =>
index > 0 ? [{ type: 'separator' }, item] : [item]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The reason the dividers are not being visible is because we are passing this as type: "separator" while the correct name is type: "divider"

<style scoped>
.breadcrumbs-divider {
margin: 0 10px;
color: black; /* Adjust color for the ">" separator */
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets standarize the name, and lets call it always "divider" instead of "separator"

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, lets not use burned colors. Instead we can use our color tokens, we cant reference these in css, so we will need to set this color in the vue template

<!-- issue :: dropdown menu shows only text of the overflowItems but not the link , I don't know whether i am doing the right way to reference link or not -->
<KDropdownMenu
:options="overflowItems
.filter(item => item.type !== 'separator') // Filter out separators
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

idem "divider" instead of separator

.list-wrapper {
display: flex;
justify-content: space-between;
justify-content: space-between;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets add a alignItems: center instruction here, so the default behaviour is that the items are centered

@shruti862 shruti862 reopened this Dec 12, 2024
@shruti862
Copy link
Contributor Author

shruti862 commented Dec 12, 2024

Screenshot from 2024-12-12 19-01-41
@AlexVelezLl
I have fixed the keyboard navigation problem and alignment of list items when there is no more button in KListWithOverflow .
Now I am only facing problem in KBreadcrumb , my last visible item of list is getting outside of box even if there is enough space
left in list-wrapper box. Can you please help me resolving this issue?
Screenshot from 2024-12-12 19-03-45
One more thing I noticed that list items having links differ from whats in the https://design-system.learningequality.org/kbreadcrumbs/ page ,

@shruti862
Copy link
Contributor Author

Screenshot from 2024-12-12 19-12-52
when I mounted the items array , link is present on list tems which is not in the https://design-system.learningequality.org/kbreadcrumbs/ page

Copy link
Member

@AlexVelezLl AlexVelezLl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @shruti862! Thanks! This is looking so much better! I have made some notes that will help to solve the issues that you are experiencing :).

Apologies for the late response 😅.

</slot>
<!-- @slot Slot responsible of rendering each item in the visible list -->
></slot>
<!-- Item Slot -->
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets gonna revert this change, this comment is useful for KDS docs:

Suggested change
<!-- Item Slot -->
<!-- @slot Slot responsible of rendering each item in the visible list -->

}
/* When the 'start-button' class is added, position visually at the start */
.more-button-wrapper.start-button {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I dont think this change is needed anymore, is it?

:to="item.link"
>

<template #text="{ text }">
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Be aware that KRouterLink doesnt have a #text slot. So we just need to use the default slot here instead

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done :)

itemsSizes.push(itemSize);
}
const indexSequence = [...Array(list.children.length).keys()];
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are a couple of things that needs to be changed with this reversed behaviour:

  1. The fixDividersVisibility method. The intention of this method is to avoid that a divider is placed as the first or last item in the list. And here we calculate this lastVisibleIdx https://github.com/shruti862/kolibri-design-system/blob/01aededc7ac60f49278ebf9ff15db89d8aec0581/lib/KListWithOverflow.vue#L248 which will need to change when we are in reversed mode because the lastVisibleIdx is not the same in both cases.
  2. We have a couple of little bugs here and here, because we change the visibility of the item, but we need to change also the position to be position: absolute if the item is hidden, and position: unset when the item is visible. So, althoguh its not a regression of your PR, fixing this will prevent some bugs that become more apparent when we work with the overflowDirection as "start".

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

considered

.breadcrumbs-divider {
margin-right: 8px;
margin-left: 8px;
color: #000000;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets avoid burned color, and lets use the KDS color tokens instead https://design-system.learningequality.org/colors/#tokens-text

padding: 16px;
font-size: 16px;
font-weight: bold;
color: #4368f5;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

idem, lets avoid burned colors

left: -1000em;
padding: 16px;
font-size: 16px;
color: #000000;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Idem

@shruti862
Copy link
Contributor Author

@AlexVelezLl Can you please review my current changes specially the fixDividersVisibility method ::Since the lastVisibleIdx in case of overflowdirection:'start' will always be last element of list.children because overflowIdx array is calculated after reversing the list.children for start direction so I didn't applied any checks on it.

@shruti862
Copy link
Contributor Author

shruti862 commented Jan 5, 2025

@AlexVelezLl But now i am facing issue on truncating the last visible item of the list. Could you please guide me how to approach this??
Right now the output is looking something like this::
Screenshot from 2025-01-05 23-42-37

@AlexVelezLl AlexVelezLl self-assigned this Jan 14, 2025
@AlexVelezLl AlexVelezLl linked an issue Feb 5, 2025 that may be closed by this pull request
1 task
Copy link
Member

@AlexVelezLl AlexVelezLl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @shruti862! Apologies for the late response, this is a big change and needed to find a considerable amount of time to review it well. I have left some suggestions here to fix the problems you are facing, and also some considerations we need to take into account. Let me know if you have any question 🤗.

class="breadcrumbs"
v-bind="$attrs"
:aria-label="$attrs.ariaLabel"
<div class="breadcrumbs">
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

instead of a div, we will need to have here a <nav instead, just as it was before.

class="breadcrumbs-dropdown"
:style="{ background: $themeTokens.surface }"
>
<ol class="breadcrumbs-dropdown-items">
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We also need another change here. In the past, the list container was an ol`` element, so we need to modify KListWithOverflowto receive a prop, lets saylistElement` or so, so we can indicate to the KListWithOverflow that the list should be an ol, so we can have the semantic structure ol > li

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @AlexVelezLl , Since I have done so many recent changes in KBreadcrumb I am confused where to incorporate this change, could you please guide me regrading this in my current implementation

if (this.isDivider(this.items[firstOverflowedIdx])) {
overflowItemsIdx.shift();
}
if (this.overflowDirection === 'start') {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To fix the divider visibility of the overflowed items, we dont need any change actually 😅, so we can just have:

        const [firstOverflowedIdx] = overflowItemsIdx;
        if (this.isDivider(this.items[firstOverflowedIdx])) {
          overflowItemsIdx.shift();
        }

const dividerNode = list.children[lastVisibleIdx];
dividerNode.style.visibility = 'hidden';
return itemsSizes[lastVisibleIdx].width;
const lastVisibleIdx = firstOverflowedIdx - 1;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here is where we need to do the change, because when we have an overflowDirection == start, then we will need to check the visibility of the first item instead. So we can do this instead:

if (this.overflowDirection === 'start') {
  const firstVisibleIdx = firstOverflowedIdx + 1;
  if (this.isDivider(this.items[firstVisibleIdx])) {
    const dividerNode = list.children[firstVisibleIdx];
    dividerNode.style.visibility = 'hidden';
    dividerNode.style.position = 'absolute';
    return itemsSizes[firstVisibleIdx].width;
  }
} else {
  const lastVisibleIdx = firstOverflowedIdx - 1;
  if (this.isDivider(this.items[lastVisibleIdx])) {
    const dividerNode = list.children[lastVisibleIdx];
    dividerNode.style.visibility = 'hidden';
    return itemsSizes[lastVisibleIdx].width;
  }
}

In general this method should look like:

      fixDividersVisibility(overflowItemsIdx, itemsSizes) {
        if (overflowItemsIdx.length === 0) {
          return;
        }

        const { list } = this.$refs;

        const [firstOverflowedIdx] = overflowItemsIdx;
        if (this.isDivider(this.items[firstOverflowedIdx])) {
          overflowItemsIdx.shift();
        }

        if (this.overflowDirection === 'start') {
          const firstVisibleIdx = firstOverflowedIdx + 1;
          if (this.isDivider(this.items[firstVisibleIdx])) {
            const dividerNode = list.children[firstVisibleIdx];
            dividerNode.style.visibility = 'hidden';
            dividerNode.style.position = 'absolute';
            return itemsSizes[firstVisibleIdx].width;
          }
        } else {
          const lastVisibleIdx = firstOverflowedIdx - 1;
          if (this.isDivider(this.items[lastVisibleIdx])) {
            const dividerNode = list.children[lastVisibleIdx];
            dividerNode.style.visibility = 'hidden';
            return itemsSizes[lastVisibleIdx].width;
          }
        }
      },

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

</div>
</KDropdownMenu>
</template>
</KIconButton>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To avoid messing with the dividers visibility after the KIconButton, we can just add the divider besides the KIconButton from the more slot, since for this case, always that we show the more slot, will need to show the divider. So we can have just something like

      <template #more="{ overflowItems }">
        <div style="display: flex; align-items: center;">
          <KIconButton
            ...
          >
            ...
          </KIconButton>
          <span
            :style="{ color: $themeTokens.text }"
            class="breadcrumbs-divider"
          >›
          </span>
        </div>
      </template>

>
<!-- Render individual breadcrumb items -->
<template #item="{ item,index }">
<li>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We will also need to set the maxWidth that we set to the spans here to the li, for it to know what its its own max width, instead of getting it from the listOverflow container.

dir="auto"
:title="item.text"
>
<template #default="{ text }">
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

doesnt have a slot with props, and it doesnt pass the text to the slot, and this is making that we dont render the span with the breadcrumbs-crumb-text class. We need to have the slot defined just as <template #default> and inside render the text using item.text

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@shruti862 This havent been yet solved, please lets update this KRouterLink to this:

          <KRouterLink
            v-if="item.link && index !== preparedCrumbs.length - 1"
            :to="item.link"
          >
            <span
              class="breadcrumbs-crumb-text"
              :style="{
                maxWidth: index === preparedCrumbs.length - 1 ? lastBreadcrumbMaxWidth : 'none',
              }"
              dir="auto"
            >
              {{ item.text }}
            </span>
          </KRouterLink>

Copy link
Contributor Author

@shruti862 shruti862 Apr 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @AlexVelezLl , updating KRouterLink as you suggested is removing underline from link text.
So,instead of using default slot ,I have used text slot in new commit.

@shruti862
Copy link
Contributor Author

Hey @MisRob , I was just letting @AlexVelezLl to know that previous sub-issue of last visible item when showSingleItem=true being truncated is solved now.
Regarding the other sub-issue I am facing ,I appreciate the guidance you provided on approaching issues more systematically. I'll take a deeper look into why this is happening and try to pinpoint the root cause.
Thanks !

@MisRob
Copy link
Member

MisRob commented Feb 26, 2025

Ah I totally misunderstood this particular note @shruti862, apologies. Thanks for mentioning it. Yes it was just meant to be a [wrongly chosen] example that nevertheless applies to other issues throughout this work - I think we're on the same page. Thank you and keep up the great work here :)

});
if (this.showAtLeastOne && overflowItemsIdx.length === itemsSizes.length) {
const lastItemIdx = directionIndexes[directionIndexes.length - 1];
Copy link
Contributor Author

@shruti862 shruti862 Feb 26, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @AlexVelezLl ,for the prop showAtLeastOne , I thought to remove last overflowItem from overflowItems array and also set its visibility to 'visible'.
But I noticed that its visibility is still get set to 'hidden' when available space is less than last item space

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The correct condition for this should be something like:

        if (this.showAtLeastOne && overflowItemsIdx.length === itemsSizes.length) {
          const firstHiddenIdx = overflowItemsIdx.shift();
          const firstHiddenItem = list.children[firstHiddenIdx];
          firstHiddenItem.style.visibility = 'visible';
          firstHiddenItem.style.position = 'unset';
          maxWidth = availableWidth;
          maxHeight = Math.max(maxHeight, itemsSizes[firstHiddenIdx].height);
        }

This should work :)

Although we still need to figure out a better way to handle the text truncation since with this we now need to show the text truncation for widths shorter than 300px too.

<KListWithOverflow
overflowDirection="start"
:items="preparedCrumbs"
:showAtLeastOne="true"
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

passed the showAtLeastOne prop as true

@shruti862
Copy link
Contributor Author

shruti862 commented Feb 26, 2025

As the container size decreases and can no longer accommodate the last visible item, all items, including the "More" button, become hidden. However, the visibility of the "More" button remains set to 'visible'.
Screencast from 26-02-25 06:52:41 PM IST.webm

@MisRob
Copy link
Member

MisRob commented Mar 10, 2025

As the container size decreases and can no longer accommodate the last visible item, all items, including the "More" button, become hidden. However, the visibility of the "More" button remains set to 'visible'.

Hi @shruti862, thanks for the recording - I would expect the More button never disappear if it has any items (which is this case).

Copy link
Member

@AlexVelezLl AlexVelezLl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @shruti862! I have left some comments, I hope this helps :) We are very close to get it!

dir="auto"
:title="item.text"
>
<template #default="{ text }">
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@shruti862 This havent been yet solved, please lets update this KRouterLink to this:

          <KRouterLink
            v-if="item.link && index !== preparedCrumbs.length - 1"
            :to="item.link"
          >
            <span
              class="breadcrumbs-crumb-text"
              :style="{
                maxWidth: index === preparedCrumbs.length - 1 ? lastBreadcrumbMaxWidth : 'none',
              }"
              dir="auto"
            >
              {{ item.text }}
            </span>
          </KRouterLink>

const item = list.children[idx];
item.style.visibility = 'visible';
item.style.position = 'unset';
maxWidth += itemsSizes[idx].width;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We also need to add this here: maxHeight = Math.max(maxHeight, itemsSizes[idx].height); to update the max height accordingly

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

});
if (this.showAtLeastOne && overflowItemsIdx.length === itemsSizes.length) {
const lastItemIdx = directionIndexes[directionIndexes.length - 1];
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The correct condition for this should be something like:

        if (this.showAtLeastOne && overflowItemsIdx.length === itemsSizes.length) {
          const firstHiddenIdx = overflowItemsIdx.shift();
          const firstHiddenItem = list.children[firstHiddenIdx];
          firstHiddenItem.style.visibility = 'visible';
          firstHiddenItem.style.position = 'unset';
          maxWidth = availableWidth;
          maxHeight = Math.max(maxHeight, itemsSizes[firstHiddenIdx].height);
        }

This should work :)

Although we still need to figure out a better way to handle the text truncation since with this we now need to show the text truncation for widths shorter than 300px too.

directionIndexes.forEach(i => {
const itemWidth = itemsSizes[i].width;
// If the item dont fit in the available space or if we have already
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(Also, lets uncomment this part and work on top of the current implementation ;)

@shruti862
Copy link
Contributor Author

Hi @shruti862! I have left some comments, I hope this helps :) We are very close to get it!

Hey @AlexVelezLl, I appreciate your guidance and support in resolving this issue. I'll go through the changes you suggested and provide an update soon.

@shruti862
Copy link
Contributor Author

Hey @AlexVelezLl, I've implemented all the suggested changes. However, I noticed one issue — the last item in the list doesn't show the '...' on text overflow.
image

@AlexVelezLl
Copy link
Member

AlexVelezLl commented May 1, 2025

Hi @shruti862, It seems there are still some unresolved comments. Please take a look to all my comments in this view https://github.com/learningequality/kolibri-design-system/pull/857/files and make sure you have considered/responded/implemented all of them :). Thanks!

@shruti862
Copy link
Contributor Author

Hi @shruti862, It seems there are still some unresolved comments. Please take a look to all my comments in this view https://github.com/learningequality/kolibri-design-system/pull/857/files and make sure you have considered/responded/implemented all of them :). Thanks!

Hey @AlexVelezLl , Currently my end semester exams are going on. I will get back to this issue within 2 days :)

@AlexVelezLl
Copy link
Member

Hey @shruti862! Thanks for letting us know! Please take your time, no rush! Good luck with your exams!

@shruti862
Copy link
Contributor Author

Hey @AlexVelezLl , I have tried to answer all the unresolved comments, please do have a look

@MisRob MisRob requested a review from AlexVelezLl June 4, 2025 02:45
@MisRob
Copy link
Member

MisRob commented Jul 10, 2025

Hi @shruti862, in the course of this work, we've noticed some unexpected limitations of KListWithOverflow and there's need for some decisions before we can complete this refactor. As you're now working on your GSoC project, I thought it'd be best to let you focus on that, and re-assign this to @AlexVelezLl who will explore what would be possible next steps. Thanks a lot to both!

@MisRob MisRob changed the title updated lib/KListWithOverflow.vue and lib/KBreadcrumbs.vue [DRAFT] Explore refactoring KBreadcrumbs to use KListWithOverflow Jul 10, 2025
@MisRob MisRob removed the TODO: needs review Waiting for review label Jul 10, 2025
@marcellamaki marcellamaki added this to the KDS Priority Triage milestone Aug 12, 2025
@marcellamaki marcellamaki self-assigned this Sep 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Refactor KBreadcrumbs to utilize KListWithOverflow

4 participants