playbook_ui 12.34.0 → 12.35.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_card/_card.scss +3 -0
  3. data/app/pb_kits/playbook/pb_card/_card.tsx +5 -6
  4. data/app/pb_kits/playbook/pb_card/card.html.erb +1 -3
  5. data/app/pb_kits/playbook/pb_card/card.rb +0 -96
  6. data/app/pb_kits/playbook/pb_card/card_body.rb +93 -1
  7. data/app/pb_kits/playbook/pb_collapsible/_collapsible.scss +11 -0
  8. data/app/pb_kits/playbook/pb_collapsible/_collapsible.tsx +7 -7
  9. data/app/pb_kits/playbook/pb_collapsible/_helper_functions.ts +25 -0
  10. data/app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.tsx +20 -14
  11. data/app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleMain.tsx +35 -17
  12. data/app/pb_kits/playbook/pb_collapsible/collapsible_main.html.erb +7 -2
  13. data/app/pb_kits/playbook/pb_collapsible/collapsible_main.rb +8 -5
  14. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_default.jsx +1 -1
  15. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_icons.html.erb +10 -0
  16. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_icons.jsx +19 -0
  17. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_icons.md +2 -0
  18. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_size.md +1 -1
  19. data/app/pb_kits/playbook/pb_collapsible/docs/example.yml +3 -1
  20. data/app/pb_kits/playbook/pb_collapsible/docs/index.js +1 -0
  21. data/app/pb_kits/playbook/pb_collapsible/index.js +3 -3
  22. data/app/pb_kits/playbook/pb_dialog/_dialog.scss +14 -2
  23. data/app/pb_kits/playbook/pb_dialog/child_kits/_dialog_body.tsx +2 -2
  24. data/app/pb_kits/playbook/pb_dialog/child_kits/_dialog_footer.tsx +1 -4
  25. data/app/pb_kits/playbook/pb_dialog/child_kits/_dialog_header.tsx +1 -2
  26. data/app/pb_kits/playbook/pb_highlight/_highlight.scss +4 -3
  27. data/app/pb_kits/playbook/pb_highlight/docs/_highlight_default.html.erb +6 -16
  28. data/app/pb_kits/playbook/pb_highlight/docs/_highlight_default.jsx +2 -2
  29. data/app/pb_kits/playbook/pb_highlight/docs/example.yml +0 -2
  30. data/app/pb_kits/playbook/pb_message/_message.scss +18 -0
  31. data/app/pb_kits/playbook/pb_message/_message.tsx +2 -0
  32. data/app/pb_kits/playbook/pb_message/_message_mention.tsx +44 -0
  33. data/app/pb_kits/playbook/pb_message/docs/_message_mentions.html.erb +24 -0
  34. data/app/pb_kits/playbook/pb_message/docs/_message_mentions.jsx +31 -0
  35. data/app/pb_kits/playbook/pb_message/docs/_message_mentions.md +1 -0
  36. data/app/pb_kits/playbook/pb_message/docs/example.yml +2 -2
  37. data/app/pb_kits/playbook/pb_message/docs/index.js +1 -1
  38. data/app/pb_kits/playbook/pb_message/message_mention.html.erb +7 -0
  39. data/app/pb_kits/playbook/pb_message/message_mention.rb +15 -0
  40. data/app/pb_kits/playbook/pb_nav/_collapsible_nav.scss +6 -0
  41. data/app/pb_kits/playbook/pb_nav/_item.tsx +98 -49
  42. data/app/pb_kits/playbook/pb_nav/_nav.scss +1 -0
  43. data/app/pb_kits/playbook/pb_nav/_subtle_mixin.scss +9 -11
  44. data/app/pb_kits/playbook/pb_nav/docs/_collapsible_nav.html.erb +24 -0
  45. data/app/pb_kits/playbook/pb_nav/docs/_collapsible_nav.jsx +83 -0
  46. data/app/pb_kits/playbook/pb_nav/docs/_collapsible_nav_custom_icons.jsx +86 -0
  47. data/app/pb_kits/playbook/pb_nav/docs/example.yml +3 -0
  48. data/app/pb_kits/playbook/pb_nav/docs/index.js +2 -0
  49. data/app/pb_kits/playbook/pb_nav/item.html.erb +34 -12
  50. data/app/pb_kits/playbook/pb_nav/item.rb +5 -0
  51. data/dist/playbook-rails.js +6 -6
  52. data/lib/playbook/version.rb +2 -2
  53. metadata +16 -3
  54. data/app/pb_kits/playbook/pb_collapsible/types.d.ts +0 -1
@@ -0,0 +1,83 @@
1
+ import React from "react";
2
+
3
+ import Nav from "../_nav";
4
+ import NavItem from "../_item";
5
+
6
+ const CollapsibleNav = (props) => {
7
+ return (
8
+ <Nav variant="subtle">
9
+ <NavItem
10
+ collapsible
11
+ iconLeft="city"
12
+ link="#"
13
+ text="Overview"
14
+ {...props}
15
+ >
16
+ <NavItem
17
+ link="#"
18
+ text="City"
19
+ {...props}
20
+ />
21
+ <NavItem
22
+ link="#"
23
+ text="People"
24
+ {...props}
25
+ />
26
+ <NavItem
27
+ link="#"
28
+ text="Business"
29
+ {...props}
30
+ />
31
+ </NavItem>
32
+ <NavItem
33
+ active
34
+ collapsible
35
+ iconLeft="theater-masks"
36
+ link="#"
37
+ text="Albums"
38
+ {...props}
39
+ >
40
+ <NavItem
41
+ link="#"
42
+ text="Entertainment"
43
+ {...props}
44
+ />
45
+ <NavItem
46
+ link="#"
47
+ text="Food"
48
+ {...props}
49
+ />
50
+ <NavItem
51
+ link="#"
52
+ text="Style"
53
+ {...props}
54
+ />
55
+ </NavItem>
56
+ <NavItem
57
+ collapsible
58
+ iconLeft="city"
59
+ link="#"
60
+ text="Similar Artists"
61
+ {...props}
62
+ >
63
+ <NavItem
64
+ link="#"
65
+ text="City"
66
+ {...props}
67
+ />
68
+ <NavItem
69
+ link="#"
70
+ text="People"
71
+ {...props}
72
+ />
73
+ <NavItem
74
+ link="#"
75
+ text="Business"
76
+ {...props}
77
+ />
78
+ </NavItem>
79
+ </Nav>
80
+ );
81
+ };
82
+
83
+ export default CollapsibleNav;
@@ -0,0 +1,86 @@
1
+ import React from "react";
2
+
3
+ import Nav from "../_nav";
4
+ import NavItem from "../_item";
5
+
6
+ const CollapsibleNavCustomIcons = (props) => {
7
+ return (
8
+ <Nav variant="subtle">
9
+ <NavItem
10
+ collapsible
11
+ iconLeft="city"
12
+ iconRight={["chevron-down", "chevron-up"]}
13
+ link="#"
14
+ text="Overview"
15
+ {...props}
16
+ >
17
+ <NavItem
18
+ link="#"
19
+ text="City"
20
+ {...props}
21
+ />
22
+ <NavItem
23
+ link="#"
24
+ text="People"
25
+ {...props}
26
+ />
27
+ <NavItem
28
+ link="#"
29
+ text="Business"
30
+ {...props}
31
+ />
32
+ </NavItem>
33
+ <NavItem
34
+ active
35
+ collapsible
36
+ iconLeft="theater-masks"
37
+ iconRight={["chevron-down", "chevron-up"]}
38
+ link="#"
39
+ text="Albums"
40
+ {...props}
41
+ >
42
+ <NavItem
43
+ link="#"
44
+ text="Entertainment"
45
+ {...props}
46
+ />
47
+ <NavItem
48
+ link="#"
49
+ text="Food"
50
+ {...props}
51
+ />
52
+ <NavItem
53
+ link="#"
54
+ text="Style"
55
+ {...props}
56
+ />
57
+ </NavItem>
58
+ <NavItem
59
+ collapsible
60
+ iconLeft="city"
61
+ iconRight={["chevron-down", "chevron-up"]}
62
+ link="#"
63
+ text="Similar Artists"
64
+ {...props}
65
+ >
66
+ <NavItem
67
+ link="#"
68
+ text="City"
69
+ {...props}
70
+ />
71
+ <NavItem
72
+ link="#"
73
+ text="People"
74
+ {...props}
75
+ />
76
+ <NavItem
77
+ link="#"
78
+ text="Business"
79
+ {...props}
80
+ />
81
+ </NavItem>
82
+ </Nav>
83
+ );
84
+ };
85
+
86
+ export default CollapsibleNavCustomIcons;
@@ -7,6 +7,7 @@ examples:
7
7
  - borderless_nav: No Borders
8
8
  - subtle_nav: Subtle Variant
9
9
  - subtle_with_icons_nav: Subtle With Icons
10
+ # - collapsible_nav: Subtle With Collapsible
10
11
  - subtle_no_highlight_nav: Subtle No Highlight
11
12
  - bold_vertical_nav: Bold Variant
12
13
  - horizontal_nav: Horizontal Nav
@@ -24,6 +25,8 @@ examples:
24
25
  - borderless_nav: No Borders
25
26
  - subtle_nav: Subtle Variant
26
27
  - subtle_with_icons_nav: Subtle With Icons
28
+ # - collapsible_nav: Subtle With Collapsible
29
+ # - collapsible_nav_custom_icons: Subtle With Collapsible (Custom Toggle Icons)
27
30
  - subtle_no_highlight_nav: Subtle No Highlight
28
31
  - bold_vertical_nav: Bold Variant
29
32
  - horizontal_nav: Horizontal Nav
@@ -13,3 +13,5 @@ export { default as WithImgNav } from './_with_img_nav.jsx'
13
13
  export { default as NewTab } from './_new_tab.jsx'
14
14
  export { default as BoldHorizontalNav } from './_bold_horizontal_nav.jsx'
15
15
  export { default as BoldVerticalNav } from './_bold_vertical_nav.jsx'
16
+ export { default as CollapsibleNav } from './_collapsible_nav.jsx'
17
+ export { default as CollapsibleNavCustomIcons } from './_collapsible_nav_custom_icons.jsx'
@@ -3,19 +3,41 @@
3
3
  class: object.classname,
4
4
  data: object.data,
5
5
  id: object.id) do %>
6
- <%= content_tag(object.tag,
7
- object.link ? object.link_options : object.options) do %>
8
- <% if object.image_url %>
9
- <%= pb_rails("image", props: { url: object.image_url, classname: "pb_nav_img_wrapper" }) %>
6
+ <% if object.collapsible %>
7
+ <%= pb_rails("collapsible", props: { name: "collapsible-nav-example" }) do %>
8
+ <%= pb_rails("collapsible/collapsible_main", props: { name: "default-collapsible-nav", icon: object.collapsible_icons, size: "xs" }) do %>
9
+ <%= content_tag(object.tag,
10
+ object.link ? object.link_options : object.options) do %>
11
+ <% if object.image_url %>
12
+ <%= pb_rails("image", props: { url: object.image_url, classname: "pb_nav_img_wrapper" }) %>
13
+ <% end %>
14
+ <% if object.icon_left %>
15
+ <%= pb_rails("icon", props: { icon: object.icon_left, classname: "pb_nav_list_item_icon_left", fixed_width: true}) %>
16
+ <% end %>
17
+ <span class="pb_nav_list_item_text">
18
+ <%= object.text %>
19
+ </span>
20
+ <% end %>
21
+ <% end %>
22
+ <%= pb_rails("collapsible/collapsible_content") do %>
23
+ <%= content.presence %>
24
+ <% end %>
10
25
  <% end %>
11
- <% if object.icon_left %>
12
- <%= pb_rails("icon", props: { icon: object.icon_left, classname: "pb_nav_list_item_icon_left", fixed_width: true}) %>
13
- <% end %>
14
- <span class="pb_nav_list_item_text">
15
- <%= object.text %><%= content.presence %>
16
- </span>
17
- <% if object.icon_right %>
18
- <%= pb_rails("icon", props: { icon: object.icon_right, classname: "pb_nav_list_item_icon_right", fixed_width: true}) %>
26
+ <% else %>
27
+ <%= content_tag(object.tag,
28
+ object.link ? object.link_options : object.options) do %>
29
+ <% if object.image_url %>
30
+ <%= pb_rails("image", props: { url: object.image_url, classname: "pb_nav_img_wrapper" }) %>
31
+ <% end %>
32
+ <% if object.icon_left %>
33
+ <%= pb_rails("icon", props: { icon: object.icon_left, classname: "pb_nav_list_item_icon_left", fixed_width: true}) %>
34
+ <% end %>
35
+ <span class="pb_nav_list_item_text">
36
+ <%= object.text %><%= content.presence %>
37
+ </span>
38
+ <% if object.icon_right %>
39
+ <%= pb_rails("icon", props: { icon: object.icon_right, classname: "pb_nav_list_item_icon_right", fixed_width: true}) %>
40
+ <% end %>
19
41
  <% end %>
20
42
  <% end %>
21
43
  <% end %>
@@ -4,6 +4,7 @@ module Playbook
4
4
  module PbNav
5
5
  class Item < Playbook::KitBase
6
6
  prop :active, type: Playbook::Props::Boolean, default: false
7
+ prop :collapsible, type: Playbook::Props::Boolean, default: false
7
8
  prop :link
8
9
  prop :text
9
10
  prop :icon_left
@@ -33,6 +34,10 @@ module Playbook
33
34
  )
34
35
  end
35
36
 
37
+ def collapsible_icons
38
+ icon_right.present? ? icon_right : %w[plus minus]
39
+ end
40
+
36
41
  private
37
42
 
38
43
  def active_class