playbook_ui 3.5.0 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/_playbook.scss +2 -1
- data/app/pb_kits/playbook/index.js +2 -1
- data/app/pb_kits/playbook/kits/pb_popover.js +4 -0
- data/app/pb_kits/playbook/packs/examples.js +5 -3
- data/app/pb_kits/playbook/packs/kits.js +2 -0
- data/app/pb_kits/playbook/packs/site_styles/docs/_kit_doc.scss +1 -1
- data/app/pb_kits/playbook/packs/site_styles/docs/_markdown.scss +1 -1
- data/app/pb_kits/playbook/packs/site_styles/docs/_spacing_tokens.scss +1 -1
- data/app/pb_kits/playbook/pb_card/card.rb +1 -6
- data/app/pb_kits/playbook/pb_currency/_currency.html.erb +6 -6
- data/app/pb_kits/playbook/pb_currency/_currency.jsx +38 -29
- data/app/pb_kits/playbook/pb_currency/_currency.scss +29 -29
- data/app/pb_kits/playbook/pb_currency/currency.rb +67 -75
- data/app/pb_kits/playbook/pb_currency/docs/_currency_default.jsx +3 -3
- data/app/pb_kits/playbook/pb_currency/docs/_currency_large.html.erb +7 -12
- data/app/pb_kits/playbook/pb_currency/docs/_currency_large.jsx +4 -4
- data/app/pb_kits/playbook/pb_currency/docs/_currency_small.html.erb +7 -12
- data/app/pb_kits/playbook/pb_form/_form_form_with.html.erb +10 -0
- data/app/pb_kits/playbook/pb_form/_form_simple_form.html.erb +10 -0
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +1 -1
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +35 -0
- data/app/pb_kits/playbook/pb_form/docs/_form_simple_form.html.erb +1 -1
- data/app/pb_kits/playbook/pb_form/docs/_form_simple_form_validate.html.erb +57 -0
- data/app/pb_kits/playbook/pb_form/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_form/form.rb +1 -0
- data/app/pb_kits/playbook/pb_form/form/form_with_form.rb +1 -0
- data/app/pb_kits/playbook/pb_form/form/simple_form_form.rb +1 -0
- data/app/pb_kits/playbook/pb_form/form_builder/collection_select_field.rb +2 -0
- data/app/pb_kits/playbook/pb_form/form_builder/form_field_builder.rb +10 -1
- data/app/pb_kits/playbook/pb_form/form_builder/select_field.rb +2 -0
- data/app/pb_kits/playbook/pb_form/pb_form_validation.js +84 -0
- data/app/pb_kits/playbook/pb_popover/_popover.html.erb +29 -0
- data/app/pb_kits/playbook/pb_popover/_popover.js +54 -0
- data/app/pb_kits/playbook/pb_popover/_popover.jsx +23 -0
- data/app/pb_kits/playbook/pb_popover/_popover.scss +8 -0
- data/app/pb_kits/playbook/pb_popover/docs/_popover_default.html.erb +8 -0
- data/app/pb_kits/playbook/pb_popover/docs/_popover_default.jsx +10 -0
- data/app/pb_kits/playbook/pb_popover/docs/_popover_list.html.erb +12 -0
- data/app/pb_kits/playbook/pb_popover/docs/_popover_with_button.html.erb +4 -0
- data/app/pb_kits/playbook/pb_popover/docs/_popover_with_circle.html.erb +5 -0
- data/app/pb_kits/playbook/pb_popover/docs/example.yml +8 -0
- data/app/pb_kits/playbook/pb_popover/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_popover/popover.rb +23 -0
- data/app/pb_kits/playbook/pb_select/_select.html.erb +1 -1
- data/app/pb_kits/playbook/pb_select/_select.scss +18 -17
- data/app/pb_kits/playbook/pb_select/select.rb +5 -1
- data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +1 -1
- data/app/pb_kits/playbook/pb_text_input/_text_input.html.erb +2 -0
- data/app/pb_kits/playbook/pb_text_input/text_input.rb +16 -0
- data/app/pb_kits/playbook/plugins/{pb_chart_plugin.js → pb_chart.js} +0 -0
- data/app/pb_kits/playbook/tokens/_colors.scss +2 -13
- data/app/pb_kits/playbook/tokens/_shadows.scss +3 -15
- data/app/pb_kits/playbook/vendor.js +8 -1
- data/app/views/playbook/pages/utilities.html.slim +1 -1
- data/lib/playbook/version.rb +1 -1
- metadata +19 -3
@@ -0,0 +1,54 @@
|
|
1
|
+
import { createPopper } from '@popperjs/core'
|
2
|
+
|
3
|
+
class Popover {
|
4
|
+
constructor(
|
5
|
+
triggerElement = '#triggerElement',
|
6
|
+
tooltip = '#tooltip',
|
7
|
+
placement = 'left',
|
8
|
+
offset = ''
|
9
|
+
) {
|
10
|
+
this.triggerElement = triggerElement
|
11
|
+
this.tooltip = tooltip
|
12
|
+
this.placement = placement
|
13
|
+
this.offset = offset
|
14
|
+
this.setupPopper()
|
15
|
+
}
|
16
|
+
|
17
|
+
//getters
|
18
|
+
get popoverTriggerElement() {
|
19
|
+
return document.querySelector(this.triggerElement)
|
20
|
+
}
|
21
|
+
get popoverTooltip() {
|
22
|
+
return document.querySelector(this.tooltip)
|
23
|
+
}
|
24
|
+
get popoverPlacement() {
|
25
|
+
return this.placement
|
26
|
+
}
|
27
|
+
get popoverOffset() {
|
28
|
+
return this.offset
|
29
|
+
}
|
30
|
+
|
31
|
+
attachEvents() {
|
32
|
+
this.popoverTriggerElement.addEventListener('click', () => {
|
33
|
+
this.popoverTooltip.classList.toggle('show')
|
34
|
+
})
|
35
|
+
}
|
36
|
+
|
37
|
+
setupPopper() {
|
38
|
+
createPopper(this.popoverTriggerElement, this.popoverTooltip, {
|
39
|
+
placement: this.popoverPlacement,
|
40
|
+
modifiers: [
|
41
|
+
{
|
42
|
+
name: 'offset',
|
43
|
+
options: {
|
44
|
+
offset: this.offset,
|
45
|
+
},
|
46
|
+
},
|
47
|
+
],
|
48
|
+
})
|
49
|
+
|
50
|
+
this.attachEvents()
|
51
|
+
}
|
52
|
+
}
|
53
|
+
|
54
|
+
export default Popover
|
@@ -0,0 +1,23 @@
|
|
1
|
+
/* @flow */
|
2
|
+
|
3
|
+
import React from 'react'
|
4
|
+
|
5
|
+
type PopoverProps = {
|
6
|
+
className?: String,
|
7
|
+
data?: String,
|
8
|
+
id?: String,
|
9
|
+
}
|
10
|
+
|
11
|
+
const Popover = ({
|
12
|
+
className,
|
13
|
+
data,
|
14
|
+
id,
|
15
|
+
}: PopoverProps) => (
|
16
|
+
<div>
|
17
|
+
<p>{`className: ${className}`}</p>
|
18
|
+
<p>{`data: ${data}`}</p>
|
19
|
+
<p>{`id: ${id}`}</p>
|
20
|
+
</div>
|
21
|
+
)
|
22
|
+
|
23
|
+
export default Popover
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<div style="height: 400px; text-align: center;">
|
2
|
+
<%= pb_rails("button", props: { text: "Button Secondary", variant: "secondary", id: 'list' }) %>
|
3
|
+
<%= pb_rails("popover", props: {trigger_element_id: "list", tooltip_id: "list-tooltip", position: 'bottom', offset: true }) do %>
|
4
|
+
<%= pb_rails("list", props: {ordered: false, dark: false, borderless: false}) do %>
|
5
|
+
<%= pb_rails("list/item") do %><a>Popularity</a><% end %>
|
6
|
+
<%= pb_rails("list/item") do %><a>Title</a><% end %>
|
7
|
+
<%= pb_rails("list/item") do %><a>Duration</a><% end %>
|
8
|
+
<%= pb_rails("list/item") do %><a>Date Started</a><% end %>
|
9
|
+
<%= pb_rails("list/item") do %><a>Date Ended </a><% end %>
|
10
|
+
<% end %>
|
11
|
+
<% end %>
|
12
|
+
</div>
|
@@ -0,0 +1,4 @@
|
|
1
|
+
<%= pb_rails("button", props: { text: "Button Secondary", variant: "secondary", id: 'regular-popover-3' }) %>
|
2
|
+
<%= pb_rails("popover", props: {trigger_element_id: "regular-popover-3", tooltip_id: "tooltip-3", position: 'bottom', offset: true }) do %>
|
3
|
+
Whoa. I'm a popover.
|
4
|
+
<% end %>
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<%# Future release %>
|
2
|
+
<%= pb_rails("circle_icon_button", props: {variant: "primary", icon: "plus"}) %>
|
3
|
+
<%= pb_rails("popover", props: {trigger_element_id: "regular-popover-2", tooltip_id: "tooltip-2", position: 'right', offset: false }) do %>
|
4
|
+
Hello popover.
|
5
|
+
<% end %>
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default as PopoverDefault } from './_popover_default.jsx'
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Playbook
|
4
|
+
module PbPopover
|
5
|
+
class Popover
|
6
|
+
include Playbook::Props
|
7
|
+
partial "pb_popover/popover"
|
8
|
+
|
9
|
+
prop :position
|
10
|
+
prop :trigger_element_id
|
11
|
+
prop :tooltip_id
|
12
|
+
prop :offset, type: Playbook::Props::Boolean, default: false
|
13
|
+
|
14
|
+
def popover_offset
|
15
|
+
offset ? [0, 8] : [0, 0]
|
16
|
+
end
|
17
|
+
|
18
|
+
def classname
|
19
|
+
generate_classname("pb_popover_kit")
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -8,7 +8,7 @@
|
|
8
8
|
<%= pb_rails("caption", props: { text: object.label, dark: object.dark, }) %>
|
9
9
|
</label>
|
10
10
|
<% end %>
|
11
|
-
<label class="
|
11
|
+
<label class="<%= object.select_wrapper_class %>" for="<%= object.name %>">
|
12
12
|
<% if object.children %>
|
13
13
|
<%= capture(&object.children) %>
|
14
14
|
<%= pb_rails("body", props: { dark: object.dark, status: "negative", text: object.error }) %>
|
@@ -29,6 +29,17 @@
|
|
29
29
|
.pb_select_kit_wrapper {
|
30
30
|
position: relative;
|
31
31
|
display: block;
|
32
|
+
&.error {
|
33
|
+
[class*=pb_body_kit] {
|
34
|
+
margin-top: $space_xs / 2;
|
35
|
+
}
|
36
|
+
> select:first-child {
|
37
|
+
border-color: $error;
|
38
|
+
}
|
39
|
+
.pb_select_kit_caret {
|
40
|
+
top: 35%;
|
41
|
+
}
|
42
|
+
}
|
32
43
|
}
|
33
44
|
.pb_select_kit_caret {
|
34
45
|
position: absolute;
|
@@ -53,25 +64,15 @@
|
|
53
64
|
.pb_select_kit_caret {
|
54
65
|
color: $white;
|
55
66
|
}
|
56
|
-
&.error {
|
57
|
-
.pb_select_kit_wrapper {
|
58
|
-
> select:first-child {
|
59
|
-
border-color: $error_dark;
|
60
|
-
}
|
61
|
-
}
|
62
|
-
}
|
63
|
-
}
|
64
|
-
&.error {
|
65
67
|
.pb_select_kit_wrapper {
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
.pb_select_kit_caret {
|
73
|
-
top: 35%;
|
68
|
+
&.error {
|
69
|
+
.pb_select_kit_wrapper {
|
70
|
+
> select:first-child {
|
71
|
+
border-color: $error_dark;
|
72
|
+
}
|
73
|
+
}
|
74
74
|
}
|
75
75
|
}
|
76
76
|
}
|
77
|
+
|
77
78
|
}
|
@@ -24,7 +24,11 @@ module Playbook
|
|
24
24
|
prop :required, type: Playbook::Props::Boolean, default: false
|
25
25
|
|
26
26
|
def classname
|
27
|
-
generate_classname("pb_select", dark_class)
|
27
|
+
generate_classname("pb_select", dark_class)
|
28
|
+
end
|
29
|
+
|
30
|
+
def select_wrapper_class
|
31
|
+
"pb_select_kit_wrapper" + error_class
|
28
32
|
end
|
29
33
|
|
30
34
|
def options_to_array
|
@@ -18,12 +18,28 @@ module Playbook
|
|
18
18
|
prop :required, type: Playbook::Props::Boolean,
|
19
19
|
default: false
|
20
20
|
prop :type, default: "text"
|
21
|
+
prop :validation, type: Playbook::Props::Hash,
|
22
|
+
default: {}
|
21
23
|
prop :value
|
22
24
|
|
23
25
|
def classname
|
24
26
|
generate_classname("pb_text_input_kit", dark_class) + error_class
|
25
27
|
end
|
26
28
|
|
29
|
+
def validation_message
|
30
|
+
validation[:message] || ""
|
31
|
+
end
|
32
|
+
|
33
|
+
def validation_pattern
|
34
|
+
validation[:pattern] || ""
|
35
|
+
end
|
36
|
+
|
37
|
+
def data
|
38
|
+
fields = {}
|
39
|
+
fields[:message] = validation_message unless validation_message.blank?
|
40
|
+
fields
|
41
|
+
end
|
42
|
+
|
27
43
|
private
|
28
44
|
|
29
45
|
def error_class
|
File without changes
|
@@ -103,20 +103,9 @@ $border_colors: (
|
|
103
103
|
);
|
104
104
|
|
105
105
|
// Shadow colors ----------------------
|
106
|
-
$
|
107
|
-
|
108
|
-
/*
|
109
|
-
DEPRECATED - DO NOT USE!
|
110
|
-
This targed to be removed in release v4.0.0.
|
111
|
-
[https://github.com/powerhome/playbook/issues/550]
|
112
|
-
*/
|
113
|
-
$shadow_dark: rgba(#3C6AAC, $opacity_2);
|
114
|
-
|
115
|
-
/* END DEPRECATION */
|
116
|
-
|
106
|
+
$shadow: rgba(#3C6AAC, $opacity_2);
|
117
107
|
$shadow_colors: (
|
118
|
-
|
119
|
-
shadow_dark: $shadow_dark
|
108
|
+
shadow: $shadow,
|
120
109
|
);
|
121
110
|
|
122
111
|
// Text colors ------------------------
|
@@ -2,23 +2,11 @@
|
|
2
2
|
@import "opacity";
|
3
3
|
|
4
4
|
$shadow_none: 0 0 0 0 transparent;
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
This targed to be removed in release v4.0.0.
|
9
|
-
[https://github.com/powerhome/playbook/issues/550]
|
10
|
-
*/
|
11
|
-
$shadow_shallow: 0 1px 1px 0 $shadow_light;
|
12
|
-
$shadow_default: 0 1px 5px 0 $shadow_light;
|
13
|
-
/* END DEPRECATED */
|
14
|
-
|
15
|
-
$shadow_deep: 0 4px 10px 0 rgba($shadow_light, 0.16);
|
16
|
-
$shadow_deeper: 0 12px 28px 0 rgba($shadow_light, 0.18);
|
17
|
-
$shadow_deepest: 0 30px 38px 4px $shadow_light, 0 2px 14px 4px rgba($shadow_light, 0.1);
|
5
|
+
$shadow_deep: 0 4px 10px 0 rgba($shadow, 0.16);
|
6
|
+
$shadow_deeper: 0 12px 28px 0 rgba($shadow, 0.18);
|
7
|
+
$shadow_deepest: 0 30px 38px 4px $shadow, 0 2px 14px 4px rgba($shadow, 0.1);
|
18
8
|
$box_shadows: (
|
19
9
|
shadow_none: $shadow_none,
|
20
|
-
shadow_shallow: $shadow_shallow,
|
21
|
-
shadow_default: $shadow_default,
|
22
10
|
shadow_deep: $shadow_deep,
|
23
11
|
shadow_deeper: $shadow_deeper,
|
24
12
|
shadow_deepest: $shadow_deepest
|
@@ -1,6 +1,13 @@
|
|
1
1
|
// Charts
|
2
|
-
import pbChart from './plugins/
|
2
|
+
import pbChart from './plugins/pb_chart'
|
3
3
|
window.pbChart = pbChart
|
4
4
|
|
5
|
+
// Forms
|
6
|
+
import './pb_form/pb_form_validation'
|
7
|
+
|
5
8
|
// Lazy image loading
|
6
9
|
import 'lazysizes'
|
10
|
+
|
11
|
+
// Popovers
|
12
|
+
import Popover from './pb_popover/_popover'
|
13
|
+
window.Popover = Popover
|
@@ -74,7 +74,7 @@ br
|
|
74
74
|
// Shadow --------------------------
|
75
75
|
= render :partial => "playbook/pages/utilities/pb_doc_color",
|
76
76
|
locals:{ title: "Shadow",
|
77
|
-
colors: [{name: "Shadow
|
77
|
+
colors: [{name: "Shadow", variable: "shadow"}]}
|
78
78
|
|
79
79
|
// Products ------------------------
|
80
80
|
= render :partial => "playbook/pages/utilities/pb_doc_color",
|
data/lib/playbook/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: playbook_ui
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Power UX
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2020-01-
|
12
|
+
date: 2020-01-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: actionpack
|
@@ -438,6 +438,7 @@ files:
|
|
438
438
|
- app/pb_kits/playbook/kits/pb_person.js
|
439
439
|
- app/pb_kits/playbook/kits/pb_person_contact.js
|
440
440
|
- app/pb_kits/playbook/kits/pb_pill.js
|
441
|
+
- app/pb_kits/playbook/kits/pb_popover.js
|
441
442
|
- app/pb_kits/playbook/kits/pb_progress_pills.js
|
442
443
|
- app/pb_kits/playbook/kits/pb_progress_simple.js
|
443
444
|
- app/pb_kits/playbook/kits/pb_radio.js
|
@@ -705,7 +706,9 @@ files:
|
|
705
706
|
- app/pb_kits/playbook/pb_form/_form_form_with.html.erb
|
706
707
|
- app/pb_kits/playbook/pb_form/_form_simple_form.html.erb
|
707
708
|
- app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb
|
709
|
+
- app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb
|
708
710
|
- app/pb_kits/playbook/pb_form/docs/_form_simple_form.html.erb
|
711
|
+
- app/pb_kits/playbook/pb_form/docs/_form_simple_form_validate.html.erb
|
709
712
|
- app/pb_kits/playbook/pb_form/docs/example.yml
|
710
713
|
- app/pb_kits/playbook/pb_form/form.rb
|
711
714
|
- app/pb_kits/playbook/pb_form/form/form_with_form.rb
|
@@ -717,6 +720,7 @@ files:
|
|
717
720
|
- app/pb_kits/playbook/pb_form/form_builder/form_with_form_builder.rb
|
718
721
|
- app/pb_kits/playbook/pb_form/form_builder/select_field.rb
|
719
722
|
- app/pb_kits/playbook/pb_form/form_builder/simple_form_builder.rb
|
723
|
+
- app/pb_kits/playbook/pb_form/pb_form_validation.js
|
720
724
|
- app/pb_kits/playbook/pb_hashtag/_hashtag.html.erb
|
721
725
|
- app/pb_kits/playbook/pb_hashtag/_hashtag.jsx
|
722
726
|
- app/pb_kits/playbook/pb_hashtag/_hashtag.scss
|
@@ -966,6 +970,18 @@ files:
|
|
966
970
|
- app/pb_kits/playbook/pb_pill/docs/example.yml
|
967
971
|
- app/pb_kits/playbook/pb_pill/docs/index.js
|
968
972
|
- app/pb_kits/playbook/pb_pill/pill.rb
|
973
|
+
- app/pb_kits/playbook/pb_popover/_popover.html.erb
|
974
|
+
- app/pb_kits/playbook/pb_popover/_popover.js
|
975
|
+
- app/pb_kits/playbook/pb_popover/_popover.jsx
|
976
|
+
- app/pb_kits/playbook/pb_popover/_popover.scss
|
977
|
+
- app/pb_kits/playbook/pb_popover/docs/_popover_default.html.erb
|
978
|
+
- app/pb_kits/playbook/pb_popover/docs/_popover_default.jsx
|
979
|
+
- app/pb_kits/playbook/pb_popover/docs/_popover_list.html.erb
|
980
|
+
- app/pb_kits/playbook/pb_popover/docs/_popover_with_button.html.erb
|
981
|
+
- app/pb_kits/playbook/pb_popover/docs/_popover_with_circle.html.erb
|
982
|
+
- app/pb_kits/playbook/pb_popover/docs/example.yml
|
983
|
+
- app/pb_kits/playbook/pb_popover/docs/index.js
|
984
|
+
- app/pb_kits/playbook/pb_popover/popover.rb
|
969
985
|
- app/pb_kits/playbook/pb_progress_pills/_progress_pills.html.erb
|
970
986
|
- app/pb_kits/playbook/pb_progress_pills/_progress_pills.jsx
|
971
987
|
- app/pb_kits/playbook/pb_progress_pills/_progress_pills.scss
|
@@ -1262,7 +1278,7 @@ files:
|
|
1262
1278
|
- app/pb_kits/playbook/pb_user_badge/docs/example.yml
|
1263
1279
|
- app/pb_kits/playbook/pb_user_badge/docs/index.js
|
1264
1280
|
- app/pb_kits/playbook/pb_user_badge/user_badge.rb
|
1265
|
-
- app/pb_kits/playbook/plugins/
|
1281
|
+
- app/pb_kits/playbook/plugins/pb_chart.js
|
1266
1282
|
- app/pb_kits/playbook/props.rb
|
1267
1283
|
- app/pb_kits/playbook/props/array.rb
|
1268
1284
|
- app/pb_kits/playbook/props/base.rb
|