playbook_ui 7.13.0 → 7.14.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.
- checksums.yaml +4 -4
- data/app/helpers/playbook/application_helper.rb +4 -0
- data/app/pb_kits/playbook/_playbook.scss +1 -0
- data/app/pb_kits/playbook/pb_card/_card.jsx +3 -1
- data/app/pb_kits/playbook/pb_card/_card.scss +3 -2
- data/app/pb_kits/playbook/pb_card/_card_mixin.scss +6 -0
- data/app/pb_kits/playbook/pb_card/card.rb +9 -1
- data/app/pb_kits/playbook/pb_card/docs/_card_border_radius.html.erb +53 -0
- data/app/pb_kits/playbook/pb_card/docs/_card_border_radius.jsx +71 -0
- data/app/pb_kits/playbook/pb_card/docs/_card_border_radius.md +1 -0
- data/app/pb_kits/playbook/pb_card/docs/_card_light.md +1 -0
- data/app/pb_kits/playbook/pb_card/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_card/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_filter/Filter/FiltersPopover.jsx +5 -1
- data/app/pb_kits/playbook/pb_filter/docs/_filter_close_popover.jsx +61 -0
- data/app/pb_kits/playbook/pb_filter/docs/_filter_default.md +1 -0
- data/app/pb_kits/playbook/pb_filter/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_filter/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_form_pill/_form_pill.scss +2 -0
- data/app/pb_kits/playbook/pb_image/_image.scss +1 -0
- data/app/pb_kits/playbook/pb_layout/docs/_layout_collection.html.erb +4 -4
- data/app/pb_kits/playbook/pb_layout/docs/_layout_collection.md +1 -0
- data/app/pb_kits/playbook/pb_radio/_radio.scss +1 -0
- data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.html.erb +54 -11
- data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.jsx +53 -6
- data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +48 -9
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_block.jsx +41 -44
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_default.html.erb +2 -2
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_default.jsx +53 -62
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_image.jsx +43 -53
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_input.html.erb +105 -0
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_input.jsx +158 -0
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_input.md +1 -0
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_single_select.html.erb +2 -2
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_single_select.jsx +46 -53
- data/app/pb_kits/playbook/pb_selectable_card/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_selectable_card/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_selectable_card/selectable_card.rb +27 -2
- data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.scss +8 -8
- data/app/pb_kits/playbook/pb_table/docs/_table_sm.md +2 -0
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.html.erb +1 -1
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.jsx +6 -1
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +38 -2
- data/app/pb_kits/playbook/pb_typeahead/components/Control.jsx +1 -0
- data/app/pb_kits/playbook/pb_typeahead/components/Option.jsx +8 -3
- data/app/pb_kits/playbook/pb_typeahead/docs/{_typeahead_with_context_dark.html.erb → _typeahead_with_context.html.erb} +10 -2
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.html.erb +1 -1
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.jsx +13 -1
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async_custom_options.jsx +111 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async_custom_options.md +1 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async_users.html.erb +1 -1
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async_users.jsx +1 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +3 -2
- data/app/pb_kits/playbook/pb_typeahead/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +2 -1
- data/app/pb_kits/playbook/tokens/_border_radius.scss +21 -7
- data/app/pb_kits/playbook/utilities/_max_width.scss +15 -0
- data/app/pb_kits/playbook/utilities/_spacing.scss +20 -20
- data/app/pb_kits/playbook/utilities/globalProps.js +7 -1
- data/lib/playbook.rb +11 -0
- data/lib/playbook/engine.rb +15 -0
- data/lib/playbook/props.rb +23 -1
- data/lib/playbook/version.rb +1 -1
- metadata +22 -10
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: afa113290f2904fa0ce5794378b5c8e9ee247d1a213aa5911a339277738e331d
|
|
4
|
+
data.tar.gz: 5be3a1822a72e60809e8bc54e777e78bc8130f4be7f776d579d2a47a2987dfd1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: dcdb7c84e58b1835cdefd80e7d5e8bfdd29e08a2a16a107ebba9ac66a6b3f704c0eeef5df64db523605bb5cd80167dd17c1691ee5371271ed38e692f92b0fbdc
|
|
7
|
+
data.tar.gz: b0570e9d26ca5cba15edeece70de4db71384a916164f773f48631c6fe4c4389016142b4dd4a8c33e41092f91f778a2a690a069ab95e200892b42b52c58cfdf75
|
|
@@ -8,6 +8,7 @@ import { globalProps } from '../utilities/globalProps.js'
|
|
|
8
8
|
|
|
9
9
|
type CardPropTypes = {
|
|
10
10
|
borderNone?: boolean,
|
|
11
|
+
borderRadius?: "xs" | "sm" | "md" | "lg" | "xl" | "none" | "rounded",
|
|
11
12
|
children: array<React.ReactNode> | React.ReactNode,
|
|
12
13
|
className?: string,
|
|
13
14
|
highlight?: {
|
|
@@ -62,6 +63,7 @@ const Body = (props: CardBodyProps) => {
|
|
|
62
63
|
const Card = (props: CardPropTypes) => {
|
|
63
64
|
const {
|
|
64
65
|
borderNone = false,
|
|
66
|
+
borderRadius = 'md',
|
|
65
67
|
children,
|
|
66
68
|
className,
|
|
67
69
|
highlight = {},
|
|
@@ -70,7 +72,7 @@ const Card = (props: CardPropTypes) => {
|
|
|
70
72
|
padding = 'md',
|
|
71
73
|
} = props
|
|
72
74
|
const borderCSS = borderNone == true ? 'border_none' : ''
|
|
73
|
-
const cardCss = buildCss('pb_card_kit', `shadow_${shadow}`, `${borderCSS}`, {
|
|
75
|
+
const cardCss = buildCss('pb_card_kit', `shadow_${shadow}`, `${borderCSS}`, `border_radius_${borderRadius}`, {
|
|
74
76
|
selected,
|
|
75
77
|
deselected: !selected,
|
|
76
78
|
[`highlight_${highlight.position}`]: highlight.position,
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
[class^=pb_card_kit] {
|
|
5
5
|
@include pb_card;
|
|
6
|
+
overflow: auto;
|
|
6
7
|
|
|
7
8
|
&[class*=_selected] {
|
|
8
9
|
@include pb_card_selected;
|
|
@@ -26,7 +27,7 @@
|
|
|
26
27
|
flex-basis: auto;
|
|
27
28
|
min-height: 1px;
|
|
28
29
|
border: 0;
|
|
29
|
-
border-radius: $pb_card_header_border_radius $pb_card_header_border_radius 0px 0px;
|
|
30
|
+
border-radius: $pb_card_header_border_radius $pb_card_header_border_radius 0px 0px;
|
|
30
31
|
@each $color_name, $color_value in $pb_card_header_colors {
|
|
31
32
|
&[class*=_#{$color_name}] {
|
|
32
33
|
@include pb_card_header_color($color_value);
|
|
@@ -44,7 +45,7 @@
|
|
|
44
45
|
min-height: 1px;
|
|
45
46
|
border: 0;
|
|
46
47
|
}
|
|
47
|
-
|
|
48
|
+
|
|
48
49
|
@each $name, $shadow in $box_shadows {
|
|
49
50
|
&[class*=_#{$name}] {
|
|
50
51
|
box-shadow: $shadow;
|
|
@@ -15,6 +15,9 @@ module Playbook
|
|
|
15
15
|
default: {}
|
|
16
16
|
prop :border_none, type: Playbook::Props::Boolean,
|
|
17
17
|
default: false
|
|
18
|
+
prop :border_radius, type: Playbook::Props::Enum,
|
|
19
|
+
values: %w[xs sm md lg xl none rounded],
|
|
20
|
+
default: "md"
|
|
18
21
|
|
|
19
22
|
def classname
|
|
20
23
|
generate_classname("pb_card_kit",
|
|
@@ -22,7 +25,8 @@ module Playbook
|
|
|
22
25
|
shadow_class,
|
|
23
26
|
highlight_position_class,
|
|
24
27
|
highlight_color_class,
|
|
25
|
-
border_class
|
|
28
|
+
border_class,
|
|
29
|
+
border_radius_class)
|
|
26
30
|
end
|
|
27
31
|
|
|
28
32
|
def body_padding
|
|
@@ -55,6 +59,10 @@ module Playbook
|
|
|
55
59
|
def border_class
|
|
56
60
|
border_none == true ? "border_none" : nil
|
|
57
61
|
end
|
|
62
|
+
|
|
63
|
+
def border_radius_class
|
|
64
|
+
border_radius != "md" ? "border_radius_#{border_radius}" : nil
|
|
65
|
+
end
|
|
58
66
|
end
|
|
59
67
|
end
|
|
60
68
|
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<%= pb_rails("card", props: {
|
|
2
|
+
border_radius: "rounded"
|
|
3
|
+
}) do %>
|
|
4
|
+
Rounded (1000px)
|
|
5
|
+
<% end %>
|
|
6
|
+
|
|
7
|
+
<br>
|
|
8
|
+
|
|
9
|
+
<%= pb_rails("card", props: {
|
|
10
|
+
border_radius: "xl"
|
|
11
|
+
}) do %>
|
|
12
|
+
Extra large (16px)
|
|
13
|
+
<% end %>
|
|
14
|
+
|
|
15
|
+
<br>
|
|
16
|
+
|
|
17
|
+
<%= pb_rails("card", props: {
|
|
18
|
+
border_radius: "lg"
|
|
19
|
+
}) do %>
|
|
20
|
+
Large (8px)
|
|
21
|
+
<% end %>
|
|
22
|
+
|
|
23
|
+
<br>
|
|
24
|
+
|
|
25
|
+
<%= pb_rails("card", props: {
|
|
26
|
+
border_radius: "md"
|
|
27
|
+
}) do %>
|
|
28
|
+
Medium (6px)
|
|
29
|
+
<% end %>
|
|
30
|
+
|
|
31
|
+
<br>
|
|
32
|
+
|
|
33
|
+
<%= pb_rails("card", props: {
|
|
34
|
+
border_radius: "sm"
|
|
35
|
+
}) do %>
|
|
36
|
+
Small (4px)
|
|
37
|
+
<% end %>
|
|
38
|
+
|
|
39
|
+
<br>
|
|
40
|
+
|
|
41
|
+
<%= pb_rails("card", props: {
|
|
42
|
+
border_radius: "xs"
|
|
43
|
+
}) do %>
|
|
44
|
+
Extra small (4px)
|
|
45
|
+
<% end %>
|
|
46
|
+
|
|
47
|
+
<br>
|
|
48
|
+
|
|
49
|
+
<%= pb_rails("card", props: {
|
|
50
|
+
border_radius: "none"
|
|
51
|
+
}) do %>
|
|
52
|
+
None
|
|
53
|
+
<% end %>
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import Card from '../_card.jsx'
|
|
3
|
+
|
|
4
|
+
const CardLight = (props) => {
|
|
5
|
+
return (
|
|
6
|
+
<div>
|
|
7
|
+
<Card
|
|
8
|
+
borderRadius="rounded"
|
|
9
|
+
{...props}
|
|
10
|
+
>
|
|
11
|
+
{'Rounded (1000px)'}
|
|
12
|
+
</Card>
|
|
13
|
+
|
|
14
|
+
<br />
|
|
15
|
+
|
|
16
|
+
<Card
|
|
17
|
+
borderRadius="xl"
|
|
18
|
+
{...props}
|
|
19
|
+
>
|
|
20
|
+
{'Extra large (16px)'}
|
|
21
|
+
</Card>
|
|
22
|
+
|
|
23
|
+
<br />
|
|
24
|
+
|
|
25
|
+
<Card
|
|
26
|
+
borderRadius="lg"
|
|
27
|
+
{...props}
|
|
28
|
+
>
|
|
29
|
+
{'Large (8px)'}
|
|
30
|
+
</Card>
|
|
31
|
+
|
|
32
|
+
<br />
|
|
33
|
+
|
|
34
|
+
<Card
|
|
35
|
+
borderRadius="md"
|
|
36
|
+
{...props}
|
|
37
|
+
>
|
|
38
|
+
{'Medium (6px)'}
|
|
39
|
+
</Card>
|
|
40
|
+
|
|
41
|
+
<br />
|
|
42
|
+
|
|
43
|
+
<Card
|
|
44
|
+
borderRadius="sm"
|
|
45
|
+
{...props}
|
|
46
|
+
>
|
|
47
|
+
{'Small (4px)'}
|
|
48
|
+
</Card>
|
|
49
|
+
|
|
50
|
+
<br />
|
|
51
|
+
|
|
52
|
+
<Card
|
|
53
|
+
borderRadius="xs"
|
|
54
|
+
{...props}
|
|
55
|
+
>
|
|
56
|
+
{'Extra small (4px)'}
|
|
57
|
+
</Card>
|
|
58
|
+
|
|
59
|
+
<br />
|
|
60
|
+
|
|
61
|
+
<Card
|
|
62
|
+
borderRadius="none"
|
|
63
|
+
{...props}
|
|
64
|
+
>
|
|
65
|
+
{'None'}
|
|
66
|
+
</Card>
|
|
67
|
+
</div>
|
|
68
|
+
)
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export default CardLight
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
`border_radius_md` is the card kit default
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Card can leverage the max-width property. Learn more in our <a href="https://playbook.powerapp.cloud/visual_guidelines" target="_blank">visual guidelines.</a>
|
|
@@ -9,6 +9,7 @@ examples:
|
|
|
9
9
|
- card_content: Content Size
|
|
10
10
|
- card_separator: Separator Card
|
|
11
11
|
- card_border_none: No Border
|
|
12
|
+
- card_border_radius: Border Radius
|
|
12
13
|
react:
|
|
13
14
|
- card_light: Default
|
|
14
15
|
- card_highlight: Highlight Cards
|
|
@@ -19,3 +20,4 @@ examples:
|
|
|
19
20
|
- card_content: Content Size
|
|
20
21
|
- card_separator: Separator Card
|
|
21
22
|
- card_border_none: No Border
|
|
23
|
+
- card_border_radius: Border Radius
|
|
@@ -7,3 +7,4 @@ export { default as CardShadow } from './_card_shadow.jsx'
|
|
|
7
7
|
export { default as CardContent } from './_card_content.jsx'
|
|
8
8
|
export { default as CardSeparator } from './_card_separator.jsx'
|
|
9
9
|
export { default as CardBorderNone } from './_card_border_none.jsx'
|
|
10
|
+
export { default as CardBorderRadius } from './_card_border_radius.jsx'
|
|
@@ -28,7 +28,11 @@ const FiltersPopover = ({ children, dark, minWidth }: FiltersPopoverProps) => {
|
|
|
28
28
|
shouldClosePopover={updateHide}
|
|
29
29
|
show={!hide}
|
|
30
30
|
>
|
|
31
|
-
<div className="pb-form">
|
|
31
|
+
<div className="pb-form">
|
|
32
|
+
{typeof children === 'function'
|
|
33
|
+
? children({ closePopover: () => (updateHide(true)) })
|
|
34
|
+
: children}
|
|
35
|
+
</div>
|
|
32
36
|
</PbReactPopover>
|
|
33
37
|
)
|
|
34
38
|
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { Button, Filter, Flex, Select, TextInput } from '../../'
|
|
3
|
+
|
|
4
|
+
const FilterClosePopover = (props) => {
|
|
5
|
+
const options = [
|
|
6
|
+
{ value: 'USA' },
|
|
7
|
+
{ value: 'Canada' },
|
|
8
|
+
{ value: 'Brazil' },
|
|
9
|
+
{ value: 'Philippines' },
|
|
10
|
+
{ value: 'A Galaxy Far Far Away Like Really Far Away' },
|
|
11
|
+
]
|
|
12
|
+
|
|
13
|
+
return (
|
|
14
|
+
<Filter
|
|
15
|
+
{...props}
|
|
16
|
+
filters={{
|
|
17
|
+
'Full Name': 'John Wick',
|
|
18
|
+
'City': 'San Francisco',
|
|
19
|
+
}}
|
|
20
|
+
results={1}
|
|
21
|
+
sortOptions={{
|
|
22
|
+
popularity: 'Popularity',
|
|
23
|
+
// eslint-disable-next-line
|
|
24
|
+
manager_title: 'Manager\'s Title',
|
|
25
|
+
// eslint-disable-next-line
|
|
26
|
+
manager_name: 'Manager\'s Name',
|
|
27
|
+
}}
|
|
28
|
+
sortValue={[{ name: 'popularity', dir: 'desc' }]}
|
|
29
|
+
>
|
|
30
|
+
{({ closePopover }) => (
|
|
31
|
+
<form>
|
|
32
|
+
<TextInput
|
|
33
|
+
label="Full Name"
|
|
34
|
+
placeholder="Enter name"
|
|
35
|
+
/>
|
|
36
|
+
|
|
37
|
+
<Select
|
|
38
|
+
blankSelection="Select One..."
|
|
39
|
+
label="Territory"
|
|
40
|
+
name="location"
|
|
41
|
+
options={options}
|
|
42
|
+
/>
|
|
43
|
+
<Flex
|
|
44
|
+
spacing="between"
|
|
45
|
+
>
|
|
46
|
+
<Button
|
|
47
|
+
onClick={closePopover}
|
|
48
|
+
text="Apply"
|
|
49
|
+
/>
|
|
50
|
+
<Button
|
|
51
|
+
text="Clear"
|
|
52
|
+
variant="secondary"
|
|
53
|
+
/>
|
|
54
|
+
</Flex>
|
|
55
|
+
</form>
|
|
56
|
+
)}
|
|
57
|
+
</Filter>
|
|
58
|
+
)
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export default FilterClosePopover
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Filter can leverage the max-width property. Learn more in our <a href="https://playbook.powerapp.cloud/visual_guidelines" target="_blank">visual guidelines.</a>
|
|
@@ -5,3 +5,4 @@ export { default as FilterNoBackground } from './_filter_no_background.jsx'
|
|
|
5
5
|
export { default as FilterOnly } from './_filter_only.jsx'
|
|
6
6
|
export { default as SortOnly } from './_sort_only.jsx'
|
|
7
7
|
export { default as FilterMinWidth } from './_filter_min_width.jsx'
|
|
8
|
+
export { default as FilterClosePopover } from './_filter_close_popover.jsx'
|
|
@@ -18,6 +18,8 @@ $form_pill_colors: (
|
|
|
18
18
|
padding: 0 $space-sm/3;
|
|
19
19
|
height: $pb_form_pill_height;
|
|
20
20
|
border-radius: $pb_form_pill_height/2;
|
|
21
|
+
margin-bottom: 2px;
|
|
22
|
+
margin-top: 2px;
|
|
21
23
|
cursor: pointer;
|
|
22
24
|
@each $color_name, $color_value in $form_pill_colors {
|
|
23
25
|
&[class*=_#{$color_name}] {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<%= pb_rails("layout/body") do %>
|
|
3
3
|
|
|
4
4
|
<%= pb_rails("card" ) do %>
|
|
5
|
-
Card content
|
|
5
|
+
Card content
|
|
6
6
|
<% end %>
|
|
7
7
|
<%= pb_rails("card") do %>
|
|
8
8
|
<%= pb_rails("title", props: { text: "Title 4", tag: "h4", size: 4 }) %>
|
|
@@ -26,10 +26,10 @@
|
|
|
26
26
|
<%= pb_rails("title", props: { text: "Title 1", tag: "h1", size: 1 }) %>
|
|
27
27
|
<% end %>
|
|
28
28
|
<%= pb_rails("card" ) do %>
|
|
29
|
-
Card content
|
|
29
|
+
Card content
|
|
30
30
|
<% end %>
|
|
31
31
|
<%= pb_rails("card") do %>
|
|
32
|
-
Card content
|
|
32
|
+
Card content
|
|
33
33
|
<% end %>
|
|
34
34
|
<%= pb_rails("user", props: {
|
|
35
35
|
name: "Anna Black",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
avatar_url: "https://randomuser.me/api/portraits/women/44.jpg"
|
|
41
41
|
}) %>
|
|
42
42
|
<%= pb_rails("card" ) do %>
|
|
43
|
-
Card content
|
|
43
|
+
Card content
|
|
44
44
|
<% end %>
|
|
45
45
|
<%= pb_rails("card" ) do %>
|
|
46
46
|
<%= pb_rails("title", props: { text: "Title 4", tag: "h4", size: 4 }) %>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Layout can leverage the max-width property. Learn more in our <a href="https://playbook.powerapp.cloud/visual_guidelines" target="_blank">visual guidelines.</a>
|
|
@@ -9,17 +9,60 @@
|
|
|
9
9
|
<%= radio_button_tag(object.name, object.value, object.checked, object.additional_input_options) %>
|
|
10
10
|
<% end %>
|
|
11
11
|
|
|
12
|
-
<label for="<%= object.input_id_present %>">
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
12
|
+
<label class="<%= object.label_class %>" for="<%= object.input_id_present %>">
|
|
13
|
+
<div class="buffer">
|
|
14
|
+
<% if object.variant == "display_input" %>
|
|
15
|
+
<%= pb_rails("flex", props: { vertical: "center" }) do %>
|
|
16
|
+
<%= pb_rails("flex", props: {
|
|
17
|
+
orientation: "column",
|
|
18
|
+
padding: "sm",
|
|
19
|
+
padding_right: "xs",
|
|
20
|
+
vertical: "center",
|
|
21
|
+
}) do %>
|
|
22
|
+
<%= pb_rails(object.input, props: { text: "" }) do %>
|
|
23
|
+
<input <%= object.is_checked %> <%= object.is_disabled %> id="checkbox-styled" name="<%= object.name %>-display" type="<%= object.input %>">
|
|
24
|
+
<% end %>
|
|
25
|
+
<% end %>
|
|
26
|
+
<div class="separator"></div>
|
|
27
|
+
<%= pb_rails("card/card_body", props: { padding: "sm" }) do %>
|
|
28
|
+
<% if object.children.nil? %>
|
|
29
|
+
<%= pb_rails("body", props: { text: object.text }) %>
|
|
30
|
+
<% else %>
|
|
31
|
+
<%= capture(&object.children) %>
|
|
32
|
+
<% end %>
|
|
33
|
+
<% end %>
|
|
34
|
+
<% end %>
|
|
35
|
+
<% else %>
|
|
36
|
+
<% if object.children.nil? %>
|
|
37
|
+
<%= pb_rails("body", props: { text: object.text }) %>
|
|
38
|
+
<% else %>
|
|
39
|
+
<%= capture(&object.children) %>
|
|
40
|
+
<% end %>
|
|
41
|
+
<% if object.icon %>
|
|
42
|
+
<div class="pb_selectable_card_circle">
|
|
43
|
+
<%= pb_rails("icon", props: { icon: "check", fixed_width: true }) %>
|
|
44
|
+
</div>
|
|
45
|
+
<% end %>
|
|
46
|
+
<% end %>
|
|
47
|
+
</div>
|
|
23
48
|
</label>
|
|
24
49
|
|
|
50
|
+
<% if object.variant == "display_input" %>
|
|
51
|
+
<script>
|
|
52
|
+
var outerCheckbox = document.querySelector("input#<%= object.input_id || object.name %>")
|
|
53
|
+
var innerCheckbox = outerCheckbox.parentElement.querySelector("input#checkbox-styled")
|
|
54
|
+
|
|
55
|
+
outerCheckbox.addEventListener("change", () => {
|
|
56
|
+
const outerCheckbox = document.querySelector("input#<%= object.input_id || object.name %>")
|
|
57
|
+
const innerCheckbox = outerCheckbox.parentElement.querySelector("input#checkbox-styled")
|
|
58
|
+
innerCheckbox.checked = outerCheckbox.checked
|
|
59
|
+
})
|
|
60
|
+
|
|
61
|
+
innerCheckbox.addEventListener("change", () => {
|
|
62
|
+
const outerCheckbox = document.querySelector("input#<%= object.input_id || object.name %>")
|
|
63
|
+
const innerCheckbox = outerCheckbox.parentElement.querySelector("input#checkbox-styled")
|
|
64
|
+
outerCheckbox.checked = innerCheckbox.checked
|
|
65
|
+
})
|
|
66
|
+
</script>
|
|
67
|
+
<% end %>
|
|
25
68
|
<% end %>
|