playbook_ui 7.8.4 → 7.11.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (140) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/playbook/application_controller.rb +5 -3
  3. data/app/helpers/playbook/application_helper.rb +13 -19
  4. data/app/helpers/playbook/pb_doc_helper.rb +41 -20
  5. data/app/helpers/playbook/pb_kit_helper.rb +1 -25
  6. data/app/helpers/playbook/pb_sample_helper.rb +24 -23
  7. data/app/pb_kits/playbook/_playbook.scss +1 -1
  8. data/app/pb_kits/playbook/config/_kit_example.html.erb +18 -4
  9. data/app/pb_kits/playbook/config/_kit_ui.html.erb +21 -21
  10. data/app/pb_kits/playbook/pb_currency/_currency.html.erb +1 -1
  11. data/app/pb_kits/playbook/pb_currency/_currency.jsx +16 -1
  12. data/app/pb_kits/playbook/pb_currency/_currency.scss +23 -1
  13. data/app/pb_kits/playbook/pb_currency/currency.rb +22 -0
  14. data/app/pb_kits/playbook/pb_currency/docs/{_currency_small.html.erb → _currency_alignment.html.erb} +3 -3
  15. data/app/pb_kits/playbook/pb_currency/docs/{_currency_small.jsx → _currency_alignment.jsx} +5 -5
  16. data/app/pb_kits/playbook/pb_currency/docs/_currency_no_symbol.html.erb +7 -0
  17. data/app/pb_kits/playbook/pb_currency/docs/_currency_no_symbol.jsx +17 -0
  18. data/app/pb_kits/playbook/pb_currency/docs/{_currency_large.html.erb → _currency_size.html.erb} +8 -7
  19. data/app/pb_kits/playbook/pb_currency/docs/{_currency_large.jsx → _currency_size.jsx} +9 -8
  20. data/app/pb_kits/playbook/pb_currency/docs/_currency_variants.html.erb +24 -0
  21. data/app/pb_kits/playbook/pb_currency/docs/{_currency_medium.jsx → _currency_variants.jsx} +13 -10
  22. data/app/pb_kits/playbook/pb_currency/docs/example.yml +8 -6
  23. data/app/pb_kits/playbook/pb_currency/docs/index.js +4 -3
  24. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_anti_patterns.html.erb +23 -0
  25. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.html.erb +4 -4
  26. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.jsx +2 -2
  27. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.md +3 -1
  28. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_disabled.html.erb +8 -8
  29. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_flatpickr_methods.html.erb +27 -0
  30. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_flatpickr_methods.jsx +44 -0
  31. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_format.html.erb +4 -4
  32. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_min_max.html.erb +2 -2
  33. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.html.erb +1 -1
  34. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.jsx +1 -1
  35. data/app/pb_kits/playbook/pb_date_picker/docs/_description.md +4 -2
  36. data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +3 -1
  37. data/app/pb_kits/playbook/pb_date_picker/docs/index.js +1 -0
  38. data/app/pb_kits/playbook/pb_filter/Filter/FilterDouble.jsx +20 -3
  39. data/app/pb_kits/playbook/pb_filter/Filter/FilterSingle.jsx +51 -31
  40. data/app/pb_kits/playbook/pb_filter/Filter/FiltersPopover.jsx +3 -4
  41. data/app/pb_kits/playbook/pb_filter/Filter/SortMenu.jsx +2 -2
  42. data/app/pb_kits/playbook/pb_filter/Filter/index.jsx +17 -16
  43. data/app/pb_kits/playbook/pb_filter/_filter.html.erb +1 -1
  44. data/app/pb_kits/playbook/pb_filter/_filter.scss +0 -2
  45. data/app/pb_kits/playbook/pb_filter/docs/_filter_min_width.html.erb +41 -0
  46. data/app/pb_kits/playbook/pb_filter/docs/_filter_min_width.jsx +57 -0
  47. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.jsx +0 -41
  48. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.md +1 -0
  49. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_sort.html.erb +35 -0
  50. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_sort.jsx +47 -0
  51. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_sort.md +1 -0
  52. data/app/pb_kits/playbook/pb_filter/docs/_filter_only.html.erb +1 -1
  53. data/app/pb_kits/playbook/pb_filter/docs/_filter_single.html.erb +1 -1
  54. data/app/pb_kits/playbook/pb_filter/docs/example.yml +4 -0
  55. data/app/pb_kits/playbook/pb_filter/docs/index.js +2 -0
  56. data/app/pb_kits/playbook/pb_filter/filter.rb +1 -0
  57. data/app/pb_kits/playbook/pb_filter/templates/_core.html.erb +9 -9
  58. data/app/pb_kits/playbook/pb_filter/templates/_default.html.erb +1 -1
  59. data/app/pb_kits/playbook/pb_nav/_horizontal_nav.scss +22 -0
  60. data/app/pb_kits/playbook/pb_nav/_item.jsx +3 -0
  61. data/app/pb_kits/playbook/pb_nav/_subtle_mixin.scss +47 -0
  62. data/app/pb_kits/playbook/pb_nav/_vertical_nav.scss +2 -46
  63. data/app/pb_kits/playbook/pb_nav/docs/_new_tab.html.erb +6 -0
  64. data/app/pb_kits/playbook/pb_nav/docs/_new_tab.jsx +34 -0
  65. data/app/pb_kits/playbook/pb_nav/docs/_subtle_horizontal_nav.html.erb +6 -0
  66. data/app/pb_kits/playbook/pb_nav/docs/_subtle_horizontal_nav.jsx +33 -0
  67. data/app/pb_kits/playbook/pb_nav/docs/example.yml +4 -1
  68. data/app/pb_kits/playbook/pb_nav/docs/index.js +2 -0
  69. data/app/pb_kits/playbook/pb_nav/item.rb +5 -2
  70. data/app/pb_kits/playbook/pb_radio/_radio.jsx +4 -3
  71. data/app/pb_kits/playbook/pb_radio/docs/_radio_default.jsx +3 -0
  72. data/app/pb_kits/playbook/pb_radio/docs/index.js +1 -0
  73. data/app/pb_kits/playbook/pb_radio/radio.test.js +71 -0
  74. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_preview.html.erb +25 -0
  75. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_preview.jsx +45 -0
  76. data/app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml +3 -1
  77. data/app/pb_kits/playbook/pb_rich_text_editor/docs/index.js +1 -0
  78. data/app/pb_kits/playbook/pb_select/_select.jsx +4 -3
  79. data/app/pb_kits/playbook/pb_select/select.test.js +51 -0
  80. data/app/pb_kits/playbook/pb_stat_change/_stat_change.html.erb +1 -1
  81. data/app/pb_kits/playbook/pb_stat_change/_stat_change.jsx +8 -4
  82. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_default.html.erb +1 -1
  83. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit.html.erb +17 -0
  84. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit.jsx +28 -0
  85. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit_two.html.erb +20 -0
  86. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit_two.jsx +31 -0
  87. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit_two.md +1 -0
  88. data/app/pb_kits/playbook/pb_stat_change/docs/example.yml +6 -4
  89. data/app/pb_kits/playbook/pb_stat_change/docs/index.js +2 -0
  90. data/app/pb_kits/playbook/pb_stat_change/stat_change.rb +12 -7
  91. data/app/pb_kits/playbook/pb_table/_table.scss +1 -57
  92. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_row.html.erb +1 -1
  93. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_row.jsx +1 -1
  94. data/app/pb_kits/playbook/pb_table/styles/_alignment.scss +32 -0
  95. data/app/pb_kits/playbook/pb_table/styles/_all.scss +4 -3
  96. data/app/pb_kits/playbook/pb_table/styles/_side_highlight.scss +24 -0
  97. data/app/pb_kits/playbook/pb_text_input/_text_input.jsx +8 -4
  98. data/app/pb_kits/playbook/pb_text_input/docs/_description.md +2 -1
  99. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_custom.jsx +7 -1
  100. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_default.jsx +78 -56
  101. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_error.jsx +19 -11
  102. data/app/pb_kits/playbook/pb_text_input/text_input.test.js +77 -0
  103. data/app/pb_kits/playbook/pb_textarea/_textarea.jsx +5 -5
  104. data/app/pb_kits/playbook/pb_tooltip/_tooltip.scss +10 -7
  105. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_default.html.erb +4 -4
  106. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_selectors.html.erb +17 -0
  107. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_selectors.md +3 -0
  108. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_white.html.erb +1 -1
  109. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_with_icon_circle.html.erb +10 -0
  110. data/app/pb_kits/playbook/pb_tooltip/docs/example.yml +2 -0
  111. data/app/pb_kits/playbook/pb_tooltip/index.js +87 -37
  112. data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +3 -1
  113. data/app/pb_kits/playbook/pb_typeahead/_typeahead.jsx +5 -1
  114. data/app/pb_kits/playbook/pb_typeahead/components/Option.jsx +2 -3
  115. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.html.erb +19 -3
  116. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.jsx +4 -2
  117. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.md +10 -2
  118. data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +5 -0
  119. data/app/pb_kits/playbook/react_rails_kits.js +1 -0
  120. data/lib/playbook.rb +6 -17
  121. data/lib/playbook/engine.rb +0 -3
  122. data/{app/pb_kits → lib}/playbook/props.rb +0 -0
  123. data/{app/pb_kits → lib}/playbook/props/array.rb +0 -0
  124. data/{app/pb_kits → lib}/playbook/props/base.rb +19 -3
  125. data/{app/pb_kits → lib}/playbook/props/boolean.rb +0 -0
  126. data/{app/pb_kits → lib}/playbook/props/date.rb +0 -0
  127. data/{app/pb_kits → lib}/playbook/props/enum.rb +0 -0
  128. data/{app/pb_kits → lib}/playbook/props/hash.rb +0 -0
  129. data/{app/pb_kits → lib}/playbook/props/hash_array.rb +0 -0
  130. data/{app/pb_kits → lib}/playbook/props/number.rb +0 -0
  131. data/{app/pb_kits → lib}/playbook/props/number_array.rb +0 -0
  132. data/{app/pb_kits → lib}/playbook/props/numeric.rb +0 -0
  133. data/{app/pb_kits → lib}/playbook/props/percentage.rb +0 -0
  134. data/{app/pb_kits → lib}/playbook/props/proc.rb +0 -0
  135. data/{app/pb_kits → lib}/playbook/props/string.rb +0 -0
  136. data/lib/playbook/version.rb +1 -1
  137. metadata +58 -28
  138. data/app/helpers/playbook/layout_helper.rb +0 -9
  139. data/app/pb_kits/playbook/pb_currency/docs/_currency_medium.html.erb +0 -21
  140. data/app/pb_kits/playbook/pb_table/styles/_mixins.scss +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aacf4025dd00629a9fa896eb6135bc90214c051b47bdaca20246f2120f4b5716
4
- data.tar.gz: 14aa4b946d4c5c154e2d2cfd323fd99fbcb59c7b67a00a362867ab12c7ce6bc2
3
+ metadata.gz: 750f900a7435e934c7fe3d2f382e04d1628fcf682514e62df328660c508f08a0
4
+ data.tar.gz: 7a01c079573dda9db0f8ca18009fcfbdeeba80df54c7cc89d1da00f1b141ef0c
5
5
  SHA512:
6
- metadata.gz: 27d3d65a4b1edd271e0ffa90d1bde44f3a50d14e5c887c3e8de9818ac7f42e48629feae5f739c4763aab38819fd127f64df09c9d7b0a87e27aaec376845c8eb2
7
- data.tar.gz: 26322de19165c686939370df7ba0fd7328f9e8b9d5b46100b9e916ec371cbe2efe3344f23c2ce970140801647fb1e0aea5aed5f14f28c9fb644d193d7b7dbd1d
6
+ metadata.gz: f914cdd6e7b1be3a8bb1304ac9d2bd9eefacfffae176aead556ecb4bedb0f0b6df476d5c84e4322d240ffa42982bf5c742df90e34472a0a51a262759d4533951
7
+ data.tar.gz: 4721bae1266b4ede5db496a9f765c3912e2306b8c9fb97155a95ac8d85486027ba11b9f6b139de4ae0b16de4c530a42fc0d4a36aa239329ea226bbb6a8e9d6c5
@@ -3,11 +3,13 @@
3
3
  module Playbook
4
4
  class ApplicationController < ActionController::Base
5
5
  helper Webpacker::Helper
6
- helper Playbook::PbKitHelper
6
+ helper Playbook::ApplicationHelper
7
7
  helper Playbook::PbDocHelper
8
8
  helper Playbook::PbSampleHelper
9
9
  append_view_path Playbook::Engine.root + "app/pb_kits"
10
- end
11
10
 
12
-
11
+ def delete_dark_mode_cookie
12
+ cookies.delete :dark_mode
13
+ end
14
+ end
13
15
  end
@@ -1,36 +1,30 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "webpacker"
4
- require "webpacker/react/railtie" if defined?(Rails)
5
- require "webpacker/react/helpers"
6
- require "webpacker/react/component"
7
-
8
3
  module Playbook
9
4
  module ApplicationHelper
10
- include ::Webpacker::Helper
11
5
  include ::Webpacker::React::Helpers
6
+ include ::Playbook::PbKitHelper
12
7
 
13
8
  def current_webpacker_instance
14
9
  Playbook.webpacker
15
10
  end
16
11
 
17
- def dark_mode
18
- if cookies[:dark_mode] == "true"
19
- true
20
- else
21
- false
22
- end
12
+ def pb_rails(kit, props: {}, &block)
13
+ super kit, props: dark_mode_props(props), &block
14
+ end
15
+
16
+ def pb_react(kit, props: {}, options: {})
17
+ react_component kit.camelize, dark_mode_props(props), options
23
18
  end
24
19
 
20
+ private
21
+
25
22
  def dark_mode_props(props)
26
- if cookies[:dark_mode] == "true"
27
- props.merge(dark: dark_mode)
28
- elsif cookies[:dark_mode] == "false"
29
- props.merge(dark: dark_mode)
30
- else
31
- props
32
- end
23
+ (props || {}).merge(dark: dark_mode?)
33
24
  end
34
25
 
26
+ def dark_mode?
27
+ cookies[:dark_mode].eql? "true"
28
+ end
35
29
  end
36
30
  end
@@ -17,50 +17,40 @@ module Playbook
17
17
  end
18
18
  end
19
19
 
20
- def read_file(filename)
21
- if File.file?(filename)
22
- File.read(filename)
23
- else
24
- ""
25
- end
26
- end
27
-
28
20
  def kit_path(kit)
29
21
  "#{Playbook::Engine.root}/app/pb_kits/playbook/pb_#{kit}"
30
22
  end
31
23
 
32
24
  def get_kit_description(kit)
33
- filename = "#{Playbook::Engine.root}/app/pb_kits/playbook/pb_#{kit}/docs/_description.md"
34
- read_file(filename)
25
+ read_source_file "app/pb_kits/playbook/pb_#{kit}/docs/_description.md"
35
26
  end
36
27
 
37
28
  def get_per_sample_descriptions(kit, key)
38
- filename = "#{Playbook::Engine.root}/app/pb_kits/playbook/pb_#{kit}/docs/_#{key}.md"
39
- read_file(filename)
29
+ read_source_file "app/pb_kits/playbook/pb_#{kit}/docs/_#{key}.md"
40
30
  end
41
31
 
42
32
  def get_kit_footer(kit)
43
- filename = "#{Playbook::Engine.root}/app/pb_kits/playbook/pb_#{kit}/docs/_footer.md"
44
- read_file(filename)
33
+ read_source_file "app/pb_kits/playbook/pb_#{kit}/docs/_footer.md"
45
34
  end
46
35
 
47
- def pb_kit(kit: "", type: "rails", show_code: true)
36
+ def pb_kit(kit: "", type: "rails", show_code: true, limit_examples: false)
48
37
  @type = type
49
38
  @kit_examples = get_kit_examples(kit, type)
39
+ @limit_examples = limit_examples
50
40
  @show_code = show_code
51
41
  render partial: "config/kit_example"
52
42
  end
53
43
 
54
- def pb_kits(type: "rails")
44
+ def pb_kits(type: "rails", limit_examples: false)
55
45
  display_kits = []
56
46
  kits = get_kits
57
47
  kits.each do |kit|
58
48
  if kit.is_a?(Hash)
59
49
  nav_hash_array(kit).each do |sub_kit|
60
- display_kits << render_pb_doc_kit(sub_kit, type, false)
50
+ display_kits << render_pb_doc_kit(sub_kit, type, false, limit_examples)
61
51
  end
62
52
  else
63
- display_kits << render_pb_doc_kit(kit, type, false)
53
+ display_kits << render_pb_doc_kit(kit, type, false, limit_examples)
64
54
  end
65
55
  end
66
56
  raw("<div class='pb--docItem'>" + display_kits.join("</div><div class='pb--docItem'>") + "</div>")
@@ -79,10 +69,10 @@ module Playbook
79
69
  raw("<div class='pb--docItem'>" + display_kits.join("</div><div class='pb--docItem'>") + "</div>")
80
70
  end
81
71
 
82
- def render_pb_doc_kit(kit, type, code = true)
72
+ def render_pb_doc_kit(kit, type, code = true, limit_examples)
83
73
  title = render_clickable_title(kit, type)
84
74
  ui = raw("<div class='pb--docItem-ui'>
85
- #{pb_kit(kit: kit, type: type, show_code: code)}</div>")
75
+ #{pb_kit(kit: kit, type: type, show_code: code, limit_examples: limit_examples)}</div>")
86
76
  title + ui
87
77
  end
88
78
 
@@ -148,6 +138,37 @@ module Playbook
148
138
  (!kit.nil? && @kit == link)
149
139
  end
150
140
 
141
+ def read_source_file(*args)
142
+ path = Playbook::Engine.root.join(*args)
143
+ path.exist? ? path.read : ""
144
+ end
145
+
146
+ def format_search_hash(kit)
147
+ label_value_hash = {
148
+ label: kit.to_s.titleize,
149
+ value: @type == "react" || @type.nil? ? "/kits/#{kit}/react" : "/kits/#{kit}",
150
+ }
151
+ label_value_hash
152
+ end
153
+
154
+ def search_list
155
+ all_kits = []
156
+ formatted_kits = []
157
+ MENU["kits"].each do |kit|
158
+ if kit.is_a? Hash
159
+ kit.values[0].each do |sub_kit|
160
+ all_kits.push(sub_kit)
161
+ end
162
+ else
163
+ all_kits.push(kit)
164
+ end
165
+ end
166
+ all_kits.sort!.each do |sorted_kit|
167
+ formatted_kits.push(format_search_hash(sorted_kit))
168
+ end
169
+ formatted_kits
170
+ end
171
+
151
172
  private
152
173
 
153
174
  def get_kit_examples(kit, type)
@@ -1,41 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "webpacker/react/railtie" if defined?(Rails)
4
- require "webpacker/react/helpers"
5
- require "webpacker/react/component"
6
-
7
3
  module Playbook
8
4
  module PbKitHelper
9
-
10
5
  def pb_rails(kit, props: {}, &block)
11
6
  previous = prefix_partial_path_with_controller_namespace
12
7
  self.prefix_partial_path_with_controller_namespace = false
13
- kit = build_view_model(kit.to_s, rails_props(props), &block)
8
+ kit = build_view_model(kit.to_s, props, &block)
14
9
  render(partial: kit, as: :object)
15
10
  ensure
16
11
  self.prefix_partial_path_with_controller_namespace = previous
17
12
  end
18
13
 
19
- def pb_react(kit, props:{dark: react_props}, options: {})
20
- ::Webpacker::React::Component.new(kit.camelize).render(props, options)
21
- end
22
-
23
14
  private
24
- def rails_props(props)
25
- if @playbook.nil?
26
- props
27
- else
28
- dark_mode_props(props)
29
- end
30
- end
31
-
32
- def react_props
33
- if @playbook.nil?
34
- false
35
- else
36
- dark_mode
37
- end
38
- end
39
15
 
40
16
  def is_subkit?(kit)
41
17
  kit.match(%r{[/\\]})
@@ -2,26 +2,10 @@
2
2
 
3
3
  module Playbook
4
4
  module PbSampleHelper
5
- def has_sample_type?(sample, type)
6
- type ||= "rails"
7
- if type == "rails"
8
- Dir["../../views/playbook/samples/#{sample}/*.html.erb"].empty?
9
- elsif type == "react"
10
- Dir["../../views/playbook/samples/#{sample}/*.jsx"].empty?
11
- end
12
- end
13
-
14
- def pb_sample(sample: "", type: "rails")
15
- @type = type
16
- @sample = sample
17
- end
18
-
19
- def read_file(filename)
20
- if File.file?(filename)
21
- File.read(filename)
22
- else
23
- ""
24
- end
5
+ def kits_used(sample)
6
+ code = get_raw_code(sample, "rails")
7
+ kits_array = code.scan(/pb_rails\("(\w+)(?:"|\/)/)
8
+ kits_array.uniq
25
9
  end
26
10
 
27
11
  def get_raw_code(sample, type)
@@ -30,9 +14,8 @@ module Playbook
30
14
  elsif type == "react"
31
15
  ext = "jsx"
32
16
  end
33
- filename = "#{Playbook::Engine.root}/app/views/playbook/samples/#{sample}/index.#{ext}"
34
- contents = read_file(filename)
35
- contents
17
+
18
+ read_source_file "app/views/playbook/samples", sample, "index.#{ext}"
36
19
  end
37
20
 
38
21
  def get_sample_code_content(sample, type)
@@ -45,6 +28,24 @@ module Playbook
45
28
  raw rouge(code, rouge_type)
46
29
  end
47
30
 
31
+ def get_samples(kit)
32
+ sample_yaml = YAML.load_file("#{Playbook::Engine.root}/app/pb_kits/playbook/data/samples.yml")
33
+ all_samples = []
34
+
35
+ sample_yaml.each do |_category, sample|
36
+ all_samples.push(sample)
37
+ end
38
+
39
+ output = ""
40
+ samples_using_kit = []
41
+ all_samples[0].each do |sample|
42
+ filepath = "#{Playbook::Engine.root}/app/views/playbook/samples/#{sample}/index.html.erb"
43
+ output = `grep -l 'pb_rails(\"#{kit}' #{filepath}`
44
+ samples_using_kit.push(sample) if output.chomp == filepath
45
+ end
46
+ samples_using_kit
47
+ end
48
+
48
49
  def render_sample_ui(sample, type)
49
50
  if type == "rails"
50
51
  render template: "playbook/samples/#{sample}/index.html.erb"
@@ -88,4 +88,4 @@
88
88
  @import 'pb_user_badge/user_badge';
89
89
  @import 'pb_time_stacked/time_stacked';
90
90
  @import 'pb_weekday_stacked/weekday_stacked';
91
- @import './utilities/spacing';
91
+ @import './utilities/spacing';
@@ -1,8 +1,22 @@
1
1
  <%if !@kit_examples[:examples].nil? %>
2
- <% @kit_examples[:examples].each do |kit_example| %>
3
- <% kit_example.each do |key, item| %>
4
- <%=pb_rails("card", props:{classname: "pb--doc", padding:"none"})do%>
5
- <%= render partial: "config/kit_ui", locals: { key: key, type: @type, item: item, show_code: @show_code } %>
2
+ <% if @limit_examples %>
3
+ <% @kit_examples[:examples].each_with_index do |kit_example, index| %>
4
+ <% kit_example.each do |key, item| %>
5
+ <% if index == 0 %>
6
+ <%= pb_rails("card", props: { classname: "pb--doc", padding:"none" }) do %>
7
+ <%= render partial: "config/kit_ui", locals: { key: key, type: @type, item: item, show_code: @show_code } %>
8
+ <% end %>
9
+ <% elsif index > 0 %>
10
+ <% break %>
11
+ <% end %>
12
+ <% end %>
13
+ <% end %>
14
+ <% else %>
15
+ <% @kit_examples[:examples].each do |kit_example| %>
16
+ <% kit_example.each do |key, item| %>
17
+ <%= pb_rails("card", props: { classname: "pb--doc", padding:"none" }) do %>
18
+ <%= render partial: "config/kit_ui", locals: { key: key, type: @type, item: item, show_code: @show_code } %>
19
+ <% end %>
6
20
  <% end %>
7
21
  <% end %>
8
22
  <% end %>
@@ -18,24 +18,24 @@
18
18
  <br>
19
19
  </div>
20
20
 
21
- <% if @show_code%>
22
- <div class="markdown pb--kit-example-markdown <%= cookies[:dark_mode] == "true" ? "dark" : "" %>">
23
- <%= markdown(get_per_sample_descriptions(@kit_examples[:kit], key)) %>
24
- </div>
25
- <div class="pb--codeControls">
26
- <ul>
27
- <li>
28
- <a href="#" data-toggle="code_example">Code Example</a>
29
- </li>
30
- </ul>
31
- </div>
32
- <div class="pb--codeCopy" data-action="toggle" data-togglable="code_example" style="display: none" >
33
- <%= pb_rails("section_separator")%>
34
- <a href="#" data-toggle="false" class="pb--close-toggle">Close</a>
35
- <% if type == "rails" %>
36
- <pre class="highlight"><%= raw rouge(contents, "erb") %></pre>
37
- <% elsif type == "react" %>
38
- <pre class="highlight"><%= raw rouge(contents, "react")%></pre>
39
- <% end %>
40
- </div>
41
- <% end %>
21
+ <% if @show_code %>
22
+ <div class="markdown pb--kit-example-markdown <%= cookies[:dark_mode] == "true" ? "dark" : "" %>">
23
+ <%= markdown(get_per_sample_descriptions(@kit_examples[:kit], key)) %>
24
+ </div>
25
+ <div class="pb--codeControls">
26
+ <ul>
27
+ <li>
28
+ <a href="#" data-toggle="code_example">Code Example</a>
29
+ </li>
30
+ </ul>
31
+ </div>
32
+ <div class="pb--codeCopy" data-action="toggle" data-togglable="code_example" style="display: none" >
33
+ <%= pb_rails("section_separator")%>
34
+ <a href="#" data-toggle="false" class="pb--close-toggle">Close</a>
35
+ <% if type == "rails" %>
36
+ <pre class="highlight"><%= raw rouge(contents, "erb") %></pre>
37
+ <% elsif type == "react" %>
38
+ <pre class="highlight"><%= raw rouge(contents, "react")%></pre>
39
+ <% end %>
40
+ </div>
41
+ <% end %>
@@ -6,7 +6,7 @@
6
6
 
7
7
  <%= pb_rails("caption", props: { text: object.label }) %>
8
8
 
9
- <div class="pb_currency_wrapper">
9
+ <div class=<%= "pb_currency_wrapper#{object.variant_class || object.emphasized_class}" %>>
10
10
  <%= pb_rails("body", props: object.currency_wrapper_props) do %>
11
11
  <%= object.symbol %>
12
12
  <% end %>
@@ -14,10 +14,12 @@ type CurrencyProps = {
14
14
  className?: string,
15
15
  dark?: boolean,
16
16
  data?: object,
17
+ emphasized?: boolean,
17
18
  id?: string,
18
19
  label?: string,
19
20
  size?: 'sm' | 'md' | 'lg',
20
21
  symbol?: string,
22
+ variant?: 'default' | 'light' | 'bold',
21
23
  unit?: string,
22
24
  }
23
25
 
@@ -33,15 +35,28 @@ const Currency = (props: CurrencyProps) => {
33
35
  aria = {},
34
36
  amount,
35
37
  data = {},
38
+ emphasized = true,
36
39
  id,
37
40
  unit,
38
41
  className,
39
42
  label = '',
40
43
  size = 'sm',
41
44
  symbol = '$',
45
+ variant = 'default',
42
46
  dark = false,
43
47
  } = props
44
48
 
49
+ const emphasizedClass = emphasized ? '' : '_deemphasized'
50
+
51
+ let variantClass
52
+ if (size === 'sm') {
53
+ if (variant === 'light') {
54
+ variantClass = '_light'
55
+ } else if (variant === 'bold') {
56
+ variantClass = '_bold'
57
+ }
58
+ }
59
+
45
60
  const [whole, decimal = '00'] = amount.split('.')
46
61
  const ariaProps = buildAriaProps(aria)
47
62
  const dataProps = buildDataProps(data)
@@ -60,7 +75,7 @@ const Currency = (props: CurrencyProps) => {
60
75
  >
61
76
  <Caption>{label}</Caption>
62
77
 
63
- <div className="pb_currency_wrapper">
78
+ <div className={`pb_currency_wrapper${variantClass || emphasizedClass}`}>
64
79
  <Body
65
80
  className="dollar_sign"
66
81
  color="light"
@@ -24,6 +24,28 @@
24
24
  [class^=pb_currency_wrapper] {
25
25
  display: flex;
26
26
 
27
+ &[class*=_deemphasized] [class^=pb_body_kit][class*=_light] {
28
+ color: $text_lt_default;
29
+ }
30
+
31
+ &[class*=_deemphasized] [class^=pb_title_kit][class*=_4] {
32
+ font-weight: $regular;
33
+ }
34
+
35
+ &[class*=_light] [class^=pb_body_kit][class*=_light] {
36
+ color: $text_lt_light;
37
+ }
38
+
39
+ &[class*=_light] [class^=pb_title_kit][class*=_4] {
40
+ color: $text_lt_light;
41
+ font-weight: $regular;
42
+ }
43
+
44
+ &[class*=_bold] [class^=pb_body_kit][class*=_light] {
45
+ color: $text_lt_default;
46
+ font-weight: $bolder;
47
+ }
48
+
27
49
  & > [class*=dollar_sign] {
28
50
  display: flex;
29
51
  align-items: flex-start;
@@ -45,7 +67,7 @@
45
67
  padding-left: $space_xs - 7px;
46
68
  padding-right: $space_xs - 7px;
47
69
  }
48
-
70
+
49
71
  &[class*=_sm] [class^=pb_currency_wrapper] [class*=pb_currency_value] {
50
72
  line-height: 1.4;
51
73
  padding-left: $space_xs - 7px;