playbook_ui 12.33.1.pre.alpha.PLAY933navkitcollapsible994 → 12.33.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.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_collapsible/_collapsible.tsx +4 -6
- data/app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.tsx +11 -19
- data/app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleMain.tsx +14 -27
- data/app/pb_kits/playbook/pb_collapsible/collapsible_main.html.erb +2 -7
- data/app/pb_kits/playbook/pb_collapsible/collapsible_main.rb +7 -2
- data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_size.md +1 -1
- data/app/pb_kits/playbook/pb_collapsible/docs/example.yml +1 -3
- data/app/pb_kits/playbook/pb_collapsible/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_collapsible/index.js +3 -3
- data/app/pb_kits/playbook/pb_collapsible/types.d.ts +1 -0
- data/app/pb_kits/playbook/pb_nav/_item.tsx +49 -98
- data/app/pb_kits/playbook/pb_nav/_nav.scss +0 -1
- data/app/pb_kits/playbook/pb_nav/_subtle_mixin.scss +11 -9
- data/app/pb_kits/playbook/pb_nav/docs/example.yml +0 -3
- data/app/pb_kits/playbook/pb_nav/docs/index.js +0 -2
- data/app/pb_kits/playbook/pb_nav/item.html.erb +12 -34
- data/app/pb_kits/playbook/pb_nav/item.rb +0 -5
- data/dist/playbook-rails.js +6 -6
- data/lib/playbook/version.rb +2 -2
- metadata +8 -15
- data/app/pb_kits/playbook/pb_collapsible/_helper_functions.ts +0 -25
- data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_icons.html.erb +0 -10
- data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_icons.jsx +0 -19
- data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_icons.md +0 -2
- data/app/pb_kits/playbook/pb_nav/_collapsible_nav.scss +0 -6
- data/app/pb_kits/playbook/pb_nav/docs/_collapsible_nav.html.erb +0 -24
- data/app/pb_kits/playbook/pb_nav/docs/_collapsible_nav.jsx +0 -83
- data/app/pb_kits/playbook/pb_nav/docs/_collapsible_nav_custom_icons.jsx +0 -86
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f1468abb19e4ac525eed445f416c38c07658000bf453c5a0b874be54c64ecdb3
|
4
|
+
data.tar.gz: b74c0cb81586fcb391013b1f6d46414a36dc98196fbec2d933359b978fee1483
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4e2bb9dad3c8d08921eea44a7e9a3d8ec5832bbcce47f81b75c65fc0bd7eda0218ce328b9820f4bd530a2fb28233816bfdf404762700cb48ab98aee2c16d4308
|
7
|
+
data.tar.gz: 2c4fb8680f9f5e13e9462bc1ec206edf07a773739c7c282b32d7ed1c279ac3ab0ed42d4da46829328010f4e33159823325188e99941e8d144807384be861f794
|
@@ -7,18 +7,17 @@ import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
|
|
7
7
|
import CollapsibleContent from './child_kits/CollapsibleContent'
|
8
8
|
import CollapsibleMain from './child_kits/CollapsibleMain'
|
9
9
|
import CollapsibleContext from './context'
|
10
|
-
import
|
10
|
+
import IconSizes from "../pb_icon/_icon"
|
11
11
|
|
12
12
|
|
13
13
|
type CollapsibleProps = {
|
14
|
-
children?: JSX.Element | []
|
14
|
+
children?: JSX.Element | [],
|
15
15
|
aria?: {[key: string]: string},
|
16
16
|
className?: string,
|
17
17
|
collapsed?: boolean,
|
18
18
|
data?: object,
|
19
|
-
icon?: Object,
|
20
19
|
iconColor?: 'default' | 'light' | 'lighter' | 'link' | 'error' | 'success',
|
21
|
-
iconSize?: IconSizes
|
20
|
+
iconSize?: typeof IconSizes
|
22
21
|
id?: string,
|
23
22
|
padding?: string,
|
24
23
|
}
|
@@ -38,7 +37,6 @@ const Collapsible = ({
|
|
38
37
|
children = [],
|
39
38
|
collapsed = true,
|
40
39
|
data = {},
|
41
|
-
icon,
|
42
40
|
iconColor = 'default',
|
43
41
|
iconSize,
|
44
42
|
id,
|
@@ -66,7 +64,7 @@ const Collapsible = ({
|
|
66
64
|
)
|
67
65
|
|
68
66
|
return (
|
69
|
-
<CollapsibleContext.Provider value={{ collapsed: isCollapsed, collapse,
|
67
|
+
<CollapsibleContext.Provider value={{ collapsed: isCollapsed, collapse, iconSize, iconColor }}>
|
70
68
|
<div
|
71
69
|
{...ariaProps}
|
72
70
|
{...dataProps}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import classnames from 'classnames'
|
2
|
-
import React, { useContext
|
2
|
+
import React, { useContext } from 'react'
|
3
|
+
import AnimateHeight from 'react-animate-height'
|
3
4
|
import { buildCss } from '../../utilities/props'
|
4
5
|
import { globalProps } from '../../utilities/globalProps'
|
5
|
-
import { hideElement, showElement } from '../_helper_functions'
|
6
6
|
|
7
7
|
import CollapsibleContext from '../context'
|
8
8
|
|
@@ -21,25 +21,17 @@ const CollapsibleContent = ({
|
|
21
21
|
const context: {[key: string]: boolean | string} = useContext(CollapsibleContext)
|
22
22
|
const contentCSS = buildCss('pb_collapsible_content_kit')
|
23
23
|
const contentSpacing = globalProps(props, { padding })
|
24
|
-
const contentRef = useRef(null);
|
25
|
-
|
26
|
-
useEffect(() => {
|
27
|
-
// Use the showElement and hideElement functions based on the context value
|
28
|
-
if (contentRef.current) {
|
29
|
-
if (context.collapsed) {
|
30
|
-
hideElement(contentRef.current);
|
31
|
-
} else {
|
32
|
-
showElement(contentRef.current);
|
33
|
-
}
|
34
|
-
}
|
35
|
-
}, [context.collapsed]);
|
36
24
|
|
37
25
|
return (
|
38
|
-
<
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
26
|
+
<AnimateHeight
|
27
|
+
duration={400}
|
28
|
+
height={context.collapsed ? 0 : 'auto'}
|
29
|
+
id="bottom-section"
|
30
|
+
>
|
31
|
+
<div className={classnames(contentCSS, className, contentSpacing)}>
|
32
|
+
{children}
|
33
|
+
</div>
|
34
|
+
</AnimateHeight>
|
43
35
|
)
|
44
36
|
}
|
45
37
|
|
@@ -7,7 +7,6 @@ import { globalProps } from '../../utilities/globalProps'
|
|
7
7
|
|
8
8
|
import Flex from '../../pb_flex/_flex'
|
9
9
|
import FlexItem from '../../pb_flex/_flex_item'
|
10
|
-
import Icon, { IconSizes } from "../../pb_icon/_icon"
|
11
10
|
import CollapsibleContext from '../context'
|
12
11
|
|
13
12
|
|
@@ -40,35 +39,24 @@ type IconColors = "default" | "light" | "lighter" | "link" | "error" | "success
|
|
40
39
|
|
41
40
|
type IconProps = {
|
42
41
|
collapsed: boolean | (()=> void)
|
43
|
-
icon?: string[] | string
|
44
42
|
iconColor?: IconColors
|
45
|
-
iconSize?:
|
43
|
+
iconSize?: string | (() => void)
|
46
44
|
}
|
47
45
|
|
48
|
-
const
|
46
|
+
const Icon = ({ collapsed, iconSize, iconColor }: IconProps) => {
|
47
|
+
const direction = collapsed ? 'down' : 'up'
|
48
|
+
const size = iconSize
|
49
49
|
const color = colorMap[iconColor]
|
50
50
|
|
51
51
|
return (
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
</div>
|
61
|
-
) : (
|
62
|
-
<div
|
63
|
-
className="icon_wrapper"
|
64
|
-
key="chevron-up"
|
65
|
-
style={{ verticalAlign: "middle", color: color }}
|
66
|
-
>
|
67
|
-
<Icon icon={icon ? icon[1] : "chevron-up"} size={iconSize} />
|
68
|
-
</div>
|
69
|
-
)}
|
70
|
-
</>
|
71
|
-
);
|
52
|
+
<div
|
53
|
+
className="icon_wrapper"
|
54
|
+
key={direction}
|
55
|
+
style={{ verticalAlign: 'middle', color: color }}
|
56
|
+
>
|
57
|
+
<i className={`far fa-chevron-${direction} fa-fw ${size && `fa-${size}`}`} />
|
58
|
+
</div>
|
59
|
+
)
|
72
60
|
}
|
73
61
|
|
74
62
|
const CollapsibleMain = ({
|
@@ -91,11 +79,10 @@ const CollapsibleMain = ({
|
|
91
79
|
>
|
92
80
|
<FlexItem>{children}</FlexItem>
|
93
81
|
<FlexItem>
|
94
|
-
<
|
82
|
+
<Icon
|
95
83
|
collapsed={context.collapsed as () => void}
|
96
84
|
iconColor={context.iconColor as IconColors}
|
97
|
-
iconSize={context.iconSize
|
98
|
-
icon={context.icon as string[] | string}
|
85
|
+
iconSize={context.iconSize}
|
99
86
|
/>
|
100
87
|
</FlexItem>
|
101
88
|
</Flex>
|
@@ -10,13 +10,8 @@
|
|
10
10
|
<% end %>
|
11
11
|
<%= pb_rails("flex/flex_item") do %>
|
12
12
|
<div style="color: <%= object.icon_color %>">
|
13
|
-
|
14
|
-
|
15
|
-
<%= pb_rails("icon", props: { icon: "#{icon[1]}", id:"collapsible_close_icon", size: object.size }) %>
|
16
|
-
<% else %>
|
17
|
-
<%= pb_rails("icon", props: { icon: "chevron-down", id:"collapsible_open_icon", size: object.size }) %>
|
18
|
-
<%= pb_rails("icon", props: { icon: "chevron-up", id:"collapsible_close_icon", size: object.size }) %>
|
19
|
-
<% end %>
|
13
|
+
<i class="far fa-chevron-down <%= object.icon_size %>"></i>
|
14
|
+
<i class="far fa-chevron-up <%= object.icon_size %>"></i>
|
20
15
|
</div>
|
21
16
|
<% end %>
|
22
17
|
<% end %>
|
@@ -6,8 +6,6 @@ module Playbook
|
|
6
6
|
prop :color, type: Playbook::Props::Enum,
|
7
7
|
values: %w[default light lighter link success error],
|
8
8
|
default: "default"
|
9
|
-
prop :icon, type: Playbook::Props::Array,
|
10
|
-
default: []
|
11
9
|
prop :size, type: Playbook::Props::Enum,
|
12
10
|
values: ["lg", "xs", "sm", "1x", "2x", "3x", "4x", "5x", "6x", "7x", "8x", "9x", "10x", nil],
|
13
11
|
default: nil
|
@@ -19,6 +17,13 @@ module Playbook
|
|
19
17
|
generate_classname("pb_collapsible_main_kit", padding, separator: " ")
|
20
18
|
end
|
21
19
|
|
20
|
+
def icon_size
|
21
|
+
return "" if size.nil?
|
22
|
+
|
23
|
+
size_object = { lg: "fa-lg", xs: "fa-xs", sm: "fa-sm", "1x": "fa-1x", "2x": "fa-2x", "3x": "fa-3x", "4x": "fa-4x", "5x": "fa-5x", "6x": "fa-6x", "7x": "fa-7x", "8x": "fa-8x", "9x": "fa-9x", "10x": "fa-10x" }
|
24
|
+
size_object[size.to_sym]
|
25
|
+
end
|
26
|
+
|
22
27
|
def icon_color
|
23
28
|
return "" if color.nil?
|
24
29
|
|
@@ -1,4 +1,4 @@
|
|
1
1
|
##### Prop
|
2
|
-
This kit uses `icon` sizes. If you don't give it a size, it will default to medium.
|
2
|
+
This kit uses `icon` sizes. If you don't give it a size, it will default to medium. You can be replaced with the sizes below:
|
3
3
|
|
4
4
|
* `lg` `xs` `sm` `1x` `2x` `3x` `4x` `5x` `6x` `7x` `8x` `9x` `10x`
|
@@ -4,10 +4,8 @@ examples:
|
|
4
4
|
- collapsible_default: Default
|
5
5
|
- collapsible_size: Size
|
6
6
|
- collapsible_color: Color
|
7
|
-
- collapsible_icons: Custom Icons
|
8
7
|
|
9
8
|
react:
|
10
9
|
- collapsible_default: Default
|
11
10
|
- collapsible_size: Size
|
12
|
-
- collapsible_color: Color
|
13
|
-
- collapsible_icons: Custom Icons
|
11
|
+
- collapsible_color: Color
|
@@ -1,4 +1,3 @@
|
|
1
1
|
export { default as CollapsibleDefault } from './_collapsible_default.jsx'
|
2
2
|
export { default as CollapsibleSize } from './_collapsible_size.jsx'
|
3
3
|
export { default as CollapsibleColor } from './_collapsible_color.jsx'
|
4
|
-
export { default as CollapsibleIcons } from './_collapsible_icons.jsx'
|
@@ -2,8 +2,8 @@ import PbEnhancedElement from '../pb_enhanced_element'
|
|
2
2
|
|
3
3
|
const MAIN_SELECTOR = '[data-collapsible-main]'
|
4
4
|
const CONTENT_SELECTOR = '[data-collapsible-content]'
|
5
|
-
const DOWN_ARROW_SELECTOR = '
|
6
|
-
const UP_ARROW_SELECTOR = '
|
5
|
+
const DOWN_ARROW_SELECTOR = '.fa-chevron-down'
|
6
|
+
const UP_ARROW_SELECTOR = '.fa-chevron-up'
|
7
7
|
|
8
8
|
export default class PbCollapsible extends PbEnhancedElement {
|
9
9
|
static get selector() {
|
@@ -75,5 +75,5 @@ export default class PbCollapsible extends PbEnhancedElement {
|
|
75
75
|
displayUpArrow() {
|
76
76
|
this.element.querySelector(UP_ARROW_SELECTOR).style.display = 'inline-block'
|
77
77
|
this.element.querySelector(DOWN_ARROW_SELECTOR).style.display = 'none'
|
78
|
-
|
78
|
+
}
|
79
79
|
}
|
@@ -0,0 +1 @@
|
|
1
|
+
declare module 'react-animate-height'
|
@@ -6,17 +6,15 @@ import { globalProps, GlobalProps } from '../utilities/globalProps'
|
|
6
6
|
|
7
7
|
import Icon from '../pb_icon/_icon'
|
8
8
|
import Image from '../pb_image/_image'
|
9
|
-
import Collapsible from '../pb_collapsible/_collapsible'
|
10
9
|
|
11
10
|
type NavItemProps = {
|
12
11
|
active?: boolean,
|
13
12
|
aria?: { [key: string]: string },
|
14
13
|
children?: React.ReactNode[] | React.ReactNode,
|
15
14
|
className?: string,
|
16
|
-
collapsible?: boolean,
|
17
15
|
data?: object,
|
18
16
|
iconLeft?: string,
|
19
|
-
iconRight?: string
|
17
|
+
iconRight?: string,
|
20
18
|
id?: string,
|
21
19
|
imageUrl?: string,
|
22
20
|
link?: string,
|
@@ -31,7 +29,6 @@ const NavItem = (props: NavItemProps) => {
|
|
31
29
|
aria = {},
|
32
30
|
children,
|
33
31
|
className,
|
34
|
-
collapsible,
|
35
32
|
data = {},
|
36
33
|
iconLeft,
|
37
34
|
iconRight,
|
@@ -56,100 +53,54 @@ const NavItem = (props: NavItemProps) => {
|
|
56
53
|
className={classes}
|
57
54
|
id={id}
|
58
55
|
>
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
<
|
71
|
-
className="
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
<
|
83
|
-
className="
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
target={target}
|
108
|
-
>
|
109
|
-
{imageUrl &&
|
110
|
-
<div
|
111
|
-
className="pb_nav_list_item_icon_section"
|
112
|
-
key={imageUrl}
|
113
|
-
>
|
114
|
-
<Image
|
115
|
-
className="pb_nav_img_wrapper"
|
116
|
-
url={imageUrl}
|
117
|
-
/>
|
118
|
-
</div>
|
119
|
-
}
|
120
|
-
|
121
|
-
{iconLeft &&
|
122
|
-
<div
|
123
|
-
className="pb_nav_list_item_icon_section"
|
124
|
-
key={iconLeft}
|
125
|
-
>
|
126
|
-
<Icon
|
127
|
-
className="pb_nav_list_item_icon_left"
|
128
|
-
fixedWidth
|
129
|
-
icon={iconLeft}
|
130
|
-
/>
|
131
|
-
</div>
|
132
|
-
}
|
133
|
-
|
134
|
-
<span className="pb_nav_list_item_text">
|
135
|
-
{text || children}
|
136
|
-
</span>
|
137
|
-
|
138
|
-
{iconRight &&
|
139
|
-
<div
|
140
|
-
className="pb_nav_list_item_icon_section"
|
141
|
-
key={iconRight as string}
|
142
|
-
>
|
143
|
-
<Icon
|
144
|
-
className="pb_nav_list_item_icon_right"
|
145
|
-
fixedWidth
|
146
|
-
icon={iconRight as string}
|
147
|
-
/>
|
148
|
-
</div>
|
149
|
-
}
|
150
|
-
</Tag>
|
151
|
-
)
|
152
|
-
}
|
56
|
+
<Tag
|
57
|
+
className="pb_nav_list_item_link"
|
58
|
+
href={link}
|
59
|
+
onClick={onClick}
|
60
|
+
target={target}
|
61
|
+
>
|
62
|
+
{imageUrl &&
|
63
|
+
<div
|
64
|
+
className="pb_nav_list_item_icon_section"
|
65
|
+
key={imageUrl}
|
66
|
+
>
|
67
|
+
<Image
|
68
|
+
className="pb_nav_img_wrapper"
|
69
|
+
url={imageUrl}
|
70
|
+
/>
|
71
|
+
</div>
|
72
|
+
}
|
73
|
+
|
74
|
+
{iconLeft &&
|
75
|
+
<div
|
76
|
+
className="pb_nav_list_item_icon_section"
|
77
|
+
key={iconLeft}
|
78
|
+
>
|
79
|
+
<Icon
|
80
|
+
className="pb_nav_list_item_icon_left"
|
81
|
+
fixedWidth
|
82
|
+
icon={iconLeft}
|
83
|
+
/>
|
84
|
+
</div>
|
85
|
+
}
|
86
|
+
|
87
|
+
<span className="pb_nav_list_item_text">
|
88
|
+
{text || children}
|
89
|
+
</span>
|
90
|
+
|
91
|
+
{iconRight &&
|
92
|
+
<div
|
93
|
+
className="pb_nav_list_item_icon_section"
|
94
|
+
key={iconRight}
|
95
|
+
>
|
96
|
+
<Icon
|
97
|
+
className="pb_nav_list_item_icon_right"
|
98
|
+
fixedWidth
|
99
|
+
icon={iconRight}
|
100
|
+
/>
|
101
|
+
</div>
|
102
|
+
}
|
103
|
+
</Tag>
|
153
104
|
</li>
|
154
105
|
)
|
155
106
|
}
|
@@ -29,20 +29,22 @@
|
|
29
29
|
flex: 1;
|
30
30
|
font-weight: $regular;
|
31
31
|
}
|
32
|
+
@media (hover:hover) {
|
33
|
+
&:hover {
|
34
|
+
background-color: rgba($primary, 0.03);
|
35
|
+
[class*=_icon] {
|
36
|
+
color: $primary;
|
37
|
+
}
|
38
|
+
[class*=_text] {
|
39
|
+
color: $primary;
|
40
|
+
}
|
41
|
+
}
|
42
|
+
}
|
32
43
|
}
|
33
44
|
&[class*=_active] [class*=_link] {
|
34
45
|
@include pb_title_4;
|
35
46
|
color: $primary;
|
36
47
|
letter-spacing: normal;
|
37
48
|
}
|
38
|
-
&:hover {
|
39
|
-
background-color: rgba($primary, 0.03);
|
40
|
-
[class*=_icon] {
|
41
|
-
color: $primary;
|
42
|
-
}
|
43
|
-
[class*=_text] {
|
44
|
-
color: $primary;
|
45
|
-
}
|
46
|
-
}
|
47
49
|
}
|
48
50
|
}
|
@@ -7,7 +7,6 @@ examples:
|
|
7
7
|
- borderless_nav: No Borders
|
8
8
|
- subtle_nav: Subtle Variant
|
9
9
|
- subtle_with_icons_nav: Subtle With Icons
|
10
|
-
- collapsible_nav: Subtle With Collapsible
|
11
10
|
- subtle_no_highlight_nav: Subtle No Highlight
|
12
11
|
- bold_vertical_nav: Bold Variant
|
13
12
|
- horizontal_nav: Horizontal Nav
|
@@ -25,8 +24,6 @@ examples:
|
|
25
24
|
- borderless_nav: No Borders
|
26
25
|
- subtle_nav: Subtle Variant
|
27
26
|
- subtle_with_icons_nav: Subtle With Icons
|
28
|
-
- collapsible_nav: Subtle With Collapsible
|
29
|
-
- collapsible_nav_custom_icons: Subtle With Collapsible (Custom Toggle Icons)
|
30
27
|
- subtle_no_highlight_nav: Subtle No Highlight
|
31
28
|
- bold_vertical_nav: Bold Variant
|
32
29
|
- horizontal_nav: Horizontal Nav
|
@@ -13,5 +13,3 @@ export { default as WithImgNav } from './_with_img_nav.jsx'
|
|
13
13
|
export { default as NewTab } from './_new_tab.jsx'
|
14
14
|
export { default as BoldHorizontalNav } from './_bold_horizontal_nav.jsx'
|
15
15
|
export { default as BoldVerticalNav } from './_bold_vertical_nav.jsx'
|
16
|
-
export { default as CollapsibleNav } from './_collapsible_nav.jsx'
|
17
|
-
export { default as CollapsibleNavCustomIcons } from './_collapsible_nav_custom_icons.jsx'
|
@@ -3,41 +3,19 @@
|
|
3
3
|
class: object.classname,
|
4
4
|
data: object.data,
|
5
5
|
id: object.id) do %>
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
object.link ? object.link_options : object.options) do %>
|
11
|
-
<% if object.image_url %>
|
12
|
-
<%= pb_rails("image", props: { url: object.image_url, classname: "pb_nav_img_wrapper" }) %>
|
13
|
-
<% end %>
|
14
|
-
<% if object.icon_left %>
|
15
|
-
<%= pb_rails("icon", props: { icon: object.icon_left, classname: "pb_nav_list_item_icon_left", fixed_width: true}) %>
|
16
|
-
<% end %>
|
17
|
-
<span class="pb_nav_list_item_text">
|
18
|
-
<%= object.text %>
|
19
|
-
</span>
|
20
|
-
<% end %>
|
21
|
-
<% end %>
|
22
|
-
<%= pb_rails("collapsible/collapsible_content") do %>
|
23
|
-
<%= content.presence %>
|
24
|
-
<% end %>
|
6
|
+
<%= content_tag(object.tag,
|
7
|
+
object.link ? object.link_options : object.options) do %>
|
8
|
+
<% if object.image_url %>
|
9
|
+
<%= pb_rails("image", props: { url: object.image_url, classname: "pb_nav_img_wrapper" }) %>
|
25
10
|
<% end %>
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
<% end %>
|
35
|
-
<span class="pb_nav_list_item_text">
|
36
|
-
<%= object.text %><%= content.presence %>
|
37
|
-
</span>
|
38
|
-
<% if object.icon_right %>
|
39
|
-
<%= pb_rails("icon", props: { icon: object.icon_right, classname: "pb_nav_list_item_icon_right", fixed_width: true}) %>
|
40
|
-
<% end %>
|
11
|
+
<% if object.icon_left %>
|
12
|
+
<%= pb_rails("icon", props: { icon: object.icon_left, classname: "pb_nav_list_item_icon_left", fixed_width: true}) %>
|
13
|
+
<% end %>
|
14
|
+
<span class="pb_nav_list_item_text">
|
15
|
+
<%= object.text %><%= content.presence %>
|
16
|
+
</span>
|
17
|
+
<% if object.icon_right %>
|
18
|
+
<%= pb_rails("icon", props: { icon: object.icon_right, classname: "pb_nav_list_item_icon_right", fixed_width: true}) %>
|
41
19
|
<% end %>
|
42
20
|
<% end %>
|
43
21
|
<% end %>
|
@@ -4,7 +4,6 @@ module Playbook
|
|
4
4
|
module PbNav
|
5
5
|
class Item < Playbook::KitBase
|
6
6
|
prop :active, type: Playbook::Props::Boolean, default: false
|
7
|
-
prop :collapsible, type: Playbook::Props::Boolean, default: false
|
8
7
|
prop :link
|
9
8
|
prop :text
|
10
9
|
prop :icon_left
|
@@ -34,10 +33,6 @@ module Playbook
|
|
34
33
|
)
|
35
34
|
end
|
36
35
|
|
37
|
-
def collapsible_icons
|
38
|
-
icon_right.present? ? icon_right : %w[plus minus]
|
39
|
-
end
|
40
|
-
|
41
36
|
private
|
42
37
|
|
43
38
|
def active_class
|