@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.
Files changed (186) hide show
  1. package/dist/assets/Trend-Down.svg +3 -0
  2. package/dist/assets/Trend-Up.svg +3 -0
  3. package/dist/auth/Authorizer.d.ts.map +1 -1
  4. package/dist/auth/Authorizer.js +47 -12
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +5 -0
  8. package/dist/v2/components/EntityHeader/EntityHeader.d.ts +13 -0
  9. package/dist/v2/components/EntityHeader/EntityHeader.d.ts.map +1 -0
  10. package/dist/v2/components/EntityHeader/EntityHeader.js +85 -0
  11. package/dist/v2/components/EntityHeader/EntityHeader.scss.js +6 -0
  12. package/dist/v2/components/EntityHeader/index.d.ts +2 -0
  13. package/dist/v2/components/EntityHeader/index.d.ts.map +1 -0
  14. package/dist/v2/components/NPSScore/NPSScore.d.ts +18 -0
  15. package/dist/v2/components/NPSScore/NPSScore.d.ts.map +1 -0
  16. package/dist/v2/components/NPSScore/index.d.ts +3 -0
  17. package/dist/v2/components/NPSScore/index.d.ts.map +1 -0
  18. package/dist/v2/components/Select/Select.d.ts +10 -0
  19. package/dist/v2/components/Select/Select.d.ts.map +1 -0
  20. package/dist/v2/components/Select/index.d.ts +3 -0
  21. package/dist/v2/components/Select/index.d.ts.map +1 -0
  22. package/dist/v2/components/Tooltip/Tooltip.d.ts +21 -0
  23. package/dist/v2/components/Tooltip/Tooltip.d.ts.map +1 -0
  24. package/dist/v2/components/Tooltip/Tooltip.js +103 -0
  25. package/dist/v2/components/Tooltip/Tooltip.scss.js +6 -0
  26. package/dist/v2/components/Tooltip/index.d.ts +2 -0
  27. package/dist/v2/components/Tooltip/index.d.ts.map +1 -0
  28. package/dist/v2/components/UserAvatar/UserAvatar.d.ts +12 -0
  29. package/dist/v2/components/UserAvatar/UserAvatar.d.ts.map +1 -0
  30. package/dist/v2/components/UserAvatar/UserAvatar.js +77 -0
  31. package/dist/v2/components/UserAvatar/UserAvatar.scss.js +6 -0
  32. package/dist/v2/components/UserAvatar/index.d.ts +2 -0
  33. package/dist/v2/components/UserAvatar/index.d.ts.map +1 -0
  34. package/dist/v2/components/UserPanel/UserPanel.d.ts +17 -0
  35. package/dist/v2/components/UserPanel/UserPanel.d.ts.map +1 -0
  36. package/dist/v2/components/UserPanel/UserPanel.js +144 -0
  37. package/dist/v2/components/UserPanel/UserPanel.scss.js +6 -0
  38. package/dist/v2/components/UserPanel/index.d.ts +3 -0
  39. package/dist/v2/components/UserPanel/index.d.ts.map +1 -0
  40. package/dist/v2/dashboard-analytics/blog-posts/Blog.d.ts +15 -0
  41. package/dist/v2/dashboard-analytics/blog-posts/Blog.d.ts.map +1 -0
  42. package/dist/v2/dashboard-analytics/blog-posts/index.d.ts +3 -0
  43. package/dist/v2/dashboard-analytics/blog-posts/index.d.ts.map +1 -0
  44. package/dist/v2/dashboard-analytics/chart/Chart.d.ts +21 -0
  45. package/dist/v2/dashboard-analytics/chart/Chart.d.ts.map +1 -0
  46. package/dist/v2/dashboard-analytics/chart/index.d.ts +3 -0
  47. package/dist/v2/dashboard-analytics/chart/index.d.ts.map +1 -0
  48. package/dist/v2/dashboard-analytics/dashboard/Dashboard.d.ts +57 -0
  49. package/dist/v2/dashboard-analytics/dashboard/Dashboard.d.ts.map +1 -0
  50. package/dist/v2/dashboard-analytics/dashboard/index.d.ts +3 -0
  51. package/dist/v2/dashboard-analytics/dashboard/index.d.ts.map +1 -0
  52. package/dist/v2/dashboard-analytics/index.d.ts +13 -0
  53. package/dist/v2/dashboard-analytics/index.d.ts.map +1 -0
  54. package/dist/v2/dashboard-analytics/metric-card/MetricCard.d.ts +17 -0
  55. package/dist/v2/dashboard-analytics/metric-card/MetricCard.d.ts.map +1 -0
  56. package/dist/v2/dashboard-analytics/metric-card/index.d.ts +3 -0
  57. package/dist/v2/dashboard-analytics/metric-card/index.d.ts.map +1 -0
  58. package/dist/v2/dashboard-analytics/venue-card/VenueCard.d.ts +12 -0
  59. package/dist/v2/dashboard-analytics/venue-card/VenueCard.d.ts.map +1 -0
  60. package/dist/v2/dashboard-analytics/venue-card/index.d.ts +3 -0
  61. package/dist/v2/dashboard-analytics/venue-card/index.d.ts.map +1 -0
  62. package/dist/v2/dashboard-analytics/venue-closed-card/VenueClosedCard.d.ts +25 -0
  63. package/dist/v2/dashboard-analytics/venue-closed-card/VenueClosedCard.d.ts.map +1 -0
  64. package/dist/v2/dashboard-analytics/venue-closed-card/index.d.ts +3 -0
  65. package/dist/v2/dashboard-analytics/venue-closed-card/index.d.ts.map +1 -0
  66. package/dist/v2/index.d.ts +11 -5
  67. package/dist/v2/index.d.ts.map +1 -1
  68. package/dist/v2/navigation/DashboardLayout/AdminSidebar.d.ts +10 -0
  69. package/dist/v2/navigation/DashboardLayout/AdminSidebar.d.ts.map +1 -0
  70. package/dist/v2/navigation/DashboardLayout/AdminSidebar.js +296 -0
  71. package/dist/v2/navigation/DashboardLayout/AdminSidebar.scss.js +6 -0
  72. package/dist/v2/navigation/DashboardLayout/DashboardFooter.d.ts +7 -0
  73. package/dist/v2/navigation/DashboardLayout/DashboardFooter.d.ts.map +1 -0
  74. package/dist/v2/navigation/DashboardLayout/DashboardFooter.js +34 -0
  75. package/dist/v2/navigation/DashboardLayout/DashboardFooter.scss.js +6 -0
  76. package/dist/v2/navigation/DashboardLayout/DashboardLayout.d.ts +42 -0
  77. package/dist/v2/navigation/DashboardLayout/DashboardLayout.d.ts.map +1 -0
  78. package/dist/v2/navigation/DashboardLayout/DashboardLayout.js +176 -0
  79. package/dist/v2/navigation/DashboardLayout/DashboardLayout.scss.js +6 -0
  80. package/dist/v2/navigation/DashboardLayout/ProviderSidebar.d.ts +35 -0
  81. package/dist/v2/navigation/DashboardLayout/ProviderSidebar.d.ts.map +1 -0
  82. package/dist/v2/navigation/DashboardLayout/ProviderSidebar.js +366 -0
  83. package/dist/v2/navigation/DashboardLayout/ProviderSidebar.scss.js +6 -0
  84. package/dist/v2/navigation/DashboardLayout/TopNavigation.d.ts +26 -0
  85. package/dist/v2/navigation/DashboardLayout/TopNavigation.d.ts.map +1 -0
  86. package/dist/v2/navigation/DashboardLayout/TopNavigation.js +360 -0
  87. package/dist/v2/navigation/DashboardLayout/TopNavigation.scss.js +6 -0
  88. package/dist/v2/navigation/DashboardLayout/assets/AdminLogo.png.js +3 -0
  89. package/dist/v2/navigation/DashboardLayout/assets/BookedLogo_Mark.png.js +3 -0
  90. package/dist/v2/navigation/DashboardLayout/index.d.ts +7 -0
  91. package/dist/v2/navigation/DashboardLayout/index.d.ts.map +1 -0
  92. package/package.json +5 -3
  93. package/src/assets/Trend-Down.svg +3 -0
  94. package/src/assets/Trend-Up.svg +3 -0
  95. package/src/auth/Authorizer.tsx +49 -20
  96. package/src/index.ts +2 -1
  97. package/src/v2/components/EntityHeader/EntityHeader.scss +133 -0
  98. package/src/v2/components/EntityHeader/EntityHeader.stories.tsx +103 -0
  99. package/src/v2/components/EntityHeader/EntityHeader.tsx +76 -0
  100. package/src/v2/components/EntityHeader/index.ts +1 -0
  101. package/src/v2/components/NPSScore/NPSScore.scss +330 -0
  102. package/src/v2/components/NPSScore/NPSScore.stories.tsx +29 -0
  103. package/src/v2/components/NPSScore/NPSScore.tsx +209 -0
  104. package/src/v2/components/NPSScore/index.ts +2 -0
  105. package/src/v2/components/Select/Select.scss +188 -0
  106. package/src/v2/components/Select/Select.stories.tsx +164 -0
  107. package/src/v2/components/Select/Select.tsx +56 -0
  108. package/src/v2/components/Select/index.ts +2 -0
  109. package/src/v2/components/Tooltip/Tooltip.scss +92 -0
  110. package/src/v2/components/Tooltip/Tooltip.stories.tsx +164 -0
  111. package/src/v2/components/Tooltip/Tooltip.tsx +64 -0
  112. package/src/v2/components/Tooltip/index.ts +8 -0
  113. package/src/v2/components/UserAvatar/UserAvatar.scss +62 -0
  114. package/src/v2/components/UserAvatar/UserAvatar.stories.tsx +94 -0
  115. package/src/v2/components/UserAvatar/UserAvatar.tsx +96 -0
  116. package/src/v2/components/UserAvatar/index.ts +1 -0
  117. package/src/v2/components/UserPanel/UserPanel.scss +195 -0
  118. package/src/v2/components/UserPanel/UserPanel.stories.tsx +66 -0
  119. package/src/v2/components/UserPanel/UserPanel.tsx +126 -0
  120. package/src/v2/components/UserPanel/index.ts +2 -0
  121. package/src/v2/dashboard-analytics/blog-posts/Blog.scss +92 -0
  122. package/src/v2/dashboard-analytics/blog-posts/Blog.stories.tsx +57 -0
  123. package/src/v2/dashboard-analytics/blog-posts/Blog.tsx +91 -0
  124. package/src/v2/dashboard-analytics/blog-posts/index.ts +2 -0
  125. package/src/v2/dashboard-analytics/chart/Chart.scss +424 -0
  126. package/src/v2/dashboard-analytics/chart/Chart.stories.tsx +157 -0
  127. package/src/v2/dashboard-analytics/chart/Chart.tsx +623 -0
  128. package/src/v2/dashboard-analytics/chart/index.ts +2 -0
  129. package/src/v2/dashboard-analytics/dashboard/Dashboard.scss +254 -0
  130. package/src/v2/dashboard-analytics/dashboard/Dashboard.stories.tsx +298 -0
  131. package/src/v2/dashboard-analytics/dashboard/Dashboard.tsx +248 -0
  132. package/src/v2/dashboard-analytics/dashboard/index.ts +2 -0
  133. package/src/v2/dashboard-analytics/index.ts +12 -0
  134. package/src/v2/dashboard-analytics/metric-card/MetricCard.scss +125 -0
  135. package/src/v2/dashboard-analytics/metric-card/MetricCard.stories.tsx +106 -0
  136. package/src/v2/dashboard-analytics/metric-card/MetricCard.tsx +72 -0
  137. package/src/v2/dashboard-analytics/metric-card/index.ts +2 -0
  138. package/src/v2/dashboard-analytics/venue-card/VenueCard.scss +112 -0
  139. package/src/v2/dashboard-analytics/venue-card/VenueCard.stories.tsx +40 -0
  140. package/src/v2/dashboard-analytics/venue-card/VenueCard.tsx +62 -0
  141. package/src/v2/dashboard-analytics/venue-card/index.ts +2 -0
  142. package/src/v2/dashboard-analytics/venue-closed-card/VenueClosedCard.scss +129 -0
  143. package/src/v2/dashboard-analytics/venue-closed-card/VenueClosedCard.stories.tsx +31 -0
  144. package/src/v2/dashboard-analytics/venue-closed-card/VenueClosedCard.tsx +61 -0
  145. package/src/v2/dashboard-analytics/venue-closed-card/index.ts +2 -0
  146. package/src/v2/design-system/colors/ColorSystem.scss +439 -0
  147. package/src/v2/design-system/colors/ColorSystem.stories.tsx +730 -0
  148. package/src/v2/design-system/typography/Typography.scss +295 -0
  149. package/src/v2/design-system/typography/Typography.stories.tsx +109 -0
  150. package/src/v2/index.ts +43 -7
  151. package/src/v2/navigation/DashboardLayout/AdminSidebar.scss +207 -0
  152. package/src/v2/navigation/DashboardLayout/AdminSidebar.tsx +171 -0
  153. package/src/v2/navigation/DashboardLayout/DashboardFooter.scss +30 -0
  154. package/src/v2/navigation/DashboardLayout/DashboardFooter.tsx +25 -0
  155. package/src/v2/navigation/DashboardLayout/DashboardLayout.scss +91 -0
  156. package/src/v2/navigation/DashboardLayout/DashboardLayout.stories.tsx +370 -0
  157. package/src/v2/navigation/DashboardLayout/DashboardLayout.tsx +233 -0
  158. package/src/v2/navigation/DashboardLayout/ProviderSidebar.scss +271 -0
  159. package/src/v2/navigation/DashboardLayout/ProviderSidebar.tsx +266 -0
  160. package/src/v2/navigation/DashboardLayout/Sidebar.stories.tsx +220 -0
  161. package/src/v2/navigation/DashboardLayout/TopNavigation.scss +206 -0
  162. package/src/v2/navigation/DashboardLayout/TopNavigation.tsx +279 -0
  163. package/src/v2/navigation/DashboardLayout/assets/AdminLogo.png +0 -0
  164. package/src/v2/navigation/DashboardLayout/assets/BookedLogo_Mark.png +0 -0
  165. package/src/v2/navigation/DashboardLayout/index.ts +20 -0
  166. package/src/v2/styles/index.scss +0 -1
  167. package/src/v2/styles/tokens/_colors.scss +531 -98
  168. package/dist/v2/components/Colors/Colors.d.ts +0 -21
  169. package/dist/v2/components/Colors/Colors.d.ts.map +0 -1
  170. package/dist/v2/components/Colors/index.d.ts +0 -3
  171. package/dist/v2/components/Colors/index.d.ts.map +0 -1
  172. package/dist/v2/components/Typography/Typography.d.ts +0 -11
  173. package/dist/v2/components/Typography/Typography.d.ts.map +0 -1
  174. package/dist/v2/components/Typography/index.d.ts +0 -3
  175. package/dist/v2/components/Typography/index.d.ts.map +0 -1
  176. package/src/v2/components/Colors/Colors.scss +0 -64
  177. package/src/v2/components/Colors/Colors.stories.tsx +0 -143
  178. package/src/v2/components/Colors/Colors.tsx +0 -51
  179. package/src/v2/components/Colors/ColorsAliases.stories.tsx +0 -285
  180. package/src/v2/components/Colors/Sizes.stories.tsx +0 -141
  181. package/src/v2/components/Colors/index.ts +0 -2
  182. package/src/v2/components/Typography/Typography.scss +0 -72
  183. package/src/v2/components/Typography/Typography.stories.tsx +0 -266
  184. package/src/v2/components/Typography/Typography.tsx +0 -56
  185. package/src/v2/components/Typography/index.ts +0 -2
  186. package/src/v2/styles/tokens/_aliases.scss +0 -199
@@ -1,141 +0,0 @@
1
- import { Meta, StoryObj } from '@storybook/react'
2
- import React from 'react'
3
-
4
- export default {
5
- title: 'v2/Design System/Size Tokens',
6
- parameters: {
7
- layout: 'padded',
8
- },
9
- } as Meta
10
-
11
- type Story = StoryObj
12
-
13
- export const Radius: Story = {
14
- render: () => (
15
- <div>
16
- <h2>Radius Tokens - Border Radius</h2>
17
- <div style={{ display: 'flex', flexDirection: 'column', gap: '16px', marginTop: '24px' }}>
18
- <div style={{ display: 'flex', alignItems: 'center', gap: '24px' }}>
19
- <div style={{ fontFamily: 'Geist Mono', fontSize: '14px', color: '#121e52', minWidth: '50px' }}>
20
- zero
21
- </div>
22
- <div style={{ width: '41px', height: '41px', border: '1px solid #e7e8ea', borderRadius: 'var(--radius-zero)', backgroundColor: '#121e52' }} />
23
- <div style={{ flex: 1 }} />
24
- <div style={{ fontFamily: 'Geist', fontSize: '16px', color: '#121e52', textAlign: 'right' }}>0px</div>
25
- </div>
26
-
27
- <div style={{ display: 'flex', alignItems: 'center', gap: '24px' }}>
28
- <div style={{ fontFamily: 'Geist Mono', fontSize: '14px', color: '#121e52', minWidth: '50px' }}>
29
- xs
30
- </div>
31
- <div style={{ width: '41px', height: '41px', border: '1px solid #e7e8ea', borderRadius: 'var(--radius-xs)', backgroundColor: '#121e52' }} />
32
- <div style={{ flex: 1 }} />
33
- <div style={{ fontFamily: 'Geist', fontSize: '16px', color: '#121e52', textAlign: 'right' }}>1px</div>
34
- </div>
35
-
36
- <div style={{ display: 'flex', alignItems: 'center', gap: '24px' }}>
37
- <div style={{ fontFamily: 'Geist Mono', fontSize: '14px', color: '#121e52', minWidth: '50px' }}>
38
- sm
39
- </div>
40
- <div style={{ width: '41px', height: '41px', border: '1px solid #e7e8ea', borderRadius: 'var(--radius-sm)', backgroundColor: '#121e52' }} />
41
- <div style={{ flex: 1 }} />
42
- <div style={{ fontFamily: 'Geist', fontSize: '16px', color: '#121e52', textAlign: 'right' }}>2px</div>
43
- </div>
44
-
45
- <div style={{ display: 'flex', alignItems: 'center', gap: '24px' }}>
46
- <div style={{ fontFamily: 'Geist Mono', fontSize: '14px', color: '#121e52', minWidth: '50px' }}>
47
- md
48
- </div>
49
- <div style={{ width: '41px', height: '41px', border: '1px solid #e7e8ea', borderRadius: 'var(--radius-md)', backgroundColor: '#121e52' }} />
50
- <div style={{ flex: 1 }} />
51
- <div style={{ fontFamily: 'Geist', fontSize: '16px', color: '#121e52', textAlign: 'right' }}>4px</div>
52
- </div>
53
-
54
- <div style={{ display: 'flex', alignItems: 'center', gap: '24px' }}>
55
- <div style={{ fontFamily: 'Geist Mono', fontSize: '14px', color: '#121e52', minWidth: '50px' }}>
56
- reg
57
- </div>
58
- <div style={{ width: '41px', height: '41px', border: '1px solid #e7e8ea', borderRadius: 'var(--radius-reg)', backgroundColor: '#121e52' }} />
59
- <div style={{ flex: 1 }} />
60
- <div style={{ fontFamily: 'Geist', fontSize: '16px', color: '#121e52', textAlign: 'right' }}>8px</div>
61
- </div>
62
-
63
- <div style={{ display: 'flex', alignItems: 'center', gap: '24px' }}>
64
- <div style={{ fontFamily: 'Geist Mono', fontSize: '14px', color: '#121e52', minWidth: '50px' }}>
65
- lg
66
- </div>
67
- <div style={{ width: '41px', height: '41px', border: '1px solid #e7e8ea', borderRadius: 'var(--radius-lg)', backgroundColor: '#121e52' }} />
68
- <div style={{ flex: 1 }} />
69
- <div style={{ fontFamily: 'Geist', fontSize: '16px', color: '#121e52', textAlign: 'right' }}>16px</div>
70
- </div>
71
-
72
- <div style={{ display: 'flex', alignItems: 'center', gap: '24px' }}>
73
- <div style={{ fontFamily: 'Geist Mono', fontSize: '14px', color: '#121e52', minWidth: '50px' }}>
74
- xl
75
- </div>
76
- <div style={{ width: '41px', height: '41px', border: '1px solid #e7e8ea', borderRadius: 'var(--radius-xl)', backgroundColor: '#121e52' }} />
77
- <div style={{ flex: 1 }} />
78
- <div style={{ fontFamily: 'Geist', fontSize: '16px', color: '#121e52', textAlign: 'right' }}>24px</div>
79
- </div>
80
- </div>
81
- </div>
82
- ),
83
- }
84
-
85
- export const Spacing: Story = {
86
- render: () => (
87
- <div>
88
- <h2>Spacing Tokens</h2>
89
- <div style={{ display: 'flex', flexDirection: 'column', gap: '16px', marginTop: '24px' }}>
90
- {[
91
- { token: 'zero', value: '0px' },
92
- { token: 'xxs', value: '1px' },
93
- { token: 'xs', value: '2px' },
94
- { token: 'sm', value: '4px' },
95
- { token: 'md', value: '8px' },
96
- { token: 'reg', value: '16px' },
97
- { token: 'lg', value: '24px' },
98
- { token: 'xl', value: '32px' },
99
- { token: 'xxl', value: '64px' },
100
- { token: 'super', value: '128px' },
101
- ].map(({ token, value }) => (
102
- <div key={token} style={{ display: 'flex', alignItems: 'center', gap: '24px' }}>
103
- <div style={{ fontFamily: 'Geist Mono', fontSize: '14px', color: '#121e52', minWidth: '80px' }}>
104
- {token}
105
- </div>
106
- <div style={{ flex: 1, display: 'flex', alignItems: 'center' }}>
107
- <div style={{ width: '32px', height: '32px', backgroundColor: '#121e52', borderRadius: '4px' }} />
108
- <div style={{ height: '32px', backgroundColor: '#1f9ab5', opacity: 0.4, width: value, borderLeft: '1px solid #71e6ff', borderRight: '1px solid #71e6ff' }} />
109
- <div style={{ width: '32px', height: '32px', backgroundColor: '#121e52', borderRadius: '4px' }} />
110
- </div>
111
- <div style={{ fontFamily: 'Geist', fontSize: '16px', color: '#121e52', textAlign: 'right', minWidth: '60px' }}>{value}</div>
112
- </div>
113
- ))}
114
- </div>
115
- </div>
116
- ),
117
- }
118
-
119
- export const Opacity: Story = {
120
- render: () => (
121
- <div>
122
- <h2>Opacity Tokens</h2>
123
- <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fill, minmax(150px, 1fr))', gap: '16px', marginTop: '24px' }}>
124
- {[100, 90, 80, 70, 60, 50, 40, 30, 20, 10, 0].map((opacity) => (
125
- <div key={opacity} style={{ textAlign: 'center' }}>
126
- <div style={{ width: '94px', height: '94px', backgroundColor: '#121e52', opacity: `var(--opacity-${opacity})`, border: '1px solid #e8e9ef', borderRadius: '47px', margin: '0 auto 16px' }} />
127
- <div style={{ fontFamily: 'Geist', fontSize: '15px', fontWeight: 600, color: '#121e52', marginBottom: '8px' }}>
128
- {opacity}%
129
- </div>
130
- <div style={{ fontFamily: 'Geist Mono', fontSize: '14px', color: '#121e52', backgroundColor: '#e8e9ef', padding: '4px 8px', borderRadius: '4px', display: 'inline-block' }}>
131
- {opacity}
132
- </div>
133
- </div>
134
- ))}
135
- </div>
136
- <p style={{ marginTop: '24px', fontFamily: 'Geist', fontSize: '18px', color: '#121e52' }}>
137
- We can interpolate for more refined opacities between the bands eg: 23% = 23 token value.
138
- </p>
139
- </div>
140
- ),
141
- }
@@ -1,2 +0,0 @@
1
- export { ColorsShowcase, ColorSwatch } from './Colors'
2
- export type { ColorGroup } from './Colors'
@@ -1,72 +0,0 @@
1
- @import '../../styles/tokens/typography';
2
-
3
- .typography {
4
- margin: 0;
5
- padding: 0;
6
- }
7
-
8
- // Heading styles
9
- .typography-heading-xxl {
10
- @include typography('heading.xxl');
11
- }
12
-
13
- .typography-heading-xl {
14
- @include typography('heading.xl');
15
- }
16
-
17
- .typography-heading-h1 {
18
- @include typography('heading.h1');
19
- }
20
-
21
- .typography-heading-h2 {
22
- @include typography('heading.h2');
23
- }
24
-
25
- .typography-heading-h3 {
26
- @include typography('heading.h3');
27
- }
28
-
29
- .typography-heading-h4 {
30
- @include typography('heading.h4');
31
- }
32
-
33
- .typography-heading-h5 {
34
- @include typography('heading.h5');
35
- }
36
-
37
- .typography-heading-h6 {
38
- @include typography('heading.h6');
39
- }
40
-
41
- // Body text styles
42
- .typography-text-xl {
43
- @include typography('text.xl');
44
- }
45
-
46
- .typography-text-large {
47
- @include typography('text.large');
48
- }
49
-
50
- .typography-text-regular {
51
- @include typography('text.regular');
52
- }
53
-
54
- .typography-text-small {
55
- @include typography('text.small');
56
- }
57
-
58
- .typography-text-small-emphasis {
59
- @include typography('text.small.emphasis');
60
- }
61
-
62
- .typography-text-small-bold {
63
- @include typography('text.small.bold');
64
- }
65
-
66
- .typography-text-xs {
67
- @include typography('text.xs');
68
- }
69
-
70
- .typography-text-xs-bold {
71
- @include typography('text.xs.bold');
72
- }
@@ -1,266 +0,0 @@
1
- import { Meta, StoryObj } from '@storybook/react'
2
- import React from 'react'
3
- import { Typography } from './Typography'
4
-
5
- export default {
6
- title: 'v2/Design System/Typography',
7
- component: Typography,
8
- argTypes: {
9
- variant: {
10
- control: 'select',
11
- options: [
12
- 'heading.xxl',
13
- 'heading.xl',
14
- 'heading.h1',
15
- 'heading.h2',
16
- 'heading.h3',
17
- 'heading.h4',
18
- 'heading.h5',
19
- 'heading.h6',
20
- 'text.xl',
21
- 'text.large',
22
- 'text.regular',
23
- 'text.small',
24
- 'text.small.emphasis',
25
- 'text.small.bold',
26
- 'text.xs',
27
- 'text.xs.bold'
28
- ],
29
- description: 'Typography variant to apply',
30
- },
31
- as: {
32
- control: 'select',
33
- options: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'span', 'div'],
34
- description: 'HTML element to render as',
35
- },
36
- color: {
37
- control: 'color',
38
- description: 'Custom text color',
39
- },
40
- },
41
- parameters: {
42
- layout: 'padded',
43
- },
44
- } as Meta
45
-
46
- type Story = StoryObj<typeof Typography>
47
-
48
- // Headings
49
- export const HeadingXXL: Story = {
50
- args: {
51
- variant: 'heading.xxl',
52
- children: 'The all-in-one booking platform for Leisure and Hospitality Venues',
53
- as: 'h1',
54
- },
55
- }
56
-
57
- export const HeadingXL: Story = {
58
- args: {
59
- variant: 'heading.xl',
60
- children: 'Extra Large Heading',
61
- as: 'h1',
62
- },
63
- }
64
-
65
- export const HeadingH1: Story = {
66
- args: {
67
- variant: 'heading.h1',
68
- children: 'H1 - Large Heading',
69
- as: 'h1',
70
- },
71
- }
72
-
73
- export const HeadingH2: Story = {
74
- args: {
75
- variant: 'heading.h2',
76
- children: 'H2 - Heading',
77
- as: 'h2',
78
- },
79
- }
80
-
81
- export const HeadingH3: Story = {
82
- args: {
83
- variant: 'heading.h3',
84
- children: 'H3 - Heading',
85
- as: 'h3',
86
- },
87
- }
88
-
89
- export const HeadingH4: Story = {
90
- args: {
91
- variant: 'heading.h4',
92
- children: 'H4 - Heading',
93
- as: 'h4',
94
- },
95
- }
96
-
97
- export const HeadingH5: Story = {
98
- args: {
99
- variant: 'heading.h5',
100
- children: 'H5 - Small Heading',
101
- as: 'h5',
102
- },
103
- }
104
-
105
- export const HeadingH6: Story = {
106
- args: {
107
- variant: 'heading.h6',
108
- children: 'H6 - XS Heading',
109
- as: 'h6',
110
- },
111
- }
112
-
113
- // Body Text
114
- export const BodyTextXL: Story = {
115
- args: {
116
- variant: 'text.xl',
117
- children: 'This is extra large body copy text. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Maecenas faucibus mollis interdum.',
118
- as: 'p',
119
- },
120
- }
121
-
122
- export const BodyTextLarge: Story = {
123
- args: {
124
- variant: 'text.large',
125
- children: 'This is large body copy text. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Maecenas faucibus mollis interdum. Sed posuere consectetur est at lobortis.',
126
- as: 'p',
127
- },
128
- }
129
-
130
- export const BodyTextRegular: Story = {
131
- args: {
132
- variant: 'text.regular',
133
- children: 'This is regular body copy text. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Maecenas faucibus mollis interdum. Sed posuere consectetur est at lobortis. Donec ullamcorper nulla non metus auctor fringilla.',
134
- as: 'p',
135
- },
136
- }
137
-
138
- export const BodyTextSmall: Story = {
139
- args: {
140
- variant: 'text.small',
141
- children: 'This is small body copy text. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Maecenas faucibus mollis interdum.',
142
- as: 'p',
143
- },
144
- }
145
-
146
- export const BodyTextSmallEmphasis: Story = {
147
- args: {
148
- variant: 'text.small.emphasis',
149
- children: 'This is small body copy text with emphasis. Integer posuere erat a ante venenatis dapibus posuere velit aliquet.',
150
- as: 'p',
151
- },
152
- }
153
-
154
- export const BodyTextSmallBold: Story = {
155
- args: {
156
- variant: 'text.small.bold',
157
- children: 'This is small body copy text in bold. Integer posuere erat a ante venenatis dapibus posuere velit aliquet.',
158
- as: 'p',
159
- },
160
- }
161
-
162
- export const BodyTextXS: Story = {
163
- args: {
164
- variant: 'text.xs',
165
- children: 'This is extra small body copy text. Integer posuere erat a ante venenatis dapibus posuere velit aliquet.',
166
- as: 'p',
167
- },
168
- }
169
-
170
- export const BodyTextXSBold: Story = {
171
- args: {
172
- variant: 'text.xs.bold',
173
- children: 'This is extra small body copy text in bold. Integer posuere erat a ante venenatis dapibus posuere velit aliquet.',
174
- as: 'p',
175
- },
176
- }
177
-
178
- // Showcase all variations
179
- export const AllHeadingVariations: Story = {
180
- render: () => (
181
- <div style={{ display: 'flex', flexDirection: 'column', gap: '24px' }}>
182
- <Typography variant="heading.xxl" as="h1">
183
- XXL Heading
184
- </Typography>
185
- <Typography variant="heading.xl" as="h1">
186
- XL Heading
187
- </Typography>
188
- <Typography variant="heading.h1" as="h1">
189
- H1 - Large Heading
190
- </Typography>
191
- <Typography variant="heading.h2" as="h2">
192
- H2 - Heading
193
- </Typography>
194
- <Typography variant="heading.h3" as="h3">
195
- H3 - Heading
196
- </Typography>
197
- <Typography variant="heading.h4" as="h4">
198
- H4 - Heading
199
- </Typography>
200
- <Typography variant="heading.h5" as="h5">
201
- H5 - Small Heading
202
- </Typography>
203
- <Typography variant="heading.h6" as="h6">
204
- H6 - XS Heading
205
- </Typography>
206
- </div>
207
- ),
208
- }
209
-
210
- export const AllBodyVariations: Story = {
211
- render: () => (
212
- <div style={{ display: 'flex', flexDirection: 'column', gap: '16px' }}>
213
- <Typography variant="text.xl" as="p">
214
- Extra large body copy text
215
- </Typography>
216
- <Typography variant="text.large" as="p">
217
- Large body copy text
218
- </Typography>
219
- <Typography variant="text.regular" as="p">
220
- Regular body copy text
221
- </Typography>
222
- <Typography variant="text.small" as="p">
223
- Small body copy text
224
- </Typography>
225
- <Typography variant="text.small.emphasis" as="p">
226
- Small body copy text with emphasis
227
- </Typography>
228
- <Typography variant="text.small.bold" as="p">
229
- Small body copy text in bold
230
- </Typography>
231
- <Typography variant="text.xs" as="p">
232
- Extra small body copy text
233
- </Typography>
234
- <Typography variant="text.xs.bold" as="p">
235
- Extra small body copy text in bold
236
- </Typography>
237
- </div>
238
- ),
239
- }
240
-
241
- // Usage examples
242
- export const UsageExample: Story = {
243
- render: () => (
244
- <div style={{ padding: '24px' }}>
245
- <Typography variant="heading.h1" as="h1">
246
- Page Title
247
- </Typography>
248
- <Typography variant="text.regular" as="p" className="mt-3">
249
- This is regular body text that flows naturally below the heading.
250
- </Typography>
251
- <Typography variant="heading.h2" as="h2" className="mt-8">
252
- Section Heading
253
- </Typography>
254
- <Typography variant="text.regular" as="p" className="mt-3">
255
- This is another paragraph of regular text that provides additional context
256
- and details for the section above.
257
- </Typography>
258
- <Typography variant="heading.h4" as="h4" className="mt-6">
259
- Subsection
260
- </Typography>
261
- <Typography variant="text.small" as="p" className="mt-2">
262
- This is small text used for less prominent information.
263
- </Typography>
264
- </div>
265
- ),
266
- }
@@ -1,56 +0,0 @@
1
- import React from 'react'
2
-
3
- export type TypographyVariant =
4
- | 'heading.xxl'
5
- | 'heading.xl'
6
- | 'heading.h1'
7
- | 'heading.h2'
8
- | 'heading.h3'
9
- | 'heading.h4'
10
- | 'heading.h5'
11
- | 'heading.h6'
12
- | 'text.xl'
13
- | 'text.large'
14
- | 'text.regular'
15
- | 'text.small'
16
- | 'text.small.emphasis'
17
- | 'text.small.bold'
18
- | 'text.xs'
19
- | 'text.xs.bold'
20
-
21
- export interface TypographyProps {
22
- variant?: TypographyVariant
23
- className?: string
24
- children: React.ReactNode
25
- as?: keyof JSX.IntrinsicElements
26
- color?: string
27
- }
28
-
29
- export const Typography: React.FC<TypographyProps> = ({
30
- variant = 'text.regular',
31
- className = '',
32
- children,
33
- as = 'p',
34
- color
35
- }) => {
36
- const Component = as
37
-
38
- const getTypographyClass = (variant: TypographyVariant): string => {
39
- const baseClass = `typography-${variant.replace(/\./g, '-')}`
40
- return baseClass
41
- }
42
-
43
- const classes = [
44
- 'typography',
45
- getTypographyClass(variant),
46
- className
47
- ].filter(Boolean).join(' ')
48
-
49
- const style = color ? { color } : {}
50
-
51
- return (
52
- <Component className={classes} style={style}>
53
- {children}
54
- </Component>
55
- )
56
- }
@@ -1,2 +0,0 @@
1
- export { Typography } from './Typography'
2
- export type { TypographyProps, TypographyVariant } from './Typography'