@primer/view-components 0.31.0-rc.1e5f6225 → 0.31.0-rc.40a4bff6
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/app/components/primer/alpha/select_panel_element.d.ts +0 -1
- 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/select_panel_element.d.ts +0 -1
- package/app/components/primer/alpha/select_panel_element.js +16 -7
- package/package.json +1 -1
- package/static/info_arch.json +13 -0
- package/static/previews.json +13 -0
@@ -6,7 +6,6 @@ type SelectedItem = {
|
|
6
6
|
label: string | null | undefined;
|
7
7
|
value: string | null | undefined;
|
8
8
|
inputName: string | null | undefined;
|
9
|
-
element: SelectPanelItem;
|
10
9
|
};
|
11
10
|
export type SelectPanelItem = HTMLLIElement;
|
12
11
|
export type FilterFn = (item: SelectPanelItem, query: string) => boolean;
|
@@ -55,6 +55,7 @@ const updateWhenVisible = (() => {
|
|
55
55
|
}));
|
56
56
|
resizeObserver.observe(el.ownerDocument.documentElement);
|
57
57
|
el.addEventListener('dialog:close', () => {
|
58
|
+
el.invokerElement?.setAttribute('aria-expanded', 'false');
|
58
59
|
anchors.delete(el);
|
59
60
|
});
|
60
61
|
el.addEventListener('dialog:open', () => {
|
@@ -252,6 +253,7 @@ let SelectPanelElement = class SelectPanelElement extends HTMLElement {
|
|
252
253
|
if (event.target === this.dialog && event.type === 'close') {
|
253
254
|
// Remove data-ready so it can be set the next time the panel is opened
|
254
255
|
this.dialog.removeAttribute('data-ready');
|
256
|
+
this.invokerElement?.setAttribute('aria-expanded', 'false');
|
255
257
|
this.dispatchEvent(new CustomEvent('panelClosed', {
|
256
258
|
detail: { panel: this },
|
257
259
|
bubbles: true,
|
@@ -301,6 +303,7 @@ let SelectPanelElement = class SelectPanelElement extends HTMLElement {
|
|
301
303
|
show() {
|
302
304
|
this.updateAnchorPosition();
|
303
305
|
this.dialog.showModal();
|
306
|
+
this.invokerElement?.setAttribute('aria-expanded', 'true');
|
304
307
|
const event = new CustomEvent('dialog:open', {
|
305
308
|
detail: { dialog: this.dialog },
|
306
309
|
});
|
@@ -499,7 +502,6 @@ _SelectPanelElement_addSelectedItem = function _SelectPanelElement_addSelectedIt
|
|
499
502
|
value,
|
500
503
|
label: itemContent.querySelector('.ActionListItem-label')?.textContent?.trim(),
|
501
504
|
inputName: itemContent.getAttribute('data-input-name'),
|
502
|
-
element: item,
|
503
505
|
});
|
504
506
|
}
|
505
507
|
};
|
@@ -609,7 +611,9 @@ _SelectPanelElement_handleSearchFieldEvent = function _SelectPanelElement_handle
|
|
609
611
|
if (key === 'Enter') {
|
610
612
|
const item = this.visibleItems[0];
|
611
613
|
if (item) {
|
612
|
-
__classPrivateFieldGet(this, _SelectPanelElement_instances, "m",
|
614
|
+
const itemContent = __classPrivateFieldGet(this, _SelectPanelElement_instances, "m", _SelectPanelElement_getItemContent).call(this, item);
|
615
|
+
if (itemContent)
|
616
|
+
itemContent.click();
|
613
617
|
}
|
614
618
|
}
|
615
619
|
else if (key === 'ArrowDown') {
|
@@ -622,14 +626,18 @@ _SelectPanelElement_handleSearchFieldEvent = function _SelectPanelElement_handle
|
|
622
626
|
else if (key === 'Home') {
|
623
627
|
const item = this.visibleItems[0];
|
624
628
|
if (item) {
|
625
|
-
__classPrivateFieldGet(this, _SelectPanelElement_instances, "m", _SelectPanelElement_getItemContent).call(this, item)
|
629
|
+
const itemContent = __classPrivateFieldGet(this, _SelectPanelElement_instances, "m", _SelectPanelElement_getItemContent).call(this, item);
|
630
|
+
if (itemContent)
|
631
|
+
itemContent.focus();
|
626
632
|
event.preventDefault();
|
627
633
|
}
|
628
634
|
}
|
629
635
|
else if (key === 'End') {
|
630
636
|
if (this.visibleItems.length > 0) {
|
631
637
|
const item = this.visibleItems[this.visibleItems.length - 1];
|
632
|
-
__classPrivateFieldGet(this, _SelectPanelElement_instances, "m", _SelectPanelElement_getItemContent).call(this, item)
|
638
|
+
const itemContent = __classPrivateFieldGet(this, _SelectPanelElement_instances, "m", _SelectPanelElement_getItemContent).call(this, item);
|
639
|
+
if (itemContent)
|
640
|
+
itemContent.focus();
|
633
641
|
event.preventDefault();
|
634
642
|
}
|
635
643
|
}
|
@@ -797,7 +805,7 @@ _SelectPanelElement_handleDialogItemActivated = function _SelectPanelElement_han
|
|
797
805
|
dialog.addEventListener('close', handleDialogClose, { signal });
|
798
806
|
dialog.addEventListener('cancel', handleDialogClose, { signal });
|
799
807
|
};
|
800
|
-
_SelectPanelElement_handleItemActivated = function _SelectPanelElement_handleItemActivated(item
|
808
|
+
_SelectPanelElement_handleItemActivated = function _SelectPanelElement_handleItemActivated(item) {
|
801
809
|
// Hide popover after current event loop to prevent changes in focus from
|
802
810
|
// altering the target of the event. Not doing this specifically affects
|
803
811
|
// <a> tags. It causes the event to be sent to the currently focused element
|
@@ -806,7 +814,7 @@ _SelectPanelElement_handleItemActivated = function _SelectPanelElement_handleIte
|
|
806
814
|
// works fine.
|
807
815
|
if (this.selectVariant !== 'multiple') {
|
808
816
|
setTimeout(() => {
|
809
|
-
if (this.open
|
817
|
+
if (this.open) {
|
810
818
|
this.hide();
|
811
819
|
}
|
812
820
|
});
|
@@ -825,7 +833,8 @@ _SelectPanelElement_handleItemActivated = function _SelectPanelElement_handleIte
|
|
825
833
|
return;
|
826
834
|
const itemContent = __classPrivateFieldGet(this, _SelectPanelElement_instances, "m", _SelectPanelElement_getItemContent).call(this, item);
|
827
835
|
if (this.selectVariant === 'single') {
|
828
|
-
const
|
836
|
+
const value = this.selectedItems[0]?.value;
|
837
|
+
const element = this.visibleItems.find(el => __classPrivateFieldGet(this, _SelectPanelElement_instances, "m", _SelectPanelElement_getItemContent).call(this, el)?.getAttribute('data-value') === value);
|
829
838
|
if (element) {
|
830
839
|
__classPrivateFieldGet(this, _SelectPanelElement_instances, "m", _SelectPanelElement_getItemContent).call(this, element)?.setAttribute(this.ariaSelectionType, 'false');
|
831
840
|
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@primer/view-components",
|
3
|
-
"version": "0.31.0-rc.
|
3
|
+
"version": "0.31.0-rc.40a4bff6",
|
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",
|
package/static/info_arch.json
CHANGED
@@ -8105,6 +8105,19 @@
|
|
8105
8105
|
"color-contrast"
|
8106
8106
|
]
|
8107
8107
|
}
|
8108
|
+
},
|
8109
|
+
{
|
8110
|
+
"preview_path": "primer/alpha/select_panel/list_of_links",
|
8111
|
+
"name": "list_of_links",
|
8112
|
+
"snapshot": "interactive",
|
8113
|
+
"skip_rules": {
|
8114
|
+
"wont_fix": [
|
8115
|
+
"region"
|
8116
|
+
],
|
8117
|
+
"will_fix": [
|
8118
|
+
"color-contrast"
|
8119
|
+
]
|
8120
|
+
}
|
8108
8121
|
}
|
8109
8122
|
],
|
8110
8123
|
"subcomponents": [
|
package/static/previews.json
CHANGED
@@ -6160,6 +6160,19 @@
|
|
6160
6160
|
"color-contrast"
|
6161
6161
|
]
|
6162
6162
|
}
|
6163
|
+
},
|
6164
|
+
{
|
6165
|
+
"preview_path": "primer/alpha/select_panel/list_of_links",
|
6166
|
+
"name": "list_of_links",
|
6167
|
+
"snapshot": "interactive",
|
6168
|
+
"skip_rules": {
|
6169
|
+
"wont_fix": [
|
6170
|
+
"region"
|
6171
|
+
],
|
6172
|
+
"will_fix": [
|
6173
|
+
"color-contrast"
|
6174
|
+
]
|
6175
|
+
}
|
6163
6176
|
}
|
6164
6177
|
]
|
6165
6178
|
},
|