playbook_ui 12.39.0.pre.alpha.PLAY966collapsiblenav41115 → 12.39.0.pre.alpha.salesbookmismatchingdate1114
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.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_kit/dateTime.ts +41 -36
- data/app/pb_kits/playbook/pb_nav/_collapsible_nav.scss +24 -18
- data/app/pb_kits/playbook/pb_nav/_horizontal_nav.scss +1 -1
- data/app/pb_kits/playbook/pb_nav/_item.tsx +140 -227
- data/app/pb_kits/playbook/pb_nav/_mixins.scss +1 -10
- data/app/pb_kits/playbook/pb_nav/_nav.tsx +1 -17
- data/app/pb_kits/playbook/pb_nav/docs/_collapsible_nav.jsx +1 -1
- data/app/pb_kits/playbook/pb_nav/docs/_collapsible_nav_custom.jsx +1 -1
- data/app/pb_kits/playbook/pb_nav/docs/example.yml +5 -5
- data/app/pb_kits/playbook/pb_nav/item.html.erb +0 -15
- data/app/pb_kits/playbook/pb_nav/item.rb +1 -61
- data/app/pb_kits/playbook/pb_nav/nav.html.erb +1 -3
- data/app/pb_kits/playbook/pb_nav/nav.rb +0 -13
- data/app/pb_kits/playbook/pb_time/_time.tsx +1 -1
- data/dist/playbook-rails.js +1 -1
- data/lib/playbook/version.rb +1 -1
- metadata +1 -2
- data/app/pb_kits/playbook/pb_nav/navTypes.ts +0 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 53e1efed14125432de973864540db434bd15d7ca728af5bfd7facb459c42f3a5
|
4
|
+
data.tar.gz: 8ea21f9bdf376162e82ab98a9d14b3f186e8438d81a979faa663ffad1f3b57f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5b78591f4053df9f189134735a3689c5e010f823220d0217c65f222240a1aed961f8cdb79df3f91e771f7336717031dfd2594064388e3f9478549d0281f78724
|
7
|
+
data.tar.gz: 93d06173adcc6db7672b2580de009a31d530c0135802524b0d5514d09939737230c38dd845f47c862a9be503eb6c42916372498afc5481d54f7c2afe495f6644
|
@@ -17,6 +17,7 @@ const formatDate = (newDate: Date | string) => {
|
|
17
17
|
|
18
18
|
export const toMinute = (newDate: Date | string, timeZone?: string): string => {
|
19
19
|
const date = formatDate(newDate)
|
20
|
+
|
20
21
|
if (timeZone) {
|
21
22
|
return date.toLocaleTimeString(undefined, { timeZone, hour: "2-digit", minute: "2-digit" }).slice(3, 5);
|
22
23
|
} else {
|
@@ -26,6 +27,7 @@ export const toMinute = (newDate: Date | string, timeZone?: string): string => {
|
|
26
27
|
|
27
28
|
export const toHour = (newDate: Date | string, timeZone?: string): string => {
|
28
29
|
const date = formatDate(newDate)
|
30
|
+
|
29
31
|
if (timeZone) {
|
30
32
|
return date.toLocaleTimeString(undefined, { timeZone, hour: "numeric" }).split(' ')[0];
|
31
33
|
} else {
|
@@ -34,52 +36,53 @@ export const toHour = (newDate: Date | string, timeZone?: string): string => {
|
|
34
36
|
}
|
35
37
|
|
36
38
|
export const toDay = (newDate: Date | string, timeZone?: string): number => {
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
39
|
+
if (timeZone) {
|
40
|
+
const date = new Date(formatDate(newDate).toLocaleString(undefined, { timeZone }));
|
41
|
+
return date.getDate()
|
42
|
+
} else {
|
43
|
+
const date = formatDate(newDate)
|
44
|
+
return date.getDate()
|
45
|
+
}
|
44
46
|
}
|
45
47
|
|
46
48
|
export const toDayAbbr = (newDate: Date | string): string => {
|
47
49
|
const date = formatDate(newDate)
|
48
|
-
return ABBR_DAYS[date.
|
50
|
+
return ABBR_DAYS[date.getDay()]
|
49
51
|
}
|
50
52
|
|
51
53
|
export const toWeekday = (newDate: Date | string): string => {
|
52
|
-
|
53
|
-
|
54
|
+
const date = formatDate(newDate)
|
55
|
+
return days[date.getDay()]
|
54
56
|
}
|
55
57
|
|
56
58
|
export const toMonth = (newDate: Date | string, timeZone?: string): string => {
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
59
|
+
if (timeZone) {
|
60
|
+
const date = new Date(formatDate(newDate).toLocaleString(undefined, { timeZone }));
|
61
|
+
return months[date.getMonth()]
|
62
|
+
} else {
|
63
|
+
const date = formatDate(newDate)
|
64
|
+
return months[date.getMonth()]
|
65
|
+
}
|
64
66
|
}
|
65
67
|
|
66
68
|
export const toMonthNum = (newDate: Date | string): number => {
|
67
69
|
const date = formatDate(newDate)
|
68
|
-
return date.
|
70
|
+
return date.getMonth() + 1
|
69
71
|
}
|
70
72
|
|
71
73
|
export const toYear = (newDate: Date | string, timeZone?: string): number => {
|
72
74
|
if (timeZone) {
|
73
|
-
const date = new Date(newDate.toLocaleString(undefined, { timeZone }));
|
74
|
-
return date.
|
75
|
+
const date = new Date(formatDate(newDate).toLocaleString(undefined, { timeZone }));
|
76
|
+
return date.getFullYear()
|
75
77
|
} else {
|
76
|
-
const date =
|
77
|
-
return date.
|
78
|
+
const date = formatDate(newDate)
|
79
|
+
return date.getFullYear()
|
78
80
|
}
|
79
81
|
}
|
80
82
|
|
81
83
|
export const toTime = (newDate: Date | string, timeZone?: string): string => {
|
82
84
|
const date = formatDate(newDate)
|
85
|
+
|
83
86
|
if (timeZone) {
|
84
87
|
return date.toLocaleTimeString(undefined, { timeZone, timeStyle: "short" }).split(' ')[0];
|
85
88
|
} else {
|
@@ -88,21 +91,23 @@ export const toTime = (newDate: Date | string, timeZone?: string): string => {
|
|
88
91
|
}
|
89
92
|
|
90
93
|
export const toMeridiem = (newDate: Date | string, timeZone?: string): string => {
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
}
|
94
|
+
const date = formatDate(newDate)
|
95
|
+
|
96
|
+
if (timeZone) {
|
97
|
+
return date.toLocaleString(undefined, { timeZone, hour12: true }).slice(-2).charAt(0).toLocaleLowerCase();
|
98
|
+
} else {
|
99
|
+
return date.toLocaleString(undefined, { hour12: true }).slice(-2).charAt(0).toLocaleLowerCase();
|
100
|
+
}
|
97
101
|
}
|
98
102
|
|
99
103
|
export const toTimeZone = (newDate: Date | string, timeZone?: string): string => {
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
}
|
104
|
+
const date = formatDate(newDate)
|
105
|
+
|
106
|
+
if (timeZone) {
|
107
|
+
return date.toLocaleString(undefined, { timeZone, timeZoneName: "short" }).split(' ')[3];
|
108
|
+
} else {
|
109
|
+
return date.toLocaleString(undefined, { timeZoneName: "short" }).split(' ')[3];
|
110
|
+
}
|
106
111
|
}
|
107
112
|
|
108
113
|
export const toTimeWithMeridiem = (newDate: Date | string, timeZone: string): string => {
|
@@ -111,8 +116,8 @@ export const toTimeWithMeridiem = (newDate: Date | string, timeZone: string): st
|
|
111
116
|
}
|
112
117
|
|
113
118
|
export const toIso = (newDate: Date | string): string => {
|
114
|
-
|
115
|
-
|
119
|
+
const date = formatDate(newDate)
|
120
|
+
return date.toISOString()
|
116
121
|
}
|
117
122
|
|
118
123
|
export const fromNow = (newDate: Date | string): string => {
|
@@ -116,9 +116,6 @@
|
|
116
116
|
font-weight: $regular !important;
|
117
117
|
}
|
118
118
|
}
|
119
|
-
.icon_wrapper:hover {
|
120
|
-
background-color: mix($primary, $card_light, 40%);
|
121
|
-
}
|
122
119
|
}
|
123
120
|
}
|
124
121
|
}
|
@@ -128,25 +125,30 @@
|
|
128
125
|
[class*="pb_collapsible_nav_item"] {
|
129
126
|
&[class*="_active"] {
|
130
127
|
.pb_collapsible_main_kit {
|
131
|
-
background-color: $
|
128
|
+
background-color: $primary !important;
|
132
129
|
border-radius: $border_rad_heavier;
|
133
130
|
.pb_nav_list_item_text_collapsible,
|
134
|
-
.pb_nav_list_item_icon_collapsible
|
135
|
-
|
136
|
-
|
131
|
+
.pb_nav_list_item_icon_collapsible,
|
132
|
+
.icon_wrapper,
|
133
|
+
.pb_icon_kit {
|
134
|
+
color: $white !important;
|
137
135
|
}
|
138
136
|
}
|
137
|
+
|
139
138
|
&:hover {
|
140
139
|
background-color: unset;
|
141
140
|
}
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
141
|
+
.pb_collapsible_main_kit:hover {
|
142
|
+
.pb_nav_list_item_text_collapsible {
|
143
|
+
color: $white !important;
|
144
|
+
}
|
145
|
+
}
|
146
|
+
|
147
|
+
.icon_wrapper {
|
148
|
+
&:hover {
|
149
|
+
background-color: mix($primary, $card_light, 40%);
|
150
|
+
.pb_icon_kit {
|
151
|
+
color: $primary !important;
|
150
152
|
}
|
151
153
|
}
|
152
154
|
}
|
@@ -195,6 +197,7 @@
|
|
195
197
|
// vertical line on left of collapsible content
|
196
198
|
.pb_collapsible_content_kit {
|
197
199
|
margin-left: $space_sm + 2;
|
200
|
+
border-left: 1px solid transparent;
|
198
201
|
}
|
199
202
|
|
200
203
|
.pb_collapsible_main_kit {
|
@@ -271,12 +274,15 @@
|
|
271
274
|
.icon_wrapper:hover {
|
272
275
|
background-color: mix($white, $card_dark, 40%);
|
273
276
|
}
|
277
|
+
&[class*="_active"] {
|
278
|
+
.icon_wrapper:hover {
|
279
|
+
background-color: mix($primary, $card_light, 40%);
|
280
|
+
}
|
281
|
+
}
|
274
282
|
|
275
283
|
&[class*="pb_collapsible_nav_item"][class*="_collapsible_trail"] {
|
276
284
|
.pb_collapsible_content_kit {
|
277
|
-
|
278
|
-
background-color: $border_dark;
|
279
|
-
}
|
285
|
+
border-color: $border_dark;
|
280
286
|
}
|
281
287
|
}
|
282
288
|
}
|
@@ -1,71 +1,42 @@
|
|
1
|
-
import React from
|
2
|
-
import classnames from
|
1
|
+
import React from 'react'
|
2
|
+
import classnames from 'classnames'
|
3
3
|
|
4
|
-
import { buildAriaProps, buildCss, buildDataProps } from
|
5
|
-
import { globalProps, GlobalProps } from
|
4
|
+
import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
|
5
|
+
import { globalProps, GlobalProps } from '../utilities/globalProps'
|
6
6
|
|
7
|
-
import Icon from
|
8
|
-
import Image from
|
9
|
-
import Collapsible from
|
10
|
-
import { NavChildProps } from "./navTypes";
|
11
|
-
import { Spacing } from "../types";
|
7
|
+
import Icon from '../pb_icon/_icon'
|
8
|
+
import Image from '../pb_image/_image'
|
9
|
+
import Collapsible from '../pb_collapsible/_collapsible'
|
12
10
|
|
13
11
|
type NavItemProps = {
|
14
|
-
active?: boolean
|
15
|
-
aria?: { [key: string]: string }
|
16
|
-
fontWeight?: "regular" | "bold" | "bolder"
|
17
|
-
children?: React.ReactNode[] | React.ReactNode
|
18
|
-
className?: string
|
19
|
-
collapsible?: boolean
|
20
|
-
data?: object
|
21
|
-
dark?: boolean
|
22
|
-
fontSize?: "normal" | "small"
|
23
|
-
iconLeft?: string
|
24
|
-
iconRight?: string | string[]
|
25
|
-
onIconRightClick?: () => void
|
26
|
-
onIconLeftClick?: () => void
|
27
|
-
id?: string
|
28
|
-
imageUrl?: string
|
29
|
-
link?: string
|
30
|
-
onClick?: () => void
|
31
|
-
target?:
|
32
|
-
text: string
|
33
|
-
collapsibleTrail?: boolean
|
34
|
-
collapsed?: boolean
|
35
|
-
|
36
|
-
paddingTop?: Spacing;
|
37
|
-
paddingLeft?: Spacing;
|
38
|
-
paddingRight?: Spacing;
|
39
|
-
paddingX?: Spacing;
|
40
|
-
paddingY?: Spacing;
|
41
|
-
padding?: Spacing;
|
42
|
-
margin?: Spacing,
|
43
|
-
marginBottom?: Spacing,
|
44
|
-
marginTop?: Spacing,
|
45
|
-
marginRight?: Spacing,
|
46
|
-
marginLeft?: Spacing,
|
47
|
-
marginX?: Spacing,
|
48
|
-
marginY?: Spacing,
|
49
|
-
orientation?: "vertical" | "horizontal";
|
50
|
-
variant?: "normal" | "subtle";
|
51
|
-
} & GlobalProps;
|
12
|
+
active?: boolean,
|
13
|
+
aria?: { [key: string]: string },
|
14
|
+
fontWeight?: "regular" | "bold" | "bolder",
|
15
|
+
children?: React.ReactNode[] | React.ReactNode,
|
16
|
+
className?: string,
|
17
|
+
collapsible?: boolean,
|
18
|
+
data?: object,
|
19
|
+
dark?: boolean,
|
20
|
+
fontSize?: "normal" | "small",
|
21
|
+
iconLeft?: string,
|
22
|
+
iconRight?: string | string[],
|
23
|
+
onIconRightClick?: () => void,
|
24
|
+
onIconLeftClick?: () => void,
|
25
|
+
id?: string,
|
26
|
+
imageUrl?: string,
|
27
|
+
link?: string,
|
28
|
+
onClick?: () => void,
|
29
|
+
target?: '_blank' | '_self' | '_parent' | '_top',
|
30
|
+
text: string,
|
31
|
+
collapsibleTrail?: boolean,
|
32
|
+
collapsed?: boolean
|
33
|
+
} & GlobalProps
|
52
34
|
|
53
35
|
const NavItem = (props: NavItemProps) => {
|
54
|
-
|
55
|
-
const fontWeightDefault = (orientation: string, variant: string) => {
|
56
|
-
return orientation === "horizontal" && variant === "subtle"
|
57
|
-
? "regular "
|
58
|
-
: orientation === "horizontal" && variant === "normal"
|
59
|
-
? "bold"
|
60
|
-
: "regular";
|
61
|
-
};
|
62
|
-
|
63
36
|
const {
|
64
37
|
active = false,
|
65
38
|
aria = {},
|
66
|
-
|
67
|
-
variant,
|
68
|
-
fontWeight = fontWeightDefault(orientation, variant),
|
39
|
+
fontWeight = "regular",
|
69
40
|
children,
|
70
41
|
className,
|
71
42
|
collapsible,
|
@@ -79,188 +50,129 @@ const NavItem = (props: NavItemProps) => {
|
|
79
50
|
id,
|
80
51
|
imageUrl,
|
81
52
|
link,
|
82
|
-
onClick = () => {},
|
83
|
-
target =
|
84
|
-
text =
|
53
|
+
onClick = () => { },
|
54
|
+
target = '_self',
|
55
|
+
text = '',
|
85
56
|
collapsibleTrail,
|
86
|
-
collapsed
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
const
|
105
|
-
[
|
106
|
-
"padding",
|
107
|
-
"paddingX",
|
108
|
-
"paddingY",
|
109
|
-
"paddingBottom",
|
110
|
-
"paddingTop",
|
111
|
-
"paddingRight",
|
112
|
-
"paddingLeft",
|
113
|
-
"margin",
|
114
|
-
"marginX",
|
115
|
-
"marginY",
|
116
|
-
"marginBottom",
|
117
|
-
"marginTop",
|
118
|
-
"marginRight",
|
119
|
-
"marginLeft",
|
120
|
-
].forEach((prop) => delete filteredProps[prop]);
|
121
|
-
|
122
|
-
const Tag = link ? "a" : "div";
|
123
|
-
const activeClass = active === true ? "active" : "";
|
124
|
-
const collapsibleTrailClass =
|
125
|
-
collapsible && collapsibleTrail ? "collapsible_trail" : "";
|
126
|
-
const fontSizeClass =
|
127
|
-
fontSize === "small" ? "font_size_small" : "font_size_normal";
|
128
|
-
const fontWeightClass =
|
129
|
-
fontWeight === "bold"
|
130
|
-
? "font_bold"
|
131
|
-
: fontWeight === "bolder"
|
132
|
-
? "font_bolder"
|
133
|
-
: "font_regular";
|
134
|
-
const ariaProps = buildAriaProps(aria);
|
135
|
-
const dataProps = buildDataProps(data);
|
136
|
-
const classes = classnames(
|
137
|
-
buildCss("pb_nav_list_kit_item", activeClass),
|
138
|
-
collapsible
|
139
|
-
? buildCss("pb_collapsible_nav_item", activeClass, collapsibleTrailClass)
|
140
|
-
: "",
|
141
|
-
fontSizeClass,
|
142
|
-
fontWeightClass,
|
143
|
-
globalProps(filteredProps),
|
144
|
-
className
|
145
|
-
);
|
146
|
-
|
147
|
-
const spacingProps = {
|
148
|
-
padding,
|
149
|
-
paddingBottom,
|
150
|
-
paddingTop,
|
151
|
-
paddingRight,
|
152
|
-
paddingLeft,
|
153
|
-
paddingX,
|
154
|
-
paddingY,
|
155
|
-
margin,
|
156
|
-
marginBottom,
|
157
|
-
marginTop,
|
158
|
-
marginRight,
|
159
|
-
marginLeft,
|
160
|
-
marginX,
|
161
|
-
marginY,
|
162
|
-
};
|
163
|
-
|
164
|
-
const finalItemSpacing = {
|
165
|
-
...(itemSpacing || {}),
|
166
|
-
...Object.entries(spacingProps).reduce((acc: any, [prop, value]) => {
|
167
|
-
if (value) {
|
168
|
-
acc[prop] = value;
|
169
|
-
}
|
170
|
-
return acc;
|
171
|
-
}, {}),
|
172
|
-
};
|
173
|
-
|
174
|
-
const tagClasses = classnames(
|
175
|
-
collapsible ? "pb_nav_list_item_link_collapsible" : "pb_nav_list_item_link",
|
176
|
-
globalProps({ ...finalItemSpacing })
|
177
|
-
);
|
178
|
-
|
179
|
-
const handleIconClick = (e: any) => {
|
57
|
+
collapsed
|
58
|
+
} = props
|
59
|
+
|
60
|
+
const Tag = link ? 'a' : 'div'
|
61
|
+
const activeClass = active === true ? 'active' : ''
|
62
|
+
const collapsibleTrailClass = collapsible && collapsibleTrail ? 'collapsible_trail' : ''
|
63
|
+
const fontSizeClass = fontSize === 'small' ? "font_size_small" : "font_size_normal"
|
64
|
+
const fontWeightClass = fontWeight === 'bold' ? "font_bold" : fontWeight === 'bolder' ? "font_bolder" : "font_regular"
|
65
|
+
const ariaProps = buildAriaProps(aria)
|
66
|
+
const dataProps = buildDataProps(data)
|
67
|
+
const classes = classnames(buildCss('pb_nav_list_kit_item', activeClass),
|
68
|
+
collapsible ? buildCss('pb_collapsible_nav_item', activeClass, collapsibleTrailClass) : '',
|
69
|
+
fontSizeClass,
|
70
|
+
fontWeightClass,
|
71
|
+
globalProps(props),
|
72
|
+
className)
|
73
|
+
|
74
|
+
|
75
|
+
const handleIconClick = (e:any) => {
|
180
76
|
if (onIconLeftClick) {
|
181
|
-
|
182
|
-
|
183
|
-
}
|
184
|
-
};
|
185
|
-
|
186
|
-
// Map over the children and clone them with itemSpacing prop so nested navItems all get itemSpacing
|
187
|
-
const childrenWithProps = React.Children.map(children, (child) => {
|
188
|
-
if (React.isValidElement(child)) {
|
189
|
-
const childProps: NavChildProps = {
|
190
|
-
itemSpacing: itemSpacing,
|
191
|
-
};
|
192
|
-
return React.cloneElement(child, childProps);
|
77
|
+
e.stopPropagation();
|
78
|
+
onIconLeftClick()
|
193
79
|
}
|
194
|
-
|
195
|
-
});
|
80
|
+
}
|
196
81
|
|
197
82
|
return (
|
198
|
-
<li
|
199
|
-
{
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
83
|
+
<li
|
84
|
+
{...ariaProps}
|
85
|
+
{...dataProps}
|
86
|
+
className={classes}
|
87
|
+
id={id}
|
88
|
+
>
|
89
|
+
{
|
90
|
+
collapsible ? (
|
91
|
+
<Collapsible icon={iconRight ? iconRight : ['plus','minus']}
|
92
|
+
iconSize="xs"
|
93
|
+
id={id}
|
94
|
+
collapsed={collapsed}
|
95
|
+
onIconClick={onIconRightClick}
|
96
|
+
onClick={onClick}
|
97
|
+
>
|
208
98
|
<Collapsible.Main dark={dark}>
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
)}
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
<
|
234
|
-
|
235
|
-
|
236
|
-
|
99
|
+
<Tag
|
100
|
+
className="pb_nav_list_item_link_collapsible"
|
101
|
+
href={link}
|
102
|
+
target={target}
|
103
|
+
>
|
104
|
+
{imageUrl &&
|
105
|
+
<div
|
106
|
+
className="pb_nav_list_item_icon_section_collapsible"
|
107
|
+
key={imageUrl}
|
108
|
+
onClick={(e)=>handleIconClick(e)}
|
109
|
+
>
|
110
|
+
<Image
|
111
|
+
className="pb_nav_img_wrapper"
|
112
|
+
url={imageUrl}
|
113
|
+
/>
|
114
|
+
</div>
|
115
|
+
}
|
116
|
+
|
117
|
+
{iconLeft &&
|
118
|
+
<div
|
119
|
+
className="pb_nav_list_item_icon_section_collapsible"
|
120
|
+
key={iconLeft}
|
121
|
+
onClick={(e)=>handleIconClick(e)}
|
122
|
+
>
|
123
|
+
<Icon
|
124
|
+
className="pb_nav_list_item_icon_left_collapsible"
|
125
|
+
fixedWidth
|
126
|
+
icon={iconLeft}
|
127
|
+
/>
|
128
|
+
</div>
|
129
|
+
}
|
130
|
+
<span className="pb_nav_list_item_text_collapsible">
|
131
|
+
{text}
|
132
|
+
</span>
|
133
|
+
</Tag>
|
134
|
+
</Collapsible.Main>
|
135
|
+
<Collapsible.Content>
|
136
|
+
{children}
|
137
|
+
</Collapsible.Content>
|
237
138
|
</Collapsible>
|
238
|
-
|
139
|
+
) : (
|
239
140
|
<Tag
|
240
|
-
className=
|
141
|
+
className="pb_nav_list_item_link"
|
241
142
|
href={link}
|
242
143
|
onClick={onClick}
|
243
144
|
target={target}
|
244
145
|
>
|
245
|
-
{imageUrl &&
|
246
|
-
<div
|
247
|
-
|
146
|
+
{imageUrl &&
|
147
|
+
<div
|
148
|
+
className="pb_nav_list_item_icon_section"
|
149
|
+
key={imageUrl}
|
150
|
+
>
|
151
|
+
<Image
|
152
|
+
className="pb_nav_img_wrapper"
|
153
|
+
url={imageUrl}
|
154
|
+
/>
|
248
155
|
</div>
|
249
|
-
|
250
|
-
|
251
|
-
{iconLeft &&
|
252
|
-
<div
|
156
|
+
}
|
157
|
+
|
158
|
+
{iconLeft &&
|
159
|
+
<div
|
160
|
+
className="pb_nav_list_item_icon_section"
|
161
|
+
key={iconLeft}
|
162
|
+
>
|
253
163
|
<Icon
|
254
164
|
className="pb_nav_list_item_icon_left"
|
255
165
|
fixedWidth
|
256
166
|
icon={iconLeft}
|
257
167
|
/>
|
258
168
|
</div>
|
259
|
-
|
260
|
-
|
261
|
-
<span className="pb_nav_list_item_text">
|
262
|
-
|
263
|
-
|
169
|
+
}
|
170
|
+
|
171
|
+
<span className="pb_nav_list_item_text">
|
172
|
+
{text || children}
|
173
|
+
</span>
|
174
|
+
|
175
|
+
{iconRight &&
|
264
176
|
<div
|
265
177
|
className="pb_nav_list_item_icon_section"
|
266
178
|
key={iconRight as string}
|
@@ -271,11 +183,12 @@ const NavItem = (props: NavItemProps) => {
|
|
271
183
|
icon={iconRight as string}
|
272
184
|
/>
|
273
185
|
</div>
|
274
|
-
|
186
|
+
}
|
275
187
|
</Tag>
|
276
|
-
|
188
|
+
)
|
189
|
+
}
|
277
190
|
</li>
|
278
|
-
)
|
279
|
-
}
|
191
|
+
)
|
192
|
+
}
|
280
193
|
|
281
|
-
export default NavItem
|
194
|
+
export default NavItem
|
@@ -1,14 +1,5 @@
|
|
1
1
|
@mixin collapsible_trail_class {
|
2
2
|
.pb_collapsible_content_kit {
|
3
|
-
|
4
|
-
&::after {
|
5
|
-
content: "";
|
6
|
-
position: absolute;
|
7
|
-
top: 4px;
|
8
|
-
bottom: 4px;
|
9
|
-
left: 5px;
|
10
|
-
width: 1px;
|
11
|
-
background-color: $border_light;
|
12
|
-
}
|
3
|
+
border-color: $border_light;
|
13
4
|
}
|
14
5
|
}
|