@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.
Files changed (54) hide show
  1. package/dist/Maintenance/Maintenance.scss.js +1 -1
  2. package/dist/index.js +1 -1
  3. package/dist/notification/email-template/control/EmailTemplateControl.d.ts.map +1 -1
  4. package/dist/static/date-range-input/DateRangeInput.d.ts.map +1 -1
  5. package/dist/v2/components/ActionMenu/ActionMenu.scss.js +1 -1
  6. package/dist/v2/components/Badge/Badge.scss.js +1 -1
  7. package/dist/v2/components/Button/Button.scss.js +1 -1
  8. package/dist/v2/components/Button/GhostButton.scss.js +1 -1
  9. package/dist/v2/components/Checkbox/Checkbox.scss.js +1 -1
  10. package/dist/v2/components/IconButton/IconButton.scss.js +1 -1
  11. package/dist/v2/components/InputCheckbox/InputCheckbox.scss.js +1 -1
  12. package/dist/v2/components/Modal/DeleteModal.scss.js +1 -1
  13. package/dist/v2/components/NPSScore/NPSScore.scss.js +1 -1
  14. package/dist/v2/components/NewTabs/NewTabs.scss.js +1 -1
  15. package/dist/v2/components/Select/Select.scss.js +1 -1
  16. package/dist/v2/components/StatusBadge/StatusBadge.scss.js +1 -1
  17. package/dist/v2/components/StepIndicator/StepIndicator.scss.js +1 -1
  18. package/dist/v2/components/Tabs/Tabs.scss.js +1 -1
  19. package/dist/v2/components/Tooltip/Tooltip.scss.js +1 -1
  20. package/dist/v2/components/UserAvatar/UserAvatar.scss.js +1 -1
  21. package/dist/v2/components/UserPanel/UserPanel.scss.js +1 -1
  22. package/dist/v2/components/WYSIWYGEditor/WYSIWYGEditor.scss.js +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/chart/Chart.scss.js +1 -1
  27. package/dist/v2/dashboard-analytics/metric-card/MetricCard.scss.js +1 -1
  28. package/dist/v2/dashboard-analytics/venue-card/VenueCard.scss.js +1 -1
  29. package/dist/v2/dashboard-analytics/venue-closed-card/VenueClosedCard.scss.js +1 -1
  30. package/dist/v2/icons/index.d.ts +4 -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/navigation/DashboardLayout/AdminSidebar.scss.js +1 -1
  34. package/dist/v2/navigation/DashboardLayout/DashboardLayout.scss.js +1 -1
  35. package/dist/v2/navigation/DashboardLayout/ProviderSidebar.scss.js +1 -1
  36. package/dist/v2/navigation/DashboardLayout/TopNavigation.scss.js +1 -1
  37. package/dist/v2/pages/Settings/SettingsTabs.scss.js +1 -1
  38. package/dist/v2/pages/Settings/components/SidebarCustomisation.scss.js +1 -1
  39. package/dist/v2/pages/auth/AuthLayout/AuthLayout.scss.js +1 -1
  40. package/dist/v2/shadcn/components/ui/switch.scss.js +1 -1
  41. package/dist/v2/styles/form/NewInput.scss.js +1 -1
  42. package/dist/virtualized/components/VirtualizedGrid.d.ts.map +1 -1
  43. package/dist/virtualized/components/VirtualizedWindowScroller.d.ts.map +1 -1
  44. package/dist/virtualized/components/VirtualizedWindowScroller.js +3 -2
  45. package/package.json +1 -1
  46. package/src/notification/email-template/control/EmailTemplateControl.tsx +2 -1
  47. package/src/static/date-range-input/DateRangeInput.tsx +1 -0
  48. package/src/v2/components/InputCheckbox/InputCheckbox.scss +6 -6
  49. package/src/v2/components/ZoneCard/ZoneCard.scss +78 -0
  50. package/src/v2/components/index.ts +1 -0
  51. package/src/v2/icons/index.tsx +10 -0
  52. package/src/v2/navigation/Navigation/Navigation.stories.tsx +137 -0
  53. package/src/virtualized/components/VirtualizedGrid.tsx +1 -0
  54. 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 {
@@ -133,6 +133,7 @@ export {
133
133
  EllipsisIcon,
134
134
  CircleIcon,
135
135
  GripVerticalIcon,
136
+ ReorderIcon,
136
137
  PlusIcon,
137
138
  DeleteIcon,
138
139
  ClockIcon,
@@ -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
  )
@@ -43,6 +43,7 @@ const WrappedVirtualizedWindowScroller = ({
43
43
  }, [windowDimensions])
44
44
 
45
45
  return (
46
+ // @ts-ignore - WindowScroller component has React 18 compatibility issues with @types
46
47
  <WindowScroller scrollElement={scrollElement}>
47
48
  {(props) =>
48
49
  children({