@servicetitan/navigation 11.0.0-canary.237.c90556e.0 → 11.0.0-canary.237.dd4db7e.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/badge-tag.d.ts +12 -0
- package/dist/components/badge-tag.d.ts.map +1 -0
- package/dist/components/badge-tag.js +8 -0
- package/dist/components/badge-tag.js.map +1 -0
- package/dist/components/counter-tag.d.ts +12 -0
- package/dist/components/counter-tag.d.ts.map +1 -0
- package/dist/components/counter-tag.js +8 -0
- package/dist/components/counter-tag.js.map +1 -0
- package/dist/components/header-navigation/header-navigation-content.d.ts +30 -0
- package/dist/components/header-navigation/header-navigation-content.d.ts.map +1 -0
- package/dist/components/header-navigation/header-navigation-content.js +22 -0
- package/dist/components/header-navigation/header-navigation-content.js.map +1 -0
- package/dist/components/header-navigation/header-navigation-extra-stacked.stories.d.ts +9 -0
- package/dist/components/header-navigation/header-navigation-extra-stacked.stories.d.ts.map +1 -0
- package/dist/components/header-navigation/header-navigation-extra-stacked.stories.js +13 -0
- package/dist/components/header-navigation/header-navigation-extra-stacked.stories.js.map +1 -0
- package/dist/components/header-navigation/header-navigation-extra.stories.d.ts +12 -0
- package/dist/components/header-navigation/header-navigation-extra.stories.d.ts.map +1 -0
- package/dist/components/header-navigation/header-navigation-extra.stories.js +29 -0
- package/dist/components/header-navigation/header-navigation-extra.stories.js.map +1 -0
- package/dist/components/header-navigation/header-navigation-links.d.ts +11 -0
- package/dist/components/header-navigation/header-navigation-links.d.ts.map +1 -0
- package/dist/components/header-navigation/header-navigation-links.js +26 -0
- package/dist/components/header-navigation/header-navigation-links.js.map +1 -0
- package/dist/components/header-navigation/header-navigation-stacked.stories.d.ts +12 -0
- package/dist/components/header-navigation/header-navigation-stacked.stories.d.ts.map +1 -0
- package/dist/components/header-navigation/header-navigation-stacked.stories.js +50 -0
- package/dist/components/header-navigation/header-navigation-stacked.stories.js.map +1 -0
- package/dist/components/header-navigation/header-navigation-stories.module.less +6 -0
- package/dist/components/header-navigation/header-navigation.d.ts +59 -0
- package/dist/components/header-navigation/header-navigation.d.ts.map +1 -0
- package/dist/components/header-navigation/header-navigation.js +96 -0
- package/dist/components/header-navigation/header-navigation.js.map +1 -0
- package/dist/components/header-navigation/header-navigation.module.less +260 -0
- package/dist/components/header-navigation/header-navigation.stories.d.ts +12 -0
- package/dist/components/header-navigation/header-navigation.stories.d.ts.map +1 -0
- package/dist/components/header-navigation/header-navigation.stories.js +54 -0
- package/dist/components/header-navigation/header-navigation.stories.js.map +1 -0
- package/dist/components/header-navigation/index.d.ts +2 -0
- package/dist/components/header-navigation/index.d.ts.map +1 -0
- package/dist/components/header-navigation/index.js +2 -0
- package/dist/components/header-navigation/index.js.map +1 -0
- package/dist/components/header-navigation/with-tooltip.d.ts +4 -0
- package/dist/components/header-navigation/with-tooltip.d.ts.map +1 -0
- package/dist/components/header-navigation/with-tooltip.js +4 -0
- package/dist/components/header-navigation/with-tooltip.js.map +1 -0
- package/dist/components/layout.stories.d.ts +13 -0
- package/dist/components/layout.stories.d.ts.map +1 -0
- package/dist/components/layout.stories.js +29 -0
- package/dist/components/layout.stories.js.map +1 -0
- package/dist/components/left-navigation/header-navigation-extra-tiny.stories.d.ts +9 -0
- package/dist/components/left-navigation/header-navigation-extra-tiny.stories.d.ts.map +1 -0
- package/dist/components/left-navigation/header-navigation-extra-tiny.stories.js +13 -0
- package/dist/components/left-navigation/header-navigation-extra-tiny.stories.js.map +1 -0
- package/dist/components/left-navigation/header-navigation-tiny-links.d.ts +18 -0
- package/dist/components/left-navigation/header-navigation-tiny-links.d.ts.map +1 -0
- package/dist/components/left-navigation/header-navigation-tiny-links.js +32 -0
- package/dist/components/left-navigation/header-navigation-tiny-links.js.map +1 -0
- package/dist/components/left-navigation/header-navigation-tiny.d.ts +23 -0
- package/dist/components/left-navigation/header-navigation-tiny.d.ts.map +1 -0
- package/dist/components/left-navigation/header-navigation-tiny.js +7 -0
- package/dist/components/left-navigation/header-navigation-tiny.js.map +1 -0
- package/dist/components/left-navigation/header-navigation-tiny.module.less +117 -0
- package/dist/components/left-navigation/header-navigation-tiny.stories.d.ts +12 -0
- package/dist/components/left-navigation/header-navigation-tiny.stories.d.ts.map +1 -0
- package/dist/components/left-navigation/header-navigation-tiny.stories.js +30 -0
- package/dist/components/left-navigation/header-navigation-tiny.stories.js.map +1 -0
- package/dist/components/left-navigation/index.d.ts +5 -0
- package/dist/components/left-navigation/index.d.ts.map +1 -0
- package/dist/components/left-navigation/index.js +5 -0
- package/dist/components/left-navigation/index.js.map +1 -0
- package/dist/components/left-navigation/interface-internal.d.ts +10 -0
- package/dist/components/left-navigation/interface-internal.d.ts.map +1 -0
- package/dist/components/left-navigation/interface-internal.js +2 -0
- package/dist/components/left-navigation/interface-internal.js.map +1 -0
- package/dist/components/left-navigation/interface.d.ts +20 -0
- package/dist/components/left-navigation/interface.d.ts.map +1 -0
- package/dist/components/left-navigation/interface.js +2 -0
- package/dist/components/left-navigation/interface.js.map +1 -0
- package/dist/components/left-navigation/side-navigation-context.d.ts +8 -0
- package/dist/components/left-navigation/side-navigation-context.d.ts.map +1 -0
- package/dist/components/left-navigation/side-navigation-context.js +7 -0
- package/dist/components/left-navigation/side-navigation-context.js.map +1 -0
- package/dist/components/left-navigation/side-navigation-links-internal.d.ts +28 -0
- package/dist/components/left-navigation/side-navigation-links-internal.d.ts.map +1 -0
- package/dist/components/left-navigation/side-navigation-links-internal.js +29 -0
- package/dist/components/left-navigation/side-navigation-links-internal.js.map +1 -0
- package/dist/components/left-navigation/side-navigation-links.d.ts +6 -0
- package/dist/components/left-navigation/side-navigation-links.d.ts.map +1 -0
- package/dist/components/left-navigation/side-navigation-links.js +27 -0
- package/dist/components/left-navigation/side-navigation-links.js.map +1 -0
- package/dist/components/left-navigation/side-navigation.d.ts +29 -0
- package/dist/components/left-navigation/side-navigation.d.ts.map +1 -0
- package/dist/components/left-navigation/side-navigation.js +182 -0
- package/dist/components/left-navigation/side-navigation.js.map +1 -0
- package/dist/components/left-navigation/side-navigation.module.less +530 -0
- package/dist/components/left-navigation/side-navigation.stories.d.ts +17 -0
- package/dist/components/left-navigation/side-navigation.stories.d.ts.map +1 -0
- package/dist/components/left-navigation/side-navigation.stories.js +115 -0
- package/dist/components/left-navigation/side-navigation.stories.js.map +1 -0
- package/dist/components/left-navigation/with-tooltip.d.ts +4 -0
- package/dist/components/left-navigation/with-tooltip.d.ts.map +1 -0
- package/dist/components/left-navigation/with-tooltip.js +4 -0
- package/dist/components/left-navigation/with-tooltip.js.map +1 -0
- package/dist/components/links.d.ts +5 -0
- package/dist/components/links.d.ts.map +1 -0
- package/dist/components/links.js +14 -0
- package/dist/components/links.js.map +1 -0
- package/dist/components/logo/logo-company-title.d.ts +8 -0
- package/dist/components/logo/logo-company-title.d.ts.map +1 -0
- package/dist/components/logo/logo-company-title.js +6 -0
- package/dist/components/logo/logo-company-title.js.map +1 -0
- package/dist/components/logo/logo-titan-text.d.ts +29 -0
- package/dist/components/logo/logo-titan-text.d.ts.map +1 -0
- package/dist/components/logo/logo-titan-text.js +13 -0
- package/dist/components/logo/logo-titan-text.js.map +1 -0
- package/dist/components/logo/logo-titan-text.module.less +31 -0
- package/dist/components/logo/logo-titan.d.ts +9 -0
- package/dist/components/logo/logo-titan.d.ts.map +1 -0
- package/dist/components/logo/logo-titan.js +13 -0
- package/dist/components/logo/logo-titan.js.map +1 -0
- package/dist/components/logo/logo.stories.d.ts +14 -0
- package/dist/components/logo/logo.stories.d.ts.map +1 -0
- package/dist/components/logo/logo.stories.js +20 -0
- package/dist/components/logo/logo.stories.js.map +1 -0
- package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.d.ts +9 -0
- package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.d.ts.map +1 -0
- package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.js +13 -0
- package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.js.map +1 -0
- package/dist/components/profile-dropdown/profile-dropdown-tiny.stories.d.ts +9 -0
- package/dist/components/profile-dropdown/profile-dropdown-tiny.stories.d.ts.map +1 -0
- package/dist/components/profile-dropdown/profile-dropdown-tiny.stories.js +13 -0
- package/dist/components/profile-dropdown/profile-dropdown-tiny.stories.js.map +1 -0
- package/dist/components/profile-dropdown/profile-dropdown.d.ts +80 -0
- package/dist/components/profile-dropdown/profile-dropdown.d.ts.map +1 -0
- package/dist/components/profile-dropdown/profile-dropdown.js +85 -0
- package/dist/components/profile-dropdown/profile-dropdown.js.map +1 -0
- package/dist/components/profile-dropdown/profile-dropdown.module.less +173 -0
- package/dist/components/profile-dropdown/profile-dropdown.stories.d.ts +16 -0
- package/dist/components/profile-dropdown/profile-dropdown.stories.d.ts.map +1 -0
- package/dist/components/profile-dropdown/profile-dropdown.stories.js +51 -0
- package/dist/components/profile-dropdown/profile-dropdown.stories.js.map +1 -0
- package/dist/components/profile-dropdown/profile-icon.d.ts +3 -0
- package/dist/components/profile-dropdown/profile-icon.d.ts.map +1 -0
- package/dist/components/profile-dropdown/profile-icon.js +5 -0
- package/dist/components/profile-dropdown/profile-icon.js.map +1 -0
- package/dist/components/titan-layout/index.d.ts +6 -0
- package/dist/components/titan-layout/index.d.ts.map +1 -0
- package/dist/components/titan-layout/index.js +6 -0
- package/dist/components/titan-layout/index.js.map +1 -0
- package/dist/components/titan-layout/interface-internal.d.ts +6 -0
- package/dist/components/titan-layout/interface-internal.d.ts.map +1 -0
- package/dist/components/titan-layout/interface-internal.js +2 -0
- package/dist/components/titan-layout/interface-internal.js.map +1 -0
- package/dist/components/titan-layout/interface.d.ts +21 -0
- package/dist/components/titan-layout/interface.d.ts.map +1 -0
- package/dist/components/titan-layout/interface.js +2 -0
- package/dist/components/titan-layout/interface.js.map +1 -0
- package/dist/components/titan-layout/layout-context.d.ts +20 -0
- package/dist/components/titan-layout/layout-context.d.ts.map +1 -0
- package/dist/components/titan-layout/layout-context.js +12 -0
- package/dist/components/titan-layout/layout-context.js.map +1 -0
- package/dist/components/titan-layout/layout-header-links.d.ts +7 -0
- package/dist/components/titan-layout/layout-header-links.d.ts.map +1 -0
- package/dist/components/titan-layout/layout-header-links.js +32 -0
- package/dist/components/titan-layout/layout-header-links.js.map +1 -0
- package/dist/components/titan-layout/layout-header.d.ts +22 -0
- package/dist/components/titan-layout/layout-header.d.ts.map +1 -0
- package/dist/components/titan-layout/layout-header.js +10 -0
- package/dist/components/titan-layout/layout-header.js.map +1 -0
- package/dist/components/titan-layout/layout-header.module.less +200 -0
- package/dist/components/titan-layout/layout-logo.d.ts +12 -0
- package/dist/components/titan-layout/layout-logo.d.ts.map +1 -0
- package/dist/components/titan-layout/layout-logo.js +16 -0
- package/dist/components/titan-layout/layout-logo.js.map +1 -0
- package/dist/components/titan-layout/layout-logo.stories.d.ts +13 -0
- package/dist/components/titan-layout/layout-logo.stories.d.ts.map +1 -0
- package/dist/components/titan-layout/layout-logo.stories.js +17 -0
- package/dist/components/titan-layout/layout-logo.stories.js.map +1 -0
- package/dist/components/titan-layout/layout-profile.d.ts +9 -0
- package/dist/components/titan-layout/layout-profile.d.ts.map +1 -0
- package/dist/components/titan-layout/layout-profile.js +68 -0
- package/dist/components/titan-layout/layout-profile.js.map +1 -0
- package/dist/components/titan-layout/layout-profile.stories.d.ts +13 -0
- package/dist/components/titan-layout/layout-profile.stories.d.ts.map +1 -0
- package/dist/components/titan-layout/layout-profile.stories.js +13 -0
- package/dist/components/titan-layout/layout-profile.stories.js.map +1 -0
- package/dist/components/titan-layout/layout-sidebar-links-internal.d.ts +46 -0
- package/dist/components/titan-layout/layout-sidebar-links-internal.d.ts.map +1 -0
- package/dist/components/titan-layout/layout-sidebar-links-internal.js +61 -0
- package/dist/components/titan-layout/layout-sidebar-links-internal.js.map +1 -0
- package/dist/components/titan-layout/layout-sidebar-links.d.ts +6 -0
- package/dist/components/titan-layout/layout-sidebar-links.d.ts.map +1 -0
- package/dist/components/titan-layout/layout-sidebar-links.js +28 -0
- package/dist/components/titan-layout/layout-sidebar-links.js.map +1 -0
- package/dist/components/titan-layout/layout-sidebar.d.ts +19 -0
- package/dist/components/titan-layout/layout-sidebar.d.ts.map +1 -0
- package/dist/components/titan-layout/layout-sidebar.js +67 -0
- package/dist/components/titan-layout/layout-sidebar.js.map +1 -0
- package/dist/components/titan-layout/layout-sidebar.module.less +536 -0
- package/dist/components/titan-layout/notifications-context.d.ts +13 -0
- package/dist/components/titan-layout/notifications-context.d.ts.map +1 -0
- package/dist/components/titan-layout/notifications-context.js +23 -0
- package/dist/components/titan-layout/notifications-context.js.map +1 -0
- package/dist/components/titan-layout/titan-layout.d.ts +40 -0
- package/dist/components/titan-layout/titan-layout.d.ts.map +1 -0
- package/dist/components/titan-layout/titan-layout.js +161 -0
- package/dist/components/titan-layout/titan-layout.js.map +1 -0
- package/dist/components/titan-layout/titan-layout.module.less +107 -0
- package/dist/components/titan-layout/titan-layout.stories.d.ts +22 -0
- package/dist/components/titan-layout/titan-layout.stories.d.ts.map +1 -0
- package/dist/components/titan-layout/titan-layout.stories.js +83 -0
- package/dist/components/titan-layout/titan-layout.stories.js.map +1 -0
- package/dist/components/titan-layout/with-tooltip.d.ts +4 -0
- package/dist/components/titan-layout/with-tooltip.d.ts.map +1 -0
- package/dist/components/titan-layout/with-tooltip.js +4 -0
- package/dist/components/titan-layout/with-tooltip.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/test/data-stories.module.less +8 -0
- package/dist/test/data.d.ts +35 -0
- package/dist/test/data.d.ts.map +1 -0
- package/dist/test/data.js +243 -0
- package/dist/test/data.js.map +1 -0
- package/dist/utils/counter-tag.d.ts +5 -0
- package/dist/utils/counter-tag.d.ts.map +1 -0
- package/dist/utils/counter-tag.js +2 -0
- package/dist/utils/counter-tag.js.map +1 -0
- package/dist/utils/navigation-context.d.ts +27 -0
- package/dist/utils/navigation-context.d.ts.map +1 -0
- package/dist/utils/navigation-context.js +10 -0
- package/dist/utils/navigation-context.js.map +1 -0
- package/dist/utils/navigation-legacy.d.ts +88 -0
- package/dist/utils/navigation-legacy.d.ts.map +1 -0
- package/dist/utils/navigation-legacy.js +2 -0
- package/dist/utils/navigation-legacy.js.map +1 -0
- package/dist/utils/navigation.d.ts +48 -0
- package/dist/utils/navigation.d.ts.map +1 -0
- package/dist/utils/navigation.js +2 -0
- package/dist/utils/navigation.js.map +1 -0
- package/dist/utils/side-nav.d.ts +6 -0
- package/dist/utils/side-nav.d.ts.map +1 -0
- package/dist/utils/side-nav.js +28 -0
- package/dist/utils/side-nav.js.map +1 -0
- package/dist/utils/use-breakpoint.d.ts +7 -0
- package/dist/utils/use-breakpoint.d.ts.map +1 -0
- package/dist/utils/use-breakpoint.js +13 -0
- package/dist/utils/use-breakpoint.js.map +1 -0
- package/package.json +3 -4
- package/src/components/badge-tag.tsx +1 -1
- package/src/components/header-navigation/header-navigation-stacked.stories.tsx +1 -1
- package/src/components/header-navigation/header-navigation-stories.module.less.d.ts +3 -0
- package/src/components/header-navigation/header-navigation.module.less.d.ts +22 -0
- package/src/components/header-navigation/header-navigation.stories.tsx +1 -1
- package/src/components/left-navigation/header-navigation-tiny.module.less.d.ts +15 -0
- package/src/components/left-navigation/header-navigation-tiny.stories.tsx +2 -2
- package/src/components/left-navigation/side-navigation-links.tsx +1 -1
- package/src/components/left-navigation/side-navigation.module.less.d.ts +48 -0
- package/src/components/logo/logo-titan-text.module.less.d.ts +6 -0
- package/src/components/logo/logo-titan-text.tsx +1 -1
- package/src/components/profile-dropdown/profile-dropdown.module.less +2 -0
- package/src/components/profile-dropdown/profile-dropdown.module.less.d.ts +21 -0
- package/src/components/profile-dropdown/profile-dropdown.tsx +13 -6
- package/src/components/titan-layout/layout-header.module.less +62 -15
- package/src/components/titan-layout/layout-header.module.less.d.ts +16 -0
- package/src/components/titan-layout/layout-header.tsx +12 -5
- package/src/components/titan-layout/layout-logo.tsx +13 -6
- package/src/components/titan-layout/layout-profile.stories.tsx +10 -1
- package/src/components/titan-layout/layout-profile.tsx +60 -25
- package/src/components/titan-layout/layout-sidebar-links-internal.tsx +18 -5
- package/src/components/titan-layout/layout-sidebar-links.tsx +17 -5
- package/src/components/titan-layout/layout-sidebar.module.less +29 -21
- package/src/components/titan-layout/layout-sidebar.module.less.d.ts +49 -0
- package/src/components/titan-layout/layout-sidebar.tsx +15 -9
- package/src/components/titan-layout/notifications-context.tsx +44 -0
- package/src/components/titan-layout/titan-layout.module.less +73 -19
- package/src/components/titan-layout/titan-layout.module.less.d.ts +16 -0
- package/src/components/titan-layout/titan-layout.stories.tsx +166 -19
- package/src/components/titan-layout/titan-layout.tsx +193 -75
- package/src/test/data-stories.module.less.d.ts +3 -0
- package/src/test/data.tsx +2 -3
|
@@ -156,7 +156,9 @@ export const InternalSideNavigationLink: FC<InternalSideNavigationLinkProps> = (
|
|
|
156
156
|
|
|
157
157
|
/** Side Navigation menu trigger (for internal usage) */
|
|
158
158
|
export const InternalSideNavigationTrigger: FC<
|
|
159
|
-
Omit<InternalSideNavigationLinkProps, 'to' | 'navigationComponent'> & {
|
|
159
|
+
Omit<InternalSideNavigationLinkProps, 'to' | 'navigationComponent'> & {
|
|
160
|
+
onClick?: (e: MouseEvent<never>) => void;
|
|
161
|
+
}
|
|
160
162
|
> = ({ className, dataPrefix, isActive, submenuExpanded, onExpandToggle, onClick, ...props }) => {
|
|
161
163
|
return (
|
|
162
164
|
<div
|
|
@@ -180,12 +182,22 @@ export const InternalSideNavigationTrigger: FC<
|
|
|
180
182
|
|
|
181
183
|
export const InternalSideNavigationGroupLink: FC<
|
|
182
184
|
NavigationSubmenuItemData & NavigationComponentProps
|
|
183
|
-
> = ({
|
|
185
|
+
> = ({
|
|
186
|
+
id,
|
|
187
|
+
counter,
|
|
188
|
+
tag,
|
|
189
|
+
title,
|
|
190
|
+
to,
|
|
191
|
+
isActive,
|
|
192
|
+
navigationComponent: NavigationComponent,
|
|
193
|
+
...rest
|
|
194
|
+
}) => {
|
|
184
195
|
return (
|
|
185
196
|
<NavigationComponent
|
|
197
|
+
key={id}
|
|
186
198
|
data-cy={`navigation-item-${id}`}
|
|
187
199
|
data-pendo={`navigation-item-${id}`}
|
|
188
|
-
|
|
200
|
+
{...rest}
|
|
189
201
|
to={to}
|
|
190
202
|
className={classNames(Styles.submenuItem, Styles.submenuLink, {
|
|
191
203
|
[Styles.submenuLinkActive]: isActive === true,
|
|
@@ -201,12 +213,13 @@ export const InternalSideNavigationGroupLink: FC<
|
|
|
201
213
|
|
|
202
214
|
export const InternalSideNavigationGroupTrigger: FC<
|
|
203
215
|
Omit<NavigationSubmenuItemData, 'to'> & { onClick?: (e: MouseEvent<any>) => void }
|
|
204
|
-
> = ({ id, counter, onClick, tag, title, isActive }) => {
|
|
216
|
+
> = ({ id, counter, onClick, tag, title, isActive, ...rest }) => {
|
|
205
217
|
return (
|
|
206
218
|
<div
|
|
207
219
|
data-cy={`navigation-item-${id}`}
|
|
208
220
|
data-pendo={`navigation-item-${id}`}
|
|
209
221
|
key={id}
|
|
222
|
+
{...rest}
|
|
210
223
|
className={classNames(Styles.submenuItem, {
|
|
211
224
|
[Styles.submenuLink]: !!onClick,
|
|
212
225
|
[Styles.submenuLinkActive]: isActive === true,
|
|
@@ -231,7 +244,7 @@ export const InternalSideNavigationGroup: FC<
|
|
|
231
244
|
onExpandToggle?: (e: MouseEvent<never>) => void;
|
|
232
245
|
tag: BadgeTagProps | undefined;
|
|
233
246
|
to: NavigationItemData['to'] | undefined;
|
|
234
|
-
onClick?: () => void;
|
|
247
|
+
onClick?: (e: MouseEvent<never>) => void;
|
|
235
248
|
}
|
|
236
249
|
> = ({ children, submenuExpanded, to, onExpandToggle, onClick, ...props }) => {
|
|
237
250
|
return (
|
|
@@ -6,9 +6,10 @@ import {
|
|
|
6
6
|
InternalSideNavigationLink,
|
|
7
7
|
InternalSideNavigationTrigger,
|
|
8
8
|
} from './layout-sidebar-links-internal';
|
|
9
|
+
import { useNotificationsContext } from './notifications-context';
|
|
9
10
|
|
|
10
11
|
const WrappedLink: FC<{
|
|
11
|
-
children: ReactElement
|
|
12
|
+
children: ReactElement<any>;
|
|
12
13
|
wrapper: NonNullable<TitanLayoutSidebarLinkProps['wrapper']>;
|
|
13
14
|
}> = ({ children, wrapper: WrapperComponent }) => {
|
|
14
15
|
const { sidebar } = useTitanLayoutContext();
|
|
@@ -17,7 +18,14 @@ const WrappedLink: FC<{
|
|
|
17
18
|
|
|
18
19
|
/** Side Navigation menu link */
|
|
19
20
|
export function TitanLayoutSidebarLink({ wrapper, ...props }: TitanLayoutSidebarLinkProps) {
|
|
20
|
-
const {
|
|
21
|
+
const {
|
|
22
|
+
NavigationComponent,
|
|
23
|
+
breakpoint: { isMobile },
|
|
24
|
+
} = useTitanLayoutContext();
|
|
25
|
+
const { onNotificationsUpdate } = useNotificationsContext();
|
|
26
|
+
const tag = getCounterTag(props.counter, props.tag);
|
|
27
|
+
|
|
28
|
+
onNotificationsUpdate(props.id, !!tag);
|
|
21
29
|
|
|
22
30
|
const element = (
|
|
23
31
|
<InternalSideNavigationLink
|
|
@@ -25,11 +33,11 @@ export function TitanLayoutSidebarLink({ wrapper, ...props }: TitanLayoutSidebar
|
|
|
25
33
|
navigationComponent={NavigationComponent}
|
|
26
34
|
submenuExpanded={undefined}
|
|
27
35
|
dataPrefix="navigation-link"
|
|
28
|
-
tag={
|
|
36
|
+
tag={tag}
|
|
29
37
|
/>
|
|
30
38
|
);
|
|
31
39
|
|
|
32
|
-
return wrapper ? <WrappedLink wrapper={wrapper}>{element}</WrappedLink> : element;
|
|
40
|
+
return wrapper && !isMobile ? <WrappedLink wrapper={wrapper}>{element}</WrappedLink> : element;
|
|
33
41
|
}
|
|
34
42
|
|
|
35
43
|
/** Side Navigation menu trigger */
|
|
@@ -42,13 +50,17 @@ export function TitanLayoutSidebarTrigger({
|
|
|
42
50
|
const {
|
|
43
51
|
breakpoint: { isMobile },
|
|
44
52
|
} = useTitanLayoutContext();
|
|
53
|
+
const { onNotificationsUpdate } = useNotificationsContext();
|
|
54
|
+
const tag = getCounterTag(props.counter, props.tag);
|
|
55
|
+
|
|
56
|
+
onNotificationsUpdate(props.id, !!tag);
|
|
45
57
|
|
|
46
58
|
const element = (
|
|
47
59
|
<InternalSideNavigationTrigger
|
|
48
60
|
{...props}
|
|
49
61
|
submenuExpanded={undefined}
|
|
50
62
|
dataPrefix="navigation-trigger"
|
|
51
|
-
tag={
|
|
63
|
+
tag={tag}
|
|
52
64
|
onClick={isMobile && !!onMobileClick ? onMobileClick : onClick}
|
|
53
65
|
/>
|
|
54
66
|
);
|
|
@@ -15,32 +15,22 @@
|
|
|
15
15
|
align-items: stretch;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
// desktop version positioned with flex
|
|
19
|
-
.nav-flex {
|
|
20
|
-
flex-basis: var(--nav-offset-left);
|
|
21
|
-
flex-grow: 0;
|
|
22
|
-
flex-shrink: 0;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// desktop version positioned with fixed
|
|
26
|
-
.nav-fixed {
|
|
27
|
-
position: fixed;
|
|
28
|
-
top: var(--nav-offset-top);
|
|
29
|
-
bottom: 0;
|
|
30
|
-
left: 0;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
18
|
// mobile version
|
|
34
19
|
.nav-drawer {
|
|
35
|
-
display: none;
|
|
20
|
+
// display: none;
|
|
36
21
|
position: fixed;
|
|
37
22
|
max-width: 400px;
|
|
38
23
|
width: 0;
|
|
24
|
+
height: 100vh;
|
|
39
25
|
top: 0;
|
|
40
|
-
|
|
41
|
-
left: 0;
|
|
26
|
+
left: -100vh;
|
|
42
27
|
z-index: 991;
|
|
43
28
|
|
|
29
|
+
-webkit-transition: width 200ms ease-in-out;
|
|
30
|
+
-moz-transition: width 200ms ease-in-out;
|
|
31
|
+
-o-transition: width 200ms ease-in-out;
|
|
32
|
+
transition: width 200ms ease-in-out;
|
|
33
|
+
|
|
44
34
|
.nav-main {
|
|
45
35
|
padding-left: @spacing-2;
|
|
46
36
|
padding-right: @spacing-2;
|
|
@@ -54,6 +44,7 @@
|
|
|
54
44
|
padding-top: @spacing-2;
|
|
55
45
|
padding-left: @spacing-2;
|
|
56
46
|
padding-right: @spacing-2;
|
|
47
|
+
cursor: pointer;
|
|
57
48
|
}
|
|
58
49
|
}
|
|
59
50
|
|
|
@@ -76,10 +67,21 @@
|
|
|
76
67
|
}
|
|
77
68
|
}
|
|
78
69
|
|
|
70
|
+
.nav-drawer-backdrop {
|
|
71
|
+
position: fixed;
|
|
72
|
+
height: 100vh;
|
|
73
|
+
width: 100vw;
|
|
74
|
+
top: 0;
|
|
75
|
+
left: 0;
|
|
76
|
+
z-index: 991;
|
|
77
|
+
background-color: rgba(0, 0, 0, 0.5);
|
|
78
|
+
}
|
|
79
|
+
|
|
79
80
|
// mobile version opened
|
|
80
81
|
.nav-drawer-opened {
|
|
81
82
|
display: flex;
|
|
82
83
|
width: 90vw;
|
|
84
|
+
left: 0;
|
|
83
85
|
}
|
|
84
86
|
|
|
85
87
|
@media only screen and (min-width: 361px) {
|
|
@@ -156,7 +158,11 @@
|
|
|
156
158
|
// desktop version expanded
|
|
157
159
|
.nav-wide {
|
|
158
160
|
width: var(--nav-offset-left);
|
|
159
|
-
|
|
161
|
+
|
|
162
|
+
.nav-item {
|
|
163
|
+
margin-left: @spacing-1;
|
|
164
|
+
margin-right: @spacing-1;
|
|
165
|
+
}
|
|
160
166
|
|
|
161
167
|
.toggle {
|
|
162
168
|
.toggle-content {
|
|
@@ -177,14 +183,16 @@
|
|
|
177
183
|
margin-top: @spacing-1;
|
|
178
184
|
margin-bottom: @spacing-1;
|
|
179
185
|
}
|
|
186
|
+
|
|
187
|
+
.nav-main {
|
|
188
|
+
padding-top: @spacing-1;
|
|
189
|
+
}
|
|
180
190
|
}
|
|
181
191
|
|
|
182
192
|
.nav-drawer,
|
|
183
193
|
.nav-wide {
|
|
184
194
|
.nav-item {
|
|
185
195
|
flex-direction: row;
|
|
186
|
-
margin-left: @spacing-1;
|
|
187
|
-
margin-right: @spacing-1;
|
|
188
196
|
|
|
189
197
|
.nav-item-icon-wrapper {
|
|
190
198
|
flex: 1;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export const __esModule: true;
|
|
2
|
+
export const divider: string;
|
|
3
|
+
export const nav: string;
|
|
4
|
+
export const navBottom: string;
|
|
5
|
+
export const navClose: string;
|
|
6
|
+
export const navCloseWrapper: string;
|
|
7
|
+
export const navDrawer: string;
|
|
8
|
+
export const navDrawerBackdrop: string;
|
|
9
|
+
export const navDrawerOpened: string;
|
|
10
|
+
export const navFooter: string;
|
|
11
|
+
export const navGroupItem: string;
|
|
12
|
+
export const navGroupWrapper: string;
|
|
13
|
+
export const navIcon: string;
|
|
14
|
+
export const navIconActive: string;
|
|
15
|
+
export const navIconInactive: string;
|
|
16
|
+
export const navItem: string;
|
|
17
|
+
export const navItemActive: string;
|
|
18
|
+
export const navItemCounter: string;
|
|
19
|
+
export const navItemCounterLong: string;
|
|
20
|
+
export const navItemGroupToggle: string;
|
|
21
|
+
export const navItemGroupToggleClick: string;
|
|
22
|
+
export const navItemGroupToggleWrapper: string;
|
|
23
|
+
export const navItemIconSwitch: string;
|
|
24
|
+
export const navItemIconWrapper: string;
|
|
25
|
+
export const navItemTextCollapsed: string;
|
|
26
|
+
export const navItemTextExpanded: string;
|
|
27
|
+
export const navItemTextSmall: string;
|
|
28
|
+
export const navLink: string;
|
|
29
|
+
export const navMain: string;
|
|
30
|
+
export const navSlim: string;
|
|
31
|
+
export const navTop: string;
|
|
32
|
+
export const navWide: string;
|
|
33
|
+
export const submenu: string;
|
|
34
|
+
export const submenuGroupHeader: string;
|
|
35
|
+
export const submenuGroupHeaderEmpty: string;
|
|
36
|
+
export const submenuItem: string;
|
|
37
|
+
export const submenuLink: string;
|
|
38
|
+
export const submenuLinkActive: string;
|
|
39
|
+
export const submenuLinkCounter: string;
|
|
40
|
+
export const submenuPopover: string;
|
|
41
|
+
export const submenuWrapper: string;
|
|
42
|
+
export const submenuWrapperCollapsed: string;
|
|
43
|
+
export const toggle: string;
|
|
44
|
+
export const toggleContent: string;
|
|
45
|
+
export const toggleIcon: string;
|
|
46
|
+
export const toggleIconWrapper: string;
|
|
47
|
+
export const toggleText: string;
|
|
48
|
+
export const toggleWrapper: string;
|
|
49
|
+
|
|
@@ -31,45 +31,51 @@ export interface LayoutSidebarProps {
|
|
|
31
31
|
top?: ReactElement[];
|
|
32
32
|
bottom?: ReactElement;
|
|
33
33
|
mainItems?: NavigationItemData[];
|
|
34
|
-
flex: boolean;
|
|
35
34
|
barExpanded: boolean;
|
|
36
35
|
submenuExpanded: string | undefined;
|
|
36
|
+
drawerOpened: boolean;
|
|
37
37
|
mobile: boolean;
|
|
38
38
|
navigationComponent: FC<NavLinkComponentProps>;
|
|
39
39
|
onBarExpandChange(expanded: boolean): void;
|
|
40
|
+
onDrawerOpenChange(expanded: boolean): void;
|
|
40
41
|
onSubmenuExpandChange(id: string, expanded: boolean): void;
|
|
41
42
|
}
|
|
42
43
|
|
|
43
44
|
export const LayoutSidebar: FC<LayoutSidebarProps> = ({
|
|
44
45
|
className,
|
|
45
|
-
flex,
|
|
46
46
|
mobile,
|
|
47
47
|
barExpanded,
|
|
48
48
|
submenuExpanded,
|
|
49
|
+
drawerOpened,
|
|
49
50
|
onBarExpandChange,
|
|
50
51
|
onSubmenuExpandChange,
|
|
52
|
+
onDrawerOpenChange,
|
|
51
53
|
mainItems,
|
|
52
54
|
top,
|
|
53
55
|
bottom,
|
|
54
56
|
navigationComponent,
|
|
55
57
|
}) => {
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
+
const closeDrawer = () => {
|
|
59
|
+
if (mobile) {
|
|
60
|
+
onDrawerOpenChange?.(false);
|
|
61
|
+
}
|
|
58
62
|
};
|
|
59
63
|
|
|
60
64
|
return (
|
|
61
65
|
<LayoutPlacementContext.Provider value="side">
|
|
66
|
+
{mobile && drawerOpened && (
|
|
67
|
+
<div className={Styles.navDrawerBackdrop} onClick={closeDrawer} />
|
|
68
|
+
)}
|
|
62
69
|
<div
|
|
63
70
|
className={classNames(
|
|
64
71
|
Styles.nav,
|
|
65
72
|
mobile && Styles.navDrawer,
|
|
66
|
-
mobile &&
|
|
73
|
+
mobile && drawerOpened && Styles.navDrawerOpened,
|
|
67
74
|
!mobile && (barExpanded ? Styles.navWide : Styles.navSlim),
|
|
68
|
-
!mobile && (flex ? Styles.navFlex : Styles.navFixed),
|
|
69
75
|
className
|
|
70
76
|
)}
|
|
71
77
|
data-cy="side-navigation"
|
|
72
|
-
onClick={
|
|
78
|
+
onClick={closeDrawer}
|
|
73
79
|
>
|
|
74
80
|
<ThemeProvider mode="dark" className={Styles.navMain}>
|
|
75
81
|
{mobile && (
|
|
@@ -82,14 +88,14 @@ export const LayoutSidebar: FC<LayoutSidebarProps> = ({
|
|
|
82
88
|
</div>
|
|
83
89
|
</div>
|
|
84
90
|
)}
|
|
85
|
-
{top?.length && <SidebarTop>{top}</SidebarTop>}
|
|
91
|
+
{!!top?.length && <SidebarTop>{top}</SidebarTop>}
|
|
86
92
|
|
|
87
93
|
<div data-cy="navigation-items">
|
|
88
94
|
{mainItems?.map(item =>
|
|
89
95
|
item.submenu ? (
|
|
90
96
|
<SideNavigationGroupItem
|
|
91
97
|
key={item.id}
|
|
92
|
-
barExpanded={barExpanded}
|
|
98
|
+
barExpanded={mobile ? drawerOpened : barExpanded}
|
|
93
99
|
submenuExpanded={!!item.id && submenuExpanded === item.id}
|
|
94
100
|
onSubmenuExpand={onSubmenuExpandChange}
|
|
95
101
|
navigationComponent={navigationComponent}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import {
|
|
2
|
+
FC,
|
|
3
|
+
PropsWithChildren,
|
|
4
|
+
createContext,
|
|
5
|
+
useCallback,
|
|
6
|
+
useContext,
|
|
7
|
+
useRef,
|
|
8
|
+
useState,
|
|
9
|
+
} from 'react';
|
|
10
|
+
|
|
11
|
+
interface NotificationsContextType {
|
|
12
|
+
onNotificationsUpdate: (id: string, hasNotifications: boolean) => void;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const NotificationsContext = createContext<NotificationsContextType>({
|
|
16
|
+
onNotificationsUpdate: () => {},
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
export const useNotificationsContext = () => useContext(NotificationsContext);
|
|
20
|
+
|
|
21
|
+
export const useNotificationsState = () => {
|
|
22
|
+
const [hasNotifications, setHasNotifications] = useState(false);
|
|
23
|
+
const items = useRef(new Set<string>());
|
|
24
|
+
const onNotificationsUpdate = useCallback((id: string, hasNotifications: boolean) => {
|
|
25
|
+
if (hasNotifications && !items.current.has(id)) {
|
|
26
|
+
items.current.add(id);
|
|
27
|
+
setHasNotifications(!!items.current.size);
|
|
28
|
+
} else if (!hasNotifications && items.current.has(id)) {
|
|
29
|
+
items.current.delete(id);
|
|
30
|
+
setHasNotifications(!!items.current.size);
|
|
31
|
+
}
|
|
32
|
+
}, []);
|
|
33
|
+
|
|
34
|
+
const NotificationsContextProvider: FC<PropsWithChildren> = useCallback(
|
|
35
|
+
({ children }) => (
|
|
36
|
+
<NotificationsContext.Provider value={{ onNotificationsUpdate }}>
|
|
37
|
+
{children}
|
|
38
|
+
</NotificationsContext.Provider>
|
|
39
|
+
),
|
|
40
|
+
[onNotificationsUpdate]
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
return { NotificationsContextProvider, hasNotifications };
|
|
44
|
+
};
|
|
@@ -8,46 +8,100 @@
|
|
|
8
8
|
@bg-color-hover: rgba(255, 255, 255, 0.08);
|
|
9
9
|
@bg-color-active: rgba(120, 187, 250, 0.2);
|
|
10
10
|
|
|
11
|
-
.layout-legacy {
|
|
12
|
-
padding-left: var(--nav-offset-left);
|
|
13
|
-
}
|
|
14
|
-
|
|
15
11
|
.layout-anvil1 {
|
|
16
|
-
|
|
12
|
+
height: calc(100vh - var(--nav-offset-top));
|
|
13
|
+
margin-top: var(--nav-offset-top);
|
|
14
|
+
|
|
15
|
+
display: flex;
|
|
16
|
+
flex-direction: column;
|
|
17
|
+
|
|
18
|
+
.side {
|
|
19
|
+
flex-basis: var(--nav-offset-left);
|
|
20
|
+
flex-grow: 0;
|
|
21
|
+
flex-shrink: 0;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.content {
|
|
25
|
+
flex-grow: 1;
|
|
26
|
+
|
|
27
|
+
display: flex;
|
|
28
|
+
flex-direction: column;
|
|
29
|
+
overflow: hidden;
|
|
30
|
+
}
|
|
17
31
|
}
|
|
18
32
|
|
|
19
33
|
.layout-anvil2 {
|
|
20
|
-
|
|
34
|
+
.content-header {
|
|
35
|
+
position: sticky;
|
|
36
|
+
top: var(--nav-offset-top);
|
|
37
|
+
z-index: 989;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.layout-desktop {
|
|
42
|
+
padding-left: var(--nav-offset-left);
|
|
43
|
+
|
|
44
|
+
.side {
|
|
45
|
+
position: fixed;
|
|
46
|
+
top: var(--nav-offset-top);
|
|
47
|
+
bottom: 0;
|
|
48
|
+
left: 0;
|
|
49
|
+
right: 0;
|
|
50
|
+
z-index: @z-index-global-nav;
|
|
51
|
+
}
|
|
21
52
|
}
|
|
22
53
|
|
|
23
54
|
.layout-legacy,
|
|
24
55
|
.layout-anvil2 {
|
|
56
|
+
overflow-x: auto;
|
|
25
57
|
.top-placeholder {
|
|
26
58
|
height: var(--nav-offset-top);
|
|
27
59
|
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.layout {
|
|
63
|
+
--nav-offset-top: 0;
|
|
64
|
+
--nav-offset-left: 0;
|
|
65
|
+
|
|
66
|
+
&.layout-desktop.layout-top {
|
|
67
|
+
--nav-offset-top: 48px;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
&.layout-mobile.layout-top {
|
|
71
|
+
--nav-offset-top: 72px;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
&.layout-desktop.layout-nav-slim {
|
|
75
|
+
--nav-offset-left: 64px;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
&.layout-desktop.layout-nav-wide {
|
|
79
|
+
--nav-offset-left: 212px;
|
|
80
|
+
}
|
|
28
81
|
|
|
29
82
|
.top {
|
|
30
83
|
position: fixed;
|
|
84
|
+
width: 100vw;
|
|
31
85
|
top: 0;
|
|
32
86
|
left: 0;
|
|
33
|
-
right: 0;
|
|
34
87
|
z-index: 991;
|
|
35
88
|
}
|
|
36
|
-
}
|
|
37
89
|
|
|
38
|
-
.
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
--nav-offset-top: 61px;
|
|
43
|
-
--nav-offset-left: 0;
|
|
90
|
+
.content-header {
|
|
91
|
+
position: sticky;
|
|
92
|
+
left: 0;
|
|
93
|
+
right: 0;
|
|
44
94
|
}
|
|
95
|
+
}
|
|
45
96
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
97
|
+
@media print {
|
|
98
|
+
.layout {
|
|
99
|
+
--nav-offset-left: 0px !important;
|
|
100
|
+
--nav-offset-right: 0px !important;
|
|
49
101
|
|
|
50
|
-
|
|
51
|
-
|
|
102
|
+
.side,
|
|
103
|
+
.top {
|
|
104
|
+
display: none !important;
|
|
105
|
+
}
|
|
52
106
|
}
|
|
53
107
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export const __esModule: true;
|
|
2
|
+
export const content: string;
|
|
3
|
+
export const contentHeader: string;
|
|
4
|
+
export const layout: string;
|
|
5
|
+
export const layoutAnvil1: string;
|
|
6
|
+
export const layoutAnvil2: string;
|
|
7
|
+
export const layoutDesktop: string;
|
|
8
|
+
export const layoutLegacy: string;
|
|
9
|
+
export const layoutMobile: string;
|
|
10
|
+
export const layoutNavSlim: string;
|
|
11
|
+
export const layoutNavWide: string;
|
|
12
|
+
export const layoutTop: string;
|
|
13
|
+
export const side: string;
|
|
14
|
+
export const top: string;
|
|
15
|
+
export const topPlaceholder: string;
|
|
16
|
+
|