@pine-ds/core 4.7.1 → 4.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/pds-avatar.js +1 -1
- package/components/pds-button2.js +1 -1
- package/components/pds-checkbox2.js +1 -1
- package/components/pds-chip2.js +1 -1
- package/components/pds-combobox.js +1 -1
- package/components/pds-drawer.js +1 -1
- package/components/pds-dropdown-menu-item.js +1 -1
- package/components/pds-dropdown-menu.js +1 -1
- package/components/pds-modal-content.js +1 -1
- package/components/pds-modal2.js +1 -1
- package/components/pds-multiselect.js +1 -1
- package/components/pds-popover.js +1 -1
- package/components/pds-radio-group.js +1 -1
- package/components/pds-radio.js +1 -1
- package/components/pds-switch.js +1 -1
- package/components/pds-table-head-cell2.js +1 -1
- package/components/pds-textarea.js +1 -1
- package/components/pds-toast.js +1 -1
- package/components/truncation-tooltip.js +1 -1
- package/dist/cjs/{index-5Azb8EQG.js → index-Do70atou.js} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/pds-accordion.cjs.entry.js +1 -1
- package/dist/cjs/pds-avatar.cjs.entry.js +3 -3
- package/dist/cjs/pds-button.cjs.entry.js +24 -21
- package/dist/cjs/pds-checkbox.cjs.entry.js +2 -2
- package/dist/cjs/pds-chip.cjs.entry.js +4 -4
- package/dist/cjs/pds-combobox.cjs.entry.js +4 -4
- package/dist/cjs/pds-copytext.cjs.entry.js +2 -2
- package/dist/cjs/pds-datepicker.cjs.entry.js +1 -1
- package/dist/cjs/pds-drawer.cjs.entry.js +1 -1
- package/dist/cjs/pds-dropdown-menu-item.cjs.entry.js +31 -2
- package/dist/cjs/pds-dropdown-menu.cjs.entry.js +4 -4
- package/dist/cjs/pds-filter.cjs.entry.js +1 -1
- package/dist/cjs/pds-input.cjs.entry.js +1 -1
- package/dist/cjs/pds-link.cjs.entry.js +1 -1
- package/dist/cjs/pds-modal-content.cjs.entry.js +32 -30
- package/dist/cjs/pds-modal.cjs.entry.js +4 -4
- package/dist/cjs/pds-multiselect.cjs.entry.js +6 -6
- package/dist/cjs/pds-popover.cjs.entry.js +187 -11
- package/dist/cjs/pds-radio-group.cjs.entry.js +2 -2
- package/dist/cjs/pds-radio.cjs.entry.js +3 -3
- package/dist/cjs/pds-select.cjs.entry.js +1 -1
- package/dist/cjs/pds-sortable-item.cjs.entry.js +1 -1
- package/dist/cjs/pds-switch.cjs.entry.js +2 -2
- package/dist/cjs/pds-table-cell.cjs.entry.js +1 -1
- package/dist/cjs/pds-table-head-cell.cjs.entry.js +2 -2
- package/dist/cjs/pds-text.cjs.entry.js +1 -1
- package/dist/cjs/pds-textarea.cjs.entry.js +2 -2
- package/dist/cjs/pds-toast.cjs.entry.js +1 -1
- package/dist/cjs/pine-core.cjs.js +1 -1
- package/dist/cjs/{truncation-tooltip-DO9xli2e.js → truncation-tooltip-BtuiXLV0.js} +31 -6
- package/dist/collection/components/pds-avatar/pds-avatar.js +2 -2
- package/dist/collection/components/pds-button/pds-button.js +24 -22
- package/dist/collection/components/pds-button/stories/pds-button.stories.js +3 -3
- package/dist/collection/components/pds-checkbox/pds-checkbox.js +1 -1
- package/dist/collection/components/pds-chip/pds-chip.js +2 -2
- package/dist/collection/components/pds-combobox/pds-combobox.js +4 -4
- package/dist/collection/components/pds-datepicker/stories/pds-datepicker.stories.js +1 -1
- package/dist/collection/components/pds-drawer/pds-drawer.css +4 -0
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.css +8 -0
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.js +58 -6
- package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +4 -4
- package/dist/collection/components/pds-dropdown-menu/stories/pds-dropdown-menu.stories.js +39 -0
- package/dist/collection/components/pds-modal/pds-modal-content/pds-modal-content.js +32 -30
- package/dist/collection/components/pds-modal/pds-modal.js +4 -4
- package/dist/collection/components/pds-multiselect/pds-multiselect.js +5 -5
- package/dist/collection/components/pds-popover/pds-popover.js +240 -11
- package/dist/collection/components/pds-popover/stories/pds-popover.stories.js +31 -0
- package/dist/collection/components/pds-radio/pds-radio.js +2 -2
- package/dist/collection/components/pds-radio-group/pds-radio-group.js +1 -1
- package/dist/collection/components/pds-switch/pds-switch.js +1 -1
- package/dist/collection/components/pds-table/pds-table-head-cell/pds-table-head-cell.js +1 -1
- package/dist/collection/components/pds-table/stories/pds-table.stories.js +1 -1
- package/dist/collection/components/pds-text/stories/pds-text.stories.js +1 -1
- package/dist/collection/components/pds-textarea/pds-textarea.js +1 -1
- package/dist/collection/components/pds-toast/pds-toast.js +1 -1
- package/dist/collection/utils/truncation-tooltip.js +31 -6
- package/dist/docs.json +124 -7
- package/dist/esm/{index-BJXk71tO.js → index-BWDu62Mo.js} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/pds-accordion.entry.js +1 -1
- package/dist/esm/pds-avatar.entry.js +3 -3
- package/dist/esm/pds-button.entry.js +24 -21
- package/dist/esm/pds-checkbox.entry.js +2 -2
- package/dist/esm/pds-chip.entry.js +4 -4
- package/dist/esm/pds-combobox.entry.js +4 -4
- package/dist/esm/pds-copytext.entry.js +2 -2
- package/dist/esm/pds-datepicker.entry.js +1 -1
- package/dist/esm/pds-drawer.entry.js +1 -1
- package/dist/esm/pds-dropdown-menu-item.entry.js +31 -2
- package/dist/esm/pds-dropdown-menu.entry.js +4 -4
- package/dist/esm/pds-filter.entry.js +1 -1
- package/dist/esm/pds-input.entry.js +1 -1
- package/dist/esm/pds-link.entry.js +1 -1
- package/dist/esm/pds-modal-content.entry.js +32 -30
- package/dist/esm/pds-modal.entry.js +4 -4
- package/dist/esm/pds-multiselect.entry.js +6 -6
- package/dist/esm/pds-popover.entry.js +187 -11
- package/dist/esm/pds-radio-group.entry.js +2 -2
- package/dist/esm/pds-radio.entry.js +3 -3
- package/dist/esm/pds-select.entry.js +1 -1
- package/dist/esm/pds-sortable-item.entry.js +1 -1
- package/dist/esm/pds-switch.entry.js +2 -2
- package/dist/esm/pds-table-cell.entry.js +1 -1
- package/dist/esm/pds-table-head-cell.entry.js +2 -2
- package/dist/esm/pds-text.entry.js +1 -1
- package/dist/esm/pds-textarea.entry.js +2 -2
- package/dist/esm/pds-toast.entry.js +1 -1
- package/dist/esm/pine-core.js +1 -1
- package/dist/esm/{truncation-tooltip-DRXsdKk1.js → truncation-tooltip-FaW67DiY.js} +31 -6
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/pds-accordion.entry.js +1 -1
- package/dist/esm-es5/pds-avatar.entry.js +1 -1
- package/dist/esm-es5/pds-button.entry.js +1 -1
- package/dist/esm-es5/pds-checkbox.entry.js +1 -1
- package/dist/esm-es5/pds-chip.entry.js +1 -1
- package/dist/esm-es5/pds-combobox.entry.js +1 -1
- package/dist/esm-es5/pds-copytext.entry.js +1 -1
- package/dist/esm-es5/pds-datepicker.entry.js +1 -1
- package/dist/esm-es5/pds-drawer.entry.js +1 -1
- package/dist/esm-es5/pds-dropdown-menu-item.entry.js +1 -1
- package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
- package/dist/esm-es5/pds-filter.entry.js +1 -1
- package/dist/esm-es5/pds-input.entry.js +1 -1
- package/dist/esm-es5/pds-link.entry.js +1 -1
- package/dist/esm-es5/pds-modal-content.entry.js +1 -1
- package/dist/esm-es5/pds-modal.entry.js +1 -1
- package/dist/esm-es5/pds-multiselect.entry.js +1 -1
- package/dist/esm-es5/pds-popover.entry.js +1 -1
- package/dist/esm-es5/pds-radio-group.entry.js +1 -1
- package/dist/esm-es5/pds-radio.entry.js +1 -1
- package/dist/esm-es5/pds-select.entry.js +1 -1
- package/dist/esm-es5/pds-sortable-item.entry.js +1 -1
- package/dist/esm-es5/pds-switch.entry.js +1 -1
- package/dist/esm-es5/pds-table-cell.entry.js +1 -1
- package/dist/esm-es5/pds-table-head-cell.entry.js +1 -1
- package/dist/esm-es5/pds-text.entry.js +1 -1
- package/dist/esm-es5/pds-textarea.entry.js +1 -1
- package/dist/esm-es5/pds-toast.entry.js +1 -1
- package/dist/esm-es5/pine-core.js +1 -1
- package/dist/esm-es5/truncation-tooltip-FaW67DiY.js +1 -0
- package/dist/pine-core/{p-e836f3ec.system.entry.js → p-00a50de5.system.entry.js} +2 -2
- package/dist/pine-core/{p-1437585e.system.entry.js → p-047433a4.system.entry.js} +1 -1
- package/dist/pine-core/{p-7fa66cad.entry.js → p-089c3e60.entry.js} +1 -1
- package/dist/pine-core/{p-341c38f1.system.entry.js → p-0af0d752.system.entry.js} +1 -1
- package/dist/pine-core/{p-3a959459.system.entry.js → p-121612a7.system.entry.js} +1 -1
- package/dist/pine-core/{p-cde8eb81.entry.js → p-138b278b.entry.js} +1 -1
- package/dist/pine-core/{p-cfd012d4.entry.js → p-158b2f51.entry.js} +1 -1
- package/dist/pine-core/p-17f97f1a.entry.js +1 -0
- package/dist/pine-core/{p-5c90091e.system.entry.js → p-19ba2788.system.entry.js} +1 -1
- package/dist/pine-core/p-1dc5a7e0.system.entry.js +1 -0
- package/dist/pine-core/{p-355e4cf9.entry.js → p-25ea48d1.entry.js} +1 -1
- package/dist/pine-core/{p-c81d8ac8.entry.js → p-295f64ea.entry.js} +1 -1
- package/dist/pine-core/{p-576cf904.system.entry.js → p-29cd4113.system.entry.js} +1 -1
- package/dist/pine-core/{p-1ee86d87.system.entry.js → p-332590c7.system.entry.js} +1 -1
- package/dist/pine-core/p-36cb4bf6.entry.js +1 -0
- package/dist/pine-core/{p-080cb087.system.entry.js → p-3c977d8d.system.entry.js} +1 -1
- package/dist/pine-core/p-3d51891a.entry.js +1 -0
- package/dist/pine-core/{p-72865997.entry.js → p-44f546ae.entry.js} +1 -1
- package/dist/pine-core/{p-b60ac7eb.system.entry.js → p-4bfc8b3e.system.entry.js} +1 -1
- package/dist/pine-core/p-5833a072.system.entry.js +1 -0
- package/dist/pine-core/p-5cfd4d41.system.entry.js +1 -0
- package/dist/pine-core/{p-f2c253d8.entry.js → p-62433f32.entry.js} +1 -1
- package/dist/pine-core/{p-ebd0bff2.entry.js → p-631f5bcc.entry.js} +1 -1
- package/dist/pine-core/p-717323e4.entry.js +1 -0
- package/dist/pine-core/{p-e7a95a49.system.entry.js → p-719542e1.system.entry.js} +1 -1
- package/dist/pine-core/p-73f931a1.entry.js +1 -0
- package/dist/pine-core/{p-f77905aa.system.entry.js → p-884cb31d.system.entry.js} +1 -1
- package/dist/pine-core/{p-4435fff6.system.entry.js → p-8987fd45.system.entry.js} +1 -1
- package/dist/pine-core/{p-02088776.entry.js → p-8c588ca0.entry.js} +1 -1
- package/dist/pine-core/p-8e3ff75d.entry.js +1 -0
- package/dist/pine-core/{p-bd26a5e8.entry.js → p-90d5edc6.entry.js} +1 -1
- package/dist/pine-core/p-91f60173.entry.js +1 -0
- package/dist/pine-core/{p-258770cf.system.entry.js → p-9265497e.system.entry.js} +1 -1
- package/dist/pine-core/p-9713fb36.entry.js +1 -0
- package/dist/pine-core/p-99fdf70f.entry.js +1 -0
- package/dist/pine-core/{p-0a84d220.entry.js → p-9aaedded.entry.js} +1 -1
- package/dist/pine-core/p-9df5e204.entry.js +1 -0
- package/dist/pine-core/p-CuSNnuFu.system.js +1 -1
- package/dist/pine-core/p-D04W0cAO.system.js +1 -0
- package/dist/pine-core/{p-6d603d16.system.entry.js → p-acca5f7b.system.entry.js} +1 -1
- package/dist/pine-core/{p-a19cd59c.entry.js → p-aff411d0.entry.js} +1 -1
- package/dist/pine-core/{p-bb73ad66.entry.js → p-b182f806.entry.js} +1 -1
- package/dist/pine-core/{p-01aa382c.system.entry.js → p-b9d145f8.system.entry.js} +1 -1
- package/dist/pine-core/p-bdac8f2b.entry.js +1 -0
- package/dist/pine-core/{p-aa032a5e.system.entry.js → p-be9b6e63.system.entry.js} +1 -1
- package/dist/pine-core/{p-ff3de72e.entry.js → p-c483997a.entry.js} +1 -1
- package/dist/pine-core/p-c4e12f0a.entry.js +1 -0
- package/dist/pine-core/{p-e8cb76e8.entry.js → p-c97bfac9.entry.js} +1 -1
- package/dist/pine-core/{p-bd67156b.system.entry.js → p-ca4ee736.system.entry.js} +1 -1
- package/dist/pine-core/p-cccfe60f.system.entry.js +1 -0
- package/dist/pine-core/{p-c5c9ed36.system.entry.js → p-d3d69ca4.system.entry.js} +1 -1
- package/dist/pine-core/{p-f0d24298.system.entry.js → p-ea340c55.system.entry.js} +1 -1
- package/dist/pine-core/{p-88ff1604.entry.js → p-ea8f5d29.entry.js} +1 -1
- package/dist/pine-core/{p-d8570b4b.system.entry.js → p-eaf85be6.system.entry.js} +1 -1
- package/dist/pine-core/{p-fc25b956.system.entry.js → p-ecc7a531.system.entry.js} +1 -1
- package/dist/pine-core/{p-cfc52b95.system.entry.js → p-ee0e30bf.system.entry.js} +1 -1
- package/dist/pine-core/{p-e803f629.system.entry.js → p-ef13f665.system.entry.js} +1 -1
- package/dist/pine-core/{p-97d0b89e.system.entry.js → p-f3067d90.system.entry.js} +1 -1
- package/dist/pine-core/{p-JtdHT_W5.js → p-jrkGLEPe.js} +1 -1
- package/dist/pine-core/pine-core.esm.js +1 -1
- package/dist/types/components/pds-button/pds-button.d.ts +3 -4
- package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu-item/pds-dropdown-menu-item.d.ts +13 -3
- package/dist/types/components/pds-modal/pds-modal-content/pds-modal-content.d.ts +2 -0
- package/dist/types/components/pds-popover/pds-popover.d.ts +43 -1
- package/dist/types/components.d.ts +43 -10
- package/dist/types/utils/truncation-tooltip.d.ts +4 -4
- package/dist/types/utils/types.d.ts +1 -0
- package/dist/vscode.html-data.json +50 -7
- package/hydrate/index.js +341 -104
- package/hydrate/index.mjs +341 -104
- package/package.json +2 -2
- package/dist/esm-es5/truncation-tooltip-DRXsdKk1.js +0 -1
- package/dist/pine-core/p-153ba77b.entry.js +0 -1
- package/dist/pine-core/p-645a482b.system.entry.js +0 -1
- package/dist/pine-core/p-74a05bcc.entry.js +0 -1
- package/dist/pine-core/p-7bf6563a.system.entry.js +0 -1
- package/dist/pine-core/p-80a698ae.entry.js +0 -1
- package/dist/pine-core/p-82cf4ec6.entry.js +0 -1
- package/dist/pine-core/p-8d292b48.entry.js +0 -1
- package/dist/pine-core/p-92ae6082.entry.js +0 -1
- package/dist/pine-core/p-993d1043.entry.js +0 -1
- package/dist/pine-core/p-a787b34a.system.entry.js +0 -1
- package/dist/pine-core/p-b69f04b7.entry.js +0 -1
- package/dist/pine-core/p-beb23781.entry.js +0 -1
- package/dist/pine-core/p-bf5887e8.system.entry.js +0 -1
- package/dist/pine-core/p-c36b490e.entry.js +0 -1
- package/dist/pine-core/p-ca0d48e8.entry.js +0 -1
- package/dist/pine-core/p-f474d7de.entry.js +0 -1
- package/dist/pine-core/p-qhdoK1Jp.system.js +0 -1
- /package/dist/esm-es5/{index-BJXk71tO.js → index-BWDu62Mo.js} +0 -0
- /package/dist/pine-core/{p-BJXk71tO.js → p-BWDu62Mo.js} +0 -0
- /package/dist/pine-core/{p-n3_ytl_p.system.js → p-ClDiSG97.system.js} +0 -0
|
@@ -50,8 +50,12 @@ const cssEscape = (value) => {
|
|
|
50
50
|
|
|
51
51
|
const pdsPopoverCss = () => `:host{--sizing-max-width-default:352px;display:inline-block}:host .pds-popover__trigger-wrapper{display:inline-block}:host .pds-popover__content-slot-wrapper{display:none}`;
|
|
52
52
|
|
|
53
|
-
/** Open
|
|
54
|
-
const
|
|
53
|
+
/** Open popovers that close on Escape, in the order they opened: Escape goes to the last one it applies to. */
|
|
54
|
+
const popoversTakingEscape = [];
|
|
55
|
+
/** Hovering the trigger waits this long before opening, so a pointer passing over it doesn't open it. */
|
|
56
|
+
const HOVER_OPEN_DELAY_MS = 120;
|
|
57
|
+
/** Leaving the trigger and panel waits this long before closing, which covers the gap between them. */
|
|
58
|
+
const HOVER_CLOSE_DELAY_MS = 200;
|
|
55
59
|
/** The focused element, followed down through shadow roots to the control that has focus. */
|
|
56
60
|
function deepActiveElement() {
|
|
57
61
|
var _a;
|
|
@@ -111,11 +115,29 @@ const PdsPopover = class {
|
|
|
111
115
|
* Timestamp when popover was opened (for preventing immediate close)
|
|
112
116
|
*/
|
|
113
117
|
this.openTimestamp = 0;
|
|
118
|
+
/**
|
|
119
|
+
* Set while hover holds the popover open, until a click pins it or it closes
|
|
120
|
+
*/
|
|
121
|
+
this.hoverOpened = false;
|
|
122
|
+
/**
|
|
123
|
+
* Set when the pointer left while focus was in the panel, so focus leaving it closes it instead
|
|
124
|
+
*/
|
|
125
|
+
this.closeWhenFocusLeaves = false;
|
|
126
|
+
/**
|
|
127
|
+
* How far the pointer was from the panel at its last move after leaving the trigger
|
|
128
|
+
*/
|
|
129
|
+
this.panelDistance = Infinity;
|
|
114
130
|
/**
|
|
115
131
|
* Determines the action that triggers the popover. For manual popovers, the consumer is responsible for toggling this value.
|
|
116
132
|
* @defaultValue "show"
|
|
117
133
|
*/
|
|
118
134
|
this.popoverTargetAction = 'show';
|
|
135
|
+
/**
|
|
136
|
+
* Determines how the popover opens. With `hover`, it also opens when the pointer rests on the trigger and closes
|
|
137
|
+
* when the pointer leaves, until a click on the trigger keeps it open. Enter or Space on the trigger opens it either way.
|
|
138
|
+
* @defaultValue "click"
|
|
139
|
+
*/
|
|
140
|
+
this.openOn = 'click';
|
|
119
141
|
/**
|
|
120
142
|
* Determines the type of popover. Auto popovers can be "light dismissed" by clicking outside of the popover.
|
|
121
143
|
* Manual popovers require the consumer to handle the visibility of the popover.
|
|
@@ -126,6 +148,11 @@ const PdsPopover = class {
|
|
|
126
148
|
* @defaultValue 352
|
|
127
149
|
*/
|
|
128
150
|
this.maxWidth = 352;
|
|
151
|
+
/**
|
|
152
|
+
* Sets the padding of the popover content
|
|
153
|
+
* @defaultValue "md"
|
|
154
|
+
*/
|
|
155
|
+
this.padding = 'md';
|
|
129
156
|
/**
|
|
130
157
|
* Determines the preferred position of the popover
|
|
131
158
|
* @defaultValue "right"
|
|
@@ -140,6 +167,7 @@ const PdsPopover = class {
|
|
|
140
167
|
// Clean up previous trigger's event listener if it exists
|
|
141
168
|
if (this.triggerEl != null) {
|
|
142
169
|
this.triggerEl.removeEventListener('click', this.handleTriggerClick);
|
|
170
|
+
this.stopListeningForHover(this.triggerEl);
|
|
143
171
|
}
|
|
144
172
|
if (assignedElements.length > 0) {
|
|
145
173
|
// Use the first assigned element as the trigger
|
|
@@ -147,6 +175,7 @@ const PdsPopover = class {
|
|
|
147
175
|
this.linkTriggerToPortal();
|
|
148
176
|
// Attach click listener to handle popover visibility
|
|
149
177
|
this.triggerEl.addEventListener('click', this.handleTriggerClick);
|
|
178
|
+
this.listenForHover(this.triggerEl);
|
|
150
179
|
}
|
|
151
180
|
else {
|
|
152
181
|
this.triggerEl = null;
|
|
@@ -173,6 +202,13 @@ const PdsPopover = class {
|
|
|
173
202
|
if (!anchorWithHref) {
|
|
174
203
|
event.preventDefault();
|
|
175
204
|
}
|
|
205
|
+
if (this.openOn === 'hover' && this.popoverTargetAction !== 'hide') {
|
|
206
|
+
const heldByHover = this.hoverOpened;
|
|
207
|
+
this.pin();
|
|
208
|
+
// Pinning, not toggling: the hover before a click has already opened it.
|
|
209
|
+
if (heldByHover)
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
176
212
|
// Execute the appropriate action based on popoverTargetAction prop
|
|
177
213
|
switch (this.popoverTargetAction) {
|
|
178
214
|
case 'show':
|
|
@@ -187,6 +223,60 @@ const PdsPopover = class {
|
|
|
187
223
|
break;
|
|
188
224
|
}
|
|
189
225
|
};
|
|
226
|
+
// A tap sends touch pointer events and then a click, so touch takes the click path alone.
|
|
227
|
+
this.handleHoverEnter = (event) => {
|
|
228
|
+
if (event.pointerType === 'touch')
|
|
229
|
+
return;
|
|
230
|
+
this.clearHoverTimers();
|
|
231
|
+
if (this.active)
|
|
232
|
+
return;
|
|
233
|
+
this.hoverOpenTimer = setTimeout(() => {
|
|
234
|
+
this.hoverOpenTimer = undefined;
|
|
235
|
+
if (this.active || this.portalEl == null)
|
|
236
|
+
return;
|
|
237
|
+
this.hoverOpened = true;
|
|
238
|
+
this.show();
|
|
239
|
+
}, HOVER_OPEN_DELAY_MS);
|
|
240
|
+
};
|
|
241
|
+
this.handleHoverLeave = (event) => {
|
|
242
|
+
if (event.pointerType === 'touch')
|
|
243
|
+
return;
|
|
244
|
+
this.clearHoverTimers();
|
|
245
|
+
if (!this.hoverOpened)
|
|
246
|
+
return;
|
|
247
|
+
this.hoverCloseTimer = setTimeout(this.closeFromHover, HOVER_CLOSE_DELAY_MS);
|
|
248
|
+
if (event.currentTarget !== this.triggerEl)
|
|
249
|
+
return;
|
|
250
|
+
this.panelDistance = this.distanceToPanel(event);
|
|
251
|
+
document.addEventListener('pointermove', this.handleMoveTowardPanel);
|
|
252
|
+
};
|
|
253
|
+
// A slow diagonal from the trigger to a panel shorter than it runs beside the panel for longer
|
|
254
|
+
// than the close delay, so each move that brings the pointer closer starts the delay again.
|
|
255
|
+
this.handleMoveTowardPanel = (event) => {
|
|
256
|
+
const distance = this.distanceToPanel(event);
|
|
257
|
+
if (distance < this.panelDistance) {
|
|
258
|
+
clearTimeout(this.hoverCloseTimer);
|
|
259
|
+
this.hoverCloseTimer = setTimeout(this.closeFromHover, HOVER_CLOSE_DELAY_MS);
|
|
260
|
+
}
|
|
261
|
+
this.panelDistance = distance;
|
|
262
|
+
};
|
|
263
|
+
this.handleHoverFocusOut = (event) => {
|
|
264
|
+
if (!this.closeWhenFocusLeaves || closest.containsComposed(this.portalEl, event.relatedTarget))
|
|
265
|
+
return;
|
|
266
|
+
this.closeWhenFocusLeaves = false;
|
|
267
|
+
this.hoverCloseTimer = setTimeout(this.closeFromHover, HOVER_CLOSE_DELAY_MS);
|
|
268
|
+
};
|
|
269
|
+
this.closeFromHover = () => {
|
|
270
|
+
this.clearHoverTimers();
|
|
271
|
+
if (!this.hoverOpened)
|
|
272
|
+
return;
|
|
273
|
+
// Content shown on hover stays while focus is in it (WCAG 1.4.13).
|
|
274
|
+
if (closest.containsComposed(this.portalEl, deepActiveElement())) {
|
|
275
|
+
this.closeWhenFocusLeaves = true;
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
this.hide();
|
|
279
|
+
};
|
|
190
280
|
/** The focus style copied into a shadow root the panel opened in, which `document.head` can't reach. */
|
|
191
281
|
this.shadowFocusStyle = null;
|
|
192
282
|
/** The dialog the panel was opened in, closed along with it. */
|
|
@@ -208,6 +298,32 @@ const PdsPopover = class {
|
|
|
208
298
|
}
|
|
209
299
|
};
|
|
210
300
|
}
|
|
301
|
+
openOnChanged() {
|
|
302
|
+
this.pin();
|
|
303
|
+
this.stopListeningForHover(this.triggerEl);
|
|
304
|
+
this.stopListeningForHover(this.portalEl);
|
|
305
|
+
// Out of the page, connectedCallback binds them when it comes back.
|
|
306
|
+
if (!this.isComponentMounted)
|
|
307
|
+
return;
|
|
308
|
+
this.listenForHover(this.triggerEl);
|
|
309
|
+
this.listenForHover(this.portalEl);
|
|
310
|
+
}
|
|
311
|
+
applyPadding() {
|
|
312
|
+
if (this.portalEl != null)
|
|
313
|
+
this.portalEl.style.padding = this.paddingToken();
|
|
314
|
+
}
|
|
315
|
+
paddingToken() {
|
|
316
|
+
switch (this.padding) {
|
|
317
|
+
case 'none':
|
|
318
|
+
return 'var(--pine-dimension-none)';
|
|
319
|
+
case 'xs':
|
|
320
|
+
return 'var(--pine-dimension-xs)';
|
|
321
|
+
case 'sm':
|
|
322
|
+
return 'var(--pine-dimension-sm)';
|
|
323
|
+
default:
|
|
324
|
+
return 'var(--pine-dimension-md)';
|
|
325
|
+
}
|
|
326
|
+
}
|
|
211
327
|
restorePlacementDefault(newValue) {
|
|
212
328
|
this.placement = reflectedAttributeDefault.restoreReflectedDefault(this.el, 'placement', newValue, 'right');
|
|
213
329
|
}
|
|
@@ -258,6 +374,48 @@ const PdsPopover = class {
|
|
|
258
374
|
// Skips values already in place, so the trigger observer's own callback doesn't loop.
|
|
259
375
|
return attributes.setAttributesIfChanged(this.triggerEl, { 'aria-expanded': String(this.active), 'aria-controls': this.portalEl.id });
|
|
260
376
|
}
|
|
377
|
+
listenForHover(el) {
|
|
378
|
+
if (this.openOn !== 'hover' || el == null)
|
|
379
|
+
return;
|
|
380
|
+
el.addEventListener('pointerenter', this.handleHoverEnter);
|
|
381
|
+
el.addEventListener('pointerleave', this.handleHoverLeave);
|
|
382
|
+
el.addEventListener('focusout', this.handleHoverFocusOut);
|
|
383
|
+
}
|
|
384
|
+
stopListeningForHover(el) {
|
|
385
|
+
if (el == null)
|
|
386
|
+
return;
|
|
387
|
+
el.removeEventListener('pointerenter', this.handleHoverEnter);
|
|
388
|
+
el.removeEventListener('pointerleave', this.handleHoverLeave);
|
|
389
|
+
el.removeEventListener('focusout', this.handleHoverFocusOut);
|
|
390
|
+
}
|
|
391
|
+
distanceToPanel({ clientX, clientY }) {
|
|
392
|
+
const panel = this.portalEl.getBoundingClientRect();
|
|
393
|
+
return Math.hypot(Math.max(panel.left - clientX, 0, clientX - panel.right), Math.max(panel.top - clientY, 0, clientY - panel.bottom));
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* Keeps a popover that hover opened open, closing from then on as one opened by a click does. A
|
|
397
|
+
* manual one gives up Escape again, which it took only while hover held it.
|
|
398
|
+
*/
|
|
399
|
+
pin() {
|
|
400
|
+
var _a;
|
|
401
|
+
this.clearHoverTimers();
|
|
402
|
+
if (!this.hoverOpened)
|
|
403
|
+
return;
|
|
404
|
+
this.hoverOpened = false;
|
|
405
|
+
if (this.popoverType === 'auto')
|
|
406
|
+
return;
|
|
407
|
+
this.forgetOpen();
|
|
408
|
+
(_a = this.portalEl) === null || _a === void 0 ? void 0 : _a.removeAttribute('data-pds-popover-open');
|
|
409
|
+
document.removeEventListener('keydown', this.boundEscapeKeyHandler);
|
|
410
|
+
}
|
|
411
|
+
clearHoverTimers() {
|
|
412
|
+
clearTimeout(this.hoverOpenTimer);
|
|
413
|
+
clearTimeout(this.hoverCloseTimer);
|
|
414
|
+
this.hoverOpenTimer = undefined;
|
|
415
|
+
this.hoverCloseTimer = undefined;
|
|
416
|
+
this.closeWhenFocusLeaves = false;
|
|
417
|
+
document.removeEventListener('pointermove', this.handleMoveTowardPanel);
|
|
418
|
+
}
|
|
261
419
|
// componentDidLoad doesn't run again when a popover comes back, so rebuild whatever
|
|
262
420
|
// disconnectedCallback tore down. Each step is a no-op when nothing was.
|
|
263
421
|
connectedCallback() {
|
|
@@ -267,6 +425,7 @@ const PdsPopover = class {
|
|
|
267
425
|
this.isComponentMounted = true;
|
|
268
426
|
this.createPortal();
|
|
269
427
|
(_a = this.triggerEl) === null || _a === void 0 ? void 0 : _a.addEventListener('click', this.handleTriggerClick);
|
|
428
|
+
this.listenForHover(this.triggerEl);
|
|
270
429
|
this.observeTrigger();
|
|
271
430
|
this.linkTriggerToPortal();
|
|
272
431
|
// Still open after a move: the trigger moved, so the portal follows it, into the dialog it
|
|
@@ -301,6 +460,7 @@ const PdsPopover = class {
|
|
|
301
460
|
if (this.triggerEl != null) {
|
|
302
461
|
this.triggerEl.removeEventListener('click', this.handleTriggerClick);
|
|
303
462
|
}
|
|
463
|
+
this.stopListeningForHover(this.triggerEl);
|
|
304
464
|
(_a = this.triggerObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
305
465
|
this.triggerObserver = null;
|
|
306
466
|
// Clean up all event listeners
|
|
@@ -309,6 +469,8 @@ const PdsPopover = class {
|
|
|
309
469
|
document.removeEventListener('submit', this.handleSubmitFromPanel, true);
|
|
310
470
|
// Clear any pending debounce timers
|
|
311
471
|
this.clearDebounceTimers();
|
|
472
|
+
this.clearHoverTimers();
|
|
473
|
+
this.hoverOpened = false;
|
|
312
474
|
// Remove portal from DOM
|
|
313
475
|
this.removePortal();
|
|
314
476
|
}
|
|
@@ -342,7 +504,7 @@ const PdsPopover = class {
|
|
|
342
504
|
this.portalEl.style.borderRadius = 'var(--pine-dimension-125)';
|
|
343
505
|
this.portalEl.style.boxShadow = 'var(--pine-box-shadow-200)';
|
|
344
506
|
this.portalEl.style.margin = 'var(--pine-dimension-none)';
|
|
345
|
-
this.portalEl.style.padding =
|
|
507
|
+
this.portalEl.style.padding = this.paddingToken();
|
|
346
508
|
// Generate unique ID
|
|
347
509
|
if (!this.componentId) {
|
|
348
510
|
(_a = this.generatedPortalId) !== null && _a !== void 0 ? _a : (this.generatedPortalId = `pds-popover-portal-${PdsPopover.instanceCounter++}`);
|
|
@@ -356,6 +518,7 @@ const PdsPopover = class {
|
|
|
356
518
|
// Add global focus styles to match Pine design system
|
|
357
519
|
// This is done after appending to ensure it's part of the document and can access CSS variables
|
|
358
520
|
this.addPortalFocusStyles();
|
|
521
|
+
this.listenForHover(this.portalEl);
|
|
359
522
|
}
|
|
360
523
|
/**
|
|
361
524
|
* Adds Pine design system focus styles and dark mode border to the portal element
|
|
@@ -483,8 +646,8 @@ const PdsPopover = class {
|
|
|
483
646
|
// Update portal content with latest slot content
|
|
484
647
|
this.updatePortalContent();
|
|
485
648
|
// Show portal. The attribute tells a modal around it that this popover takes Escape first; only
|
|
486
|
-
// an auto popover listens for Escape.
|
|
487
|
-
if (this.popoverType === 'auto')
|
|
649
|
+
// an auto popover, or one hover opened, listens for Escape.
|
|
650
|
+
if (this.popoverType === 'auto' || this.hoverOpened)
|
|
488
651
|
this.portalEl.setAttribute('data-pds-popover-open', '');
|
|
489
652
|
this.portalEl.style.display = 'block';
|
|
490
653
|
this.portalEl.style.opacity = '1';
|
|
@@ -498,11 +661,16 @@ const PdsPopover = class {
|
|
|
498
661
|
// Add scroll and resize listeners for repositioning (always)
|
|
499
662
|
this.addScrollAndResizeListeners();
|
|
500
663
|
document.addEventListener('submit', this.handleSubmitFromPanel, true);
|
|
501
|
-
// Add document listeners for light dismiss and escape key (auto type only)
|
|
664
|
+
// Add document listeners for light dismiss and escape key (auto type only), or for the escape
|
|
665
|
+
// key alone while hover holds a manual popover open
|
|
502
666
|
if (this.popoverType === 'auto') {
|
|
503
|
-
|
|
667
|
+
popoversTakingEscape.push(this);
|
|
504
668
|
this.addLightDismissListeners();
|
|
505
669
|
}
|
|
670
|
+
else if (this.hoverOpened) {
|
|
671
|
+
popoversTakingEscape.push(this);
|
|
672
|
+
document.addEventListener('keydown', this.boundEscapeKeyHandler);
|
|
673
|
+
}
|
|
506
674
|
// Emit open event
|
|
507
675
|
this.pdsPopoverOpen.emit({
|
|
508
676
|
componentId: this.componentId,
|
|
@@ -513,9 +681,11 @@ const PdsPopover = class {
|
|
|
513
681
|
* Closes the popover programmatically
|
|
514
682
|
*/
|
|
515
683
|
async hide() {
|
|
684
|
+
this.clearHoverTimers();
|
|
516
685
|
if (!this.active || !this.portalEl)
|
|
517
686
|
return;
|
|
518
687
|
this.active = false;
|
|
688
|
+
this.hoverOpened = false;
|
|
519
689
|
this.unwatchDialogClose();
|
|
520
690
|
// Restoring the content drops its focus to the body, so check where focus is first. In a
|
|
521
691
|
// shadow root, document.activeElement is only its host.
|
|
@@ -594,9 +764,9 @@ const PdsPopover = class {
|
|
|
594
764
|
this.portalEl.style.border = root instanceof ShadowRoot && closest.closest('[data-theme="dark"]', this.el) ? 'var(--pine-border)' : '';
|
|
595
765
|
}
|
|
596
766
|
forgetOpen() {
|
|
597
|
-
const index =
|
|
767
|
+
const index = popoversTakingEscape.indexOf(this);
|
|
598
768
|
if (index >= 0)
|
|
599
|
-
|
|
769
|
+
popoversTakingEscape.splice(index, 1);
|
|
600
770
|
}
|
|
601
771
|
/**
|
|
602
772
|
* Whether an Escape is this popover's. One from a dialog the popover isn't in belongs to that
|
|
@@ -705,7 +875,7 @@ const PdsPopover = class {
|
|
|
705
875
|
return;
|
|
706
876
|
// Like the native Popover API, Escape closes only the top popover: the last one opened that
|
|
707
877
|
// it applies to. Every open popover hears it, so each checks whether it's that one.
|
|
708
|
-
const top = [...
|
|
878
|
+
const top = [...popoversTakingEscape].reverse().find(popover => popover.takesEscapeFrom(event));
|
|
709
879
|
if (top !== this)
|
|
710
880
|
return;
|
|
711
881
|
// Take the key, so the dialog or modal around it doesn't close too.
|
|
@@ -830,10 +1000,16 @@ const PdsPopover = class {
|
|
|
830
1000
|
}, 16); // ~1 frame at 60fps
|
|
831
1001
|
}
|
|
832
1002
|
render() {
|
|
833
|
-
return (index.h(index.Host, { key: '
|
|
1003
|
+
return (index.h(index.Host, { key: 'e48b897acdc9e89f2e6b1449e7a358da7da1060c', id: this.componentId }, index.h("span", { key: 'b83b2c234b07703c2c850a9991c94939ed2fdaf7', class: "pds-popover__trigger-wrapper" }, index.h("slot", { key: '0a7f7829ee445fd57cf824ebee1409b3c571f983', name: "trigger", onSlotchange: this.handleTriggerSlotChange })), index.h("div", { key: '8c1fe2d4d7c4342b4bd5eb4c56e596f17b4e14fa', class: "pds-popover__content-slot-wrapper" }, index.h("slot", { key: '4ccfce1f335acbc436f7942e497f5d360f849d48', onSlotchange: this.handleContentSlotChange }))));
|
|
834
1004
|
}
|
|
835
1005
|
get el() { return index.getElement(this); }
|
|
836
1006
|
static get watchers() { return {
|
|
1007
|
+
"openOn": [{
|
|
1008
|
+
"openOnChanged": 0
|
|
1009
|
+
}],
|
|
1010
|
+
"padding": [{
|
|
1011
|
+
"applyPadding": 0
|
|
1012
|
+
}],
|
|
837
1013
|
"placement": [{
|
|
838
1014
|
"restorePlacementDefault": 0
|
|
839
1015
|
}]
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var index = require('./index-jl_Q819j.js');
|
|
4
4
|
var form = require('./form-MhwfKTuo.js');
|
|
5
|
-
var index$1 = require('./index-
|
|
5
|
+
var index$1 = require('./index-Do70atou.js');
|
|
6
6
|
require('./keep-hydrated-CiXgkEYd.js');
|
|
7
7
|
|
|
8
8
|
const pdsRadioGroupCss = () => `.sc-pds-radio-group-h{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--pine-dimension-sm)}.is-invalid.sc-pds-radio-group-h .pds-radio-group__message--error.sc-pds-radio-group{color:var(--pine-color-text-message-danger)}.pds-radio-group__label.sc-pds-radio-group{color:var(--pine-color-text-label);font:var(--pine-typography-heading-6);font-weight:var(--pine-font-weight-medium);letter-spacing:var(--pine-letter-spacing-heading-6)}.pds-radio-group__radios.sc-pds-radio-group{display:-ms-flexbox;display:flex;gap:var(--pds-radio-group-gap, var(--pine-dimension-xs))}.pds-radio-group__radios--row.sc-pds-radio-group{-ms-flex-align:start;align-items:flex-start;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.pds-radio-group__radios--column.sc-pds-radio-group{-ms-flex-direction:column;flex-direction:column}.pds-radio-group__message.sc-pds-radio-group{color:var(--pine-color-text-message);font:var(--pine-typography-body);width:100%}.pds-radio-group__message--error.sc-pds-radio-group{display:-ms-flexbox;display:flex;gap:var(--pine-dimension-2xs)}.pds-radio-group__message--error.sc-pds-radio-group pds-icon.sc-pds-radio-group{-webkit-margin-before:var(--pine-dimension-050);margin-block-start:var(--pine-dimension-050)}`;
|
|
@@ -171,7 +171,7 @@ const PdsRadioGroup = class {
|
|
|
171
171
|
'pds-radio-group__radios': true,
|
|
172
172
|
'pds-radio-group__radios--row': this.direction === 'row',
|
|
173
173
|
'pds-radio-group__radios--column': this.direction === 'column',
|
|
174
|
-
} }, index.h("slot", { key: 'd88dde3c631e25c01bc7b6d3ef5d517255fabd1a', onSlotchange: () => this.updateChildRadios() })), this.helperMessage && (index.h("div", { key: 'a229214ed01663b0fc34f35e27c7148b4eb412ab', class: "pds-radio-group__message", id: form.messageId(this._groupId, 'helper') }, this.helperMessage)), this.errorMessage && (index.h("div", { key: 'dc092f2e6dbef0cb369cf00a6eccf9a095a0313d', class: "pds-radio-group__message pds-radio-group__message--error", id: form.messageId(this._groupId, 'error'), "aria-live": "assertive" }, index.h("pds-icon", { key: '
|
|
174
|
+
} }, index.h("slot", { key: 'd88dde3c631e25c01bc7b6d3ef5d517255fabd1a', onSlotchange: () => this.updateChildRadios() })), this.helperMessage && (index.h("div", { key: 'a229214ed01663b0fc34f35e27c7148b4eb412ab', class: "pds-radio-group__message", id: form.messageId(this._groupId, 'helper') }, this.helperMessage)), this.errorMessage && (index.h("div", { key: 'dc092f2e6dbef0cb369cf00a6eccf9a095a0313d', class: "pds-radio-group__message pds-radio-group__message--error", id: form.messageId(this._groupId, 'error'), "aria-live": "assertive" }, index.h("pds-icon", { key: '83b0129d3d45b74ef1f53acc923387b2de7f079b', "aria-hidden": "true", icon: index$1.danger, size: "small" }), this.errorMessage))));
|
|
175
175
|
}
|
|
176
176
|
get el() { return index.getElement(this); }
|
|
177
177
|
static get watchers() { return {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var index = require('./index-jl_Q819j.js');
|
|
4
4
|
var attributes = require('./attributes-BJ7KBHql.js');
|
|
5
5
|
var form = require('./form-MhwfKTuo.js');
|
|
6
|
-
var index$1 = require('./index-
|
|
6
|
+
var index$1 = require('./index-Do70atou.js');
|
|
7
7
|
require('./keep-hydrated-CiXgkEYd.js');
|
|
8
8
|
|
|
9
9
|
const labelCss = () => `.sc-pds-radio-h{display:inline-block}[aria-disabled=true].sc-pds-radio-h label.sc-pds-radio{color:var(--pine-color-text-label-disabled)}[aria-readonly=true].sc-pds-radio-h label.sc-pds-radio{color:var(--pine-color-text-label-readonly)}label.sc-pds-radio{color:var(--pine-color-text-label);font:var(--pine-typography-body-medium);letter-spacing:var(--pine-letter-spacing)}`;
|
|
@@ -106,11 +106,11 @@ const PdsRadio = class {
|
|
|
106
106
|
const renderLabelAndMessages = () => [
|
|
107
107
|
index.h("label", { htmlFor: this.componentId, key: `${this.componentId}-label` }, index.h("input", { key: 'ccd618855831bcee309e815f2cd2712fd4e8fe1f', "aria-describedby": form.assignDescription(this.componentId, this.invalid, this.helperMessage, this.errorMessage), "aria-invalid": this.invalid ? "true" : undefined, type: "radio", id: this.componentId, name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onChange: this.handleRadioChange, class: this.hasImage() ? 'visually-hidden' : '' }), index.h("span", { key: '2e372a880c28f48fb804bac2518208082c141fad', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)),
|
|
108
108
|
this.helperMessage && (index.h("div", { key: `${this.componentId}-helper`, class: 'pds-radio__message', id: form.messageId(this.componentId, 'helper') }, this.helperMessage)),
|
|
109
|
-
this.errorMessage && (index.h("div", { key: `${this.componentId}-error`, class: `pds-radio__message pds-radio__message--error`, id: form.messageId(this.componentId, 'error'), "aria-live": "assertive" }, index.h("pds-icon", { key: '
|
|
109
|
+
this.errorMessage && (index.h("div", { key: `${this.componentId}-error`, class: `pds-radio__message pds-radio__message--error`, id: form.messageId(this.componentId, 'error'), "aria-live": "assertive" }, index.h("pds-icon", { key: '08e7a2319eddc1d314ee9dddd51a5ce88cd4ae48', "aria-hidden": "true", icon: index$1.danger, size: "small" }), this.errorMessage))
|
|
110
110
|
];
|
|
111
111
|
const hostClass = this.classNames();
|
|
112
112
|
this.hostKeeper.record(hostClass);
|
|
113
|
-
return (index.h(index.Host, { key: '
|
|
113
|
+
return (index.h(index.Host, { key: '351376552abee90f50c3aceb03ecf8a81ae1b82b', class: hostClass }, this.hasImage() && (index.h("div", { key: 'fd85fd36b2ebd99b12c3bb2a13cf3d3e3c26530f', class: "pds-radio__image-container", part: "image-container" }, index.h("slot", { key: 'abe75dbe38d29340b805f70861b084c1b3836be9', name: "image", onSlotchange: () => (this._hasImage = this.hasImageSlot()) }))), this.hasImage() ? (index.h("div", { class: "pds-radio__content-wrapper" }, renderLabelAndMessages())) : (renderLabelAndMessages())));
|
|
114
114
|
}
|
|
115
115
|
get el() { return index.getElement(this); }
|
|
116
116
|
};
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var index = require('./index-jl_Q819j.js');
|
|
4
4
|
var attributes = require('./attributes-BJ7KBHql.js');
|
|
5
5
|
var form = require('./form-MhwfKTuo.js');
|
|
6
|
-
var index$1 = require('./index-
|
|
6
|
+
var index$1 = require('./index-Do70atou.js');
|
|
7
7
|
require('./keep-hydrated-CiXgkEYd.js');
|
|
8
8
|
|
|
9
9
|
const pdsSelectTokensCss = () => `:host{--pine-select-color-background-danger:var(--pine-color-red-050)}`;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var index = require('./index-jl_Q819j.js');
|
|
4
4
|
var attributes = require('./attributes-BJ7KBHql.js');
|
|
5
|
-
var index$1 = require('./index-
|
|
5
|
+
var index$1 = require('./index-Do70atou.js');
|
|
6
6
|
require('./keep-hydrated-CiXgkEYd.js');
|
|
7
7
|
|
|
8
8
|
const pdsSortableItemCss = () => `.pds-sortable-item.sc-pds-sortable-item-h{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;padding-block:var(--pine-dimension-xs);padding-inline:var(--pine-dimension-md)}.pds-sortable-item.sc-pds-sortable-item-h .pds-sortable-item__actions.sc-pds-sortable-item{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-padding-start:var(--pine-dimension-md);padding-inline-start:var(--pine-dimension-md)}.pds-sortable-item.sc-pds-sortable-item-h .pds-sortable-item__handle.sc-pds-sortable-item{line-height:1;-webkit-margin-end:var(--pine-dimension-md);margin-inline-end:var(--pine-dimension-md)}.pds-sortable--bordered .pds-sortable-item.sc-pds-sortable-item-h:first-child{border-start-end-radius:calc(var(--pine-dimension-xs) * 1.25);border-start-start-radius:calc(var(--pine-dimension-xs) * 1.25)}.pds-sortable--bordered .pds-sortable-item.sc-pds-sortable-item-h:last-child{border-end-end-radius:calc(var(--pine-dimension-xs) * 1.25);border-end-start-radius:calc(var(--pine-dimension-xs) * 1.25)}.pds-sortable--divided .pds-sortable-item.sc-pds-sortable-item-h{-webkit-border-after:var(--pine-border);border-block-end:var(--pine-border)}.pds-sortable--divided .pds-sortable-item.sc-pds-sortable-item-h:last-child{-webkit-border-after:0;border-block-end:0}.pds-sortable--handle-type-row .pds-sortable-item.sc-pds-sortable-item-h{cursor:-webkit-grab;cursor:grab}.pds-sortable--handle-type-handle .pds-sortable-item.sc-pds-sortable-item-h .pds-sortable-item__handle.sc-pds-sortable-item{cursor:-webkit-grab;cursor:grab}.pds-sortable--disabled .pds-sortable-item.sc-pds-sortable-item-h{cursor:not-allowed;opacity:0.5}.pds-sortable--disabled .pds-sortable-item.sc-pds-sortable-item-h .pds-sortable-item__handle.sc-pds-sortable-item{cursor:not-allowed}.pds-sortable--disabled .pds-sortable-item.sc-pds-sortable-item-h:hover{background-color:transparent}.pds-sortable:not(.pds-sortable--disabled) .pds-sortable-item.sc-pds-sortable-item-h:hover{background-color:var(--pine-color-background-container-hover)}.pds-sortable:not(.pds-sortable--disabled) .pds-sortable-item.sc-pds-sortable-item-h:hover pds-icon.sc-pds-sortable-item{color:var(--pine-color-info)}.pds-sortable-item--drag.sc-pds-sortable-item-h{background-color:var(--pine-color-background-container);border-radius:0;-webkit-box-shadow:var(--pine-box-shadow-400);box-shadow:var(--pine-box-shadow-400);opacity:1}.pds-sortable-item--ghost.sc-pds-sortable-item-h{background-color:var(--pine-color-background-container-hover);border-radius:0}`;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var index = require('./index-jl_Q819j.js');
|
|
4
4
|
var form = require('./form-MhwfKTuo.js');
|
|
5
|
-
var index$1 = require('./index-
|
|
5
|
+
var index$1 = require('./index-Do70atou.js');
|
|
6
6
|
var attributes = require('./attributes-BJ7KBHql.js');
|
|
7
7
|
require('./keep-hydrated-CiXgkEYd.js');
|
|
8
8
|
|
|
@@ -122,7 +122,7 @@ const PdsSwitch = class {
|
|
|
122
122
|
this.hostKeeper.record(hostClass, {}, { 'aria-disabled': ariaDisabled });
|
|
123
123
|
return (index.h(index.Host, { key: 'b8bd2870be101081aa8a65cdee45397bc4c21435', class: hostClass, "aria-disabled": ariaDisabled }, index.h("label", { key: '1e223f22f7fc6c576098353ad67dc11500def8b4', htmlFor: this.componentId }, index.h("input", Object.assign({ key: 'edf59869e165a65b97465ea9de06f7ea82fbc9a6', "aria-describedby": form.assignDescription(this.componentId, this.invalid, this.helperMessage, this.errorMessage), "aria-invalid": this.invalid ? "true" : undefined, checked: this.checked, class: "pds-switch__input", disabled: this.disabled, id: this.componentId, name: this.name ? this.name : this.componentId, onChange: this.onSwitchUpdate, required: this.required, type: "checkbox", value: this.value }, this.inheritedAttributes)), index.h("span", { key: '1c252b9455471069f8c6ea6c13f2e88c99308b41', class: this.hideLabel ? 'visually-hidden' : '' }, index.h("slot", { key: 'ce0d471918bd3018f5e55d0d1e6c5c2247790f81', name: "label", onSlotchange: this.updateHasLabelSlot }), !this.hasLabelSlot && this.label)), this.helperMessage &&
|
|
124
124
|
index.h("div", { key: '64874b15403f1f42344715ac34febdfb8d94042a', class: `pds-switch__message`, id: form.messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
|
|
125
|
-
index.h("div", { key: '560ea486859124bb0ac2f75ab4bd34b0bca7efbc', class: `pds-switch__message pds-switch__message--error`, id: form.messageId(this.componentId, 'error'), "aria-live": "assertive" }, index.h("pds-icon", { key: '
|
|
125
|
+
index.h("div", { key: '560ea486859124bb0ac2f75ab4bd34b0bca7efbc', class: `pds-switch__message pds-switch__message--error`, id: form.messageId(this.componentId, 'error'), "aria-live": "assertive" }, index.h("pds-icon", { key: '2ae8dc876745af26fa2418f2265248aeb8f97a2b', "aria-hidden": "true", icon: index$1.danger, size: "small" }), this.errorMessage)));
|
|
126
126
|
}
|
|
127
127
|
static get formAssociated() { return true; }
|
|
128
128
|
get el() { return index.getElement(this); }
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var index = require('./index-jl_Q819j.js');
|
|
4
4
|
var scroll = require('./scroll-2XcoE_6Q.js');
|
|
5
|
-
var truncationTooltip = require('./truncation-tooltip-
|
|
5
|
+
var truncationTooltip = require('./truncation-tooltip-BtuiXLV0.js');
|
|
6
6
|
require('./keep-hydrated-CiXgkEYd.js');
|
|
7
7
|
require('./floating-ui.dom-Dc8Anyel.js');
|
|
8
8
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var index = require('./index-jl_Q819j.js');
|
|
4
|
-
var index$1 = require('./index-
|
|
4
|
+
var index$1 = require('./index-Do70atou.js');
|
|
5
5
|
var scroll = require('./scroll-2XcoE_6Q.js');
|
|
6
6
|
require('./keep-hydrated-CiXgkEYd.js');
|
|
7
7
|
|
|
@@ -211,7 +211,7 @@ const PdsTableHeadCell = class {
|
|
|
211
211
|
this.tableRef.fixedColumn &&
|
|
212
212
|
this.tableRef.selectable
|
|
213
213
|
? { '--fixed-cell-position': '40px' }
|
|
214
|
-
: {} }, index.h("slot", { key: '96084d87a34d7b601a8e8325f344f1fe6601204e' }), this.sortable && this.isActive && (index.h("pds-icon", { key: '
|
|
214
|
+
: {} }, index.h("slot", { key: '96084d87a34d7b601a8e8325f344f1fe6601204e' }), this.sortable && this.isActive && (index.h("pds-icon", { key: '79606519d810dc9882a91cbc3b6a199457086631', icon: this.sortingDirection === 'asc' ? index$1.upSmall : index$1.downSmall, part: "sort-icon", "aria-hidden": "true" }))));
|
|
215
215
|
}
|
|
216
216
|
get hostElement() { return index.getElement(this); }
|
|
217
217
|
};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var index = require('./index-jl_Q819j.js');
|
|
4
4
|
var utils = require('./utils-BhRmyxT8.js');
|
|
5
|
-
var truncationTooltip = require('./truncation-tooltip-
|
|
5
|
+
var truncationTooltip = require('./truncation-tooltip-BtuiXLV0.js');
|
|
6
6
|
var index$1 = require('./index.cjs.js');
|
|
7
7
|
require('./keep-hydrated-CiXgkEYd.js');
|
|
8
8
|
require('./floating-ui.dom-Dc8Anyel.js');
|
|
@@ -4,7 +4,7 @@ var index = require('./index-jl_Q819j.js');
|
|
|
4
4
|
var form = require('./form-MhwfKTuo.js');
|
|
5
5
|
var utils = require('./utils-BhRmyxT8.js');
|
|
6
6
|
var attributes = require('./attributes-BJ7KBHql.js');
|
|
7
|
-
var index$1 = require('./index-
|
|
7
|
+
var index$1 = require('./index-Do70atou.js');
|
|
8
8
|
var i18nFormat = require('./i18n-format-BD0PmYzT.js');
|
|
9
9
|
require('./keep-hydrated-CiXgkEYd.js');
|
|
10
10
|
|
|
@@ -322,7 +322,7 @@ const PdsTextarea = class {
|
|
|
322
322
|
return (index.h(index.Host, { key: '5933dab0c3cd25b1cf2f6851ece8e8064bc7f3b9', "aria-disabled": this.disabled ? 'true' : null, "aria-readonly": this.readonly ? 'true' : null, "has-action": this.hasAction && !this.hideLabel ? 'true' : null }, index.h("div", { key: '4f1752514d8e5b0f0e3439515cb9e5f043607da1', class: "pds-textarea" }, this.label &&
|
|
323
323
|
index.h("div", { key: 'd4e6df0b381d781b70eeae72ff2f0e9428c0d901', class: "pds-textarea__label-wrapper" }, index.h("label", { key: '747d82067eb571d02840cfd981865821099f288b', htmlFor: this.componentId }, index.h("span", { key: 'bfab6e8ede66d0169dd020b7dd97e125aba417b0', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), !this.hideLabel && this.renderAction()), index.h("div", { key: 'a18611c03270e7491c1af69f931419c832192c06', class: "pds-textarea__field-wrapper" }, index.h("textarea", Object.assign({ key: '868382c7b04a4e59c0daa9d98afcdc9048f6224f', ref: (el) => this.nativeTextarea = el, "aria-describedby": form.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 &&
|
|
324
324
|
index.h("p", { key: 'dcb36f21443d2a782c25b7c29c4ce6215f3b212b', class: "pds-textarea__helper-message", id: form.messageId(this.componentId, 'helper') }, this.helperMessage), this.invalid &&
|
|
325
|
-
index.h("p", { key: 'be30fb1a38453296e26b775955389c0ec569df67', "aria-live": "assertive", class: "pds-textarea__error-message", id: form.messageId(this.componentId, 'error') }, index.h("pds-icon", { key: '
|
|
325
|
+
index.h("p", { key: 'be30fb1a38453296e26b775955389c0ec569df67', "aria-live": "assertive", class: "pds-textarea__error-message", id: form.messageId(this.componentId, 'error') }, index.h("pds-icon", { key: '853f06489ef6ca50205799659d221bd3bea7d8da', "aria-hidden": "true", icon: index$1.danger, size: "small" }), this.errorMessage))));
|
|
326
326
|
}
|
|
327
327
|
static get formAssociated() { return true; }
|
|
328
328
|
get el() { return index.getElement(this); }
|
|
@@ -132,7 +132,7 @@ const PdsToast = class {
|
|
|
132
132
|
'pds-toast--animating-out': this.isAnimatingOut
|
|
133
133
|
}, role: "alert", "aria-live": "polite" }, this.renderIcon(), index.h("span", { key: 'eaf615d41c138e2c73088d29bac9349f49a63ba7', class: "pds-toast__message" }, index.h("slot", { key: '33973447154d80b016f5a7954b0473db03228379' })), this.dismissible && (index.h("button", { key: 'e189834633e1e648282ee43633fd05e53ce38869', type: "button", part: "dismiss", class: "pds-toast__button", onClick: () => {
|
|
134
134
|
this.dismiss();
|
|
135
|
-
}, "aria-label": this.dismissLabel }, index.h("pds-icon", { key: '
|
|
135
|
+
}, "aria-label": this.dismissLabel }, index.h("pds-icon", { key: '913201979e52be743ba933ff173e023b81553362', name: "remove", "aria-hidden": "true" }))))));
|
|
136
136
|
}
|
|
137
137
|
get el() { return index.getElement(this); }
|
|
138
138
|
static get watchers() { return {
|