@licklist/design 0.78.5-dev.74 → 0.78.5-dev.76

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 (30) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -0
  4. package/dist/v2/components/NewTable/NewTable.scss.js +1 -1
  5. package/dist/v2/index.d.ts +2 -0
  6. package/dist/v2/index.d.ts.map +1 -1
  7. package/dist/v2/pages/SettingsSubPage/SettingsSubPage.d.ts +12 -0
  8. package/dist/v2/pages/SettingsSubPage/SettingsSubPage.d.ts.map +1 -0
  9. package/dist/v2/pages/SettingsSubPage/SettingsSubPage.js +47 -0
  10. package/dist/v2/pages/SettingsSubPage/SettingsSubPage.scss.js +6 -0
  11. package/dist/v2/pages/SettingsSubPage/index.d.ts +3 -0
  12. package/dist/v2/pages/SettingsSubPage/index.d.ts.map +1 -0
  13. package/dist/v2/pages/ZonesResources/ZonesResourcesPage.d.ts +5 -8
  14. package/dist/v2/pages/ZonesResources/ZonesResourcesPage.d.ts.map +1 -1
  15. package/dist/v2/pages/ZonesResources/ZonesResourcesPage.js +68 -42
  16. package/dist/v2/styles/form/NewInput.scss +12 -0
  17. package/dist/v2/styles/form/NewInput.scss.js +1 -1
  18. package/package.json +2 -2
  19. package/src/index.ts +1 -0
  20. package/src/v2/components/Customer/CustomerDetail.scss +110 -194
  21. package/src/v2/components/Customer/CustomersList.scss +4 -3
  22. package/src/v2/components/NewTable/NewTable.scss +1 -0
  23. package/src/v2/icons/Icons.stories.tsx +253 -0
  24. package/src/v2/index.ts +5 -1
  25. package/src/v2/pages/SettingsSubPage/SettingsSubPage.scss +43 -0
  26. package/src/v2/pages/SettingsSubPage/SettingsSubPage.tsx +49 -0
  27. package/src/v2/pages/SettingsSubPage/index.ts +2 -0
  28. package/src/v2/pages/ZonesResources/ZonesResourcesPage.tsx +12 -39
  29. package/src/v2/styles/form/NewInput.scss +12 -0
  30. package/dist/v2/pages/ZonesResources/ZonesResourcesPage.scss.js +0 -6
@@ -1,26 +1,39 @@
1
1
  .customer-detail {
2
2
  padding: 40px;
3
- background-color: #fff;
3
+ background-color: var(--neutral-25);
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
8
  margin-bottom: 30px;
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;
21
+
22
+ svg {
23
+ width: 24px;
24
+ height: 24px;
25
+ color: var(--purple-500);
26
+ }
27
+
28
+ span {
29
+ color: var(--purple-500);
30
+ font-weight: 500;
31
+ font-size: 14px;
32
+ }
20
33
 
21
34
  &:hover {
22
- background-color: #F3E5FF;
23
- border: 1px solid #E0C7FF;
35
+ background-color: var(--surface-action-soft);
36
+ border: 1px solid var(--border-primary);
24
37
  }
25
38
  }
26
39
 
@@ -28,110 +41,119 @@
28
41
  margin-bottom: 40px;
29
42
  }
30
43
 
31
- &__name {
32
- font-size: 32px;
33
- font-weight: 700;
34
- color: #121E52;
35
- margin: 0 0 16px 0;
36
- }
37
-
38
- &__badges-row {
39
- display: flex;
40
- justify-content: space-between;
41
- align-items: center;
44
+ &__summary-row {
45
+ display: grid;
46
+ grid-template-columns: repeat(4, 1fr);
47
+ gap: 24px;
48
+ margin-bottom: 32px;
42
49
  }
43
50
 
44
- &__badges {
51
+ &__summary-card {
52
+ background: var(--surface-secondary);
53
+ border: 1px solid var(--tone-light);
54
+ border-radius: 12px;
55
+ padding: 24px;
45
56
  display: flex;
46
- gap: 12px;
47
- align-items: center;
48
- }
49
-
50
- &__id-badge {
51
- background-color: #F4F5F9;
52
- color: #121E52;
53
- padding: 4px 12px;
54
- border-radius: 100px;
55
- font-size: 12px;
56
- font-weight: 600;
57
- border: 1px solid #E2E4ED;
58
- }
59
-
60
- &__edit {
61
- display: inline-flex;
62
- align-items: center;
57
+ flex-direction: column;
63
58
  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
59
 
73
- &:hover {
74
- background-color: #E8EAF0;
75
- border: 1px solid #D1D5E0;
60
+ label {
61
+ font-size: 14px;
62
+ font-weight: 600;
63
+ color: var(--label-secondary);
64
+ margin: 0;
76
65
  }
77
66
  }
78
67
 
79
- &__grid {
80
- display: grid;
81
- grid-template-columns: 1fr 1fr;
82
- gap: 24px;
83
- margin-bottom: 24px;
68
+ &__summary-value {
69
+ font-size: 28px;
70
+ font-weight: 700;
71
+ color: var(--label-primary);
84
72
  }
85
73
 
86
74
  &__card {
87
- background: #FFFFFF;
88
- border: 1px solid #E2E4ED;
75
+ background: var(--surface-primary);
76
+ border: 1px solid var(--border-primary);
89
77
  border-radius: 12px;
90
- padding: 24px;
78
+ padding: 32px;
79
+ margin-bottom: 24px;
80
+
81
+ &--details {
82
+ margin-bottom: 32px;
83
+ }
91
84
 
92
85
  &--full {
93
86
  grid-column: 1 / -1;
94
87
  }
95
88
  }
96
89
 
90
+ &__card-header {
91
+ display: flex;
92
+ justify-content: space-between;
93
+ align-items: flex-start;
94
+ margin-bottom: 32px;
95
+ }
96
+
97
97
  &__card-title {
98
- font-size: 18px;
98
+ font-size: 20px;
99
99
  font-weight: 700;
100
- color: #121E52;
101
- margin: 0 0 24px 0;
100
+ color: var(--label-primary);
101
+ margin: 0;
102
+ }
103
+
104
+ &__grid {
105
+ display: grid;
106
+ grid-template-columns: 1fr 1fr;
107
+ column-gap: 64px;
108
+ row-gap: 24px;
102
109
  }
103
110
 
104
111
  &__info-group {
105
112
  display: flex;
106
113
  flex-direction: column;
107
114
  gap: 4px;
108
- margin-bottom: 16px;
109
-
110
- &:last-child {
111
- margin-bottom: 0;
112
- }
113
115
 
114
116
  label {
115
117
  font-size: 12px;
116
- color: #9399B3;
117
- margin: 0;
118
+ font-weight: 600;
119
+ color: var(--label-secondary);
120
+ margin: 2px;
121
+ text-transform: none;
118
122
  }
119
123
 
120
124
  span {
121
- font-size: 14px;
122
- font-weight: 500;
125
+ font-size: 15px;
126
+ font-weight: 600;
127
+ color: var(--label-primary);
123
128
  display: inline-flex;
124
129
  align-items: center;
125
130
  }
126
131
  }
127
132
 
133
+ &__edit {
134
+ display: inline-flex;
135
+ align-items: center;
136
+ gap: 8px;
137
+ color: var(--label-primary);
138
+ font-weight: 600;
139
+ cursor: pointer;
140
+ font-size: 14px;
141
+ padding: 8px 16px;
142
+ border-radius: 8px;
143
+ transition: all 0.2s ease;
144
+ border: 1px solid var(--border-primary);
145
+
146
+ &:hover {
147
+ background-color: var(--surface-tertiary);
148
+ }
149
+ }
128
150
 
129
151
  &__minor-row {
130
152
  display: flex;
131
153
  justify-content: space-between;
132
154
  align-items: center;
133
155
  padding: 16px 0;
134
- border-bottom: 1px solid #F4F5F9;
156
+ border-bottom: 1px solid var(--surface-tertiary);
135
157
 
136
158
  &:last-child {
137
159
  border-bottom: none;
@@ -152,12 +174,12 @@
152
174
  &__minor-name {
153
175
  font-size: 14px;
154
176
  font-weight: 600;
155
- color: #121E52;
177
+ color: var(--label-primary);
156
178
  }
157
179
 
158
180
  &__minor-age {
159
181
  font-size: 12px;
160
- color: #9399B3;
182
+ color: var(--label-secondary);
161
183
  }
162
184
 
163
185
  &__minor-status-group {
@@ -168,151 +190,45 @@
168
190
 
169
191
  &__minor-expires {
170
192
  font-size: 12px;
171
- color: #9399B3;
193
+ color: var(--label-secondary);
172
194
  }
195
+ }
173
196
 
174
- &__footer {
175
- margin-top: 40px;
176
- font-size: 12px;
177
- color: #9399B3;
197
+ // Mobile styles
198
+ @media (max-width: 1024px) {
199
+ .customer-detail {
200
+ &__summary-row {
201
+ grid-template-columns: 1fr 1fr;
202
+ }
178
203
  }
179
204
  }
180
205
 
181
- // Mobile styles
182
206
  @media (max-width: 768px) {
183
207
  .customer-detail {
184
208
  padding: 20px 16px;
185
209
 
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;
210
+ &__summary-row {
211
+ grid-template-columns: 1fr;
212
+ gap: 16px;
224
213
  }
225
214
 
226
215
  &__grid {
227
216
  grid-template-columns: 1fr;
228
- gap: 16px;
229
- margin-bottom: 16px;
217
+ row-gap: 16px;
230
218
  }
231
219
 
232
220
  &__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;
221
+ padding: 24px;
271
222
  }
272
223
 
273
224
  &__minor-status-group {
274
- width: 100%;
275
- justify-content: space-between;
276
- }
277
-
278
- &__footer {
279
- margin-top: 24px;
280
- font-size: 11px;
281
- }
282
- }
283
- }
284
-
285
- // Extra small mobile devices
286
- @media (max-width: 480px) {
287
- .customer-detail {
288
- padding: 16px 12px;
289
-
290
- &__back {
291
- font-size: 12px;
292
- padding: 4px 8px;
293
- margin-bottom: 16px;
294
- }
295
-
296
- &__name {
297
- font-size: 20px;
298
- }
299
-
300
- &__card {
301
- padding: 16px;
302
- border-radius: 8px;
303
- }
304
-
305
- &__card-title {
306
- font-size: 15px;
307
- margin-bottom: 12px;
308
- }
309
-
310
- &__badges {
225
+ flex-direction: column;
226
+ align-items: flex-end;
311
227
  gap: 8px;
312
228
  }
313
229
 
314
- &__minor-row {
315
- padding: 10px 0;
230
+ &__minor-expires {
231
+ order: 2;
316
232
  }
317
233
  }
318
234
  }
@@ -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
 
@@ -12,6 +12,7 @@
12
12
  width: 100%;
13
13
  border-collapse: collapse;
14
14
  text-align: left;
15
+ table-layout: fixed;
15
16
 
16
17
  &__head {
17
18
  background-color: var(--surface-secondary, #F8F8FA);
@@ -0,0 +1,253 @@
1
+ import React from 'react'
2
+ import {
3
+ DashboardIcon,
4
+ CompanyIcon,
5
+ VenueIcon,
6
+ MarketingIcon,
7
+ AdminIcon,
8
+ ProfileIcon,
9
+ CustomersIcon,
10
+ ReportsIcon,
11
+ AnalyticsIcon,
12
+ PaymentsIcon,
13
+ SettingsIcon,
14
+ LoyaltyIcon,
15
+ WaiversIcon,
16
+ CalendarIcon,
17
+ BookingsIcon,
18
+ BookingTypesIcon,
19
+ EditIcon,
20
+ CalendarSmallIcon,
21
+ SearchIcon,
22
+ RefreshIcon,
23
+ SendIcon,
24
+ ExternalLinkIcon,
25
+ ExportIcon,
26
+ ClearIcon,
27
+ ChevronLeftIcon,
28
+ ChevronRightIcon,
29
+ ArrowRightIcon,
30
+ ArrowLeftIcon,
31
+ InfoIcon,
32
+ TableHeaderArrowUpIcon,
33
+ TableHeaderArrowDownIcon,
34
+ ArrowUpIcon,
35
+ ArrowDownIcon,
36
+ GripVerticalIcon,
37
+ PlusIcon,
38
+ CloseIcon,
39
+ EllipsisIcon,
40
+ CircleIcon,
41
+ SecurityIcon,
42
+ NewPasswordIcon,
43
+ PasswordRequirementIcon,
44
+ VerifyEmailIcon,
45
+ PasswordTypeIcon,
46
+ BookedLogo,
47
+ DeleteIcon,
48
+ UserAddIcon,
49
+ UserImportIcon,
50
+ SlidersIcon,
51
+ ProviderPlusIcon,
52
+ ClockIcon,
53
+ WarningTriangleIcon,
54
+ CheckCircleIcon,
55
+ XCircleIcon,
56
+ UserGroupIcon,
57
+ UploadIcon,
58
+ ArrowDownSmallIcon,
59
+ ToggleCheckIcon,
60
+ ToggleCrossIcon,
61
+ TrendUpIcon,
62
+ TrendDownIcon,
63
+ TrendSteadyIcon,
64
+ TrendUpSmallIcon,
65
+ TrendDownSmallIcon,
66
+ TrendSteadySmallIcon,
67
+ NPSHappyIcon,
68
+ NPSNeutralIcon,
69
+ NPSSadIcon,
70
+ NPSSadFaceIcon,
71
+ NPSNeutralFaceIcon,
72
+ NPSHappyFaceIcon,
73
+ AnalyticsEmptyIcon,
74
+ PaymentsEmptyIcon,
75
+ ReportsEmptyIcon,
76
+ SelectCheckIcon,
77
+ } from './index'
78
+
79
+ export default {
80
+ title: 'v2/Icons',
81
+ }
82
+
83
+ const iconCardStyle: React.CSSProperties = {
84
+ display: 'flex',
85
+ flexDirection: 'column',
86
+ alignItems: 'center',
87
+ justifyContent: 'center',
88
+ gap: 8,
89
+ padding: 16,
90
+ border: '1px solid #E8E9EF',
91
+ borderRadius: 8,
92
+ minWidth: 120,
93
+ minHeight: 100,
94
+ }
95
+
96
+ const labelStyle: React.CSSProperties = {
97
+ fontSize: 11,
98
+ color: '#6B7280',
99
+ fontFamily: 'monospace',
100
+ textAlign: 'center',
101
+ wordBreak: 'break-all',
102
+ }
103
+
104
+ const gridStyle: React.CSSProperties = {
105
+ display: 'grid',
106
+ gridTemplateColumns: 'repeat(auto-fill, minmax(140px, 1fr))',
107
+ gap: 12,
108
+ padding: 24,
109
+ }
110
+
111
+ const sectionStyle: React.CSSProperties = {
112
+ marginBottom: 32,
113
+ }
114
+
115
+ const sectionTitleStyle: React.CSSProperties = {
116
+ fontSize: 16,
117
+ fontWeight: 600,
118
+ marginBottom: 12,
119
+ paddingLeft: 24,
120
+ color: '#111827',
121
+ }
122
+
123
+ const IconCard = ({ name, children }: { name: string; children: React.ReactNode }) => (
124
+ <div style={iconCardStyle}>
125
+ <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'center' }}>
126
+ {children}
127
+ </div>
128
+ <span style={labelStyle}>{name}</span>
129
+ </div>
130
+ )
131
+
132
+ const Section = ({ title, children }: { title: string; children: React.ReactNode }) => (
133
+ <div style={sectionStyle}>
134
+ <h3 style={sectionTitleStyle}>{title}</h3>
135
+ <div style={gridStyle}>{children}</div>
136
+ </div>
137
+ )
138
+
139
+ export const AllIcons = () => (
140
+ <div>
141
+ <Section title="Navigation">
142
+ <IconCard name="DashboardIcon"><DashboardIcon /></IconCard>
143
+ <IconCard name="CompanyIcon"><CompanyIcon /></IconCard>
144
+ <IconCard name="VenueIcon"><VenueIcon /></IconCard>
145
+ <IconCard name="MarketingIcon"><MarketingIcon /></IconCard>
146
+ <IconCard name="AdminIcon"><AdminIcon /></IconCard>
147
+ <IconCard name="ProfileIcon"><ProfileIcon /></IconCard>
148
+ <IconCard name="CustomersIcon"><CustomersIcon /></IconCard>
149
+ <IconCard name="ReportsIcon"><ReportsIcon /></IconCard>
150
+ <IconCard name="AnalyticsIcon"><AnalyticsIcon /></IconCard>
151
+ <IconCard name="PaymentsIcon"><PaymentsIcon /></IconCard>
152
+ <IconCard name="SettingsIcon"><SettingsIcon /></IconCard>
153
+ <IconCard name="LoyaltyIcon"><LoyaltyIcon /></IconCard>
154
+ <IconCard name="WaiversIcon"><WaiversIcon /></IconCard>
155
+ <IconCard name="CalendarIcon"><CalendarIcon /></IconCard>
156
+ <IconCard name="BookingsIcon"><BookingsIcon /></IconCard>
157
+ <IconCard name="BookingTypesIcon"><BookingTypesIcon /></IconCard>
158
+ </Section>
159
+
160
+ <Section title="Actions">
161
+ <IconCard name="EditIcon"><EditIcon /></IconCard>
162
+ <IconCard name="SearchIcon"><SearchIcon /></IconCard>
163
+ <IconCard name="RefreshIcon"><RefreshIcon /></IconCard>
164
+ <IconCard name="SendIcon"><SendIcon /></IconCard>
165
+ <IconCard name="ExternalLinkIcon"><ExternalLinkIcon /></IconCard>
166
+ <IconCard name="ExportIcon"><ExportIcon /></IconCard>
167
+ <IconCard name="ClearIcon"><ClearIcon /></IconCard>
168
+ <IconCard name="DeleteIcon"><DeleteIcon /></IconCard>
169
+ <IconCard name="PlusIcon"><PlusIcon /></IconCard>
170
+ <IconCard name="CloseIcon"><CloseIcon /></IconCard>
171
+ <IconCard name="UploadIcon"><UploadIcon /></IconCard>
172
+ </Section>
173
+
174
+ <Section title="Arrows & Chevrons">
175
+ <IconCard name="ArrowLeftIcon"><ArrowLeftIcon /></IconCard>
176
+ <IconCard name="ArrowRightIcon"><ArrowRightIcon /></IconCard>
177
+ <IconCard name="ArrowUpIcon"><ArrowUpIcon /></IconCard>
178
+ <IconCard name="ArrowDownIcon"><ArrowDownIcon /></IconCard>
179
+ <IconCard name="ArrowDownSmallIcon"><ArrowDownSmallIcon /></IconCard>
180
+ <IconCard name="ChevronLeftIcon"><ChevronLeftIcon /></IconCard>
181
+ <IconCard name="ChevronRightIcon"><ChevronRightIcon /></IconCard>
182
+ <IconCard name="TableHeaderArrowUpIcon"><TableHeaderArrowUpIcon /></IconCard>
183
+ <IconCard name="TableHeaderArrowDownIcon"><TableHeaderArrowDownIcon /></IconCard>
184
+ </Section>
185
+
186
+ <Section title="Form & Input">
187
+ <IconCard name="CalendarSmallIcon"><CalendarSmallIcon /></IconCard>
188
+ <IconCard name="ClockIcon"><ClockIcon /></IconCard>
189
+ <IconCard name="InfoIcon"><InfoIcon /></IconCard>
190
+ <IconCard name="EllipsisIcon"><EllipsisIcon /></IconCard>
191
+ <IconCard name="CircleIcon"><CircleIcon /></IconCard>
192
+ <IconCard name="GripVerticalIcon"><GripVerticalIcon /></IconCard>
193
+ <IconCard name="SlidersIcon"><SlidersIcon /></IconCard>
194
+ <IconCard name="SelectCheckIcon"><SelectCheckIcon /></IconCard>
195
+ <IconCard name="ToggleCheckIcon"><ToggleCheckIcon /></IconCard>
196
+ <IconCard name="ToggleCrossIcon"><ToggleCrossIcon /></IconCard>
197
+ </Section>
198
+
199
+ <Section title="Users">
200
+ <IconCard name="UserAddIcon"><UserAddIcon /></IconCard>
201
+ <IconCard name="UserImportIcon"><UserImportIcon /></IconCard>
202
+ <IconCard name="UserGroupIcon"><UserGroupIcon /></IconCard>
203
+ <IconCard name="ProviderPlusIcon"><ProviderPlusIcon /></IconCard>
204
+ </Section>
205
+
206
+ <Section title="Status & Feedback">
207
+ <IconCard name="CheckCircleIcon"><CheckCircleIcon /></IconCard>
208
+ <IconCard name="XCircleIcon"><XCircleIcon /></IconCard>
209
+ <IconCard name="WarningTriangleIcon"><WarningTriangleIcon /></IconCard>
210
+ <IconCard name="SecurityIcon"><SecurityIcon /></IconCard>
211
+ </Section>
212
+
213
+ <Section title="Trends">
214
+ <IconCard name="TrendUpIcon"><TrendUpIcon /></IconCard>
215
+ <IconCard name="TrendDownIcon"><TrendDownIcon /></IconCard>
216
+ <IconCard name="TrendSteadyIcon"><TrendSteadyIcon /></IconCard>
217
+ <IconCard name="TrendUpSmallIcon"><TrendUpSmallIcon /></IconCard>
218
+ <IconCard name="TrendDownSmallIcon"><TrendDownSmallIcon /></IconCard>
219
+ <IconCard name="TrendSteadySmallIcon"><TrendSteadySmallIcon /></IconCard>
220
+ </Section>
221
+
222
+ <Section title="NPS">
223
+ <IconCard name="NPSHappyIcon"><NPSHappyIcon /></IconCard>
224
+ <IconCard name="NPSNeutralIcon"><NPSNeutralIcon /></IconCard>
225
+ <IconCard name="NPSSadIcon"><NPSSadIcon /></IconCard>
226
+ <IconCard name="NPSHappyFaceIcon"><NPSHappyFaceIcon /></IconCard>
227
+ <IconCard name="NPSNeutralFaceIcon"><NPSNeutralFaceIcon /></IconCard>
228
+ <IconCard name="NPSSadFaceIcon"><NPSSadFaceIcon /></IconCard>
229
+ </Section>
230
+
231
+ <Section title="Auth & Branding">
232
+ <IconCard name="NewPasswordIcon"><NewPasswordIcon /></IconCard>
233
+ <IconCard name="PasswordRequirementIcon"><PasswordRequirementIcon met={false} /></IconCard>
234
+ <IconCard name="PasswordRequirementIcon (met)"><PasswordRequirementIcon met /></IconCard>
235
+ <IconCard name="VerifyEmailIcon"><VerifyEmailIcon /></IconCard>
236
+ <IconCard name="PasswordTypeIcon"><PasswordTypeIcon /></IconCard>
237
+ <IconCard name="BookedLogo"><BookedLogo /></IconCard>
238
+ </Section>
239
+
240
+ <Section title="Empty States">
241
+ <IconCard name="AnalyticsEmptyIcon"><AnalyticsEmptyIcon /></IconCard>
242
+ <IconCard name="PaymentsEmptyIcon"><PaymentsEmptyIcon /></IconCard>
243
+ <IconCard name="ReportsEmptyIcon"><ReportsEmptyIcon /></IconCard>
244
+ </Section>
245
+
246
+ </div>
247
+ )
248
+
249
+ AllIcons.story = {
250
+ parameters: {
251
+ info: 'All v2 icons in the design system',
252
+ },
253
+ }
package/src/v2/index.ts CHANGED
@@ -53,7 +53,11 @@ export type { UserPanelProps } from './components/UserPanel'
53
53
  export { ZoneCard, ZoneContainer, ZoneHeader, ResourceRow, AddResourceButton } from './components/ZoneCard'
54
54
  export type { ZoneCardProps, ZoneResource, ZoneContainerProps, DragHandleProps, ZoneHeaderProps, ResourceRowProps, ResourceRowLabels, AddResourceButtonProps } from './components/ZoneCard'
55
55
 
56
- // ZonesResources Page
56
+ // SettingsSubPage (generic settings sub-page layout)
57
+ export { SettingsSubPage } from './pages/SettingsSubPage'
58
+ export type { SettingsSubPageProps } from './pages/SettingsSubPage'
59
+
60
+ // ZonesResources Page (deprecated — use SettingsSubPage)
57
61
  export { ZonesResourcesPage } from './pages/ZonesResources'
58
62
  export type { ZonesResourcesPageProps } from './pages/ZonesResources'
59
63