playbook_ui 7.13.0 → 7.14.0.pre.alpha1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (217) hide show
  1. checksums.yaml +4 -4
  2. data/app/helpers/playbook/application_helper.rb +4 -0
  3. data/app/helpers/playbook/pb_sample_helper.rb +1 -1
  4. data/app/pb_kits/playbook/_playbook.scss +1 -0
  5. data/app/pb_kits/playbook/pb_background/docs/example.yml +0 -2
  6. data/app/pb_kits/playbook/pb_background/docs/index.js +0 -1
  7. data/app/pb_kits/playbook/pb_card/_card.jsx +3 -1
  8. data/app/pb_kits/playbook/pb_card/_card.scss +3 -2
  9. data/app/pb_kits/playbook/pb_card/_card_mixin.scss +6 -0
  10. data/app/pb_kits/playbook/pb_card/card.rb +9 -1
  11. data/app/pb_kits/playbook/pb_card/docs/_card_border_radius.html.erb +53 -0
  12. data/app/pb_kits/playbook/pb_card/docs/_card_border_radius.jsx +71 -0
  13. data/app/pb_kits/playbook/pb_card/docs/_card_border_radius.md +1 -0
  14. data/app/pb_kits/playbook/pb_card/docs/_card_light.md +1 -0
  15. data/app/pb_kits/playbook/pb_card/docs/example.yml +2 -0
  16. data/app/pb_kits/playbook/pb_card/docs/index.js +1 -0
  17. data/app/pb_kits/playbook/pb_checkbox/_checkbox.html.erb +1 -0
  18. data/app/pb_kits/playbook/pb_checkbox/_checkbox.jsx +36 -10
  19. data/app/pb_kits/playbook/pb_checkbox/_checkbox.scss +26 -20
  20. data/app/pb_kits/playbook/pb_checkbox/checkbox.rb +5 -0
  21. data/app/pb_kits/playbook/pb_checkbox/checkbox.test.js +51 -0
  22. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_custom.jsx +0 -1
  23. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_indeterminate.html.erb +77 -0
  24. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_indeterminate.jsx +78 -0
  25. data/app/pb_kits/playbook/pb_checkbox/docs/example.yml +2 -0
  26. data/app/pb_kits/playbook/pb_checkbox/docs/index.js +1 -0
  27. data/app/pb_kits/playbook/pb_date_range_stacked/docs/example.yml +0 -4
  28. data/app/pb_kits/playbook/pb_date_range_stacked/docs/index.js +0 -1
  29. data/app/pb_kits/playbook/pb_date_stacked/docs/example.yml +0 -7
  30. data/app/pb_kits/playbook/pb_date_stacked/docs/index.js +0 -2
  31. data/app/pb_kits/playbook/pb_date_time_stacked/docs/example.yml +0 -4
  32. data/app/pb_kits/playbook/pb_date_time_stacked/docs/index.js +0 -1
  33. data/app/pb_kits/playbook/pb_date_year_stacked/docs/example.yml +0 -2
  34. data/app/pb_kits/playbook/pb_date_year_stacked/docs/index.js +0 -1
  35. data/app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.jsx +9 -4
  36. data/app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.scss +12 -7
  37. data/app/pb_kits/playbook/pb_distribution_bar/distribution_bar.rb +4 -1
  38. data/app/pb_kits/playbook/pb_distribution_bar/docs/_distribution_bar_custom_colors.html.erb +4 -0
  39. data/app/pb_kits/playbook/pb_distribution_bar/docs/_distribution_bar_custom_colors.jsx +18 -0
  40. data/app/pb_kits/playbook/pb_distribution_bar/docs/_distribution_bar_custom_colors.md +1 -0
  41. data/app/pb_kits/playbook/pb_distribution_bar/docs/example.yml +2 -0
  42. data/app/pb_kits/playbook/pb_distribution_bar/docs/index.js +1 -0
  43. data/app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx +12 -1
  44. data/app/pb_kits/playbook/pb_filter/Filter/FiltersPopover.jsx +5 -1
  45. data/app/pb_kits/playbook/pb_filter/docs/_filter_close_popover.jsx +61 -0
  46. data/app/pb_kits/playbook/pb_filter/docs/_filter_default.html.erb +41 -0
  47. data/app/pb_kits/playbook/pb_filter/docs/_filter_default.jsx +84 -37
  48. data/app/pb_kits/playbook/pb_filter/docs/_filter_default.md +1 -0
  49. data/app/pb_kits/playbook/pb_filter/docs/example.yml +1 -0
  50. data/app/pb_kits/playbook/pb_filter/docs/index.js +1 -0
  51. data/app/pb_kits/playbook/pb_filter/templates/_core.html.erb +18 -7
  52. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/example.yml +0 -5
  53. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/index.js +0 -2
  54. data/app/pb_kits/playbook/pb_flex/_flex.jsx +25 -9
  55. data/app/pb_kits/playbook/pb_flex/_flex.scss +40 -7
  56. data/app/pb_kits/playbook/pb_flex/_flex_item.jsx +6 -2
  57. data/app/pb_kits/playbook/pb_flex/_flex_item.scss +10 -0
  58. data/app/pb_kits/playbook/pb_flex/docs/_description.md +6 -0
  59. data/app/pb_kits/playbook/pb_flex/docs/_flex_align.html.erb +101 -0
  60. data/app/pb_kits/playbook/pb_flex/docs/{_flex_horizontal.jsx → _flex_align.jsx} +71 -77
  61. data/app/pb_kits/playbook/pb_flex/docs/_flex_align.md +7 -0
  62. data/app/pb_kits/playbook/pb_flex/docs/_flex_default.html.erb +15 -15
  63. data/app/pb_kits/playbook/pb_flex/docs/_flex_default.jsx +17 -15
  64. data/app/pb_kits/playbook/pb_flex/docs/_flex_default.md +3 -1
  65. data/app/pb_kits/playbook/pb_flex/docs/_flex_gap.html.erb +33 -0
  66. data/app/pb_kits/playbook/pb_flex/docs/_flex_gap.jsx +75 -0
  67. data/app/pb_kits/playbook/pb_flex/docs/_flex_gap.md +9 -0
  68. data/app/pb_kits/playbook/pb_flex/docs/_flex_inline.html.erb +8 -8
  69. data/app/pb_kits/playbook/pb_flex/docs/_flex_inline.md +5 -1
  70. data/app/pb_kits/playbook/pb_flex/docs/_flex_item.html.erb +49 -0
  71. data/app/pb_kits/playbook/pb_flex/docs/_flex_item.md +11 -0
  72. data/app/pb_kits/playbook/pb_flex/docs/_flex_item_example.jsx +113 -0
  73. data/app/pb_kits/playbook/pb_flex/docs/{_flex_horizontal.html.erb → _flex_justify.html.erb} +19 -21
  74. data/app/pb_kits/playbook/pb_flex/docs/{_flex_vertical.jsx → _flex_justify.jsx} +41 -99
  75. data/app/pb_kits/playbook/pb_flex/docs/_flex_justify.md +7 -0
  76. data/app/pb_kits/playbook/pb_flex/docs/_flex_reverse.html.erb +9 -9
  77. data/app/pb_kits/playbook/pb_flex/docs/_flex_reverse.jsx +2 -2
  78. data/app/pb_kits/playbook/pb_flex/docs/_flex_reverse.md +5 -0
  79. data/app/pb_kits/playbook/pb_flex/docs/_flex_spacing.html.erb +23 -8
  80. data/app/pb_kits/playbook/pb_flex/docs/_flex_spacing.jsx +4 -4
  81. data/app/pb_kits/playbook/pb_flex/docs/_flex_spacing.md +7 -0
  82. data/app/pb_kits/playbook/pb_flex/docs/_flex_wrap.jsx +1 -1
  83. data/app/pb_kits/playbook/pb_flex/docs/_flex_wrap.md +5 -0
  84. data/app/pb_kits/playbook/pb_flex/docs/example.yml +9 -4
  85. data/app/pb_kits/playbook/pb_flex/docs/index.js +4 -2
  86. data/app/pb_kits/playbook/pb_flex/flex.rb +79 -12
  87. data/app/pb_kits/playbook/pb_flex/flex_item.rb +18 -1
  88. data/app/pb_kits/playbook/pb_form_pill/_form_pill.jsx +7 -1
  89. data/app/pb_kits/playbook/pb_form_pill/_form_pill.scss +2 -0
  90. data/app/pb_kits/playbook/pb_icon/docs/example.yml +1 -2
  91. data/app/pb_kits/playbook/pb_icon/docs/index.js +0 -1
  92. data/app/pb_kits/playbook/pb_icon_circle/docs/example.yml +0 -7
  93. data/app/pb_kits/playbook/pb_icon_circle/docs/index.js +0 -3
  94. data/app/pb_kits/playbook/pb_icon_value/docs/example.yml +0 -5
  95. data/app/pb_kits/playbook/pb_icon_value/docs/index.js +0 -2
  96. data/app/pb_kits/playbook/pb_image/_image.scss +1 -0
  97. data/app/pb_kits/playbook/pb_layout/_layout.scss +9 -9
  98. data/app/pb_kits/playbook/pb_layout/docs/_layout_collection.html.erb +4 -4
  99. data/app/pb_kits/playbook/pb_layout/docs/_layout_collection.md +1 -0
  100. data/app/pb_kits/playbook/pb_layout/docs/example.yml +0 -4
  101. data/app/pb_kits/playbook/pb_layout/docs/index.js +0 -1
  102. data/app/pb_kits/playbook/pb_popover/docs/example.yml +0 -13
  103. data/app/pb_kits/playbook/pb_popover/docs/index.js +0 -5
  104. data/app/pb_kits/playbook/pb_radio/_radio.scss +1 -0
  105. data/app/pb_kits/playbook/pb_select/_select.scss +6 -4
  106. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.html.erb +54 -11
  107. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.jsx +53 -6
  108. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +48 -9
  109. data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_block.jsx +41 -44
  110. data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_default.html.erb +2 -2
  111. data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_default.jsx +53 -62
  112. data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_image.jsx +43 -53
  113. data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_input.html.erb +105 -0
  114. data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_input.jsx +158 -0
  115. data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_input.md +1 -0
  116. data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_single_select.html.erb +2 -2
  117. data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_single_select.jsx +46 -53
  118. data/app/pb_kits/playbook/pb_selectable_card/docs/example.yml +2 -0
  119. data/app/pb_kits/playbook/pb_selectable_card/docs/index.js +1 -0
  120. data/app/pb_kits/playbook/pb_selectable_card/selectable_card.rb +27 -2
  121. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.scss +8 -8
  122. data/app/pb_kits/playbook/pb_table/_table.jsx +8 -0
  123. data/app/pb_kits/playbook/pb_table/docs/_table_responsive_table.html.erb +56 -4
  124. data/app/pb_kits/playbook/pb_table/docs/_table_responsive_table.jsx +64 -3
  125. data/app/pb_kits/playbook/pb_table/docs/_table_sm.md +2 -0
  126. data/app/pb_kits/playbook/pb_table/styles/_all.scss +3 -0
  127. data/app/pb_kits/playbook/pb_table/styles/_desktop_collapse.scss +135 -0
  128. data/app/pb_kits/playbook/pb_table/styles/_mobile_collapse.scss +135 -0
  129. data/app/pb_kits/playbook/pb_table/styles/_tablet_collapse.scss +135 -0
  130. data/app/pb_kits/playbook/pb_table/table.rb +8 -1
  131. data/app/pb_kits/playbook/pb_timestamp/_timestamp.html.erb +6 -4
  132. data/app/pb_kits/playbook/pb_timestamp/_timestamp.jsx +92 -16
  133. data/app/pb_kits/playbook/pb_timestamp/_timestamp.scss +12 -1
  134. data/app/pb_kits/playbook/pb_timestamp/docs/_description.md +1 -1
  135. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_align.jsx +26 -18
  136. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.html.erb +21 -1
  137. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.jsx +40 -8
  138. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed.jsx +12 -4
  139. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones.jsx +26 -18
  140. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated.html.erb +0 -21
  141. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated.jsx +6 -28
  142. data/app/pb_kits/playbook/pb_timestamp/docs/example.yml +8 -0
  143. data/app/pb_kits/playbook/pb_timestamp/docs/index.js +4 -0
  144. data/app/pb_kits/playbook/pb_timestamp/timestamp.rb +83 -1
  145. data/app/pb_kits/playbook/pb_typeahead/_typeahead.html.erb +1 -1
  146. data/app/pb_kits/playbook/pb_typeahead/_typeahead.jsx +6 -1
  147. data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +38 -2
  148. data/app/pb_kits/playbook/pb_typeahead/components/Control.jsx +1 -0
  149. data/app/pb_kits/playbook/pb_typeahead/components/MultiValue.jsx +2 -4
  150. data/app/pb_kits/playbook/pb_typeahead/components/Option.jsx +8 -3
  151. data/app/pb_kits/playbook/pb_typeahead/docs/{_typeahead_with_context_dark.html.erb → _typeahead_with_context.html.erb} +10 -2
  152. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.html.erb +1 -1
  153. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.jsx +13 -1
  154. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async_custom_options.jsx +111 -0
  155. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async_custom_options.md +1 -0
  156. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async_users.html.erb +1 -1
  157. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async_users.jsx +1 -0
  158. data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +3 -2
  159. data/app/pb_kits/playbook/pb_typeahead/docs/index.js +1 -0
  160. data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +2 -1
  161. data/app/pb_kits/playbook/pb_user_badge/docs/index.js +0 -1
  162. data/app/pb_kits/playbook/tokens/_border_radius.scss +21 -7
  163. data/app/pb_kits/playbook/utilities/_max_width.scss +15 -0
  164. data/app/pb_kits/playbook/utilities/_spacing.scss +20 -20
  165. data/app/pb_kits/playbook/utilities/globalProps.js +7 -1
  166. data/lib/playbook.rb +11 -0
  167. data/lib/playbook/engine.rb +15 -0
  168. data/lib/playbook/props.rb +23 -1
  169. data/lib/playbook/version.rb +1 -1
  170. metadata +45 -59
  171. data/app/pb_kits/playbook/pb_background/docs/_background_dark.html.erb +0 -3
  172. data/app/pb_kits/playbook/pb_background/docs/_background_dark.jsx +0 -12
  173. data/app/pb_kits/playbook/pb_date_range_stacked/docs/_date_range_stacked_dark.html.erb +0 -1
  174. data/app/pb_kits/playbook/pb_date_range_stacked/docs/_date_range_stacked_dark.jsx +0 -15
  175. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_dark.html.erb +0 -5
  176. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_dark.jsx +0 -26
  177. data/app/pb_kits/playbook/pb_date_time_stacked/docs/_date_time_stacked_dark.html.erb +0 -1
  178. data/app/pb_kits/playbook/pb_date_time_stacked/docs/_date_time_stacked_dark.jsx +0 -14
  179. data/app/pb_kits/playbook/pb_date_year_stacked/docs/_date_year_stacked_dark.html.erb +0 -5
  180. data/app/pb_kits/playbook/pb_date_year_stacked/docs/_date_year_stacked_dark.jsx +0 -28
  181. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_dark.html.erb +0 -21
  182. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_dark.jsx +0 -43
  183. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_multi_line_dark.html.erb +0 -5
  184. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_multi_line_dark.jsx +0 -17
  185. data/app/pb_kits/playbook/pb_flex/docs/_flex_vertical.html.erb +0 -68
  186. data/app/pb_kits/playbook/pb_icon/docs/_icon_default_dark.html.erb +0 -3
  187. data/app/pb_kits/playbook/pb_icon/docs/_icon_default_dark.jsx +0 -18
  188. data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_color_dark.html.erb +0 -42
  189. data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_color_dark.jsx +0 -66
  190. data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_dark.html.erb +0 -4
  191. data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_dark.jsx +0 -17
  192. data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_sizes_dark.html.erb +0 -29
  193. data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_sizes_dark.jsx +0 -38
  194. data/app/pb_kits/playbook/pb_icon_value/docs/_icon_value_align_dark.html.erb +0 -23
  195. data/app/pb_kits/playbook/pb_icon_value/docs/_icon_value_align_dark.jsx +0 -37
  196. data/app/pb_kits/playbook/pb_icon_value/docs/_icon_value_dark.html.erb +0 -21
  197. data/app/pb_kits/playbook/pb_icon_value/docs/_icon_value_dark.jsx +0 -35
  198. data/app/pb_kits/playbook/pb_layout/docs/_layout_sizes_dark.html.erb +0 -32
  199. data/app/pb_kits/playbook/pb_layout/docs/_layout_sizes_dark.jsx +0 -97
  200. data/app/pb_kits/playbook/pb_popover/docs/_popover_close_dark.html.erb +0 -43
  201. data/app/pb_kits/playbook/pb_popover/docs/_popover_close_dark.jsx +0 -105
  202. data/app/pb_kits/playbook/pb_popover/docs/_popover_dark.html.erb +0 -25
  203. data/app/pb_kits/playbook/pb_popover/docs/_popover_dark.jsx +0 -51
  204. data/app/pb_kits/playbook/pb_popover/docs/_popover_list_dark.html.erb +0 -13
  205. data/app/pb_kits/playbook/pb_popover/docs/_popover_list_dark.jsx +0 -54
  206. data/app/pb_kits/playbook/pb_popover/docs/_popover_scroll_height_dark.html.erb +0 -25
  207. data/app/pb_kits/playbook/pb_popover/docs/_popover_scroll_height_dark.jsx +0 -57
  208. data/app/pb_kits/playbook/pb_popover/docs/_popover_z_index_dark.html.erb +0 -14
  209. data/app/pb_kits/playbook/pb_popover/docs/_popover_z_index_dark.jsx +0 -54
  210. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed_align.html.erb +0 -54
  211. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed_align.jsx +0 -73
  212. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones_align.html.erb +0 -177
  213. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones_align.jsx +0 -209
  214. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_align.html.erb +0 -123
  215. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_align.jsx +0 -146
  216. data/app/pb_kits/playbook/pb_user_badge/docs/_user_badge_size_dark.html.erb +0 -21
  217. data/app/pb_kits/playbook/pb_user_badge/docs/_user_badge_size_dark.jsx +0 -36
@@ -10,9 +10,14 @@ module Playbook
10
10
  prop :fixed_size, default: nil
11
11
  prop :grow, type: Playbook::Props::Boolean,
12
12
  default: false
13
+ prop :shrink, type: Playbook::Props::Boolean,
14
+ default: false
15
+ prop :flex, type: Playbook::Props::Enum,
16
+ values: %w[0 1 2 3 4 5 6 7 8 9 10 11 12 none],
17
+ default: "none"
13
18
 
14
19
  def classname
15
- generate_classname("pb_flex_item_kit", fixed_size_class, grow_class)
20
+ generate_classname("pb_flex_item_kit", fixed_size_class, grow_class, shrink_class, flex_class)
16
21
  end
17
22
 
18
23
  def style_value
@@ -28,6 +33,18 @@ module Playbook
28
33
  def grow_class
29
34
  grow ? "grow" : nil
30
35
  end
36
+
37
+ def shrink_class
38
+ shrink ? "shrink" : nil
39
+ end
40
+
41
+ def flex_class
42
+ if flex == "none"
43
+ nil
44
+ else
45
+ "flex_#{flex}"
46
+ end
47
+ end
31
48
  end
32
49
  end
33
50
  end
@@ -14,9 +14,14 @@ type FormPillProps = {
14
14
  onClick?: EventHandler,
15
15
  avatar?: boolean,
16
16
  avatarUrl?: string,
17
+ closeProps?: {
18
+ onClick?: EventHandler,
19
+ onMouseDown?: EventHandler,
20
+ onTouchEnd?: EventHandler,
21
+ },
17
22
  }
18
23
  const FormPill = (props: FormPillProps) => {
19
- const { className, text, name, onClick = () => {}, avatarUrl } = props
24
+ const { className, text, name, onClick = () => {}, avatarUrl, closeProps = {} } = props
20
25
  const css = classnames(
21
26
  `pb_form_pill_kit_${'primary'}`,
22
27
  globalProps(props),
@@ -46,6 +51,7 @@ const FormPill = (props: FormPillProps) => {
46
51
  <div
47
52
  className="pb_form_pill_close"
48
53
  onClick={onClick}
54
+ {...closeProps}
49
55
  >
50
56
  <Icon
51
57
  fixedWidth
@@ -18,6 +18,8 @@ $form_pill_colors: (
18
18
  padding: 0 $space-sm/3;
19
19
  height: $pb_form_pill_height;
20
20
  border-radius: $pb_form_pill_height/2;
21
+ margin-bottom: 2px;
22
+ margin-top: 2px;
21
23
  cursor: pointer;
22
24
  @each $color_name, $color_value in $form_pill_colors {
23
25
  &[class*=_#{$color_name}] {
@@ -7,7 +7,7 @@ examples:
7
7
  - icon_pull: Icon Pull
8
8
  - icon_border: Icon Border
9
9
  - icon_sizes: Icon Sizes
10
- - icon_default_dark: Icon Default Dark
10
+
11
11
  react:
12
12
  - icon_default: Icon Default
13
13
  - icon_rotate: Icon Rotate
@@ -16,4 +16,3 @@ examples:
16
16
  - icon_pull: Icon Pull
17
17
  - icon_border: Icon Border
18
18
  - icon_sizes: Icon Sizes
19
- - icon_default_dark: Icon Default Dark
@@ -5,4 +5,3 @@ export { default as IconAnimate } from './_icon_animate.jsx'
5
5
  export { default as IconPull } from './_icon_pull.jsx'
6
6
  export { default as IconBorder } from './_icon_border.jsx'
7
7
  export { default as IconSizes } from './_icon_sizes.jsx'
8
- export { default as IconDefaultDark } from './_icon_default_dark.jsx'
@@ -4,15 +4,8 @@ examples:
4
4
  - icon_circle_default: Default
5
5
  - icon_circle_sizes: Size
6
6
  - icon_circle_color: Color
7
- - icon_circle_dark: Dark
8
- - icon_circle_sizes_dark: Dark Size
9
- - icon_circle_color_dark: Dark Color
10
-
11
7
 
12
8
  react:
13
9
  - icon_circle_default: Default
14
10
  - icon_circle_sizes: Size
15
11
  - icon_circle_color: Color
16
- - icon_circle_dark: Dark
17
- - icon_circle_sizes_dark: Dark Size
18
- - icon_circle_color_dark: Dark Color
@@ -1,6 +1,3 @@
1
1
  export { default as IconCircleColor } from './_icon_circle_color.jsx'
2
2
  export { default as IconCircleDefault } from './_icon_circle_default.jsx'
3
3
  export { default as IconCircleSizes } from './_icon_circle_sizes.jsx'
4
- export { default as IconCircleDark } from './_icon_circle_dark.jsx'
5
- export { default as IconCircleColorDark } from './_icon_circle_color_dark.jsx'
6
- export { default as IconCircleSizesDark } from './_icon_circle_sizes_dark.jsx'
@@ -3,12 +3,7 @@ examples:
3
3
  rails:
4
4
  - icon_value_default: Default
5
5
  - icon_value_align: Align
6
- - icon_value_dark: Dark
7
- - icon_value_align_dark: Align Dark
8
-
9
6
 
10
7
  react:
11
8
  - icon_value_default: Default
12
9
  - icon_value_align: Align
13
- - icon_value_dark: Dark
14
- - icon_value_align_dark: Align Dark
@@ -1,4 +1,2 @@
1
1
  export { default as IconValueDefault } from './_icon_value_default.jsx'
2
2
  export { default as IconValueAlign } from './_icon_value_align.jsx'
3
- export { default as IconValueDark } from './_icon_value_dark.jsx'
4
- export { default as IconValueAlignDark } from './_icon_value_align_dark.jsx'
@@ -11,6 +11,7 @@ $image-sizes: (
11
11
 
12
12
  [class^=pb_image_kit] {
13
13
  position: relative;
14
+ object-fit: cover;
14
15
 
15
16
  @each $name, $size in $image-sizes {
16
17
  &[class*=_#{$name}] {
@@ -21,14 +21,14 @@ $card-border-radius: $border_rad_lightest;
21
21
  grid-column-gap: $space_sm;
22
22
  grid-row-gap: $space_sm;
23
23
  grid-template-columns: repeat(4, 1fr);
24
-
24
+
25
25
  @media screen and (max-width: $screen-md-min) {
26
26
  grid-template-columns: repeat(2, 1fr);
27
27
  }
28
28
  @media screen and (max-width: $screen-xs-min) {
29
29
  grid-template-columns: repeat(1, 1fr);
30
30
  }
31
- }
31
+ }
32
32
  }
33
33
 
34
34
  &[class*=_collection_detail]{
@@ -36,13 +36,13 @@ $card-border-radius: $border_rad_lightest;
36
36
  width: 100%;
37
37
  height: 100%;
38
38
  padding: $space_lg;
39
- grid-template-areas:
39
+ grid-template-areas:
40
40
  "side-bar collection";
41
41
  grid-template-columns: .25fr 1fr;
42
42
  grid-column-gap: $space_sm;
43
43
  div.layout_body{
44
44
  @media screen and (min-width: $screen-md-min) {
45
- margin-left: $space_md;
45
+ margin-left: $space_md;
46
46
  }
47
47
  @media screen and (max-width: $screen-lg-min) {
48
48
  grid-template-columns: repeat(3, 1fr);
@@ -61,7 +61,7 @@ $card-border-radius: $border_rad_lightest;
61
61
  grid-template-columns: 1fr;
62
62
  grid-row-gap: $space_sm;
63
63
  }
64
-
64
+
65
65
  }
66
66
 
67
67
  &[class*=_kanban]{
@@ -76,7 +76,7 @@ $card-border-radius: $border_rad_lightest;
76
76
  content: '';
77
77
  flex: 0 0 $gap;
78
78
  }
79
-
79
+
80
80
  div.layout_body{
81
81
  width: $list-width;
82
82
  height: 100vh;
@@ -135,7 +135,7 @@ $card-border-radius: $border_rad_lightest;
135
135
  width: 100%;
136
136
  }
137
137
  }
138
-
138
+
139
139
 
140
140
  &[class*=_sidebar]{
141
141
  $layout_sizes: (
@@ -188,7 +188,7 @@ $card-border-radius: $border_rad_lightest;
188
188
  // Collapse Settings
189
189
  @each $position in $positions {
190
190
  @each $breakpoint_name, $breakpoint in $breakpoints {
191
- &_#{$position}_collapse_#{$breakpoint_name} {
191
+ &[class*=_#{$position}_collapse_#{$breakpoint_name}] {
192
192
  @include break_at($breakpoint) {
193
193
  @if $position == 'left' {
194
194
  grid-template-areas: "layout_collapsed_#{$breakpoint_name}_sidebar" "layout_collapsed_#{$breakpoint_name}_body";
@@ -198,7 +198,7 @@ $card-border-radius: $border_rad_lightest;
198
198
  grid-template-areas: "layout_collapsed_#{$breakpoint_name}_body" "layout_collapsed_#{$breakpoint_name}_sidebar";
199
199
  grid-template-rows: 1fr auto;
200
200
  }
201
- grid-template-columns: 1fr;
201
+ grid-template-columns: 1fr !important;
202
202
  &.full {
203
203
  min-height: auto !important;
204
204
  }
@@ -2,7 +2,7 @@
2
2
  <%= pb_rails("layout/body") do %>
3
3
 
4
4
  <%= pb_rails("card" ) do %>
5
- Card content
5
+ Card content
6
6
  <% end %>
7
7
  <%= pb_rails("card") do %>
8
8
  <%= pb_rails("title", props: { text: "Title 4", tag: "h4", size: 4 }) %>
@@ -26,10 +26,10 @@
26
26
  <%= pb_rails("title", props: { text: "Title 1", tag: "h1", size: 1 }) %>
27
27
  <% end %>
28
28
  <%= pb_rails("card" ) do %>
29
- Card content
29
+ Card content
30
30
  <% end %>
31
31
  <%= pb_rails("card") do %>
32
- Card content
32
+ Card content
33
33
  <% end %>
34
34
  <%= pb_rails("user", props: {
35
35
  name: "Anna Black",
@@ -40,7 +40,7 @@
40
40
  avatar_url: "https://randomuser.me/api/portraits/women/44.jpg"
41
41
  }) %>
42
42
  <%= pb_rails("card" ) do %>
43
- Card content
43
+ Card content
44
44
  <% end %>
45
45
  <%= pb_rails("card" ) do %>
46
46
  <%= pb_rails("title", props: { text: "Title 4", tag: "h4", size: 4 }) %>
@@ -0,0 +1 @@
1
+ Layout can leverage the max-width property. Learn more in our <a href="https://playbook.powerapp.cloud/visual_guidelines" target="_blank">visual guidelines.</a>
@@ -3,20 +3,16 @@ examples:
3
3
  - layout_colors: Colors
4
4
  - layout_transparent: Transparent
5
5
  - layout_sizes: Sizes
6
- - layout_sizes_dark: Sizes Dark
7
6
  - layout_collection: Collection Layout
8
7
  - layout_collection_detail: Collection Detail Layout
9
8
  - layout_kanban: Kanban Layout
10
9
  - layout_content: Content Layout
11
10
 
12
-
13
11
  react:
14
12
  - layout_colors: Colors
15
13
  - layout_transparent: Transparent
16
14
  - layout_sizes: Sizes
17
- - layout_sizes_dark: Sizes Dark
18
15
  - layout_collection: Collection Layout
19
16
  - layout_collection_detail: Collection Detail Layout
20
17
  - layout_kanban: Kanban Layout
21
18
  - layout_content: Content Layout
22
-
@@ -1,7 +1,6 @@
1
1
  export { default as LayoutColors } from './_layout_colors.jsx'
2
2
  export { default as LayoutTransparent } from './_layout_transparent.jsx'
3
3
  export { default as LayoutSizes } from './_layout_sizes.jsx'
4
- export { default as LayoutSizesDark } from './_layout_sizes_dark.jsx'
5
4
  export { default as LayoutCollection } from './_layout_collection.jsx'
6
5
  export { default as LayoutKanban } from './_layout_kanban.jsx'
7
6
  export { default as LayoutKanbanResponsive } from './_layout_kanban_responsive.jsx'
@@ -5,11 +5,6 @@ examples:
5
5
  - popover_close: Close Options
6
6
  - popover_z_index: Set Z-Index
7
7
  - popover_scroll_height: Scroll and Height Settings
8
- - popover_dark: Dark
9
- - popover_list_dark: List Dark
10
- - popover_close_dark: Close Dark
11
- - popover_z_index_dark: Z-Index Dark
12
- - popover_scroll_height_dark: Scroll and Height Settings Dark
13
8
 
14
9
  react:
15
10
  - popover_default: Default
@@ -17,12 +12,4 @@ examples:
17
12
  - popover_close: Close Options
18
13
  - popover_z_index: Set Z-Index
19
14
  - popover_scroll_height: Scroll and Height Settings
20
- - popover_dark: Dark
21
- - popover_list_dark: List Dark
22
- - popover_close_dark: Close Dark
23
- - popover_z_index_dark: Z-Index Dark
24
- - popover_scroll_height_dark: Scroll and Height Settings Dark
25
-
26
-
27
-
28
15
 
@@ -3,8 +3,3 @@ export { default as PopoverList } from './_popover_list.jsx'
3
3
  export { default as PopoverClose } from './_popover_close.jsx'
4
4
  export { default as PopoverZIndex } from './_popover_z_index.jsx'
5
5
  export { default as PopoverScrollHeight } from './_popover_scroll_height.jsx'
6
- export { default as PopoverDark } from './_popover_dark.jsx'
7
- export { default as PopoverListDark } from './_popover_list_dark.jsx'
8
- export { default as PopoverCloseDark } from './_popover_close_dark.jsx'
9
- export { default as PopoverZIndexDark } from './_popover_z_index_dark.jsx'
10
- export { default as PopoverScrollHeightDark } from './_popover_scroll_height_dark.jsx'
@@ -11,6 +11,7 @@
11
11
  width: 22px;
12
12
  min-width: 22px;
13
13
  height: 22px;
14
+ box-sizing: border-box;
14
15
  border-radius: 1000px;
15
16
  border: 2px solid $border_light;
16
17
  margin-right: $space_xs;
@@ -12,6 +12,11 @@
12
12
  cursor: pointer;
13
13
  box-shadow: inset 0 -11px 20px rgba($primary, 0.05);
14
14
  padding-right: $space_xl;
15
+ color: transparent !important;
16
+ text-shadow: 0 0 0 $text_lt_default;
17
+ white-space: nowrap;
18
+ overflow: hidden;
19
+ text-overflow: ellipsis;
15
20
  @media (hover:hover) {
16
21
  &:hover, &:active, &:focus {
17
22
  background-color: $focus_input_light;
@@ -20,8 +25,6 @@
20
25
  &:disabled ~ .pb_select_kit_caret {
21
26
  opacity: 0.5;
22
27
  }
23
- color: transparent !important;
24
- text-shadow: 0 0 0 $text_lt_default;
25
28
  }
26
29
  option {
27
30
  color: $text_lt_default;
@@ -62,12 +65,12 @@
62
65
  @include pb_title_dark;
63
66
  background: $focus_input_dark;
64
67
  box-shadow: inset 0 -11px 20px rgba($white, 0.05);
68
+ text-shadow: 0 0 0 $text_dk_default;
65
69
  @media (hover:hover) {
66
70
  &:hover, &:active, &:focus {
67
71
  background-color: tint($focus_input_dark, 5%);
68
72
  }
69
73
  }
70
- text-shadow: 0 0 0 $text_dk_default;
71
74
  }
72
75
  .pb_select_kit_caret {
73
76
  color: $white;
@@ -82,5 +85,4 @@
82
85
  }
83
86
  }
84
87
  }
85
-
86
88
  }
@@ -9,17 +9,60 @@
9
9
  <%= radio_button_tag(object.name, object.value, object.checked, object.additional_input_options) %>
10
10
  <% end %>
11
11
 
12
- <label for="<%= object.input_id_present %>">
13
- <% if object.children.nil? %>
14
- <%= pb_rails("body", props: { text: object.text }) %>
15
- <% else %>
16
- <%= capture(&object.children) %>
17
- <% end %>
18
- <% if object.icon %>
19
- <div class="pb_selectable_card_circle">
20
- <%= pb_rails("icon", props: { icon: "check", fixed_width: true }) %>
21
- </div>
22
- <% end %>
12
+ <label class="<%= object.label_class %>" for="<%= object.input_id_present %>">
13
+ <div class="buffer">
14
+ <% if object.variant == "display_input" %>
15
+ <%= pb_rails("flex", props: { vertical: "center" }) do %>
16
+ <%= pb_rails("flex", props: {
17
+ orientation: "column",
18
+ padding: "sm",
19
+ padding_right: "xs",
20
+ vertical: "center",
21
+ }) do %>
22
+ <%= pb_rails(object.input, props: { text: "" }) do %>
23
+ <input <%= object.is_checked %> <%= object.is_disabled %> id="checkbox-styled" name="<%= object.name %>-display" type="<%= object.input %>">
24
+ <% end %>
25
+ <% end %>
26
+ <div class="separator"></div>
27
+ <%= pb_rails("card/card_body", props: { padding: "sm" }) do %>
28
+ <% if object.children.nil? %>
29
+ <%= pb_rails("body", props: { text: object.text }) %>
30
+ <% else %>
31
+ <%= capture(&object.children) %>
32
+ <% end %>
33
+ <% end %>
34
+ <% end %>
35
+ <% else %>
36
+ <% if object.children.nil? %>
37
+ <%= pb_rails("body", props: { text: object.text }) %>
38
+ <% else %>
39
+ <%= capture(&object.children) %>
40
+ <% end %>
41
+ <% if object.icon %>
42
+ <div class="pb_selectable_card_circle">
43
+ <%= pb_rails("icon", props: { icon: "check", fixed_width: true }) %>
44
+ </div>
45
+ <% end %>
46
+ <% end %>
47
+ </div>
23
48
  </label>
24
49
 
50
+ <% if object.variant == "display_input" %>
51
+ <script>
52
+ var outerCheckbox = document.querySelector("input#<%= object.input_id || object.name %>")
53
+ var innerCheckbox = outerCheckbox.parentElement.querySelector("input#checkbox-styled")
54
+
55
+ outerCheckbox.addEventListener("change", () => {
56
+ const outerCheckbox = document.querySelector("input#<%= object.input_id || object.name %>")
57
+ const innerCheckbox = outerCheckbox.parentElement.querySelector("input#checkbox-styled")
58
+ innerCheckbox.checked = outerCheckbox.checked
59
+ })
60
+
61
+ innerCheckbox.addEventListener("change", () => {
62
+ const outerCheckbox = document.querySelector("input#<%= object.input_id || object.name %>")
63
+ const innerCheckbox = outerCheckbox.parentElement.querySelector("input#checkbox-styled")
64
+ outerCheckbox.checked = innerCheckbox.checked
65
+ })
66
+ </script>
67
+ <% end %>
25
68
  <% end %>
@@ -2,7 +2,7 @@
2
2
 
3
3
  import React from 'react'
4
4
  import classnames from 'classnames'
5
- import { Icon } from '../'
5
+ import { Card, Checkbox, Flex, Icon, Radio } from '../'
6
6
 
7
7
  import type { InputCallback } from '../types'
8
8
 
@@ -20,6 +20,7 @@ type SelectableCardProps = {
20
20
  checked: boolean,
21
21
  children?: array<React.ReactChild>,
22
22
  className?: string,
23
+ dark?: boolean,
23
24
  data: object,
24
25
  disabled?: boolean,
25
26
  icon?: boolean,
@@ -30,6 +31,7 @@ type SelectableCardProps = {
30
31
  onChange: InputCallback<HTMLInputElement>,
31
32
  text?: string,
32
33
  value?: string,
34
+ variant?: string,
33
35
  }
34
36
 
35
37
  const SelectableCard = ({
@@ -37,6 +39,7 @@ const SelectableCard = ({
37
39
  checked = false,
38
40
  children,
39
41
  className,
42
+ dark = false,
40
43
  data = {},
41
44
  disabled = false,
42
45
  icon = false,
@@ -46,6 +49,7 @@ const SelectableCard = ({
46
49
  onChange = noop,
47
50
  text,
48
51
  value,
52
+ variant = 'default',
49
53
  ...props
50
54
  }: SelectableCardProps) => {
51
55
  const ariaProps = buildAriaProps(aria)
@@ -55,7 +59,9 @@ const SelectableCard = ({
55
59
  { 'checked': checked,
56
60
  'disabled': disabled,
57
61
  'enabled': !disabled }),
58
- globalProps(props), className)
62
+ dark ? 'dark' : '',
63
+ className
64
+ )
59
65
 
60
66
  const displayIcon = () => {
61
67
  if (icon === true) {
@@ -70,9 +76,16 @@ const SelectableCard = ({
70
76
  }
71
77
  }
72
78
 
73
- const inputType = multi === false ? 'radio' : 'checkbox'
79
+ const inputRef = React.createRef()
80
+ // Delegate clicks to hidden input from visible one
81
+ const handleClick = () => {
82
+ inputRef.current.click()
83
+ }
74
84
 
85
+ const inputType = multi ? 'checkbox' : 'radio'
75
86
  const inputIdPresent = inputId !== null ? inputId : name
87
+ const Input = multi ? Checkbox : Radio
88
+ const labelProps = variant === 'displayInput' ? Object.assign(props, { padding: 'none' }) : props
76
89
 
77
90
  return (
78
91
  <div
@@ -87,15 +100,49 @@ const SelectableCard = ({
87
100
  id={inputIdPresent}
88
101
  name={name}
89
102
  onChange={onChange}
103
+ ref={inputRef}
90
104
  type={inputType}
91
105
  value={value}
92
106
  />
107
+
93
108
  <label
94
- className={globalProps(props)}
109
+ className={globalProps(labelProps)}
95
110
  htmlFor={inputIdPresent}
96
111
  >
97
- {text || children}
98
- {displayIcon()}
112
+ <div className="buffer">
113
+ <Choose>
114
+ <When condition={variant === 'displayInput'}>
115
+ <Flex vertical="center">
116
+ <Flex
117
+ orientation="column"
118
+ padding="sm"
119
+ paddingRight="xs"
120
+ vertical="center"
121
+ >
122
+ <Input dark={dark}>
123
+ <input
124
+ checked={checked}
125
+ disabled={disabled}
126
+ onClick={handleClick}
127
+ type={inputType}
128
+ />
129
+ </Input>
130
+ </Flex>
131
+ <div className="separator" />
132
+ <Card.Body
133
+ dark={dark}
134
+ padding="sm"
135
+ >
136
+ {text || children}
137
+ </Card.Body>
138
+ </Flex>
139
+ </When>
140
+ <Otherwise>
141
+ {text || children}
142
+ </Otherwise>
143
+ </Choose>
144
+ {displayIcon()}
145
+ </div>
99
146
  </label>
100
147
  </div>
101
148
  )