@cssints/apg-specs 0.0.0-stage → 0.5.1
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/LICENSE +21 -0
- package/README.md +65 -2
- package/dist/apg/accordion.bridge.d.mts +35 -0
- package/dist/apg/accordion.bridge.mjs +326 -0
- package/dist/apg/accordion.model.json +8397 -0
- package/dist/apg/alert.bridge.d.mts +22 -0
- package/dist/apg/alert.bridge.mjs +86 -0
- package/dist/apg/alert.model.json +871 -0
- package/dist/apg/alertdialog.bridge.d.mts +21 -0
- package/dist/apg/alertdialog.bridge.mjs +221 -0
- package/dist/apg/alertdialog.model.json +5232 -0
- package/dist/apg/breadcrumb.bridge.d.mts +26 -0
- package/dist/apg/breadcrumb.bridge.mjs +120 -0
- package/dist/apg/breadcrumb.model.json +574 -0
- package/dist/apg/button.bridge.d.mts +35 -0
- package/dist/apg/button.bridge.mjs +208 -0
- package/dist/apg/button.model.json +5814 -0
- package/dist/apg/carousel.bridge.d.mts +44 -0
- package/dist/apg/carousel.bridge.mjs +262 -0
- package/dist/apg/carousel.model.json +8963 -0
- package/dist/apg/checkbox-group.bridge.d.mts +25 -0
- package/dist/apg/checkbox-group.bridge.mjs +276 -0
- package/dist/apg/checkbox-group.model.json +3863 -0
- package/dist/apg/checkbox.bridge.d.mts +34 -0
- package/dist/apg/checkbox.bridge.mjs +253 -0
- package/dist/apg/checkbox.model.json +3158 -0
- package/dist/apg/combobox-autocomplete.bridge.d.mts +14 -0
- package/dist/apg/combobox-autocomplete.bridge.mjs +326 -0
- package/dist/apg/combobox-autocomplete.model.json +11586 -0
- package/dist/apg/combobox-dialog.bridge.d.mts +17 -0
- package/dist/apg/combobox-dialog.bridge.mjs +250 -0
- package/dist/apg/combobox-dialog.model.json +8981 -0
- package/dist/apg/combobox-grid.bridge.d.mts +17 -0
- package/dist/apg/combobox-grid.bridge.mjs +227 -0
- package/dist/apg/combobox-grid.model.json +8554 -0
- package/dist/apg/combobox-select-only.bridge.d.mts +24 -0
- package/dist/apg/combobox-select-only.bridge.mjs +304 -0
- package/dist/apg/combobox-select-only.model.json +7846 -0
- package/dist/apg/combobox-tree.bridge.d.mts +17 -0
- package/dist/apg/combobox-tree.bridge.mjs +211 -0
- package/dist/apg/combobox-tree.model.json +9345 -0
- package/dist/apg/dialog-modal.bridge.d.mts +35 -0
- package/dist/apg/dialog-modal.bridge.mjs +186 -0
- package/dist/apg/dialog-modal.model.json +7580 -0
- package/dist/apg/disclosure.bridge.d.mts +25 -0
- package/dist/apg/disclosure.bridge.mjs +202 -0
- package/dist/apg/disclosure.model.json +4703 -0
- package/dist/apg/feed.bridge.d.mts +31 -0
- package/dist/apg/feed.bridge.mjs +246 -0
- package/dist/apg/feed.model.json +4523 -0
- package/dist/apg/grid-selection.bridge.d.mts +13 -0
- package/dist/apg/grid-selection.bridge.mjs +160 -0
- package/dist/apg/grid-selection.model.json +6974 -0
- package/dist/apg/grid-sort.bridge.d.mts +12 -0
- package/dist/apg/grid-sort.bridge.mjs +138 -0
- package/dist/apg/grid-sort.model.json +3799 -0
- package/dist/apg/grid.bridge.d.mts +54 -0
- package/dist/apg/grid.bridge.mjs +441 -0
- package/dist/apg/grid.model.json +3802 -0
- package/dist/apg/link.bridge.d.mts +24 -0
- package/dist/apg/link.bridge.mjs +126 -0
- package/dist/apg/link.model.json +694 -0
- package/dist/apg/listbox-multi.bridge.d.mts +10 -0
- package/dist/apg/listbox-multi.bridge.mjs +261 -0
- package/dist/apg/listbox-multi.model.json +10893 -0
- package/dist/apg/listbox-rearrangeable.bridge.d.mts +20 -0
- package/dist/apg/listbox-rearrangeable.bridge.mjs +237 -0
- package/dist/apg/listbox-rearrangeable.model.json +17592 -0
- package/dist/apg/listbox-shared.d.mts +58 -0
- package/dist/apg/listbox-shared.mjs +171 -0
- package/dist/apg/listbox-single.bridge.d.mts +10 -0
- package/dist/apg/listbox-single.bridge.mjs +196 -0
- package/dist/apg/listbox-single.model.json +8024 -0
- package/dist/apg/listbox-typeahead.bridge.d.mts +10 -0
- package/dist/apg/listbox-typeahead.bridge.mjs +153 -0
- package/dist/apg/listbox-typeahead.model.json +5615 -0
- package/dist/apg/menu-button.bridge.d.mts +29 -0
- package/dist/apg/menu-button.bridge.mjs +259 -0
- package/dist/apg/menu-button.model.json +5706 -0
- package/dist/apg/menu-checkable.bridge.d.mts +25 -0
- package/dist/apg/menu-checkable.bridge.mjs +226 -0
- package/dist/apg/menu-checkable.model.json +4277 -0
- package/dist/apg/menu-menubar.bridge.d.mts +27 -0
- package/dist/apg/menu-menubar.bridge.mjs +273 -0
- package/dist/apg/menu-menubar.model.json +9540 -0
- package/dist/apg/meter.bridge.d.mts +28 -0
- package/dist/apg/meter.bridge.mjs +159 -0
- package/dist/apg/meter.model.json +1185 -0
- package/dist/apg/player.bridge.d.mts +24 -0
- package/dist/apg/player.bridge.mjs +342 -0
- package/dist/apg/player.model.json +11013 -0
- package/dist/apg/radio.bridge.d.mts +35 -0
- package/dist/apg/radio.bridge.mjs +371 -0
- package/dist/apg/radio.model.json +5011 -0
- package/dist/apg/slider-multithumb.bridge.d.mts +34 -0
- package/dist/apg/slider-multithumb.bridge.mjs +365 -0
- package/dist/apg/slider-multithumb.model.json +5774 -0
- package/dist/apg/slider.bridge.d.mts +54 -0
- package/dist/apg/slider.bridge.mjs +359 -0
- package/dist/apg/slider.model.json +4881 -0
- package/dist/apg/spinbutton.bridge.d.mts +41 -0
- package/dist/apg/spinbutton.bridge.mjs +327 -0
- package/dist/apg/spinbutton.model.json +7571 -0
- package/dist/apg/switch.bridge.d.mts +30 -0
- package/dist/apg/switch.bridge.mjs +243 -0
- package/dist/apg/switch.model.json +3159 -0
- package/dist/apg/tabs.bridge.d.mts +41 -0
- package/dist/apg/tabs.bridge.mjs +294 -0
- package/dist/apg/tabs.model.json +7659 -0
- package/dist/apg/timeline.bridge.d.mts +36 -0
- package/dist/apg/timeline.bridge.mjs +265 -0
- package/dist/apg/timeline.model.json +6189 -0
- package/dist/apg/toolbar.bridge.d.mts +25 -0
- package/dist/apg/toolbar.bridge.mjs +307 -0
- package/dist/apg/toolbar.model.json +6616 -0
- package/dist/apg/tooltip.bridge.d.mts +36 -0
- package/dist/apg/tooltip.bridge.mjs +208 -0
- package/dist/apg/tooltip.model.json +8295 -0
- package/dist/apg/treegrid.bridge.d.mts +28 -0
- package/dist/apg/treegrid.bridge.mjs +311 -0
- package/dist/apg/treegrid.model.json +17358 -0
- package/dist/apg/treeview.bridge.d.mts +26 -0
- package/dist/apg/treeview.bridge.mjs +396 -0
- package/dist/apg/treeview.model.json +13745 -0
- package/dist/apg/windowsplitter.bridge.d.mts +36 -0
- package/dist/apg/windowsplitter.bridge.mjs +242 -0
- package/dist/apg/windowsplitter.model.json +6253 -0
- package/dist/canvas/camera.model.json +6568 -0
- package/dist/canvas/canvas.bridge.d.mts +190 -0
- package/dist/canvas/canvas.bridge.mjs +729 -0
- package/dist/canvas/pointer.model.json +17095 -0
- package/dist/scenario.d.mts +233 -0
- package/dist/scenario.mjs +313 -0
- package/package.json +57 -4
- package/scenarios/apg/README.md +221 -0
- package/scenarios/apg/accordion.base-ui.json +1005 -0
- package/scenarios/apg/accordion.react-aria.json +929 -0
- package/scenarios/apg/alert.base-ui.json +81 -0
- package/scenarios/apg/alert.react-aria.json +98 -0
- package/scenarios/apg/alertdialog.base-ui.json +331 -0
- package/scenarios/apg/alertdialog.react-aria.json +225 -0
- package/scenarios/apg/breadcrumb.react-aria.json +312 -0
- package/scenarios/apg/button.ariakit.json +136 -0
- package/scenarios/apg/button.base-ui.json +747 -0
- package/scenarios/apg/button.react-aria.json +443 -0
- package/scenarios/apg/carousel.apg.json +909 -0
- package/scenarios/apg/checkbox.ariakit.json +299 -0
- package/scenarios/apg/checkbox.base-ui.json +1126 -0
- package/scenarios/apg/checkbox.react-aria.json +518 -0
- package/scenarios/apg/combobox.ariakit.json +945 -0
- package/scenarios/apg/combobox.base-ui.json +2444 -0
- package/scenarios/apg/combobox.react-aria.json +845 -0
- package/scenarios/apg/dialog-modal.ariakit.json +1102 -0
- package/scenarios/apg/dialog-modal.base-ui.json +775 -0
- package/scenarios/apg/dialog-modal.react-aria.json +638 -0
- package/scenarios/apg/disclosure.apg.json +349 -0
- package/scenarios/apg/disclosure.ariakit.json +163 -0
- package/scenarios/apg/disclosure.base-ui.json +451 -0
- package/scenarios/apg/disclosure.react-aria.json +643 -0
- package/scenarios/apg/feed.apg.json +442 -0
- package/scenarios/apg/grid.ariakit.json +197 -0
- package/scenarios/apg/grid.base-ui.json +720 -0
- package/scenarios/apg/grid.react-aria.json +969 -0
- package/scenarios/apg/landmarks.ariakit.json +93 -0
- package/scenarios/apg/landmarks.react-aria.json +330 -0
- package/scenarios/apg/link.ariakit.json +83 -0
- package/scenarios/apg/link.base-ui.json +88 -0
- package/scenarios/apg/link.react-aria.json +186 -0
- package/scenarios/apg/listbox.ariakit.json +78 -0
- package/scenarios/apg/listbox.base-ui.json +163 -0
- package/scenarios/apg/listbox.react-aria.json +1118 -0
- package/scenarios/apg/menu-button.ariakit.json +924 -0
- package/scenarios/apg/menu-button.base-ui.json +1155 -0
- package/scenarios/apg/menu-button.react-aria.json +1080 -0
- package/scenarios/apg/menubar.ariakit.json +758 -0
- package/scenarios/apg/menubar.base-ui.json +673 -0
- package/scenarios/apg/meter.base-ui.json +243 -0
- package/scenarios/apg/meter.react-aria.json +201 -0
- package/scenarios/apg/radio.ariakit.json +459 -0
- package/scenarios/apg/radio.base-ui.json +581 -0
- package/scenarios/apg/radio.react-aria.json +576 -0
- package/scenarios/apg/slider-multithumb.base-ui.json +316 -0
- package/scenarios/apg/slider-multithumb.react-aria.json +363 -0
- package/scenarios/apg/slider.base-ui.json +544 -0
- package/scenarios/apg/slider.react-aria.json +456 -0
- package/scenarios/apg/spinbutton.base-ui.json +1688 -0
- package/scenarios/apg/spinbutton.react-aria.json +426 -0
- package/scenarios/apg/switch.base-ui.json +456 -0
- package/scenarios/apg/switch.react-aria.json +303 -0
- package/scenarios/apg/table.ariakit.json +65 -0
- package/scenarios/apg/table.react-aria.json +221 -0
- package/scenarios/apg/tabs.ariakit.json +329 -0
- package/scenarios/apg/tabs.base-ui.json +875 -0
- package/scenarios/apg/tabs.react-aria.json +644 -0
- package/scenarios/apg/toolbar.ariakit.json +595 -0
- package/scenarios/apg/toolbar.base-ui.json +1189 -0
- package/scenarios/apg/toolbar.react-aria.json +383 -0
- package/scenarios/apg/tooltip.ariakit.json +441 -0
- package/scenarios/apg/tooltip.base-ui.json +411 -0
- package/scenarios/apg/tooltip.react-aria.json +454 -0
- package/scenarios/apg/treegrid.apg.json +2558 -0
- package/scenarios/apg/treegrid.react-aria.json +5094 -0
- package/scenarios/apg/treeview.apg.json +928 -0
- package/scenarios/apg/windowsplitter.apg.json +557 -0
- package/scenarios/canvas/README.md +69 -0
- package/scenarios/canvas/camera.contract.json +237 -0
- package/scenarios/canvas/camera.excalidraw.json +57 -0
- package/scenarios/canvas/marquee.excalidraw.json +122 -0
- package/scenarios/canvas/pan.excalidraw.json +46 -0
- package/scenarios/canvas/pointer.contract.json +528 -0
- package/scenarios/parts.json +291 -0
- package/shared/aria.qnt +186 -0
- package/shared/details-group.qnt +50 -0
- package/shared/focusgroup.qnt +152 -0
- package/shared/invokers.qnt +81 -0
- package/shared/popover.qnt +71 -0
- package/specs/apg/STATIC.md +103 -0
- package/specs/apg/accordion.qnt +578 -0
- package/specs/apg/alert.qnt +131 -0
- package/specs/apg/alertdialog.qnt +455 -0
- package/specs/apg/breadcrumb.qnt +88 -0
- package/specs/apg/button.qnt +445 -0
- package/specs/apg/carousel.qnt +732 -0
- package/specs/apg/checkbox-group.qnt +388 -0
- package/specs/apg/checkbox.qnt +394 -0
- package/specs/apg/combobox-autocomplete.qnt +764 -0
- package/specs/apg/combobox-dialog.qnt +627 -0
- package/specs/apg/combobox-grid.qnt +632 -0
- package/specs/apg/combobox-select-only.qnt +626 -0
- package/specs/apg/combobox-tree.qnt +633 -0
- package/specs/apg/dialog-modal.qnt +499 -0
- package/specs/apg/disclosure.qnt +309 -0
- package/specs/apg/feed.qnt +485 -0
- package/specs/apg/grid-selection.qnt +512 -0
- package/specs/apg/grid-sort.qnt +330 -0
- package/specs/apg/grid.qnt +360 -0
- package/specs/apg/link.qnt +119 -0
- package/specs/apg/listbox-multi.qnt +799 -0
- package/specs/apg/listbox-rearrangeable.qnt +801 -0
- package/specs/apg/listbox-single.qnt +511 -0
- package/specs/apg/listbox-typeahead.qnt +396 -0
- package/specs/apg/menu-button.qnt +363 -0
- package/specs/apg/menu-checkable.qnt +304 -0
- package/specs/apg/menu-menubar.qnt +531 -0
- package/specs/apg/meter.qnt +129 -0
- package/specs/apg/player.qnt +1081 -0
- package/specs/apg/radio.qnt +394 -0
- package/specs/apg/slider-multithumb.qnt +441 -0
- package/specs/apg/slider.qnt +396 -0
- package/specs/apg/spinbutton.qnt +494 -0
- package/specs/apg/switch.qnt +389 -0
- package/specs/apg/tabs.qnt +412 -0
- package/specs/apg/timeline.qnt +612 -0
- package/specs/apg/toolbar.qnt +364 -0
- package/specs/apg/tooltip.qnt +553 -0
- package/specs/apg/treegrid.qnt +983 -0
- package/specs/apg/treeview.qnt +1004 -0
- package/specs/apg/windowsplitter.qnt +487 -0
- package/specs/canvas/camera.qnt +407 -0
- package/specs/canvas/pointer.qnt +841 -0
|
@@ -0,0 +1,644 @@
|
|
|
1
|
+
{
|
|
2
|
+
"pattern": "tabs",
|
|
3
|
+
"source": "react-aria",
|
|
4
|
+
"commit": "99e610236887da619ad9d54a1cd87983166c043d",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"scenarios": [
|
|
7
|
+
{
|
|
8
|
+
"id": "tabs.react-aria.arrow-horizontal",
|
|
9
|
+
"upstream": "https://github.com/adobe/react-spectrum/blob/99e610236887da619ad9d54a1cd87983166c043d/packages/@adobe/react-spectrum/test/tabs/Tabs.test.js#L122",
|
|
10
|
+
"upstreamTest": "allows user to change tab item select via arrow keys with horizontal tabs",
|
|
11
|
+
"apg": "keyboard",
|
|
12
|
+
"config": {
|
|
13
|
+
"orientation": "horizontal",
|
|
14
|
+
"activation": "automatic",
|
|
15
|
+
"items": 3,
|
|
16
|
+
"selected": 0
|
|
17
|
+
},
|
|
18
|
+
"steps": [
|
|
19
|
+
{ "event": "focus", "target": "tab:0" },
|
|
20
|
+
{ "event": "key", "key": "ArrowRight", "target": "tab:0" },
|
|
21
|
+
{
|
|
22
|
+
"expect": {
|
|
23
|
+
"focus": "tab:1",
|
|
24
|
+
"attrs": { "tab:1": { "aria-selected": "true" } }
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
{ "event": "key", "key": "ArrowLeft", "target": "tab:1" },
|
|
28
|
+
{
|
|
29
|
+
"expect": {
|
|
30
|
+
"focus": "tab:0",
|
|
31
|
+
"attrs": { "tab:0": { "aria-selected": "true" } }
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
{ "event": "key", "key": "ArrowUp", "target": "tab:0" },
|
|
35
|
+
{ "event": "key", "key": "ArrowDown", "target": "tab:0" },
|
|
36
|
+
{ "expect": { "attrs": { "tab:0": { "aria-selected": "true" } } } }
|
|
37
|
+
],
|
|
38
|
+
"notes": "Horizontal tablists respond to Left/Right only; Up/Down are ignored (left to the browser)."
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"id": "tabs.react-aria.arrow-vertical",
|
|
42
|
+
"upstream": "https://github.com/adobe/react-spectrum/blob/99e610236887da619ad9d54a1cd87983166c043d/packages/@adobe/react-spectrum/test/tabs/Tabs.test.js#L190",
|
|
43
|
+
"upstreamTest": "allows user to change tab item select via arrow keys with vertical tabs",
|
|
44
|
+
"apg": "keyboard",
|
|
45
|
+
"config": {
|
|
46
|
+
"orientation": "vertical",
|
|
47
|
+
"activation": "automatic",
|
|
48
|
+
"items": 3,
|
|
49
|
+
"selected": 0
|
|
50
|
+
},
|
|
51
|
+
"steps": [
|
|
52
|
+
{ "event": "focus", "target": "tab:0" },
|
|
53
|
+
{ "event": "key", "key": "ArrowDown", "target": "tab:0" },
|
|
54
|
+
{
|
|
55
|
+
"expect": {
|
|
56
|
+
"focus": "tab:1",
|
|
57
|
+
"attrs": { "tab:1": { "aria-selected": "true" } }
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
{ "event": "key", "key": "ArrowUp", "target": "tab:1" },
|
|
61
|
+
{
|
|
62
|
+
"expect": {
|
|
63
|
+
"focus": "tab:0",
|
|
64
|
+
"attrs": { "tab:0": { "aria-selected": "true" } }
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
{ "event": "key", "key": "ArrowLeft", "target": "tab:0" },
|
|
68
|
+
{
|
|
69
|
+
"expect": {
|
|
70
|
+
"focus": "tab:2",
|
|
71
|
+
"attrs": { "tab:2": { "aria-selected": "true" } }
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
{ "event": "key", "key": "ArrowRight", "target": "tab:2" },
|
|
75
|
+
{
|
|
76
|
+
"expect": {
|
|
77
|
+
"focus": "tab:0",
|
|
78
|
+
"attrs": { "tab:0": { "aria-selected": "true" } }
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
],
|
|
82
|
+
"notes": "Vertical tablists also allow Left/Right to move selection (react-aria treats them as previous/next in a vertical stack)."
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"id": "tabs.react-aria.arrow-horizontal-rtl",
|
|
86
|
+
"upstream": "https://github.com/adobe/react-spectrum/blob/99e610236887da619ad9d54a1cd87983166c043d/packages/@adobe/react-spectrum/test/tabs/Tabs.test.js#L158",
|
|
87
|
+
"upstreamTest": "allows user to change tab item select via arrow keys with horizontal tabs (rtl)",
|
|
88
|
+
"apg": "keyboard",
|
|
89
|
+
"config": {
|
|
90
|
+
"orientation": "horizontal",
|
|
91
|
+
"activation": "automatic",
|
|
92
|
+
"items": 3,
|
|
93
|
+
"selected": 0,
|
|
94
|
+
"direction": "rtl"
|
|
95
|
+
},
|
|
96
|
+
"steps": [
|
|
97
|
+
{ "event": "focus", "target": "tab:0" },
|
|
98
|
+
{ "event": "key", "key": "ArrowLeft", "target": "tab:0" },
|
|
99
|
+
{
|
|
100
|
+
"expect": {
|
|
101
|
+
"focus": "tab:1",
|
|
102
|
+
"attrs": { "tab:1": { "aria-selected": "true" } }
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
{ "event": "key", "key": "ArrowLeft", "target": "tab:1" },
|
|
106
|
+
{
|
|
107
|
+
"expect": {
|
|
108
|
+
"focus": "tab:2",
|
|
109
|
+
"attrs": { "tab:2": { "aria-selected": "true" } }
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
{ "event": "key", "key": "ArrowRight", "target": "tab:2" },
|
|
113
|
+
{
|
|
114
|
+
"expect": {
|
|
115
|
+
"focus": "tab:1",
|
|
116
|
+
"attrs": { "tab:1": { "aria-selected": "true" } }
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
],
|
|
120
|
+
"notes": "RTL mirrors the horizontal keys: ArrowLeft advances, ArrowRight retreats."
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"id": "tabs.react-aria.arrow-vertical-rtl",
|
|
124
|
+
"upstream": "https://github.com/adobe/react-spectrum/blob/99e610236887da619ad9d54a1cd87983166c043d/packages/react-aria-components/test/Tabs.test.js#L474",
|
|
125
|
+
"upstreamTest": "allows user to change tab item selection via arrow keys with vertical tabs (rtl)",
|
|
126
|
+
"apg": "keyboard",
|
|
127
|
+
"config": {
|
|
128
|
+
"orientation": "vertical",
|
|
129
|
+
"activation": "automatic",
|
|
130
|
+
"items": 3,
|
|
131
|
+
"selected": 0,
|
|
132
|
+
"direction": "rtl"
|
|
133
|
+
},
|
|
134
|
+
"steps": [
|
|
135
|
+
{ "event": "focus", "target": "tab:0" },
|
|
136
|
+
{ "event": "key", "key": "ArrowDown", "target": "tab:0" },
|
|
137
|
+
{ "expect": { "attrs": { "tab:1": { "aria-selected": "true" } } } },
|
|
138
|
+
{ "event": "key", "key": "ArrowUp", "target": "tab:1" },
|
|
139
|
+
{ "expect": { "attrs": { "tab:0": { "aria-selected": "true" } } } },
|
|
140
|
+
{ "event": "key", "key": "ArrowLeft", "target": "tab:0" },
|
|
141
|
+
{ "expect": { "attrs": { "tab:1": { "aria-selected": "true" } } } },
|
|
142
|
+
{ "event": "key", "key": "ArrowRight", "target": "tab:1" },
|
|
143
|
+
{ "expect": { "attrs": { "tab:0": { "aria-selected": "true" } } } }
|
|
144
|
+
],
|
|
145
|
+
"notes": "Vertical RTL still allows Up/Down and Left/Right to move between tabs."
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"id": "tabs.react-aria.arrow-wraps-across-ends",
|
|
149
|
+
"upstream": "https://github.com/adobe/react-spectrum/blob/99e610236887da619ad9d54a1cd87983166c043d/packages/@adobe/react-spectrum/test/tabs/Tabs.test.js#L216",
|
|
150
|
+
"upstreamTest": "wraps focus from first to last/last to first item",
|
|
151
|
+
"apg": "keyboard",
|
|
152
|
+
"config": {
|
|
153
|
+
"orientation": "horizontal",
|
|
154
|
+
"activation": "automatic",
|
|
155
|
+
"items": 3,
|
|
156
|
+
"selected": 0
|
|
157
|
+
},
|
|
158
|
+
"steps": [
|
|
159
|
+
{ "event": "focus", "target": "tab:0" },
|
|
160
|
+
{ "event": "key", "key": "ArrowLeft", "target": "tab:0" },
|
|
161
|
+
{
|
|
162
|
+
"expect": {
|
|
163
|
+
"focus": "tab:2",
|
|
164
|
+
"attrs": { "tab:2": { "aria-selected": "true" } }
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
{ "event": "key", "key": "ArrowRight", "target": "tab:2" },
|
|
168
|
+
{
|
|
169
|
+
"expect": {
|
|
170
|
+
"focus": "tab:0",
|
|
171
|
+
"attrs": { "tab:0": { "aria-selected": "true" } }
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
],
|
|
175
|
+
"notes": "APG optional wrapping: react-aria wraps by default."
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"id": "tabs.react-aria.home-end",
|
|
179
|
+
"upstream": "https://github.com/adobe/react-spectrum/blob/99e610236887da619ad9d54a1cd87983166c043d/packages/@adobe/react-spectrum/test/tabs/Tabs.test.js#L235",
|
|
180
|
+
"upstreamTest": "select last item via end key / select first item via home key",
|
|
181
|
+
"apg": "keyboard",
|
|
182
|
+
"config": {
|
|
183
|
+
"orientation": "vertical",
|
|
184
|
+
"activation": "automatic",
|
|
185
|
+
"items": 3,
|
|
186
|
+
"selected": 0
|
|
187
|
+
},
|
|
188
|
+
"steps": [
|
|
189
|
+
{ "event": "focus", "target": "tab:0" },
|
|
190
|
+
{ "event": "key", "key": "End", "target": "tab:0" },
|
|
191
|
+
{
|
|
192
|
+
"expect": {
|
|
193
|
+
"focus": "tab:2",
|
|
194
|
+
"attrs": { "tab:2": { "aria-selected": "true" } }
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
{ "event": "key", "key": "Home", "target": "tab:2" },
|
|
198
|
+
{
|
|
199
|
+
"expect": {
|
|
200
|
+
"focus": "tab:0",
|
|
201
|
+
"attrs": { "tab:0": { "aria-selected": "true" } }
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
],
|
|
205
|
+
"notes": "Home/End move to the first/last tab regardless of orientation."
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"id": "tabs.react-aria.manual-activation-enter",
|
|
209
|
+
"upstream": "https://github.com/adobe/react-spectrum/blob/99e610236887da619ad9d54a1cd87983166c043d/packages/@adobe/react-spectrum/test/tabs/Tabs.test.js#L254",
|
|
210
|
+
"upstreamTest": "not select via left / right keys if keyboardActivation is manual, select on enter / spacebar",
|
|
211
|
+
"apg": "keyboard",
|
|
212
|
+
"config": {
|
|
213
|
+
"orientation": "horizontal",
|
|
214
|
+
"activation": "manual",
|
|
215
|
+
"items": 3,
|
|
216
|
+
"selected": 0
|
|
217
|
+
},
|
|
218
|
+
"steps": [
|
|
219
|
+
{ "event": "focus", "target": "tab:0" },
|
|
220
|
+
{ "event": "key", "key": "ArrowRight", "target": "tab:0" },
|
|
221
|
+
{
|
|
222
|
+
"expect": {
|
|
223
|
+
"focus": "tab:1",
|
|
224
|
+
"attrs": {
|
|
225
|
+
"tab:0": { "aria-selected": "true" },
|
|
226
|
+
"tab:1": { "aria-selected": "false" }
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
},
|
|
230
|
+
{ "event": "key", "key": "ArrowRight", "target": "tab:1" },
|
|
231
|
+
{
|
|
232
|
+
"expect": {
|
|
233
|
+
"focus": "tab:2",
|
|
234
|
+
"attrs": { "tab:2": { "aria-selected": "false" } }
|
|
235
|
+
}
|
|
236
|
+
},
|
|
237
|
+
{ "event": "key", "key": "Enter", "target": "tab:2" },
|
|
238
|
+
{
|
|
239
|
+
"expect": {
|
|
240
|
+
"attrs": {
|
|
241
|
+
"tab:0": { "aria-selected": "false" },
|
|
242
|
+
"tab:1": { "aria-selected": "false" },
|
|
243
|
+
"tab:2": { "aria-selected": "true" }
|
|
244
|
+
},
|
|
245
|
+
"events": { "onSelectionChange": ["tab:2"] }
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
],
|
|
249
|
+
"notes": "keyboardActivation=manual: arrows move focus only; Enter commits (Space is the other commit key)."
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
"id": "tabs.react-aria.click-selects",
|
|
253
|
+
"upstream": "https://github.com/adobe/react-spectrum/blob/99e610236887da619ad9d54a1cd87983166c043d/packages/@adobe/react-spectrum/test/tabs/Tabs.test.js#L286",
|
|
254
|
+
"upstreamTest": "supports using click to change tab",
|
|
255
|
+
"apg": "aria",
|
|
256
|
+
"config": {
|
|
257
|
+
"orientation": "horizontal",
|
|
258
|
+
"activation": "manual",
|
|
259
|
+
"items": 3,
|
|
260
|
+
"selected": 0
|
|
261
|
+
},
|
|
262
|
+
"steps": [
|
|
263
|
+
{ "event": "click", "target": "tab:1" },
|
|
264
|
+
{
|
|
265
|
+
"expect": {
|
|
266
|
+
"attrs": { "tab:1": { "aria-selected": "true" } },
|
|
267
|
+
"visible": ["tabpanel:1"],
|
|
268
|
+
"events": { "onSelectionChange": ["tab:1"] }
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
],
|
|
272
|
+
"notes": "Upstream also asserts the panel id/role/labelledby and text content; here only selection, panel visibility and the callback are restated."
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
"id": "tabs.react-aria.tab-into-selects-selected-tab",
|
|
276
|
+
"upstream": "https://github.com/adobe/react-spectrum/blob/99e610236887da619ad9d54a1cd87983166c043d/packages/@adobe/react-spectrum/test/tabs/Tabs.test.js#L348",
|
|
277
|
+
"upstreamTest": "should focus the selected tab when tabbing in for the first time",
|
|
278
|
+
"apg": "keyboard",
|
|
279
|
+
"config": {
|
|
280
|
+
"orientation": "horizontal",
|
|
281
|
+
"activation": "automatic",
|
|
282
|
+
"items": 3,
|
|
283
|
+
"selected": 1
|
|
284
|
+
},
|
|
285
|
+
"steps": [
|
|
286
|
+
{ "event": "key", "key": "Tab", "target": "tablist" },
|
|
287
|
+
{ "expect": { "focus": "tab:1" } }
|
|
288
|
+
],
|
|
289
|
+
"notes": "Roving tabindex: Tab enters the tablist at the selected tab."
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
"id": "tabs.react-aria.arrow-skips-disabled",
|
|
293
|
+
"upstream": "https://github.com/adobe/react-spectrum/blob/99e610236887da619ad9d54a1cd87983166c043d/packages/react-aria-components/test/Tabs.test.js#L351",
|
|
294
|
+
"upstreamTest": "should support isDisabled prop on tab",
|
|
295
|
+
"apg": "keyboard",
|
|
296
|
+
"config": {
|
|
297
|
+
"orientation": "horizontal",
|
|
298
|
+
"activation": "automatic",
|
|
299
|
+
"items": 3,
|
|
300
|
+
"selected": 0,
|
|
301
|
+
"disabled": [1]
|
|
302
|
+
},
|
|
303
|
+
"steps": [
|
|
304
|
+
{ "event": "focus", "target": "tab:0" },
|
|
305
|
+
{ "event": "key", "key": "ArrowRight", "target": "tab:0" },
|
|
306
|
+
{
|
|
307
|
+
"expect": {
|
|
308
|
+
"focus": "tab:2",
|
|
309
|
+
"attrs": { "tab:2": { "aria-selected": "true" } }
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
],
|
|
313
|
+
"notes": "A disabled middle tab is skipped in one keypress and never focused."
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
"id": "tabs.react-aria.all-disabled-focuses-panel",
|
|
317
|
+
"upstream": "https://github.com/adobe/react-spectrum/blob/99e610236887da619ad9d54a1cd87983166c043d/packages/react-aria-components/test/Tabs.test.js#L399",
|
|
318
|
+
"upstreamTest": "selects first tab if all tabs are disabled",
|
|
319
|
+
"apg": "extension",
|
|
320
|
+
"config": {
|
|
321
|
+
"orientation": "horizontal",
|
|
322
|
+
"activation": "automatic",
|
|
323
|
+
"items": 3,
|
|
324
|
+
"disabled": [0, 1, 2]
|
|
325
|
+
},
|
|
326
|
+
"steps": [
|
|
327
|
+
{ "event": "key", "key": "Tab", "target": "tablist" },
|
|
328
|
+
{
|
|
329
|
+
"expect": {
|
|
330
|
+
"focus": "tabpanel:0",
|
|
331
|
+
"attrs": { "tab:0": { "aria-selected": "true" } }
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
],
|
|
335
|
+
"notes": "When every tab is disabled react-aria still marks the first selected but moves focus to the active panel."
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
"id": "tabs.react-aria.disabled-click-no-selection",
|
|
339
|
+
"upstream": "https://github.com/adobe/react-spectrum/blob/99e610236887da619ad9d54a1cd87983166c043d/packages/@adobe/react-spectrum/test/tabs/Tabs.test.js#L385",
|
|
340
|
+
"upstreamTest": "disabled tabs cannot be pressed",
|
|
341
|
+
"apg": "aria",
|
|
342
|
+
"config": {
|
|
343
|
+
"orientation": "horizontal",
|
|
344
|
+
"activation": "automatic",
|
|
345
|
+
"items": 3,
|
|
346
|
+
"selected": 0,
|
|
347
|
+
"disabled": [1]
|
|
348
|
+
},
|
|
349
|
+
"steps": [
|
|
350
|
+
{ "event": "click", "target": "tab:1" },
|
|
351
|
+
{
|
|
352
|
+
"expect": {
|
|
353
|
+
"attrs": {
|
|
354
|
+
"tab:0": { "aria-selected": "true" },
|
|
355
|
+
"tab:1": { "aria-selected": "false" }
|
|
356
|
+
},
|
|
357
|
+
"events": { "onSelectionChange": [] }
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
],
|
|
361
|
+
"notes": "A disabled tab ignores pointer presses and fires no selection callback."
|
|
362
|
+
},
|
|
363
|
+
{
|
|
364
|
+
"id": "tabs.react-aria.first-non-disabled-tab",
|
|
365
|
+
"upstream": "https://github.com/adobe/react-spectrum/blob/99e610236887da619ad9d54a1cd87983166c043d/packages/react-aria-components/test/Tabs.test.js#L375",
|
|
366
|
+
"upstreamTest": "finds the first non-disabled tab",
|
|
367
|
+
"apg": "keyboard",
|
|
368
|
+
"config": {
|
|
369
|
+
"orientation": "horizontal",
|
|
370
|
+
"activation": "automatic",
|
|
371
|
+
"items": 3,
|
|
372
|
+
"disabled": [0]
|
|
373
|
+
},
|
|
374
|
+
"steps": [
|
|
375
|
+
{ "event": "key", "key": "Tab", "target": "tablist" },
|
|
376
|
+
{ "expect": { "focus": "tab:1" } },
|
|
377
|
+
{ "event": "key", "key": "ArrowRight", "target": "tab:1" },
|
|
378
|
+
{ "expect": { "focus": "tab:2" } }
|
|
379
|
+
],
|
|
380
|
+
"notes": "When the first tab is disabled, tabbing in lands on the first enabled tab."
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
"id": "tabs.react-aria.panel-tabindex-focusable-content",
|
|
384
|
+
"upstream": "https://github.com/adobe/react-spectrum/blob/99e610236887da619ad9d54a1cd87983166c043d/packages/@adobe/react-spectrum/test/tabs/Tabs.test.js#L785",
|
|
385
|
+
"upstreamTest": "tabpanel should have tabIndex=0 only when there are no focusable elements",
|
|
386
|
+
"apg": "aria",
|
|
387
|
+
"config": {
|
|
388
|
+
"orientation": "horizontal",
|
|
389
|
+
"activation": "automatic",
|
|
390
|
+
"items": 2,
|
|
391
|
+
"selected": 0
|
|
392
|
+
},
|
|
393
|
+
"steps": [
|
|
394
|
+
{ "expect": { "attrs": { "tabpanel:0": { "tabindex": null } } } },
|
|
395
|
+
{ "event": "click", "target": "tab:1" },
|
|
396
|
+
{ "expect": { "attrs": { "tabpanel:1": { "tabindex": "0" } } } },
|
|
397
|
+
{ "event": "click", "target": "tab:0" },
|
|
398
|
+
{ "expect": { "attrs": { "tabpanel:0": { "tabindex": null } } } }
|
|
399
|
+
],
|
|
400
|
+
"notes": "Panel 0 contains a focusable input (no panel tabindex); panel 1 only has a disabled input, so it gets tabindex=0."
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
"id": "tabs.react-aria.panel-aria-relationships",
|
|
404
|
+
"upstream": "https://github.com/adobe/react-spectrum/blob/99e610236887da619ad9d54a1cd87983166c043d/packages/@adobe/react-spectrum/test/tabs/Tabs.test.js#L300",
|
|
405
|
+
"upstreamTest": "supports using click to change tab (aria-controls/aria-labelledby wiring)",
|
|
406
|
+
"apg": "aria",
|
|
407
|
+
"config": {
|
|
408
|
+
"orientation": "horizontal",
|
|
409
|
+
"activation": "automatic",
|
|
410
|
+
"items": 3,
|
|
411
|
+
"selected": 0
|
|
412
|
+
},
|
|
413
|
+
"steps": [
|
|
414
|
+
{ "event": "click", "target": "tab:1" },
|
|
415
|
+
{
|
|
416
|
+
"expect": {
|
|
417
|
+
"attrs": {
|
|
418
|
+
"tab:1": { "aria-controls": "tabpanel:1" },
|
|
419
|
+
"tabpanel:1": { "aria-labelledby": "tab:1" }
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
],
|
|
424
|
+
"notes": "Relationship attribute values are symbolic target references (`tab:<i>` / `tabpanel:<i>`), resolved to the real element ids during replay."
|
|
425
|
+
},
|
|
426
|
+
{
|
|
427
|
+
"id": "tabs.react-aria.aria-orientation-vertical",
|
|
428
|
+
"upstream": "https://github.com/adobe/react-spectrum/blob/99e610236887da619ad9d54a1cd87983166c043d/packages/react-aria-components/test/Tabs.test.js#L461",
|
|
429
|
+
"upstreamTest": "should support orientation",
|
|
430
|
+
"apg": "aria",
|
|
431
|
+
"config": {
|
|
432
|
+
"orientation": "vertical",
|
|
433
|
+
"activation": "automatic",
|
|
434
|
+
"items": 1,
|
|
435
|
+
"selected": 0
|
|
436
|
+
},
|
|
437
|
+
"steps": [
|
|
438
|
+
{
|
|
439
|
+
"expect": {
|
|
440
|
+
"attrs": { "tablist": { "aria-orientation": "vertical" } }
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
],
|
|
444
|
+
"notes": "Vertical orientation is exposed on the tablist (horizontal is the implicit default)."
|
|
445
|
+
},
|
|
446
|
+
{
|
|
447
|
+
"id": "tabs.react-aria.programmatic-selected-tabindex",
|
|
448
|
+
"upstream": "https://github.com/adobe/react-spectrum/blob/99e610236887da619ad9d54a1cd87983166c043d/packages/@adobe/react-spectrum/test/tabs/Tabs.test.js#L912",
|
|
449
|
+
"upstreamTest": "updates the tab index of the selected tab if programmatically changed",
|
|
450
|
+
"apg": "aria",
|
|
451
|
+
"config": {
|
|
452
|
+
"orientation": "horizontal",
|
|
453
|
+
"activation": "automatic",
|
|
454
|
+
"items": 3,
|
|
455
|
+
"selected": 2
|
|
456
|
+
},
|
|
457
|
+
"steps": [
|
|
458
|
+
{
|
|
459
|
+
"expect": {
|
|
460
|
+
"attrs": {
|
|
461
|
+
"tab:0": { "tabindex": "-1" },
|
|
462
|
+
"tab:1": { "tabindex": "-1" },
|
|
463
|
+
"tab:2": { "tabindex": "0" }
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
},
|
|
467
|
+
{ "event": "prop", "prop": "selectedKey", "value": 0 },
|
|
468
|
+
{
|
|
469
|
+
"expect": {
|
|
470
|
+
"attrs": {
|
|
471
|
+
"tab:0": { "tabindex": "0" },
|
|
472
|
+
"tab:1": { "tabindex": "-1" },
|
|
473
|
+
"tab:2": { "tabindex": "-1" }
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
],
|
|
478
|
+
"notes": "Changing the selected key programmatically moves the roving tab stop."
|
|
479
|
+
},
|
|
480
|
+
{
|
|
481
|
+
"id": "tabs.react-aria.force-mount-inert",
|
|
482
|
+
"upstream": "https://github.com/adobe/react-spectrum/blob/99e610236887da619ad9d54a1cd87983166c043d/packages/react-aria-components/test/Tabs.test.js#L569",
|
|
483
|
+
"upstreamTest": "should support shouldForceMount",
|
|
484
|
+
"apg": "aria",
|
|
485
|
+
"config": {
|
|
486
|
+
"orientation": "horizontal",
|
|
487
|
+
"activation": "automatic",
|
|
488
|
+
"items": 3,
|
|
489
|
+
"selected": 0,
|
|
490
|
+
"forceMount": true
|
|
491
|
+
},
|
|
492
|
+
"steps": [
|
|
493
|
+
{
|
|
494
|
+
"expect": {
|
|
495
|
+
"visible": ["tabpanel:0"],
|
|
496
|
+
"attrs": {
|
|
497
|
+
"tabpanel:1": { "inert": "true" },
|
|
498
|
+
"tabpanel:2": { "inert": "true" }
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
},
|
|
502
|
+
{ "event": "click", "target": "tab:1" },
|
|
503
|
+
{
|
|
504
|
+
"expect": {
|
|
505
|
+
"attrs": {
|
|
506
|
+
"tabpanel:0": { "inert": "true" },
|
|
507
|
+
"tabpanel:1": { "inert": null },
|
|
508
|
+
"tabpanel:2": { "inert": "true" }
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
],
|
|
513
|
+
"notes": "shouldForceMount keeps all panels mounted and marks the inactive ones inert."
|
|
514
|
+
},
|
|
515
|
+
{
|
|
516
|
+
"id": "tabs.react-aria.selection-across-interaction-types",
|
|
517
|
+
"upstream": "https://github.com/adobe/react-spectrum/blob/99e610236887da619ad9d54a1cd87983166c043d/packages/react-aria-components/test/Tabs.test.js#L509",
|
|
518
|
+
"upstreamTest": "should support changing the selected tab regardless of interaction type",
|
|
519
|
+
"apg": "aria",
|
|
520
|
+
"config": {
|
|
521
|
+
"orientation": "vertical",
|
|
522
|
+
"activation": "automatic",
|
|
523
|
+
"items": 3,
|
|
524
|
+
"selected": 0
|
|
525
|
+
},
|
|
526
|
+
"steps": [
|
|
527
|
+
{ "event": "click", "target": "tab:1" },
|
|
528
|
+
{
|
|
529
|
+
"expect": {
|
|
530
|
+
"attrs": { "tab:1": { "aria-selected": "true" } },
|
|
531
|
+
"visible": ["tabpanel:1"]
|
|
532
|
+
}
|
|
533
|
+
},
|
|
534
|
+
{ "event": "click", "target": "tab:2" },
|
|
535
|
+
{
|
|
536
|
+
"expect": {
|
|
537
|
+
"attrs": { "tab:2": { "aria-selected": "true" } },
|
|
538
|
+
"visible": ["tabpanel:2"]
|
|
539
|
+
}
|
|
540
|
+
},
|
|
541
|
+
{ "event": "click", "target": "tab:1" },
|
|
542
|
+
{
|
|
543
|
+
"expect": {
|
|
544
|
+
"attrs": { "tab:1": { "aria-selected": "true" } },
|
|
545
|
+
"visible": ["tabpanel:1"]
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
],
|
|
549
|
+
"notes": "Upstream parametrises mouse/keyboard/touch; the mouse path is restated. Keyboard uses automatic activation and touch selects on tap."
|
|
550
|
+
}
|
|
551
|
+
],
|
|
552
|
+
"skipped": [
|
|
553
|
+
{
|
|
554
|
+
"upstreamTest": "should render tabs with default classes / custom classes / DOM props / aria props on the tabs / custom render function / custom render function as a link / render props",
|
|
555
|
+
"upstream": "packages/react-aria-components/test/Tabs.test.js#L74-L207",
|
|
556
|
+
"reason": "styling, DOM plumb-through and React render-prop API"
|
|
557
|
+
},
|
|
558
|
+
{
|
|
559
|
+
"upstreamTest": "should support hover / focus ring / press state",
|
|
560
|
+
"upstream": "packages/react-aria-components/test/Tabs.test.js#L209-L328",
|
|
561
|
+
"reason": "styling and interaction-state data attributes"
|
|
562
|
+
},
|
|
563
|
+
{
|
|
564
|
+
"upstreamTest": "should update TabPanel ID when current tab is changed",
|
|
565
|
+
"upstream": "packages/react-aria-components/test/Tabs.test.js#L434",
|
|
566
|
+
"reason": "library-specific generated panel ids"
|
|
567
|
+
},
|
|
568
|
+
{
|
|
569
|
+
"upstreamTest": "should support refs",
|
|
570
|
+
"upstream": "packages/react-aria-components/test/Tabs.test.js#L542",
|
|
571
|
+
"reason": "React ref API"
|
|
572
|
+
},
|
|
573
|
+
{
|
|
574
|
+
"upstreamTest": "should support tabs as links",
|
|
575
|
+
"upstream": "packages/react-aria-components/test/Tabs.test.js#L621",
|
|
576
|
+
"reason": "React anchor/router API"
|
|
577
|
+
},
|
|
578
|
+
{
|
|
579
|
+
"upstreamTest": "should navigate linked tabs on click rather than mouse down",
|
|
580
|
+
"upstream": "packages/react-aria-components/test/Tabs.test.js#L640",
|
|
581
|
+
"reason": "React router integration"
|
|
582
|
+
},
|
|
583
|
+
{
|
|
584
|
+
"upstreamTest": "supports nested tabs",
|
|
585
|
+
"upstream": "packages/react-aria-components/test/Tabs.test.js#L699",
|
|
586
|
+
"reason": "nested tablists outside the single tablist/tab/tabpanel target model"
|
|
587
|
+
},
|
|
588
|
+
{
|
|
589
|
+
"upstreamTest": "can add tabs and keep the current selected key",
|
|
590
|
+
"upstream": "packages/react-aria-components/test/Tabs.test.js#L735",
|
|
591
|
+
"reason": "React dynamic-list lifecycle"
|
|
592
|
+
},
|
|
593
|
+
{
|
|
594
|
+
"upstreamTest": "should support tabpanels with aria-labels / custom styles / block-size & inline-size transitions",
|
|
595
|
+
"upstream": "packages/react-aria-components/test/Tabs.test.js#L833-L921",
|
|
596
|
+
"reason": "styling/DOM passthrough and transition measurement"
|
|
597
|
+
},
|
|
598
|
+
{
|
|
599
|
+
"upstreamTest": "supports tooltips / Menu / Select / ComboBox / DialogTrigger inside Tabs",
|
|
600
|
+
"upstream": "packages/react-aria-components/test/Tabs.test.js#L923-L1151",
|
|
601
|
+
"reason": "integration with unrelated components"
|
|
602
|
+
},
|
|
603
|
+
{
|
|
604
|
+
"upstreamTest": "supports Activity",
|
|
605
|
+
"upstream": "packages/react-aria-components/test/Tabs.test.js#L975",
|
|
606
|
+
"reason": "React Activity API"
|
|
607
|
+
},
|
|
608
|
+
{
|
|
609
|
+
"upstreamTest": "should support press events",
|
|
610
|
+
"upstream": "packages/react-aria-components/test/Tabs.test.js#L947",
|
|
611
|
+
"reason": "React onPress/onClick callback API"
|
|
612
|
+
},
|
|
613
|
+
{
|
|
614
|
+
"upstreamTest": "does not generate conflicting ids between multiple tabs instances",
|
|
615
|
+
"upstream": "packages/@adobe/react-spectrum/test/tabs/Tabs.test.js#L309",
|
|
616
|
+
"reason": "generated id uniqueness"
|
|
617
|
+
},
|
|
618
|
+
{
|
|
619
|
+
"upstreamTest": "collapses when it can't render all the tabs horizontally (and related collapse tests)",
|
|
620
|
+
"upstream": "packages/@adobe/react-spectrum/test/tabs/Tabs.test.js#L452-L784",
|
|
621
|
+
"reason": "responsive overflow/collapse styling and menu integration"
|
|
622
|
+
},
|
|
623
|
+
{
|
|
624
|
+
"upstreamTest": "should not focus any tabs when isDisabled tabbing in for the first time",
|
|
625
|
+
"upstream": "packages/@adobe/react-spectrum/test/tabs/Tabs.test.js#L357",
|
|
626
|
+
"reason": "component-level isDisabled prop not modelled; equivalent behaviour covered by all-disabled scenario"
|
|
627
|
+
},
|
|
628
|
+
{
|
|
629
|
+
"upstreamTest": "fires onSelectionChange when clicking on the current tab",
|
|
630
|
+
"upstream": "packages/@adobe/react-spectrum/test/tabs/Tabs.test.js#L900",
|
|
631
|
+
"reason": "library-specific callback-on-reselect semantics, not an APG requirement"
|
|
632
|
+
},
|
|
633
|
+
{
|
|
634
|
+
"upstreamTest": "Tabs SSR and browser test files",
|
|
635
|
+
"upstream": "packages/react-aria-components/test/Tabs.ssr.test.js, Tabs.browser.test.js",
|
|
636
|
+
"reason": "SSR/browser-only harness"
|
|
637
|
+
},
|
|
638
|
+
{
|
|
639
|
+
"upstreamTest": "@react-spectrum/s2 Tabs tests",
|
|
640
|
+
"upstream": "packages/@react-spectrum/s2/test/Tabs.test.tsx",
|
|
641
|
+
"reason": "styling/token system"
|
|
642
|
+
}
|
|
643
|
+
]
|
|
644
|
+
}
|