@bridgeline-digital/hawksearch-handlebars-ui 1.0.0-beta.0

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.
Files changed (118) hide show
  1. package/.eslintignore +2 -0
  2. package/.eslintrc.json +153 -0
  3. package/.husky/pre-commit +5 -0
  4. package/.lintstagedrc.json +4 -0
  5. package/.prettierignore +7 -0
  6. package/.prettierrc.json +19 -0
  7. package/.vscode/launch.json +15 -0
  8. package/custom1.html +52 -0
  9. package/custom2.html +44 -0
  10. package/gulpfile.js +73 -0
  11. package/index.html +39 -0
  12. package/package.json +57 -0
  13. package/src/assets/icons/chevron-back.svg +4 -0
  14. package/src/assets/icons/chevron-down.svg +3 -0
  15. package/src/assets/icons/chevron-forward.svg +4 -0
  16. package/src/assets/icons/chevron-left.svg +3 -0
  17. package/src/assets/icons/chevron-right.svg +3 -0
  18. package/src/assets/icons/chevron-up.svg +3 -0
  19. package/src/assets/icons/cross.svg +3 -0
  20. package/src/assets/icons/help.svg +4 -0
  21. package/src/assets/icons/minus.svg +3 -0
  22. package/src/assets/icons/plus.svg +7 -0
  23. package/src/assets/images/icons.svg +1 -0
  24. package/src/assets/images/placeholder.png +0 -0
  25. package/src/components/autocomplete/autocomplete.component.hbs +60 -0
  26. package/src/components/autocomplete/autocomplete.component.ts +124 -0
  27. package/src/components/base.component.ts +120 -0
  28. package/src/components/facet-types/base-facet.component.ts +114 -0
  29. package/src/components/facet-types/checkbox-list-facet/checkbox-list-facet.component.hbs +6 -0
  30. package/src/components/facet-types/checkbox-list-facet/checkbox-list-facet.component.ts +73 -0
  31. package/src/components/facet-types/checkbox-list-facet/checkbox-list.partial.hbs +42 -0
  32. package/src/components/facet-types/color-facet/color-facet.component.hbs +29 -0
  33. package/src/components/facet-types/color-facet/color-facet.component.ts +26 -0
  34. package/src/components/facet-types/index.ts +6 -0
  35. package/src/components/facet-types/linked-list-facet/link-list-facet.component.hbs +17 -0
  36. package/src/components/facet-types/linked-list-facet/link-list-facet.component.ts +32 -0
  37. package/src/components/facet-types/range-slider-facet/range-slider-facet.component.hbs +11 -0
  38. package/src/components/facet-types/range-slider-facet/range-slider-facet.component.ts +107 -0
  39. package/src/components/facet-types/search-within-facet/search-within-facet.component.hbs +3 -0
  40. package/src/components/facet-types/search-within-facet/search-within-facet.component.ts +33 -0
  41. package/src/components/facet-types/size-facet/size-facet.component.hbs +29 -0
  42. package/src/components/facet-types/size-facet/size-facet.component.ts +30 -0
  43. package/src/components/facet-wrapper/facet-wrapper.component.hbs +36 -0
  44. package/src/components/facet-wrapper/facet-wrapper.component.ts +62 -0
  45. package/src/components/facets-list/facets-list.component.hbs +11 -0
  46. package/src/components/facets-list/facets-list.component.ts +92 -0
  47. package/src/components/icon/icon.component.hbs +3 -0
  48. package/src/components/icon/icon.component.ts +40 -0
  49. package/src/components/index.ts +18 -0
  50. package/src/components/modified-query/modified-query.component.hbs +7 -0
  51. package/src/components/modified-query/modified-query.component.ts +38 -0
  52. package/src/components/page-size/page-size.component.hbs +7 -0
  53. package/src/components/page-size/page-size.component.ts +35 -0
  54. package/src/components/pagination/pagination.component.hbs +34 -0
  55. package/src/components/pagination/pagination.component.ts +85 -0
  56. package/src/components/query-suggestions/query-suggestions.component.hbs +3 -0
  57. package/src/components/query-suggestions/query-suggestions.component.ts +66 -0
  58. package/src/components/range-slider/range-slider.component.hbs +9 -0
  59. package/src/components/range-slider/range-slider.component.ts +190 -0
  60. package/src/components/search/search.component.hbs +4 -0
  61. package/src/components/search/search.component.ts +93 -0
  62. package/src/components/search-results/search-results.component.hbs +29 -0
  63. package/src/components/search-results/search-results.component.ts +17 -0
  64. package/src/components/search-results-item/search-results-item.component.hbs +23 -0
  65. package/src/components/search-results-item/search-results-item.component.ts +99 -0
  66. package/src/components/search-results-list/search-results-list.component.hbs +15 -0
  67. package/src/components/search-results-list/search-results-list.component.ts +24 -0
  68. package/src/components/selected-facets/selected-facets.component.hbs +11 -0
  69. package/src/components/selected-facets/selected-facets.component.ts +81 -0
  70. package/src/components/sorting/sorting.component.hbs +7 -0
  71. package/src/components/sorting/sorting.component.ts +33 -0
  72. package/src/components/tabs/tabs.component.hbs +7 -0
  73. package/src/components/tabs/tabs.component.ts +35 -0
  74. package/src/components/tooltip/tooltip.component.hbs +6 -0
  75. package/src/components/tooltip/tooltip.component.ts +48 -0
  76. package/src/helpers/formatters.ts +15 -0
  77. package/src/helpers/index.ts +1 -0
  78. package/src/index.ts +125 -0
  79. package/src/models/autocomplete.models.ts +71 -0
  80. package/src/models/component.models.ts +27 -0
  81. package/src/models/global.models.ts +78 -0
  82. package/src/models/index.ts +7 -0
  83. package/src/models/raw-autocomplete.models.ts +46 -0
  84. package/src/models/raw-search.models.ts +130 -0
  85. package/src/models/search.models.ts +144 -0
  86. package/src/models/tracking.models.ts +33 -0
  87. package/src/scss/components/_autocomplete.scss +55 -0
  88. package/src/scss/components/_facets.scss +287 -0
  89. package/src/scss/components/_icons.scss +17 -0
  90. package/src/scss/components/_modified-query.scss +11 -0
  91. package/src/scss/components/_page-size.scss +2 -0
  92. package/src/scss/components/_pagination.scss +23 -0
  93. package/src/scss/components/_query-suggestions.scss +7 -0
  94. package/src/scss/components/_range-slider.scss +50 -0
  95. package/src/scss/components/_search-results-item.scss +64 -0
  96. package/src/scss/components/_search.scss +4 -0
  97. package/src/scss/components/_selected-facets.scss +24 -0
  98. package/src/scss/components/_sorting.scss +2 -0
  99. package/src/scss/components/_tabs.scss +51 -0
  100. package/src/scss/components/_tooltips.scss +29 -0
  101. package/src/scss/general/_forms.scss +82 -0
  102. package/src/scss/general/_grid-layout.scss +44 -0
  103. package/src/scss/general/_images.scss +3 -0
  104. package/src/scss/general/_typography.scss +15 -0
  105. package/src/scss/hawksearch.scss +35 -0
  106. package/src/scss/includes/_breakpoints.scss +51 -0
  107. package/src/scss/includes/_components.scss +14 -0
  108. package/src/scss/includes/_general.scss +4 -0
  109. package/src/scss/includes/_reset.scss +203 -0
  110. package/src/scss/includes/_utility-classes.scss +85 -0
  111. package/src/services/autocomplete.service.ts +104 -0
  112. package/src/services/base.service.ts +93 -0
  113. package/src/services/index.ts +3 -0
  114. package/src/services/search.service.ts +754 -0
  115. package/src/services/tracking.service.ts +136 -0
  116. package/tsconfig.json +22 -0
  117. package/typings.d.ts +21 -0
  118. package/webpack.config.js +75 -0
@@ -0,0 +1,130 @@
1
+ export interface RawFacetValue {
2
+ Count: number;
3
+ Label: string;
4
+ Level?: number;
5
+ Value: string;
6
+ RangeEnd?: string;
7
+ RangeMax?: string;
8
+ RangeMin?: string;
9
+ RangeStart?: string;
10
+ Selected?: boolean;
11
+ Children?: Array<RawFacetValue>;
12
+ }
13
+
14
+ export interface RawFacetSwatchValue {
15
+ Value: string;
16
+ Color?: string;
17
+ AssetName?: string;
18
+ AssetUrl?: string;
19
+ IsDefault: boolean;
20
+ }
21
+
22
+ export interface RawFacet {
23
+ AlwaysVisible: boolean;
24
+ CurrencySymbol: string;
25
+ DisplayType: string;
26
+ ExpandSelection: boolean;
27
+ FacetId: number;
28
+ FacetType: string;
29
+ Field: string;
30
+ FieldType: string;
31
+ IsCollapsedDefault?: boolean;
32
+ IsCollapsible?: boolean;
33
+ IsSearch: boolean;
34
+ Name: string;
35
+ ParamName?: string;
36
+ Values?: Array<RawFacetValue>;
37
+ Tooltip?: string;
38
+ TruncateThreshold?: number;
39
+ SwatchData?: Array<RawFacetSwatchValue>;
40
+ }
41
+
42
+ export interface RawSearchSelectionItem {
43
+ Label: string;
44
+ Value: string;
45
+ }
46
+
47
+ export interface RawSearchSelection {
48
+ Label: string;
49
+ Items: Array<RawSearchSelectionItem>;
50
+ }
51
+
52
+ export interface RawSearchSelections {
53
+ [field: string]: RawSearchSelection;
54
+ }
55
+
56
+ export interface RawSearchPagination {
57
+ CurrentPage: number;
58
+ IsShowFirstLink: boolean;
59
+ IsShowLastLink: boolean;
60
+ MaxPerPage: number;
61
+ NofPages: number;
62
+ NofResults: number;
63
+ NumberOfPageLinks: number;
64
+ Items: Array<{
65
+ Label: string;
66
+ PageSize: number;
67
+ Selected: boolean;
68
+ Default: boolean;
69
+ }>;
70
+ }
71
+
72
+ export interface RawSearchSorting {
73
+ Value?: string;
74
+ Items: Array<{
75
+ Label: string;
76
+ Value: string;
77
+ IsDefault: boolean;
78
+ Selected: boolean;
79
+ }>;
80
+ }
81
+
82
+ export interface RawSearchRedirect {
83
+ Location: string;
84
+ Target?: string;
85
+ }
86
+
87
+ export interface RawSearchResultsItemDocument {
88
+ [key: string]: Array<string>;
89
+ }
90
+
91
+ export interface RawSearchResultsItem {
92
+ DocId: string;
93
+ Document: RawSearchResultsItemDocument;
94
+ IsPin: boolean;
95
+ IsVisible: boolean;
96
+ Score: number;
97
+ }
98
+
99
+ export interface RawSearchResponse {
100
+ AdjustedKeyword?: string;
101
+ DidYouMean?: Array<string>;
102
+ Facets?: Array<RawFacet>;
103
+ Keyword?: string;
104
+ Pagination?: RawSearchPagination;
105
+ Redirect?: RawSearchRedirect;
106
+ Results?: Array<RawSearchResultsItem>;
107
+ Selections?: RawSearchSelections;
108
+ Sorting?: RawSearchSorting;
109
+ Success: boolean;
110
+ TrackingId: string;
111
+ }
112
+
113
+ export interface RawSearchRequest {
114
+ ClientData?: {
115
+ UserAgent?: string;
116
+ VisitorId?: string;
117
+ VisitId?: string;
118
+ };
119
+ ClientGuid: string;
120
+ IgnoreSpellcheck?: boolean;
121
+ IsInPreview?: boolean;
122
+ Keyword?: string;
123
+ FacetSelections?: {
124
+ [key: string]: Array<string> | undefined;
125
+ };
126
+ MaxPerPage?: number;
127
+ PageNo?: number;
128
+ SearchWithin?: string;
129
+ SortBy?: string;
130
+ }
@@ -0,0 +1,144 @@
1
+ export type FacetValueState = {
2
+ toggled?: boolean;
3
+ };
4
+
5
+ export type FacetState = {
6
+ id: number;
7
+ collapsed?: boolean;
8
+ toggled?: boolean;
9
+ filter?: string;
10
+ values?: {
11
+ [value: string]: FacetValueState;
12
+ };
13
+ };
14
+
15
+ export type FacetType = 'checkbox' | 'color' | 'link' | 'range-slider' | 'search' | 'size' | 'tabs';
16
+
17
+ export interface SelectedFacetValue {
18
+ title: string;
19
+ value: string;
20
+ excluded: boolean;
21
+ }
22
+
23
+ export interface SelectedFacet {
24
+ field: string;
25
+ title: string;
26
+ values: Array<SelectedFacetValue>;
27
+ }
28
+
29
+ export interface FacetValueColor {
30
+ name: string;
31
+ hex?: string;
32
+ imageUrl?: string;
33
+ }
34
+
35
+ export interface FacetValue {
36
+ title: string;
37
+ value?: string;
38
+ color?: FacetValueColor;
39
+ count?: number;
40
+ level?: number;
41
+ selected?: boolean;
42
+ excluded?: boolean;
43
+ children?: Array<FacetValue>;
44
+ }
45
+
46
+ export interface Facet {
47
+ id: number;
48
+ type: FacetType;
49
+ title: string;
50
+ values?: Array<FacetValue>;
51
+ field?: string;
52
+ collapsible: boolean;
53
+ collapsed?: boolean;
54
+ rangeMin?: number;
55
+ rangeMax?: number;
56
+ rangeStart?: number;
57
+ rangeEnd?: number;
58
+ searchable?: boolean;
59
+ searchWithin?: string;
60
+ tooltip?: string;
61
+ truncateThreshold?: number;
62
+ }
63
+
64
+ export interface PaginationOption {
65
+ title: string;
66
+ pageSize: number;
67
+ selected: boolean;
68
+ default: boolean;
69
+ }
70
+
71
+ export interface Pagination {
72
+ page: number;
73
+ pageSize: number;
74
+ totalPages: number;
75
+ totalResults: number;
76
+ maxPageLinks?: number;
77
+ displayFirstLink: boolean;
78
+ displayLastLink: boolean;
79
+ options: Array<PaginationOption>;
80
+ }
81
+
82
+ export interface Redirect {
83
+ url: string;
84
+ target?: string;
85
+ }
86
+
87
+ export interface SortingOption {
88
+ title: string;
89
+ value: string;
90
+ default: boolean;
91
+ selected: boolean;
92
+ }
93
+
94
+ export interface Sorting {
95
+ value?: string;
96
+ options: Array<SortingOption>;
97
+ }
98
+
99
+ export type SearchResultsItemType = 'content' | 'product';
100
+
101
+ export interface SearchResultsItem {
102
+ id: string;
103
+ pinned: boolean;
104
+ visible: boolean;
105
+ score: number;
106
+ type: SearchResultsItemType;
107
+ imageUrl?: string;
108
+ title: string;
109
+ url: string;
110
+ price?: number;
111
+ salePrice?: number;
112
+ attributes?: {
113
+ [key: string]: Array<string>;
114
+ };
115
+ }
116
+
117
+ export interface SearchResponse {
118
+ facets?: Array<Facet>;
119
+ modifiedQuery?: string;
120
+ pagination?: Pagination;
121
+ query?: string;
122
+ querySuggestions?: Array<string>;
123
+ redirect?: Redirect;
124
+ results?: Array<SearchResultsItem>;
125
+ selectedFacets?: Array<SelectedFacet>;
126
+ sorting?: Sorting;
127
+ success: boolean;
128
+ trackingId: string;
129
+ }
130
+
131
+ export type SelectedFacets = {
132
+ [key: string]: Array<string> | undefined;
133
+ };
134
+
135
+ export interface SearchRequest {
136
+ disableSpellcheck?: boolean;
137
+ facets?: SelectedFacets;
138
+ newRequest: boolean;
139
+ pageSize?: number;
140
+ page?: number;
141
+ query?: string;
142
+ searchWithin?: string;
143
+ sort?: string;
144
+ }
@@ -0,0 +1,33 @@
1
+ export enum AutocompleteItemType {
2
+ Search = 1,
3
+ Category = 2,
4
+ Product = 3,
5
+ Content = 4
6
+ }
7
+
8
+ export enum EventType {
9
+ PageLoad = 1,
10
+ Search = 2,
11
+ Click = 3,
12
+ AddToCart = 4,
13
+ Rate = 5,
14
+ Sale = 6,
15
+ BannerClick = 7,
16
+ BannerImpression = 8,
17
+ RecommendationClick = 10,
18
+ AutocompleteClick = 11,
19
+ AddToCartMultiple = 14
20
+ }
21
+
22
+ export enum PageType {
23
+ Item = 1,
24
+ Landing = 2,
25
+ Cart = 3,
26
+ Order = 4,
27
+ Custom = 5
28
+ }
29
+
30
+ export enum SearchType {
31
+ Initial = 1,
32
+ Refinement = 2
33
+ }
@@ -0,0 +1,55 @@
1
+ .autocomplete {
2
+ position: absolute;
3
+ left: 0;
4
+ right: 0;
5
+ margin-top: -1px;
6
+ box-shadow: 0 2px 5px rgb(0 0 0 / 10%);
7
+ border: var(--container-border);
8
+ padding: var(--padding);
9
+ background: var(--container-background);
10
+ z-index: 1;
11
+
12
+ &__title {
13
+ display: block;
14
+ margin: 0 0 var(--padding) 0;
15
+ font-size: 1.1rem;
16
+ font-weight: bold;
17
+ }
18
+
19
+ &__list {
20
+ &:not(:last-child) {
21
+ margin-bottom: var(--margin);
22
+ }
23
+ }
24
+
25
+ &__product {
26
+ height: 100%;
27
+ text-align: center;
28
+
29
+ &__image {
30
+ display: flex;
31
+ justify-content: center;
32
+ align-items: center;
33
+ padding: 0 var(--padding) var(--padding) var(--padding);
34
+ height: 150px;
35
+
36
+ a {
37
+ display: block;
38
+ }
39
+
40
+ img {
41
+ margin: 0;
42
+ max-height: 100%;
43
+ }
44
+ }
45
+
46
+ &__title {
47
+ display: block;
48
+ font-weight: bold;
49
+ }
50
+ }
51
+
52
+ &__view-all {
53
+ text-align: center;
54
+ }
55
+ }
@@ -0,0 +1,287 @@
1
+ @use '../includes/breakpoints';
2
+
3
+ .facets {
4
+ $root: &;
5
+
6
+ border: var(--container-border);
7
+ background: var(--container-background);
8
+
9
+ &__heading {
10
+ display: flex;
11
+ align-items: center;
12
+ padding: var(--padding-sm) var(--padding);
13
+ font-size: 1.2rem;
14
+ font-weight: bold;
15
+ background: var(--container-background--alternate);
16
+ cursor: pointer;
17
+
18
+ &__mobile-toggle {
19
+ margin-left: auto;
20
+ }
21
+
22
+ &:hover {
23
+ color: var(--color-accent);
24
+ }
25
+ }
26
+
27
+ &__content {
28
+ display: none;
29
+ }
30
+
31
+ &--expanded {
32
+ #{$root}__content {
33
+ display: block;
34
+ }
35
+ }
36
+
37
+ @include breakpoints.medium {
38
+ & {
39
+ &__heading {
40
+ cursor: default;
41
+
42
+ &__mobile-toggle {
43
+ display: none;
44
+ }
45
+
46
+ &:hover {
47
+ color: var(--default-font-color);
48
+ }
49
+ }
50
+
51
+ &__content {
52
+ display: block;
53
+ }
54
+ }
55
+ }
56
+ }
57
+
58
+ .facet {
59
+ &__heading {
60
+ display: flex;
61
+ align-items: center;
62
+ padding: var(--padding-sm) var(--padding);
63
+ font-size: 1.125rem;
64
+ cursor: default;
65
+
66
+ &__tooltip {
67
+ font-size: 1.2em;
68
+ margin-left: 5px;
69
+ }
70
+
71
+ &__toggle {
72
+ margin-left: auto;
73
+ }
74
+
75
+ &--collapsible {
76
+ cursor: pointer;
77
+
78
+ &:hover {
79
+ --icon-color: var(--color-accent);
80
+ color: var(--color-accent);
81
+ }
82
+ }
83
+ }
84
+
85
+ &__search {
86
+ margin: 0 0 var(--padding) 0;
87
+ }
88
+
89
+ &__content {
90
+ padding: 0 var(--padding) var(--padding) var(--padding);
91
+ }
92
+
93
+ &__toggle {
94
+ }
95
+
96
+ &__value {
97
+ &__title {
98
+ }
99
+
100
+ &__count {
101
+ color: var(--secondary-font-color);
102
+ }
103
+ }
104
+ }
105
+
106
+ .checkbox-list-facet {
107
+ $root: &;
108
+
109
+ &__list {
110
+ margin: 0 0 var(--padding-xs) 0;
111
+
112
+ &__item {
113
+ display: flex;
114
+ margin: 0 0 var(--padding-xs) 0;
115
+
116
+ &__content {
117
+ flex-grow: 1;
118
+ }
119
+
120
+ &__actions {
121
+ position: relative;
122
+ top: -4px;
123
+ flex-grow: 0;
124
+ margin-left: auto;
125
+ white-space: nowrap;
126
+
127
+ &__item {
128
+ font-size: 1.3em;
129
+ cursor: pointer;
130
+
131
+ &:hover {
132
+ color: var(--color-accent);
133
+ }
134
+ }
135
+ }
136
+
137
+ &--excluded {
138
+ > #{$root}__item {
139
+ &__content {
140
+ > label {
141
+ .facet__value__title {
142
+ text-decoration: line-through;
143
+ }
144
+ }
145
+ }
146
+ }
147
+ }
148
+
149
+ &:last-child {
150
+ margin-bottom: 0;
151
+ }
152
+
153
+ #{$root}__list {
154
+ margin-left: calc(16px + var(--padding-sm));
155
+ }
156
+ }
157
+
158
+ &:last-child {
159
+ margin-bottom: 0;
160
+ }
161
+ }
162
+ }
163
+
164
+ .color-facet {
165
+ $root: &;
166
+
167
+ &__items {
168
+ margin-bottom: var(--padding-xs);
169
+ }
170
+
171
+ &__item {
172
+ position: relative;
173
+ border: var(--container-border);
174
+ cursor: pointer;
175
+
176
+ &__box {
177
+ padding: 0 0 100% 0;
178
+ }
179
+
180
+ &__image {
181
+ display: block;
182
+ width: 100%;
183
+ height: 100%;
184
+ }
185
+
186
+ &__actions {
187
+ display: none;
188
+ }
189
+
190
+ &--selected {
191
+ outline: solid 1px var(--color-accent);
192
+ border-color: var(--color-accent);
193
+ }
194
+
195
+ &:hover {
196
+ outline: solid 1px var(--color-accent);
197
+ border-color: var(--color-accent);
198
+
199
+ #{$root}__item {
200
+ &__actions {
201
+ display: block;
202
+ position: absolute;
203
+ top: 0;
204
+ right: 0;
205
+ border: var(--container-border);
206
+ background: var(--container-background);
207
+ font-size: 1rem;
208
+
209
+ &:hover {
210
+ color: var(--color-accent);
211
+ }
212
+ }
213
+ }
214
+ }
215
+ }
216
+ }
217
+
218
+ .link-list-facet {
219
+ &__list {
220
+ &__item {
221
+ margin-bottom: var(--padding-xs);
222
+ }
223
+ }
224
+ }
225
+
226
+ .size-facet {
227
+ $root: &;
228
+
229
+ &__items {
230
+ margin-bottom: var(--padding-xs);
231
+ }
232
+
233
+ &__item {
234
+ position: relative;
235
+ border: var(--container-border);
236
+
237
+ &__outer {
238
+ position: relative;
239
+ padding: 0 0 100% 0;
240
+ cursor: pointer;
241
+ }
242
+
243
+ &__inner {
244
+ display: flex;
245
+ align-items: center;
246
+ justify-content: center;
247
+ position: absolute;
248
+ top: 0;
249
+ right: 0;
250
+ bottom: 0;
251
+ left: 0;
252
+ padding: var(--padding-xs);
253
+ background: var(--container-background--alternate);
254
+ font-size: 0.6875rem;
255
+ }
256
+
257
+ &__actions {
258
+ display: none;
259
+ }
260
+
261
+ &--selected {
262
+ outline: solid 1px var(--color-accent);
263
+ border-color: var(--color-accent);
264
+ }
265
+
266
+ &:hover {
267
+ border-color: var(--color-accent);
268
+
269
+ #{$root}__item {
270
+ &__actions {
271
+ display: block;
272
+ position: absolute;
273
+ top: 0;
274
+ right: 0;
275
+ border: var(--container-border);
276
+ background: var(--container-background);
277
+ font-size: 1rem;
278
+ cursor: pointer;
279
+
280
+ &:hover {
281
+ color: var(--color-accent);
282
+ }
283
+ }
284
+ }
285
+ }
286
+ }
287
+ }
@@ -0,0 +1,17 @@
1
+ hawksearch-icon {
2
+ display: inline-block;
3
+ font-size: var(--icon-font-size, 1em);
4
+ color: var(--icon-color, currentColor);
5
+ }
6
+
7
+ .icon {
8
+ display: inline-block;
9
+ margin: 0 0.5em 0 0;
10
+ max-width: none;
11
+ fill: currentColor;
12
+ vertical-align: middle;
13
+
14
+ &:last-child {
15
+ margin: 0;
16
+ }
17
+ }
@@ -0,0 +1,11 @@
1
+ .modified-query {
2
+ margin: 0 0 var(--margin) 0;
3
+
4
+ &__modified {
5
+ font-style: italic;
6
+ }
7
+
8
+ &__original {
9
+ font-weight: bold;
10
+ }
11
+ }
@@ -0,0 +1,2 @@
1
+ .page-size {
2
+ }
@@ -0,0 +1,23 @@
1
+ .pagination {
2
+ display: flex;
3
+ align-items: center;
4
+ gap: var(--padding);
5
+
6
+ &__pages {
7
+ display: flex;
8
+ align-items: center;
9
+ gap: var(--padding-xs);
10
+
11
+ hawksearch-icon {
12
+ position: relative;
13
+ top: -2px;
14
+ }
15
+ }
16
+
17
+ &__page {
18
+ &--selected {
19
+ font-weight: bold;
20
+ color: var(--color-accent);
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,7 @@
1
+ .query-suggestions {
2
+ margin: 0 0 var(--margin) 0;
3
+
4
+ a {
5
+ font-style: italic;
6
+ }
7
+ }