Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

List: Support keyboard dragging between different Lists #7537

Open
2 of 3 tasks
Csmith246 opened this issue Aug 16, 2023 · 15 comments
Open
2 of 3 tasks

List: Support keyboard dragging between different Lists #7537

Csmith246 opened this issue Aug 16, 2023 · 15 comments
Assignees
Labels
2 - in development Issues that are actively being worked on. ArcGIS Instant Apps Issues logged by ArcGIS Instant Apps team members. breaking change Issues and pull requests with code changes that are not backwards compatible. c-list Issues that pertain to the calcite-list component calcite-components Issues specific to the @esri/calcite-components package. design Issues that need design consultation prior to development. enhancement Issues tied to a new feature or request. estimate - 5 A few days of work, definitely requires updates to tests. impact - p2 - want for an upcoming milestone User set priority impact status of p2 - want for an upcoming milestone p - medium Issue is non core or affecting less that 60% of people using the library visual changes Issues with visual changes that are added for consistency, but are not backwards compatible

Comments

@Csmith246
Copy link

Check existing issues

Description

Be able to use the keyboard to drag between lists. Currently, you can only drag via keyboard within a List.

Acceptance Criteria

Grouping multiple lists together, be able to perform drag and drop of different list items with only the keyboard.

In terms of implementation, I'd assume using the left/right arrows when in keyboard drag mode on a List Item would just find the next List in the page (to the left or right) and then move the item to that List, if it exists.

Relevant Info

Ref to similar issue: #7046

Which Component

Calcite List

Example Use Case

In Instant Apps, our Position Manager ties 4 Calcite Lists together. The desire is to support keyboard only movement between the lists for accessibility.

PositionManagerAccessibilityRequest

Priority impact

p3 - want for upcoming milestone

Calcite package

  • @esri/calcite-components
  • @esri/calcite-components-react

Esri team

ArcGIS Instant Apps

@Csmith246 Csmith246 added 0 - new New issues that need assignment. enhancement Issues tied to a new feature or request. needs triage Planning workflow - pending design/dev review. labels Aug 16, 2023
@github-actions github-actions bot added ArcGIS Instant Apps Issues logged by ArcGIS Instant Apps team members. p3 - want for upcoming milestone calcite-components Issues specific to the @esri/calcite-components package. labels Aug 16, 2023
@geospatialem
Copy link
Member

Effort should be considered with the effort in #7426

@geospatialem geospatialem added p - medium Issue is non core or affecting less that 60% of people using the library estimate - 5 A few days of work, definitely requires updates to tests. needs milestone Planning workflow - pending milestone assignment, has priority and/or estimate. and removed needs triage Planning workflow - pending design/dev review. labels Aug 21, 2023
@geospatialem geospatialem removed the needs milestone Planning workflow - pending milestone assignment, has priority and/or estimate. label Sep 6, 2023
@geospatialem geospatialem added 1 - assigned Issues that are assigned to a sprint and a team member. and removed 0 - new New issues that need assignment. labels Apr 22, 2024
@aPreciado88 aPreciado88 added 2 - in development Issues that are actively being worked on. and removed 1 - assigned Issues that are assigned to a sprint and a team member. labels Apr 22, 2024
@geospatialem geospatialem added 0 - new New issues that need assignment. and removed 2 - in development Issues that are actively being worked on. labels Apr 24, 2024
@macandcheese macandcheese added the c-list Issues that pertain to the calcite-list component label May 1, 2024
@geospatialem geospatialem removed this from the 2024-05-28 - May Main Release milestone May 6, 2024
@geospatialem geospatialem added the needs milestone Planning workflow - pending milestone assignment, has priority and/or estimate. label May 6, 2024
@geospatialem geospatialem added 1 - assigned Issues that are assigned to a sprint and a team member. and removed needs milestone Planning workflow - pending milestone assignment, has priority and/or estimate. labels May 15, 2024
@geospatialem geospatialem added this to the 2024-08-27 - Aug Release milestone May 15, 2024
@geospatialem
Copy link
Member

Dependent on the spike for #9261.

@geospatialem geospatialem added impact - p2 - want for an upcoming milestone User set priority impact status of p2 - want for an upcoming milestone and removed p3 - want for upcoming milestone labels May 21, 2024
@driskull
Copy link
Member

@geospatialem I'd like to implement a menu to be able to move items up, down, first, last and between lists.

Something like: https://atlassian.design/components/pragmatic-drag-and-drop/examples/#list

However, to do this, the current space bar key for starting movement would need to change to open a menu.

Would we want to pursue this route in place of the existing functionality of moving with arrow keys?

@geospatialem
Copy link
Member

@geospatialem I'd like to implement a menu to be able to move items up, down, first, last and between lists.

Something like: https://atlassian.design/components/pragmatic-drag-and-drop/examples/#list

However, to do this, the current space bar key for starting movement would need to change to open a menu.

Would we want to pursue this route in place of the existing functionality of moving with arrow keys?

@driskull This sounds like a great approach! But would think this would fall into a breaking change, is it something we could hold off on until late 2024?

@driskull
Copy link
Member

Yes, if we want to move this issue to another milestone.

@geospatialem geospatialem added breaking change Issues and pull requests with code changes that are not backwards compatible. visual changes Issues with visual changes that are added for consistency, but are not backwards compatible labels Jul 22, 2024
@driskull
Copy link
Member

driskull commented Oct 1, 2024

This is going to require a new internal component to handle the dropdown menu.

I can't use calcite-handle because it would require a large refactor and calcite-sortable-list requires it as is.

@driskull driskull added 2 - in development Issues that are actively being worked on. and removed 1 - assigned Issues that are assigned to a sprint and a team member. labels Oct 3, 2024
@driskull
Copy link
Member

driskull commented Oct 3, 2024

@geospatialem if we don't want a dropdown menu to move, we could go with a dialog like shown

Dialog design: https://atlassian.design/components/pragmatic-drag-and-drop/examples/#tree
Menu design: https://atlassian.design/components/pragmatic-drag-and-drop/examples/#board

@ashetland @SkyeSeitz what are your thoughts?

@driskull driskull added the design Issues that need design consultation prior to development. label Oct 3, 2024
@ashetland
Copy link

ashetland commented Oct 3, 2024

I think I'm missing the nuance, both those example look the same. In these examples [enter], [space], and [down-arrow] all open the menu. I do like the gropings in the menu for in-list and between-list:

CleanShot 2024-10-03 at 16 10 42@2x

@driskull
Copy link
Member

driskull commented Oct 3, 2024

@ashetland
Copy link

Oh! Thanks, @driskull. I definitely prefer the dropdown menu of the Dialog. It's harder to track context in the state.

@ashetland
Copy link

What's the issue with the dropdown approach? In the linked examples, [enter], [space], and [down-arrow] all open the menu.

@driskull
Copy link
Member

driskull commented Oct 3, 2024

What's the issue with the dropdown approach? In the linked examples, [enter], [space], and [down-arrow] all open the menu.

Nothing, I just wanted to consult some designers to make sure we're taking the right approach.

@ashetland
Copy link

Awesome. Really like this direction. Also like that click+drag doesn't open the menu, but a simple click does open it.

@driskull
Copy link
Member

driskull commented Oct 3, 2024

When moving lists, do you think it should move to the top or the bottom of the list? My initial feeling was the bottom but the demos linked move to the top.

@ashetland
Copy link

ashetland commented Oct 3, 2024

Top of the list feels more expected to me. This would also match the behavior of Combobox with allow-custom-values. Would we also be adding an auto-scroll to the top when moved?

driskull added a commit that referenced this issue Oct 7, 2024
**Related Issue:** #7537

## Summary

- add messages for translation
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2 - in development Issues that are actively being worked on. ArcGIS Instant Apps Issues logged by ArcGIS Instant Apps team members. breaking change Issues and pull requests with code changes that are not backwards compatible. c-list Issues that pertain to the calcite-list component calcite-components Issues specific to the @esri/calcite-components package. design Issues that need design consultation prior to development. enhancement Issues tied to a new feature or request. estimate - 5 A few days of work, definitely requires updates to tests. impact - p2 - want for an upcoming milestone User set priority impact status of p2 - want for an upcoming milestone p - medium Issue is non core or affecting less that 60% of people using the library visual changes Issues with visual changes that are added for consistency, but are not backwards compatible
Projects
None yet
Development

No branches or pull requests

6 participants