@licklist/design 0.78.33 → 0.78.35
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.
- package/dist/index.js +1 -1
- package/dist/provider/location-input/LocationInput.js +1 -1
- package/dist/v2/components/ActionMenu/ActionMenu.scss.js +1 -1
- package/dist/v2/components/Alert/Alert.d.ts.map +1 -1
- package/dist/v2/components/Alert/Alert.js +48 -1
- package/dist/v2/components/Alert/Alert.scss.js +1 -1
- package/dist/v2/components/Badge/Badge.d.ts +1 -0
- package/dist/v2/components/Badge/Badge.d.ts.map +1 -1
- package/dist/v2/components/Badge/Badge.js +2 -1
- package/dist/v2/components/Badge/Badge.scss.js +1 -1
- package/dist/v2/components/Checkbox/Checkbox.scss.js +1 -1
- package/dist/v2/components/FormField/FormField.scss.js +1 -1
- package/dist/v2/components/NPSScore/NPSScore.d.ts +3 -1
- package/dist/v2/components/NPSScore/NPSScore.d.ts.map +1 -1
- package/dist/v2/components/NPSScore/NPSScore.js +11 -27
- package/dist/v2/components/NPSScore/NPSScore.scss.js +1 -1
- package/dist/v2/components/QuickFilter/QuickFilter.scss.js +1 -1
- package/dist/v2/components/TableSortIcon/TableSortIcon.d.ts.map +1 -1
- package/dist/v2/components/TableSortIcon/TableSortIcon.js +5 -3
- package/dist/v2/components/WYSIWYGEditor/WYSIWYGEditor.scss.js +1 -1
- package/dist/v2/components/index.d.ts +1 -1
- package/dist/v2/components/index.d.ts.map +1 -1
- package/dist/v2/icons/index.d.ts +36 -2
- package/dist/v2/icons/index.d.ts.map +1 -1
- package/dist/v2/icons/index.js +41 -29
- package/dist/v2/pages/Settings/SettingsPage.scss.js +1 -1
- package/dist/v2/pages/Settings/SettingsTabs.scss.js +1 -1
- package/dist/v2/pages/Settings/components/SidebarCustomisation.scss.js +1 -1
- package/dist/v2/pages/Settings/components/SidebarNavItem.scss.js +1 -1
- package/package.json +3 -3
- package/src/provider/location-input/LocationInput.tsx +1 -1
- package/src/v2/components/Alert/Alert.scss +8 -19
- package/src/v2/components/Alert/Alert.tsx +24 -1
- package/src/v2/components/Badge/Badge.scss +25 -23
- package/src/v2/components/Badge/Badge.tsx +3 -0
- package/src/v2/components/Customer/CustomersList.scss +60 -9
- package/src/v2/components/NPSScore/NPSScore.scss +40 -59
- package/src/v2/components/NPSScore/NPSScore.tsx +15 -16
- package/src/v2/components/QuickFilter/QuickFilter.scss +14 -3
- package/src/v2/components/TableSortIcon/TableSortIcon.tsx +3 -5
- package/src/v2/components/index.ts +2 -0
- package/src/v2/icons/index.tsx +147 -14
- package/src/v2/styles/tokens/_colors.scss +6 -0
|
@@ -54,6 +54,7 @@
|
|
|
54
54
|
width: 30px;
|
|
55
55
|
height: 30px;
|
|
56
56
|
flex-shrink: 0;
|
|
57
|
+
fill: var(--shade-lighter);
|
|
57
58
|
}
|
|
58
59
|
}
|
|
59
60
|
|
|
@@ -111,6 +112,10 @@
|
|
|
111
112
|
|
|
112
113
|
.search-input-wrapper {
|
|
113
114
|
width: 70%;
|
|
115
|
+
|
|
116
|
+
.new-form-input__icon {
|
|
117
|
+
color: var(--shade-lighter);
|
|
118
|
+
}
|
|
114
119
|
}
|
|
115
120
|
|
|
116
121
|
.search-helper-text {
|
|
@@ -125,13 +130,21 @@
|
|
|
125
130
|
|
|
126
131
|
.filters-actions-row {
|
|
127
132
|
display: flex;
|
|
128
|
-
|
|
129
|
-
align-items:
|
|
130
|
-
gap:
|
|
133
|
+
flex-direction: column;
|
|
134
|
+
align-items: flex-start;
|
|
135
|
+
gap: 16px;
|
|
131
136
|
width: 100%;
|
|
137
|
+
|
|
138
|
+
@media (min-width: 1024px) {
|
|
139
|
+
flex-direction: row;
|
|
140
|
+
justify-content: space-between;
|
|
141
|
+
align-items: center;
|
|
142
|
+
gap: 24px;
|
|
143
|
+
}
|
|
132
144
|
}
|
|
133
145
|
|
|
134
146
|
.quick-filters-wrapper {
|
|
147
|
+
width: 100%;
|
|
135
148
|
flex: 1;
|
|
136
149
|
}
|
|
137
150
|
|
|
@@ -139,6 +152,12 @@
|
|
|
139
152
|
display: flex;
|
|
140
153
|
gap: 12px;
|
|
141
154
|
align-items: center;
|
|
155
|
+
|
|
156
|
+
.ghost-button {
|
|
157
|
+
&__icon svg {
|
|
158
|
+
fill: var(--shade-lighter);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
142
161
|
}
|
|
143
162
|
|
|
144
163
|
&__row {
|
|
@@ -165,19 +184,46 @@
|
|
|
165
184
|
&__sub {
|
|
166
185
|
font-size: 13px;
|
|
167
186
|
color: #9399B3;
|
|
187
|
+
display: block !important;
|
|
168
188
|
}
|
|
169
189
|
&__id {
|
|
170
190
|
font-size: 13px;
|
|
171
191
|
color: #9399B3;
|
|
172
|
-
display: none;
|
|
192
|
+
display: none !important;
|
|
173
193
|
}
|
|
174
194
|
|
|
175
195
|
&:hover {
|
|
176
196
|
.entity-cell__id {
|
|
177
|
-
display: block;
|
|
197
|
+
display: block !important;
|
|
178
198
|
}
|
|
179
199
|
.entity-cell__sub {
|
|
180
|
-
display: none;
|
|
200
|
+
display: none !important;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
// Ensure hover state on the row also triggers the same behavior
|
|
205
|
+
// This addresses potential flickering when moving between cells
|
|
206
|
+
:is(.new-table__row:hover) & {
|
|
207
|
+
.entity-cell__id {
|
|
208
|
+
display: block !important;
|
|
209
|
+
}
|
|
210
|
+
.entity-cell__sub {
|
|
211
|
+
display: none !important;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
// When entity-cell__sub is missing (like in template list),
|
|
216
|
+
// showing entity-cell__id on hover causes height jump.
|
|
217
|
+
// We only want to swap if both exist, or ensure height is stable.
|
|
218
|
+
&:not(:has(.entity-cell__sub)) {
|
|
219
|
+
.entity-cell__id {
|
|
220
|
+
display: block !important;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
:is(.new-table__row:hover) &:not(:has(.entity-cell__sub)) {
|
|
225
|
+
.entity-cell__id {
|
|
226
|
+
display: block !important;
|
|
181
227
|
}
|
|
182
228
|
}
|
|
183
229
|
}
|
|
@@ -542,6 +588,7 @@
|
|
|
542
588
|
"customer bookings"
|
|
543
589
|
"divider divider"
|
|
544
590
|
"next last"
|
|
591
|
+
"status status"
|
|
545
592
|
"actions actions";
|
|
546
593
|
grid-template-columns: 1fr auto;
|
|
547
594
|
border: 1px solid var(--border-primary, #E8E9EF);
|
|
@@ -604,6 +651,10 @@
|
|
|
604
651
|
grid-area: last; // Reuse 'last' area for waiver in waiver list
|
|
605
652
|
text-align: right;
|
|
606
653
|
}
|
|
654
|
+
&.waiver-col-mb {
|
|
655
|
+
grid-area: status;
|
|
656
|
+
text-align: left;
|
|
657
|
+
}
|
|
607
658
|
}
|
|
608
659
|
}
|
|
609
660
|
}
|
|
@@ -679,7 +730,7 @@
|
|
|
679
730
|
.waiver-cell {
|
|
680
731
|
display: flex;
|
|
681
732
|
flex-direction: column;
|
|
682
|
-
align-items: flex-
|
|
733
|
+
align-items: flex-start;
|
|
683
734
|
min-width: 0;
|
|
684
735
|
overflow: hidden;
|
|
685
736
|
|
|
@@ -688,7 +739,7 @@
|
|
|
688
739
|
color: #626A90;
|
|
689
740
|
font-weight: 500;
|
|
690
741
|
margin-bottom: 4px;
|
|
691
|
-
text-align:
|
|
742
|
+
text-align: left;
|
|
692
743
|
white-space: nowrap;
|
|
693
744
|
overflow: hidden;
|
|
694
745
|
text-overflow: ellipsis;
|
|
@@ -697,7 +748,7 @@
|
|
|
697
748
|
|
|
698
749
|
.v2-badge {
|
|
699
750
|
display: inline-flex;
|
|
700
|
-
margin-
|
|
751
|
+
margin-right: auto;
|
|
701
752
|
}
|
|
702
753
|
}
|
|
703
754
|
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
.nps-score {
|
|
2
2
|
width: 100%;
|
|
3
3
|
margin-top: 24px;
|
|
4
|
+
padding: 0 1rem;
|
|
5
|
+
box-sizing: border-box;
|
|
6
|
+
|
|
7
|
+
@media (max-width: 576px) {
|
|
8
|
+
padding: 0 16px;
|
|
9
|
+
}
|
|
4
10
|
|
|
5
11
|
&__container {
|
|
6
|
-
background: var(--
|
|
12
|
+
background: var(--surface-secondary);
|
|
7
13
|
border-radius: 16px;
|
|
8
14
|
padding: 24px;
|
|
9
|
-
border: 1px solid var(--
|
|
15
|
+
border: 1px solid var(--border-primary);
|
|
10
16
|
}
|
|
11
17
|
|
|
12
18
|
&__question {
|
|
@@ -14,7 +20,7 @@
|
|
|
14
20
|
font-size: 18px;
|
|
15
21
|
font-weight: 600;
|
|
16
22
|
line-height: 24px;
|
|
17
|
-
color: var(--
|
|
23
|
+
color: var(--label-primary);
|
|
18
24
|
margin: 0 0 16px 0;
|
|
19
25
|
}
|
|
20
26
|
|
|
@@ -34,7 +40,7 @@
|
|
|
34
40
|
font-family: var(--font-family-sans);
|
|
35
41
|
font-size: 14px;
|
|
36
42
|
font-weight: 500;
|
|
37
|
-
color: var(--
|
|
43
|
+
color: var(--label-secondary);
|
|
38
44
|
}
|
|
39
45
|
|
|
40
46
|
&--desktop {
|
|
@@ -57,7 +63,7 @@
|
|
|
57
63
|
}
|
|
58
64
|
|
|
59
65
|
&__label-icon {
|
|
60
|
-
color: var(--
|
|
66
|
+
color: var(--fill-secondary);
|
|
61
67
|
flex-shrink: 0;
|
|
62
68
|
}
|
|
63
69
|
|
|
@@ -79,18 +85,18 @@
|
|
|
79
85
|
font-weight: 600;
|
|
80
86
|
transition: all 0.2s ease;
|
|
81
87
|
cursor: pointer;
|
|
82
|
-
background: var(--
|
|
83
|
-
border: 1px solid var(--
|
|
84
|
-
color: var(--
|
|
88
|
+
background: var(--surface-primary);
|
|
89
|
+
border: 1px solid var(--border-primary);
|
|
90
|
+
color: var(--label-primary);
|
|
85
91
|
|
|
86
92
|
&:hover:not(&--selected) {
|
|
87
|
-
background: var(--
|
|
93
|
+
background: var(--surface-primary-hover);
|
|
88
94
|
}
|
|
89
95
|
|
|
90
96
|
&--selected {
|
|
91
|
-
background: var(--
|
|
97
|
+
background: var(--fill-primary);
|
|
92
98
|
border-color: transparent;
|
|
93
|
-
color:
|
|
99
|
+
color: var(--label-primary-alt);
|
|
94
100
|
}
|
|
95
101
|
}
|
|
96
102
|
|
|
@@ -113,7 +119,7 @@
|
|
|
113
119
|
font-family: var(--font-family-sans);
|
|
114
120
|
font-size: 14px;
|
|
115
121
|
font-weight: 500;
|
|
116
|
-
color: var(--
|
|
122
|
+
color: var(--label-primary);
|
|
117
123
|
margin-bottom: 8px;
|
|
118
124
|
}
|
|
119
125
|
|
|
@@ -127,7 +133,7 @@
|
|
|
127
133
|
&__optional {
|
|
128
134
|
font-family: var(--font-family-sans);
|
|
129
135
|
font-size: 14px;
|
|
130
|
-
color: var(--
|
|
136
|
+
color: var(--label-secondary);
|
|
131
137
|
}
|
|
132
138
|
|
|
133
139
|
&__textarea {
|
|
@@ -135,39 +141,39 @@
|
|
|
135
141
|
min-height: 100px;
|
|
136
142
|
padding: 12px;
|
|
137
143
|
border-radius: 8px;
|
|
138
|
-
border: 1px solid var(--
|
|
139
|
-
background: var(--
|
|
144
|
+
border: 1px solid var(--border-primary);
|
|
145
|
+
background: var(--surface-primary);
|
|
140
146
|
font-family: var(--font-family-sans);
|
|
141
147
|
font-size: 14px;
|
|
142
|
-
color: var(--
|
|
148
|
+
color: var(--label-primary);
|
|
143
149
|
resize: vertical;
|
|
144
150
|
box-sizing: border-box;
|
|
145
151
|
|
|
146
152
|
&::placeholder {
|
|
147
|
-
color: var(--
|
|
153
|
+
color: var(--label-secondary);
|
|
148
154
|
}
|
|
149
155
|
|
|
150
156
|
&:focus {
|
|
151
157
|
outline: none;
|
|
152
|
-
border-color: var(--
|
|
158
|
+
border-color: var(--fill-primary);
|
|
153
159
|
}
|
|
154
160
|
|
|
155
161
|
&--error {
|
|
156
|
-
border-color: var(--
|
|
162
|
+
border-color: var(--fill-danger);
|
|
157
163
|
}
|
|
158
164
|
}
|
|
159
165
|
|
|
160
166
|
&__hint {
|
|
161
167
|
font-family: var(--font-family-sans);
|
|
162
168
|
font-size: 14px;
|
|
163
|
-
color: var(--
|
|
169
|
+
color: var(--label-secondary);
|
|
164
170
|
margin: 4px 0 0 0;
|
|
165
171
|
}
|
|
166
172
|
|
|
167
173
|
&__error {
|
|
168
174
|
font-family: var(--font-family-sans);
|
|
169
175
|
font-size: 14px;
|
|
170
|
-
color: var(--
|
|
176
|
+
color: var(--fill-danger);
|
|
171
177
|
margin: 4px 0 0 0;
|
|
172
178
|
}
|
|
173
179
|
|
|
@@ -175,7 +181,7 @@
|
|
|
175
181
|
font-family: var(--font-family-sans);
|
|
176
182
|
font-size: 14px;
|
|
177
183
|
font-weight: 500;
|
|
178
|
-
color: var(--
|
|
184
|
+
color: var(--label-action);
|
|
179
185
|
text-decoration: underline;
|
|
180
186
|
background: none;
|
|
181
187
|
border: none;
|
|
@@ -184,17 +190,18 @@
|
|
|
184
190
|
transition: color 0.2s ease;
|
|
185
191
|
|
|
186
192
|
&:hover {
|
|
187
|
-
color: var(--
|
|
193
|
+
color: var(--label-action);
|
|
188
194
|
}
|
|
189
195
|
}
|
|
190
196
|
|
|
191
197
|
&__roles {
|
|
192
198
|
display: grid;
|
|
193
199
|
grid-template-columns: 1fr;
|
|
194
|
-
gap:
|
|
200
|
+
gap: 8px;
|
|
195
201
|
|
|
196
202
|
@media (min-width: 640px) {
|
|
197
203
|
grid-template-columns: repeat(2, 1fr);
|
|
204
|
+
gap: 4px;
|
|
198
205
|
}
|
|
199
206
|
|
|
200
207
|
@media (min-width: 1024px) {
|
|
@@ -217,8 +224,8 @@
|
|
|
217
224
|
width: 20px;
|
|
218
225
|
height: 20px;
|
|
219
226
|
border-radius: 50%;
|
|
220
|
-
border: 2px solid var(--
|
|
221
|
-
background: var(--
|
|
227
|
+
border: 2px solid var(--border-primary);
|
|
228
|
+
background: var(--surface-primary);
|
|
222
229
|
margin: 0;
|
|
223
230
|
cursor: pointer;
|
|
224
231
|
flex-shrink: 0;
|
|
@@ -234,12 +241,12 @@
|
|
|
234
241
|
width: 10px;
|
|
235
242
|
height: 10px;
|
|
236
243
|
border-radius: 50%;
|
|
237
|
-
background: var(--
|
|
244
|
+
background: var(--fill-primary);
|
|
238
245
|
transition: transform 0.2s ease;
|
|
239
246
|
}
|
|
240
247
|
|
|
241
248
|
&:checked {
|
|
242
|
-
border-color: var(--
|
|
249
|
+
border-color: var(--fill-primary);
|
|
243
250
|
|
|
244
251
|
&::before {
|
|
245
252
|
transform: translate(-50%, -50%) scale(1);
|
|
@@ -248,7 +255,7 @@
|
|
|
248
255
|
|
|
249
256
|
&:focus {
|
|
250
257
|
outline: none;
|
|
251
|
-
box-shadow: 0 0 0 2px var(--
|
|
258
|
+
box-shadow: 0 0 0 2px var(--border-action);
|
|
252
259
|
}
|
|
253
260
|
}
|
|
254
261
|
|
|
@@ -259,33 +266,7 @@
|
|
|
259
266
|
&__role-label {
|
|
260
267
|
font-family: var(--font-family-sans);
|
|
261
268
|
font-size: 14px;
|
|
262
|
-
color: var(--
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
&__submit {
|
|
266
|
-
display: inline-flex;
|
|
267
|
-
align-items: center;
|
|
268
|
-
justify-content: center;
|
|
269
|
-
padding: 12px 24px;
|
|
270
|
-
border-radius: 8px;
|
|
271
|
-
border: none;
|
|
272
|
-
background: var(--fills-main-fill-primary, #14215A);
|
|
273
|
-
color: #FFFFFF;
|
|
274
|
-
font-family: var(--font-family-sans);
|
|
275
|
-
font-size: 14px;
|
|
276
|
-
font-weight: 600;
|
|
277
|
-
cursor: pointer;
|
|
278
|
-
transition: background 0.2s ease;
|
|
279
|
-
width: fit-content;
|
|
280
|
-
|
|
281
|
-
&:hover:not(:disabled) {
|
|
282
|
-
background: var(--fills-main-fill-primary-hover, #1a2a6e);
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
&:disabled {
|
|
286
|
-
opacity: 0.6;
|
|
287
|
-
cursor: not-allowed;
|
|
288
|
-
}
|
|
269
|
+
color: var(--label-primary);
|
|
289
270
|
}
|
|
290
271
|
|
|
291
272
|
&__success {
|
|
@@ -298,7 +279,7 @@
|
|
|
298
279
|
}
|
|
299
280
|
|
|
300
281
|
&__success-icon {
|
|
301
|
-
color: var(--
|
|
282
|
+
color: var(--fill-status-success);
|
|
302
283
|
margin-bottom: 16px;
|
|
303
284
|
}
|
|
304
285
|
|
|
@@ -306,14 +287,14 @@
|
|
|
306
287
|
font-family: var(--font-family-sans);
|
|
307
288
|
font-size: 24px;
|
|
308
289
|
font-weight: 600;
|
|
309
|
-
color: var(--
|
|
290
|
+
color: var(--label-primary);
|
|
310
291
|
margin: 0 0 8px 0;
|
|
311
292
|
}
|
|
312
293
|
|
|
313
294
|
&__success-message {
|
|
314
295
|
font-family: var(--font-family-sans);
|
|
315
296
|
font-size: 14px;
|
|
316
|
-
color: var(--
|
|
297
|
+
color: var(--label-secondary);
|
|
317
298
|
margin: 0;
|
|
318
299
|
}
|
|
319
300
|
}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import React, { useState } from 'react'
|
|
2
2
|
import './NPSScore.scss'
|
|
3
|
+
import { Button } from '../Button'
|
|
4
|
+
import { Alert } from '../Alert'
|
|
3
5
|
|
|
4
6
|
export interface NPSScoreProps {
|
|
5
7
|
/** User's first name for personalized greeting */
|
|
6
8
|
firstName?: string
|
|
7
9
|
/** Callback when NPS is submitted */
|
|
8
10
|
onSubmit?: (data: NPSSubmitData) => void
|
|
9
|
-
/** Callback when dismissed */
|
|
11
|
+
/** Callback when dismissed without submitting */
|
|
10
12
|
onDismiss?: () => void
|
|
13
|
+
/** Callback when success alert is dismissed after submission */
|
|
14
|
+
onSubmitDismiss?: () => void
|
|
11
15
|
}
|
|
12
16
|
|
|
13
17
|
export interface NPSSubmitData {
|
|
@@ -42,6 +46,7 @@ export const NPSScore: React.FC<NPSScoreProps> = ({
|
|
|
42
46
|
firstName,
|
|
43
47
|
onSubmit,
|
|
44
48
|
onDismiss,
|
|
49
|
+
onSubmitDismiss,
|
|
45
50
|
}) => {
|
|
46
51
|
const [selectedScore, setSelectedScore] = useState<number | null>(null)
|
|
47
52
|
const [reason, setReason] = useState('')
|
|
@@ -54,11 +59,7 @@ export const NPSScore: React.FC<NPSScoreProps> = ({
|
|
|
54
59
|
const handleSubmit = async () => {
|
|
55
60
|
if (!selectedScore) return
|
|
56
61
|
|
|
57
|
-
// Validate required fields - reason required for all scores
|
|
58
62
|
const newErrors: { reason?: string; role?: string } = {}
|
|
59
|
-
if (!reason.trim()) {
|
|
60
|
-
newErrors.reason = 'Please provide a reason for your score'
|
|
61
|
-
}
|
|
62
63
|
if (!role) {
|
|
63
64
|
newErrors.role = 'Please select your role'
|
|
64
65
|
}
|
|
@@ -86,13 +87,12 @@ export const NPSScore: React.FC<NPSScoreProps> = ({
|
|
|
86
87
|
if (isSubmitted) {
|
|
87
88
|
return (
|
|
88
89
|
<div className="nps-score">
|
|
89
|
-
<
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
</div>
|
|
90
|
+
<Alert
|
|
91
|
+
variant="success"
|
|
92
|
+
title="Thank you!"
|
|
93
|
+
message="Your feedback has been submitted successfully."
|
|
94
|
+
onDismiss={onSubmitDismiss}
|
|
95
|
+
/>
|
|
96
96
|
</div>
|
|
97
97
|
)
|
|
98
98
|
}
|
|
@@ -142,7 +142,7 @@ export const NPSScore: React.FC<NPSScoreProps> = ({
|
|
|
142
142
|
{/* Reason textarea - always visible */}
|
|
143
143
|
<div className="nps-score__field">
|
|
144
144
|
<label className="nps-score__field-label">
|
|
145
|
-
Reason for this score?
|
|
145
|
+
Reason for this score? (Optional)
|
|
146
146
|
</label>
|
|
147
147
|
<textarea
|
|
148
148
|
value={reason}
|
|
@@ -192,13 +192,12 @@ export const NPSScore: React.FC<NPSScoreProps> = ({
|
|
|
192
192
|
</div>
|
|
193
193
|
|
|
194
194
|
{/* Submit button */}
|
|
195
|
-
<
|
|
195
|
+
<Button
|
|
196
196
|
onClick={handleSubmit}
|
|
197
197
|
disabled={isSubmitting}
|
|
198
|
-
className="nps-score__submit"
|
|
199
198
|
>
|
|
200
199
|
{isSubmitting ? 'Submitting...' : 'Submit'}
|
|
201
|
-
</
|
|
200
|
+
</Button>
|
|
202
201
|
</div>
|
|
203
202
|
)}
|
|
204
203
|
</div>
|
|
@@ -12,11 +12,21 @@
|
|
|
12
12
|
|
|
13
13
|
&__options {
|
|
14
14
|
display: flex;
|
|
15
|
-
flex-wrap:
|
|
15
|
+
flex-wrap: nowrap;
|
|
16
|
+
overflow-x: auto;
|
|
16
17
|
gap: 8px;
|
|
18
|
+
-ms-overflow-style: none; /* IE and Edge */
|
|
19
|
+
scrollbar-width: none; /* Firefox */
|
|
20
|
+
padding-bottom: 2px; /* Prevent button shadows/borders from being cut off during scroll if any */
|
|
21
|
+
|
|
22
|
+
&::-webkit-scrollbar {
|
|
23
|
+
display: none; /* Chrome, Safari and Opera */
|
|
24
|
+
}
|
|
17
25
|
|
|
18
26
|
.ghost-button {
|
|
19
27
|
border-radius: 100px;
|
|
28
|
+
font-family: var(--font-family-mono, 'Geist Mono', monospace);
|
|
29
|
+
flex-shrink: 0;
|
|
20
30
|
}
|
|
21
31
|
}
|
|
22
32
|
}
|
|
@@ -26,7 +36,7 @@
|
|
|
26
36
|
.quick-filter {
|
|
27
37
|
display: flex;
|
|
28
38
|
flex-direction: row;
|
|
29
|
-
align-items:
|
|
39
|
+
align-items: center;
|
|
30
40
|
gap: 12px;
|
|
31
41
|
width: 100%;
|
|
32
42
|
|
|
@@ -37,7 +47,8 @@
|
|
|
37
47
|
&__options {
|
|
38
48
|
flex: 1;
|
|
39
49
|
display: flex;
|
|
40
|
-
flex-wrap:
|
|
50
|
+
flex-wrap: nowrap;
|
|
51
|
+
overflow-x: auto;
|
|
41
52
|
gap: 6px;
|
|
42
53
|
padding: 0;
|
|
43
54
|
margin: 0;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
|
-
import {
|
|
2
|
+
import { TableHeaderArrowUpIcon, TableHeaderArrowDownIcon} from '../../icons'
|
|
3
3
|
|
|
4
4
|
export type SortDirection = 'asc' | 'desc' | null
|
|
5
5
|
|
|
@@ -10,11 +10,9 @@ export interface TableSortIconProps {
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
export const TableSortIcon: React.FC<TableSortIconProps> = ({ active = false, direction, className = '' }) => {
|
|
13
|
-
if (!active || !direction) return null
|
|
14
|
-
|
|
15
13
|
return (
|
|
16
|
-
<span className={className}>
|
|
17
|
-
{direction === 'asc' ? <
|
|
14
|
+
<span className={className} style={{ visibility: active && direction ? 'visible' : 'hidden' }}>
|
|
15
|
+
{direction === 'asc' ? <TableHeaderArrowUpIcon /> : <TableHeaderArrowDownIcon />}
|
|
18
16
|
</span>
|
|
19
17
|
)
|
|
20
18
|
}
|