@primer/view-components 0.31.0-rc.cd58efcb → 0.31.0-rc.dab49dc3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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;
@@ -502,7 +502,6 @@ _SelectPanelElement_addSelectedItem = function _SelectPanelElement_addSelectedIt
502
502
  value,
503
503
  label: itemContent.querySelector('.ActionListItem-label')?.textContent?.trim(),
504
504
  inputName: itemContent.getAttribute('data-input-name'),
505
- element: item,
506
505
  });
507
506
  }
508
507
  };
@@ -612,7 +611,9 @@ _SelectPanelElement_handleSearchFieldEvent = function _SelectPanelElement_handle
612
611
  if (key === 'Enter') {
613
612
  const item = this.visibleItems[0];
614
613
  if (item) {
615
- __classPrivateFieldGet(this, _SelectPanelElement_instances, "m", _SelectPanelElement_handleItemActivated).call(this, item, false);
614
+ const itemContent = __classPrivateFieldGet(this, _SelectPanelElement_instances, "m", _SelectPanelElement_getItemContent).call(this, item);
615
+ if (itemContent)
616
+ itemContent.click();
616
617
  }
617
618
  }
618
619
  else if (key === 'ArrowDown') {
@@ -625,14 +626,18 @@ _SelectPanelElement_handleSearchFieldEvent = function _SelectPanelElement_handle
625
626
  else if (key === 'Home') {
626
627
  const item = this.visibleItems[0];
627
628
  if (item) {
628
- __classPrivateFieldGet(this, _SelectPanelElement_instances, "m", _SelectPanelElement_getItemContent).call(this, item).focus();
629
+ const itemContent = __classPrivateFieldGet(this, _SelectPanelElement_instances, "m", _SelectPanelElement_getItemContent).call(this, item);
630
+ if (itemContent)
631
+ itemContent.focus();
629
632
  event.preventDefault();
630
633
  }
631
634
  }
632
635
  else if (key === 'End') {
633
636
  if (this.visibleItems.length > 0) {
634
637
  const item = this.visibleItems[this.visibleItems.length - 1];
635
- __classPrivateFieldGet(this, _SelectPanelElement_instances, "m", _SelectPanelElement_getItemContent).call(this, item).focus();
638
+ const itemContent = __classPrivateFieldGet(this, _SelectPanelElement_instances, "m", _SelectPanelElement_getItemContent).call(this, item);
639
+ if (itemContent)
640
+ itemContent.focus();
636
641
  event.preventDefault();
637
642
  }
638
643
  }
@@ -800,7 +805,7 @@ _SelectPanelElement_handleDialogItemActivated = function _SelectPanelElement_han
800
805
  dialog.addEventListener('close', handleDialogClose, { signal });
801
806
  dialog.addEventListener('cancel', handleDialogClose, { signal });
802
807
  };
803
- _SelectPanelElement_handleItemActivated = function _SelectPanelElement_handleItemActivated(item, shouldClose = true) {
808
+ _SelectPanelElement_handleItemActivated = function _SelectPanelElement_handleItemActivated(item) {
804
809
  // Hide popover after current event loop to prevent changes in focus from
805
810
  // altering the target of the event. Not doing this specifically affects
806
811
  // <a> tags. It causes the event to be sent to the currently focused element
@@ -809,7 +814,7 @@ _SelectPanelElement_handleItemActivated = function _SelectPanelElement_handleIte
809
814
  // works fine.
810
815
  if (this.selectVariant !== 'multiple') {
811
816
  setTimeout(() => {
812
- if (this.open && shouldClose) {
817
+ if (this.open) {
813
818
  this.hide();
814
819
  }
815
820
  });
@@ -828,7 +833,8 @@ _SelectPanelElement_handleItemActivated = function _SelectPanelElement_handleIte
828
833
  return;
829
834
  const itemContent = __classPrivateFieldGet(this, _SelectPanelElement_instances, "m", _SelectPanelElement_getItemContent).call(this, item);
830
835
  if (this.selectVariant === 'single') {
831
- const element = this.selectedItems[0]?.element;
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);
832
838
  if (element) {
833
839
  __classPrivateFieldGet(this, _SelectPanelElement_instances, "m", _SelectPanelElement_getItemContent).call(this, element)?.setAttribute(this.ariaSelectionType, 'false');
834
840
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@primer/view-components",
3
- "version": "0.31.0-rc.cd58efcb",
3
+ "version": "0.31.0-rc.dab49dc3",
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",
@@ -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": [
@@ -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
  },