@primer/view-components 0.18.2 → 0.19.0-rc.0bc76876
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/app/assets/javascripts/primer_view_components.js +1 -1
- package/app/assets/javascripts/primer_view_components.js.map +1 -1
- package/app/assets/styles/primer_view_components.css +1 -1
- package/app/assets/styles/primer_view_components.css.map +1 -1
- package/app/components/primer/alpha/action_bar_element.js +4 -6
- package/app/components/primer/alpha/action_menu/action_menu_element.js +12 -19
- package/app/components/primer/alpha/modal_dialog.js +8 -10
- package/app/components/primer/alpha/segmented_control.js +2 -3
- package/app/components/primer/alpha/tool_tip.js +5 -7
- package/app/components/primer/beta/button.css +1 -1
- package/app/components/primer/beta/button.css.json +0 -1
- package/app/components/primer/beta/nav_list.js +6 -10
- package/app/components/primer/beta/nav_list_group_element.js +2 -3
- package/app/components/primer/dialog_helper.js +5 -7
- package/app/components/primer/focus_group.js +9 -12
- package/lib/primer/forms/primer_multi_input.js +2 -3
- package/lib/primer/forms/primer_text_field.js +2 -4
- package/package.json +2 -2
- package/static/arguments.json +22 -0
- package/static/audited_at.json +1 -0
- package/static/constants.json +3 -0
- package/static/info_arch.json +66 -2
- package/static/previews.json +13 -0
- package/static/statuses.json +1 -0
@@ -50,12 +50,11 @@ let ActionBarElement = class ActionBarElement extends HTMLElement {
|
|
50
50
|
_ActionBarElement_focusZoneAbortController.set(this, null);
|
51
51
|
}
|
52
52
|
connectedCallback() {
|
53
|
-
var _a, _b;
|
54
53
|
// Calculate the width of all the items before hiding anything
|
55
54
|
for (const item of this.items) {
|
56
55
|
const width = item.getBoundingClientRect().width;
|
57
|
-
const marginLeft = parseInt(
|
58
|
-
const marginRight = parseInt(
|
56
|
+
const marginLeft = parseInt(window.getComputedStyle(item)?.marginLeft, 10);
|
57
|
+
const marginRight = parseInt(window.getComputedStyle(item)?.marginRight, 10);
|
59
58
|
item.setAttribute('data-offset-width', `${width + marginLeft + marginRight}`);
|
60
59
|
}
|
61
60
|
resizeObserver.observe(this);
|
@@ -73,11 +72,10 @@ let ActionBarElement = class ActionBarElement extends HTMLElement {
|
|
73
72
|
instersectionObserver.unobserve(this);
|
74
73
|
}
|
75
74
|
menuItemClick(event) {
|
76
|
-
var _a;
|
77
75
|
const currentTarget = event.currentTarget;
|
78
|
-
const id = currentTarget
|
76
|
+
const id = currentTarget?.getAttribute('data-for');
|
79
77
|
if (id) {
|
80
|
-
|
78
|
+
document.getElementById(id)?.click();
|
81
79
|
}
|
82
80
|
}
|
83
81
|
update() {
|
@@ -56,12 +56,10 @@ let ActionMenuElement = class ActionMenuElement extends HTMLElement {
|
|
56
56
|
this.toggleAttribute('data-dynamic-label', value);
|
57
57
|
}
|
58
58
|
get popoverElement() {
|
59
|
-
|
60
|
-
return ((_a = this.invokerElement) === null || _a === void 0 ? void 0 : _a.popoverTargetElement) || null;
|
59
|
+
return this.invokerElement?.popoverTargetElement || null;
|
61
60
|
}
|
62
61
|
get invokerElement() {
|
63
|
-
|
64
|
-
const id = (_a = this.querySelector('[role=menu]')) === null || _a === void 0 ? void 0 : _a.id;
|
62
|
+
const id = this.querySelector('[role=menu]')?.id;
|
65
63
|
if (!id)
|
66
64
|
return null;
|
67
65
|
for (const el of this.querySelectorAll(`[aria-controls]`)) {
|
@@ -82,22 +80,21 @@ let ActionMenuElement = class ActionMenuElement extends HTMLElement {
|
|
82
80
|
for (const selectedItem of selectedItems) {
|
83
81
|
const labelEl = selectedItem.querySelector('.ActionListItem-label');
|
84
82
|
results.push({
|
85
|
-
label: labelEl
|
86
|
-
value: selectedItem
|
83
|
+
label: labelEl?.textContent,
|
84
|
+
value: selectedItem?.getAttribute('data-value'),
|
87
85
|
element: selectedItem,
|
88
86
|
});
|
89
87
|
}
|
90
88
|
return results;
|
91
89
|
}
|
92
90
|
connectedCallback() {
|
93
|
-
var _a;
|
94
91
|
const { signal } = (__classPrivateFieldSet(this, _ActionMenuElement_abortController, new AbortController(), "f"));
|
95
92
|
this.addEventListener('keydown', this, { signal });
|
96
93
|
this.addEventListener('click', this, { signal });
|
97
94
|
this.addEventListener('mouseover', this, { signal });
|
98
95
|
this.addEventListener('focusout', this, { signal });
|
99
96
|
this.addEventListener('mousedown', this, { signal });
|
100
|
-
|
97
|
+
this.popoverElement?.addEventListener('toggle', this, { signal });
|
101
98
|
__classPrivateFieldGet(this, _ActionMenuElement_instances, "m", _ActionMenuElement_setDynamicLabel).call(this);
|
102
99
|
__classPrivateFieldGet(this, _ActionMenuElement_instances, "m", _ActionMenuElement_updateInput).call(this);
|
103
100
|
__classPrivateFieldGet(this, _ActionMenuElement_instances, "m", _ActionMenuElement_softDisableItems).call(this);
|
@@ -111,11 +108,10 @@ let ActionMenuElement = class ActionMenuElement extends HTMLElement {
|
|
111
108
|
__classPrivateFieldGet(this, _ActionMenuElement_abortController, "f").abort();
|
112
109
|
}
|
113
110
|
handleEvent(event) {
|
114
|
-
|
115
|
-
const targetIsInvoker = (_a = this.invokerElement) === null || _a === void 0 ? void 0 : _a.contains(event.target);
|
111
|
+
const targetIsInvoker = this.invokerElement?.contains(event.target);
|
116
112
|
const eventIsActivation = __classPrivateFieldGet(this, _ActionMenuElement_instances, "m", _ActionMenuElement_isActivation).call(this, event);
|
117
113
|
if (event.type === 'toggle' && event.newState === 'open') {
|
118
|
-
|
114
|
+
__classPrivateFieldGet(this, _ActionMenuElement_instances, "a", _ActionMenuElement_firstItem_get)?.focus();
|
119
115
|
}
|
120
116
|
if (targetIsInvoker && event.type === 'mousedown') {
|
121
117
|
__classPrivateFieldSet(this, _ActionMenuElement_invokerBeingClicked, true, "f");
|
@@ -165,7 +161,7 @@ let ActionMenuElement = class ActionMenuElement extends HTMLElement {
|
|
165
161
|
if (__classPrivateFieldGet(this, _ActionMenuElement_instances, "m", _ActionMenuElement_isKeyboardActivationViaSpace).call(this, event)) {
|
166
162
|
event.preventDefault();
|
167
163
|
if (item.getAttribute('type') === 'submit') {
|
168
|
-
|
164
|
+
item.closest('form')?.submit();
|
169
165
|
}
|
170
166
|
}
|
171
167
|
return;
|
@@ -319,7 +315,7 @@ _ActionMenuElement_handleDialogItemActivated = function _ActionMenuElement_handl
|
|
319
315
|
const lostFocus = this.ownerDocument.activeElement === this.ownerDocument.body;
|
320
316
|
const focusInClosedMenu = this.contains(activeElement);
|
321
317
|
if (lostFocus || focusInClosedMenu) {
|
322
|
-
setTimeout(() =>
|
318
|
+
setTimeout(() => this.invokerElement?.focus(), 0);
|
323
319
|
}
|
324
320
|
};
|
325
321
|
// a modal <dialog> element will close all popovers
|
@@ -393,16 +389,13 @@ _ActionMenuElement_handleFocusOut = function _ActionMenuElement_handleFocusOut()
|
|
393
389
|
__classPrivateFieldGet(this, _ActionMenuElement_instances, "m", _ActionMenuElement_hide).call(this);
|
394
390
|
};
|
395
391
|
_ActionMenuElement_show = function _ActionMenuElement_show() {
|
396
|
-
|
397
|
-
(_a = this.popoverElement) === null || _a === void 0 ? void 0 : _a.showPopover();
|
392
|
+
this.popoverElement?.showPopover();
|
398
393
|
};
|
399
394
|
_ActionMenuElement_hide = function _ActionMenuElement_hide() {
|
400
|
-
|
401
|
-
(_a = this.popoverElement) === null || _a === void 0 ? void 0 : _a.hidePopover();
|
395
|
+
this.popoverElement?.hidePopover();
|
402
396
|
};
|
403
397
|
_ActionMenuElement_isOpen = function _ActionMenuElement_isOpen() {
|
404
|
-
|
405
|
-
return (_a = this.popoverElement) === null || _a === void 0 ? void 0 : _a.matches(':popover-open');
|
398
|
+
return this.popoverElement?.matches(':popover-open');
|
406
399
|
};
|
407
400
|
_ActionMenuElement_setDynamicLabel = function _ActionMenuElement_setDynamicLabel() {
|
408
401
|
if (!this.dynamicLabel)
|
@@ -14,17 +14,17 @@ import { focusTrap } from '@primer/behaviors';
|
|
14
14
|
import { getFocusableChild } from '@primer/behaviors/utils';
|
15
15
|
function focusIfNeeded(elem) {
|
16
16
|
if (document.activeElement !== elem) {
|
17
|
-
elem
|
17
|
+
elem?.focus();
|
18
18
|
}
|
19
19
|
}
|
20
20
|
const overlayStack = [];
|
21
21
|
function clickHandler(event) {
|
22
22
|
const target = event.target;
|
23
|
-
const button = target
|
23
|
+
const button = target?.closest('button');
|
24
24
|
if (!button || button.hasAttribute('disabled') || button.getAttribute('aria-disabled') === 'true')
|
25
25
|
return;
|
26
26
|
// If the user is clicking a valid dialog trigger
|
27
|
-
let dialogId = button
|
27
|
+
let dialogId = button?.getAttribute('data-show-dialog-id');
|
28
28
|
if (dialogId) {
|
29
29
|
/* eslint-disable-next-line no-restricted-syntax */
|
30
30
|
event.stopPropagation();
|
@@ -64,7 +64,7 @@ function keydownHandler(event) {
|
|
64
64
|
}
|
65
65
|
function mousedownHandler(event) {
|
66
66
|
const target = event.target;
|
67
|
-
if (target
|
67
|
+
if (target?.closest('button'))
|
68
68
|
return;
|
69
69
|
// Find the top level dialog that is open.
|
70
70
|
const topLevelDialog = overlayStack[overlayStack.length - 1];
|
@@ -93,7 +93,6 @@ export class ModalDialogElement extends HTMLElement {
|
|
93
93
|
return this.hasAttribute('open');
|
94
94
|
}
|
95
95
|
set open(value) {
|
96
|
-
var _a, _b, _c, _d;
|
97
96
|
if (value) {
|
98
97
|
if (this.open)
|
99
98
|
return;
|
@@ -101,7 +100,7 @@ export class ModalDialogElement extends HTMLElement {
|
|
101
100
|
this.setAttribute('aria-disabled', 'false');
|
102
101
|
document.body.style.paddingRight = `${window.innerWidth - document.body.clientWidth}px`;
|
103
102
|
document.body.style.overflow = 'hidden';
|
104
|
-
|
103
|
+
__classPrivateFieldGet(this, _ModalDialogElement_instances, "a", _ModalDialogElement_overlayBackdrop_get)?.classList.remove('Overlay--hidden');
|
105
104
|
if (__classPrivateFieldGet(this, _ModalDialogElement_focusAbortController, "f").signal.aborted) {
|
106
105
|
__classPrivateFieldSet(this, _ModalDialogElement_focusAbortController, new AbortController(), "f");
|
107
106
|
}
|
@@ -113,13 +112,13 @@ export class ModalDialogElement extends HTMLElement {
|
|
113
112
|
return;
|
114
113
|
this.removeAttribute('open');
|
115
114
|
this.setAttribute('aria-disabled', 'true');
|
116
|
-
|
115
|
+
__classPrivateFieldGet(this, _ModalDialogElement_instances, "a", _ModalDialogElement_overlayBackdrop_get)?.classList.add('Overlay--hidden');
|
117
116
|
document.body.style.paddingRight = '0';
|
118
117
|
document.body.style.overflow = 'initial';
|
119
118
|
__classPrivateFieldGet(this, _ModalDialogElement_focusAbortController, "f").abort();
|
120
119
|
// if #openButton is a child of a menu, we need to focus a suitable child of the menu
|
121
120
|
// element since it is expected for the menu to close on click
|
122
|
-
const menu =
|
121
|
+
const menu = this.openButton?.closest('details') || this.openButton?.closest('action-menu');
|
123
122
|
if (menu) {
|
124
123
|
focusIfNeeded(getFocusableChild(menu));
|
125
124
|
}
|
@@ -154,8 +153,7 @@ export class ModalDialogElement extends HTMLElement {
|
|
154
153
|
}
|
155
154
|
}
|
156
155
|
_ModalDialogElement_focusAbortController = new WeakMap(), _ModalDialogElement_instances = new WeakSet(), _ModalDialogElement_overlayBackdrop_get = function _ModalDialogElement_overlayBackdrop_get() {
|
157
|
-
|
158
|
-
if ((_a = this.parentElement) === null || _a === void 0 ? void 0 : _a.hasAttribute('data-modal-dialog-overlay')) {
|
156
|
+
if (this.parentElement?.hasAttribute('data-modal-dialog-overlay')) {
|
159
157
|
return this.parentElement;
|
160
158
|
}
|
161
159
|
return null;
|
@@ -20,13 +20,12 @@ let SegmentedControlElement = class SegmentedControlElement extends HTMLElement
|
|
20
20
|
__classPrivateFieldGet(this, _SegmentedControlElement_instances, "m", _SegmentedControlElement_updateButtonLabels).call(this);
|
21
21
|
}
|
22
22
|
select(event) {
|
23
|
-
var _a, _b;
|
24
23
|
const button = event.currentTarget;
|
25
24
|
for (const item of this.items) {
|
26
25
|
item.classList.remove('SegmentedControl-item--selected');
|
27
|
-
|
26
|
+
item.querySelector('[aria-current]')?.setAttribute('aria-current', 'false');
|
28
27
|
}
|
29
|
-
|
28
|
+
button.closest('li.SegmentedControl-item')?.classList.add('SegmentedControl-item--selected');
|
30
29
|
button.setAttribute('aria-current', 'true');
|
31
30
|
}
|
32
31
|
};
|
@@ -19,12 +19,12 @@ const isPopoverOpen = (() => {
|
|
19
19
|
selector = ':popover-open';
|
20
20
|
return el.matches(selector);
|
21
21
|
}
|
22
|
-
catch
|
22
|
+
catch {
|
23
23
|
try {
|
24
24
|
selector = ':open';
|
25
25
|
return el.matches(':open');
|
26
26
|
}
|
27
|
-
catch
|
27
|
+
catch {
|
28
28
|
selector = '.\\:popover-open';
|
29
29
|
return el.matches('.\\:popover-open');
|
30
30
|
}
|
@@ -253,7 +253,6 @@ class ToolTipElement extends HTMLElement {
|
|
253
253
|
return !isPopoverOpen(this);
|
254
254
|
}
|
255
255
|
connectedCallback() {
|
256
|
-
var _a, _b;
|
257
256
|
tooltips.add(this);
|
258
257
|
__classPrivateFieldGet(this, _ToolTipElement_instances, "m", _ToolTipElement_updateControlReference).call(this);
|
259
258
|
__classPrivateFieldGet(this, _ToolTipElement_instances, "m", _ToolTipElement_updateDirection).call(this);
|
@@ -268,7 +267,7 @@ class ToolTipElement extends HTMLElement {
|
|
268
267
|
if (!this.control)
|
269
268
|
return;
|
270
269
|
this.setAttribute('role', 'tooltip');
|
271
|
-
|
270
|
+
__classPrivateFieldGet(this, _ToolTipElement_abortController, "f")?.abort();
|
272
271
|
__classPrivateFieldSet(this, _ToolTipElement_abortController, new AbortController(), "f");
|
273
272
|
const { signal } = __classPrivateFieldGet(this, _ToolTipElement_abortController, "f");
|
274
273
|
this.addEventListener('mouseleave', this, { signal });
|
@@ -279,7 +278,7 @@ class ToolTipElement extends HTMLElement {
|
|
279
278
|
this.control.addEventListener('mousedown', this, { signal });
|
280
279
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
281
280
|
// @ts-ignore popoverTargetElement is not in the type definition
|
282
|
-
|
281
|
+
this.control.popoverTargetElement?.addEventListener('beforetoggle', this, {
|
283
282
|
signal,
|
284
283
|
});
|
285
284
|
this.ownerDocument.addEventListener('focusout', focusOutListener);
|
@@ -287,10 +286,9 @@ class ToolTipElement extends HTMLElement {
|
|
287
286
|
this.ownerDocument.addEventListener('keydown', this, { signal, capture: true });
|
288
287
|
}
|
289
288
|
disconnectedCallback() {
|
290
|
-
var _a;
|
291
289
|
tooltips.delete(this);
|
292
290
|
openTooltips.delete(this);
|
293
|
-
|
291
|
+
__classPrivateFieldGet(this, _ToolTipElement_abortController, "f")?.abort();
|
294
292
|
}
|
295
293
|
async handleEvent(event) {
|
296
294
|
if (!this.control)
|
@@ -1 +1 @@
|
|
1
|
-
:root{--duration-fast:80ms;--easing-easeInOut:cubic-bezier(0.65,0,0.35,1)}.Button{align-items:center;background-color:initial;border:var(--borderWidth-thin,max(1px,.0625rem)) solid;border-color:#0000;border-radius:var(--borderRadius-medium,.375rem);color:var(--button-default-fgColor-rest,var(--color-btn-text));cursor:pointer;display:inline-flex;flex-direction:row;font-size:var(--text-body-size-medium,.875rem);font-weight:var(--base-text-weight-medium,500);gap:var(--base-size-4,.25rem);height:var(--control-medium-size,2rem);justify-content:space-between;min-width:max-content;padding:0 var(--control-medium-paddingInline-normal,.75rem);position:relative;text-align:center;transition:var(--duration-fast) var(--easing-easeInOut);transition-property:color,fill,background-color,border-color;-webkit-user-select:none;user-select:none}@media (pointer:coarse){.Button:before{content:"";height:100%;left:50%;min-height:48px;min-width:48px;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:100%}}.Button:hover{transition-duration:var(--duration-fast)}.Button:active{transition:none}.Button:disabled,.Button[aria-disabled=true]{box-shadow:none;cursor:not-allowed}a.Button:hover,summary.Button:hover{-webkit-text-decoration:none;text-decoration:none}.Button-content{align-items:center;display:grid;flex:1 0 auto;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0,auto) min-content;place-content:center}.Button-content>:not(:last-child){margin-right:var(--control-medium-gap,.5rem)}.Button-content--alignStart{justify-content:start}.Button-visual{display:flex;pointer-events:none}.Button-visual .Counter{background-color:var(--buttonCounter-default-bgColor-rest,var(--color-btn-counter-bg));color:inherit}.Button-label{grid-area:text;line-height:var(--text-body-lineHeight-medium,1.4285);white-space:nowrap}.Button-leadingVisual{grid-area:leadingVisual}.Button-leadingVisual svg{fill:currentcolor}.Button-trailingVisual{grid-area:trailingVisual}.Button-trailingAction{margin-right:calc(var(--base-size-4,.25rem)*-1)}.Button--small{font-size:var(--text-body-size-small,.75rem);gap:var(--control-small-gap,.25rem);height:var(--control-small-size,1.75rem);padding:0 var(--control-small-paddingInline-condensed,.5rem)}.Button--small .Button-label{line-height:var(--text-body-lineHeight-small,1.6666)}.Button--small .Button-content>:not(:last-child){margin-right:var(--control-small-gap,.25rem)}.Button--large{gap:var(--control-large-gap,.5rem);height:var(--control-large-size,2.5rem);padding:0 var(--control-large-paddingInline-spacious,1rem)}.Button--large .Button-label{line-height:var(--text-body-lineHeight-large,1.5)}.Button--large .Button-content>:not(:last-child){margin-right:var(--control-large-gap,.5rem)}.Button--fullWidth{width:100%}.Button--primary{color:var(--button-primary-fgColor-rest,var(--color-btn-primary-text));fill:var(--button-primary-iconColor-rest,var(--color-btn-primary-icon));background-color:var(--button-primary-bgColor-rest,var(--color-btn-primary-bg));border-color:var(--button-primary-borderColor-rest,var(--color-btn-primary-border));box-shadow:var(--shadow-resting-small,var(--color-btn-primary-shadow))}.Button--primary:hover:not(:disabled,.Button--inactive){background-color:var(--button-primary-bgColor-hover,var(--color-btn-primary-hover-bg));border-color:var(--button-primary-borderColor-hover,var(--color-btn-primary-hover-border))}.Button--primary:focus{box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis,var(--color-fg-on-emphasis));outline:2px solid var(--focus-outlineColor,var(--color-accent-fg));outline-offset:-2px}.Button--primary:focus:not(:focus-visible){box-shadow:none;outline:1px solid #0000}.Button--primary:focus-visible{box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis,var(--color-fg-on-emphasis));outline:2px solid var(--focus-outlineColor,var(--color-accent-fg));outline-offset:-2px}.Button--primary:active:not(:disabled),.Button--primary[aria-pressed=true]{background-color:var(--button-primary-bgColor-active,var(--color-btn-primary-selected-bg));box-shadow:var(--button-primary-shadow-selected,var(--color-btn-primary-selected-shadow))}.Button--primary:disabled,.Button--primary[aria-disabled=true]{background-color:var(--button-primary-bgColor-disabled,var(--color-btn-primary-disabled-bg));border-color:var(--button-primary-borderColor-disabled,var(--color-btn-primary-disabled-border));color:var(--button-primary-fgColor-disabled,var(--color-btn-primary-disabled-text));fill:var(--button-primary-fgColor-disabled,var(--color-btn-primary-disabled-text))}.Button--primary .Counter{background-color:var(--buttonCounter-primary-bgColor-rest,var(--color-btn-primary-counter-bg));color:inherit}.Button--secondary{color:var(--button-default-fgColor-rest,var(--color-btn-text));fill:var(--fgColor-muted,var(--color-fg-muted));background-color:var(--button-default-bgColor-rest,var(--color-btn-bg));border-color:var(--button-default-borderColor-rest,var(--color-btn-border));box-shadow:var(--button-default-shadow-resting,var(--color-btn-shadow)),var(--button-default-shadow-inset,var(--color-btn-inset-shadow))}.Button--secondary:hover:not(:disabled,.Button--inactive){background-color:var(--button-default-bgColor-hover,var(--color-btn-hover-bg));border-color:var(--button-default-borderColor-hover,var(--color-btn-hover-border))}.Button--secondary:active:not(:disabled){background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg));border-color:var(--button-default-borderColor-active,var(--color-btn-active-border))}.Button--secondary[aria-pressed=true]{background-color:var(--button-default-bgColor-selected,var(--color-btn-selected-bg));box-shadow:var(--shadow-inset,var(--color-primer-shadow-inset))}.Button--secondary:disabled,.Button--secondary[aria-disabled=true]{background-color:var(--button-default-bgColor-disabled,var(--color-btn-bg));border-color:var(--button-default-borderColor-disabled,var(--color-btn-border));color:var(--control-fgColor-disabled,var(--color-primer-fg-disabled));fill:var(--control-fgColor-disabled,var(--color-primer-fg-disabled))}.Button--invisible{color:var(--button-default-fgColor-rest,var(--color-btn-text))}.Button--invisible.Button--iconOnly{color:var(--button-invisible-iconColor-rest,var(--color-fg-muted))}.Button--invisible:hover:not(:disabled,.Button--inactive){background-color:var(--button-invisible-bgColor-hover,var(--color-action-list-item-default-hover-bg))}.Button--invisible:hover:not(:disabled,.Button--inactive) .Button-visual{color:var(--button-invisible-iconColor-hover,var(--color-fg-default))}.Button--invisible:active:not(:disabled),.Button--invisible[aria-pressed=true]{background-color:var(--button-invisible-bgColor-active,var(--color-action-list-item-default-active-bg))}.Button--invisible:disabled,.Button--invisible[aria-disabled=true]{background-color:var(--button-invisible-bgColor-disabled,var(--color-action-list-item-default-selected-bg));border-color:var(--button-invisible-borderColor-disabled,var(--color-action-list-item-default-selected-bg));color:var(--button-invisible-fgColor-disabled,var(--color-primer-fg-disabled));fill:var(--button-invisible-fgColor-disabled,var(--color-primer-fg-disabled))}.Button--invisible.Button--invisible-noVisuals .Button-label{color:var(--button-invisible-fgColor-rest,var(--color-btn-outline-text))}.Button--invisible .Button-visual{color:var(--button-invisible-iconColor-rest,var(--color-fg-muted))}.Button--invisible .Button-visual .Counter{color:var(--fgColor-default,var(--color-fg-default))}.Button--link{color:var(--fgColor-link,var(--color-accent-fg));fill:var(--fgColor-link,var(--color-accent-fg));border:none;display:inline-block;font-size:inherit;height:unset;padding:0}.Button--link:hover:not(:disabled,.Button--inactive){-webkit-text-decoration:underline;text-decoration:underline}.Button--link:focus,.Button--link:focus-visible{outline-offset:2px}.Button--link:disabled,.Button--link[aria-disabled=true]{background-color:initial;border-color:#0000;color:var(--control-fgColor-disabled,var(--color-primer-fg-disabled));fill:var(--control-fgColor-disabled,var(--color-primer-fg-disabled))}.Button--danger{color:var(--button-danger-fgColor-rest,var(--color-btn-danger-text));fill:var(--button-danger-iconColor-rest,var(--color-btn-danger-icon));background-color:var(--button-danger-bgColor-rest,var(--color-btn-bg));border-color:var(--button-danger-borderColor-rest,var(--color-btn-border));box-shadow:var(--button-default-shadow-resting,var(--color-btn-shadow)),var(--button-default-shadow-inset,var(--color-btn-inset-shadow))}.Button--danger:hover:not(:disabled,.Button--inactive){color:var(--button-danger-fgColor-hover,var(--color-btn-danger-hover-text));fill:var(--button-danger-fgColor-hover,var(--color-btn-danger-hover-text));background-color:var(--button-danger-bgColor-hover,var(--color-btn-danger-hover-bg));border-color:var(--button-danger-borderColor-hover,var(--color-btn-danger-hover-border));box-shadow:var(--shadow-resting-small,var(--color-shadow-small))}.Button--danger:hover:not(:disabled,.Button--inactive) .Counter{background-color:var(--buttonCounter-danger-bgColor-hover,var(--color-btn-danger-hover-counter-bg));color:var(--buttonCounter-danger-fgColor-hover,var(--color-btn-danger-hover-counter-fg))}.Button--danger:active:not(:disabled),.Button--danger[aria-pressed=true]{color:var(--button-danger-fgColor-active,var(--color-btn-danger-selected-text));fill:var(--button-danger-fgColor-active,var(--color-btn-danger-selected-text));background-color:var(--button-danger-bgColor-active,var(--color-btn-danger-selected-bg));border-color:var(--button-danger-borderColor-active,var(--color-btn-danger-selected-border));box-shadow:var(--button-danger-shadow-selected,var(--color-btn-danger-selected-shadow))}.Button--danger:disabled,.Button--danger[aria-disabled=true]{color:var(--button-danger-fgColor-disabled,var(--color-btn-danger-disabled-text));fill:var(--button-danger-fgColor-disabled,var(--color-btn-danger-disabled-text));background-color:var(--button-danger-bgColor-disabled,var(--color-btn-danger-disabled-bg));border-color:var(--button-default-borderColor-disabled,var(--color-btn-border))}.Button--danger:disabled .Counter,.Button--danger[aria-disabled=true] .Counter{background-color:var(--buttonCounter-danger-bgColor-disabled,var(--color-btn-danger-disabled-counter-bg));color:var(--buttonCounter-danger-fgColor-disabled,var(--color-btn-danger-disabled-counter-fg))}.Button--danger .Counter{background-color:var(--buttonCounter-danger-bgColor-rest,var(--color-btn-danger-counter-bg));color:var(--buttonCounter-danger-fgColor-rest,var(--color-btn-danger-counter-fg))}.Button--iconOnly{display:inline-grid;padding:unset;place-content:center;width:var(--control-medium-size,2rem)}.Button--iconOnly.Button--small{width:var(--control-small-size,1.75rem)}.Button--iconOnly.Button--large{width:var(--control-large-size,2.5rem)}.Button--inactive:not([aria-disabled=true],:disabled){background-color:var(--button-inactive-bgColor);border:0;color:var(--button-inactive-fgColor);cursor:default}
|
1
|
+
:root{--duration-fast:80ms;--easing-easeInOut:cubic-bezier(0.65,0,0.35,1)}.Button{align-items:center;background-color:initial;border:var(--borderWidth-thin,max(1px,.0625rem)) solid;border-color:#0000;border-radius:var(--borderRadius-medium,.375rem);color:var(--button-default-fgColor-rest,var(--color-btn-text));cursor:pointer;display:inline-flex;flex-direction:row;font-size:var(--text-body-size-medium,.875rem);font-weight:var(--base-text-weight-medium,500);gap:var(--base-size-4,.25rem);height:var(--control-medium-size,2rem);justify-content:space-between;min-width:max-content;padding:0 var(--control-medium-paddingInline-normal,.75rem);position:relative;text-align:center;transition:var(--duration-fast) var(--easing-easeInOut);transition-property:color,fill,background-color,border-color;-webkit-user-select:none;user-select:none}@media (pointer:coarse){.Button:before{content:"";height:100%;left:50%;min-height:48px;min-width:48px;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:100%}}.Button:hover{transition-duration:var(--duration-fast)}.Button:active{transition:none}.Button:disabled,.Button[aria-disabled=true]{box-shadow:none;cursor:not-allowed}a.Button:hover,summary.Button:hover{-webkit-text-decoration:none;text-decoration:none}.Button-content{align-items:center;display:grid;flex:1 0 auto;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0,auto) min-content;place-content:center}.Button-content>:not(:last-child){margin-right:var(--control-medium-gap,.5rem)}.Button-content--alignStart{justify-content:start}.Button-visual{display:flex;pointer-events:none}.Button-visual .Counter{background-color:var(--buttonCounter-default-bgColor-rest,var(--color-btn-counter-bg));color:inherit}.Button-label{grid-area:text;line-height:var(--text-body-lineHeight-medium,1.4285);white-space:nowrap}.Button-leadingVisual{grid-area:leadingVisual}.Button-leadingVisual svg{fill:currentcolor}.Button-trailingVisual{grid-area:trailingVisual}.Button-trailingAction{margin-right:calc(var(--base-size-4,.25rem)*-1)}.Button--small{font-size:var(--text-body-size-small,.75rem);gap:var(--control-small-gap,.25rem);height:var(--control-small-size,1.75rem);padding:0 var(--control-small-paddingInline-condensed,.5rem)}.Button--small .Button-label{line-height:var(--text-body-lineHeight-small,1.6666)}.Button--small .Button-content>:not(:last-child){margin-right:var(--control-small-gap,.25rem)}.Button--large{gap:var(--control-large-gap,.5rem);height:var(--control-large-size,2.5rem);padding:0 var(--control-large-paddingInline-spacious,1rem)}.Button--large .Button-label{line-height:var(--text-body-lineHeight-large,1.5)}.Button--large .Button-content>:not(:last-child){margin-right:var(--control-large-gap,.5rem)}.Button--fullWidth{width:100%}.Button--primary{color:var(--button-primary-fgColor-rest,var(--color-btn-primary-text));fill:var(--button-primary-iconColor-rest,var(--color-btn-primary-icon));background-color:var(--button-primary-bgColor-rest,var(--color-btn-primary-bg));border-color:var(--button-primary-borderColor-rest,var(--color-btn-primary-border));box-shadow:var(--shadow-resting-small,var(--color-btn-primary-shadow))}.Button--primary:hover:not(:disabled,.Button--inactive){background-color:var(--button-primary-bgColor-hover,var(--color-btn-primary-hover-bg));border-color:var(--button-primary-borderColor-hover,var(--color-btn-primary-hover-border))}.Button--primary:focus{box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis,var(--color-fg-on-emphasis));outline:2px solid var(--focus-outlineColor,var(--color-accent-fg));outline-offset:-2px}.Button--primary:focus:not(:focus-visible){box-shadow:none;outline:1px solid #0000}.Button--primary:focus-visible{box-shadow:inset 0 0 0 3px var(--fgColor-onEmphasis,var(--color-fg-on-emphasis));outline:2px solid var(--focus-outlineColor,var(--color-accent-fg));outline-offset:-2px}.Button--primary:active:not(:disabled),.Button--primary[aria-pressed=true]{background-color:var(--button-primary-bgColor-active,var(--color-btn-primary-selected-bg));box-shadow:var(--button-primary-shadow-selected,var(--color-btn-primary-selected-shadow))}.Button--primary:disabled,.Button--primary[aria-disabled=true]{background-color:var(--button-primary-bgColor-disabled,var(--color-btn-primary-disabled-bg));border-color:var(--button-primary-borderColor-disabled,var(--color-btn-primary-disabled-border));color:var(--button-primary-fgColor-disabled,var(--color-btn-primary-disabled-text));fill:var(--button-primary-fgColor-disabled,var(--color-btn-primary-disabled-text))}.Button--primary .Counter{background-color:var(--buttonCounter-primary-bgColor-rest,var(--color-btn-primary-counter-bg));color:inherit}.Button--secondary{color:var(--button-default-fgColor-rest,var(--color-btn-text));fill:var(--fgColor-muted,var(--color-fg-muted));background-color:var(--button-default-bgColor-rest,var(--color-btn-bg));border-color:var(--button-default-borderColor-rest,var(--color-btn-border));box-shadow:var(--button-default-shadow-resting,var(--color-btn-shadow)),var(--button-default-shadow-inset,var(--color-btn-inset-shadow))}.Button--secondary:hover:not(:disabled,.Button--inactive){background-color:var(--button-default-bgColor-hover,var(--color-btn-hover-bg));border-color:var(--button-default-borderColor-hover,var(--color-btn-hover-border))}.Button--secondary:active:not(:disabled){background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg));border-color:var(--button-default-borderColor-active,var(--color-btn-active-border))}.Button--secondary[aria-pressed=true]{background-color:var(--button-default-bgColor-selected,var(--color-btn-selected-bg));box-shadow:var(--shadow-inset,var(--color-primer-shadow-inset))}.Button--secondary:disabled,.Button--secondary[aria-disabled=true]{background-color:var(--button-default-bgColor-disabled,var(--color-btn-bg));border-color:var(--button-default-borderColor-disabled,var(--color-btn-border));color:var(--control-fgColor-disabled,var(--color-primer-fg-disabled));fill:var(--control-fgColor-disabled,var(--color-primer-fg-disabled))}.Button--invisible{color:var(--button-default-fgColor-rest,var(--color-btn-text))}.Button--invisible.Button--iconOnly{color:var(--button-invisible-iconColor-rest,var(--color-fg-muted))}.Button--invisible:hover:not(:disabled,.Button--inactive){background-color:var(--control-transparent-bgColor-hover,var(--color-action-list-item-default-hover-bg))}.Button--invisible:active:not(:disabled),.Button--invisible[aria-pressed=true]{background-color:var(--button-invisible-bgColor-active,var(--color-action-list-item-default-active-bg))}.Button--invisible:disabled,.Button--invisible[aria-disabled=true]{background-color:var(--button-invisible-bgColor-disabled,var(--color-action-list-item-default-selected-bg));border-color:var(--button-invisible-borderColor-disabled,var(--color-action-list-item-default-selected-bg));color:var(--button-invisible-fgColor-disabled,var(--color-primer-fg-disabled));fill:var(--button-invisible-fgColor-disabled,var(--color-primer-fg-disabled))}.Button--invisible.Button--invisible-noVisuals .Button-label{color:var(--button-invisible-fgColor-rest,var(--color-btn-outline-text))}.Button--invisible .Button-visual{color:var(--button-invisible-iconColor-rest,var(--color-fg-muted))}.Button--invisible .Button-visual .Counter{color:var(--fgColor-default,var(--color-fg-default))}.Button--link{color:var(--fgColor-link,var(--color-accent-fg));fill:var(--fgColor-link,var(--color-accent-fg));border:none;display:inline-block;font-size:inherit;height:unset;padding:0}.Button--link:hover:not(:disabled,.Button--inactive){-webkit-text-decoration:underline;text-decoration:underline}.Button--link:focus,.Button--link:focus-visible{outline-offset:2px}.Button--link:disabled,.Button--link[aria-disabled=true]{background-color:initial;border-color:#0000;color:var(--control-fgColor-disabled,var(--color-primer-fg-disabled));fill:var(--control-fgColor-disabled,var(--color-primer-fg-disabled))}.Button--danger{color:var(--button-danger-fgColor-rest,var(--color-btn-danger-text));fill:var(--button-danger-iconColor-rest,var(--color-btn-danger-icon));background-color:var(--button-danger-bgColor-rest,var(--color-btn-bg));border-color:var(--button-danger-borderColor-rest,var(--color-btn-border));box-shadow:var(--button-default-shadow-resting,var(--color-btn-shadow)),var(--button-default-shadow-inset,var(--color-btn-inset-shadow))}.Button--danger:hover:not(:disabled,.Button--inactive){color:var(--button-danger-fgColor-hover,var(--color-btn-danger-hover-text));fill:var(--button-danger-fgColor-hover,var(--color-btn-danger-hover-text));background-color:var(--button-danger-bgColor-hover,var(--color-btn-danger-hover-bg));border-color:var(--button-danger-borderColor-hover,var(--color-btn-danger-hover-border));box-shadow:var(--shadow-resting-small,var(--color-shadow-small))}.Button--danger:hover:not(:disabled,.Button--inactive) .Counter{background-color:var(--buttonCounter-danger-bgColor-hover,var(--color-btn-danger-hover-counter-bg));color:var(--buttonCounter-danger-fgColor-hover,var(--color-btn-danger-hover-counter-fg))}.Button--danger:active:not(:disabled),.Button--danger[aria-pressed=true]{color:var(--button-danger-fgColor-active,var(--color-btn-danger-selected-text));fill:var(--button-danger-fgColor-active,var(--color-btn-danger-selected-text));background-color:var(--button-danger-bgColor-active,var(--color-btn-danger-selected-bg));border-color:var(--button-danger-borderColor-active,var(--color-btn-danger-selected-border));box-shadow:var(--button-danger-shadow-selected,var(--color-btn-danger-selected-shadow))}.Button--danger:disabled,.Button--danger[aria-disabled=true]{color:var(--button-danger-fgColor-disabled,var(--color-btn-danger-disabled-text));fill:var(--button-danger-fgColor-disabled,var(--color-btn-danger-disabled-text));background-color:var(--button-danger-bgColor-disabled,var(--color-btn-danger-disabled-bg));border-color:var(--button-default-borderColor-disabled,var(--color-btn-border))}.Button--danger:disabled .Counter,.Button--danger[aria-disabled=true] .Counter{background-color:var(--buttonCounter-danger-bgColor-disabled,var(--color-btn-danger-disabled-counter-bg));color:var(--buttonCounter-danger-fgColor-disabled,var(--color-btn-danger-disabled-counter-fg))}.Button--danger .Counter{background-color:var(--buttonCounter-danger-bgColor-rest,var(--color-btn-danger-counter-bg));color:var(--buttonCounter-danger-fgColor-rest,var(--color-btn-danger-counter-fg))}.Button--iconOnly{display:inline-grid;padding:unset;place-content:center;width:var(--control-medium-size,2rem)}.Button--iconOnly.Button--small{width:var(--control-small-size,1.75rem)}.Button--iconOnly.Button--large{width:var(--control-large-size,2.5rem)}.Button--inactive:not([aria-disabled=true],:disabled){background-color:var(--button-inactive-bgColor);border:0;color:var(--button-inactive-fgColor);cursor:default}
|
@@ -46,7 +46,6 @@
|
|
46
46
|
".Button--invisible",
|
47
47
|
".Button--invisible.Button--iconOnly",
|
48
48
|
".Button--invisible:hover:not(:disabled,.Button--inactive)",
|
49
|
-
".Button--invisible:hover:not(:disabled,.Button--inactive) .Button-visual",
|
50
49
|
".Button--invisible:active:not(:disabled)",
|
51
50
|
".Button--invisible[aria-pressed=true]",
|
52
51
|
".Button--invisible:disabled",
|
@@ -47,21 +47,19 @@ let NavListElement = class NavListElement extends HTMLElement {
|
|
47
47
|
}
|
48
48
|
// expand collapsible item onClick
|
49
49
|
expandItem(item) {
|
50
|
-
|
51
|
-
(_a = item.nextElementSibling) === null || _a === void 0 ? void 0 : _a.removeAttribute('data-hidden');
|
50
|
+
item.nextElementSibling?.removeAttribute('data-hidden');
|
52
51
|
item.setAttribute('aria-expanded', 'true');
|
53
52
|
}
|
54
53
|
collapseItem(item) {
|
55
|
-
|
56
|
-
(_a = item.nextElementSibling) === null || _a === void 0 ? void 0 : _a.setAttribute('data-hidden', '');
|
54
|
+
item.nextElementSibling?.setAttribute('data-hidden', '');
|
57
55
|
item.setAttribute('aria-expanded', 'false');
|
58
56
|
item.focus();
|
59
57
|
}
|
60
58
|
itemIsExpanded(item) {
|
61
|
-
if (
|
59
|
+
if (item?.tagName === 'A') {
|
62
60
|
return true;
|
63
61
|
}
|
64
|
-
return
|
62
|
+
return item?.getAttribute('aria-expanded') === 'true';
|
65
63
|
}
|
66
64
|
// expand/collapse item
|
67
65
|
handleItemWithSubItemClick(e) {
|
@@ -104,13 +102,12 @@ let NavListElement = class NavListElement extends HTMLElement {
|
|
104
102
|
};
|
105
103
|
_NavListElement_instances = new WeakSet();
|
106
104
|
_NavListElement_findSelectedNavItemById = function _NavListElement_findSelectedNavItemById(itemId) {
|
107
|
-
var _a;
|
108
105
|
// First we compare the selected link to data-item-id for each nav item
|
109
106
|
for (const navItem of this.items) {
|
110
107
|
if (navItem.classList.contains('ActionListItem--hasSubItem')) {
|
111
108
|
continue;
|
112
109
|
}
|
113
|
-
const keys =
|
110
|
+
const keys = navItem.getAttribute('data-item-id')?.split(' ') || [];
|
114
111
|
if (keys.includes(itemId)) {
|
115
112
|
return navItem;
|
116
113
|
}
|
@@ -154,10 +151,9 @@ _NavListElement_deselect = function _NavListElement_deselect(navItem) {
|
|
154
151
|
}
|
155
152
|
};
|
156
153
|
_NavListElement_findParentMenu = function _NavListElement_findParentMenu(navItem) {
|
157
|
-
var _a;
|
158
154
|
if (!navItem.classList.contains('ActionListItem--subItem'))
|
159
155
|
return null;
|
160
|
-
const parent =
|
156
|
+
const parent = navItem.closest('li.ActionListItem--hasSubItem')?.querySelector('button.ActionListContent');
|
161
157
|
if (parent) {
|
162
158
|
return parent;
|
163
159
|
}
|
@@ -44,7 +44,6 @@ let NavListGroupElement = class NavListGroupElement extends HTMLElement {
|
|
44
44
|
return this.showMoreItem.getAttribute('src') || '';
|
45
45
|
}
|
46
46
|
async showMore(e) {
|
47
|
-
var _a, _b;
|
48
47
|
e.preventDefault();
|
49
48
|
if (this.showMoreDisabled)
|
50
49
|
return;
|
@@ -69,11 +68,11 @@ let NavListGroupElement = class NavListGroupElement extends HTMLElement {
|
|
69
68
|
return;
|
70
69
|
}
|
71
70
|
const fragment = __classPrivateFieldGet(this, _NavListGroupElement_instances, "m", _NavListGroupElement_parseHTML).call(this, document, html);
|
72
|
-
|
71
|
+
fragment?.querySelector('li > a')?.setAttribute('data-targets', 'nav-list-group.focusMarkers');
|
73
72
|
const listId = e.target.closest('button').getAttribute('data-list-id');
|
74
73
|
const list = document.getElementById(listId);
|
75
74
|
list.append(fragment);
|
76
|
-
|
75
|
+
this.focusMarkers.pop()?.focus();
|
77
76
|
this.showMoreDisabled = false;
|
78
77
|
}
|
79
78
|
setShowMoreItemState() {
|
@@ -11,13 +11,12 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
11
11
|
};
|
12
12
|
var _DialogHelperElement_abortController;
|
13
13
|
function dialogInvokerButtonHandler(event) {
|
14
|
-
var _a;
|
15
14
|
const target = event.target;
|
16
|
-
const button = target
|
15
|
+
const button = target?.closest('button');
|
17
16
|
if (!button || button.hasAttribute('disabled') || button.getAttribute('aria-disabled') === 'true')
|
18
17
|
return;
|
19
18
|
// If the user is clicking a valid dialog trigger
|
20
|
-
let dialogId = button
|
19
|
+
let dialogId = button?.getAttribute('data-show-dialog-id');
|
21
20
|
if (dialogId) {
|
22
21
|
const dialog = document.getElementById(dialogId);
|
23
22
|
if (dialog instanceof HTMLDialogElement) {
|
@@ -36,7 +35,7 @@ function dialogInvokerButtonHandler(event) {
|
|
36
35
|
let node = button;
|
37
36
|
let fixed = false;
|
38
37
|
while (node) {
|
39
|
-
node =
|
38
|
+
node = node.parentElement?.closest('[popover]:not(:popover-open)');
|
40
39
|
if (node && node.popover === 'auto') {
|
41
40
|
node.classList.add('dialog-inside-popover-fix');
|
42
41
|
node.popover = 'manual';
|
@@ -93,14 +92,13 @@ export class DialogHelperElement extends HTMLElement {
|
|
93
92
|
}).observe(this, { subtree: true, attributeFilter: ['open'] });
|
94
93
|
}
|
95
94
|
disconnectedCallback() {
|
96
|
-
|
97
|
-
(_a = __classPrivateFieldGet(this, _DialogHelperElement_abortController, "f")) === null || _a === void 0 ? void 0 : _a.abort();
|
95
|
+
__classPrivateFieldGet(this, _DialogHelperElement_abortController, "f")?.abort();
|
98
96
|
}
|
99
97
|
handleEvent(event) {
|
100
98
|
const target = event.target;
|
101
99
|
const dialog = this.dialog;
|
102
100
|
// The click target _must_ be the dialog element itself, and not elements underneath or inside.
|
103
|
-
if (target !== dialog || !
|
101
|
+
if (target !== dialog || !dialog?.open)
|
104
102
|
return;
|
105
103
|
const rect = dialog.getBoundingClientRect();
|
106
104
|
const clickWasInsideDialog = rect.top <= event.clientY &&
|
@@ -13,7 +13,7 @@ var _FocusGroupElement_instances, _FocusGroupElement_retainSignal, _FocusGroupEl
|
|
13
13
|
import '@oddbird/popover-polyfill';
|
14
14
|
const validSelectors = ['[role="menuitem"]', '[role="menuitemcheckbox"]', '[role="menuitemradio"]'];
|
15
15
|
const menuItemSelector = validSelectors.map(selector => `:not([hidden]) > ${selector}`).join(', ');
|
16
|
-
const getMnemonicFor = (item) =>
|
16
|
+
const getMnemonicFor = (item) => item.textContent?.trim()[0].toLowerCase();
|
17
17
|
const printable = /^\S$/;
|
18
18
|
class FocusGroupElement extends HTMLElement {
|
19
19
|
constructor() {
|
@@ -54,26 +54,23 @@ class FocusGroupElement extends HTMLElement {
|
|
54
54
|
this.addEventListener('focusin', this, { signal });
|
55
55
|
}
|
56
56
|
disconnectedCallback() {
|
57
|
-
|
58
|
-
(_a = __classPrivateFieldGet(this, _FocusGroupElement_abortController, "f")) === null || _a === void 0 ? void 0 : _a.abort();
|
57
|
+
__classPrivateFieldGet(this, _FocusGroupElement_abortController, "f")?.abort();
|
59
58
|
}
|
60
59
|
handleEvent(event) {
|
61
|
-
var _a;
|
62
60
|
const { direction, nowrap } = this;
|
63
61
|
if (event.type === 'focusin') {
|
64
62
|
if (this.retain && event.target instanceof Element && event.target.matches(menuItemSelector)) {
|
65
|
-
|
63
|
+
__classPrivateFieldGet(this, _FocusGroupElement_retainSignal, "f")?.abort();
|
66
64
|
const { signal } = (__classPrivateFieldSet(this, _FocusGroupElement_retainSignal, new AbortController(), "f"));
|
67
65
|
for (const item of __classPrivateFieldGet(this, _FocusGroupElement_instances, "a", _FocusGroupElement_items_get)) {
|
68
66
|
item.setAttribute('tabindex', item === event.target ? '0' : '-1');
|
69
67
|
const popover = event.target.closest('[popover]');
|
70
|
-
if (item === event.target &&
|
68
|
+
if (item === event.target && popover?.popover === 'auto' && popover.closest('focus-group') === this) {
|
71
69
|
popover.addEventListener('toggle', (toggleEvent) => {
|
72
|
-
var _a, _b;
|
73
70
|
if (!(toggleEvent.target instanceof Element))
|
74
71
|
return;
|
75
72
|
if (toggleEvent.newState === 'closed') {
|
76
|
-
|
73
|
+
__classPrivateFieldGet(this, _FocusGroupElement_retainSignal, "f")?.abort();
|
77
74
|
item.setAttribute('tabindex', '-1');
|
78
75
|
if (popover.id) {
|
79
76
|
const invoker = this.querySelector(`[popovertarget="${popover.id}"]`);
|
@@ -81,7 +78,7 @@ class FocusGroupElement extends HTMLElement {
|
|
81
78
|
invoker.setAttribute('tabindex', '0');
|
82
79
|
}
|
83
80
|
else {
|
84
|
-
|
81
|
+
__classPrivateFieldGet(this, _FocusGroupElement_instances, "a", _FocusGroupElement_items_get)[0]?.setAttribute('tabindex', '0');
|
85
82
|
}
|
86
83
|
}
|
87
84
|
}
|
@@ -146,13 +143,13 @@ class FocusGroupElement extends HTMLElement {
|
|
146
143
|
let el = focusEl;
|
147
144
|
do {
|
148
145
|
el = el.closest(`[popover]:not(:popover-open)`);
|
149
|
-
if (
|
146
|
+
if (el?.popover === 'auto' && !['ArrowRight', 'ArrowLeft'].includes(event.key)) {
|
150
147
|
el.showPopover();
|
151
148
|
}
|
152
|
-
el =
|
149
|
+
el = el?.parentElement || null;
|
153
150
|
} while (el);
|
154
151
|
}
|
155
|
-
focusEl
|
152
|
+
focusEl?.focus();
|
156
153
|
}
|
157
154
|
}
|
158
155
|
}
|
@@ -8,7 +8,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
8
8
|
import { controller, targets } from '@github/catalyst';
|
9
9
|
let PrimerMultiInputElement = class PrimerMultiInputElement extends HTMLElement {
|
10
10
|
activateField(name) {
|
11
|
-
var _a, _b;
|
12
11
|
const fieldWithName = this.findField(name);
|
13
12
|
if (!fieldWithName)
|
14
13
|
return;
|
@@ -17,11 +16,11 @@ let PrimerMultiInputElement = class PrimerMultiInputElement extends HTMLElement
|
|
17
16
|
continue;
|
18
17
|
field.setAttribute('disabled', 'disabled');
|
19
18
|
field.setAttribute('hidden', 'hidden');
|
20
|
-
|
19
|
+
field.parentElement?.setAttribute('hidden', 'hidden');
|
21
20
|
}
|
22
21
|
fieldWithName.removeAttribute('disabled');
|
23
22
|
fieldWithName.removeAttribute('hidden');
|
24
|
-
|
23
|
+
fieldWithName.parentElement?.removeAttribute('hidden');
|
25
24
|
}
|
26
25
|
findField(name) {
|
27
26
|
for (const field of this.fields) {
|
@@ -27,8 +27,7 @@ class PrimerTextFieldElement extends HTMLElement {
|
|
27
27
|
_PrimerTextFieldElement_abortController.set(this, void 0);
|
28
28
|
}
|
29
29
|
connectedCallback() {
|
30
|
-
|
31
|
-
(_a = __classPrivateFieldGet(this, _PrimerTextFieldElement_abortController, "f")) === null || _a === void 0 ? void 0 : _a.abort();
|
30
|
+
__classPrivateFieldGet(this, _PrimerTextFieldElement_abortController, "f")?.abort();
|
32
31
|
const { signal } = (__classPrivateFieldSet(this, _PrimerTextFieldElement_abortController, new AbortController(), "f"));
|
33
32
|
this.inputElement.addEventListener('auto-check-success', async (event) => {
|
34
33
|
const message = await event.detail.response.text();
|
@@ -45,8 +44,7 @@ class PrimerTextFieldElement extends HTMLElement {
|
|
45
44
|
}, { signal });
|
46
45
|
}
|
47
46
|
disconnectedCallback() {
|
48
|
-
|
49
|
-
(_a = __classPrivateFieldGet(this, _PrimerTextFieldElement_abortController, "f")) === null || _a === void 0 ? void 0 : _a.abort();
|
47
|
+
__classPrivateFieldGet(this, _PrimerTextFieldElement_abortController, "f")?.abort();
|
50
48
|
}
|
51
49
|
clearContents() {
|
52
50
|
this.inputElement.value = '';
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@primer/view-components",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.19.0-rc.0bc76876",
|
4
4
|
"description": "ViewComponents for the Primer Design System",
|
5
5
|
"main": "app/assets/javascripts/primer_view_components.js",
|
6
6
|
"module": "app/components/primer/primer.js",
|
@@ -51,7 +51,7 @@
|
|
51
51
|
"@github/include-fragment-element": "^6.1.1",
|
52
52
|
"@github/relative-time-element": "^4.0.0",
|
53
53
|
"@github/tab-container-element": "^3.1.2",
|
54
|
-
"@oddbird/popover-polyfill": "^0.
|
54
|
+
"@oddbird/popover-polyfill": "^0.4.0",
|
55
55
|
"@primer/behaviors": "^1.3.4"
|
56
56
|
},
|
57
57
|
"devDependencies": {
|
package/static/arguments.json
CHANGED
@@ -3436,6 +3436,28 @@
|
|
3436
3436
|
}
|
3437
3437
|
]
|
3438
3438
|
},
|
3439
|
+
{
|
3440
|
+
"component": "ButtonGroup::MenuButton",
|
3441
|
+
"status": "alpha",
|
3442
|
+
"a11y_reviewed": false,
|
3443
|
+
"short_name": "ButtonGroupMenuButton",
|
3444
|
+
"source": "https://github.com/primer/view_components/tree/main/app/components/primer/beta/button_group/menu_button.rb",
|
3445
|
+
"lookbook": "https://primer.style/view-components/lookbook/inspect/primer/beta/button_group/menu_button/default/",
|
3446
|
+
"parameters": [
|
3447
|
+
{
|
3448
|
+
"name": "menu_arguments",
|
3449
|
+
"type": "Hash",
|
3450
|
+
"default": "`{}`",
|
3451
|
+
"description": "The arguments accepted by [ActionMenu](/components/alpha/actionmenu)."
|
3452
|
+
},
|
3453
|
+
{
|
3454
|
+
"name": "button_arguments",
|
3455
|
+
"type": "Hash",
|
3456
|
+
"default": "`{}`",
|
3457
|
+
"description": "The arguments accepted by [Button](/components/beta/button) or [IconButton](/components/beta/iconbutton), depending on the value of the `icon:` argument."
|
3458
|
+
}
|
3459
|
+
]
|
3460
|
+
},
|
3439
3461
|
{
|
3440
3462
|
"component": "ClipboardCopy",
|
3441
3463
|
"status": "beta",
|
package/static/audited_at.json
CHANGED
@@ -75,6 +75,7 @@
|
|
75
75
|
"Primer::Beta::Breadcrumbs::Item": "",
|
76
76
|
"Primer::Beta::Button": "",
|
77
77
|
"Primer::Beta::ButtonGroup": "",
|
78
|
+
"Primer::Beta::ButtonGroup::MenuButton": "",
|
78
79
|
"Primer::Beta::ClipboardCopy": "",
|
79
80
|
"Primer::Beta::ClipboardCopyBaseButton": "",
|
80
81
|
"Primer::Beta::ClipboardCopyButton": "",
|