@licklist/design 0.78.5-dev.103 → 0.78.5-dev.106
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/Maintenance/Maintenance.scss.js +1 -1
- package/dist/index.js +1 -1
- package/dist/notification/email-template/control/EmailTemplateControl.d.ts.map +1 -1
- package/dist/static/date-range-input/DateRangeInput.d.ts.map +1 -1
- package/dist/v2/components/ActionMenu/ActionMenu.scss.js +1 -1
- package/dist/v2/components/Badge/Badge.scss.js +1 -1
- package/dist/v2/components/Button/Button.scss.js +1 -1
- package/dist/v2/components/Button/GhostButton.scss.js +1 -1
- package/dist/v2/components/Checkbox/Checkbox.scss.js +1 -1
- package/dist/v2/components/IconButton/IconButton.scss.js +1 -1
- package/dist/v2/components/InputCheckbox/InputCheckbox.scss.js +1 -1
- package/dist/v2/components/Modal/DeleteModal.scss.js +1 -1
- package/dist/v2/components/NPSScore/NPSScore.scss.js +1 -1
- package/dist/v2/components/NewTabs/NewTabs.scss.js +1 -1
- package/dist/v2/components/Select/Select.scss.js +1 -1
- package/dist/v2/components/StatusBadge/StatusBadge.scss.js +1 -1
- package/dist/v2/components/StepIndicator/StepIndicator.scss.js +1 -1
- package/dist/v2/components/Tabs/Tabs.scss.js +1 -1
- package/dist/v2/components/Tooltip/Tooltip.scss.js +1 -1
- package/dist/v2/components/UserAvatar/UserAvatar.scss.js +1 -1
- package/dist/v2/components/UserPanel/UserPanel.scss.js +1 -1
- package/dist/v2/components/WYSIWYGEditor/WYSIWYGEditor.scss.js +1 -1
- package/dist/v2/components/ZoneCard/ZoneCard.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/dashboard-analytics/chart/Chart.scss.js +1 -1
- package/dist/v2/dashboard-analytics/metric-card/MetricCard.scss.js +1 -1
- package/dist/v2/dashboard-analytics/venue-card/VenueCard.scss.js +1 -1
- package/dist/v2/dashboard-analytics/venue-closed-card/VenueClosedCard.scss.js +1 -1
- package/dist/v2/icons/index.d.ts +4 -0
- package/dist/v2/icons/index.d.ts.map +1 -1
- package/dist/v2/icons/index.js +47 -1
- package/dist/v2/navigation/DashboardLayout/AdminSidebar.scss.js +1 -1
- package/dist/v2/navigation/DashboardLayout/DashboardLayout.scss.js +1 -1
- package/dist/v2/navigation/DashboardLayout/ProviderSidebar.scss.js +1 -1
- package/dist/v2/navigation/DashboardLayout/TopNavigation.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/auth/AuthLayout/AuthLayout.scss.js +1 -1
- package/dist/v2/shadcn/components/ui/switch.scss.js +1 -1
- package/dist/v2/styles/form/NewInput.scss.js +1 -1
- package/dist/virtualized/components/VirtualizedGrid.d.ts.map +1 -1
- package/dist/virtualized/components/VirtualizedWindowScroller.d.ts.map +1 -1
- package/dist/virtualized/components/VirtualizedWindowScroller.js +3 -2
- package/package.json +1 -1
- package/src/notification/email-template/control/EmailTemplateControl.tsx +2 -1
- package/src/static/date-range-input/DateRangeInput.tsx +1 -0
- package/src/v2/components/InputCheckbox/InputCheckbox.scss +6 -6
- package/src/v2/components/ZoneCard/ZoneCard.scss +78 -0
- package/src/v2/components/index.ts +1 -0
- package/src/v2/icons/index.tsx +10 -0
- package/src/v2/navigation/Navigation/Navigation.stories.tsx +137 -0
- package/src/virtualized/components/VirtualizedGrid.tsx +1 -0
- package/src/virtualized/components/VirtualizedWindowScroller.tsx +1 -0
|
@@ -200,6 +200,84 @@
|
|
|
200
200
|
}
|
|
201
201
|
}
|
|
202
202
|
|
|
203
|
+
// Reorder row subtitle
|
|
204
|
+
.zone-card__subtitle {
|
|
205
|
+
display: block;
|
|
206
|
+
font-family: var(--font-family-sans, 'Geist', system-ui, sans-serif);
|
|
207
|
+
font-size: 13px;
|
|
208
|
+
font-weight: 400;
|
|
209
|
+
line-height: 16px;
|
|
210
|
+
color: var(--label-secondary);
|
|
211
|
+
margin-top: 2px;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
// Reorder screen styles
|
|
215
|
+
.reorder-screen {
|
|
216
|
+
color: var(--label-primary);
|
|
217
|
+
|
|
218
|
+
&__header {
|
|
219
|
+
display: flex;
|
|
220
|
+
justify-content: space-between;
|
|
221
|
+
align-items: center;
|
|
222
|
+
align-self: stretch;
|
|
223
|
+
height: 72px;
|
|
224
|
+
padding: 24px 0 8px 8px;
|
|
225
|
+
border-bottom: 1px solid var(--border-primary);
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
&__content {
|
|
229
|
+
display: flex;
|
|
230
|
+
flex-direction: column;
|
|
231
|
+
align-items: center;
|
|
232
|
+
align-self: stretch;
|
|
233
|
+
padding-top: 24px;
|
|
234
|
+
padding-bottom: 48px;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
&__body {
|
|
238
|
+
display: flex;
|
|
239
|
+
flex-direction: column;
|
|
240
|
+
gap: 24px;
|
|
241
|
+
width: 100%;
|
|
242
|
+
max-width: 672px;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
&__intro {
|
|
246
|
+
display: flex;
|
|
247
|
+
flex-direction: column;
|
|
248
|
+
gap: 4px;
|
|
249
|
+
|
|
250
|
+
p {
|
|
251
|
+
color: var(--label-secondary);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
&__list {
|
|
256
|
+
display: flex;
|
|
257
|
+
flex-direction: column;
|
|
258
|
+
gap: 12px;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
&__actions {
|
|
262
|
+
display: flex;
|
|
263
|
+
gap: 12px;
|
|
264
|
+
padding-top: 16px;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
@media (max-width: 640px) {
|
|
269
|
+
.reorder-screen {
|
|
270
|
+
&__header {
|
|
271
|
+
height: auto;
|
|
272
|
+
padding: 16px 0 8px;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
&__content {
|
|
276
|
+
padding-top: 32px;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
|
|
203
281
|
@media (max-width: 768px) {
|
|
204
282
|
.zone-card {
|
|
205
283
|
&__header {
|
package/src/v2/icons/index.tsx
CHANGED
|
@@ -213,6 +213,16 @@ export const GripVerticalIcon = ({ width = 16, height = 16 }: { width?: number;
|
|
|
213
213
|
</svg>
|
|
214
214
|
)
|
|
215
215
|
|
|
216
|
+
export const ReorderIcon = ({ width = 16, height = 16 }: { width?: number; height?: number } = {}) => (
|
|
217
|
+
<svg width={width} height={height} viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
218
|
+
<rect x="7" y="11" width="18" height="2" rx="1" fill="currentColor"/>
|
|
219
|
+
<rect x="7" y="15" width="18" height="2" rx="1" fill="currentColor"/>
|
|
220
|
+
<rect x="7" y="19" width="18" height="2" rx="1" fill="currentColor"/>
|
|
221
|
+
<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"/>
|
|
222
|
+
<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"/>
|
|
223
|
+
</svg>
|
|
224
|
+
)
|
|
225
|
+
|
|
216
226
|
export const PlusIcon = ({ width = 16, height = 16 }: { width?: number; height?: number } = {}) => (
|
|
217
227
|
<svg width={width} height={height} viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
218
228
|
<path d="M17 14.5H24.5V17.5H17V25H14V17.5H6.5V14.5H14V7H17V14.5Z" fill="currentColor"/>
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/react'
|
|
2
|
+
import React, { useState } from 'react'
|
|
3
|
+
import { Navigation } from './Navigation'
|
|
4
|
+
|
|
5
|
+
export default {
|
|
6
|
+
title: 'v2/Navigation/Navigation',
|
|
7
|
+
component: Navigation,
|
|
8
|
+
parameters: {
|
|
9
|
+
layout: 'fullscreen',
|
|
10
|
+
},
|
|
11
|
+
argTypes: {
|
|
12
|
+
isCollapsed: {
|
|
13
|
+
control: 'boolean',
|
|
14
|
+
description: 'Toggle between expanded (with labels) and collapsed (icons only) navigation',
|
|
15
|
+
},
|
|
16
|
+
activeItem: {
|
|
17
|
+
control: 'select',
|
|
18
|
+
options: ['home', 'companies', 'venues', 'promoters', 'admin', 'users', 'customers', 'reports', 'analytics', 'payments', 'settings'],
|
|
19
|
+
description: 'Which navigation item is currently active',
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
} as Meta
|
|
23
|
+
|
|
24
|
+
type Story = StoryObj<typeof Navigation>
|
|
25
|
+
|
|
26
|
+
// Default expanded navigation
|
|
27
|
+
export const Expanded: Story = {
|
|
28
|
+
args: {
|
|
29
|
+
isCollapsed: false,
|
|
30
|
+
activeItem: 'home',
|
|
31
|
+
},
|
|
32
|
+
render: (args) => (
|
|
33
|
+
<div style={{ width: '250px', height: '100vh', background: 'var(--fills-background-primary, #FFFFFF)', borderRight: '1px solid #E5E7EB' }}>
|
|
34
|
+
<Navigation {...args} />
|
|
35
|
+
</div>
|
|
36
|
+
),
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Collapsed navigation (icons only)
|
|
40
|
+
export const Collapsed: Story = {
|
|
41
|
+
args: {
|
|
42
|
+
isCollapsed: true,
|
|
43
|
+
activeItem: 'home',
|
|
44
|
+
},
|
|
45
|
+
render: (args) => (
|
|
46
|
+
<div style={{ width: '76px', height: '100vh', background: 'var(--fills-background-primary, #FFFFFF)', borderRight: '1px solid #E5E7EB' }}>
|
|
47
|
+
<Navigation {...args} />
|
|
48
|
+
</div>
|
|
49
|
+
),
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Interactive with toggle
|
|
53
|
+
export const Interactive: Story = {
|
|
54
|
+
render: function () {
|
|
55
|
+
const [isCollapsed, setIsCollapsed] = useState(false);
|
|
56
|
+
const [activeItem, setActiveItem] = useState('home');
|
|
57
|
+
|
|
58
|
+
return (
|
|
59
|
+
<div style={{ display: 'flex', height: '100vh' }}>
|
|
60
|
+
<div style={{ width: isCollapsed ? '76px' : '250px', background: 'var(--fills-background-primary, #FFFFFF)', borderRight: '1px solid #E5E7EB', transition: 'width 0.3s ease' }}>
|
|
61
|
+
<div style={{ padding: '16px', borderBottom: '1px solid #E5E7EB' }}>
|
|
62
|
+
<button
|
|
63
|
+
onClick={() => setIsCollapsed(!isCollapsed)}
|
|
64
|
+
style={{
|
|
65
|
+
padding: '8px 12px',
|
|
66
|
+
background: '#14215A',
|
|
67
|
+
color: 'white',
|
|
68
|
+
border: 'none',
|
|
69
|
+
borderRadius: '6px',
|
|
70
|
+
cursor: 'pointer',
|
|
71
|
+
fontSize: '13px',
|
|
72
|
+
fontWeight: '500',
|
|
73
|
+
}}
|
|
74
|
+
>
|
|
75
|
+
{isCollapsed ? '→' : '←'}
|
|
76
|
+
</button>
|
|
77
|
+
</div>
|
|
78
|
+
<Navigation
|
|
79
|
+
isCollapsed={isCollapsed}
|
|
80
|
+
activeItem={activeItem}
|
|
81
|
+
onItemClick={setActiveItem}
|
|
82
|
+
/>
|
|
83
|
+
</div>
|
|
84
|
+
<div style={{ flex: 1, padding: '24px', background: '#F9FAFB' }}>
|
|
85
|
+
<h1 style={{ fontSize: '24px', fontWeight: '600', color: '#111827', marginBottom: '8px' }}>
|
|
86
|
+
Active Page: {activeItem.charAt(0).toUpperCase() + activeItem.slice(1)}
|
|
87
|
+
</h1>
|
|
88
|
+
<p style={{ color: '#6B7280' }}>Click a navigation item to change the active page</p>
|
|
89
|
+
</div>
|
|
90
|
+
</div>
|
|
91
|
+
);
|
|
92
|
+
},
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// Different active states
|
|
96
|
+
export const ActiveOnCompanies: Story = {
|
|
97
|
+
args: {
|
|
98
|
+
isCollapsed: false,
|
|
99
|
+
activeItem: 'companies',
|
|
100
|
+
},
|
|
101
|
+
render: (args) => (
|
|
102
|
+
<div style={{ width: '250px', height: '100vh', background: 'var(--fills-background-primary, #FFFFFF)', borderRight: '1px solid #E5E7EB' }}>
|
|
103
|
+
<Navigation {...args} />
|
|
104
|
+
</div>
|
|
105
|
+
),
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export const ActiveOnSettings: Story = {
|
|
109
|
+
args: {
|
|
110
|
+
isCollapsed: false,
|
|
111
|
+
activeItem: 'settings',
|
|
112
|
+
},
|
|
113
|
+
render: (args) => (
|
|
114
|
+
<div style={{ width: '250px', height: '100vh', background: 'var(--fills-background-primary, #FFFFFF)', borderRight: '1px solid #E5E7EB' }}>
|
|
115
|
+
<Navigation {...args} />
|
|
116
|
+
</div>
|
|
117
|
+
),
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// Mobile viewport
|
|
121
|
+
export const Mobile: Story = {
|
|
122
|
+
args: {
|
|
123
|
+
isCollapsed: false,
|
|
124
|
+
activeItem: 'home',
|
|
125
|
+
},
|
|
126
|
+
parameters: {
|
|
127
|
+
viewport: {
|
|
128
|
+
defaultViewport: 'mobile1',
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
render: (args) => (
|
|
132
|
+
<div style={{ width: '100%', height: '100vh', background: 'var(--fills-background-primary, #FFFFFF)' }}>
|
|
133
|
+
<Navigation {...args} />
|
|
134
|
+
</div>
|
|
135
|
+
),
|
|
136
|
+
}
|
|
137
|
+
|
|
@@ -15,6 +15,7 @@ export const VirtualizedGrid = (props: VirtualizedGridProps) => {
|
|
|
15
15
|
|
|
16
16
|
return (
|
|
17
17
|
<div className='virtualized-grid-container'>
|
|
18
|
+
{/* @ts-ignore Grid component has React 18 compatibility issues with @types */}
|
|
18
19
|
<Grid ref={gridRef} {...props} />
|
|
19
20
|
</div>
|
|
20
21
|
)
|