playbook_ui 7.8.3 → 7.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) 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 +0 -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/_rich_text_editor.scss +1 -0
  75. data/app/pb_kits/playbook/pb_rich_text_editor/_trix_styles.scss +375 -0
  76. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_preview.html.erb +25 -0
  77. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_preview.jsx +45 -0
  78. data/app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml +3 -1
  79. data/app/pb_kits/playbook/pb_rich_text_editor/docs/index.js +1 -0
  80. data/app/pb_kits/playbook/pb_select/_select.jsx +4 -3
  81. data/app/pb_kits/playbook/pb_select/select.test.js +51 -0
  82. data/app/pb_kits/playbook/pb_stat_change/_stat_change.html.erb +1 -1
  83. data/app/pb_kits/playbook/pb_stat_change/_stat_change.jsx +8 -4
  84. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_default.html.erb +1 -1
  85. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit.html.erb +17 -0
  86. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit.jsx +28 -0
  87. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit_two.html.erb +20 -0
  88. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit_two.jsx +31 -0
  89. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_unit_two.md +1 -0
  90. data/app/pb_kits/playbook/pb_stat_change/docs/example.yml +6 -4
  91. data/app/pb_kits/playbook/pb_stat_change/docs/index.js +2 -0
  92. data/app/pb_kits/playbook/pb_stat_change/stat_change.rb +12 -7
  93. data/app/pb_kits/playbook/pb_table/_table.scss +1 -57
  94. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_row.html.erb +1 -1
  95. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_row.jsx +1 -1
  96. data/app/pb_kits/playbook/pb_table/styles/_alignment.scss +32 -0
  97. data/app/pb_kits/playbook/pb_table/styles/_all.scss +4 -3
  98. data/app/pb_kits/playbook/pb_table/styles/_side_highlight.scss +24 -0
  99. data/app/pb_kits/playbook/pb_text_input/_text_input.jsx +8 -4
  100. data/app/pb_kits/playbook/pb_text_input/docs/_description.md +2 -1
  101. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_custom.jsx +7 -1
  102. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_default.jsx +78 -56
  103. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_error.jsx +19 -11
  104. data/app/pb_kits/playbook/pb_text_input/text_input.test.js +77 -0
  105. data/app/pb_kits/playbook/pb_textarea/_textarea.jsx +5 -5
  106. data/app/pb_kits/playbook/pb_tooltip/_tooltip.scss +10 -7
  107. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_default.html.erb +4 -4
  108. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_selectors.html.erb +17 -0
  109. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_selectors.md +3 -0
  110. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_white.html.erb +1 -1
  111. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_with_icon_circle.html.erb +10 -0
  112. data/app/pb_kits/playbook/pb_tooltip/docs/example.yml +2 -0
  113. data/app/pb_kits/playbook/pb_tooltip/index.js +87 -37
  114. data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +3 -1
  115. data/app/pb_kits/playbook/pb_typeahead/_typeahead.jsx +5 -1
  116. data/app/pb_kits/playbook/pb_typeahead/components/Option.jsx +2 -3
  117. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.html.erb +19 -3
  118. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.jsx +4 -2
  119. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.md +10 -2
  120. data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +5 -0
  121. data/app/pb_kits/playbook/react_rails_kits.js +1 -0
  122. data/lib/playbook.rb +6 -17
  123. data/lib/playbook/engine.rb +0 -3
  124. data/{app/pb_kits → lib}/playbook/props.rb +0 -0
  125. data/{app/pb_kits → lib}/playbook/props/array.rb +0 -0
  126. data/{app/pb_kits → lib}/playbook/props/base.rb +19 -3
  127. data/{app/pb_kits → lib}/playbook/props/boolean.rb +0 -0
  128. data/{app/pb_kits → lib}/playbook/props/date.rb +0 -0
  129. data/{app/pb_kits → lib}/playbook/props/enum.rb +0 -0
  130. data/{app/pb_kits → lib}/playbook/props/hash.rb +0 -0
  131. data/{app/pb_kits → lib}/playbook/props/hash_array.rb +0 -0
  132. data/{app/pb_kits → lib}/playbook/props/number.rb +0 -0
  133. data/{app/pb_kits → lib}/playbook/props/number_array.rb +0 -0
  134. data/{app/pb_kits → lib}/playbook/props/numeric.rb +0 -0
  135. data/{app/pb_kits → lib}/playbook/props/percentage.rb +0 -0
  136. data/{app/pb_kits → lib}/playbook/props/proc.rb +0 -0
  137. data/{app/pb_kits → lib}/playbook/props/string.rb +0 -0
  138. data/lib/playbook/version.rb +1 -1
  139. metadata +59 -28
  140. data/app/helpers/playbook/layout_helper.rb +0 -9
  141. data/app/pb_kits/playbook/pb_currency/docs/_currency_medium.html.erb +0 -21
  142. 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: f5edc6bf656e6d1e7aa9e67313cccebd45847f9573ad987747db8ab5400229cd
4
- data.tar.gz: 7a99d92a2b485d89e6ea294820012ac5d7719ab82cd85a7e36676520e3522973
3
+ metadata.gz: 7c5a4821bfce0e6bc6e695a4ff74d9872e3277dca2731cc3e729bb0c6d1975e0
4
+ data.tar.gz: '08f1d6bf254d950192ace6ce03f12db92a93ad9408550187a79d7dba119bd85a'
5
5
  SHA512:
6
- metadata.gz: 8df37ff76c9e25cde1b16ec5e292f54248b18f1aa0493fb3771dde68440dba1132647ea136be5ba47f07c3aa457fb3d76b3dc2296cd39bc1d8832909e0b36a2c
7
- data.tar.gz: 8d3e71da8e414e6806da81a7cdd70e5744afa26f9a387745d1c1f8c3a55e783416df85e4eaca2012dce1c3b2d5eec447ce2da8221802dbb4e8e760f38f4b25a8
6
+ metadata.gz: 16975af2a287902b301e43d4d071e5d290fa1e7650416cb01609e7b28e2b5c409c681fa449cba9be6d0471284574da665bd10e004852d5c41f5f654cc0bcb811
7
+ data.tar.gz: 42086dc050de63c48bac1d86fa4358320e6f7481162ad5791ca821bffefd8a8755032a55cf5cceb8617c78c39a11eeb717243618959bb21c47d3de858529df05
@@ -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"
@@ -89,4 +89,3 @@
89
89
  @import 'pb_time_stacked/time_stacked';
90
90
  @import 'pb_weekday_stacked/weekday_stacked';
91
91
  @import './utilities/spacing';
92
- @import "trix";
@@ -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;