@sapudex/web-components 2.63.0 → 2.63.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/cypress/specs/FilterMenu.cy.tsx +43 -22
- package/cypress/specs/FilterMenuAccessibility.cy.tsx +1017 -0
- package/cypress/specs/ListItem.cy.tsx +234 -6
- package/cypress/specs/SelectBox.cy.tsx +7 -2
- package/cypress/specs/SelectBoxAccessibility.cy.tsx +5 -5
- package/dist/FilterMenu.d.ts +2 -2
- package/dist/FilterMenu.js +6 -4
- package/dist/FilterMenu.js.map +1 -1
- package/dist/FilterMenuTemplate.js +2 -2
- package/dist/FilterMenuTemplate.js.map +1 -1
- package/dist/List.d.ts +1 -8
- package/dist/List.js +4 -12
- package/dist/List.js.map +1 -1
- package/dist/ListGroupHeaderTemplate.js +8 -7
- package/dist/ListGroupHeaderTemplate.js.map +1 -1
- package/dist/ListItem.js +12 -1
- package/dist/ListItem.js.map +1 -1
- package/dist/ListItemBase.d.ts +5 -0
- package/dist/ListItemBase.js +3 -0
- package/dist/ListItemBase.js.map +1 -1
- package/dist/ListItemTemplate.js +2 -2
- package/dist/ListItemTemplate.js.map +1 -1
- package/dist/ListSelectAllTemplate.js +1 -1
- package/dist/ListSelectAllTemplate.js.map +1 -1
- package/dist/SearchableListBaseTemplate.js +7 -9
- package/dist/SearchableListBaseTemplate.js.map +1 -1
- package/dist/assets/{InputSuggestions-6S5UueXO.js → InputSuggestions-DSPGFWZq.js} +1 -1
- package/dist/assets/{ListItemStandardExpandableTextTemplate-OidrwM_d.js → ListItemStandardExpandableTextTemplate-hSNo3Xyr.js} +1 -1
- package/dist/assets/{bundle.esm-DaFsZANO.js → bundle.esm-qSu0eWiH.js} +21 -21
- package/dist/css/themes/MastheadShell.css +1 -1
- package/dist/css/themes/PromoTile.css +1 -1
- package/dist/generated/themes/MastheadShell.css.d.ts +1 -1
- package/dist/generated/themes/MastheadShell.css.js +1 -1
- package/dist/generated/themes/MastheadShell.css.js.map +1 -1
- package/dist/generated/themes/PromoTile.css.d.ts +1 -1
- package/dist/generated/themes/PromoTile.css.js +1 -1
- package/dist/generated/themes/PromoTile.css.js.map +1 -1
- package/dist/web-types.json +1 -1
- package/package.json +1 -1
- package/src/FilterMenu.ts +6 -4
- package/src/FilterMenuTemplate.tsx +12 -8
- package/src/List.ts +4 -12
- package/src/ListGroupHeaderTemplate.tsx +9 -3
- package/src/ListItem.ts +12 -1
- package/src/ListItemBase.ts +7 -0
- package/src/ListItemTemplate.tsx +6 -1
- package/src/ListSelectAllTemplate.tsx +11 -12
- package/src/SearchableListBaseTemplate.tsx +9 -9
- package/src/generated/themes/MastheadShell.css.ts +1 -1
- package/src/generated/themes/PromoTile.css.ts +1 -1
- package/src/themes/MastheadShell.css +1 -1
- package/src/themes/PromoTile.css +5 -0
|
@@ -748,10 +748,12 @@ describe("Filter Menu component", () => {
|
|
|
748
748
|
cy.get("@triggerBtn").click();
|
|
749
749
|
});
|
|
750
750
|
|
|
751
|
+
// Updated: Select All supplies the native ListItem label, not slotted text on its host.
|
|
751
752
|
it("render the correct label for the header", () => {
|
|
752
753
|
cy.get("[udex-filter-menu]")
|
|
753
754
|
.shadow().find("udex-list-select-all")
|
|
754
|
-
.shadow().find("udex-list-item")
|
|
755
|
+
.shadow().find("udex-list-item")
|
|
756
|
+
.shadow().find('[part="title"]').should("have.text", "Select All");
|
|
755
757
|
});
|
|
756
758
|
|
|
757
759
|
it("select all header focus on pressed letter", () => {
|
|
@@ -2404,48 +2406,67 @@ describe("Filter Menu component", () => {
|
|
|
2404
2406
|
});
|
|
2405
2407
|
});
|
|
2406
2408
|
|
|
2407
|
-
//
|
|
2408
|
-
//
|
|
2409
|
-
|
|
2410
|
-
// header (and no real UDExFilterMenuGroupHeader) previously entered tree mode by
|
|
2411
|
-
// mistake — rendering role="tree"/role="treeitem"/aria-multiselectable. That is
|
|
2412
|
-
// semantically wrong (a Select All affordance is a bulk-select control over a flat
|
|
2413
|
-
// list, not a hierarchical group) and it broke the footer Tab-order focus tests.
|
|
2414
|
-
// isTreeStructure now excludes Select All headers (isSelectAllHeader === true) when
|
|
2415
|
-
// detecting groups, so this configuration stays a flat listbox.
|
|
2416
|
-
describe("Regression: MultiSelect + Select All header (no real group) does NOT get tree pattern", () => {
|
|
2409
|
+
// Updated: Select All is a parent with its own root count, not a same-level option
|
|
2410
|
+
// counted among its controlled children. MultiSelect now includes it in tree mode.
|
|
2411
|
+
describe("Regression: MultiSelect + Select All header gets a hierarchical real-focus tree", () => {
|
|
2417
2412
|
beforeEach(() => {
|
|
2418
2413
|
cy.mount(filterMenuSelectAll);
|
|
2419
2414
|
cy.get("#filter-menu-select-all").shadow()
|
|
2420
2415
|
.find(".udex-filter-menu__trigger").click();
|
|
2421
2416
|
});
|
|
2422
2417
|
|
|
2423
|
-
|
|
2418
|
+
// Updated: the native tree replaces the obsolete flat listbox expectation.
|
|
2419
|
+
it("inner list div has role=\"tree\", not \"listbox\"", () => {
|
|
2424
2420
|
cy.get("#filter-menu-select-all").shadow()
|
|
2425
2421
|
.find("[udex-list]").shadow()
|
|
2426
|
-
.find("#udex-list").should("have.attr", "role", "
|
|
2422
|
+
.find("#udex-list").should("have.attr", "role", "tree");
|
|
2427
2423
|
});
|
|
2428
2424
|
|
|
2429
|
-
|
|
2425
|
+
// Updated: MultiSelect tree semantics retain a transparent real-focus list host.
|
|
2426
|
+
it("host [udex-list] has aria-multiselectable=\"true\" and role=\"none\"", () => {
|
|
2430
2427
|
cy.get("#filter-menu-select-all").shadow()
|
|
2431
|
-
.find("[udex-list]").should(
|
|
2428
|
+
.find("[udex-list]").should($list => {
|
|
2429
|
+
expect($list).to.have.attr("aria-multiselectable", "true");
|
|
2430
|
+
expect($list).to.have.attr("role", "none");
|
|
2431
|
+
});
|
|
2432
2432
|
});
|
|
2433
2433
|
|
|
2434
|
-
|
|
2434
|
+
// Updated: children are level-2 treeitems with their own two-item sibling count.
|
|
2435
|
+
it("a leaf item's inner [part=item] is a level-2 treeitem, 1 of 2 children", () => {
|
|
2435
2436
|
// The leaf items are slotted light-DOM children of udex-list-select-all;
|
|
2436
2437
|
// eq(0) is the first leaf (the Select All header's own inner item lives inside
|
|
2437
2438
|
// the udex-list-select-all shadow, so it is not matched by this light-DOM find).
|
|
2438
2439
|
cy.get("#filter-menu-select-all").shadow()
|
|
2439
2440
|
.find(".udex-filter-menu__list")
|
|
2440
|
-
.find("udex-list-item").eq(0).shadow()
|
|
2441
|
-
.find("[part=item]").should(
|
|
2441
|
+
.find("[udex-list-item]").eq(0).shadow()
|
|
2442
|
+
.find("[part=item]").should($row => {
|
|
2443
|
+
expect($row).to.have.attr("role", "treeitem");
|
|
2444
|
+
expect($row).to.have.attr("aria-level", "2");
|
|
2445
|
+
expect($row).to.have.attr("aria-posinset", "1");
|
|
2446
|
+
expect($row).to.have.attr("aria-setsize", "2");
|
|
2447
|
+
});
|
|
2442
2448
|
});
|
|
2443
2449
|
|
|
2444
|
-
|
|
2450
|
+
// Updated: native rows alone own checked state; Select All has a separate root count.
|
|
2451
|
+
it("a leaf exposes native aria-checked and its parent becomes mixed without sharing its child count", () => {
|
|
2452
|
+
const UDExLeafRow = () => cy.get("#filter-menu-select-all").shadow()
|
|
2453
|
+
.find(".udex-filter-menu__list").find("[udex-list-item]").eq(0).shadow().find("[part=item]");
|
|
2454
|
+
UDExLeafRow().should($row => {
|
|
2455
|
+
expect($row).to.have.attr("aria-checked", "false");
|
|
2456
|
+
expect($row).not.to.have.attr("aria-selected");
|
|
2457
|
+
});
|
|
2458
|
+
UDExLeafRow().click();
|
|
2459
|
+
UDExLeafRow().should("have.attr", "aria-checked", "true");
|
|
2445
2460
|
cy.get("#filter-menu-select-all").shadow()
|
|
2446
|
-
.find(".udex-
|
|
2447
|
-
.find("
|
|
2448
|
-
|
|
2461
|
+
.find("[udex-list-select-all]").shadow().find('[udex-list-item][part="group-item"]')
|
|
2462
|
+
.shadow().find("[part=item]").should($row => {
|
|
2463
|
+
expect($row).to.have.attr("role", "treeitem");
|
|
2464
|
+
expect($row).to.have.attr("aria-checked", "mixed");
|
|
2465
|
+
expect($row).to.have.attr("aria-level", "1");
|
|
2466
|
+
expect($row).to.have.attr("aria-posinset", "1");
|
|
2467
|
+
expect($row).to.have.attr("aria-setsize", "1");
|
|
2468
|
+
expect($row).not.to.have.attr("aria-selected");
|
|
2469
|
+
});
|
|
2449
2470
|
});
|
|
2450
2471
|
});
|
|
2451
2472
|
});
|