playbook_ui 2.9.0 → 2.9.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/app/helpers/playbook/pb_doc_helper.rb +5 -1
- data/app/pb_kits/playbook/index.js +73 -0
- data/app/pb_kits/playbook/packs/examples.js +24 -0
- data/app/pb_kits/playbook/packs/kits.js +8 -0
- data/app/pb_kits/playbook/packs/pb_badge.js +4 -0
- data/app/pb_kits/playbook/packs/pb_checkbox.js +4 -0
- data/app/pb_kits/playbook/packs/pb_date_range_inline.js +4 -0
- data/app/pb_kits/playbook/packs/pb_date_year_stacked.js +4 -0
- data/app/pb_kits/playbook/packs/pb_distribution_bar.js +4 -0
- data/app/pb_kits/playbook/packs/pb_fixed_confirmation_toast.js +4 -0
- data/app/pb_kits/playbook/packs/pb_home_address_street.js +4 -0
- data/app/pb_kits/playbook/packs/pb_loading_inline.js +4 -0
- data/app/pb_kits/playbook/packs/site_styles/_kit_style_index.scss +8 -0
- data/app/pb_kits/playbook/pb_badge/_badge.html.erb +6 -0
- data/app/pb_kits/playbook/pb_badge/_badge.jsx +34 -0
- data/app/pb_kits/playbook/pb_badge/_badge.scss +37 -0
- data/app/pb_kits/playbook/pb_badge/badge.rb +65 -0
- data/app/pb_kits/playbook/pb_badge/docs/_badge_colors.html.erb +107 -0
- data/app/pb_kits/playbook/pb_badge/docs/_badge_colors.jsx +82 -0
- data/app/pb_kits/playbook/pb_badge/docs/_badge_default.html.erb +16 -0
- data/app/pb_kits/playbook/pb_badge/docs/_badge_default.jsx +20 -0
- data/app/pb_kits/playbook/pb_badge/docs/_badge_rounded.html.erb +19 -0
- data/app/pb_kits/playbook/pb_badge/docs/_badge_rounded.jsx +20 -0
- data/app/pb_kits/playbook/pb_badge/docs/example.yml +10 -0
- data/app/pb_kits/playbook/pb_badge/docs/index.js +3 -0
- data/app/pb_kits/playbook/pb_caption/_caption.html.erb +1 -1
- data/app/pb_kits/playbook/pb_caption/_caption.scss +2 -2
- data/app/pb_kits/playbook/pb_caption/caption.rb +24 -56
- data/app/pb_kits/playbook/pb_checkbox/_checkbox.html.erb +10 -0
- data/app/pb_kits/playbook/pb_checkbox/_checkbox.jsx +42 -0
- data/app/pb_kits/playbook/pb_checkbox/_checkbox.scss +66 -0
- data/app/pb_kits/playbook/pb_checkbox/checkbox.rb +94 -0
- data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_dark.html.erb +1 -0
- data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_default.html.erb +1 -0
- data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_default.jsx +17 -0
- data/app/pb_kits/playbook/pb_checkbox/docs/example.yml +8 -0
- data/app/pb_kits/playbook/pb_checkbox/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_date/date.rb +14 -23
- data/app/pb_kits/playbook/pb_date/docs/_date_default.html.erb +3 -3
- data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.html.erb +22 -0
- data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.jsx +54 -0
- data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.scss +3 -0
- data/app/pb_kits/playbook/pb_date_range_inline/date_range_inline.rb +55 -0
- data/app/pb_kits/playbook/pb_date_range_inline/docs/_date_range_inline_default.html.erb +1 -0
- data/app/pb_kits/playbook/pb_date_range_inline/docs/_date_range_inline_default.jsx +12 -0
- data/app/pb_kits/playbook/pb_date_range_inline/docs/example.yml +9 -0
- data/app/pb_kits/playbook/pb_date_range_inline/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_date_year_stacked/_date_year_stacked.html.erb +7 -0
- data/app/pb_kits/playbook/pb_date_year_stacked/_date_year_stacked.jsx +51 -0
- data/app/pb_kits/playbook/pb_date_year_stacked/_date_year_stacked.scss +17 -0
- data/app/pb_kits/playbook/pb_date_year_stacked/date_year_stacked.rb +75 -0
- data/app/pb_kits/playbook/pb_date_year_stacked/docs/_date_year_stacked_dark.html.erb +5 -0
- data/app/pb_kits/playbook/pb_date_year_stacked/docs/_date_year_stacked_dark.jsx +14 -0
- data/app/pb_kits/playbook/pb_date_year_stacked/docs/_date_year_stacked_default.html.erb +5 -0
- data/app/pb_kits/playbook/pb_date_year_stacked/docs/_date_year_stacked_default.jsx +14 -0
- data/app/pb_kits/playbook/pb_date_year_stacked/docs/example.yml +9 -0
- data/app/pb_kits/playbook/pb_date_year_stacked/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.html.erb +8 -0
- data/app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.jsx +52 -0
- data/app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.scss +31 -0
- data/app/pb_kits/playbook/pb_distribution_bar/distribution_bar.rb +56 -0
- data/app/pb_kits/playbook/pb_distribution_bar/docs/_distribution_bar_default.html.erb +9 -0
- data/app/pb_kits/playbook/pb_distribution_bar/docs/_distribution_bar_default.jsx +24 -0
- data/app/pb_kits/playbook/pb_distribution_bar/docs/example.yml +9 -0
- data/app/pb_kits/playbook/pb_distribution_bar/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.html.erb +7 -0
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.jsx +58 -0
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.scss +27 -0
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_default.html.erb +18 -0
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_default.jsx +26 -0
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/example.yml +9 -0
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.rb +74 -0
- data/app/pb_kits/playbook/pb_home_address_street/_home_address_street.html.erb +25 -0
- data/app/pb_kits/playbook/pb_home_address_street/_home_address_street.jsx +64 -0
- data/app/pb_kits/playbook/pb_home_address_street/_home_address_street.scss +20 -0
- data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_dark.html.erb +9 -0
- data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_dark.jsx +18 -0
- data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_default.html.erb +8 -0
- data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_default.jsx +17 -0
- data/app/pb_kits/playbook/pb_home_address_street/docs/example.yml +11 -0
- data/app/pb_kits/playbook/pb_home_address_street/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_home_address_street/home_address_street.rb +80 -0
- data/app/pb_kits/playbook/pb_kit/dateTime.js +45 -0
- data/app/pb_kits/playbook/pb_kit/pb_date_time.rb +68 -0
- data/app/pb_kits/playbook/pb_loading_inline/_loading_inline.html.erb +6 -0
- data/app/pb_kits/playbook/pb_loading_inline/_loading_inline.jsx +31 -0
- data/app/pb_kits/playbook/pb_loading_inline/_loading_inline.scss +19 -0
- data/app/pb_kits/playbook/pb_loading_inline/docs/_loading_inline_dark.html.erb +13 -0
- data/app/pb_kits/playbook/pb_loading_inline/docs/_loading_inline_dark.jsx +14 -0
- data/app/pb_kits/playbook/pb_loading_inline/docs/_loading_inline_light.html.erb +9 -0
- data/app/pb_kits/playbook/pb_loading_inline/docs/_loading_inline_light.jsx +14 -0
- data/app/pb_kits/playbook/pb_loading_inline/docs/example.yml +11 -0
- data/app/pb_kits/playbook/pb_loading_inline/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_loading_inline/loading_inline.rb +67 -0
- data/app/pb_kits/playbook/pb_time/docs/_time_default.html.erb +3 -3
- data/app/pb_kits/playbook/pb_time/docs/_time_timestamp.html.erb +3 -3
- data/app/pb_kits/playbook/pb_time/time.rb +16 -29
- data/app/pb_kits/playbook/pb_toggle/toggle.rb +2 -0
- data/app/pb_kits/playbook/props.rb +45 -0
- data/app/pb_kits/playbook/props/base.rb +27 -0
- data/app/pb_kits/playbook/props/boolean.rb +11 -0
- data/app/pb_kits/playbook/props/enum.rb +16 -0
- data/app/pb_kits/playbook/props/hash.rb +11 -0
- data/app/pb_kits/playbook/props/string.rb +8 -0
- data/app/pb_kits/playbook/tokens/_colors.scss +2 -1
- data/app/pb_kits/playbook/tokens/_transition.scss +1 -0
- data/lib/playbook/engine.rb +0 -1
- data/lib/playbook/version.rb +1 -1
- metadata +148 -22
- data/app/pb_kits/playbook/packs/index.js +0 -67
- data/lib/tasks/db.rake +0 -10
- data/stories/basic.js +0 -18
- data/stories/complex.js +0 -15
- data/stories/form.js +0 -2
- data/stories/index.js +0 -29
@@ -0,0 +1,14 @@
|
|
1
|
+
import React from "react"
|
2
|
+
import LoadingInline from "../_loading_inline.jsx"
|
3
|
+
|
4
|
+
function LoadingInlineDark() {
|
5
|
+
return (
|
6
|
+
<div>
|
7
|
+
<LoadingInline dark />
|
8
|
+
<LoadingInline dark align="center" />
|
9
|
+
<LoadingInline dark align="right" />
|
10
|
+
</div>
|
11
|
+
)
|
12
|
+
}
|
13
|
+
|
14
|
+
export default LoadingInlineDark;
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import React from "react"
|
2
|
+
import LoadingInline from "../_loading_inline.jsx"
|
3
|
+
|
4
|
+
function LoadingInlineLight() {
|
5
|
+
return (
|
6
|
+
<div>
|
7
|
+
<LoadingInline />
|
8
|
+
<LoadingInline align="center" />
|
9
|
+
<LoadingInline align="right" />
|
10
|
+
</div>
|
11
|
+
)
|
12
|
+
}
|
13
|
+
|
14
|
+
export default LoadingInlineLight;
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Playbook
|
4
|
+
module PbLoadingInline
|
5
|
+
class LoadingInline < Playbook::PbKit::Base
|
6
|
+
PROPS = %i[configured_align
|
7
|
+
configured_classname
|
8
|
+
configured_dark
|
9
|
+
configured_data
|
10
|
+
configured_id].freeze
|
11
|
+
|
12
|
+
def initialize(align: default_configuration,
|
13
|
+
classname: default_configuration,
|
14
|
+
dark: default_configuration,
|
15
|
+
data: default_configuration,
|
16
|
+
id: default_configuration)
|
17
|
+
self.configured_align = align
|
18
|
+
self.configured_classname = classname
|
19
|
+
self.configured_dark = dark
|
20
|
+
self.configured_data = data
|
21
|
+
self.configured_id = id
|
22
|
+
end
|
23
|
+
|
24
|
+
def align
|
25
|
+
align_options = %w[left center right]
|
26
|
+
one_of_value(configured_align, align_options, "left")
|
27
|
+
end
|
28
|
+
|
29
|
+
def dark
|
30
|
+
is_true? configured_dark
|
31
|
+
end
|
32
|
+
|
33
|
+
def icon
|
34
|
+
pb_icon = Playbook::PbIcon::Icon.new(fixed_width: true, icon: "spinner", pulse: true)
|
35
|
+
ApplicationController.renderer.render(partial: pb_icon, as: :object)
|
36
|
+
end
|
37
|
+
|
38
|
+
def value
|
39
|
+
pb_icon_value = Playbook::PbBody::Body.new(color: "light", dark: dark) do
|
40
|
+
icon + "Loading"
|
41
|
+
end
|
42
|
+
ApplicationController.renderer.render(partial: pb_icon_value, as: :object)
|
43
|
+
end
|
44
|
+
|
45
|
+
def to_partial_path
|
46
|
+
"pb_loading_inline/loading_inline"
|
47
|
+
end
|
48
|
+
|
49
|
+
def kit_class
|
50
|
+
loading_inline_options = [
|
51
|
+
"pb_loading_inline_kit",
|
52
|
+
align,
|
53
|
+
]
|
54
|
+
loading_inline_options.join("_")
|
55
|
+
end
|
56
|
+
|
57
|
+
private
|
58
|
+
|
59
|
+
DEFAULT = Object.new
|
60
|
+
private_constant :DEFAULT
|
61
|
+
def default_configuration
|
62
|
+
DEFAULT
|
63
|
+
end
|
64
|
+
attr_accessor(*PROPS)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -1,18 +1,18 @@
|
|
1
1
|
<%= pb_rails("time", props: {
|
2
|
-
|
2
|
+
time: Time.now,
|
3
3
|
size: "lg"
|
4
4
|
}) %>
|
5
5
|
|
6
6
|
<br>
|
7
7
|
|
8
8
|
<%= pb_rails("time", props: {
|
9
|
-
|
9
|
+
time: DateTime.now,
|
10
10
|
size: "sm"
|
11
11
|
}) %>
|
12
12
|
|
13
13
|
<br>
|
14
14
|
|
15
15
|
<%= pb_rails("time", props: {
|
16
|
-
|
16
|
+
time: "2012-08-02T15:49:29Z",
|
17
17
|
size: "xs"
|
18
18
|
}) %>
|
@@ -1,16 +1,16 @@
|
|
1
1
|
<%= pb_rails("time", props: {
|
2
|
-
|
2
|
+
time: "2012-08-02T15:49:29Z"
|
3
3
|
}) %>
|
4
4
|
|
5
5
|
<br>
|
6
6
|
|
7
7
|
<%= pb_rails("time", props: {
|
8
|
-
|
8
|
+
time: DateTime.now
|
9
9
|
}) %>
|
10
10
|
|
11
11
|
<br>
|
12
12
|
|
13
13
|
<%= pb_rails("time", props: {
|
14
|
-
|
14
|
+
time: DateTime.now,
|
15
15
|
timezone: "America/Chicago"
|
16
16
|
}) %>
|
@@ -10,6 +10,7 @@ module Playbook
|
|
10
10
|
configured_data
|
11
11
|
configured_id
|
12
12
|
configured_size
|
13
|
+
configured_time
|
13
14
|
configured_timestamp
|
14
15
|
configured_timezone].freeze
|
15
16
|
|
@@ -17,12 +18,14 @@ module Playbook
|
|
17
18
|
data: default_configuration,
|
18
19
|
id: default_configuration,
|
19
20
|
size: default_configuration,
|
21
|
+
time: default_configuration,
|
20
22
|
timestamp: default_configuration,
|
21
23
|
timezone: default_configuration)
|
22
24
|
self.configured_classname = classname
|
23
25
|
self.configured_data = data
|
24
26
|
self.configured_id = id
|
25
27
|
self.configured_size = size
|
28
|
+
self.configured_time = time
|
26
29
|
self.configured_timestamp = timestamp
|
27
30
|
self.configured_timezone = timezone
|
28
31
|
end
|
@@ -53,41 +56,25 @@ module Playbook
|
|
53
56
|
private
|
54
57
|
|
55
58
|
def timestamp
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
end
|
63
|
-
|
64
|
-
def format_time_string
|
65
|
-
"#{hour}:#{minutes}#{meridian}" if is_set? configured_timestamp
|
66
|
-
end
|
67
|
-
|
68
|
-
def hour
|
69
|
-
timestamp.strftime("%l")
|
70
|
-
end
|
71
|
-
|
72
|
-
def minutes
|
73
|
-
timestamp.strftime("%M")
|
74
|
-
end
|
75
|
-
|
76
|
-
def meridian
|
77
|
-
timestamp.strftime("%P")[0, 1]
|
59
|
+
if is_set? configured_time
|
60
|
+
time = configured_time
|
61
|
+
else
|
62
|
+
time = configured_timestamp
|
63
|
+
end
|
64
|
+
Playbook::PbKit::PbDateTime.new(time, timezone_value)
|
78
65
|
end
|
79
66
|
|
80
67
|
def timezone_value
|
81
68
|
default_value(configured_timezone, "America/New_York")
|
82
69
|
end
|
83
70
|
|
84
|
-
def
|
85
|
-
timestamp.
|
71
|
+
def format_time_string
|
72
|
+
"#{timestamp.to_hour}:#{timestamp.to_minutes}#{timestamp.to_meridian}"
|
86
73
|
end
|
87
74
|
|
88
75
|
def timezone
|
89
76
|
content_tag(:span, class: "pb_time_timezone") do
|
90
|
-
|
77
|
+
timestamp.to_timezone.upcase
|
91
78
|
end
|
92
79
|
end
|
93
80
|
|
@@ -102,7 +89,7 @@ module Playbook
|
|
102
89
|
end
|
103
90
|
|
104
91
|
def text
|
105
|
-
content_tag(:time, datetime: timestamp.
|
92
|
+
content_tag(:time, datetime: timestamp.to_iso) do
|
106
93
|
content_tag(:span) do
|
107
94
|
format_time_string
|
108
95
|
end +
|
@@ -111,7 +98,7 @@ module Playbook
|
|
111
98
|
end
|
112
99
|
|
113
100
|
def display_value_xs
|
114
|
-
if is_set?
|
101
|
+
if is_set?(configured_timestamp) || is_set?(configured_time)
|
115
102
|
pb_value = Playbook::PbBody::Body.new(color: "default") do
|
116
103
|
text
|
117
104
|
end
|
@@ -120,7 +107,7 @@ module Playbook
|
|
120
107
|
end
|
121
108
|
|
122
109
|
def display_value_sm
|
123
|
-
if is_set?
|
110
|
+
if is_set?(configured_timestamp) || is_set?(configured_time)
|
124
111
|
pb_value = Playbook::PbBody::Body.new(color: "default") do
|
125
112
|
icon +
|
126
113
|
text
|
@@ -130,7 +117,7 @@ module Playbook
|
|
130
117
|
end
|
131
118
|
|
132
119
|
def display_value_lg
|
133
|
-
if is_set?
|
120
|
+
if is_set?(configured_timestamp) || is_set?(configured_time)
|
134
121
|
pb_value_lg = Playbook::PbTitle::Title.new(size: 3, text: text)
|
135
122
|
ApplicationController.renderer.render(partial: pb_value_lg, as: :object)
|
136
123
|
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "active_support/concern"
|
4
|
+
require_relative "./props/base"
|
5
|
+
require_relative "./props/boolean"
|
6
|
+
require_relative "./props/enum"
|
7
|
+
require_relative "./props/hash"
|
8
|
+
require_relative "./props/string"
|
9
|
+
|
10
|
+
module Playbook
|
11
|
+
module Props
|
12
|
+
extend ActiveSupport::Concern
|
13
|
+
|
14
|
+
def initialize(prop_values)
|
15
|
+
@values = prop_values
|
16
|
+
self.class.props.each do |key, definition|
|
17
|
+
definition.validate! @values[key]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def prop(name)
|
22
|
+
self.class.props[name].value @values[name]
|
23
|
+
end
|
24
|
+
|
25
|
+
included do
|
26
|
+
prop :id, default: nil
|
27
|
+
prop :data, type: Playbook::Props::Hash, default: {}
|
28
|
+
prop :classname, default: ""
|
29
|
+
prop :aria, type: Playbook::Props::Hash, default: {}
|
30
|
+
end
|
31
|
+
|
32
|
+
class_methods do
|
33
|
+
def props
|
34
|
+
@props
|
35
|
+
end
|
36
|
+
|
37
|
+
def prop(name, type: Playbook::Props::String, **options)
|
38
|
+
@props ||= {}
|
39
|
+
@props[name] = type.new(**options)
|
40
|
+
|
41
|
+
define_method(name) { prop(name) }
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Playbook
|
4
|
+
module Props
|
5
|
+
class Error < StandardError; end
|
6
|
+
|
7
|
+
class Base
|
8
|
+
attr_reader :default
|
9
|
+
|
10
|
+
def initialize(default: nil)
|
11
|
+
@default = default
|
12
|
+
end
|
13
|
+
|
14
|
+
def value(value)
|
15
|
+
value || @default
|
16
|
+
end
|
17
|
+
|
18
|
+
def validate!(input_value)
|
19
|
+
validate(value(input_value)) || raise(Playbook::Props::Error, "Invalid value (#{input_value.inspect}) for prop (#{inspect})")
|
20
|
+
end
|
21
|
+
|
22
|
+
def validate(_value)
|
23
|
+
true
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Playbook
|
4
|
+
module Props
|
5
|
+
class Enum < Playbook::Props::Base
|
6
|
+
def initialize(values:, **options)
|
7
|
+
super(**options)
|
8
|
+
@values = values
|
9
|
+
end
|
10
|
+
|
11
|
+
def validate(value)
|
12
|
+
@values.include?(value)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|