playbook_ui 2.8.4 → 2.8.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/packs/examples.js +3 -0
  3. data/app/pb_kits/playbook/packs/kits.js +1 -0
  4. data/app/pb_kits/playbook/packs/pb_source.js +4 -0
  5. data/app/pb_kits/playbook/packs/site_styles/_kit_style_index.scss +1 -0
  6. data/app/pb_kits/playbook/pb_avatar/_avatar.jsx +1 -0
  7. data/app/pb_kits/playbook/pb_avatar/_avatar.scss +3 -1
  8. data/app/pb_kits/playbook/pb_avatar/avatar.rb +1 -1
  9. data/app/pb_kits/playbook/pb_body/_body.scss +1 -1
  10. data/app/pb_kits/playbook/pb_body/_body_mixins.scss +2 -1
  11. data/app/pb_kits/playbook/pb_body/body.rb +2 -2
  12. data/app/pb_kits/playbook/pb_button/_button.scss +2 -1
  13. data/app/pb_kits/playbook/pb_button/button.rb +1 -1
  14. data/app/pb_kits/playbook/pb_caption/_caption.scss +1 -1
  15. data/app/pb_kits/playbook/pb_caption/caption.rb +1 -1
  16. data/app/pb_kits/playbook/pb_card/_card.html.erb +1 -1
  17. data/app/pb_kits/playbook/pb_card/_card.scss +24 -25
  18. data/app/pb_kits/playbook/pb_card/card.rb +21 -5
  19. data/app/pb_kits/playbook/pb_card/card_body.rb +58 -0
  20. data/app/pb_kits/playbook/pb_card/child_kits/_card_body.html.erb +7 -0
  21. data/app/pb_kits/playbook/pb_card/child_kits/_card_body.scss +24 -0
  22. data/app/pb_kits/playbook/pb_card/docs/_card_content.html.erb +11 -0
  23. data/app/pb_kits/playbook/pb_card/docs/_card_light.html.erb +1 -1
  24. data/app/pb_kits/playbook/pb_card/docs/_card_padding.html.erb +27 -0
  25. data/app/pb_kits/playbook/pb_card/docs/_card_selected.html.erb +9 -0
  26. data/app/pb_kits/playbook/pb_card/docs/_card_shadow.html.erb +33 -0
  27. data/app/pb_kits/playbook/pb_card/docs/example.yml +4 -0
  28. data/app/pb_kits/playbook/pb_dashboard_value/_dashboard_value.scss +4 -1
  29. data/app/pb_kits/playbook/pb_dashboard_value/child_kits/_stat_value.scss +1 -1
  30. data/app/pb_kits/playbook/pb_dashboard_value/dashboard_value.rb +1 -1
  31. data/app/pb_kits/playbook/pb_dashboard_value/stat_change.rb +1 -1
  32. data/app/pb_kits/playbook/pb_dashboard_value/stat_label.rb +1 -1
  33. data/app/pb_kits/playbook/pb_dashboard_value/stat_value.rb +1 -1
  34. data/app/pb_kits/playbook/pb_date/_date.scss +5 -1
  35. data/app/pb_kits/playbook/pb_date/date.rb +1 -1
  36. data/app/pb_kits/playbook/pb_icon/_icon.scss +1 -1
  37. data/app/pb_kits/playbook/pb_icon/icon.rb +1 -1
  38. data/app/pb_kits/playbook/pb_icon_circle/_icon_circle.scss +8 -7
  39. data/app/pb_kits/playbook/pb_icon_circle/icon_circle.rb +1 -1
  40. data/app/pb_kits/playbook/pb_icon_value/_icon_value.scss +5 -3
  41. data/app/pb_kits/playbook/pb_icon_value/icon_value.rb +1 -1
  42. data/app/pb_kits/playbook/pb_image/_image.scss +1 -1
  43. data/app/pb_kits/playbook/pb_image/image.rb +1 -1
  44. data/app/pb_kits/playbook/pb_input/_input.html.erb +1 -1
  45. data/app/pb_kits/playbook/pb_input/_input.scss +1 -1
  46. data/app/pb_kits/playbook/pb_label_pill/_label_pill.html.erb +1 -1
  47. data/app/pb_kits/playbook/pb_label_pill/_label_pill.scss +3 -2
  48. data/app/pb_kits/playbook/pb_label_value/_label_value.scss +4 -2
  49. data/app/pb_kits/playbook/pb_label_value/label_value.rb +1 -1
  50. data/app/pb_kits/playbook/pb_list/_list.html.erb +1 -1
  51. data/app/pb_kits/playbook/pb_list/_list.scss +2 -2
  52. data/app/pb_kits/playbook/pb_message/_message.scss +5 -1
  53. data/app/pb_kits/playbook/pb_message/message.rb +1 -1
  54. data/app/pb_kits/playbook/pb_online_status/_online_status.scss +1 -1
  55. data/app/pb_kits/playbook/pb_online_status/online_status.rb +1 -1
  56. data/app/pb_kits/playbook/pb_owner/_owner.html.erb +1 -1
  57. data/app/pb_kits/playbook/pb_owner/_owner.scss +3 -2
  58. data/app/pb_kits/playbook/pb_owner/owner.rb +1 -1
  59. data/app/pb_kits/playbook/pb_owner_phone/_owner_phone.html.erb +1 -1
  60. data/app/pb_kits/playbook/pb_owner_phone/_owner_phone.scss +3 -2
  61. data/app/pb_kits/playbook/pb_phone/_phone.html.erb +1 -1
  62. data/app/pb_kits/playbook/pb_pill/_pill.scss +3 -2
  63. data/app/pb_kits/playbook/pb_pill/pill.rb +2 -2
  64. data/app/pb_kits/playbook/pb_progress_simple/_progress_simple.scss +1 -1
  65. data/app/pb_kits/playbook/pb_progress_simple/progress_simple.rb +1 -1
  66. data/app/pb_kits/playbook/pb_source/_source.html.erb +18 -0
  67. data/app/pb_kits/playbook/pb_source/_source.jsx +21 -0
  68. data/app/pb_kits/playbook/pb_source/_source.scss +29 -0
  69. data/app/pb_kits/playbook/pb_source/docs/_source_default.html.erb +23 -0
  70. data/app/pb_kits/playbook/pb_source/docs/_source_default.jsx +12 -0
  71. data/app/pb_kits/playbook/pb_source/docs/_source_noicon.html.erb +26 -0
  72. data/app/pb_kits/playbook/pb_source/docs/_source_types.html.erb +63 -0
  73. data/app/pb_kits/playbook/pb_source/docs/example.yml +10 -0
  74. data/app/pb_kits/playbook/pb_source/docs/index.js +1 -0
  75. data/app/pb_kits/playbook/pb_source/source.rb +110 -0
  76. data/app/pb_kits/playbook/pb_star_rating/_star_rating.scss +1 -1
  77. data/app/pb_kits/playbook/pb_star_rating/star_rating.rb +1 -1
  78. data/app/pb_kits/playbook/pb_time/_time.scss +6 -3
  79. data/app/pb_kits/playbook/pb_time/time.rb +2 -2
  80. data/app/pb_kits/playbook/pb_timestamp/_timestamp.scss +1 -1
  81. data/app/pb_kits/playbook/pb_timestamp/timestamp.rb +1 -1
  82. data/app/pb_kits/playbook/pb_title/_title.scss +1 -1
  83. data/app/pb_kits/playbook/pb_title/title.rb +1 -1
  84. data/app/pb_kits/playbook/pb_title_count/_title_count.scss +5 -2
  85. data/app/pb_kits/playbook/pb_title_count/title_count.rb +1 -1
  86. data/app/pb_kits/playbook/pb_title_detail/_title_detail.scss +4 -1
  87. data/app/pb_kits/playbook/pb_title_detail/title_detail.rb +1 -1
  88. data/app/pb_kits/playbook/pb_toggle/_toggle.scss +1 -1
  89. data/app/pb_kits/playbook/pb_toggle/toggle.rb +1 -1
  90. data/app/pb_kits/playbook/pb_user/_user.scss +4 -1
  91. data/app/pb_kits/playbook/pb_user/user.rb +1 -1
  92. data/app/pb_kits/playbook/pb_user_badge/_user_badge.scss +1 -1
  93. data/app/pb_kits/playbook/pb_user_badge/user_badge.rb +2 -2
  94. data/app/pb_kits/playbook/tokens/_shadows.scss +1 -1
  95. data/lib/playbook/engine.rb +6 -0
  96. data/lib/playbook/version.rb +1 -1
  97. metadata +21 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8103129ad1d322c76959bc5b98dbc4a3095e6ab93f8b6ce108c3397d99d3e7da
4
- data.tar.gz: 39bfc2b2780273550f8ad5038e51f561d695fafecf2785a49631932c9ed06bb0
3
+ metadata.gz: 229984eb14913e37a64ee5c9ba4cdbbe3cdc6013d07bbb6011c645c5659812aa
4
+ data.tar.gz: b783ad17356bfd25bbf6723eb18d9c9201a0ffcd2df880dc6a8fe5723c2c2667
5
5
  SHA512:
6
- metadata.gz: c1af634076f6e690736128754f66c197790f27a4db4b58f7afe0e8f3bb0e22e43b1c3f822fdbfb607466c47e7652a40c00319499146e6f6f06191e7029a30098
7
- data.tar.gz: aee625c328eb90beec7784d2de3169da58c3ff6c73492e728a0bb605b06ba04a7e9eec1882468f19a7452723d8ad216a89d94baf5f01a0a5d51327a0846a731f
6
+ metadata.gz: 073c2fad169caeb9cabdc209596226c450e4574fb13ca6f02adedc63e80e3e7b47b6fcca2b376e5f2acd9ba01f0147e7c8ec2e676f7874ad647fc096f85eb675
7
+ data.tar.gz: 87b55dd06352b79ccc3a3a97d1a8b733732230ffe122b84b95d6c236a0a2731741fff4d36ad08596ae943d2dac530d247f048ec2f9f43964d8fe283678a9320d
@@ -96,6 +96,9 @@ WebpackerReact.setup (Timestamp);
96
96
  import * as OnlineStatus from "pb_online_status/docs";
97
97
  WebpackerReact.setup (OnlineStatus);
98
98
 
99
+ import * as Source from "pb_source/docs";
100
+ WebpackerReact.setup (Source);
101
+
99
102
  import * as LabelPill from "pb_label_pill/docs";
100
103
  WebpackerReact.setup (LabelPill);
101
104
 
@@ -27,6 +27,7 @@ import "./pb_label_value.js";
27
27
  import "./pb_message.js";
28
28
  import "./pb_timestamp.js";
29
29
  import "./pb_online_status.js";
30
+ import "./pb_source.js";
30
31
  import "./pb_label_pill.js";
31
32
  import "./pb_phone.js";
32
33
  import "./pb_owner_phone.js";
@@ -0,0 +1,4 @@
1
+ import Source from "pb_source/_source.jsx";
2
+
3
+ import WebpackerReact from "webpacker-react";
4
+ WebpackerReact.setup({ Source });
@@ -29,6 +29,7 @@
29
29
  @import '../../pb_message/message';
30
30
  @import '../../pb_timestamp/timestamp';
31
31
  @import '../../pb_online_status/online_status';
32
+ @import '../../pb_source/source';
32
33
  @import '../../pb_label_pill/label_pill';
33
34
  @import '../../pb_phone/phone';
34
35
  @import '../../pb_owner_phone/owner_phone';
@@ -42,6 +42,7 @@ class Avatar extends React.Component {
42
42
  } = this.props;
43
43
 
44
44
  const css = classnames([
45
+ `pb_avatar_kit`,
45
46
  `avatar_${size}`,
46
47
  className,
47
48
  ])
@@ -1,6 +1,8 @@
1
1
  @import "../tokens/border_radius";
2
2
  @import "../tokens/colors";
3
3
  @import "../tokens/typography";
4
+ @import "../pb_online_status/online_status";
5
+ @import "../pb_image/image";
4
6
 
5
7
  $avatar-sizes: (
6
8
  "xs": 28px,
@@ -11,7 +13,7 @@ $avatar-sizes: (
11
13
  "xl": 100px,
12
14
  );
13
15
 
14
- [class^=pb_avatar] {
16
+ [class^=pb_avatar_kit] {
15
17
  position: relative;
16
18
 
17
19
  @each $name, $size in $avatar-sizes {
@@ -56,7 +56,7 @@ module Playbook
56
56
 
57
57
  def kit_class
58
58
  avatar_options = [
59
- "pb_avatar",
59
+ "pb_avatar_kit",
60
60
  size,
61
61
  ]
62
62
  avatar_options.join("_")
@@ -1,6 +1,6 @@
1
1
  @import "./body_mixins";
2
2
 
3
- [class^=pb_body]{
3
+ [class^=pb_body_kit]{
4
4
  @include pb_body;
5
5
 
6
6
  @each $color_name, $color_value in $pb_body_colors {
@@ -1,5 +1,6 @@
1
1
  @import "../tokens/colors";
2
2
  @import "../tokens/line_height";
3
+ @import "../tokens/typography";
3
4
 
4
5
  $pb_body_colors: (
5
6
  default: $text_lt_default,
@@ -17,9 +18,9 @@ $pb_body_status: (
17
18
  );
18
19
 
19
20
  @mixin pb_body($color: $text_lt_default) {
20
- margin: 0;
21
21
  line-height: $lh_tight;
22
22
  color: $color;
23
+ font-size: $text_default;
23
24
  }
24
25
 
25
26
  // Colors ======================
@@ -61,7 +61,7 @@ module Playbook
61
61
  end
62
62
 
63
63
  def tag
64
- default_value(configured_tag, "p")
64
+ default_value(configured_tag, "div")
65
65
  end
66
66
 
67
67
  def text
@@ -74,7 +74,7 @@ module Playbook
74
74
 
75
75
  def kit_class
76
76
  body_options = [
77
- "pb_body",
77
+ "pb_body_kit",
78
78
  color_class,
79
79
  dark_class,
80
80
  status_class,
@@ -1,6 +1,7 @@
1
1
  @import "./button_mixins";
2
+ @import "../pb_icon/icon";
2
3
 
3
- [class^=pb_button]{
4
+ [class^=pb_button_kit]{
4
5
  // Variants =================
5
6
  &[class*=_primary] {
6
7
  @include pb_button_primary;
@@ -105,7 +105,7 @@ module Playbook
105
105
 
106
106
  def kit_class
107
107
  kit_options = [
108
- "pb_button",
108
+ "pb_button_kit",
109
109
  variant,
110
110
  full_width_class,
111
111
  disabled_class,
@@ -1,6 +1,6 @@
1
1
  @import "caption_mixin";
2
2
 
3
- [class^=pb_caption] {
3
+ [class^=pb_caption_kit] {
4
4
  @include caption;
5
5
 
6
6
  &[class*=_lg] {
@@ -49,7 +49,7 @@ module Playbook
49
49
 
50
50
  def kit_class
51
51
  caption_options = [
52
- "pb_caption",
52
+ "pb_caption_kit",
53
53
  large_class,
54
54
  dark_class,
55
55
  ]
@@ -3,5 +3,5 @@
3
3
  data: object.data,
4
4
  class: object.classname(object.kit_class),
5
5
  aria: object.aria) do %>
6
- <div><%= object.yield(context: self) %></div>
6
+ <%= object.yield(context: self) %>
7
7
  <% end %>
@@ -1,33 +1,32 @@
1
1
  @import "../tokens/shadows";
2
+ @import "../tokens/border_radius";
3
+ @import "../tokens/shadows";
4
+ @import "../tokens/colors";
5
+ @import "child_kits/card_body";
6
+
7
+ $pb_card_border_width: 1px;
8
+ $pb_card_border_radius: $border_rad_heavier;
2
9
 
3
- .pb_card {
4
- width: 300px;
5
- height: 200px;
6
- background: white;
7
- border: 1px solid #dedede;
8
- padding: 20px;
9
- margin: 20px 0;
10
+ [class^=pb_card_kit] {
11
+ position: relative;
12
+ display: flex;
13
+ flex-direction: column;
14
+ min-width: 0;
15
+ word-wrap: break-word;
16
+ background-color: $card_light;
17
+ background-clip: border-box;
18
+ border: $pb_card_border_width solid $border_light;
19
+ border-radius: $pb_card_border_radius;
20
+ transition: all 0.3s ease;
10
21
 
11
- h1 {
12
- font-weight: normal;
13
- font-size: 28px;
22
+ &[class*=_selected] {
23
+ border-color: $primary;
24
+ border-width: $pb_card_border_width * 2;
14
25
  }
15
26
 
16
- &.shadow {
17
- &_shallow {
18
- box-shadow: $shadow_shallow;
19
- }
20
- &_default {
21
- box-shadow: $shadow_default;
22
- }
23
- &_deep {
24
- box-shadow: $shadow_deep;
25
- }
26
- &_deeper {
27
- box-shadow: $shadow_deeper;
28
- }
29
- &_deepest {
30
- box-shadow: $shadow_deepest;
27
+ @each $name, $shadow in $box_shadows {
28
+ &[class*=_#{$name}] {
29
+ box-shadow: $shadow;
31
30
  }
32
31
  }
33
32
  }
@@ -7,6 +7,8 @@ module Playbook
7
7
  configured_classname
8
8
  configured_data
9
9
  configured_id
10
+ configured_padding
11
+ configured_selected
10
12
  configured_shadow
11
13
  block].freeze
12
14
 
@@ -14,19 +16,27 @@ module Playbook
14
16
  classname: default_configuration,
15
17
  data: default_configuration,
16
18
  id: default_configuration,
19
+ padding: default_configuration,
20
+ selected: default_configuration,
17
21
  shadow: default_configuration,
18
22
  &block)
19
23
  self.configured_aria = aria
20
24
  self.configured_classname = classname
21
25
  self.configured_data = data
22
26
  self.configured_id = id
27
+ self.configured_padding = padding
28
+ self.configured_selected = selected
23
29
  self.configured_shadow = shadow
24
30
  self.block = block_given? ? block : nil
25
31
  end
26
32
 
33
+ def selected_class
34
+ true_value(configured_selected, "selected", "deselected")
35
+ end
36
+
27
37
  def shadow
28
- shadow_options = %w[shallow default deep deeper deepest]
29
- one_of_value(configured_shadow, shadow_options, "")
38
+ shadow_options = %w[none shallow default deep deeper deepest]
39
+ one_of_value(configured_shadow, shadow_options, "none")
30
40
  end
31
41
 
32
42
  def shadow_class
@@ -34,15 +44,21 @@ module Playbook
34
44
  end
35
45
 
36
46
  def yield(context:)
37
- context.capture(&block)
47
+ if !block.nil?
48
+ pb_card_body = Playbook::PbCard::CardBody.new(padding: configured_padding) do
49
+ context.capture(&block)
50
+ end
51
+ ApplicationController.renderer.render(partial: pb_card_body, as: :object)
52
+ end
38
53
  end
39
54
 
40
55
  def kit_class
41
56
  card_options = [
42
- "pb_card",
57
+ "pb_card_kit",
58
+ selected_class,
43
59
  shadow_class,
44
60
  ]
45
- card_options.reject(&:nil?).join(" ")
61
+ card_options.reject(&:nil?).join("_")
46
62
  end
47
63
 
48
64
  def to_partial_path
@@ -0,0 +1,58 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Playbook
4
+ module PbCard
5
+ class CardBody < Playbook::PbKit::Base
6
+ PROPS = %i[configured_aria
7
+ configured_classname
8
+ configured_data
9
+ configured_id
10
+ configured_padding
11
+ block].freeze
12
+
13
+ def initialize(aria: default_configuration,
14
+ classname: default_configuration,
15
+ data: default_configuration,
16
+ id: default_configuration,
17
+ padding: default_configuration,
18
+ &block)
19
+ self.configured_aria = aria
20
+ self.configured_classname = classname
21
+ self.configured_data = data
22
+ self.configured_id = id
23
+ self.configured_padding = padding
24
+ self.block = block_given? ? block : nil
25
+ end
26
+
27
+ def padding_class
28
+ padding_options = %w[none xs sm md lg xl]
29
+ one_of_value(configured_padding.to_s, padding_options, "md")
30
+ end
31
+
32
+ def yield(context:)
33
+ context.capture(&block)
34
+ end
35
+
36
+ def kit_class
37
+ card_body_options = [
38
+ "pb_card_body_kit",
39
+ padding_class,
40
+ ]
41
+ card_body_options.join("_")
42
+ end
43
+
44
+ def to_partial_path
45
+ "pb_card/child_kits/card_body"
46
+ end
47
+
48
+ private
49
+
50
+ DEFAULT = Object.new
51
+ private_constant :DEFAULT
52
+ def default_configuration
53
+ DEFAULT
54
+ end
55
+ attr_accessor(*PROPS)
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,7 @@
1
+ <%= content_tag(:div,
2
+ id: object.id,
3
+ data: object.data,
4
+ class: object.classname(object.kit_class),
5
+ aria: object.aria) do %>
6
+ <%= object.yield(context: self) %>
7
+ <% end %>
@@ -0,0 +1,24 @@
1
+ @import "../../tokens/spacing";
2
+
3
+ $pb_card_body_padding:(
4
+ none: 0,
5
+ xs: $space_xs,
6
+ sm: $space_sm,
7
+ md: $space_md,
8
+ lg: $space_lg,
9
+ xl: $space_xl,
10
+ );
11
+
12
+ [class^=pb_card_body_kit] {
13
+ flex-grow: 0;
14
+ flex-shrink: 0;
15
+ flex-basis: auto;
16
+ min-height: 1px;
17
+ border: 0;
18
+
19
+ @each $name, $padding_size in $pb_card_body_padding {
20
+ &[class*=_#{$name}] {
21
+ padding: $padding_size;
22
+ }
23
+ }
24
+ }
@@ -0,0 +1,11 @@
1
+ <%= pb_rails("card") do %>
2
+ Card content
3
+ <% end %>
4
+
5
+ <br>
6
+
7
+ <%= pb_rails("card") do %>
8
+ 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.
9
+ <br><br>
10
+ 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.
11
+ <% end %>
@@ -1,3 +1,3 @@
1
- <%= pb_rails("card", props: {shadow: "deepest"}) do %>
1
+ <%= pb_rails("card") do %>
2
2
  Card content
3
3
  <% end %>
@@ -0,0 +1,27 @@
1
+ <%= pb_rails("card", props: {padding: "none"}) do %>
2
+ Card content
3
+ <% end %>
4
+
5
+ <br>
6
+
7
+ <%= pb_rails("card", props: {padding: "xs"}) do %>
8
+ Card content
9
+ <% end %>
10
+
11
+ <br>
12
+
13
+ <%= pb_rails("card", props: {padding: "md"}) do %>
14
+ Card content
15
+ <% end %>
16
+
17
+ <br>
18
+
19
+ <%= pb_rails("card", props: {padding: "lg"}) do %>
20
+ Card content
21
+ <% end %>
22
+
23
+ <br>
24
+
25
+ <%= pb_rails("card", props: {padding: "xl"}) do %>
26
+ Card content
27
+ <% end %>