@licklist/design 0.78.18 → 0.78.20

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 (261) hide show
  1. package/.storybook/main.cjs +55 -6
  2. package/.storybook/preview.jsx +77 -7
  3. package/dist/Maintenance/Maintenance.scss.js +6 -0
  4. package/dist/Maintenance/MaintenancePage.d.ts +12 -0
  5. package/dist/Maintenance/MaintenancePage.d.ts.map +1 -0
  6. package/dist/Maintenance/MaintenancePage.js +98 -0
  7. package/dist/Maintenance/SkeletonSidebar.d.ts +5 -0
  8. package/dist/Maintenance/SkeletonSidebar.d.ts.map +1 -0
  9. package/dist/Maintenance/SkeletonSidebar.js +101 -0
  10. package/dist/PageNotFound/PageNotFound.d.ts +10 -0
  11. package/dist/PageNotFound/PageNotFound.d.ts.map +1 -0
  12. package/dist/PageNotFound/PageNotFound.js +42 -0
  13. package/dist/PageNotFound/index.d.ts +2 -0
  14. package/dist/PageNotFound/index.d.ts.map +1 -0
  15. package/dist/UnderMaintenance/UnderMaintenance.d.ts +4 -0
  16. package/dist/UnderMaintenance/UnderMaintenance.d.ts.map +1 -0
  17. package/dist/UnderMaintenance/UnderMaintenance.js +39 -0
  18. package/dist/UnderMaintenance/UnderMaintenance.scss.js +6 -0
  19. package/dist/UnderMaintenance/index.d.ts +2 -0
  20. package/dist/UnderMaintenance/index.d.ts.map +1 -0
  21. package/dist/auth/Authorizer.d.ts.map +1 -1
  22. package/dist/auth/Authorizer.js +4 -3
  23. package/dist/iframe/ProductWithModifierModal/ModifierSetModal/ProductWithModifierSetModal.js +4 -3
  24. package/dist/iframe/ProductWithModifierModal/ModifierSetModal/controll/ModifierSetControll.js +2 -1
  25. package/dist/iframe/ProductWithModifierModal/ModifierSetModal/controll/ProductControll.js +1 -1
  26. package/dist/index.d.ts +2 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +2 -0
  29. package/dist/notification/components/NotificationPlaceholders.js +1 -1
  30. package/dist/product-set/form/ProductCategoriesControl.d.ts.map +1 -1
  31. package/dist/product-set/form/ProductCategoriesControl.js +13 -5
  32. package/dist/provider/provider-details-input/ProviderDetailsInput.js +1 -1
  33. package/dist/recurrence-input/RecurrenceEndInput.d.ts.map +1 -1
  34. package/dist/recurrence-input/RecurrenceEndInput.js +7 -3
  35. package/dist/sortable-tree/SortableTree.js +1 -26
  36. package/dist/styles/overrides/_functions.scss +1 -1
  37. package/dist/v2/components/Alert/Alert.d.ts +14 -0
  38. package/dist/v2/components/Alert/Alert.d.ts.map +1 -0
  39. package/dist/v2/components/Alert/index.d.ts +3 -0
  40. package/dist/v2/components/Alert/index.d.ts.map +1 -0
  41. package/dist/v2/components/Button/Button.d.ts +10 -0
  42. package/dist/v2/components/Button/Button.d.ts.map +1 -0
  43. package/dist/v2/components/Button/index.d.ts +3 -0
  44. package/dist/v2/components/Button/index.d.ts.map +1 -0
  45. package/dist/v2/components/Colors/Colors.d.ts +21 -0
  46. package/dist/v2/components/Colors/Colors.d.ts.map +1 -0
  47. package/dist/v2/components/Colors/index.d.ts +3 -0
  48. package/dist/v2/components/Colors/index.d.ts.map +1 -0
  49. package/dist/v2/components/Typography/Typography.d.ts +11 -0
  50. package/dist/v2/components/Typography/Typography.d.ts.map +1 -0
  51. package/dist/v2/components/Typography/index.d.ts +3 -0
  52. package/dist/v2/components/Typography/index.d.ts.map +1 -0
  53. package/dist/v2/hooks/useAuth.d.ts +4 -0
  54. package/dist/v2/hooks/useAuth.d.ts.map +1 -0
  55. package/dist/v2/index.d.ts +56 -0
  56. package/dist/v2/index.d.ts.map +1 -0
  57. package/dist/v2/navigation/FigmasAdminSideBar/FigmasAdminSideBar.d.ts +8 -0
  58. package/dist/v2/navigation/FigmasAdminSideBar/FigmasAdminSideBar.d.ts.map +1 -0
  59. package/dist/v2/navigation/FigmasAdminSideBar/index.d.ts +3 -0
  60. package/dist/v2/navigation/FigmasAdminSideBar/index.d.ts.map +1 -0
  61. package/dist/v2/navigation/FigmasSideBar/FigmasSideBar.d.ts +22 -0
  62. package/dist/v2/navigation/FigmasSideBar/FigmasSideBar.d.ts.map +1 -0
  63. package/dist/v2/navigation/FigmasSideBar/index.d.ts +3 -0
  64. package/dist/v2/navigation/FigmasSideBar/index.d.ts.map +1 -0
  65. package/dist/v2/navigation/FigmasTopHat/FigmasTopHat.d.ts +15 -0
  66. package/dist/v2/navigation/FigmasTopHat/FigmasTopHat.d.ts.map +1 -0
  67. package/dist/v2/navigation/FigmasTopHat/index.d.ts +3 -0
  68. package/dist/v2/navigation/FigmasTopHat/index.d.ts.map +1 -0
  69. package/dist/v2/navigation/Navigation/Navigation.d.ts +9 -0
  70. package/dist/v2/navigation/Navigation/Navigation.d.ts.map +1 -0
  71. package/dist/v2/navigation/Navigation/index.d.ts +3 -0
  72. package/dist/v2/navigation/Navigation/index.d.ts.map +1 -0
  73. package/dist/v2/navigation/NavigationItem/NavigationItem.d.ts +12 -0
  74. package/dist/v2/navigation/NavigationItem/NavigationItem.d.ts.map +1 -0
  75. package/dist/v2/navigation/NavigationItem/index.d.ts +3 -0
  76. package/dist/v2/navigation/NavigationItem/index.d.ts.map +1 -0
  77. package/dist/v2/navigation/NavigationSection/NavigationSection.d.ts +8 -0
  78. package/dist/v2/navigation/NavigationSection/NavigationSection.d.ts.map +1 -0
  79. package/dist/v2/navigation/NavigationSection/index.d.ts +3 -0
  80. package/dist/v2/navigation/NavigationSection/index.d.ts.map +1 -0
  81. package/dist/v2/navigation/SideBarToggleLarge/SideBarToggleLarge.d.ts +9 -0
  82. package/dist/v2/navigation/SideBarToggleLarge/SideBarToggleLarge.d.ts.map +1 -0
  83. package/dist/v2/navigation/SideBarToggleLarge/index.d.ts +3 -0
  84. package/dist/v2/navigation/SideBarToggleLarge/index.d.ts.map +1 -0
  85. package/dist/v2/navigation/SidebarUserElement/SidebarUserElement.d.ts +15 -0
  86. package/dist/v2/navigation/SidebarUserElement/SidebarUserElement.d.ts.map +1 -0
  87. package/dist/v2/navigation/SidebarUserElement/index.d.ts +3 -0
  88. package/dist/v2/navigation/SidebarUserElement/index.d.ts.map +1 -0
  89. package/dist/v2/navigation/SidebarWithAuth.d.ts +20 -0
  90. package/dist/v2/navigation/SidebarWithAuth.d.ts.map +1 -0
  91. package/dist/v2/navigation/TopHatControlDisc/TopHatControlDisc.d.ts +9 -0
  92. package/dist/v2/navigation/TopHatControlDisc/TopHatControlDisc.d.ts.map +1 -0
  93. package/dist/v2/navigation/TopHatControlDisc/index.d.ts +3 -0
  94. package/dist/v2/navigation/TopHatControlDisc/index.d.ts.map +1 -0
  95. package/dist/v2/navigation/config.d.ts +3 -0
  96. package/dist/v2/navigation/config.d.ts.map +1 -0
  97. package/dist/v2/navigation/icons/index.d.ts +12 -0
  98. package/dist/v2/navigation/icons/index.d.ts.map +1 -0
  99. package/dist/v2/navigation/index.d.ts +23 -0
  100. package/dist/v2/navigation/index.d.ts.map +1 -0
  101. package/dist/v2/types/navigation.d.ts +17 -0
  102. package/dist/v2/types/navigation.d.ts.map +1 -0
  103. package/package.json +2 -1
  104. package/rollup.config.js +13 -0
  105. package/src/Maintenance/Maintenance.scss +253 -0
  106. package/src/Maintenance/MaintenancePage.tsx +59 -0
  107. package/src/Maintenance/SkeletonSidebar.tsx +56 -0
  108. package/src/PageNotFound/PageNotFound.scss +8 -0
  109. package/src/PageNotFound/PageNotFound.stories.tsx +23 -0
  110. package/src/PageNotFound/PageNotFound.tsx +43 -0
  111. package/src/PageNotFound/index.ts +1 -0
  112. package/src/UnderMaintenance/UnderMaintenance.scss +6 -0
  113. package/src/UnderMaintenance/UnderMaintenance.stories.tsx +23 -0
  114. package/src/UnderMaintenance/UnderMaintenance.tsx +22 -0
  115. package/src/UnderMaintenance/index.ts +1 -0
  116. package/src/auth/Auth.stories.tsx +37 -3
  117. package/src/auth/Authorizer.tsx +3 -2
  118. package/src/auth/ChangePassword/ChangePassword.stories.tsx +1 -8
  119. package/src/auth/Login/Login.stories.tsx +1 -6
  120. package/src/auth/Logout/Logout.stories.tsx +3 -0
  121. package/src/auth/Register/Register.stories.tsx +3 -7
  122. package/src/auth/ResetPassword/ResetPassword.stories.tsx +1 -8
  123. package/src/auth/Social/Social.stories.tsx +1 -6
  124. package/src/collapsible-input-group/CollapsibleInputGroup.stories.tsx +72 -4
  125. package/src/events/edit-event-modal/component/EditEventForm/EditEventForm.stories.tsx +2 -1
  126. package/src/events/edit-recurrent-event-modal/EditRecurrentEventModal.stories.tsx +3 -2
  127. package/src/events/event-card/EventCard.stories.tsx +3 -2
  128. package/src/events/event-statistic-modal/EventStatisticModal.stories.tsx +2 -1
  129. package/src/events/event-venue-map/EventVenueMap.stories.tsx +8 -1
  130. package/src/iframe/ProductWithModifierModal/ModifierSetModal/ProductWithModifierSetModal.tsx +3 -3
  131. package/src/iframe/ProductWithModifierModal/ModifierSetModal/controll/ModifierSetControll.tsx +2 -2
  132. package/src/iframe/ProductWithModifierModal/ModifierSetModal/controll/ProductControll.tsx +1 -1
  133. package/src/iframe/custom-fields/components/CustomDateField.stories.tsx +3 -2
  134. package/src/iframe/event/event-card/IframeEventCard.stories.tsx +7 -5
  135. package/src/iframe/event/event-card/IframeEventCards.stories.tsx +7 -6
  136. package/src/iframe/event/event-description/EventDescription.stories.tsx +3 -2
  137. package/src/iframe/event/event-venue-map/IframeEventVenueMap.stories.tsx +3 -2
  138. package/src/iframe/external-modal/ExternalModal.stories.tsx +3 -0
  139. package/src/iframe/order-process/components/CalendarStepsForm/CalendarStepsForm.stories.tsx +5 -0
  140. package/src/iframe/order-process/components/NavigationSteps/NavigationSteps.stories.tsx +2 -1
  141. package/src/iframe/order-process/components/PaymentCard/PaymentCard.stories.tsx +2 -1
  142. package/src/iframe/page/Page.stories.tsx +9 -8
  143. package/src/iframe/payment/order-items-table/OrderItemsTable.stories.tsx +2 -1
  144. package/src/iframe/payment/payment-status-header/PaymentStatusHeader.stories.tsx +2 -1
  145. package/src/index.ts +2 -0
  146. package/src/logo/Logo.stories.tsx +17 -14
  147. package/src/modals/confirmation/Confirmation.stories.tsx +2 -1
  148. package/src/notification/components/NotificationPlaceholders.stories.tsx +4 -0
  149. package/src/notification/components/NotificationPlaceholders.tsx +1 -1
  150. package/src/product-set/form/ProductCategoriesControl.tsx +12 -6
  151. package/src/product-set/form/ProductSetForm.stories.tsx +13 -4
  152. package/src/provider/location-input/LocationInput.stories.tsx +47 -2
  153. package/src/provider/provider-details-input/ProviderDetailsInput.stories.tsx +10 -1
  154. package/src/provider/provider-details-input/ProviderDetailsInput.tsx +1 -1
  155. package/src/provider/provider-form/ProviderForm.stories.tsx +46 -0
  156. package/src/provider/venue-form/VenueForm.stories.tsx +49 -0
  157. package/src/recurrence-input/RecurrenceEndInput.tsx +7 -5
  158. package/src/recurrence-input/RecurrenceInput.stories.tsx +3 -0
  159. package/src/resource/form/ResourceForm.stories.tsx +2 -1
  160. package/src/sales/guest-profile/previous-bookings/PreviousBookings.stories.tsx +2 -1
  161. package/src/sales/life-time-sales/LifeTimeSalesChart.stories.tsx +2 -1
  162. package/src/sales/manual-booking/select-date-type-control/SelectDateTypeControl.stories.tsx +2 -1
  163. package/src/sales/manual-booking/select-menu/SelectMenu.stories.tsx +2 -1
  164. package/src/sales/modals/payment-modal/PaymentModal.stories.tsx +3 -2
  165. package/src/sales/modals/refund-modal/RefundModal.stories.tsx +5 -4
  166. package/src/sales/payment-form/SalePaymentForm.stories.tsx +3 -2
  167. package/src/setting/dashboard/snippet-templates/card/SnippetTemplateCard.stories.tsx +2 -1
  168. package/src/snippet/snippet-template/SnippetTemplate.stories.tsx +2 -1
  169. package/src/snippet/snippet-template/form/SnippetTemplateForm.stories.tsx +4 -2
  170. package/src/sortable-tree/SortableTree.tsx +1 -1
  171. package/src/sortable-tree/SortableTreeItem.stories.tsx +12 -14
  172. package/src/styles/overrides/_functions.scss +1 -1
  173. package/src/table/Table.stories.tsx +3 -24
  174. package/src/tiptap-editor/TipTapMenu/TipTapMenu.stories.tsx +27 -3
  175. package/src/v2/components/Alert/Alert.scss +186 -0
  176. package/src/v2/components/Alert/Alert.stories.tsx +176 -0
  177. package/src/v2/components/Alert/Alert.tsx +62 -0
  178. package/src/v2/components/Alert/assets/alert-icon.svg +3 -0
  179. package/src/v2/components/Alert/assets/error-icon.svg +3 -0
  180. package/src/v2/components/Alert/assets/info-icon.svg +3 -0
  181. package/src/v2/components/Alert/assets/success-icon.svg +3 -0
  182. package/src/v2/components/Alert/index.ts +2 -0
  183. package/src/v2/components/Button/Button.scss +19 -0
  184. package/src/v2/components/Button/Button.stories.tsx +93 -0
  185. package/src/v2/components/Button/Button.tsx +37 -0
  186. package/src/v2/components/Button/index.ts +3 -0
  187. package/src/v2/components/Colors/Colors.scss +64 -0
  188. package/src/v2/components/Colors/Colors.stories.tsx +143 -0
  189. package/src/v2/components/Colors/Colors.tsx +51 -0
  190. package/src/v2/components/Colors/ColorsAliases.stories.tsx +285 -0
  191. package/src/v2/components/Colors/Sizes.stories.tsx +141 -0
  192. package/src/v2/components/Colors/index.ts +2 -0
  193. package/src/v2/components/Typography/Typography.scss +72 -0
  194. package/src/v2/components/Typography/Typography.stories.tsx +266 -0
  195. package/src/v2/components/Typography/Typography.tsx +56 -0
  196. package/src/v2/components/Typography/index.ts +2 -0
  197. package/src/v2/hooks/useAuth.ts +40 -0
  198. package/src/v2/index.ts +105 -0
  199. package/src/v2/navigation/FigmasAdminSideBar/FigmasAdminSideBar.scss +148 -0
  200. package/src/v2/navigation/FigmasAdminSideBar/FigmasAdminSideBar.stories.tsx +132 -0
  201. package/src/v2/navigation/FigmasAdminSideBar/FigmasAdminSideBar.tsx +272 -0
  202. package/src/v2/navigation/FigmasAdminSideBar/index.ts +2 -0
  203. package/src/v2/navigation/FigmasSideBar/FigmasSideBar.scss +214 -0
  204. package/src/v2/navigation/FigmasSideBar/FigmasSideBar.stories.tsx +164 -0
  205. package/src/v2/navigation/FigmasSideBar/FigmasSideBar.tsx +310 -0
  206. package/src/v2/navigation/FigmasSideBar/index.ts +2 -0
  207. package/src/v2/navigation/FigmasTopHat/FigmasTopHat.scss +291 -0
  208. package/src/v2/navigation/FigmasTopHat/FigmasTopHat.stories.tsx +201 -0
  209. package/src/v2/navigation/FigmasTopHat/FigmasTopHat.tsx +158 -0
  210. package/src/v2/navigation/FigmasTopHat/assets/bell-icon.svg +3 -0
  211. package/src/v2/navigation/FigmasTopHat/assets/disc-icon.svg +4 -0
  212. package/src/v2/navigation/FigmasTopHat/assets/inbox-icon.svg +3 -0
  213. package/src/v2/navigation/FigmasTopHat/assets/logo-desktop-1.svg +3 -0
  214. package/src/v2/navigation/FigmasTopHat/assets/logo-desktop-2.svg +4 -0
  215. package/src/v2/navigation/FigmasTopHat/assets/user-icon.svg +4 -0
  216. package/src/v2/navigation/FigmasTopHat/index.ts +2 -0
  217. package/src/v2/navigation/Navigation/Navigation.scss +15 -0
  218. package/src/v2/navigation/Navigation/Navigation.stories.tsx +137 -0
  219. package/src/v2/navigation/Navigation/Navigation.tsx +127 -0
  220. package/src/v2/navigation/Navigation/index.ts +3 -0
  221. package/src/v2/navigation/NavigationItem/NavigationItem.scss +61 -0
  222. package/src/v2/navigation/NavigationItem/NavigationItem.stories.tsx +110 -0
  223. package/src/v2/navigation/NavigationItem/NavigationItem.tsx +38 -0
  224. package/src/v2/navigation/NavigationItem/index.ts +3 -0
  225. package/src/v2/navigation/NavigationSection/NavigationSection.scss +20 -0
  226. package/src/v2/navigation/NavigationSection/NavigationSection.tsx +19 -0
  227. package/src/v2/navigation/NavigationSection/index.ts +3 -0
  228. package/src/v2/navigation/SideBarToggleLarge/SideBarToggleLarge.scss +64 -0
  229. package/src/v2/navigation/SideBarToggleLarge/SideBarToggleLarge.stories.tsx +183 -0
  230. package/src/v2/navigation/SideBarToggleLarge/SideBarToggleLarge.tsx +30 -0
  231. package/src/v2/navigation/SideBarToggleLarge/assets/sidebar-icon.svg +5 -0
  232. package/src/v2/navigation/SideBarToggleLarge/index.ts +2 -0
  233. package/src/v2/navigation/SidebarUserElement/SidebarUserElement.scss +148 -0
  234. package/src/v2/navigation/SidebarUserElement/SidebarUserElement.stories.tsx +342 -0
  235. package/src/v2/navigation/SidebarUserElement/SidebarUserElement.tsx +113 -0
  236. package/src/v2/navigation/SidebarUserElement/index.ts +2 -0
  237. package/src/v2/navigation/SidebarWithAuth.stories.tsx +208 -0
  238. package/src/v2/navigation/SidebarWithAuth.tsx +49 -0
  239. package/src/v2/navigation/TopHatControlDisc/TopHatControlDisc.scss +57 -0
  240. package/src/v2/navigation/TopHatControlDisc/TopHatControlDisc.stories.tsx +153 -0
  241. package/src/v2/navigation/TopHatControlDisc/TopHatControlDisc.tsx +30 -0
  242. package/src/v2/navigation/TopHatControlDisc/assets/disc-icon.svg +4 -0
  243. package/src/v2/navigation/TopHatControlDisc/index.ts +2 -0
  244. package/src/v2/navigation/config.tsx +150 -0
  245. package/src/v2/navigation/icons/index.tsx +72 -0
  246. package/src/v2/navigation/index.ts +23 -0
  247. package/src/v2/styles/components/Button.scss +168 -0
  248. package/src/v2/styles/form/NewInput.scss +172 -0
  249. package/src/v2/styles/index.scss +5 -0
  250. package/src/v2/styles/navigation/Navigation.scss +17 -0
  251. package/src/v2/styles/navigation/NavigationItem.scss +86 -0
  252. package/src/v2/styles/navigation/NavigationSection.scss +26 -0
  253. package/src/v2/styles/navigation/_index.scss +9 -0
  254. package/src/v2/styles/tokens/_aliases.scss +199 -0
  255. package/src/v2/styles/tokens/_colors.scss +121 -0
  256. package/src/v2/styles/tokens/_sizes.scss +122 -0
  257. package/src/v2/styles/tokens/_status.scss +108 -0
  258. package/src/v2/styles/tokens/_typography.scss +146 -0
  259. package/src/v2/types/navigation.ts +17 -0
  260. package/src/zone/form/ZoneForm.stories.tsx +2 -1
  261. package/styles/overrides/_functions.scss +6 -0
@@ -0,0 +1,49 @@
1
+ import React from 'react'
2
+ import { FigmasSideBar } from './FigmasSideBar'
3
+ import type { NavigationItem } from '../types/navigation'
4
+ import { useCanAccess } from '../hooks/useAuth'
5
+
6
+ export interface SidebarWithAuthProps {
7
+ expanded?: boolean
8
+ venueName?: string
9
+ venueId?: string
10
+ venueImage?: string
11
+ navigationItems?: NavigationItem[]
12
+ onNavigation?: (path: string) => void
13
+ activePath?: string
14
+ authCredentials?: {
15
+ roles: string[]
16
+ permissions: string[]
17
+ isAdmin: boolean
18
+ isVenueUser: boolean
19
+ venueId?: string
20
+ }
21
+ }
22
+
23
+ export const SidebarWithAuth: React.FC<SidebarWithAuthProps> = ({
24
+ expanded = true,
25
+ venueName = "Sharky's Soft Play",
26
+ venueId = "123",
27
+ venueImage,
28
+ navigationItems,
29
+ onNavigation,
30
+ activePath,
31
+ authCredentials,
32
+ }) => {
33
+ // Filter navigation items based on auth
34
+ const accessibleItems = authCredentials && navigationItems
35
+ ? navigationItems.filter(item => useCanAccess(authCredentials, item))
36
+ : navigationItems || []
37
+
38
+ return (
39
+ <FigmasSideBar
40
+ expanded={expanded}
41
+ venueName={venueName}
42
+ venueId={venueId}
43
+ venueImage={venueImage}
44
+ navigationItems={accessibleItems}
45
+ onNavigation={onNavigation}
46
+ activePath={activePath}
47
+ />
48
+ )
49
+ }
@@ -0,0 +1,57 @@
1
+ @import '../../../styles/overrides/functions';
2
+
3
+ .tophat-control-disc {
4
+ background: var(--surfaces-main-background-primary, #ffffff);
5
+ box-sizing: border-box;
6
+ display: flex;
7
+ flex-direction: column;
8
+ align-items: center;
9
+ justify-content: center;
10
+ padding: 4px;
11
+ border-radius: 8px;
12
+ cursor: pointer;
13
+ transition: all 0.2s ease;
14
+ position: relative;
15
+ width: 100%;
16
+ height: 100%;
17
+
18
+ &:hover {
19
+ background: var(--surfaces-main-background-tertiary, #E8E9EF);
20
+ }
21
+
22
+ &:focus-visible {
23
+ outline: 2px solid var(--fills-main-fill-primary, #14215A);
24
+ outline-offset: 2px;
25
+ }
26
+
27
+ &--hover {
28
+ background: var(--surfaces-main-background-tertiary, #E8E9EF);
29
+ }
30
+
31
+ &--pressed {
32
+ background: var(--surfaces-main-background-quaternary, #D1D3D8);
33
+ transform: translateY(1px);
34
+ }
35
+
36
+ &__icon {
37
+ overflow: hidden;
38
+ flex-shrink: 0;
39
+ width: 32px;
40
+ height: 32px;
41
+ position: relative;
42
+
43
+ &-inner {
44
+ position: absolute;
45
+ inset: 15.625%;
46
+ width: 22px;
47
+ height: 22px;
48
+
49
+ .tophat-control-disc__icon-img {
50
+ width: 100%;
51
+ height: 100%;
52
+ display: block;
53
+ max-width: none;
54
+ }
55
+ }
56
+ }
57
+ }
@@ -0,0 +1,153 @@
1
+ import { Meta, StoryObj } from '@storybook/react'
2
+ import React from 'react'
3
+ import { TopHatControlDisc } from './TopHatControlDisc'
4
+
5
+ export default {
6
+ title: 'v2/Navigation/Top Hat Control Disc',
7
+ component: TopHatControlDisc,
8
+ argTypes: {
9
+ variant: {
10
+ control: 'select',
11
+ options: ['default', 'hover', 'pressed'],
12
+ description: 'Visual state of the control',
13
+ },
14
+ onClick: { action: 'clicked' },
15
+ className: {
16
+ control: 'text',
17
+ description: 'Additional CSS classes',
18
+ },
19
+ },
20
+ parameters: {
21
+ layout: 'centered',
22
+ },
23
+ } as Meta
24
+
25
+ type Story = StoryObj<typeof TopHatControlDisc>
26
+
27
+ export const Default: Story = {
28
+ args: {
29
+ variant: 'default',
30
+ },
31
+ decorators: [
32
+ (Story) => (
33
+ <div style={{ width: '48px', height: '48px', border: '1px solid #E8E9EF', borderRadius: '8px' }}>
34
+ <Story />
35
+ </div>
36
+ ),
37
+ ],
38
+ }
39
+
40
+ export const Hover: Story = {
41
+ args: {
42
+ variant: 'hover',
43
+ },
44
+ decorators: [
45
+ (Story) => (
46
+ <div style={{ width: '48px', height: '48px', border: '1px solid #E8E9EF', borderRadius: '8px' }}>
47
+ <Story />
48
+ </div>
49
+ ),
50
+ ],
51
+ }
52
+
53
+ export const Pressed: Story = {
54
+ args: {
55
+ variant: 'pressed',
56
+ },
57
+ decorators: [
58
+ (Story) => (
59
+ <div style={{ width: '48px', height: '48px', border: '1px solid #E8E9EF', borderRadius: '8px' }}>
60
+ <Story />
61
+ </div>
62
+ ),
63
+ ],
64
+ }
65
+
66
+ export const Interactive: Story = {
67
+ render: function (args) {
68
+ const [variant, setVariant] = React.useState<'default' | 'hover' | 'pressed'>('default');
69
+
70
+ return (
71
+ <div style={{ width: '48px', height: '48px', border: '1px solid #E8E9EF', borderRadius: '8px' }}>
72
+ <TopHatControlDisc
73
+ {...args}
74
+ variant={variant}
75
+ onClick={() => {
76
+ setVariant(variant === 'pressed' ? 'default' : 'pressed');
77
+ setTimeout(() => setVariant('default'), 150);
78
+ }}
79
+ />
80
+ <div style={{ position: 'absolute', top: '60px', left: '0', display: 'flex', gap: '8px', flexDirection: 'column' }}>
81
+ <button
82
+ onClick={() => setVariant('default')}
83
+ style={{
84
+ padding: '4px 8px',
85
+ backgroundColor: variant === 'default' ? '#14215A' : '#E8E9EF',
86
+ color: variant === 'default' ? 'white' : '#121E52',
87
+ border: 'none',
88
+ borderRadius: '4px',
89
+ cursor: 'pointer',
90
+ fontSize: '12px'
91
+ }}
92
+ >
93
+ Default
94
+ </button>
95
+ <button
96
+ onClick={() => setVariant('hover')}
97
+ style={{
98
+ padding: '4px 8px',
99
+ backgroundColor: variant === 'hover' ? '#14215A' : '#E8E9EF',
100
+ color: variant === 'hover' ? 'white' : '#121E52',
101
+ border: 'none',
102
+ borderRadius: '4px',
103
+ cursor: 'pointer',
104
+ fontSize: '12px'
105
+ }}
106
+ >
107
+ Hover
108
+ </button>
109
+ <button
110
+ onClick={() => setVariant('pressed')}
111
+ style={{
112
+ padding: '4px 8px',
113
+ backgroundColor: variant === 'pressed' ? '#14215A' : '#E8E9EF',
114
+ color: variant === 'pressed' ? 'white' : '#121E52',
115
+ border: 'none',
116
+ borderRadius: '4px',
117
+ cursor: 'pointer',
118
+ fontSize: '12px'
119
+ }}
120
+ >
121
+ Pressed
122
+ </button>
123
+ </div>
124
+ </div>
125
+ );
126
+ },
127
+ args: {},
128
+ }
129
+
130
+ export const MultipleStates: Story = {
131
+ render: () => (
132
+ <div style={{ display: 'flex', gap: '16px', alignItems: 'center' }}>
133
+ <div style={{ textAlign: 'center' }}>
134
+ <div style={{ width: '48px', height: '48px', border: '1px solid #E8E9EF', borderRadius: '8px', marginBottom: '8px' }}>
135
+ <TopHatControlDisc variant="default" />
136
+ </div>
137
+ <span style={{ fontSize: '12px', color: '#626A90' }}>Default</span>
138
+ </div>
139
+ <div style={{ textAlign: 'center' }}>
140
+ <div style={{ width: '48px', height: '48px', border: '1px solid #E8E9EF', borderRadius: '8px', marginBottom: '8px' }}>
141
+ <TopHatControlDisc variant="hover" />
142
+ </div>
143
+ <span style={{ fontSize: '12px', color: '#626A90' }}>Hover</span>
144
+ </div>
145
+ <div style={{ textAlign: 'center' }}>
146
+ <div style={{ width: '48px', height: '48px', border: '1px solid #E8E9EF', borderRadius: '8px', marginBottom: '8px' }}>
147
+ <TopHatControlDisc variant="pressed" />
148
+ </div>
149
+ <span style={{ fontSize: '12px', color: '#626A90' }}>Pressed</span>
150
+ </div>
151
+ </div>
152
+ ),
153
+ }
@@ -0,0 +1,30 @@
1
+ import React from 'react'
2
+ import './TopHatControlDisc.scss'
3
+ import discIcon from './assets/disc-icon.svg'
4
+
5
+ export interface TopHatControlDiscProps {
6
+ variant?: 'default' | 'hover' | 'pressed'
7
+ onClick?: () => void
8
+ className?: string
9
+ }
10
+
11
+ export const TopHatControlDisc: React.FC<TopHatControlDiscProps> = ({
12
+ variant = 'default',
13
+ onClick,
14
+ className,
15
+ }) => {
16
+ return (
17
+ <div
18
+ className={`tophat-control-disc tophat-control-disc--${variant} ${className || ''}`}
19
+ onClick={onClick}
20
+ data-name="Property 1=Default"
21
+ data-node-id="779:7127"
22
+ >
23
+ <div className="tophat-control-disc__icon" data-name="Assets / Icons" data-node-id="779:7128">
24
+ <div className="tophat-control-disc__icon-inner" data-name="Vector" data-node-id="I779:7128;81:688">
25
+ <img alt="Disc control" className="tophat-control-disc__icon-img" src={discIcon} />
26
+ </div>
27
+ </div>
28
+ </div>
29
+ )
30
+ }
@@ -0,0 +1,4 @@
1
+ <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <circle cx="11" cy="11" r="10" fill="var(--fills-main-fill-primary, #14215A)" opacity="0.1" />
3
+ <circle cx="11" cy="11" r="6" fill="var(--fills-main-fill-primary, #14215A)" />
4
+ </svg>
@@ -0,0 +1,2 @@
1
+ export { TopHatControlDisc } from './TopHatControlDisc'
2
+ export type { TopHatControlDiscProps } from './TopHatControlDisc'
@@ -0,0 +1,150 @@
1
+ import React from 'react'
2
+ import type { NavigationItem } from '../types/navigation'
3
+
4
+ // Icon components (these would be your actual icon imports)
5
+ const homeIcon = (
6
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
7
+ <path d="M17.727 20.118H6.273a.83.83 0 0 1-.818-.84v-7.557H3l8.45-7.884a.803.803 0 0 1 1.1 0L21 11.72h-2.454v7.557a.83.83 0 0 1-.819.84Zm-10.636-1.68h9.818v-8.265L12 5.593l-4.91 4.58v8.266Z" fill="var(--fills-main-fill-primary, #14215A)" />
8
+ </svg>
9
+ )
10
+
11
+ const datesIcon = (
12
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
13
+ <path d="M6.75 5.25v12h12v1.5H5.25V5.25h1.5Zm11.47 2.47 1.06 1.06L15 13.06l-2.25-2.249-3.22 3.22-1.06-1.061 4.28-4.28L15 10.938l3.22-3.22Z" fill="var(--fills-main-fill-primary, #14215A)" />
14
+ </svg>
15
+ )
16
+
17
+ const bookingsIcon = (
18
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
19
+ <path d="M4.5 19.5a6 6 0 0 1 12 0H15a4.5 4.5 0 1 0-9 0H4.5Zm6-6.75A4.499 4.499 0 0 1 6 8.25c0-2.486 2.014-4.5 4.5-4.5S15 5.764 15 8.25s-2.014 4.5-4.5 4.5Zm0-1.5a3 3 0 1 0 0-6 3 3 0 1 0 0 6Zm6.213 2.777A6.001 6.001 0 0 1 20.25 19.5h-1.5c0-1.827-1.089-3.4-2.653-4.105l.616-1.368Zm-.516-8.467A4.125 4.125 0 0 1 15 13.483v-1.51a2.625 2.625 0 0 0 .78-4.956l.417-1.457Z" fill="var(--fills-main-fill-primary, #14215A)" />
20
+ </svg>
21
+ )
22
+
23
+ const loyaltyIcon = (
24
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
25
+ <path d="M12.004 19.502a7.5 7.5 0 1 1 0-15 7.5 7.5 0 0 1 0 15Zm0-1.5a6 6 0 1 0 0-12 6 6 0 0 0 0 12Zm-2.25-5.25h-.75v-1.5h.75v-.75a2.625 2.625 0 0 1 5.06-.984l-1.49.373a1.124 1.124 0 0 0-2.07.61v.75h2.25v1.5h-2.25v1.5h3.75v1.5h-6v-1.5h.75v-1.5Z" fill="var(--fills-main-fill-primary, #14215A)" />
26
+ </svg>
27
+ )
28
+
29
+ const customersIcon = (
30
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
31
+ <path d="M4.5 19.5a6 6 0 0 1 12 0H15a4.5 4.5 0 1 0-9 0H4.5Zm6-6.75A4.499 4.499 0 0 1 6 8.25c0-2.486 2.014-4.5 4.5-4.5S15 5.764 15 8.25s-2.014 4.5-4.5 4.5Zm0-1.5a3 3 0 1 0 0-6 3 3 0 1 0 0 6Zm6.213 2.777A6.001 6.001 0 0 1 20.25 19.5h-1.5c0-1.827-1.089-3.4-2.653-4.105l.616-1.368Zm-.516-8.467A4.125 4.125 0 0 1 15 13.483v-1.51a2.625 2.625 0 0 0 .78-4.956l.417-1.457Z" fill="var(--fills-main-fill-primary, #14215A)" />
32
+ </svg>
33
+ )
34
+
35
+ const reportsIcon = (
36
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
37
+ <path d="M11.25 8.25h1.5v7.5h-1.5v-7.5Zm3 3h1.5v4.5h-1.5v-4.5Zm-6 1.5h1.5v3h-1.5v-3Zm6-6.75h-7.5v12h10.5V9h-3V6Zm-9-.756c0-.411.336-.744.749-.744H15l3.75 3.75v10.494a.75.75 0 0 1-.745.756H5.995a.75.75 0 0 1-.745-.744V5.244Z" fill="var(--fills-main-fill-primary, #14215A)" />
38
+ </svg>
39
+ )
40
+
41
+ const analyticsIcon = (
42
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
43
+ <path d="M6.75 5.25v12h12v1.5H5.25V5.25h1.5Zm11.47 2.47 1.06 1.06L15 13.06l-2.25-2.249-3.22 3.22-1.06-1.061 4.28-4.28L15 10.938l3.22-3.22Z" fill="var(--fills-main-fill-primary, #14215A)" />
44
+ </svg>
45
+ )
46
+
47
+ const emailIcon = (
48
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
49
+ <path d="M10.72 16.363s5.264-.634 8.02.957l.725-.194a.75.75 0 0 0 .53-.919l-1.177-4.392a1.5 1.5 0 0 0-.752-2.807L16.89 4.616a.75.75 0 0 0-.918-.53l-.725.194c-1.59 2.755-6.468 4.839-6.468 4.839l-2.898.776a1.5 1.5 0 0 0-1.06 1.837l1.164 4.347a1.5 1.5 0 0 0 1.838 1.06l.724-.194 1.695 3.428 1.449-.388-.97-3.622Zm-.17-6.43a25.444 25.444 0 0 0 1.647-.92c1.12-.683 2.514-1.66 3.549-2.868l2.494 9.31c-1.5-.529-3.196-.678-4.507-.71-.713-.017-1.364 0-1.887.026L10.55 9.934Zm-4.281 1.41 2.897-.775 1.165 4.346-2.898.777-1.164-4.347Z" fill="var(--fills-main-fill-primary, #14215A)" />
50
+ </svg>
51
+ )
52
+
53
+ const waiversIcon = (
54
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
55
+ <path d="M12 13.5V15a4.5 4.5 0 0 0-4.5 4.5H6a6 6 0 0 1 6-6Zm0-.75a4.499 4.499 0 0 1-4.5-4.5c0-2.486 2.014-4.5 4.5-4.5s4.5 2.014 4.5 4.5-2.014 4.5-4.5 4.5Zm0-1.5a3 3 0 1 0 0-6 3 3 0 1 0 0 6Zm4.5 7.875-2.204 1.159.42-2.455-1.782-1.738 2.464-.358L16.5 13.5l1.102 2.233 2.465.358-1.784 1.738.421 2.455-2.204-1.159Z" fill="var(--fills-main-fill-primary, #14215A)" />
56
+ </svg>
57
+ )
58
+
59
+ const settingsIcon = (
60
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
61
+ <path d="M4.5 11.729c0-.648.082-1.278.237-1.878A2.25 2.25 0 0 0 6.743 6.38 7.492 7.492 0 0 1 9.995 4.5a2.25 2.25 0 0 0 4.01 0c1.244.344 2.357 1 3.252 1.88a2.25 2.25 0 0 0 2.006 3.471c.155.6.237 1.23.237 1.878a7.51 7.51 0 0 1-.237 1.878 2.25 2.25 0 0 0-2.006 3.471 7.492 7.492 0 0 1-3.252 1.88 2.25 2.25 0 0 0-4.01 0 7.492 7.492 0 0 1-3.252-1.88 2.25 2.25 0 0 0-2.006-3.471 7.514 7.514 0 0 1-.237-1.878Zm3.603 2.25c.472.818.608 1.76.423 2.643.306.217.632.406.973.563A3.745 3.745 0 0 1 12 16.229c.946 0 1.829.353 2.501.956a5.99 5.99 0 0 0 .973-.563 3.744 3.744 0 0 1 .423-2.643 3.744 3.744 0 0 1 2.077-1.688 6.099 6.099 0 0 0 0-1.124 3.744 3.744 0 0 1-2.077-1.688 3.744 3.744 0 0 1-.423-2.643 5.997 5.997 0 0 0-.973-.563A3.745 3.745 0 0 1 12 7.23a3.745 3.745 0 0 1-2.501-.956 5.993 5.993 0 0 0-.973.563c.185.883.05 1.824-.423 2.643a3.745 3.745 0 0 1-2.077 1.688 6.097 6.097 0 0 0 0 1.124c.857.282 1.604.87 2.077 1.688Zm3.897 0a2.25 2.25 0 1 1 0-4.5 2.25 2.25 0 0 1 0 4.5Zm0-1.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z" fill="var(--fills-main-fill-primary, #14215A)" />
62
+ </svg>
63
+ )
64
+
65
+ export const NAVIGATION_ITEMS: NavigationItem[] = [
66
+ {
67
+ id: 'home',
68
+ label: 'Home',
69
+ icon: homeIcon,
70
+ path: '/home',
71
+ venueRequired: true
72
+ },
73
+ {
74
+ id: 'dates',
75
+ label: 'Dates & Events',
76
+ icon: datesIcon,
77
+ path: '/dates',
78
+ venueRequired: true
79
+ },
80
+ {
81
+ id: 'bookings',
82
+ label: 'Bookings & Enquiries',
83
+ icon: bookingsIcon,
84
+ path: '/bookings',
85
+ venueRequired: true,
86
+ requiredPermissions: ['view_bookings']
87
+ },
88
+ {
89
+ id: 'booking-types',
90
+ label: 'Booking Types',
91
+ icon: datesIcon,
92
+ path: '/booking-types',
93
+ venueRequired: true,
94
+ requiredPermissions: ['manage_bookings']
95
+ },
96
+ {
97
+ id: 'loyalty',
98
+ label: 'Loyalty',
99
+ icon: loyaltyIcon,
100
+ path: '/loyalty',
101
+ venueRequired: true
102
+ },
103
+ {
104
+ id: 'customers',
105
+ label: 'Customers',
106
+ icon: customersIcon,
107
+ path: '/customers',
108
+ venueRequired: true,
109
+ requiredPermissions: ['view_customers']
110
+ },
111
+ {
112
+ id: 'reports',
113
+ label: 'Reports',
114
+ icon: reportsIcon,
115
+ path: '/reports',
116
+ venueRequired: true,
117
+ requiredPermissions: ['view_reports']
118
+ },
119
+ {
120
+ id: 'analytics',
121
+ label: 'Analytics',
122
+ icon: analyticsIcon,
123
+ path: '/analytics',
124
+ venueRequired: true,
125
+ requiredPermissions: ['view_analytics']
126
+ },
127
+ {
128
+ id: 'email',
129
+ label: 'Email & SMS',
130
+ icon: emailIcon,
131
+ path: '/email',
132
+ venueRequired: true,
133
+ requiredPermissions: ['send_messages']
134
+ },
135
+ {
136
+ id: 'waivers',
137
+ label: 'Waivers',
138
+ icon: waiversIcon,
139
+ path: '/waivers',
140
+ venueRequired: true
141
+ },
142
+ {
143
+ id: 'settings',
144
+ label: 'Settings',
145
+ icon: settingsIcon,
146
+ path: '/settings',
147
+ venueRequired: true,
148
+ requiredPermissions: ['manage_venue_settings']
149
+ }
150
+ ]
@@ -0,0 +1,72 @@
1
+ import React from 'react'
2
+
3
+ export const DashboardIcon = () => (
4
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
5
+ <path
6
+ fill="var(--fills-main-fill-primary, #14215A)"
7
+ d="M17.727 20.118H6.273a.83.83 0 0 1-.818-.84v-7.557H3l8.45-7.884a.803.803 0 0 1 1.1 0L21 11.72h-2.454v7.557a.83.83 0 0 1-.819.84Zm-10.636-1.68h9.818v-8.265L12 5.593l-4.91 4.58v8.266Z"
8
+ />
9
+ </svg>
10
+ )
11
+
12
+ export const CompanyIcon = () => (
13
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
14
+ <path d="M19.5 18.75H4.5V17.25H5.25V6C5.25 5.58579 5.58579 5.25 6 5.25H16.5C16.9142 5.25 17.25 5.58579 17.25 6V9.75H18.75V17.25H19.5V18.75ZM15.75 17.25H17.25V11.25H12.75V17.25H14.25V12.75H15.75V17.25ZM15.75 9.75V6.75H6.75V17.25H11.25V9.75H15.75ZM8.25 11.25H9.75V12.75H8.25V11.25ZM8.25 14.25H9.75V15.75H8.25V14.25ZM8.25 8.25H9.75V9.75H8.25V8.25Z" fill="var(--fills-main-fill-primary, #14215A)" />
15
+ </svg>
16
+ )
17
+
18
+ export const VenueIcon = () => (
19
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none">
20
+ <path fill="#000" fillOpacity=".1" d="m6 7.5 6.75-2.625V18H6V7.5Z" />
21
+ <path fill="var(--fills-main-fill-primary, #14215A)" d="M5.25 17.25V7.275a.75.75 0 0 1 .494-.704l7.253-2.638a.375.375 0 0 1 .503.353V8l4.737 1.58a.75.75 0 0 1 .513.71v6.96h1.5v1.5H3.75v-1.5h1.5Zm1.5 0H12V5.892L6.75 7.8v9.45Zm10.5 0v-6.419l-3.75-1.25v7.67h3.75Z" />
22
+ </svg>
23
+ )
24
+
25
+ export const MarketingIcon = () => (
26
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none">
27
+ <path fill="var(--fills-main-fill-primary, #14215A)" d="M10.72 16.363s5.264-.634 8.02.957l.725-.194a.75.75 0 0 0 .53-.919l-1.177-4.392a1.5 1.5 0 0 0-.752-2.807L16.89 4.616a.75.75 0 0 0-.918-.53l-.725.194c-1.59 2.755-6.468 4.839-6.468 4.839l-2.898.776a1.5 1.5 0 0 0-1.06 1.837l1.164 4.347a1.5 1.5 0 0 0 1.838 1.06l.724-.194 1.695 3.428 1.449-.388-.97-3.622Zm-.17-6.43a25.444 25.444 0 0 0 1.647-.92c1.12-.683 2.514-1.66 3.549-2.868l2.494 9.31c-1.5-.529-3.196-.678-4.507-.71-.713-.017-1.364 0-1.887.026L10.55 9.934Zm-4.281 1.41 2.897-.775 1.165 4.346-2.898.777-1.164-4.347Z" />
28
+ </svg>
29
+ )
30
+
31
+ export const AdminIcon = () => (
32
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none">
33
+ <path fill="var(--fills-main-fill-primary, #14215A)" d="M12 13.5V15a4.5 4.5 0 0 0-4.5 4.5H6a6 6 0 0 1 6-6Zm0-.75a4.499 4.499 0 0 1-4.5-4.5c0-2.486 2.014-4.5 4.5-4.5s4.5 2.014 4.5 4.5-2.014 4.5-4.5 4.5Zm0-1.5a3 3 0 1 0 0-6 3 3 0 1 0 0 6Zm4.5 7.875-2.204 1.159.42-2.455-1.782-1.738 2.464-.358L16.5 13.5l1.102 2.233 2.465.358-1.784 1.738.421 2.455-2.204-1.159Z" />
34
+ </svg>
35
+ )
36
+
37
+ export const ProfileIcon = () => (
38
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none">
39
+ <path fill="var(--fills-main-fill-primary, #14215A)" d="M6 19.5a6 6 0 0 1 12 0h-1.5a4.5 4.5 0 1 0-9 0H6Zm6-6.75a4.499 4.499 0 0 1-4.5-4.5c0-2.486 2.014-4.5 4.5-4.5s4.5 2.014 4.5 4.5-2.014 4.5-4.5 4.5Zm0-1.5a3 3 0 1 0 0-6 3 3 0 1 0 0 6Z" />
40
+ </svg>
41
+ )
42
+
43
+ export const CustomersIcon = () => (
44
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none">
45
+ <path fill="var(--fills-main-fill-primary, #14215A)" d="M4.5 19.5a6 6 0 0 1 12 0H15a4.5 4.5 0 1 0-9 0H4.5Zm6-6.75A4.499 4.499 0 0 1 6 8.25c0-2.486 2.014-4.5 4.5-4.5S15 5.764 15 8.25s-2.014 4.5-4.5 4.5Zm0-1.5a3 3 0 1 0 0-6 3 3 0 1 0 0 6Zm6.213 2.777A6.001 6.001 0 0 1 20.25 19.5h-1.5c0-1.827-1.089-3.4-2.653-4.105l.616-1.368Zm-.516-8.467A4.125 4.125 0 0 1 15 13.483v-1.51a2.625 2.625 0 0 0 .78-4.956l.417-1.457Z" />
46
+ </svg>
47
+ )
48
+
49
+ export const ReportsIcon = () => (
50
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none">
51
+ <path fill="var(--fills-main-fill-primary, #14215A)" d="M11.25 8.25h1.5v7.5h-1.5v-7.5Zm3 3h1.5v4.5h-1.5v-4.5Zm-6 1.5h1.5v3h-1.5v-3Zm6-6.75h-7.5v12h10.5V9h-3V6Zm-9-.756c0-.411.336-.744.749-.744H15l3.75 3.75v10.494a.75.75 0 0 1-.745.756H5.995a.75.75 0 0 1-.745-.744V5.244Z" />
52
+ </svg>
53
+ )
54
+
55
+ export const AnalyticsIcon = () => (
56
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none">
57
+ <path fill="var(--fills-main-fill-primary, #14215A)" d="M6.75 5.25v12h12v1.5H5.25V5.25h1.5Zm11.47 2.47 1.06 1.06L15 13.06l-2.25-2.249-3.22 3.22-1.06-1.061 4.28-4.28L15 10.938l3.22-3.22Z" />
58
+ </svg>
59
+ )
60
+
61
+ export const PaymentsIcon = () => (
62
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none">
63
+ <path fill="var(--fills-main-fill-primary, #14215A)" d="M12.004 19.502a7.5 7.5 0 1 1 0-15 7.5 7.5 0 0 1 0 15Zm0-1.5a6 6 0 1 0 0-12 6 6 0 0 0 0 12Zm-2.25-5.25h-.75v-1.5h.75v-.75a2.625 2.625 0 0 1 5.06-.984l-1.49.373a1.124 1.124 0 0 0-2.07.61v.75h2.25v1.5h-2.25v1.5h3.75v1.5h-6v-1.5h.75v-1.5Z" />
64
+ </svg>
65
+ )
66
+
67
+ export const SettingsIcon = () => (
68
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none">
69
+ <path fill="var(--fills-main-fill-primary, #14215A)" d="M4.5 11.729c0-.648.082-1.278.237-1.878A2.25 2.25 0 0 0 6.743 6.38 7.492 7.492 0 0 1 9.995 4.5a2.25 2.25 0 0 0 4.01 0c1.244.344 2.357 1 3.252 1.88a2.25 2.25 0 0 0 2.006 3.471c.155.6.237 1.23.237 1.878a7.51 7.51 0 0 1-.237 1.878 2.25 2.25 0 0 0-2.006 3.471 7.492 7.492 0 0 1-3.252 1.88 2.25 2.25 0 0 0-4.01 0 7.492 7.492 0 0 1-3.252-1.88 2.25 2.25 0 0 0-2.006-3.471 7.514 7.514 0 0 1-.237-1.878Zm3.603 2.25c.472.818.608 1.76.423 2.643.306.217.632.406.973.563A3.745 3.745 0 0 1 12 16.229c.946 0 1.829.353 2.501.956a5.99 5.99 0 0 0 .973-.563 3.744 3.744 0 0 1 .423-2.643 3.744 3.744 0 0 1 2.077-1.688 6.099 6.099 0 0 0 0-1.124 3.744 3.744 0 0 1-2.077-1.688 3.744 3.744 0 0 1-.423-2.643 5.997 5.997 0 0 0-.973-.563A3.745 3.745 0 0 1 12 7.23a3.745 3.745 0 0 1-2.501-.956 5.993 5.993 0 0 0-.973.563c.185.883.05 1.824-.423 2.643a3.745 3.745 0 0 1-2.077 1.688 6.097 6.097 0 0 0 0 1.124c.857.282 1.604.87 2.077 1.688Zm3.897 0a2.25 2.25 0 1 1 0-4.5 2.25 2.25 0 0 1 0 4.5Zm0-1.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z" />
70
+ </svg>
71
+ )
72
+
@@ -0,0 +1,23 @@
1
+ export { Navigation } from './Navigation'
2
+ export type { NavigationProps } from './Navigation'
3
+ export { NavigationItem } from './NavigationItem'
4
+ export type { NavigationItemProps } from './NavigationItem'
5
+ export { NavigationSection } from './NavigationSection'
6
+ export type { NavigationSectionProps } from './NavigationSection'
7
+ export { FigmasSideBar } from './FigmasSideBar'
8
+ export type { FigmasSideBarProps } from './FigmasSideBar'
9
+ export { FigmasAdminSideBar } from './FigmasAdminSideBar'
10
+ export type { FigmasAdminSideBarProps } from './FigmasAdminSideBar'
11
+ export { FigmasTopHat } from './FigmasTopHat'
12
+ export type { FigmasTopHatProps } from './FigmasTopHat'
13
+ export { TopHatControlDisc } from './TopHatControlDisc'
14
+ export type { TopHatControlDiscProps } from './TopHatControlDisc'
15
+ export { SideBarToggleLarge } from './SideBarToggleLarge'
16
+ export type { SideBarToggleLargeProps } from './SideBarToggleLarge'
17
+ export { SidebarUserElement } from './SidebarUserElement'
18
+ export type { SidebarUserElementProps } from './SidebarUserElement'
19
+ export { SidebarWithAuth } from './SidebarWithAuth'
20
+ export type { SidebarWithAuthProps } from './SidebarWithAuth'
21
+ export { NAVIGATION_ITEMS } from './config'
22
+ export * from './icons'
23
+