openproject-primer_view_components 0.89.0 → 0.89.1

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.
@@ -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 _FilterableTreeViewElement_instances, _FilterableTreeViewElement_filterFn, _FilterableTreeViewElement_abortController, _FilterableTreeViewElement_stateMap, _FilterableTreeViewElement_debounceTimer, _FilterableTreeViewElement_fetchAbortController, _FilterableTreeViewElement_expansionSnapshot, _FilterableTreeViewElement_selectedModeSnapshot, _FilterableTreeViewElement_checkedNodeIds, _FilterableTreeViewElement_checkedNodeFormPayloads, _FilterableTreeViewElement_isFiltered, _FilterableTreeViewElement_src_get, _FilterableTreeViewElement_isAsyncMode_get, _FilterableTreeViewElement_clientHighlightsEnabled_get, _FilterableTreeViewElement_handleTreeViewEvent, _FilterableTreeViewElement_updateCheckedNodeIds, _FilterableTreeViewElement_handleTreeViewNodeChecked, _FilterableTreeViewElement_restoreNodeState, _FilterableTreeViewElement_handleFilterModeEvent, _FilterableTreeViewElement_undoClientSideFilter, _FilterableTreeViewElement_handleFilterInputEvent, _FilterableTreeViewElement_handleIncludeSubItemsCheckBoxEvent, _FilterableTreeViewElement_includeSubItems, _FilterableTreeViewElement_includeSubItemsUnder, _FilterableTreeViewElement_restoreAllNodeStates, _FilterableTreeViewElement_scheduleAsyncFetch, _FilterableTreeViewElement_fetchAndReplaceTree, _FilterableTreeViewElement_captureExpansionState, _FilterableTreeViewElement_applyExpansionSnapshot, _FilterableTreeViewElement_snapshotExpansionState, _FilterableTreeViewElement_restoreExpansionState, _FilterableTreeViewElement_restoreSelectionState, _FilterableTreeViewElement_expandAllSubTrees, _FilterableTreeViewElement_applyAsyncHighlights, _FilterableTreeViewElement_updateRetainedSelections, _FilterableTreeViewElement_applyFilterOptions, _FilterableTreeViewElement_applyHighlights, _FilterableTreeViewElement_applyManualHighlights, _FilterableTreeViewElement_removeHighlights;
18
+ var _FilterableTreeViewElement_instances, _FilterableTreeViewElement_filterFn, _FilterableTreeViewElement_abortController, _FilterableTreeViewElement_stateMap, _FilterableTreeViewElement_debounceTimer, _FilterableTreeViewElement_fetchAbortController, _FilterableTreeViewElement_expansionSnapshot, _FilterableTreeViewElement_selectedModeSnapshot, _FilterableTreeViewElement_checkedNodeIds, _FilterableTreeViewElement_checkedNodeFormPayloads, _FilterableTreeViewElement_isFiltered, _FilterableTreeViewElement_src_get, _FilterableTreeViewElement_isAsyncMode_get, _FilterableTreeViewElement_clientHighlightsEnabled_get, _FilterableTreeViewElement_handleTreeViewEvent, _FilterableTreeViewElement_updateCheckedNodeIds, _FilterableTreeViewElement_handleTreeViewNodeChecked, _FilterableTreeViewElement_restoreNodeState, _FilterableTreeViewElement_handleFilterModeEvent, _FilterableTreeViewElement_undoClientSideFilter, _FilterableTreeViewElement_handleFilterInputEvent, _FilterableTreeViewElement_handleFilterInputKeyDown, _FilterableTreeViewElement_handleTreeKeyDown, _FilterableTreeViewElement_handleIncludeSubItemsCheckBoxEvent, _FilterableTreeViewElement_includeSubItems, _FilterableTreeViewElement_includeSubItemsUnder, _FilterableTreeViewElement_restoreAllNodeStates, _FilterableTreeViewElement_scheduleAsyncFetch, _FilterableTreeViewElement_fetchAndReplaceTree, _FilterableTreeViewElement_captureExpansionState, _FilterableTreeViewElement_applyExpansionSnapshot, _FilterableTreeViewElement_snapshotExpansionState, _FilterableTreeViewElement_restoreExpansionState, _FilterableTreeViewElement_restoreSelectionState, _FilterableTreeViewElement_expandAllSubTrees, _FilterableTreeViewElement_applyAsyncHighlights, _FilterableTreeViewElement_updateRetainedSelections, _FilterableTreeViewElement_applyFilterOptions, _FilterableTreeViewElement_applyHighlights, _FilterableTreeViewElement_applyManualHighlights, _FilterableTreeViewElement_removeHighlights;
19
19
  import { controller, target } from '@github/catalyst';
20
20
  import { TreeViewElement } from '../alpha/tree_view/tree_view';
21
21
  import { TreeViewSubTreeNodeElement } from '../alpha/tree_view/tree_view_sub_tree_node_element';
@@ -57,6 +57,7 @@ let FilterableTreeViewElement = class FilterableTreeViewElement extends HTMLElem
57
57
  this.addEventListener('treeViewNodeChecked', this, { signal });
58
58
  this.addEventListener('itemActivated', this, { signal });
59
59
  this.addEventListener('input', this, { signal });
60
+ this.addEventListener('keydown', this, { signal });
60
61
  if (__classPrivateFieldGet(this, _FilterableTreeViewElement_instances, "a", _FilterableTreeViewElement_isAsyncMode_get)) {
61
62
  void __classPrivateFieldGet(this, _FilterableTreeViewElement_instances, "m", _FilterableTreeViewElement_fetchAndReplaceTree).call(this);
62
63
  }
@@ -72,7 +73,12 @@ let FilterableTreeViewElement = class FilterableTreeViewElement extends HTMLElem
72
73
  __classPrivateFieldGet(this, _FilterableTreeViewElement_instances, "m", _FilterableTreeViewElement_handleFilterModeEvent).call(this, event);
73
74
  }
74
75
  else if (event.target === this.filterInput) {
75
- __classPrivateFieldGet(this, _FilterableTreeViewElement_instances, "m", _FilterableTreeViewElement_handleFilterInputEvent).call(this, event);
76
+ if (event.type === 'keydown') {
77
+ __classPrivateFieldGet(this, _FilterableTreeViewElement_instances, "m", _FilterableTreeViewElement_handleFilterInputKeyDown).call(this, event);
78
+ }
79
+ else {
80
+ __classPrivateFieldGet(this, _FilterableTreeViewElement_instances, "m", _FilterableTreeViewElement_handleFilterInputEvent).call(this, event);
81
+ }
76
82
  }
77
83
  else if (event.target === this.includeSubItemsCheckBox) {
78
84
  __classPrivateFieldGet(this, _FilterableTreeViewElement_instances, "m", _FilterableTreeViewElement_handleIncludeSubItemsCheckBoxEvent).call(this, event);
@@ -80,6 +86,9 @@ let FilterableTreeViewElement = class FilterableTreeViewElement extends HTMLElem
80
86
  else if (event.target instanceof TreeViewElement || event.target instanceof TreeViewSubTreeNodeElement) {
81
87
  __classPrivateFieldGet(this, _FilterableTreeViewElement_instances, "m", _FilterableTreeViewElement_handleTreeViewEvent).call(this, event);
82
88
  }
89
+ else if (event.type === 'keydown' && this.treeViewList?.contains(event.target)) {
90
+ __classPrivateFieldGet(this, _FilterableTreeViewElement_instances, "m", _FilterableTreeViewElement_handleTreeKeyDown).call(this, event);
91
+ }
83
92
  }
84
93
  get filterModeControl() {
85
94
  return this.filterModeControlList.closest('segmented-control');
@@ -321,6 +330,23 @@ _FilterableTreeViewElement_handleFilterInputEvent = function _FilterableTreeView
321
330
  __classPrivateFieldGet(this, _FilterableTreeViewElement_instances, "m", _FilterableTreeViewElement_applyFilterOptions).call(this);
322
331
  }
323
332
  };
333
+ _FilterableTreeViewElement_handleFilterInputKeyDown = function _FilterableTreeViewElement_handleFilterInputKeyDown(event) {
334
+ if (event.key !== 'ArrowDown' && event.key !== 'ArrowUp')
335
+ return;
336
+ const treeitems = [...(this.treeViewList?.querySelectorAll('[role=treeitem]') ?? [])];
337
+ const visibleItems = treeitems.filter(item => !item.closest('[hidden]'));
338
+ if (visibleItems.length === 0)
339
+ return;
340
+ event.preventDefault();
341
+ const focusTarget = event.key === 'ArrowDown' ? visibleItems[0] : visibleItems[visibleItems.length - 1];
342
+ focusTarget.focus();
343
+ };
344
+ _FilterableTreeViewElement_handleTreeKeyDown = function _FilterableTreeViewElement_handleTreeKeyDown(event) {
345
+ if (event.key !== 'Escape')
346
+ return;
347
+ event.preventDefault();
348
+ this.filterInput.focus();
349
+ };
324
350
  _FilterableTreeViewElement_handleIncludeSubItemsCheckBoxEvent = function _FilterableTreeViewElement_handleIncludeSubItemsCheckBoxEvent(event) {
325
351
  if (!this.treeView)
326
352
  return;
@@ -49,6 +49,7 @@ export class FilterableTreeViewElement extends HTMLElement {
49
49
  this.addEventListener('treeViewNodeChecked', this, {signal})
50
50
  this.addEventListener('itemActivated', this, {signal})
51
51
  this.addEventListener('input', this, {signal})
52
+ this.addEventListener('keydown', this, {signal})
52
53
 
53
54
  if (this.#isAsyncMode) {
54
55
  void this.#fetchAndReplaceTree()
@@ -77,11 +78,17 @@ export class FilterableTreeViewElement extends HTMLElement {
77
78
  if (event.target === this.filterModeControl) {
78
79
  this.#handleFilterModeEvent(event)
79
80
  } else if (event.target === this.filterInput) {
80
- this.#handleFilterInputEvent(event)
81
+ if (event.type === 'keydown') {
82
+ this.#handleFilterInputKeyDown(event as KeyboardEvent)
83
+ } else {
84
+ this.#handleFilterInputEvent(event)
85
+ }
81
86
  } else if (event.target === this.includeSubItemsCheckBox) {
82
87
  this.#handleIncludeSubItemsCheckBoxEvent(event)
83
88
  } else if (event.target instanceof TreeViewElement || event.target instanceof TreeViewSubTreeNodeElement) {
84
89
  this.#handleTreeViewEvent(event)
90
+ } else if (event.type === 'keydown' && this.treeViewList?.contains(event.target as Node)) {
91
+ this.#handleTreeKeyDown(event as KeyboardEvent)
85
92
  }
86
93
  }
87
94
 
@@ -231,6 +238,25 @@ export class FilterableTreeViewElement extends HTMLElement {
231
238
  }
232
239
  }
233
240
 
241
+ #handleFilterInputKeyDown(event: KeyboardEvent) {
242
+ if (event.key !== 'ArrowDown' && event.key !== 'ArrowUp') return
243
+
244
+ const treeitems = [...(this.treeViewList?.querySelectorAll<HTMLElement>('[role=treeitem]') ?? [])]
245
+ const visibleItems = treeitems.filter(item => !item.closest('[hidden]'))
246
+
247
+ if (visibleItems.length === 0) return
248
+
249
+ event.preventDefault()
250
+ const focusTarget = event.key === 'ArrowDown' ? visibleItems[0] : visibleItems[visibleItems.length - 1]
251
+ focusTarget.focus()
252
+ }
253
+
254
+ #handleTreeKeyDown(event: KeyboardEvent) {
255
+ if (event.key !== 'Escape') return
256
+ event.preventDefault()
257
+ this.filterInput.focus()
258
+ }
259
+
234
260
  #handleIncludeSubItemsCheckBoxEvent(event: Event) {
235
261
  if (!this.treeView) return
236
262
  if (event.type !== 'input') return
@@ -6,7 +6,7 @@ module Primer
6
6
  module VERSION
7
7
  MAJOR = 0
8
8
  MINOR = 89
9
- PATCH = 0
9
+ PATCH = 1
10
10
 
11
11
  STRING = [MAJOR, MINOR, PATCH].join(".")
12
12
  end
@@ -58,7 +58,6 @@ module Primer
58
58
  # @!endgroup
59
59
 
60
60
  # @!group Icons and text
61
- # @label Size small
62
61
  # @snapshot
63
62
  def icons_and_text_small
64
63
  render(Primer::Alpha::SegmentedControl.new("aria-label": "File view", size: :small)) do |component|
@@ -69,7 +68,6 @@ module Primer
69
68
  end
70
69
 
71
70
  # @label Size medium
72
- # @snapshot
73
71
  def icons_and_text_medium
74
72
  render(Primer::Alpha::SegmentedControl.new("aria-label": "File view", size: :medium)) do |component|
75
73
  component.with_item(label: "Preview", icon: :eye, selected: true)
@@ -81,7 +79,6 @@ module Primer
81
79
 
82
80
  # @!group Trailing Label
83
81
  # @label Size small
84
- # @snapshot
85
82
  def trailing_label_width_small
86
83
  render(Primer::Alpha::SegmentedControl.new("aria-label": "Billing duration", size: :small)) do |component|
87
84
  component.with_item(label: "Monthly")
@@ -92,7 +89,6 @@ module Primer
92
89
  end
93
90
 
94
91
  # @label Size medium
95
- # @snapshot
96
92
  def trailing_label_width_medium
97
93
  render(Primer::Alpha::SegmentedControl.new("aria-label": "Billing duration", size: :medium)) do |component|
98
94
  component.with_item(label: "Monthly")
@@ -1,4 +1,4 @@
1
- <%= render(Primer::OpenProject::FilterableTreeView.new) do |tree| %>
1
+ <%= render(Primer::OpenProject::FilterableTreeView.new(filter_input_arguments: {autocomplete: "off"})) do |tree| %>
2
2
  <% tree.with_sub_tree(label: "Students", expanded: expanded) do |hogwarts| %>
3
3
  <% hogwarts.with_sub_tree(label: "Ravenclaw", expanded: expanded) do |ravenclaw| %>
4
4
  <% ravenclaw.with_leaf(label: "Luna Lovegood") %>
@@ -21,7 +21,7 @@ module Primer
21
21
 
22
22
  # @label Default
23
23
  #
24
- # @snapshot interactive
24
+ # @snapshot
25
25
  # @param expanded [Boolean] toggle
26
26
  def default(expanded: true)
27
27
  render_with_template(locals: {
@@ -6173,6 +6173,12 @@
6173
6173
  "default": "`nil`",
6174
6174
  "description": "URL of the server endpoint that returns a filtered `<tree-view>` HTML fragment. When set, activates async (server-side) filtering mode. See \"Async loading strategy\" above."
6175
6175
  },
6176
+ {
6177
+ "name": "show_search_highlighting",
6178
+ "type": "Boolean",
6179
+ "default": "`true`",
6180
+ "description": "Only relevant in async mode (`src:` must be set). When `true` (default), the client highlights matching text using the CSS Custom Highlight API or `<mark>` elements. When `false`, the client skips highlighting entirely; the server is responsible for including highlight markup (e.g. `<mark>` tags) in the returned HTML fragment."
6181
+ },
6176
6182
  {
6177
6183
  "name": "tree_view_arguments",
6178
6184
  "type": "Hash",
@@ -6498,7 +6504,7 @@
6498
6504
  {
6499
6505
  "name": "collapsed_search",
6500
6506
  "type": "Boolean",
6501
- "default": "`false`",
6507
+ "default": "`true`",
6502
6508
  "description": "When true, the search bar starts collapsed as an icon button on all screen sizes. Clicking expands it."
6503
6509
  },
6504
6510
  {
@@ -7301,7 +7301,7 @@
7301
7301
  {
7302
7302
  "preview_path": "primer/alpha/segmented_control/icons_and_text_medium",
7303
7303
  "name": "icons_and_text_medium",
7304
- "snapshot": "true",
7304
+ "snapshot": "false",
7305
7305
  "skip_rules": {
7306
7306
  "wont_fix": [
7307
7307
  "region"
@@ -7314,7 +7314,7 @@
7314
7314
  {
7315
7315
  "preview_path": "primer/alpha/segmented_control/trailing_label_width_small",
7316
7316
  "name": "trailing_label_width_small",
7317
- "snapshot": "true",
7317
+ "snapshot": "false",
7318
7318
  "skip_rules": {
7319
7319
  "wont_fix": [
7320
7320
  "region"
@@ -7327,7 +7327,7 @@
7327
7327
  {
7328
7328
  "preview_path": "primer/alpha/segmented_control/trailing_label_width_medium",
7329
7329
  "name": "trailing_label_width_medium",
7330
- "snapshot": "true",
7330
+ "snapshot": "false",
7331
7331
  "skip_rules": {
7332
7332
  "wont_fix": [
7333
7333
  "region"
@@ -10869,6 +10869,19 @@
10869
10869
  "color-contrast"
10870
10870
  ]
10871
10871
  }
10872
+ },
10873
+ {
10874
+ "preview_path": "primer/alpha/tree_view/doubled_path",
10875
+ "name": "doubled_path",
10876
+ "snapshot": "false",
10877
+ "skip_rules": {
10878
+ "wont_fix": [
10879
+ "region"
10880
+ ],
10881
+ "will_fix": [
10882
+ "color-contrast"
10883
+ ]
10884
+ }
10872
10885
  }
10873
10886
  ],
10874
10887
  "subcomponents": [
@@ -20368,6 +20381,12 @@
20368
20381
  "default": "`nil`",
20369
20382
  "description": "URL of the server endpoint that returns a filtered `<tree-view>` HTML fragment. When set, activates async (server-side) filtering mode. See \"Async loading strategy\" above."
20370
20383
  },
20384
+ {
20385
+ "name": "show_search_highlighting",
20386
+ "type": "Boolean",
20387
+ "default": "`true`",
20388
+ "description": "Only relevant in async mode (`src:` must be set). When `true` (default), the client highlights matching text using the CSS Custom Highlight API or `<mark>` elements. When `false`, the client skips highlighting entirely; the server is responsible for including highlight markup (e.g. `<mark>` tags) in the returned HTML fragment."
20389
+ },
20371
20390
  {
20372
20391
  "name": "tree_view_arguments",
20373
20392
  "type": "Hash",
@@ -20424,7 +20443,7 @@
20424
20443
  {
20425
20444
  "preview_path": "primer/open_project/filterable_tree_view/default",
20426
20445
  "name": "default",
20427
- "snapshot": "interactive",
20446
+ "snapshot": "true",
20428
20447
  "skip_rules": {
20429
20448
  "wont_fix": [
20430
20449
  "region"
@@ -20499,6 +20518,19 @@
20499
20518
  ]
20500
20519
  }
20501
20520
  },
20521
+ {
20522
+ "preview_path": "primer/open_project/filterable_tree_view/async_server_highlights",
20523
+ "name": "async_server_highlights",
20524
+ "snapshot": "false",
20525
+ "skip_rules": {
20526
+ "wont_fix": [
20527
+ "region"
20528
+ ],
20529
+ "will_fix": [
20530
+ "color-contrast"
20531
+ ]
20532
+ }
20533
+ },
20502
20534
  {
20503
20535
  "preview_path": "primer/open_project/filterable_tree_view/async_form_input",
20504
20536
  "name": "async_form_input",
@@ -21787,7 +21819,7 @@
21787
21819
  {
21788
21820
  "name": "collapsed_search",
21789
21821
  "type": "Boolean",
21790
- "default": "`false`",
21822
+ "default": "`true`",
21791
21823
  "description": "When true, the search bar starts collapsed as an icon button on all screen sizes. Clicking expands it."
21792
21824
  },
21793
21825
  {
@@ -21938,8 +21970,8 @@
21938
21970
  }
21939
21971
  },
21940
21972
  {
21941
- "preview_path": "primer/open_project/sub_header/collapsed_search",
21942
- "name": "collapsed_search",
21973
+ "preview_path": "primer/open_project/sub_header/expanded_search",
21974
+ "name": "expanded_search",
21943
21975
  "snapshot": "false",
21944
21976
  "skip_rules": {
21945
21977
  "wont_fix": [
data/static/previews.json CHANGED
@@ -4440,7 +4440,7 @@
4440
4440
  {
4441
4441
  "preview_path": "primer/open_project/filterable_tree_view/default",
4442
4442
  "name": "default",
4443
- "snapshot": "interactive",
4443
+ "snapshot": "true",
4444
4444
  "skip_rules": {
4445
4445
  "wont_fix": [
4446
4446
  "region"
@@ -4515,6 +4515,19 @@
4515
4515
  ]
4516
4516
  }
4517
4517
  },
4518
+ {
4519
+ "preview_path": "primer/open_project/filterable_tree_view/async_server_highlights",
4520
+ "name": "async_server_highlights",
4521
+ "snapshot": "false",
4522
+ "skip_rules": {
4523
+ "wont_fix": [
4524
+ "region"
4525
+ ],
4526
+ "will_fix": [
4527
+ "color-contrast"
4528
+ ]
4529
+ }
4530
+ },
4518
4531
  {
4519
4532
  "preview_path": "primer/open_project/filterable_tree_view/async_form_input",
4520
4533
  "name": "async_form_input",
@@ -4889,12 +4902,12 @@
4889
4902
  },
4890
4903
  {
4891
4904
  "name": "heading",
4892
- "component": "OpenProject::Heading",
4893
- "status": "open_project",
4894
- "lookup_path": "primer/open_project/heading",
4905
+ "component": "Heading",
4906
+ "status": "beta",
4907
+ "lookup_path": "primer/beta/heading",
4895
4908
  "examples": [
4896
4909
  {
4897
- "preview_path": "primer/open_project/heading/playground",
4910
+ "preview_path": "primer/beta/heading/playground",
4898
4911
  "name": "playground",
4899
4912
  "snapshot": "false",
4900
4913
  "skip_rules": {
@@ -4907,7 +4920,7 @@
4907
4920
  }
4908
4921
  },
4909
4922
  {
4910
- "preview_path": "primer/open_project/heading/default",
4923
+ "preview_path": "primer/beta/heading/default",
4911
4924
  "name": "default",
4912
4925
  "snapshot": "true",
4913
4926
  "skip_rules": {
@@ -4923,12 +4936,12 @@
4923
4936
  },
4924
4937
  {
4925
4938
  "name": "heading",
4926
- "component": "Heading",
4927
- "status": "beta",
4928
- "lookup_path": "primer/beta/heading",
4939
+ "component": "OpenProject::Heading",
4940
+ "status": "open_project",
4941
+ "lookup_path": "primer/open_project/heading",
4929
4942
  "examples": [
4930
4943
  {
4931
- "preview_path": "primer/beta/heading/playground",
4944
+ "preview_path": "primer/open_project/heading/playground",
4932
4945
  "name": "playground",
4933
4946
  "snapshot": "false",
4934
4947
  "skip_rules": {
@@ -4941,7 +4954,7 @@
4941
4954
  }
4942
4955
  },
4943
4956
  {
4944
- "preview_path": "primer/beta/heading/default",
4957
+ "preview_path": "primer/open_project/heading/default",
4945
4958
  "name": "default",
4946
4959
  "snapshot": "true",
4947
4960
  "skip_rules": {
@@ -7190,7 +7203,7 @@
7190
7203
  {
7191
7204
  "preview_path": "primer/alpha/segmented_control/icons_and_text_medium",
7192
7205
  "name": "icons_and_text_medium",
7193
- "snapshot": "true",
7206
+ "snapshot": "false",
7194
7207
  "skip_rules": {
7195
7208
  "wont_fix": [
7196
7209
  "region"
@@ -7203,7 +7216,7 @@
7203
7216
  {
7204
7217
  "preview_path": "primer/alpha/segmented_control/trailing_label_width_small",
7205
7218
  "name": "trailing_label_width_small",
7206
- "snapshot": "true",
7219
+ "snapshot": "false",
7207
7220
  "skip_rules": {
7208
7221
  "wont_fix": [
7209
7222
  "region"
@@ -7216,7 +7229,7 @@
7216
7229
  {
7217
7230
  "preview_path": "primer/alpha/segmented_control/trailing_label_width_medium",
7218
7231
  "name": "trailing_label_width_medium",
7219
- "snapshot": "true",
7232
+ "snapshot": "false",
7220
7233
  "skip_rules": {
7221
7234
  "wont_fix": [
7222
7235
  "region"
@@ -8235,8 +8248,8 @@
8235
8248
  }
8236
8249
  },
8237
8250
  {
8238
- "preview_path": "primer/open_project/sub_header/collapsed_search",
8239
- "name": "collapsed_search",
8251
+ "preview_path": "primer/open_project/sub_header/expanded_search",
8252
+ "name": "expanded_search",
8240
8253
  "snapshot": "false",
8241
8254
  "skip_rules": {
8242
8255
  "wont_fix": [
@@ -9808,6 +9821,19 @@
9808
9821
  "color-contrast"
9809
9822
  ]
9810
9823
  }
9824
+ },
9825
+ {
9826
+ "preview_path": "primer/alpha/tree_view/doubled_path",
9827
+ "name": "doubled_path",
9828
+ "snapshot": "false",
9829
+ "skip_rules": {
9830
+ "wont_fix": [
9831
+ "region"
9832
+ ],
9833
+ "will_fix": [
9834
+ "color-contrast"
9835
+ ]
9836
+ }
9811
9837
  }
9812
9838
  ]
9813
9839
  },
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openproject-primer_view_components
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.89.0
4
+ version: 0.89.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitHub Open Source