x
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<!-- AutoComplete with non-visible label --><auto-complete src="/view-components/rails-app/auto_complete?version=alpha" for="test-id-1" data-view-component="true"> <label for="input-id-1" class=""> <span class="sr-only">Select a fruit</span> </label> <span class="autocomplete-body"> <input id="input-id-1" name="input-id-1" autocomplete="off" type="text" data-view-component="true" class="form-control" /> <ul id="test-id-1" data-view-component="true" class="autocomplete-results"></ul> </span> <div id="test-id-1-feedback" class="sr-only"></div></auto-complete><!-- AutoComplete with inline label --><auto-complete src="/view-components/rails-app/auto_complete?version=alpha" for="test-id-2" data-view-component="true"> <label for="input-id-2" class="autocomplete-label-inline"> Select a fruit </label> <span class="autocomplete-body"> <input id="input-id-2" name="input-id-2" autocomplete="off" type="text" data-view-component="true" class="form-control" /> <ul id="test-id-2" data-view-component="true" class="autocomplete-results"></ul> </span> <div id="test-id-2-feedback" class="sr-only"></div></auto-complete><!-- AutoComplete with search icon --><auto-complete src="/view-components/rails-app/auto_complete?version=alpha" for="test-id-3" data-view-component="true"> <label for="input-id-3" class="autocomplete-label-stacked"> Select a fruit </label> <span class="autocomplete-body"> <div class="form-control autocomplete-embedded-icon-wrap"> <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search"> <path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path> </svg> <input id="input-id-3" name="input-id-3" autocomplete="off" type="text" data-view-component="true" class="form-control" /> </div> <ul id="test-id-3" data-view-component="true" class="autocomplete-results"></ul> </span> <div id="test-id-3-feedback" class="sr-only"></div></auto-complete><!-- AutoComplete with clear button --><auto-complete src="/view-components/rails-app/auto_complete?version=alpha" for="test-id-4" data-view-component="true"> <label for="input-id-4" class="autocomplete-label-stacked"> Select a fruit </label> <span class="autocomplete-body"> <input id="input-id-4" name="input-id-4" autocomplete="off" type="text" data-view-component="true" class="form-control" /> <button id="input-id-4-clear" class="btn-octicon" aria-label="Clear"><svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x"> <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path> </svg></button> <ul id="test-id-4" data-view-component="true" class="autocomplete-results"></ul> </span> <div id="test-id-4-feedback" class="sr-only"></div></auto-complete>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# AutoComplete with non-visible label# rubocop:disable Primer/ComponentNameMigrationrender( Primer::Alpha::AutoComplete.new( label_text: "Select a fruit", input_id: "input-id-1", list_id: "test-id-1", src: UrlHelpers.primer_view_components.autocomplete_index_path(version: "alpha"), is_label_visible: false ))# rubocop:enable Primer/ComponentNameMigration# AutoComplete with inline label# rubocop:disable Primer/ComponentNameMigrationrender( Primer::Alpha::AutoComplete.new( label_text: "Select a fruit", input_id: "input-id-2", list_id: "test-id-2", src: UrlHelpers.primer_view_components.autocomplete_index_path(version: "alpha"), is_label_inline: true ))# rubocop:enable Primer/ComponentNameMigration# AutoComplete with search icon# rubocop:disable Primer/ComponentNameMigrationrender( Primer::Alpha::AutoComplete.new( label_text: "Select a fruit", input_id: "input-id-3", list_id: "test-id-3", src: UrlHelpers.primer_view_components.autocomplete_index_path(version: "alpha"), with_icon: true ))# rubocop:enable Primer/ComponentNameMigration# AutoComplete with clear button# rubocop:disable Primer/ComponentNameMigrationrender( Primer::Alpha::AutoComplete.new( label_text: "Select a fruit", input_id: "input-id-4", list_id: "test-id-4", src: UrlHelpers.primer_view_components.autocomplete_index_path(version: "alpha"), is_clearable: true ))# rubocop:enable Primer/ComponentNameMigrationNo notes provided.
No params configured.
app/components/primer/alpha/auto_complete.css
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
/* autocomplete *//* This file can be deprecated when AutoComplete is upstreamed to PVC + rolled out to dotcom https://github.com/github/primer/issues/796** AutoComplete relies on FormControl, Overlay and ActionList CSS *//* Stacked label (default) */.autocomplete-label-stacked { display: block; margin-bottom: var(--base-size-6);}/* Inline label (non-default) */.autocomplete-label-inline { display: inline; margin-right: var(--base-size-6);}/* Switch to stacked at smaller viewport */@media (max-width: 543.98px) { .autocomplete-label-inline { display: block; margin-bottom: var(--base-size-6); }}/* Wrapper for the input and result elements to ensure alignment */.autocomplete-body { position: relative; display: inline;}/* Wrapper and conditional styles for when an icon is added */.autocomplete-embedded-icon-wrap { display: inline-flex; padding: var(--base-size-4) var(--base-size-8); align-items: center;}.autocomplete-embedded-icon-wrap:focus-within { border-color: var(--borderColor-accent-emphasis); border-color: var(--focus-outlineColor); outline: none; box-shadow: inset 0 0 0 1px var(--focus-outlineColor); }.autocomplete-embedded-icon-wrap .form-control { padding: 0; margin-left: var(--base-size-8); border: none; box-shadow: none; }:is(.autocomplete-embedded-icon-wrap .form-control):focus { box-shadow: none; }:is(.autocomplete-embedded-icon-wrap .form-control):focus-visible { box-shadow: none; }/* A pop up list of items used to show autocompleted results */.autocomplete-results { position: absolute; left: 0; z-index: 99; width: max-content; min-width: 100%; max-height: 20em; overflow-y: auto; font-size: var(--text-codeBlock-size); list-style: none; background: var(--overlay-bgColor); border: var(--borderWidth-thin) solid var(--borderColor-default); border-radius: var(--borderRadius-medium); box-shadow: var(--shadow-resting-medium);}/* One of the items that appears within an autocomplete group** Bold black text on white background */.autocomplete-item { display: block; width: 100%; padding: var(--base-size-4) var(--base-size-8); overflow: hidden; font-weight: var(--base-text-weight-semibold); color: var(--fgColor-default); text-align: left; -webkit-text-decoration: none; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; background-color: var(--overlay-bgColor); border: 0; /* `color` is inherited, so setting it on the item recolors descendants ** without a universal `… *` descendant rule (which forces a slow ** style-recalc match attempt against every element on the page). */}.autocomplete-item:hover { color: var(--fgColor-onEmphasis); -webkit-text-decoration: none; text-decoration: none; background-color: var(--bgColor-accent-emphasis); }.autocomplete-item.selected,.autocomplete-item[aria-selected='true'],.autocomplete-item.navigation-focus { color: var(--fgColor-onEmphasis); -webkit-text-decoration: none; text-decoration: none; background-color: var(--bgColor-accent-emphasis); }