playbook_ui 4.18.1.pre.alpha1 → 5.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/app/helpers/playbook/pb_sample_helper.rb +1 -1
- data/app/pb_kits/playbook/_playbook.scss +1 -1
- data/app/pb_kits/playbook/data/menu.yml +3 -1
- data/app/pb_kits/playbook/packs/examples.js +2 -0
- data/app/pb_kits/playbook/packs/samples.js +2 -0
- data/app/pb_kits/playbook/pb_caption/_caption.jsx +21 -4
- data/app/pb_kits/playbook/pb_card/_card.scss +1 -72
- data/app/pb_kits/playbook/pb_card/_card_mixin.scss +72 -0
- data/app/pb_kits/playbook/pb_filter/Filter/FiltersPopover.jsx +0 -1
- data/app/pb_kits/playbook/pb_filter/Filter/SortMenu.jsx +1 -1
- data/app/pb_kits/playbook/pb_filter/templates/_default.html.erb +1 -1
- data/app/pb_kits/playbook/pb_installer/_installer.html.erb +16 -0
- data/app/pb_kits/playbook/pb_installer/_installer.jsx +54 -0
- data/app/pb_kits/playbook/pb_installer/_installer.scss +7 -0
- data/app/pb_kits/playbook/pb_installer/docs/_installer_default.html.erb +8 -0
- data/app/pb_kits/playbook/pb_installer/docs/_installer_default.jsx +16 -0
- data/app/pb_kits/playbook/pb_installer/docs/example.yml +9 -0
- data/app/pb_kits/playbook/pb_installer/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_installer/installer.rb +18 -0
- data/app/pb_kits/playbook/pb_layout/_body.html.erb +1 -1
- data/app/pb_kits/playbook/pb_layout/_column.html.erb +7 -0
- data/app/pb_kits/playbook/pb_layout/_layout.jsx +31 -13
- data/app/pb_kits/playbook/pb_layout/_layout.scss +54 -0
- data/app/pb_kits/playbook/pb_layout/body.rb +4 -0
- data/app/pb_kits/playbook/pb_layout/docs/_layout_kanban.html.erb +140 -0
- data/app/pb_kits/playbook/pb_layout/docs/_layout_kanban.jsx +1234 -0
- data/app/pb_kits/playbook/pb_layout/docs/_layout_kanban_responsive.html.erb +57 -0
- data/app/pb_kits/playbook/pb_layout/docs/_layout_kanban_responsive.jsx +46 -0
- data/app/pb_kits/playbook/pb_layout/docs/example.yml +3 -0
- data/app/pb_kits/playbook/pb_layout/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_layout/layout.rb +12 -4
- data/app/pb_kits/playbook/pb_list/_item.html.erb +3 -2
- data/app/pb_kits/playbook/pb_list/_list.html.erb +3 -3
- data/app/pb_kits/playbook/pb_list/_list.jsx +55 -10
- data/app/pb_kits/playbook/pb_list/_list_item.jsx +41 -18
- data/app/pb_kits/playbook/pb_list/docs/_list_borderless.jsx +21 -0
- data/app/pb_kits/playbook/pb_list/docs/_list_dark.jsx +0 -5
- data/app/pb_kits/playbook/pb_list/docs/_list_dark_borderless.jsx +22 -0
- data/app/pb_kits/playbook/pb_list/docs/_list_dark_lg.jsx +22 -0
- data/app/pb_kits/playbook/pb_list/docs/_list_dark_ordered.jsx +22 -0
- data/app/pb_kits/playbook/pb_list/docs/_list_dark_xpadding.jsx +22 -0
- data/app/pb_kits/playbook/pb_list/docs/_list_layout_left.jsx +75 -0
- data/app/pb_kits/playbook/pb_list/docs/_list_layout_right.jsx +75 -0
- data/app/pb_kits/playbook/pb_list/docs/_list_lg.jsx +21 -0
- data/app/pb_kits/playbook/pb_list/docs/_list_ordered.jsx +21 -0
- data/app/pb_kits/playbook/pb_list/docs/_list_xpadding.jsx +21 -0
- data/app/pb_kits/playbook/pb_list/docs/example.yml +12 -1
- data/app/pb_kits/playbook/pb_list/docs/index.js +11 -0
- data/app/pb_kits/playbook/pb_popover/_popover.html.erb +4 -4
- data/app/pb_kits/playbook/pb_popover/_popover.jsx +41 -8
- data/app/pb_kits/playbook/pb_popover/_popover.scss +44 -7
- data/app/pb_kits/playbook/pb_popover/docs/_popover_close.html.erb +42 -0
- data/app/pb_kits/playbook/pb_popover/docs/_popover_close.jsx +99 -0
- data/app/pb_kits/playbook/pb_popover/docs/_popover_default.html.erb +19 -7
- data/app/pb_kits/playbook/pb_popover/docs/_popover_default.jsx +22 -6
- data/app/pb_kits/playbook/pb_popover/docs/_popover_list.html.erb +11 -10
- data/app/pb_kits/playbook/pb_popover/docs/_popover_list.jsx +22 -18
- data/app/pb_kits/playbook/pb_popover/docs/_popover_list.md +1 -0
- data/app/pb_kits/playbook/pb_popover/docs/_popover_scroll_height.html.erb +24 -0
- data/app/pb_kits/playbook/pb_popover/docs/_popover_scroll_height.jsx +56 -0
- data/app/pb_kits/playbook/pb_popover/docs/_popover_z_index.html.erb +14 -0
- data/app/pb_kits/playbook/pb_popover/docs/_popover_z_index.jsx +50 -0
- data/app/pb_kits/playbook/pb_popover/docs/example.yml +12 -8
- data/app/pb_kits/playbook/pb_popover/docs/index.js +3 -3
- data/app/pb_kits/playbook/pb_popover/index.js +18 -9
- data/app/pb_kits/playbook/pb_popover/popover.rb +26 -2
- data/app/pb_kits/playbook/pb_title/_title.html.erb +1 -0
- data/app/pb_kits/playbook/pb_title/_title.jsx +24 -17
- data/app/pb_kits/playbook/props.rb +7 -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/lib/playbook/version.rb +1 -1
- metadata +37 -12
- data/app/pb_kits/playbook/pb_popover/docs/_popover_click_any.html.erb +0 -19
- data/app/pb_kits/playbook/pb_popover/docs/_popover_click_any.jsx +0 -40
- data/app/pb_kits/playbook/pb_popover/docs/_popover_click_inside.html.erb +0 -14
- data/app/pb_kits/playbook/pb_popover/docs/_popover_click_inside.jsx +0 -40
- data/app/pb_kits/playbook/pb_popover/docs/_popover_click_outside.html.erb +0 -14
- data/app/pb_kits/playbook/pb_popover/docs/_popover_click_outside.jsx +0 -40
- data/app/pb_kits/playbook/pb_popover/docs/_popover_with_button.jsx +0 -34
- data/app/pb_kits/playbook/pb_popover/docs/_popover_with_circle.html.erb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d2d56f651849112f219a822c91acbb3509875e03014444c1f4e93dc9f3507d6f
|
4
|
+
data.tar.gz: 98afd071a855e8eff49ea47f56170e219ca3db69f167cadcb5e704fc7f8dc0da
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e55b3425c7341be74aef73641a5972435ea67cfc2fa80b6df50db89b8b13936dd17f2c535a0c9914153da59e2935f11dedceabde3000794b9581dcd8afb16e56
|
7
|
+
data.tar.gz: 9a1eefdce2a9528175c4272b80b05addd29307f0254a691402ca84b70b5dcb05c85cdc81f94ac5a8a12c3fb5c3965fec0066328750a3e252d7dc7dcb9e13c160
|
data/README.md
CHANGED
@@ -9,10 +9,10 @@ Playbook is the first design system built for both Rails & React interfaces. Ins
|
|
9
9
|
|
10
10
|
## Getting started
|
11
11
|
|
12
|
-
1. Run `
|
12
|
+
1. Run `make install`
|
13
13
|
1. Run `make start`
|
14
14
|
1. Install overcommit hooks `bin/overcommit`
|
15
|
-
1. open [http://localhost:
|
15
|
+
1. open [http://localhost:8089](http://localhost:8089)
|
16
16
|
|
17
17
|
To clean up this project from your local machine, run `make stop`, which will drop all containers and networks associated with this project. To purge all resources, do `make clean`, which also removes images and volumes for a blank slate.
|
18
18
|
|
@@ -33,6 +33,7 @@
|
|
33
33
|
@import 'pb_icon_circle/icon_circle';
|
34
34
|
@import 'pb_icon_value/icon_value';
|
35
35
|
@import 'pb_image/image';
|
36
|
+
@import 'pb_installer/installer';
|
36
37
|
@import 'pb_label_pill/label_pill';
|
37
38
|
@import 'pb_label_value/label_value';
|
38
39
|
@import 'pb_layout/layout';
|
@@ -80,4 +81,3 @@
|
|
80
81
|
@import 'pb_time_stacked/time_stacked';
|
81
82
|
@import 'pb_weekday_stacked/weekday_stacked';
|
82
83
|
@import './utilities/spacing';
|
83
|
-
|
@@ -1,6 +1,8 @@
|
|
1
1
|
samples:
|
2
2
|
- dashboards
|
3
3
|
- registration
|
4
|
+
- filter_table
|
5
|
+
|
4
6
|
kits:
|
5
7
|
- avatar
|
6
8
|
- avatar_action_button
|
@@ -39,6 +41,7 @@ kits:
|
|
39
41
|
- icon_circle
|
40
42
|
- icon_value
|
41
43
|
- image
|
44
|
+
- installer
|
42
45
|
- layout
|
43
46
|
- list
|
44
47
|
- loading_inline
|
@@ -88,4 +91,3 @@ kits:
|
|
88
91
|
- title_detail
|
89
92
|
- weekday_stacked
|
90
93
|
- user
|
91
|
-
- user_badge
|
@@ -45,6 +45,7 @@ import * as Icon from 'pb_icon/docs'
|
|
45
45
|
import * as IconCircle from 'pb_icon_circle/docs'
|
46
46
|
import * as IconValue from 'pb_icon_value/docs'
|
47
47
|
import * as Image from 'pb_image/docs'
|
48
|
+
import * as Installer from 'pb_installer/docs'
|
48
49
|
import * as LabelPill from 'pb_label_pill/docs'
|
49
50
|
import * as LabelValue from 'pb_label_value/docs'
|
50
51
|
import * as Layout from 'pb_layout/docs'
|
@@ -124,6 +125,7 @@ WebpackerReact.setup({
|
|
124
125
|
...IconCircle,
|
125
126
|
...IconValue,
|
126
127
|
...Image,
|
128
|
+
...Installer,
|
127
129
|
...LabelPill,
|
128
130
|
...LabelValue,
|
129
131
|
...Layout,
|
@@ -11,7 +11,9 @@ import WebpackerReact from 'webpacker-react'
|
|
11
11
|
// Generated file from kit generator.
|
12
12
|
|
13
13
|
import Dashboards from '../../../views/playbook/samples/dashboards/index.jsx'
|
14
|
+
|
14
15
|
import Registration from '../../../views/playbook/samples/registration/index.jsx'
|
15
16
|
|
16
17
|
WebpackerReact.setup({ Dashboards })
|
18
|
+
WebpackerReact.setup({ FilterTable })
|
17
19
|
WebpackerReact.setup({ Registration })
|
@@ -2,29 +2,37 @@
|
|
2
2
|
|
3
3
|
import React from 'react'
|
4
4
|
import classnames from 'classnames'
|
5
|
-
import { buildCss } from '../utilities/props'
|
5
|
+
import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
|
6
6
|
import { spacing } from '../utilities/spacing.js'
|
7
7
|
|
8
8
|
type CaptionProps = {
|
9
|
+
aria?: object,
|
9
10
|
className?: String,
|
10
11
|
children: Array<React.ReactNode> | React.ReactNode,
|
11
12
|
dark?: Boolean,
|
13
|
+
data?: object,
|
14
|
+
id?: String,
|
12
15
|
size?: "xs" | "sm" | "md" | "lg" | "xl",
|
13
|
-
tag
|
14
|
-
text
|
16
|
+
tag?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "p" | "span" | "div",
|
17
|
+
text?: String,
|
15
18
|
}
|
16
19
|
|
17
20
|
const Caption = (props: CaptionProps) => {
|
18
21
|
const {
|
22
|
+
aria = {},
|
19
23
|
className,
|
20
24
|
children,
|
21
25
|
dark = false,
|
26
|
+
data = {},
|
27
|
+
id,
|
22
28
|
size = 'md',
|
23
29
|
tag = 'div',
|
24
30
|
text,
|
25
31
|
} = props
|
26
32
|
const Tag = `${tag}`
|
27
33
|
|
34
|
+
const ariaProps = buildAriaProps(aria)
|
35
|
+
const dataProps = buildDataProps(data)
|
28
36
|
const css = classnames(
|
29
37
|
buildCss('pb_caption_kit', size, {
|
30
38
|
dark: dark,
|
@@ -33,7 +41,16 @@ const Caption = (props: CaptionProps) => {
|
|
33
41
|
spacing(props)
|
34
42
|
)
|
35
43
|
|
36
|
-
return
|
44
|
+
return (
|
45
|
+
<Tag
|
46
|
+
{...ariaProps}
|
47
|
+
{...dataProps}
|
48
|
+
className={css}
|
49
|
+
id={id}
|
50
|
+
>
|
51
|
+
{text || children}
|
52
|
+
</Tag>
|
53
|
+
)
|
37
54
|
}
|
38
55
|
|
39
56
|
export default Caption
|
@@ -1,75 +1,4 @@
|
|
1
|
-
@import "
|
2
|
-
@import "../tokens/border_radius";
|
3
|
-
@import "../tokens/spacing";
|
4
|
-
@import "../tokens/colors";
|
5
|
-
@import "../tokens/transition";
|
6
|
-
@import "../tokens/animation-curves";
|
7
|
-
|
8
|
-
$pb_card_border_width: 1px;
|
9
|
-
$pb_card_border_radius: $border_rad_heavier;
|
10
|
-
$pb_card_highlight_colors: map-merge(map-merge($status_colors, $product_colors), $category_colors);
|
11
|
-
$pb_card_highlight_size: 4px;
|
12
|
-
$pb_card_header_colors: $category_colors;
|
13
|
-
$pb_card_header_border_radius: $border_rad_heavy;
|
14
|
-
$pb_card_padding:(
|
15
|
-
none: 0,
|
16
|
-
xs: $space_xs,
|
17
|
-
sm: $space_sm,
|
18
|
-
md: $space_md,
|
19
|
-
lg: $space_lg,
|
20
|
-
xl: $space_xl,
|
21
|
-
);
|
22
|
-
|
23
|
-
@mixin pb_card_selected($border_color: $primary) {
|
24
|
-
border-color: $border_color;
|
25
|
-
border-width: $pb_card_border_width * 2;
|
26
|
-
}
|
27
|
-
|
28
|
-
@mixin pb_card_selected_dark {
|
29
|
-
@include pb_card_selected($primary_action);
|
30
|
-
}
|
31
|
-
|
32
|
-
@mixin pb_card($background: $card_light, $border_color: $border_light) {
|
33
|
-
position: relative;
|
34
|
-
display: flex;
|
35
|
-
flex-direction: column;
|
36
|
-
min-width: 0;
|
37
|
-
word-wrap: break-word;
|
38
|
-
background-color: $background;
|
39
|
-
background-clip: border-box;
|
40
|
-
border-width: $pb_card_border_width;
|
41
|
-
border-style: solid;
|
42
|
-
border-color: $border_color;
|
43
|
-
border-radius: $pb_card_border_radius;
|
44
|
-
transition-property: all;
|
45
|
-
transition-duration: $transition_short;
|
46
|
-
transition-timing-function: $easeIn;
|
47
|
-
|
48
|
-
@each $name, $shadow in $box_shadows {
|
49
|
-
&[class*=_#{$name}] {
|
50
|
-
box-shadow: $shadow;
|
51
|
-
}
|
52
|
-
}
|
53
|
-
}
|
54
|
-
|
55
|
-
@mixin pb_card_dark {
|
56
|
-
@include pb_card($card_dark, $border_dark);
|
57
|
-
}
|
58
|
-
|
59
|
-
@mixin pb_card_highlight($width, $height, $background){
|
60
|
-
content: "";
|
61
|
-
position: absolute;
|
62
|
-
top: 0;
|
63
|
-
left: 0;
|
64
|
-
width: $width;
|
65
|
-
height: $height;
|
66
|
-
background: $background;
|
67
|
-
z-index: 10;
|
68
|
-
}
|
69
|
-
|
70
|
-
@mixin pb_card_header_color($category_color) {
|
71
|
-
background: $category_color;
|
72
|
-
}
|
1
|
+
@import "card_mixin";
|
73
2
|
|
74
3
|
|
75
4
|
[class^=pb_card_kit] {
|
@@ -0,0 +1,72 @@
|
|
1
|
+
@import "../tokens/shadows";
|
2
|
+
@import "../tokens/border_radius";
|
3
|
+
@import "../tokens/spacing";
|
4
|
+
@import "../tokens/colors";
|
5
|
+
@import "../tokens/transition";
|
6
|
+
@import "../tokens/animation-curves";
|
7
|
+
|
8
|
+
$pb_card_border_width: 1px;
|
9
|
+
$pb_card_border_radius: $border_rad_heavier;
|
10
|
+
$pb_card_highlight_colors: map-merge(map-merge($status_colors, $product_colors), $category_colors);
|
11
|
+
$pb_card_highlight_size: 4px;
|
12
|
+
$pb_card_header_colors: $category_colors;
|
13
|
+
$pb_card_header_border_radius: $border_rad_heavy;
|
14
|
+
$pb_card_padding:(
|
15
|
+
none: 0,
|
16
|
+
xs: $space_xs,
|
17
|
+
sm: $space_sm,
|
18
|
+
md: $space_md,
|
19
|
+
lg: $space_lg,
|
20
|
+
xl: $space_xl,
|
21
|
+
);
|
22
|
+
|
23
|
+
@mixin pb_card_selected($border_color: $primary) {
|
24
|
+
border-color: $border_color;
|
25
|
+
border-width: $pb_card_border_width * 2;
|
26
|
+
}
|
27
|
+
|
28
|
+
@mixin pb_card_selected_dark {
|
29
|
+
@include pb_card_selected($primary_action);
|
30
|
+
}
|
31
|
+
|
32
|
+
@mixin pb_card($background: $card_light, $border_color: $border_light) {
|
33
|
+
position: relative;
|
34
|
+
display: flex;
|
35
|
+
flex-direction: column;
|
36
|
+
min-width: 0;
|
37
|
+
word-wrap: break-word;
|
38
|
+
background-color: $background;
|
39
|
+
background-clip: border-box;
|
40
|
+
border-width: $pb_card_border_width;
|
41
|
+
border-style: solid;
|
42
|
+
border-color: $border_color;
|
43
|
+
border-radius: $pb_card_border_radius;
|
44
|
+
transition-property: all;
|
45
|
+
transition-duration: $transition_short;
|
46
|
+
transition-timing-function: $easeIn;
|
47
|
+
|
48
|
+
@each $name, $shadow in $box_shadows {
|
49
|
+
&[class*=_#{$name}] {
|
50
|
+
box-shadow: $shadow;
|
51
|
+
}
|
52
|
+
}
|
53
|
+
}
|
54
|
+
|
55
|
+
@mixin pb_card_dark {
|
56
|
+
@include pb_card($card_dark, $border_dark);
|
57
|
+
}
|
58
|
+
|
59
|
+
@mixin pb_card_highlight($width, $height, $background){
|
60
|
+
content: "";
|
61
|
+
position: absolute;
|
62
|
+
top: 0;
|
63
|
+
left: 0;
|
64
|
+
width: $width;
|
65
|
+
height: $height;
|
66
|
+
background: $background;
|
67
|
+
z-index: 10;
|
68
|
+
}
|
69
|
+
|
70
|
+
@mixin pb_card_header_color($category_color) {
|
71
|
+
background: $category_color;
|
72
|
+
}
|
@@ -13,7 +13,7 @@
|
|
13
13
|
<%end%>
|
14
14
|
|
15
15
|
<% if object.template != "filter_only"%>
|
16
|
-
<%= pb_rails("popover", props: {classname: "pb_filter_sort_menu", close_on_click: "outside", trigger_element_id: "sort-button#{object.id}", tooltip_id: "sort-filter-btn-tooltip#{object.id}", position: 'bottom'}) do %>
|
16
|
+
<%= pb_rails("popover", props: {classname: "pb_filter_sort_menu", close_on_click: "outside", trigger_element_id: "sort-button#{object.id}", tooltip_id: "sort-filter-btn-tooltip#{object.id}", position: 'bottom', padding: 'none'}) do %>
|
17
17
|
<%= pb_rails("list") do %>
|
18
18
|
<% object.sort_menu.each do |item| %>
|
19
19
|
<%= pb_rails("list/item") do%> <%= pb_rails("button", props: {variant: "link" ,classname: "p-0", text: item[:item], link: item[:link]}) %><% end %>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<%= content_tag(:div,
|
2
|
+
id: object.id,
|
3
|
+
data: object.data,
|
4
|
+
class: object.classname) do %>
|
5
|
+
<%= pb_rails("body", props: {color: "light" }) do %>
|
6
|
+
<%= pb_rails("caption", props: { text: "Installer" }) %>
|
7
|
+
<%= pb_rails("icon", props: { icon: "truck", fixed_width: true }) %>
|
8
|
+
<% if object.link %>
|
9
|
+
<%= link_to object.link, class: "pb_installer_kit_links" do %>
|
10
|
+
<%= pb_rails("title", props: { text: object.project_name, tag: "span", size: 4 }) %>
|
11
|
+
<% end %>
|
12
|
+
<% else %>
|
13
|
+
<%= pb_rails("title", props: { text: object.project_name, tag: "span", size: 4 }) %>
|
14
|
+
<% end %>
|
15
|
+
<% end %>
|
16
|
+
<% end %>
|
@@ -0,0 +1,54 @@
|
|
1
|
+
/* @flow */
|
2
|
+
|
3
|
+
import React from 'react'
|
4
|
+
import classnames from 'classnames'
|
5
|
+
import { Body, Caption, Icon, Title } from '../'
|
6
|
+
|
7
|
+
const renderProjectName = (link, projectName) => {
|
8
|
+
if (link) {
|
9
|
+
return (
|
10
|
+
<a
|
11
|
+
className="pb_installer_kit_links"
|
12
|
+
href={link}
|
13
|
+
>
|
14
|
+
<Title
|
15
|
+
size={4}
|
16
|
+
tag="span"
|
17
|
+
text={projectName}
|
18
|
+
/>
|
19
|
+
</a>
|
20
|
+
)
|
21
|
+
}
|
22
|
+
|
23
|
+
return (
|
24
|
+
<Title
|
25
|
+
size={4}
|
26
|
+
tag="span"
|
27
|
+
text={projectName}
|
28
|
+
/>
|
29
|
+
)
|
30
|
+
}
|
31
|
+
|
32
|
+
type InstallerProps = {
|
33
|
+
link?: String,
|
34
|
+
projectName: String,
|
35
|
+
}
|
36
|
+
|
37
|
+
const Installer = ({
|
38
|
+
link,
|
39
|
+
projectName,
|
40
|
+
}: InstallerProps) => (
|
41
|
+
<div className={classnames('pb_installer_kit')}>
|
42
|
+
<Body color="light">
|
43
|
+
<Caption text="Installer" />
|
44
|
+
<Icon
|
45
|
+
fixedwidth
|
46
|
+
icon="truck"
|
47
|
+
/>
|
48
|
+
{' '}
|
49
|
+
{renderProjectName(link, projectName)}
|
50
|
+
</Body>
|
51
|
+
</div>
|
52
|
+
)
|
53
|
+
|
54
|
+
export default Installer
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import Installer from '../_installer.jsx'
|
3
|
+
|
4
|
+
const InstallerDefault = () => (
|
5
|
+
<div>
|
6
|
+
<Installer projectName="JD Installations LLC" />
|
7
|
+
<br />
|
8
|
+
<br />
|
9
|
+
<Installer
|
10
|
+
link="#"
|
11
|
+
projectName="JD Installations LLC"
|
12
|
+
/>
|
13
|
+
</div>
|
14
|
+
)
|
15
|
+
|
16
|
+
export default InstallerDefault
|