@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.
- package/.storybook/main.cjs +55 -6
- package/.storybook/preview.jsx +77 -7
- package/dist/Maintenance/Maintenance.scss.js +6 -0
- package/dist/Maintenance/MaintenancePage.d.ts +12 -0
- package/dist/Maintenance/MaintenancePage.d.ts.map +1 -0
- package/dist/Maintenance/MaintenancePage.js +98 -0
- package/dist/Maintenance/SkeletonSidebar.d.ts +5 -0
- package/dist/Maintenance/SkeletonSidebar.d.ts.map +1 -0
- package/dist/Maintenance/SkeletonSidebar.js +101 -0
- package/dist/PageNotFound/PageNotFound.d.ts +10 -0
- package/dist/PageNotFound/PageNotFound.d.ts.map +1 -0
- package/dist/PageNotFound/PageNotFound.js +42 -0
- package/dist/PageNotFound/index.d.ts +2 -0
- package/dist/PageNotFound/index.d.ts.map +1 -0
- package/dist/UnderMaintenance/UnderMaintenance.d.ts +4 -0
- package/dist/UnderMaintenance/UnderMaintenance.d.ts.map +1 -0
- package/dist/UnderMaintenance/UnderMaintenance.js +39 -0
- package/dist/UnderMaintenance/UnderMaintenance.scss.js +6 -0
- package/dist/UnderMaintenance/index.d.ts +2 -0
- package/dist/UnderMaintenance/index.d.ts.map +1 -0
- package/dist/auth/Authorizer.d.ts.map +1 -1
- package/dist/auth/Authorizer.js +4 -3
- package/dist/iframe/ProductWithModifierModal/ModifierSetModal/ProductWithModifierSetModal.js +4 -3
- package/dist/iframe/ProductWithModifierModal/ModifierSetModal/controll/ModifierSetControll.js +2 -1
- package/dist/iframe/ProductWithModifierModal/ModifierSetModal/controll/ProductControll.js +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/notification/components/NotificationPlaceholders.js +1 -1
- package/dist/product-set/form/ProductCategoriesControl.d.ts.map +1 -1
- package/dist/product-set/form/ProductCategoriesControl.js +13 -5
- package/dist/provider/provider-details-input/ProviderDetailsInput.js +1 -1
- package/dist/recurrence-input/RecurrenceEndInput.d.ts.map +1 -1
- package/dist/recurrence-input/RecurrenceEndInput.js +7 -3
- package/dist/sortable-tree/SortableTree.js +1 -26
- package/dist/styles/overrides/_functions.scss +1 -1
- package/dist/v2/components/Alert/Alert.d.ts +14 -0
- package/dist/v2/components/Alert/Alert.d.ts.map +1 -0
- package/dist/v2/components/Alert/index.d.ts +3 -0
- package/dist/v2/components/Alert/index.d.ts.map +1 -0
- package/dist/v2/components/Button/Button.d.ts +10 -0
- package/dist/v2/components/Button/Button.d.ts.map +1 -0
- package/dist/v2/components/Button/index.d.ts +3 -0
- package/dist/v2/components/Button/index.d.ts.map +1 -0
- package/dist/v2/components/Colors/Colors.d.ts +21 -0
- package/dist/v2/components/Colors/Colors.d.ts.map +1 -0
- package/dist/v2/components/Colors/index.d.ts +3 -0
- package/dist/v2/components/Colors/index.d.ts.map +1 -0
- package/dist/v2/components/Typography/Typography.d.ts +11 -0
- package/dist/v2/components/Typography/Typography.d.ts.map +1 -0
- package/dist/v2/components/Typography/index.d.ts +3 -0
- package/dist/v2/components/Typography/index.d.ts.map +1 -0
- package/dist/v2/hooks/useAuth.d.ts +4 -0
- package/dist/v2/hooks/useAuth.d.ts.map +1 -0
- package/dist/v2/index.d.ts +56 -0
- package/dist/v2/index.d.ts.map +1 -0
- package/dist/v2/navigation/FigmasAdminSideBar/FigmasAdminSideBar.d.ts +8 -0
- package/dist/v2/navigation/FigmasAdminSideBar/FigmasAdminSideBar.d.ts.map +1 -0
- package/dist/v2/navigation/FigmasAdminSideBar/index.d.ts +3 -0
- package/dist/v2/navigation/FigmasAdminSideBar/index.d.ts.map +1 -0
- package/dist/v2/navigation/FigmasSideBar/FigmasSideBar.d.ts +22 -0
- package/dist/v2/navigation/FigmasSideBar/FigmasSideBar.d.ts.map +1 -0
- package/dist/v2/navigation/FigmasSideBar/index.d.ts +3 -0
- package/dist/v2/navigation/FigmasSideBar/index.d.ts.map +1 -0
- package/dist/v2/navigation/FigmasTopHat/FigmasTopHat.d.ts +15 -0
- package/dist/v2/navigation/FigmasTopHat/FigmasTopHat.d.ts.map +1 -0
- package/dist/v2/navigation/FigmasTopHat/index.d.ts +3 -0
- package/dist/v2/navigation/FigmasTopHat/index.d.ts.map +1 -0
- package/dist/v2/navigation/Navigation/Navigation.d.ts +9 -0
- package/dist/v2/navigation/Navigation/Navigation.d.ts.map +1 -0
- package/dist/v2/navigation/Navigation/index.d.ts +3 -0
- package/dist/v2/navigation/Navigation/index.d.ts.map +1 -0
- package/dist/v2/navigation/NavigationItem/NavigationItem.d.ts +12 -0
- package/dist/v2/navigation/NavigationItem/NavigationItem.d.ts.map +1 -0
- package/dist/v2/navigation/NavigationItem/index.d.ts +3 -0
- package/dist/v2/navigation/NavigationItem/index.d.ts.map +1 -0
- package/dist/v2/navigation/NavigationSection/NavigationSection.d.ts +8 -0
- package/dist/v2/navigation/NavigationSection/NavigationSection.d.ts.map +1 -0
- package/dist/v2/navigation/NavigationSection/index.d.ts +3 -0
- package/dist/v2/navigation/NavigationSection/index.d.ts.map +1 -0
- package/dist/v2/navigation/SideBarToggleLarge/SideBarToggleLarge.d.ts +9 -0
- package/dist/v2/navigation/SideBarToggleLarge/SideBarToggleLarge.d.ts.map +1 -0
- package/dist/v2/navigation/SideBarToggleLarge/index.d.ts +3 -0
- package/dist/v2/navigation/SideBarToggleLarge/index.d.ts.map +1 -0
- package/dist/v2/navigation/SidebarUserElement/SidebarUserElement.d.ts +15 -0
- package/dist/v2/navigation/SidebarUserElement/SidebarUserElement.d.ts.map +1 -0
- package/dist/v2/navigation/SidebarUserElement/index.d.ts +3 -0
- package/dist/v2/navigation/SidebarUserElement/index.d.ts.map +1 -0
- package/dist/v2/navigation/SidebarWithAuth.d.ts +20 -0
- package/dist/v2/navigation/SidebarWithAuth.d.ts.map +1 -0
- package/dist/v2/navigation/TopHatControlDisc/TopHatControlDisc.d.ts +9 -0
- package/dist/v2/navigation/TopHatControlDisc/TopHatControlDisc.d.ts.map +1 -0
- package/dist/v2/navigation/TopHatControlDisc/index.d.ts +3 -0
- package/dist/v2/navigation/TopHatControlDisc/index.d.ts.map +1 -0
- package/dist/v2/navigation/config.d.ts +3 -0
- package/dist/v2/navigation/config.d.ts.map +1 -0
- package/dist/v2/navigation/icons/index.d.ts +12 -0
- package/dist/v2/navigation/icons/index.d.ts.map +1 -0
- package/dist/v2/navigation/index.d.ts +23 -0
- package/dist/v2/navigation/index.d.ts.map +1 -0
- package/dist/v2/types/navigation.d.ts +17 -0
- package/dist/v2/types/navigation.d.ts.map +1 -0
- package/package.json +2 -1
- package/rollup.config.js +13 -0
- package/src/Maintenance/Maintenance.scss +253 -0
- package/src/Maintenance/MaintenancePage.tsx +59 -0
- package/src/Maintenance/SkeletonSidebar.tsx +56 -0
- package/src/PageNotFound/PageNotFound.scss +8 -0
- package/src/PageNotFound/PageNotFound.stories.tsx +23 -0
- package/src/PageNotFound/PageNotFound.tsx +43 -0
- package/src/PageNotFound/index.ts +1 -0
- package/src/UnderMaintenance/UnderMaintenance.scss +6 -0
- package/src/UnderMaintenance/UnderMaintenance.stories.tsx +23 -0
- package/src/UnderMaintenance/UnderMaintenance.tsx +22 -0
- package/src/UnderMaintenance/index.ts +1 -0
- package/src/auth/Auth.stories.tsx +37 -3
- package/src/auth/Authorizer.tsx +3 -2
- package/src/auth/ChangePassword/ChangePassword.stories.tsx +1 -8
- package/src/auth/Login/Login.stories.tsx +1 -6
- package/src/auth/Logout/Logout.stories.tsx +3 -0
- package/src/auth/Register/Register.stories.tsx +3 -7
- package/src/auth/ResetPassword/ResetPassword.stories.tsx +1 -8
- package/src/auth/Social/Social.stories.tsx +1 -6
- package/src/collapsible-input-group/CollapsibleInputGroup.stories.tsx +72 -4
- package/src/events/edit-event-modal/component/EditEventForm/EditEventForm.stories.tsx +2 -1
- package/src/events/edit-recurrent-event-modal/EditRecurrentEventModal.stories.tsx +3 -2
- package/src/events/event-card/EventCard.stories.tsx +3 -2
- package/src/events/event-statistic-modal/EventStatisticModal.stories.tsx +2 -1
- package/src/events/event-venue-map/EventVenueMap.stories.tsx +8 -1
- package/src/iframe/ProductWithModifierModal/ModifierSetModal/ProductWithModifierSetModal.tsx +3 -3
- package/src/iframe/ProductWithModifierModal/ModifierSetModal/controll/ModifierSetControll.tsx +2 -2
- package/src/iframe/ProductWithModifierModal/ModifierSetModal/controll/ProductControll.tsx +1 -1
- package/src/iframe/custom-fields/components/CustomDateField.stories.tsx +3 -2
- package/src/iframe/event/event-card/IframeEventCard.stories.tsx +7 -5
- package/src/iframe/event/event-card/IframeEventCards.stories.tsx +7 -6
- package/src/iframe/event/event-description/EventDescription.stories.tsx +3 -2
- package/src/iframe/event/event-venue-map/IframeEventVenueMap.stories.tsx +3 -2
- package/src/iframe/external-modal/ExternalModal.stories.tsx +3 -0
- package/src/iframe/order-process/components/CalendarStepsForm/CalendarStepsForm.stories.tsx +5 -0
- package/src/iframe/order-process/components/NavigationSteps/NavigationSteps.stories.tsx +2 -1
- package/src/iframe/order-process/components/PaymentCard/PaymentCard.stories.tsx +2 -1
- package/src/iframe/page/Page.stories.tsx +9 -8
- package/src/iframe/payment/order-items-table/OrderItemsTable.stories.tsx +2 -1
- package/src/iframe/payment/payment-status-header/PaymentStatusHeader.stories.tsx +2 -1
- package/src/index.ts +2 -0
- package/src/logo/Logo.stories.tsx +17 -14
- package/src/modals/confirmation/Confirmation.stories.tsx +2 -1
- package/src/notification/components/NotificationPlaceholders.stories.tsx +4 -0
- package/src/notification/components/NotificationPlaceholders.tsx +1 -1
- package/src/product-set/form/ProductCategoriesControl.tsx +12 -6
- package/src/product-set/form/ProductSetForm.stories.tsx +13 -4
- package/src/provider/location-input/LocationInput.stories.tsx +47 -2
- package/src/provider/provider-details-input/ProviderDetailsInput.stories.tsx +10 -1
- package/src/provider/provider-details-input/ProviderDetailsInput.tsx +1 -1
- package/src/provider/provider-form/ProviderForm.stories.tsx +46 -0
- package/src/provider/venue-form/VenueForm.stories.tsx +49 -0
- package/src/recurrence-input/RecurrenceEndInput.tsx +7 -5
- package/src/recurrence-input/RecurrenceInput.stories.tsx +3 -0
- package/src/resource/form/ResourceForm.stories.tsx +2 -1
- package/src/sales/guest-profile/previous-bookings/PreviousBookings.stories.tsx +2 -1
- package/src/sales/life-time-sales/LifeTimeSalesChart.stories.tsx +2 -1
- package/src/sales/manual-booking/select-date-type-control/SelectDateTypeControl.stories.tsx +2 -1
- package/src/sales/manual-booking/select-menu/SelectMenu.stories.tsx +2 -1
- package/src/sales/modals/payment-modal/PaymentModal.stories.tsx +3 -2
- package/src/sales/modals/refund-modal/RefundModal.stories.tsx +5 -4
- package/src/sales/payment-form/SalePaymentForm.stories.tsx +3 -2
- package/src/setting/dashboard/snippet-templates/card/SnippetTemplateCard.stories.tsx +2 -1
- package/src/snippet/snippet-template/SnippetTemplate.stories.tsx +2 -1
- package/src/snippet/snippet-template/form/SnippetTemplateForm.stories.tsx +4 -2
- package/src/sortable-tree/SortableTree.tsx +1 -1
- package/src/sortable-tree/SortableTreeItem.stories.tsx +12 -14
- package/src/styles/overrides/_functions.scss +1 -1
- package/src/table/Table.stories.tsx +3 -24
- package/src/tiptap-editor/TipTapMenu/TipTapMenu.stories.tsx +27 -3
- package/src/v2/components/Alert/Alert.scss +186 -0
- package/src/v2/components/Alert/Alert.stories.tsx +176 -0
- package/src/v2/components/Alert/Alert.tsx +62 -0
- package/src/v2/components/Alert/assets/alert-icon.svg +3 -0
- package/src/v2/components/Alert/assets/error-icon.svg +3 -0
- package/src/v2/components/Alert/assets/info-icon.svg +3 -0
- package/src/v2/components/Alert/assets/success-icon.svg +3 -0
- package/src/v2/components/Alert/index.ts +2 -0
- package/src/v2/components/Button/Button.scss +19 -0
- package/src/v2/components/Button/Button.stories.tsx +93 -0
- package/src/v2/components/Button/Button.tsx +37 -0
- package/src/v2/components/Button/index.ts +3 -0
- package/src/v2/components/Colors/Colors.scss +64 -0
- package/src/v2/components/Colors/Colors.stories.tsx +143 -0
- package/src/v2/components/Colors/Colors.tsx +51 -0
- package/src/v2/components/Colors/ColorsAliases.stories.tsx +285 -0
- package/src/v2/components/Colors/Sizes.stories.tsx +141 -0
- package/src/v2/components/Colors/index.ts +2 -0
- package/src/v2/components/Typography/Typography.scss +72 -0
- package/src/v2/components/Typography/Typography.stories.tsx +266 -0
- package/src/v2/components/Typography/Typography.tsx +56 -0
- package/src/v2/components/Typography/index.ts +2 -0
- package/src/v2/hooks/useAuth.ts +40 -0
- package/src/v2/index.ts +105 -0
- package/src/v2/navigation/FigmasAdminSideBar/FigmasAdminSideBar.scss +148 -0
- package/src/v2/navigation/FigmasAdminSideBar/FigmasAdminSideBar.stories.tsx +132 -0
- package/src/v2/navigation/FigmasAdminSideBar/FigmasAdminSideBar.tsx +272 -0
- package/src/v2/navigation/FigmasAdminSideBar/index.ts +2 -0
- package/src/v2/navigation/FigmasSideBar/FigmasSideBar.scss +214 -0
- package/src/v2/navigation/FigmasSideBar/FigmasSideBar.stories.tsx +164 -0
- package/src/v2/navigation/FigmasSideBar/FigmasSideBar.tsx +310 -0
- package/src/v2/navigation/FigmasSideBar/index.ts +2 -0
- package/src/v2/navigation/FigmasTopHat/FigmasTopHat.scss +291 -0
- package/src/v2/navigation/FigmasTopHat/FigmasTopHat.stories.tsx +201 -0
- package/src/v2/navigation/FigmasTopHat/FigmasTopHat.tsx +158 -0
- package/src/v2/navigation/FigmasTopHat/assets/bell-icon.svg +3 -0
- package/src/v2/navigation/FigmasTopHat/assets/disc-icon.svg +4 -0
- package/src/v2/navigation/FigmasTopHat/assets/inbox-icon.svg +3 -0
- package/src/v2/navigation/FigmasTopHat/assets/logo-desktop-1.svg +3 -0
- package/src/v2/navigation/FigmasTopHat/assets/logo-desktop-2.svg +4 -0
- package/src/v2/navigation/FigmasTopHat/assets/user-icon.svg +4 -0
- package/src/v2/navigation/FigmasTopHat/index.ts +2 -0
- package/src/v2/navigation/Navigation/Navigation.scss +15 -0
- package/src/v2/navigation/Navigation/Navigation.stories.tsx +137 -0
- package/src/v2/navigation/Navigation/Navigation.tsx +127 -0
- package/src/v2/navigation/Navigation/index.ts +3 -0
- package/src/v2/navigation/NavigationItem/NavigationItem.scss +61 -0
- package/src/v2/navigation/NavigationItem/NavigationItem.stories.tsx +110 -0
- package/src/v2/navigation/NavigationItem/NavigationItem.tsx +38 -0
- package/src/v2/navigation/NavigationItem/index.ts +3 -0
- package/src/v2/navigation/NavigationSection/NavigationSection.scss +20 -0
- package/src/v2/navigation/NavigationSection/NavigationSection.tsx +19 -0
- package/src/v2/navigation/NavigationSection/index.ts +3 -0
- package/src/v2/navigation/SideBarToggleLarge/SideBarToggleLarge.scss +64 -0
- package/src/v2/navigation/SideBarToggleLarge/SideBarToggleLarge.stories.tsx +183 -0
- package/src/v2/navigation/SideBarToggleLarge/SideBarToggleLarge.tsx +30 -0
- package/src/v2/navigation/SideBarToggleLarge/assets/sidebar-icon.svg +5 -0
- package/src/v2/navigation/SideBarToggleLarge/index.ts +2 -0
- package/src/v2/navigation/SidebarUserElement/SidebarUserElement.scss +148 -0
- package/src/v2/navigation/SidebarUserElement/SidebarUserElement.stories.tsx +342 -0
- package/src/v2/navigation/SidebarUserElement/SidebarUserElement.tsx +113 -0
- package/src/v2/navigation/SidebarUserElement/index.ts +2 -0
- package/src/v2/navigation/SidebarWithAuth.stories.tsx +208 -0
- package/src/v2/navigation/SidebarWithAuth.tsx +49 -0
- package/src/v2/navigation/TopHatControlDisc/TopHatControlDisc.scss +57 -0
- package/src/v2/navigation/TopHatControlDisc/TopHatControlDisc.stories.tsx +153 -0
- package/src/v2/navigation/TopHatControlDisc/TopHatControlDisc.tsx +30 -0
- package/src/v2/navigation/TopHatControlDisc/assets/disc-icon.svg +4 -0
- package/src/v2/navigation/TopHatControlDisc/index.ts +2 -0
- package/src/v2/navigation/config.tsx +150 -0
- package/src/v2/navigation/icons/index.tsx +72 -0
- package/src/v2/navigation/index.ts +23 -0
- package/src/v2/styles/components/Button.scss +168 -0
- package/src/v2/styles/form/NewInput.scss +172 -0
- package/src/v2/styles/index.scss +5 -0
- package/src/v2/styles/navigation/Navigation.scss +17 -0
- package/src/v2/styles/navigation/NavigationItem.scss +86 -0
- package/src/v2/styles/navigation/NavigationSection.scss +26 -0
- package/src/v2/styles/navigation/_index.scss +9 -0
- package/src/v2/styles/tokens/_aliases.scss +199 -0
- package/src/v2/styles/tokens/_colors.scss +121 -0
- package/src/v2/styles/tokens/_sizes.scss +122 -0
- package/src/v2/styles/tokens/_status.scss +108 -0
- package/src/v2/styles/tokens/_typography.scss +146 -0
- package/src/v2/types/navigation.ts +17 -0
- package/src/zone/form/ZoneForm.stories.tsx +2 -1
- 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,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
|
+
|