@pine-ds/core 4.8.0 → 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/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.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 +2 -2
- package/dist/cjs/pds-alert.cjs.entry.js +17 -4
- package/dist/cjs/pds-avatar.cjs.entry.js +21 -11
- package/dist/cjs/pds-box.cjs.entry.js +4 -4
- package/dist/cjs/pds-button.cjs.entry.js +57 -25
- package/dist/cjs/pds-checkbox.cjs.entry.js +15 -7
- package/dist/cjs/pds-chip.cjs.entry.js +6 -6
- package/dist/cjs/pds-combobox.cjs.entry.js +41 -11
- package/dist/cjs/pds-container.cjs.entry.js +3 -3
- package/dist/cjs/pds-copytext.cjs.entry.js +6 -6
- package/dist/cjs/pds-datepicker.cjs.entry.js +5 -5
- 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 +4 -4
- package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +3 -3
- package/dist/cjs/pds-dropdown-menu.cjs.entry.js +5 -5
- package/dist/cjs/pds-filter.cjs.entry.js +3 -3
- 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 +5 -5
- package/dist/cjs/pds-link.cjs.entry.js +14 -5
- package/dist/cjs/pds-loader.cjs.entry.js +4 -4
- package/dist/cjs/pds-modal-content.cjs.entry.js +4 -4
- 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 +8 -88
- package/dist/cjs/pds-multiselect.cjs.entry.js +6 -6
- package/dist/cjs/pds-popover.cjs.entry.js +230 -153
- 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 +5 -5
- package/dist/cjs/pds-radio.cjs.entry.js +23 -10
- package/dist/cjs/pds-row.cjs.entry.js +4 -4
- package/dist/cjs/pds-select.cjs.entry.js +131 -20
- package/dist/cjs/pds-sortable-item.cjs.entry.js +4 -4
- package/dist/cjs/pds-sortable.cjs.entry.js +4 -4
- package/dist/cjs/pds-switch.cjs.entry.js +6 -6
- 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 +4 -4
- 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 +7 -7
- 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-BtuiXLV0.js → truncation-tooltip-O5nQmXPw.js} +1 -1
- 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 +41 -9
- 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 +13 -23
- 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 +1 -1
- package/dist/collection/components/pds-combobox/pds-combobox.css +33 -0
- package/dist/collection/components/pds-combobox/pds-combobox.js +60 -7
- 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-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.js +24 -2
- 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 +1 -1
- 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 +2 -2
- 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 +4 -84
- package/dist/collection/components/pds-modal/test/mock-pds-modal.js +1 -1
- package/dist/collection/components/pds-multiselect/pds-multiselect.js +3 -3
- package/dist/collection/components/pds-popover/pds-popover.css +6 -0
- package/dist/collection/components/pds-popover/pds-popover.js +226 -149
- 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 +3 -3
- 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-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/docs.json +244 -7
- 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-BWDu62Mo.js → index-m3pqpeWg.js} +1 -1
- 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 +22 -12
- package/dist/esm/pds-box.entry.js +4 -4
- package/dist/esm/pds-button.entry.js +58 -26
- package/dist/esm/pds-checkbox.entry.js +16 -8
- package/dist/esm/pds-chip.entry.js +7 -7
- package/dist/esm/pds-combobox.entry.js +41 -11
- 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 +4 -4
- package/dist/esm/pds-dropdown-menu-separator.entry.js +3 -3
- package/dist/esm/pds-dropdown-menu.entry.js +5 -5
- 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 +4 -4
- 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 +6 -86
- package/dist/esm/pds-multiselect.entry.js +7 -7
- package/dist/esm/pds-popover.entry.js +230 -153
- 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-FaW67DiY.js → truncation-tooltip-D_gvhB9r.js} +1 -1
- 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-BWDu62Mo.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-FaW67DiY.js → truncation-tooltip-D_gvhB9r.js} +1 -1
- 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-158b2f51.entry.js → p-07b4524e.entry.js} +1 -1
- package/dist/pine-core/{p-4bfc8b3e.system.entry.js → p-08bbd3e6.system.entry.js} +1 -1
- package/dist/pine-core/{p-d3d69ca4.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-acca5f7b.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-ef13f665.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-719542e1.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-c97bfac9.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-3c977d8d.system.entry.js → p-38b87aa2.system.entry.js} +1 -1
- package/dist/pine-core/{p-25ea48d1.entry.js → p-3afb1208.entry.js} +1 -1
- package/dist/pine-core/{p-9df5e204.entry.js → p-3b5b8f73.entry.js} +1 -1
- package/dist/pine-core/{p-8c8cc079.system.entry.js → p-3cc19ea8.system.entry.js} +1 -1
- package/dist/pine-core/{p-ca4ee736.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-5cfd4d41.system.entry.js → p-5967d9fa.system.entry.js} +1 -1
- package/dist/pine-core/{p-5870b092.system.entry.js → p-5c46553f.system.entry.js} +1 -1
- package/dist/pine-core/{p-ea340c55.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-90d5edc6.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-332590c7.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-121612a7.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-ea8f5d29.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-62433f32.entry.js → p-89fefe36.entry.js} +1 -1
- package/dist/pine-core/{p-cccfe60f.system.entry.js → p-8b97dd57.system.entry.js} +1 -1
- package/dist/pine-core/{p-0092444c.system.entry.js → p-9201b497.system.entry.js} +1 -1
- package/dist/pine-core/{p-631f5bcc.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-ee0e30bf.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-jrkGLEPe.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-D04W0cAO.system.js → p-D52aRqFx.system.js} +1 -1
- package/dist/pine-core/p-DCKBKRUy.js +1 -0
- package/dist/pine-core/p-DXO1yd32.system.js +1 -0
- package/dist/pine-core/{p-ClDiSG97.system.js → p-DaCT2ssj.system.js} +1 -1
- package/dist/pine-core/{p-295f64ea.entry.js → p-a2078add.entry.js} +1 -1
- package/dist/pine-core/{p-f3067d90.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-0af0d752.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-bdac8f2b.entry.js → p-bdde1e53.entry.js} +1 -1
- 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-8e3ff75d.entry.js → p-c02a32ec.entry.js} +1 -1
- package/dist/pine-core/p-c1da80e5.entry.js +1 -0
- package/dist/pine-core/{p-eaf85be6.system.entry.js → p-c233866c.system.entry.js} +1 -1
- package/dist/pine-core/{p-ecc7a531.system.entry.js → p-cb560aab.system.entry.js} +1 -1
- package/dist/pine-core/{p-8c588ca0.entry.js → p-ce554098.entry.js} +1 -1
- package/dist/pine-core/p-ced6a814.system.entry.js +1 -0
- package/dist/pine-core/{p-9aaedded.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-047433a4.system.entry.js → p-e1fdd53a.system.entry.js} +1 -1
- package/dist/pine-core/{p-8987fd45.system.entry.js → p-e70cb112.system.entry.js} +1 -1
- package/dist/pine-core/{p-b9d145f8.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-138b278b.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-c483997a.entry.js → p-f2c487e6.entry.js} +1 -1
- package/dist/pine-core/p-f549f2bc.entry.js +1 -0
- package/dist/pine-core/{p-717323e4.entry.js → p-fc743f6e.entry.js} +1 -1
- package/dist/pine-core/{p-BWDu62Mo.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 +2 -2
- 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 +7 -0
- package/dist/types/components/pds-link/pds-link.d.ts +8 -0
- package/dist/types/components/pds-popover/pds-popover.d.ts +44 -20
- 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 +96 -8
- package/dist/types/utils/aria-references.d.ts +24 -0
- package/dist/types/utils/tabbable.d.ts +2 -0
- package/dist/vscode.html-data.json +79 -7
- package/hydrate/index.js +724 -337
- package/hydrate/index.mjs +724 -337
- package/package.json +2 -2
- package/dist/pine-core/p-00a50de5.system.entry.js +0 -3
- package/dist/pine-core/p-049f126a.entry.js +0 -1
- package/dist/pine-core/p-089c3e60.entry.js +0 -1
- package/dist/pine-core/p-17f97f1a.entry.js +0 -1
- package/dist/pine-core/p-19ba2788.system.entry.js +0 -1
- package/dist/pine-core/p-208c7dbf.entry.js +0 -1
- package/dist/pine-core/p-29cd4113.system.entry.js +0 -1
- package/dist/pine-core/p-2cb5483a.system.entry.js +0 -1
- package/dist/pine-core/p-36cb4bf6.entry.js +0 -1
- package/dist/pine-core/p-3d51891a.entry.js +0 -1
- package/dist/pine-core/p-432d5ec7.entry.js +0 -1
- package/dist/pine-core/p-44f546ae.entry.js +0 -1
- package/dist/pine-core/p-5442d983.system.entry.js +0 -1
- package/dist/pine-core/p-5833a072.system.entry.js +0 -1
- package/dist/pine-core/p-602c197f.entry.js +0 -1
- package/dist/pine-core/p-73f931a1.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-86040cac.system.entry.js +0 -1
- package/dist/pine-core/p-875b0436.system.entry.js +0 -1
- package/dist/pine-core/p-884cb31d.system.entry.js +0 -1
- package/dist/pine-core/p-8cc302aa.system.entry.js +0 -1
- package/dist/pine-core/p-91f60173.entry.js +0 -1
- package/dist/pine-core/p-9265497e.system.entry.js +0 -1
- package/dist/pine-core/p-94593f20.system.entry.js +0 -1
- package/dist/pine-core/p-99459e27.entry.js +0 -1
- package/dist/pine-core/p-99fdf70f.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-a826f290.entry.js +0 -1
- package/dist/pine-core/p-acce8eb2.entry.js +0 -1
- package/dist/pine-core/p-aff411d0.entry.js +0 -1
- package/dist/pine-core/p-b182f806.entry.js +0 -2
- package/dist/pine-core/p-bb68431a.entry.js +0 -1
- package/dist/pine-core/p-be9b6e63.system.entry.js +0 -1
- package/dist/pine-core/p-bf30dec0.entry.js +0 -1
- package/dist/pine-core/p-c4e12f0a.entry.js +0 -1
- package/dist/pine-core/p-e0917a26.entry.js +0 -1
- package/dist/pine-core/p-ea4d4741.system.entry.js +0 -1
|
@@ -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"; }
|
|
@@ -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
|
+
}
|