@licklist/design 0.78.43 → 0.78.45

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 (132) hide show
  1. package/.yarnrc.yml +5 -0
  2. package/dist/custom-fields/constants.d.ts +9 -8
  3. package/dist/custom-fields/constants.d.ts.map +1 -1
  4. package/dist/events/event-venue-map/utils/index.d.ts +1 -1
  5. package/dist/events/event-venue-map/utils/index.d.ts.map +1 -1
  6. package/dist/iframe/event/event-venue-map/IframeEventVenueMap.d.ts +3 -3
  7. package/dist/iframe/order-process/components/BookingSummary/utils/index.d.ts +1 -1
  8. package/dist/iframe/order-process/components/BookingSummary/utils/index.d.ts.map +1 -1
  9. package/dist/iframe/payment/order-items-table/hooks/useTableData.d.ts +5 -15
  10. package/dist/iframe/payment/order-items-table/hooks/useTableData.d.ts.map +1 -1
  11. package/dist/iframe/payment/order-items-table/utils/index.d.ts +4 -4
  12. package/dist/iframe/payment/order-items-table/utils/index.d.ts.map +1 -1
  13. package/dist/index.d.ts +1 -2
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +1 -1
  16. package/dist/product-set/form/SelectCategoryModal.d.ts +5 -5
  17. package/dist/product-set/utils/index.d.ts +12 -12
  18. package/dist/sales/coupon/utils/index.d.ts +2 -2
  19. package/dist/static/date-range-input/DateRangeInput.d.ts.map +1 -1
  20. package/dist/v2/components/InputCheckbox/InputCheckbox.scss.js +1 -1
  21. package/dist/v2/components/Tooltip/Tooltip.d.ts +0 -1
  22. package/dist/v2/components/Tooltip/Tooltip.d.ts.map +1 -1
  23. package/dist/v2/components/ZoneCard/ZoneCard.scss.js +1 -1
  24. package/dist/v2/components/index.d.ts +1 -1
  25. package/dist/v2/components/index.d.ts.map +1 -1
  26. package/dist/v2/dashboard-analytics/blog-posts/index.d.ts +1 -1
  27. package/dist/v2/dashboard-analytics/blog-posts/index.d.ts.map +1 -1
  28. package/dist/v2/dashboard-analytics/chart/Chart.d.ts.map +1 -1
  29. package/dist/v2/dashboard-analytics/chart/Chart.js +3 -2
  30. package/dist/v2/icons/index.d.ts +14 -0
  31. package/dist/v2/icons/index.d.ts.map +1 -1
  32. package/dist/v2/icons/index.js +47 -1
  33. package/dist/v2/index.d.ts +2 -0
  34. package/dist/v2/index.d.ts.map +1 -1
  35. package/dist/v2/navigation/DashboardLayout/DashboardLayout.js +1 -1
  36. package/dist/v2/navigation/DashboardLayout/TopNavigation.d.ts.map +1 -1
  37. package/dist/v2/navigation/FigmasSideBar/FigmasSideBar.d.ts.map +1 -1
  38. package/dist/v2/navigation/config.d.ts.map +1 -1
  39. package/dist/v2/pages/SettingsSubPage/SettingsSubPage.d.ts +12 -0
  40. package/dist/v2/pages/SettingsSubPage/SettingsSubPage.d.ts.map +1 -0
  41. package/dist/v2/pages/SettingsSubPage/index.d.ts +3 -0
  42. package/dist/v2/pages/SettingsSubPage/index.d.ts.map +1 -0
  43. package/dist/v2/pages/auth/AuthLayout/AuthLayout.d.ts +14 -0
  44. package/dist/v2/pages/auth/AuthLayout/AuthLayout.d.ts.map +1 -0
  45. package/dist/v2/pages/auth/AuthLayout/index.d.ts +3 -0
  46. package/dist/v2/pages/auth/AuthLayout/index.d.ts.map +1 -0
  47. package/dist/v2/pages/auth/CreatePassword/CreatePasswordPage.d.ts +10 -0
  48. package/dist/v2/pages/auth/CreatePassword/CreatePasswordPage.d.ts.map +1 -0
  49. package/dist/v2/pages/auth/CreatePassword/index.d.ts +3 -0
  50. package/dist/v2/pages/auth/CreatePassword/index.d.ts.map +1 -0
  51. package/dist/v2/pages/auth/Login/LoginPage.d.ts +11 -0
  52. package/dist/v2/pages/auth/Login/LoginPage.d.ts.map +1 -0
  53. package/dist/v2/pages/auth/Login/index.d.ts +3 -0
  54. package/dist/v2/pages/auth/Login/index.d.ts.map +1 -0
  55. package/dist/v2/pages/auth/ResetPassword/ResetPasswordPage.d.ts +12 -0
  56. package/dist/v2/pages/auth/ResetPassword/ResetPasswordPage.d.ts.map +1 -0
  57. package/dist/v2/pages/auth/ResetPassword/index.d.ts +3 -0
  58. package/dist/v2/pages/auth/ResetPassword/index.d.ts.map +1 -0
  59. package/dist/v2/pages/auth/VerifyEmail/VerifyEmailPage.d.ts +9 -0
  60. package/dist/v2/pages/auth/VerifyEmail/VerifyEmailPage.d.ts.map +1 -0
  61. package/dist/v2/pages/auth/VerifyEmail/index.d.ts +3 -0
  62. package/dist/v2/pages/auth/VerifyEmail/index.d.ts.map +1 -0
  63. package/dist/v2/pages/auth/index.d.ts +11 -0
  64. package/dist/v2/pages/auth/index.d.ts.map +1 -0
  65. package/dist/v2/styles/common.scss +7 -0
  66. package/dist/v2/styles/components/Button.scss +199 -0
  67. package/dist/v2/styles/form/Layout.scss +15 -0
  68. package/dist/v2/styles/form/NewInput.scss +271 -0
  69. package/dist/v2/styles/form/NewInput.scss.js +1 -1
  70. package/dist/v2/styles/index.scss +6 -0
  71. package/dist/v2/styles/navigation/Navigation.scss +17 -0
  72. package/dist/v2/styles/navigation/NavigationItem.scss +86 -0
  73. package/dist/v2/styles/navigation/NavigationSection.scss +26 -0
  74. package/dist/v2/styles/navigation/_index.scss +9 -0
  75. package/dist/v2/styles/tokens/_colors.scss +562 -0
  76. package/dist/v2/styles/tokens/_sizes.scss +125 -0
  77. package/dist/v2/styles/tokens/_status.scss +108 -0
  78. package/dist/v2/styles/tokens/_typography.scss +146 -0
  79. package/dist/v2/types/navigation.d.ts +2 -0
  80. package/dist/v2/types/navigation.d.ts.map +1 -1
  81. package/dist/virtualized/components/VirtualizedGrid.d.ts.map +1 -1
  82. package/dist/virtualized/components/VirtualizedWindowScroller.d.ts.map +1 -1
  83. package/dist/virtualized/components/VirtualizedWindowScroller.js +3 -2
  84. package/package.json +4 -4
  85. package/rollup.config.js +7 -0
  86. package/src/auth/Authorizer.tsx +1 -1
  87. package/src/index.ts +1 -2
  88. package/src/static/date-range-input/DateRangeInput.tsx +1 -0
  89. package/src/v2/components/InputCheckbox/InputCheckbox.scss +3 -3
  90. package/src/v2/components/NPSScore/NPSScore.tsx +2 -2
  91. package/src/v2/components/Tooltip/Tooltip.tsx +1 -2
  92. package/src/v2/components/ZoneCard/ZoneCard.scss +78 -0
  93. package/src/v2/components/index.ts +1 -0
  94. package/src/v2/dashboard-analytics/blog-posts/index.ts +1 -1
  95. package/src/v2/dashboard-analytics/chart/Chart.tsx +36 -31
  96. package/src/v2/dashboard-analytics/dashboard/Dashboard.tsx +1 -1
  97. package/src/v2/icons/Icons.stories.tsx +253 -0
  98. package/src/v2/icons/index.tsx +24 -0
  99. package/src/v2/index.ts +4 -0
  100. package/src/v2/navigation/DashboardLayout/DashboardLayout.tsx +1 -1
  101. package/src/v2/navigation/DashboardLayout/TopNavigation.tsx +9 -6
  102. package/src/v2/navigation/FigmasAdminSideBar/FigmasAdminSideBar.tsx +1 -1
  103. package/src/v2/navigation/FigmasSideBar/FigmasSideBar.tsx +6 -4
  104. package/src/v2/navigation/config.tsx +0 -1
  105. package/src/v2/pages/SettingsSubPage/SettingsSubPage.scss +43 -0
  106. package/src/v2/pages/SettingsSubPage/SettingsSubPage.tsx +49 -0
  107. package/src/v2/pages/SettingsSubPage/index.ts +2 -0
  108. package/src/v2/pages/auth/AuthLayout/AuthLayout.scss +140 -0
  109. package/src/v2/pages/auth/AuthLayout/AuthLayout.tsx +61 -0
  110. package/src/v2/pages/auth/AuthLayout/index.ts +2 -0
  111. package/src/v2/pages/auth/CreatePassword/CreatePasswordPage.scss +149 -0
  112. package/src/v2/pages/auth/CreatePassword/CreatePasswordPage.stories.tsx +45 -0
  113. package/src/v2/pages/auth/CreatePassword/CreatePasswordPage.tsx +179 -0
  114. package/src/v2/pages/auth/CreatePassword/index.ts +2 -0
  115. package/src/v2/pages/auth/Login/LoginPage.scss +49 -0
  116. package/src/v2/pages/auth/Login/LoginPage.stories.tsx +45 -0
  117. package/src/v2/pages/auth/Login/LoginPage.tsx +98 -0
  118. package/src/v2/pages/auth/Login/index.ts +2 -0
  119. package/src/v2/pages/auth/ResetPassword/ResetPasswordPage.scss +84 -0
  120. package/src/v2/pages/auth/ResetPassword/ResetPasswordPage.stories.tsx +53 -0
  121. package/src/v2/pages/auth/ResetPassword/ResetPasswordPage.tsx +109 -0
  122. package/src/v2/pages/auth/ResetPassword/index.ts +2 -0
  123. package/src/v2/pages/auth/VerifyEmail/VerifyEmailPage.scss +72 -0
  124. package/src/v2/pages/auth/VerifyEmail/VerifyEmailPage.stories.tsx +41 -0
  125. package/src/v2/pages/auth/VerifyEmail/VerifyEmailPage.tsx +110 -0
  126. package/src/v2/pages/auth/VerifyEmail/index.ts +2 -0
  127. package/src/v2/pages/auth/index.ts +14 -0
  128. package/src/v2/styles/form/NewInput.scss +12 -0
  129. package/src/v2/types/navigation.ts +3 -0
  130. package/src/virtualized/components/VirtualizedGrid.tsx +1 -0
  131. package/src/virtualized/components/VirtualizedWindowScroller.tsx +1 -0
  132. package/tsconfig.build.tsbuildinfo +1 -0
@@ -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
+ }
@@ -211,6 +211,16 @@ export const GripVerticalIcon = ({ width = 16, height = 16 }: { width?: number;
211
211
  </svg>
212
212
  )
213
213
 
214
+ export const ReorderIcon = ({ width = 16, height = 16 }: { width?: number; height?: number } = {}) => (
215
+ <svg width={width} height={height} viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
216
+ <rect x="7" y="11" width="18" height="2" rx="1" fill="currentColor"/>
217
+ <rect x="7" y="15" width="18" height="2" rx="1" fill="currentColor"/>
218
+ <rect x="7" y="19" width="18" height="2" rx="1" fill="currentColor"/>
219
+ <path d="M19.9325 8H12.0675C11.6436 8 11.412 7.50557 11.6834 7.17991L15.6159 2.46093C15.8158 2.22106 16.1842 2.22106 16.3841 2.46093L20.3166 7.17991C20.588 7.50557 20.3564 8 19.9325 8Z" fill="currentColor" fillOpacity="0.5"/>
220
+ <path d="M12.0675 24L19.9325 24C20.3564 24 20.588 24.4944 20.3166 24.8201L16.3841 29.5391C16.1842 29.7789 15.8158 29.7789 15.6159 29.5391L11.6834 24.8201C11.412 24.4944 11.6436 24 12.0675 24Z" fill="currentColor" fillOpacity="0.5"/>
221
+ </svg>
222
+ )
223
+
214
224
  export const PlusIcon = ({ width = 16, height = 16 }: { width?: number; height?: number } = {}) => (
215
225
  <svg width={width} height={height} viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
216
226
  <path d="M17 14.5H24.5V17.5H17V25H14V17.5H6.5V14.5H14V7H17V14.5Z" fill="currentColor"/>
@@ -378,6 +388,20 @@ export const SettingsPageDashboardIcon = ({ size = 24, className = '' }: { size?
378
388
  </svg>
379
389
  )
380
390
 
391
+ // Logo icons (used by auth pages)
392
+ export const LogoDesktop1 = ({ width = 18, height = 18, className = '' }: { width?: number; height?: number; className?: string } = {}) => (
393
+ <svg width={width} height={height} viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg" className={className}>
394
+ <path d="M9 1L11.5 5.5L16.5 6L13 9L14 14L9 11.5L4 14L5 9L1.5 6L6.5 5.5L9 1Z" fill="var(--fills-main-fill-primary, #14215A)" stroke="var(--fills-main-fill-primary, #14215A)" strokeWidth="0.5" />
395
+ </svg>
396
+ )
397
+
398
+ export const LogoDesktop2 = ({ width = 112, height = 29, className = '' }: { width?: number; height?: number; className?: string } = {}) => (
399
+ <svg width={width} height={height} viewBox="0 0 112 29" fill="none" xmlns="http://www.w3.org/2000/svg" className={className}>
400
+ <rect x="0" y="0" width="112" height="29" rx="4" fill="var(--surfaces-main-background-primary, #ffffff)" stroke="var(--borders-main-border-primary, #E8E9EF)" strokeWidth="1" />
401
+ <text x="56" y="18" textAnchor="middle" fontFamily="Geist" fontSize="11" fontWeight="600" fill="var(--labels-main-label-primary, #121E52)">Booked it</text>
402
+ </svg>
403
+ )
404
+
381
405
  export const SettingsPageWaiversIcon = ({ size = 24, className = '', ...props }: React.SVGProps<SVGSVGElement> & { size?: number; className?: string } = {}) => (
382
406
  <svg width={size} height={size} viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" className={className} {...props}>
383
407
  <path d="M29.3657 27.8354C31.4117 26.4405 34.0772 25.7503 37.729 26.1685L38.4731 26.2661L38.6235 26.2974C39.3599 26.4857 39.8491 27.2053 39.7339 27.9731C39.6184 28.741 38.9395 29.2849 38.1802 29.2485L38.0278 29.2339L37.395 29.1489C34.308 28.7933 32.394 29.4019 31.0562 30.314C29.5595 31.3345 28.5809 32.8586 27.5396 34.6099C26.5775 36.2279 25.4604 38.2594 23.6812 39.4409C21.8382 40.6643 19.5533 40.8605 16.5776 39.8687L15.9731 39.6548L15.8325 39.5933C15.1516 39.2557 14.8228 38.4502 15.0952 37.7231C15.3681 36.996 16.1461 36.6045 16.8813 36.7983L17.0278 36.8452L17.5229 37.021C19.9234 37.8245 21.1853 37.498 22.0229 36.9419C23.1024 36.2249 23.8614 34.9277 24.9614 33.0776C25.9824 31.3606 27.2536 29.2757 29.3657 27.8354ZM22.0132 6.82178C22.3878 6.08288 23.2909 5.78703 24.0298 6.16162L30.855 9.62256L30.9878 9.69775C31.6279 10.1082 31.8654 10.9454 31.5142 11.6382L21.6284 31.1382C21.5083 31.375 21.327 31.5762 21.104 31.7202L14.7261 35.8394C14.2781 36.1287 13.7106 36.1585 13.2349 35.9175C12.759 35.6762 12.4459 35.2001 12.4146 34.6675L11.9673 27.0884C11.9517 26.8234 12.0075 26.5586 12.1274 26.3218L22.0132 6.82178ZM14.9878 27.3149L15.2583 31.9224L19.1372 29.4185L28.1606 11.6196L24.0112 9.51611L14.9878 27.3149Z" fill="currentColor"/>
package/src/v2/index.ts CHANGED
@@ -151,6 +151,10 @@ export type { AuthCredentials } from './types/navigation'
151
151
  export { SettingsPage, SettingsTabs, SidebarCustomisation, defaultSidebarItems, SidebarNavItem } from './pages/Settings'
152
152
  export type { SettingsPageProps, SettingsTabsProps, SettingsTab, SidebarCustomisationProps, SidebarItem, SidebarNavItemProps } from './pages/Settings'
153
153
 
154
+ // Auth Pages
155
+ export { AuthLayout, LoginPage, ResetPasswordPage, CreatePasswordPage } from './pages/auth'
156
+ export type { AuthLayoutProps, LoginPageProps, ResetPasswordPageProps, CreatePasswordPageProps } from './pages/auth'
157
+
154
158
  // ============================================================================
155
159
  // Design Tokens
156
160
  // ============================================================================
@@ -157,7 +157,7 @@ export const DashboardLayout: React.FC<DashboardLayoutProps> = ({
157
157
  providerType={providerType}
158
158
  activePath={activePath}
159
159
  onNavigation={onNavigation}
160
- showBackToAdmin={hasAdminAccess && destination !== 'admin'}
160
+ showBackToAdmin={hasAdminAccess}
161
161
  onBackToAdmin={() => onNavigation?.('/admin')}
162
162
  navItems={navItems}
163
163
  />
@@ -43,7 +43,8 @@ const SidebarCollapsedIcon = () => (
43
43
  <path d="M29 10C30.6569 10 32 11.3431 32 13V27C32 28.6569 30.6569 30 29 30H11C9.34315 30 8 28.6569 8 27V13C8 11.3431 9.34315 10 11 10H29ZM14 28H29C29.5523 28 30 27.5523 30 27V13C30 12.4477 29.5523 12 29 12H14V28ZM11 12C10.4477 12 10 12.4477 10 13V27C10 27.5523 10.4477 28 11 28H12V12H11Z" fill="var(--fills-main-fill-secondary, #626A90)"/>
44
44
  </svg>
45
45
  )
46
- const InboxIcon = ({ active, hovered }: { active?: boolean; hovered?: boolean }) => (
46
+ // @ts-ignore kept for future use
47
+ const _InboxIcon = ({ active, hovered }: { active?: boolean; hovered?: boolean }) => (
47
48
  <svg width="32" height="32" viewBox="0 0 32 32" fill="none">
48
49
  {(hovered && !active) && (
49
50
  <path d="M11 10H21L22.5 18H19L18 20L16 20.5L14 20L13 18H9.5L11 10Z" fill="var(--fills-main-fill-secondary, #626A90)" fillOpacity="0.3"/>
@@ -54,7 +55,8 @@ const InboxIcon = ({ active, hovered }: { active?: boolean; hovered?: boolean })
54
55
  <path d="M8.02381 7.78307C8.12549 7.32553 8.5313 7 9 7H23C23.4687 7 23.8745 7.32553 23.9762 7.78307L25.9762 16.7831C25.992 16.8543 26 16.927 26 17V24C26 24.5523 25.5523 25 25 25H7C6.44772 25 6 24.5523 6 24V17C6 16.927 6.00799 16.8543 6.02381 16.7831L8.02381 7.78307ZM9.80217 9L8.24662 16H13C13 17.6569 14.3431 19 16 19C17.6569 19 19 17.6569 19 16H23.7534L22.1978 9H9.80217ZM20.584 18C19.8124 19.7659 18.0503 21 16 21C13.9497 21 12.1876 19.7659 11.416 18H8V23H24V18H20.584Z" fill={active ? 'white' : 'var(--fills-main-fill-secondary, #626A90)'}/>
55
56
  </svg>
56
57
  )
57
- const NotificationIcon = ({ active, hovered }: { active?: boolean; hovered?: boolean }) => {
58
+ // @ts-ignore kept for future use
59
+ const _NotificationIcon = ({ active, hovered }: { active?: boolean; hovered?: boolean }) => {
58
60
  if (active) {
59
61
  return (
60
62
  <svg width="32" height="32" viewBox="0 0 32 32" fill="none">
@@ -135,10 +137,10 @@ export const TopNavigation: React.FC<TopNavigationProps> = ({
135
137
  userAvatarUrl,
136
138
  userId,
137
139
  userRole,
138
- inboxCount = 0,
139
- notificationCount = 0,
140
+ inboxCount: _inboxCount = 0,
141
+ notificationCount: _notificationCount = 0,
140
142
  onUserClick,
141
- onInboxClick,
143
+ onInboxClick: _onInboxClick,
142
144
  onNotificationClick,
143
145
  onHelpClick,
144
146
  onProfileClick,
@@ -153,7 +155,8 @@ export const TopNavigation: React.FC<TopNavigationProps> = ({
153
155
  const handleUserClick = () => {
154
156
  onUserClick?.()
155
157
  }
156
- const handleNotificationClick = () => {
158
+ // @ts-ignore kept for future use
159
+ const _handleNotificationClick = () => {
157
160
  setIsNotificationActive(!isNotificationActive)
158
161
  onNotificationClick?.()
159
162
  }
@@ -8,7 +8,7 @@ export interface FigmasAdminSideBarProps {
8
8
 
9
9
  export const FigmasAdminSideBar: React.FC<FigmasAdminSideBarProps> = ({
10
10
  expanded = true,
11
- onToggle,
11
+ onToggle: _onToggle,
12
12
  }) => {
13
13
  const homeIcon = (
14
14
  <div className="figmas-admin-sidebar__icon">
@@ -26,18 +26,20 @@ export const FigmasSideBar: React.FC<FigmasSideBarProps> = ({
26
26
  venueName = "Sharky's Soft Play",
27
27
  venueId = "123",
28
28
  venueImage,
29
- onToggle,
29
+ onToggle: _onToggle,
30
30
  navigationItems,
31
- onNavigation,
31
+ onNavigation: _onNavigation,
32
32
  activePath,
33
33
  authCredentials,
34
34
  }) => {
35
35
  // Filter navigation items based on auth if provided
36
- const accessibleItems = authCredentials && navigationItems
36
+ // @ts-ignore kept for future use
37
+ const _accessibleItems = authCredentials && navigationItems
37
38
  ? navigationItems.filter(item => useCanAccess(authCredentials, item))
38
39
  : navigationItems || []
39
40
 
40
- const isActive = (path: string) => activePath === path
41
+ // @ts-ignore kept for future use
42
+ const _isActive = (path: string) => activePath === path
41
43
  const icon = (
42
44
  <div className="figmas-sidebar__icon">
43
45
  <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
@@ -1,4 +1,3 @@
1
- import React from 'react'
2
1
  import type { NavigationItem } from '../types/navigation'
3
2
 
4
3
  // Icon components (these would be your actual icon imports)
@@ -0,0 +1,43 @@
1
+ .settings-sub-page {
2
+ display: flex;
3
+ flex-direction: column;
4
+ align-self: stretch;
5
+
6
+ &__back {
7
+ padding: 24px 32px 0 0;
8
+ align-self: flex-start;
9
+
10
+ .ghost-button {
11
+ color: var(--fill-action, #5D5BF4);
12
+ border-color: var(--borders-main-border-primary, #E8E9EF);
13
+
14
+ &:not(.active):hover:not(:disabled) {
15
+ background-color: var(--surface-action-soft, #F4F4FE);
16
+ color: var(--fill-action, #5D5BF4);
17
+ }
18
+
19
+ .ghost-button__icon svg {
20
+ width: 24px;
21
+ height: 24px;
22
+ }
23
+ }
24
+
25
+ @media (max-width: 768px) {
26
+ padding: 16px 16px 0 0;
27
+ }
28
+ }
29
+
30
+ &__content {
31
+ padding: 24px 0;
32
+
33
+ @media (max-width: 768px) {
34
+ padding: 0;
35
+ }
36
+ }
37
+
38
+ &__action {
39
+ margin-bottom: 16px;
40
+ display: flex;
41
+ justify-content: flex-end;
42
+ }
43
+ }
@@ -0,0 +1,49 @@
1
+ import React from 'react'
2
+ import { GhostButton } from '../../components/Button'
3
+ import { NewPageHeader } from '../../components/NewPageHeader'
4
+ import { ArrowLeftIcon, PlusIcon } from '../../icons'
5
+ import './SettingsSubPage.scss'
6
+
7
+ export interface SettingsSubPageProps {
8
+ title?: string
9
+ backLabel?: string
10
+ onBack?: () => void
11
+ actionLabel?: string
12
+ onAction?: () => void
13
+ children?: React.ReactNode
14
+ }
15
+
16
+ export const SettingsSubPage: React.FC<SettingsSubPageProps> = ({
17
+ title = '',
18
+ backLabel = 'Back to Settings',
19
+ onBack,
20
+ actionLabel,
21
+ onAction,
22
+ children,
23
+ }) => {
24
+ return (
25
+ <div className="settings-sub-page">
26
+ {onBack && (
27
+ <div className="settings-sub-page__back">
28
+ <GhostButton onClick={onBack} icon={<ArrowLeftIcon />}>
29
+ {backLabel}
30
+ </GhostButton>
31
+ </div>
32
+ )}
33
+ <NewPageHeader
34
+ title={title}
35
+ showDivider
36
+ />
37
+ <div className="settings-sub-page__content">
38
+ {onAction && actionLabel && (
39
+ <div className="settings-sub-page__action">
40
+ <GhostButton onClick={onAction} icon={<PlusIcon width={16} height={16} />}>
41
+ {actionLabel}
42
+ </GhostButton>
43
+ </div>
44
+ )}
45
+ {children}
46
+ </div>
47
+ </div>
48
+ )
49
+ }
@@ -0,0 +1,2 @@
1
+ export { SettingsSubPage } from './SettingsSubPage'
2
+ export type { SettingsSubPageProps } from './SettingsSubPage'
@@ -0,0 +1,140 @@
1
+ .auth-layout {
2
+ position: relative;
3
+ width: 100%;
4
+ min-height: 100vh;
5
+ display: flex;
6
+ flex-direction: column;
7
+ align-items: center;
8
+ justify-content: flex-start;
9
+ background-color: var(--surface-secondary);
10
+ padding: 0 16px;
11
+
12
+ &__alert {
13
+ width: 846px;
14
+ max-width: 100%;
15
+ margin-top: 24px;
16
+ position: relative;
17
+ z-index: 1;
18
+ }
19
+
20
+ &__bg-decoration {
21
+ position: fixed;
22
+ top: 0;
23
+ left: 0;
24
+ width: 489px;
25
+ height: 588px;
26
+ pointer-events: none;
27
+ z-index: 0;
28
+ }
29
+
30
+ &__card {
31
+ position: relative;
32
+ z-index: 10;
33
+ width: 846px;
34
+ max-width: 100%;
35
+ min-height: 400px;
36
+ background-color: var(--surface-primary);
37
+ border-radius: 16px;
38
+ box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
39
+ overflow: hidden;
40
+ margin-top: 80px;
41
+
42
+ @media (max-width: 768px) {
43
+ margin-top: 40px;
44
+ }
45
+ }
46
+
47
+ &__alert + &__card {
48
+ margin-top: 16px;
49
+ }
50
+
51
+ &__header {
52
+ display: flex;
53
+ align-items: center;
54
+ justify-content: space-between;
55
+ padding: 16px;
56
+ border-bottom: 1px solid var(--border-primary);
57
+
58
+ .new-badge {
59
+ padding: 6px 10px;
60
+ font-size: 11px;
61
+ }
62
+ }
63
+
64
+ &__body {
65
+ padding: 42px;
66
+
67
+ @media (max-width: 768px) {
68
+ padding: 20px;
69
+ }
70
+ }
71
+
72
+ &__content {
73
+ display: flex;
74
+ width: 100%;
75
+ gap: 64px;
76
+ flex-wrap: wrap;
77
+
78
+ @media (max-width: 768px) {
79
+ gap: 32px;
80
+ }
81
+ }
82
+
83
+ &__info {
84
+ min-width: 240px;
85
+ flex: 1;
86
+ flex-shrink: 0;
87
+ flex-basis: 0;
88
+ max-width: 260px;
89
+ color: var(--label-primary);
90
+ }
91
+
92
+ &__icon {
93
+ width: 64px;
94
+ height: 64px;
95
+ color: var(--fill-primary);
96
+
97
+ svg {
98
+ width: 100%;
99
+ height: 100%;
100
+ }
101
+ }
102
+
103
+ &__title {
104
+ font-family: var(--font-family-sans, 'Geist', sans-serif);
105
+ font-size: 32px;
106
+ font-weight: 700;
107
+ line-height: 1;
108
+ color: var(--label-primary);
109
+ margin: 8px 0 0;
110
+ padding: 0;
111
+ }
112
+
113
+ &__subtitle {
114
+ font-family: var(--font-family-sans, 'Geist', sans-serif);
115
+ font-size: 18px;
116
+ font-weight: 400;
117
+ line-height: 1;
118
+ color: var(--label-secondary);
119
+ margin: 16px 0 0;
120
+ padding: 0;
121
+
122
+ @media (max-width: 768px) {
123
+ margin-top: 4px;
124
+ }
125
+ }
126
+
127
+ &__form-area {
128
+ display: flex;
129
+ min-width: 240px;
130
+ flex-direction: column;
131
+ align-items: stretch;
132
+ flex: 1;
133
+ flex-shrink: 0;
134
+ flex-basis: 0;
135
+
136
+ @media (max-width: 768px) {
137
+ max-width: 100%;
138
+ }
139
+ }
140
+ }