@pine-ds/core 4.11.0 → 4.12.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/aria-references.js +1 -0
- package/components/attributes.js +1 -1
- package/components/index2.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 +2 -2
- package/components/pds-copytext.js +1 -1
- package/components/pds-datepicker.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-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-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-radio-group.js +1 -1
- package/components/pds-radio.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-table.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/sortable-label.js +1 -0
- package/components/truncation-tooltip.js +1 -1
- package/dist/cjs/aria-references-CUmqibnO.js +54 -0
- package/dist/cjs/{attributes-CW49XqaL.js → attributes-Cgbkw6gO.js} +3 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/pds-alert.cjs.entry.js +2 -2
- package/dist/cjs/pds-avatar.cjs.entry.js +3 -2
- package/dist/cjs/pds-box.cjs.entry.js +4 -3
- package/dist/cjs/pds-button.cjs.entry.js +25 -45
- package/dist/cjs/pds-checkbox.cjs.entry.js +4 -4
- package/dist/cjs/pds-chip.cjs.entry.js +3 -3
- package/dist/cjs/pds-combobox.cjs.entry.js +246 -106
- package/dist/cjs/pds-copytext.cjs.entry.js +3 -3
- package/dist/cjs/pds-datepicker.cjs.entry.js +44 -9
- package/dist/cjs/pds-drawer-content.cjs.entry.js +1 -1
- package/dist/cjs/pds-drawer-footer.cjs.entry.js +1 -1
- package/dist/cjs/pds-drawer-header.cjs.entry.js +1 -1
- package/dist/cjs/pds-drawer.cjs.entry.js +5 -7
- package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +85 -49
- package/dist/cjs/pds-dropdown-menu-separator.cjs.entry.js +2 -2
- package/dist/cjs/pds-dropdown-menu.cjs.entry.js +83 -10
- package/dist/cjs/pds-filter.cjs.entry.js +24 -2
- package/dist/cjs/pds-image.cjs.entry.js +148 -6
- package/dist/cjs/pds-input.cjs.entry.js +4 -4
- package/dist/cjs/pds-link.cjs.entry.js +4 -5
- package/dist/cjs/pds-loader.cjs.entry.js +4 -3
- package/dist/cjs/pds-modal-footer.cjs.entry.js +1 -1
- package/dist/cjs/pds-modal-header.cjs.entry.js +1 -1
- package/dist/cjs/pds-modal.cjs.entry.js +9 -12
- package/dist/cjs/pds-multiselect.cjs.entry.js +64 -18
- package/dist/cjs/pds-popover.cjs.entry.js +8 -6
- package/dist/cjs/pds-progress.cjs.entry.js +3 -3
- package/dist/cjs/pds-radio-group.cjs.entry.js +4 -4
- package/dist/cjs/pds-radio.cjs.entry.js +6 -6
- package/dist/cjs/pds-row.cjs.entry.js +1 -1
- package/dist/cjs/pds-select.cjs.entry.js +2 -2
- package/dist/cjs/pds-sortable-item.cjs.entry.js +28 -5
- package/dist/cjs/pds-sortable.cjs.entry.js +356 -4
- package/dist/cjs/pds-switch.cjs.entry.js +92 -15
- package/dist/cjs/pds-tab.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-body.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-cell.cjs.entry.js +24 -5
- package/dist/cjs/pds-table-head-cell.cjs.entry.js +59 -11
- package/dist/cjs/pds-table-head.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-row.cjs.entry.js +1 -1
- package/dist/cjs/pds-table.cjs.entry.js +260 -5
- package/dist/cjs/pds-tabpanel.cjs.entry.js +1 -1
- package/dist/cjs/pds-tabs.cjs.entry.js +3 -3
- package/dist/cjs/pds-text.cjs.entry.js +5 -3
- package/dist/cjs/pds-textarea.cjs.entry.js +8 -7
- package/dist/cjs/pds-toast.cjs.entry.js +8 -4
- package/dist/cjs/pds-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/pine-core.cjs.js +1 -1
- package/dist/cjs/sortable-label-DOcJrHvA.js +37 -0
- package/dist/cjs/{truncation-tooltip-Bikp7n9I.js → truncation-tooltip-CM5HgRHh.js} +69 -0
- package/dist/collection/components/pds-alert/pds-alert.css +0 -3
- package/dist/collection/components/pds-alert/pds-alert.js +3 -2
- package/dist/collection/components/pds-avatar/pds-avatar.js +7 -6
- package/dist/collection/components/pds-avatar/stories/pds-avatar.stories.js +1 -1
- package/dist/collection/components/pds-box/pds-box.css +1273 -1189
- package/dist/collection/components/pds-box/pds-box.js +180 -156
- package/dist/collection/components/pds-box/stories/pds-box.stories.js +79 -37
- package/dist/collection/components/pds-button/pds-button.js +26 -4
- package/dist/collection/components/pds-button/stories/pds-button.stories.js +25 -11
- package/dist/collection/components/pds-checkbox/pds-checkbox.js +10 -10
- package/dist/collection/components/pds-chip/pds-chip.js +3 -3
- package/dist/collection/components/pds-combobox/pds-combobox.css +162 -53
- package/dist/collection/components/pds-combobox/pds-combobox.js +261 -121
- package/dist/collection/components/pds-combobox/stories/pds-combobox.stories.js +35 -4
- package/dist/collection/components/pds-copytext/pds-copytext.js +2 -2
- package/dist/collection/components/pds-datepicker/pds-datepicker.js +3 -3
- package/dist/collection/components/pds-datepicker/presets.js +42 -7
- package/dist/collection/components/pds-drawer/pds-drawer-content/pds-drawer-content.js +2 -5
- package/dist/collection/components/pds-drawer/pds-drawer-footer/pds-drawer-footer.js +2 -1
- package/dist/collection/components/pds-drawer/pds-drawer-header/pds-drawer-header.js +2 -1
- package/dist/collection/components/pds-drawer/pds-drawer.js +8 -10
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.css +17 -8
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js +95 -62
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.js +3 -3
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.css +2 -0
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +84 -9
- package/dist/collection/components/pds-dropdown-menu/stories/pds-dropdown-menu.stories.js +24 -1
- package/dist/collection/components/pds-filters/pds-filter/pds-filter.css +2 -1
- package/dist/collection/components/pds-filters/pds-filter/pds-filter.js +24 -7
- package/dist/collection/components/pds-image/image-interface.js +1 -0
- package/dist/collection/components/pds-image/pds-image.css +11 -0
- package/dist/collection/components/pds-image/pds-image.js +249 -8
- package/dist/collection/components/pds-image/stories/pds-image.stories.js +117 -1
- package/dist/collection/components/pds-input/pds-input.js +14 -9
- package/dist/collection/components/pds-link/pds-link.js +10 -14
- package/dist/collection/components/pds-link/stories/pds-link.stories.js +6 -2
- package/dist/collection/components/pds-loader/pds-loader.js +5 -4
- package/dist/collection/components/pds-modal/pds-modal-footer/pds-modal-footer.js +2 -1
- package/dist/collection/components/pds-modal/pds-modal-header/pds-modal-header.js +2 -1
- package/dist/collection/components/pds-modal/pds-modal.js +11 -13
- package/dist/collection/components/pds-modal/stories/pds-modal.stories.js +7 -7
- package/dist/collection/components/pds-multiselect/pds-multiselect.css +2 -2
- package/dist/collection/components/pds-multiselect/pds-multiselect.js +63 -18
- package/dist/collection/components/pds-popover/pds-popover.css +1 -1
- package/dist/collection/components/pds-popover/pds-popover.js +9 -7
- package/dist/collection/components/pds-progress/pds-progress.js +4 -4
- package/dist/collection/components/pds-radio/pds-radio.css +5 -1
- package/dist/collection/components/pds-radio/pds-radio.js +9 -9
- package/dist/collection/components/pds-radio/stories/pds-radio.stories.js +9 -9
- package/dist/collection/components/pds-radio-group/pds-radio-group.js +7 -7
- package/dist/collection/components/pds-radio-group/stories/pds-radio-group.stories.js +3 -3
- package/dist/collection/components/pds-row/stories/pds-row.stories.js +15 -14
- package/dist/collection/components/pds-select/pds-select.js +7 -4
- package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.css +38 -0
- package/dist/collection/components/pds-sortable/pds-sortable-item/pds-sortable-item.js +47 -5
- package/dist/collection/components/pds-sortable/pds-sortable.js +481 -5
- package/dist/collection/components/pds-sortable/sortable-label.js +33 -0
- package/dist/collection/components/pds-sortable/stories/pds-sortable.stories.js +27 -0
- package/dist/collection/components/pds-switch/pds-switch.js +114 -17
- package/dist/collection/components/pds-switch/stories/pds-switch.stories.js +79 -0
- package/dist/collection/components/pds-table/pds-table-body/pds-table-body.js +4 -1
- package/dist/collection/components/pds-table/pds-table-cell/pds-table-cell.js +47 -4
- package/dist/collection/components/pds-table/pds-table-head/pds-table-head.js +6 -2
- package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.css +11 -0
- package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +98 -10
- package/dist/collection/components/pds-table/pds-table-row/pds-table-row.js +5 -1
- package/dist/collection/components/pds-table/pds-table.css +8 -0
- package/dist/collection/components/pds-table/pds-table.js +295 -7
- package/dist/collection/components/pds-table/stories/pds-table.stories.js +131 -6
- package/dist/collection/components/pds-tabs/pds-tabs.js +3 -3
- package/dist/collection/components/pds-tabs/stories/pds-tabs.stories.js +1 -1
- package/dist/collection/components/pds-text/pds-text.js +5 -3
- package/dist/collection/components/pds-textarea/pds-textarea.js +16 -14
- package/dist/collection/components/pds-textarea/stories/pds-textarea.stories.js +2 -13
- package/dist/collection/components/pds-toast/pds-toast.css +4 -3
- package/dist/collection/components/pds-toast/pds-toast.js +9 -5
- package/dist/collection/components/pds-toast/stories/pds-toast.stories.js +2 -2
- package/dist/collection/components/pds-tooltip/pds-tooltip.css +2 -1
- package/dist/collection/components/pds-tooltip/stories/pds-tooltip.stories.js +17 -17
- package/dist/collection/utils/aria-references.js +9 -3
- package/dist/collection/utils/truncation-tooltip.js +67 -0
- package/dist/docs.json +1124 -374
- package/dist/esm/aria-references-CNn1lObg.js +50 -0
- package/dist/esm/{attributes-DkeVeN0g.js → attributes-CD8knu3a.js} +3 -0
- package/dist/esm/{index-DvN3tyZp.js → index-B0DXTeeV.js} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/pds-accordion.entry.js +1 -1
- package/dist/esm/pds-alert.entry.js +2 -2
- package/dist/esm/pds-avatar.entry.js +4 -3
- package/dist/esm/pds-box.entry.js +4 -3
- package/dist/esm/pds-button.entry.js +24 -44
- package/dist/esm/pds-checkbox.entry.js +5 -5
- package/dist/esm/pds-chip.entry.js +4 -4
- package/dist/esm/pds-combobox.entry.js +246 -106
- package/dist/esm/pds-copytext.entry.js +4 -4
- package/dist/esm/pds-datepicker.entry.js +45 -10
- package/dist/esm/pds-drawer-content.entry.js +1 -1
- package/dist/esm/pds-drawer-footer.entry.js +1 -1
- package/dist/esm/pds-drawer-header.entry.js +1 -1
- package/dist/esm/pds-drawer.entry.js +5 -7
- package/dist/esm/pds-dropdown-menu-item.entry.js +85 -49
- package/dist/esm/pds-dropdown-menu-separator.entry.js +2 -2
- package/dist/esm/pds-dropdown-menu.entry.js +84 -11
- package/dist/esm/pds-filter.entry.js +25 -3
- package/dist/esm/pds-image.entry.js +149 -7
- package/dist/esm/pds-input.entry.js +5 -5
- package/dist/esm/pds-link.entry.js +5 -6
- package/dist/esm/pds-loader.entry.js +4 -3
- package/dist/esm/pds-modal-footer.entry.js +1 -1
- package/dist/esm/pds-modal-header.entry.js +1 -1
- package/dist/esm/pds-modal.entry.js +9 -12
- package/dist/esm/pds-multiselect.entry.js +65 -19
- package/dist/esm/pds-popover.entry.js +8 -6
- package/dist/esm/pds-progress.entry.js +3 -3
- package/dist/esm/pds-radio-group.entry.js +5 -5
- package/dist/esm/pds-radio.entry.js +7 -7
- package/dist/esm/pds-row.entry.js +1 -1
- package/dist/esm/pds-select.entry.js +3 -3
- package/dist/esm/pds-sortable-item.entry.js +29 -6
- package/dist/esm/pds-sortable.entry.js +357 -5
- package/dist/esm/pds-switch.entry.js +94 -17
- package/dist/esm/pds-tab.entry.js +1 -1
- package/dist/esm/pds-table-body.entry.js +1 -1
- package/dist/esm/pds-table-cell.entry.js +24 -5
- package/dist/esm/pds-table-head-cell.entry.js +60 -12
- package/dist/esm/pds-table-head.entry.js +1 -1
- package/dist/esm/pds-table-row.entry.js +1 -1
- package/dist/esm/pds-table.entry.js +261 -6
- package/dist/esm/pds-tabpanel.entry.js +1 -1
- package/dist/esm/pds-tabs.entry.js +3 -3
- package/dist/esm/pds-text.entry.js +5 -3
- package/dist/esm/pds-textarea.entry.js +9 -8
- package/dist/esm/pds-toast.entry.js +8 -4
- package/dist/esm/pds-tooltip.entry.js +1 -1
- package/dist/esm/pine-core.js +1 -1
- package/dist/esm/sortable-label-PItnzVVR.js +35 -0
- package/dist/esm/{truncation-tooltip-DBcPipr9.js → truncation-tooltip-CkIWm6Z-.js} +68 -1
- package/dist/esm-es5/aria-references-CNn1lObg.js +1 -0
- package/dist/esm-es5/{attributes-DkeVeN0g.js → attributes-CD8knu3a.js} +1 -1
- package/dist/esm-es5/{index-DvN3tyZp.js → index-B0DXTeeV.js} +1 -1
- package/dist/esm-es5/loader.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 +1 -1
- package/dist/esm-es5/pds-copytext.entry.js +1 -1
- package/dist/esm-es5/pds-datepicker.entry.js +1 -1
- package/dist/esm-es5/pds-drawer-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-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-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-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/sortable-label-PItnzVVR.js +1 -0
- package/dist/esm-es5/truncation-tooltip-CkIWm6Z-.js +1 -0
- package/dist/pine-core/{p-f834cb07.system.entry.js → p-00891b8d.system.entry.js} +1 -1
- package/dist/pine-core/{p-3f8bd3fb.system.entry.js → p-053ff8eb.system.entry.js} +1 -1
- package/dist/pine-core/p-08b9e3ad.entry.js +1 -0
- package/dist/pine-core/{p-4d98bc0c.system.entry.js → p-0a7570dd.system.entry.js} +1 -1
- package/dist/pine-core/{p-d018dc60.system.entry.js → p-0ac4262e.system.entry.js} +1 -1
- package/dist/pine-core/{p-89d38a82.system.entry.js → p-0e1b8bd1.system.entry.js} +1 -1
- package/dist/pine-core/{p-e1d1b5d8.entry.js → p-12fdc65f.entry.js} +1 -1
- package/dist/pine-core/{p-d48fe5a0.system.entry.js → p-16fceef6.system.entry.js} +1 -1
- package/dist/pine-core/p-1765a41b.system.entry.js +1 -0
- package/dist/pine-core/{p-a594c41f.entry.js → p-18524c25.entry.js} +1 -1
- package/dist/pine-core/p-1a013a5c.system.entry.js +1 -0
- package/dist/pine-core/{p-2b9622c1.system.entry.js → p-1ab52531.system.entry.js} +1 -1
- package/dist/pine-core/p-1c584a20.entry.js +1 -0
- package/dist/pine-core/p-1edef412.entry.js +1 -0
- package/dist/pine-core/{p-5946203c.entry.js → p-1f998e3e.entry.js} +1 -1
- package/dist/pine-core/{p-39e57657.entry.js → p-1fb1ca3d.entry.js} +1 -1
- package/dist/pine-core/p-2b6becc2.entry.js +1 -0
- package/dist/pine-core/p-2cc7c682.entry.js +1 -0
- package/dist/pine-core/{p-639acef8.system.entry.js → p-2ddcd845.system.entry.js} +1 -1
- package/dist/pine-core/{p-6a1aa8d3.entry.js → p-2f15e85f.entry.js} +1 -1
- package/dist/pine-core/{p-67f795d5.system.entry.js → p-33da254f.system.entry.js} +1 -1
- package/dist/pine-core/{p-c6a9e62c.system.entry.js → p-3fc9ef80.system.entry.js} +1 -1
- package/dist/pine-core/p-4125a4a6.system.entry.js +1 -0
- package/dist/pine-core/p-47df9e9f.system.entry.js +3 -0
- package/dist/pine-core/p-51680c9c.system.entry.js +1 -0
- package/dist/pine-core/p-55535481.system.entry.js +1 -0
- package/dist/pine-core/p-55a4659a.system.entry.js +1 -0
- package/dist/pine-core/{p-c5e1eb3c.system.entry.js → p-57af5c29.system.entry.js} +1 -1
- package/dist/pine-core/p-57edd301.system.entry.js +1 -0
- package/dist/pine-core/{p-bfa34194.entry.js → p-5d582798.entry.js} +1 -1
- package/dist/pine-core/p-5db87fda.system.entry.js +1 -0
- package/dist/pine-core/{p-19cf1d91.system.entry.js → p-5eb0c78c.system.entry.js} +1 -1
- package/dist/pine-core/{p-42f70f93.system.entry.js → p-6017afb5.system.entry.js} +1 -1
- package/dist/pine-core/{p-63f85859.system.entry.js → p-60e65fe0.system.entry.js} +1 -1
- package/dist/pine-core/{p-973c3ac0.entry.js → p-627a94da.entry.js} +1 -1
- package/dist/pine-core/{p-a9d96e22.entry.js → p-68328afc.entry.js} +1 -1
- package/dist/pine-core/{p-bd7dc317.system.entry.js → p-72668673.system.entry.js} +1 -1
- package/dist/pine-core/p-72ff5ad2.system.entry.js +1 -0
- package/dist/pine-core/p-736ea7dd.entry.js +7 -0
- package/dist/pine-core/p-765f4207.entry.js +1 -0
- package/dist/pine-core/{p-2a18852f.entry.js → p-77530cf2.entry.js} +1 -1
- package/dist/pine-core/p-77a22399.entry.js +1 -0
- package/dist/pine-core/p-783127bf.entry.js +1 -0
- package/dist/pine-core/{p-d9719e37.entry.js → p-82f7eed1.entry.js} +1 -1
- package/dist/pine-core/{p-124a0a24.entry.js → p-84d4ae26.entry.js} +1 -1
- package/dist/pine-core/p-8deeda07.entry.js +1 -0
- package/dist/pine-core/{p-849ec281.system.entry.js → p-8e17a6d8.system.entry.js} +1 -1
- package/dist/pine-core/p-8e7e7bba.entry.js +1 -0
- package/dist/pine-core/{p-e82f758f.system.entry.js → p-907c69e9.system.entry.js} +1 -1
- package/dist/pine-core/{p-1415c988.system.entry.js → p-90f83a5b.system.entry.js} +1 -1
- package/dist/pine-core/p-97145eee.system.entry.js +1 -0
- package/dist/pine-core/{p-a09c9c5e.system.entry.js → p-9d983e09.system.entry.js} +1 -1
- package/dist/pine-core/{p-1e3ef425.entry.js → p-9e005996.entry.js} +1 -1
- package/dist/pine-core/{p-DvN3tyZp.js → p-B0DXTeeV.js} +1 -1
- package/dist/pine-core/{p-CNXspDYs.system.js → p-BlJQebvG.system.js} +1 -1
- package/dist/pine-core/p-C35-349-.system.js +1 -0
- package/dist/pine-core/{p-vFsJv75D.system.js → p-CIe1DGXa.system.js} +1 -1
- package/dist/pine-core/p-CNn1lObg.js +1 -0
- package/dist/pine-core/p-CQJ44c6o.system.js +1 -0
- package/dist/pine-core/p-Dv9QBmIF.js +1 -0
- package/dist/pine-core/p-PItnzVVR.js +1 -0
- package/dist/pine-core/p-VPGVqK3P.system.js +1 -0
- package/dist/pine-core/p-XK45dzWR.system.js +1 -1
- package/dist/pine-core/p-a149af29.entry.js +1 -0
- package/dist/pine-core/p-a20d9eca.system.entry.js +1 -0
- package/dist/pine-core/{p-f6f4fd42.entry.js → p-a5782d99.entry.js} +1 -1
- package/dist/pine-core/p-a5e9c583.entry.js +1 -0
- package/dist/pine-core/{p-4d47023c.system.entry.js → p-a9eaf160.system.entry.js} +1 -1
- package/dist/pine-core/{p-143b33a6.entry.js → p-b00b07e3.entry.js} +1 -1
- package/dist/pine-core/{p-c7a53c4f.entry.js → p-b7b29392.entry.js} +1 -1
- package/dist/pine-core/p-b96bdff6.entry.js +1 -0
- package/dist/pine-core/{p-f71d71ca.entry.js → p-bbd9ab75.entry.js} +1 -1
- package/dist/pine-core/p-bdab6c9f.entry.js +1 -0
- package/dist/pine-core/p-biShcgLI.js +1 -0
- package/dist/pine-core/{p-548bce53.system.entry.js → p-c12b5cd7.system.entry.js} +1 -1
- package/dist/pine-core/p-c1dc7692.entry.js +1 -0
- package/dist/pine-core/p-c76d8b9e.system.entry.js +1 -0
- package/dist/pine-core/{p-590df41a.entry.js → p-c89ea2d3.entry.js} +1 -1
- package/dist/pine-core/{p-d920d759.system.entry.js → p-c9630934.system.entry.js} +1 -1
- package/dist/pine-core/{p-6f4ab1ea.system.entry.js → p-cb9227f6.system.entry.js} +1 -1
- package/dist/pine-core/p-ceef0eb1.entry.js +1 -0
- package/dist/pine-core/p-d1283e8d.entry.js +1 -0
- package/dist/pine-core/p-d676926d.system.entry.js +1 -0
- package/dist/pine-core/{p-61cfdbb2.entry.js → p-d7d7a4e1.entry.js} +1 -1
- package/dist/pine-core/p-d85d50cb.entry.js +1 -0
- package/dist/pine-core/p-daa802f1.entry.js +2 -0
- package/dist/pine-core/p-ddf4b9b5.system.entry.js +1 -0
- package/dist/pine-core/p-de3b319e.system.entry.js +8 -0
- package/dist/pine-core/{p-cb9baf78.system.entry.js → p-e00777da.system.entry.js} +1 -1
- package/dist/pine-core/p-e2541eeb.entry.js +1 -0
- package/dist/pine-core/{p-01f1cdaf.system.entry.js → p-e2a1a49a.system.entry.js} +1 -1
- package/dist/pine-core/p-e4ebea88.system.entry.js +1 -0
- package/dist/pine-core/{p-947582e1.entry.js → p-e554bd64.entry.js} +1 -1
- package/dist/pine-core/{p-dd7ded84.entry.js → p-e6427c87.entry.js} +1 -1
- package/dist/pine-core/{p-50ddadbf.entry.js → p-e72e8b8f.entry.js} +1 -1
- package/dist/pine-core/p-e92d0f0f.system.entry.js +1 -0
- package/dist/pine-core/{p-9b32727a.system.entry.js → p-eab165b9.system.entry.js} +1 -1
- package/dist/pine-core/p-eabc4bd8.entry.js +1 -0
- package/dist/pine-core/p-ef9f84f2.system.entry.js +1 -0
- package/dist/pine-core/{p-c9ae7964.entry.js → p-f026af73.entry.js} +1 -1
- package/dist/pine-core/{p-99530cb5.entry.js → p-f0509c8e.entry.js} +1 -1
- package/dist/pine-core/p-f1252e72.system.entry.js +1 -0
- package/dist/pine-core/p-f3496fd1.entry.js +1 -0
- package/dist/pine-core/{p-eecd9ad8.system.entry.js → p-f90f4be7.system.entry.js} +1 -1
- package/dist/pine-core/p-f9bdaadd.system.entry.js +1 -0
- package/dist/pine-core/{p-128c04e7.entry.js → p-fda791df.entry.js} +1 -1
- package/dist/pine-core/p-fea4296d.entry.js +1 -0
- package/dist/pine-core/pine-core.esm.js +1 -1
- package/dist/types/components/pds-alert/pds-alert.d.ts +2 -1
- package/dist/types/components/pds-avatar/pds-avatar.d.ts +5 -4
- package/dist/types/components/pds-box/pds-box.d.ts +68 -57
- package/dist/types/components/pds-button/pds-button.d.ts +14 -3
- package/dist/types/components/pds-checkbox/pds-checkbox.d.ts +15 -8
- package/dist/types/components/pds-chip/pds-chip.d.ts +2 -2
- package/dist/types/components/pds-combobox/pds-combobox.d.ts +48 -11
- package/dist/types/components/pds-copytext/pds-copytext.d.ts +3 -1
- package/dist/types/components/pds-datepicker/datepicker-interface.d.ts +20 -4
- package/dist/types/components/pds-datepicker/pds-datepicker.d.ts +3 -2
- package/dist/types/components/pds-datepicker/presets.d.ts +3 -2
- package/dist/types/components/pds-drawer/pds-drawer-content/pds-drawer-content.d.ts +1 -4
- package/dist/types/components/pds-drawer/pds-drawer-footer/pds-drawer-footer.d.ts +1 -0
- package/dist/types/components/pds-drawer/pds-drawer-header/pds-drawer-header.d.ts +1 -0
- package/dist/types/components/pds-drawer/pds-drawer.d.ts +4 -6
- package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.d.ts +20 -16
- package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu-separator/pds-dropdown-menu-separator.d.ts +1 -1
- package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu.d.ts +7 -0
- package/dist/types/components/pds-filters/pds-filter/pds-filter.d.ts +6 -5
- package/dist/types/components/pds-image/image-interface.d.ts +12 -0
- package/dist/types/components/pds-image/pds-image.d.ts +69 -9
- package/dist/types/components/pds-input/pds-input.d.ts +17 -7
- package/dist/types/components/pds-link/pds-link.d.ts +8 -8
- package/dist/types/components/pds-loader/pds-loader.d.ts +3 -2
- package/dist/types/components/pds-modal/pds-modal-footer/pds-modal-footer.d.ts +1 -0
- package/dist/types/components/pds-modal/pds-modal-header/pds-modal-header.d.ts +1 -0
- package/dist/types/components/pds-modal/pds-modal.d.ts +7 -9
- package/dist/types/components/pds-multiselect/pds-multiselect.d.ts +14 -8
- package/dist/types/components/pds-popover/pds-popover.d.ts +2 -2
- package/dist/types/components/pds-progress/pds-progress.d.ts +2 -2
- package/dist/types/components/pds-radio/pds-radio.d.ts +6 -5
- package/dist/types/components/pds-radio-group/pds-radio-group.d.ts +5 -4
- package/dist/types/components/pds-select/pds-select.d.ts +9 -3
- package/dist/types/components/pds-sortable/pds-sortable-item/pds-sortable-item.d.ts +8 -2
- package/dist/types/components/pds-sortable/pds-sortable.d.ts +82 -1
- package/dist/types/components/pds-sortable/sortable-label.d.ts +7 -0
- package/dist/types/components/pds-switch/pds-switch.d.ts +17 -2
- package/dist/types/components/pds-table/pds-table-body/pds-table-body.d.ts +3 -0
- package/dist/types/components/pds-table/pds-table-cell/pds-table-cell.d.ts +10 -0
- package/dist/types/components/pds-table/pds-table-head/pds-table-head.d.ts +5 -1
- package/dist/types/components/pds-table/pds-table-head-cell/pds-table-head-cell.d.ts +21 -0
- package/dist/types/components/pds-table/pds-table-row/pds-table-row.d.ts +4 -0
- package/dist/types/components/pds-table/pds-table.d.ts +76 -2
- package/dist/types/components/pds-tabs/pds-tabs.d.ts +1 -1
- package/dist/types/components/pds-textarea/pds-textarea.d.ts +15 -13
- package/dist/types/components/pds-toast/pds-toast.d.ts +5 -1
- package/dist/types/components.d.ts +480 -325
- package/dist/types/utils/aria-references.d.ts +4 -0
- package/dist/types/utils/truncation-tooltip.d.ts +39 -0
- package/dist/types/utils/types.d.ts +3 -0
- package/dist/vscode.html-data.json +340 -134
- package/hydrate/index.js +1800 -353
- package/hydrate/index.mjs +1800 -353
- package/package.json +3 -3
- package/readme.md +26 -55
- package/dist/esm-es5/truncation-tooltip-DBcPipr9.js +0 -1
- package/dist/pine-core/p-07323107.entry.js +0 -1
- package/dist/pine-core/p-08b8e941.entry.js +0 -1
- package/dist/pine-core/p-0b7b3fc2.system.entry.js +0 -3
- package/dist/pine-core/p-0d5f0ab5.system.entry.js +0 -1
- package/dist/pine-core/p-14dedf01.system.entry.js +0 -1
- package/dist/pine-core/p-1ca8d183.entry.js +0 -1
- package/dist/pine-core/p-1f62bb71.entry.js +0 -7
- package/dist/pine-core/p-2dd30d12.entry.js +0 -1
- package/dist/pine-core/p-3359a935.entry.js +0 -1
- package/dist/pine-core/p-35s7h-dk.js +0 -1
- package/dist/pine-core/p-3610cb3b.entry.js +0 -1
- package/dist/pine-core/p-39276663.entry.js +0 -1
- package/dist/pine-core/p-3a1dc752.system.entry.js +0 -1
- package/dist/pine-core/p-42d43c3f.system.entry.js +0 -1
- package/dist/pine-core/p-4a90b9c8.system.entry.js +0 -1
- package/dist/pine-core/p-4cfe922b.entry.js +0 -1
- package/dist/pine-core/p-5f181694.system.entry.js +0 -1
- package/dist/pine-core/p-60a30975.system.entry.js +0 -1
- package/dist/pine-core/p-62aa6a78.system.entry.js +0 -1
- package/dist/pine-core/p-64bcb378.entry.js +0 -1
- package/dist/pine-core/p-724baba3.system.entry.js +0 -1
- package/dist/pine-core/p-72659a0e.system.entry.js +0 -1
- package/dist/pine-core/p-8ade17ce.entry.js +0 -1
- package/dist/pine-core/p-8e7f75e6.entry.js +0 -1
- package/dist/pine-core/p-8fb520df.entry.js +0 -1
- package/dist/pine-core/p-92115e88.entry.js +0 -1
- package/dist/pine-core/p-94c9b7d1.system.entry.js +0 -1
- package/dist/pine-core/p-97356d4b.entry.js +0 -1
- package/dist/pine-core/p-97653e60.entry.js +0 -1
- package/dist/pine-core/p-97b73359.entry.js +0 -1
- package/dist/pine-core/p-BZVUD2on.js +0 -1
- package/dist/pine-core/p-Dj-z_ugg.system.js +0 -1
- package/dist/pine-core/p-ad5208a4.system.entry.js +0 -1
- package/dist/pine-core/p-afc2f165.entry.js +0 -1
- package/dist/pine-core/p-bcc378ba.system.entry.js +0 -8
- package/dist/pine-core/p-c8a0b562.system.entry.js +0 -1
- package/dist/pine-core/p-d4968f9d.system.entry.js +0 -1
- package/dist/pine-core/p-d6f338e0.entry.js +0 -1
- package/dist/pine-core/p-da8b864a.entry.js +0 -2
- package/dist/pine-core/p-db7fb5a3.entry.js +0 -1
- package/dist/pine-core/p-de455073.system.entry.js +0 -1
- package/dist/pine-core/p-e3de6a1d.entry.js +0 -1
- package/dist/pine-core/p-e84fa9ed.entry.js +0 -1
- package/dist/pine-core/p-eb4f0daa.system.entry.js +0 -1
- package/dist/pine-core/p-eb56af4a.system.entry.js +0 -1
- package/dist/pine-core/p-ef0eba9b.system.entry.js +0 -1
- package/dist/pine-core/p-f11cce27.system.entry.js +0 -1
- package/dist/pine-core/p-f354dbac.entry.js +0 -1
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var index = require('./index-D9iJuJCP.js');
|
|
4
|
+
var closest = require('./closest-D0qyYtJ3.js');
|
|
4
5
|
var scroll = require('./scroll-2XcoE_6Q.js');
|
|
5
|
-
var truncationTooltip = require('./truncation-tooltip-
|
|
6
|
+
var truncationTooltip = require('./truncation-tooltip-CM5HgRHh.js');
|
|
6
7
|
require('./keep-hydrated-AKoh0DG4.js');
|
|
7
8
|
require('./floating-ui.dom-Dw41zbyY.js');
|
|
8
9
|
require('./portal-target-e8WQ6dLx.js');
|
|
@@ -39,14 +40,16 @@ const PdsTableCell = class {
|
|
|
39
40
|
};
|
|
40
41
|
}
|
|
41
42
|
componentWillRender() {
|
|
42
|
-
|
|
43
|
+
// The shadow-crossing `closest` util, not the native one -- a selectable row's checkbox
|
|
44
|
+
// cell lives inside pds-table-row's own shadow root, which native `closest` can't see past.
|
|
45
|
+
this.tableRef = closest.closest('pds-table', this.hostElement);
|
|
43
46
|
}
|
|
44
47
|
// Fires again each time the cell is moved (a sort re-appends every row), unlike componentDidLoad,
|
|
45
48
|
// so it re-binds what disconnectedCallback tore down. The tooltip binds to the host, which exists before load.
|
|
46
49
|
connectedCallback() {
|
|
47
50
|
if (!this.hasLoaded)
|
|
48
51
|
return;
|
|
49
|
-
this.tableRef =
|
|
52
|
+
this.tableRef = closest.closest('pds-table', this.hostElement);
|
|
50
53
|
this.cleanupScrollListener();
|
|
51
54
|
if (this.needsScrollShadow) {
|
|
52
55
|
this.setupScrollListener();
|
|
@@ -112,6 +115,22 @@ const PdsTableCell = class {
|
|
|
112
115
|
this.setupTimer = undefined;
|
|
113
116
|
}
|
|
114
117
|
this.setupRetries = 0; // Reset retry counter
|
|
118
|
+
// Without a listener there's no way to know the scroll position any more, so the shadow
|
|
119
|
+
// this drove shouldn't linger -- matters when a rebind tears this down without setting it
|
|
120
|
+
// back up (responsive turned off while scrolled), not just on disconnect.
|
|
121
|
+
this.tableScrolling = false;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Re-binds the scroll listener to the table's current responsive container. Called by
|
|
125
|
+
* `pds-table` after a live `responsive` toggle: the cell stays in light DOM across that change,
|
|
126
|
+
* so it never reconnects on its own and would otherwise keep listening to a container the
|
|
127
|
+
* table already replaced or removed.
|
|
128
|
+
*/
|
|
129
|
+
async rebindScrollListener() {
|
|
130
|
+
this.cleanupScrollListener();
|
|
131
|
+
if (this.needsScrollShadow) {
|
|
132
|
+
this.setupScrollListener();
|
|
133
|
+
}
|
|
115
134
|
}
|
|
116
135
|
handleTruncateChange(newValue) {
|
|
117
136
|
if (newValue) {
|
|
@@ -152,11 +171,11 @@ const PdsTableCell = class {
|
|
|
152
171
|
return classNames.join(' ');
|
|
153
172
|
}
|
|
154
173
|
render() {
|
|
155
|
-
return (index.h(index.Host, { key: '
|
|
174
|
+
return (index.h(index.Host, { key: 'bc40b70bcb8f1df7307df6c00e3b73427c8d5ff2', class: this.classNames(), role: "gridcell", part: "cell", style: this.tableRef &&
|
|
156
175
|
this.tableRef.fixedColumn &&
|
|
157
176
|
this.tableRef.selectable
|
|
158
177
|
? { '--fixed-cell-position': '40px' }
|
|
159
|
-
: {} }, index.h("slot", { key: '
|
|
178
|
+
: {} }, index.h("slot", { key: '418219bf8b870557f5f39ae6553db78fe7037389' })));
|
|
160
179
|
}
|
|
161
180
|
get hostElement() { return index.getElement(this); }
|
|
162
181
|
static get watchers() { return {
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
var index = require('./index-D9iJuJCP.js');
|
|
4
4
|
var index$1 = require('./index-BDnbr0DK.js');
|
|
5
|
+
var closest = require('./closest-D0qyYtJ3.js');
|
|
5
6
|
var scroll = require('./scroll-2XcoE_6Q.js');
|
|
6
7
|
require('./keep-hydrated-AKoh0DG4.js');
|
|
7
8
|
|
|
8
|
-
const pdsTableHeadCellCss = () => `:host{--border-head-cell-default:var(--pine-border-width-thin) solid var(--pine-color-border-subtle);--box-shadow-default:3px 3px 6px -2px rgba(0, 0, 0, 0.1);-webkit-border-after:var(--border-head-cell-default);border-block-end:var(--border-head-cell-default);color:var(--pine-color-text);display:table-cell;font-family:var(--pine-font-family-body);font-size:var(--pine-font-size);font-weight:var(--pine-font-weight-regular);letter-spacing:var(--pine-letter-spacing);line-height:var(--pine-line-height-body);padding:var(--pine-dimension-sm);position:relative;text-align:start;vertical-align:inherit}:host(.is-compact){padding-block:var(--pine-dimension-2xs)}:host(.is-fixed){background:var(--pine-color-background-container);inset-inline-start:var(--pine-dimension-none);position:-webkit-sticky;position:sticky;z-index:var(--pine-z-index-raised)}:host(.is-fixed.has-head-background){background-color:var(--pine-color-background-subtle)}:host(.has-head-border){-webkit-border-before:var(--border-head-cell-default);border-block-start:var(--border-head-cell-default)}:host-context([dir=rtl]){--box-shadow-default:-3px 3px 6px -2px rgba(0, 0, 0, 0.1)}:host(.has-scrolled.is-fixed){-webkit-box-shadow:var(--box-shadow-default);box-shadow:var(--box-shadow-default)}:host(.is-sortable){cursor:pointer}:host(.is-sortable) pds-icon{-webkit-margin-start:var(--pine-dimension-2xs);margin-inline-start:var(--pine-dimension-2xs);-webkit-padding-before:2px;padding-block-start:2px;position:absolute}:host(.is-sortable:hover),:host(.is-active){color:var(--pine-color-text-strong)}:host(.pds-table-head-cell--align-start){text-align:start}:host(.pds-table-head-cell--align-center){text-align:center}:host(.pds-table-head-cell--align-end){text-align:end}:host(.pds-table-head-cell--align-justify){text-align:justify}`;
|
|
9
|
+
const pdsTableHeadCellCss = () => `:host{--border-head-cell-default:var(--pine-border-width-thin) solid var(--pine-color-border-subtle);--box-shadow-default:3px 3px 6px -2px rgba(0, 0, 0, 0.1);-webkit-border-after:var(--border-head-cell-default);border-block-end:var(--border-head-cell-default);color:var(--pine-color-text);display:table-cell;font-family:var(--pine-font-family-body);font-size:var(--pine-font-size);font-weight:var(--pine-font-weight-regular);letter-spacing:var(--pine-letter-spacing);line-height:var(--pine-line-height-body);padding:var(--pine-dimension-sm);position:relative;text-align:start;vertical-align:inherit}:host(.has-width){-webkit-box-sizing:border-box;box-sizing:border-box;min-width:var(--pds-table-head-cell-width);width:var(--pds-table-head-cell-width)}:host(.has-auto-width){-webkit-box-sizing:border-box;box-sizing:border-box;width:var(--pds-table-head-cell-auto-floor-width, auto)}:host(.is-compact){padding-block:var(--pine-dimension-2xs)}:host(.is-fixed){background:var(--pine-color-background-container);inset-inline-start:var(--pine-dimension-none);position:-webkit-sticky;position:sticky;z-index:var(--pine-z-index-raised)}:host(.is-fixed.has-head-background){background-color:var(--pine-color-background-subtle)}:host(.has-head-border){-webkit-border-before:var(--border-head-cell-default);border-block-start:var(--border-head-cell-default)}:host-context([dir=rtl]){--box-shadow-default:-3px 3px 6px -2px rgba(0, 0, 0, 0.1)}:host(.has-scrolled.is-fixed){-webkit-box-shadow:var(--box-shadow-default);box-shadow:var(--box-shadow-default)}:host(.is-sortable){cursor:pointer}:host(.is-sortable) pds-icon{-webkit-margin-start:var(--pine-dimension-2xs);margin-inline-start:var(--pine-dimension-2xs);-webkit-padding-before:2px;padding-block-start:2px;position:absolute}:host(.is-sortable:hover),:host(.is-active){color:var(--pine-color-text-strong)}:host(.pds-table-head-cell--align-start){text-align:start}:host(.pds-table-head-cell--align-center){text-align:center}:host(.pds-table-head-cell--align-end){text-align:end}:host(.pds-table-head-cell--align-justify){text-align:justify}`;
|
|
9
10
|
|
|
10
11
|
const PdsTableHeadCell = class {
|
|
11
12
|
constructor(hostRef) {
|
|
@@ -13,6 +14,7 @@ const PdsTableHeadCell = class {
|
|
|
13
14
|
this.pdsTableSort = index.createEvent(this, "pdsTableSort");
|
|
14
15
|
this.scrollContainer = null;
|
|
15
16
|
this.setupRetries = 0;
|
|
17
|
+
this.hasLoaded = false;
|
|
16
18
|
/**
|
|
17
19
|
* The direction of sorting.
|
|
18
20
|
*/
|
|
@@ -104,22 +106,39 @@ const PdsTableHeadCell = class {
|
|
|
104
106
|
this.hostElement.classList.remove('is-active');
|
|
105
107
|
}
|
|
106
108
|
componentWillLoad() {
|
|
107
|
-
// Set initial references and state before first render
|
|
108
|
-
|
|
109
|
-
|
|
109
|
+
// Set initial references and state before first render. The shadow-crossing `closest`
|
|
110
|
+
// util, not the native one -- the select-all cell lives inside pds-table-head's own shadow
|
|
111
|
+
// root, which native `closest` can't see past.
|
|
112
|
+
this.tableRef = closest.closest('pds-table', this.hostElement);
|
|
113
|
+
const tableHead = closest.closest('pds-table-head', this.hostElement);
|
|
110
114
|
if (tableHead) {
|
|
111
115
|
this.hasHeadBorder = tableHead.hasAttribute('border');
|
|
112
116
|
this.hasHeadBackground = tableHead.hasAttribute('background');
|
|
113
117
|
}
|
|
114
118
|
}
|
|
119
|
+
// Fires again each time the cell is moved (such as a reparent or DOM morph), unlike
|
|
120
|
+
// componentDidLoad, so it re-binds what disconnectedCallback tore down.
|
|
121
|
+
connectedCallback() {
|
|
122
|
+
if (!this.hasLoaded)
|
|
123
|
+
return;
|
|
124
|
+
this.tableRef = closest.closest('pds-table', this.hostElement);
|
|
125
|
+
if (this.tableRef && this.tableRef.responsive && this.tableRef.fixedColumn) {
|
|
126
|
+
this.setupScrollListener();
|
|
127
|
+
}
|
|
128
|
+
this.setupHeadObserver();
|
|
129
|
+
}
|
|
115
130
|
componentDidLoad() {
|
|
131
|
+
this.hasLoaded = true;
|
|
116
132
|
if (this.tableRef && this.tableRef.responsive && this.tableRef.fixedColumn) {
|
|
117
133
|
// For responsive tables with fixed columns, set up scroll detection
|
|
118
134
|
// This enables the first column header to show a shadow when the table is scrolled horizontally
|
|
119
135
|
this.setupScrollListener();
|
|
120
136
|
}
|
|
121
|
-
|
|
122
|
-
|
|
137
|
+
this.setupHeadObserver();
|
|
138
|
+
}
|
|
139
|
+
// Watches the parent table-head's border and background attributes.
|
|
140
|
+
setupHeadObserver() {
|
|
141
|
+
const tableHead = closest.closest('pds-table-head', this.hostElement);
|
|
123
142
|
if (tableHead && typeof MutationObserver !== 'undefined') {
|
|
124
143
|
// Defensive guard: disconnect existing observer before creating a new one
|
|
125
144
|
if (this.headObserver) {
|
|
@@ -180,6 +199,22 @@ const PdsTableHeadCell = class {
|
|
|
180
199
|
this.setupTimer = undefined;
|
|
181
200
|
}
|
|
182
201
|
this.setupRetries = 0; // Reset retry counter
|
|
202
|
+
// Without a listener there's no way to know the scroll position any more, so the shadow
|
|
203
|
+
// this drove shouldn't linger -- matters when a rebind tears this down without setting it
|
|
204
|
+
// back up (responsive turned off while scrolled), not just on disconnect.
|
|
205
|
+
this.tableScrolling = false;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Re-binds the scroll listener to the table's current responsive container. Called by
|
|
209
|
+
* `pds-table` after a live `responsive` toggle: the cell stays in light DOM across that
|
|
210
|
+
* change, so it never reconnects on its own and would otherwise keep listening to a container
|
|
211
|
+
* the table already replaced or removed.
|
|
212
|
+
*/
|
|
213
|
+
async rebindScrollListener() {
|
|
214
|
+
this.cleanupScrollListener();
|
|
215
|
+
if (this.tableRef && this.tableRef.responsive && this.tableRef.fixedColumn) {
|
|
216
|
+
this.setupScrollListener();
|
|
217
|
+
}
|
|
183
218
|
}
|
|
184
219
|
classNames() {
|
|
185
220
|
const classNames = [];
|
|
@@ -204,14 +239,27 @@ const PdsTableHeadCell = class {
|
|
|
204
239
|
if (this.hasHeadBorder) {
|
|
205
240
|
classNames.push('has-head-border');
|
|
206
241
|
}
|
|
242
|
+
if (this.width) {
|
|
243
|
+
classNames.push('has-width');
|
|
244
|
+
}
|
|
245
|
+
else if (this.tableRef && this.tableRef.tableLayout === 'fixed') {
|
|
246
|
+
classNames.push('has-auto-width');
|
|
247
|
+
}
|
|
207
248
|
return classNames.join(' ');
|
|
208
249
|
}
|
|
250
|
+
hostStyles() {
|
|
251
|
+
const styles = {};
|
|
252
|
+
if (this.tableRef && this.tableRef.fixedColumn && this.tableRef.selectable) {
|
|
253
|
+
styles['--fixed-cell-position'] = '40px';
|
|
254
|
+
}
|
|
255
|
+
// Hand the width to the stylesheet as a custom property rather than an inline width.
|
|
256
|
+
if (this.width) {
|
|
257
|
+
styles['--pds-table-head-cell-width'] = this.width;
|
|
258
|
+
}
|
|
259
|
+
return styles;
|
|
260
|
+
}
|
|
209
261
|
render() {
|
|
210
|
-
return (index.h(index.Host, { key: '
|
|
211
|
-
this.tableRef.fixedColumn &&
|
|
212
|
-
this.tableRef.selectable
|
|
213
|
-
? { '--fixed-cell-position': '40px' }
|
|
214
|
-
: {} }, index.h("slot", { key: '7aff5994fe4c5250ce83516960183dbd9ffa9c69' }), this.sortable && this.isActive && (index.h("pds-icon", { key: '0a7b99ab2c56ea0cfb3aa6f810bf802422a29bef', icon: this.sortingDirection === 'asc' ? index$1.upSmall : index$1.downSmall, part: "sort-icon", "aria-hidden": "true" }))));
|
|
262
|
+
return (index.h(index.Host, { key: '353a05a4026064d05a4b924bec3fa2f17f1902ce', class: this.classNames(), role: "columnheader", onClick: this.toggleSort, part: "head-cell", style: this.hostStyles() }, index.h("slot", { key: '51ead68fc052805d60bbfc6e626f6aedcc5671fc' }), this.sortable && this.isActive && (index.h("pds-icon", { key: '9a5c27232f06a15dc8329c329f01b08cb6d836b8', icon: this.sortingDirection === 'asc' ? index$1.upSmall : index$1.downSmall, part: "sort-icon", "aria-hidden": "true" }))));
|
|
215
263
|
}
|
|
216
264
|
get hostElement() { return index.getElement(this); }
|
|
217
265
|
};
|
|
@@ -50,7 +50,7 @@ const PdsTableHead = class {
|
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
render() {
|
|
53
|
-
return (index.h(index.Host, { key: '
|
|
53
|
+
return (index.h(index.Host, { key: 'ba81f3a9655b49cf01311c697a8aae3e69de0e81', role: "row", part: "head" }, this.tableRef && this.tableRef.selectable && (index.h("pds-table-head-cell", { key: '4f182b3053469afbaff81c4918bf66376fc7ade4', part: this.tableRef.selectable ? 'checkbox-cell' : '', width: this.tableRef.tableLayout === 'fixed' ? 'var(--pine-dimension-2xl)' : undefined }, !this.tableRef.disableSelectAll && (index.h("pds-checkbox", { key: 'b26c7e8c26b3cc837f180431dc53a17ae0d84f1f', componentId: this.generateUniqueId(), indeterminate: this.indeterminate, onInput: this.handleInput, label: "Select All Rows", hideLabel: true, checked: this.isSelected, part: "select-all-checkbox" })))), index.h("slot", { key: 'e9eef43af95340fcce2d9f2f60800d897ee423f1' })));
|
|
54
54
|
}
|
|
55
55
|
get hostElement() { return index.getElement(this); }
|
|
56
56
|
};
|
|
@@ -145,7 +145,7 @@ const PdsTableRow = class {
|
|
|
145
145
|
}
|
|
146
146
|
}
|
|
147
147
|
render() {
|
|
148
|
-
return (index.h(index.Host, { key: '
|
|
148
|
+
return (index.h(index.Host, { key: '3bf8a5bf5f0ccb4a933a756d3ba52aaa2e35d4f0', class: this.classNames(), role: "row", part: "row" }, this.tableRef && this.tableRef.selectable && (index.h("pds-table-cell", { key: '5dfb53c4c7c550abbe445753828aa5a40cf53a7f', part: this.tableRef.fixedColumn ? 'checkbox-cell' : 'checkbox-cell', class: this.tableRef.selectable ? 'has-checkbox' : '' }, index.h("pds-checkbox", { key: 'a53b603e4e9a09705263341ecacd3b77d96fd75f', componentId: this.generateUniqueId(), onPdsCheckboxChange: this.handleCheckboxChange, indeterminate: this.indeterminate, label: "Select Row", hideLabel: true, checked: this.isSelected, part: "row-checkbox" }))), index.h("slot", { key: '4ae4007c867694a25b2ca0df6d69635bc0fa7cd0' })));
|
|
149
149
|
}
|
|
150
150
|
get hostElement() { return index.getElement(this); }
|
|
151
151
|
};
|
|
@@ -4,8 +4,15 @@ var index = require('./index-D9iJuJCP.js');
|
|
|
4
4
|
var scroll = require('./scroll-2XcoE_6Q.js');
|
|
5
5
|
require('./keep-hydrated-AKoh0DG4.js');
|
|
6
6
|
|
|
7
|
-
const pdsTableCss = () => `@charset "UTF-8";:host{--color-background-default:var(--pine-color-background-container);background:var(--color-background-default);border-collapse:separate;border-radius:inherit;-webkit-box-sizing:border-box;box-sizing:border-box;display:table;isolation:isolate;width:100%}:host(:focus-visible){outline:var(--pine-outline-focus)}:host(.pds-table-responsive-host){border-radius:inherit;-webkit-box-sizing:border-box !important;box-sizing:border-box !important;display:block !important;max-width:100% !important;overflow:hidden !important;position:relative !important;width:100% !important}.pds-table-responsive-container{border-radius:inherit;-webkit-box-sizing:border-box !important;box-sizing:border-box !important;overflow-x:auto !important;overflow-y:visible !important;position:relative !important;width:100% !important}.pds-table-responsive-wrapper{border-radius:inherit;-webkit-box-sizing:border-box !important;box-sizing:border-box !important;display:block !important;position:relative !important;width:100% !important}.pds-table-responsive-wrapper .pds-table{display:table !important;min-width:-webkit-max-content !important;min-width:-moz-max-content !important;min-width:max-content !important;table-layout:auto !important;white-space:nowrap !important;width:100% !important}.scroll-shadow-left,.scroll-shadow-right{height:100%;opacity:0;pointer-events:none;position:absolute;top:0;-webkit-transition:opacity 0.1s ease;transition:opacity 0.1s ease;width:4px;z-index:var(--pine-z-index)}.scroll-shadow-left{background:-webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.1)), to(transparent));background:linear-gradient(to right, rgba(0, 0, 0, 0.1), transparent);border-end-start-radius:inherit;border-start-start-radius:inherit;inset-inline-start:0}:host-context([dir=rtl]) .scroll-shadow-left{background:-webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.1)), to(transparent));background:linear-gradient(to left, rgba(0, 0, 0, 0.1), transparent)}.scroll-shadow-right{background:-webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.1)), to(transparent));background:linear-gradient(to left, rgba(0, 0, 0, 0.1), transparent);border-end-end-radius:inherit;border-start-end-radius:inherit;inset-inline-end:0}:host-context([dir=rtl]) .scroll-shadow-right{background:-webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.1)), to(transparent));background:linear-gradient(to right, rgba(0, 0, 0, 0.1), transparent)}`;
|
|
7
|
+
const pdsTableCss = () => `@charset "UTF-8";:host{--color-background-default:var(--pine-color-background-container);background:var(--color-background-default);border-collapse:separate;border-radius:inherit;-webkit-box-sizing:border-box;box-sizing:border-box;display:table;isolation:isolate;width:100%}:host(:focus-visible){outline:var(--pine-outline-focus)}:host(.is-fixed-layout){table-layout:fixed}:host(.pds-table-responsive-host){border-radius:inherit;-webkit-box-sizing:border-box !important;box-sizing:border-box !important;display:block !important;max-width:100% !important;overflow:hidden !important;position:relative !important;width:100% !important}.pds-table-responsive-container{border-radius:inherit;-webkit-box-sizing:border-box !important;box-sizing:border-box !important;overflow-x:auto !important;overflow-y:visible !important;position:relative !important;width:100% !important}.pds-table-responsive-wrapper{border-radius:inherit;-webkit-box-sizing:border-box !important;box-sizing:border-box !important;display:block !important;position:relative !important;width:100% !important}.pds-table-responsive-wrapper .pds-table{display:table !important;min-width:-webkit-max-content !important;min-width:-moz-max-content !important;min-width:max-content !important;table-layout:auto !important;white-space:nowrap !important;width:100% !important}.pds-table-responsive-wrapper .pds-table.is-fixed-layout{table-layout:fixed !important}.scroll-shadow-left,.scroll-shadow-right{height:100%;opacity:0;pointer-events:none;position:absolute;top:0;-webkit-transition:opacity 0.1s ease;transition:opacity 0.1s ease;width:4px;z-index:var(--pine-z-index)}.scroll-shadow-left{background:-webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.1)), to(transparent));background:linear-gradient(to right, rgba(0, 0, 0, 0.1), transparent);border-end-start-radius:inherit;border-start-start-radius:inherit;inset-inline-start:0}:host-context([dir=rtl]) .scroll-shadow-left{background:-webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.1)), to(transparent));background:linear-gradient(to left, rgba(0, 0, 0, 0.1), transparent)}.scroll-shadow-right{background:-webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.1)), to(transparent));background:linear-gradient(to left, rgba(0, 0, 0, 0.1), transparent);border-end-end-radius:inherit;border-start-end-radius:inherit;inset-inline-end:0}:host-context([dir=rtl]) .scroll-shadow-right{background:-webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.1)), to(transparent));background:linear-gradient(to right, rgba(0, 0, 0, 0.1), transparent)}`;
|
|
8
8
|
|
|
9
|
+
// A column with no width of its own, under table-layout: fixed, otherwise shares whatever's left
|
|
10
|
+
// after the explicit-width columns -- which can go to nothing on a narrow viewport. Below this,
|
|
11
|
+
// it keeps this floor instead and the table grows wider, scrollable under `responsive` -- the
|
|
12
|
+
// only mode this applies in. Without `responsive` there's no container to measure that the floor
|
|
13
|
+
// itself can't grow (the table's own width would, chasing its tail) and no way to scroll the
|
|
14
|
+
// overflow it would create.
|
|
15
|
+
const AUTO_COLUMN_FLOOR_WIDTH_PX = 120;
|
|
9
16
|
const PdsTable = class {
|
|
10
17
|
constructor(hostRef) {
|
|
11
18
|
index.registerInstance(this, hostRef);
|
|
@@ -15,6 +22,14 @@ const PdsTable = class {
|
|
|
15
22
|
this._responsiveHandleResize = null;
|
|
16
23
|
this._responsiveResizeObserver = null;
|
|
17
24
|
this._teardownResponsive = null;
|
|
25
|
+
this._fixedLayoutResizeObserver = null;
|
|
26
|
+
this._fixedLayoutHandleResize = null;
|
|
27
|
+
this._fixedLayoutMutationObserver = null;
|
|
28
|
+
this._pendingColumnWidthsRecalc = false;
|
|
29
|
+
// componentDidLoad fires once; a later connectedCallback (the table was re-parented, reordered,
|
|
30
|
+
// or moved by a DOM morph) needs this to know it's a reconnect, not the first load, so it
|
|
31
|
+
// re-attaches what disconnectedCallback tore down.
|
|
32
|
+
this.hasLoaded = false;
|
|
18
33
|
/**
|
|
19
34
|
* Hides the select-all checkbox in the table header while keeping individual row checkboxes functional.
|
|
20
35
|
* Only applies when `selectable` is true.
|
|
@@ -26,6 +41,18 @@ const PdsTable = class {
|
|
|
26
41
|
* @defaultValue false
|
|
27
42
|
*/
|
|
28
43
|
this.rowDividers = false;
|
|
44
|
+
/**
|
|
45
|
+
* Sets how the table sizes its columns. With `auto`, each column is sized from its content,
|
|
46
|
+
* so columns can change width when the rows change (for example after a sort). With `fixed`,
|
|
47
|
+
* columns take the `width` set on their `pds-table-head-cell` and ignore their content;
|
|
48
|
+
* columns without a `width` share the remaining space. Under `responsive`, that remaining
|
|
49
|
+
* share keeps a 120px floor on narrow viewports where the other columns' widths already fill
|
|
50
|
+
* it, growing the table instead (scrollable) -- without `responsive` there's no floor, since
|
|
51
|
+
* there would be nothing to scroll the overflow it would create. Content longer than its
|
|
52
|
+
* column overflows, so add `truncate` to cells whose content may not fit.
|
|
53
|
+
* @defaultValue 'auto'
|
|
54
|
+
*/
|
|
55
|
+
this.tableLayout = 'auto';
|
|
29
56
|
/**
|
|
30
57
|
* The direction to sort the default column on initial load.
|
|
31
58
|
* Only applies if `defaultSortColumn` is set.
|
|
@@ -42,11 +69,89 @@ const PdsTable = class {
|
|
|
42
69
|
* @defaultValue 'asc'
|
|
43
70
|
*/
|
|
44
71
|
this.sortingDirection = 'asc';
|
|
72
|
+
/**
|
|
73
|
+
* `tableLayout` or `responsive` changing at runtime is handled here, deferred to
|
|
74
|
+
* `componentDidRender` rather than done directly -- a `@Watch` runs before this component's
|
|
75
|
+
* own re-render, and both the floor's measurement and the responsive scroll setup query
|
|
76
|
+
* `.pds-table-responsive-container`, which that re-render is what creates or removes. Reading
|
|
77
|
+
* it any earlier would still see the old tree.
|
|
78
|
+
*/
|
|
79
|
+
this._pendingFixedLayoutInputsSync = false;
|
|
80
|
+
/**
|
|
81
|
+
* Measures the explicit-width columns against the available space and gives the columns with
|
|
82
|
+
* no `width` of their own (which otherwise share whatever's left) a floor so none of them
|
|
83
|
+
* squeeze below `AUTO_COLUMN_FLOOR_WIDTH_PX`. Re-run on resize, since the responsive
|
|
84
|
+
* container's available width can change after load -- and only under `responsive`: that
|
|
85
|
+
* container is the one thing in this layout the floor's own growth can't also grow, which is
|
|
86
|
+
* what keeps this from measuring its own effect and oscillating.
|
|
87
|
+
* @private
|
|
88
|
+
*/
|
|
89
|
+
this.recalcAutoColumnWidths = () => {
|
|
90
|
+
var _a, _b, _c, _d, _e, _f;
|
|
91
|
+
if (this.tableLayout !== 'fixed' || !this.responsive)
|
|
92
|
+
return;
|
|
93
|
+
const headCells = Array.from(this.el.querySelectorAll('pds-table-head-cell'));
|
|
94
|
+
const autoCells = [];
|
|
95
|
+
let explicitWidthPx = 0;
|
|
96
|
+
for (const cell of headCells) {
|
|
97
|
+
if (!cell.getAttribute('width')) {
|
|
98
|
+
autoCells.push(cell);
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
// Measured from layout rather than parsed from the attribute, so any CSS length -- px,
|
|
102
|
+
// rem, %, a token -- counts correctly, the same as the select-all column below.
|
|
103
|
+
explicitWidthPx += cell.getBoundingClientRect().width;
|
|
104
|
+
}
|
|
105
|
+
if (autoCells.length === 0)
|
|
106
|
+
return;
|
|
107
|
+
// A selectable table's select-all column lives in pds-table-head's shadow root, out of reach
|
|
108
|
+
// of the query above, and its width is a token rather than a px value -- so measure it.
|
|
109
|
+
if (this.selectable) {
|
|
110
|
+
const selectAllCell = (_b = (_a = this.el
|
|
111
|
+
.querySelector('pds-table-head')) === null || _a === void 0 ? void 0 : _a.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('pds-table-head-cell');
|
|
112
|
+
explicitWidthPx += (_c = selectAllCell === null || selectAllCell === void 0 ? void 0 : selectAllCell.getBoundingClientRect().width) !== null && _c !== void 0 ? _c : 0;
|
|
113
|
+
}
|
|
114
|
+
const measureEl = (_d = this.el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('.pds-table-responsive-container');
|
|
115
|
+
const availableWidth = (_e = measureEl === null || measureEl === void 0 ? void 0 : measureEl.clientWidth) !== null && _e !== void 0 ? _e : 0;
|
|
116
|
+
const sharePerAutoColumn = (availableWidth - explicitWidthPx) / autoCells.length;
|
|
117
|
+
const needsFloor = sharePerAutoColumn < AUTO_COLUMN_FLOOR_WIDTH_PX;
|
|
118
|
+
autoCells.forEach((cell) => {
|
|
119
|
+
if (needsFloor) {
|
|
120
|
+
cell.style.setProperty('--pds-table-head-cell-auto-floor-width', `${AUTO_COLUMN_FLOOR_WIDTH_PX}px`);
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
cell.style.removeProperty('--pds-table-head-cell-auto-floor-width');
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
// The floor can widen the table past its container on its own, with no scroll or
|
|
127
|
+
// container-resize event of its own to trigger the shadows' usual recompute -- reading
|
|
128
|
+
// `scrollWidth` just below forces the layout the style change above needs anyway.
|
|
129
|
+
(_f = this._responsiveHandleScroll) === null || _f === void 0 ? void 0 : _f.call(this);
|
|
130
|
+
};
|
|
131
|
+
// A `width` attribute change or a new head cell fires this in the same turn as that cell's
|
|
132
|
+
// own re-render, which is what applies `--pds-table-head-cell-width` -- measuring right away
|
|
133
|
+
// would still see the previous layout. Deferred one frame, by which point Stencil's own (also
|
|
134
|
+
// rAF-scheduled) write for that cell has flushed. Resize and window-resize don't need this:
|
|
135
|
+
// both fire only once layout has already settled.
|
|
136
|
+
this.scheduleColumnWidthsRecalc = () => {
|
|
137
|
+
if (this._pendingColumnWidthsRecalc)
|
|
138
|
+
return;
|
|
139
|
+
this._pendingColumnWidthsRecalc = true;
|
|
140
|
+
requestAnimationFrame(() => {
|
|
141
|
+
// A teardown in the meantime (disconnect, or the floor turning off) leaves this flag
|
|
142
|
+
// cleared but can't cancel an already-scheduled frame -- checked here so it's a no-op
|
|
143
|
+
// rather than measuring and writing styles on a table that's no longer set up for it.
|
|
144
|
+
if (!this._pendingColumnWidthsRecalc)
|
|
145
|
+
return;
|
|
146
|
+
this._pendingColumnWidthsRecalc = false;
|
|
147
|
+
if (this.el.isConnected)
|
|
148
|
+
this.recalcAutoColumnWidths();
|
|
149
|
+
});
|
|
150
|
+
};
|
|
45
151
|
}
|
|
46
152
|
componentDidLoad() {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
153
|
+
this.hasLoaded = true;
|
|
154
|
+
this.attachLifecycleBoundSetup();
|
|
50
155
|
// Apply default sort if specified
|
|
51
156
|
// Use requestAnimationFrame to defer until child components are fully initialized
|
|
52
157
|
if (this.defaultSortColumn) {
|
|
@@ -82,11 +187,150 @@ const PdsTable = class {
|
|
|
82
187
|
console.warn(`Default sort column "${this.defaultSortColumn}" not found.`);
|
|
83
188
|
}
|
|
84
189
|
}
|
|
190
|
+
/**
|
|
191
|
+
* Re-attaches the responsive scroll listeners and the fixed-layout width floor after the table
|
|
192
|
+
* reconnects (it was re-parented, reordered, or moved by a DOM morph) -- `disconnectedCallback`
|
|
193
|
+
* tears both down, and neither comes back on its own.
|
|
194
|
+
*/
|
|
195
|
+
connectedCallback() {
|
|
196
|
+
if (!this.hasLoaded)
|
|
197
|
+
return;
|
|
198
|
+
this.attachLifecycleBoundSetup();
|
|
199
|
+
}
|
|
200
|
+
attachLifecycleBoundSetup() {
|
|
201
|
+
if (this.responsive) {
|
|
202
|
+
this.setupResponsiveScrolling();
|
|
203
|
+
}
|
|
204
|
+
if (this.tableLayout === 'fixed' && this.responsive) {
|
|
205
|
+
this.setupFixedLayoutWidths();
|
|
206
|
+
}
|
|
207
|
+
}
|
|
85
208
|
disconnectedCallback() {
|
|
86
209
|
if (this._teardownResponsive) {
|
|
87
210
|
this._teardownResponsive();
|
|
88
211
|
this._teardownResponsive = null;
|
|
89
212
|
}
|
|
213
|
+
this.teardownFixedLayoutWidths();
|
|
214
|
+
// A disconnect in the same turn as a pending tableLayout/responsive change could be the
|
|
215
|
+
// table being moved rather than removed for good -- there's no way to tell them apart yet
|
|
216
|
+
// here, and dropping the pending sync unconditionally would lose a change that's still
|
|
217
|
+
// coming once a same-turn reconnect's own render flushes. Checked on a microtask instead, by
|
|
218
|
+
// which point a same-turn reconnect has already happened; a disconnect that sticks still
|
|
219
|
+
// won't leave anything queued to leak a listener later.
|
|
220
|
+
if (this._pendingFixedLayoutInputsSync) {
|
|
221
|
+
queueMicrotask(() => {
|
|
222
|
+
if (!this.el.isConnected)
|
|
223
|
+
this._pendingFixedLayoutInputsSync = false;
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
handleFixedLayoutInputsChange() {
|
|
228
|
+
this._pendingFixedLayoutInputsSync = true;
|
|
229
|
+
}
|
|
230
|
+
componentDidRender() {
|
|
231
|
+
if (!this._pendingFixedLayoutInputsSync)
|
|
232
|
+
return;
|
|
233
|
+
this._pendingFixedLayoutInputsSync = false;
|
|
234
|
+
this.syncFixedLayoutInputs();
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* The floor only applies with `tableLayout="fixed"` and `responsive` both set, so either one
|
|
238
|
+
* changing at runtime can turn it on or off -- and `responsive` on its own also starts or stops
|
|
239
|
+
* the (separate) scroll listeners, same as it does on first load. A head cell only reads
|
|
240
|
+
* `tableLayout` during its own render, and the floor this sets lives in inline style, not a
|
|
241
|
+
* re-render -- so turning the floor off (including live, e.g. the Storybook control) needs
|
|
242
|
+
* both cleared explicitly, not just the observers torn down. The select-all column reads
|
|
243
|
+
* `tableLayout` the same way, one level up in `pds-table-head`'s own render, since it owns that
|
|
244
|
+
* cell rather than letting it through a `<slot>`. A `fixedColumn` cell's own sticky-shadow
|
|
245
|
+
* scroll listener is bound to this same container, cached on the cell itself -- it stays in
|
|
246
|
+
* light DOM across this change and never reconnects on its own, so it needs telling directly
|
|
247
|
+
* rather than finding out the container moved.
|
|
248
|
+
* @private
|
|
249
|
+
*/
|
|
250
|
+
syncFixedLayoutInputs() {
|
|
251
|
+
if (this._teardownResponsive) {
|
|
252
|
+
this._teardownResponsive();
|
|
253
|
+
this._teardownResponsive = null;
|
|
254
|
+
}
|
|
255
|
+
if (this.responsive)
|
|
256
|
+
this.setupResponsiveScrolling();
|
|
257
|
+
this.teardownFixedLayoutWidths();
|
|
258
|
+
const floorActive = this.tableLayout === 'fixed' && this.responsive;
|
|
259
|
+
if (floorActive)
|
|
260
|
+
this.setupFixedLayoutWidths();
|
|
261
|
+
this.allHeadCells().forEach((cell) => {
|
|
262
|
+
if (!floorActive)
|
|
263
|
+
cell.style.removeProperty('--pds-table-head-cell-auto-floor-width');
|
|
264
|
+
index.forceUpdate(cell);
|
|
265
|
+
void cell.rebindScrollListener();
|
|
266
|
+
});
|
|
267
|
+
this.allBodyCells().forEach((cell) => {
|
|
268
|
+
void cell.rebindScrollListener();
|
|
269
|
+
});
|
|
270
|
+
const head = this.el.querySelector('pds-table-head');
|
|
271
|
+
if (head)
|
|
272
|
+
index.forceUpdate(head);
|
|
273
|
+
// The select-all cell's `width` is applied by that `forceUpdate`, which hasn't flushed yet --
|
|
274
|
+
// the floor's own recalc above just ran against its previous (or absent) width. That cell
|
|
275
|
+
// sits in `pds-table-head`'s shadow root, out of reach of the mutation observer that would
|
|
276
|
+
// otherwise catch the change, so this needs scheduling directly rather than left to notice.
|
|
277
|
+
if (floorActive)
|
|
278
|
+
this.scheduleColumnWidthsRecalc();
|
|
279
|
+
}
|
|
280
|
+
// The select-all cell sits in `pds-table-head`'s own shadow root, and a selectable row's
|
|
281
|
+
// checkbox cell in its own, rather than coming through a `<slot>` like the rest -- a
|
|
282
|
+
// light-DOM-only `querySelectorAll` from here never reaches either one.
|
|
283
|
+
allHeadCells() {
|
|
284
|
+
var _a;
|
|
285
|
+
const slotted = Array.from(this.el.querySelectorAll('pds-table-head-cell'));
|
|
286
|
+
const head = this.el.querySelector('pds-table-head');
|
|
287
|
+
const ownCell = (_a = head === null || head === void 0 ? void 0 : head.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('pds-table-head-cell');
|
|
288
|
+
return ownCell ? [...slotted, ownCell] : slotted;
|
|
289
|
+
}
|
|
290
|
+
allBodyCells() {
|
|
291
|
+
const slotted = Array.from(this.el.querySelectorAll('pds-table-cell'));
|
|
292
|
+
const rows = Array.from(this.el.querySelectorAll('pds-table-row'));
|
|
293
|
+
const ownCells = rows
|
|
294
|
+
.map((row) => { var _a; return (_a = row.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('pds-table-cell'); })
|
|
295
|
+
.filter((cell) => cell !== null);
|
|
296
|
+
return [...slotted, ...ownCells];
|
|
297
|
+
}
|
|
298
|
+
setupFixedLayoutWidths() {
|
|
299
|
+
this.recalcAutoColumnWidths();
|
|
300
|
+
if (typeof window === 'undefined')
|
|
301
|
+
return;
|
|
302
|
+
this._fixedLayoutHandleResize = () => this.recalcAutoColumnWidths();
|
|
303
|
+
if (window.ResizeObserver) {
|
|
304
|
+
try {
|
|
305
|
+
this._fixedLayoutResizeObserver = new ResizeObserver(this._fixedLayoutHandleResize);
|
|
306
|
+
this._fixedLayoutResizeObserver.observe(this.el);
|
|
307
|
+
}
|
|
308
|
+
catch (error) {
|
|
309
|
+
// ResizeObserver not available in some environments (e.g., tests); window resize still covers it.
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
window.addEventListener('resize', this._fixedLayoutHandleResize);
|
|
313
|
+
// A column added, removed, or given a different `width` changes the floor calc's inputs,
|
|
314
|
+
// and none of that is a resize of anything this observes above.
|
|
315
|
+
if (typeof MutationObserver !== 'undefined') {
|
|
316
|
+
this._fixedLayoutMutationObserver = new MutationObserver(this.scheduleColumnWidthsRecalc);
|
|
317
|
+
this._fixedLayoutMutationObserver.observe(this.el, { childList: true, subtree: true, attributeFilter: ['width'] });
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
teardownFixedLayoutWidths() {
|
|
321
|
+
if (this._fixedLayoutResizeObserver) {
|
|
322
|
+
this._fixedLayoutResizeObserver.disconnect();
|
|
323
|
+
this._fixedLayoutResizeObserver = null;
|
|
324
|
+
}
|
|
325
|
+
if (this._fixedLayoutMutationObserver) {
|
|
326
|
+
this._fixedLayoutMutationObserver.disconnect();
|
|
327
|
+
this._fixedLayoutMutationObserver = null;
|
|
328
|
+
}
|
|
329
|
+
if (typeof window !== 'undefined' && this._fixedLayoutHandleResize) {
|
|
330
|
+
window.removeEventListener('resize', this._fixedLayoutHandleResize);
|
|
331
|
+
}
|
|
332
|
+
this._fixedLayoutHandleResize = null;
|
|
333
|
+
this._pendingColumnWidthsRecalc = false;
|
|
90
334
|
}
|
|
91
335
|
/**
|
|
92
336
|
* Sets up responsive scrolling behavior for the table.
|
|
@@ -180,6 +424,9 @@ const PdsTable = class {
|
|
|
180
424
|
if (this.responsive) {
|
|
181
425
|
classNames.push('is-responsive');
|
|
182
426
|
}
|
|
427
|
+
if (this.tableLayout === 'fixed') {
|
|
428
|
+
classNames.push('is-fixed-layout');
|
|
429
|
+
}
|
|
183
430
|
return classNames.join(' ');
|
|
184
431
|
}
|
|
185
432
|
sortTable(column, direction) {
|
|
@@ -248,11 +495,19 @@ const PdsTable = class {
|
|
|
248
495
|
}
|
|
249
496
|
render() {
|
|
250
497
|
if (this.responsive) {
|
|
251
|
-
return (index.h(index.Host, { class:
|
|
498
|
+
return (index.h(index.Host, { class: `${this.classNames()} pds-table-responsive-host`, id: this.componentId, role: "grid", selectable: this.selectable, tabindex: "0", part: "table responsive-table" }, index.h("div", { class: "scroll-shadow-left", part: "scroll-shadow-left" }), index.h("div", { class: "scroll-shadow-right", part: "scroll-shadow-right" }), index.h("div", { class: "pds-table-responsive-container", part: "responsive-container" }, index.h("div", { class: "pds-table-responsive-wrapper", part: "responsive-wrapper" }, index.h("div", { class: this.classNames(), part: "table-inner" }, index.h("slot", null))))));
|
|
252
499
|
}
|
|
253
500
|
return (index.h(index.Host, { class: this.classNames(), id: this.componentId, role: "grid", selectable: this.selectable, tabindex: "0", part: "table" }, index.h("slot", null)));
|
|
254
501
|
}
|
|
255
502
|
get el() { return index.getElement(this); }
|
|
503
|
+
static get watchers() { return {
|
|
504
|
+
"tableLayout": [{
|
|
505
|
+
"handleFixedLayoutInputsChange": 0
|
|
506
|
+
}],
|
|
507
|
+
"responsive": [{
|
|
508
|
+
"handleFixedLayoutInputsChange": 0
|
|
509
|
+
}]
|
|
510
|
+
}; }
|
|
256
511
|
};
|
|
257
512
|
PdsTable.style = pdsTableCss();
|
|
258
513
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var index = require('./index-D9iJuJCP.js');
|
|
4
|
-
var attributes = require('./attributes-
|
|
4
|
+
var attributes = require('./attributes-Cgbkw6gO.js');
|
|
5
5
|
var reconnectedContent = require('./reconnected-content-CpnEQcTp.js');
|
|
6
6
|
require('./keep-hydrated-AKoh0DG4.js');
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var index = require('./index-D9iJuJCP.js');
|
|
4
|
-
var attributes = require('./attributes-
|
|
4
|
+
var attributes = require('./attributes-Cgbkw6gO.js');
|
|
5
5
|
require('./keep-hydrated-AKoh0DG4.js');
|
|
6
6
|
|
|
7
7
|
const pdsTabsCss = () => `:host{--tabs-dimension-panel-margin-top:var(--pine-dimension-none);--tabs-dimension-panel-padding:0;display:block}.pds-tabs__tablist{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:var(--pine-dimension-md)}:host(.pds-tabs--divider) .pds-tabs__tablist{-webkit-border-after:var(--pine-border-width-thin) solid var(--pine-color-border-subtle);border-block-end:var(--pine-border-width-thin) solid var(--pine-color-border-subtle)}:host(.pds-tabs--stretch){block-size:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}:host(.pds-tabs--stretch) .pds-tabs__tablist{-ms-flex:0 0 auto;flex:0 0 auto}:host(.pds-tabs--availability) .pds-tabs__tablist{gap:var(--pine-dimension-xs)}:host(.pds-tabs--filter) .pds-tabs__tablist{gap:var(--pine-dimension-sm)}:host(.pds-tabs--pill) .pds-tabs__tablist{background-color:var(--pine-color-background-app);border:var(--pine-border-width-thin) solid var(--pine-color-border-subtle);border-radius:var(--pine-dimension-100);display:-ms-inline-flexbox;display:inline-flex;display:-ms-flexbox;display:flex;gap:0;height:var(--pine-dimension-450)}`;
|
|
@@ -45,7 +45,7 @@ const PdsTabs = class {
|
|
|
45
45
|
*/
|
|
46
46
|
this.divider = false;
|
|
47
47
|
/**
|
|
48
|
-
* Stretches the component
|
|
48
|
+
* Stretches the component to fill its container's height. The active tab panel keeps the height of its content.
|
|
49
49
|
* Requires the component to have a constrained height (e.g. a flex parent).
|
|
50
50
|
* @defaultValue false
|
|
51
51
|
*/
|
|
@@ -278,7 +278,7 @@ const PdsTabs = class {
|
|
|
278
278
|
// Only the classes: `active-tab-name` backs the mutable activeTabName prop, so a morph that drops
|
|
279
279
|
// it is a prop change, not a strip.
|
|
280
280
|
this.hostKeeper.record(hostClass);
|
|
281
|
-
return (index.h(index.Host, { key: '
|
|
281
|
+
return (index.h(index.Host, { key: '69985d6800ac879a8655d52a6b4f72c5b6a20c61', "active-tab-name": this.activeTabName, class: hostClass, id: this.componentId }, tabList, index.h("slot", { key: '0fb1b2521b15c77a50d81431cc1f0f6a40360cfa', name: "tabpanels" })));
|
|
282
282
|
}
|
|
283
283
|
get el() { return index.getElement(this); }
|
|
284
284
|
};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var index = require('./index-D9iJuJCP.js');
|
|
4
4
|
var utils = require('./utils-BhRmyxT8.js');
|
|
5
|
-
var truncationTooltip = require('./truncation-tooltip-
|
|
5
|
+
var truncationTooltip = require('./truncation-tooltip-CM5HgRHh.js');
|
|
6
6
|
var index$1 = require('./index.cjs.js');
|
|
7
7
|
require('./keep-hydrated-AKoh0DG4.js');
|
|
8
8
|
require('./floating-ui.dom-Dw41zbyY.js');
|
|
@@ -86,7 +86,9 @@ const PdsText = class {
|
|
|
86
86
|
this.truncationCleanup = truncationTooltip.setupTruncationTooltip({
|
|
87
87
|
hostEl: this.el,
|
|
88
88
|
contentEl: this.contentEl,
|
|
89
|
-
|
|
89
|
+
// Not `textContent`: a consumer that wraps its own slot in this text, as `pds-alert` does, holds a
|
|
90
|
+
// `<slot>` here, which counts as empty and would leave the tooltip with nothing to show.
|
|
91
|
+
getTooltipText: () => truncationTooltip.flattenedText(this.el),
|
|
90
92
|
// A wrapping link or button already takes focus, so its focus reveals the text instead of a nested tab stop.
|
|
91
93
|
manageTabIndex: !usesWrapper,
|
|
92
94
|
focusEl: usesWrapper ? wrapper : this.el,
|
|
@@ -122,7 +124,7 @@ const PdsText = class {
|
|
|
122
124
|
? `pds-text--decoration-${this.decoration}`
|
|
123
125
|
: ''}
|
|
124
126
|
`;
|
|
125
|
-
return (index.h(Tag, { key: '
|
|
127
|
+
return (index.h(Tag, { key: '3b9efbad7872410a7e07438801ec17382282ab16', ref: (el) => (this.contentEl = el), style: this.color && utils.setColor(this.color), class: typeClasses, part: "content" }, index.h("slot", { key: '0784e6aee6ce23f93f0e3c077da5fa3ca944aebb' })));
|
|
126
128
|
}
|
|
127
129
|
get el() { return index.getElement(this); }
|
|
128
130
|
static get watchers() { return {
|