feat(design): reorder without a drag everywhere a grip drags (WCAG 2.5.7, E28 S3e4a)

One rule, two forms: useOrderItems (Top / Up / Down / Bottom rows of a row
menu) and OrderButtons (four buttons with the place, or a compact Up / Down
pair). A move that would go nowhere is shown off.

- YouTube playlist rows: the four moves now come from useOrderItems.
- Plex playlist rows: a block among the blocks, an episode within its show,
  off while a write is in flight; drag and menu share moveBlock/moveEpisode.
- Saved views editor: the selected view's four buttons (owner: A), and the
  grip's keyboard pick-up (its instructions promised one it did not have).
- Side panel groups in edit mode: an Up / Down pair (owner: A); a group the
  stored order does not hold yet moves too; the name wraps there.
- The grip's touch-action: none is now test-held.
This commit is contained in:
2026-09-26 18:14:28 +02:00
parent 7c2b22bafa
commit 4d0abc61d5
22 changed files with 512 additions and 91 deletions
+8
View File
@@ -43,6 +43,14 @@
"dropped": "“{{title}}” dropped at position {{pos}} of {{total}}.",
"cancelled": "Move cancelled; “{{title}}” is back at position {{pos}}."
},
"order": {
"label": "Order",
"place": "{{pos}} / {{total}}",
"top": "Move to top",
"up": "Move up",
"down": "Move down",
"bottom": "Move to bottom"
},
"copy": {
"title": "Copy title",
"name": "Copy name",
@@ -91,10 +91,6 @@
"not_in_playlist": "That video isn't in this playlist any more — it changed somewhere else.",
"same_playlist": "That video is already in this playlist."
},
"orderTop": "Move to top",
"orderUp": "Move up",
"orderDown": "Move down",
"orderBottom": "Move to bottom",
"railMenu": "Playlist actions",
"builtinLocked": "The built-in {{name}} list can’t be renamed or deleted.",
"removeItem": "Remove",
+1 -1
View File
@@ -5,7 +5,7 @@
"resetDefaults": "Reset to defaults",
"customize": "Customize sidebar",
"done": "Done",
"editHint": "Drag to reorder · eye to show/hide",
"editHint": "Drag or use the arrows to reorder · eye to show/hide",
"dragToReorder": "Drag to reorder",
"showWidget": "Show widget",
"hideWidget": "Hide widget",
+8
View File
@@ -43,6 +43,14 @@
"dropped": "„{{title}}” letéve a(z) {{pos}}. helyre a(z) {{total}} közül.",
"cancelled": "Mozgatás megszakítva; „{{title}}” visszakerült a(z) {{pos}}. helyre."
},
"order": {
"label": "Sorrend",
"place": "{{pos}} / {{total}}",
"top": "Legfelülre",
"up": "Eggyel feljebb",
"down": "Eggyel lejjebb",
"bottom": "Legalulra"
},
"copy": {
"title": "Cím másolása",
"name": "Név másolása",
@@ -91,10 +91,6 @@
"not_in_playlist": "Ez a videó már nincs ebben a listában — időközben máshol megváltozott.",
"same_playlist": "Ez a videó már ebben a listában van."
},
"orderTop": "Legfelülre",
"orderUp": "Eggyel feljebb",
"orderDown": "Eggyel lejjebb",
"orderBottom": "Legalulra",
"railMenu": "Lejátszási lista műveletei",
"builtinLocked": "A beépített „{{name}}” lista nem nevezhető át és nem törölhető.",
"removeItem": "Eltávolítás",
+1 -1
View File
@@ -5,7 +5,7 @@
"resetDefaults": "Visszaállítás alapértelmezettre",
"customize": "Oldalsáv testreszabása",
"done": "Kész",
"editHint": "Húzd az átrendezéshez · szem a megjelenítéshez/elrejtéshez",
"editHint": "Húzd vagy a nyilakkal rendezd át · szem a megjelenítéshez/elrejtéshez",
"dragToReorder": "Húzd az átrendezéshez",
"showWidget": "Modul megjelenítése",
"hideWidget": "Modul elrejtése",