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

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.
@@ -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
  },