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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/app/assets/javascripts/primer_view_components.js +1 -1
- data/app/assets/javascripts/primer_view_components.js.map +1 -1
- data/app/components/primer/open_project/filterable_tree_view.js +28 -2
- data/app/components/primer/open_project/filterable_tree_view.ts +27 -1
- data/lib/primer/view_components/version.rb +1 -1
- data/previews/primer/alpha/segmented_control_preview.rb +0 -4
- data/previews/primer/open_project/filterable_tree_view_preview/default.html.erb +1 -1
- data/previews/primer/open_project/filterable_tree_view_preview.rb +1 -1
- data/static/arguments.json +7 -1
- data/static/info_arch.json +39 -7
- data/static/previews.json +42 -16
- metadata +1 -1
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
|
@@ -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") %>
|
data/static/arguments.json
CHANGED
|
@@ -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": "`
|
|
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
|
{
|
data/static/info_arch.json
CHANGED
|
@@ -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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "`
|
|
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/
|
|
21942
|
-
"name": "
|
|
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": "
|
|
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": "
|
|
4893
|
-
"status": "
|
|
4894
|
-
"lookup_path": "primer/
|
|
4905
|
+
"component": "Heading",
|
|
4906
|
+
"status": "beta",
|
|
4907
|
+
"lookup_path": "primer/beta/heading",
|
|
4895
4908
|
"examples": [
|
|
4896
4909
|
{
|
|
4897
|
-
"preview_path": "primer/
|
|
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/
|
|
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": "
|
|
4928
|
-
"lookup_path": "primer/
|
|
4939
|
+
"component": "OpenProject::Heading",
|
|
4940
|
+
"status": "open_project",
|
|
4941
|
+
"lookup_path": "primer/open_project/heading",
|
|
4929
4942
|
"examples": [
|
|
4930
4943
|
{
|
|
4931
|
-
"preview_path": "primer/
|
|
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/
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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/
|
|
8239
|
-
"name": "
|
|
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
|
},
|