@pine-ds/core 4.7.1 → 4.8.0
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/components/pds-avatar.js +1 -1
- package/components/pds-button2.js +1 -1
- package/components/pds-checkbox2.js +1 -1
- package/components/pds-chip2.js +1 -1
- package/components/pds-combobox.js +1 -1
- package/components/pds-drawer.js +1 -1
- package/components/pds-dropdown-menu-item.js +1 -1
- package/components/pds-dropdown-menu.js +1 -1
- package/components/pds-modal-content.js +1 -1
- package/components/pds-modal2.js +1 -1
- package/components/pds-multiselect.js +1 -1
- package/components/pds-popover.js +1 -1
- package/components/pds-radio-group.js +1 -1
- package/components/pds-radio.js +1 -1
- package/components/pds-switch.js +1 -1
- package/components/pds-table-head-cell2.js +1 -1
- package/components/pds-textarea.js +1 -1
- package/components/pds-toast.js +1 -1
- package/components/truncation-tooltip.js +1 -1
- package/dist/cjs/{index-5Azb8EQG.js → index-Do70atou.js} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/pds-accordion.cjs.entry.js +1 -1
- package/dist/cjs/pds-avatar.cjs.entry.js +3 -3
- package/dist/cjs/pds-button.cjs.entry.js +24 -21
- package/dist/cjs/pds-checkbox.cjs.entry.js +2 -2
- package/dist/cjs/pds-chip.cjs.entry.js +4 -4
- package/dist/cjs/pds-combobox.cjs.entry.js +4 -4
- package/dist/cjs/pds-copytext.cjs.entry.js +2 -2
- package/dist/cjs/pds-datepicker.cjs.entry.js +1 -1
- package/dist/cjs/pds-drawer.cjs.entry.js +1 -1
- package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +31 -2
- package/dist/cjs/pds-dropdown-menu.cjs.entry.js +4 -4
- package/dist/cjs/pds-filter.cjs.entry.js +1 -1
- package/dist/cjs/pds-input.cjs.entry.js +1 -1
- package/dist/cjs/pds-link.cjs.entry.js +1 -1
- package/dist/cjs/pds-modal-content.cjs.entry.js +32 -30
- package/dist/cjs/pds-modal.cjs.entry.js +4 -4
- package/dist/cjs/pds-multiselect.cjs.entry.js +6 -6
- package/dist/cjs/pds-popover.cjs.entry.js +187 -11
- package/dist/cjs/pds-radio-group.cjs.entry.js +2 -2
- package/dist/cjs/pds-radio.cjs.entry.js +3 -3
- package/dist/cjs/pds-select.cjs.entry.js +1 -1
- package/dist/cjs/pds-sortable-item.cjs.entry.js +1 -1
- package/dist/cjs/pds-switch.cjs.entry.js +2 -2
- package/dist/cjs/pds-table-cell.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-head-cell.cjs.entry.js +2 -2
- package/dist/cjs/pds-text.cjs.entry.js +1 -1
- package/dist/cjs/pds-textarea.cjs.entry.js +2 -2
- package/dist/cjs/pds-toast.cjs.entry.js +1 -1
- package/dist/cjs/pine-core.cjs.js +1 -1
- package/dist/cjs/{truncation-tooltip-DO9xli2e.js → truncation-tooltip-BtuiXLV0.js} +31 -6
- package/dist/collection/components/pds-avatar/pds-avatar.js +2 -2
- package/dist/collection/components/pds-button/pds-button.js +24 -22
- package/dist/collection/components/pds-button/stories/pds-button.stories.js +3 -3
- package/dist/collection/components/pds-checkbox/pds-checkbox.js +1 -1
- package/dist/collection/components/pds-chip/pds-chip.js +2 -2
- package/dist/collection/components/pds-combobox/pds-combobox.js +4 -4
- package/dist/collection/components/pds-datepicker/stories/pds-datepicker.stories.js +1 -1
- package/dist/collection/components/pds-drawer/pds-drawer.css +4 -0
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.css +8 -0
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js +58 -6
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +4 -4
- package/dist/collection/components/pds-dropdown-menu/stories/pds-dropdown-menu.stories.js +39 -0
- package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js +32 -30
- package/dist/collection/components/pds-modal/pds-modal.js +4 -4
- package/dist/collection/components/pds-multiselect/pds-multiselect.js +5 -5
- package/dist/collection/components/pds-popover/pds-popover.js +240 -11
- package/dist/collection/components/pds-popover/stories/pds-popover.stories.js +31 -0
- package/dist/collection/components/pds-radio/pds-radio.js +2 -2
- package/dist/collection/components/pds-radio-group/pds-radio-group.js +1 -1
- package/dist/collection/components/pds-switch/pds-switch.js +1 -1
- package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +1 -1
- package/dist/collection/components/pds-table/stories/pds-table.stories.js +1 -1
- package/dist/collection/components/pds-text/stories/pds-text.stories.js +1 -1
- package/dist/collection/components/pds-textarea/pds-textarea.js +1 -1
- package/dist/collection/components/pds-toast/pds-toast.js +1 -1
- package/dist/collection/utils/truncation-tooltip.js +31 -6
- package/dist/docs.json +124 -7
- package/dist/esm/{index-BJXk71tO.js → index-BWDu62Mo.js} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/pds-accordion.entry.js +1 -1
- package/dist/esm/pds-avatar.entry.js +3 -3
- package/dist/esm/pds-button.entry.js +24 -21
- package/dist/esm/pds-checkbox.entry.js +2 -2
- package/dist/esm/pds-chip.entry.js +4 -4
- package/dist/esm/pds-combobox.entry.js +4 -4
- package/dist/esm/pds-copytext.entry.js +2 -2
- package/dist/esm/pds-datepicker.entry.js +1 -1
- package/dist/esm/pds-drawer.entry.js +1 -1
- package/dist/esm/pds-dropdown-menu-item.entry.js +31 -2
- package/dist/esm/pds-dropdown-menu.entry.js +4 -4
- package/dist/esm/pds-filter.entry.js +1 -1
- package/dist/esm/pds-input.entry.js +1 -1
- package/dist/esm/pds-link.entry.js +1 -1
- package/dist/esm/pds-modal-content.entry.js +32 -30
- package/dist/esm/pds-modal.entry.js +4 -4
- package/dist/esm/pds-multiselect.entry.js +6 -6
- package/dist/esm/pds-popover.entry.js +187 -11
- package/dist/esm/pds-radio-group.entry.js +2 -2
- package/dist/esm/pds-radio.entry.js +3 -3
- package/dist/esm/pds-select.entry.js +1 -1
- package/dist/esm/pds-sortable-item.entry.js +1 -1
- package/dist/esm/pds-switch.entry.js +2 -2
- package/dist/esm/pds-table-cell.entry.js +1 -1
- package/dist/esm/pds-table-head-cell.entry.js +2 -2
- package/dist/esm/pds-text.entry.js +1 -1
- package/dist/esm/pds-textarea.entry.js +2 -2
- package/dist/esm/pds-toast.entry.js +1 -1
- package/dist/esm/pine-core.js +1 -1
- package/dist/esm/{truncation-tooltip-DRXsdKk1.js → truncation-tooltip-FaW67DiY.js} +31 -6
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/pds-accordion.entry.js +1 -1
- package/dist/esm-es5/pds-avatar.entry.js +1 -1
- package/dist/esm-es5/pds-button.entry.js +1 -1
- package/dist/esm-es5/pds-checkbox.entry.js +1 -1
- package/dist/esm-es5/pds-chip.entry.js +1 -1
- package/dist/esm-es5/pds-combobox.entry.js +1 -1
- package/dist/esm-es5/pds-copytext.entry.js +1 -1
- package/dist/esm-es5/pds-datepicker.entry.js +1 -1
- package/dist/esm-es5/pds-drawer.entry.js +1 -1
- package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -1
- package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
- package/dist/esm-es5/pds-filter.entry.js +1 -1
- package/dist/esm-es5/pds-input.entry.js +1 -1
- package/dist/esm-es5/pds-link.entry.js +1 -1
- package/dist/esm-es5/pds-modal-content.entry.js +1 -1
- package/dist/esm-es5/pds-modal.entry.js +1 -1
- package/dist/esm-es5/pds-multiselect.entry.js +1 -1
- package/dist/esm-es5/pds-popover.entry.js +1 -1
- package/dist/esm-es5/pds-radio-group.entry.js +1 -1
- package/dist/esm-es5/pds-radio.entry.js +1 -1
- package/dist/esm-es5/pds-select.entry.js +1 -1
- package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
- package/dist/esm-es5/pds-switch.entry.js +1 -1
- package/dist/esm-es5/pds-table-cell.entry.js +1 -1
- package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
- package/dist/esm-es5/pds-text.entry.js +1 -1
- package/dist/esm-es5/pds-textarea.entry.js +1 -1
- package/dist/esm-es5/pds-toast.entry.js +1 -1
- package/dist/esm-es5/pine-core.js +1 -1
- package/dist/esm-es5/truncation-tooltip-FaW67DiY.js +1 -0
- package/dist/pine-core/{p-e836f3ec.system.entry.js → p-00a50de5.system.entry.js} +2 -2
- package/dist/pine-core/{p-1437585e.system.entry.js → p-047433a4.system.entry.js} +1 -1
- package/dist/pine-core/{p-7fa66cad.entry.js → p-089c3e60.entry.js} +1 -1
- package/dist/pine-core/{p-341c38f1.system.entry.js → p-0af0d752.system.entry.js} +1 -1
- package/dist/pine-core/{p-3a959459.system.entry.js → p-121612a7.system.entry.js} +1 -1
- package/dist/pine-core/{p-cde8eb81.entry.js → p-138b278b.entry.js} +1 -1
- package/dist/pine-core/{p-cfd012d4.entry.js → p-158b2f51.entry.js} +1 -1
- package/dist/pine-core/p-17f97f1a.entry.js +1 -0
- package/dist/pine-core/{p-5c90091e.system.entry.js → p-19ba2788.system.entry.js} +1 -1
- package/dist/pine-core/p-1dc5a7e0.system.entry.js +1 -0
- package/dist/pine-core/{p-355e4cf9.entry.js → p-25ea48d1.entry.js} +1 -1
- package/dist/pine-core/{p-c81d8ac8.entry.js → p-295f64ea.entry.js} +1 -1
- package/dist/pine-core/{p-576cf904.system.entry.js → p-29cd4113.system.entry.js} +1 -1
- package/dist/pine-core/{p-1ee86d87.system.entry.js → p-332590c7.system.entry.js} +1 -1
- package/dist/pine-core/p-36cb4bf6.entry.js +1 -0
- package/dist/pine-core/{p-080cb087.system.entry.js → p-3c977d8d.system.entry.js} +1 -1
- package/dist/pine-core/p-3d51891a.entry.js +1 -0
- package/dist/pine-core/{p-72865997.entry.js → p-44f546ae.entry.js} +1 -1
- package/dist/pine-core/{p-b60ac7eb.system.entry.js → p-4bfc8b3e.system.entry.js} +1 -1
- package/dist/pine-core/p-5833a072.system.entry.js +1 -0
- package/dist/pine-core/p-5cfd4d41.system.entry.js +1 -0
- package/dist/pine-core/{p-f2c253d8.entry.js → p-62433f32.entry.js} +1 -1
- package/dist/pine-core/{p-ebd0bff2.entry.js → p-631f5bcc.entry.js} +1 -1
- package/dist/pine-core/p-717323e4.entry.js +1 -0
- package/dist/pine-core/{p-e7a95a49.system.entry.js → p-719542e1.system.entry.js} +1 -1
- package/dist/pine-core/p-73f931a1.entry.js +1 -0
- package/dist/pine-core/{p-f77905aa.system.entry.js → p-884cb31d.system.entry.js} +1 -1
- package/dist/pine-core/{p-4435fff6.system.entry.js → p-8987fd45.system.entry.js} +1 -1
- package/dist/pine-core/{p-02088776.entry.js → p-8c588ca0.entry.js} +1 -1
- package/dist/pine-core/p-8e3ff75d.entry.js +1 -0
- package/dist/pine-core/{p-bd26a5e8.entry.js → p-90d5edc6.entry.js} +1 -1
- package/dist/pine-core/p-91f60173.entry.js +1 -0
- package/dist/pine-core/{p-258770cf.system.entry.js → p-9265497e.system.entry.js} +1 -1
- package/dist/pine-core/p-9713fb36.entry.js +1 -0
- package/dist/pine-core/p-99fdf70f.entry.js +1 -0
- package/dist/pine-core/{p-0a84d220.entry.js → p-9aaedded.entry.js} +1 -1
- package/dist/pine-core/p-9df5e204.entry.js +1 -0
- package/dist/pine-core/p-CuSNnuFu.system.js +1 -1
- package/dist/pine-core/p-D04W0cAO.system.js +1 -0
- package/dist/pine-core/{p-6d603d16.system.entry.js → p-acca5f7b.system.entry.js} +1 -1
- package/dist/pine-core/{p-a19cd59c.entry.js → p-aff411d0.entry.js} +1 -1
- package/dist/pine-core/{p-bb73ad66.entry.js → p-b182f806.entry.js} +1 -1
- package/dist/pine-core/{p-01aa382c.system.entry.js → p-b9d145f8.system.entry.js} +1 -1
- package/dist/pine-core/p-bdac8f2b.entry.js +1 -0
- package/dist/pine-core/{p-aa032a5e.system.entry.js → p-be9b6e63.system.entry.js} +1 -1
- package/dist/pine-core/{p-ff3de72e.entry.js → p-c483997a.entry.js} +1 -1
- package/dist/pine-core/p-c4e12f0a.entry.js +1 -0
- package/dist/pine-core/{p-e8cb76e8.entry.js → p-c97bfac9.entry.js} +1 -1
- package/dist/pine-core/{p-bd67156b.system.entry.js → p-ca4ee736.system.entry.js} +1 -1
- package/dist/pine-core/p-cccfe60f.system.entry.js +1 -0
- package/dist/pine-core/{p-c5c9ed36.system.entry.js → p-d3d69ca4.system.entry.js} +1 -1
- package/dist/pine-core/{p-f0d24298.system.entry.js → p-ea340c55.system.entry.js} +1 -1
- package/dist/pine-core/{p-88ff1604.entry.js → p-ea8f5d29.entry.js} +1 -1
- package/dist/pine-core/{p-d8570b4b.system.entry.js → p-eaf85be6.system.entry.js} +1 -1
- package/dist/pine-core/{p-fc25b956.system.entry.js → p-ecc7a531.system.entry.js} +1 -1
- package/dist/pine-core/{p-cfc52b95.system.entry.js → p-ee0e30bf.system.entry.js} +1 -1
- package/dist/pine-core/{p-e803f629.system.entry.js → p-ef13f665.system.entry.js} +1 -1
- package/dist/pine-core/{p-97d0b89e.system.entry.js → p-f3067d90.system.entry.js} +1 -1
- package/dist/pine-core/{p-JtdHT_W5.js → p-jrkGLEPe.js} +1 -1
- package/dist/pine-core/pine-core.esm.js +1 -1
- package/dist/types/components/pds-button/pds-button.d.ts +3 -4
- package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.d.ts +13 -3
- package/dist/types/components/pds-modal/pds-modal-content/pds-modal-content.d.ts +2 -0
- package/dist/types/components/pds-popover/pds-popover.d.ts +43 -1
- package/dist/types/components.d.ts +43 -10
- package/dist/types/utils/truncation-tooltip.d.ts +4 -4
- package/dist/types/utils/types.d.ts +1 -0
- package/dist/vscode.html-data.json +50 -7
- package/hydrate/index.js +341 -104
- package/hydrate/index.mjs +341 -104
- package/package.json +2 -2
- package/dist/esm-es5/truncation-tooltip-DRXsdKk1.js +0 -1
- package/dist/pine-core/p-153ba77b.entry.js +0 -1
- package/dist/pine-core/p-645a482b.system.entry.js +0 -1
- package/dist/pine-core/p-74a05bcc.entry.js +0 -1
- package/dist/pine-core/p-7bf6563a.system.entry.js +0 -1
- package/dist/pine-core/p-80a698ae.entry.js +0 -1
- package/dist/pine-core/p-82cf4ec6.entry.js +0 -1
- package/dist/pine-core/p-8d292b48.entry.js +0 -1
- package/dist/pine-core/p-92ae6082.entry.js +0 -1
- package/dist/pine-core/p-993d1043.entry.js +0 -1
- package/dist/pine-core/p-a787b34a.system.entry.js +0 -1
- package/dist/pine-core/p-b69f04b7.entry.js +0 -1
- package/dist/pine-core/p-beb23781.entry.js +0 -1
- package/dist/pine-core/p-bf5887e8.system.entry.js +0 -1
- package/dist/pine-core/p-c36b490e.entry.js +0 -1
- package/dist/pine-core/p-ca0d48e8.entry.js +0 -1
- package/dist/pine-core/p-f474d7de.entry.js +0 -1
- package/dist/pine-core/p-qhdoK1Jp.system.js +0 -1
- /package/dist/esm-es5/{index-BJXk71tO.js → index-BWDu62Mo.js} +0 -0
- /package/dist/pine-core/{p-BJXk71tO.js → p-BWDu62Mo.js} +0 -0
- /package/dist/pine-core/{p-n3_ytl_p.system.js → p-ClDiSG97.system.js} +0 -0
package/hydrate/index.js
CHANGED
|
@@ -5754,7 +5754,7 @@ class MockPdsModal {
|
|
|
5754
5754
|
}; }
|
|
5755
5755
|
}
|
|
5756
5756
|
|
|
5757
|
-
/* pds-icons v10.
|
|
5757
|
+
/* pds-icons v10.7.0, ES Modules */
|
|
5758
5758
|
|
|
5759
5759
|
const addCircle = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' class='pdsicon'><path fill-rule='evenodd' d='M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18M1 12C1 5.925 5.925 1 12 1s11 4.925 11 11-4.925 11-11 11S1 18.075 1 12m11-5a1 1 0 0 1 1 1v3h3a1 1 0 1 1 0 2h-3v3a1 1 0 1 1-2 0v-3H8a1 1 0 1 1 0-2h3V8a1 1 0 0 1 1-1'/></svg>";
|
|
5760
5760
|
const calendarSimple = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' class='pdsicon'><path fill-rule='evenodd' d='M8 1a1 1 0 0 1 1 1v1h6V2a1 1 0 1 1 2 0v1.002c.476.003.891.013 1.252.042.562.046 1.079.145 1.564.392a4 4 0 0 1 1.748 1.748c.247.485.346 1.002.392 1.564C22 7.29 22 7.954 22 8.758v8.483c0 .805 0 1.47-.044 2.01-.046.563-.145 1.08-.392 1.565a4 4 0 0 1-1.748 1.748c-.485.247-1.002.346-1.564.392-.541.044-1.206.044-2.01.044H7.758c-.805 0-1.47 0-2.01-.044-.563-.046-1.08-.145-1.565-.392a4 4 0 0 1-1.748-1.748c-.247-.485-.346-1.002-.392-1.564C2 18.71 2 18.046 2 17.242V8.758c0-.805 0-1.47.044-2.01.046-.563.145-1.08.392-1.565a4 4 0 0 1 1.748-1.748c.485-.247 1.002-.346 1.564-.392.361-.03.777-.04 1.252-.042V2a1 1 0 0 1 1-1M7 5.002c-.446.003-.795.012-1.089.036-.438.035-.663.1-.819.18a2 2 0 0 0-.874.874c-.08.156-.145.38-.18.819C4 7.361 4 7.943 4 8.8V9h16v-.2c0-.857 0-1.439-.038-1.889-.035-.438-.1-.663-.18-.819a2 2 0 0 0-.874-.874c-.156-.08-.38-.145-.819-.18A15 15 0 0 0 17 5.002V6a1 1 0 1 1-2 0V5H9v1a1 1 0 1 1-2 0zM20 11H4v6.2c0 .857 0 1.439.038 1.889.035.438.1.663.18.819a2 2 0 0 0 .874.874c.156.08.38.145.819.18C6.361 21 6.943 21 7.8 21h8.4c.857 0 1.439 0 1.889-.038.438-.035.663-.1.819-.18a2 2 0 0 0 .874-.874c.08-.156.145-.38.18-.819.037-.45.038-1.032.038-1.889z'/></svg>";
|
|
@@ -6072,7 +6072,7 @@ class PdsAvatar {
|
|
|
6072
6072
|
// Percentage is average size of icon in relation to total avatar size
|
|
6073
6073
|
// of all preset sizes found in Figma.
|
|
6074
6074
|
// Used to allow icons to scale to container size
|
|
6075
|
-
return hAsync("pds-icon", { color: "var(--pine-color-brand)", icon: userFilled, size: "33.53%" });
|
|
6075
|
+
return hAsync("pds-icon", { color: "var(--pine-color-brand)", icon: userFilled, size: "33.53%", "aria-hidden": "true" });
|
|
6076
6076
|
};
|
|
6077
6077
|
this.classNames = () => ({
|
|
6078
6078
|
'pds-avatar': true,
|
|
@@ -6104,7 +6104,7 @@ class PdsAvatar {
|
|
|
6104
6104
|
}
|
|
6105
6105
|
}
|
|
6106
6106
|
render() {
|
|
6107
|
-
return (hAsync(Host, { key: '
|
|
6107
|
+
return (hAsync(Host, { key: 'bd60a3273eaa4e2f5fa4d0f5d0d27babd7674e09', id: this.componentId, class: Object.assign({}, this.classNames()) }, this.renderAvatar()));
|
|
6108
6108
|
}
|
|
6109
6109
|
get el() { return getElement(this); }
|
|
6110
6110
|
static get watchers() { return {
|
|
@@ -6723,6 +6723,7 @@ class PdsBox {
|
|
|
6723
6723
|
|
|
6724
6724
|
const pdsButtonCss = () => `:host{--pds-button-background:var(--pds-button-color-background-default);--pds-button-border:var(--pine-border);--pds-button-border-radius:var(--pine-border-radius-full);--pds-button-border-radius-start-end:var(--pine-border-radius-full);--pds-button-border-radius-start-start:var(--pine-border-radius-full);--pds-button-border-radius-end-end:var(--pine-border-radius-full);--pds-button-border-radius-end-start:var(--pine-border-radius-full);--pds-button-min-height:var(--pine-dimension-450);--pds-button-outline-offset:var(--pine-border-width);--pds-button-color-border-default:transparent;--pds-button-color-border-disabled:transparent;--pds-button-color-border-focus:transparent;--pds-button-color-border-hover:transparent;--button-loader-color:var(--pds-button-color-text-default);display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}:host([full-width=true]){display:-ms-flexbox;display:flex;width:100%}:host([full-width=true]) a,:host([full-width=true]) button{-ms-flex-pack:center;justify-content:center;width:100%}:host([full-width=true]) .pds-button__content{-ms-flex-pack:center;justify-content:center;text-align:center}:host([loading=true]){cursor:wait;pointer-events:none}:host([aria-disabled=true]){pointer-events:none}.pds-button{--pds-loader-color:var(--pds-button-color-text-default);-ms-flex-align:center;align-items:center;background-color:var(--pds-button-background, var(--pds-button-color-background-default));border:var(--pds-button-border);border-color:var(--pds-button-color-border-default);border-radius:var(--pds-button-border-radius);border-end-end-radius:var(--pds-button-border-radius-end-end, var(--pds-button-border-radius));border-end-start-radius:var(--pds-button-border-radius-end-start, var(--pds-button-border-radius));border-start-end-radius:var(--pds-button-border-radius-start-end, var(--pds-button-border-radius));border-start-start-radius:var(--pds-button-border-radius-start-start, var(--pds-button-border-radius));-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pds-button-color-text-default);cursor:pointer;display:-ms-flexbox;display:flex;font:var(--pine-typography-body-brand-label);letter-spacing:var(--pine-letter-spacing);min-height:var(--pds-button-min-height);padding:calc(var(--pine-dimension-xs) - var(--pine-border-width)) var(--pine-dimension-sm);position:relative;text-decoration:none}.pds-button pds-icon{color:currentColor;fill:currentColor}.pds-button:hover{background-color:var(--pds-button-color-background-hover);border-color:var(--pds-button-color-border-hover)}.pds-button:focus-visible{border-color:var(--pds-button-color-border-focus);-webkit-box-shadow:var(--pds-button-box-shadow-focus, none);box-shadow:var(--pds-button-box-shadow-focus, none);outline:var(--pds-button-outline-focus, var(--pine-outline-focus));outline-offset:var(--pds-button-outline-offset)}.pds-button:disabled{background-color:var(--pds-button-color-background-disabled);border-color:var(--pds-button-color-border-disabled);color:var(--pds-button-color-text-disabled);pointer-events:none}.pds-button--primary{--pds-button-color-background-default:var(--pine-color-primary);--pds-button-color-background-hover:var(--pine-color-primary-hover);--pds-button-color-background-disabled:var(--pine-color-primary-disabled);--pds-button-color-border-default:var(--pine-color-primary);--pds-button-color-border-hover:var(--pine-color-primary-hover);--pds-button-color-text-default:var(--pine-color-text-primary);--pds-button-color-text-disabled:var(--pine-color-text-primary-disabled);--pds-button-color-outline:var(--pine-color-focus-ring);--button-loader-color:var(--pine-color-text-primary)}.pds-button--accent{--pds-button-color-background-default:var(--pine-color-accent);--pds-button-color-background-hover:var(--pine-color-accent-hover);--pds-button-color-background-disabled:var(--pine-color-accent-disabled);--pds-button-color-border-default:var(--pine-color-accent);--pds-button-color-border-hover:var(--pine-color-accent-hover);--pds-button-color-text-default:var(--pine-color-text-primary);--pds-button-color-text-disabled:var(--pine-color-text-accent-disabled);--pds-button-color-outline:var(--pine-color-focus-ring);--button-loader-color:var(--pine-color-text-primary)}.pds-button--destructive{--pds-button-color-background-default:var(--pine-color-danger);--pds-button-color-background-hover:var(--pine-color-danger-hover);--pds-button-color-background-disabled:var(--pine-color-danger-disabled);--pds-button-color-border-default:var(--pine-color-danger);--pds-button-color-border-hover:var(--pine-color-danger-hover);--pds-button-color-text-default:var(--pine-color-white);--pds-button-color-text-disabled:var(--pine-color-text-danger-disabled);--pds-button-color-outline:var(--pine-color-focus-ring-danger);--button-loader-color:var(--pine-color-text-primary)}.pds-button--destructive:focus-visible{outline-color:var(--pine-color-focus-ring-danger)}.pds-button--secondary,.pds-button--disclosure{--pds-button-color-background-default:var(--pine-color-secondary);--pds-button-color-background-hover:var(--pine-color-secondary-hover);--pds-button-color-background-disabled:var(--pine-color-secondary-disabled);--pds-button-color-border-disabled:var(--pine-color-border-disabled);--pds-button-color-border-focus:var(--pine-color-border);--pds-button-color-border-hover:var(--pine-color-border-hover);--pds-button-color-border-default:var(--pine-color-border);--pds-button-color-text-default:var(--pine-color-text-secondary);--pds-button-color-text-disabled:var(--pine-color-text-secondary-disabled);--pds-button-color-outline:var(--pine-color-focus-ring);--button-loader-color:var(--pine-color-text-secondary)}.pds-button--secondary:hover,.pds-button--disclosure:hover{background-color:var(--pine-color-secondary-hover)}.pds-button--tertiary{--pds-button-color-background-default:transparent;--pds-button-color-background-hover:var(--pine-color-background-muted);--pds-button-color-background-disabled:transparent;--pds-button-color-border-default:transparent;--pds-button-color-border-hover:var(--pine-color-background-muted);--pds-button-color-border-disabled:transparent;--pds-button-color-text-default:var(--pine-color-text-secondary);--pds-button-color-text-disabled:var(--pine-color-text-secondary-disabled);--pds-button-color-outline:var(--pine-color-focus-ring);--button-loader-color:var(--pine-color-text-secondary)}.pds-button--filter{--pds-button-color-background-default:var(--pine-color-background-container);--pds-button-color-background-hover:var(--pine-color-background-subtle);--pds-button-color-background-disabled:var(--pine-color-white);--pds-button-color-border-default:transparent;--pds-button-color-border-hover:transparent;--pds-button-color-border-focus:transparent;--pds-button-color-text-default:var(--pine-color-text-secondary);--pds-button-color-text-hover:var(--pine-color-text-hover);--pds-button-color-text-disabled:var(--pine-color-text-disabled);--pds-button-color-outline:var(--pine-color-focus-ring);--button-loader-color:var(--pine-color-text-secondary);--pds-button-border-radius:var(--pine-dimension-125);--pds-button-border-radius-start-end:var(--pine-dimension-125);--pds-button-border-radius-start-start:var(--pine-dimension-125);--pds-button-border-radius-end-end:var(--pine-dimension-125);--pds-button-border-radius-end-start:var(--pine-dimension-125);padding:var(--pine-dimension-xs) var(--pine-dimension-sm)}.pds-button--filter:disabled{background-color:var(--pine-color-background-container)}.pds-button--filter:hover{color:var(--pds-button-color-text-hover)}.pds-button--unstyled{--pds-button-color-background-default:transparent;--pds-button-color-background-hover:transparent;--pds-button-color-background-disabled:transparent;--pds-button-color-text-default:var(--pine-color-text);--button-loader-color:var(--pine-color-text);border-width:var(--pine-dimension-none);margin:var(--pine-dimension-none);min-height:auto;padding:var(--pine-dimension-none);width:inherit}.pds-button__content{-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex;gap:var(--pine-dimension-xs);position:relative;width:100%}.pds-button__icon{display:-ms-inline-flexbox;display:inline-flex}.pds-button__icon--empty{display:none}.pds-button__text{-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex;white-space:nowrap}.pds-button__icon--hidden,.pds-button__text--hidden{opacity:0}.pds-button__loader{height:var(--pine-dimension-250);left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);width:var(--pine-dimension-250)}.pds-button--loading{cursor:wait;pointer-events:none}.pds-button--loading .pds-button__loader pds-loader{--loader-color:var(--button-loader-color)}.pds-button--small{min-height:var(--pine-dimension-400);padding:calc(var(--pine-dimension-2xs) - var(--pine-border-width)) var(--pine-dimension-sm)}.pds-button--micro{font-size:var(--pine-font-size-085);min-height:var(--pine-dimension-300);padding:var(--pine-dimension-025) var(--pine-dimension-xs)}.pds-button--icon-only{-ms-flex-align:center;align-items:center;border-radius:var(--pine-border-radius-full);height:var(--button-dimension);-ms-flex-pack:center;justify-content:center;min-height:var(--button-dimension);min-width:var(--button-dimension);padding:var(--pine-dimension-xs);width:var(--button-dimension)}.pds-button--icon-only .pds-button__content{height:100%;-ms-flex-pack:center;justify-content:center;width:100%}.pds-button--icon-only .pds-button__text--hidden{border:0;clip:rect(0 0 0 0);-webkit-clip-path:polygon(0 0, 0 0, 0 0);clip-path:polygon(0 0, 0 0, 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pds-button--icon-only.pds-button--small{height:var(--pine-dimension-400);min-height:var(--pine-dimension-400);min-width:var(--pine-dimension-400);padding:var(--pine-dimension-2xs);width:var(--pine-dimension-400)}.pds-button--icon-only.pds-button--micro{height:var(--pine-dimension-300);min-height:var(--pine-dimension-300);min-width:var(--pine-dimension-300);padding:var(--pine-dimension-3xs);width:var(--pine-dimension-300)}`;
|
|
6725
6725
|
|
|
6726
|
+
const FORWARDED_ARIA_ATTRIBUTES = ['aria-current', 'aria-expanded', 'aria-haspopup', 'aria-label', 'aria-pressed'];
|
|
6726
6727
|
/**
|
|
6727
6728
|
* @part button - Exposes the underlying button (or anchor) element for styling, including custom size, shape, or surface on icon-only placements (e.g. a compact square or inverse icon button).
|
|
6728
6729
|
* @part button-content - Exposes the button content for styling.
|
|
@@ -6781,11 +6782,16 @@ class PdsButton {
|
|
|
6781
6782
|
this.variant = 'primary';
|
|
6782
6783
|
this.hasStartContent = false;
|
|
6783
6784
|
this.hasEndContent = false;
|
|
6784
|
-
this.
|
|
6785
|
-
|
|
6786
|
-
|
|
6787
|
-
|
|
6788
|
-
|
|
6785
|
+
this.forwardedAria = {};
|
|
6786
|
+
// Copied rather than moved: frameworks and DOM morphs put host attributes back on every update,
|
|
6787
|
+
// so taking them off the host would fight each one.
|
|
6788
|
+
this.syncHostAria = () => {
|
|
6789
|
+
const forwarded = {};
|
|
6790
|
+
FORWARDED_ARIA_ATTRIBUTES.forEach((name) => (forwarded[name] = this.el.getAttribute(name)));
|
|
6791
|
+
// A new object always re-renders, and frameworks re-set unchanged attributes on every render of their own.
|
|
6792
|
+
if (FORWARDED_ARIA_ATTRIBUTES.some((name) => forwarded[name] !== this.forwardedAria[name])) {
|
|
6793
|
+
this.forwardedAria = forwarded;
|
|
6794
|
+
}
|
|
6789
6795
|
this.forwardAriaControls();
|
|
6790
6796
|
};
|
|
6791
6797
|
this.handleStartSlotChange = (event) => {
|
|
@@ -6823,19 +6829,19 @@ class PdsButton {
|
|
|
6823
6829
|
};
|
|
6824
6830
|
}
|
|
6825
6831
|
connectedCallback() {
|
|
6826
|
-
this.
|
|
6832
|
+
this.syncHostAria();
|
|
6827
6833
|
if (typeof MutationObserver === 'undefined')
|
|
6828
6834
|
return;
|
|
6829
|
-
//
|
|
6830
|
-
this.
|
|
6831
|
-
this.
|
|
6832
|
-
attributeFilter:
|
|
6835
|
+
// Consumers, popovers and menus set these on the host, often after render, but only the inner element is announced.
|
|
6836
|
+
this.hostAriaObserver = new MutationObserver(this.syncHostAria);
|
|
6837
|
+
this.hostAriaObserver.observe(this.el, {
|
|
6838
|
+
attributeFilter: FORWARDED_ARIA_ATTRIBUTES.concat('aria-controls'),
|
|
6833
6839
|
});
|
|
6834
6840
|
}
|
|
6835
6841
|
disconnectedCallback() {
|
|
6836
6842
|
var _a;
|
|
6837
|
-
(_a = this.
|
|
6838
|
-
this.
|
|
6843
|
+
(_a = this.hostAriaObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
6844
|
+
this.hostAriaObserver = undefined;
|
|
6839
6845
|
}
|
|
6840
6846
|
componentDidRender() {
|
|
6841
6847
|
this.forwardAriaControls();
|
|
@@ -6953,16 +6959,13 @@ class PdsButton {
|
|
|
6953
6959
|
}
|
|
6954
6960
|
render() {
|
|
6955
6961
|
// Common props for both button and anchor elements
|
|
6956
|
-
const commonProps = {
|
|
6957
|
-
'aria-expanded': this.triggerExpanded,
|
|
6958
|
-
'aria-haspopup': this.triggerHasPopup,
|
|
6959
|
-
class: this.classNames(),
|
|
6960
|
-
part: 'button',
|
|
6961
|
-
ref: (el) => (this.contentEl = el),
|
|
6962
|
-
};
|
|
6962
|
+
const commonProps = Object.assign(Object.assign({}, this.forwardedAria), { class: this.classNames(), part: 'button', ref: (el) => (this.contentEl = el) });
|
|
6963
6963
|
const attributes = () => {
|
|
6964
6964
|
if (this.href) {
|
|
6965
|
-
return Object.assign(Object.assign({}, commonProps), {
|
|
6965
|
+
return Object.assign(Object.assign({}, commonProps), {
|
|
6966
|
+
// ARIA allows aria-pressed only on buttons, so a link never gets it.
|
|
6967
|
+
'aria-pressed': null, download: this.download, href: this.disabled ? null : this.href, target: this.target
|
|
6968
|
+
});
|
|
6966
6969
|
}
|
|
6967
6970
|
return Object.assign(Object.assign({}, commonProps), { 'aria-busy': this.loading ? 'true' : null, 'aria-live': this.loading ? 'polite' : null, 'disabled': this.disabled, 'name': this.name, 'type': this.type, 'value': this.value });
|
|
6968
6971
|
};
|
|
@@ -6995,8 +6998,7 @@ class PdsButton {
|
|
|
6995
6998
|
"variant": [1],
|
|
6996
6999
|
"hasStartContent": [32],
|
|
6997
7000
|
"hasEndContent": [32],
|
|
6998
|
-
"
|
|
6999
|
-
"triggerHasPopup": [32]
|
|
7001
|
+
"forwardedAria": [32]
|
|
7000
7002
|
},
|
|
7001
7003
|
"$listeners$": [[16, "keydown", "handleFormKeyDown"]],
|
|
7002
7004
|
"$lazyBundleId$": "-",
|
|
@@ -7189,7 +7191,7 @@ class PdsCheckbox {
|
|
|
7189
7191
|
this.hostKeeper.record(hostClass);
|
|
7190
7192
|
return (hAsync(Host, { key: 'bbe09a5e9eb55f62b2921b09a04ddc9476a871ae', class: hostClass }, hAsync("label", { key: 'fa1856d9306eb8c0c19618ea5e2619ea20c3c51d', htmlFor: this.componentId }, hAsync("input", Object.assign({ key: '8537d97a8e69a17d0d563306dac179e393885dda', type: "checkbox", "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage, this.errorMessage), "aria-invalid": this.invalid ? "true" : undefined, id: this.componentId, indeterminate: this.indeterminate, name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onChange: this.handleCheckboxChange, onInput: this.handleInput }, this.inheritedAttributes)), hAsync("span", { key: 'e523922889c80a2d18243cb560cd855bab95803d', class: this.hideLabel ? 'visually-hidden' : '' }, hAsync("slot", { key: 'b6ff34ecbc346d254a0211bfa610823feedb486b', name: "label", onSlotchange: this.updateHasLabelSlot }), !this.hasLabelSlot && this.label)), this.helperMessage &&
|
|
7191
7193
|
hAsync("div", { key: '55dcca850dff0aa93d9ba63d6827d9155ac35dab', class: 'pds-checkbox__message', id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
|
|
7192
|
-
hAsync("div", { key: '5af843679994d29f084d41e90e41e0939c951063', class: `pds-checkbox__message pds-checkbox__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: '
|
|
7194
|
+
hAsync("div", { key: '5af843679994d29f084d41e90e41e0939c951063', class: `pds-checkbox__message pds-checkbox__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: '88a46a17abc1c7b3b3e90543ce8dcf38a14c878c', "aria-hidden": "true", icon: danger, size: "small" }), this.errorMessage)));
|
|
7193
7195
|
}
|
|
7194
7196
|
static get formAssociated() { return true; }
|
|
7195
7197
|
get el() { return getElement(this); }
|
|
@@ -8988,12 +8990,24 @@ function injectStyles() {
|
|
|
8988
8990
|
function isOverflowing(el) {
|
|
8989
8991
|
return el.scrollWidth > el.clientWidth;
|
|
8990
8992
|
}
|
|
8993
|
+
/**
|
|
8994
|
+
* Engines without `:focus-visible` throw on the selector, so there every
|
|
8995
|
+
* focus counts as visible rather than none.
|
|
8996
|
+
*/
|
|
8997
|
+
function isFocusVisible(el) {
|
|
8998
|
+
try {
|
|
8999
|
+
return el.matches(':focus-visible');
|
|
9000
|
+
}
|
|
9001
|
+
catch (_a) {
|
|
9002
|
+
return true;
|
|
9003
|
+
}
|
|
9004
|
+
}
|
|
8991
9005
|
/**
|
|
8992
9006
|
* Sets up automatic tooltip behavior for a truncated element.
|
|
8993
9007
|
*
|
|
8994
|
-
* When the element's text overflows, hovering
|
|
8995
|
-
* will display a tooltip showing the full text content. The
|
|
8996
|
-
* rendered as a portal on document.body and positioned with Floating UI.
|
|
9008
|
+
* When the element's text overflows, hovering the host element or giving it
|
|
9009
|
+
* keyboard focus will display a tooltip showing the full text content. The
|
|
9010
|
+
* tooltip is rendered as a portal on document.body and positioned with Floating UI.
|
|
8997
9011
|
*
|
|
8998
9012
|
* Also owns the element's `tabindex` while it is clipped — see syncTabIndex.
|
|
8999
9013
|
*
|
|
@@ -9184,18 +9198,30 @@ function setupTruncationTooltip(options) {
|
|
|
9184
9198
|
isHoveringPortal = false;
|
|
9185
9199
|
scheduleHide();
|
|
9186
9200
|
}
|
|
9187
|
-
|
|
9201
|
+
// Keyboard focus only: focus from a click would pin the tooltip open after the pointer leaves.
|
|
9202
|
+
// Events from inside a shadow root arrive retargeted to its host, so test the innermost target.
|
|
9203
|
+
function showForVisibleFocus(event) {
|
|
9204
|
+
if (!isFocusVisible(event.composedPath()[0]))
|
|
9205
|
+
return;
|
|
9188
9206
|
isFocused = true;
|
|
9189
9207
|
showTooltip();
|
|
9190
9208
|
}
|
|
9209
|
+
// A key press after a click makes focus visible in place, with no new focusin. keyup, not
|
|
9210
|
+
// keydown, so Tab's focus move lands first; Escape asks to dismiss, never to reveal.
|
|
9211
|
+
function handleKeyUp(event) {
|
|
9212
|
+
if (isFocused || event.key === 'Escape')
|
|
9213
|
+
return;
|
|
9214
|
+
showForVisibleFocus(event);
|
|
9215
|
+
}
|
|
9191
9216
|
function handleFocusOut() {
|
|
9192
9217
|
isFocused = false;
|
|
9193
9218
|
scheduleHide();
|
|
9194
9219
|
}
|
|
9195
9220
|
hostEl.addEventListener('mouseenter', handleMouseEnter);
|
|
9196
9221
|
hostEl.addEventListener('mouseleave', handleMouseLeave);
|
|
9197
|
-
focusEl.addEventListener('focusin',
|
|
9222
|
+
focusEl.addEventListener('focusin', showForVisibleFocus);
|
|
9198
9223
|
focusEl.addEventListener('focusout', handleFocusOut);
|
|
9224
|
+
focusEl.addEventListener('keyup', handleKeyUp);
|
|
9199
9225
|
// Return cleanup function
|
|
9200
9226
|
return () => {
|
|
9201
9227
|
disposed = true;
|
|
@@ -9215,8 +9241,9 @@ function setupTruncationTooltip(options) {
|
|
|
9215
9241
|
}
|
|
9216
9242
|
hostEl.removeEventListener('mouseenter', handleMouseEnter);
|
|
9217
9243
|
hostEl.removeEventListener('mouseleave', handleMouseLeave);
|
|
9218
|
-
focusEl.removeEventListener('focusin',
|
|
9244
|
+
focusEl.removeEventListener('focusin', showForVisibleFocus);
|
|
9219
9245
|
focusEl.removeEventListener('focusout', handleFocusOut);
|
|
9246
|
+
focusEl.removeEventListener('keyup', handleKeyUp);
|
|
9220
9247
|
removePortal();
|
|
9221
9248
|
};
|
|
9222
9249
|
}
|
|
@@ -9458,13 +9485,13 @@ class PdsChip {
|
|
|
9458
9485
|
'aria-label': this.dismissLabel,
|
|
9459
9486
|
};
|
|
9460
9487
|
};
|
|
9461
|
-
return (hAsync(CloseElement, Object.assign({}, closeAttributes(), { onClick: this.handleCloseClick }), hAsync("pds-icon", { icon: remove, size: this.iconSize })));
|
|
9488
|
+
return (hAsync(CloseElement, Object.assign({}, closeAttributes(), { onClick: this.handleCloseClick }), hAsync("pds-icon", { icon: remove, size: this.iconSize, "aria-hidden": "true" })));
|
|
9462
9489
|
}
|
|
9463
9490
|
render() {
|
|
9464
9491
|
const hostClass = this.classNames();
|
|
9465
9492
|
const hostStyles = this.hostStyles;
|
|
9466
9493
|
this.hostKeeper.record(hostClass, hostStyles);
|
|
9467
|
-
return (hAsync(Host, { key: '
|
|
9494
|
+
return (hAsync(Host, { key: 'fa432fa987afb5b856e5e7d3894a88be043805d2', class: hostClass, id: this.componentId, style: hostStyles }, this.setChipContent(), this.effectiveVariant === 'tag' && this.renderCloseButton()));
|
|
9468
9495
|
}
|
|
9469
9496
|
get el() { return getElement(this); }
|
|
9470
9497
|
static get style() { return pdsChipTokensCss() + pdsChipCss(); }
|
|
@@ -13471,7 +13498,7 @@ class PdsCombobox {
|
|
|
13471
13498
|
'pds-combobox__option--layout': isLayout,
|
|
13472
13499
|
'pds-combobox__option--chip': isChip,
|
|
13473
13500
|
'pds-combobox__option--disabled': isDisabled,
|
|
13474
|
-
}, "data-option-index": index, onMouseDown: this.onOptionMouseDown, onClick: this.onOptionClick, onMouseEnter: this.onOptionMouseEnter, onKeyDown: this.onOptionKeyDown }, isLayout ? (hAsync("pds-box", { class: "pds-combobox__option-layout-wrapper", innerHTML: this.getOptionLayoutContent(option) })) : isChip ? (this.renderOptionChip(option)) : (this.renderOptionLabel(option)), isSelected && hAsync("pds-icon", { icon: "check", size: "regular", class: "pds-combobox__option-check" })));
|
|
13501
|
+
}, "data-option-index": index, onMouseDown: this.onOptionMouseDown, onClick: this.onOptionClick, onMouseEnter: this.onOptionMouseEnter, onKeyDown: this.onOptionKeyDown }, isLayout ? (hAsync("pds-box", { class: "pds-combobox__option-layout-wrapper", innerHTML: this.getOptionLayoutContent(option) })) : isChip ? (this.renderOptionChip(option)) : (this.renderOptionLabel(option)), isSelected && hAsync("pds-icon", { icon: "check", size: "regular", "aria-hidden": "true", class: "pds-combobox__option-check" })));
|
|
13475
13502
|
}
|
|
13476
13503
|
/** An option's text, after its `data-icon` when it has one. */
|
|
13477
13504
|
renderOptionLabel(option) {
|
|
@@ -13670,7 +13697,7 @@ class PdsCombobox {
|
|
|
13670
13697
|
}
|
|
13671
13698
|
// Helper method to render chip trigger default content
|
|
13672
13699
|
renderChipTriggerDefaultContent() {
|
|
13673
|
-
return (hAsync("span", { class: "pds-combobox__chip-trigger-label" }, this.selectedChipIcon && hAsync("pds-icon", { icon: this.selectedChipIcon, class: "pds-combobox__chip-trigger-icon" }), this.selectedLabel || this.placeholder));
|
|
13700
|
+
return (hAsync("span", { class: "pds-combobox__chip-trigger-label" }, this.selectedChipIcon && hAsync("pds-icon", { icon: this.selectedChipIcon, "aria-hidden": "true", class: "pds-combobox__chip-trigger-icon" }), this.selectedLabel || this.placeholder));
|
|
13674
13701
|
}
|
|
13675
13702
|
// Helper method to render option as chip (new automatic approach)
|
|
13676
13703
|
renderOptionChip(option) {
|
|
@@ -13701,13 +13728,13 @@ class PdsCombobox {
|
|
|
13701
13728
|
]
|
|
13702
13729
|
.filter(Boolean)
|
|
13703
13730
|
.join(' ');
|
|
13704
|
-
return (hAsync(Host, { key: '
|
|
13731
|
+
return (hAsync(Host, { key: 'c4bc64f28f6f8f2170d199bd89ba02b3fbe41bad', "aria-disabled": this.disabled ? 'true' : null }, hAsync("div", { key: '7648c513d133e11376e50a9a15bc9a227b8fe1d2', class: "pds-combobox", tabIndex: -1, onFocusout: this.onComboboxFocusOut, part: "combobox" }, this.hasVisibleLabel && (hAsync("label", { key: '1be4dce04b943119265b99c2b14002e5faba337f', htmlFor: this.trigger === 'input' ? this.componentId : undefined, id: this.labelId, class: "pds-combobox__label", onClick: this.onLabelClick }, this.label)), this.trigger === 'input' ? (hAsync("div", { class: "pds-combobox__input-wrapper", style: { width: this.triggerWidth } }, hAsync("input", { ref: el => {
|
|
13705
13732
|
this.inputEl = el;
|
|
13706
13733
|
this.triggerEl = el;
|
|
13707
13734
|
}, class: {
|
|
13708
13735
|
'pds-combobox__input': true,
|
|
13709
13736
|
'pds-combobox__input--invalid': this.isInvalid(),
|
|
13710
|
-
}, type: "text", role: "combobox", "aria-autocomplete": "list", "aria-haspopup": this.inputPopupRole === 'tree' ? 'tree' : undefined, "aria-controls": this.listboxId, "aria-describedby": assignDescription(this.componentId, this.isInvalid(), this.helperMessage, this.errorMessage), "aria-invalid": this.isInvalid() ? 'true' : undefined, "aria-activedescendant": this.usesPanelSearch ? undefined : this.activeDescendantId, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.hideLabel ? this.label : undefined, id: this.componentId, value: this.displayText, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput, onClick: this.handleInputClick, onKeyDown: this.handleKeyDown, autocomplete: "off", part: "input" }), hAsync("pds-icon", { icon: "enlarge", "aria-hidden": "true", class: "pds-combobox__input-icon" }))) : this.trigger === 'chip' ? (hAsync("div", { class: this.getChipTriggerClass(), style: { width: this.triggerWidth }, role: this.usesPanelSearch ? 'button' : 'combobox', "aria-haspopup": this.triggerPopupRole, "aria-controls": this.listboxId, "aria-describedby": assignDescription(this.componentId, this.isInvalid(), this.helperMessage, this.errorMessage), "aria-invalid": this.isInvalid() ? 'true' : undefined, "aria-activedescendant": this.usesPanelSearch ? undefined : this.activeDescendantId, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.triggerAriaLabel, "aria-labelledby": this.triggerLabelledBy, id: this.componentId, tabIndex: this.disabled ? -1 : 0, onClick: this.onButtonTriggerClick, "data-layout": this.customTriggerContent, onKeyDown: this.onButtonTriggerKeyDown, onKeyUp: this.onButtonTriggerKeyUp, ref: el => (this.triggerEl = el), part: "chip-trigger" }, this.renderChipTriggerContent())) : (hAsync("div", { class: triggerClass, style: { width: this.triggerWidth }, role: this.usesPanelSearch ? 'button' : 'combobox', "aria-haspopup": this.triggerPopupRole, "aria-controls": this.listboxId, "aria-describedby": assignDescription(this.componentId, this.isInvalid(), this.helperMessage, this.errorMessage), "aria-invalid": this.isInvalid() ? 'true' : undefined, "aria-activedescendant": this.usesPanelSearch ? undefined : this.activeDescendantId, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.triggerAriaLabel, "aria-labelledby": this.triggerLabelledBy, id: this.componentId, tabIndex: this.disabled ? -1 : 0, onClick: this.onButtonTriggerClick, "data-layout": this.customTriggerContent, onKeyDown: this.onButtonTriggerKeyDown, onKeyUp: this.onButtonTriggerKeyUp, ref: el => (this.triggerEl = el), part: "button-trigger" }, this.renderButtonTriggerContent())), this.renderMessages(), hAsync("div", { key: '
|
|
13737
|
+
}, type: "text", role: "combobox", "aria-autocomplete": "list", "aria-haspopup": this.inputPopupRole === 'tree' ? 'tree' : undefined, "aria-controls": this.listboxId, "aria-describedby": assignDescription(this.componentId, this.isInvalid(), this.helperMessage, this.errorMessage), "aria-invalid": this.isInvalid() ? 'true' : undefined, "aria-activedescendant": this.usesPanelSearch ? undefined : this.activeDescendantId, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.hideLabel ? this.label : undefined, id: this.componentId, value: this.displayText, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleInput, onClick: this.handleInputClick, onKeyDown: this.handleKeyDown, autocomplete: "off", part: "input" }), hAsync("pds-icon", { icon: "enlarge", "aria-hidden": "true", class: "pds-combobox__input-icon" }))) : this.trigger === 'chip' ? (hAsync("div", { class: this.getChipTriggerClass(), style: { width: this.triggerWidth }, role: this.usesPanelSearch ? 'button' : 'combobox', "aria-haspopup": this.triggerPopupRole, "aria-controls": this.listboxId, "aria-describedby": assignDescription(this.componentId, this.isInvalid(), this.helperMessage, this.errorMessage), "aria-invalid": this.isInvalid() ? 'true' : undefined, "aria-activedescendant": this.usesPanelSearch ? undefined : this.activeDescendantId, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.triggerAriaLabel, "aria-labelledby": this.triggerLabelledBy, id: this.componentId, tabIndex: this.disabled ? -1 : 0, onClick: this.onButtonTriggerClick, "data-layout": this.customTriggerContent, onKeyDown: this.onButtonTriggerKeyDown, onKeyUp: this.onButtonTriggerKeyUp, ref: el => (this.triggerEl = el), part: "chip-trigger" }, this.renderChipTriggerContent())) : (hAsync("div", { class: triggerClass, style: { width: this.triggerWidth }, role: this.usesPanelSearch ? 'button' : 'combobox', "aria-haspopup": this.triggerPopupRole, "aria-controls": this.listboxId, "aria-describedby": assignDescription(this.componentId, this.isInvalid(), this.helperMessage, this.errorMessage), "aria-invalid": this.isInvalid() ? 'true' : undefined, "aria-activedescendant": this.usesPanelSearch ? undefined : this.activeDescendantId, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.triggerAriaLabel, "aria-labelledby": this.triggerLabelledBy, id: this.componentId, tabIndex: this.disabled ? -1 : 0, onClick: this.onButtonTriggerClick, "data-layout": this.customTriggerContent, onKeyDown: this.onButtonTriggerKeyDown, onKeyUp: this.onButtonTriggerKeyUp, ref: el => (this.triggerEl = el), part: "button-trigger" }, this.renderButtonTriggerContent())), this.renderMessages(), hAsync("div", { key: 'f9aca483c67dd0cdf2fcbdc651a13cfb8fcfe7f1', style: { display: 'none' } }, hAsync("slot", { key: '7a0dc5718ccf377b41bd1716030f16a135700518', onSlotchange: () => this.updateOptions() })), this.renderDropdown(), this.groupDisplay !== 'inline' && [
|
|
13711
13738
|
hAsync("span", { key: "drill-status", class: "visually-hidden", role: "status", "aria-live": "polite" }, this.isOpen && this.effectiveGroupDisplay === 'drill-in' && this.openGroup !== null ? this.openGroup.label : ''),
|
|
13712
13739
|
// Its own region: sharing one, revealing a row then opening it would leave the text the
|
|
13713
13740
|
// same, and opening the group would go unannounced.
|
|
@@ -16167,7 +16194,7 @@ function unwrapReconnectedContent(container, selector, contentSelector) {
|
|
|
16167
16194
|
}
|
|
16168
16195
|
}
|
|
16169
16196
|
|
|
16170
|
-
const pdsDrawerCss = () => `.pds-drawer__modal>.pds-modal__backdrop{-ms-flex-align:stretch;align-items:stretch}.pds-drawer__modal:not(.pds-drawer__modal--modal)>.pds-modal__backdrop{background-color:transparent;pointer-events:none}@supports ((-webkit-backdrop-filter: blur(3px)) or (backdrop-filter: blur(3px))){.pds-drawer__modal:not(.pds-drawer__modal--modal)>.pds-modal__backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}}.pds-drawer__modal>.pds-modal__backdrop[aria-modal]::before{content:none}.pds-drawer__modal>.pds-modal__backdrop>.pds-modal{border-radius:0;height:100%;margin:0;max-height:100%;max-width:100%;pointer-events:auto;width:var(--pds-drawer-width, 500px)}.pds-drawer{display:contents}.pds-drawer.pds-drawer--end .pds-drawer__modal>.pds-modal__backdrop{-ms-flex-pack:end;justify-content:flex-end}.pds-drawer.pds-drawer--start .pds-drawer__modal>.pds-modal__backdrop{-ms-flex-pack:start;justify-content:flex-start}.pds-drawer.pds-drawer--sm{--pds-drawer-width:360px}.pds-drawer.pds-drawer--md{--pds-drawer-width:500px}`;
|
|
16197
|
+
const pdsDrawerCss = () => `.pds-drawer__modal>.pds-modal__backdrop{-ms-flex-align:stretch;align-items:stretch}.pds-drawer__modal:not(.pds-drawer__modal--modal)>.pds-modal__backdrop{background-color:transparent;pointer-events:none}@supports ((-webkit-backdrop-filter: blur(3px)) or (backdrop-filter: blur(3px))){.pds-drawer__modal:not(.pds-drawer__modal--modal)>.pds-modal__backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}}.pds-drawer__modal:not(.pds-drawer__modal--modal)>.pds-modal__backdrop>*{pointer-events:auto}.pds-drawer__modal>.pds-modal__backdrop[aria-modal]::before{content:none}.pds-drawer__modal>.pds-modal__backdrop>.pds-modal{border-radius:0;height:100%;margin:0;max-height:100%;max-width:100%;pointer-events:auto;width:var(--pds-drawer-width, 500px)}.pds-drawer{display:contents}.pds-drawer.pds-drawer--end .pds-drawer__modal>.pds-modal__backdrop{-ms-flex-pack:end;justify-content:flex-end}.pds-drawer.pds-drawer--start .pds-drawer__modal>.pds-modal__backdrop{-ms-flex-pack:start;justify-content:flex-start}.pds-drawer.pds-drawer--sm{--pds-drawer-width:360px}.pds-drawer.pds-drawer--md{--pds-drawer-width:500px}`;
|
|
16171
16198
|
|
|
16172
16199
|
// Known selectors for content Pine components portal out of place rather than
|
|
16173
16200
|
// rendering where they are — pds-tooltip and pds-combobox's dropdown in
|
|
@@ -16636,11 +16663,11 @@ class PdsDropdownMenu {
|
|
|
16636
16663
|
if (tagName === 'pds-dropdown-menu-item') {
|
|
16637
16664
|
// For pds-dropdown-menu-item, focus the inner element
|
|
16638
16665
|
const menuItem = item;
|
|
16639
|
-
const
|
|
16666
|
+
const innerControl = (_a = menuItem.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('button, [role="menuitem"]');
|
|
16640
16667
|
const innerLink = ((_d = (_c = (_b = menuItem.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('pds-link')) === null || _c === void 0 ? void 0 : _c.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('a'))
|
|
16641
16668
|
|| ((_e = menuItem.shadowRoot) === null || _e === void 0 ? void 0 : _e.querySelector('a'));
|
|
16642
|
-
if (
|
|
16643
|
-
|
|
16669
|
+
if (innerControl) {
|
|
16670
|
+
innerControl.focus();
|
|
16644
16671
|
}
|
|
16645
16672
|
else if (innerLink) {
|
|
16646
16673
|
innerLink.focus();
|
|
@@ -16792,7 +16819,7 @@ class PdsDropdownMenu {
|
|
|
16792
16819
|
}
|
|
16793
16820
|
}
|
|
16794
16821
|
render() {
|
|
16795
|
-
return (hAsync(Host, { key: '
|
|
16822
|
+
return (hAsync(Host, { key: '1765909c8c3c140e52dc3f6b50693c97d6bcc003', id: this.componentId }, hAsync("slot", { key: '0b566cd288428a0694a2d61d4a73bd79def4bfad', name: "trigger", onSlotchange: this.handleTriggerSlotChange }), hAsync("pds-box", { key: '16cdfc208cfe7f6e074289c30aa0e1188a34876d', "border-radius": "sm", display: "flex", direction: "column", class: "pds-dropdown-menu--panel is-hidden", shadow: "100", part: "menu-panel" }, hAsync("div", { key: 'a28c1736ad02e8ac3d82c0fe1933606a7216989b', class: { 'pds-dropdown-menu__header': true, 'is-hidden': !this.hasHeader } }, hAsync("slot", { key: '9c6dfddefb266083f68aa27d6cc01127a69cd1cf', name: "header", onSlotchange: this.handleHeaderSlotChange })), hAsync("div", { key: '8cfe85c10f92d4a4ec6b5d2d0264d054a74ba29b', class: "pds-dropdown-menu__items", role: "menu", "aria-orientation": "vertical" }, hAsync("slot", { key: '1a5b4aa406d2706ca8cef49deb05140a5763be1c', onSlotchange: this.handleSlotChange })))));
|
|
16796
16823
|
}
|
|
16797
16824
|
get host() { return getElement(this); }
|
|
16798
16825
|
static get style() { return pdsDropdownMenuCss(); }
|
|
@@ -16811,10 +16838,10 @@ class PdsDropdownMenu {
|
|
|
16811
16838
|
}; }
|
|
16812
16839
|
}
|
|
16813
16840
|
|
|
16814
|
-
const pdsDropdownMenuItemCss = () => `:host{cursor:pointer;display:-ms-flexbox;display:flex;width:100%;}:host(.is-disabled){cursor:not-allowed !important;opacity:0.5 !important}:host(.is-disabled) .pds-dropdown-menu-item__content{cursor:not-allowed !important;pointer-events:none !important}.pds-dropdown-menu-item__content{-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:var(--pine-dimension-xs);color:var(--pine-color-text);display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;font:var(--pine-typography-body-medium);gap:var(--pine-dimension-xs);margin:calc(var(--pine-border-width) + 2px);padding:var(--pine-dimension-xs);text-align:start;width:100%;}.pds-dropdown-menu-item__content:hover{background-color:var(--pine-color-background-muted);color:var(--pine-color-text-hover)}.pds-dropdown-menu-item__content{}.pds-dropdown-menu-item__content:focus,.pds-dropdown-menu-item__content:focus-visible,.pds-dropdown-menu-item__content.has-focus{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}:host(.destructive) .pds-dropdown-menu-item__content{--pds-context-link-color:var(--pine-color-danger);--pds-context-link-color-hover:var(--pine-color-danger-hover);-ms-flex-align:center;align-items:center;color:var(--pine-color-danger)}:host(.destructive) .pds-dropdown-menu-item__content:hover{background-color:var(--pine-color-danger-disabled);color:var(--pine-color-danger-hover)}:host(.destructive) .pds-dropdown-menu-item__content:focus,:host(.destructive) .pds-dropdown-menu-item__content:focus-visible,:host(.destructive) .pds-dropdown-menu-item__content.has-focus{background-color:var(--pine-color-danger-disabled);outline:var(--pine-outline-focus-danger);outline-offset:var(--pine-border-width)}pds-link::part(link):focus,pds-link::part(link):focus-visible{-webkit-box-shadow:none;box-shadow:none;outline:none}pds-link::part(link){-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs);margin:calc(var(--pine-dimension-xs) * -1);padding:var(--pine-dimension-xs);text-decoration:none;width:calc(100% + var(--pine-dimension-xs) * 2)}`;
|
|
16841
|
+
const pdsDropdownMenuItemCss = () => `:host{cursor:pointer;display:-ms-flexbox;display:flex;width:100%;}:host(.is-disabled){cursor:not-allowed !important;opacity:0.5 !important}:host(.is-disabled) .pds-dropdown-menu-item__content{cursor:not-allowed !important;pointer-events:none !important}.pds-dropdown-menu-item__content{-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:var(--pine-dimension-xs);color:var(--pine-color-text);display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;font:var(--pine-typography-body-medium);gap:var(--pine-dimension-xs);margin:calc(var(--pine-border-width) + 2px);padding:var(--pine-dimension-xs);text-align:start;width:100%;}.pds-dropdown-menu-item__content:hover{background-color:var(--pine-color-background-muted);color:var(--pine-color-text-hover)}.pds-dropdown-menu-item__content{}.pds-dropdown-menu-item__content:focus,.pds-dropdown-menu-item__content:focus-visible,.pds-dropdown-menu-item__content.has-focus{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}:host(.is-informational){cursor:default}:host(.is-informational) .pds-dropdown-menu-item__content:hover{background-color:transparent;color:var(--pine-color-text)}:host(.destructive) .pds-dropdown-menu-item__content{--pds-context-link-color:var(--pine-color-danger);--pds-context-link-color-hover:var(--pine-color-danger-hover);-ms-flex-align:center;align-items:center;color:var(--pine-color-danger)}:host(.destructive) .pds-dropdown-menu-item__content:hover{background-color:var(--pine-color-danger-disabled);color:var(--pine-color-danger-hover)}:host(.destructive) .pds-dropdown-menu-item__content:focus,:host(.destructive) .pds-dropdown-menu-item__content:focus-visible,:host(.destructive) .pds-dropdown-menu-item__content.has-focus{background-color:var(--pine-color-danger-disabled);outline:var(--pine-outline-focus-danger);outline-offset:var(--pine-border-width)}pds-link::part(link):focus,pds-link::part(link):focus-visible{-webkit-box-shadow:none;box-shadow:none;outline:none}pds-link::part(link){-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;gap:var(--pine-dimension-xs);margin:calc(var(--pine-dimension-xs) * -1);padding:var(--pine-dimension-xs);text-decoration:none;width:calc(100% + var(--pine-dimension-xs) * 2)}`;
|
|
16815
16842
|
|
|
16816
16843
|
/**
|
|
16817
|
-
* @part button
|
|
16844
|
+
* @part button - Exposes the item's inner element for styling. Appears on button and informational items, not on links.
|
|
16818
16845
|
*/
|
|
16819
16846
|
class PdsDropdownMenuItem {
|
|
16820
16847
|
constructor(hostRef) {
|
|
@@ -16830,9 +16857,17 @@ class PdsDropdownMenuItem {
|
|
|
16830
16857
|
* @defaultValue false
|
|
16831
16858
|
*/
|
|
16832
16859
|
this.disabled = false;
|
|
16860
|
+
/**
|
|
16861
|
+
* It determines whether or not the dropdown-item is informational: text that the arrow keys
|
|
16862
|
+
* reach but that can't be activated. Takes precedence over `href` and `destructive`.
|
|
16863
|
+
* Screen readers announce it as dimmed or unavailable, the same way as a disabled item.
|
|
16864
|
+
* @defaultValue false
|
|
16865
|
+
*/
|
|
16866
|
+
this.informational = false;
|
|
16833
16867
|
/**
|
|
16834
16868
|
* Determines whether the link should open in a new tab and display an external icon.
|
|
16835
16869
|
* This is a simpler alternative to using `target="_blank"` for the common case.
|
|
16870
|
+
* Ignored when `informational` is set.
|
|
16836
16871
|
* @defaultValue false
|
|
16837
16872
|
*/
|
|
16838
16873
|
this.external = false;
|
|
@@ -16843,6 +16878,12 @@ class PdsDropdownMenuItem {
|
|
|
16843
16878
|
this.handleBlur = () => {
|
|
16844
16879
|
this.hasFocus = false;
|
|
16845
16880
|
};
|
|
16881
|
+
// Space would otherwise scroll the page, since nothing in the item takes the key.
|
|
16882
|
+
this.handleInformationalKeyDown = (event) => {
|
|
16883
|
+
if (event.key === ' ') {
|
|
16884
|
+
event.preventDefault();
|
|
16885
|
+
}
|
|
16886
|
+
};
|
|
16846
16887
|
this.handleKeyDown = (event) => {
|
|
16847
16888
|
// Handle keyboard events
|
|
16848
16889
|
if (!this.disabled && (event.key === 'Enter')) {
|
|
@@ -16864,6 +16905,8 @@ class PdsDropdownMenuItem {
|
|
|
16864
16905
|
;
|
|
16865
16906
|
handleClick() {
|
|
16866
16907
|
var _a;
|
|
16908
|
+
if (this.informational)
|
|
16909
|
+
return;
|
|
16867
16910
|
// Filter only pds-dropdown-menu-item elements and find the index of the current item
|
|
16868
16911
|
const menuItems = Array.from(this.host.parentNode.children).filter((child) => child.tagName.toLowerCase() === 'pds-dropdown-menu-item');
|
|
16869
16912
|
const itemIndex = menuItems.indexOf(this.host);
|
|
@@ -16876,6 +16919,12 @@ class PdsDropdownMenuItem {
|
|
|
16876
16919
|
});
|
|
16877
16920
|
}
|
|
16878
16921
|
renderElement() {
|
|
16922
|
+
if (this.informational) {
|
|
16923
|
+
return (hAsync("div", { class: {
|
|
16924
|
+
'pds-dropdown-menu-item__content': true,
|
|
16925
|
+
'has-focus': this.hasFocus
|
|
16926
|
+
}, role: "menuitem", "aria-disabled": "true", part: "button", tabIndex: this.disabled ? -1 : 0, onKeyDown: this.handleInformationalKeyDown, onFocus: this.handleFocus, onBlur: this.handleBlur }, hAsync("slot", null)));
|
|
16927
|
+
}
|
|
16879
16928
|
if (this.href != null) {
|
|
16880
16929
|
return (hAsync("pds-link", { download: this.download, href: this.disabled ? null : this.href, external: this.external, target: this.target, class: {
|
|
16881
16930
|
'pds-dropdown-menu-item__content': true,
|
|
@@ -16888,7 +16937,14 @@ class PdsDropdownMenuItem {
|
|
|
16888
16937
|
}, tabIndex: this.disabled ? -1 : 0, type: "button", part: "button", onKeyDown: this.handleKeyDown, onFocus: this.handleFocus, onBlur: this.handleBlur, disabled: this.disabled, "aria-disabled": this.disabled ? 'true' : null }, hAsync("slot", null)));
|
|
16889
16938
|
}
|
|
16890
16939
|
render() {
|
|
16891
|
-
return (hAsync(Host, { key: '
|
|
16940
|
+
return (hAsync(Host, { key: '47a62550fde33f892d7af4f4e71b67ebf7aa2c3f', id: this.componentId, class: {
|
|
16941
|
+
'is-disabled': this.disabled,
|
|
16942
|
+
'is-informational': this.informational,
|
|
16943
|
+
'destructive': !this.disabled && !this.informational && this.destructive
|
|
16944
|
+
}, onClick: () => !this.disabled && this.handleClick(), role: "none",
|
|
16945
|
+
// ARIA ignores role="none" on focusable elements, so a focusable host would sit between
|
|
16946
|
+
// the menu and the informational menuitem as an unexpected child.
|
|
16947
|
+
tabIndex: this.informational ? null : -1, "aria-disabled": this.disabled && !this.informational ? 'true' : null }, this.renderElement()));
|
|
16892
16948
|
}
|
|
16893
16949
|
get host() { return getElement(this); }
|
|
16894
16950
|
static get style() { return pdsDropdownMenuItemCss(); }
|
|
@@ -16901,6 +16957,7 @@ class PdsDropdownMenuItem {
|
|
|
16901
16957
|
"disabled": [516],
|
|
16902
16958
|
"download": [1],
|
|
16903
16959
|
"href": [1],
|
|
16960
|
+
"informational": [516],
|
|
16904
16961
|
"external": [516],
|
|
16905
16962
|
"target": [513],
|
|
16906
16963
|
"hasFocus": [32],
|
|
@@ -16908,7 +16965,7 @@ class PdsDropdownMenuItem {
|
|
|
16908
16965
|
},
|
|
16909
16966
|
"$listeners$": undefined,
|
|
16910
16967
|
"$lazyBundleId$": "-",
|
|
16911
|
-
"$attrsToReflect$": [["disabled", "disabled"], ["external", "external"], ["target", "target"]]
|
|
16968
|
+
"$attrsToReflect$": [["disabled", "disabled"], ["informational", "informational"], ["external", "external"], ["target", "target"]]
|
|
16912
16969
|
}; }
|
|
16913
16970
|
}
|
|
16914
16971
|
|
|
@@ -18695,7 +18752,7 @@ function containsComposed(ancestor, node) {
|
|
|
18695
18752
|
*/
|
|
18696
18753
|
const openModals = new Map();
|
|
18697
18754
|
let openSequence = 0;
|
|
18698
|
-
/** Whether an open
|
|
18755
|
+
/** Whether the panel of an open popover that takes Escape sits in `root`, including inside shadow roots under it. */
|
|
18699
18756
|
function hasOpenPopover(root) {
|
|
18700
18757
|
if (root.querySelector('[data-pds-popover-open]'))
|
|
18701
18758
|
return true;
|
|
@@ -19242,14 +19299,14 @@ class PdsModal {
|
|
|
19242
19299
|
}
|
|
19243
19300
|
render() {
|
|
19244
19301
|
const [sizeClass = 'md', customSize] = this.resolveSize();
|
|
19245
|
-
return (hAsync("dialog", { key: '
|
|
19302
|
+
return (hAsync("dialog", { key: '0a3ea92246b5ae704bc7dcbadf4f4e0d5a54e9e6', class: {
|
|
19246
19303
|
'pds-modal__backdrop': true,
|
|
19247
19304
|
'open': this.open
|
|
19248
|
-
}, "aria-modal": this.disableTopLayer ? 'false' : 'true', "aria-labelledby": `${this.componentId}-heading`, onClick: this.handleBackdropClick, onCancel: this.handleCancel }, hAsync("div", { key: '
|
|
19305
|
+
}, "aria-modal": this.disableTopLayer ? 'false' : 'true', "aria-labelledby": `${this.componentId}-heading`, onClick: this.handleBackdropClick, onCancel: this.handleCancel }, hAsync("div", { key: 'a38029c2284ed345bec2ce7638fc3415818cd609', class: {
|
|
19249
19306
|
'pds-modal': true,
|
|
19250
19307
|
[`pds-modal--${sizeClass}`]: true,
|
|
19251
19308
|
'pds-modal--scrollable': this.scrollable
|
|
19252
|
-
}, style: customSize !== undefined ? { '--pds-modal-max-width': customSize } : undefined, part: "modal" }, hAsync("slot", { key: '
|
|
19309
|
+
}, style: customSize !== undefined ? { '--pds-modal-max-width': customSize } : undefined, part: "modal" }, hAsync("slot", { key: '396da81af42685f5c083f853afa207a6844e444e' }))));
|
|
19253
19310
|
}
|
|
19254
19311
|
get el() { return getElement(this); }
|
|
19255
19312
|
static get watchers() { return {
|
|
@@ -19300,6 +19357,21 @@ class PdsModalContent {
|
|
|
19300
19357
|
* Tracks whether the border prop was explicitly set by the user
|
|
19301
19358
|
*/
|
|
19302
19359
|
this.userSetBorder = false;
|
|
19360
|
+
this.hasLoaded = false;
|
|
19361
|
+
/**
|
|
19362
|
+
* Handle scroll events
|
|
19363
|
+
*/
|
|
19364
|
+
this.handleScroll = () => {
|
|
19365
|
+
this.updateBorders();
|
|
19366
|
+
};
|
|
19367
|
+
/**
|
|
19368
|
+
* Handle resize events
|
|
19369
|
+
*/
|
|
19370
|
+
this.handleResize = () => {
|
|
19371
|
+
this.calculateMaxHeight();
|
|
19372
|
+
// Update borders after resize as content scrollability might change
|
|
19373
|
+
setTimeout(() => this.updateBorders(), 50);
|
|
19374
|
+
};
|
|
19303
19375
|
}
|
|
19304
19376
|
// Unwraps a nested .pds-modal-content left by a page-cache (Turbo, bfcache) reconnect.
|
|
19305
19377
|
componentDidRender() {
|
|
@@ -19313,43 +19385,30 @@ class PdsModalContent {
|
|
|
19313
19385
|
this.userSetBorder = hasBorderAttribute || this.border !== 'none';
|
|
19314
19386
|
}
|
|
19315
19387
|
componentDidLoad() {
|
|
19388
|
+
this.hasLoaded = true;
|
|
19316
19389
|
this.calculateMaxHeight();
|
|
19317
|
-
// Set up resize listener
|
|
19318
|
-
window.addEventListener('resize', this.handleResize.bind(this));
|
|
19319
|
-
// Only set up scroll listener for border updates if borders are managed automatically
|
|
19320
19390
|
if (!this.userSetBorder) {
|
|
19321
|
-
|
|
19322
|
-
|
|
19323
|
-
this.el.addEventListener('scroll', this.handleScroll.bind(this));
|
|
19324
|
-
// Initial border update after everything is set up
|
|
19325
|
-
setTimeout(() => this.updateBorders(), 100);
|
|
19326
|
-
}, 100);
|
|
19391
|
+
// Initial border update after everything is set up
|
|
19392
|
+
setTimeout(() => this.updateBorders(), 200);
|
|
19327
19393
|
}
|
|
19328
19394
|
}
|
|
19395
|
+
// Here rather than in componentDidLoad, which runs once: content taken out of the page and put
|
|
19396
|
+
// back (a DOM morph or a framework moving it) gets its listeners and header/footer observer back.
|
|
19397
|
+
connectedCallback() {
|
|
19398
|
+
window.addEventListener('resize', this.handleResize);
|
|
19399
|
+
// The scroll happens on the component element itself (this.el), not the inner div
|
|
19400
|
+
this.el.addEventListener('scroll', this.handleScroll);
|
|
19401
|
+
if (this.hasLoaded)
|
|
19402
|
+
this.calculateMaxHeight();
|
|
19403
|
+
}
|
|
19329
19404
|
disconnectedCallback() {
|
|
19330
|
-
window.removeEventListener('resize', this.handleResize
|
|
19331
|
-
|
|
19332
|
-
if (!this.userSetBorder) {
|
|
19333
|
-
this.el.removeEventListener('scroll', this.handleScroll.bind(this));
|
|
19334
|
-
}
|
|
19405
|
+
window.removeEventListener('resize', this.handleResize);
|
|
19406
|
+
this.el.removeEventListener('scroll', this.handleScroll);
|
|
19335
19407
|
if (this.mutationObserver) {
|
|
19336
19408
|
this.mutationObserver.disconnect();
|
|
19409
|
+
this.mutationObserver = undefined;
|
|
19337
19410
|
}
|
|
19338
19411
|
}
|
|
19339
|
-
/**
|
|
19340
|
-
* Handle scroll events
|
|
19341
|
-
*/
|
|
19342
|
-
handleScroll() {
|
|
19343
|
-
this.updateBorders();
|
|
19344
|
-
}
|
|
19345
|
-
/**
|
|
19346
|
-
* Handle resize events
|
|
19347
|
-
*/
|
|
19348
|
-
handleResize() {
|
|
19349
|
-
this.calculateMaxHeight();
|
|
19350
|
-
// Update borders after resize as content scrollability might change
|
|
19351
|
-
setTimeout(() => this.updateBorders(), 50);
|
|
19352
|
-
}
|
|
19353
19412
|
/**
|
|
19354
19413
|
* Updates border visibility based on scroll state (only if not user-defined)
|
|
19355
19414
|
*/
|
|
@@ -19466,10 +19525,10 @@ class PdsModalContent {
|
|
|
19466
19525
|
render() {
|
|
19467
19526
|
// Only apply max-height style if it's not 'none'
|
|
19468
19527
|
const styleObj = this.contentMaxHeight !== 'none' ? { maxHeight: this.contentMaxHeight } : {};
|
|
19469
|
-
return (hAsync(Host, { key: '
|
|
19528
|
+
return (hAsync(Host, { key: 'c83e230d23444e3d5358d995170e2b8386884fe8' }, hAsync("div", { key: 'b91de2c71e693b5a1ba2b257d741e7b0418c2d76', class: {
|
|
19470
19529
|
'pds-modal-content': true,
|
|
19471
19530
|
[`pds-modal-content--border-${this.border}`]: true
|
|
19472
|
-
}, style: styleObj, tabindex: "-1" }, hAsync("slot", { key: '
|
|
19531
|
+
}, style: styleObj, tabindex: "-1" }, hAsync("slot", { key: '971cbd44ffeac4bb13a651948a119c603bed9e4f' }))));
|
|
19473
19532
|
}
|
|
19474
19533
|
get el() { return getElement(this); }
|
|
19475
19534
|
static get style() { return pdsModalContentCss(); }
|
|
@@ -20725,7 +20784,7 @@ class PdsMultiselect {
|
|
|
20725
20784
|
'pds-multiselect__option--selected': isSelected,
|
|
20726
20785
|
'pds-multiselect__option--create': isCreateOption,
|
|
20727
20786
|
'pds-multiselect__option--disabled': isDisabled || isCreateDisabled,
|
|
20728
|
-
}, role: "option", "aria-selected": isSelected ? 'true' : 'false', "aria-disabled": isDisabled || isCreateDisabled ? 'true' : undefined, "aria-label": isCreateOption ? formatMessage(this.createOptionAriaLabel, { text: option.text }) : undefined, "aria-describedby": hasAction ? `${optionId}-action-description` : undefined, "data-index": index, onMouseDown: this.handleOptionMouseDown(option), onClick: this.handleOptionClick, onMouseEnter: this.handleOptionMouseEnter(index, option) }, isCreateOption ? (hAsync("pds-box", { class: "pds-multiselect__create-option", "align-items": "center", gap: "xs" }, hAsync("pds-icon", { name: "add", size: "small" }), hAsync("pds-text", null, formatMessage(this.createOptionLabel, { text: option.text })))) : (hAsync("pds-checkbox", { componentId: `${this.componentId}-checkbox-${index}`, checked: isSelected, label: option.text, disabled: isDisabled, style: { pointerEvents: 'none' } }, this.optionDisplay === 'chip' && (hAsync("pds-chip", { slot: "label", sentiment: "subtle", dot: !!option.dotColor, "dot-color": option.dotColor, "max-width": "100%" }, option.text)))), hasAction && this.renderOptionAction(option, optionId, isHighlighted)));
|
|
20787
|
+
}, role: "option", "aria-selected": isSelected ? 'true' : 'false', "aria-disabled": isDisabled || isCreateDisabled ? 'true' : undefined, "aria-label": isCreateOption ? formatMessage(this.createOptionAriaLabel, { text: option.text }) : undefined, "aria-describedby": hasAction ? `${optionId}-action-description` : undefined, "data-index": index, onMouseDown: this.handleOptionMouseDown(option), onClick: this.handleOptionClick, onMouseEnter: this.handleOptionMouseEnter(index, option) }, isCreateOption ? (hAsync("pds-box", { class: "pds-multiselect__create-option", "align-items": "center", gap: "xs" }, hAsync("pds-icon", { name: "add", size: "small", "aria-hidden": "true" }), hAsync("pds-text", null, formatMessage(this.createOptionLabel, { text: option.text })))) : (hAsync("pds-checkbox", { componentId: `${this.componentId}-checkbox-${index}`, checked: isSelected, label: option.text, disabled: isDisabled, style: { pointerEvents: 'none' } }, this.optionDisplay === 'chip' && (hAsync("pds-chip", { slot: "label", sentiment: "subtle", dot: !!option.dotColor, "dot-color": option.dotColor, "max-width": "100%" }, option.text)))), hasAction && this.renderOptionAction(option, optionId, isHighlighted)));
|
|
20729
20788
|
}
|
|
20730
20789
|
renderOptionAction(option, optionId, isHighlighted) {
|
|
20731
20790
|
var _a;
|
|
@@ -20748,7 +20807,7 @@ class PdsMultiselect {
|
|
|
20748
20807
|
const hasSlottedEmpty = !!this.el.querySelector('[slot="empty"]');
|
|
20749
20808
|
const hasSlottedLoading = !!this.el.querySelector('[slot="loading"]');
|
|
20750
20809
|
const hasSlottedFooter = !!this.el.querySelector('[slot="footer"]');
|
|
20751
|
-
return (hAsync("div", { class: "pds-multiselect__panel", ref: el => (this.panelEl = el), style: { minWidth: this.minWidth } }, hAsync("div", { class: "pds-multiselect__search" }, hAsync("pds-icon", { name: "search", size: "small" }), hAsync("input", { ref: el => (this.searchInputEl = el), type: "text", class: "pds-multiselect__search-input", placeholder: this.searchPlaceholder, value: this.searchQuery, "aria-label": this.searchOptionsLabel, "aria-controls": `${this.componentId}-listbox`, "aria-activedescendant": this.highlightedIndex >= 0 ? `${this.componentId}-option-${this.highlightedIndex}` : undefined, role: "combobox", "aria-haspopup": "listbox", "aria-expanded": "true", "aria-autocomplete": "list", autocomplete: "off", onInput: this.handleSearchInputChange, onKeyDown: this.handleSearchInputKeyDown })), this.renderSelectedItemsList(), hAsync("ul", { class: "pds-multiselect__listbox", role: "listbox", "aria-multiselectable": "true", "aria-label": this.label || this.optionsLabel, id: `${this.componentId}-listbox`, ref: el => (this.listboxEl = el), style: { maxHeight: this.maxHeight }, onScroll: this.handleScroll }, this.loading && (hAsync("li", { class: "pds-multiselect__loading", role: "presentation" }, hasSlottedLoading ? (hAsync("slot", { name: "loading" })) : (hAsync("pds-loader", { size: "small" })))), !this.loading && filteredOptions.length === 0 && (hAsync("li", { class: "pds-multiselect__empty", role: "presentation" }, hasSlottedEmpty ? (hAsync("slot", { name: "empty" })) : (hAsync("span", null, this.noOptionsFoundLabel)))), this.getGroupedRenderItems(filteredOptions).map((item, itemIndex) => {
|
|
20810
|
+
return (hAsync("div", { class: "pds-multiselect__panel", ref: el => (this.panelEl = el), style: { minWidth: this.minWidth } }, hAsync("div", { class: "pds-multiselect__search" }, hAsync("pds-icon", { name: "search", size: "small", "aria-hidden": "true" }), hAsync("input", { ref: el => (this.searchInputEl = el), type: "text", class: "pds-multiselect__search-input", placeholder: this.searchPlaceholder, value: this.searchQuery, "aria-label": this.searchOptionsLabel, "aria-controls": `${this.componentId}-listbox`, "aria-activedescendant": this.highlightedIndex >= 0 ? `${this.componentId}-option-${this.highlightedIndex}` : undefined, role: "combobox", "aria-haspopup": "listbox", "aria-expanded": "true", "aria-autocomplete": "list", autocomplete: "off", onInput: this.handleSearchInputChange, onKeyDown: this.handleSearchInputKeyDown })), this.renderSelectedItemsList(), hAsync("ul", { class: "pds-multiselect__listbox", role: "listbox", "aria-multiselectable": "true", "aria-label": this.label || this.optionsLabel, id: `${this.componentId}-listbox`, ref: el => (this.listboxEl = el), style: { maxHeight: this.maxHeight }, onScroll: this.handleScroll }, this.loading && (hAsync("li", { class: "pds-multiselect__loading", role: "presentation" }, hasSlottedLoading ? (hAsync("slot", { name: "loading" })) : (hAsync("pds-loader", { size: "small" })))), !this.loading && filteredOptions.length === 0 && (hAsync("li", { class: "pds-multiselect__empty", role: "presentation" }, hasSlottedEmpty ? (hAsync("slot", { name: "empty" })) : (hAsync("span", null, this.noOptionsFoundLabel)))), this.getGroupedRenderItems(filteredOptions).map((item, itemIndex) => {
|
|
20752
20811
|
if (item.type === 'group') {
|
|
20753
20812
|
return (hAsync("li", { key: `group-${itemIndex}`, role: "group", "aria-label": item.group, class: "pds-multiselect__group" }, hAsync("span", { class: "pds-multiselect__group-header", "aria-hidden": "true" }, item.group), hAsync("ul", { class: "pds-multiselect__group-list", role: "presentation" }, item.options.map(({ option, index }) => this.renderOption(option, index, valueArray)))));
|
|
20754
20813
|
}
|
|
@@ -20807,10 +20866,10 @@ class PdsMultiselect {
|
|
|
20807
20866
|
}
|
|
20808
20867
|
render() {
|
|
20809
20868
|
const hasSelections = this.selectedItems.length > 0;
|
|
20810
|
-
return (hAsync(Host, { key: '
|
|
20869
|
+
return (hAsync(Host, { key: 'd0879469e6ff943374c2f035c0a8d6d57c25dc5f', "aria-disabled": this.disabled ? 'true' : null }, hAsync("div", { key: '80caa694099218561b85c93d547ec9208def0ec7', class: "pds-multiselect", onFocusout: this.handleContainerFocusOut }, this.label && (hAsync("label", { key: 'b4eaa2c9e2901c28ecb0b8f55e63e33ad899e945', id: `${this.componentId}-label`, htmlFor: this.componentId, class: {
|
|
20811
20870
|
'pds-multiselect__label': true,
|
|
20812
20871
|
'visually-hidden': this.hideLabel,
|
|
20813
|
-
} }, this.label)), hAsync("div", { key: '
|
|
20872
|
+
} }, this.label)), hAsync("div", { key: '404ed58aa6bfb2248ffad5e56ebabfe65149b9a4', class: "pds-multiselect__wrapper", ref: el => (this.containerEl = el), style: { width: this.triggerWidth } }, this.slottedTriggerEl ? (hAsync("slot", { name: "trigger" })) : this.selectedDisplay === 'pill' && this.pillPosition === 'inline' ? (hAsync("div", { ref: el => (this.pillInlineTriggerEl = el || undefined), part: "trigger", class: {
|
|
20814
20873
|
'pds-multiselect__trigger': true,
|
|
20815
20874
|
'pds-multiselect__trigger--open': this.isOpen,
|
|
20816
20875
|
'pds-multiselect__trigger--disabled': this.disabled,
|
|
@@ -20826,7 +20885,7 @@ class PdsMultiselect {
|
|
|
20826
20885
|
}, id: this.componentId, disabled: this.disabled, "aria-required": this.required ? 'true' : undefined, "aria-expanded": this.isOpen ? 'true' : 'false', "aria-haspopup": "listbox", "aria-describedby": assignDescription(this.componentId, this.invalid || !!this.errorMessage, this.helperMessage, this.errorMessage), "aria-invalid": this.invalid || !!this.errorMessage ? 'true' : undefined, onClick: this.handleTriggerClick, onKeyDown: this.handleTriggerKeyDown }, hAsync("span", { class: {
|
|
20827
20886
|
'pds-multiselect__trigger-text': true,
|
|
20828
20887
|
'pds-multiselect__trigger-text--placeholder': !hasSelections || (this.selectedDisplay === 'pill' && this.pillPosition === 'below'),
|
|
20829
|
-
} }, this.getTriggerText()), hAsync("pds-icon", { "aria-hidden": "true", class: "pds-multiselect__icon", icon: enlarge }))), this.renderDropdown()), this.selectedDisplay === 'pill' && this.pillPosition === 'below' && this.renderBelowPills(), hAsync("span", { key: '
|
|
20888
|
+
} }, this.getTriggerText()), hAsync("pds-icon", { "aria-hidden": "true", class: "pds-multiselect__icon", icon: enlarge }))), this.renderDropdown()), this.selectedDisplay === 'pill' && this.pillPosition === 'below' && this.renderBelowPills(), hAsync("span", { key: '73f17916a37722fefebd6b5a184a7b3dca6f4a9d', class: "visually-hidden", "aria-live": "polite", "aria-atomic": "true" }, this.removalAnnouncement), this.helperMessage && !(this.errorMessage && this.errorMessage.length > 0) && (hAsync("p", { key: '1a987562b21da6f8d2f8c9f94e93e8c99a7abd74', class: "pds-multiselect__helper", id: messageId(this.componentId, 'helper') }, this.helperMessage)), this.errorMessage && (hAsync("p", { key: 'ce1f7f48d6f8dee320d87cb7088f084e68cb3ab5', class: "pds-multiselect__error", id: messageId(this.componentId, 'error') }, hAsync("pds-icon", { key: '8347dfdec6ef1b81d4cf9f72cba3d9ec965dcf08', "aria-hidden": "true", icon: danger, size: "small" }), this.errorMessage)), hAsync("div", { key: '74cd840e102ad635d2f4bc23cf3bcfaa61d5cea1', style: { display: 'none' } }, hAsync("slot", { key: 'c2fd9e71363a9661062c8d88be0dd78fc98b964d' })))));
|
|
20830
20889
|
}
|
|
20831
20890
|
static get formAssociated() { return true; }
|
|
20832
20891
|
get el() { return getElement(this); }
|
|
@@ -20966,8 +21025,12 @@ const cssEscape = (value) => {
|
|
|
20966
21025
|
|
|
20967
21026
|
const pdsPopoverCss = () => `:host{--sizing-max-width-default:352px;display:inline-block}:host .pds-popover__trigger-wrapper{display:inline-block}:host .pds-popover__content-slot-wrapper{display:none}`;
|
|
20968
21027
|
|
|
20969
|
-
/** Open
|
|
20970
|
-
const
|
|
21028
|
+
/** Open popovers that close on Escape, in the order they opened: Escape goes to the last one it applies to. */
|
|
21029
|
+
const popoversTakingEscape = [];
|
|
21030
|
+
/** Hovering the trigger waits this long before opening, so a pointer passing over it doesn't open it. */
|
|
21031
|
+
const HOVER_OPEN_DELAY_MS = 120;
|
|
21032
|
+
/** Leaving the trigger and panel waits this long before closing, which covers the gap between them. */
|
|
21033
|
+
const HOVER_CLOSE_DELAY_MS = 200;
|
|
20971
21034
|
/** The focused element, followed down through shadow roots to the control that has focus. */
|
|
20972
21035
|
function deepActiveElement() {
|
|
20973
21036
|
var _a;
|
|
@@ -21031,11 +21094,29 @@ class PdsPopover {
|
|
|
21031
21094
|
* Timestamp when popover was opened (for preventing immediate close)
|
|
21032
21095
|
*/
|
|
21033
21096
|
this.openTimestamp = 0;
|
|
21097
|
+
/**
|
|
21098
|
+
* Set while hover holds the popover open, until a click pins it or it closes
|
|
21099
|
+
*/
|
|
21100
|
+
this.hoverOpened = false;
|
|
21101
|
+
/**
|
|
21102
|
+
* Set when the pointer left while focus was in the panel, so focus leaving it closes it instead
|
|
21103
|
+
*/
|
|
21104
|
+
this.closeWhenFocusLeaves = false;
|
|
21105
|
+
/**
|
|
21106
|
+
* How far the pointer was from the panel at its last move after leaving the trigger
|
|
21107
|
+
*/
|
|
21108
|
+
this.panelDistance = Infinity;
|
|
21034
21109
|
/**
|
|
21035
21110
|
* Determines the action that triggers the popover. For manual popovers, the consumer is responsible for toggling this value.
|
|
21036
21111
|
* @defaultValue "show"
|
|
21037
21112
|
*/
|
|
21038
21113
|
this.popoverTargetAction = 'show';
|
|
21114
|
+
/**
|
|
21115
|
+
* Determines how the popover opens. With `hover`, it also opens when the pointer rests on the trigger and closes
|
|
21116
|
+
* when the pointer leaves, until a click on the trigger keeps it open. Enter or Space on the trigger opens it either way.
|
|
21117
|
+
* @defaultValue "click"
|
|
21118
|
+
*/
|
|
21119
|
+
this.openOn = 'click';
|
|
21039
21120
|
/**
|
|
21040
21121
|
* Determines the type of popover. Auto popovers can be "light dismissed" by clicking outside of the popover.
|
|
21041
21122
|
* Manual popovers require the consumer to handle the visibility of the popover.
|
|
@@ -21046,6 +21127,11 @@ class PdsPopover {
|
|
|
21046
21127
|
* @defaultValue 352
|
|
21047
21128
|
*/
|
|
21048
21129
|
this.maxWidth = 352;
|
|
21130
|
+
/**
|
|
21131
|
+
* Sets the padding of the popover content
|
|
21132
|
+
* @defaultValue "md"
|
|
21133
|
+
*/
|
|
21134
|
+
this.padding = 'md';
|
|
21049
21135
|
/**
|
|
21050
21136
|
* Determines the preferred position of the popover
|
|
21051
21137
|
* @defaultValue "right"
|
|
@@ -21060,6 +21146,7 @@ class PdsPopover {
|
|
|
21060
21146
|
// Clean up previous trigger's event listener if it exists
|
|
21061
21147
|
if (this.triggerEl != null) {
|
|
21062
21148
|
this.triggerEl.removeEventListener('click', this.handleTriggerClick);
|
|
21149
|
+
this.stopListeningForHover(this.triggerEl);
|
|
21063
21150
|
}
|
|
21064
21151
|
if (assignedElements.length > 0) {
|
|
21065
21152
|
// Use the first assigned element as the trigger
|
|
@@ -21067,6 +21154,7 @@ class PdsPopover {
|
|
|
21067
21154
|
this.linkTriggerToPortal();
|
|
21068
21155
|
// Attach click listener to handle popover visibility
|
|
21069
21156
|
this.triggerEl.addEventListener('click', this.handleTriggerClick);
|
|
21157
|
+
this.listenForHover(this.triggerEl);
|
|
21070
21158
|
}
|
|
21071
21159
|
else {
|
|
21072
21160
|
this.triggerEl = null;
|
|
@@ -21093,6 +21181,13 @@ class PdsPopover {
|
|
|
21093
21181
|
if (!anchorWithHref) {
|
|
21094
21182
|
event.preventDefault();
|
|
21095
21183
|
}
|
|
21184
|
+
if (this.openOn === 'hover' && this.popoverTargetAction !== 'hide') {
|
|
21185
|
+
const heldByHover = this.hoverOpened;
|
|
21186
|
+
this.pin();
|
|
21187
|
+
// Pinning, not toggling: the hover before a click has already opened it.
|
|
21188
|
+
if (heldByHover)
|
|
21189
|
+
return;
|
|
21190
|
+
}
|
|
21096
21191
|
// Execute the appropriate action based on popoverTargetAction prop
|
|
21097
21192
|
switch (this.popoverTargetAction) {
|
|
21098
21193
|
case 'show':
|
|
@@ -21107,6 +21202,60 @@ class PdsPopover {
|
|
|
21107
21202
|
break;
|
|
21108
21203
|
}
|
|
21109
21204
|
};
|
|
21205
|
+
// A tap sends touch pointer events and then a click, so touch takes the click path alone.
|
|
21206
|
+
this.handleHoverEnter = (event) => {
|
|
21207
|
+
if (event.pointerType === 'touch')
|
|
21208
|
+
return;
|
|
21209
|
+
this.clearHoverTimers();
|
|
21210
|
+
if (this.active)
|
|
21211
|
+
return;
|
|
21212
|
+
this.hoverOpenTimer = setTimeout(() => {
|
|
21213
|
+
this.hoverOpenTimer = undefined;
|
|
21214
|
+
if (this.active || this.portalEl == null)
|
|
21215
|
+
return;
|
|
21216
|
+
this.hoverOpened = true;
|
|
21217
|
+
this.show();
|
|
21218
|
+
}, HOVER_OPEN_DELAY_MS);
|
|
21219
|
+
};
|
|
21220
|
+
this.handleHoverLeave = (event) => {
|
|
21221
|
+
if (event.pointerType === 'touch')
|
|
21222
|
+
return;
|
|
21223
|
+
this.clearHoverTimers();
|
|
21224
|
+
if (!this.hoverOpened)
|
|
21225
|
+
return;
|
|
21226
|
+
this.hoverCloseTimer = setTimeout(this.closeFromHover, HOVER_CLOSE_DELAY_MS);
|
|
21227
|
+
if (event.currentTarget !== this.triggerEl)
|
|
21228
|
+
return;
|
|
21229
|
+
this.panelDistance = this.distanceToPanel(event);
|
|
21230
|
+
document.addEventListener('pointermove', this.handleMoveTowardPanel);
|
|
21231
|
+
};
|
|
21232
|
+
// A slow diagonal from the trigger to a panel shorter than it runs beside the panel for longer
|
|
21233
|
+
// than the close delay, so each move that brings the pointer closer starts the delay again.
|
|
21234
|
+
this.handleMoveTowardPanel = (event) => {
|
|
21235
|
+
const distance = this.distanceToPanel(event);
|
|
21236
|
+
if (distance < this.panelDistance) {
|
|
21237
|
+
clearTimeout(this.hoverCloseTimer);
|
|
21238
|
+
this.hoverCloseTimer = setTimeout(this.closeFromHover, HOVER_CLOSE_DELAY_MS);
|
|
21239
|
+
}
|
|
21240
|
+
this.panelDistance = distance;
|
|
21241
|
+
};
|
|
21242
|
+
this.handleHoverFocusOut = (event) => {
|
|
21243
|
+
if (!this.closeWhenFocusLeaves || containsComposed$1(this.portalEl, event.relatedTarget))
|
|
21244
|
+
return;
|
|
21245
|
+
this.closeWhenFocusLeaves = false;
|
|
21246
|
+
this.hoverCloseTimer = setTimeout(this.closeFromHover, HOVER_CLOSE_DELAY_MS);
|
|
21247
|
+
};
|
|
21248
|
+
this.closeFromHover = () => {
|
|
21249
|
+
this.clearHoverTimers();
|
|
21250
|
+
if (!this.hoverOpened)
|
|
21251
|
+
return;
|
|
21252
|
+
// Content shown on hover stays while focus is in it (WCAG 1.4.13).
|
|
21253
|
+
if (containsComposed$1(this.portalEl, deepActiveElement())) {
|
|
21254
|
+
this.closeWhenFocusLeaves = true;
|
|
21255
|
+
return;
|
|
21256
|
+
}
|
|
21257
|
+
this.hide();
|
|
21258
|
+
};
|
|
21110
21259
|
/** The focus style copied into a shadow root the panel opened in, which `document.head` can't reach. */
|
|
21111
21260
|
this.shadowFocusStyle = null;
|
|
21112
21261
|
/** The dialog the panel was opened in, closed along with it. */
|
|
@@ -21128,6 +21277,32 @@ class PdsPopover {
|
|
|
21128
21277
|
}
|
|
21129
21278
|
};
|
|
21130
21279
|
}
|
|
21280
|
+
openOnChanged() {
|
|
21281
|
+
this.pin();
|
|
21282
|
+
this.stopListeningForHover(this.triggerEl);
|
|
21283
|
+
this.stopListeningForHover(this.portalEl);
|
|
21284
|
+
// Out of the page, connectedCallback binds them when it comes back.
|
|
21285
|
+
if (!this.isComponentMounted)
|
|
21286
|
+
return;
|
|
21287
|
+
this.listenForHover(this.triggerEl);
|
|
21288
|
+
this.listenForHover(this.portalEl);
|
|
21289
|
+
}
|
|
21290
|
+
applyPadding() {
|
|
21291
|
+
if (this.portalEl != null)
|
|
21292
|
+
this.portalEl.style.padding = this.paddingToken();
|
|
21293
|
+
}
|
|
21294
|
+
paddingToken() {
|
|
21295
|
+
switch (this.padding) {
|
|
21296
|
+
case 'none':
|
|
21297
|
+
return 'var(--pine-dimension-none)';
|
|
21298
|
+
case 'xs':
|
|
21299
|
+
return 'var(--pine-dimension-xs)';
|
|
21300
|
+
case 'sm':
|
|
21301
|
+
return 'var(--pine-dimension-sm)';
|
|
21302
|
+
default:
|
|
21303
|
+
return 'var(--pine-dimension-md)';
|
|
21304
|
+
}
|
|
21305
|
+
}
|
|
21131
21306
|
restorePlacementDefault(newValue) {
|
|
21132
21307
|
this.placement = restoreReflectedDefault(this.el, 'placement', newValue, 'right');
|
|
21133
21308
|
}
|
|
@@ -21178,6 +21353,48 @@ class PdsPopover {
|
|
|
21178
21353
|
// Skips values already in place, so the trigger observer's own callback doesn't loop.
|
|
21179
21354
|
return setAttributesIfChanged(this.triggerEl, { 'aria-expanded': String(this.active), 'aria-controls': this.portalEl.id });
|
|
21180
21355
|
}
|
|
21356
|
+
listenForHover(el) {
|
|
21357
|
+
if (this.openOn !== 'hover' || el == null)
|
|
21358
|
+
return;
|
|
21359
|
+
el.addEventListener('pointerenter', this.handleHoverEnter);
|
|
21360
|
+
el.addEventListener('pointerleave', this.handleHoverLeave);
|
|
21361
|
+
el.addEventListener('focusout', this.handleHoverFocusOut);
|
|
21362
|
+
}
|
|
21363
|
+
stopListeningForHover(el) {
|
|
21364
|
+
if (el == null)
|
|
21365
|
+
return;
|
|
21366
|
+
el.removeEventListener('pointerenter', this.handleHoverEnter);
|
|
21367
|
+
el.removeEventListener('pointerleave', this.handleHoverLeave);
|
|
21368
|
+
el.removeEventListener('focusout', this.handleHoverFocusOut);
|
|
21369
|
+
}
|
|
21370
|
+
distanceToPanel({ clientX, clientY }) {
|
|
21371
|
+
const panel = this.portalEl.getBoundingClientRect();
|
|
21372
|
+
return Math.hypot(Math.max(panel.left - clientX, 0, clientX - panel.right), Math.max(panel.top - clientY, 0, clientY - panel.bottom));
|
|
21373
|
+
}
|
|
21374
|
+
/**
|
|
21375
|
+
* Keeps a popover that hover opened open, closing from then on as one opened by a click does. A
|
|
21376
|
+
* manual one gives up Escape again, which it took only while hover held it.
|
|
21377
|
+
*/
|
|
21378
|
+
pin() {
|
|
21379
|
+
var _a;
|
|
21380
|
+
this.clearHoverTimers();
|
|
21381
|
+
if (!this.hoverOpened)
|
|
21382
|
+
return;
|
|
21383
|
+
this.hoverOpened = false;
|
|
21384
|
+
if (this.popoverType === 'auto')
|
|
21385
|
+
return;
|
|
21386
|
+
this.forgetOpen();
|
|
21387
|
+
(_a = this.portalEl) === null || _a === void 0 ? void 0 : _a.removeAttribute('data-pds-popover-open');
|
|
21388
|
+
document.removeEventListener('keydown', this.boundEscapeKeyHandler);
|
|
21389
|
+
}
|
|
21390
|
+
clearHoverTimers() {
|
|
21391
|
+
clearTimeout(this.hoverOpenTimer);
|
|
21392
|
+
clearTimeout(this.hoverCloseTimer);
|
|
21393
|
+
this.hoverOpenTimer = undefined;
|
|
21394
|
+
this.hoverCloseTimer = undefined;
|
|
21395
|
+
this.closeWhenFocusLeaves = false;
|
|
21396
|
+
document.removeEventListener('pointermove', this.handleMoveTowardPanel);
|
|
21397
|
+
}
|
|
21181
21398
|
// componentDidLoad doesn't run again when a popover comes back, so rebuild whatever
|
|
21182
21399
|
// disconnectedCallback tore down. Each step is a no-op when nothing was.
|
|
21183
21400
|
connectedCallback() {
|
|
@@ -21187,6 +21404,7 @@ class PdsPopover {
|
|
|
21187
21404
|
this.isComponentMounted = true;
|
|
21188
21405
|
this.createPortal();
|
|
21189
21406
|
(_a = this.triggerEl) === null || _a === void 0 ? void 0 : _a.addEventListener('click', this.handleTriggerClick);
|
|
21407
|
+
this.listenForHover(this.triggerEl);
|
|
21190
21408
|
this.observeTrigger();
|
|
21191
21409
|
this.linkTriggerToPortal();
|
|
21192
21410
|
// Still open after a move: the trigger moved, so the portal follows it, into the dialog it
|
|
@@ -21221,6 +21439,7 @@ class PdsPopover {
|
|
|
21221
21439
|
if (this.triggerEl != null) {
|
|
21222
21440
|
this.triggerEl.removeEventListener('click', this.handleTriggerClick);
|
|
21223
21441
|
}
|
|
21442
|
+
this.stopListeningForHover(this.triggerEl);
|
|
21224
21443
|
(_a = this.triggerObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
21225
21444
|
this.triggerObserver = null;
|
|
21226
21445
|
// Clean up all event listeners
|
|
@@ -21229,6 +21448,8 @@ class PdsPopover {
|
|
|
21229
21448
|
document.removeEventListener('submit', this.handleSubmitFromPanel, true);
|
|
21230
21449
|
// Clear any pending debounce timers
|
|
21231
21450
|
this.clearDebounceTimers();
|
|
21451
|
+
this.clearHoverTimers();
|
|
21452
|
+
this.hoverOpened = false;
|
|
21232
21453
|
// Remove portal from DOM
|
|
21233
21454
|
this.removePortal();
|
|
21234
21455
|
}
|
|
@@ -21262,7 +21483,7 @@ class PdsPopover {
|
|
|
21262
21483
|
this.portalEl.style.borderRadius = 'var(--pine-dimension-125)';
|
|
21263
21484
|
this.portalEl.style.boxShadow = 'var(--pine-box-shadow-200)';
|
|
21264
21485
|
this.portalEl.style.margin = 'var(--pine-dimension-none)';
|
|
21265
|
-
this.portalEl.style.padding =
|
|
21486
|
+
this.portalEl.style.padding = this.paddingToken();
|
|
21266
21487
|
// Generate unique ID
|
|
21267
21488
|
if (!this.componentId) {
|
|
21268
21489
|
(_a = this.generatedPortalId) !== null && _a !== void 0 ? _a : (this.generatedPortalId = `pds-popover-portal-${PdsPopover.instanceCounter++}`);
|
|
@@ -21276,6 +21497,7 @@ class PdsPopover {
|
|
|
21276
21497
|
// Add global focus styles to match Pine design system
|
|
21277
21498
|
// This is done after appending to ensure it's part of the document and can access CSS variables
|
|
21278
21499
|
this.addPortalFocusStyles();
|
|
21500
|
+
this.listenForHover(this.portalEl);
|
|
21279
21501
|
}
|
|
21280
21502
|
/**
|
|
21281
21503
|
* Adds Pine design system focus styles and dark mode border to the portal element
|
|
@@ -21403,8 +21625,8 @@ class PdsPopover {
|
|
|
21403
21625
|
// Update portal content with latest slot content
|
|
21404
21626
|
this.updatePortalContent();
|
|
21405
21627
|
// Show portal. The attribute tells a modal around it that this popover takes Escape first; only
|
|
21406
|
-
// an auto popover listens for Escape.
|
|
21407
|
-
if (this.popoverType === 'auto')
|
|
21628
|
+
// an auto popover, or one hover opened, listens for Escape.
|
|
21629
|
+
if (this.popoverType === 'auto' || this.hoverOpened)
|
|
21408
21630
|
this.portalEl.setAttribute('data-pds-popover-open', '');
|
|
21409
21631
|
this.portalEl.style.display = 'block';
|
|
21410
21632
|
this.portalEl.style.opacity = '1';
|
|
@@ -21418,11 +21640,16 @@ class PdsPopover {
|
|
|
21418
21640
|
// Add scroll and resize listeners for repositioning (always)
|
|
21419
21641
|
this.addScrollAndResizeListeners();
|
|
21420
21642
|
document.addEventListener('submit', this.handleSubmitFromPanel, true);
|
|
21421
|
-
// Add document listeners for light dismiss and escape key (auto type only)
|
|
21643
|
+
// Add document listeners for light dismiss and escape key (auto type only), or for the escape
|
|
21644
|
+
// key alone while hover holds a manual popover open
|
|
21422
21645
|
if (this.popoverType === 'auto') {
|
|
21423
|
-
|
|
21646
|
+
popoversTakingEscape.push(this);
|
|
21424
21647
|
this.addLightDismissListeners();
|
|
21425
21648
|
}
|
|
21649
|
+
else if (this.hoverOpened) {
|
|
21650
|
+
popoversTakingEscape.push(this);
|
|
21651
|
+
document.addEventListener('keydown', this.boundEscapeKeyHandler);
|
|
21652
|
+
}
|
|
21426
21653
|
// Emit open event
|
|
21427
21654
|
this.pdsPopoverOpen.emit({
|
|
21428
21655
|
componentId: this.componentId,
|
|
@@ -21433,9 +21660,11 @@ class PdsPopover {
|
|
|
21433
21660
|
* Closes the popover programmatically
|
|
21434
21661
|
*/
|
|
21435
21662
|
async hide() {
|
|
21663
|
+
this.clearHoverTimers();
|
|
21436
21664
|
if (!this.active || !this.portalEl)
|
|
21437
21665
|
return;
|
|
21438
21666
|
this.active = false;
|
|
21667
|
+
this.hoverOpened = false;
|
|
21439
21668
|
this.unwatchDialogClose();
|
|
21440
21669
|
// Restoring the content drops its focus to the body, so check where focus is first. In a
|
|
21441
21670
|
// shadow root, document.activeElement is only its host.
|
|
@@ -21514,9 +21743,9 @@ class PdsPopover {
|
|
|
21514
21743
|
this.portalEl.style.border = root instanceof ShadowRoot && closest$1('[data-theme="dark"]', this.el) ? 'var(--pine-border)' : '';
|
|
21515
21744
|
}
|
|
21516
21745
|
forgetOpen() {
|
|
21517
|
-
const index =
|
|
21746
|
+
const index = popoversTakingEscape.indexOf(this);
|
|
21518
21747
|
if (index >= 0)
|
|
21519
|
-
|
|
21748
|
+
popoversTakingEscape.splice(index, 1);
|
|
21520
21749
|
}
|
|
21521
21750
|
/**
|
|
21522
21751
|
* Whether an Escape is this popover's. One from a dialog the popover isn't in belongs to that
|
|
@@ -21625,7 +21854,7 @@ class PdsPopover {
|
|
|
21625
21854
|
return;
|
|
21626
21855
|
// Like the native Popover API, Escape closes only the top popover: the last one opened that
|
|
21627
21856
|
// it applies to. Every open popover hears it, so each checks whether it's that one.
|
|
21628
|
-
const top = [...
|
|
21857
|
+
const top = [...popoversTakingEscape].reverse().find(popover => popover.takesEscapeFrom(event));
|
|
21629
21858
|
if (top !== this)
|
|
21630
21859
|
return;
|
|
21631
21860
|
// Take the key, so the dialog or modal around it doesn't close too.
|
|
@@ -21750,10 +21979,16 @@ class PdsPopover {
|
|
|
21750
21979
|
}, 16); // ~1 frame at 60fps
|
|
21751
21980
|
}
|
|
21752
21981
|
render() {
|
|
21753
|
-
return (hAsync(Host, { key: '
|
|
21982
|
+
return (hAsync(Host, { key: 'e48b897acdc9e89f2e6b1449e7a358da7da1060c', id: this.componentId }, hAsync("span", { key: 'b83b2c234b07703c2c850a9991c94939ed2fdaf7', class: "pds-popover__trigger-wrapper" }, hAsync("slot", { key: '0a7f7829ee445fd57cf824ebee1409b3c571f983', name: "trigger", onSlotchange: this.handleTriggerSlotChange })), hAsync("div", { key: '8c1fe2d4d7c4342b4bd5eb4c56e596f17b4e14fa', class: "pds-popover__content-slot-wrapper" }, hAsync("slot", { key: '4ccfce1f335acbc436f7942e497f5d360f849d48', onSlotchange: this.handleContentSlotChange }))));
|
|
21754
21983
|
}
|
|
21755
21984
|
get el() { return getElement(this); }
|
|
21756
21985
|
static get watchers() { return {
|
|
21986
|
+
"openOn": [{
|
|
21987
|
+
"openOnChanged": 0
|
|
21988
|
+
}],
|
|
21989
|
+
"padding": [{
|
|
21990
|
+
"applyPadding": 0
|
|
21991
|
+
}],
|
|
21757
21992
|
"placement": [{
|
|
21758
21993
|
"restorePlacementDefault": 0
|
|
21759
21994
|
}]
|
|
@@ -21764,9 +21999,11 @@ class PdsPopover {
|
|
|
21764
21999
|
"$tagName$": "pds-popover",
|
|
21765
22000
|
"$members$": {
|
|
21766
22001
|
"popoverTargetAction": [1, "popover-target-action"],
|
|
22002
|
+
"openOn": [1, "open-on"],
|
|
21767
22003
|
"popoverType": [1, "popover-type"],
|
|
21768
22004
|
"componentId": [1, "component-id"],
|
|
21769
22005
|
"maxWidth": [2, "max-width"],
|
|
22006
|
+
"padding": [1],
|
|
21770
22007
|
"placement": [1537],
|
|
21771
22008
|
"active": [32],
|
|
21772
22009
|
"show": [64],
|
|
@@ -21971,11 +22208,11 @@ class PdsRadio {
|
|
|
21971
22208
|
const renderLabelAndMessages = () => [
|
|
21972
22209
|
hAsync("label", { htmlFor: this.componentId, key: `${this.componentId}-label` }, hAsync("input", { key: 'ccd618855831bcee309e815f2cd2712fd4e8fe1f', "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage, this.errorMessage), "aria-invalid": this.invalid ? "true" : undefined, type: "radio", id: this.componentId, name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onChange: this.handleRadioChange, class: this.hasImage() ? 'visually-hidden' : '' }), hAsync("span", { key: '2e372a880c28f48fb804bac2518208082c141fad', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)),
|
|
21973
22210
|
this.helperMessage && (hAsync("div", { key: `${this.componentId}-helper`, class: 'pds-radio__message', id: messageId(this.componentId, 'helper') }, this.helperMessage)),
|
|
21974
|
-
this.errorMessage && (hAsync("div", { key: `${this.componentId}-error`, class: `pds-radio__message pds-radio__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: '
|
|
22211
|
+
this.errorMessage && (hAsync("div", { key: `${this.componentId}-error`, class: `pds-radio__message pds-radio__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: '08e7a2319eddc1d314ee9dddd51a5ce88cd4ae48', "aria-hidden": "true", icon: danger, size: "small" }), this.errorMessage))
|
|
21975
22212
|
];
|
|
21976
22213
|
const hostClass = this.classNames();
|
|
21977
22214
|
this.hostKeeper.record(hostClass);
|
|
21978
|
-
return (hAsync(Host, { key: '
|
|
22215
|
+
return (hAsync(Host, { key: '351376552abee90f50c3aceb03ecf8a81ae1b82b', class: hostClass }, this.hasImage() && (hAsync("div", { key: 'fd85fd36b2ebd99b12c3bb2a13cf3d3e3c26530f', class: "pds-radio__image-container", part: "image-container" }, hAsync("slot", { key: 'abe75dbe38d29340b805f70861b084c1b3836be9', name: "image", onSlotchange: () => (this._hasImage = this.hasImageSlot()) }))), this.hasImage() ? (hAsync("div", { class: "pds-radio__content-wrapper" }, renderLabelAndMessages())) : (renderLabelAndMessages())));
|
|
21979
22216
|
}
|
|
21980
22217
|
get el() { return getElement(this); }
|
|
21981
22218
|
static get style() { return labelCss$3() + pdsRadioCss(); }
|
|
@@ -22173,7 +22410,7 @@ class PdsRadioGroup {
|
|
|
22173
22410
|
'pds-radio-group__radios': true,
|
|
22174
22411
|
'pds-radio-group__radios--row': this.direction === 'row',
|
|
22175
22412
|
'pds-radio-group__radios--column': this.direction === 'column',
|
|
22176
|
-
} }, hAsync("slot", { key: 'd88dde3c631e25c01bc7b6d3ef5d517255fabd1a', onSlotchange: () => this.updateChildRadios() })), this.helperMessage && (hAsync("div", { key: 'a229214ed01663b0fc34f35e27c7148b4eb412ab', class: "pds-radio-group__message", id: messageId(this._groupId, 'helper') }, this.helperMessage)), this.errorMessage && (hAsync("div", { key: 'dc092f2e6dbef0cb369cf00a6eccf9a095a0313d', class: "pds-radio-group__message pds-radio-group__message--error", id: messageId(this._groupId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: '
|
|
22413
|
+
} }, hAsync("slot", { key: 'd88dde3c631e25c01bc7b6d3ef5d517255fabd1a', onSlotchange: () => this.updateChildRadios() })), this.helperMessage && (hAsync("div", { key: 'a229214ed01663b0fc34f35e27c7148b4eb412ab', class: "pds-radio-group__message", id: messageId(this._groupId, 'helper') }, this.helperMessage)), this.errorMessage && (hAsync("div", { key: 'dc092f2e6dbef0cb369cf00a6eccf9a095a0313d', class: "pds-radio-group__message pds-radio-group__message--error", id: messageId(this._groupId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: '83b0129d3d45b74ef1f53acc923387b2de7f079b', "aria-hidden": "true", icon: danger, size: "small" }), this.errorMessage))));
|
|
22177
22414
|
}
|
|
22178
22415
|
get el() { return getElement(this); }
|
|
22179
22416
|
static get watchers() { return {
|
|
@@ -25525,7 +25762,7 @@ class PdsSwitch {
|
|
|
25525
25762
|
this.hostKeeper.record(hostClass, {}, { 'aria-disabled': ariaDisabled });
|
|
25526
25763
|
return (hAsync(Host, { key: 'b8bd2870be101081aa8a65cdee45397bc4c21435', class: hostClass, "aria-disabled": ariaDisabled }, hAsync("label", { key: '1e223f22f7fc6c576098353ad67dc11500def8b4', htmlFor: this.componentId }, hAsync("input", Object.assign({ key: 'edf59869e165a65b97465ea9de06f7ea82fbc9a6', "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage, this.errorMessage), "aria-invalid": this.invalid ? "true" : undefined, checked: this.checked, class: "pds-switch__input", disabled: this.disabled, id: this.componentId, name: this.name ? this.name : this.componentId, onChange: this.onSwitchUpdate, required: this.required, type: "checkbox", value: this.value }, this.inheritedAttributes)), hAsync("span", { key: '1c252b9455471069f8c6ea6c13f2e88c99308b41', class: this.hideLabel ? 'visually-hidden' : '' }, hAsync("slot", { key: 'ce0d471918bd3018f5e55d0d1e6c5c2247790f81', name: "label", onSlotchange: this.updateHasLabelSlot }), !this.hasLabelSlot && this.label)), this.helperMessage &&
|
|
25527
25764
|
hAsync("div", { key: '64874b15403f1f42344715ac34febdfb8d94042a', class: `pds-switch__message`, id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
|
|
25528
|
-
hAsync("div", { key: '560ea486859124bb0ac2f75ab4bd34b0bca7efbc', class: `pds-switch__message pds-switch__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: '
|
|
25765
|
+
hAsync("div", { key: '560ea486859124bb0ac2f75ab4bd34b0bca7efbc', class: `pds-switch__message pds-switch__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, hAsync("pds-icon", { key: '2ae8dc876745af26fa2418f2265248aeb8f97a2b', "aria-hidden": "true", icon: danger, size: "small" }), this.errorMessage)));
|
|
25529
25766
|
}
|
|
25530
25767
|
static get formAssociated() { return true; }
|
|
25531
25768
|
get el() { return getElement(this); }
|
|
@@ -26405,7 +26642,7 @@ class PdsTableHeadCell {
|
|
|
26405
26642
|
this.tableRef.fixedColumn &&
|
|
26406
26643
|
this.tableRef.selectable
|
|
26407
26644
|
? { '--fixed-cell-position': '40px' }
|
|
26408
|
-
: {} }, hAsync("slot", { key: '96084d87a34d7b601a8e8325f344f1fe6601204e' }), this.sortable && this.isActive && (hAsync("pds-icon", { key: '
|
|
26645
|
+
: {} }, hAsync("slot", { key: '96084d87a34d7b601a8e8325f344f1fe6601204e' }), this.sortable && this.isActive && (hAsync("pds-icon", { key: '79606519d810dc9882a91cbc3b6a199457086631', icon: this.sortingDirection === 'asc' ? upSmall : downSmall, part: "sort-icon", "aria-hidden": "true" }))));
|
|
26409
26646
|
}
|
|
26410
26647
|
get hostElement() { return getElement(this); }
|
|
26411
26648
|
static get style() { return pdsTableHeadCellCss(); }
|
|
@@ -27407,7 +27644,7 @@ class PdsTextarea {
|
|
|
27407
27644
|
return (hAsync(Host, { key: '5933dab0c3cd25b1cf2f6851ece8e8064bc7f3b9', "aria-disabled": this.disabled ? 'true' : null, "aria-readonly": this.readonly ? 'true' : null, "has-action": this.hasAction && !this.hideLabel ? 'true' : null }, hAsync("div", { key: '4f1752514d8e5b0f0e3439515cb9e5f043607da1', class: "pds-textarea" }, this.label &&
|
|
27408
27645
|
hAsync("div", { key: 'd4e6df0b381d781b70eeae72ff2f0e9428c0d901', class: "pds-textarea__label-wrapper" }, hAsync("label", { key: '747d82067eb571d02840cfd981865821099f288b', htmlFor: this.componentId }, hAsync("span", { key: 'bfab6e8ede66d0169dd020b7dd97e125aba417b0', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), !this.hideLabel && this.renderAction()), hAsync("div", { key: 'a18611c03270e7491c1af69f931419c832192c06', class: "pds-textarea__field-wrapper" }, hAsync("textarea", Object.assign({ key: '868382c7b04a4e59c0daa9d98afcdc9048f6224f', ref: (el) => this.nativeTextarea = el, "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage, this.errorMessage), "aria-invalid": this.invalid ? "true" : undefined, autocomplete: this.autocomplete, class: this.textareaClassNames(), disabled: this.disabled, id: this.componentId, maxlength: this.maxLength, name: this.name, placeholder: this.placeholder, readOnly: this.readonly, required: this.required, rows: this.rows, onBlur: this.onBlur, onChange: this.onTextareaChange, onFocus: this.onFocus, onInput: this.onInput, onKeyDown: this.onKeyDown }, this.inheritedAttributes), value), this.renderCharacterCounter()), this.helperMessage &&
|
|
27409
27646
|
hAsync("p", { key: 'dcb36f21443d2a782c25b7c29c4ce6215f3b212b', class: "pds-textarea__helper-message", id: messageId(this.componentId, 'helper') }, this.helperMessage), this.invalid &&
|
|
27410
|
-
hAsync("p", { key: 'be30fb1a38453296e26b775955389c0ec569df67', "aria-live": "assertive", class: "pds-textarea__error-message", id: messageId(this.componentId, 'error') }, hAsync("pds-icon", { key: '
|
|
27647
|
+
hAsync("p", { key: 'be30fb1a38453296e26b775955389c0ec569df67', "aria-live": "assertive", class: "pds-textarea__error-message", id: messageId(this.componentId, 'error') }, hAsync("pds-icon", { key: '853f06489ef6ca50205799659d221bd3bea7d8da', "aria-hidden": "true", icon: danger, size: "small" }), this.errorMessage))));
|
|
27411
27648
|
}
|
|
27412
27649
|
static get formAssociated() { return true; }
|
|
27413
27650
|
get el() { return getElement(this); }
|
|
@@ -27587,7 +27824,7 @@ class PdsToast {
|
|
|
27587
27824
|
'pds-toast--animating-out': this.isAnimatingOut
|
|
27588
27825
|
}, role: "alert", "aria-live": "polite" }, this.renderIcon(), hAsync("span", { key: 'eaf615d41c138e2c73088d29bac9349f49a63ba7', class: "pds-toast__message" }, hAsync("slot", { key: '33973447154d80b016f5a7954b0473db03228379' })), this.dismissible && (hAsync("button", { key: 'e189834633e1e648282ee43633fd05e53ce38869', type: "button", part: "dismiss", class: "pds-toast__button", onClick: () => {
|
|
27589
27826
|
this.dismiss();
|
|
27590
|
-
}, "aria-label": this.dismissLabel }, hAsync("pds-icon", { key: '
|
|
27827
|
+
}, "aria-label": this.dismissLabel }, hAsync("pds-icon", { key: '913201979e52be743ba933ff173e023b81553362', name: "remove", "aria-hidden": "true" }))))));
|
|
27591
27828
|
}
|
|
27592
27829
|
get el() { return getElement(this); }
|
|
27593
27830
|
static get watchers() { return {
|