@licklist/design 0.78.21 → 0.78.26
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/assets/Trend-Down.svg +3 -0
- package/dist/assets/Trend-Up.svg +3 -0
- package/dist/auth/Authorizer.d.ts.map +1 -1
- package/dist/auth/Authorizer.js +47 -12
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/v2/components/EntityHeader/EntityHeader.d.ts +13 -0
- package/dist/v2/components/EntityHeader/EntityHeader.d.ts.map +1 -0
- package/dist/v2/components/EntityHeader/EntityHeader.js +85 -0
- package/dist/v2/components/EntityHeader/EntityHeader.scss.js +6 -0
- package/dist/v2/components/EntityHeader/index.d.ts +2 -0
- package/dist/v2/components/EntityHeader/index.d.ts.map +1 -0
- package/dist/v2/components/NPSScore/NPSScore.d.ts +18 -0
- package/dist/v2/components/NPSScore/NPSScore.d.ts.map +1 -0
- package/dist/v2/components/NPSScore/index.d.ts +3 -0
- package/dist/v2/components/NPSScore/index.d.ts.map +1 -0
- package/dist/v2/components/Select/Select.d.ts +10 -0
- package/dist/v2/components/Select/Select.d.ts.map +1 -0
- package/dist/v2/components/Select/index.d.ts +3 -0
- package/dist/v2/components/Select/index.d.ts.map +1 -0
- package/dist/v2/components/Tooltip/Tooltip.d.ts +21 -0
- package/dist/v2/components/Tooltip/Tooltip.d.ts.map +1 -0
- package/dist/v2/components/Tooltip/Tooltip.js +103 -0
- package/dist/v2/components/Tooltip/Tooltip.scss.js +6 -0
- package/dist/v2/components/Tooltip/index.d.ts +2 -0
- package/dist/v2/components/Tooltip/index.d.ts.map +1 -0
- package/dist/v2/components/UserAvatar/UserAvatar.d.ts +12 -0
- package/dist/v2/components/UserAvatar/UserAvatar.d.ts.map +1 -0
- package/dist/v2/components/UserAvatar/UserAvatar.js +77 -0
- package/dist/v2/components/UserAvatar/UserAvatar.scss.js +6 -0
- package/dist/v2/components/UserAvatar/index.d.ts +2 -0
- package/dist/v2/components/UserAvatar/index.d.ts.map +1 -0
- package/dist/v2/components/UserPanel/UserPanel.d.ts +17 -0
- package/dist/v2/components/UserPanel/UserPanel.d.ts.map +1 -0
- package/dist/v2/components/UserPanel/UserPanel.js +144 -0
- package/dist/v2/components/UserPanel/UserPanel.scss.js +6 -0
- package/dist/v2/components/UserPanel/index.d.ts +3 -0
- package/dist/v2/components/UserPanel/index.d.ts.map +1 -0
- package/dist/v2/dashboard-analytics/blog-posts/Blog.d.ts +15 -0
- package/dist/v2/dashboard-analytics/blog-posts/Blog.d.ts.map +1 -0
- package/dist/v2/dashboard-analytics/blog-posts/index.d.ts +3 -0
- package/dist/v2/dashboard-analytics/blog-posts/index.d.ts.map +1 -0
- package/dist/v2/dashboard-analytics/chart/Chart.d.ts +21 -0
- package/dist/v2/dashboard-analytics/chart/Chart.d.ts.map +1 -0
- package/dist/v2/dashboard-analytics/chart/index.d.ts +3 -0
- package/dist/v2/dashboard-analytics/chart/index.d.ts.map +1 -0
- package/dist/v2/dashboard-analytics/dashboard/Dashboard.d.ts +57 -0
- package/dist/v2/dashboard-analytics/dashboard/Dashboard.d.ts.map +1 -0
- package/dist/v2/dashboard-analytics/dashboard/index.d.ts +3 -0
- package/dist/v2/dashboard-analytics/dashboard/index.d.ts.map +1 -0
- package/dist/v2/dashboard-analytics/index.d.ts +13 -0
- package/dist/v2/dashboard-analytics/index.d.ts.map +1 -0
- package/dist/v2/dashboard-analytics/metric-card/MetricCard.d.ts +17 -0
- package/dist/v2/dashboard-analytics/metric-card/MetricCard.d.ts.map +1 -0
- package/dist/v2/dashboard-analytics/metric-card/index.d.ts +3 -0
- package/dist/v2/dashboard-analytics/metric-card/index.d.ts.map +1 -0
- package/dist/v2/dashboard-analytics/venue-card/VenueCard.d.ts +12 -0
- package/dist/v2/dashboard-analytics/venue-card/VenueCard.d.ts.map +1 -0
- package/dist/v2/dashboard-analytics/venue-card/index.d.ts +3 -0
- package/dist/v2/dashboard-analytics/venue-card/index.d.ts.map +1 -0
- package/dist/v2/dashboard-analytics/venue-closed-card/VenueClosedCard.d.ts +25 -0
- package/dist/v2/dashboard-analytics/venue-closed-card/VenueClosedCard.d.ts.map +1 -0
- package/dist/v2/dashboard-analytics/venue-closed-card/index.d.ts +3 -0
- package/dist/v2/dashboard-analytics/venue-closed-card/index.d.ts.map +1 -0
- package/dist/v2/index.d.ts +11 -5
- package/dist/v2/index.d.ts.map +1 -1
- package/dist/v2/navigation/DashboardLayout/AdminSidebar.d.ts +10 -0
- package/dist/v2/navigation/DashboardLayout/AdminSidebar.d.ts.map +1 -0
- package/dist/v2/navigation/DashboardLayout/AdminSidebar.js +296 -0
- package/dist/v2/navigation/DashboardLayout/AdminSidebar.scss.js +6 -0
- package/dist/v2/navigation/DashboardLayout/DashboardFooter.d.ts +7 -0
- package/dist/v2/navigation/DashboardLayout/DashboardFooter.d.ts.map +1 -0
- package/dist/v2/navigation/DashboardLayout/DashboardFooter.js +34 -0
- package/dist/v2/navigation/DashboardLayout/DashboardFooter.scss.js +6 -0
- package/dist/v2/navigation/DashboardLayout/DashboardLayout.d.ts +42 -0
- package/dist/v2/navigation/DashboardLayout/DashboardLayout.d.ts.map +1 -0
- package/dist/v2/navigation/DashboardLayout/DashboardLayout.js +176 -0
- package/dist/v2/navigation/DashboardLayout/DashboardLayout.scss.js +6 -0
- package/dist/v2/navigation/DashboardLayout/ProviderSidebar.d.ts +35 -0
- package/dist/v2/navigation/DashboardLayout/ProviderSidebar.d.ts.map +1 -0
- package/dist/v2/navigation/DashboardLayout/ProviderSidebar.js +366 -0
- package/dist/v2/navigation/DashboardLayout/ProviderSidebar.scss.js +6 -0
- package/dist/v2/navigation/DashboardLayout/TopNavigation.d.ts +26 -0
- package/dist/v2/navigation/DashboardLayout/TopNavigation.d.ts.map +1 -0
- package/dist/v2/navigation/DashboardLayout/TopNavigation.js +360 -0
- package/dist/v2/navigation/DashboardLayout/TopNavigation.scss.js +6 -0
- package/dist/v2/navigation/DashboardLayout/assets/AdminLogo.png.js +3 -0
- package/dist/v2/navigation/DashboardLayout/assets/BookedLogo_Mark.png.js +3 -0
- package/dist/v2/navigation/DashboardLayout/index.d.ts +7 -0
- package/dist/v2/navigation/DashboardLayout/index.d.ts.map +1 -0
- package/package.json +5 -3
- package/src/assets/Trend-Down.svg +3 -0
- package/src/assets/Trend-Up.svg +3 -0
- package/src/auth/Authorizer.tsx +49 -20
- package/src/index.ts +2 -1
- package/src/v2/components/EntityHeader/EntityHeader.scss +133 -0
- package/src/v2/components/EntityHeader/EntityHeader.stories.tsx +103 -0
- package/src/v2/components/EntityHeader/EntityHeader.tsx +76 -0
- package/src/v2/components/EntityHeader/index.ts +1 -0
- package/src/v2/components/NPSScore/NPSScore.scss +330 -0
- package/src/v2/components/NPSScore/NPSScore.stories.tsx +29 -0
- package/src/v2/components/NPSScore/NPSScore.tsx +209 -0
- package/src/v2/components/NPSScore/index.ts +2 -0
- package/src/v2/components/Select/Select.scss +188 -0
- package/src/v2/components/Select/Select.stories.tsx +164 -0
- package/src/v2/components/Select/Select.tsx +56 -0
- package/src/v2/components/Select/index.ts +2 -0
- package/src/v2/components/Tooltip/Tooltip.scss +92 -0
- package/src/v2/components/Tooltip/Tooltip.stories.tsx +164 -0
- package/src/v2/components/Tooltip/Tooltip.tsx +64 -0
- package/src/v2/components/Tooltip/index.ts +8 -0
- package/src/v2/components/UserAvatar/UserAvatar.scss +62 -0
- package/src/v2/components/UserAvatar/UserAvatar.stories.tsx +94 -0
- package/src/v2/components/UserAvatar/UserAvatar.tsx +96 -0
- package/src/v2/components/UserAvatar/index.ts +1 -0
- package/src/v2/components/UserPanel/UserPanel.scss +195 -0
- package/src/v2/components/UserPanel/UserPanel.stories.tsx +66 -0
- package/src/v2/components/UserPanel/UserPanel.tsx +126 -0
- package/src/v2/components/UserPanel/index.ts +2 -0
- package/src/v2/dashboard-analytics/blog-posts/Blog.scss +92 -0
- package/src/v2/dashboard-analytics/blog-posts/Blog.stories.tsx +57 -0
- package/src/v2/dashboard-analytics/blog-posts/Blog.tsx +91 -0
- package/src/v2/dashboard-analytics/blog-posts/index.ts +2 -0
- package/src/v2/dashboard-analytics/chart/Chart.scss +424 -0
- package/src/v2/dashboard-analytics/chart/Chart.stories.tsx +157 -0
- package/src/v2/dashboard-analytics/chart/Chart.tsx +623 -0
- package/src/v2/dashboard-analytics/chart/index.ts +2 -0
- package/src/v2/dashboard-analytics/dashboard/Dashboard.scss +254 -0
- package/src/v2/dashboard-analytics/dashboard/Dashboard.stories.tsx +298 -0
- package/src/v2/dashboard-analytics/dashboard/Dashboard.tsx +248 -0
- package/src/v2/dashboard-analytics/dashboard/index.ts +2 -0
- package/src/v2/dashboard-analytics/index.ts +12 -0
- package/src/v2/dashboard-analytics/metric-card/MetricCard.scss +125 -0
- package/src/v2/dashboard-analytics/metric-card/MetricCard.stories.tsx +106 -0
- package/src/v2/dashboard-analytics/metric-card/MetricCard.tsx +72 -0
- package/src/v2/dashboard-analytics/metric-card/index.ts +2 -0
- package/src/v2/dashboard-analytics/venue-card/VenueCard.scss +112 -0
- package/src/v2/dashboard-analytics/venue-card/VenueCard.stories.tsx +40 -0
- package/src/v2/dashboard-analytics/venue-card/VenueCard.tsx +62 -0
- package/src/v2/dashboard-analytics/venue-card/index.ts +2 -0
- package/src/v2/dashboard-analytics/venue-closed-card/VenueClosedCard.scss +129 -0
- package/src/v2/dashboard-analytics/venue-closed-card/VenueClosedCard.stories.tsx +31 -0
- package/src/v2/dashboard-analytics/venue-closed-card/VenueClosedCard.tsx +61 -0
- package/src/v2/dashboard-analytics/venue-closed-card/index.ts +2 -0
- package/src/v2/design-system/colors/ColorSystem.scss +439 -0
- package/src/v2/design-system/colors/ColorSystem.stories.tsx +730 -0
- package/src/v2/design-system/typography/Typography.scss +295 -0
- package/src/v2/design-system/typography/Typography.stories.tsx +109 -0
- package/src/v2/index.ts +43 -7
- package/src/v2/navigation/DashboardLayout/AdminSidebar.scss +207 -0
- package/src/v2/navigation/DashboardLayout/AdminSidebar.tsx +171 -0
- package/src/v2/navigation/DashboardLayout/DashboardFooter.scss +30 -0
- package/src/v2/navigation/DashboardLayout/DashboardFooter.tsx +25 -0
- package/src/v2/navigation/DashboardLayout/DashboardLayout.scss +91 -0
- package/src/v2/navigation/DashboardLayout/DashboardLayout.stories.tsx +370 -0
- package/src/v2/navigation/DashboardLayout/DashboardLayout.tsx +233 -0
- package/src/v2/navigation/DashboardLayout/ProviderSidebar.scss +271 -0
- package/src/v2/navigation/DashboardLayout/ProviderSidebar.tsx +266 -0
- package/src/v2/navigation/DashboardLayout/Sidebar.stories.tsx +220 -0
- package/src/v2/navigation/DashboardLayout/TopNavigation.scss +206 -0
- package/src/v2/navigation/DashboardLayout/TopNavigation.tsx +279 -0
- package/src/v2/navigation/DashboardLayout/assets/AdminLogo.png +0 -0
- package/src/v2/navigation/DashboardLayout/assets/BookedLogo_Mark.png +0 -0
- package/src/v2/navigation/DashboardLayout/index.ts +20 -0
- package/src/v2/styles/index.scss +0 -1
- package/src/v2/styles/tokens/_colors.scss +531 -98
- package/dist/v2/components/Colors/Colors.d.ts +0 -21
- package/dist/v2/components/Colors/Colors.d.ts.map +0 -1
- package/dist/v2/components/Colors/index.d.ts +0 -3
- package/dist/v2/components/Colors/index.d.ts.map +0 -1
- package/dist/v2/components/Typography/Typography.d.ts +0 -11
- package/dist/v2/components/Typography/Typography.d.ts.map +0 -1
- package/dist/v2/components/Typography/index.d.ts +0 -3
- package/dist/v2/components/Typography/index.d.ts.map +0 -1
- package/src/v2/components/Colors/Colors.scss +0 -64
- package/src/v2/components/Colors/Colors.stories.tsx +0 -143
- package/src/v2/components/Colors/Colors.tsx +0 -51
- package/src/v2/components/Colors/ColorsAliases.stories.tsx +0 -285
- package/src/v2/components/Colors/Sizes.stories.tsx +0 -141
- package/src/v2/components/Colors/index.ts +0 -2
- package/src/v2/components/Typography/Typography.scss +0 -72
- package/src/v2/components/Typography/Typography.stories.tsx +0 -266
- package/src/v2/components/Typography/Typography.tsx +0 -56
- package/src/v2/components/Typography/index.ts +0 -2
- package/src/v2/styles/tokens/_aliases.scss +0 -199
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Meta, StoryFn } from '@storybook/react-vite'
|
|
2
|
+
import { VenueCard, VenueCardProps } from './VenueCard'
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
title: 'v2/Dashboard Analytics/Venue Card',
|
|
6
|
+
component: VenueCard,
|
|
7
|
+
argTypes: {
|
|
8
|
+
icon: {
|
|
9
|
+
description: 'Icon URL for the metric',
|
|
10
|
+
control: 'text',
|
|
11
|
+
},
|
|
12
|
+
title: {
|
|
13
|
+
description: 'Title of the metric',
|
|
14
|
+
control: 'text',
|
|
15
|
+
},
|
|
16
|
+
value: {
|
|
17
|
+
description: 'Value to display',
|
|
18
|
+
control: 'text',
|
|
19
|
+
},
|
|
20
|
+
shadowColor: {
|
|
21
|
+
description: 'Shadow animation color (RGB or RGBA)',
|
|
22
|
+
control: 'color',
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
} as Meta<VenueCardProps>
|
|
26
|
+
|
|
27
|
+
const placeholderIcon = 'https://api.builder.io/api/v1/image/assets/TEMP/b44b83b1f30b882d65f942ec883e90ae34fdb2d0?placeholderIfAbsent=true'
|
|
28
|
+
|
|
29
|
+
export const Default: StoryFn<VenueCardProps> = (args: VenueCardProps) => (
|
|
30
|
+
<div className="w-10">
|
|
31
|
+
<VenueCard {...args} />
|
|
32
|
+
</div>
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
Default.args = {
|
|
36
|
+
icon: placeholderIcon,
|
|
37
|
+
title: 'In venue',
|
|
38
|
+
value: '0 people',
|
|
39
|
+
shadowColor: 'rgba(34, 197, 94, 1)',
|
|
40
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import React, { ReactSVGElement } from 'react';
|
|
2
|
+
import './VenueCard.scss';
|
|
3
|
+
|
|
4
|
+
interface VenueCardProps {
|
|
5
|
+
icon: string | ReactSVGElement;
|
|
6
|
+
title: string;
|
|
7
|
+
value: string;
|
|
8
|
+
className?: string;
|
|
9
|
+
shadowColor?: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export const VenueCard: React.FC<VenueCardProps> = ({
|
|
13
|
+
icon,
|
|
14
|
+
title,
|
|
15
|
+
value,
|
|
16
|
+
className = '',
|
|
17
|
+
shadowColor = 'rgba(34, 197, 94, 1)'
|
|
18
|
+
}) => {
|
|
19
|
+
const cardClasses = [
|
|
20
|
+
'venue-card',
|
|
21
|
+
className?.includes('no-border') && 'no-border',
|
|
22
|
+
className?.includes('inline-metric') && 'inline-metric',
|
|
23
|
+
className?.includes('h-20') && 'h-20',
|
|
24
|
+
className?.includes('h-16') && 'h-16',
|
|
25
|
+
className
|
|
26
|
+
].filter(Boolean).join(' ');
|
|
27
|
+
|
|
28
|
+
return (
|
|
29
|
+
<div
|
|
30
|
+
className={cardClasses}
|
|
31
|
+
style={{
|
|
32
|
+
animation: 'shadow-pulse 3s ease-in-out infinite',
|
|
33
|
+
'--shadow-color': shadowColor
|
|
34
|
+
} as React.CSSProperties & { '--shadow-color': string }}
|
|
35
|
+
>
|
|
36
|
+
<div className="venue-card__icon-wrapper">
|
|
37
|
+
{typeof icon === 'string' ? (
|
|
38
|
+
<img
|
|
39
|
+
src={icon}
|
|
40
|
+
className="venue-card__icon"
|
|
41
|
+
alt={title}
|
|
42
|
+
/>
|
|
43
|
+
) : (
|
|
44
|
+
icon
|
|
45
|
+
)}
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
<div className="venue-card__content">
|
|
49
|
+
<div className="venue-card__header">
|
|
50
|
+
<div className="venue-card__title">
|
|
51
|
+
{title}
|
|
52
|
+
</div>
|
|
53
|
+
<div className="venue-card__value">
|
|
54
|
+
{value}
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
);
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
export type { VenueCardProps };
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
|
|
2
|
+
.venue-closed-card {
|
|
3
|
+
width: 100%;
|
|
4
|
+
|
|
5
|
+
&__container {
|
|
6
|
+
border: 1px solid var(--border-primary);
|
|
7
|
+
position: relative;
|
|
8
|
+
width: 100%;
|
|
9
|
+
min-height: 80px;
|
|
10
|
+
background-color: var(--surface-primary);
|
|
11
|
+
padding: 16px;
|
|
12
|
+
border-radius: 8px;
|
|
13
|
+
display: flex;
|
|
14
|
+
align-items: center;
|
|
15
|
+
gap: 16px;
|
|
16
|
+
transition: all 0.3s ease;
|
|
17
|
+
|
|
18
|
+
&:hover {
|
|
19
|
+
box-shadow: 0 2px 12px rgba(82, 194, 43, 0.1);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@media (max-width: 1024px) {
|
|
23
|
+
padding: 12px;
|
|
24
|
+
gap: 12px;
|
|
25
|
+
min-height: 72px;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
&__icon-wrapper {
|
|
30
|
+
display: flex;
|
|
31
|
+
align-items: center;
|
|
32
|
+
justify-content: center;
|
|
33
|
+
width: 48px;
|
|
34
|
+
height: 48px;
|
|
35
|
+
padding: 12px;
|
|
36
|
+
background-color: var(--surface-secondary);
|
|
37
|
+
border-radius: 8px;
|
|
38
|
+
flex-shrink: 0;
|
|
39
|
+
|
|
40
|
+
@media (max-width: 1024px) {
|
|
41
|
+
width: 40px;
|
|
42
|
+
height: 40px;
|
|
43
|
+
padding: 8px;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
&__icon {
|
|
48
|
+
width: 100%;
|
|
49
|
+
height: 100%;
|
|
50
|
+
color: var(--fill-secondary);
|
|
51
|
+
display: flex;
|
|
52
|
+
align-items: center;
|
|
53
|
+
justify-content: center;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
&__content {
|
|
57
|
+
flex: 1;
|
|
58
|
+
display: flex;
|
|
59
|
+
flex-direction: column;
|
|
60
|
+
gap: 4px;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
&__title {
|
|
64
|
+
font-size: 13px;
|
|
65
|
+
font-weight: 500;
|
|
66
|
+
line-height: 1.2;
|
|
67
|
+
color: var(--label-secondary);
|
|
68
|
+
margin: 0;
|
|
69
|
+
|
|
70
|
+
@media (max-width: 1024px) {
|
|
71
|
+
font-size: 12px;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
&__status {
|
|
76
|
+
font-size: 17px;
|
|
77
|
+
font-weight: 700;
|
|
78
|
+
line-height: 1.2;
|
|
79
|
+
color: var(--label-primary);
|
|
80
|
+
margin: 0;
|
|
81
|
+
|
|
82
|
+
@media (max-width: 1024px) {
|
|
83
|
+
font-size: 15px;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// Additional modifier classes
|
|
88
|
+
&.compact {
|
|
89
|
+
.venue-closed-card__container {
|
|
90
|
+
min-height: 64px;
|
|
91
|
+
padding: 12px;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.venue-closed-card__icon-wrapper {
|
|
95
|
+
width: 32px;
|
|
96
|
+
height: 32px;
|
|
97
|
+
padding: 6px;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.venue-closed-card__title {
|
|
101
|
+
font-size: 11px;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.venue-closed-card__status {
|
|
105
|
+
font-size: 14px;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
&.large {
|
|
110
|
+
.venue-closed-card__container {
|
|
111
|
+
min-height: 96px;
|
|
112
|
+
padding: 20px;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.venue-closed-card__icon-wrapper {
|
|
116
|
+
width: 56px;
|
|
117
|
+
height: 56px;
|
|
118
|
+
padding: 14px;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.venue-closed-card__title {
|
|
122
|
+
font-size: 15px;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.venue-closed-card__status {
|
|
126
|
+
font-size: 20px;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Meta, StoryFn } from '@storybook/react-vite'
|
|
2
|
+
import { VenueClosedCard, VenueClosedCardProps } from './VenueClosedCard'
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
title: 'v2/Dashboard Analytics/Venue Closed Card',
|
|
6
|
+
component: VenueClosedCard,
|
|
7
|
+
argTypes: {
|
|
8
|
+
venueInfo: {
|
|
9
|
+
description: 'Venue information with work hours and status',
|
|
10
|
+
control: 'object',
|
|
11
|
+
},
|
|
12
|
+
className: {
|
|
13
|
+
description: 'Additional CSS classes for styling',
|
|
14
|
+
control: 'text',
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
} as Meta<VenueClosedCardProps>
|
|
18
|
+
|
|
19
|
+
export const Default: StoryFn<VenueClosedCardProps> = (args: VenueClosedCardProps) => (
|
|
20
|
+
<div style={{ width: '400px' }}>
|
|
21
|
+
<VenueClosedCard {...args} />
|
|
22
|
+
</div>
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
Default.args = {
|
|
26
|
+
venueInfo: {
|
|
27
|
+
company_name: "Sharky's Soft Play",
|
|
28
|
+
message: 'Closed until 12:00',
|
|
29
|
+
is_open: false,
|
|
30
|
+
},
|
|
31
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './VenueClosedCard.scss';
|
|
3
|
+
|
|
4
|
+
interface WorkHour {
|
|
5
|
+
id: number;
|
|
6
|
+
venue_id: number;
|
|
7
|
+
day: number;
|
|
8
|
+
start: string;
|
|
9
|
+
end: string;
|
|
10
|
+
description?: string | null;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
interface VenueInfo {
|
|
14
|
+
is_open?: boolean;
|
|
15
|
+
status?: string;
|
|
16
|
+
message?: string;
|
|
17
|
+
closes_at?: string;
|
|
18
|
+
opened_at?: string;
|
|
19
|
+
company_name?: string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
interface VenueClosedCardProps {
|
|
23
|
+
venueInfo?: VenueInfo;
|
|
24
|
+
className?: string;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const VenueIcon = () => (
|
|
28
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" className="w-full h-full">
|
|
29
|
+
<path d="M22 21H2V19H3V4C3 3.44772 3.44772 3 4 3H18C18.5523 3 19 3.44772 19 4V9H21V19H22V21ZM17 19H19V11H13V19H15V13H17V19ZM17 9V5H5V19H11V9H17ZM7 11H9V13H7V11ZM7 15H9V17H7V15ZM7 7H9V9H7V7Z"/>
|
|
30
|
+
</svg>
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
export const VenueClosedCard: React.FC<VenueClosedCardProps> = ({
|
|
34
|
+
venueInfo,
|
|
35
|
+
className = ''
|
|
36
|
+
}) => {
|
|
37
|
+
|
|
38
|
+
return (
|
|
39
|
+
<div className={`venue-closed-card ${className}`}>
|
|
40
|
+
{/* Venue Status Card - Full width closed card */}
|
|
41
|
+
<div className="venue-closed-card__container">
|
|
42
|
+
<div className="venue-closed-card__icon-wrapper">
|
|
43
|
+
<div className="venue-closed-card__icon">
|
|
44
|
+
<VenueIcon />
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
<div className="venue-closed-card__content">
|
|
49
|
+
<div className="venue-closed-card__title">
|
|
50
|
+
{venueInfo?.company_name}
|
|
51
|
+
</div>
|
|
52
|
+
<div className="venue-closed-card__status">
|
|
53
|
+
{venueInfo?.message}
|
|
54
|
+
</div>
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
);
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
export type { VenueClosedCardProps, VenueInfo, WorkHour };
|