@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,291 @@
|
|
|
1
|
+
@import '../../../styles/overrides/functions';
|
|
2
|
+
|
|
3
|
+
.figmas-tophat {
|
|
4
|
+
background: var(--surfaces-main-background-secondary, #F8F8FA);
|
|
5
|
+
border-bottom: 1px solid var(--borders-main-border-primary, #E8E9EF);
|
|
6
|
+
box-sizing: border-box;
|
|
7
|
+
display: flex;
|
|
8
|
+
align-items: center;
|
|
9
|
+
justify-content: space-between;
|
|
10
|
+
width: 100%;
|
|
11
|
+
|
|
12
|
+
&--desktop {
|
|
13
|
+
padding: 4px;
|
|
14
|
+
width: 1369px;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&--mobile {
|
|
18
|
+
padding: 4px 4px 4px 16px;
|
|
19
|
+
width: 370px;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
&__left-elements {
|
|
23
|
+
display: flex;
|
|
24
|
+
flex: 1 0 0;
|
|
25
|
+
gap: 8px;
|
|
26
|
+
align-items: center;
|
|
27
|
+
min-height: 0;
|
|
28
|
+
min-width: 0;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
&__sidebar-toggle {
|
|
32
|
+
background: var(--surfaces-main-background-primary, #ffffff);
|
|
33
|
+
border: 1px solid var(--borders-main-border-primary, #E8E9EF);
|
|
34
|
+
box-sizing: border-box;
|
|
35
|
+
display: flex;
|
|
36
|
+
gap: 8px;
|
|
37
|
+
align-items: flex-start;
|
|
38
|
+
justify-content: center;
|
|
39
|
+
padding: 10px 8px;
|
|
40
|
+
border-radius: 6px;
|
|
41
|
+
cursor: pointer;
|
|
42
|
+
transition: all 0.2s ease;
|
|
43
|
+
|
|
44
|
+
&:hover {
|
|
45
|
+
background: var(--surfaces-main-background-tertiary, #E8E9EF);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
&:focus-visible {
|
|
49
|
+
outline: 2px solid var(--fills-main-fill-primary, #14215A);
|
|
50
|
+
outline-offset: 2px;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
&__sidebar-icon {
|
|
55
|
+
display: grid;
|
|
56
|
+
grid-template-columns: max-content;
|
|
57
|
+
grid-template-rows: max-content;
|
|
58
|
+
justify-items: start;
|
|
59
|
+
line-height: 0;
|
|
60
|
+
width: 24px;
|
|
61
|
+
height: 20px;
|
|
62
|
+
|
|
63
|
+
svg {
|
|
64
|
+
width: 100%;
|
|
65
|
+
height: 100%;
|
|
66
|
+
display: block;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
&__logo-container {
|
|
71
|
+
flex-shrink: 0;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
&__logo {
|
|
75
|
+
height: 32px;
|
|
76
|
+
overflow: hidden;
|
|
77
|
+
width: 124px;
|
|
78
|
+
position: relative;
|
|
79
|
+
|
|
80
|
+
&-shape1 {
|
|
81
|
+
position: absolute;
|
|
82
|
+
top: 0.05%;
|
|
83
|
+
right: 74.87%;
|
|
84
|
+
bottom: 0.16%;
|
|
85
|
+
left: 0.01%;
|
|
86
|
+
display: flex;
|
|
87
|
+
align-items: center;
|
|
88
|
+
justify-content: center;
|
|
89
|
+
|
|
90
|
+
.figmas-tophat__logo-img {
|
|
91
|
+
width: 17.523px;
|
|
92
|
+
height: 17.523px;
|
|
93
|
+
transform: rotate(314.61deg) skewX(359.221deg);
|
|
94
|
+
flex: none;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
&-shape2 {
|
|
99
|
+
position: absolute;
|
|
100
|
+
top: 25.44%;
|
|
101
|
+
right: 4.15%;
|
|
102
|
+
bottom: 25.3%;
|
|
103
|
+
left: 27.75%;
|
|
104
|
+
|
|
105
|
+
.figmas-tophat__logo-img {
|
|
106
|
+
width: 100%;
|
|
107
|
+
height: 100%;
|
|
108
|
+
display: block;
|
|
109
|
+
max-width: none;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
&__mobile-logo-container {
|
|
115
|
+
flex-shrink: 0;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
&__mobile-logo {
|
|
119
|
+
height: 29px;
|
|
120
|
+
overflow: hidden;
|
|
121
|
+
width: 112px;
|
|
122
|
+
position: relative;
|
|
123
|
+
|
|
124
|
+
&-shape1 {
|
|
125
|
+
position: absolute;
|
|
126
|
+
top: 0.05%;
|
|
127
|
+
right: 74.87%;
|
|
128
|
+
bottom: 0.16%;
|
|
129
|
+
left: 0.01%;
|
|
130
|
+
display: flex;
|
|
131
|
+
align-items: center;
|
|
132
|
+
justify-content: center;
|
|
133
|
+
|
|
134
|
+
svg {
|
|
135
|
+
width: 17.523px;
|
|
136
|
+
height: 17.523px;
|
|
137
|
+
transform: rotate(314.61deg) skewX(359.221deg);
|
|
138
|
+
flex: none;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
&-shape2 {
|
|
143
|
+
position: absolute;
|
|
144
|
+
top: 25.44%;
|
|
145
|
+
right: 4.15%;
|
|
146
|
+
bottom: 25.3%;
|
|
147
|
+
left: 27.75%;
|
|
148
|
+
|
|
149
|
+
svg {
|
|
150
|
+
width: 100%;
|
|
151
|
+
height: 100%;
|
|
152
|
+
display: block;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
&__user-controls {
|
|
158
|
+
box-sizing: border-box;
|
|
159
|
+
display: flex;
|
|
160
|
+
gap: 8px;
|
|
161
|
+
align-items: center;
|
|
162
|
+
justify-content: flex-end;
|
|
163
|
+
padding-left: 0;
|
|
164
|
+
padding-right: 0;
|
|
165
|
+
flex-shrink: 0;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
&__control {
|
|
169
|
+
background: var(--surfaces-main-background-primary, #ffffff);
|
|
170
|
+
box-sizing: border-box;
|
|
171
|
+
display: flex;
|
|
172
|
+
align-items: center;
|
|
173
|
+
justify-content: center;
|
|
174
|
+
border-radius: 8px;
|
|
175
|
+
cursor: pointer;
|
|
176
|
+
transition: all 0.2s ease;
|
|
177
|
+
position: relative;
|
|
178
|
+
|
|
179
|
+
&:hover {
|
|
180
|
+
background: var(--surfaces-main-background-tertiary, #E8E9EF);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
&:focus-visible {
|
|
184
|
+
outline: 2px solid var(--fills-main-fill-primary, #14215A);
|
|
185
|
+
outline-offset: 2px;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
&--disc {
|
|
189
|
+
flex-direction: column;
|
|
190
|
+
padding: 4px;
|
|
191
|
+
min-width: 40px;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
&--inbox,
|
|
195
|
+
&--bell {
|
|
196
|
+
min-width: 40px;
|
|
197
|
+
padding: 2px 4px 2px 2px;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
&--user {
|
|
201
|
+
flex-direction: column;
|
|
202
|
+
padding: 4px;
|
|
203
|
+
min-width: 40px;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
&__control-icon {
|
|
208
|
+
overflow: hidden;
|
|
209
|
+
flex-shrink: 0;
|
|
210
|
+
width: 32px;
|
|
211
|
+
height: 32px;
|
|
212
|
+
position: relative;
|
|
213
|
+
|
|
214
|
+
&-inner {
|
|
215
|
+
position: absolute;
|
|
216
|
+
inset: 15.625%;
|
|
217
|
+
width: 22px;
|
|
218
|
+
height: 22px;
|
|
219
|
+
|
|
220
|
+
.figmas-tophat__control-icon-img {
|
|
221
|
+
width: 100%;
|
|
222
|
+
height: 100%;
|
|
223
|
+
display: block;
|
|
224
|
+
max-width: none;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
// Special positioning for disc control icon
|
|
230
|
+
&__control--disc &__control-icon-inner {
|
|
231
|
+
left: 5px;
|
|
232
|
+
top: 5px;
|
|
233
|
+
width: 22px;
|
|
234
|
+
height: 22px;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
// Special positioning for inbox control icon
|
|
238
|
+
&__control--inbox &__control-icon-inner {
|
|
239
|
+
inset: 21.88% 18.75%;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
// Special positioning for bell control icon
|
|
243
|
+
&__control--bell &__control-icon-inner {
|
|
244
|
+
inset: 18.75% 23.44% 14.06% 23.44%;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
&__user-initials {
|
|
248
|
+
position: absolute;
|
|
249
|
+
font-family: 'Geist', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;
|
|
250
|
+
font-weight: 800;
|
|
251
|
+
font-size: 8px;
|
|
252
|
+
line-height: 13px;
|
|
253
|
+
color: var(--labels-main-label-secondary, #626A90);
|
|
254
|
+
text-align: center;
|
|
255
|
+
top: 14px;
|
|
256
|
+
left: 20px;
|
|
257
|
+
transform: translateX(-50%);
|
|
258
|
+
width: 18px;
|
|
259
|
+
height: 12px;
|
|
260
|
+
margin: 0;
|
|
261
|
+
white-space: pre-wrap;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
&__notification-badge {
|
|
265
|
+
border: 1px solid var(--borders-main-border-colour-overlay, rgba(18, 30, 82, 0.1));
|
|
266
|
+
box-sizing: border-box;
|
|
267
|
+
display: flex;
|
|
268
|
+
gap: 8px;
|
|
269
|
+
align-items: center;
|
|
270
|
+
justify-content: center;
|
|
271
|
+
padding: 4px 8px;
|
|
272
|
+
border-radius: 24px;
|
|
273
|
+
flex-shrink: 0;
|
|
274
|
+
|
|
275
|
+
span {
|
|
276
|
+
font-family: 'Geist', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;
|
|
277
|
+
font-weight: 600;
|
|
278
|
+
font-size: 10px;
|
|
279
|
+
line-height: 13px;
|
|
280
|
+
color: var(--labels-main-label-primary, #121E52);
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
&--teal {
|
|
284
|
+
background: var(--surfaces-colour-teal, #e9faf7);
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
&--orange {
|
|
288
|
+
background: var(--surfaces-colour-orange, #fff2e8);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/react'
|
|
2
|
+
import React from 'react'
|
|
3
|
+
import { FigmasTopHat } from './FigmasTopHat'
|
|
4
|
+
|
|
5
|
+
export default {
|
|
6
|
+
title: 'v2/Navigation/Figma Top Hat',
|
|
7
|
+
component: FigmasTopHat,
|
|
8
|
+
argTypes: {
|
|
9
|
+
variant: {
|
|
10
|
+
control: 'select',
|
|
11
|
+
options: ['desktop', 'mobile'],
|
|
12
|
+
description: 'Desktop or mobile variant',
|
|
13
|
+
},
|
|
14
|
+
inboxCount: {
|
|
15
|
+
control: 'number',
|
|
16
|
+
description: 'Number of inbox notifications',
|
|
17
|
+
},
|
|
18
|
+
bellCount: {
|
|
19
|
+
control: 'number',
|
|
20
|
+
description: 'Number of bell notifications',
|
|
21
|
+
},
|
|
22
|
+
userInitials: {
|
|
23
|
+
control: 'text',
|
|
24
|
+
description: 'User initials to display',
|
|
25
|
+
},
|
|
26
|
+
onSidebarToggle: { action: 'sidebar toggle clicked' },
|
|
27
|
+
onUserClick: { action: 'user clicked' },
|
|
28
|
+
onInboxClick: { action: 'inbox clicked' },
|
|
29
|
+
onBellClick: { action: 'bell clicked' },
|
|
30
|
+
onDiscClick: { action: 'disc clicked' },
|
|
31
|
+
},
|
|
32
|
+
parameters: {
|
|
33
|
+
layout: 'fullscreen',
|
|
34
|
+
},
|
|
35
|
+
} as Meta
|
|
36
|
+
|
|
37
|
+
type Story = StoryObj<typeof FigmasTopHat>
|
|
38
|
+
|
|
39
|
+
export const Desktop: Story = {
|
|
40
|
+
args: {
|
|
41
|
+
variant: 'desktop',
|
|
42
|
+
inboxCount: 3,
|
|
43
|
+
bellCount: 12,
|
|
44
|
+
userInitials: 'WW',
|
|
45
|
+
},
|
|
46
|
+
decorators: [
|
|
47
|
+
(Story) => (
|
|
48
|
+
<div style={{ width: '100%', height: '60px', borderBottom: '1px solid #E8E9EF' }}>
|
|
49
|
+
<Story />
|
|
50
|
+
</div>
|
|
51
|
+
),
|
|
52
|
+
],
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export const Mobile: Story = {
|
|
56
|
+
args: {
|
|
57
|
+
variant: 'mobile',
|
|
58
|
+
inboxCount: 3,
|
|
59
|
+
bellCount: 12,
|
|
60
|
+
userInitials: 'WW',
|
|
61
|
+
},
|
|
62
|
+
decorators: [
|
|
63
|
+
(Story) => (
|
|
64
|
+
<div style={{ width: '370px', height: '60px', borderBottom: '1px solid #E8E9EF' }}>
|
|
65
|
+
<Story />
|
|
66
|
+
</div>
|
|
67
|
+
),
|
|
68
|
+
],
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export const DesktopNoNotifications: Story = {
|
|
72
|
+
args: {
|
|
73
|
+
variant: 'desktop',
|
|
74
|
+
inboxCount: 0,
|
|
75
|
+
bellCount: 0,
|
|
76
|
+
userInitials: 'JD',
|
|
77
|
+
},
|
|
78
|
+
decorators: [
|
|
79
|
+
(Story) => (
|
|
80
|
+
<div style={{ width: '100%', height: '60px', borderBottom: '1px solid #E8E9EF' }}>
|
|
81
|
+
<Story />
|
|
82
|
+
</div>
|
|
83
|
+
),
|
|
84
|
+
],
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export const MobileNoNotifications: Story = {
|
|
88
|
+
args: {
|
|
89
|
+
variant: 'mobile',
|
|
90
|
+
inboxCount: 0,
|
|
91
|
+
bellCount: 0,
|
|
92
|
+
userInitials: 'JD',
|
|
93
|
+
},
|
|
94
|
+
decorators: [
|
|
95
|
+
(Story) => (
|
|
96
|
+
<div style={{ width: '370px', height: '60px', borderBottom: '1px solid #E8E9EF' }}>
|
|
97
|
+
<Story />
|
|
98
|
+
</div>
|
|
99
|
+
),
|
|
100
|
+
],
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export const DesktopHighNotifications: Story = {
|
|
104
|
+
args: {
|
|
105
|
+
variant: 'desktop',
|
|
106
|
+
inboxCount: 99,
|
|
107
|
+
bellCount: 5,
|
|
108
|
+
userInitials: 'AB',
|
|
109
|
+
},
|
|
110
|
+
decorators: [
|
|
111
|
+
(Story) => (
|
|
112
|
+
<div style={{ width: '100%', height: '60px', borderBottom: '1px solid #E8E9EF' }}>
|
|
113
|
+
<Story />
|
|
114
|
+
</div>
|
|
115
|
+
),
|
|
116
|
+
],
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
export const MobileHighNotifications: Story = {
|
|
120
|
+
args: {
|
|
121
|
+
variant: 'mobile',
|
|
122
|
+
inboxCount: 99,
|
|
123
|
+
bellCount: 5,
|
|
124
|
+
userInitials: 'AB',
|
|
125
|
+
},
|
|
126
|
+
decorators: [
|
|
127
|
+
(Story) => (
|
|
128
|
+
<div style={{ width: '370px', height: '60px', borderBottom: '1px solid #E8E9EF' }}>
|
|
129
|
+
<Story />
|
|
130
|
+
</div>
|
|
131
|
+
),
|
|
132
|
+
],
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export const Interactive: Story = {
|
|
136
|
+
render: function (args) {
|
|
137
|
+
const [variant, setVariant] = React.useState<'desktop' | 'mobile'>('desktop');
|
|
138
|
+
const [inboxCount, setInboxCount] = React.useState(3);
|
|
139
|
+
const [bellCount, setBellCount] = React.useState(12);
|
|
140
|
+
|
|
141
|
+
return (
|
|
142
|
+
<div style={{ width: variant === 'desktop' ? '100%' : '370px', height: '60px', borderBottom: '1px solid #E8E9EF' }}>
|
|
143
|
+
<FigmasTopHat
|
|
144
|
+
{...args}
|
|
145
|
+
variant={variant}
|
|
146
|
+
inboxCount={inboxCount}
|
|
147
|
+
bellCount={bellCount}
|
|
148
|
+
onSidebarToggle={() => alert('Sidebar toggle clicked!')}
|
|
149
|
+
onUserClick={() => alert('User clicked!')}
|
|
150
|
+
onInboxClick={() => setInboxCount(0)}
|
|
151
|
+
onBellClick={() => setBellCount(0)}
|
|
152
|
+
onDiscClick={() => alert('Disc clicked!')}
|
|
153
|
+
/>
|
|
154
|
+
<div style={{ position: 'absolute', top: '70px', left: '16px', display: 'flex', gap: '8px', flexDirection: 'column' }}>
|
|
155
|
+
<button
|
|
156
|
+
onClick={() => setVariant(variant === 'desktop' ? 'mobile' : 'desktop')}
|
|
157
|
+
style={{
|
|
158
|
+
padding: '8px 16px',
|
|
159
|
+
backgroundColor: '#14215A',
|
|
160
|
+
color: 'white',
|
|
161
|
+
border: 'none',
|
|
162
|
+
borderRadius: '4px',
|
|
163
|
+
cursor: 'pointer'
|
|
164
|
+
}}
|
|
165
|
+
>
|
|
166
|
+
Toggle {variant === 'desktop' ? 'Mobile' : 'Desktop'}
|
|
167
|
+
</button>
|
|
168
|
+
<button
|
|
169
|
+
onClick={() => setInboxCount(Math.floor(Math.random() * 20))}
|
|
170
|
+
style={{
|
|
171
|
+
padding: '8px 16px',
|
|
172
|
+
backgroundColor: '#e9faf7',
|
|
173
|
+
color: '#121E52',
|
|
174
|
+
border: '1px solid #E8E9EF',
|
|
175
|
+
borderRadius: '4px',
|
|
176
|
+
cursor: 'pointer'
|
|
177
|
+
}}
|
|
178
|
+
>
|
|
179
|
+
Random Inbox Count
|
|
180
|
+
</button>
|
|
181
|
+
<button
|
|
182
|
+
onClick={() => setBellCount(Math.floor(Math.random() * 20))}
|
|
183
|
+
style={{
|
|
184
|
+
padding: '8px 16px',
|
|
185
|
+
backgroundColor: '#fff2e8',
|
|
186
|
+
color: '#121E52',
|
|
187
|
+
border: '1px solid #E8E9EF',
|
|
188
|
+
borderRadius: '4px',
|
|
189
|
+
cursor: 'pointer'
|
|
190
|
+
}}
|
|
191
|
+
>
|
|
192
|
+
Random Bell Count
|
|
193
|
+
</button>
|
|
194
|
+
</div>
|
|
195
|
+
</div>
|
|
196
|
+
);
|
|
197
|
+
},
|
|
198
|
+
args: {
|
|
199
|
+
userInitials: 'WW',
|
|
200
|
+
},
|
|
201
|
+
}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import './FigmasTopHat.scss'
|
|
3
|
+
import logoDesktop1 from './assets/logo-desktop-1.svg'
|
|
4
|
+
import logoDesktop2 from './assets/logo-desktop-2.svg'
|
|
5
|
+
import discIcon from './assets/disc-icon.svg'
|
|
6
|
+
import inboxIcon from './assets/inbox-icon.svg'
|
|
7
|
+
import bellIcon from './assets/bell-icon.svg'
|
|
8
|
+
import userIcon from './assets/user-icon.svg'
|
|
9
|
+
|
|
10
|
+
// Image assets loaded from local assets folder
|
|
11
|
+
const SidebarToggleIcon = () => (
|
|
12
|
+
<svg width="24" height="20" viewBox="0 0 24 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
13
|
+
<rect x="3" y="3" width="18" height="2" rx="1" fill="var(--fills-main-fill-primary, #14215A)" />
|
|
14
|
+
<rect x="3" y="9" width="18" height="2" rx="1" fill="var(--fills-main-fill-primary, #14215A)" />
|
|
15
|
+
<rect x="3" y="15" width="18" height="2" rx="1" fill="var(--fills-main-fill-primary, #14215A)" />
|
|
16
|
+
</svg>
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
const MobileLogoShape1 = () => (
|
|
20
|
+
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
21
|
+
<path d="M9 1L11.5 5.5L16.5 6L13 9L14 14L9 11.5L4 14L5 9L1.5 6L6.5 5.5L9 1Z" fill="var(--fills-main-fill-primary, #14215A)" stroke="var(--fills-main-fill-primary, #14215A)" strokeWidth="0.5" />
|
|
22
|
+
</svg>
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
const MobileLogoShape2 = () => (
|
|
26
|
+
<svg width="112" height="29" viewBox="0 0 112 29" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
27
|
+
<rect x="0" y="0" width="112" height="29" rx="4" fill="var(--surfaces-main-background-primary, #ffffff)" stroke="var(--borders-main-border-primary, #E8E9EF)" strokeWidth="1" />
|
|
28
|
+
<text x="56" y="18" textAnchor="middle" fontFamily="Geist" fontSize="11" fontWeight="600" fill="var(--labels-main-label-primary, #121E52)">Booked it</text>
|
|
29
|
+
</svg>
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
export interface FigmasTopHatProps {
|
|
33
|
+
variant?: 'desktop' | 'mobile'
|
|
34
|
+
onSidebarToggle?: () => void
|
|
35
|
+
onUserClick?: () => void
|
|
36
|
+
onInboxClick?: () => void
|
|
37
|
+
onBellClick?: () => void
|
|
38
|
+
onDiscClick?: () => void
|
|
39
|
+
inboxCount?: number
|
|
40
|
+
bellCount?: number
|
|
41
|
+
userInitials?: string
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export const FigmasTopHat: React.FC<FigmasTopHatProps> = ({
|
|
45
|
+
variant = 'desktop',
|
|
46
|
+
onSidebarToggle,
|
|
47
|
+
onUserClick,
|
|
48
|
+
onInboxClick,
|
|
49
|
+
onBellClick,
|
|
50
|
+
onDiscClick,
|
|
51
|
+
inboxCount = 3,
|
|
52
|
+
bellCount = 12,
|
|
53
|
+
userInitials = 'WW',
|
|
54
|
+
}) => {
|
|
55
|
+
const sidebarToggleIcon = (
|
|
56
|
+
<div className="figmas-tophat__sidebar-icon">
|
|
57
|
+
<SidebarToggleIcon />
|
|
58
|
+
</div>
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
const logoIcon = (
|
|
62
|
+
<div className="figmas-tophat__logo">
|
|
63
|
+
<div className="figmas-tophat__logo-shape1">
|
|
64
|
+
<img alt="Logo shape 1" className="figmas-tophat__logo-img" src={logoDesktop1} />
|
|
65
|
+
</div>
|
|
66
|
+
<div className="figmas-tophat__logo-shape2">
|
|
67
|
+
<img alt="Logo shape 2" className="figmas-tophat__logo-img" src={logoDesktop2} />
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
const mobileLogoIcon = (
|
|
73
|
+
<div className="figmas-tophat__mobile-logo">
|
|
74
|
+
<div className="figmas-tophat__mobile-logo-shape1">
|
|
75
|
+
<MobileLogoShape1 />
|
|
76
|
+
</div>
|
|
77
|
+
<div className="figmas-tophat__mobile-logo-shape2">
|
|
78
|
+
<MobileLogoShape2 />
|
|
79
|
+
</div>
|
|
80
|
+
</div>
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
const userControls = (
|
|
84
|
+
<div className="figmas-tophat__user-controls">
|
|
85
|
+
{/* Disc Control */}
|
|
86
|
+
<div className="figmas-tophat__control figmas-tophat__control--disc" onClick={onDiscClick}>
|
|
87
|
+
<div className="figmas-tophat__control-icon">
|
|
88
|
+
<div className="figmas-tophat__control-icon-inner">
|
|
89
|
+
<img alt="Disc icon" className="figmas-tophat__control-icon-img" src={discIcon} />
|
|
90
|
+
</div>
|
|
91
|
+
</div>
|
|
92
|
+
<p className="figmas-tophat__user-initials">{userInitials}</p>
|
|
93
|
+
</div>
|
|
94
|
+
|
|
95
|
+
{/* Inbox Control */}
|
|
96
|
+
<div className="figmas-tophat__control figmas-tophat__control--inbox" onClick={onInboxClick}>
|
|
97
|
+
<div className="figmas-tophat__control-icon">
|
|
98
|
+
<div className="figmas-tophat__control-icon-inner">
|
|
99
|
+
<img alt="Inbox icon" className="figmas-tophat__control-icon-img" src={inboxIcon} />
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
102
|
+
{inboxCount > 0 && (
|
|
103
|
+
<div className="figmas-tophat__notification-badge figmas-tophat__notification-badge--teal">
|
|
104
|
+
<span>{inboxCount}</span>
|
|
105
|
+
</div>
|
|
106
|
+
)}
|
|
107
|
+
</div>
|
|
108
|
+
|
|
109
|
+
{/* Bell Control */}
|
|
110
|
+
<div className="figmas-tophat__control figmas-tophat__control--bell" onClick={onBellClick}>
|
|
111
|
+
<div className="figmas-tophat__control-icon">
|
|
112
|
+
<div className="figmas-tophat__control-icon-inner">
|
|
113
|
+
<img alt="Bell icon" className="figmas-tophat__control-icon-img" src={bellIcon} />
|
|
114
|
+
</div>
|
|
115
|
+
</div>
|
|
116
|
+
{bellCount > 0 && (
|
|
117
|
+
<div className="figmas-tophat__notification-badge figmas-tophat__notification-badge--orange">
|
|
118
|
+
<span>{bellCount}</span>
|
|
119
|
+
</div>
|
|
120
|
+
)}
|
|
121
|
+
</div>
|
|
122
|
+
|
|
123
|
+
{/* User Control */}
|
|
124
|
+
<div className="figmas-tophat__control figmas-tophat__control--user" onClick={onUserClick}>
|
|
125
|
+
<div className="figmas-tophat__control-icon">
|
|
126
|
+
<div className="figmas-tophat__control-icon-inner">
|
|
127
|
+
<img alt="User icon" className="figmas-tophat__control-icon-img" src={userIcon} />
|
|
128
|
+
</div>
|
|
129
|
+
</div>
|
|
130
|
+
</div>
|
|
131
|
+
</div>
|
|
132
|
+
)
|
|
133
|
+
|
|
134
|
+
if (variant === 'mobile') {
|
|
135
|
+
return (
|
|
136
|
+
<div className="figmas-tophat figmas-tophat--mobile">
|
|
137
|
+
<div className="figmas-tophat__mobile-logo-container">
|
|
138
|
+
{mobileLogoIcon}
|
|
139
|
+
</div>
|
|
140
|
+
{userControls}
|
|
141
|
+
</div>
|
|
142
|
+
)
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
return (
|
|
146
|
+
<div className="figmas-tophat figmas-tophat--desktop">
|
|
147
|
+
<div className="figmas-tophat__left-elements">
|
|
148
|
+
<div className="figmas-tophat__sidebar-toggle" onClick={onSidebarToggle}>
|
|
149
|
+
{sidebarToggleIcon}
|
|
150
|
+
</div>
|
|
151
|
+
<div className="figmas-tophat__logo-container">
|
|
152
|
+
{logoIcon}
|
|
153
|
+
</div>
|
|
154
|
+
</div>
|
|
155
|
+
{userControls}
|
|
156
|
+
</div>
|
|
157
|
+
)
|
|
158
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M8 18C8 18.5523 8.44772 19 9 19H13C13.5523 19 14 18.5523 14 18M8 18V16M14 18V16M8 18C5.79086 18 4 16.2091 4 14V9C4 6.79086 5.79086 5 8 5H14C16.2091 5 18 6.79086 18 9V14C18 16.2091 16.2091 18 14 18" stroke="var(--fills-main-fill-primary, #14215A)" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round"/>
|
|
3
|
+
</svg>
|
|
@@ -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,3 @@
|
|
|
1
|
+
<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M3 6L11 11L19 6M3 6V16C3 16.5523 3.44772 17 4 17H18C18.5523 17 19 16.5523 19 16V6M3 6H19" stroke="var(--fills-main-fill-primary, #14215A)" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M9 1L11.5 5.5L16.5 6L13 9L14 14L9 11.5L4 14L5 9L1.5 6L6.5 5.5L9 1Z" fill="var(--fills-main-fill-primary, #14215A)" stroke="var(--fills-main-fill-primary, #14215A)" strokeWidth="0.5" />
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg width="112" height="29" viewBox="0 0 112 29" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<rect x="0" y="0" width="112" height="29" rx="4" fill="var(--surfaces-main-background-primary, #ffffff)" stroke="var(--borders-main-border-primary, #E8E9EF)" strokeWidth="1" />
|
|
3
|
+
<text x="56" y="18" textAnchor="middle" fontFamily="Geist" fontSize="11" fontWeight="600" fill="var(--labels-main-label-primary, #121E52)">Booked it</text>
|
|
4
|
+
</svg>
|
|
@@ -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="7" r="3" stroke="var(--fills-main-fill-primary, #14215A)" strokeWidth="1.5"/>
|
|
3
|
+
<path d="M5 18C5 14.134 8.13401 11 12 11C15.866 11 19 14.134 19 18" stroke="var(--fills-main-fill-primary, #14215A)" strokeWidth="1.5" strokeLinecap="round"/>
|
|
4
|
+
</svg>
|