@primer/view-components 0.26.0-rc.4b9be17c → 0.26.0-rc.6d3138b7
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/components/primer/alpha/action_menu/action_menu_element.js +43 -13
- package/package.json +2 -2
- package/static/arguments.json +12 -0
- package/static/constants.json +0 -1
- package/static/info_arch.json +12 -0
@@ -15,7 +15,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
15
15
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
16
16
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
17
17
|
};
|
18
|
-
var _ActionMenuElement_instances, _ActionMenuElement_abortController, _ActionMenuElement_originalLabel, _ActionMenuElement_inputName, _ActionMenuElement_invokerBeingClicked, _ActionMenuElement_softDisableItems, _ActionMenuElement_potentiallyDisallowActivation,
|
18
|
+
var _ActionMenuElement_instances, _ActionMenuElement_abortController, _ActionMenuElement_originalLabel, _ActionMenuElement_inputName, _ActionMenuElement_invokerBeingClicked, _ActionMenuElement_softDisableItems, _ActionMenuElement_potentiallyDisallowActivation, _ActionMenuElement_isKeyboardActivation, _ActionMenuElement_isKeyboardActivationViaEnter, _ActionMenuElement_isKeyboardActivationViaSpace, _ActionMenuElement_isMouseActivation, _ActionMenuElement_isActivation, _ActionMenuElement_handleInvokerActivated, _ActionMenuElement_handleDialogItemActivated, _ActionMenuElement_handleItemActivated, _ActionMenuElement_activateItem, _ActionMenuElement_handleIncludeFragmentReplaced, _ActionMenuElement_handleFocusOut, _ActionMenuElement_show, _ActionMenuElement_hide, _ActionMenuElement_isOpen, _ActionMenuElement_setDynamicLabel, _ActionMenuElement_updateInput, _ActionMenuElement_firstItem_get;
|
19
19
|
import { controller, target } from '@github/catalyst';
|
20
20
|
import '@oddbird/popover-polyfill';
|
21
21
|
const validSelectors = ['[role="menuitem"]', '[role="menuitemcheckbox"]', '[role="menuitemradio"]'];
|
@@ -152,13 +152,18 @@ let ActionMenuElement = class ActionMenuElement extends HTMLElement {
|
|
152
152
|
return;
|
153
153
|
}
|
154
154
|
}
|
155
|
-
|
156
|
-
|
157
|
-
|
155
|
+
__classPrivateFieldGet(this, _ActionMenuElement_instances, "m", _ActionMenuElement_activateItem).call(this, event, item);
|
156
|
+
__classPrivateFieldGet(this, _ActionMenuElement_instances, "m", _ActionMenuElement_handleItemActivated).call(this, item);
|
157
|
+
// Pressing the space key on a button or link will cause the page to scroll unless preventDefault()
|
158
|
+
// is called. While calling preventDefault() appears to have no effect on link navigation, it skips
|
159
|
+
// form submission. The code below therefore only calls preventDefault() if the button has been
|
160
|
+
// activated by the space key, and manually submits the form if the button is a submit button.
|
161
|
+
if (__classPrivateFieldGet(this, _ActionMenuElement_instances, "m", _ActionMenuElement_isKeyboardActivationViaSpace).call(this, event)) {
|
158
162
|
event.preventDefault();
|
159
|
-
item.
|
163
|
+
if (item.getAttribute('type') === 'submit') {
|
164
|
+
item.closest('form')?.submit();
|
165
|
+
}
|
160
166
|
}
|
161
|
-
__classPrivateFieldGet(this, _ActionMenuElement_instances, "m", _ActionMenuElement_handleItemActivated).call(this, item);
|
162
167
|
return;
|
163
168
|
}
|
164
169
|
if (event.type === 'include-fragment-replaced') {
|
@@ -264,18 +269,26 @@ _ActionMenuElement_potentiallyDisallowActivation = function _ActionMenuElement_p
|
|
264
269
|
}
|
265
270
|
return false;
|
266
271
|
};
|
267
|
-
|
268
|
-
return (
|
269
|
-
|
272
|
+
_ActionMenuElement_isKeyboardActivation = function _ActionMenuElement_isKeyboardActivation(event) {
|
273
|
+
return __classPrivateFieldGet(this, _ActionMenuElement_instances, "m", _ActionMenuElement_isKeyboardActivationViaEnter).call(this, event) || __classPrivateFieldGet(this, _ActionMenuElement_instances, "m", _ActionMenuElement_isKeyboardActivationViaSpace).call(this, event);
|
274
|
+
};
|
275
|
+
_ActionMenuElement_isKeyboardActivationViaEnter = function _ActionMenuElement_isKeyboardActivationViaEnter(event) {
|
276
|
+
return (event instanceof KeyboardEvent &&
|
277
|
+
event.type === 'keydown' &&
|
278
|
+
!(event.ctrlKey || event.altKey || event.metaKey || event.shiftKey) &&
|
279
|
+
event.key === 'Enter');
|
280
|
+
};
|
281
|
+
_ActionMenuElement_isKeyboardActivationViaSpace = function _ActionMenuElement_isKeyboardActivationViaSpace(event) {
|
282
|
+
return (event instanceof KeyboardEvent &&
|
270
283
|
event.type === 'keydown' &&
|
271
284
|
!(event.ctrlKey || event.altKey || event.metaKey || event.shiftKey) &&
|
272
285
|
event.key === ' ');
|
273
286
|
};
|
287
|
+
_ActionMenuElement_isMouseActivation = function _ActionMenuElement_isMouseActivation(event) {
|
288
|
+
return event instanceof MouseEvent && event.type === 'click';
|
289
|
+
};
|
274
290
|
_ActionMenuElement_isActivation = function _ActionMenuElement_isActivation(event) {
|
275
|
-
|
276
|
-
// enter or space counterintuitively fires one of these rather than a KeyboardEvent. Since PointerEvent
|
277
|
-
// inherits from MouseEvent, it is enough to check for MouseEvent here.
|
278
|
-
return (event instanceof MouseEvent && event.type === 'click') || __classPrivateFieldGet(this, _ActionMenuElement_instances, "m", _ActionMenuElement_isAnchorActivationViaSpace).call(this, event);
|
291
|
+
return __classPrivateFieldGet(this, _ActionMenuElement_instances, "m", _ActionMenuElement_isMouseActivation).call(this, event) || __classPrivateFieldGet(this, _ActionMenuElement_instances, "m", _ActionMenuElement_isKeyboardActivation).call(this, event);
|
279
292
|
};
|
280
293
|
_ActionMenuElement_handleInvokerActivated = function _ActionMenuElement_handleInvokerActivated(event) {
|
281
294
|
event.preventDefault();
|
@@ -350,6 +363,23 @@ _ActionMenuElement_handleItemActivated = function _ActionMenuElement_handleItemA
|
|
350
363
|
detail: { item: item.parentElement, checked: this.isItemChecked(item.parentElement) },
|
351
364
|
}));
|
352
365
|
};
|
366
|
+
_ActionMenuElement_activateItem = function _ActionMenuElement_activateItem(event, item) {
|
367
|
+
const eventWillActivateByDefault = (event instanceof MouseEvent && event.type === 'click') ||
|
368
|
+
(event instanceof KeyboardEvent &&
|
369
|
+
event.type === 'keydown' &&
|
370
|
+
!(event.ctrlKey || event.altKey || event.metaKey || event.shiftKey) &&
|
371
|
+
event.key === 'Enter');
|
372
|
+
// if the event will result in activating the current item by default, i.e. is a
|
373
|
+
// mouse click or keyboard enter, bail out
|
374
|
+
if (eventWillActivateByDefault)
|
375
|
+
return;
|
376
|
+
// otherwise, event will not result in activation by default, so we stop it and
|
377
|
+
// simulate a click
|
378
|
+
/* eslint-disable-next-line no-restricted-syntax */
|
379
|
+
event.stopPropagation();
|
380
|
+
const elem = item;
|
381
|
+
elem.click();
|
382
|
+
};
|
353
383
|
_ActionMenuElement_handleIncludeFragmentReplaced = function _ActionMenuElement_handleIncludeFragmentReplaced() {
|
354
384
|
if (__classPrivateFieldGet(this, _ActionMenuElement_instances, "a", _ActionMenuElement_firstItem_get))
|
355
385
|
__classPrivateFieldGet(this, _ActionMenuElement_instances, "a", _ActionMenuElement_firstItem_get).focus();
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@primer/view-components",
|
3
|
-
"version": "0.26.0-rc.
|
3
|
+
"version": "0.26.0-rc.6d3138b7",
|
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",
|
@@ -84,7 +84,7 @@
|
|
84
84
|
"postcss-import": "^16.0.0",
|
85
85
|
"postcss-mixins": "^10.0.0",
|
86
86
|
"postcss-preset-env": "^9.3.0",
|
87
|
-
"prettier": "3.3.
|
87
|
+
"prettier": "3.3.0",
|
88
88
|
"rollup": "^2.79.1",
|
89
89
|
"rollup-plugin-terser": "^7.0.2",
|
90
90
|
"stylelint": "^16.1.0",
|
package/static/arguments.json
CHANGED
@@ -2462,6 +2462,18 @@
|
|
2462
2462
|
"default": "N/A",
|
2463
2463
|
"description": "One of `:left` or `:right`. - Defaults to left"
|
2464
2464
|
},
|
2465
|
+
{
|
2466
|
+
"name": "body_arguments",
|
2467
|
+
"type": "Hash",
|
2468
|
+
"default": "`{}`",
|
2469
|
+
"description": "[System arguments](/system-arguments) for the body wrapper."
|
2470
|
+
},
|
2471
|
+
{
|
2472
|
+
"name": "wrapper_arguments",
|
2473
|
+
"type": "Hash",
|
2474
|
+
"default": "`{}`",
|
2475
|
+
"description": "[System arguments](/system-arguments) for the `TabContainer` wrapper."
|
2476
|
+
},
|
2465
2477
|
{
|
2466
2478
|
"name": "system_arguments",
|
2467
2479
|
"type": "Hash",
|
package/static/constants.json
CHANGED
package/static/info_arch.json
CHANGED
@@ -7628,6 +7628,18 @@
|
|
7628
7628
|
"default": "N/A",
|
7629
7629
|
"description": "One of `:left` or `:right`. - Defaults to left"
|
7630
7630
|
},
|
7631
|
+
{
|
7632
|
+
"name": "body_arguments",
|
7633
|
+
"type": "Hash",
|
7634
|
+
"default": "`{}`",
|
7635
|
+
"description": "{{link_to_system_arguments_docs}} for the body wrapper."
|
7636
|
+
},
|
7637
|
+
{
|
7638
|
+
"name": "wrapper_arguments",
|
7639
|
+
"type": "Hash",
|
7640
|
+
"default": "`{}`",
|
7641
|
+
"description": "{{link_to_system_arguments_docs}} for the `TabContainer` wrapper."
|
7642
|
+
},
|
7631
7643
|
{
|
7632
7644
|
"name": "system_arguments",
|
7633
7645
|
"type": "Hash",
|