playbook_ui 5.2.0.pre.alpha4 → 5.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +12 -0
- data/app/assets/images/clark.jpg +0 -0
- data/app/assets/images/giant.jpg +0 -0
- data/app/assets/images/pb-caret.svg +1 -0
- data/app/assets/images/pb-check.svg +11 -0
- data/app/assets/images/pb.logo.svg +28 -0
- data/app/controllers/playbook/application_controller.rb +2 -0
- data/app/controllers/playbook/guides_controller.rb +11 -0
- data/app/controllers/playbook/pages_controller.rb +79 -0
- data/app/controllers/playbook/samples_controller.rb +40 -0
- data/app/pb_kits/playbook/_playbook.scss +1 -1
- data/app/pb_kits/playbook/data/menu.yml +1 -0
- data/app/pb_kits/playbook/index.js +0 -4
- data/app/pb_kits/playbook/packs/application.js +55 -0
- data/app/pb_kits/playbook/packs/examples.js +174 -0
- data/app/pb_kits/playbook/packs/main.scss +12 -0
- data/app/pb_kits/playbook/packs/samples.js +19 -0
- data/app/pb_kits/playbook/packs/site_styles/_samples.scss +72 -0
- data/app/pb_kits/playbook/packs/site_styles/_scaffold.scss +43 -0
- data/app/pb_kits/playbook/packs/site_styles/_site-style.scss +135 -0
- data/app/pb_kits/playbook/packs/site_styles/docs/_all.scss +10 -0
- data/app/pb_kits/playbook/packs/site_styles/docs/_bg_light_doc_example.scss +7 -0
- data/app/pb_kits/playbook/packs/site_styles/docs/_code_snippet.scss +531 -0
- data/app/pb_kits/playbook/packs/site_styles/docs/_color_utilities.scss +92 -0
- data/app/pb_kits/playbook/packs/site_styles/docs/_flex_examples.scss +15 -0
- data/app/pb_kits/playbook/packs/site_styles/docs/_kit_doc.scss +190 -0
- data/app/pb_kits/playbook/packs/site_styles/docs/_kits_examples.scss +18 -0
- data/app/pb_kits/playbook/packs/site_styles/docs/_markdown.scss +82 -0
- data/app/pb_kits/playbook/packs/site_styles/docs/_spacing_tokens.scss +72 -0
- data/app/pb_kits/playbook/pb_badge/_badge.html.erb +1 -0
- data/app/pb_kits/playbook/pb_badge/_badge.jsx +17 -4
- data/app/pb_kits/playbook/pb_body/_body.html.erb +1 -0
- data/app/pb_kits/playbook/pb_body/_body.jsx +33 -24
- data/app/pb_kits/playbook/pb_body/docs/_body_dark.html.erb +1 -1
- data/app/pb_kits/playbook/pb_body/docs/_body_dark.jsx +0 -2
- data/app/pb_kits/playbook/pb_body/docs/_body_light.html.erb +1 -0
- data/app/pb_kits/playbook/pb_body/docs/_body_light.jsx +3 -7
- data/app/pb_kits/playbook/pb_card/_card.jsx +4 -1
- data/app/pb_kits/playbook/pb_card/_card.scss +4 -0
- data/app/pb_kits/playbook/pb_card/card.rb +8 -1
- data/app/pb_kits/playbook/pb_card/docs/_card_border_none.html.erb +7 -0
- data/app/pb_kits/playbook/pb_card/docs/_card_border_none.jsx +14 -0
- data/app/pb_kits/playbook/pb_card/docs/_card_border_none.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_checkbox/_checkbox.html.erb +2 -1
- data/app/pb_kits/playbook/pb_checkbox/_checkbox.jsx +18 -5
- data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_checked.jsx +17 -0
- data/app/pb_kits/playbook/pb_checkbox/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_checkbox/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.html.erb +1 -0
- data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.jsx +17 -1
- data/app/pb_kits/playbook/pb_filter/docs/_description.md +3 -0
- data/app/pb_kits/playbook/pb_filter/templates/_default.html.erb +1 -1
- data/app/pb_kits/playbook/pb_highlight/docs/_highlight_default.html.erb +1 -1
- data/app/pb_kits/playbook/pb_layout/_footer.html.erb +6 -0
- data/app/pb_kits/playbook/pb_layout/_header.html.erb +6 -0
- data/app/pb_kits/playbook/pb_layout/_layout.jsx +33 -1
- data/app/pb_kits/playbook/pb_layout/_layout.scss +48 -3
- data/app/pb_kits/playbook/pb_layout/docs/_layout_collection_detail.html.erb +19 -0
- data/app/pb_kits/playbook/pb_layout/docs/_layout_collection_detail.jsx +54 -0
- data/app/pb_kits/playbook/pb_layout/docs/_layout_collection_detail.md +1 -0
- data/app/pb_kits/playbook/pb_layout/docs/_layout_content.html.erb +28 -0
- data/app/pb_kits/playbook/pb_layout/docs/_layout_content.jsx +42 -0
- data/app/pb_kits/playbook/pb_layout/docs/example.yml +6 -0
- data/app/pb_kits/playbook/pb_layout/docs/index.js +3 -0
- data/app/pb_kits/playbook/pb_layout/footer.rb +19 -0
- data/app/pb_kits/playbook/pb_layout/header.rb +19 -0
- data/app/pb_kits/playbook/pb_layout/layout.rb +9 -4
- data/app/pb_kits/playbook/pb_nav/_item.jsx +20 -10
- data/app/pb_kits/playbook/pb_popover/_popover.html.erb +2 -2
- data/app/pb_kits/playbook/pb_popover/_popover.jsx +3 -3
- data/app/pb_kits/playbook/pb_popover/_popover.scss +25 -21
- data/app/pb_kits/playbook/pb_popover/index.js +6 -1
- data/app/pb_kits/playbook/pb_radio/_radio.scss +4 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default.html.erb +1 -1
- data/app/views/layouts/playbook/_mobile_hamburger.html.erb +2 -0
- data/app/views/layouts/playbook/_nav.html.erb +13 -0
- data/app/views/layouts/playbook/_sidebar.html.erb +52 -0
- data/app/views/layouts/playbook/application.html.slim +22 -0
- data/app/views/layouts/playbook/fullscreen.html.slim +10 -0
- data/app/views/layouts/playbook/grid.html.slim +10 -0
- data/app/views/layouts/playbook/samples.html.erb +18 -0
- data/app/views/playbook/guides/create_kit.html.slim +16 -0
- data/app/views/playbook/guides/create_kit/_file_naming.html.md +2 -0
- data/app/views/playbook/guides/create_kit/_generator.html.md +6 -0
- data/app/views/playbook/guides/create_kit/_kit_examples.html.md +2 -0
- data/app/views/playbook/guides/create_kit/_kit_rails.html.md +2 -0
- data/app/views/playbook/guides/create_kit/_kit_react.html.md +2 -0
- data/app/views/playbook/guides/create_kit/_layout.html.md +2 -0
- data/app/views/playbook/guides/create_kit/_view_objects.html.md +2 -0
- data/app/views/playbook/guides/create_kit/_writing_sass.md +10 -0
- data/app/views/playbook/guides/use_nitro.html.slim +6 -0
- data/app/views/playbook/guides/use_nitro/_local.html.md +2 -0
- data/app/views/playbook/guides/use_nitro/_nitro_components.html.md +2 -0
- data/app/views/playbook/guides/use_nitro/_versions.html.md +2 -0
- data/app/views/playbook/pages/fullscreen.html.slim +10 -0
- data/app/views/playbook/pages/grid.html.slim +2 -0
- data/app/views/playbook/pages/home.html.slim +4 -0
- data/app/views/playbook/pages/kit_category_show.html.erb +14 -0
- data/app/views/playbook/pages/kit_show.html.erb +33 -0
- data/app/views/playbook/pages/kits.html.erb +12 -0
- data/app/views/playbook/pages/principals/_getting_started.html.md +30 -0
- data/app/views/playbook/pages/principles.html.slim +3 -0
- data/app/views/playbook/pages/tokens.html.slim +15 -0
- data/app/views/playbook/pages/tokens/_pb_doc_spacing.html.slim +17 -0
- data/app/views/playbook/pages/utilities.html.slim +116 -0
- data/app/views/playbook/pages/utilities/_pb_doc_color.html.slim +15 -0
- data/app/views/playbook/samples/dashboards/index.html.erb +81 -0
- data/app/views/playbook/samples/dashboards/index.jsx +130 -0
- data/app/views/playbook/samples/filter_table/index.html.erb +348 -0
- data/app/views/playbook/samples/filter_table/index.jsx +433 -0
- data/app/views/playbook/samples/registration/index.html.erb +316 -0
- data/app/views/playbook/samples/registration/index.jsx +476 -0
- data/app/views/playbook/samples/sample_show.html.erb +36 -0
- data/lib/generators/kit/kit_generator.rb +6 -3
- data/lib/generators/kit/templates/kit_html.erb.tt +3 -2
- data/lib/generators/kit/templates/kit_jsx.erb.tt +38 -10
- data/lib/playbook/engine.rb +0 -1
- data/lib/playbook/version.rb +1 -1
- data/lib/tasks/pb_release.rake +0 -3
- metadata +81 -5
- data/app/pb_kits/playbook/tokens/index.scss +0 -12
@@ -0,0 +1,30 @@
|
|
1
|
+
### Getting Started
|
2
|
+
---
|
3
|
+
|
4
|
+
#### Commands to get you started.
|
5
|
+
|
6
|
+
To spin up the app run:
|
7
|
+
|
8
|
+
`make start`
|
9
|
+
|
10
|
+
|
11
|
+
#### Yarn Problems
|
12
|
+
|
13
|
+
If you get an error simular to this:
|
14
|
+
|
15
|
+
|
16
|
+
> ERROR in .scss
|
17
|
+
Module build failed
|
18
|
+
ModuleBuildError: Module build failed sass-loader
|
19
|
+
Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 8.x
|
20
|
+
Found bindings for the following environments:
|
21
|
+
OS X 64-bit with Node.js 8.x
|
22
|
+
This usually happens because your environment has changed since running npm install.
|
23
|
+
Run npm rebuild node-sass to download the binding for your current environment.
|
24
|
+
|
25
|
+
|
26
|
+
First try:
|
27
|
+
|
28
|
+
`make shell && npm rebuild node-sass`
|
29
|
+
|
30
|
+
If that still doesn't work try to delete the node-sass folder and `yarn install`
|
@@ -0,0 +1,15 @@
|
|
1
|
+
= pb_rails("title", props: { text: "Tokens", tag: "h1", size: 1 })
|
2
|
+
|
3
|
+
br
|
4
|
+
|
5
|
+
= pb_rails("title", props: { text: "Spacing", tag: "h3", size: 3 })
|
6
|
+
|
7
|
+
br
|
8
|
+
= render :partial => "playbook/pages/tokens/pb_doc_spacing",
|
9
|
+
locals:{ title: "Spacing Options",
|
10
|
+
usage: "Used for building Kits: Spacing is sized by 8px which serves as the starting point and base that all spacing options follow.",
|
11
|
+
sizes:[{name:"Extra Small",variable:"space_xs"},
|
12
|
+
{name:"Small",variable:"space_sm"},
|
13
|
+
{name:"Medium",variable:"space_md"},
|
14
|
+
{name:"Large",variable:"space_lg"},
|
15
|
+
{name:"Extra Large",variable:"space_xl"}]}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
br
|
2
|
+
= pb_rails("title", props: { text: title, tag: "h4", size: 4 })
|
3
|
+
|
4
|
+
- if defined?(usage) && usage.present?
|
5
|
+
= pb_rails("body", props: {"tag": "p"})
|
6
|
+
usage
|
7
|
+
|
8
|
+
br
|
9
|
+
ul.pb--tokens-spacing
|
10
|
+
- sizes.each do |item|
|
11
|
+
- variable = (defined?(item[:variable]) && !item[:variable].nil?) ? "$#{item[:variable]}" : ""
|
12
|
+
- item[:dark] ||= false
|
13
|
+
- item[:class] ||= item[:variable]
|
14
|
+
|
15
|
+
li class=(item[:dark] == true ? "dark" : "") data-name="#{item[:name]}" data-variable="#{variable}"
|
16
|
+
div
|
17
|
+
div class="pb--spacing_#{item[:class]}"
|
@@ -0,0 +1,116 @@
|
|
1
|
+
= pb_rails("title", props: { text: "Utilities", tag: "h1", size: 1 })
|
2
|
+
|
3
|
+
br
|
4
|
+
= pb_rails("title", props: { text: "Colors", tag: "h3", size: 3 })
|
5
|
+
|
6
|
+
// Text ----------------------------
|
7
|
+
= render :partial => "playbook/pages/utilities/pb_doc_color",
|
8
|
+
locals:{ title: "Text Colors",
|
9
|
+
usage: "Used for text",
|
10
|
+
colors: [{name: "Default", variable: "text_lt_default"},
|
11
|
+
{name: "Light", variable: "text_lt_light"},
|
12
|
+
{name: "Lighter", variable: "text_lt_lighter"},
|
13
|
+
{name: "Default Dk", variable: "text_dk_default", dark: true},
|
14
|
+
{name: "Light Dk", variable: "text_dk_light", dark: true},
|
15
|
+
{name: "Lighter Dk", variable: "text_dk_lighter", dark: true}]}
|
16
|
+
|
17
|
+
// Backgrounds ---------------------
|
18
|
+
= render :partial => "playbook/pages/utilities/pb_doc_color",
|
19
|
+
locals:{ title: "Backgrounds",
|
20
|
+
usage: "Used for backgrounds",
|
21
|
+
colors: [{name: "Bg Light", variable: "bg_light"},
|
22
|
+
{name: "Bg Dark", variable: "bg_dark"},
|
23
|
+
{name: "Bg Gradient", class: "bg_gradient"}]}
|
24
|
+
|
25
|
+
// Cards ---------------------------
|
26
|
+
= render :partial => "playbook/pages/utilities/pb_doc_color",
|
27
|
+
locals:{ title: "Cards",
|
28
|
+
usage: "Used for card backgrounds",
|
29
|
+
colors: [{name: "Card Light", variable: "card_light"},
|
30
|
+
{name: "Card Dark", variable: "card_dark", dark: true}]}
|
31
|
+
|
32
|
+
// Status --------------------------
|
33
|
+
= render :partial => "playbook/pages/utilities/pb_doc_color",
|
34
|
+
locals:{ title: "Status",
|
35
|
+
usage: "Used for status indicators",
|
36
|
+
colors: [{name: "Success", variable: "success"},
|
37
|
+
{name: "Warning", variable: "warning"},
|
38
|
+
{name: "Error", variable: "error"},
|
39
|
+
{name: "Info", variable: "info"},
|
40
|
+
{name: "Neutral", variable: "neutral"}]}
|
41
|
+
|
42
|
+
// Data ----------------------------
|
43
|
+
= render :partial => "playbook/pages/utilities/pb_doc_color",
|
44
|
+
locals:{ title: "Data",
|
45
|
+
usage: "Used in graphs, charts and stats",
|
46
|
+
colors: [{name: "Data 1", variable: "data_1"},
|
47
|
+
{name: "Data 2", variable: "data_2"},
|
48
|
+
{name: "Data 3", variable: "data_3"},
|
49
|
+
{name: "Data 4", variable: "data_4"},
|
50
|
+
{name: "Data 5", variable: "data_5"},
|
51
|
+
{name: "Data 6", variable: "data_6"},
|
52
|
+
{name: "Data 7", variable: "data_7"},
|
53
|
+
{name: "Data 8", variable: "data_8"}]}
|
54
|
+
|
55
|
+
// Actions -------------------------
|
56
|
+
= render :partial => "playbook/pages/utilities/pb_doc_color",
|
57
|
+
locals:{ title: "Actions",
|
58
|
+
usage: "Used for links and action buttons",
|
59
|
+
colors: [{name: "Primary", variable: "primary_action"}]}
|
60
|
+
|
61
|
+
// Active --------------------------
|
62
|
+
= render :partial => "playbook/pages/utilities/pb_doc_color",
|
63
|
+
locals:{ title: "Active",
|
64
|
+
usage: "Used for active or selected states",
|
65
|
+
colors: [{name: "Active Light", variable: "active_light"},
|
66
|
+
{name: "Active Dark", variable: "active_dark", dark: true}]}
|
67
|
+
|
68
|
+
// Border --------------------------
|
69
|
+
= render :partial => "playbook/pages/utilities/pb_doc_color",
|
70
|
+
locals:{ title: "Border",
|
71
|
+
colors: [{name: "Border Light", variable: "border_light"},
|
72
|
+
{name: "Border Dark", variable: "border_dark", dark: true}]}
|
73
|
+
|
74
|
+
// Shadow --------------------------
|
75
|
+
= render :partial => "playbook/pages/utilities/pb_doc_color",
|
76
|
+
locals:{ title: "Shadow",
|
77
|
+
colors: [{name: "Shadow", variable: "shadow"}]}
|
78
|
+
|
79
|
+
// Products ------------------------
|
80
|
+
= render :partial => "playbook/pages/utilities/pb_doc_color",
|
81
|
+
locals:{ title: "Product Colors",
|
82
|
+
usage: "Used for specific product indicators",
|
83
|
+
colors: [{name: "Windows", variable: "windows"},
|
84
|
+
{name: "Siding", variable: "siding"},
|
85
|
+
{name: "Doors", variable: "doors"},
|
86
|
+
{name: "Solar", variable: "solar"},
|
87
|
+
{name: "Roofing", variable: "roofing"},
|
88
|
+
{name: "Gutters", variable: "gutters"},
|
89
|
+
{name: "Attic Insulation", variable: "insulation"}]}
|
90
|
+
|
91
|
+
// Category ------------------------
|
92
|
+
= render :partial => "playbook/pages/utilities/pb_doc_color",
|
93
|
+
locals:{ title: "Category Colors",
|
94
|
+
usage: "Used for categorization",
|
95
|
+
colors: [{name: "Category 1", variable: "category_1"},
|
96
|
+
{name: "Category 2", variable: "category_2"},
|
97
|
+
{name: "Category 3", variable: "category_3"},
|
98
|
+
{name: "Category 4", variable: "category_4"},
|
99
|
+
{name: "Category 5", variable: "category_5"},
|
100
|
+
{name: "Category 6", variable: "category_6"},
|
101
|
+
{name: "Category 7", variable: "category_7"},
|
102
|
+
{name: "Category 8", variable: "category_8"},
|
103
|
+
{name: "Category 9", variable: "category_9"},
|
104
|
+
{name: "Category 10", variable: "category_10"},
|
105
|
+
{name: "Category 11", variable: "category_11"},
|
106
|
+
{name: "Category 12", variable: "category_12"},
|
107
|
+
{name: "Category 13", variable: "category_13"},
|
108
|
+
{name: "Category 14", variable: "category_14"},
|
109
|
+
{name: "Category 15", variable: "category_15"},
|
110
|
+
{name: "Category 16", variable: "category_16"},
|
111
|
+
{name: "Category 17", variable: "category_17"},
|
112
|
+
{name: "Category 18", variable: "category_18"},
|
113
|
+
{name: "Category 19", variable: "category_19"},
|
114
|
+
{name: "Category 20", variable: "category_20"},
|
115
|
+
{name: "Category 21", variable: "category_21"}]}
|
116
|
+
|
@@ -0,0 +1,15 @@
|
|
1
|
+
|
2
|
+
br
|
3
|
+
= pb_rails("title", props: { text: title, tag: "h4", size: 4 })
|
4
|
+
- if defined?(usage) && usage.present?
|
5
|
+
= pb_rails("body", props: {"tag": "p"})
|
6
|
+
usage
|
7
|
+
|
8
|
+
ul.pb--utlities-color
|
9
|
+
- colors.each do |item|
|
10
|
+
- variable = (defined?(item[:variable]) && !item[:variable].nil?) ? "$#{item[:variable]}" : ""
|
11
|
+
- item[:dark] ||= false
|
12
|
+
- item[:class] ||= item[:variable]
|
13
|
+
|
14
|
+
li class=(item[:dark] == true ? "dark" : "") data-name="#{item[:name]}" data-variable="#{variable}"
|
15
|
+
div class="pb--color_#{item[:class]}"
|
@@ -0,0 +1,81 @@
|
|
1
|
+
<%= pb_rails("layout", props: {full: true, position: "left", size: "xl", collapse: "md"}) do %>
|
2
|
+
<%= pb_rails("layout/sidebar") do %>
|
3
|
+
<br>
|
4
|
+
<%= pb_rails("user", props: {
|
5
|
+
name: "Jon Zazula",
|
6
|
+
title: "User Experience Designer",
|
7
|
+
orientation: "horizontal",
|
8
|
+
align: "left",
|
9
|
+
margin_left: "md",
|
10
|
+
size: "md",
|
11
|
+
avatar_url: "https://s3-hq-f5.powerhrg.com/nitro-production/avatars/55553/badge/business-technology-jonathan-zazula.jpg?AWSAccessKeyId=IWSW00NEQHMEYQTLZ7E9&Signature=S0EN3l5sfIr7yk442Q2MeledXGc%3D&Expires=3161514974"
|
12
|
+
}) %>
|
13
|
+
|
14
|
+
<br>
|
15
|
+
<hr style="height:1px;border:none;color:#e4e8f0;background-color:#e4e8f0;margin: 15px;" />
|
16
|
+
|
17
|
+
<%= pb_rails("nav", props: {variant: "subtle"}) do %>
|
18
|
+
<%= pb_rails("nav/item", props: { icon_left: "city", text: "City", link: "#" }) %>
|
19
|
+
<%= pb_rails("nav/item", props: { icon_left: "user-friends", text: "People", link: "#", icon_right: "angle-down" }) %>
|
20
|
+
<%= pb_rails("nav/item", props: { icon_left: "user-tie", text: "Growth Dashboard", link: "#", active: true }) %>
|
21
|
+
<%= pb_rails("nav/item", props: { icon_left: "clock", text: "History", link: "#" }) %>
|
22
|
+
<%= pb_rails("nav/item", props: { icon_left: "clipboard", text: "Memos", link: "#", icon_right: "angle-down" }) %>
|
23
|
+
<%= pb_rails("nav/item", props: { icon_left: "phone", text: "Contacts", link: "#" }) %>
|
24
|
+
<% end %>
|
25
|
+
<% end %>
|
26
|
+
|
27
|
+
<%= pb_rails("layout/body") do %>
|
28
|
+
|
29
|
+
<% data = [{
|
30
|
+
name: 'Installation',
|
31
|
+
data: [154175]
|
32
|
+
}, {
|
33
|
+
name: 'Manufacturing',
|
34
|
+
data: [40434]
|
35
|
+
}, {
|
36
|
+
name: 'Sales & Distribution',
|
37
|
+
data: [39387]
|
38
|
+
}, {
|
39
|
+
name: 'Project Development',
|
40
|
+
data: [34227]
|
41
|
+
}, {
|
42
|
+
name: 'Other',
|
43
|
+
data: [18111]
|
44
|
+
}] %>
|
45
|
+
|
46
|
+
<%= pb_rails("bar_graph", props: {
|
47
|
+
axis_title: 'Number of Employees',
|
48
|
+
chart_data: data,
|
49
|
+
id: "bar-test",
|
50
|
+
point_start: 2012,
|
51
|
+
subtitle: 'Source: thesolarfoundation.com',
|
52
|
+
title: 'Solar Employment Growth by Sector, 2010-2016',
|
53
|
+
padding_top: "md"
|
54
|
+
}) %>
|
55
|
+
|
56
|
+
<% data2 = [{
|
57
|
+
name: 'Installation',
|
58
|
+
data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175]
|
59
|
+
}, {
|
60
|
+
name: 'Manufacturing',
|
61
|
+
data: [24916, 24064, 29742, 29851, 32490, 30282, 38121, 40434]
|
62
|
+
}, {
|
63
|
+
name: 'Sales & Distribution',
|
64
|
+
data: [11744, 17722, 16005, 19771, 20185, 24377, 32147, 39387]
|
65
|
+
}, {
|
66
|
+
name: 'Project Development',
|
67
|
+
data: [nil, nil, 7988, 12169, 15112, 22452, 34400, 34227]
|
68
|
+
}, {
|
69
|
+
name: 'Other',
|
70
|
+
data: [12908, 5948, 8105, 11248, 8989, 11816, 18274, 18111]
|
71
|
+
}] %>
|
72
|
+
|
73
|
+
<%= pb_rails("line_graph", props: { id: "line-test", gradient: false, chart_data: data2, point_start: 1, title: 'Solar Employment Growth by Sector, 2010-2016', subtitle: 'Source: thesolarfoundation.com', axis_title: 'Number of Employees' } ) %>
|
74
|
+
<% end %>
|
75
|
+
<% end %>
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
|
@@ -0,0 +1,130 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { BarGraph, LineGraph, Nav, User } from '../../../../pb_kits/playbook'
|
3
|
+
import NavItem from '../../../../pb_kits/playbook/pb_nav/_item.jsx'
|
4
|
+
|
5
|
+
const chartData = [
|
6
|
+
{
|
7
|
+
name: 'Installation',
|
8
|
+
data: [154175],
|
9
|
+
},
|
10
|
+
{
|
11
|
+
name: 'Manufacturing',
|
12
|
+
data: [40434],
|
13
|
+
},
|
14
|
+
{
|
15
|
+
name: 'Sales & Distribution',
|
16
|
+
data: [39387],
|
17
|
+
},
|
18
|
+
{
|
19
|
+
name: 'Project Development',
|
20
|
+
data: [34227],
|
21
|
+
},
|
22
|
+
{
|
23
|
+
name: 'Other',
|
24
|
+
data: [18111],
|
25
|
+
},
|
26
|
+
]
|
27
|
+
|
28
|
+
const chartData2 = [
|
29
|
+
{
|
30
|
+
name: 'Installation',
|
31
|
+
data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175],
|
32
|
+
},
|
33
|
+
{
|
34
|
+
name: 'Manufacturing',
|
35
|
+
data: [24916, 24064, 29742, 29851, 32490, 30282, 38121, 40434],
|
36
|
+
},
|
37
|
+
{
|
38
|
+
name: 'Sales & Distribution',
|
39
|
+
data: [11744, 17722, 16005, 19771, 20185, 24377, 32147, 39387],
|
40
|
+
},
|
41
|
+
{
|
42
|
+
name: 'Project Development',
|
43
|
+
data: [null, null, 7988, 12169, 15112, 22452, 34400, 34227],
|
44
|
+
},
|
45
|
+
{
|
46
|
+
name: 'Other',
|
47
|
+
data: [12908, 5948, 8105, 11248, 8989, 11816, 18274, 18111],
|
48
|
+
},
|
49
|
+
]
|
50
|
+
|
51
|
+
const Dashboards = () => (
|
52
|
+
<div>
|
53
|
+
<div className="pb_layout_kit_size_xl_left_light full layout_left_collapse_md">
|
54
|
+
<div className="layout_sidebar">
|
55
|
+
<br />
|
56
|
+
<User
|
57
|
+
align="left"
|
58
|
+
avatarUrl="https://s3-hq-f5.powerhrg.com/nitro-production/avatars/55553/badge/business-technology-jonathan-zazula.jpg?AWSAccessKeyId=IWSW00NEQHMEYQTLZ7E9&Signature=S0EN3l5sfIr7yk442Q2MeledXGc%3D&Expires=3161514974"
|
59
|
+
name="Jon Zazula"
|
60
|
+
orientation="horizontal"
|
61
|
+
size="md"
|
62
|
+
title="User Experience Designer"
|
63
|
+
/>
|
64
|
+
<br />
|
65
|
+
<hr
|
66
|
+
style={{
|
67
|
+
height: '1px',
|
68
|
+
border: 'none',
|
69
|
+
color: '#e4e8f0',
|
70
|
+
backgroundColor: '#e4e8f0',
|
71
|
+
margin: '15px',
|
72
|
+
}}
|
73
|
+
/>
|
74
|
+
<Nav variant="subtle">
|
75
|
+
<NavItem
|
76
|
+
iconLeft="city"
|
77
|
+
link="#"
|
78
|
+
text="City"
|
79
|
+
/>
|
80
|
+
<NavItem
|
81
|
+
iconLeft="user-friends"
|
82
|
+
link="#"
|
83
|
+
text="People"
|
84
|
+
/>
|
85
|
+
<NavItem
|
86
|
+
active
|
87
|
+
iconLeft="user-tie"
|
88
|
+
link="#"
|
89
|
+
text="Growth Dashboard"
|
90
|
+
/>
|
91
|
+
<NavItem
|
92
|
+
iconLeft="clock"
|
93
|
+
link="#"
|
94
|
+
text="History"
|
95
|
+
/>
|
96
|
+
<NavItem
|
97
|
+
iconLeft="clipboard"
|
98
|
+
link="#"
|
99
|
+
text="Memos"
|
100
|
+
/>
|
101
|
+
<NavItem
|
102
|
+
iconLeft="phone"
|
103
|
+
link="#"
|
104
|
+
text="Contacts"
|
105
|
+
/>
|
106
|
+
</Nav>
|
107
|
+
</div>
|
108
|
+
<div className="layout_body">
|
109
|
+
<BarGraph
|
110
|
+
axisTitle="Number of Employees"
|
111
|
+
chartData={chartData}
|
112
|
+
id="bar-test"
|
113
|
+
pointStart={2012}
|
114
|
+
subTitle="Source: thesolarfoundation.com"
|
115
|
+
title="Solar Employment Growth by Sector, 2010-2016"
|
116
|
+
/>
|
117
|
+
<LineGraph
|
118
|
+
axisTitle="Number of Employees"
|
119
|
+
chartData={chartData2}
|
120
|
+
id="line-test"
|
121
|
+
pointStart={1}
|
122
|
+
subTitle="Source: thesolarfoundation.com"
|
123
|
+
title="Solar Employment Growth by Sector, 2010-2016"
|
124
|
+
/>
|
125
|
+
</div>
|
126
|
+
</div>
|
127
|
+
</div>
|
128
|
+
)
|
129
|
+
|
130
|
+
export default Dashboards
|
@@ -0,0 +1,348 @@
|
|
1
|
+
<!-- START TOP AREA -->
|
2
|
+
<%= pb_rails("flex", props: {classname: "flex-container", spacing: "between", margin_top: "md", margin_x: "md" }) do %>
|
3
|
+
<%= pb_rails("flex/flex_item") do %>
|
4
|
+
<%= pb_rails("title", props: { text: "Prospective Clients", tag: "h3", size: 3 }) %>
|
5
|
+
<% end %>
|
6
|
+
<%= pb_rails("flex/flex_item") do %>
|
7
|
+
<%= pb_rails("button", props: { text: "Add Client" }) %>
|
8
|
+
<% end %>
|
9
|
+
<% end %>
|
10
|
+
<!-- END TOP AREA -->
|
11
|
+
|
12
|
+
<!-- START FILTER -->
|
13
|
+
<%= pb_rails("filter", props: {
|
14
|
+
id:"2",
|
15
|
+
filters: [
|
16
|
+
{name: "start date", value: "Aug 01, 2020"},
|
17
|
+
{name: "end date", value: "Aug 03, 2020"}
|
18
|
+
|
19
|
+
],
|
20
|
+
sort_menu: [
|
21
|
+
{item:"Date Created", link:"#", active: true, direction:"desc"},
|
22
|
+
{item:"Assignee", link:"#", active: false},
|
23
|
+
{item:"Contact", link:"#", active: false},
|
24
|
+
{item:"Inquiry Source", link:"#", active: false},
|
25
|
+
|
26
|
+
],
|
27
|
+
results: 546,
|
28
|
+
template: "single",
|
29
|
+
margin_y: "md",
|
30
|
+
margin_x: "md"
|
31
|
+
}) do%>
|
32
|
+
<%
|
33
|
+
example_collection = [
|
34
|
+
OpenStruct.new(name: "Alabama", value: 1),
|
35
|
+
OpenStruct.new(name: "Alaska", value: 2),
|
36
|
+
OpenStruct.new(name: "Arizona", value: 3),
|
37
|
+
OpenStruct.new(name: "Arkansas", value: 4),
|
38
|
+
OpenStruct.new(name: "California", value: 5),
|
39
|
+
OpenStruct.new(name: "Colorado", value: 6),
|
40
|
+
OpenStruct.new(name: "Connecticut", value: 7),
|
41
|
+
OpenStruct.new(name: "Delaware", value: 8),
|
42
|
+
OpenStruct.new(name: "Florida", value: 9),
|
43
|
+
OpenStruct.new(name: "Georgia", value: 10),
|
44
|
+
]
|
45
|
+
%>
|
46
|
+
|
47
|
+
<%= pb_rails("form", props: { form_system_options: { scope: :example, method: :get } }) do |form| %>
|
48
|
+
|
49
|
+
<%= pb_rails("flex") do %>
|
50
|
+
<%= pb_rails("body", props: {classname: "flex-item"}) do %>
|
51
|
+
<%= pb_rails("text_input", props: { label: "Start Date", value: "Aug 01, 2020", margin_right: "sm" }) %>
|
52
|
+
<% end %>
|
53
|
+
<%= pb_rails("body", props: {classname: "flex-item"}) do %>
|
54
|
+
<%= pb_rails("text_input", props: { label: "End Date", value: "Aug 3, 2020" }) %>
|
55
|
+
<% end %>
|
56
|
+
<% end %>
|
57
|
+
|
58
|
+
<%= form.actions do |action| %>
|
59
|
+
|
60
|
+
<%= pb_rails("flex", props: {classname: "flex-container", spacing: "between"}) do %>
|
61
|
+
<%= pb_rails("flex/flex_item") do %>
|
62
|
+
<%= action.submit props: { text: "Apply", data: { disable_with: "<i class='far fa-spinner fa-spin mr-3'></i>Searching...".html_safe },}%>
|
63
|
+
<% end %>
|
64
|
+
<%= pb_rails("flex/flex_item") do %>
|
65
|
+
<%= action.button props: { type: "reset", text: "Clear", variant: "secondary" } %>
|
66
|
+
<% end %>
|
67
|
+
<% end %>
|
68
|
+
|
69
|
+
|
70
|
+
<% end %>
|
71
|
+
<% end %>
|
72
|
+
|
73
|
+
<% end %>
|
74
|
+
<!-- END FILTER -->
|
75
|
+
|
76
|
+
<!-- START TABlE -->
|
77
|
+
|
78
|
+
<%= pb_rails("flex", props: {orientation: "column", horizontal: "stretch", margin_x: "md"}) do %>
|
79
|
+
<%= pb_rails("table", props: { size: "sm" }) do %>
|
80
|
+
<thead>
|
81
|
+
<tr>
|
82
|
+
<th>Contact</th>
|
83
|
+
<th>Date Created</th>
|
84
|
+
<th>Inquiry Source</th>
|
85
|
+
<th>Lead Status</th>
|
86
|
+
<th>Quote</th>
|
87
|
+
<th>Assignee</th>
|
88
|
+
<th>Actions</th>
|
89
|
+
</tr>
|
90
|
+
</thead>
|
91
|
+
<tbody>
|
92
|
+
<tr>
|
93
|
+
<td>
|
94
|
+
<%= pb_rails("person_contact", props: {
|
95
|
+
first_name: "Jesse",
|
96
|
+
last_name: "Cortez",
|
97
|
+
contacts: [
|
98
|
+
{
|
99
|
+
contact_type: "cell",
|
100
|
+
contact_value: "3832919348"
|
101
|
+
},
|
102
|
+
{
|
103
|
+
contact_type: "email",
|
104
|
+
contact_value: "jesse.cortez@gmail.com"
|
105
|
+
}
|
106
|
+
]
|
107
|
+
}) %>
|
108
|
+
</td>
|
109
|
+
<td>
|
110
|
+
<%= pb_rails("date", props: { date: "2012-08-02T15:49:29Z", size: "xs" }) %>
|
111
|
+
</td>
|
112
|
+
<td>
|
113
|
+
<%= pb_rails("body", props: { text: "Email" }) %>
|
114
|
+
<%= pb_rails("caption", props: { text: "hello@companyname.com", size: 'xs' }) %>
|
115
|
+
</td>
|
116
|
+
<td>
|
117
|
+
<%= pb_rails("progress_pills", props: { steps: 4, active: 0, title:"Status:", value:"Not Started" }) %>
|
118
|
+
</td>
|
119
|
+
<td>
|
120
|
+
<%= pb_rails("currency", props: { amount: "729.63", size: "sm" }) %>
|
121
|
+
</td>
|
122
|
+
<td>
|
123
|
+
<%= pb_rails("body", props: { text: "Unassigned" }) %>
|
124
|
+
</td>
|
125
|
+
<td>
|
126
|
+
<%= pb_rails("circle_icon_button", props: { variant: "secondary", icon: "ellipsis-h" }) %>
|
127
|
+
</td>
|
128
|
+
</tr>
|
129
|
+
<tr>
|
130
|
+
<td>
|
131
|
+
<%= pb_rails("person_contact", props: {
|
132
|
+
first_name: "Bill",
|
133
|
+
last_name: "Buchanan",
|
134
|
+
contacts: [
|
135
|
+
{
|
136
|
+
contact_type: "cell",
|
137
|
+
contact_value: "8313455824"
|
138
|
+
},
|
139
|
+
{
|
140
|
+
contact_type: "email",
|
141
|
+
contact_value: "billbuch@yahoo.com"
|
142
|
+
}
|
143
|
+
]
|
144
|
+
}) %>
|
145
|
+
</td>
|
146
|
+
<td>
|
147
|
+
<%= pb_rails("date", props: { date: "2012-08-02T15:49:29Z", size: "xs" }) %>
|
148
|
+
</td>
|
149
|
+
<td>
|
150
|
+
<%= pb_rails("body", props: { text: "Social Media" }) %>
|
151
|
+
<%= pb_rails("caption", props: { text: "Facebook", size: 'xs' }) %>
|
152
|
+
</td>
|
153
|
+
<td>
|
154
|
+
<%= pb_rails("progress_pills", props: { steps: 4, active: 3, title:"Status:", value:"Negotiation" }) %>
|
155
|
+
</td>
|
156
|
+
<td>
|
157
|
+
<%= pb_rails("currency", props: { amount: "534.40", size: "sm" }) %>
|
158
|
+
</td>
|
159
|
+
<td>
|
160
|
+
<%= pb_rails("user", props: {
|
161
|
+
name: "Anna Black",
|
162
|
+
title: "Project Coordinator",
|
163
|
+
orientation: "horizontal",
|
164
|
+
align: "left",
|
165
|
+
avatar_url: "https://randomuser.me/api/portraits/women/44.jpg"
|
166
|
+
}) %>
|
167
|
+
</td>
|
168
|
+
<td>
|
169
|
+
<%= pb_rails("circle_icon_button", props: { variant: "secondary", icon: "ellipsis-h" }) %>
|
170
|
+
</td>
|
171
|
+
</tr>
|
172
|
+
<tr>
|
173
|
+
<td>
|
174
|
+
<%= pb_rails("person_contact", props: {
|
175
|
+
first_name: "Effie",
|
176
|
+
last_name: "Guzman",
|
177
|
+
contacts: [
|
178
|
+
{
|
179
|
+
contact_type: "cell",
|
180
|
+
contact_value: "1582430782"
|
181
|
+
},
|
182
|
+
{
|
183
|
+
contact_type: "email",
|
184
|
+
contact_value: "effieguzman@comcast.net"
|
185
|
+
}
|
186
|
+
]
|
187
|
+
}) %>
|
188
|
+
</td>
|
189
|
+
<td>
|
190
|
+
<%= pb_rails("date", props: { date: "2012-08-02T15:49:29Z", size: "xs" }) %>
|
191
|
+
</td>
|
192
|
+
<td>
|
193
|
+
<%= pb_rails("body", props: { text: "Online Quote" }) %>
|
194
|
+
<%= pb_rails("caption", props: { text: "Landing Page", size: 'xs' }) %>
|
195
|
+
</td>
|
196
|
+
<td>
|
197
|
+
<%= pb_rails("progress_pills", props: { steps: 4, active: 4, title:"Status:", value:"Contract" }) %>
|
198
|
+
</td>
|
199
|
+
<td>
|
200
|
+
<%= pb_rails("currency", props: { amount: "392.26", size: "sm" }) %>
|
201
|
+
</td>
|
202
|
+
<td>
|
203
|
+
<%= pb_rails("user", props: {
|
204
|
+
name: "Anna Black",
|
205
|
+
title: "Project Coordinator",
|
206
|
+
orientation: "horizontal",
|
207
|
+
align: "left",
|
208
|
+
avatar_url: "https://randomuser.me/api/portraits/women/44.jpg"
|
209
|
+
}) %>
|
210
|
+
</td>
|
211
|
+
<td>
|
212
|
+
<%= pb_rails("circle_icon_button", props: { variant: "secondary", icon: "ellipsis-h" }) %>
|
213
|
+
</td>
|
214
|
+
</tr>
|
215
|
+
<tr>
|
216
|
+
<td>
|
217
|
+
<%= pb_rails("person_contact", props: {
|
218
|
+
first_name: "Rodney",
|
219
|
+
last_name: "Boone",
|
220
|
+
contacts: [
|
221
|
+
{
|
222
|
+
contact_type: "cell",
|
223
|
+
contact_value: "3859275970"
|
224
|
+
},
|
225
|
+
{
|
226
|
+
contact_type: "email",
|
227
|
+
contact_value: "rodneyboone@gmail.com"
|
228
|
+
}
|
229
|
+
]
|
230
|
+
}) %>
|
231
|
+
</td>
|
232
|
+
<td>
|
233
|
+
<%= pb_rails("date", props: { date: "2012-08-02T15:49:29Z", size: "xs" }) %>
|
234
|
+
</td>
|
235
|
+
<td>
|
236
|
+
<%= pb_rails("body", props: { text: "Internal" }) %>
|
237
|
+
<%= pb_rails("caption", props: { text: "Referral", size: 'xs' }) %>
|
238
|
+
</td>
|
239
|
+
<td>
|
240
|
+
<%= pb_rails("progress_pills", props: { steps: 4, active: 4, title:"Status:", value:"Contract" }) %>
|
241
|
+
</td>
|
242
|
+
<td>
|
243
|
+
<%= pb_rails("currency", props: { amount: "342.86", size: "sm" }) %>
|
244
|
+
</td>
|
245
|
+
<td>
|
246
|
+
<%= pb_rails("user", props: {
|
247
|
+
name: "Anna Black",
|
248
|
+
title: "Project Coordinator",
|
249
|
+
orientation: "horizontal",
|
250
|
+
align: "left",
|
251
|
+
avatar_url: "https://randomuser.me/api/portraits/women/44.jpg"
|
252
|
+
}) %>
|
253
|
+
</td>
|
254
|
+
<td>
|
255
|
+
<%= pb_rails("circle_icon_button", props: { variant: "secondary", icon: "ellipsis-h" }) %>
|
256
|
+
</td>
|
257
|
+
</tr>
|
258
|
+
<tr>
|
259
|
+
<td>
|
260
|
+
<%= pb_rails("person_contact", props: {
|
261
|
+
first_name: "Barbara",
|
262
|
+
last_name: "Maxwell",
|
263
|
+
contacts: [
|
264
|
+
{
|
265
|
+
contact_type: "cell",
|
266
|
+
contact_value: "2849186943"
|
267
|
+
},
|
268
|
+
{
|
269
|
+
contact_type: "email",
|
270
|
+
contact_value: "barbaramaxwell4@yahoo.com"
|
271
|
+
}
|
272
|
+
]
|
273
|
+
}) %>
|
274
|
+
</td>
|
275
|
+
<td>
|
276
|
+
<%= pb_rails("date", props: { date: "2012-08-02T15:49:29Z", size: "xs" }) %>
|
277
|
+
</td>
|
278
|
+
<td>
|
279
|
+
<%= pb_rails("body", props: { text: "Online Quote" }) %>
|
280
|
+
<%= pb_rails("caption", props: { text: "Main Website", size: 'xs' }) %>
|
281
|
+
</td>
|
282
|
+
<td>
|
283
|
+
<%= pb_rails("progress_pills", props: { steps: 4, active: 3, title:"Status:", value:"Negotiation" }) %>
|
284
|
+
</td>
|
285
|
+
<td>
|
286
|
+
<%= pb_rails("currency", props: { amount: "145.01", size: "sm" }) %>
|
287
|
+
</td>
|
288
|
+
<td>
|
289
|
+
<%= pb_rails("user", props: {
|
290
|
+
name: "Anna Black",
|
291
|
+
title: "Project Coordinator",
|
292
|
+
orientation: "horizontal",
|
293
|
+
align: "left",
|
294
|
+
avatar_url: "https://randomuser.me/api/portraits/women/44.jpg"
|
295
|
+
}) %>
|
296
|
+
</td>
|
297
|
+
<td>
|
298
|
+
<%= pb_rails("circle_icon_button", props: { variant: "secondary", icon: "ellipsis-h" }) %>
|
299
|
+
</td>
|
300
|
+
</tr>
|
301
|
+
<tr>
|
302
|
+
<td>
|
303
|
+
<%= pb_rails("person_contact", props: {
|
304
|
+
first_name: "Ellen",
|
305
|
+
last_name: "Thornton",
|
306
|
+
contacts: [
|
307
|
+
{
|
308
|
+
contact_type: "cell",
|
309
|
+
contact_value: "6884927492"
|
310
|
+
},
|
311
|
+
{
|
312
|
+
contact_type: "email",
|
313
|
+
contact_value: "ellen.thornton@gmail.com"
|
314
|
+
}
|
315
|
+
]
|
316
|
+
}) %>
|
317
|
+
</td>
|
318
|
+
<td>
|
319
|
+
<%= pb_rails("date", props: { date: "2012-08-02T15:49:29Z", size: "xs" }) %>
|
320
|
+
</td>
|
321
|
+
<td>
|
322
|
+
<%= pb_rails("body", props: { text: "Social Media" }) %>
|
323
|
+
<%= pb_rails("caption", props: { text: "Instagram", size: 'xs' }) %>
|
324
|
+
</td>
|
325
|
+
<td>
|
326
|
+
<%= pb_rails("progress_pills", props: { steps: 4, active: 3, title:"Status:", value:"Negotiation" }) %>
|
327
|
+
</td>
|
328
|
+
<td>
|
329
|
+
<%= pb_rails("currency", props: { amount: "25.27", size: "sm" }) %>
|
330
|
+
</td>
|
331
|
+
<td>
|
332
|
+
<%= pb_rails("user", props: {
|
333
|
+
name: "Anna Black",
|
334
|
+
title: "Project Coordinator",
|
335
|
+
orientation: "horizontal",
|
336
|
+
align: "left",
|
337
|
+
avatar_url: "https://randomuser.me/api/portraits/women/44.jpg"
|
338
|
+
}) %>
|
339
|
+
</td>
|
340
|
+
<td>
|
341
|
+
<%= pb_rails("circle_icon_button", props: { variant: "secondary", icon: "ellipsis-h" }) %>
|
342
|
+
</td>
|
343
|
+
</tr>
|
344
|
+
</tbody>
|
345
|
+
<% end %>
|
346
|
+
<% end %>
|
347
|
+
|
348
|
+
<!-- END TABLE -->
|