playbook_ui 7.0.1.pre.alpha10 → 7.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (222) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -6
  3. data/app/controllers/playbook/application_controller.rb +1 -4
  4. data/app/helpers/playbook/pb_kit_helper.rb +2 -2
  5. data/app/pb_kits/playbook/_playbook.scss +1 -0
  6. data/app/pb_kits/playbook/index.js +6 -0
  7. data/app/pb_kits/playbook/pb_avatar/_avatar.jsx +5 -1
  8. data/app/pb_kits/playbook/pb_badge/_badge.jsx +4 -2
  9. data/app/pb_kits/playbook/pb_bar_graph/_bar_graph.html.erb +1 -12
  10. data/app/pb_kits/playbook/pb_bar_graph/_bar_graph.jsx +1 -1
  11. data/app/pb_kits/playbook/pb_bar_graph/bar_graph.rb +2 -1
  12. data/app/pb_kits/playbook/pb_button/_button.jsx +5 -1
  13. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar.jsx +5 -1
  14. data/app/pb_kits/playbook/pb_caption/_caption.jsx +2 -2
  15. data/app/pb_kits/playbook/pb_checkbox/_checkbox.jsx +5 -2
  16. data/app/pb_kits/playbook/pb_checkbox/checkbox.rb +3 -1
  17. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_options.html.erb +10 -0
  18. data/app/pb_kits/playbook/pb_checkbox/docs/example.yml +1 -0
  19. data/app/pb_kits/playbook/pb_circle_chart/_circle_chart.html.erb +1 -1
  20. data/app/pb_kits/playbook/pb_circle_chart/_circle_chart.jsx +130 -0
  21. data/app/pb_kits/playbook/pb_circle_chart/_circle_chart.scss +1 -1
  22. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_block.jsx +39 -0
  23. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors.jsx +29 -0
  24. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_default.jsx +28 -0
  25. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_inner_sizes.jsx +117 -0
  26. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_live_data.jsx +53 -0
  27. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_rounded.jsx +30 -0
  28. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_labels.jsx +45 -0
  29. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_legend_kit.jsx +30 -0
  30. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_title.jsx +45 -0
  31. data/app/pb_kits/playbook/pb_circle_chart/docs/example.yml +11 -0
  32. data/app/pb_kits/playbook/pb_circle_chart/docs/index.js +9 -0
  33. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.jsx +5 -1
  34. data/app/pb_kits/playbook/pb_contact/_contact.jsx +5 -1
  35. data/app/pb_kits/playbook/pb_currency/_currency.jsx +5 -1
  36. data/app/pb_kits/playbook/pb_dashboard_value/_dashboard_value.jsx +5 -1
  37. data/app/pb_kits/playbook/pb_date/date.rb +2 -1
  38. data/app/pb_kits/playbook/pb_date/docs/_date_default.html.erb +8 -1
  39. data/app/pb_kits/playbook/pb_date/docs/_date_timezone.html.erb +51 -0
  40. data/app/pb_kits/playbook/pb_date/docs/_date_timezone.md +6 -0
  41. data/app/pb_kits/playbook/pb_date/docs/_description.md +2 -0
  42. data/app/pb_kits/playbook/pb_date/docs/example.yml +1 -0
  43. data/app/pb_kits/playbook/pb_date_picker/_date_picker.jsx +7 -4
  44. data/app/pb_kits/playbook/pb_date_picker/_date_picker.scss +0 -4
  45. data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +3 -3
  46. data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.js +8 -10
  47. data/app/pb_kits/playbook/pb_date_picker/docs/{_date_picker_read_only.html.erb → _date_picker_allow_input.html.erb} +1 -1
  48. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_allow_input.jsx +13 -0
  49. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_allow_input.md +1 -0
  50. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_on_change.jsx +34 -0
  51. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_on_change.md +3 -0
  52. data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +3 -2
  53. data/app/pb_kits/playbook/pb_date_picker/docs/index.js +2 -1
  54. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_calendar_input_icon.scss +1 -0
  55. data/app/pb_kits/playbook/pb_date_range_stacked/_date_range_stacked.jsx +5 -1
  56. data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.jsx +2 -2
  57. data/app/pb_kits/playbook/pb_date_year_stacked/_date_year_stacked.jsx +5 -1
  58. data/app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.html.erb +1 -8
  59. data/app/pb_kits/playbook/pb_distribution_bar/distribution_bar.rb +7 -0
  60. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.jsx +2 -2
  61. data/app/pb_kits/playbook/pb_flex/_flex.jsx +2 -2
  62. data/app/pb_kits/playbook/pb_flex/_flex_item.jsx +1 -1
  63. data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +9 -1
  64. data/app/pb_kits/playbook/pb_form/form_builder/checkbox_field.rb +7 -2
  65. data/app/pb_kits/playbook/pb_form_pill/_form_pill.jsx +3 -2
  66. data/app/pb_kits/playbook/pb_gauge/_gauge.jsx +1 -1
  67. data/app/pb_kits/playbook/pb_highlight/_highlight.jsx +1 -1
  68. data/app/pb_kits/playbook/pb_home_address_street/_home_address_street.jsx +2 -2
  69. data/app/pb_kits/playbook/pb_icon/_icon.jsx +2 -2
  70. data/app/pb_kits/playbook/pb_icon_value/_icon_value.jsx +5 -1
  71. data/app/pb_kits/playbook/pb_image/_image.jsx +5 -1
  72. data/app/pb_kits/playbook/pb_label_pill/_label_pill.jsx +5 -1
  73. data/app/pb_kits/playbook/pb_layout/_layout.jsx +4 -4
  74. data/app/pb_kits/playbook/pb_line_graph/_line_graph.html.erb +1 -13
  75. data/app/pb_kits/playbook/pb_line_graph/_line_graph.jsx +1 -1
  76. data/app/pb_kits/playbook/pb_line_graph/line_graph.rb +2 -1
  77. data/app/pb_kits/playbook/pb_list/_list.jsx +3 -2
  78. data/app/pb_kits/playbook/pb_list/_list_item.jsx +3 -2
  79. data/app/pb_kits/playbook/pb_logistic/_logistic.jsx +5 -1
  80. data/app/pb_kits/playbook/pb_message/_message.jsx +5 -1
  81. data/app/pb_kits/playbook/pb_multiple_users/_multiple_users.jsx +5 -2
  82. data/app/pb_kits/playbook/pb_nav/_nav.jsx +2 -2
  83. data/app/pb_kits/playbook/pb_person/_person.jsx +5 -1
  84. data/app/pb_kits/playbook/pb_person_contact/_person_contact.jsx +12 -7
  85. data/app/pb_kits/playbook/pb_person_contact/docs/_person_contact_with_wrong_numbers.jsx +1 -0
  86. data/app/pb_kits/playbook/pb_popover/_popover.jsx +5 -1
  87. data/app/pb_kits/playbook/pb_progress_simple/_progress_simple.jsx +4 -4
  88. data/app/pb_kits/playbook/pb_progress_step/_progress_step.jsx +1 -1
  89. data/app/pb_kits/playbook/pb_radio/_radio.html.erb +1 -1
  90. data/app/pb_kits/playbook/pb_radio/docs/_radio_options.html.erb +9 -0
  91. data/app/pb_kits/playbook/pb_radio/docs/example.yml +1 -0
  92. data/app/pb_kits/playbook/pb_radio/radio.rb +2 -4
  93. data/app/pb_kits/playbook/pb_section_separator/_section_separator.jsx +1 -1
  94. data/app/pb_kits/playbook/pb_select/_select.scss +1 -1
  95. data/app/pb_kits/playbook/pb_stat_change/_stat_change.jsx +2 -2
  96. data/app/pb_kits/playbook/pb_stat_value/_stat_value.jsx +3 -3
  97. data/app/pb_kits/playbook/pb_stat_value/docs/_stat_value_default.jsx +6 -1
  98. data/app/pb_kits/playbook/pb_table/_table.jsx +2 -2
  99. data/app/pb_kits/playbook/pb_text_input/_text_input.jsx +1 -1
  100. data/app/pb_kits/playbook/pb_text_input/_text_input.scss +17 -8
  101. data/app/pb_kits/playbook/pb_textarea/_textarea.jsx +1 -1
  102. data/app/pb_kits/playbook/pb_time/_time.html.erb +23 -17
  103. data/app/pb_kits/playbook/pb_time/_time.jsx +22 -13
  104. data/app/pb_kits/playbook/pb_time/_time.scss +16 -8
  105. data/app/pb_kits/playbook/pb_time/docs/_time_align.html.erb +18 -0
  106. data/app/pb_kits/playbook/pb_time/docs/_time_align.jsx +3 -3
  107. data/app/pb_kits/playbook/pb_time/docs/_time_default.html.erb +47 -3
  108. data/app/pb_kits/playbook/pb_time/docs/_time_default.jsx +33 -4
  109. data/app/pb_kits/playbook/pb_time/docs/_time_sizes.html.erb +11 -0
  110. data/app/pb_kits/playbook/pb_time/docs/_time_sizes.jsx +19 -0
  111. data/app/pb_kits/playbook/pb_time/docs/_time_timestamp.html.erb +3 -1
  112. data/app/pb_kits/playbook/pb_time/docs/_time_timestamp.jsx +0 -7
  113. data/app/pb_kits/playbook/pb_time/docs/_time_timezone.html.erb +38 -0
  114. data/app/pb_kits/playbook/pb_time/docs/_time_timezone.jsx +12 -14
  115. data/app/pb_kits/playbook/pb_time/docs/example.yml +6 -2
  116. data/app/pb_kits/playbook/pb_time/docs/index.js +1 -0
  117. data/app/pb_kits/playbook/pb_time/time.rb +14 -2
  118. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.jsx +1 -1
  119. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.jsx +3 -3
  120. data/app/pb_kits/playbook/pb_timestamp/_timestamp.jsx +1 -1
  121. data/app/pb_kits/playbook/pb_title/_title.jsx +5 -1
  122. data/app/pb_kits/playbook/pb_title_count/_title_count.jsx +5 -1
  123. data/app/pb_kits/playbook/pb_title_detail/_title_detail.jsx +5 -5
  124. data/app/pb_kits/playbook/pb_toggle/_toggle.jsx +3 -3
  125. data/app/pb_kits/playbook/pb_toggle/_toggle.scss +41 -43
  126. data/app/pb_kits/playbook/pb_toggle/docs/example.yml +0 -2
  127. data/app/pb_kits/playbook/pb_toggle/docs/index.js +0 -1
  128. data/app/pb_kits/playbook/pb_toggle/toggle.rb +1 -1
  129. data/app/pb_kits/playbook/pb_typeahead/_typeahead.jsx +60 -0
  130. data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +20 -3
  131. data/app/pb_kits/playbook/pb_typeahead/components/Control.jsx +30 -0
  132. data/app/pb_kits/playbook/pb_typeahead/components/IndicatorsContainer.jsx +13 -0
  133. data/app/pb_kits/playbook/pb_typeahead/components/MenuList.jsx +12 -0
  134. data/app/pb_kits/playbook/pb_typeahead/components/MultiValue.jsx +51 -0
  135. data/app/pb_kits/playbook/pb_typeahead/components/Option.jsx +34 -0
  136. data/app/pb_kits/playbook/pb_typeahead/components/Placeholder.jsx +13 -0
  137. data/app/pb_kits/playbook/pb_typeahead/components/ValueContainer.jsx +13 -0
  138. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default.jsx +22 -0
  139. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.jsx +29 -0
  140. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.jsx +84 -0
  141. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async_summary.jsx +45 -0
  142. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async_users.jsx +101 -0
  143. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_summary.jsx +27 -0
  144. data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +8 -2
  145. data/app/pb_kits/playbook/pb_typeahead/docs/index.js +4 -0
  146. data/app/pb_kits/playbook/pb_user_badge/_user_badge.jsx +5 -2
  147. data/app/pb_kits/playbook/plugins/pb_chart.js +1 -1
  148. data/app/pb_kits/playbook/react_rails_kits.js +5 -0
  149. data/app/pb_kits/playbook/tokens/_colors.scss +22 -23
  150. data/app/pb_kits/playbook/tokens/_typography.scss +7 -7
  151. data/app/pb_kits/playbook/tokens/index.scss +11 -0
  152. data/app/pb_kits/playbook/vendor.js +5 -0
  153. data/lib/generators/kit/kit_generator.rb +1 -1
  154. data/lib/generators/kit/templates/kit_jsx.erb.tt +1 -1
  155. data/lib/playbook/engine.rb +1 -0
  156. data/lib/playbook/version.rb +1 -1
  157. data/lib/tasks/pb_release.rake +14 -3
  158. metadata +46 -70
  159. data/app/controllers/playbook/guides_controller.rb +0 -11
  160. data/app/controllers/playbook/pages_controller.rb +0 -94
  161. data/app/controllers/playbook/samples_controller.rb +0 -40
  162. data/app/pb_kits/playbook/packs/application.js +0 -55
  163. data/app/pb_kits/playbook/packs/examples.js +0 -176
  164. data/app/pb_kits/playbook/packs/main.scss +0 -12
  165. data/app/pb_kits/playbook/packs/samples.js +0 -21
  166. data/app/pb_kits/playbook/packs/site_styles/_samples.scss +0 -72
  167. data/app/pb_kits/playbook/packs/site_styles/_scaffold.scss +0 -43
  168. data/app/pb_kits/playbook/packs/site_styles/_site-style.scss +0 -146
  169. data/app/pb_kits/playbook/packs/site_styles/docs/_all.scss +0 -10
  170. data/app/pb_kits/playbook/packs/site_styles/docs/_bg_light_doc_example.scss +0 -7
  171. data/app/pb_kits/playbook/packs/site_styles/docs/_code_snippet.scss +0 -531
  172. data/app/pb_kits/playbook/packs/site_styles/docs/_color_utilities.scss +0 -92
  173. data/app/pb_kits/playbook/packs/site_styles/docs/_flex_examples.scss +0 -15
  174. data/app/pb_kits/playbook/packs/site_styles/docs/_kit_doc.scss +0 -132
  175. data/app/pb_kits/playbook/packs/site_styles/docs/_kits_examples.scss +0 -15
  176. data/app/pb_kits/playbook/packs/site_styles/docs/_markdown.scss +0 -88
  177. data/app/pb_kits/playbook/packs/site_styles/docs/_spacing_tokens.scss +0 -72
  178. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_read_only.jsx +0 -13
  179. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_read_only.md +0 -1
  180. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_size.html.erb +0 -11
  181. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_size.jsx +0 -44
  182. data/app/views/layouts/playbook/_mobile_hamburger.html.erb +0 -2
  183. data/app/views/layouts/playbook/_nav.html.erb +0 -34
  184. data/app/views/layouts/playbook/_sidebar.html.erb +0 -51
  185. data/app/views/layouts/playbook/application.html.erb +0 -26
  186. data/app/views/layouts/playbook/fullscreen.html.slim +0 -10
  187. data/app/views/layouts/playbook/grid.html.slim +0 -10
  188. data/app/views/layouts/playbook/samples.html.erb +0 -19
  189. data/app/views/playbook/guides/create_kit.html.slim +0 -16
  190. data/app/views/playbook/guides/create_kit/_file_naming.html.md +0 -2
  191. data/app/views/playbook/guides/create_kit/_generator.html.md +0 -6
  192. data/app/views/playbook/guides/create_kit/_kit_examples.html.md +0 -2
  193. data/app/views/playbook/guides/create_kit/_kit_rails.html.md +0 -2
  194. data/app/views/playbook/guides/create_kit/_kit_react.html.md +0 -2
  195. data/app/views/playbook/guides/create_kit/_layout.html.md +0 -2
  196. data/app/views/playbook/guides/create_kit/_view_objects.html.md +0 -2
  197. data/app/views/playbook/guides/create_kit/_writing_sass.md +0 -10
  198. data/app/views/playbook/guides/use_nitro.html.slim +0 -6
  199. data/app/views/playbook/guides/use_nitro/_local.html.md +0 -2
  200. data/app/views/playbook/guides/use_nitro/_nitro_components.html.md +0 -2
  201. data/app/views/playbook/guides/use_nitro/_versions.html.md +0 -2
  202. data/app/views/playbook/pages/fullscreen.html.slim +0 -10
  203. data/app/views/playbook/pages/grid.html.slim +0 -2
  204. data/app/views/playbook/pages/home.html.slim +0 -4
  205. data/app/views/playbook/pages/kit_category_show.html.erb +0 -14
  206. data/app/views/playbook/pages/kit_show.html.erb +0 -33
  207. data/app/views/playbook/pages/kits.html.erb +0 -12
  208. data/app/views/playbook/pages/principals/_getting_started.html.md +0 -30
  209. data/app/views/playbook/pages/principles.html.slim +0 -3
  210. data/app/views/playbook/pages/tokens.html.slim +0 -15
  211. data/app/views/playbook/pages/tokens/_pb_doc_spacing.html.slim +0 -61
  212. data/app/views/playbook/pages/utilities.html.slim +0 -116
  213. data/app/views/playbook/pages/utilities/_pb_doc_color.html.slim +0 -15
  214. data/app/views/playbook/samples/collection_detail/index.html.erb +0 -169
  215. data/app/views/playbook/samples/collection_detail/index.jsx +0 -372
  216. data/app/views/playbook/samples/dashboards/index.html.erb +0 -81
  217. data/app/views/playbook/samples/dashboards/index.jsx +0 -130
  218. data/app/views/playbook/samples/filter_table/index.html.erb +0 -348
  219. data/app/views/playbook/samples/filter_table/index.jsx +0 -433
  220. data/app/views/playbook/samples/registration/index.html.erb +0 -316
  221. data/app/views/playbook/samples/registration/index.jsx +0 -476
  222. data/app/views/playbook/samples/sample_show.html.erb +0 -36
@@ -22,6 +22,13 @@ module Playbook
22
22
  (width.to_f * 100 / widths.sum).round(2)
23
23
  end
24
24
  end
25
+
26
+ def chart_options
27
+ {
28
+ size: size,
29
+ widths: widths,
30
+ }
31
+ end
25
32
  end
26
33
  end
27
34
  end
@@ -23,9 +23,9 @@ type FixedConfirmationToastProps = {
23
23
  const FixedConfirmationToast = (props: FixedConfirmationToastProps) => {
24
24
  const { className, status = 'neutral', text } = props
25
25
  const css = classnames(
26
- className,
27
26
  `pb_fixed_confirmation_toast_kit_${status}`,
28
- globalProps(props)
27
+ globalProps(props),
28
+ className
29
29
  )
30
30
  const icon = iconMap[status]
31
31
 
@@ -51,8 +51,8 @@ const Flex = (props: FlexProps) => {
51
51
  reverseClass,
52
52
  wrapClass
53
53
  ),
54
- className,
55
- globalProps(props)
54
+ globalProps(props),
55
+ className
56
56
  )}
57
57
  >
58
58
  {children}
@@ -18,7 +18,7 @@ const FlexItem = (props: FlexItemPropTypes) => {
18
18
 
19
19
  return (
20
20
  <div
21
- className={classnames(buildCss('pb_flex_item_kit', growClass), className, globalProps(props))}
21
+ className={classnames(buildCss('pb_flex_item_kit', growClass), globalProps(props), className)}
22
22
  style={fixedStyle}
23
23
  >
24
24
  {children}
@@ -24,7 +24,15 @@
24
24
  <%= form.text_area :example_text_area, props: { label: true } %>
25
25
  <%= form.select :example_select, [ ["Yes", 1], ["No", 2] ], props: { label: true } %>
26
26
  <%= form.collection_select :example_collection_select, example_collection, :value, :name, props: { label: true } %>
27
- <%= form.check_box :example_checkbox, data: { field1: "value1", field2: "value2" }, props: { text: "Example Checkbox", label: true } %>
27
+ <%= form.check_box :example_checkbox,
28
+ data: { field1: "value1", field2: "value2" },
29
+ props: { text: "Example Checkbox", label: true },
30
+ checked_value: "yes",
31
+ unchecked_value: "no",
32
+ id: "checkbox-id",
33
+ name: "checkbox-name",
34
+ class: "checkbox-class"
35
+ %>
28
36
  <%= form.date_picker :example_date_picker1, props: { default_date: "blank" } %>
29
37
 
30
38
  <%= form.actions do |action| %>
@@ -4,13 +4,18 @@ module Playbook
4
4
  module PbForm
5
5
  module FormBuilder
6
6
  module CheckboxField
7
- def check_box(name, props: {}, **options, &block)
7
+ def check_box(name, props: {}, **options)
8
8
  label_text = @template.label(@object_name, name) if props[:label] == true
9
9
  options[:required] = true if props[:required]
10
10
  props[:margin_bottom] = "sm"
11
11
  props[:form_spacing] = true
12
12
 
13
- input = super(name, **options, &block)
13
+ checked_value = options[:checked_value]
14
+ unchecked_value = options[:unchecked_value]
15
+ options.delete(:checked_value)
16
+ options.delete(:unchecked_value)
17
+
18
+ input = super(name, options, checked_value, unchecked_value)
14
19
 
15
20
  if props[:label]
16
21
  @template.pb_rails("caption", props: { text: label_text, margin_bottom: "xs" }) +
@@ -18,8 +18,9 @@ type FormPillProps = {
18
18
  const FormPill = (props: FormPillProps) => {
19
19
  const { className, text, name, onClick = () => {}, avatarUrl } = props
20
20
  const css = classnames(
21
- [`pb_form_pill_kit_${'primary'}`, className],
22
- globalProps(props)
21
+ `pb_form_pill_kit_${'primary'}`,
22
+ globalProps(props),
23
+ className
23
24
  )
24
25
  return (
25
26
  <div className={css}>
@@ -101,7 +101,7 @@ const Gauge = (props: GaugeProps) => {
101
101
  <div
102
102
  {...ariaProps}
103
103
  {...dataProps}
104
- className={classnames(css, className, globalProps(props))}
104
+ className={classnames(css, globalProps(props), className)}
105
105
  id={id}
106
106
  />
107
107
  )
@@ -27,7 +27,7 @@ const Highlight = (props: HighlightProps) => {
27
27
  <Highlighter
28
28
  autoEscape
29
29
  data={data}
30
- highlightClassName={classnames(className, globalProps(props))}
30
+ highlightClassName={classnames(globalProps(props), className)}
31
31
  highlightTag="span"
32
32
  id={id}
33
33
  searchWords={highlightedText}
@@ -40,12 +40,12 @@ const HomeAddressStreet = (props: HomeAddressStreetProps) => {
40
40
 
41
41
  const classes = (className, dark) =>
42
42
  classnames(
43
- className,
44
43
  {
45
44
  'pb_home_address_street': !dark,
46
45
  'pb_home_address_street_dark': dark,
47
46
  },
48
- globalProps(props)
47
+ globalProps(props),
48
+ className
49
49
  )
50
50
  return (
51
51
  <div className={classes(className, dark)}>
@@ -56,7 +56,6 @@ const Icon = (props: IconProps) => {
56
56
  spin = false,
57
57
  } = props
58
58
  const classes = classnames(
59
- className,
60
59
  flipMap[flip],
61
60
  'pb_icon_kit',
62
61
  'far',
@@ -72,7 +71,8 @@ const Icon = (props: IconProps) => {
72
71
  [`fa-pull-${pull}`]: pull,
73
72
  [`fa-rotate-${rotation}`]: rotation,
74
73
  },
75
- globalProps(props)
74
+ globalProps(props),
75
+ className
76
76
  )
77
77
 
78
78
  return (
@@ -32,7 +32,11 @@ const IconValue = (props: IconValueProps) => {
32
32
  } = props
33
33
  const ariaProps = buildAriaProps(aria)
34
34
  const dataProps = buildDataProps(data)
35
- const classes = classnames(buildCss('pb_icon_value_kit', align), className, globalProps(props))
35
+ const classes = classnames(
36
+ buildCss('pb_icon_value_kit', align),
37
+ globalProps(props),
38
+ className
39
+ )
36
40
 
37
41
  return (
38
42
  <div
@@ -25,7 +25,11 @@ const Image = (props: ImageProps) => {
25
25
  } = props
26
26
 
27
27
  const ariaProps = buildAriaProps(aria)
28
- const classes = classnames(buildCss('pb_image lazyload blur_up'), className, globalProps(props))
28
+ const classes = classnames(
29
+ buildCss('pb_image lazyload blur_up'),
30
+ globalProps(props),
31
+ className
32
+ )
29
33
  const dataProps = buildDataProps(data)
30
34
 
31
35
  return (
@@ -30,7 +30,11 @@ const LabelPill = (props: LabelPillProps) => {
30
30
  } = props
31
31
  const ariaProps = buildAriaProps(aria)
32
32
  const dataProps = buildDataProps(data)
33
- const css = classnames(['pb_label_pill_kit', className], globalProps(props))
33
+ const css = classnames(
34
+ 'pb_label_pill_kit',
35
+ globalProps(props),
36
+ className
37
+ )
34
38
 
35
39
  return (
36
40
  <div
@@ -46,7 +46,7 @@ type LayoutFooterProps = {
46
46
  const Side = (props: LayoutSideProps) => {
47
47
  const { children, className } = props
48
48
  return (
49
- <div className={classnames('layout_sidebar', className, globalProps(props))}>
49
+ <div className={classnames('layout_sidebar', globalProps(props), className)}>
50
50
  {children}
51
51
  </div>
52
52
  )
@@ -56,7 +56,7 @@ const Side = (props: LayoutSideProps) => {
56
56
  const Body = (props: LayoutBodyProps) => {
57
57
  const { children, className } = props
58
58
  return (
59
- <div className={classnames('layout_body', className, globalProps(props))}>
59
+ <div className={classnames('layout_body', globalProps(props), className)}>
60
60
  {children}
61
61
  </div>
62
62
  )
@@ -66,7 +66,7 @@ const Body = (props: LayoutBodyProps) => {
66
66
  const Header = (props: LayoutHeaderProps) => {
67
67
  const { children, className } = props
68
68
  return (
69
- <div className={classnames('layout_header', className, globalProps(props))}>
69
+ <div className={classnames('layout_header', globalProps(props), className)}>
70
70
  {children}
71
71
  </div>
72
72
  )
@@ -76,7 +76,7 @@ const Header = (props: LayoutHeaderProps) => {
76
76
  const Footer = (props: LayoutFooterProps) => {
77
77
  const { children, className } = props
78
78
  return (
79
- <div className={classnames('layout_footer', className, globalProps(props))}>
79
+ <div className={classnames('layout_footer', globalProps(props), className)}>
80
80
  {children}
81
81
  </div>
82
82
  )
@@ -1,13 +1 @@
1
- <%= content_tag(:div, "",
2
- aria: object.aria,
3
- id: object.id,
4
- data: object.data,
5
- class: object.classname
6
- ) %>
7
- <% content_for :pb_js do %>
8
- <%= javascript_tag do %>
9
- window.addEventListener('DOMContentLoaded', function() {
10
- new pbChart('.selector', <%= object.chart_options %>)
11
- })
12
- <% end %>
13
- <% end %>
1
+ <%= react_component('LineGraph', object.chart_options) %>
@@ -77,7 +77,7 @@ export default class LineGraph extends React.Component<LineGraphProps> {
77
77
 
78
78
  return (
79
79
  <div
80
- className={classnames(className, globalProps(this.props))}
80
+ className={classnames(globalProps(this.props), className)}
81
81
  id={id}
82
82
  />
83
83
  )
@@ -32,6 +32,7 @@ module Playbook
32
32
  def chart_options
33
33
  {
34
34
  id: id,
35
+ className: classname,
35
36
  chartData: chart_data,
36
37
  type: chart_type,
37
38
  title: title,
@@ -44,7 +45,7 @@ module Playbook
44
45
  legend: legend,
45
46
  toggleLegendClick: toggle_legend_click,
46
47
  height: height,
47
- }.to_json.html_safe
48
+ }
48
49
  end
49
50
 
50
51
  def classname
@@ -52,8 +52,9 @@ const List = (props: ListProps) => {
52
52
  borderless: borderless,
53
53
  ordered: ordered,
54
54
  xpadding: xpadding,
55
- }), className,
56
- globalProps(props)
55
+ }),
56
+ globalProps(props),
57
+ className
57
58
  )
58
59
 
59
60
  return (
@@ -27,8 +27,9 @@ const ListItem = (props: ListItemProps) => {
27
27
  const ariaProps = buildAriaProps(aria)
28
28
  const dataProps = buildDataProps(data)
29
29
  const classes = classnames(
30
- buildCss('pb_item_kit'), className,
31
- globalProps(props)
30
+ buildCss('pb_item_kit'),
31
+ globalProps(props),
32
+ className
32
33
  )
33
34
 
34
35
  return (
@@ -40,7 +40,11 @@ const Logistic = (props: LogisticProps) => {
40
40
  const ariaProps = buildAriaProps(aria)
41
41
  const dataProps = buildDataProps(data)
42
42
  const formattedDate = new DateTime({ value: date })
43
- const classes = classnames(buildCss('pb_logistic_kit', { dark: dark }), className, globalProps(props))
43
+ const classes = classnames(
44
+ buildCss('pb_logistic_kit', { dark }),
45
+ globalProps(props),
46
+ className
47
+ )
44
48
 
45
49
  return (
46
50
  <div
@@ -39,7 +39,11 @@ const Message = (props: MessageProps) => {
39
39
  ? 'pb_message_kit_avatar'
40
40
  : 'pb_message_kit'
41
41
 
42
- const classes = classnames(buildCss(baseClassName), className, globalProps(props))
42
+ const classes = classnames(
43
+ buildCss(baseClassName),
44
+ globalProps(props),
45
+ className
46
+ )
43
47
 
44
48
  return (
45
49
  <div
@@ -36,8 +36,11 @@ const MultipleUsers = (props: MultipleUsersProps) => {
36
36
  const reverseClass = reverse === true ? 'reverse' : ''
37
37
  const ariaProps = buildAriaProps(aria)
38
38
  const dataProps = buildDataProps(data)
39
- const classes = classnames(buildCss('pb_multiple_users_kit', reverseClass),
40
- className, globalProps(props))
39
+ const classes = classnames(
40
+ buildCss('pb_multiple_users_kit', reverseClass),
41
+ globalProps(props),
42
+ className
43
+ )
41
44
 
42
45
  return (
43
46
  <div
@@ -40,8 +40,8 @@ const Nav = (props: NavProps) => {
40
40
  buildCss('pb_nav_list', variant, orientation, {
41
41
  highlight: highlight,
42
42
  }),
43
- className,
44
- globalProps(props)
43
+ globalProps(props),
44
+ className
45
45
  )
46
46
 
47
47
  return (
@@ -32,7 +32,11 @@ const Person = (props: PersonProps) => {
32
32
 
33
33
  const ariaProps = buildAriaProps(aria)
34
34
  const dataProps = buildDataProps(data)
35
- const classes = classnames(buildCss('pb_person_kit'), className, globalProps(props))
35
+ const classes = classnames(
36
+ buildCss('pb_person_kit'),
37
+ globalProps(props),
38
+ className
39
+ )
36
40
 
37
41
  return (
38
42
  <div
@@ -43,7 +43,11 @@ const PersonContact = (props: PersonContactProps) => {
43
43
 
44
44
  const ariaProps = buildAriaProps(aria)
45
45
  const dataProps = buildDataProps(data)
46
- const classes = classnames(buildCss('pb_person_contact_kit'), className, globalProps(props))
46
+ const classes = classnames(
47
+ buildCss('pb_person_contact_kit'),
48
+ globalProps(props),
49
+ className
50
+ )
47
51
 
48
52
  const wrongContacts = () => (
49
53
  contacts.filter((contactObject) => (
@@ -73,22 +77,23 @@ const PersonContact = (props: PersonContactProps) => {
73
77
  contactDetail={contactObject.contactDetail}
74
78
  contactType={contactObject.contactType}
75
79
  contactValue={contactObject.contactValue}
76
- key={index}
80
+ key={`valid-contact-${index}`}
77
81
  />
78
- ))}
82
+ ))}
79
83
  {wrongContacts().map((contactObject, index) => (
80
- <>
84
+ <div key={`wrong-contact-caption-wrapper-${index}`}>
81
85
  <Caption
82
86
  className="wrong_numbers"
87
+ key={`wrong-contact-caption-${index}`}
83
88
  text="wrong number"
84
89
  />
85
90
  <Contact
86
91
  contactType={contactObject.contactType}
87
92
  contactValue={contactObject.contactValue}
88
- key={index}
93
+ key={`wrong-contact-${index}`}
89
94
  />
90
- </>
91
- ))}
95
+ </div>
96
+ ))}
92
97
  </div>
93
98
  )
94
99
  }
@@ -23,6 +23,7 @@ const PersonContactWithWrongNumbers = () => {
23
23
  },
24
24
  ]}
25
25
  firstName="Pauline"
26
+ key="person-contact-1"
26
27
  lastName="Smith"
27
28
  />
28
29
  </>
@@ -78,7 +78,11 @@ const Popover = (props: PbPopoverProps) => {
78
78
  }
79
79
  const ariaProps = buildAriaProps(aria)
80
80
  const dataProps = buildDataProps(data)
81
- const classes = classnames(buildCss('pb_popover_kit'), className, globalProps(props))
81
+ const classes = classnames(
82
+ buildCss('pb_popover_kit'),
83
+ globalProps(props),
84
+ className
85
+ )
82
86
 
83
87
  return (
84
88
  <Popper
@@ -41,14 +41,14 @@ const ProgressSimple = (props: ProgressSimpleProps) => {
41
41
  }
42
42
 
43
43
  const wrapperClass = classnames(
44
- className,
45
44
  buildCss('pb_progress_simple_wrapper', align, { dark: dark }),
46
- globalProps(props)
45
+ globalProps(props),
46
+ className
47
47
  )
48
48
 
49
49
  const kitClass = classnames(
50
- className,
51
- buildCss('pb_progress_simple_kit', { muted: muted }, variantStyle, align)
50
+ buildCss('pb_progress_simple_kit', { muted }, variantStyle, align),
51
+ className
52
52
  )
53
53
 
54
54
  return (