@toptal/picasso-page 2.2.0 → 3.0.1
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-package/src/PageSidebar/PageSidebar.d.ts.map +1 -1
- package/dist-package/src/PageSidebar/PageSidebar.js +2 -2
- package/dist-package/src/PageSidebar/PageSidebar.js.map +1 -1
- package/dist-package/src/PageTopBar/PageTopBar.d.ts.map +1 -1
- package/dist-package/src/PageTopBar/PageTopBar.js +1 -1
- package/dist-package/src/PageTopBar/PageTopBar.js.map +1 -1
- package/dist-package/src/SidebarItem/SidebarItemHeader.d.ts.map +1 -1
- package/dist-package/src/SidebarItem/SidebarItemHeader.js +58 -15
- package/dist-package/src/SidebarItem/SidebarItemHeader.js.map +1 -1
- package/dist-package/src/SidebarItem/styles.d.ts +1 -1
- package/dist-package/src/SidebarItem/styles.d.ts.map +1 -1
- package/dist-package/src/SidebarItem/styles.js +1 -69
- package/dist-package/src/SidebarItem/styles.js.map +1 -1
- package/dist-package/src/SidebarLogo/SidebarLogo.d.ts.map +1 -1
- package/dist-package/src/SidebarLogo/SidebarLogo.js +1 -1
- package/dist-package/src/SidebarLogo/SidebarLogo.js.map +1 -1
- package/dist-package/src/SidebarMenu/SidebarMenu.d.ts.map +1 -1
- package/dist-package/src/SidebarMenu/SidebarMenu.js +3 -9
- package/dist-package/src/SidebarMenu/SidebarMenu.js.map +1 -1
- package/dist-package/src/TopBarItem/TopBarItem.d.ts.map +1 -1
- package/dist-package/src/TopBarItem/TopBarItem.js +15 -9
- package/dist-package/src/TopBarItem/TopBarItem.js.map +1 -1
- package/dist-package/src/TopBarMenu/TopBarMenu.d.ts.map +1 -1
- package/dist-package/src/TopBarMenu/TopBarMenu.js +4 -6
- package/dist-package/src/TopBarMenu/TopBarMenu.js.map +1 -1
- package/package.json +21 -20
- package/src/PageAutocomplete/__snapshots__/test.tsx.snap +5 -19
- package/src/PageSidebar/PageSidebar.tsx +1 -3
- package/src/PageSidebar/__snapshots__/test.tsx.snap +9 -9
- package/src/PageTopBar/PageTopBar.tsx +1 -5
- package/src/PageTopBar/__snapshots__/test.tsx.snap +13 -13
- package/src/PageTopBarMenu/__snapshots__/test.tsx.snap +3 -3
- package/src/PageTopBarMenu/test.tsx +3 -3
- package/src/SidebarItem/SidebarItemHeader.tsx +90 -26
- package/src/SidebarItem/__snapshots__/test.tsx.snap +79 -79
- package/src/SidebarItem/styles.ts +1 -69
- package/src/SidebarLogo/SidebarLogo.tsx +0 -2
- package/src/SidebarLogo/__snapshots__/test.tsx.snap +1 -1
- package/src/SidebarMenu/SidebarMenu.tsx +3 -12
- package/src/SidebarMenu/__snapshots__/test.tsx.snap +2 -2
- package/src/TopBarItem/TopBarItem.tsx +25 -10
- package/src/TopBarMenu/TopBarMenu.tsx +1 -7
- package/dist-package/src/SidebarMenu/styles.d.ts +0 -3
- package/dist-package/src/SidebarMenu/styles.d.ts.map +0 -1
- package/dist-package/src/SidebarMenu/styles.js +0 -20
- package/dist-package/src/SidebarMenu/styles.js.map +0 -1
- package/dist-package/src/TopBarItem/styles.d.ts +0 -4
- package/dist-package/src/TopBarItem/styles.d.ts.map +0 -1
- package/dist-package/src/TopBarItem/styles.js +0 -46
- package/dist-package/src/TopBarItem/styles.js.map +0 -1
- package/dist-package/src/TopBarMenu/styles.d.ts +0 -3
- package/dist-package/src/TopBarMenu/styles.d.ts.map +0 -1
- package/dist-package/src/TopBarMenu/styles.js +0 -11
- package/dist-package/src/TopBarMenu/styles.js.map +0 -1
- package/src/SidebarMenu/styles.ts +0 -21
- package/src/TopBarItem/styles.ts +0 -49
- package/src/TopBarMenu/styles.ts +0 -13
|
@@ -12,23 +12,23 @@ exports[`PageAutocomplete renders 1`] = `
|
|
|
12
12
|
role="combobox"
|
|
13
13
|
>
|
|
14
14
|
<div
|
|
15
|
-
class="
|
|
15
|
+
class="flex"
|
|
16
16
|
>
|
|
17
17
|
<div
|
|
18
|
-
class="
|
|
18
|
+
class="base-Input base-Input base-Input relative inline-flex gap-y gap-x items-center rounded-sm [font-size:_unset] hover:[&_.resetButtonDirty]:visible p-2 h-8 w-[18.75rem] bg-[#081237] after:content-[""] after:inline-block after:absolute after:top-0 after:bottom-0 after:right-0 after:left-0 after:pointer-events after:rounded-sm after:border-gray [&:has(input:focus)]:after:border-blue after:border-none [&:has(input:focus)]:after:shadow-0 hover:[&:not(:has(input:focus))]:after:border-gray text-black cursor-[inherit]"
|
|
19
19
|
>
|
|
20
20
|
<input
|
|
21
21
|
aria-autocomplete="list"
|
|
22
22
|
aria-invalid="false"
|
|
23
23
|
autocomplete="off"
|
|
24
|
-
class="
|
|
24
|
+
class="base-Input [&::-webkit-calendar-picker-indicator]:bg bg-transparent border-none box-border cursor-[inherit] h-full outline-none p-0 peer resize-none w-full text-md leading-4 text-white [&::placeholder]:text-white [&::placeholder]:opacity-[0.64]"
|
|
25
25
|
data-testid="autocomplete"
|
|
26
26
|
type="text"
|
|
27
27
|
value=""
|
|
28
28
|
variant="dark"
|
|
29
29
|
/>
|
|
30
30
|
<div
|
|
31
|
-
class="
|
|
31
|
+
class="text-graphite h-auto flex items-center whitespace-nowrap max-h justify-end ml-auto flex-grow flex-shrink basis-auto invisible"
|
|
32
32
|
data-testid="reset-adornment"
|
|
33
33
|
>
|
|
34
34
|
<button
|
|
@@ -40,7 +40,7 @@ exports[`PageAutocomplete renders 1`] = `
|
|
|
40
40
|
type="button"
|
|
41
41
|
>
|
|
42
42
|
<span
|
|
43
|
-
class="
|
|
43
|
+
class="items-center inline-flex font-semibold whitespace-nowrap text-button"
|
|
44
44
|
>
|
|
45
45
|
<svg
|
|
46
46
|
class="PicassoSvgCloseMinor16-root text-[1.2em] flex-1"
|
|
@@ -54,20 +54,6 @@ exports[`PageAutocomplete renders 1`] = `
|
|
|
54
54
|
</span>
|
|
55
55
|
</button>
|
|
56
56
|
</div>
|
|
57
|
-
<fieldset
|
|
58
|
-
aria-hidden="true"
|
|
59
|
-
class="PrivateNotchedOutline-root MuiOutlinedInput-notchedOutline PicassoOutlinedInput-notchedOutline PicassoOutlinedInput-notchedOutlineDark"
|
|
60
|
-
style="padding-left: 8px;"
|
|
61
|
-
>
|
|
62
|
-
<legend
|
|
63
|
-
class="PrivateNotchedOutline-legend"
|
|
64
|
-
style="width: 0.01px;"
|
|
65
|
-
>
|
|
66
|
-
<span>
|
|
67
|
-
|
|
68
|
-
</span>
|
|
69
|
-
</legend>
|
|
70
|
-
</fieldset>
|
|
71
57
|
</div>
|
|
72
58
|
</div>
|
|
73
59
|
<div
|
|
@@ -3,7 +3,7 @@ import { makeStyles } from '@material-ui/core/styles'
|
|
|
3
3
|
import { useSidebar } from '@toptal/picasso-provider'
|
|
4
4
|
import type { BaseProps, SizeType } from '@toptal/picasso-shared'
|
|
5
5
|
import cx from 'classnames'
|
|
6
|
-
import { twMerge } from 'tailwind-merge'
|
|
6
|
+
import { twMerge } from '@toptal/picasso-tailwind-merge'
|
|
7
7
|
import type { ReactNode } from 'react'
|
|
8
8
|
import React, { forwardRef, useCallback, useEffect, useState } from 'react'
|
|
9
9
|
import { ButtonCircular } from '@toptal/picasso-button'
|
|
@@ -100,8 +100,6 @@ export const PageSidebar = forwardRef<HTMLDivElement, Props>(function Sidebar(
|
|
|
100
100
|
return (
|
|
101
101
|
<Container
|
|
102
102
|
ref={ref}
|
|
103
|
-
flex
|
|
104
|
-
direction='column'
|
|
105
103
|
style={style}
|
|
106
104
|
className={cx(classes.root, className, classes[variant], classes[size], {
|
|
107
105
|
[classes.rootCollapsed]: collapsible && isCollapsed,
|
|
@@ -6,13 +6,13 @@ exports[`PageSidebar renders 1`] = `
|
|
|
6
6
|
class="Picasso-root"
|
|
7
7
|
>
|
|
8
8
|
<div
|
|
9
|
-
class="
|
|
9
|
+
class="PageSidebar-root PageSidebar-light PageSidebar-medium PageSidebar-hamburgerNotAvailable"
|
|
10
10
|
>
|
|
11
11
|
<div
|
|
12
12
|
class="PageSidebar-wrapper PageSidebar-sticky"
|
|
13
13
|
>
|
|
14
14
|
<div
|
|
15
|
-
class="
|
|
15
|
+
class="flex flex-col PageSidebar-scrollableContent"
|
|
16
16
|
>
|
|
17
17
|
<div
|
|
18
18
|
class="PageSidebar-spacer"
|
|
@@ -30,19 +30,19 @@ exports[`PageSidebar with menu 1`] = `
|
|
|
30
30
|
class="Picasso-root"
|
|
31
31
|
>
|
|
32
32
|
<div
|
|
33
|
-
class="
|
|
33
|
+
class="PageSidebar-root PageSidebar-light PageSidebar-medium PageSidebar-hamburgerNotAvailable"
|
|
34
34
|
>
|
|
35
35
|
<div
|
|
36
36
|
class="PageSidebar-wrapper PageSidebar-sticky"
|
|
37
37
|
>
|
|
38
38
|
<div
|
|
39
|
-
class="
|
|
39
|
+
class="flex flex-col PageSidebar-scrollableContent"
|
|
40
40
|
>
|
|
41
41
|
<div
|
|
42
42
|
class="PageSidebar-spacer"
|
|
43
43
|
/>
|
|
44
44
|
<ul
|
|
45
|
-
class="
|
|
45
|
+
class="relative list-none outline-none py-2 px-0 m-0 rounded-sm shadow-0 order-1 [&_&]:flex-1 flex-grow flex-shrink max-w"
|
|
46
46
|
role="menu"
|
|
47
47
|
tabindex="-1"
|
|
48
48
|
/>
|
|
@@ -59,24 +59,24 @@ exports[`PageSidebar with one normal and one bottom menu 1`] = `
|
|
|
59
59
|
class="Picasso-root"
|
|
60
60
|
>
|
|
61
61
|
<div
|
|
62
|
-
class="
|
|
62
|
+
class="PageSidebar-root PageSidebar-light PageSidebar-medium PageSidebar-hamburgerNotAvailable"
|
|
63
63
|
>
|
|
64
64
|
<div
|
|
65
65
|
class="PageSidebar-wrapper PageSidebar-sticky"
|
|
66
66
|
>
|
|
67
67
|
<div
|
|
68
|
-
class="
|
|
68
|
+
class="flex flex-col PageSidebar-scrollableContent"
|
|
69
69
|
>
|
|
70
70
|
<div
|
|
71
71
|
class="PageSidebar-spacer"
|
|
72
72
|
/>
|
|
73
73
|
<ul
|
|
74
|
-
class="
|
|
74
|
+
class="relative list-none outline-none py-2 px-0 m-0 rounded-sm shadow-0 order-1 [&_&]:flex-1 flex-grow flex-shrink max-w"
|
|
75
75
|
role="menu"
|
|
76
76
|
tabindex="-1"
|
|
77
77
|
/>
|
|
78
78
|
<ul
|
|
79
|
-
class="
|
|
79
|
+
class="relative list-none outline-none py-2 px-0 m-0 rounded-sm shadow-0 [&_&]:flex-1 flex-grow flex-shrink max-w order-[99]"
|
|
80
80
|
role="menu"
|
|
81
81
|
tabindex="-1"
|
|
82
82
|
/>
|
|
@@ -170,11 +170,7 @@ export const PageTopBar = forwardRef<HTMLElement, Props>(function PageTopBar(
|
|
|
170
170
|
{centerContent}
|
|
171
171
|
</div>
|
|
172
172
|
</PageHamburgerPortal>
|
|
173
|
-
<Container
|
|
174
|
-
flex
|
|
175
|
-
alignItems='center'
|
|
176
|
-
className={classes.centerContent}
|
|
177
|
-
>
|
|
173
|
+
<Container className={classes.centerContent}>
|
|
178
174
|
{centerContent}
|
|
179
175
|
</Container>
|
|
180
176
|
</>
|
|
@@ -18,7 +18,7 @@ exports[`Page.TopBar render with custom logo 1`] = `
|
|
|
18
18
|
class="PicassoTopBar-left"
|
|
19
19
|
>
|
|
20
20
|
<div
|
|
21
|
-
class="
|
|
21
|
+
class="gap-4 items-center flex"
|
|
22
22
|
>
|
|
23
23
|
<div
|
|
24
24
|
class="PicassoDropdown-root PageHamburger-root PageHamburger-hidden"
|
|
@@ -35,7 +35,7 @@ exports[`Page.TopBar render with custom logo 1`] = `
|
|
|
35
35
|
type="button"
|
|
36
36
|
>
|
|
37
37
|
<span
|
|
38
|
-
class="
|
|
38
|
+
class="items-center inline-flex font-semibold whitespace-nowrap text-button"
|
|
39
39
|
>
|
|
40
40
|
<svg
|
|
41
41
|
class="PicassoSvgOverview24-root text-[1.2em] flex-1 PageHamburger-hamburger"
|
|
@@ -72,13 +72,13 @@ exports[`Page.TopBar render with custom logo 1`] = `
|
|
|
72
72
|
Custom logo content
|
|
73
73
|
</div>
|
|
74
74
|
<div
|
|
75
|
-
class="
|
|
75
|
+
class="items-center PicassoTopBar-title"
|
|
76
76
|
>
|
|
77
77
|
<div
|
|
78
78
|
class="PicassoTopBar-divider"
|
|
79
79
|
/>
|
|
80
80
|
<div
|
|
81
|
-
class="
|
|
81
|
+
class="ml-4"
|
|
82
82
|
>
|
|
83
83
|
<p
|
|
84
84
|
class="m-0 font-inherit leading-[1.5em] text-white font-regular"
|
|
@@ -117,7 +117,7 @@ exports[`Page.TopBar render with link 1`] = `
|
|
|
117
117
|
class="PicassoTopBar-left"
|
|
118
118
|
>
|
|
119
119
|
<div
|
|
120
|
-
class="
|
|
120
|
+
class="gap-4 items-center flex"
|
|
121
121
|
>
|
|
122
122
|
<div
|
|
123
123
|
class="PicassoDropdown-root PageHamburger-root PageHamburger-hidden"
|
|
@@ -134,7 +134,7 @@ exports[`Page.TopBar render with link 1`] = `
|
|
|
134
134
|
type="button"
|
|
135
135
|
>
|
|
136
136
|
<span
|
|
137
|
-
class="
|
|
137
|
+
class="items-center inline-flex font-semibold whitespace-nowrap text-button"
|
|
138
138
|
>
|
|
139
139
|
<svg
|
|
140
140
|
class="PicassoSvgOverview24-root text-[1.2em] flex-1 PageHamburger-hamburger"
|
|
@@ -168,7 +168,7 @@ exports[`Page.TopBar render with link 1`] = `
|
|
|
168
168
|
</div>
|
|
169
169
|
</div>
|
|
170
170
|
<a
|
|
171
|
-
class="
|
|
171
|
+
class="m-0 font-inherit font-inherit focus:outline-none hover:underline leading-[inherit] text-blue visited:text-purple no-underline"
|
|
172
172
|
href="https://www.toptal.com"
|
|
173
173
|
>
|
|
174
174
|
<svg
|
|
@@ -197,13 +197,13 @@ exports[`Page.TopBar render with link 1`] = `
|
|
|
197
197
|
</svg>
|
|
198
198
|
</a>
|
|
199
199
|
<div
|
|
200
|
-
class="
|
|
200
|
+
class="items-center PicassoTopBar-title"
|
|
201
201
|
>
|
|
202
202
|
<div
|
|
203
203
|
class="PicassoTopBar-divider"
|
|
204
204
|
/>
|
|
205
205
|
<div
|
|
206
|
-
class="
|
|
206
|
+
class="ml-4"
|
|
207
207
|
>
|
|
208
208
|
<p
|
|
209
209
|
class="m-0 font-inherit leading-[1.5em] text-white font-regular"
|
|
@@ -242,7 +242,7 @@ exports[`Page.TopBar renders 1`] = `
|
|
|
242
242
|
class="PicassoTopBar-left"
|
|
243
243
|
>
|
|
244
244
|
<div
|
|
245
|
-
class="
|
|
245
|
+
class="gap-4 items-center flex"
|
|
246
246
|
>
|
|
247
247
|
<div
|
|
248
248
|
class="PicassoDropdown-root PageHamburger-root PageHamburger-hidden"
|
|
@@ -259,7 +259,7 @@ exports[`Page.TopBar renders 1`] = `
|
|
|
259
259
|
type="button"
|
|
260
260
|
>
|
|
261
261
|
<span
|
|
262
|
-
class="
|
|
262
|
+
class="items-center inline-flex font-semibold whitespace-nowrap text-button"
|
|
263
263
|
>
|
|
264
264
|
<svg
|
|
265
265
|
class="PicassoSvgOverview24-root text-[1.2em] flex-1 PageHamburger-hamburger"
|
|
@@ -317,13 +317,13 @@ exports[`Page.TopBar renders 1`] = `
|
|
|
317
317
|
/>
|
|
318
318
|
</svg>
|
|
319
319
|
<div
|
|
320
|
-
class="
|
|
320
|
+
class="items-center PicassoTopBar-title"
|
|
321
321
|
>
|
|
322
322
|
<div
|
|
323
323
|
class="PicassoTopBar-divider"
|
|
324
324
|
/>
|
|
325
325
|
<div
|
|
326
|
-
class="
|
|
326
|
+
class="ml-4"
|
|
327
327
|
>
|
|
328
328
|
<p
|
|
329
329
|
class="m-0 font-inherit leading-[1.5em] text-white font-regular"
|
|
@@ -12,7 +12,7 @@ exports[`PageTopBarMenu renders 1`] = `
|
|
|
12
12
|
class="PicassoDropdown-anchor"
|
|
13
13
|
>
|
|
14
14
|
<div
|
|
15
|
-
class="
|
|
15
|
+
class="items-center flex PicassoUserBadge-root"
|
|
16
16
|
>
|
|
17
17
|
<div
|
|
18
18
|
class="flex relative"
|
|
@@ -28,10 +28,10 @@ exports[`PageTopBarMenu renders 1`] = `
|
|
|
28
28
|
</div>
|
|
29
29
|
</div>
|
|
30
30
|
<div
|
|
31
|
-
class="
|
|
31
|
+
class="flex flex-col PicassoUserBadge-infoContainer"
|
|
32
32
|
>
|
|
33
33
|
<div
|
|
34
|
-
class="
|
|
34
|
+
class="items-center flex"
|
|
35
35
|
>
|
|
36
36
|
<h4
|
|
37
37
|
class="m-0 text-md text-white font-semibold inline PicassoUserBadge-name !font-[400] PicassoTopBarMenu-truncateText"
|
|
@@ -2,7 +2,7 @@ import React from 'react'
|
|
|
2
2
|
/* eslint-disable-next-line */
|
|
3
3
|
import { render } from '@toptal/picasso-test-utils'
|
|
4
4
|
import type { OmitInternalProps } from '@toptal/picasso-shared'
|
|
5
|
-
import {
|
|
5
|
+
import { Menu, MenuItem } from '@toptal/picasso-menu'
|
|
6
6
|
|
|
7
7
|
import type { Props } from './PageTopBarMenu'
|
|
8
8
|
import { PageTopBarMenu } from './PageTopBarMenu'
|
|
@@ -27,8 +27,8 @@ describe('PageTopBarMenu', () => {
|
|
|
27
27
|
avatar='./jacqueline-with-flowers-1954-square.jpg'
|
|
28
28
|
>
|
|
29
29
|
<Menu>
|
|
30
|
-
<
|
|
31
|
-
<
|
|
30
|
+
<MenuItem>My Account</MenuItem>
|
|
31
|
+
<MenuItem>Log Out</MenuItem>
|
|
32
32
|
</Menu>
|
|
33
33
|
</TestPageTopBarMenu>
|
|
34
34
|
)
|
|
@@ -1,18 +1,94 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { makeStyles } from '@material-ui/core/styles'
|
|
3
|
-
import cx from 'classnames'
|
|
1
|
+
import { twMerge, twJoin } from '@toptal/picasso-tailwind-merge'
|
|
4
2
|
import React, { forwardRef, useCallback } from 'react'
|
|
5
3
|
import { MenuItem } from '@toptal/picasso-menu'
|
|
6
4
|
|
|
7
5
|
import { SidebarItemContent } from '../SidebarItemContent'
|
|
8
|
-
import styles from './styles'
|
|
9
6
|
import type { Props } from './types'
|
|
10
|
-
import { useSubMenuContext } from './SubMenuContextProvider'
|
|
7
|
+
import { useSubMenuContext, type ContextProps } from './SubMenuContextProvider'
|
|
11
8
|
import { getTagProps, getBadgeProps } from './utils'
|
|
12
9
|
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
const getColorStyles = ({
|
|
11
|
+
variant,
|
|
12
|
+
selected,
|
|
13
|
+
}: {
|
|
14
|
+
variant: Props['variant']
|
|
15
|
+
selected?: boolean
|
|
16
|
+
}) => {
|
|
17
|
+
if (variant === 'light') {
|
|
18
|
+
if (selected) {
|
|
19
|
+
return 'text-blue-500 hover:text-blue-500 focus:text-blue-500 bg-gray-300 hover:bg-gray-300 focus:bg-gray-300'
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return 'text-graphite-700 hover:text-blue-500 focus:text-blue-500'
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if (variant === 'dark') {
|
|
26
|
+
if (selected) {
|
|
27
|
+
return 'text-white hover:text-white focus:text-white bg-graphite-700 hover:bg-graphite-700 focus:bg-graphite-700'
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return 'hover:text-white focus:text-white'
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const getSpacingStyles = ({
|
|
35
|
+
compact,
|
|
36
|
+
parentMenu,
|
|
37
|
+
hasMenu,
|
|
38
|
+
collapsible,
|
|
39
|
+
}: {
|
|
40
|
+
compact: Props['compact']
|
|
41
|
+
parentMenu: ContextProps['parentMenu']
|
|
42
|
+
hasMenu: boolean
|
|
43
|
+
collapsible?: boolean
|
|
44
|
+
}) => {
|
|
45
|
+
let pl = 'pl-4'
|
|
46
|
+
let pr = 'pr-4'
|
|
47
|
+
let pt = 'pt-0'
|
|
48
|
+
let pb = 'pb-0'
|
|
49
|
+
|
|
50
|
+
let ml = 'ml-4'
|
|
51
|
+
let mr = 'mr-4'
|
|
52
|
+
let mt = 'mt-0'
|
|
53
|
+
let mb = 'mb-0'
|
|
54
|
+
|
|
55
|
+
if (parentMenu) {
|
|
56
|
+
pr = 'pr-4'
|
|
57
|
+
pl = parentMenu.icon ? 'pl-[2.875rem]' : 'pl-8'
|
|
58
|
+
mr = 'mr-4'
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
if (compact) {
|
|
62
|
+
pt = 'pt-0'
|
|
63
|
+
pb = 'pb-0'
|
|
64
|
+
pr = 'pr-0'
|
|
65
|
+
pl = 'pl-0'
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (hasMenu && (collapsible || compact)) {
|
|
69
|
+
pt = 'pt-0'
|
|
70
|
+
pb = 'pb-0'
|
|
71
|
+
pr = 'pr-0'
|
|
72
|
+
pl = 'pl-0'
|
|
73
|
+
mt = 'mt-0'
|
|
74
|
+
mb = 'mb-0'
|
|
75
|
+
mr = 'mr-0'
|
|
76
|
+
ml = 'ml-0'
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
if (parentMenu?.compact) {
|
|
80
|
+
mr = 'mr-0'
|
|
81
|
+
mt = 'mt-0'
|
|
82
|
+
mb = 'mb-0'
|
|
83
|
+
ml = 'ml-0'
|
|
84
|
+
pt = 'pt-[0.375rem]'
|
|
85
|
+
pb = 'pb-[0.375rem]'
|
|
86
|
+
pl = 'pl-4'
|
|
87
|
+
pr = 'pr-4'
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
return twJoin(pl, pr, pt, pb, mt, mb, mr, ml)
|
|
91
|
+
}
|
|
16
92
|
|
|
17
93
|
export const SidebarItemHeader = forwardRef<HTMLElement, Props>(
|
|
18
94
|
function SidebarItemHeader(props: Props, ref) {
|
|
@@ -39,8 +115,6 @@ export const SidebarItemHeader = forwardRef<HTMLElement, Props>(
|
|
|
39
115
|
...rest
|
|
40
116
|
} = props
|
|
41
117
|
|
|
42
|
-
const classes = useStyles()
|
|
43
|
-
|
|
44
118
|
const { parentMenu } = useSubMenuContext()
|
|
45
119
|
|
|
46
120
|
const hasMenu = menu != null
|
|
@@ -54,28 +128,18 @@ export const SidebarItemHeader = forwardRef<HTMLElement, Props>(
|
|
|
54
128
|
[hasMenu, onClick]
|
|
55
129
|
)
|
|
56
130
|
|
|
57
|
-
const subMenuClass =
|
|
58
|
-
parentMenu &&
|
|
59
|
-
(parentMenu.icon ? classes.nestedMenuWithIcon : classes.nestedMenu)
|
|
60
|
-
|
|
61
131
|
const shouldShowSelected = (compact || !hasMenu) && selected
|
|
62
132
|
|
|
63
133
|
return (
|
|
64
134
|
<MenuItem
|
|
65
135
|
{...rest}
|
|
66
|
-
classes={classes}
|
|
67
136
|
ref={ref}
|
|
68
|
-
className={
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
[classes.compact]: compact,
|
|
75
|
-
[classes.selected]: shouldShowSelected,
|
|
76
|
-
[classes.parentCompact]: parentMenu?.compact,
|
|
77
|
-
[classes.collapsible]: hasMenu && (collapsible || compact),
|
|
78
|
-
},
|
|
137
|
+
className={twMerge(
|
|
138
|
+
'h-[2.75rem] whitespace-nowrap rounded-sm',
|
|
139
|
+
'flex-1 min-w-0',
|
|
140
|
+
getColorStyles({ variant, selected: shouldShowSelected }),
|
|
141
|
+
getSpacingStyles({ compact, parentMenu, hasMenu, collapsible }),
|
|
142
|
+
compact && 'overflow-visible',
|
|
79
143
|
className
|
|
80
144
|
)}
|
|
81
145
|
onClick={handleMenuItemClick}
|