@licklist/design 0.78.44 → 0.78.46

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 (113) hide show
  1. package/dist/custom-fields/constants.d.ts +9 -8
  2. package/dist/custom-fields/constants.d.ts.map +1 -1
  3. package/dist/events/event-venue-map/utils/index.d.ts +1 -1
  4. package/dist/events/event-venue-map/utils/index.d.ts.map +1 -1
  5. package/dist/iframe/event/event-venue-map/IframeEventVenueMap.d.ts +3 -3
  6. package/dist/iframe/order-process/components/BookingSummary/utils/index.d.ts +1 -1
  7. package/dist/iframe/order-process/components/BookingSummary/utils/index.d.ts.map +1 -1
  8. package/dist/iframe/payment/order-items-table/hooks/useTableData.d.ts +5 -15
  9. package/dist/iframe/payment/order-items-table/hooks/useTableData.d.ts.map +1 -1
  10. package/dist/iframe/payment/order-items-table/utils/index.d.ts +4 -4
  11. package/dist/iframe/payment/order-items-table/utils/index.d.ts.map +1 -1
  12. package/dist/index.d.ts +2 -0
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +4 -0
  15. package/dist/product-set/form/SelectCategoryModal.d.ts +5 -5
  16. package/dist/product-set/utils/index.d.ts +12 -12
  17. package/dist/sales/coupon/utils/index.d.ts +2 -2
  18. package/dist/v2/components/PeriodCard/PeriodCard.d.ts +66 -0
  19. package/dist/v2/components/PeriodCard/PeriodCard.d.ts.map +1 -0
  20. package/dist/v2/components/PeriodCard/PeriodCard.js +351 -0
  21. package/dist/v2/components/PeriodCard/PeriodCard.scss.js +6 -0
  22. package/dist/v2/components/PeriodCard/index.d.ts +3 -0
  23. package/dist/v2/components/PeriodCard/index.d.ts.map +1 -0
  24. package/dist/v2/components/ReorderRow/ReorderRow.d.ts +24 -0
  25. package/dist/v2/components/ReorderRow/ReorderRow.d.ts.map +1 -0
  26. package/dist/v2/components/ReorderRow/ReorderRow.js +109 -0
  27. package/dist/v2/components/ReorderRow/ReorderRow.scss.js +6 -0
  28. package/dist/v2/components/ReorderRow/index.d.ts +3 -0
  29. package/dist/v2/components/ReorderRow/index.d.ts.map +1 -0
  30. package/dist/v2/components/index.d.ts +4 -0
  31. package/dist/v2/components/index.d.ts.map +1 -1
  32. package/dist/v2/icons/index.d.ts +10 -0
  33. package/dist/v2/icons/index.d.ts.map +1 -1
  34. package/dist/v2/index.d.ts +8 -0
  35. package/dist/v2/index.d.ts.map +1 -1
  36. package/dist/v2/pages/DeleteEntity/DeleteEntityPage.d.ts +29 -0
  37. package/dist/v2/pages/DeleteEntity/DeleteEntityPage.d.ts.map +1 -0
  38. package/dist/v2/pages/DeleteEntity/DeleteEntityPage.js +294 -0
  39. package/dist/v2/pages/DeleteEntity/DeleteEntityPage.scss.js +6 -0
  40. package/dist/v2/pages/DeleteEntity/index.d.ts +3 -0
  41. package/dist/v2/pages/DeleteEntity/index.d.ts.map +1 -0
  42. package/dist/v2/pages/Settings/components/SidebarCustomisation.js +2 -0
  43. package/dist/v2/pages/Settings/components/SidebarNavItem.js +2 -0
  44. package/dist/v2/pages/SettingsSubPage/SettingsSubPage.d.ts +12 -0
  45. package/dist/v2/pages/SettingsSubPage/SettingsSubPage.d.ts.map +1 -0
  46. package/dist/v2/pages/SettingsSubPage/SettingsSubPage.js +47 -0
  47. package/dist/v2/pages/SettingsSubPage/SettingsSubPage.scss.js +6 -0
  48. package/dist/v2/pages/SettingsSubPage/index.d.ts +3 -0
  49. package/dist/v2/pages/SettingsSubPage/index.d.ts.map +1 -0
  50. package/dist/v2/pages/auth/AuthLayout/AuthLayout.d.ts +14 -0
  51. package/dist/v2/pages/auth/AuthLayout/AuthLayout.d.ts.map +1 -0
  52. package/dist/v2/pages/auth/AuthLayout/index.d.ts +3 -0
  53. package/dist/v2/pages/auth/AuthLayout/index.d.ts.map +1 -0
  54. package/dist/v2/pages/auth/CreatePassword/CreatePasswordPage.d.ts +10 -0
  55. package/dist/v2/pages/auth/CreatePassword/CreatePasswordPage.d.ts.map +1 -0
  56. package/dist/v2/pages/auth/CreatePassword/index.d.ts +3 -0
  57. package/dist/v2/pages/auth/CreatePassword/index.d.ts.map +1 -0
  58. package/dist/v2/pages/auth/Login/LoginPage.d.ts +11 -0
  59. package/dist/v2/pages/auth/Login/LoginPage.d.ts.map +1 -0
  60. package/dist/v2/pages/auth/Login/index.d.ts +3 -0
  61. package/dist/v2/pages/auth/Login/index.d.ts.map +1 -0
  62. package/dist/v2/pages/auth/ResetPassword/ResetPasswordPage.d.ts +12 -0
  63. package/dist/v2/pages/auth/ResetPassword/ResetPasswordPage.d.ts.map +1 -0
  64. package/dist/v2/pages/auth/ResetPassword/index.d.ts +3 -0
  65. package/dist/v2/pages/auth/ResetPassword/index.d.ts.map +1 -0
  66. package/dist/v2/pages/auth/VerifyEmail/VerifyEmailPage.d.ts +9 -0
  67. package/dist/v2/pages/auth/VerifyEmail/VerifyEmailPage.d.ts.map +1 -0
  68. package/dist/v2/pages/auth/VerifyEmail/index.d.ts +3 -0
  69. package/dist/v2/pages/auth/VerifyEmail/index.d.ts.map +1 -0
  70. package/dist/v2/pages/auth/index.d.ts +11 -0
  71. package/dist/v2/pages/auth/index.d.ts.map +1 -0
  72. package/package.json +3 -3
  73. package/rollup.config.js +1 -0
  74. package/src/auth/Authorizer.tsx +1 -1
  75. package/src/index.ts +2 -0
  76. package/src/v2/components/PeriodCard/PeriodCard.scss +157 -0
  77. package/src/v2/components/PeriodCard/PeriodCard.stories.tsx +245 -0
  78. package/src/v2/components/PeriodCard/PeriodCard.tsx +350 -0
  79. package/src/v2/components/PeriodCard/index.ts +8 -0
  80. package/src/v2/components/ReorderRow/ReorderRow.scss +68 -0
  81. package/src/v2/components/ReorderRow/ReorderRow.stories.tsx +124 -0
  82. package/src/v2/components/ReorderRow/ReorderRow.tsx +88 -0
  83. package/src/v2/components/ReorderRow/index.ts +2 -0
  84. package/src/v2/components/index.ts +6 -0
  85. package/src/v2/icons/Icons.stories.tsx +253 -0
  86. package/src/v2/icons/index.tsx +14 -0
  87. package/src/v2/index.ts +17 -0
  88. package/src/v2/pages/DeleteEntity/DeleteEntityPage.scss +96 -0
  89. package/src/v2/pages/DeleteEntity/DeleteEntityPage.stories.tsx +83 -0
  90. package/src/v2/pages/DeleteEntity/DeleteEntityPage.tsx +120 -0
  91. package/src/v2/pages/DeleteEntity/index.ts +2 -0
  92. package/src/v2/pages/SettingsSubPage/SettingsSubPage.tsx +49 -0
  93. package/src/v2/pages/SettingsSubPage/index.ts +2 -0
  94. package/src/v2/pages/auth/AuthLayout/AuthLayout.scss +140 -0
  95. package/src/v2/pages/auth/AuthLayout/AuthLayout.tsx +61 -0
  96. package/src/v2/pages/auth/AuthLayout/index.ts +2 -0
  97. package/src/v2/pages/auth/CreatePassword/CreatePasswordPage.scss +149 -0
  98. package/src/v2/pages/auth/CreatePassword/CreatePasswordPage.stories.tsx +45 -0
  99. package/src/v2/pages/auth/CreatePassword/CreatePasswordPage.tsx +179 -0
  100. package/src/v2/pages/auth/CreatePassword/index.ts +2 -0
  101. package/src/v2/pages/auth/Login/LoginPage.scss +49 -0
  102. package/src/v2/pages/auth/Login/LoginPage.stories.tsx +45 -0
  103. package/src/v2/pages/auth/Login/LoginPage.tsx +98 -0
  104. package/src/v2/pages/auth/Login/index.ts +2 -0
  105. package/src/v2/pages/auth/ResetPassword/ResetPasswordPage.scss +84 -0
  106. package/src/v2/pages/auth/ResetPassword/ResetPasswordPage.stories.tsx +53 -0
  107. package/src/v2/pages/auth/ResetPassword/ResetPasswordPage.tsx +109 -0
  108. package/src/v2/pages/auth/ResetPassword/index.ts +2 -0
  109. package/src/v2/pages/auth/VerifyEmail/VerifyEmailPage.scss +72 -0
  110. package/src/v2/pages/auth/VerifyEmail/VerifyEmailPage.stories.tsx +41 -0
  111. package/src/v2/pages/auth/VerifyEmail/VerifyEmailPage.tsx +110 -0
  112. package/src/v2/pages/auth/VerifyEmail/index.ts +2 -0
  113. package/src/v2/pages/auth/index.ts +14 -0
@@ -34,7 +34,7 @@ function Authorizer(props: AuthorizerProps) {
34
34
 
35
35
  const matchedPathPatternUrls = useCallback(
36
36
  () =>
37
- Object.values(MATCH_ROUTE_PATTERNS)
37
+ (Object.values(MATCH_ROUTE_PATTERNS) as string[])
38
38
  .map((pathUrlPattern) =>
39
39
  matchPath(
40
40
  {
package/src/index.ts CHANGED
@@ -51,4 +51,6 @@ export * from './v2/dashboard-analytics'
51
51
  export * from './v2/navigation/DashboardLayout'
52
52
  export * from './v2/pages/Settings'
53
53
  export * from './v2/pages/ZonesResources'
54
+ export * from './v2/pages/SettingsSubPage'
55
+ export * from './v2/pages/DeleteEntity'
54
56
  export * from './v2/components'
@@ -0,0 +1,157 @@
1
+ .period-card {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: 16px;
5
+ padding: 16px;
6
+ border-radius: 8px;
7
+ background: var(--surface-secondary, #f5f6fa);
8
+
9
+ &__title-row {
10
+ display: flex;
11
+ align-items: center;
12
+ justify-content: space-between;
13
+ }
14
+
15
+ &__title {
16
+ font-family: var(--font-family-sans);
17
+ font-size: 16px;
18
+ font-weight: 600;
19
+ color: var(--labels-main-label-primary, #121e52);
20
+ }
21
+
22
+ &__header {
23
+ display: flex;
24
+ align-items: center;
25
+ justify-content: space-between;
26
+ }
27
+
28
+ &__badge-group {
29
+ display: flex;
30
+ align-items: center;
31
+ gap: 8px;
32
+ color: var(--label-secondary, #6b7a99);
33
+ }
34
+
35
+ &__badge {
36
+ font-family: var(--font-family-sans);
37
+ font-size: 12px;
38
+ color: var(--label-secondary, #6b7a99);
39
+ border: 1px solid var(--border-primary, #e2e2e2);
40
+ border-radius: 999px;
41
+ padding: 2px 10px;
42
+ }
43
+
44
+ &__section {
45
+ display: flex;
46
+ flex-direction: column;
47
+ gap: 8px;
48
+ }
49
+
50
+ &__section-label {
51
+ font-family: var(--font-family-sans);
52
+ font-size: 14px;
53
+ font-weight: 600;
54
+ color: var(--labels-main-label-primary, #121e52);
55
+ }
56
+
57
+ &__row {
58
+ display: grid;
59
+ grid-template-columns: 1fr 1fr;
60
+ gap: 16px;
61
+
62
+ @media (max-width: 768px) {
63
+ grid-template-columns: 1fr;
64
+ gap: 12px;
65
+ }
66
+
67
+ &--time {
68
+ margin-top: 8px;
69
+ }
70
+ }
71
+
72
+ &__days-grid {
73
+ display: grid;
74
+ grid-template-columns: 1fr 1fr;
75
+ gap: 8px;
76
+ }
77
+
78
+ &__days-col {
79
+ display: flex;
80
+ flex-direction: column;
81
+ gap: 8px;
82
+ }
83
+
84
+ &__time-range {
85
+ display: grid;
86
+ grid-template-columns: 1fr auto 1fr;
87
+ align-items: end;
88
+ gap: 12px;
89
+
90
+ @media (max-width: 768px) {
91
+ grid-template-columns: 1fr;
92
+ gap: 8px;
93
+ }
94
+ }
95
+
96
+ &__time-separator {
97
+ font-family: var(--font-family-sans, 'Geist', sans-serif);
98
+ font-size: 14px;
99
+ color: var(--label-secondary, #6b7a99);
100
+ padding-bottom: 10px;
101
+ }
102
+ }
103
+
104
+ // Small square checkboxes for day selection
105
+ .day-checkbox {
106
+ display: flex;
107
+ align-items: center;
108
+ gap: 6px;
109
+ cursor: pointer;
110
+ user-select: none;
111
+
112
+ &__input {
113
+ position: absolute;
114
+ opacity: 0;
115
+ width: 0;
116
+ height: 0;
117
+ }
118
+
119
+ &__box {
120
+ width: 16px;
121
+ height: 16px;
122
+ min-width: 16px;
123
+ border: 1px solid var(--border-primary, #e2e2e2);
124
+ border-radius: 3px;
125
+ background: var(--surface-primary, #fff);
126
+ transition: all 0.15s ease;
127
+ position: relative;
128
+
129
+ &::after {
130
+ content: '';
131
+ position: absolute;
132
+ top: 1px;
133
+ left: 4.5px;
134
+ width: 5px;
135
+ height: 9px;
136
+ border: solid white;
137
+ border-width: 0 2px 2px 0;
138
+ transform: rotate(45deg);
139
+ opacity: 0;
140
+ }
141
+ }
142
+
143
+ &__input:checked + &__box {
144
+ background: var(--fill-selected, #14215a);
145
+ border-color: var(--fill-selected, #14215a);
146
+
147
+ &::after {
148
+ opacity: 1;
149
+ }
150
+ }
151
+
152
+ &__label {
153
+ font-family: var(--font-family-sans, 'Geist', sans-serif);
154
+ font-size: 14px;
155
+ color: var(--label-primary, #121e52);
156
+ }
157
+ }
@@ -0,0 +1,245 @@
1
+ import React, { useState } from 'react'
2
+ import { Meta, StoryObj } from '@storybook/react'
3
+ import { PeriodCard, PeriodCardSection, PeriodCardTimeRange } from './PeriodCard'
4
+ import { NewInput } from '../NewInput'
5
+ import { IconButton } from '../IconButton'
6
+ import type { PeriodCardValue } from './PeriodCard'
7
+
8
+ export default {
9
+ title: 'v2/Components/PeriodCard',
10
+ component: PeriodCard,
11
+ parameters: {
12
+ layout: 'padded',
13
+ },
14
+ } as Meta<typeof PeriodCard>
15
+
16
+ type Story = StoryObj<typeof PeriodCard>
17
+
18
+ const defaultValue: PeriodCardValue = {
19
+ days: [],
20
+ is24Hours: true,
21
+ maxCapacity: 1,
22
+ minCapacity: null,
23
+ }
24
+
25
+ export const Default: Story = {
26
+ args: {
27
+ value: defaultValue,
28
+ onChange: () => {},
29
+ onDelete: () => alert('Delete period'),
30
+ },
31
+ }
32
+
33
+ export const WithDaysSelected: Story = {
34
+ args: {
35
+ value: {
36
+ days: ['Monday', 'Wednesday', 'Friday'],
37
+ is24Hours: true,
38
+ maxCapacity: 5,
39
+ minCapacity: 2,
40
+ },
41
+ onChange: () => {},
42
+ onDelete: () => alert('Delete period'),
43
+ },
44
+ }
45
+
46
+ export const WithCustomTime: Story = {
47
+ args: {
48
+ value: {
49
+ days: ['Saturday', 'Sunday'],
50
+ is24Hours: false,
51
+ startTime: '10:00',
52
+ endTime: '18:00',
53
+ maxCapacity: 10,
54
+ minCapacity: null,
55
+ },
56
+ onChange: () => {},
57
+ onDelete: () => alert('Delete period'),
58
+ },
59
+ }
60
+
61
+ export const WithoutDelete: Story = {
62
+ args: {
63
+ value: defaultValue,
64
+ onChange: () => {},
65
+ },
66
+ }
67
+
68
+ export const DaysAndTimeOnly: Story = {
69
+ args: {
70
+ value: {
71
+ days: ['Monday', 'Tuesday'],
72
+ is24Hours: false,
73
+ startTime: '08:00',
74
+ endTime: '16:00',
75
+ maxCapacity: 1,
76
+ minCapacity: null,
77
+ },
78
+ onChange: () => {},
79
+ onDelete: () => alert('Delete'),
80
+ hideCapacity: true,
81
+ labels: {
82
+ badge: 'Availability',
83
+ },
84
+ },
85
+ }
86
+
87
+ export const CapacityOnly: Story = {
88
+ args: {
89
+ value: {
90
+ days: [],
91
+ is24Hours: true,
92
+ maxCapacity: 20,
93
+ minCapacity: 5,
94
+ },
95
+ onChange: () => {},
96
+ onDelete: () => alert('Delete'),
97
+ hideDays: true,
98
+ hideTime: true,
99
+ labels: {
100
+ badge: 'Capacity Limit',
101
+ sectionTitle: 'Capacity Range',
102
+ minValue: 'Min Capacity',
103
+ maxValue: 'Max Capacity',
104
+ },
105
+ },
106
+ }
107
+
108
+ export const CustomLabels: Story = {
109
+ args: {
110
+ value: {
111
+ days: ['Monday', 'Tuesday'],
112
+ is24Hours: true,
113
+ maxCapacity: 3,
114
+ minCapacity: 1,
115
+ },
116
+ onChange: () => {},
117
+ onDelete: () => alert('Delete'),
118
+ labels: {
119
+ badge: 'Capacity Period',
120
+ sectionTitle: 'Capacity Override',
121
+ minValue: 'Min Capacity',
122
+ maxValue: 'Max Capacity',
123
+ days: 'Available Days',
124
+ time: 'Time Settings',
125
+ alignToggle: 'Use venue opening hours',
126
+ },
127
+ },
128
+ }
129
+
130
+ const InteractiveTemplate = () => {
131
+ const [periods, setPeriods] = useState<PeriodCardValue[]>([
132
+ { days: [], is24Hours: true, maxCapacity: 1, minCapacity: null },
133
+ ])
134
+
135
+ const addPeriod = () => {
136
+ setPeriods([
137
+ ...periods,
138
+ { days: [], is24Hours: true, maxCapacity: 1, minCapacity: null },
139
+ ])
140
+ }
141
+
142
+ const removePeriod = (index: number) => {
143
+ setPeriods(periods.filter((_, i) => i !== index))
144
+ }
145
+
146
+ const updatePeriod = (index: number, updated: PeriodCardValue) => {
147
+ setPeriods(periods.map((p, i) => (i === index ? updated : p)))
148
+ }
149
+
150
+ return (
151
+ <div style={{ display: 'flex', flexDirection: 'column', gap: '12px', maxWidth: 600 }}>
152
+ {periods.map((period, index) => (
153
+ <PeriodCard
154
+ key={index}
155
+ value={period}
156
+ onChange={(updated) => updatePeriod(index, updated)}
157
+ onDelete={() => removePeriod(index)}
158
+ labels={{
159
+ badge: 'Capacity Period',
160
+ sectionTitle: 'Capacity Override',
161
+ minValue: 'Min Capacity',
162
+ maxValue: 'Max Capacity',
163
+ }}
164
+ />
165
+ ))}
166
+ <button
167
+ type="button"
168
+ onClick={addPeriod}
169
+ style={{
170
+ padding: '8px 16px',
171
+ border: '1px dashed #ccc',
172
+ borderRadius: 8,
173
+ background: 'none',
174
+ cursor: 'pointer',
175
+ }}
176
+ >
177
+ + Add Period
178
+ </button>
179
+ </div>
180
+ )
181
+ }
182
+
183
+ export const Interactive: Story = {
184
+ render: () => <InteractiveTemplate />,
185
+ }
186
+
187
+ // ── Session Period (children mode) ──
188
+
189
+ const SessionPeriodTemplate = () => {
190
+ const [periods, setPeriods] = useState([
191
+ { interval: 15, startTime: '09:00', endTime: '17:00' },
192
+ ])
193
+
194
+ const addPeriod = () => {
195
+ setPeriods([...periods, { interval: 15, startTime: '09:00', endTime: '17:00' }])
196
+ }
197
+
198
+ const removePeriod = (index: number) => {
199
+ setPeriods(periods.filter((_, i) => i !== index))
200
+ }
201
+
202
+ const updatePeriod = (index: number, updates: Partial<typeof periods[0]>) => {
203
+ setPeriods(periods.map((p, i) => (i === index ? { ...p, ...updates } : p)))
204
+ }
205
+
206
+ return (
207
+ <div style={{ display: 'flex', flexDirection: 'column', gap: '12px', maxWidth: 600 }}>
208
+ {periods.map((period, index) => (
209
+ <PeriodCard
210
+ key={index}
211
+ title={`Period ${index + 1}`}
212
+ onDelete={periods.length > 1 ? () => removePeriod(index) : undefined}
213
+ >
214
+ <PeriodCardSection label="Sessions every">
215
+ <div style={{ display: 'flex', alignItems: 'center', gap: '8px' }}>
216
+ <NewInput
217
+ type="number"
218
+ min={1}
219
+ value={period.interval}
220
+ onChange={(e) =>
221
+ updatePeriod(index, {
222
+ interval: parseInt((e.target as HTMLInputElement).value) || 0,
223
+ })
224
+ }
225
+ style={{ width: 80 }}
226
+ />
227
+ <span style={{ fontSize: 14, color: '#6b7a99' }}>minutes</span>
228
+ </div>
229
+ </PeriodCardSection>
230
+ <PeriodCardTimeRange
231
+ startTime={period.startTime}
232
+ endTime={period.endTime}
233
+ onStartTimeChange={(v) => updatePeriod(index, { startTime: v })}
234
+ onEndTimeChange={(v) => updatePeriod(index, { endTime: v })}
235
+ />
236
+ </PeriodCard>
237
+ ))}
238
+ <IconButton label="Add Time Period" icon="add" onClick={addPeriod} />
239
+ </div>
240
+ )
241
+ }
242
+
243
+ export const SessionPeriod: Story = {
244
+ render: () => <SessionPeriodTemplate />,
245
+ }