playbook_ui 3.0.1 → 3.1.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 +4 -0
- data/app/pb_kits/playbook/index.js +60 -126
- data/app/pb_kits/playbook/kits/pb_avatar.js +3 -3
- data/app/pb_kits/playbook/kits/pb_badge.js +3 -3
- data/app/pb_kits/playbook/kits/pb_bar_graph.js +3 -3
- data/app/pb_kits/playbook/kits/pb_body.js +3 -3
- data/app/pb_kits/playbook/kits/pb_button.js +3 -3
- data/app/pb_kits/playbook/kits/pb_caption.js +3 -3
- data/app/pb_kits/playbook/kits/pb_card.js +3 -3
- data/app/pb_kits/playbook/kits/pb_checkbox.js +3 -3
- data/app/pb_kits/playbook/kits/pb_circle_icon_button.js +3 -3
- data/app/pb_kits/playbook/kits/pb_contact.js +3 -3
- data/app/pb_kits/playbook/kits/pb_currency.js +3 -3
- data/app/pb_kits/playbook/kits/pb_dashboard_value.js +3 -3
- data/app/pb_kits/playbook/kits/pb_date.js +3 -3
- data/app/pb_kits/playbook/kits/pb_date_range_inline.js +3 -3
- data/app/pb_kits/playbook/kits/pb_date_stacked.js +3 -3
- data/app/pb_kits/playbook/kits/pb_date_year_stacked.js +3 -3
- data/app/pb_kits/playbook/kits/pb_distribution_bar.js +3 -3
- data/app/pb_kits/playbook/kits/pb_fixed_confirmation_toast.js +3 -3
- data/app/pb_kits/playbook/kits/pb_hashtag.js +3 -3
- data/app/pb_kits/playbook/kits/pb_home_address_street.js +3 -3
- data/app/pb_kits/playbook/kits/pb_icon.js +3 -3
- data/app/pb_kits/playbook/kits/pb_icon_circle.js +3 -3
- data/app/pb_kits/playbook/kits/pb_icon_value.js +3 -3
- data/app/pb_kits/playbook/kits/pb_image.js +3 -4
- data/app/pb_kits/playbook/kits/pb_label_pill.js +3 -3
- data/app/pb_kits/playbook/kits/pb_label_value.js +3 -3
- data/app/pb_kits/playbook/kits/pb_layout.js +3 -3
- data/app/pb_kits/playbook/kits/pb_line_graph.js +3 -3
- data/app/pb_kits/playbook/kits/pb_list.js +3 -3
- data/app/pb_kits/playbook/kits/pb_loading_inline.js +3 -3
- data/app/pb_kits/playbook/kits/pb_message.js +3 -3
- data/app/pb_kits/playbook/kits/pb_multiple_users.js +3 -3
- data/app/pb_kits/playbook/kits/pb_nav.js +3 -3
- data/app/pb_kits/playbook/kits/pb_online_status.js +3 -3
- data/app/pb_kits/playbook/kits/pb_person.js +3 -3
- data/app/pb_kits/playbook/kits/pb_person_contact.js +3 -3
- data/app/pb_kits/playbook/kits/pb_pill.js +3 -3
- data/app/pb_kits/playbook/kits/pb_progress_pills.js +3 -3
- data/app/pb_kits/playbook/kits/pb_progress_simple.js +3 -3
- data/app/pb_kits/playbook/kits/pb_section_separator.js +3 -3
- data/app/pb_kits/playbook/kits/pb_select.js +3 -3
- data/app/pb_kits/playbook/kits/pb_selectable_card.js +3 -3
- data/app/pb_kits/playbook/kits/pb_source.js +3 -3
- data/app/pb_kits/playbook/kits/pb_star_rating.js +3 -3
- data/app/pb_kits/playbook/kits/pb_stat_change.js +3 -3
- data/app/pb_kits/playbook/kits/pb_stat_value.js +3 -3
- data/app/pb_kits/playbook/kits/pb_table.js +3 -3
- data/app/pb_kits/playbook/kits/pb_text_input.js +3 -3
- data/app/pb_kits/playbook/kits/pb_textarea.js +3 -3
- data/app/pb_kits/playbook/kits/pb_time.js +3 -3
- data/app/pb_kits/playbook/kits/pb_timestamp.js +3 -3
- data/app/pb_kits/playbook/kits/pb_title.js +3 -3
- data/app/pb_kits/playbook/kits/pb_title_count.js +3 -3
- data/app/pb_kits/playbook/kits/pb_title_detail.js +3 -3
- data/app/pb_kits/playbook/kits/pb_toggle.js +3 -3
- data/app/pb_kits/playbook/kits/pb_user.js +3 -3
- data/app/pb_kits/playbook/kits/pb_user_badge.js +3 -3
- data/app/pb_kits/playbook/packs/application.js +12 -10
- data/app/pb_kits/playbook/packs/examples.js +115 -115
- data/app/pb_kits/playbook/packs/kits.js +56 -56
- data/app/pb_kits/playbook/packs/site_styles/_site-style.scss +4 -1
- data/app/pb_kits/playbook/pb_card/_card.jsx +2 -2
- data/app/pb_kits/playbook/pb_card/docs/_card_separator.html.erb +19 -0
- data/app/pb_kits/playbook/pb_card/docs/_card_separator.jsx +22 -0
- data/app/pb_kits/playbook/pb_card/docs/example.yml +2 -1
- data/app/pb_kits/playbook/pb_card/docs/index.js +7 -6
- data/app/pb_kits/playbook/pb_contact/contact.rb +1 -1
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +1 -0
- data/app/pb_kits/playbook/pb_form/docs/_form_simple_form.html.erb +3 -1
- data/app/pb_kits/playbook/pb_form/form_builder.rb +8 -7
- data/app/pb_kits/playbook/pb_form/form_builder/{text_input_builder.rb → form_field_builder.rb} +3 -3
- data/app/pb_kits/playbook/pb_nav/_horizontal_nav.scss +0 -1
- data/app/pb_kits/playbook/pb_nav/_item.jsx +25 -28
- data/app/pb_kits/playbook/pb_nav/_nav.jsx +23 -24
- data/app/pb_kits/playbook/pb_nav/_vertical_nav.scss +0 -2
- data/app/pb_kits/playbook/pb_nav/docs/_block_nav.jsx +15 -0
- data/app/pb_kits/playbook/pb_nav/docs/{_block_no_title.html.erb → _block_no_title_nav.html.erb} +0 -0
- data/app/pb_kits/playbook/pb_nav/docs/_block_no_title_nav.jsx +15 -0
- data/app/pb_kits/playbook/pb_nav/docs/_default_nav.jsx +8 -4
- data/app/pb_kits/playbook/pb_nav/docs/_horizontal_nav.jsx +15 -0
- data/app/pb_kits/playbook/pb_nav/docs/example.yml +5 -1
- data/app/pb_kits/playbook/pb_nav/docs/index.js +3 -0
- data/app/pb_kits/playbook/pb_person_contact/_person_contact.html.erb +20 -19
- data/app/pb_kits/playbook/pb_person_contact/_person_contact.scss +4 -0
- data/app/pb_kits/playbook/pb_person_contact/docs/_person_contact_with_wrong_numbers.html.erb +21 -0
- data/app/pb_kits/playbook/pb_person_contact/docs/example.yml +1 -2
- data/app/pb_kits/playbook/pb_person_contact/person_contact.rb +2 -2
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_dark.html.erb +3 -3
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_dark.jsx +3 -3
- data/app/pb_kits/playbook/pb_text_input/_text_input.html.erb +2 -2
- data/app/pb_kits/playbook/pb_text_input/_text_input.jsx +4 -2
- data/app/pb_kits/playbook/pb_text_input/_text_input.scss +31 -41
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_dark.html.erb +5 -0
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_dark.jsx +78 -0
- data/app/pb_kits/playbook/pb_text_input/docs/example.yml +3 -0
- data/app/pb_kits/playbook/pb_text_input/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_text_input/text_input.rb +9 -1
- data/app/pb_kits/playbook/pb_textarea/_textarea.jsx +11 -1
- data/app/pb_kits/playbook/pb_textarea/_textarea_mixin.scss +11 -0
- data/app/pb_kits/playbook/plugins/pb_chart_plugin.js +10 -10
- data/app/pb_kits/playbook/utilities/props.js +2 -2
- data/app/pb_kits/playbook/utilities/text.js +6 -13
- data/app/pb_kits/playbook/vendor.js +2 -2
- data/lib/generators/kit/kit_generator.rb +2 -2
- data/lib/generators/kit/templates/kit_example_react.erb.tt +7 -9
- data/lib/generators/kit/templates/kit_js.erb.tt +1 -1
- data/lib/generators/kit/templates/kit_jsx.erb.tt +29 -11
- data/lib/generators/kit/templates/kit_pack.erb.tt +3 -3
- data/lib/generators/kit/templates/kit_ruby_spec.erb.tt +0 -1
- data/lib/playbook/version.rb +1 -1
- data/lib/tasks/pb_release.rake +33 -22
- metadata +12 -4
@@ -1,56 +1,56 @@
|
|
1
|
-
import
|
2
|
-
import
|
3
|
-
import
|
4
|
-
import
|
5
|
-
import
|
6
|
-
import
|
7
|
-
import
|
8
|
-
import
|
9
|
-
import
|
10
|
-
import
|
11
|
-
import
|
12
|
-
import
|
13
|
-
import
|
14
|
-
import
|
15
|
-
import
|
16
|
-
import
|
17
|
-
import
|
18
|
-
import
|
19
|
-
import
|
20
|
-
import
|
21
|
-
import
|
22
|
-
import
|
23
|
-
import
|
24
|
-
import
|
25
|
-
import
|
26
|
-
import
|
27
|
-
import
|
28
|
-
import
|
29
|
-
import
|
30
|
-
import
|
31
|
-
import
|
32
|
-
import
|
33
|
-
import
|
34
|
-
import
|
35
|
-
import
|
36
|
-
import
|
37
|
-
import
|
38
|
-
import
|
39
|
-
import
|
40
|
-
import
|
41
|
-
import
|
42
|
-
import
|
43
|
-
import
|
44
|
-
import
|
45
|
-
import
|
46
|
-
import
|
47
|
-
import
|
48
|
-
import
|
49
|
-
import
|
50
|
-
import
|
51
|
-
import
|
52
|
-
import
|
53
|
-
import
|
54
|
-
import
|
55
|
-
import
|
56
|
-
import
|
1
|
+
import '../kits/pb_avatar.js'
|
2
|
+
import '../kits/pb_badge.js'
|
3
|
+
import '../kits/pb_bar_graph.js'
|
4
|
+
import '../kits/pb_body.js'
|
5
|
+
import '../kits/pb_button.js'
|
6
|
+
import '../kits/pb_caption.js'
|
7
|
+
import '../kits/pb_card.js'
|
8
|
+
import '../kits/pb_checkbox.js'
|
9
|
+
import '../kits/pb_circle_icon_button.js'
|
10
|
+
import '../kits/pb_contact.js'
|
11
|
+
import '../kits/pb_currency.js'
|
12
|
+
import '../kits/pb_dashboard_value.js'
|
13
|
+
import '../kits/pb_date.js'
|
14
|
+
import '../kits/pb_date_range_inline.js'
|
15
|
+
import '../kits/pb_date_stacked.js'
|
16
|
+
import '../kits/pb_date_year_stacked.js'
|
17
|
+
import '../kits/pb_distribution_bar.js'
|
18
|
+
import '../kits/pb_fixed_confirmation_toast.js'
|
19
|
+
import '../kits/pb_hashtag.js'
|
20
|
+
import '../kits/pb_home_address_street.js'
|
21
|
+
import '../kits/pb_icon.js'
|
22
|
+
import '../kits/pb_icon_circle.js'
|
23
|
+
import '../kits/pb_icon_value.js'
|
24
|
+
import '../kits/pb_image.js'
|
25
|
+
import '../kits/pb_label_pill.js'
|
26
|
+
import '../kits/pb_label_value.js'
|
27
|
+
import '../kits/pb_layout.js'
|
28
|
+
import '../kits/pb_line_graph.js'
|
29
|
+
import '../kits/pb_loading_inline.js'
|
30
|
+
import '../kits/pb_message.js'
|
31
|
+
import '../kits/pb_multiple_users.js'
|
32
|
+
import '../kits/pb_nav.js'
|
33
|
+
import '../kits/pb_online_status.js'
|
34
|
+
import '../kits/pb_person.js'
|
35
|
+
import '../kits/pb_person_contact.js'
|
36
|
+
import '../kits/pb_pill.js'
|
37
|
+
import '../kits/pb_progress_pills.js'
|
38
|
+
import '../kits/pb_progress_simple.js'
|
39
|
+
import '../kits/pb_section_separator.js'
|
40
|
+
import '../kits/pb_select.js'
|
41
|
+
import '../kits/pb_selectable_card.js'
|
42
|
+
import '../kits/pb_source.js'
|
43
|
+
import '../kits/pb_star_rating.js'
|
44
|
+
import '../kits/pb_stat_change.js'
|
45
|
+
import '../kits/pb_stat_value.js'
|
46
|
+
import '../kits/pb_table.js'
|
47
|
+
import '../kits/pb_text_input.js'
|
48
|
+
import '../kits/pb_textarea.js'
|
49
|
+
import '../kits/pb_time.js'
|
50
|
+
import '../kits/pb_timestamp.js'
|
51
|
+
import '../kits/pb_title.js'
|
52
|
+
import '../kits/pb_title_count.js'
|
53
|
+
import '../kits/pb_title_detail.js'
|
54
|
+
import '../kits/pb_toggle.js'
|
55
|
+
import '../kits/pb_user.js'
|
56
|
+
import '../kits/pb_user_badge.js'
|
@@ -21,8 +21,8 @@ const cardCSS = ({
|
|
21
21
|
shadow='none'
|
22
22
|
}: CardPropTypes) => {
|
23
23
|
let css = 'pb_card_kit'
|
24
|
-
css += highlight.position ? `_highlight_${highlight.position}` :
|
25
|
-
css += highlight.color ? `_highlight_${highlight.color}` :
|
24
|
+
css += highlight.position ? `_highlight_${highlight.position}` : ''
|
25
|
+
css += highlight.color ? `_highlight_${highlight.color}` : ''
|
26
26
|
css += selected ? '_selected' : '_deselected'
|
27
27
|
css += `_shadow_${shadow}`
|
28
28
|
return css
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<%= pb_rails("card", props: { padding: "none" }) do %>
|
2
|
+
<%= pb_rails("card/card_body", props: { padding: "sm" }) do %>
|
3
|
+
Header
|
4
|
+
<% end %>
|
5
|
+
|
6
|
+
<%= pb_rails("section_separator") %>
|
7
|
+
|
8
|
+
<%= pb_rails("card/card_body", props: { padding: "sm" }) do %>
|
9
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec iaculis, risus a fringilla luctus, sapien eros sodales ex, quis molestie est nulla non turpis. Vestibulum aliquet at ipsum eget posuere. Morbi sed laoreet erat. Sed commodo posuere lectus, at porta nulla ornare a. Suspendisse quam est, sollicitudin ut enim sit amet, commodo placerat enim. Donec laoreet metus ac mauris pellentesque mattis. Pellentesque luctus vel mauris non aliquam. Mauris hendrerit mattis porttitor. Curabitur vehicula justo non ex consectetur commodo. Quisque posuere aliquet quam. Maecenas malesuada magna mauris, ac tempor metus euismod at.
|
10
|
+
|
11
|
+
Cras ornare fermentum magna mollis efficitur. Sed vitae nulla vel purus ultrices mollis. Maecenas id nulla id libero faucibus feugiat quis sit amet turpis. In commodo pellentesque risus at fringilla. Integer non interdum leo, non commodo ante. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut mi augue, dignissim at orci vel, egestas aliquam mi. Proin finibus aliquet tempor. Integer cursus, ex quis gravida rhoncus, nisi elit viverra ipsum, non efficitur est ex ac tortor. Praesent vitae odio massa.
|
12
|
+
<% end %>
|
13
|
+
|
14
|
+
<%= pb_rails("section_separator") %>
|
15
|
+
|
16
|
+
<%= pb_rails("card/card_body", props: { padding: "sm" }) do %>
|
17
|
+
Footer
|
18
|
+
<% end %>
|
19
|
+
<% end %>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import React from "react"
|
2
|
+
import { Card } from "../../"
|
3
|
+
import { Body } from "../../"
|
4
|
+
import { SectionSeparator } from "../../"
|
5
|
+
|
6
|
+
const CardSeparator = () => {
|
7
|
+
return (
|
8
|
+
<Card padding="none">
|
9
|
+
<Body>{"Header"}</Body>
|
10
|
+
<SectionSeparator variant="card" />
|
11
|
+
<Body>
|
12
|
+
{
|
13
|
+
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec iaculis, risus a fringilla luctus, sapien eros sodales ex, quis molestie est nulla non turpis. Vestibulum aliquet at ipsum eget posuere. Morbi sed laoreet erat. Sed commodo posuere lectus, at porta nulla ornare a. Suspendisse quam est, sollicitudin ut enim sit amet, commodo placerat enim. Donec laoreet metus ac mauris pellentesque mattis. Pellentesque luctus vel mauris non aliquam. Mauris hendrerit mattis porttitor. Curabitur vehicula justo non ex consectetur commodo. Quisque posuere aliquet quam. Maecenas malesuada magna mauris, ac tempor metus euismod at. Cras ornare fermentum magna mollis efficitur. Sed vitae nulla vel purus ultrices mollis. Maecenas id nulla id libero faucibus feugiat quis sit amet turpis. In commodo pellentesque risus at fringilla. Integer non interdum leo, non commodo ante. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut mi augue, dignissim at orci vel, egestas aliquam mi. Proin finibus aliquet tempor. Integer cursus, ex quis gravida rhoncus, nisi elit viverra ipsum, non efficitur est ex ac tortor. Praesent vitae odio massa."
|
14
|
+
}
|
15
|
+
</Body>
|
16
|
+
<SectionSeparator variant="card" />
|
17
|
+
<Body>{"Footer"}</Body>
|
18
|
+
</Card>
|
19
|
+
)
|
20
|
+
}
|
21
|
+
|
22
|
+
export default CardSeparator
|
@@ -6,7 +6,7 @@ examples:
|
|
6
6
|
- card_padding: Padding Size
|
7
7
|
- card_shadow: Shadow Size
|
8
8
|
- card_content: Content Size
|
9
|
-
|
9
|
+
- card_separator: Separator Card
|
10
10
|
react:
|
11
11
|
- card_light: Default
|
12
12
|
- card_highlight: Highlight Cards
|
@@ -14,3 +14,4 @@ examples:
|
|
14
14
|
- card_padding: Padding Size
|
15
15
|
- card_shadow: Shadow Size
|
16
16
|
- card_content: Content Size
|
17
|
+
- card_separator: Separator Card
|
@@ -1,6 +1,7 @@
|
|
1
|
-
export {default as CardLight} from
|
2
|
-
export {default as CardHighlight} from
|
3
|
-
export {default as CardSelected} from
|
4
|
-
export {default as CardPadding} from
|
5
|
-
export {default as CardShadow} from
|
6
|
-
export {default as CardContent} from
|
1
|
+
export { default as CardLight } from "./_card_light.jsx"
|
2
|
+
export { default as CardHighlight } from "./_card_highlight.jsx"
|
3
|
+
export { default as CardSelected } from "./_card_selected.jsx"
|
4
|
+
export { default as CardPadding } from "./_card_padding.jsx"
|
5
|
+
export { default as CardShadow } from "./_card_shadow.jsx"
|
6
|
+
export { default as CardContent } from "./_card_content.jsx"
|
7
|
+
export { default as CardSeparator } from "./_card_separator.jsx"
|
@@ -6,6 +6,7 @@
|
|
6
6
|
<%= form.search_field :example_search_field, props: { label: true } %>
|
7
7
|
<%= form.password_field :example_password_field, props: { label: true } %>
|
8
8
|
<%= form.url_field :example_url_field, props: { label: true } %>
|
9
|
+
<%= form.text_area :example_text_area, props: { label: true } %>
|
9
10
|
|
10
11
|
<%= form.actions do |action| %>
|
11
12
|
<%= action.submit %>
|
@@ -10,7 +10,8 @@
|
|
10
10
|
:example_number_field,
|
11
11
|
:example_search_field,
|
12
12
|
:example_password_field,
|
13
|
-
:example_url_field
|
13
|
+
:example_url_field,
|
14
|
+
:example_text_area
|
14
15
|
|
15
16
|
|
16
17
|
def self.model_name
|
@@ -28,6 +29,7 @@
|
|
28
29
|
<%= form.input :example_search_field, as: :search %>
|
29
30
|
<%= form.input :example_password_field, as: :password %>
|
30
31
|
<%= form.input :example_url_field, as: :url %>
|
32
|
+
<%= form.input :example_text_area, as: :text %>
|
31
33
|
|
32
34
|
<%= form.actions do |action| %>
|
33
35
|
<%= action.submit %>
|
@@ -6,13 +6,14 @@ module Playbook
|
|
6
6
|
extend ActiveSupport::Concern
|
7
7
|
|
8
8
|
included do
|
9
|
-
prepend(
|
10
|
-
prepend(
|
11
|
-
prepend(
|
12
|
-
prepend(
|
13
|
-
prepend(
|
14
|
-
prepend(
|
15
|
-
prepend(
|
9
|
+
prepend(FormFieldBuilder.new(:email_field, kit_name: "text_input"))
|
10
|
+
prepend(FormFieldBuilder.new(:number_field, kit_name: "text_input"))
|
11
|
+
prepend(FormFieldBuilder.new(:search_field, kit_name: "text_input"))
|
12
|
+
prepend(FormFieldBuilder.new(:telephone_field, kit_name: "text_input"))
|
13
|
+
prepend(FormFieldBuilder.new(:text_field, kit_name: "text_input"))
|
14
|
+
prepend(FormFieldBuilder.new(:password_field, kit_name: "text_input"))
|
15
|
+
prepend(FormFieldBuilder.new(:url_field, kit_name: "text_input"))
|
16
|
+
prepend(FormFieldBuilder.new(:text_area, kit_name: "textarea"))
|
16
17
|
|
17
18
|
def actions(&block)
|
18
19
|
ActionArea.new(self).wrapper(&block)
|
data/app/pb_kits/playbook/pb_form/form_builder/{text_input_builder.rb → form_field_builder.rb}
RENAMED
@@ -3,15 +3,15 @@
|
|
3
3
|
module Playbook
|
4
4
|
module PbForm
|
5
5
|
module FormBuilder
|
6
|
-
class
|
7
|
-
def initialize(method_name)
|
6
|
+
class FormFieldBuilder < Module
|
7
|
+
def initialize(method_name, kit_name:)
|
8
8
|
define_method method_name do |name, props: {}, **options, &block|
|
9
9
|
props[:label] = @template.label(@object_name, name) if props[:label] == true
|
10
10
|
options = Hash(options)
|
11
11
|
options[:skip_default_ids] = false unless options.has_key?(:skip_default_ids)
|
12
12
|
input = super(name, **options, &block)
|
13
13
|
|
14
|
-
@template.pb_rails(
|
14
|
+
@template.pb_rails(kit_name, props: props) do
|
15
15
|
input
|
16
16
|
end
|
17
17
|
end
|
@@ -1,34 +1,31 @@
|
|
1
|
-
import React, { Component } from
|
2
|
-
import PropTypes from "prop-types";
|
1
|
+
import React, { Component } from 'react';
|
3
2
|
|
4
|
-
|
5
|
-
text:
|
6
|
-
link:
|
7
|
-
active
|
8
|
-
|
3
|
+
type NavItemProps = {
|
4
|
+
text: String,
|
5
|
+
link: String,
|
6
|
+
active?: Boolean,
|
7
|
+
children: React.Node,
|
8
|
+
}
|
9
9
|
|
10
|
-
const
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
10
|
+
const NavItem = (props: NavItemProps) => {
|
11
|
+
const {
|
12
|
+
text = '',
|
13
|
+
link = '',
|
14
|
+
active = false,
|
15
|
+
children
|
16
|
+
} = props;
|
15
17
|
|
16
|
-
|
17
|
-
render() {
|
18
|
-
const { text, link, active } = this.props;
|
19
|
-
return (
|
20
|
-
<li className={"pb_nav_list_border_item" + active}>
|
21
|
-
<a className="pb_nav_list_item_link"
|
22
|
-
href={link}
|
23
|
-
>
|
24
|
-
<span className="pb_nav_list_item_text">{text}</span>
|
25
|
-
</a>
|
26
|
-
</li>
|
27
|
-
);
|
28
|
-
}
|
29
|
-
}
|
18
|
+
const active_class = active === true ? '_active' : ''
|
30
19
|
|
31
|
-
|
32
|
-
|
20
|
+
return (
|
21
|
+
<li className={`pb_nav_list_border_item${active_class}`}>
|
22
|
+
<a className='pb_nav_list_item_link' href={link}>
|
23
|
+
<span className='pb_nav_list_item_text'>
|
24
|
+
{ text || children }
|
25
|
+
</span>
|
26
|
+
</a>
|
27
|
+
</li>
|
28
|
+
);
|
29
|
+
}
|
33
30
|
|
34
31
|
export default NavItem;
|
@@ -1,31 +1,30 @@
|
|
1
|
-
import React
|
2
|
-
import
|
3
|
-
import NavItem from "./_item"
|
4
|
-
import {Caption} from "../"
|
1
|
+
import React from 'react'
|
2
|
+
import { Caption } from '../'
|
5
3
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
4
|
+
type NavProps = {
|
5
|
+
link: String,
|
6
|
+
title: String,
|
7
|
+
orientation?: 'vertical' | 'horizontal',
|
8
|
+
children?: React.Node,
|
11
9
|
}
|
12
10
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
<
|
11
|
+
const Nav = (props: NavProps) => {
|
12
|
+
const {
|
13
|
+
title = '',
|
14
|
+
orientation = 'vertical',
|
15
|
+
children
|
16
|
+
} = props;
|
17
|
+
|
18
|
+
return (
|
19
|
+
<div className={`pb_nav_list_${orientation}`}>
|
20
|
+
<div className={`pb_nav_list_title`}>
|
21
|
+
<a className='pb_nav_list_item_link_text'>
|
22
|
+
<Caption size='md' text={`${title}`} />
|
23
|
+
</a>
|
24
24
|
</div>
|
25
|
-
|
26
|
-
|
25
|
+
<ul>{children}</ul>
|
26
|
+
</div>
|
27
|
+
)
|
27
28
|
}
|
28
29
|
|
29
|
-
Nav.propTypes = propTypes
|
30
|
-
|
31
30
|
export default Nav
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import {Nav} from '../../'
|
3
|
+
import NavItem from '../_item.jsx'
|
4
|
+
|
5
|
+
function BlockNav() {
|
6
|
+
return (
|
7
|
+
<Nav title='Title example' link='#' orientation='vertical'>
|
8
|
+
<NavItem link='#' active={true}>{`Active Nav Item using text prop`}</NavItem>
|
9
|
+
<NavItem link='#'>{`Nav Item using text prop`}</NavItem>
|
10
|
+
<NavItem link='#'>{`Nav Item using text prop`}</NavItem>
|
11
|
+
</Nav>
|
12
|
+
)
|
13
|
+
}
|
14
|
+
|
15
|
+
export default BlockNav;
|
data/app/pb_kits/playbook/pb_nav/docs/{_block_no_title.html.erb → _block_no_title_nav.html.erb}
RENAMED
File without changes
|