@licklist/design 0.78.37 → 0.78.40

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 (36) hide show
  1. package/dist/index.js +2 -1
  2. package/dist/v2/components/NewTable/NewTable.scss.js +1 -1
  3. package/dist/v2/components/NewTabs/NewTabs.d.ts +16 -0
  4. package/dist/v2/components/NewTabs/NewTabs.d.ts.map +1 -0
  5. package/dist/v2/components/NewTabs/NewTabs.js +28 -0
  6. package/dist/v2/components/NewTabs/NewTabs.scss.js +6 -0
  7. package/dist/v2/components/NewTabs/index.d.ts +2 -0
  8. package/dist/v2/components/NewTabs/index.d.ts.map +1 -0
  9. package/dist/v2/components/WaiverSettings/index.d.ts +2 -0
  10. package/dist/v2/components/WaiverSettings/index.d.ts.map +1 -0
  11. package/dist/v2/components/index.d.ts +3 -1
  12. package/dist/v2/components/index.d.ts.map +1 -1
  13. package/dist/v2/dashboard-analytics/metric-card/MetricCard.d.ts +1 -1
  14. package/dist/v2/dashboard-analytics/metric-card/MetricCard.d.ts.map +1 -1
  15. package/dist/v2/dashboard-analytics/metric-card/MetricCard.js +2 -1
  16. package/dist/v2/dashboard-analytics/metric-card/MetricCard.scss.js +1 -1
  17. package/dist/v2/icons/index.d.ts +36 -4
  18. package/dist/v2/icons/index.d.ts.map +1 -1
  19. package/dist/v2/icons/index.js +129 -14
  20. package/dist/v2/navigation/DashboardLayout/DashboardLayout.scss.js +1 -1
  21. package/dist/v2/pages/Settings/components/SidebarCustomisation.js +1 -0
  22. package/dist/v2/pages/Settings/components/SidebarNavItem.js +1 -0
  23. package/package.json +3 -3
  24. package/src/v2/components/Customer/CustomerDetail.scss +82 -207
  25. package/src/v2/components/Customer/CustomersList.scss +4 -3
  26. package/src/v2/components/NewTable/NewTable.scss +5 -3
  27. package/src/v2/components/NewTabs/NewTabs.scss +52 -0
  28. package/src/v2/components/NewTabs/NewTabs.tsx +47 -0
  29. package/src/v2/components/NewTabs/index.ts +1 -0
  30. package/src/v2/components/WaiverSettings/WaiverSettings.scss +149 -0
  31. package/src/v2/components/WaiverSettings/index.ts +3 -0
  32. package/src/v2/components/index.ts +8 -2
  33. package/src/v2/dashboard-analytics/metric-card/MetricCard.scss +16 -1
  34. package/src/v2/dashboard-analytics/metric-card/MetricCard.tsx +14 -11
  35. package/src/v2/icons/index.tsx +38 -10
  36. package/src/v2/navigation/DashboardLayout/DashboardLayout.scss +3 -1
@@ -1,137 +1,118 @@
1
1
  .customer-detail {
2
2
  padding: 40px;
3
- background-color: #fff;
3
+ background-color: var(--surface-primary);
4
4
  min-height: 100vh;
5
5
  font-family: var(--font-family-sans, 'Geist', sans-serif);
6
6
 
7
7
  &__back {
8
- color: #6200EE;
9
- font-weight: 500;
10
- cursor: pointer;
11
- margin-bottom: 30px;
8
+ margin-bottom: 16px;
12
9
  display: inline-flex;
13
10
  align-items: center;
14
11
  gap: 8px;
15
- font-size: 14px;
16
12
  padding: 8px 16px;
17
13
  border-radius: 8px;
14
+ border: 1px solid var(--border-primary);
15
+ background: transparent;
16
+ color: var(--purple-500);
17
+ font-weight: 500;
18
+ font-size: 14px;
19
+ cursor: pointer;
18
20
  transition: all 0.2s ease;
19
- border: 1px solid transparent;
20
21
 
21
- &:hover {
22
- background-color: #F3E5FF;
23
- border: 1px solid #E0C7FF;
22
+ svg {
23
+ width: 24px;
24
+ height: 24px;
25
+ color: var(--purple-500);
24
26
  }
25
- }
26
-
27
- &__header {
28
- margin-bottom: 40px;
29
- }
30
-
31
- &__name {
32
- font-size: 32px;
33
- font-weight: 700;
34
- color: #121E52;
35
- margin: 0 0 16px 0;
36
- }
37
27
 
38
- &__badges-row {
39
- display: flex;
40
- justify-content: space-between;
41
- align-items: center;
42
- }
28
+ span {
29
+ color: var(--purple-500);
30
+ font-weight: 500;
31
+ font-size: 14px;
32
+ }
43
33
 
44
- &__badges {
45
- display: flex;
46
- gap: 12px;
47
- align-items: center;
34
+ &:hover {
35
+ background-color: var(--surface-action-soft);
36
+ border: 1px solid var(--border-primary);
37
+ }
48
38
  }
49
39
 
50
- &__id-badge {
51
- background-color: #F4F5F9;
52
- color: #121E52;
53
- padding: 4px 12px;
54
- border-radius: 100px;
55
- font-size: 12px;
40
+ &__name {
41
+ font-size: 24px;
56
42
  font-weight: 600;
57
- border: 1px solid #E2E4ED;
43
+ color: var(--label-primary);
44
+ margin: 0 0 22px 0;
45
+ line-height: 1.2;
58
46
  }
59
47
 
60
- &__edit {
61
- display: inline-flex;
62
- align-items: center;
63
- gap: 8px;
64
- color: #121E52;
65
- font-weight: 600;
66
- cursor: pointer;
67
- font-size: 14px;
68
- padding: 8px 16px;
69
- border-radius: 8px;
70
- transition: all 0.2s ease;
71
- border: 1px solid transparent;
72
-
73
- &:hover {
74
- background-color: #E8EAF0;
75
- border: 1px solid #D1D5E0;
76
- }
48
+ &__header {
49
+ margin-bottom: 40px;
77
50
  }
78
51
 
79
- &__grid {
52
+ &__summary-row {
80
53
  display: grid;
81
- grid-template-columns: 1fr 1fr;
82
- gap: 24px;
83
- margin-bottom: 24px;
54
+ grid-template-columns: repeat(4, 1fr);
55
+ gap: 16px;
56
+ margin-bottom: 32px;
84
57
  }
85
58
 
86
59
  &__card {
87
- background: #FFFFFF;
88
- border: 1px solid #E2E4ED;
60
+ background: var(--surface-primary);
61
+ border: 1px solid var(--border-primary);
89
62
  border-radius: 12px;
90
- padding: 24px;
63
+ padding: 32px;
64
+ margin-bottom: 24px;
65
+
66
+ &--details {
67
+ margin-bottom: 32px;
68
+ }
91
69
 
92
70
  &--full {
93
71
  grid-column: 1 / -1;
94
72
  }
95
73
  }
96
74
 
75
+ &__card-header {
76
+ display: flex;
77
+ justify-content: space-between;
78
+ align-items: flex-start;
79
+ margin-bottom: 32px;
80
+ }
81
+
97
82
  &__card-title {
98
- font-size: 18px;
83
+ font-size: 20px;
99
84
  font-weight: 700;
100
- color: #121E52;
101
- margin: 0 0 24px 0;
85
+ color: var(--label-primary);
86
+ margin: 0;
87
+ }
88
+
89
+ &__grid {
90
+ display: grid;
91
+ grid-template-columns: 1fr 1fr;
92
+ column-gap: 64px;
93
+ row-gap: 24px;
102
94
  }
103
95
 
104
96
  &__info-group {
105
97
  display: flex;
106
98
  flex-direction: column;
107
99
  gap: 4px;
108
- margin-bottom: 16px;
109
-
110
- &:last-child {
111
- margin-bottom: 0;
112
- }
113
100
 
114
101
  label {
115
102
  font-size: 12px;
116
- color: #9399B3;
117
- margin: 0;
118
- }
119
-
120
- span {
121
- font-size: 14px;
122
- font-weight: 500;
123
- display: inline-flex;
124
- align-items: center;
103
+ font-weight: 600;
104
+ color: var(--label-secondary);
105
+ margin: 2px;
106
+ text-transform: none;
125
107
  }
126
108
  }
127
109
 
128
-
129
110
  &__minor-row {
130
111
  display: flex;
131
112
  justify-content: space-between;
132
113
  align-items: center;
133
114
  padding: 16px 0;
134
- border-bottom: 1px solid #F4F5F9;
115
+ border-bottom: 1px solid var(--surface-tertiary);
135
116
 
136
117
  &:last-child {
137
118
  border-bottom: none;
@@ -152,12 +133,12 @@
152
133
  &__minor-name {
153
134
  font-size: 14px;
154
135
  font-weight: 600;
155
- color: #121E52;
136
+ color: var(--label-primary);
156
137
  }
157
138
 
158
139
  &__minor-age {
159
140
  font-size: 12px;
160
- color: #9399B3;
141
+ color: var(--label-secondary);
161
142
  }
162
143
 
163
144
  &__minor-status-group {
@@ -168,151 +149,45 @@
168
149
 
169
150
  &__minor-expires {
170
151
  font-size: 12px;
171
- color: #9399B3;
172
- }
173
-
174
- &__footer {
175
- margin-top: 40px;
176
- font-size: 12px;
177
- color: #9399B3;
152
+ color: var(--label-secondary);
178
153
  }
179
154
  }
180
155
 
181
156
  // Mobile styles
182
- @media (max-width: 768px) {
157
+ @media (max-width: 1024px) {
183
158
  .customer-detail {
184
- padding: 20px 16px;
185
-
186
- &__back {
187
- font-size: 13px;
188
- padding: 6px 12px;
189
- margin-bottom: 20px;
190
- }
191
-
192
- &__header {
193
- margin-bottom: 24px;
194
- }
195
-
196
- &__name {
197
- font-size: 24px;
198
- margin-bottom: 12px;
199
- }
200
-
201
- &__badges-row {
202
- flex-direction: row;
203
- justify-content: space-between;
204
- align-items: center;
205
- gap: 12px;
206
- width: 100%;
207
- }
208
-
209
- &__badges {
210
- flex-wrap: wrap;
211
- flex: 1;
212
- }
213
-
214
- &__id-badge {
215
- font-size: 11px;
216
- padding: 3px 10px;
217
- }
218
-
219
- &__edit {
220
- font-size: 13px;
221
- padding: 6px 12px;
222
- align-self: center;
223
- margin-left: auto;
224
- }
225
-
226
- &__grid {
227
- grid-template-columns: 1fr;
228
- gap: 16px;
229
- margin-bottom: 16px;
230
- }
231
-
232
- &__card {
233
- padding: 20px;
234
-
235
- &--full {
236
- grid-column: 1;
237
- }
238
- }
239
-
240
- &__card-title {
241
- font-size: 16px;
242
- margin-bottom: 16px;
243
- }
244
-
245
- &__info-group {
246
- margin-bottom: 14px;
247
-
248
- label {
249
- font-size: 11px;
250
- }
251
-
252
- span {
253
- font-size: 13px;
254
- }
255
- }
256
-
257
- &__minor-row {
258
- flex-direction: column;
259
- align-items: flex-start;
260
- gap: 12px;
261
- padding: 12px 0;
262
- }
263
-
264
- &__minor-name {
265
- font-size: 13px;
266
- }
267
-
268
- &__minor-age,
269
- &__minor-expires {
270
- font-size: 11px;
271
- }
272
-
273
- &__minor-status-group {
274
- width: 100%;
275
- justify-content: space-between;
276
- }
277
-
278
- &__footer {
279
- margin-top: 24px;
280
- font-size: 11px;
159
+ &__summary-row {
160
+ grid-template-columns: 1fr 1fr;
281
161
  }
282
162
  }
283
163
  }
284
164
 
285
- // Extra small mobile devices
286
- @media (max-width: 480px) {
165
+ @media (max-width: 768px) {
287
166
  .customer-detail {
288
- padding: 16px 12px;
167
+ padding: 20px 0;
289
168
 
290
- &__back {
291
- font-size: 12px;
292
- padding: 4px 8px;
293
- margin-bottom: 16px;
169
+ &__summary-row {
170
+ grid-template-columns: 1fr;
171
+ gap: 16px;
294
172
  }
295
173
 
296
- &__name {
297
- font-size: 20px;
174
+ &__grid {
175
+ grid-template-columns: 1fr;
176
+ row-gap: 16px;
298
177
  }
299
178
 
300
179
  &__card {
301
- padding: 16px;
302
- border-radius: 8px;
303
- }
304
-
305
- &__card-title {
306
- font-size: 15px;
307
- margin-bottom: 12px;
180
+ padding: 24px;
308
181
  }
309
182
 
310
- &__badges {
183
+ &__minor-status-group {
184
+ flex-direction: column;
185
+ align-items: flex-end;
311
186
  gap: 8px;
312
187
  }
313
188
 
314
- &__minor-row {
315
- padding: 10px 0;
189
+ &__minor-expires {
190
+ order: 2;
316
191
  }
317
192
  }
318
193
  }
@@ -178,17 +178,18 @@
178
178
  // Cells styling (usually specific to the table in this page)
179
179
  .entity-cell {
180
180
  &__name {
181
+ font-size: 15px;
181
182
  font-weight: 600;
182
- color: #121E52;
183
+ color: var(--label-primary);
183
184
  }
184
185
  &__sub {
185
186
  font-size: 13px;
186
- color: #9399B3;
187
+ color: var(--label-secondary);
187
188
  display: block !important;
188
189
  }
189
190
  &__id {
190
191
  font-size: 13px;
191
- color: #9399B3;
192
+ color: var(--label-secondary);
192
193
  display: none !important;
193
194
  }
194
195
 
@@ -9,9 +9,11 @@
9
9
  }
10
10
 
11
11
  .new-table {
12
- width: 100%;
12
+ min-width: 100%;
13
13
  border-collapse: collapse;
14
14
  text-align: left;
15
+ table-layout: fixed;
16
+ font-family: var(--font-family-sans);
15
17
 
16
18
  &__head {
17
19
  background-color: var(--surface-secondary, #F8F8FA);
@@ -81,7 +83,7 @@
81
83
  }
82
84
 
83
85
  .new-table {
84
- min-width: 600px; // Ensure table doesn't collapse too much
86
+ min-width: 100%; // Ensure table doesn't collapse too much
85
87
 
86
88
  &__header-cell {
87
89
  padding: 12px 16px;
@@ -102,7 +104,7 @@
102
104
 
103
105
  @media (max-width: 480px) {
104
106
  .new-table {
105
- min-width: 500px;
107
+ min-width: 100%;
106
108
 
107
109
  &__header-cell,
108
110
  &__cell {
@@ -0,0 +1,52 @@
1
+ .new-tabs {
2
+ display: flex;
3
+ justify-content: space-between;
4
+ align-items: center;
5
+ align-self: stretch;
6
+ padding-bottom: 0;
7
+ padding-left: 0;
8
+ padding-top: 0;
9
+ margin-bottom: 18px;
10
+ margin-top: -18px;
11
+ border-bottom: 1px solid var(--border-primary, #E8E9EF);
12
+
13
+ @media (max-width: 640px) {
14
+ padding-bottom: 8px;
15
+ }
16
+
17
+ &__container {
18
+ display: flex;
19
+ gap: 0;
20
+ }
21
+
22
+ &__tab {
23
+ font-size: 15px;
24
+ font-style: normal;
25
+ font-weight: 600;
26
+ line-height: 18px;
27
+ padding: 12px 4px;
28
+ margin-right: 24px;
29
+ background: none;
30
+ border: none;
31
+ border-bottom: 3.5px solid transparent;
32
+ font-family: var(--font-family-sans);
33
+ color: var(--label-selected, #121E52);
34
+ cursor: pointer;
35
+ transition: all 0.2s;
36
+ margin-bottom: -1px;
37
+
38
+ &:hover:not(:disabled) {
39
+ color: var(--fills-main-fill-primary, #14215A);
40
+ }
41
+
42
+ &--active {
43
+ color: var(--fills-main-fill-primary, #14215A);
44
+ border-bottom-color: var(--fills-main-fill-primary, #14215A);
45
+ }
46
+
47
+ &:disabled {
48
+ opacity: 0.5;
49
+ cursor: not-allowed;
50
+ }
51
+ }
52
+ }
@@ -0,0 +1,47 @@
1
+ import React from 'react'
2
+ import './NewTabs.scss'
3
+
4
+ export interface NewTabItem {
5
+ id: string
6
+ label: string
7
+ disabled?: boolean
8
+ }
9
+
10
+ export interface NewTabsProps {
11
+ tabs: NewTabItem[]
12
+ activeTab: string
13
+ onChange: (id: string) => void
14
+ className?: string
15
+ tabClassName?: string
16
+ }
17
+
18
+ export const NewTabs: React.FC<NewTabsProps> = ({
19
+ tabs,
20
+ activeTab,
21
+ onChange,
22
+ className = '',
23
+ tabClassName = '',
24
+ }) => {
25
+ return (
26
+ <div className={`new-tabs ${className}`}>
27
+ <nav className="new-tabs__container">
28
+ {tabs.map((tab) => {
29
+ const isActive = tab.id === activeTab
30
+ const isDisabled = tab.disabled
31
+
32
+ return (
33
+ <button
34
+ key={tab.id}
35
+ type="button"
36
+ className={`new-tabs__tab ${isActive ? 'new-tabs__tab--active' : ''} ${tabClassName}`}
37
+ onClick={() => !isDisabled && onChange(tab.id)}
38
+ disabled={isDisabled}
39
+ >
40
+ {tab.label}
41
+ </button>
42
+ )
43
+ })}
44
+ </nav>
45
+ </div>
46
+ )
47
+ }
@@ -0,0 +1 @@
1
+ export * from './NewTabs';
@@ -0,0 +1,149 @@
1
+ .waiver-settings {
2
+ font-family: var(--font-family-sans);
3
+
4
+ &__header {
5
+ padding-top: 24px;
6
+ margin-bottom: 32px;
7
+ }
8
+
9
+ &__back-button {
10
+ margin-bottom: 24px;
11
+ color: var(--purple-500, #6200EE) !important;
12
+ border-color: var(--border-primary, #E8E9EF) !important;
13
+
14
+ .ghost-button__icon svg {
15
+ color: var(--purple-500, #6200EE);
16
+ }
17
+
18
+ &:hover {
19
+ background-color: var(--surface-action-soft) !important;
20
+ }
21
+ }
22
+
23
+ &__title {
24
+ font-family: var(--font-family-sans);
25
+ color: var(--label-primary);
26
+ font-size: 24px;
27
+ font-weight: 600;
28
+ line-height: 28px;
29
+ margin: 0;
30
+
31
+ @media (max-width: 640px) {
32
+ font-size: 20px;
33
+ line-height: 24px;
34
+ }
35
+ }
36
+
37
+ &__content {
38
+ max-width: 100%;
39
+ }
40
+
41
+ &__general {
42
+ display: flex;
43
+ flex-direction: column;
44
+ gap: 24px;
45
+ }
46
+
47
+ &__card {
48
+ display: flex;
49
+ align-items: center;
50
+ justify-content: space-between;
51
+ padding: 1rem;
52
+ border: 1px solid var(--border-primary, #E8E9EF);
53
+ border-radius: 8px;
54
+ background: var(--surface-secondary, #F8F9FC);
55
+ width: 100%;
56
+
57
+ @media (max-width: 640px) {
58
+ flex-direction: column;
59
+ align-items: flex-start;
60
+ gap: 16px;
61
+ }
62
+ }
63
+
64
+ &__card-left {
65
+ display: flex;
66
+ align-items: center;
67
+ gap: 16px;
68
+ min-width: 0;
69
+ margin-right: 16px;
70
+
71
+ @media (max-width: 640px) {
72
+ width: 100%;
73
+ margin-right: 0;
74
+ }
75
+ }
76
+
77
+ &__card-icon {
78
+ display: flex;
79
+ align-items: center;
80
+ justify-content: center;
81
+ width: 48px;
82
+ height: 48px;
83
+ flex-shrink: 0;
84
+ }
85
+
86
+ &__card-content {
87
+ flex: 1;
88
+
89
+ @media (max-width: 640px) {
90
+ width: 100%;
91
+ }
92
+ }
93
+
94
+ &__card-title {
95
+ font-family: var(--font-family-sans);
96
+ font-size: 18px;
97
+ font-weight: 700;
98
+ color: var(--neutral-500, #14215A);
99
+ margin: 0 0 4px 0;
100
+ }
101
+
102
+ &__card-description {
103
+ font-family: var(--font-family-sans);
104
+ font-size: 14px;
105
+ color: var(--neutral-500, #14215A);
106
+ line-height: 20px;
107
+ margin: 0;
108
+ }
109
+
110
+ &__launch-link {
111
+ display: inline-flex;
112
+ align-items: center;
113
+ gap: 0.5rem;
114
+ padding: 0.6rem 1rem;
115
+ background: white;
116
+ border: 1px solid var(--border-primary, #E8E9EF);
117
+ border-radius: 6px;
118
+ font-family: var(--font-family-sans);
119
+ font-size: 14px;
120
+ font-weight: 600;
121
+ color: var(--neutral-500, #14215A);
122
+ cursor: pointer;
123
+ transition: all 0.2s;
124
+ width: fit-content;
125
+
126
+ @media (max-width: 640px) {
127
+ width: 100%;
128
+ justify-content: center;
129
+ }
130
+
131
+ &:hover {
132
+ background-color: var(--surface-secondary, #F8F9FC);
133
+ }
134
+
135
+ svg {
136
+ flex-shrink: 0;
137
+ color: var(--neutral-500, #14215A);
138
+ }
139
+ }
140
+
141
+ &__waivers {
142
+ padding: 0;
143
+ }
144
+
145
+ &__alert-wrapper {
146
+ margin-top: 10px;
147
+ }
148
+ }
149
+
@@ -0,0 +1,3 @@
1
+ // WaiverSettings styles
2
+ import './WaiverSettings.scss'
3
+
@@ -9,7 +9,8 @@ export type { QuickFilterProps, QuickFilterOption } from './QuickFilter'
9
9
 
10
10
  export { NewTable } from './NewTable'
11
11
  export type { NewTableProps, NewTableColumn } from './NewTable'
12
-
12
+ export { NewTabs } from './NewTabs'
13
+ export type { NewTabsProps, NewTabItem } from './NewTabs'
13
14
  export { TableSortIcon } from './TableSortIcon'
14
15
  export type { TableSortIconProps } from './TableSortIcon'
15
16
 
@@ -89,6 +90,11 @@ export {
89
90
  GripVerticalIcon,
90
91
  PlusIcon,
91
92
  DeleteIcon,
92
- ClockIcon
93
+ ClockIcon,
94
+ LocationIcon,
95
+ PadlockIcon,
96
+ SettingsPageDashboardIcon,
97
+ SettingsPageWaiversIcon,
98
+ VenueIcon,
93
99
  } from '../icons'
94
100