@pine-ds/core 4.7.2 → 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-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-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-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-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-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-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-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 +340 -103
- package/hydrate/index.mjs +340 -103
- 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-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-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
|
@@ -48,8 +48,12 @@ const cssEscape = (value) => {
|
|
|
48
48
|
|
|
49
49
|
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}`;
|
|
50
50
|
|
|
51
|
-
/** Open
|
|
52
|
-
const
|
|
51
|
+
/** Open popovers that close on Escape, in the order they opened: Escape goes to the last one it applies to. */
|
|
52
|
+
const popoversTakingEscape = [];
|
|
53
|
+
/** Hovering the trigger waits this long before opening, so a pointer passing over it doesn't open it. */
|
|
54
|
+
const HOVER_OPEN_DELAY_MS = 120;
|
|
55
|
+
/** Leaving the trigger and panel waits this long before closing, which covers the gap between them. */
|
|
56
|
+
const HOVER_CLOSE_DELAY_MS = 200;
|
|
53
57
|
/** The focused element, followed down through shadow roots to the control that has focus. */
|
|
54
58
|
function deepActiveElement() {
|
|
55
59
|
var _a;
|
|
@@ -109,11 +113,29 @@ const PdsPopover = class {
|
|
|
109
113
|
* Timestamp when popover was opened (for preventing immediate close)
|
|
110
114
|
*/
|
|
111
115
|
this.openTimestamp = 0;
|
|
116
|
+
/**
|
|
117
|
+
* Set while hover holds the popover open, until a click pins it or it closes
|
|
118
|
+
*/
|
|
119
|
+
this.hoverOpened = false;
|
|
120
|
+
/**
|
|
121
|
+
* Set when the pointer left while focus was in the panel, so focus leaving it closes it instead
|
|
122
|
+
*/
|
|
123
|
+
this.closeWhenFocusLeaves = false;
|
|
124
|
+
/**
|
|
125
|
+
* How far the pointer was from the panel at its last move after leaving the trigger
|
|
126
|
+
*/
|
|
127
|
+
this.panelDistance = Infinity;
|
|
112
128
|
/**
|
|
113
129
|
* Determines the action that triggers the popover. For manual popovers, the consumer is responsible for toggling this value.
|
|
114
130
|
* @defaultValue "show"
|
|
115
131
|
*/
|
|
116
132
|
this.popoverTargetAction = 'show';
|
|
133
|
+
/**
|
|
134
|
+
* Determines how the popover opens. With `hover`, it also opens when the pointer rests on the trigger and closes
|
|
135
|
+
* when the pointer leaves, until a click on the trigger keeps it open. Enter or Space on the trigger opens it either way.
|
|
136
|
+
* @defaultValue "click"
|
|
137
|
+
*/
|
|
138
|
+
this.openOn = 'click';
|
|
117
139
|
/**
|
|
118
140
|
* Determines the type of popover. Auto popovers can be "light dismissed" by clicking outside of the popover.
|
|
119
141
|
* Manual popovers require the consumer to handle the visibility of the popover.
|
|
@@ -124,6 +146,11 @@ const PdsPopover = class {
|
|
|
124
146
|
* @defaultValue 352
|
|
125
147
|
*/
|
|
126
148
|
this.maxWidth = 352;
|
|
149
|
+
/**
|
|
150
|
+
* Sets the padding of the popover content
|
|
151
|
+
* @defaultValue "md"
|
|
152
|
+
*/
|
|
153
|
+
this.padding = 'md';
|
|
127
154
|
/**
|
|
128
155
|
* Determines the preferred position of the popover
|
|
129
156
|
* @defaultValue "right"
|
|
@@ -138,6 +165,7 @@ const PdsPopover = class {
|
|
|
138
165
|
// Clean up previous trigger's event listener if it exists
|
|
139
166
|
if (this.triggerEl != null) {
|
|
140
167
|
this.triggerEl.removeEventListener('click', this.handleTriggerClick);
|
|
168
|
+
this.stopListeningForHover(this.triggerEl);
|
|
141
169
|
}
|
|
142
170
|
if (assignedElements.length > 0) {
|
|
143
171
|
// Use the first assigned element as the trigger
|
|
@@ -145,6 +173,7 @@ const PdsPopover = class {
|
|
|
145
173
|
this.linkTriggerToPortal();
|
|
146
174
|
// Attach click listener to handle popover visibility
|
|
147
175
|
this.triggerEl.addEventListener('click', this.handleTriggerClick);
|
|
176
|
+
this.listenForHover(this.triggerEl);
|
|
148
177
|
}
|
|
149
178
|
else {
|
|
150
179
|
this.triggerEl = null;
|
|
@@ -171,6 +200,13 @@ const PdsPopover = class {
|
|
|
171
200
|
if (!anchorWithHref) {
|
|
172
201
|
event.preventDefault();
|
|
173
202
|
}
|
|
203
|
+
if (this.openOn === 'hover' && this.popoverTargetAction !== 'hide') {
|
|
204
|
+
const heldByHover = this.hoverOpened;
|
|
205
|
+
this.pin();
|
|
206
|
+
// Pinning, not toggling: the hover before a click has already opened it.
|
|
207
|
+
if (heldByHover)
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
174
210
|
// Execute the appropriate action based on popoverTargetAction prop
|
|
175
211
|
switch (this.popoverTargetAction) {
|
|
176
212
|
case 'show':
|
|
@@ -185,6 +221,60 @@ const PdsPopover = class {
|
|
|
185
221
|
break;
|
|
186
222
|
}
|
|
187
223
|
};
|
|
224
|
+
// A tap sends touch pointer events and then a click, so touch takes the click path alone.
|
|
225
|
+
this.handleHoverEnter = (event) => {
|
|
226
|
+
if (event.pointerType === 'touch')
|
|
227
|
+
return;
|
|
228
|
+
this.clearHoverTimers();
|
|
229
|
+
if (this.active)
|
|
230
|
+
return;
|
|
231
|
+
this.hoverOpenTimer = setTimeout(() => {
|
|
232
|
+
this.hoverOpenTimer = undefined;
|
|
233
|
+
if (this.active || this.portalEl == null)
|
|
234
|
+
return;
|
|
235
|
+
this.hoverOpened = true;
|
|
236
|
+
this.show();
|
|
237
|
+
}, HOVER_OPEN_DELAY_MS);
|
|
238
|
+
};
|
|
239
|
+
this.handleHoverLeave = (event) => {
|
|
240
|
+
if (event.pointerType === 'touch')
|
|
241
|
+
return;
|
|
242
|
+
this.clearHoverTimers();
|
|
243
|
+
if (!this.hoverOpened)
|
|
244
|
+
return;
|
|
245
|
+
this.hoverCloseTimer = setTimeout(this.closeFromHover, HOVER_CLOSE_DELAY_MS);
|
|
246
|
+
if (event.currentTarget !== this.triggerEl)
|
|
247
|
+
return;
|
|
248
|
+
this.panelDistance = this.distanceToPanel(event);
|
|
249
|
+
document.addEventListener('pointermove', this.handleMoveTowardPanel);
|
|
250
|
+
};
|
|
251
|
+
// A slow diagonal from the trigger to a panel shorter than it runs beside the panel for longer
|
|
252
|
+
// than the close delay, so each move that brings the pointer closer starts the delay again.
|
|
253
|
+
this.handleMoveTowardPanel = (event) => {
|
|
254
|
+
const distance = this.distanceToPanel(event);
|
|
255
|
+
if (distance < this.panelDistance) {
|
|
256
|
+
clearTimeout(this.hoverCloseTimer);
|
|
257
|
+
this.hoverCloseTimer = setTimeout(this.closeFromHover, HOVER_CLOSE_DELAY_MS);
|
|
258
|
+
}
|
|
259
|
+
this.panelDistance = distance;
|
|
260
|
+
};
|
|
261
|
+
this.handleHoverFocusOut = (event) => {
|
|
262
|
+
if (!this.closeWhenFocusLeaves || containsComposed(this.portalEl, event.relatedTarget))
|
|
263
|
+
return;
|
|
264
|
+
this.closeWhenFocusLeaves = false;
|
|
265
|
+
this.hoverCloseTimer = setTimeout(this.closeFromHover, HOVER_CLOSE_DELAY_MS);
|
|
266
|
+
};
|
|
267
|
+
this.closeFromHover = () => {
|
|
268
|
+
this.clearHoverTimers();
|
|
269
|
+
if (!this.hoverOpened)
|
|
270
|
+
return;
|
|
271
|
+
// Content shown on hover stays while focus is in it (WCAG 1.4.13).
|
|
272
|
+
if (containsComposed(this.portalEl, deepActiveElement())) {
|
|
273
|
+
this.closeWhenFocusLeaves = true;
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
this.hide();
|
|
277
|
+
};
|
|
188
278
|
/** The focus style copied into a shadow root the panel opened in, which `document.head` can't reach. */
|
|
189
279
|
this.shadowFocusStyle = null;
|
|
190
280
|
/** The dialog the panel was opened in, closed along with it. */
|
|
@@ -206,6 +296,32 @@ const PdsPopover = class {
|
|
|
206
296
|
}
|
|
207
297
|
};
|
|
208
298
|
}
|
|
299
|
+
openOnChanged() {
|
|
300
|
+
this.pin();
|
|
301
|
+
this.stopListeningForHover(this.triggerEl);
|
|
302
|
+
this.stopListeningForHover(this.portalEl);
|
|
303
|
+
// Out of the page, connectedCallback binds them when it comes back.
|
|
304
|
+
if (!this.isComponentMounted)
|
|
305
|
+
return;
|
|
306
|
+
this.listenForHover(this.triggerEl);
|
|
307
|
+
this.listenForHover(this.portalEl);
|
|
308
|
+
}
|
|
309
|
+
applyPadding() {
|
|
310
|
+
if (this.portalEl != null)
|
|
311
|
+
this.portalEl.style.padding = this.paddingToken();
|
|
312
|
+
}
|
|
313
|
+
paddingToken() {
|
|
314
|
+
switch (this.padding) {
|
|
315
|
+
case 'none':
|
|
316
|
+
return 'var(--pine-dimension-none)';
|
|
317
|
+
case 'xs':
|
|
318
|
+
return 'var(--pine-dimension-xs)';
|
|
319
|
+
case 'sm':
|
|
320
|
+
return 'var(--pine-dimension-sm)';
|
|
321
|
+
default:
|
|
322
|
+
return 'var(--pine-dimension-md)';
|
|
323
|
+
}
|
|
324
|
+
}
|
|
209
325
|
restorePlacementDefault(newValue) {
|
|
210
326
|
this.placement = restoreReflectedDefault(this.el, 'placement', newValue, 'right');
|
|
211
327
|
}
|
|
@@ -256,6 +372,48 @@ const PdsPopover = class {
|
|
|
256
372
|
// Skips values already in place, so the trigger observer's own callback doesn't loop.
|
|
257
373
|
return setAttributesIfChanged(this.triggerEl, { 'aria-expanded': String(this.active), 'aria-controls': this.portalEl.id });
|
|
258
374
|
}
|
|
375
|
+
listenForHover(el) {
|
|
376
|
+
if (this.openOn !== 'hover' || el == null)
|
|
377
|
+
return;
|
|
378
|
+
el.addEventListener('pointerenter', this.handleHoverEnter);
|
|
379
|
+
el.addEventListener('pointerleave', this.handleHoverLeave);
|
|
380
|
+
el.addEventListener('focusout', this.handleHoverFocusOut);
|
|
381
|
+
}
|
|
382
|
+
stopListeningForHover(el) {
|
|
383
|
+
if (el == null)
|
|
384
|
+
return;
|
|
385
|
+
el.removeEventListener('pointerenter', this.handleHoverEnter);
|
|
386
|
+
el.removeEventListener('pointerleave', this.handleHoverLeave);
|
|
387
|
+
el.removeEventListener('focusout', this.handleHoverFocusOut);
|
|
388
|
+
}
|
|
389
|
+
distanceToPanel({ clientX, clientY }) {
|
|
390
|
+
const panel = this.portalEl.getBoundingClientRect();
|
|
391
|
+
return Math.hypot(Math.max(panel.left - clientX, 0, clientX - panel.right), Math.max(panel.top - clientY, 0, clientY - panel.bottom));
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* Keeps a popover that hover opened open, closing from then on as one opened by a click does. A
|
|
395
|
+
* manual one gives up Escape again, which it took only while hover held it.
|
|
396
|
+
*/
|
|
397
|
+
pin() {
|
|
398
|
+
var _a;
|
|
399
|
+
this.clearHoverTimers();
|
|
400
|
+
if (!this.hoverOpened)
|
|
401
|
+
return;
|
|
402
|
+
this.hoverOpened = false;
|
|
403
|
+
if (this.popoverType === 'auto')
|
|
404
|
+
return;
|
|
405
|
+
this.forgetOpen();
|
|
406
|
+
(_a = this.portalEl) === null || _a === void 0 ? void 0 : _a.removeAttribute('data-pds-popover-open');
|
|
407
|
+
document.removeEventListener('keydown', this.boundEscapeKeyHandler);
|
|
408
|
+
}
|
|
409
|
+
clearHoverTimers() {
|
|
410
|
+
clearTimeout(this.hoverOpenTimer);
|
|
411
|
+
clearTimeout(this.hoverCloseTimer);
|
|
412
|
+
this.hoverOpenTimer = undefined;
|
|
413
|
+
this.hoverCloseTimer = undefined;
|
|
414
|
+
this.closeWhenFocusLeaves = false;
|
|
415
|
+
document.removeEventListener('pointermove', this.handleMoveTowardPanel);
|
|
416
|
+
}
|
|
259
417
|
// componentDidLoad doesn't run again when a popover comes back, so rebuild whatever
|
|
260
418
|
// disconnectedCallback tore down. Each step is a no-op when nothing was.
|
|
261
419
|
connectedCallback() {
|
|
@@ -265,6 +423,7 @@ const PdsPopover = class {
|
|
|
265
423
|
this.isComponentMounted = true;
|
|
266
424
|
this.createPortal();
|
|
267
425
|
(_a = this.triggerEl) === null || _a === void 0 ? void 0 : _a.addEventListener('click', this.handleTriggerClick);
|
|
426
|
+
this.listenForHover(this.triggerEl);
|
|
268
427
|
this.observeTrigger();
|
|
269
428
|
this.linkTriggerToPortal();
|
|
270
429
|
// Still open after a move: the trigger moved, so the portal follows it, into the dialog it
|
|
@@ -299,6 +458,7 @@ const PdsPopover = class {
|
|
|
299
458
|
if (this.triggerEl != null) {
|
|
300
459
|
this.triggerEl.removeEventListener('click', this.handleTriggerClick);
|
|
301
460
|
}
|
|
461
|
+
this.stopListeningForHover(this.triggerEl);
|
|
302
462
|
(_a = this.triggerObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
303
463
|
this.triggerObserver = null;
|
|
304
464
|
// Clean up all event listeners
|
|
@@ -307,6 +467,8 @@ const PdsPopover = class {
|
|
|
307
467
|
document.removeEventListener('submit', this.handleSubmitFromPanel, true);
|
|
308
468
|
// Clear any pending debounce timers
|
|
309
469
|
this.clearDebounceTimers();
|
|
470
|
+
this.clearHoverTimers();
|
|
471
|
+
this.hoverOpened = false;
|
|
310
472
|
// Remove portal from DOM
|
|
311
473
|
this.removePortal();
|
|
312
474
|
}
|
|
@@ -340,7 +502,7 @@ const PdsPopover = class {
|
|
|
340
502
|
this.portalEl.style.borderRadius = 'var(--pine-dimension-125)';
|
|
341
503
|
this.portalEl.style.boxShadow = 'var(--pine-box-shadow-200)';
|
|
342
504
|
this.portalEl.style.margin = 'var(--pine-dimension-none)';
|
|
343
|
-
this.portalEl.style.padding =
|
|
505
|
+
this.portalEl.style.padding = this.paddingToken();
|
|
344
506
|
// Generate unique ID
|
|
345
507
|
if (!this.componentId) {
|
|
346
508
|
(_a = this.generatedPortalId) !== null && _a !== void 0 ? _a : (this.generatedPortalId = `pds-popover-portal-${PdsPopover.instanceCounter++}`);
|
|
@@ -354,6 +516,7 @@ const PdsPopover = class {
|
|
|
354
516
|
// Add global focus styles to match Pine design system
|
|
355
517
|
// This is done after appending to ensure it's part of the document and can access CSS variables
|
|
356
518
|
this.addPortalFocusStyles();
|
|
519
|
+
this.listenForHover(this.portalEl);
|
|
357
520
|
}
|
|
358
521
|
/**
|
|
359
522
|
* Adds Pine design system focus styles and dark mode border to the portal element
|
|
@@ -481,8 +644,8 @@ const PdsPopover = class {
|
|
|
481
644
|
// Update portal content with latest slot content
|
|
482
645
|
this.updatePortalContent();
|
|
483
646
|
// Show portal. The attribute tells a modal around it that this popover takes Escape first; only
|
|
484
|
-
// an auto popover listens for Escape.
|
|
485
|
-
if (this.popoverType === 'auto')
|
|
647
|
+
// an auto popover, or one hover opened, listens for Escape.
|
|
648
|
+
if (this.popoverType === 'auto' || this.hoverOpened)
|
|
486
649
|
this.portalEl.setAttribute('data-pds-popover-open', '');
|
|
487
650
|
this.portalEl.style.display = 'block';
|
|
488
651
|
this.portalEl.style.opacity = '1';
|
|
@@ -496,11 +659,16 @@ const PdsPopover = class {
|
|
|
496
659
|
// Add scroll and resize listeners for repositioning (always)
|
|
497
660
|
this.addScrollAndResizeListeners();
|
|
498
661
|
document.addEventListener('submit', this.handleSubmitFromPanel, true);
|
|
499
|
-
// Add document listeners for light dismiss and escape key (auto type only)
|
|
662
|
+
// Add document listeners for light dismiss and escape key (auto type only), or for the escape
|
|
663
|
+
// key alone while hover holds a manual popover open
|
|
500
664
|
if (this.popoverType === 'auto') {
|
|
501
|
-
|
|
665
|
+
popoversTakingEscape.push(this);
|
|
502
666
|
this.addLightDismissListeners();
|
|
503
667
|
}
|
|
668
|
+
else if (this.hoverOpened) {
|
|
669
|
+
popoversTakingEscape.push(this);
|
|
670
|
+
document.addEventListener('keydown', this.boundEscapeKeyHandler);
|
|
671
|
+
}
|
|
504
672
|
// Emit open event
|
|
505
673
|
this.pdsPopoverOpen.emit({
|
|
506
674
|
componentId: this.componentId,
|
|
@@ -511,9 +679,11 @@ const PdsPopover = class {
|
|
|
511
679
|
* Closes the popover programmatically
|
|
512
680
|
*/
|
|
513
681
|
async hide() {
|
|
682
|
+
this.clearHoverTimers();
|
|
514
683
|
if (!this.active || !this.portalEl)
|
|
515
684
|
return;
|
|
516
685
|
this.active = false;
|
|
686
|
+
this.hoverOpened = false;
|
|
517
687
|
this.unwatchDialogClose();
|
|
518
688
|
// Restoring the content drops its focus to the body, so check where focus is first. In a
|
|
519
689
|
// shadow root, document.activeElement is only its host.
|
|
@@ -592,9 +762,9 @@ const PdsPopover = class {
|
|
|
592
762
|
this.portalEl.style.border = root instanceof ShadowRoot && closest('[data-theme="dark"]', this.el) ? 'var(--pine-border)' : '';
|
|
593
763
|
}
|
|
594
764
|
forgetOpen() {
|
|
595
|
-
const index =
|
|
765
|
+
const index = popoversTakingEscape.indexOf(this);
|
|
596
766
|
if (index >= 0)
|
|
597
|
-
|
|
767
|
+
popoversTakingEscape.splice(index, 1);
|
|
598
768
|
}
|
|
599
769
|
/**
|
|
600
770
|
* Whether an Escape is this popover's. One from a dialog the popover isn't in belongs to that
|
|
@@ -703,7 +873,7 @@ const PdsPopover = class {
|
|
|
703
873
|
return;
|
|
704
874
|
// Like the native Popover API, Escape closes only the top popover: the last one opened that
|
|
705
875
|
// it applies to. Every open popover hears it, so each checks whether it's that one.
|
|
706
|
-
const top = [...
|
|
876
|
+
const top = [...popoversTakingEscape].reverse().find(popover => popover.takesEscapeFrom(event));
|
|
707
877
|
if (top !== this)
|
|
708
878
|
return;
|
|
709
879
|
// Take the key, so the dialog or modal around it doesn't close too.
|
|
@@ -828,10 +998,16 @@ const PdsPopover = class {
|
|
|
828
998
|
}, 16); // ~1 frame at 60fps
|
|
829
999
|
}
|
|
830
1000
|
render() {
|
|
831
|
-
return (h(Host, { key: '
|
|
1001
|
+
return (h(Host, { key: 'e48b897acdc9e89f2e6b1449e7a358da7da1060c', id: this.componentId }, h("span", { key: 'b83b2c234b07703c2c850a9991c94939ed2fdaf7', class: "pds-popover__trigger-wrapper" }, h("slot", { key: '0a7f7829ee445fd57cf824ebee1409b3c571f983', name: "trigger", onSlotchange: this.handleTriggerSlotChange })), h("div", { key: '8c1fe2d4d7c4342b4bd5eb4c56e596f17b4e14fa', class: "pds-popover__content-slot-wrapper" }, h("slot", { key: '4ccfce1f335acbc436f7942e497f5d360f849d48', onSlotchange: this.handleContentSlotChange }))));
|
|
832
1002
|
}
|
|
833
1003
|
get el() { return getElement(this); }
|
|
834
1004
|
static get watchers() { return {
|
|
1005
|
+
"openOn": [{
|
|
1006
|
+
"openOnChanged": 0
|
|
1007
|
+
}],
|
|
1008
|
+
"padding": [{
|
|
1009
|
+
"applyPadding": 0
|
|
1010
|
+
}],
|
|
835
1011
|
"placement": [{
|
|
836
1012
|
"restorePlacementDefault": 0
|
|
837
1013
|
}]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-Cw9J31qd.js';
|
|
2
2
|
import { m as messageId } from './form-BuRbS7Hp.js';
|
|
3
|
-
import { b as danger } from './index-
|
|
3
|
+
import { b as danger } from './index-BWDu62Mo.js';
|
|
4
4
|
import './keep-hydrated-BLG6RDBt.js';
|
|
5
5
|
|
|
6
6
|
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)}`;
|
|
@@ -169,7 +169,7 @@ const PdsRadioGroup = class {
|
|
|
169
169
|
'pds-radio-group__radios': true,
|
|
170
170
|
'pds-radio-group__radios--row': this.direction === 'row',
|
|
171
171
|
'pds-radio-group__radios--column': this.direction === 'column',
|
|
172
|
-
} }, h("slot", { key: 'd88dde3c631e25c01bc7b6d3ef5d517255fabd1a', onSlotchange: () => this.updateChildRadios() })), this.helperMessage && (h("div", { key: 'a229214ed01663b0fc34f35e27c7148b4eb412ab', class: "pds-radio-group__message", id: messageId(this._groupId, 'helper') }, this.helperMessage)), this.errorMessage && (h("div", { key: 'dc092f2e6dbef0cb369cf00a6eccf9a095a0313d', class: "pds-radio-group__message pds-radio-group__message--error", id: messageId(this._groupId, 'error'), "aria-live": "assertive" }, h("pds-icon", { key: '
|
|
172
|
+
} }, h("slot", { key: 'd88dde3c631e25c01bc7b6d3ef5d517255fabd1a', onSlotchange: () => this.updateChildRadios() })), this.helperMessage && (h("div", { key: 'a229214ed01663b0fc34f35e27c7148b4eb412ab', class: "pds-radio-group__message", id: messageId(this._groupId, 'helper') }, this.helperMessage)), this.errorMessage && (h("div", { key: 'dc092f2e6dbef0cb369cf00a6eccf9a095a0313d', class: "pds-radio-group__message pds-radio-group__message--error", id: messageId(this._groupId, 'error'), "aria-live": "assertive" }, h("pds-icon", { key: '83b0129d3d45b74ef1f53acc923387b2de7f079b', "aria-hidden": "true", icon: danger, size: "small" }), this.errorMessage))));
|
|
173
173
|
}
|
|
174
174
|
get el() { return getElement(this); }
|
|
175
175
|
static get watchers() { return {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-Cw9J31qd.js';
|
|
2
2
|
import { H as HostStylingKeeper } from './attributes-WXw_I_uJ.js';
|
|
3
3
|
import { e as exposeTypeProperty, a as assignDescription, m as messageId } from './form-BuRbS7Hp.js';
|
|
4
|
-
import { b as danger } from './index-
|
|
4
|
+
import { b as danger } from './index-BWDu62Mo.js';
|
|
5
5
|
import './keep-hydrated-BLG6RDBt.js';
|
|
6
6
|
|
|
7
7
|
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)}`;
|
|
@@ -104,11 +104,11 @@ const PdsRadio = class {
|
|
|
104
104
|
const renderLabelAndMessages = () => [
|
|
105
105
|
h("label", { htmlFor: this.componentId, key: `${this.componentId}-label` }, h("input", { key: 'ccd618855831bcee309e815f2cd2712fd4e8fe1f', "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage, this.errorMessage), "aria-invalid": this.invalid ? "true" : undefined, type: "radio", id: this.componentId, name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onChange: this.handleRadioChange, class: this.hasImage() ? 'visually-hidden' : '' }), h("span", { key: '2e372a880c28f48fb804bac2518208082c141fad', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)),
|
|
106
106
|
this.helperMessage && (h("div", { key: `${this.componentId}-helper`, class: 'pds-radio__message', id: messageId(this.componentId, 'helper') }, this.helperMessage)),
|
|
107
|
-
this.errorMessage && (h("div", { key: `${this.componentId}-error`, class: `pds-radio__message pds-radio__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, h("pds-icon", { key: '
|
|
107
|
+
this.errorMessage && (h("div", { key: `${this.componentId}-error`, class: `pds-radio__message pds-radio__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, h("pds-icon", { key: '08e7a2319eddc1d314ee9dddd51a5ce88cd4ae48', "aria-hidden": "true", icon: danger, size: "small" }), this.errorMessage))
|
|
108
108
|
];
|
|
109
109
|
const hostClass = this.classNames();
|
|
110
110
|
this.hostKeeper.record(hostClass);
|
|
111
|
-
return (h(Host, { key: '
|
|
111
|
+
return (h(Host, { key: '351376552abee90f50c3aceb03ecf8a81ae1b82b', class: hostClass }, this.hasImage() && (h("div", { key: 'fd85fd36b2ebd99b12c3bb2a13cf3d3e3c26530f', class: "pds-radio__image-container", part: "image-container" }, h("slot", { key: 'abe75dbe38d29340b805f70861b084c1b3836be9', name: "image", onSlotchange: () => (this._hasImage = this.hasImageSlot()) }))), this.hasImage() ? (h("div", { class: "pds-radio__content-wrapper" }, renderLabelAndMessages())) : (renderLabelAndMessages())));
|
|
112
112
|
}
|
|
113
113
|
get el() { return getElement(this); }
|
|
114
114
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-Cw9J31qd.js';
|
|
2
2
|
import { H as HostStylingKeeper } from './attributes-WXw_I_uJ.js';
|
|
3
3
|
import { e as exposeTypeProperty, m as messageId, i as isSpecTest, a as assignDescription } from './form-BuRbS7Hp.js';
|
|
4
|
-
import { b as danger, e as enlarge } from './index-
|
|
4
|
+
import { b as danger, e as enlarge } from './index-BWDu62Mo.js';
|
|
5
5
|
import './keep-hydrated-BLG6RDBt.js';
|
|
6
6
|
|
|
7
7
|
const pdsSelectTokensCss = () => `:host{--pine-select-color-background-danger:var(--pine-color-red-050)}`;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as registerInstance, h, H as Host, a as getElement } from './index-Cw9J31qd.js';
|
|
2
2
|
import { H as HostStylingKeeper } from './attributes-WXw_I_uJ.js';
|
|
3
|
-
import { h as handle } from './index-
|
|
3
|
+
import { h as handle } from './index-BWDu62Mo.js';
|
|
4
4
|
import './keep-hydrated-BLG6RDBt.js';
|
|
5
5
|
|
|
6
6
|
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}`;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-Cw9J31qd.js';
|
|
2
2
|
import { e as exposeTypeProperty, i as isSpecTest, m as messageId, a as assignDescription } from './form-BuRbS7Hp.js';
|
|
3
|
-
import { b as danger } from './index-
|
|
3
|
+
import { b as danger } from './index-BWDu62Mo.js';
|
|
4
4
|
import { H as HostStylingKeeper, i as inheritAriaAttributes } from './attributes-WXw_I_uJ.js';
|
|
5
5
|
import './keep-hydrated-BLG6RDBt.js';
|
|
6
6
|
|
|
@@ -120,7 +120,7 @@ const PdsSwitch = class {
|
|
|
120
120
|
this.hostKeeper.record(hostClass, {}, { 'aria-disabled': ariaDisabled });
|
|
121
121
|
return (h(Host, { key: 'b8bd2870be101081aa8a65cdee45397bc4c21435', class: hostClass, "aria-disabled": ariaDisabled }, h("label", { key: '1e223f22f7fc6c576098353ad67dc11500def8b4', htmlFor: this.componentId }, h("input", Object.assign({ key: 'edf59869e165a65b97465ea9de06f7ea82fbc9a6', "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage, this.errorMessage), "aria-invalid": this.invalid ? "true" : undefined, checked: this.checked, class: "pds-switch__input", disabled: this.disabled, id: this.componentId, name: this.name ? this.name : this.componentId, onChange: this.onSwitchUpdate, required: this.required, type: "checkbox", value: this.value }, this.inheritedAttributes)), h("span", { key: '1c252b9455471069f8c6ea6c13f2e88c99308b41', class: this.hideLabel ? 'visually-hidden' : '' }, h("slot", { key: 'ce0d471918bd3018f5e55d0d1e6c5c2247790f81', name: "label", onSlotchange: this.updateHasLabelSlot }), !this.hasLabelSlot && this.label)), this.helperMessage &&
|
|
122
122
|
h("div", { key: '64874b15403f1f42344715ac34febdfb8d94042a', class: `pds-switch__message`, id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
|
|
123
|
-
h("div", { key: '560ea486859124bb0ac2f75ab4bd34b0bca7efbc', class: `pds-switch__message pds-switch__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, h("pds-icon", { key: '
|
|
123
|
+
h("div", { key: '560ea486859124bb0ac2f75ab4bd34b0bca7efbc', class: `pds-switch__message pds-switch__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, h("pds-icon", { key: '2ae8dc876745af26fa2418f2265248aeb8f97a2b', "aria-hidden": "true", icon: danger, size: "small" }), this.errorMessage)));
|
|
124
124
|
}
|
|
125
125
|
static get formAssociated() { return true; }
|
|
126
126
|
get el() { return getElement(this); }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as registerInstance, h, H as Host, a as getElement } from './index-Cw9J31qd.js';
|
|
2
2
|
import { a as isScrolledFromInlineStart } from './scroll-DtgUQhjl.js';
|
|
3
|
-
import { s as setupTruncationTooltip } from './truncation-tooltip-
|
|
3
|
+
import { s as setupTruncationTooltip } from './truncation-tooltip-FaW67DiY.js';
|
|
4
4
|
import './keep-hydrated-BLG6RDBt.js';
|
|
5
5
|
import './floating-ui.dom-BPqJgIq6.js';
|
|
6
6
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-Cw9J31qd.js';
|
|
2
|
-
import { i as upSmall, d as downSmall } from './index-
|
|
2
|
+
import { i as upSmall, d as downSmall } from './index-BWDu62Mo.js';
|
|
3
3
|
import { a as isScrolledFromInlineStart } from './scroll-DtgUQhjl.js';
|
|
4
4
|
import './keep-hydrated-BLG6RDBt.js';
|
|
5
5
|
|
|
@@ -209,7 +209,7 @@ const PdsTableHeadCell = class {
|
|
|
209
209
|
this.tableRef.fixedColumn &&
|
|
210
210
|
this.tableRef.selectable
|
|
211
211
|
? { '--fixed-cell-position': '40px' }
|
|
212
|
-
: {} }, h("slot", { key: '96084d87a34d7b601a8e8325f344f1fe6601204e' }), this.sortable && this.isActive && (h("pds-icon", { key: '
|
|
212
|
+
: {} }, h("slot", { key: '96084d87a34d7b601a8e8325f344f1fe6601204e' }), this.sortable && this.isActive && (h("pds-icon", { key: '79606519d810dc9882a91cbc3b6a199457086631', icon: this.sortingDirection === 'asc' ? upSmall : downSmall, part: "sort-icon", "aria-hidden": "true" }))));
|
|
213
213
|
}
|
|
214
214
|
get hostElement() { return getElement(this); }
|
|
215
215
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as registerInstance, h, a as getElement } from './index-Cw9J31qd.js';
|
|
2
2
|
import { s as setColor } from './utils-OYK5-nwe.js';
|
|
3
|
-
import { s as setupTruncationTooltip } from './truncation-tooltip-
|
|
3
|
+
import { s as setupTruncationTooltip } from './truncation-tooltip-FaW67DiY.js';
|
|
4
4
|
import { TEXT_SIZES } from './index.js';
|
|
5
5
|
import './keep-hydrated-BLG6RDBt.js';
|
|
6
6
|
import './floating-ui.dom-BPqJgIq6.js';
|
|
@@ -2,7 +2,7 @@ import { r as registerInstance, c as createEvent, h, H as Host, a as getElement
|
|
|
2
2
|
import { i as isSpecTest, b as isRequired, e as exposeTypeProperty, a as assignDescription, m as messageId } from './form-BuRbS7Hp.js';
|
|
3
3
|
import { d as debounceEvent, f as flushDebouncedEvent, c as cancelDebouncedEvent } from './utils-OYK5-nwe.js';
|
|
4
4
|
import { i as inheritAriaAttributes, a as inheritAttributes } from './attributes-WXw_I_uJ.js';
|
|
5
|
-
import { b as danger } from './index-
|
|
5
|
+
import { b as danger } from './index-BWDu62Mo.js';
|
|
6
6
|
import { f as formatMessage } from './i18n-format-BJgZHCWe.js';
|
|
7
7
|
import './keep-hydrated-BLG6RDBt.js';
|
|
8
8
|
|
|
@@ -320,7 +320,7 @@ const PdsTextarea = class {
|
|
|
320
320
|
return (h(Host, { key: '5933dab0c3cd25b1cf2f6851ece8e8064bc7f3b9', "aria-disabled": this.disabled ? 'true' : null, "aria-readonly": this.readonly ? 'true' : null, "has-action": this.hasAction && !this.hideLabel ? 'true' : null }, h("div", { key: '4f1752514d8e5b0f0e3439515cb9e5f043607da1', class: "pds-textarea" }, this.label &&
|
|
321
321
|
h("div", { key: 'd4e6df0b381d781b70eeae72ff2f0e9428c0d901', class: "pds-textarea__label-wrapper" }, h("label", { key: '747d82067eb571d02840cfd981865821099f288b', htmlFor: this.componentId }, h("span", { key: 'bfab6e8ede66d0169dd020b7dd97e125aba417b0', class: this.hideLabel ? 'visually-hidden' : '' }, this.label)), !this.hideLabel && this.renderAction()), h("div", { key: 'a18611c03270e7491c1af69f931419c832192c06', class: "pds-textarea__field-wrapper" }, h("textarea", Object.assign({ key: '868382c7b04a4e59c0daa9d98afcdc9048f6224f', ref: (el) => this.nativeTextarea = el, "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage, this.errorMessage), "aria-invalid": this.invalid ? "true" : undefined, autocomplete: this.autocomplete, class: this.textareaClassNames(), disabled: this.disabled, id: this.componentId, maxlength: this.maxLength, name: this.name, placeholder: this.placeholder, readOnly: this.readonly, required: this.required, rows: this.rows, onBlur: this.onBlur, onChange: this.onTextareaChange, onFocus: this.onFocus, onInput: this.onInput, onKeyDown: this.onKeyDown }, this.inheritedAttributes), value), this.renderCharacterCounter()), this.helperMessage &&
|
|
322
322
|
h("p", { key: 'dcb36f21443d2a782c25b7c29c4ce6215f3b212b', class: "pds-textarea__helper-message", id: messageId(this.componentId, 'helper') }, this.helperMessage), this.invalid &&
|
|
323
|
-
h("p", { key: 'be30fb1a38453296e26b775955389c0ec569df67', "aria-live": "assertive", class: "pds-textarea__error-message", id: messageId(this.componentId, 'error') }, h("pds-icon", { key: '
|
|
323
|
+
h("p", { key: 'be30fb1a38453296e26b775955389c0ec569df67', "aria-live": "assertive", class: "pds-textarea__error-message", id: messageId(this.componentId, 'error') }, h("pds-icon", { key: '853f06489ef6ca50205799659d221bd3bea7d8da', "aria-hidden": "true", icon: danger, size: "small" }), this.errorMessage))));
|
|
324
324
|
}
|
|
325
325
|
static get formAssociated() { return true; }
|
|
326
326
|
get el() { return getElement(this); }
|
|
@@ -130,7 +130,7 @@ const PdsToast = class {
|
|
|
130
130
|
'pds-toast--animating-out': this.isAnimatingOut
|
|
131
131
|
}, role: "alert", "aria-live": "polite" }, this.renderIcon(), h("span", { key: 'eaf615d41c138e2c73088d29bac9349f49a63ba7', class: "pds-toast__message" }, h("slot", { key: '33973447154d80b016f5a7954b0473db03228379' })), this.dismissible && (h("button", { key: 'e189834633e1e648282ee43633fd05e53ce38869', type: "button", part: "dismiss", class: "pds-toast__button", onClick: () => {
|
|
132
132
|
this.dismiss();
|
|
133
|
-
}, "aria-label": this.dismissLabel }, h("pds-icon", { key: '
|
|
133
|
+
}, "aria-label": this.dismissLabel }, h("pds-icon", { key: '913201979e52be743ba933ff173e023b81553362', name: "remove", "aria-hidden": "true" }))))));
|
|
134
134
|
}
|
|
135
135
|
get el() { return getElement(this); }
|
|
136
136
|
static get watchers() { return {
|