@pine-ds/core 4.7.2 → 4.9.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/attributes.js +1 -1
- package/components/floating-ui.dom.js +1 -1
- package/components/index.js +1 -1
- package/components/index2.js +1 -1
- package/components/keep-hydrated.js +1 -0
- package/components/mock-pds-modal.js +1 -1
- package/components/pds-alert.js +1 -1
- package/components/pds-avatar.js +1 -1
- package/components/pds-box2.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-container.js +1 -1
- package/components/pds-copytext.js +1 -1
- package/components/pds-datepicker.js +1 -1
- package/components/pds-divider.js +1 -1
- package/components/pds-drawer-content.js +1 -1
- package/components/pds-drawer-footer.js +1 -1
- package/components/pds-drawer-header.js +1 -1
- package/components/pds-drawer.js +1 -1
- package/components/pds-dropdown-menu-item.js +1 -1
- package/components/pds-dropdown-menu-separator.js +1 -1
- package/components/pds-dropdown-menu.js +1 -1
- package/components/pds-filter.js +1 -1
- package/components/pds-filters.js +1 -1
- package/components/pds-image.js +1 -1
- package/components/pds-input2.js +1 -1
- package/components/pds-link2.js +1 -1
- package/components/pds-loader2.js +1 -1
- package/components/pds-modal-content.js +1 -1
- package/components/pds-modal-footer.js +1 -1
- package/components/pds-modal-header.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-progress.js +1 -1
- package/components/pds-property.js +1 -1
- package/components/pds-radio-group.js +1 -1
- package/components/pds-radio.js +1 -1
- package/components/pds-row.js +1 -1
- package/components/pds-select.js +1 -1
- package/components/pds-sortable-item.js +1 -1
- package/components/pds-sortable.js +2 -2
- package/components/pds-switch.js +1 -1
- package/components/pds-table-body.js +1 -1
- package/components/pds-table-cell2.js +1 -1
- package/components/pds-table-head-cell2.js +1 -1
- package/components/pds-table-head.js +1 -1
- package/components/pds-table-row.js +1 -1
- package/components/pds-tabpanel.js +1 -1
- package/components/pds-tabs.js +1 -1
- package/components/pds-text2.js +1 -1
- package/components/pds-textarea.js +1 -1
- package/components/pds-toast.js +1 -1
- package/components/pds-tooltip.js +1 -1
- package/components/tabbable.js +1 -0
- package/components/truncation-tooltip.js +1 -1
- package/dist/cjs/{attributes-BJ7KBHql.js → attributes-CW49XqaL.js} +1 -1
- package/dist/cjs/{floating-ui.dom-Dc8Anyel.js → floating-ui.dom-Dw41zbyY.js} +1 -0
- package/dist/cjs/{index-jl_Q819j.js → index-BsWY_xEJ.js} +1 -1
- package/dist/cjs/{index-5Azb8EQG.js → index-Do70atou.js} +1 -1
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/{keep-hydrated-CiXgkEYd.js → keep-hydrated-AKoh0DG4.js} +1 -0
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/cjs/mock-pds-modal.cjs.entry.js +3 -3
- package/dist/cjs/pds-accordion.cjs.entry.js +3 -3
- package/dist/cjs/pds-alert.cjs.entry.js +17 -4
- package/dist/cjs/pds-avatar.cjs.entry.js +23 -13
- package/dist/cjs/pds-box.cjs.entry.js +4 -4
- package/dist/cjs/pds-button.cjs.entry.js +80 -45
- package/dist/cjs/pds-checkbox.cjs.entry.js +16 -8
- package/dist/cjs/pds-chip.cjs.entry.js +8 -8
- package/dist/cjs/pds-combobox.cjs.entry.js +43 -13
- package/dist/cjs/pds-container.cjs.entry.js +3 -3
- package/dist/cjs/pds-copytext.cjs.entry.js +7 -7
- package/dist/cjs/pds-datepicker.cjs.entry.js +6 -6
- package/dist/cjs/pds-divider.cjs.entry.js +3 -3
- package/dist/cjs/pds-drawer-content.cjs.entry.js +3 -3
- package/dist/cjs/pds-drawer-footer.cjs.entry.js +3 -3
- package/dist/cjs/pds-drawer-header.cjs.entry.js +3 -3
- package/dist/cjs/pds-drawer.cjs.entry.js +4 -4
- package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +34 -5
- package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +3 -3
- package/dist/cjs/pds-dropdown-menu.cjs.entry.js +8 -8
- package/dist/cjs/pds-filter.cjs.entry.js +4 -4
- package/dist/cjs/pds-filters.cjs.entry.js +3 -3
- package/dist/cjs/pds-icon.cjs.entry.js +2 -2
- package/dist/cjs/pds-image.cjs.entry.js +4 -4
- package/dist/cjs/pds-input.cjs.entry.js +6 -6
- package/dist/cjs/pds-link.cjs.entry.js +15 -6
- package/dist/cjs/pds-loader.cjs.entry.js +4 -4
- package/dist/cjs/pds-modal-content.cjs.entry.js +34 -32
- package/dist/cjs/pds-modal-footer.cjs.entry.js +3 -3
- package/dist/cjs/pds-modal-header.cjs.entry.js +3 -3
- package/dist/cjs/pds-modal.cjs.entry.js +9 -89
- package/dist/cjs/pds-multiselect.cjs.entry.js +9 -9
- package/dist/cjs/pds-popover.cjs.entry.js +416 -163
- package/dist/cjs/pds-progress.cjs.entry.js +4 -4
- package/dist/cjs/pds-property.cjs.entry.js +3 -3
- package/dist/cjs/pds-radio-group.cjs.entry.js +6 -6
- package/dist/cjs/pds-radio.cjs.entry.js +24 -11
- package/dist/cjs/pds-row.cjs.entry.js +4 -4
- package/dist/cjs/pds-select.cjs.entry.js +132 -21
- package/dist/cjs/pds-sortable-item.cjs.entry.js +5 -5
- package/dist/cjs/pds-sortable.cjs.entry.js +4 -4
- package/dist/cjs/pds-switch.cjs.entry.js +7 -7
- package/dist/cjs/pds-tab.cjs.entry.js +3 -3
- package/dist/cjs/pds-table-body.cjs.entry.js +3 -3
- package/dist/cjs/pds-table-cell.cjs.entry.js +6 -6
- package/dist/cjs/pds-table-head-cell.cjs.entry.js +5 -5
- package/dist/cjs/pds-table-head.cjs.entry.js +3 -3
- package/dist/cjs/pds-table-row.cjs.entry.js +3 -3
- package/dist/cjs/pds-table.cjs.entry.js +2 -2
- package/dist/cjs/pds-tabpanel.cjs.entry.js +4 -4
- package/dist/cjs/pds-tabs.cjs.entry.js +4 -4
- package/dist/cjs/pds-text.cjs.entry.js +5 -5
- package/dist/cjs/pds-textarea.cjs.entry.js +8 -8
- package/dist/cjs/pds-toast.cjs.entry.js +14 -8
- package/dist/cjs/pds-tooltip.cjs.entry.js +115 -44
- package/dist/cjs/pine-core.cjs.js +3 -3
- package/dist/cjs/tabbable-CddSt_Hi.js +85 -0
- package/dist/cjs/{truncation-tooltip-DO9xli2e.js → truncation-tooltip-O5nQmXPw.js} +32 -7
- package/dist/collection/components/pds-alert/pds-alert.css +13 -0
- package/dist/collection/components/pds-alert/pds-alert.js +36 -1
- package/dist/collection/components/pds-alert/stories/pds-alert.stories.js +4 -0
- package/dist/collection/components/pds-avatar/pds-avatar.js +42 -10
- package/dist/collection/components/pds-avatar/stories/pds-avatar.stories.js +2 -0
- package/dist/collection/components/pds-box/pds-box.js +1 -1
- package/dist/collection/components/pds-button/pds-button.js +36 -44
- package/dist/collection/components/pds-button/stories/pds-button.stories.js +3 -3
- package/dist/collection/components/pds-checkbox/pds-checkbox.css +79 -0
- package/dist/collection/components/pds-checkbox/pds-checkbox.js +36 -5
- package/dist/collection/components/pds-checkbox/stories/pds-checkbox.stories.js +38 -0
- package/dist/collection/components/pds-chip/pds-chip.js +2 -2
- package/dist/collection/components/pds-combobox/pds-combobox.css +33 -0
- package/dist/collection/components/pds-combobox/pds-combobox.js +62 -9
- package/dist/collection/components/pds-combobox/stories/pds-combobox.stories.js +44 -0
- package/dist/collection/components/pds-container/pds-container.js +1 -1
- package/dist/collection/components/pds-copytext/pds-copytext.js +1 -1
- package/dist/collection/components/pds-datepicker/pds-datepicker.js +2 -2
- package/dist/collection/components/pds-datepicker/stories/pds-datepicker.stories.js +1 -1
- package/dist/collection/components/pds-divider/pds-divider.js +1 -1
- package/dist/collection/components/pds-drawer/pds-drawer-content/pds-drawer-content.js +1 -1
- package/dist/collection/components/pds-drawer/pds-drawer-footer/pds-drawer-footer.js +1 -1
- package/dist/collection/components/pds-drawer/pds-drawer-header/pds-drawer-header.js +1 -1
- package/dist/collection/components/pds-drawer/pds-drawer.js +2 -2
- 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 +81 -7
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js +1 -1
- 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-filters/pds-filter/pds-filter.js +1 -1
- package/dist/collection/components/pds-filters/pds-filters.js +1 -1
- package/dist/collection/components/pds-image/pds-image.js +2 -2
- package/dist/collection/components/pds-input/pds-input.js +2 -2
- package/dist/collection/components/pds-input/stories/pds-input.stories.js +6 -6
- package/dist/collection/components/pds-link/pds-link.js +34 -3
- package/dist/collection/components/pds-link/stories/pds-link.stories.js +3 -2
- package/dist/collection/components/pds-loader/pds-loader.js +1 -1
- package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js +32 -30
- package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js +1 -1
- package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js +1 -1
- package/dist/collection/components/pds-modal/pds-modal.js +5 -85
- package/dist/collection/components/pds-modal/test/mock-pds-modal.js +1 -1
- package/dist/collection/components/pds-multiselect/pds-multiselect.js +5 -5
- package/dist/collection/components/pds-popover/pds-popover.css +6 -0
- package/dist/collection/components/pds-popover/pds-popover.js +465 -159
- package/dist/collection/components/pds-popover/stories/pds-popover.stories.js +31 -0
- package/dist/collection/components/pds-progress/pds-progress.js +1 -1
- package/dist/collection/components/pds-property/pds-property.js +1 -1
- package/dist/collection/components/pds-radio/pds-radio.css +57 -0
- package/dist/collection/components/pds-radio/pds-radio.js +45 -9
- package/dist/collection/components/pds-radio/stories/pds-radio.stories.js +15 -0
- package/dist/collection/components/pds-radio-group/pds-radio-group.js +3 -3
- package/dist/collection/components/pds-radio-group/stories/pds-radio-group.stories.js +45 -0
- package/dist/collection/components/pds-row/pds-row.js +1 -1
- package/dist/collection/components/pds-select/pds-select.js +128 -17
- package/dist/collection/components/pds-select/stories/pds-select.stories.js +2 -2
- package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +1 -1
- package/dist/collection/components/pds-sortable/pds-sortable.js +1 -1
- package/dist/collection/components/pds-switch/pds-switch.js +3 -3
- package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js +1 -1
- package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +2 -2
- package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +1 -1
- package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +2 -2
- package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +1 -1
- package/dist/collection/components/pds-table/stories/pds-table.stories.js +4 -4
- package/dist/collection/components/pds-tabs/pds-tabpanel/pds-tabpanel.js +1 -1
- package/dist/collection/components/pds-tabs/pds-tabs.js +1 -1
- package/dist/collection/components/pds-text/pds-text.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 +4 -4
- package/dist/collection/components/pds-textarea/stories/pds-textarea.stories.js +2 -2
- package/dist/collection/components/pds-toast/pds-toast.css +13 -0
- package/dist/collection/components/pds-toast/pds-toast.js +33 -5
- package/dist/collection/components/pds-toast/stories/pds-toast.stories.js +4 -1
- package/dist/collection/components/pds-tooltip/pds-tooltip.js +113 -41
- package/dist/collection/utils/aria-references.js +42 -0
- package/dist/collection/utils/tabbable.js +81 -0
- package/dist/collection/utils/truncation-tooltip.js +31 -6
- package/dist/docs.json +367 -13
- package/dist/esm/{attributes-WXw_I_uJ.js → attributes-DkeVeN0g.js} +1 -1
- package/dist/esm/{floating-ui.dom-BPqJgIq6.js → floating-ui.dom-Cuc0DYlm.js} +1 -1
- package/dist/esm/{index-Cw9J31qd.js → index-BFSwd-GQ.js} +1 -1
- package/dist/esm/{index-BJXk71tO.js → index-m3pqpeWg.js} +2 -2
- package/dist/esm/index.js +1 -1
- package/dist/esm/{keep-hydrated-BLG6RDBt.js → keep-hydrated-BgNaWLoS.js} +1 -1
- package/dist/esm/loader.js +4 -4
- package/dist/esm/mock-pds-modal.entry.js +3 -3
- package/dist/esm/pds-accordion.entry.js +3 -3
- package/dist/esm/pds-alert.entry.js +17 -4
- package/dist/esm/pds-avatar.entry.js +23 -13
- package/dist/esm/pds-box.entry.js +4 -4
- package/dist/esm/pds-button.entry.js +80 -45
- package/dist/esm/pds-checkbox.entry.js +16 -8
- package/dist/esm/pds-chip.entry.js +8 -8
- package/dist/esm/pds-combobox.entry.js +43 -13
- package/dist/esm/pds-container.entry.js +3 -3
- package/dist/esm/pds-copytext.entry.js +7 -7
- package/dist/esm/pds-datepicker.entry.js +6 -6
- package/dist/esm/pds-divider.entry.js +3 -3
- package/dist/esm/pds-drawer-content.entry.js +3 -3
- package/dist/esm/pds-drawer-footer.entry.js +3 -3
- package/dist/esm/pds-drawer-header.entry.js +3 -3
- package/dist/esm/pds-drawer.entry.js +4 -4
- package/dist/esm/pds-dropdown-menu-item.entry.js +34 -5
- package/dist/esm/pds-dropdown-menu-separator.entry.js +3 -3
- package/dist/esm/pds-dropdown-menu.entry.js +8 -8
- package/dist/esm/pds-filter.entry.js +4 -4
- package/dist/esm/pds-filters.entry.js +3 -3
- package/dist/esm/pds-icon.entry.js +2 -2
- package/dist/esm/pds-image.entry.js +4 -4
- package/dist/esm/pds-input.entry.js +6 -6
- package/dist/esm/pds-link.entry.js +15 -6
- package/dist/esm/pds-loader.entry.js +4 -4
- package/dist/esm/pds-modal-content.entry.js +34 -32
- package/dist/esm/pds-modal-footer.entry.js +3 -3
- package/dist/esm/pds-modal-header.entry.js +3 -3
- package/dist/esm/pds-modal.entry.js +7 -87
- package/dist/esm/pds-multiselect.entry.js +9 -9
- package/dist/esm/pds-popover.entry.js +416 -163
- package/dist/esm/pds-progress.entry.js +4 -4
- package/dist/esm/pds-property.entry.js +3 -3
- package/dist/esm/pds-radio-group.entry.js +6 -6
- package/dist/esm/pds-radio.entry.js +24 -11
- package/dist/esm/pds-row.entry.js +4 -4
- package/dist/esm/pds-select.entry.js +132 -21
- package/dist/esm/pds-sortable-item.entry.js +5 -5
- package/dist/esm/pds-sortable.entry.js +4 -4
- package/dist/esm/pds-switch.entry.js +7 -7
- package/dist/esm/pds-tab.entry.js +3 -3
- package/dist/esm/pds-table-body.entry.js +3 -3
- package/dist/esm/pds-table-cell.entry.js +6 -6
- package/dist/esm/pds-table-head-cell.entry.js +5 -5
- package/dist/esm/pds-table-head.entry.js +3 -3
- package/dist/esm/pds-table-row.entry.js +3 -3
- package/dist/esm/pds-table.entry.js +2 -2
- package/dist/esm/pds-tabpanel.entry.js +4 -4
- package/dist/esm/pds-tabs.entry.js +4 -4
- package/dist/esm/pds-text.entry.js +5 -5
- package/dist/esm/pds-textarea.entry.js +8 -8
- package/dist/esm/pds-toast.entry.js +14 -8
- package/dist/esm/pds-tooltip.entry.js +115 -44
- package/dist/esm/pine-core.js +4 -4
- package/dist/esm/tabbable-DCKBKRUy.js +83 -0
- package/dist/esm/{truncation-tooltip-DRXsdKk1.js → truncation-tooltip-D_gvhB9r.js} +32 -7
- package/dist/esm-es5/{attributes-WXw_I_uJ.js → attributes-DkeVeN0g.js} +1 -1
- package/dist/esm-es5/{floating-ui.dom-BPqJgIq6.js → floating-ui.dom-Cuc0DYlm.js} +1 -1
- package/dist/esm-es5/{index-Cw9J31qd.js → index-BFSwd-GQ.js} +2 -2
- package/dist/esm-es5/{index-BJXk71tO.js → index-m3pqpeWg.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/{keep-hydrated-BLG6RDBt.js → keep-hydrated-BgNaWLoS.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/mock-pds-modal.entry.js +1 -1
- package/dist/esm-es5/pds-accordion.entry.js +1 -1
- package/dist/esm-es5/pds-alert.entry.js +1 -1
- package/dist/esm-es5/pds-avatar.entry.js +1 -1
- package/dist/esm-es5/pds-box.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 +2 -2
- package/dist/esm-es5/pds-container.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-divider.entry.js +1 -1
- package/dist/esm-es5/pds-drawer-content.entry.js +1 -1
- package/dist/esm-es5/pds-drawer-footer.entry.js +1 -1
- package/dist/esm-es5/pds-drawer-header.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-separator.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-filters.entry.js +1 -1
- package/dist/esm-es5/pds-icon.entry.js +1 -1
- package/dist/esm-es5/pds-image.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-loader.entry.js +1 -1
- package/dist/esm-es5/pds-modal-content.entry.js +1 -1
- package/dist/esm-es5/pds-modal-footer.entry.js +1 -1
- package/dist/esm-es5/pds-modal-header.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-progress.entry.js +1 -1
- package/dist/esm-es5/pds-property.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-row.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-sortable.entry.js +2 -2
- package/dist/esm-es5/pds-switch.entry.js +1 -1
- package/dist/esm-es5/pds-tab.entry.js +1 -1
- package/dist/esm-es5/pds-table-body.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-table-head.entry.js +1 -1
- package/dist/esm-es5/pds-table-row.entry.js +1 -1
- package/dist/esm-es5/pds-table.entry.js +1 -1
- package/dist/esm-es5/pds-tabpanel.entry.js +1 -1
- package/dist/esm-es5/pds-tabs.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/pds-tooltip.entry.js +1 -1
- package/dist/esm-es5/pine-core.js +1 -1
- package/dist/esm-es5/tabbable-DCKBKRUy.js +1 -0
- package/dist/esm-es5/truncation-tooltip-D_gvhB9r.js +1 -0
- package/dist/pine-core/index.esm.js +1 -1
- package/dist/pine-core/p-001d4b86.entry.js +1 -0
- package/dist/pine-core/p-06279b93.system.entry.js +1 -0
- package/dist/pine-core/{p-b75b0d09.system.entry.js → p-0790dd0d.system.entry.js} +1 -1
- package/dist/pine-core/p-079c39d1.entry.js +1 -0
- package/dist/pine-core/p-07b4524e.entry.js +1 -0
- package/dist/pine-core/{p-b60ac7eb.system.entry.js → p-08bbd3e6.system.entry.js} +1 -1
- package/dist/pine-core/{p-c5c9ed36.system.entry.js → p-0bd61097.system.entry.js} +1 -1
- package/dist/pine-core/p-0c60f577.system.entry.js +1 -0
- package/dist/pine-core/{p-6d603d16.system.entry.js → p-110b4051.system.entry.js} +1 -1
- package/dist/pine-core/p-11e7d660.entry.js +1 -0
- package/dist/pine-core/p-14d872d3.entry.js +1 -0
- package/dist/pine-core/p-17fc76e7.system.entry.js +1 -0
- package/dist/pine-core/{p-0913f696.system.entry.js → p-1e5648bf.system.entry.js} +1 -1
- package/dist/pine-core/{p-e803f629.system.entry.js → p-22ae92f7.system.entry.js} +1 -1
- package/dist/pine-core/p-239774c9.entry.js +1 -0
- package/dist/pine-core/{p-0b71ecb6.system.entry.js → p-25bf2f26.system.entry.js} +2 -2
- package/dist/pine-core/{p-e7a95a49.system.entry.js → p-272b24ad.system.entry.js} +1 -1
- package/dist/pine-core/{p-d2c91e7a.entry.js → p-2c0047cd.entry.js} +1 -1
- package/dist/pine-core/p-2d5b1deb.entry.js +1 -0
- package/dist/pine-core/{p-e8cb76e8.entry.js → p-3556f6ad.entry.js} +1 -1
- package/dist/pine-core/{p-BGLP3keB.js → p-35s7h-dk.js} +1 -1
- package/dist/pine-core/{p-080cb087.system.entry.js → p-38b87aa2.system.entry.js} +1 -1
- package/dist/pine-core/{p-355e4cf9.entry.js → p-3afb1208.entry.js} +1 -1
- package/dist/pine-core/p-3b5b8f73.entry.js +1 -0
- package/dist/pine-core/{p-8c8cc079.system.entry.js → p-3cc19ea8.system.entry.js} +1 -1
- package/dist/pine-core/{p-bd67156b.system.entry.js → p-3ce7e72e.system.entry.js} +1 -1
- package/dist/pine-core/p-3f62581a.system.entry.js +1 -0
- package/dist/pine-core/p-414faecf.entry.js +1 -0
- package/dist/pine-core/p-463a29fa.entry.js +1 -0
- package/dist/pine-core/{p-f029b7da.system.entry.js → p-4ee44585.system.entry.js} +1 -1
- package/dist/pine-core/p-50af67ea.system.entry.js +1 -0
- package/dist/pine-core/p-5133e8be.system.entry.js +1 -0
- package/dist/pine-core/p-55fce29e.entry.js +1 -0
- package/dist/pine-core/{p-77395d62.system.entry.js → p-568a9a79.system.entry.js} +1 -1
- package/dist/pine-core/p-5967d9fa.system.entry.js +1 -0
- package/dist/pine-core/{p-5870b092.system.entry.js → p-5c46553f.system.entry.js} +1 -1
- package/dist/pine-core/{p-f0d24298.system.entry.js → p-5ce5836e.system.entry.js} +1 -1
- package/dist/pine-core/p-5f3242c8.system.entry.js +1 -0
- package/dist/pine-core/{p-80e6f3a0.system.entry.js → p-60d27247.system.entry.js} +1 -1
- package/dist/pine-core/{p-bd26a5e8.entry.js → p-60e3b1af.entry.js} +1 -1
- package/dist/pine-core/{p-ca0a8f5c.entry.js → p-64283f7b.entry.js} +1 -1
- package/dist/pine-core/p-6602b4d0.entry.js +1 -0
- package/dist/pine-core/p-6845867f.system.entry.js +1 -0
- package/dist/pine-core/{p-1ee86d87.system.entry.js → p-68fdfb8f.system.entry.js} +1 -1
- package/dist/pine-core/p-6b6ae1be.entry.js +1 -0
- package/dist/pine-core/{p-e5420660.entry.js → p-6d64e6c7.entry.js} +1 -1
- package/dist/pine-core/{p-3a959459.system.entry.js → p-6dad76cb.system.entry.js} +1 -1
- package/dist/pine-core/p-6f34ad9c.entry.js +1 -0
- package/dist/pine-core/{p-55224683.entry.js → p-7073146f.entry.js} +1 -1
- package/dist/pine-core/{p-f1702281.entry.js → p-735b3631.entry.js} +1 -1
- package/dist/pine-core/p-7a14473e.entry.js +1 -0
- package/dist/pine-core/{p-9880d251.system.entry.js → p-7a19477e.system.entry.js} +1 -1
- package/dist/pine-core/{p-88ff1604.entry.js → p-7d3a20ba.entry.js} +1 -1
- package/dist/pine-core/{p-a939b471.entry.js → p-7fcf3d37.entry.js} +1 -1
- package/dist/pine-core/{p-26642718.entry.js → p-87642228.entry.js} +1 -1
- package/dist/pine-core/p-89fefe36.entry.js +1 -0
- package/dist/pine-core/p-8b97dd57.system.entry.js +1 -0
- package/dist/pine-core/{p-0092444c.system.entry.js → p-9201b497.system.entry.js} +1 -1
- package/dist/pine-core/{p-ebd0bff2.entry.js → p-92a8cf7d.entry.js} +1 -1
- package/dist/pine-core/{p-e836a041.entry.js → p-94597b73.entry.js} +1 -1
- package/dist/pine-core/p-9713d6a5.system.entry.js +1 -0
- package/dist/pine-core/p-97be00f4.system.entry.js +1 -0
- package/dist/pine-core/{p-2ac2457b.system.entry.js → p-98843402.system.entry.js} +1 -1
- package/dist/pine-core/{p-b914dde8.entry.js → p-98cc327b.entry.js} +2 -2
- package/dist/pine-core/p-9a8971e2.system.entry.js +1 -0
- package/dist/pine-core/p-9a8d2985.system.entry.js +3 -0
- package/dist/pine-core/{p-cfc52b95.system.entry.js → p-9dbc017f.system.entry.js} +1 -1
- package/dist/pine-core/p-9fbcba0d.entry.js +1 -0
- package/dist/pine-core/p-9fe4a64a.entry.js +1 -0
- package/dist/pine-core/{p-COtCa1Md.system.js → p-BNTlHhoO.system.js} +1 -1
- package/dist/pine-core/p-BZ1l3LGl.system.js +1 -0
- package/dist/pine-core/p-BgNaWLoS.js +1 -0
- package/dist/pine-core/{p-CmSJytt1.js → p-BplEmwUQ.js} +2 -2
- package/dist/pine-core/{p-Cy8cvR7I.system.js → p-CANeE7Ss.system.js} +1 -1
- package/dist/pine-core/{p-XW4H0W6i.system.js → p-CNXspDYs.system.js} +1 -1
- package/dist/pine-core/{p-JtdHT_W5.js → p-CirzxZ33.js} +1 -1
- package/dist/pine-core/{p-CGRdQc49.system.js → p-CjRCtzPD.system.js} +2 -2
- package/dist/pine-core/{p-BPqJgIq6.js → p-Cuc0DYlm.js} +1 -1
- package/dist/pine-core/p-D52aRqFx.system.js +1 -0
- package/dist/pine-core/p-DCKBKRUy.js +1 -0
- package/dist/pine-core/p-DXO1yd32.system.js +1 -0
- package/dist/pine-core/{p-n3_ytl_p.system.js → p-DaCT2ssj.system.js} +1 -1
- package/dist/pine-core/p-a2078add.entry.js +1 -0
- package/dist/pine-core/{p-97d0b89e.system.entry.js → p-a48b025a.system.entry.js} +1 -1
- package/dist/pine-core/{p-9713fb36.entry.js → p-a7d25143.entry.js} +1 -1
- package/dist/pine-core/{p-9dcd2cdb.entry.js → p-ad3b1ec3.entry.js} +1 -1
- package/dist/pine-core/p-b017eb99.system.entry.js +1 -0
- package/dist/pine-core/p-b037dcbd.system.entry.js +1 -0
- package/dist/pine-core/{p-db17c626.system.entry.js → p-b243767b.system.entry.js} +1 -1
- package/dist/pine-core/{p-341c38f1.system.entry.js → p-b33ad96e.system.entry.js} +1 -1
- package/dist/pine-core/p-b6edfdfe.entry.js +2 -0
- package/dist/pine-core/{p-8191498f.system.entry.js → p-b7cbd913.system.entry.js} +1 -1
- package/dist/pine-core/{p-8f531063.entry.js → p-b9d71b76.entry.js} +1 -1
- package/dist/pine-core/p-bcf57566.entry.js +1 -0
- package/dist/pine-core/{p-4fd454f6.entry.js → p-bda7e3be.entry.js} +1 -1
- package/dist/pine-core/p-bdde1e53.entry.js +1 -0
- package/dist/pine-core/{p-cb6a3e4c.system.entry.js → p-be3b4f12.system.entry.js} +1 -1
- package/dist/pine-core/{p-b1548a20.entry.js → p-bfdfbe9f.entry.js} +1 -1
- package/dist/pine-core/p-c02a32ec.entry.js +1 -0
- package/dist/pine-core/p-c1da80e5.entry.js +1 -0
- package/dist/pine-core/{p-d8570b4b.system.entry.js → p-c233866c.system.entry.js} +1 -1
- package/dist/pine-core/{p-fc25b956.system.entry.js → p-cb560aab.system.entry.js} +1 -1
- package/dist/pine-core/{p-02088776.entry.js → p-ce554098.entry.js} +1 -1
- package/dist/pine-core/p-ced6a814.system.entry.js +1 -0
- package/dist/pine-core/{p-0a84d220.entry.js → p-d7930540.entry.js} +1 -1
- package/dist/pine-core/{p-11d98408.system.entry.js → p-d7db749a.system.entry.js} +1 -1
- package/dist/pine-core/{p-7a5b21d2.system.entry.js → p-d8bedb58.system.entry.js} +1 -1
- package/dist/pine-core/{p-1dc5a7e0.system.entry.js → p-d9243653.system.entry.js} +1 -1
- package/dist/pine-core/{p-9ab95438.entry.js → p-d94ebe84.entry.js} +1 -1
- package/dist/pine-core/{p-9109b90a.entry.js → p-de176bd9.entry.js} +1 -1
- package/dist/pine-core/{p-57a2f927.entry.js → p-dea2a254.entry.js} +1 -1
- package/dist/pine-core/p-dfadfcd1.entry.js +1 -0
- package/dist/pine-core/{p-1437585e.system.entry.js → p-e1fdd53a.system.entry.js} +1 -1
- package/dist/pine-core/{p-4435fff6.system.entry.js → p-e70cb112.system.entry.js} +1 -1
- package/dist/pine-core/{p-01aa382c.system.entry.js → p-e9a53a88.system.entry.js} +1 -1
- package/dist/pine-core/p-eb93cc6e.entry.js +1 -0
- package/dist/pine-core/{p-4d03d1e2.system.entry.js → p-ebf0c51b.system.entry.js} +1 -1
- package/dist/pine-core/p-ebf74c43.system.entry.js +1 -0
- package/dist/pine-core/{p-cde8eb81.entry.js → p-ee449a4b.entry.js} +1 -1
- package/dist/pine-core/p-ef4d8fea.entry.js +1 -0
- package/dist/pine-core/p-f09f27ab.system.entry.js +1 -0
- package/dist/pine-core/{p-ff3de72e.entry.js → p-f2c487e6.entry.js} +1 -1
- package/dist/pine-core/p-f549f2bc.entry.js +1 -0
- package/dist/pine-core/p-fc743f6e.entry.js +1 -0
- package/dist/pine-core/{p-BJXk71tO.js → p-m3pqpeWg.js} +1 -1
- package/dist/pine-core/p-wXfuz0Bd.system.js +1 -0
- package/dist/pine-core/pine-core.esm.js +1 -1
- package/dist/pine-core/pine-core.js +1 -1
- package/dist/types/components/pds-alert/pds-alert.d.ts +10 -0
- package/dist/types/components/pds-avatar/pds-avatar.d.ts +8 -0
- package/dist/types/components/pds-button/pds-button.d.ts +5 -6
- package/dist/types/components/pds-checkbox/pds-checkbox.d.ts +7 -1
- package/dist/types/components/pds-combobox/pds-combobox.d.ts +9 -0
- package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.d.ts +20 -3
- package/dist/types/components/pds-link/pds-link.d.ts +8 -0
- 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 +87 -21
- package/dist/types/components/pds-radio/pds-radio.d.ts +9 -3
- package/dist/types/components/pds-select/pds-select.d.ts +32 -4
- package/dist/types/components/pds-toast/pds-toast.d.ts +9 -0
- package/dist/types/components/pds-tooltip/pds-tooltip.d.ts +31 -0
- package/dist/types/components.d.ts +139 -18
- package/dist/types/utils/aria-references.d.ts +24 -0
- package/dist/types/utils/tabbable.d.ts +2 -0
- 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 +129 -14
- package/hydrate/index.js +1040 -416
- package/hydrate/index.mjs +1040 -416
- package/package.json +2 -2
- package/dist/esm-es5/truncation-tooltip-DRXsdKk1.js +0 -1
- package/dist/pine-core/p-049f126a.entry.js +0 -1
- package/dist/pine-core/p-153ba77b.entry.js +0 -1
- package/dist/pine-core/p-208c7dbf.entry.js +0 -1
- package/dist/pine-core/p-258770cf.system.entry.js +0 -1
- package/dist/pine-core/p-2cb5483a.system.entry.js +0 -1
- package/dist/pine-core/p-432d5ec7.entry.js +0 -1
- package/dist/pine-core/p-5442d983.system.entry.js +0 -1
- package/dist/pine-core/p-576cf904.system.entry.js +0 -1
- package/dist/pine-core/p-5c90091e.system.entry.js +0 -1
- package/dist/pine-core/p-602c197f.entry.js +0 -1
- package/dist/pine-core/p-645a482b.system.entry.js +0 -1
- package/dist/pine-core/p-72865997.entry.js +0 -1
- package/dist/pine-core/p-75ee0403.entry.js +0 -1
- package/dist/pine-core/p-7a287635.system.entry.js +0 -1
- package/dist/pine-core/p-7bf6563a.system.entry.js +0 -1
- package/dist/pine-core/p-7fa66cad.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-86040cac.system.entry.js +0 -1
- package/dist/pine-core/p-875b0436.system.entry.js +0 -1
- package/dist/pine-core/p-8cc302aa.system.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-94593f20.system.entry.js +0 -1
- package/dist/pine-core/p-993d1043.entry.js +0 -1
- package/dist/pine-core/p-99459e27.entry.js +0 -1
- package/dist/pine-core/p-BLG6RDBt.js +0 -1
- package/dist/pine-core/p-BR5nujVX.system.js +0 -1
- package/dist/pine-core/p-CuSNnuFu.system.js +0 -1
- package/dist/pine-core/p-a0960b3d.system.entry.js +0 -1
- package/dist/pine-core/p-a1230a74.system.entry.js +0 -1
- package/dist/pine-core/p-a19cd59c.entry.js +0 -1
- package/dist/pine-core/p-a787b34a.system.entry.js +0 -1
- package/dist/pine-core/p-a826f290.entry.js +0 -1
- package/dist/pine-core/p-aa032a5e.system.entry.js +0 -1
- package/dist/pine-core/p-acce8eb2.entry.js +0 -1
- package/dist/pine-core/p-b69f04b7.entry.js +0 -1
- package/dist/pine-core/p-bb68431a.entry.js +0 -1
- package/dist/pine-core/p-bb73ad66.entry.js +0 -2
- package/dist/pine-core/p-beb23781.entry.js +0 -1
- package/dist/pine-core/p-bf30dec0.entry.js +0 -1
- package/dist/pine-core/p-c36b490e.entry.js +0 -1
- package/dist/pine-core/p-c81d8ac8.entry.js +0 -1
- package/dist/pine-core/p-ca0d48e8.entry.js +0 -1
- package/dist/pine-core/p-cfd012d4.entry.js +0 -1
- package/dist/pine-core/p-e0917a26.entry.js +0 -1
- package/dist/pine-core/p-e836f3ec.system.entry.js +0 -3
- package/dist/pine-core/p-ea4d4741.system.entry.js +0 -1
- package/dist/pine-core/p-f2c253d8.entry.js +0 -1
- package/dist/pine-core/p-f474d7de.entry.js +0 -1
- package/dist/pine-core/p-f77905aa.system.entry.js +0 -1
- package/dist/pine-core/p-qhdoK1Jp.system.js +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Host, h } from "@stencil/core";
|
|
2
2
|
export class PdsTableBody {
|
|
3
3
|
render() {
|
|
4
|
-
return (h(Host, { key: '
|
|
4
|
+
return (h(Host, { key: '4f1cba9505f56ff1ab0a19f9a88318d66a02eacc', role: "rowgroup", part: "body" }, h("slot", { key: 'ea0c620a15fcbe2915189e870d0815c5cbffdf8c' })));
|
|
5
5
|
}
|
|
6
6
|
static get is() { return "pds-table-body"; }
|
|
7
7
|
static get encapsulation() { return "shadow"; }
|
|
@@ -143,11 +143,11 @@ export class PdsTableCell {
|
|
|
143
143
|
return classNames.join(' ');
|
|
144
144
|
}
|
|
145
145
|
render() {
|
|
146
|
-
return (h(Host, { key: '
|
|
146
|
+
return (h(Host, { key: 'fd84150bcb9bd5d2029624394d4f69b0a7234bc0', class: this.classNames(), role: "gridcell", part: "cell", style: this.tableRef &&
|
|
147
147
|
this.tableRef.fixedColumn &&
|
|
148
148
|
this.tableRef.selectable
|
|
149
149
|
? { '--fixed-cell-position': '40px' }
|
|
150
|
-
: {} }, h("slot", { key: '
|
|
150
|
+
: {} }, h("slot", { key: '9256f033ec58b9cb2acc74d705acc9726507668b' })));
|
|
151
151
|
}
|
|
152
152
|
static get is() { return "pds-table-cell"; }
|
|
153
153
|
static get encapsulation() { return "shadow"; }
|
|
@@ -42,7 +42,7 @@ export class PdsTableHead {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
render() {
|
|
45
|
-
return (h(Host, { key: '
|
|
45
|
+
return (h(Host, { key: '4fb8d7bf4a9b0bce672208651c0600fbc94214af', role: "row", part: "head" }, this.tableRef && this.tableRef.selectable && (h("pds-table-head-cell", { key: '20b86146540208178bd63bd136e14e5534c7ec76', part: this.tableRef.selectable ? 'checkbox-cell' : '' }, !this.tableRef.disableSelectAll && (h("pds-checkbox", { key: 'fa8054dd7ee36c6401e9eeb9c962a820d3a02558', componentId: this.generateUniqueId(), indeterminate: this.indeterminate, onInput: this.handleInput, label: "Select All Rows", hideLabel: true, checked: this.isSelected, part: "select-all-checkbox" })))), h("slot", { key: 'a0000270ae6ed1cab1c6e802ccc53ba0de3e54c9' })));
|
|
46
46
|
}
|
|
47
47
|
static get is() { return "pds-table-head"; }
|
|
48
48
|
static get encapsulation() { return "shadow"; }
|
|
@@ -199,11 +199,11 @@ export class PdsTableHeadCell {
|
|
|
199
199
|
return classNames.join(' ');
|
|
200
200
|
}
|
|
201
201
|
render() {
|
|
202
|
-
return (h(Host, { key: '
|
|
202
|
+
return (h(Host, { key: 'd609309180968913315c1428d0403c3974a4bfc0', class: this.classNames(), role: "columnheader", onClick: this.toggleSort, part: "head-cell", style: this.tableRef &&
|
|
203
203
|
this.tableRef.fixedColumn &&
|
|
204
204
|
this.tableRef.selectable
|
|
205
205
|
? { '--fixed-cell-position': '40px' }
|
|
206
|
-
: {} }, h("slot", { key: '
|
|
206
|
+
: {} }, h("slot", { key: '7aff5994fe4c5250ce83516960183dbd9ffa9c69' }), this.sortable && this.isActive && (h("pds-icon", { key: '0a7b99ab2c56ea0cfb3aa6f810bf802422a29bef', icon: this.sortingDirection === 'asc' ? upSmall : downSmall, part: "sort-icon", "aria-hidden": "true" }))));
|
|
207
207
|
}
|
|
208
208
|
static get is() { return "pds-table-head-cell"; }
|
|
209
209
|
static get encapsulation() { return "shadow"; }
|
|
@@ -137,7 +137,7 @@ export class PdsTableRow {
|
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
139
|
render() {
|
|
140
|
-
return (h(Host, { key: '
|
|
140
|
+
return (h(Host, { key: 'dc956e7253971bdadc003448822a83953ed4658f', class: this.classNames(), role: "row", part: "row" }, this.tableRef && this.tableRef.selectable && (h("pds-table-cell", { key: '1f119c5036ab1d27c5138106968a40492222b6f3', part: this.tableRef.fixedColumn ? 'checkbox-cell' : 'checkbox-cell', class: this.tableRef.selectable ? 'has-checkbox' : '' }, h("pds-checkbox", { key: 'f7a3534eceeabe478fb85e6e476f814e03988cfb', componentId: this.generateUniqueId(), onPdsCheckboxChange: this.handleCheckboxChange, indeterminate: this.indeterminate, label: "Select Row", hideLabel: true, checked: this.isSelected, part: "row-checkbox" }))), h("slot", { key: '287c0fe2c39bac5df7a977e31290aeddd0cd46b3' })));
|
|
141
141
|
}
|
|
142
142
|
static get is() { return "pds-table-row"; }
|
|
143
143
|
static get encapsulation() { return "shadow"; }
|
|
@@ -164,7 +164,7 @@ const ResponsiveTemplate = (args) => html`
|
|
|
164
164
|
<pds-table-cell>Row Item Lima</pds-table-cell>
|
|
165
165
|
<pds-table-cell>
|
|
166
166
|
<pds-dropdown-menu placement="bottom-end">
|
|
167
|
-
<pds-button slot="trigger" size="
|
|
167
|
+
<pds-button slot="trigger" size="small" variant="tertiary" icon-only aria-label="More actions"><pds-icon slot="start" name="dot-menu-horizontal" aria-hidden="true"></pds-icon></pds-button>
|
|
168
168
|
<pds-dropdown-menu-item>Edit</pds-dropdown-menu-item>
|
|
169
169
|
<pds-dropdown-menu-item>Duplicate</pds-dropdown-menu-item>
|
|
170
170
|
<pds-dropdown-menu-separator></pds-dropdown-menu-separator>
|
|
@@ -186,7 +186,7 @@ const ResponsiveTemplate = (args) => html`
|
|
|
186
186
|
<pds-table-cell>Row Item Lima</pds-table-cell>
|
|
187
187
|
<pds-table-cell>
|
|
188
188
|
<pds-dropdown-menu placement="bottom-end">
|
|
189
|
-
<pds-button slot="trigger" size="
|
|
189
|
+
<pds-button slot="trigger" size="small" variant="tertiary" icon-only aria-label="More actions"><pds-icon slot="start" name="dot-menu-horizontal" aria-hidden="true"></pds-icon></pds-button>
|
|
190
190
|
<pds-dropdown-menu-item>Edit</pds-dropdown-menu-item>
|
|
191
191
|
<pds-dropdown-menu-item>Duplicate</pds-dropdown-menu-item>
|
|
192
192
|
<pds-dropdown-menu-separator></pds-dropdown-menu-separator>
|
|
@@ -208,7 +208,7 @@ const ResponsiveTemplate = (args) => html`
|
|
|
208
208
|
<pds-table-cell>Row Item Lima</pds-table-cell>
|
|
209
209
|
<pds-table-cell>
|
|
210
210
|
<pds-dropdown-menu placement="bottom-end">
|
|
211
|
-
<pds-button slot="trigger" size="
|
|
211
|
+
<pds-button slot="trigger" size="small" variant="tertiary" icon-only aria-label="More actions"><pds-icon slot="start" name="dot-menu-horizontal" aria-hidden="true"></pds-icon></pds-button>
|
|
212
212
|
<pds-dropdown-menu-item>Edit</pds-dropdown-menu-item>
|
|
213
213
|
<pds-dropdown-menu-item>Duplicate</pds-dropdown-menu-item>
|
|
214
214
|
<pds-dropdown-menu-separator></pds-dropdown-menu-separator>
|
|
@@ -488,7 +488,7 @@ const TruncateTemplate = (args) => html`
|
|
|
488
488
|
</pds-table-row>
|
|
489
489
|
</pds-table-body>
|
|
490
490
|
</pds-table>
|
|
491
|
-
<pds-text tag="p" size="xs" color="secondary" gutter="sm">Hover over truncated
|
|
491
|
+
<pds-text tag="p" size="xs" color="secondary" gutter="sm">Hover over or tab to a truncated cell to see the full content in a tooltip.</pds-text>`;
|
|
492
492
|
|
|
493
493
|
export const Truncate = TruncateTemplate.bind();
|
|
494
494
|
Truncate.args = {
|
|
@@ -33,7 +33,7 @@ export class PdsTabpanel {
|
|
|
33
33
|
// The docs show consumers omitting `slot`, so server HTML doesn't carry it — a DOM morph
|
|
34
34
|
// that strips it (and the stretch-active class) leaves this panel unslotted. Put both back.
|
|
35
35
|
this.hostKeeper.record(hostClass, {}, { slot: 'tabpanels' });
|
|
36
|
-
return (h(Host, { key: '
|
|
36
|
+
return (h(Host, { key: 'b649c0f9e0c103a2d7dad43b7db0a092194b4ba0', slot: "tabpanels", class: hostClass || undefined }, h("div", { key: 'a578722d33f7d04726185e393771838870833984', role: "tabpanel", id: this.parentComponentId + "__" + this.name + '-panel', tabindex: "0", "aria-labelledby": this.parentComponentId + "__" + this.name, class: this.selected ? "pds-tabpanel is-active" : "pds-tabpanel" }, h("slot", { key: '2ebe5745c444563333ee175bb3a1f7401ba77ec1' }))));
|
|
37
37
|
}
|
|
38
38
|
static get is() { return "pds-tabpanel"; }
|
|
39
39
|
static get originalStyleUrls() {
|
|
@@ -276,7 +276,7 @@ export class PdsTabs {
|
|
|
276
276
|
// Only the classes: `active-tab-name` backs the mutable activeTabName prop, so a morph that drops
|
|
277
277
|
// it is a prop change, not a strip.
|
|
278
278
|
this.hostKeeper.record(hostClass);
|
|
279
|
-
return (h(Host, { key: '
|
|
279
|
+
return (h(Host, { key: '08ac02be358bebbd95dd5edca30cd99789445f50', "active-tab-name": this.activeTabName, class: hostClass, id: this.componentId }, tabList, h("slot", { key: '02395c056f80f46f1fa9117eafde68ef170b4188', name: "tabpanels" })));
|
|
280
280
|
}
|
|
281
281
|
static get is() { return "pds-tabs"; }
|
|
282
282
|
static get encapsulation() { return "shadow"; }
|
|
@@ -91,7 +91,7 @@ export class PdsText {
|
|
|
91
91
|
? `pds-text--decoration-${this.decoration}`
|
|
92
92
|
: ''}
|
|
93
93
|
`;
|
|
94
|
-
return (h(Tag, { key: '
|
|
94
|
+
return (h(Tag, { key: 'b79a6e67f11024cb025cb26bbf77231547bd63a4', ref: (el) => (this.contentEl = el), style: this.color && setColor(this.color), class: typeClasses, part: "content" }, h("slot", { key: 'ae1f8ca39899894541eac3c07fb21ead4ab98f40' })));
|
|
95
95
|
}
|
|
96
96
|
static get is() { return "pds-text"; }
|
|
97
97
|
static get encapsulation() { return "shadow"; }
|
|
@@ -113,7 +113,7 @@ const TruncateTemplate = (args) => html`
|
|
|
113
113
|
${args.slot}
|
|
114
114
|
</pds-text>
|
|
115
115
|
</div>
|
|
116
|
-
<pds-text tag="p" size="xs" color="secondary" gutter="sm">Hover over the truncated text above to see the full content in a tooltip.</pds-text>`;
|
|
116
|
+
<pds-text tag="p" size="xs" color="secondary" gutter="sm">Hover over or tab to the truncated text above to see the full content in a tooltip.</pds-text>`;
|
|
117
117
|
|
|
118
118
|
export const Truncate = TruncateTemplate.bind();
|
|
119
119
|
Truncate.args = {
|
|
@@ -306,10 +306,10 @@ export class PdsTextarea {
|
|
|
306
306
|
}
|
|
307
307
|
render() {
|
|
308
308
|
const value = this.getValue();
|
|
309
|
-
return (h(Host, { key: '
|
|
310
|
-
h("div", { key: '
|
|
311
|
-
h("p", { key: '
|
|
312
|
-
h("p", { key: '
|
|
309
|
+
return (h(Host, { key: '76e445d135191df3090620f2c2eaf6ed8d7eb9cb', "aria-disabled": this.disabled ? 'true' : null, "aria-readonly": this.readonly ? 'true' : null, "has-action": this.hasAction && !this.hideLabel ? 'true' : null }, h("div", { key: '836815333b0ca925bc205a4b8b25086fe82fcedc', class: "pds-textarea" }, this.label &&
|
|
310
|
+
h("div", { key: 'e8633457c994d3387ec277fd9945afb2c653d27a', class: "pds-textarea__label-wrapper" }, h("label", { key: '977bb1c171b68242ab06e01ef94ecc4e4cb26880', htmlFor: this.componentId }, h("span", { key: 'ef87433d6524296b3153e8d04e6406c9287e3f2e', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), !this.hideLabel && this.renderAction()), h("div", { key: '92952c76f5f4a87da4953f792a9a5589d7765451', class: "pds-textarea__field-wrapper" }, h("textarea", Object.assign({ key: 'a61f39d0e299cb6b3e6d1beed37805ad9a71b579', 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 &&
|
|
311
|
+
h("p", { key: '811065b7ce7b45d902d821dbceb25fef4231db94', class: "pds-textarea__helper-message", id: messageId(this.componentId, 'helper') }, this.helperMessage), this.invalid &&
|
|
312
|
+
h("p", { key: 'f95f566b79215a4a128fe92c02be244219f843e5', "aria-live": "assertive", class: "pds-textarea__error-message", id: messageId(this.componentId, 'error') }, h("pds-icon", { key: '08f649e4b32551d59d60b978262cd7beaa99e08d', "aria-hidden": "true", icon: danger, size: "small" }), this.errorMessage))));
|
|
313
313
|
}
|
|
314
314
|
static get is() { return "pds-textarea"; }
|
|
315
315
|
static get encapsulation() { return "shadow"; }
|
|
@@ -181,8 +181,8 @@ export const withActionButton = (args) => html`<pds-textarea
|
|
|
181
181
|
value="${args.value}"
|
|
182
182
|
data-tooltip-id="foo"
|
|
183
183
|
title="bar">
|
|
184
|
-
<pds-button slot="action" variant="unstyled">
|
|
185
|
-
<pds-icon name="question-circle"></pds-icon>
|
|
184
|
+
<pds-button slot="action" variant="unstyled" aria-label="Help with description">
|
|
185
|
+
<pds-icon name="question-circle" aria-hidden="true"></pds-icon>
|
|
186
186
|
</pds-button>
|
|
187
187
|
</pds-textarea>`;
|
|
188
188
|
|
|
@@ -150,4 +150,17 @@
|
|
|
150
150
|
.pds-toast--animating-out {
|
|
151
151
|
animation: pds-toast-animate-out var(--animation-duration) var(--animation-timing) forwards;
|
|
152
152
|
pointer-events: none; /* Prevent interaction during animation */
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.visually-hidden {
|
|
156
|
+
border: 0;
|
|
157
|
+
clip: rect(0 0 0 0);
|
|
158
|
+
clip-path: polygon(0 0, 0 0, 0 0);
|
|
159
|
+
height: 1px;
|
|
160
|
+
margin: -1px;
|
|
161
|
+
overflow: hidden;
|
|
162
|
+
padding: 0;
|
|
163
|
+
position: absolute;
|
|
164
|
+
white-space: nowrap;
|
|
165
|
+
width: 1px;
|
|
153
166
|
}
|
|
@@ -117,17 +117,23 @@ export class PdsToast {
|
|
|
117
117
|
if (this.type === 'loading') {
|
|
118
118
|
return (h("div", { class: "pds-toast__loader" }, h("svg", { class: "pds-toast__loader-spinner", viewBox: "25 25 50 50", "aria-hidden": "true" }, h("circle", { class: "pds-toast__loader-path", cx: "50", cy: "50", r: "20", fill: "none", stroke: "currentColor", "stroke-width": "4", "stroke-linecap": "round" }))));
|
|
119
119
|
}
|
|
120
|
-
//
|
|
121
|
-
|
|
120
|
+
// Decorative: inside role="alert" an icon name would be read out with the
|
|
121
|
+
// message. Severity is announced as text instead (see severityLabel).
|
|
122
|
+
return this.icon && h("pds-icon", { name: this.icon, class: "pds-toast__icon", "aria-hidden": "true" });
|
|
123
|
+
}
|
|
124
|
+
severityText() {
|
|
125
|
+
var _a;
|
|
126
|
+
return (_a = this.severityLabel) !== null && _a !== void 0 ? _a : (this.type === 'danger' ? 'Error' : undefined);
|
|
122
127
|
}
|
|
123
128
|
render() {
|
|
124
|
-
|
|
129
|
+
const severity = this.severityText();
|
|
130
|
+
return (h(Host, { key: '4c4077add1843ab84674dfa49fb963df55f1c432', hidden: !this.isVisible }, h("div", { key: '0d819ac123de625604d3b1aa0f9391366b4d0289', class: {
|
|
125
131
|
'pds-toast': true,
|
|
126
132
|
[`pds-toast--${this.type}`]: this.type !== 'default',
|
|
127
133
|
'pds-toast--animating-out': this.isAnimatingOut
|
|
128
|
-
}, role: "alert", "aria-live": "polite" }, this.renderIcon(), h("span", { key: '
|
|
134
|
+
}, role: "alert", "aria-live": "polite" }, this.renderIcon(), severity && h("span", { key: 'f75fb422797082e99acb85432c1b50cf702d7afc', class: "visually-hidden" }, severity), h("span", { key: '3d9f03d96dbda41c72d2c2cc492b1422928d573f', class: "pds-toast__message" }, h("slot", { key: 'affc7e4cb592735ec396fa90a9405f25b389e4bd' })), this.dismissible && (h("button", { key: '0c4ef459dda09b8a196eed7ee28383995d959b11', type: "button", part: "dismiss", class: "pds-toast__button", onClick: () => {
|
|
129
135
|
this.dismiss();
|
|
130
|
-
}, "aria-label": this.dismissLabel }, h("pds-icon", { key: '
|
|
136
|
+
}, "aria-label": this.dismissLabel }, h("pds-icon", { key: '1b26a6a842868a5b1e55b7110c755edc7f830ba5', name: "remove", "aria-hidden": "true" }))))));
|
|
131
137
|
}
|
|
132
138
|
static get is() { return "pds-toast"; }
|
|
133
139
|
static get encapsulation() { return "shadow"; }
|
|
@@ -272,6 +278,28 @@ export class PdsToast {
|
|
|
272
278
|
"reflect": false,
|
|
273
279
|
"attribute": "dismiss-label",
|
|
274
280
|
"defaultValue": "'Dismiss message'"
|
|
281
|
+
},
|
|
282
|
+
"severityLabel": {
|
|
283
|
+
"type": "string",
|
|
284
|
+
"mutable": false,
|
|
285
|
+
"complexType": {
|
|
286
|
+
"original": "string",
|
|
287
|
+
"resolved": "string",
|
|
288
|
+
"references": {}
|
|
289
|
+
},
|
|
290
|
+
"required": false,
|
|
291
|
+
"optional": true,
|
|
292
|
+
"docs": {
|
|
293
|
+
"tags": [{
|
|
294
|
+
"name": "defaultValue",
|
|
295
|
+
"text": "undefined"
|
|
296
|
+
}],
|
|
297
|
+
"text": "Accessible label announcing the toast's severity, read before the message.\nPass a translated string to localize it; defaults to English (`Error`) for\nthe `danger` type. Other types announce none unless this is set; pass an\nempty string to announce none."
|
|
298
|
+
},
|
|
299
|
+
"getter": false,
|
|
300
|
+
"setter": false,
|
|
301
|
+
"reflect": false,
|
|
302
|
+
"attribute": "severity-label"
|
|
275
303
|
}
|
|
276
304
|
};
|
|
277
305
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { html } from 'lit';
|
|
2
|
+
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
2
3
|
|
|
3
4
|
|
|
4
5
|
export default {
|
|
@@ -15,6 +16,7 @@ const BaseTemplate = (args) => html`
|
|
|
15
16
|
duration="${args.duration}"
|
|
16
17
|
icon="${args.icon || ''}"
|
|
17
18
|
type="${args.type}"
|
|
19
|
+
severity-label=${ifDefined(args.severityLabel)}
|
|
18
20
|
>
|
|
19
21
|
${args.content || ''}
|
|
20
22
|
</pds-toast>`;
|
|
@@ -26,6 +28,7 @@ const WithLinkTemplate = (args) => html`
|
|
|
26
28
|
duration="${args.duration}"
|
|
27
29
|
icon="${args.icon || ''}"
|
|
28
30
|
type="${args.type}"
|
|
31
|
+
severity-label=${ifDefined(args.severityLabel)}
|
|
29
32
|
>
|
|
30
33
|
New update available. <a href="#">Learn more</a>
|
|
31
34
|
</pds-toast>`;
|
|
@@ -42,7 +45,7 @@ Default.args = {
|
|
|
42
45
|
export const Danger = BaseTemplate.bind();
|
|
43
46
|
Danger.args = {
|
|
44
47
|
componentId: 'toast-danger',
|
|
45
|
-
content: '
|
|
48
|
+
content: 'Payment failed. Please try again.',
|
|
46
49
|
dismissible: true,
|
|
47
50
|
duration: 0,
|
|
48
51
|
type: 'danger',
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Host, h } from "@stencil/core";
|
|
2
|
+
import { classNamesOf, isStencilClass } from "../../utils/keep-hydrated";
|
|
2
3
|
import { autoUpdate, computePosition, flip, offset, shift, } from "@floating-ui/dom";
|
|
3
4
|
/**
|
|
4
5
|
* @slot (default) - The tooltip's target element
|
|
@@ -16,7 +17,9 @@ export class PdsTooltip {
|
|
|
16
17
|
this.resolvedPlacement = 'right';
|
|
17
18
|
this.triggerEl = null;
|
|
18
19
|
this.contentDiv = null;
|
|
20
|
+
this.lastCopiedHtml = null;
|
|
19
21
|
this.slotMutationObserver = null;
|
|
22
|
+
this.contentSyncFrame = null;
|
|
20
23
|
this.currentPathname = '';
|
|
21
24
|
this.pathnameCheckInterval = null;
|
|
22
25
|
this.stopAutoUpdate = null;
|
|
@@ -83,6 +86,25 @@ export class PdsTooltip {
|
|
|
83
86
|
this.handleSpaNavigation();
|
|
84
87
|
}
|
|
85
88
|
};
|
|
89
|
+
this.scheduleContentSync = () => {
|
|
90
|
+
if (this.contentSyncFrame !== null)
|
|
91
|
+
return;
|
|
92
|
+
this.contentSyncFrame = requestAnimationFrame(() => {
|
|
93
|
+
this.contentSyncFrame = null;
|
|
94
|
+
if (this.portalEl === null || this.contentDiv === null)
|
|
95
|
+
return;
|
|
96
|
+
const copy = this.copySlottedContent();
|
|
97
|
+
const strippedCopy = this.strippedHtml(copy);
|
|
98
|
+
if (strippedCopy === this.lastCopiedHtml)
|
|
99
|
+
return;
|
|
100
|
+
this.lastCopiedHtml = strippedCopy;
|
|
101
|
+
this.contentDiv.textContent = '';
|
|
102
|
+
this.contentDiv.append(...Array.from(copy.childNodes));
|
|
103
|
+
this.repositionPortal().catch(error => {
|
|
104
|
+
console.warn('Failed to reposition tooltip after a content change:', error);
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
};
|
|
86
108
|
}
|
|
87
109
|
handleOpenToggle(newValue, oldValue) {
|
|
88
110
|
if (newValue === false && oldValue === true) {
|
|
@@ -97,16 +119,6 @@ export class PdsTooltip {
|
|
|
97
119
|
window.addEventListener('pageshow', this.handlePageShow);
|
|
98
120
|
this.currentPathname = window.location.pathname;
|
|
99
121
|
this.triggerEl = this.el.querySelector('.pds-tooltip__trigger');
|
|
100
|
-
const contentSlotWrapper = this.el.querySelector('.pds-tooltip__content-slot-wrapper');
|
|
101
|
-
if (contentSlotWrapper !== null) {
|
|
102
|
-
this.slotMutationObserver = new MutationObserver(() => {
|
|
103
|
-
if (this.opened && this.portalEl !== null) {
|
|
104
|
-
this.removePortal();
|
|
105
|
-
this.createPortal();
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
this.slotMutationObserver.observe(contentSlotWrapper, { childList: true, subtree: false });
|
|
109
|
-
}
|
|
110
122
|
// no return; Stencil ignores teardown functions here
|
|
111
123
|
}
|
|
112
124
|
connectedCallback() {
|
|
@@ -114,10 +126,6 @@ export class PdsTooltip {
|
|
|
114
126
|
}
|
|
115
127
|
disconnectedCallback() {
|
|
116
128
|
window.removeEventListener('pageshow', this.handlePageShow);
|
|
117
|
-
if (this.slotMutationObserver !== null) {
|
|
118
|
-
this.slotMutationObserver.disconnect();
|
|
119
|
-
this.slotMutationObserver = null;
|
|
120
|
-
}
|
|
121
129
|
// Ensure global listeners/intervals are removed if still present
|
|
122
130
|
if (this.portalEl !== null) {
|
|
123
131
|
this.removePortal();
|
|
@@ -260,31 +268,9 @@ export class PdsTooltip {
|
|
|
260
268
|
this.contentDiv.className = 'pds-tooltip__content';
|
|
261
269
|
this.contentDiv.setAttribute('aria-hidden', this.opened ? 'false' : 'true');
|
|
262
270
|
this.contentDiv.setAttribute('aria-live', this.opened ? 'polite' : 'off');
|
|
263
|
-
const
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
if (slottedContentContainer !== null) {
|
|
267
|
-
const childrenToClone = Array.from(slottedContentContainer.childNodes);
|
|
268
|
-
if (childrenToClone.length > 0) {
|
|
269
|
-
const hasMeaningfulNode = childrenToClone.some(node => {
|
|
270
|
-
var _a;
|
|
271
|
-
return node.nodeType === Node.ELEMENT_NODE ||
|
|
272
|
-
(node.nodeType === Node.TEXT_NODE && ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim()) !== '');
|
|
273
|
-
});
|
|
274
|
-
if (hasMeaningfulNode) {
|
|
275
|
-
hasSlottedContent = true;
|
|
276
|
-
childrenToClone.forEach((node /*, index*/) => {
|
|
277
|
-
var _a;
|
|
278
|
-
if (node.nodeType === Node.ELEMENT_NODE || (node.nodeType === Node.TEXT_NODE && ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim()) !== '')) {
|
|
279
|
-
this.contentDiv.appendChild(node.cloneNode(true));
|
|
280
|
-
}
|
|
281
|
-
});
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
if (!hasSlottedContent && typeof this.content === 'string' && this.content.trim() !== '') {
|
|
286
|
-
this.contentDiv.textContent = this.content;
|
|
287
|
-
}
|
|
271
|
+
const initialCopy = this.copySlottedContent();
|
|
272
|
+
this.lastCopiedHtml = this.strippedHtml(initialCopy);
|
|
273
|
+
this.contentDiv.append(...Array.from(initialCopy.childNodes));
|
|
288
274
|
this.portalEl.appendChild(this.contentDiv);
|
|
289
275
|
document.body.appendChild(this.portalEl);
|
|
290
276
|
this.repositionPortal().catch(error => {
|
|
@@ -307,8 +293,93 @@ export class PdsTooltip {
|
|
|
307
293
|
if (this.triggerEl !== null && this.portalEl.id !== '') {
|
|
308
294
|
this.triggerEl.setAttribute('aria-describedby', this.portalEl.id);
|
|
309
295
|
}
|
|
296
|
+
this.startContentSync();
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* The host's own content slot wrapper. Matched among direct children only, so a nested
|
|
300
|
+
* pds-tooltip inside the trigger slot isn't mistaken for this one's.
|
|
301
|
+
*/
|
|
302
|
+
get contentSlotWrapper() {
|
|
303
|
+
return Array.from(this.el.children).find((child) => child.matches('.pds-tooltip__content-slot-wrapper'));
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Copies the slotted content (or the `content` prop's text) into a detached container. The
|
|
307
|
+
* portal holds copies so the framework that owns the slotted nodes keeps them.
|
|
308
|
+
*/
|
|
309
|
+
copySlottedContent() {
|
|
310
|
+
var _a, _b;
|
|
311
|
+
const copy = document.createElement('div');
|
|
312
|
+
const slottedContentContainer = (_a = this.contentSlotWrapper) === null || _a === void 0 ? void 0 : _a.querySelector('[slot="content"]');
|
|
313
|
+
const meaningfulNodes = Array.from((_b = slottedContentContainer === null || slottedContentContainer === void 0 ? void 0 : slottedContentContainer.childNodes) !== null && _b !== void 0 ? _b : []).filter(node => {
|
|
314
|
+
var _a;
|
|
315
|
+
return node.nodeType === Node.ELEMENT_NODE ||
|
|
316
|
+
(node.nodeType === Node.TEXT_NODE && ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim()) !== '');
|
|
317
|
+
});
|
|
318
|
+
meaningfulNodes.forEach(node => copy.appendChild(node.cloneNode(true)));
|
|
319
|
+
if (meaningfulNodes.length === 0 && typeof this.content === 'string' && this.content.trim() !== '') {
|
|
320
|
+
copy.textContent = this.content;
|
|
321
|
+
}
|
|
322
|
+
return copy;
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* While the tooltip is open, keeps the portal's copy in step with the slotted content at any
|
|
326
|
+
* depth: content that loads or re-renders after opening shows without reopening. Changes are
|
|
327
|
+
* batched to one re-copy per animation frame, and a re-copy that matches the last one shown is
|
|
328
|
+
* dropped, so screen readers aren't re-announced, iframes don't reload and the tooltip isn't
|
|
329
|
+
* repositioned for nothing. Only the hidden slot wrapper is observed, so copying into the portal
|
|
330
|
+
* can't trigger another sync.
|
|
331
|
+
*/
|
|
332
|
+
startContentSync() {
|
|
333
|
+
const contentSlotWrapper = this.contentSlotWrapper;
|
|
334
|
+
if (contentSlotWrapper === undefined || typeof MutationObserver === 'undefined')
|
|
335
|
+
return;
|
|
336
|
+
this.slotMutationObserver = new MutationObserver(this.scheduleContentSync);
|
|
337
|
+
this.slotMutationObserver.observe(contentSlotWrapper, {
|
|
338
|
+
childList: true,
|
|
339
|
+
subtree: true,
|
|
340
|
+
attributes: true,
|
|
341
|
+
characterData: true,
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* A copy's serialized HTML with Stencil's own hydration and scope classes removed from every
|
|
346
|
+
* `pds-*` descendant, so a nested component finishing hydration (or re-hydrating once reconnected
|
|
347
|
+
* inside the portal) isn't mistaken for a real content change. Without this, that class-only
|
|
348
|
+
* difference fails the equality check above and triggers a recopy that replaces still-loaded
|
|
349
|
+
* nodes — reloading any iframe or media the slotted content held.
|
|
350
|
+
*/
|
|
351
|
+
strippedHtml(root) {
|
|
352
|
+
const clone = root.cloneNode(true);
|
|
353
|
+
clone.querySelectorAll('*').forEach((el) => {
|
|
354
|
+
// isStencilClass is host-scoped (its own doc: "another sc- class may be a consumer's"), so it
|
|
355
|
+
// only applies to pds-* elements — the same check keepPineHydrated makes before using it.
|
|
356
|
+
if (!el.localName.startsWith('pds-'))
|
|
357
|
+
return;
|
|
358
|
+
// Not `el.className`: on an SVG element that's an SVGAnimatedString, not a string,
|
|
359
|
+
// so classNamesOf would silently drop its classes from the comparison. The `class`
|
|
360
|
+
// attribute is a plain string on every element, SVG included.
|
|
361
|
+
const kept = classNamesOf(el.getAttribute('class') || '').filter((name) => !isStencilClass(el, name));
|
|
362
|
+
if (kept.length === 0) {
|
|
363
|
+
el.removeAttribute('class');
|
|
364
|
+
}
|
|
365
|
+
else {
|
|
366
|
+
el.setAttribute('class', kept.join(' '));
|
|
367
|
+
}
|
|
368
|
+
});
|
|
369
|
+
return clone.innerHTML;
|
|
370
|
+
}
|
|
371
|
+
stopContentSync() {
|
|
372
|
+
if (this.slotMutationObserver !== null) {
|
|
373
|
+
this.slotMutationObserver.disconnect();
|
|
374
|
+
this.slotMutationObserver = null;
|
|
375
|
+
}
|
|
376
|
+
if (this.contentSyncFrame !== null) {
|
|
377
|
+
cancelAnimationFrame(this.contentSyncFrame);
|
|
378
|
+
this.contentSyncFrame = null;
|
|
379
|
+
}
|
|
310
380
|
}
|
|
311
381
|
removePortal() {
|
|
382
|
+
this.stopContentSync();
|
|
312
383
|
// Stop Floating UI's autoUpdate
|
|
313
384
|
if (this.stopAutoUpdate !== null) {
|
|
314
385
|
this.stopAutoUpdate();
|
|
@@ -340,12 +411,13 @@ export class PdsTooltip {
|
|
|
340
411
|
this.triggerEl.removeAttribute('aria-describedby');
|
|
341
412
|
}
|
|
342
413
|
this.contentDiv = null;
|
|
414
|
+
this.lastCopiedHtml = null;
|
|
343
415
|
}
|
|
344
416
|
render() {
|
|
345
417
|
const hostId = this.componentId || undefined;
|
|
346
|
-
return (h(Host, { key: '
|
|
418
|
+
return (h(Host, { key: '067eda3089732c6a23032bb087182e6dcd0330fa', id: hostId, class: { 'pds-tooltip--is-open': this.opened } }, h("span", { key: '54f6f233c937f048f119df969630af530b10de25', class: "pds-tooltip__trigger", onMouseEnter: this.handleShow, onMouseLeave: this.handleHide,
|
|
347
419
|
/* focusin/out bubble; ensure keyboard users see tooltips */
|
|
348
|
-
onFocusin: this.handleShow, onFocusout: this.handleHide, ref: el => this.triggerEl = el }, h("slot", { key: '
|
|
420
|
+
onFocusin: this.handleShow, onFocusout: this.handleHide, ref: el => this.triggerEl = el }, h("slot", { key: 'f8019985ad9fd27deb388e35c43bf2e227ff9c02' })), h("div", { key: '072c4e578aebb99cd213901369a57d7c74734ad9', class: "pds-tooltip__content-slot-wrapper", hidden: true }, h("slot", { key: '22bc45dfb56567f53a608ce2033b062363793450', name: "content" }))));
|
|
349
421
|
}
|
|
350
422
|
static get is() { return "pds-tooltip"; }
|
|
351
423
|
static get originalStyleUrls() {
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ARIA attributes that take ID references, and the element-reflection property each is forwarded
|
|
3
|
+
* through. An ID on a host can't reach an element inside its shadow root, so a component that
|
|
4
|
+
* delegates focus forwards the elements the IDs point at instead. A browser without ARIA element
|
|
5
|
+
* reflection gets none of them.
|
|
6
|
+
*/
|
|
7
|
+
export const ARIA_REFERENCE_PROPERTIES = {
|
|
8
|
+
'aria-controls': 'ariaControlsElements',
|
|
9
|
+
'aria-describedby': 'ariaDescribedByElements',
|
|
10
|
+
'aria-labelledby': 'ariaLabelledByElements',
|
|
11
|
+
};
|
|
12
|
+
export const ARIA_REFERENCE_ATTRIBUTES = Object.keys(ARIA_REFERENCE_PROPERTIES);
|
|
13
|
+
/**
|
|
14
|
+
* Finds an element by ID in the host's tree, then in each shadow root that contains it, so a host
|
|
15
|
+
* inside another component's shadow root still reaches, say, a popover portal on document.body.
|
|
16
|
+
* The closest root wins when an ID repeats.
|
|
17
|
+
*/
|
|
18
|
+
export const findInAncestorRoots = (host, id) => {
|
|
19
|
+
let root = host.getRootNode();
|
|
20
|
+
while (root instanceof ShadowRoot) {
|
|
21
|
+
const found = root.getElementById(id);
|
|
22
|
+
if (found)
|
|
23
|
+
return found;
|
|
24
|
+
root = root.host.getRootNode();
|
|
25
|
+
}
|
|
26
|
+
return root instanceof Document ? root.getElementById(id) : null;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Points the target's reflected ARIA properties at the elements the host's ID-reference attributes
|
|
30
|
+
* name, or clears them. Run it again whenever the attributes or the referenced elements may have
|
|
31
|
+
* changed: element references don't follow an ID to a node added or replaced later.
|
|
32
|
+
*/
|
|
33
|
+
export const forwardAriaReferences = (host, target) => {
|
|
34
|
+
Object.entries(ARIA_REFERENCE_PROPERTIES).forEach(([attribute, property]) => {
|
|
35
|
+
var _a, _b;
|
|
36
|
+
if (!(property in target))
|
|
37
|
+
return;
|
|
38
|
+
const ids = (_b = (_a = host.getAttribute(attribute)) === null || _a === void 0 ? void 0 : _a.split(/\s+/).filter(Boolean)) !== null && _b !== void 0 ? _b : [];
|
|
39
|
+
const referenced = ids.map((id) => findInAncestorRoots(host, id)).filter((el) => el !== null);
|
|
40
|
+
target[property] = referenced.length > 0 ? referenced : null;
|
|
41
|
+
});
|
|
42
|
+
};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
const TABBABLE = [
|
|
2
|
+
'a[href]',
|
|
3
|
+
'area[href]',
|
|
4
|
+
'button',
|
|
5
|
+
'input:not([type="hidden"])',
|
|
6
|
+
'select',
|
|
7
|
+
'textarea',
|
|
8
|
+
'iframe',
|
|
9
|
+
'summary',
|
|
10
|
+
'[contenteditable]:not([contenteditable="false"])',
|
|
11
|
+
'[tabindex]',
|
|
12
|
+
].join(',');
|
|
13
|
+
/**
|
|
14
|
+
* Collects the tabbable elements under `root` in focus order, walking into open shadow roots and
|
|
15
|
+
* following slots, so a component's own controls (the input inside pds-combobox or pds-textarea)
|
|
16
|
+
* count without being registered here by tag name. Positive tabindex values are not reordered,
|
|
17
|
+
* and a closed shadow root can't be seen into.
|
|
18
|
+
*/
|
|
19
|
+
function collectTabbable(root, found) {
|
|
20
|
+
for (const child of Array.from(root.children))
|
|
21
|
+
visitTabbable(child, found);
|
|
22
|
+
}
|
|
23
|
+
// An editing host reports tabIndex -1 but is still a Tab stop; editable content inside it is not.
|
|
24
|
+
const isTabStop = (el) => { var _a; return el.tabIndex >= 0 || (el.isContentEditable && !el.hasAttribute('tabindex') && !((_a = el.parentElement) === null || _a === void 0 ? void 0 : _a.isContentEditable)); };
|
|
25
|
+
function visitTabbable(el, found) {
|
|
26
|
+
var _a, _b, _c, _d;
|
|
27
|
+
if (el.hasAttribute('inert'))
|
|
28
|
+
return;
|
|
29
|
+
if (el.localName === 'slot') {
|
|
30
|
+
const slot = el;
|
|
31
|
+
// Fallback content renders only when nothing at all is assigned, text included.
|
|
32
|
+
if (((_b = (_a = slot.assignedNodes) === null || _a === void 0 ? void 0 : _a.call(slot, { flatten: true })) !== null && _b !== void 0 ? _b : []).length === 0)
|
|
33
|
+
return collectTabbable(el, found);
|
|
34
|
+
for (const slotted of slot.assignedElements({ flatten: true }))
|
|
35
|
+
visitTabbable(slotted, found);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
// A delegatesFocus host passes focus to its first control, which the walk below finds.
|
|
39
|
+
const delegates = ((_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.delegatesFocus) === true;
|
|
40
|
+
if (el instanceof HTMLElement && !delegates && isTabStop(el) && el.matches(TABBABLE) && !el.matches(':disabled')) {
|
|
41
|
+
found.push(el);
|
|
42
|
+
}
|
|
43
|
+
// A shadow host's light children render only through its slots, which the walk reaches.
|
|
44
|
+
collectTabbable((_d = el.shadowRoot) !== null && _d !== void 0 ? _d : el, found);
|
|
45
|
+
}
|
|
46
|
+
/** The element as a radio in a named group, or `null`. */
|
|
47
|
+
const groupedRadio = (el) => el instanceof HTMLInputElement && el.type === 'radio' && el.name !== '' ? el : null;
|
|
48
|
+
/**
|
|
49
|
+
* Keeps one radio per named group, as the browser does: the checked one, or the first. The others
|
|
50
|
+
* are reached with the arrow keys, so they can't be the first or last stop of the trap.
|
|
51
|
+
*/
|
|
52
|
+
function oneRadioPerGroup(elements) {
|
|
53
|
+
// Radios group by name and form within one tree, so each shadow root starts its own groups.
|
|
54
|
+
const groups = [];
|
|
55
|
+
for (const el of elements) {
|
|
56
|
+
const radio = groupedRadio(el);
|
|
57
|
+
if (radio === null)
|
|
58
|
+
continue;
|
|
59
|
+
const group = groups.find(([first]) => first.name === radio.name && first.form === radio.form && first.getRootNode() === radio.getRootNode());
|
|
60
|
+
if (group)
|
|
61
|
+
group.push(radio);
|
|
62
|
+
else
|
|
63
|
+
groups.push([radio]);
|
|
64
|
+
}
|
|
65
|
+
const stops = new Set(groups.map((radios) => { var _a; return (_a = radios.find((radio) => radio.checked)) !== null && _a !== void 0 ? _a : radios[0]; }));
|
|
66
|
+
return elements.filter((el) => groupedRadio(el) === null || stops.has(el));
|
|
67
|
+
}
|
|
68
|
+
/** The controls Tab reaches in `root`, in order: visible ones, and one radio per group. */
|
|
69
|
+
export function tabbableIn(root) {
|
|
70
|
+
const found = [];
|
|
71
|
+
collectTabbable(root, found);
|
|
72
|
+
// checkVisibility() also drops an element inside a hidden ancestor, whose own computed
|
|
73
|
+
// display isn't none; such an element can't take focus.
|
|
74
|
+
const visible = found.filter(el => {
|
|
75
|
+
if (typeof el.checkVisibility === 'function')
|
|
76
|
+
return el.checkVisibility({ checkVisibilityCSS: true });
|
|
77
|
+
const style = window.getComputedStyle(el);
|
|
78
|
+
return style.display !== 'none' && style.visibility !== 'hidden';
|
|
79
|
+
});
|
|
80
|
+
return oneRadioPerGroup(visible);
|
|
81
|
+
}
|